15 #ifndef SOFTNODEDESC_H 16 #define SOFTNODEDESC_H 25 #include "pandatoolbase.h" 27 #include "eggVertex.h" 28 #include "eggVertexPool.h" 29 #include "referenceCount.h" 30 #include "pointerTo.h" 70 void mark_joint_parent();
71 void check_joint_parent();
72 void check_junk(
bool parent_junk);
73 void check_pseudo_joints(
bool joint_above);
75 void set_parentJoint(SAA_Scene *scene,
SoftNodeDesc *lastJoint);
93 JointType _joint_type;
98 int *uRepeat, *vRepeat;
99 PN_stdfloat matrix[4][4];
101 const char *fullname;
116 PN_stdfloat *uOffset;
117 PN_stdfloat *vOffset;
124 SAA_SubElem *triangles;
127 EggGroup *get_egg_group()
const {
return _egg_group;}
145 static void init_type() {
146 ReferenceCount::init_type();
147 Namable::init_type();
148 register_type(_type_handle,
"SoftNodeDesc",
149 ReferenceCount::get_class_type(),
150 Namable::get_class_type());
bool has_model() const
Returns true if a Soft dag path has been associated with this node, false otherwise.
void get_joint_transform(SAA_Scene *scene, EggGroup *egg_group, EggXfmSAnim *anim, bool global)
Extracts the transform on the indicated Soft node, as appropriate for a joint in an animated characte...
void force_set_parent(SoftNodeDesc *parent)
Sometimes, parent is not known at node creation As soon as it is known, set the parent.
void make_linear_morph_table(int numShapes, PN_stdfloat time)
Given a scene, a model, its name, and the time, get the shape fcurve for the model and determine the ...
void make_expression_morph_table(int numShapes, PN_stdfloat time)
Given a scene, a model and its number of key shapes generate a morph table describing transitions btw...
SAA_Elem * get_model() const
Returns the SAA_Elem * associated with this node.
Describes a complete tree of soft nodes for conversion.
The main glue of the egg hierarchy, this corresponds to the <Group>, <Instance>, and <Joint> type nod...
A base class for all things which can have a name.
bool is_joint_parent() const
Returns true if the node is the parent or ancestor of a joint.
bool is_partial(char *search_prefix)
check to see if this is a selected branch we want to descend - this will prevent creating geometry fo...
This corresponds to an <Xfm$Anim_S$> entry, which is a collection of up to nine <S$Anim> entries that...
void make_vertex_offsets(int numShapes)
Given a scene, a model , the vertices of its original shape and its name find the difference between ...
Describes a single instance of a node aka element in the Soft scene graph, relating it to the corresp...
void set_joint()
sets the _joint_type to JT_joint
void make_weighted_morph_table(int numShapes, PN_stdfloat time)
Given a scene, a model, a list of all models in the scene, the number of models in the scece...
void load_nurbs_model(SAA_Scene *scene, SAA_ModelType type)
Converts the indicated Soft polyset to a bunch of EggPolygons and parents them to the indicated egg g...
This class supervises the construction of an EggData structure from a single Softimage file...
A base class for all things that want to be reference-counted.
This is a three-component point in space (as opposed to a three-component vector, which represents a ...
void set_parent(SoftNodeDesc *parent)
Sometimes, parent is not known at node creation As soon as it is known, set the parent.
int find_shape_vert(LPoint3d p3d, SAA_DVector *vertices, int numVert)
given a vertex, find its corresponding shape vertex and return its index.
void get_transform(SAA_Scene *scene, EggGroup *egg_group, bool global)
Extracts the transform on the indicated Soft node, and applies it to the corresponding Egg node...
TypeHandle is the identifier used to differentiate C++ class types.
void set_model(SAA_Elem *model)
Indicates an associated between the SoftNodeDesc and some SAA_Elem instance.
bool is_joint() const
Returns true if the node should be treated as a joint by the converter.
void load_poly_model(SAA_Scene *scene, SAA_ModelType type)
Converts the indicated Soft polyset to a bunch of EggPolygons and parents them to the indicated egg g...
void make_morph_table(PN_stdfloat time)
Given a scene, a model, a name and a frame time, determine what type of shape interpolation is used a...
bool is_junk() const
Returns true if the node should be treated as a junk by the converter.