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;
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.
virtual PartGroup * make_copy() const
Allocates and returns a new copy of the node.
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)
Writes the contents of this object to the datagram for shipping out to a Bam file.
virtual bool is_character_joint() const
Returns true if this part is a CharacterJoint, false otherwise.
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 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.
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.