6#ifndef _ZFI_ZFCurve_common_h_
7#define _ZFI_ZFCurve_common_h_
156 if(time < 1 / 2.75) {
157 return (
zffloat)(7.5625 * time * time);
159 else if(time < 2 / 2.75) {
161 return (
zffloat)(7.5625 * time * time + 0.75);
163 else if(time < 2.5 / 2.75) {
165 return (
zffloat)(7.5625 * time * time + 0.9375);
168 time -= 2.625 / 2.75;
169 return (
zffloat)(7.5625 * time * time + 0.984375);
173 return 1 - _ZFP_ZFCurveBounceOut(1 - time);
184 return _ZFP_ZFCurveBounceIn(time);
207 return _ZFP_ZFCurveBounceOut(time);
231 return (
zffloat)(_ZFP_ZFCurveBounceIn(time * 2) / 2);
234 return (
zffloat)(_ZFP_ZFCurveBounceOut(time * 2 - 1) / 2 + 0.5f);
263 time = (time < (
zffloat)0.5f ? 2 * time : 2 * (1 - time));
265 return this->
curve()->progressUpdate(time);
293 return (time < (
zffloat)0.5f ? 2 * time : 2 * (1 - time));
460 return _ZFP_ZFCurveBounceIn(time < (
zffloat)0.5f ? 2 * time : 2 * (1 - time));
483 return _ZFP_ZFCurveBounceOut(time < (
zffloat)0.5f ? 2 * time : 2 * (1 - time));
510 time = 2 * (1 - time);
513 return (
zffloat)(_ZFP_ZFCurveBounceIn(time * 2) / 2);
516 return (
zffloat)(_ZFP_ZFCurveBounceOut(time * 2 - 1) / 2 + 0.5f);
#define ZFLIB_ZFAlgorithm
used to export symbols
Definition ZFAlgorithmDef.h:14
ZFBezier const & ZFBezierEaseInOut(void)
ease in out curve
Definition ZFBezier.h:155
ZFBezier const & ZFBezierBackInOut(void)
back in out curve
Definition ZFBezier.h:167
ZFBezier const & ZFBezierBackOut(void)
back out curve
Definition ZFBezier.h:163
ZFBezier const & ZFBezierEaseIn(void)
ease in curve
Definition ZFBezier.h:147
ZFBezier const & ZFBezierEaseOut(void)
ease out curve
Definition ZFBezier.h:151
ZFBezier const & ZFBezierBackIn(void)
back in curve
Definition ZFBezier.h:159
#define zfextend
dummy macro shows class inherit from another
Definition ZFCoreTypeDef_ClassType.h:53
#define zfoverride
dummy macro shows that method override parent's method
Definition ZFCoreTypeDef_ClassType.h:58
#define ZF_IN
dummy macro that shows the param used as required input
Definition ZFCoreTypeDef_ClassType.h:180
#define ZF_IN_OUT
dummy macro that shows the param used as required input and output
Definition ZFCoreTypeDef_ClassType.h:196
_zft_zffloat zffloat
same as float, see zfindex
Definition ZFCoreTypeDef_CoreType.h:183
#define zfnull
same as NULL, defined for future use
Definition ZFCoreTypeDef_CoreType.h:88
ZFCompareResult
compare result of two ZFObjects
Definition ZFCoreTypeDef_OtherType.h:28
@ ZFCompareUncomparable
Definition ZFCoreTypeDef_OtherType.h:29
@ ZFCompareEqual
Definition ZFCoreTypeDef_OtherType.h:31
zft_zfstring< zfchar > zfstring
see zft_zfstring
Definition ZFCoreTypeDef_StringType.h:15
#define ZF_NAMESPACE_GLOBAL_BEGIN
begin namespace ZFFramework
Definition ZFNamespace.h:97
#define ZF_NAMESPACE_GLOBAL_END
end namespace ZFFramework
Definition ZFNamespace.h:98
#define zfcast(T_To, obj)
safely cast ZFObject types, return null if not desired type
Definition ZFObjectCast.h:28
#define zfclass
same as class, shows that this class is a ZFObject type
Definition ZFObjectClassTypeFwd.h:38
#define ZFOBJECT_DECLARE(ChildClass, SuperClass,...)
necessary for every class inherit from ZFObject
Definition ZFObjectDeclare.h:126
ZFCompareResult ZFObjectCompareValue(ZFObject *const &e0, ZFObject *const &e1)
util method to ZFObject::objectCompareValue
Definition ZFObjectUtil.h:45
#define ZFPROPERTY_RETAIN(Type, Name,...)
declare a retain property
Definition ZFPropertyDeclare.h:104
zffloat y_by_x(zffloat x) const
solve y with given x
virtual void objectInfoImpl(zfstring &ret)
see objectInfo
Definition ZFCurve_common.h:103
ZFCurveBackIn zfself
class ref to self
Definition ZFCurve_common.h:88
virtual ZFCompareResult objectCompareImpl(ZFObject *anotherObj)
see objectCompare
Definition ZFCurve_common.h:96
static const ZFClass * ClassData(void)
get class info
Definition ZFCurve_common.h:88
virtual zffloat progressOnUpdate(zffloat time)
called by progressUpdate to update progress
Definition ZFCurve_common.h:92
static const ZFClass * ClassData(void)
get class info
Definition ZFCurve_common.h:134
virtual ZFCompareResult objectCompareImpl(ZFObject *anotherObj)
see objectCompare
Definition ZFCurve_common.h:142
virtual void objectInfoImpl(zfstring &ret)
see objectInfo
Definition ZFCurve_common.h:149
ZFCurveBackInOut zfself
class ref to self
Definition ZFCurve_common.h:134
virtual zffloat progressOnUpdate(zffloat time)
called by progressUpdate to update progress
Definition ZFCurve_common.h:138
virtual ZFCompareResult objectCompareImpl(ZFObject *anotherObj)
see objectCompare
Definition ZFCurve_common.h:119
virtual void objectInfoImpl(zfstring &ret)
see objectInfo
Definition ZFCurve_common.h:126
ZFCurveBackOut zfself
class ref to self
Definition ZFCurve_common.h:111
static const ZFClass * ClassData(void)
get class info
Definition ZFCurve_common.h:111
virtual zffloat progressOnUpdate(zffloat time)
called by progressUpdate to update progress
Definition ZFCurve_common.h:115
virtual zffloat progressOnUpdate(zffloat time)
called by progressUpdate to update progress
Definition ZFCurve_common.h:183
ZFCurveBounceIn zfself
class ref to self
Definition ZFCurve_common.h:179
virtual void objectInfoImpl(zfstring &ret)
see objectInfo
Definition ZFCurve_common.h:194
static const ZFClass * ClassData(void)
get class info
Definition ZFCurve_common.h:179
virtual ZFCompareResult objectCompareImpl(ZFObject *anotherObj)
see objectCompare
Definition ZFCurve_common.h:187
virtual void objectInfoImpl(zfstring &ret)
see objectInfo
Definition ZFCurve_common.h:245
virtual ZFCompareResult objectCompareImpl(ZFObject *anotherObj)
see objectCompare
Definition ZFCurve_common.h:238
ZFCurveBounceInOut zfself
class ref to self
Definition ZFCurve_common.h:225
static const ZFClass * ClassData(void)
get class info
Definition ZFCurve_common.h:225
virtual zffloat progressOnUpdate(zffloat time)
called by progressUpdate to update progress
Definition ZFCurve_common.h:229
virtual zffloat progressOnUpdate(zffloat time)
called by progressUpdate to update progress
Definition ZFCurve_common.h:206
ZFCurveBounceOut zfself
class ref to self
Definition ZFCurve_common.h:202
static const ZFClass * ClassData(void)
get class info
Definition ZFCurve_common.h:202
virtual void objectInfoImpl(zfstring &ret)
see objectInfo
Definition ZFCurve_common.h:217
virtual ZFCompareResult objectCompareImpl(ZFObject *anotherObj)
see objectCompare
Definition ZFCurve_common.h:210
virtual void objectInfoImpl(zfstring &ret)
see objectInfo
Definition ZFCurve_common.h:32
static const ZFClass * ClassData(void)
get class info
Definition ZFCurve_common.h:17
virtual zffloat progressOnUpdate(zffloat time)
called by progressUpdate to update progress
Definition ZFCurve_common.h:21
ZFCurveEaseIn zfself
class ref to self
Definition ZFCurve_common.h:17
virtual ZFCompareResult objectCompareImpl(ZFObject *anotherObj)
see objectCompare
Definition ZFCurve_common.h:25
static const ZFClass * ClassData(void)
get class info
Definition ZFCurve_common.h:63
virtual ZFCompareResult objectCompareImpl(ZFObject *anotherObj)
see objectCompare
Definition ZFCurve_common.h:71
virtual void objectInfoImpl(zfstring &ret)
see objectInfo
Definition ZFCurve_common.h:78
virtual zffloat progressOnUpdate(zffloat time)
called by progressUpdate to update progress
Definition ZFCurve_common.h:67
ZFCurveEaseInOut zfself
class ref to self
Definition ZFCurve_common.h:63
virtual ZFCompareResult objectCompareImpl(ZFObject *anotherObj)
see objectCompare
Definition ZFCurve_common.h:48
virtual void objectInfoImpl(zfstring &ret)
see objectInfo
Definition ZFCurve_common.h:55
static const ZFClass * ClassData(void)
get class info
Definition ZFCurve_common.h:40
ZFCurveEaseOut zfself
class ref to self
Definition ZFCurve_common.h:40
virtual zffloat progressOnUpdate(zffloat time)
called by progressUpdate to update progress
Definition ZFCurve_common.h:44
virtual zffloat progressOnUpdate(zffloat time)
called by progressUpdate to update progress
Definition ZFCurve_common.h:388
static const ZFClass * ClassData(void)
get class info
Definition ZFCurve_common.h:384
ZFCurveLoopBackIn zfself
class ref to self
Definition ZFCurve_common.h:384
virtual ZFCompareResult objectCompareImpl(ZFObject *anotherObj)
see objectCompare
Definition ZFCurve_common.h:392
virtual void objectInfoImpl(zfstring &ret)
see objectInfo
Definition ZFCurve_common.h:399
virtual ZFCompareResult objectCompareImpl(ZFObject *anotherObj)
see objectCompare
Definition ZFCurve_common.h:438
static const ZFClass * ClassData(void)
get class info
Definition ZFCurve_common.h:430
virtual zffloat progressOnUpdate(zffloat time)
called by progressUpdate to update progress
Definition ZFCurve_common.h:434
virtual void objectInfoImpl(zfstring &ret)
see objectInfo
Definition ZFCurve_common.h:445
ZFCurveLoopBackInOut zfself
class ref to self
Definition ZFCurve_common.h:430
virtual void objectInfoImpl(zfstring &ret)
see objectInfo
Definition ZFCurve_common.h:422
ZFCurveLoopBackOut zfself
class ref to self
Definition ZFCurve_common.h:407
virtual ZFCompareResult objectCompareImpl(ZFObject *anotherObj)
see objectCompare
Definition ZFCurve_common.h:415
static const ZFClass * ClassData(void)
get class info
Definition ZFCurve_common.h:407
virtual zffloat progressOnUpdate(zffloat time)
called by progressUpdate to update progress
Definition ZFCurve_common.h:411
virtual void objectInfoImpl(zfstring &ret)
see objectInfo
Definition ZFCurve_common.h:470
virtual ZFCompareResult objectCompareImpl(ZFObject *anotherObj)
see objectCompare
Definition ZFCurve_common.h:463
static const ZFClass * ClassData(void)
get class info
Definition ZFCurve_common.h:455
ZFCurveLoopBounceIn zfself
class ref to self
Definition ZFCurve_common.h:455
virtual zffloat progressOnUpdate(zffloat time)
called by progressUpdate to update progress
Definition ZFCurve_common.h:459
virtual void objectInfoImpl(zfstring &ret)
see objectInfo
Definition ZFCurve_common.h:527
virtual zffloat progressOnUpdate(zffloat time)
called by progressUpdate to update progress
Definition ZFCurve_common.h:505
ZFCurveLoopBounceInOut zfself
class ref to self
Definition ZFCurve_common.h:501
static const ZFClass * ClassData(void)
get class info
Definition ZFCurve_common.h:501
virtual ZFCompareResult objectCompareImpl(ZFObject *anotherObj)
see objectCompare
Definition ZFCurve_common.h:520
virtual ZFCompareResult objectCompareImpl(ZFObject *anotherObj)
see objectCompare
Definition ZFCurve_common.h:486
virtual void objectInfoImpl(zfstring &ret)
see objectInfo
Definition ZFCurve_common.h:493
ZFCurveLoopBounceOut zfself
class ref to self
Definition ZFCurve_common.h:478
static const ZFClass * ClassData(void)
get class info
Definition ZFCurve_common.h:478
virtual zffloat progressOnUpdate(zffloat time)
called by progressUpdate to update progress
Definition ZFCurve_common.h:482
virtual ZFCompareResult objectCompareImpl(ZFObject *anotherObj)
see objectCompare
Definition ZFCurve_common.h:321
static const ZFClass * ClassData(void)
get class info
Definition ZFCurve_common.h:313
virtual zffloat progressOnUpdate(zffloat time)
called by progressUpdate to update progress
Definition ZFCurve_common.h:317
virtual void objectInfoImpl(zfstring &ret)
see objectInfo
Definition ZFCurve_common.h:328
ZFCurveLoopEaseIn zfself
class ref to self
Definition ZFCurve_common.h:313
virtual ZFCompareResult objectCompareImpl(ZFObject *anotherObj)
see objectCompare
Definition ZFCurve_common.h:367
virtual void objectInfoImpl(zfstring &ret)
see objectInfo
Definition ZFCurve_common.h:374
ZFCurveLoopEaseInOut zfself
class ref to self
Definition ZFCurve_common.h:359
virtual zffloat progressOnUpdate(zffloat time)
called by progressUpdate to update progress
Definition ZFCurve_common.h:363
static const ZFClass * ClassData(void)
get class info
Definition ZFCurve_common.h:359
virtual ZFCompareResult objectCompareImpl(ZFObject *anotherObj)
see objectCompare
Definition ZFCurve_common.h:344
virtual zffloat progressOnUpdate(zffloat time)
called by progressUpdate to update progress
Definition ZFCurve_common.h:340
virtual void objectInfoImpl(zfstring &ret)
see objectInfo
Definition ZFCurve_common.h:351
ZFCurveLoopEaseOut zfself
class ref to self
Definition ZFCurve_common.h:336
static const ZFClass * ClassData(void)
get class info
Definition ZFCurve_common.h:336
static const ZFClass * ClassData(void)
get class info
Definition ZFCurve_common.h:255
virtual void objectInfoImpl(zfstring &ret)
see objectInfo
Definition ZFCurve_common.h:280
virtual zfanyT< ZFCurve > const & curve()
the curve to loop
Definition ZFCurve_common.h:258
ZFCurveLoop zfself
class ref to self
Definition ZFCurve_common.h:255
virtual zffloat progressOnUpdate(zffloat time)
called by progressUpdate to update progress
Definition ZFCurve_common.h:262
virtual ZFCompareResult objectCompareImpl(ZFObject *anotherObj)
see objectCompare
Definition ZFCurve_common.h:272
virtual zffloat progressOnUpdate(zffloat time)
called by progressUpdate to update progress
Definition ZFCurve_common.h:292
static const ZFClass * ClassData(void)
get class info
Definition ZFCurve_common.h:288
ZFCurveLoopLinear zfself
class ref to self
Definition ZFCurve_common.h:288
virtual ZFCompareResult objectCompareImpl(ZFObject *anotherObj)
see objectCompare
Definition ZFCurve_common.h:296
virtual void objectInfoImpl(zfstring &ret)
see objectInfo
Definition ZFCurve_common.h:303
see zfany
Definition zfany.h:106