15 #ifndef CHARACTERJOINT_H 16 #define CHARACTERJOINT_H 18 #include "pandabase.h" 19 #include "transformState.h" 21 #include "movingPartMatrix.h" 22 #include "pandaNode.h" 23 #include "nodePathCollection.h" 24 #include "ordered_vector.h" 50 bool self_changed,
bool parent_changed,
56 bool remove_net_transform(
PandaNode *node);
57 bool has_net_transform(
PandaNode *node)
const;
58 void clear_net_transforms();
61 bool add_local_transform(
PandaNode *node);
62 bool remove_local_transform(
PandaNode *node);
63 bool has_local_transform(
PandaNode *node)
const;
64 void clear_local_transforms();
67 void get_transform(
LMatrix4 &transform)
const;
68 INLINE
const LMatrix4 &get_transform()
const;
69 CPT(TransformState) get_transform_state()
const;
71 void get_net_transform(
LMatrix4 &transform)
const;
83 NodeList _net_transform_nodes;
84 NodeList _local_transform_nodes;
87 VertexTransforms _vertex_transforms;
101 int _num_net_nodes, _num_local_nodes;
112 LMatrix4 _initial_net_transform_inverse;
116 return get_class_type();
118 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
122 static void init_type() {
123 MovingPartMatrix::init_type();
124 register_type(_type_handle,
"CharacterJoint",
125 MovingPartMatrix::get_class_type());
136 #include "characterJoint.I" static void register_with_read_factory()
Factory method to generate a MovingPartMatrix object.
A basic node of the scene graph or data graph.
The collection of all the joints and sliders in the character.
This is the fundamental interface for extracting binary objects from a Bam file, as generated by a Ba...
An animated character, with skeleton-morph animation and either soft-skinned or hard-skinned vertices...
Base class for objects that can be written to and read from Bam files.
This is the fundamental interface for writing binary objects to a Bam file, to be extracted later by ...
virtual void do_xform(const LMatrix4 &mat, const LMatrix4 &inv_mat)
Called by PartBundle::xform(), this indicates the indicated transform is being applied to the root jo...
virtual void write_datagram(BamWriter *manager, Datagram &me)
Function to write the important information in the particular object to a Datagram.
This is a 4-by-4 transform matrix.
An instance of this class is passed to the Factory when requesting it to do its business and construc...
virtual bool is_character_joint() const
Returns true if this part is a CharacterJoint, false otherwise.
virtual bool update_internals(PartBundle *root, PartGroup *parent, bool self_changed, bool parent_changed, Thread *current_thread)
This is called by do_update() whenever the part or some ancestor has changed values.
This is a particular kind of MovingPart that accepts a matrix each frame.
A thread; that is, a lightweight process.
This is the root of a MovingPart hierarchy.
This represents one joint of the character's animation, containing an animating transform matrix...
virtual int complete_pointers(TypedWritable **plist, BamReader *manager)
Receives an array of pointers, one for each time manager->read_pointer() was called in fillin()...
A class to retrieve the individual data elements previously stored in a Datagram. ...
TypeHandle is the identifier used to differentiate C++ class types.
virtual PartGroup * make_copy() const
Allocates and returns a new copy of the node.
An ordered list of data elements, formatted in memory for transmission over a socket or writing to a ...
This is a set of zero or more NodePaths.
This is the base class for PartRoot and MovingPart.