| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- // Filename: modelNode.I
- // Created by: drose (16Mar02)
- //
- ////////////////////////////////////////////////////////////////////
- //
- // PANDA 3D SOFTWARE
- // Copyright (c) 2001 - 2004, Disney Enterprises, Inc. All rights reserved
- //
- // All use of this software is subject to the terms of the Panda 3d
- // Software license. You should have received a copy of this license
- // along with this source code; you will also find a current copy of
- // the license at http://etc.cmu.edu/panda3d/docs/license/ .
- //
- // To contact the maintainers of this program write to
- // [email protected] .
- //
- ////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////
- // Function: ModelNode::Constructor
- // Access: Public
- // Description:
- ////////////////////////////////////////////////////////////////////
- INLINE ModelNode::
- ModelNode(const string &name) :
- PandaNode(name)
- {
- _preserve_transform = PT_none;
- _preserve_attributes = 0;
- }
- ////////////////////////////////////////////////////////////////////
- // Function: ModelNode::set_preserve_transform
- // Access: Public
- // Description: Sets the preserve_transform flag. This restricts the
- // ability of a flatten operation to affect the
- // transform stored on this node. If the flag is:
- //
- // PT_none - the transform may be adjusted at will.
- //
- // 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 the strongest restriction.
- //
- // 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.
- ////////////////////////////////////////////////////////////////////
- INLINE void ModelNode::
- set_preserve_transform(ModelNode::PreserveTransform preserve_transform) {
- _preserve_transform = preserve_transform;
- }
- ////////////////////////////////////////////////////////////////////
- // Function: ModelNode::get_preserve_transform
- // Access: Public
- // Description: Returns the current setting of the preserve_transform
- // flag. See set_preserve_transform().
- ////////////////////////////////////////////////////////////////////
- INLINE ModelNode::PreserveTransform ModelNode::
- get_preserve_transform() const {
- return _preserve_transform;
- }
- ////////////////////////////////////////////////////////////////////
- // Function: ModelNode::set_preserve_attributes
- // Access: Public
- // Description: 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;
- }
- ////////////////////////////////////////////////////////////////////
- // Function: ModelNode::get_preserve_attributes
- // Access: Public
- // Description: Returns the current setting of the preserve_attributes
- // flag. See set_preserve_attributes().
- ////////////////////////////////////////////////////////////////////
- INLINE int ModelNode::
- get_preserve_attributes() const {
- return _preserve_attributes;
- }
- ////////////////////////////////////////////////////////////////////
- // Function: ModelNode::Copy Constructor
- // Access: Protected
- // Description:
- ////////////////////////////////////////////////////////////////////
- INLINE ModelNode::
- ModelNode(const ModelNode ©) :
- PandaNode(copy),
- _preserve_transform(copy._preserve_transform),
- _preserve_attributes(copy._preserve_attributes)
- {
- }
|