76 lines
3.0 KiB
Plaintext
76 lines
3.0 KiB
Plaintext
// Filename: sceneGraphReducer.I
|
|
// Created by: drose (14Mar02)
|
|
//
|
|
////////////////////////////////////////////////////////////////////
|
|
//
|
|
// 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
|
|
// panda3d-general@lists.sourceforge.net .
|
|
//
|
|
////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: SceneGraphReducer::Constructor
|
|
// Access: Published
|
|
// Description:
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE SceneGraphReducer::
|
|
SceneGraphReducer() {
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: SceneGraphReducer::Destructor
|
|
// Access: Published
|
|
// Description:
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE SceneGraphReducer::
|
|
~SceneGraphReducer() {
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: SceneGraphReducer::apply_attribs
|
|
// Access: Published
|
|
// Description: Walks the scene graph, accumulating attribs of
|
|
// the indicated types, applying them to the vertices,
|
|
// and removing them from the scene graph. This has a
|
|
// performance optimization benefit in itself, but is
|
|
// especially useful to pave the way for a call to
|
|
// flatten() and greatly improve the effectiveness of
|
|
// the flattening operation.
|
|
//
|
|
// Multiply instanced geometry is duplicated before the
|
|
// attribs are applied.
|
|
//
|
|
// Of course, this operation does make certain dynamic
|
|
// operations impossible.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE void SceneGraphReducer::
|
|
apply_attribs(PandaNode *node, int attrib_types) {
|
|
AccumulatedAttribs attribs;
|
|
r_apply_attribs(node, attribs, attrib_types, _transformer);
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: SceneGraphReducer::apply_attribs
|
|
// Access: Published
|
|
// Description: This flavor of apply_attribs() can be called
|
|
// recursively from within another flatten process
|
|
// (e.g. from PandaNode::apply_attribs_to_vertices()).
|
|
// The parameters were presumably received from a parent
|
|
// SceneGraphReducer object.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE void SceneGraphReducer::
|
|
apply_attribs(PandaNode *node, const AccumulatedAttribs &attribs,
|
|
int attrib_types, GeomTransformer &transformer) {
|
|
r_apply_attribs(node, attribs, attrib_types, transformer);
|
|
}
|