AnimControl

from panda3d.core import AnimControl
class AnimControl

Bases: TypedReferenceCount, AnimInterface, Namable

Controls the timing of a character animation. An AnimControl object is created for each character/bundle binding and manages the state of the animation: whether started, stopped, or looping, and the current frame number and play rate.

Inheritance diagram

Inheritance diagram of AnimControl

__init__(*args, **kwargs)
getAnim()

C++ Interface: get_anim(AnimControl self)

/**
  • Returns the AnimBundle bound in with this AnimControl.

*/

getAnimModel()

C++ Interface: get_anim_model(AnimControl self)

/**
  • Retrieves the pointer set via set_anim_model(). See set_anim_model().

*/

getBoundJoints()

C++ Interface: get_bound_joints(AnimControl self)

/**
  • Returns the subset of joints controlled by this AnimControl. Most of the

  • time, this will be BitArray::all_on(), for a normal full-body animation.

  • For a subset animation, however, this will be just a subset of those bits,

  • corresponding to the set of joints and sliders actually bound (as

  • enumerated by bind_hierarchy() in depth-first LIFO order).

*/

getChannelIndex()

C++ Interface: get_channel_index(AnimControl self)

/**
  • Returns the particular channel index associated with this AnimControl.

  • This channel index is the slot on which each AnimGroup is bound to its

  • associated PartGroup, for each joint in the animation.

  • It will be true that

  • get_part()->find_child(“n”)->get_bound(get_channel_index()) ==

  • get_anim()->find_child(“n”), for each joint “n”.

*/

getClassType()

C++ Interface: get_class_type()

getPart()

C++ Interface: get_part(AnimControl self)

/**
  • Returns the PartBundle bound in with this AnimControl.

*/

getPendingDoneEvent()

C++ Interface: get_pending_done_event(AnimControl self)

/**
  • Returns the event name that will be thrown when the AnimControl is finished

  • binding asynchronously.

*/

get_anim()

C++ Interface: get_anim(AnimControl self)

/**
  • Returns the AnimBundle bound in with this AnimControl.

*/

get_anim_model()

C++ Interface: get_anim_model(AnimControl self)

/**
  • Retrieves the pointer set via set_anim_model(). See set_anim_model().

*/

get_bound_joints()

C++ Interface: get_bound_joints(AnimControl self)

/**
  • Returns the subset of joints controlled by this AnimControl. Most of the

  • time, this will be BitArray::all_on(), for a normal full-body animation.

  • For a subset animation, however, this will be just a subset of those bits,

  • corresponding to the set of joints and sliders actually bound (as

  • enumerated by bind_hierarchy() in depth-first LIFO order).

*/

get_channel_index()

C++ Interface: get_channel_index(AnimControl self)

/**
  • Returns the particular channel index associated with this AnimControl.

  • This channel index is the slot on which each AnimGroup is bound to its

  • associated PartGroup, for each joint in the animation.

  • It will be true that

  • get_part()->find_child(“n”)->get_bound(get_channel_index()) ==

  • get_anim()->find_child(“n”), for each joint “n”.

*/

get_class_type()

C++ Interface: get_class_type()

get_part()

C++ Interface: get_part(AnimControl self)

/**
  • Returns the PartBundle bound in with this AnimControl.

*/

get_pending_done_event()

C++ Interface: get_pending_done_event(AnimControl self)

/**
  • Returns the event name that will be thrown when the AnimControl is finished

  • binding asynchronously.

*/

hasAnim()

C++ Interface: has_anim(AnimControl self)

/**
  • Returns true if the AnimControl was successfully loaded, or false if there

  • was a problem. This may return false while is_pending() is true.

*/

has_anim()

C++ Interface: has_anim(AnimControl self)

/**
  • Returns true if the AnimControl was successfully loaded, or false if there

  • was a problem. This may return false while is_pending() is true.

*/

isPending()

C++ Interface: is_pending(AnimControl self)

/**
  • Returns true if the AnimControl is being bound asynchronously, and has not

  • yet finished. If this is true, the AnimControl’s interface is still

  • available and will be perfectly useful (though get_anim() might return

  • NULL), but nothing visible will happen immediately.

*/

is_pending()

C++ Interface: is_pending(AnimControl self)

/**
  • Returns true if the AnimControl is being bound asynchronously, and has not

  • yet finished. If this is true, the AnimControl’s interface is still

  • available and will be perfectly useful (though get_anim() might return

  • NULL), but nothing visible will happen immediately.

*/

output()

C++ Interface: output(AnimControl self, ostream out)

/**

*/

setAnimModel()

C++ Interface: set_anim_model(const AnimControl self, PandaNode model)

/**
  • Associates the indicated PandaNode with the AnimControl. By convention,

  • this node represents the root node of the model file that corresponds to

  • this AnimControl’s animation file, though nothing in this code makes this

  • assumption or indeed does anything with this node.

  • The purpose of this is simply to allow the AnimControl to keep a reference

  • count on the ModelRoot node that generated it, so that the model will not

  • disappear from the model pool until it is no longer referenced.

*/

setPendingDoneEvent()

C++ Interface: set_pending_done_event(const AnimControl self, str done_event)

/**
  • Specifies an event name that will be thrown when the AnimControl is

  • finished binding asynchronously. If the AnimControl has already finished

  • binding, the event will be thrown immediately.

*/

set_anim_model()

C++ Interface: set_anim_model(const AnimControl self, PandaNode model)

/**
  • Associates the indicated PandaNode with the AnimControl. By convention,

  • this node represents the root node of the model file that corresponds to

  • this AnimControl’s animation file, though nothing in this code makes this

  • assumption or indeed does anything with this node.

  • The purpose of this is simply to allow the AnimControl to keep a reference

  • count on the ModelRoot node that generated it, so that the model will not

  • disappear from the model pool until it is no longer referenced.

*/

set_pending_done_event()

C++ Interface: set_pending_done_event(const AnimControl self, str done_event)

/**
  • Specifies an event name that will be thrown when the AnimControl is

  • finished binding asynchronously. If the AnimControl has already finished

  • binding, the event will be thrown immediately.

*/

upcastToAnimInterface()

C++ Interface: upcast_to_AnimInterface(const AnimControl self)

upcast from AnimControl to AnimInterface

upcastToNamable()

C++ Interface: upcast_to_Namable(const AnimControl self)

upcast from AnimControl to Namable

upcastToTypedReferenceCount()

C++ Interface: upcast_to_TypedReferenceCount(const AnimControl self)

upcast from AnimControl to TypedReferenceCount

upcast_to_AnimInterface()

C++ Interface: upcast_to_AnimInterface(const AnimControl self)

upcast from AnimControl to AnimInterface

upcast_to_Namable()

C++ Interface: upcast_to_Namable(const AnimControl self)

upcast from AnimControl to Namable

upcast_to_TypedReferenceCount()

C++ Interface: upcast_to_TypedReferenceCount(const AnimControl self)

upcast from AnimControl to TypedReferenceCount

waitPending()

C++ Interface: wait_pending(const AnimControl self)

/**
  • Blocks the current thread until the AnimControl has finished loading and is

  • fully bound.

*/

wait_pending()

C++ Interface: wait_pending(const AnimControl self)

/**
  • Blocks the current thread until the AnimControl has finished loading and is

  • fully bound.

*/