15 #ifndef NODEPATHCOMPONENT_H
16 #define NODEPATHCOMPONENT_H
18 #include "pandabase.h"
20 #include "pandaNode.h"
21 #include "pointerTo.h"
22 #include "referenceCount.h"
23 #include "cycleData.h"
24 #include "cycleDataReader.h"
25 #include "cycleDataWriter.h"
26 #include "cycleDataLockedStageReader.h"
27 #include "cycleDataStageReader.h"
28 #include "cycleDataStageWriter.h"
29 #include "lightMutex.h"
30 #include "deletedChain.h"
51 int pipeline_stage,
Thread *current_thread);
53 INLINE
void operator = (
const NodePathComponent ©);
56 INLINE ~NodePathComponent();
57 ALLOC_DELETED_CHAIN(NodePathComponent);
60 INLINE
bool has_key()
const;
62 bool is_top_node(
int pipeline_stage,
Thread *current_thread)
const;
64 NodePathComponent *get_next(
int pipeline_stage,
Thread *current_thread)
const;
65 int get_length(
int pipeline_stage,
Thread *current_thread)
const;
67 bool fix_length(
int pipeline_stage,
Thread *current_thread);
69 void output(ostream &out)
const;
72 void set_next(NodePathComponent *next,
int pipeline_stage,
Thread *current_thread);
73 void set_top_node(
int pipeline_stage,
Thread *current_thread);
83 class EXPCL_PANDA_PGRAPH CData :
public CycleData {
86 CData(
const CData ©);
87 ALLOC_DELETED_CHAIN(CData);
90 return NodePathComponent::get_class_type();
93 PT(NodePathComponent) _next;
100 static void init_type() {
101 register_type(_type_handle,
"NodePathComponent::CData");
115 static int _next_key;
122 static void init_type() {
123 ReferenceCount::init_type();
124 register_type(_type_handle,
"NodePathComponent",
125 ReferenceCount::get_class_type());
136 #include "nodePathComponent.I"
A basic node of the scene graph or data graph.
This class is similar to CycleDataWriter, except it allows writing to a particular stage of the pipel...
A single page of data maintained by a PipelineCycler.
This template class calls PipelineCycler::read_unlocked(), and then provides a transparent read-only ...
This template class calls PipelineCycler::write() in the constructor and PipelineCycler::release_writ...
This class is similar to CycleDataLockedReader, except it allows reading from a particular stage of t...
This class is similar to CycleDataReader, except it allows reading from a particular stage of the pip...
A base class for all things that want to be reference-counted.
A thread; that is, a lightweight process.
TypeHandle is the identifier used to differentiate C++ class types.
This is a standard, non-reentrant mutex, similar to the Mutex class.
This is one component of a NodePath.