Panda3D

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

An animation channel that accepts a matrix each frame from some dynamic input provided by code. More...

`#include "animChannelMatrixDynamic.h"`

Inheritance diagram for AnimChannelMatrixDynamic:

## Public Member Functions
| AnimChannelMatrixDynamic (const std::string &name)
virtual int | complete_pointers (TypedWritable **plist, BamReader *manager)
| Receives an array of pointers, one for each time manager->read_pointer() was called in fillin(). More...
void | fillin (DatagramIterator &scan, BamReader *manager)
| Function that reads out of the datagram (or asks manager to read) all of the data that is needed to re-create this object and stores it in the appropiate place. More...
virtual TypeHandle | force_init_type ()
virtual void | get_hpr (int frame, LVecBase3 &hpr)
| Returns the h, p, and r components associated with the current frame. More...
virtual void | get_pos (int frame, LVecBase3 &pos)
| Returns the x, y, and z translation components associated with the current frame. More...
virtual void | get_quat (int frame, LQuaternion &quat)
| Returns the rotation component associated with the current frame, expressed as a quaternion. More...
virtual void | get_scale (int frame, LVecBase3 &scale)
| Gets the scale value at the indicated frame. More...
virtual void | get_shear (int frame, LVecBase3 &shear)
| Returns the a, b, and c shear components associated with the current frame. More...
virtual TypeHandle | get_type () const
virtual void | get_value (int frame, LMatrix4 &mat)
| Gets the value of the channel at the indicated frame. More...
virtual void | get_value_no_scale_shear (int frame, LMatrix4 &value)
| Gets the value of the channel at the indicated frame, without any scale or shear information. More...
PandaNode * | get_value_node () const
const TransformState * | get_value_transform () const
| Returns the explicit TransformState value that was set via set_value(), if any. More...
virtual bool | has_changed (int last_frame, double last_frac, int this_frame, double this_frac)
| Returns true if the value has changed since the last call to has_changed(). More...
void | set_value (const LMatrix4 &value)
| Explicitly sets the matrix value. More...
void | set_value (const TransformState *value)
| Explicitly sets the matrix value, using the indicated TransformState object as a convenience. More...
void | set_value_node (PandaNode *node)
virtual void | write_datagram (BamWriter *manager, Datagram &dg)
| Function to write the important information in the particular object to a Datagram. More...
Public Member Functions inherited from AnimChannel< ACMatrixSwitchType >
| AnimChannel (AnimGroup *parent, const std::string &name)
| This is the normal constructor, which automatically places the AnimChannel in the previously-created hierarchy. More...
virtual void | get_value (int frame, ValueType &value)=0
virtual void | get_value_no_scale_shear (int frame, ValueType &value)
| Returns the value associated with the current frame, with no scale or share components. More...
virtual TypeHandle | get_value_type () const
| Returns the TypeHandle associated with the ValueType we return. More...
Public Member Functions inherited from AnimChannelBase
| AnimChannelBase (AnimGroup *parent, const std::string &name)
| This is the normal constructor, which automatically places the AnimChannel in the previously-created hierarchy. More...
Public Member Functions inherited from AnimGroup
| AnimGroup (AnimGroup *parent, const std::string &name)
| Creates the AnimGroup, and adds it to the indicated parent. More...
AnimGroup * | find_child (const std::string &name) const
| Returns the first descendant found with the indicated name, or NULL if no such descendant exists. More...
AnimGroup * | get_child (int n) const
AnimGroup * | get_child_named (const std::string &name) const
| Returns the first child found with the indicated name, or NULL if no such child exists. More...
int | get_num_children () const
virtual void | output (std::ostream &out) const
| Writes a one-line description of the group. More...
void | sort_descendants ()
| Sorts the children nodes at each level of the hierarchy into alphabetical order. More...
virtual void | write (std::ostream &out, int indent_level) const
| Writes a brief description of the group and all of its descendants. More...
Public Member Functions inherited from TypedWritableReferenceCount
| TypedWritableReferenceCount (const TypedWritableReferenceCount &copy)
virtual ReferenceCount * | as_reference_count ()
| Returns the pointer cast to a ReferenceCount pointer, if it is in fact of that type. More...
void | operator= (const TypedWritableReferenceCount &copy)
Public Member Functions inherited from TypedWritable
| TypedWritable (const TypedWritable &copy)
vector_uchar | encode_to_bam_stream () const
| Converts the TypedWritable object into a single stream of data using a BamWriter, and returns that data as a bytes object. More...
bool | encode_to_bam_stream (vector_uchar &data, BamWriter *writer=nullptr) const
| Converts the TypedWritable object into a single stream of data using a BamWriter, and stores that data in the indicated string. More...
virtual void | finalize (BamReader *manager)
| Called by the BamReader to perform any final actions needed for setting up the object after all objects have been read and all pointers have been completed. More...
UpdateSeq | get_bam_modified () const
| Returns the current bam_modified counter. More...
void | mark_bam_modified ()
| Increments the bam_modified counter, so that this object will be invalidated and retransmitted on any open bam streams. More...
void | operator= (const TypedWritable &copy)
virtual bool | require_fully_complete () const
| Some objects require all of their nested pointers to have been completed before the objects themselves can be completed. More...
virtual void | update_bam_nested (BamWriter *manager)
| Called by the BamWriter when this object has not itself been modified recently, but it should check its nested objects for updates. More...
Public Member Functions inherited from TypedObject
| TypedObject (const TypedObject &copy)=default
TypedObject * | as_typed_object ()
| Returns the object, upcast (if necessary) to a TypedObject pointer. More...
const TypedObject * | as_typed_object () const
| Returns the object, upcast (if necessary) to a TypedObject pointer. More...
int | get_best_parent_from_Set (const std::set< int > &) const
int | get_type_index () const
| Returns the internal index number associated with this object's TypeHandle, a unique number for each different type. More...
bool | is_exact_type (TypeHandle handle) const
| Returns true if the current object is the indicated type exactly. More...
bool | is_of_type (TypeHandle handle) const
| Returns true if the current object is or derives from the indicated type. More...
TypedObject & | operator= (const TypedObject &copy)=default
Public Member Functions inherited from MemoryBase
void | operator delete (void *, void *)
void | operator delete (void *ptr)
void | operator delete[] (void *, void *)
void | operator delete[] (void *ptr)
void * | operator new (size_t size)
void * | operator new (size_t size, void *ptr)
void * | operator new[] (size_t size)
void * | operator new[] (size_t size, void *ptr)
Public Member Functions inherited from ReferenceCount
int | get_ref_count () const
WeakReferenceList * | get_weak_list () const
| Returns the WeakReferenceList associated with this ReferenceCount object. More...
bool | has_weak_list () const
| Returns true if this particular ReferenceCount object has a WeakReferenceList created, false otherwise. More...
void | local_object ()
| This function should be called, once, immediately after creating a new instance of some ReferenceCount-derived object on the stack. More...
void | ref () const
| Explicitly increments the reference count. More...
bool | ref_if_nonzero () const
| Atomically increases the reference count of this object if it is not zero. More...
bool | test_ref_count_integrity () const
| Does some easy checks to make sure that the reference count isn't completely bogus. More...
bool | test_ref_count_nonzero () const
| Does some easy checks to make sure that the reference count isn't zero, or completely bogus. More...
virtual bool | unref () const
| Explicitly decrements the reference count. More...
bool | unref_if_one () const
| Atomically decreases the reference count of this object if it is one. More...
WeakReferenceList * | weak_ref ()
| Adds the indicated PointerToVoid as a weak reference to this object. More...
void | weak_unref ()
| Removes the indicated PointerToVoid as a weak reference to this object. More...
Public Member Functions inherited from Namable
| Namable (const std::string &initial_name="")
void | clear_name ()
| Resets the Namable's name to empty. More...
const std::string & | get_name () const
bool | has_name () const
| Returns true if the Namable has a nonempty name set, false if the name is empty. More...
void | output (std::ostream &out) const
| Outputs the Namable. More...
void | set_name (const std::string &name)

## Static Public Member Functions
static TypeHandle | get_class_type ()
static void | init_type ()
static TypedWritable * | make_AnimChannelMatrixDynamic (const FactoryParams &params)
| Factory method to generate an AnimChannelMatrixDynamic object. More...
static void | register_with_read_factory ()
| Factory method to generate an AnimChannelMatrixDynamic object. More...
Static Public Member Functions inherited from AnimChannel< ACMatrixSwitchType >
static TypeHandle | get_class_type ()
static void | init_type ()
Static Public Member Functions inherited from AnimChannelBase
static TypeHandle | get_class_type ()
static void | init_type ()
Static Public Member Functions inherited from AnimGroup
static TypeHandle | get_class_type ()
static void | init_type ()
static TypedWritable * | make_AnimGroup (const FactoryParams &params)
| Factory method to generate a AnimGroup object. More...
static void | register_with_read_factory ()
| Factory method to generate a AnimGroup object. More...
Static Public Member Functions inherited from TypedWritableReferenceCount
static TypeHandle | get_class_type ()
static void | init_type ()
static | PT (TypedWritableReferenceCount) decode_from_bam_stream(vector_uchar data
Static Public Member Functions inherited from TypedWritable
static bool | decode_raw_from_bam_stream (TypedWritable *&ptr, ReferenceCount *&ref_ptr, vector_uchar data, BamReader *reader=nullptr)
| Reads the bytes created by a previous call to encode_to_bam_stream(), and extracts the single object on those bytes. More...
static TypeHandle | get_class_type ()
static void | init_type ()
Static Public Member Functions inherited from TypedObject
static TypeHandle | get_class_type ()
static void | init_type ()
| This function is declared non-inline to work around a compiler bug in g++ 2.96. More...
Static Public Member Functions inherited from ReferenceCount
static TypeHandle | get_class_type ()
static void | init_type ()
Static Public Member Functions inherited from Namable
static TypeHandle | get_class_type ()
static void | init_type ()

## Public Attributes
| get_value_node
| Returns the node that was set via set_value_node(), if any. More...
| set_value_node
| Specifies a node whose transform will be queried each frame to implicitly specify the transform of this joint. More...
Public Attributes inherited from AnimGroup
| get_child
| Returns the nth child of the group. More...
| get_num_children
| Returns the number of child nodes of the group. More...
Public Attributes inherited from TypedWritableReferenceCount
static BamReader * | reader = nullptr)
Public Attributes inherited from TypedObject
| get_type
Public Attributes inherited from ReferenceCount
| get_ref_count
| Returns the current reference count. More...
Public Attributes inherited from Namable
| get_name
| set_name

## Additional Inherited Members
Public Types inherited from AnimChannel< ACMatrixSwitchType >
typedef SwitchType::ValueType | ValueType
Static Public Attributes inherited from TypedWritable
static TypedWritable *const | Null = nullptr

## Detailed Description

An animation channel that accepts a matrix each frame from some dynamic input provided by code.

This object operates in two modes: in explicit mode, the programmer should call set_value() each frame to indicate the new value; in implicit mode, the programmer should call set_value_node() to indicate the node whose transform will be copied to the joint each frame.

Definition at line 33 of file animChannelMatrixDynamic.h.

## Member Function Documentation

## ◆ complete_pointers()

int AnimChannelMatrixDynamic::complete_pointers | ( | TypedWritable ** | p_list,
|  | BamReader * | manager
| ) |  |
| virtual

Receives an array of pointers, one for each time manager->read_pointer() was called in fillin().

Returns the number of pointers processed.

Reimplemented from AnimGroup.

Definition at line 220 of file animChannelMatrixDynamic.cxx.

## ◆ fillin()

void AnimChannelMatrixDynamic::fillin | ( | DatagramIterator & | scan,
|  | BamReader * | manager
| ) |  |
| virtual

Function that reads out of the datagram (or asks manager to read) all of the data that is needed to re-create this object and stores it in the appropiate place.

Reimplemented from AnimChannelBase.

Definition at line 236 of file animChannelMatrixDynamic.cxx.

References BamReader::read_pointer().

Referenced by make_AnimChannelMatrixDynamic().

## ◆ get_hpr()

void AnimChannelMatrixDynamic::get_hpr | ( | int | frame,
|  | LVecBase3 & | hpr
| ) |  |
| virtual

Returns the h, p, and r components associated with the current frame.

As above, this only makes sense for a matrix-type channel.

Reimplemented from AnimChannel< ACMatrixSwitchType >.

Definition at line 118 of file animChannelMatrixDynamic.cxx.

## ◆ get_pos()

void AnimChannelMatrixDynamic::get_pos | ( | int | frame,
|  | LVecBase3 & | pos
| ) |  |
| virtual

Returns the x, y, and z translation components associated with the current frame.

As above, this only makes sense for a matrix-type channel.

Reimplemented from AnimChannel< ACMatrixSwitchType >.

Definition at line 143 of file animChannelMatrixDynamic.cxx.

## ◆ get_quat()

void AnimChannelMatrixDynamic::get_quat | ( | int | frame,
|  | LQuaternion & | quat
| ) |  |
| virtual

Returns the rotation component associated with the current frame, expressed as a quaternion.

As above, this only makes sense for a matrix-type channel.

Reimplemented from AnimChannel< ACMatrixSwitchType >.

Definition at line 131 of file animChannelMatrixDynamic.cxx.

## ◆ get_scale()

void AnimChannelMatrixDynamic::get_scale | ( | int | frame,
|  | LVecBase3 & | scale
| ) |  |
| virtual

Gets the scale value at the indicated frame.

Reimplemented from AnimChannel< ACMatrixSwitchType >.

Definition at line 106 of file animChannelMatrixDynamic.cxx.

## ◆ get_shear()

void AnimChannelMatrixDynamic::get_shear | ( | int | frame,
|  | LVecBase3 & | shear
| ) |  |
| virtual

Returns the a, b, and c shear components associated with the current frame.

As above, this only makes sense for a matrix-type channel.

Reimplemented from AnimChannel< ACMatrixSwitchType >.

Definition at line 155 of file animChannelMatrixDynamic.cxx.

## ◆ get_value()

void AnimChannelMatrixDynamic::get_value | ( | int | frame,
|  | LMatrix4 & | mat
| ) |  |
| virtual

Gets the value of the channel at the indicated frame.

Definition at line 78 of file animChannelMatrixDynamic.cxx.

## ◆ get_value_no_scale_shear()

void AnimChannelMatrixDynamic::get_value_no_scale_shear | ( | int | frame,
|  | LMatrix4 & | value
| ) |  |
| virtual

Gets the value of the channel at the indicated frame, without any scale or shear information.

Definition at line 90 of file animChannelMatrixDynamic.cxx.

## ◆ get_value_transform()

const TransformState * AnimChannelMatrixDynamic::get_value_transform | ( |  | ) | const
| inline

Returns the explicit TransformState value that was set via set_value(), if any.

Definition at line 18 of file animChannelMatrixDynamic.I.

## ◆ has_changed()

bool AnimChannelMatrixDynamic::has_changed | ( | int | last_frame,
|  | double | last_frac,
|  | int | this_frame,
|  | double | this_frac
| ) |  |
| virtual

Returns true if the value has changed since the last call to has_changed().

last_frame is the frame number of the last call; this_frame is the current frame number.

Reimplemented from AnimChannelBase.

Definition at line 65 of file animChannelMatrixDynamic.cxx.

## ◆ make_AnimChannelMatrixDynamic()

TypedWritable * AnimChannelMatrixDynamic::make_AnimChannelMatrixDynamic | ( | const FactoryParams & | params | ) |
| static

Factory method to generate an AnimChannelMatrixDynamic object.

Definition at line 248 of file animChannelMatrixDynamic.cxx.

References fillin(), and parse_params().

Referenced by register_with_read_factory().

## ◆ register_with_read_factory()

void AnimChannelMatrixDynamic::register_with_read_factory | ( |  | ) |
| static

Factory method to generate an AnimChannelMatrixDynamic object.

Definition at line 262 of file animChannelMatrixDynamic.cxx.

References BamReader::get_factory(), make_AnimChannelMatrixDynamic(), and Factory< Type >::register_factory().

## ◆ set_value() [1/2]

void AnimChannelMatrixDynamic::set_value | ( | const LMatrix4 & | value | ) |

Explicitly sets the matrix value.

Definition at line 166 of file animChannelMatrixDynamic.cxx.

## ◆ set_value() [2/2]

void AnimChannelMatrixDynamic::set_value | ( | const TransformState * | value | ) |

Explicitly sets the matrix value, using the indicated TransformState object as a convenience.

Definition at line 176 of file animChannelMatrixDynamic.cxx.

## ◆ write_datagram()

void AnimChannelMatrixDynamic::write_datagram | ( | BamWriter * | manager,
|  | Datagram & | dg
| ) |  |
| virtual

Function to write the important information in the particular object to a Datagram.

Reimplemented from AnimChannelBase.

Definition at line 209 of file animChannelMatrixDynamic.cxx.

References AnimChannelBase::write_datagram(), and BamWriter::write_pointer().

## Member Data Documentation

## ◆ get_value_node

PandaNode * AnimChannelMatrixDynamic::get_value_node
| inline

Returns the node that was set via set_value_node(), if any.

Definition at line 60 of file animChannelMatrixDynamic.h.

## ◆ set_value_node

void AnimChannelMatrixDynamic::set_value_node

Specifies a node whose transform will be queried each frame to implicitly specify the transform of this joint.

Definition at line 60 of file animChannelMatrixDynamic.h.

Referenced by MovingPartMatrix::apply_control().

The documentation for this class was generated from the following files:

- panda/src/chan/animChannelMatrixDynamic.h
- panda/src/chan/animChannelMatrixDynamic.cxx
- panda/src/chan/animChannelMatrixDynamic.I