egg-object-type-notouch

This commit is contained in:
David Rose 2008-12-04 21:17:42 +00:00
parent 227c7c3497
commit 8a180e8d09
4 changed files with 14 additions and 2 deletions

View File

@ -62,9 +62,12 @@ egg-object-type-indexed <Scalar> indexed { 1 }
# indicate nodes that should not be flattened out of the hierarchy
# during the conversion process. DCS goes one step further and
# indicates that the node's transform is important and should be
# preserved (DCS stands for Dynamic Coordinate System).
# preserved (DCS stands for Dynamic Coordinate System). Notouch is
# even stronger, and means not to do any flattening below the node at
# all.
egg-object-type-model <Model> { 1 }
egg-object-type-dcs <DCS> { 1 }
egg-object-type-notouch <DCS> { no_touch }
# The following define various kinds of collision geometry. These
# mark the geometry at this level and below as invisible collision

View File

@ -899,6 +899,8 @@ string_dcs_type(const string &strval) {
return DC_local;
} else if (cmp_nocase_uh(strval, "net") == 0) {
return DC_net;
} else if (cmp_nocase_uh(strval, "no_touch") == 0) {
return DC_no_touch;
} else if (cmp_nocase_uh(strval, "default") == 0) {
return DC_default;
} else {
@ -1369,6 +1371,8 @@ ostream &operator << (ostream &out, EggGroup::DCSType t) {
return out << "local";
case EggGroup::DC_net:
return out << "net";
case EggGroup::DC_no_touch:
return out << "no_touch";
case EggGroup::DC_default:
return out << "1";
}

View File

@ -59,7 +59,8 @@ PUBLISHED:
DC_none = 0x00000010,
DC_local = 0x00000020,
DC_net = 0x00000030,
DC_default = 0x00000040,
DC_no_touch = 0x00000040,
DC_default = 0x00000050,
};
enum BillboardType {
// The bits here must correspond to those in Flags, below.

View File

@ -1854,6 +1854,10 @@ make_node(EggGroup *egg_group, PandaNode *parent) {
DCAST(ModelNode, node)->set_preserve_transform(ModelNode::PT_net);
break;
case EggGroup::DC_no_touch:
DCAST(ModelNode, node)->set_preserve_transform(ModelNode::PT_no_touch);
break;
case EggGroup::DC_local:
case EggGroup::DC_default:
DCAST(ModelNode, node)->set_preserve_transform(ModelNode::PT_local);