Panda3D
|
This is a set of zero or more NodePaths. More...
#include "nodePathCollection.h"
Public Member Functions | |
NodePathCollection (const NodePathCollection ©) | |
void | add_path (const NodePath &node_path) |
Adds a new NodePath to the collection. | |
void | add_paths_from (const NodePathCollection &other) |
Adds all the NodePaths indicated in the other collection to this path. | |
void | append (const NodePath &node_path) |
Adds a new NodePath to the collection. | |
void | clear () |
Removes all NodePaths from the collection. | |
void | compose_color_scale (PN_stdfloat r, PN_stdfloat g, PN_stdfloat b, PN_stdfloat a=1.0, int priority=0) |
Applies color scales to all NodePaths in the collection. | |
void | compose_color_scale (const LVecBase4 &scale, int priority=0) |
Applies color scales to all NodePaths in the collection. | |
void | detach () |
Detaches all NodePaths in the collection. | |
void | extend (const NodePathCollection &other) |
Appends the other list onto the end of this one. | |
NodePathCollection | find_all_matches (const string &path) const |
Returns the complete set of all NodePaths that begin with any NodePath in this collection and can be extended by path. | |
CollideMask | get_collide_mask () const |
Returns the union of all of the into_collide_masks for nodes at this level and below. | |
int | get_num_paths () const |
Returns the number of NodePaths in the collection. | |
NodePath | get_path (int index) const |
Returns the nth NodePath in the collection. | |
bool | has_path (const NodePath &path) const |
Returns true if the indicated NodePath appears in this collection, false otherwise. | |
void | hide () |
Hides all NodePaths in the collection. | |
bool | is_empty () const |
Returns true if there are no NodePaths in the collection, false otherwise. | |
void | ls () const |
Lists all the nodes at and below each node in the collection hierarchically. | |
void | ls (ostream &out, int indent_level=0) const |
Lists all the nodes at and below each node in the collection hierarchically. | |
MAKE_SEQ (get_paths, get_num_paths, get_path) | |
NodePathCollection | operator+ (const NodePathCollection &other) const |
Returns a NodePathCollection representing the concatenation of the two lists. | |
void | operator+= (const NodePathCollection &other) |
Appends the other list onto the end of this one. | |
void | operator= (const NodePathCollection ©) |
NodePath | operator[] (int index) const |
Returns the nth NodePath in the collection. | |
void | output (ostream &out) const |
Writes a brief one-line description of the NodePathCollection to the indicated output stream. | |
void | remove_duplicate_paths () |
Removes any duplicate entries of the same NodePaths on this collection. | |
bool | remove_path (const NodePath &node_path) |
Removes the indicated NodePath from the collection. | |
void | remove_paths_from (const NodePathCollection &other) |
Removes from this collection all of the NodePaths listed in the other collection. | |
void | reparent_to (const NodePath &other) |
Reparents all the NodePaths in the collection to the indicated node. | |
void | set_attrib (const RenderAttrib *attrib, int priority=0) |
Applies the indicated RenderAttrib to all NodePaths in the collection. | |
void | set_collide_mask (CollideMask new_mask, CollideMask bits_to_change=CollideMask::all_on(), TypeHandle node_type=TypeHandle::none()) |
Recursively applies the indicated CollideMask to the into_collide_masks for all nodes at this level and below. | |
void | set_color (const LColor &color, int priority=0) |
Colors all NodePaths in the collection. | |
void | set_color (PN_stdfloat r, PN_stdfloat g, PN_stdfloat b, PN_stdfloat a=1.0, int priority=0) |
Colors all NodePaths in the collection. | |
void | set_color_scale (const LVecBase4 &scale, int priority=0) |
Applies color scales to all NodePaths in the collection. | |
void | set_color_scale (PN_stdfloat r, PN_stdfloat g, PN_stdfloat b, PN_stdfloat a=1.0, int priority=0) |
Applies color scales to all NodePaths in the collection. | |
void | set_texture (Texture *tex, int priority=0) |
Adds the indicated texture to the list of textures that will be rendered on the default texture stage. | |
void | set_texture (TextureStage *stage, Texture *tex, int priority=0) |
Adds the indicated texture to the list of textures that will be rendered on the indicated multitexture stage. | |
void | set_texture_off (TextureStage *stage, int priority=0) |
Sets the geometry at this level and below to render using no texture, on the indicated stage. | |
void | set_texture_off (int priority=0) |
Sets the geometry at this level and below to render using no texture, on any stage. | |
void | show () |
Shows all NodePaths in the collection. | |
int | size () const |
Returns the number of paths in the collection. | |
void | stash () |
Stashes all NodePaths in the collection. | |
void | unstash () |
Unstashes all NodePaths in the collection. | |
void | write (ostream &out, int indent_level=0) const |
Writes a complete multi-line description of the NodePathCollection to the indicated output stream. | |
void | wrt_reparent_to (const NodePath &other) |
Reparents all the NodePaths in the collection to the indicated node, adjusting each transform so as not to move in world coordinates. |
This is a set of zero or more NodePaths.
It's handy for returning from functions that need to return multiple NodePaths (for instance, NodePaths::get_children).
Definition at line 29 of file nodePathCollection.h.
void NodePathCollection::add_path | ( | const NodePath & | node_path | ) |
Adds a new NodePath to the collection.
Definition at line 136 of file nodePathCollection.cxx.
Referenced by add_paths_from(), append(), FindApproxLevelEntry::consider_node(), NodePath::get_children(), CharacterJoint::get_local_transforms(), CharacterJoint::get_net_transforms(), and NodePath::get_stashed_children().
void NodePathCollection::add_paths_from | ( | const NodePathCollection & | other | ) |
Adds all the NodePaths indicated in the other collection to this path.
The other paths are simply appended to the end of the paths in this list; duplicates are not automatically removed.
Definition at line 196 of file nodePathCollection.cxx.
References add_path(), get_num_paths(), and get_path().
Referenced by operator+=().
void NodePathCollection::append | ( | const NodePath & | node_path | ) | [inline] |
Adds a new NodePath to the collection.
This method duplicates the add_path() method; it is provided to satisfy Python's naming convention.
Definition at line 56 of file nodePathCollection.I.
References add_path().
void NodePathCollection::clear | ( | ) |
Removes all NodePaths from the collection.
Definition at line 274 of file nodePathCollection.cxx.
void NodePathCollection::compose_color_scale | ( | PN_stdfloat | r, |
PN_stdfloat | g, | ||
PN_stdfloat | b, | ||
PN_stdfloat | a = 1.0 , |
||
int | priority = 0 |
||
) | [inline] |
Applies color scales to all NodePaths in the collection.
The existing color scale, if any, is multiplied by the specified color scale.
Definition at line 112 of file nodePathCollection.I.
void NodePathCollection::compose_color_scale | ( | const LVecBase4 & | scale, |
int | priority = 0 |
||
) |
Applies color scales to all NodePaths in the collection.
The existing color scale, if any, is multiplied by the specified color scale.
Definition at line 651 of file nodePathCollection.cxx.
References NodePath::compose_color_scale(), NodePath::get_state(), and NodePath::set_state().
void NodePathCollection::detach | ( | ) |
Detaches all NodePaths in the collection.
Definition at line 462 of file nodePathCollection.cxx.
References NodePath::detach_node(), get_num_paths(), and get_path().
Referenced by PandaFramework::clear_highlight().
void NodePathCollection::extend | ( | const NodePathCollection & | other | ) | [inline] |
Appends the other list onto the end of this one.
This method duplicates the += operator; it is provided to satisfy Python's naming convention.
Definition at line 68 of file nodePathCollection.I.
References operator+=().
NodePathCollection NodePathCollection::find_all_matches | ( | const string & | path | ) | const |
Returns the complete set of all NodePaths that begin with any NodePath in this collection and can be extended by path.
The shortest paths will be listed first.
Definition at line 361 of file nodePathCollection.cxx.
References FindApproxPath::add_string(), get_num_paths(), get_path(), and is_empty().
CollideMask NodePathCollection::get_collide_mask | ( | ) | const |
Returns the union of all of the into_collide_masks for nodes at this level and below.
This is the same thing as node()->get_net_collide_mask().
If you want to return what the into_collide_mask of this node itself is, without regard to its children, use node()->get_into_collide_mask().
Definition at line 480 of file nodePathCollection.cxx.
References NodePath::get_collide_mask(), get_num_paths(), and get_path().
int NodePathCollection::get_num_paths | ( | ) | const |
Returns the number of NodePaths in the collection.
Definition at line 295 of file nodePathCollection.cxx.
Referenced by add_paths_from(), FindApproxLevelEntry::consider_node(), detach(), find_all_matches(), MeshDrawer::geometry(), get_collide_mask(), has_path(), hide(), ls(), output(), remove_duplicate_paths(), remove_paths_from(), reparent_to(), set_collide_mask(), PhysxTriangleMeshDesc::set_from_node_path(), PhysxConvexMeshDesc::set_from_node_path(), PhysxClothMeshDesc::set_from_node_path(), show(), stash(), unstash(), write(), and wrt_reparent_to().
NodePath NodePathCollection::get_path | ( | int | index | ) | const |
Returns the nth NodePath in the collection.
Definition at line 305 of file nodePathCollection.cxx.
Referenced by add_paths_from(), detach(), NodePath::find(), find_all_matches(), NodePath::find_path_to(), MeshDrawer::geometry(), get_collide_mask(), has_path(), hide(), ls(), remove_duplicate_paths(), remove_paths_from(), reparent_to(), set_collide_mask(), PhysxTriangleMeshDesc::set_from_node_path(), PhysxConvexMeshDesc::set_from_node_path(), PhysxClothMeshDesc::set_from_node_path(), show(), stash(), unstash(), write(), and wrt_reparent_to().
bool NodePathCollection::has_path | ( | const NodePath & | path | ) | const |
Returns true if the indicated NodePath appears in this collection, false otherwise.
Definition at line 259 of file nodePathCollection.cxx.
References get_num_paths(), and get_path().
Referenced by remove_paths_from().
void NodePathCollection::hide | ( | ) |
Hides all NodePaths in the collection.
Definition at line 426 of file nodePathCollection.cxx.
References get_num_paths(), get_path(), and NodePath::hide().
bool NodePathCollection::is_empty | ( | ) | const |
Returns true if there are no NodePaths in the collection, false otherwise.
Definition at line 285 of file nodePathCollection.cxx.
Referenced by NodePath::find(), find_all_matches(), NodePath::find_path_to(), and set_texture_off().
void NodePathCollection::ls | ( | ) | const [inline] |
Lists all the nodes at and below each node in the collection hierarchically.
Definition at line 79 of file nodePathCollection.I.
void NodePathCollection::ls | ( | ostream & | out, |
int | indent_level = 0 |
||
) | const |
Lists all the nodes at and below each node in the collection hierarchically.
Definition at line 343 of file nodePathCollection.cxx.
References get_num_paths(), get_path(), and NodePath::ls().
NodePathCollection NodePathCollection::operator+ | ( | const NodePathCollection & | other | ) | const [inline] |
Returns a NodePathCollection representing the concatenation of the two lists.
Definition at line 42 of file nodePathCollection.I.
void NodePathCollection::operator+= | ( | const NodePathCollection & | other | ) | [inline] |
Appends the other list onto the end of this one.
Definition at line 31 of file nodePathCollection.I.
References add_paths_from().
Referenced by extend().
NodePath NodePathCollection::operator[] | ( | int | index | ) | const |
Returns the nth NodePath in the collection.
This is the same as get_path(), but it may be a more convenient way to access it.
Definition at line 319 of file nodePathCollection.cxx.
void NodePathCollection::output | ( | ostream & | out | ) | const |
Writes a brief one-line description of the NodePathCollection to the indicated output stream.
Definition at line 708 of file nodePathCollection.cxx.
References get_num_paths().
void NodePathCollection::remove_duplicate_paths | ( | ) |
Removes any duplicate entries of the same NodePaths on this collection.
If a NodePath appears multiple times, the first appearance is retained; subsequent appearances are removed.
Definition at line 232 of file nodePathCollection.cxx.
References get_num_paths(), and get_path().
bool NodePathCollection::remove_path | ( | const NodePath & | node_path | ) |
Removes the indicated NodePath from the collection.
Returns true if the path was removed, false if it was not a member of the collection.
Definition at line 159 of file nodePathCollection.cxx.
void NodePathCollection::remove_paths_from | ( | const NodePathCollection & | other | ) |
Removes from this collection all of the NodePaths listed in the other collection.
Definition at line 211 of file nodePathCollection.cxx.
References get_num_paths(), get_path(), and has_path().
void NodePathCollection::reparent_to | ( | const NodePath & | other | ) |
Reparents all the NodePaths in the collection to the indicated node.
Definition at line 388 of file nodePathCollection.cxx.
References get_num_paths(), get_path(), and NodePath::reparent_to().
void NodePathCollection::set_attrib | ( | const RenderAttrib * | attrib, |
int | priority = 0 |
||
) |
Applies the indicated RenderAttrib to all NodePaths in the collection.
An effort is made to apply the attrib to many NodePaths as quickly as possible; redundant RenderState compositions are not duplicated.
Definition at line 681 of file nodePathCollection.cxx.
References NodePath::get_state(), NodePath::set_attrib(), and NodePath::set_state().
Referenced by set_color(), and set_texture_off().
void NodePathCollection::set_collide_mask | ( | CollideMask | new_mask, |
CollideMask | bits_to_change = CollideMask::all_on() , |
||
TypeHandle | node_type = TypeHandle::none() |
||
) |
Recursively applies the indicated CollideMask to the into_collide_masks for all nodes at this level and below.
Only nodes
The default is to change all bits, but if bits_to_change is not all bits on, then only the bits that are set in bits_to_change are modified, allowing this call to change only a subset of the bits in the subgraph.
Definition at line 502 of file nodePathCollection.cxx.
References get_num_paths(), get_path(), and NodePath::set_collide_mask().
void NodePathCollection::set_color | ( | PN_stdfloat | r, |
PN_stdfloat | g, | ||
PN_stdfloat | b, | ||
PN_stdfloat | a = 1.0 , |
||
int | priority = 0 |
||
) | [inline] |
Colors all NodePaths in the collection.
Definition at line 89 of file nodePathCollection.I.
void NodePathCollection::set_color | ( | const LColor & | color, |
int | priority = 0 |
||
) |
Colors all NodePaths in the collection.
Definition at line 612 of file nodePathCollection.cxx.
References set_attrib().
void NodePathCollection::set_color_scale | ( | PN_stdfloat | r, |
PN_stdfloat | g, | ||
PN_stdfloat | b, | ||
PN_stdfloat | a = 1.0 , |
||
int | priority = 0 |
||
) | [inline] |
Applies color scales to all NodePaths in the collection.
The existing color scale is replaced.
Definition at line 100 of file nodePathCollection.I.
void NodePathCollection::set_color_scale | ( | const LVecBase4 & | scale, |
int | priority = 0 |
||
) |
Applies color scales to all NodePaths in the collection.
The existing color scale is replaced.
Definition at line 623 of file nodePathCollection.cxx.
References NodePath::get_state(), NodePath::set_color_scale(), and NodePath::set_state().
void NodePathCollection::set_texture | ( | Texture * | tex, |
int | priority = 0 |
||
) |
Adds the indicated texture to the list of textures that will be rendered on the default texture stage.
This is the deprecated single-texture variant of this method; it is now superceded by set_texture() that accepts a stage and texture. However, this method may be used in the presence of multitexture if you just want to adjust the default stage.
Definition at line 522 of file nodePathCollection.cxx.
References TextureStage::get_default().
void NodePathCollection::set_texture | ( | TextureStage * | stage, |
Texture * | tex, | ||
int | priority = 0 |
||
) |
Adds the indicated texture to the list of textures that will be rendered on the indicated multitexture stage.
If there are multiple texture stages specified (possibly on multiple different nodes at different levels), they will all be applied to geometry together, according to the stage specification set up in the TextureStage object.
Definition at line 539 of file nodePathCollection.cxx.
References NodePath::get_state(), NodePath::set_state(), and NodePath::set_texture().
void NodePathCollection::set_texture_off | ( | int | priority = 0 | ) |
Sets the geometry at this level and below to render using no texture, on any stage.
This is different from not specifying a texture; rather, this specifically contradicts set_texture() at a higher node level (or, with a priority, overrides a set_texture() at a lower level).
Definition at line 570 of file nodePathCollection.cxx.
References is_empty(), and set_attrib().
void NodePathCollection::set_texture_off | ( | TextureStage * | stage, |
int | priority = 0 |
||
) |
Sets the geometry at this level and below to render using no texture, on the indicated stage.
This is different from not specifying a texture; rather, this specifically contradicts set_texture() at a higher node level (or, with a priority, overrides a set_texture() at a lower level).
Definition at line 586 of file nodePathCollection.cxx.
References NodePath::get_state(), NodePath::set_state(), and NodePath::set_texture_off().
void NodePathCollection::show | ( | ) |
Shows all NodePaths in the collection.
Definition at line 414 of file nodePathCollection.cxx.
References get_num_paths(), get_path(), and NodePath::show().
int NodePathCollection::size | ( | ) | const |
Returns the number of paths in the collection.
This is the same thing as get_num_paths().
Definition at line 332 of file nodePathCollection.cxx.
void NodePathCollection::stash | ( | ) |
Stashes all NodePaths in the collection.
Definition at line 438 of file nodePathCollection.cxx.
References get_num_paths(), get_path(), and NodePath::stash().
void NodePathCollection::unstash | ( | ) |
Unstashes all NodePaths in the collection.
Definition at line 450 of file nodePathCollection.cxx.
References get_num_paths(), get_path(), and NodePath::unstash().
Referenced by NodePath::unstash_all().
void NodePathCollection::write | ( | ostream & | out, |
int | indent_level = 0 |
||
) | const |
Writes a complete multi-line description of the NodePathCollection to the indicated output stream.
Definition at line 723 of file nodePathCollection.cxx.
References get_num_paths(), and get_path().
void NodePathCollection::wrt_reparent_to | ( | const NodePath & | other | ) |
Reparents all the NodePaths in the collection to the indicated node, adjusting each transform so as not to move in world coordinates.
Definition at line 402 of file nodePathCollection.cxx.
References get_num_paths(), get_path(), and NodePath::wrt_reparent_to().