Panda3D
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
AnimInterface Class Reference

This is the fundamental interface for things that have a play/loop/stop type interface for frame-based animation, such as animated characters. More...

Inheritance diagram for AnimInterface:
AnimControl SequenceNode VideoTexture

Public Member Functions

double getFrac ()
 Returns the fractional part of the current frame. More...
 
int getFrame ()
 Returns the current integer frame number. More...
 
double getFrameRate ()
 Returns the native frame rate of the animation. More...
 
double getFullFframe ()
 Returns the current floating-point frame number. More...
 
int getFullFrame ()
 Returns the current integer frame number. More...
 
int getNextFrame ()
 Returns the current integer frame number + 1, constrained to the range 0 <= f < get_num_frames(). More...
 
int getNumFrames ()
 Returns the number of frames in the animation. More...
 
double getPlayRate ()
 Returns the rate at which the animation plays. More...
 
bool isPlaying ()
 Returns true if the animation is currently playing, false if it is stopped (e.g. More...
 
 loop (bool restart)
 Starts the entire animation looping. More...
 
 loop (bool restart, double from, double to)
 Loops the animation from the frame "from" to and including the frame "to", indefinitely. More...
 
 output (Ostream out)
 
 pingpong (bool restart)
 Starts the entire animation bouncing back and forth between its first frame and last frame. More...
 
 pingpong (bool restart, double from, double to)
 Loops the animation from the frame "from" to and including the frame "to", and then back in the opposite direction, indefinitely. More...
 
 play ()
 Runs the entire animation from beginning to end and stops. More...
 
 play (double from, double to)
 Runs the animation from the frame "from" to and including the frame "to", at which point the animation is stopped. More...
 
 pose (double frame)
 Sets the animation to the indicated frame and holds it there. More...
 
 setPlayRate (double play_rate)
 Changes the rate at which the animation plays. More...
 
 stop ()
 Stops a currently playing or looping animation right where it is. More...
 

Static Public Member Functions

static TypeHandle getClassType ()
 

Public Attributes

double frac
 Returns the fractional part of the current frame. More...
 
int frame
 Returns the current integer frame number. More...
 
double frame_rate
 Returns the native frame rate of the animation. More...
 
double full_fframe
 Returns the current floating-point frame number. More...
 
int full_frame
 Returns the current integer frame number. More...
 
int next_frame
 Returns the current integer frame number + 1, constrained to the range 0 <= f < get_num_frames(). More...
 
int num_frames
 Returns the number of frames in the animation. More...
 
double play_rate
 Returns the rate at which the animation plays. More...
 
bool playing
 Returns true if the animation is currently playing, false if it is stopped (e.g. More...
 

Detailed Description

This is the fundamental interface for things that have a play/loop/stop type interface for frame-based animation, such as animated characters.

This is the base class for AnimControl and other, similar classes.

Member Function Documentation

◆ getClassType()

static TypeHandle getClassType ( )
static

◆ getFrac()

double getFrac ( )

Returns the fractional part of the current frame.

Normally, this is in the range 0.0 <= f < 1.0, but in the one special case of an animation playing to its end frame and stopping, it might exactly equal 1.0.

It will always be true that get_full_frame() + get_frac() == get_full_fframe().

◆ getFrame()

int getFrame ( )

Returns the current integer frame number.

This number will be in the range 0 <= f < get_num_frames().

◆ getFrameRate()

double getFrameRate ( )

Returns the native frame rate of the animation.

This is the number of frames per second that will elapse when the play_rate is set to 1.0. It is a fixed property of the animation and may not be adjusted by the user.

◆ getFullFframe()

double getFullFframe ( )

Returns the current floating-point frame number.

Unlike the value returned by get_frame(), this frame number may extend beyond the range of get_num_frames() if the frame range passed to play(), loop(), etc. did.

Unlike the value returned by get_full_frame(), this return value may equal (to_frame + 1.0), when the animation has played to its natural end. However, in this case the return value of get_full_frame() will be to_frame, not (to_frame + 1).

◆ getFullFrame()

int getFullFrame ( )

Returns the current integer frame number.

Unlike the value returned by get_frame(), this frame number may extend beyond the range of get_num_frames() if the frame range passed to play(), loop(), etc. did.

Unlike the value returned by get_full_fframe(), this return value will never exceed the value passed to to_frame in the play() method.

◆ getNextFrame()

int getNextFrame ( )

Returns the current integer frame number + 1, constrained to the range 0 <= f < get_num_frames().

If the play mode is PM_play, this will clamp to the same value as get_frame() at the end of the animation. If the play mode is any other value, this will wrap around to frame 0 at the end of the animation.

◆ getNumFrames()

int getNumFrames ( )

Returns the number of frames in the animation.

This is a property of the animation and may not be directly adjusted by the user (although it may change without warning with certain kinds of animations, since this is a virtual method that may be overridden).

◆ getPlayRate()

double getPlayRate ( )

Returns the rate at which the animation plays.

See set_play_rate().

◆ isPlaying()

bool isPlaying ( )

Returns true if the animation is currently playing, false if it is stopped (e.g.

because stop() or pose() was called, or because it reached the end of the animation after play() was called).

◆ loop() [1/2]

loop ( bool  restart)

Starts the entire animation looping.

If restart is true, the animation is restarted from the beginning; otherwise, it continues from the current frame.

◆ loop() [2/2]

loop ( bool  restart,
double  from,
double  to 
)

Loops the animation from the frame "from" to and including the frame "to", indefinitely.

If restart is true, the animation is restarted from the beginning; otherwise, it continues from the current frame.

◆ output()

output ( Ostream  out)

◆ pingpong() [1/2]

pingpong ( bool  restart)

Starts the entire animation bouncing back and forth between its first frame and last frame.

If restart is true, the animation is restarted from the beginning; otherwise, it continues from the current frame.

◆ pingpong() [2/2]

pingpong ( bool  restart,
double  from,
double  to 
)

Loops the animation from the frame "from" to and including the frame "to", and then back in the opposite direction, indefinitely.

◆ play() [1/2]

play ( )

Runs the entire animation from beginning to end and stops.

◆ play() [2/2]

play ( double  from,
double  to 
)

Runs the animation from the frame "from" to and including the frame "to", at which point the animation is stopped.

Both "from" and "to" frame numbers may be outside the range (0, get_num_frames()) and the animation will follow the range correctly, reporting numbers modulo get_num_frames(). For instance, play(0, get_num_frames() * 2) will play the animation twice and then stop.

◆ pose()

pose ( double  frame)

Sets the animation to the indicated frame and holds it there.

◆ setPlayRate()

setPlayRate ( double  play_rate)

Changes the rate at which the animation plays.

1.0 is the normal speed, 2.0 is twice normal speed, and 0.5 is half normal speed. 0.0 is legal to pause the animation, and a negative value will play the animation backwards.

◆ stop()

stop ( )

Stops a currently playing or looping animation right where it is.

The animation remains posed at the current frame.

Member Data Documentation

◆ frac

double frac

Returns the fractional part of the current frame.

Normally, this is in the range 0.0 <= f < 1.0, but in the one special case of an animation playing to its end frame and stopping, it might exactly equal 1.0.

It will always be true that get_full_frame() + get_frac() == get_full_fframe().

◆ frame

int frame

Returns the current integer frame number.

This number will be in the range 0 <= f < get_num_frames().

◆ frame_rate

double frame_rate

Returns the native frame rate of the animation.

This is the number of frames per second that will elapse when the play_rate is set to 1.0. It is a fixed property of the animation and may not be adjusted by the user.

◆ full_fframe

double full_fframe

Returns the current floating-point frame number.

Unlike the value returned by get_frame(), this frame number may extend beyond the range of get_num_frames() if the frame range passed to play(), loop(), etc. did.

Unlike the value returned by get_full_frame(), this return value may equal (to_frame + 1.0), when the animation has played to its natural end. However, in this case the return value of get_full_frame() will be to_frame, not (to_frame + 1).

◆ full_frame

int full_frame

Returns the current integer frame number.

Unlike the value returned by get_frame(), this frame number may extend beyond the range of get_num_frames() if the frame range passed to play(), loop(), etc. did.

Unlike the value returned by get_full_fframe(), this return value will never exceed the value passed to to_frame in the play() method.

◆ next_frame

int next_frame

Returns the current integer frame number + 1, constrained to the range 0 <= f < get_num_frames().

If the play mode is PM_play, this will clamp to the same value as get_frame() at the end of the animation. If the play mode is any other value, this will wrap around to frame 0 at the end of the animation.

◆ num_frames

int num_frames

Returns the number of frames in the animation.

This is a property of the animation and may not be directly adjusted by the user (although it may change without warning with certain kinds of animations, since this is a virtual method that may be overridden).

◆ play_rate

double play_rate

Returns the rate at which the animation plays.

See set_play_rate().

◆ playing

bool playing

Returns true if the animation is currently playing, false if it is stopped (e.g.

because stop() or pose() was called, or because it reached the end of the animation after play() was called).