26 if (max_node !=
nullptr) {
27 const TCHAR *max_name = max_node->GetName();
31 wcstombs(name_mb, max_name, 1023);
42 _joint_type = JT_none;
43 _joint_entry =
nullptr;
46 if (_parent !=
nullptr) {
47 _parent->_children.push_back(
this);
62 if (_max_node ==
nullptr) {
72 Control *c = max_node->GetTMController();
73 if (_max_node->GetBoneNodeOnOff() ||
75 ((c->ClassID() == BIPSLAVE_CONTROL_CLASS_ID) ||
76 (c->ClassID() == BIPBODY_CONTROL_CLASS_ID) ||
77 (c->ClassID() == FOOTPRINT_CLASS_ID)))) {
80 _joint_type = JT_node_joint;
81 if (_parent !=
nullptr) {
82 _parent->mark_joint_parent();
94 return (_max_node !=
nullptr);
103 nassertr(_max_node !=
nullptr, _max_node);
109 set_joint(
bool onoff) {
111 _joint_type = JT_joint;
113 _joint_type = JT_none;
121 return _joint_type == JT_joint || _joint_type == JT_pseudo_joint;
129 return _joint_type == JT_joint_parent;
137 return _joint_type == JT_node_joint;
145 _egg_group =
nullptr;
146 _egg_table =
nullptr;
149 Children::const_iterator ci;
150 for (ci = _children.begin(); ci != _children.end(); ++ci) {
161 mark_joint_parent() {
162 if (_joint_type == JT_none) {
163 _joint_type = JT_joint_parent;
164 if (_parent !=
nullptr) {
165 _parent->mark_joint_parent();
176 check_pseudo_joints(
bool joint_above) {
177 if (_joint_type == JT_joint_parent && joint_above) {
180 _joint_type = JT_pseudo_joint;
183 if (_joint_type == JT_joint) {
191 if (_joint_type != JT_none) {
192 Children::const_iterator ci;
193 for (ci = _children.begin(); ci != _children.end(); ++ci) {
195 child->check_pseudo_joints(joint_above);
bool is_joint() const
Returns true if the node should be treated as a joint by the converter.
bool is_node_joint() const
Returns true if the node is the parent or ancestor of a joint.
void from_INode(INode *max_node)
Indicates an associated between the MaxNodeDesc and some Max Node instance.
bool is_joint_parent() const
Returns true if the node is the parent or ancestor of a joint.
MaxNodeDesc(MaxNodeDesc *parent=nullptr, INode *max_node=nullptr)
Creates a MaxNodeDesc.
Describes a single instance of a node in the Max scene graph, relating it to the corresponding egg st...
INode * get_max_node() const
Returns the INode associated with this node.
bool has_max_node() const
Returns true if a Max INode has been associated with this node, false otherwise.
TypeHandle is the identifier used to differentiate C++ class types.