historical/toontown-classic.git/panda/include/partBundleNode.I
2024-01-16 11:20:27 -06:00

70 lines
1.6 KiB
Text

/**
* 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 partBundleNode.I
* @author drose
* @date 2002-03-06
*/
/**
* The PartBundle and its node should be constructed together. Generally, the
* derived classes of PartBundleNode will automatically create a PartBundle of
* the appropriate type, and pass it up to this constructor.
*/
INLINE PartBundleNode::
PartBundleNode(const std::string &name, PartBundle *bundle) :
PandaNode(name)
{
add_bundle(bundle);
}
/**
* For internal use only.
*/
INLINE PartBundleNode::
PartBundleNode() : PandaNode("") {
}
/**
* Use make_copy() or copy_subgraph() to copy one of these.
*
* This constructor does not copy the bundle pointers.
*/
INLINE PartBundleNode::
PartBundleNode(const PartBundleNode &copy) :
PandaNode(copy)
{
}
/**
*
*/
INLINE int PartBundleNode::
get_num_bundles() const {
return _bundles.size();
}
/**
*
*/
INLINE PartBundle *PartBundleNode::
get_bundle(int n) const {
nassertr(n >= 0 && n < (int)_bundles.size(), nullptr);
return _bundles[n]->get_bundle();
}
/**
* Returns the PartBundleHandle that wraps around the actual nth PartBundle.
* While the PartBundle pointer might later change due to a future flatten
* operation, the PartBundleHandle will not.
*/
INLINE PartBundleHandle *PartBundleNode::
get_bundle_handle(int n) const {
nassertr(n >= 0 && n < (int)_bundles.size(), nullptr);
return _bundles[n];
}