Panda3D
nodePathComponent.I
Go to the documentation of this file.
1 /**
2  * PANDA 3D SOFTWARE
3  * Copyright (c) Carnegie Mellon University. All rights reserved.
4  *
5  * All use of this software is subject to the terms of the revised BSD
6  * license. You should have received a copy of this license along
7  * with this source code in a file named "LICENSE."
8  *
9  * @file nodePathComponent.I
10  * @author drose
11  * @date 2002-02-25
12  */
13 
14 /**
15  *
16  */
17 INLINE NodePathComponent::CData::
18 CData() {
19  _length = 1;
20 }
21 
22 /**
23  *
24  */
25 INLINE NodePathComponent::CData::
26 CData(const NodePathComponent::CData &copy) :
27  _next(copy._next),
28  _length(copy._length)
29 {
30 }
31 
32 /**
33  *
34  */
35 INLINE NodePathComponent::
36 ~NodePathComponent() {
37  nassertv(_node != nullptr);
38  _node->delete_component(this);
39 }
40 
41 /**
42  * Returns the node referenced by this component.
43  */
45 get_node() const {
46  nassertr(_node != nullptr, _node);
47  return _node;
48 }
49 
50 /**
51  * Returns true if the key for this component has already been generated,
52  * false otherwise. Even if this returns false, calling get_key() will still
53  * return a valid key; that will simply cause the key to be generated on-the-
54  * fly.
55  */
56 INLINE bool NodePathComponent::
57 has_key() const {
58  return (_key != 0);
59 }
60 
61 /**
62  * Returns the next component in the path.
63  */
65 get_next(int pipeline_stage, Thread *current_thread) const {
66  CDStageReader cdata(_cycler, pipeline_stage, current_thread);
67  return cdata->_next;
68 }
69 
70 INLINE std::ostream &operator << (std::ostream &out, const NodePathComponent &comp) {
71  comp.output(out);
72  return out;
73 }
A basic node of the scene graph or data graph.
Definition: pandaNode.h:64
PandaNode * get_node() const
Returns the node referenced by this component.
bool has_key() const
Returns true if the key for this component has already been generated, false otherwise.
void output(std::ostream &out) const
The recursive implementation of NodePath::output(), this writes the names of each node component in o...
NodePathComponent * get_next(int pipeline_stage, Thread *current_thread) const
Returns the next component in the path.
This class is similar to CycleDataReader, except it allows reading from a particular stage of the pip...
A thread; that is, a lightweight process.
Definition: thread.h:46
This is one component of a NodePath.