| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- /**
- * PANDA 3D SOFTWARE
- * Copyright (c) Carnegie Mellon University. All rights reserved.
- *
- * All use of this software is subject to the terms of the revised BSD
- * license. You should have received a copy of this license along
- * with this source code in a file named "LICENSE."
- *
- * @file modelNode.I
- * @author drose
- * @date 2002-03-16
- */
- /**
- *
- */
- INLINE ModelNode::
- ModelNode(const std::string &name) :
- PandaNode(name)
- {
- _preserve_transform = PT_none;
- _preserve_attributes = 0;
- _transform_limit = 0;
- }
- /**
- * Sets the preserve_transform flag. This restricts the ability of a flatten
- * operation to affect the transform stored on this node, and/or the node
- * itself. In the order from weakest to strongest restrictions, the possible
- * flags are:
- *
- * PT_drop_node - This node should be removed at the next flatten call.
- *
- * PT_none - The transform may be adjusted at will. The node itself will not
- * be removed. This is the default.
- *
- * PT_net - Preserve the net transform from the root, but it's acceptable to
- * modify the local transform stored on this particular node if necessary, so
- * long as the net transform is not changed. This eliminates the need to drop
- * an extra transform on the node above.
- *
- * PT_local - The local (and net) transform should not be changed in any way.
- * If necessary, an extra transform will be left on the node above to
- * guarantee this. This is a stronger restriction than PT_net.
- *
- * PT_no_touch - The local transform will not be changed, the node will not be
- * removed, and furthermore any flatten operation will not continue below this
- * node--this node and all descendents are protected from the effects of
- * flatten.
- */
- INLINE void ModelNode::
- set_preserve_transform(ModelNode::PreserveTransform preserve_transform) {
- _preserve_transform = preserve_transform;
- }
- /**
- * Returns the current setting of the preserve_transform flag. See
- * set_preserve_transform().
- */
- INLINE ModelNode::PreserveTransform ModelNode::
- get_preserve_transform() const {
- return _preserve_transform;
- }
- /**
- * Sets the preserve_attributes flag. This restricts the ability of a flatten
- * operation to affect the render attributes stored on this node.
- *
- * The value should be the union of bits from SceneGraphReducer::AttribTypes
- * that represent the attributes that should *not* be changed.
- */
- INLINE void ModelNode::
- set_preserve_attributes(int preserve_attributes) {
- _preserve_attributes = preserve_attributes;
- }
- /**
- * Returns the current setting of the preserve_attributes flag. See
- * set_preserve_attributes().
- */
- INLINE int ModelNode::
- get_preserve_attributes() const {
- return _preserve_attributes;
- }
- /**
- *
- */
- INLINE ModelNode::
- ModelNode(const ModelNode ©) :
- PandaNode(copy),
- _preserve_transform(copy._preserve_transform),
- _preserve_attributes(copy._preserve_attributes),
- _transform_limit(copy._transform_limit)
- {
- }
|