00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 INLINE void AnimInterface::
00023 play() {
00024 play(0, get_num_frames() - 1);
00025 }
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040 INLINE void AnimInterface::
00041 play(double from, double to) {
00042 {
00043 CDWriter cdata(_cycler);
00044 cdata->play(from, to);
00045 }
00046 animation_activated();
00047 }
00048
00049
00050
00051
00052
00053
00054
00055
00056 INLINE void AnimInterface::
00057 loop(bool restart) {
00058 loop(restart, 0, get_num_frames() - 1);
00059 }
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070 INLINE void AnimInterface::
00071 loop(bool restart, double from, double to) {
00072 {
00073 CDWriter cdata(_cycler);
00074 cdata->loop(restart, from, to);
00075 }
00076 animation_activated();
00077 }
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088 INLINE void AnimInterface::
00089 pingpong(bool restart) {
00090 pingpong(restart, 0, get_num_frames() - 1);
00091 }
00092
00093
00094
00095
00096
00097
00098
00099
00100 INLINE void AnimInterface::
00101 pingpong(bool restart, double from, double to) {
00102 {
00103 CDWriter cdata(_cycler);
00104 cdata->pingpong(restart, from, to);
00105 }
00106 animation_activated();
00107 }
00108
00109
00110
00111
00112
00113
00114
00115
00116 INLINE void AnimInterface::
00117 stop() {
00118 CDWriter cdata(_cycler);
00119 cdata->pose(cdata->get_full_fframe());
00120
00121
00122
00123 }
00124
00125
00126
00127
00128
00129
00130
00131 INLINE void AnimInterface::
00132 pose(double frame) {
00133 {
00134 CDWriter cdata(_cycler);
00135 cdata->pose(frame);
00136 }
00137 animation_activated();
00138 }
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149 INLINE void AnimInterface::
00150 set_play_rate(double play_rate) {
00151 CDWriter cdata(_cycler);
00152 cdata->internal_set_rate(cdata->_frame_rate, play_rate);
00153 }
00154
00155
00156
00157
00158
00159
00160
00161 INLINE double AnimInterface::
00162 get_play_rate() const {
00163 CDReader cdata(_cycler);
00164 return cdata->_play_rate;
00165 }
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176 INLINE double AnimInterface::
00177 get_frame_rate() const {
00178 CDReader cdata(_cycler);
00179 return cdata->_frame_rate;
00180 }
00181
00182
00183
00184
00185
00186
00187
00188
00189 INLINE int AnimInterface::
00190 get_frame() const {
00191 int num_frames = get_num_frames();
00192 if (num_frames <= 0) {
00193 return 0;
00194 }
00195 CDReader cdata(_cycler);
00196 return cmod(cdata->get_full_frame(0), num_frames);
00197 }
00198
00199
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211 INLINE int AnimInterface::
00212 get_next_frame() const {
00213 int num_frames = get_num_frames();
00214 if (num_frames <= 0) {
00215 return 0;
00216 }
00217 CDReader cdata(_cycler);
00218 return cmod(cdata->get_full_frame(1), num_frames);
00219 }
00220
00221
00222
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232 INLINE double AnimInterface::
00233 get_frac() const {
00234 CDReader cdata(_cycler);
00235 return cdata->get_frac();
00236 }
00237
00238
00239
00240
00241
00242
00243
00244
00245
00246
00247
00248
00249
00250
00251
00252 INLINE int AnimInterface::
00253 get_full_frame() const {
00254 CDReader cdata(_cycler);
00255 return cdata->get_full_frame(0);
00256 }
00257
00258
00259
00260
00261
00262
00263
00264
00265
00266
00267
00268
00269
00270
00271
00272
00273
00274 INLINE double AnimInterface::
00275 get_full_fframe() const {
00276 CDReader cdata(_cycler);
00277 return cdata->get_full_fframe();
00278 }
00279
00280
00281
00282
00283
00284
00285
00286
00287
00288 INLINE bool AnimInterface::
00289 is_playing() const {
00290 CDReader cdata(_cycler);
00291 return cdata->is_playing();
00292 }
00293
00294
00295
00296
00297
00298
00299
00300
00301 INLINE void AnimInterface::
00302 set_frame_rate(double frame_rate) {
00303 CDWriter cdata(_cycler);
00304 cdata->internal_set_rate(frame_rate, cdata->_play_rate);
00305 }
00306
00307
00308
00309
00310
00311
00312
00313
00314
00315
00316 INLINE void AnimInterface::
00317 set_num_frames(int num_frames) {
00318 _num_frames = num_frames;
00319 }
00320
00321
00322
00323
00324
00325
00326
00327
00328
00329
00330
00331
00332 INLINE double AnimInterface::CData::
00333 get_frac() const {
00334 return get_full_fframe() - (double)get_full_frame(0);
00335 }
00336
00337 INLINE ostream &
00338 operator << (ostream &out, const AnimInterface &ai) {
00339 ai.output(out);
00340 return out;
00341 }