18 #include "pandabase.h"
19 #include "nurbsCurveEvaluator.h"
20 #include "pandaNode.h"
21 #include "pStatCollector.h"
22 #include "geomVertexFormat.h"
45 virtual void output(ostream &out)
const;
46 virtual void write(ostream &out,
int indent_level = 0)
const;
103 INLINE
void set_render_mode(RenderMode render_mode);
104 INLINE RenderMode get_render_mode()
const;
106 INLINE
void set_uv_mode(UVMode uv_mode);
107 INLINE UVMode get_uv_mode()
const;
109 INLINE
void set_uv_direction(
bool u_dominant);
110 INLINE
bool get_uv_direction()
const;
112 INLINE
void set_uv_scale(PN_stdfloat scale);
113 INLINE PN_stdfloat get_uv_scale()
const;
115 INLINE
void set_normal_mode(NormalMode normal_mode);
116 INLINE NormalMode get_normal_mode()
const;
118 INLINE
void set_tube_up(
const LVector3 &tube_up);
119 INLINE
const LVector3 &get_tube_up()
const;
121 INLINE
void set_use_vertex_color(
bool flag);
122 INLINE
bool get_use_vertex_color()
const;
123 INLINE
static int get_vertex_color_dimension();
125 INLINE
void set_num_subdiv(
int num_subdiv);
126 INLINE
int get_num_subdiv()
const;
128 INLINE
void set_num_slices(
int num_slices);
129 INLINE
int get_num_slices()
const;
131 INLINE
void set_use_vertex_thickness(
bool flag);
132 INLINE
bool get_use_vertex_thickness()
const;
133 INLINE
static int get_vertex_thickness_dimension();
135 INLINE
void set_thickness(PN_stdfloat thickness);
136 INLINE PN_stdfloat get_thickness()
const;
138 INLINE
void set_matrix(
const LMatrix4 &matrix);
139 INLINE
void clear_matrix();
140 INLINE
bool has_matrix()
const;
141 INLINE
const LMatrix4 &get_matrix()
const;
143 void reset_bound(
const NodePath &rel_to);
146 virtual void compute_internal_bounds(CPT(
BoundingVolume) &internal_bounds,
147 int &internal_vertices,
149 Thread *current_thread)
const;
152 CPT(GeomVertexFormat) get_format(
bool support_normals)
const;
156 Thread *current_thread)
const;
170 PN_stdfloat _thickness;
181 int num_curve_verts)
const;
188 int &num_verts_per_slice,
195 static PN_stdfloat compute_uv_t(PN_stdfloat &dist,
const UVMode &uv_mode,
202 class EXPCL_PANDA_PARAMETRICS CData :
public CycleData {
205 INLINE CData(
const CData ©);
210 return RopeNode::get_class_type();
214 RenderMode _render_mode;
217 PN_stdfloat _uv_scale;
218 NormalMode _normal_mode;
222 bool _use_vertex_color;
225 bool _use_vertex_thickness;
226 PN_stdfloat _thickness;
236 static void register_with_read_factory();
247 static void init_type() {
248 PandaNode::init_type();
249 register_type(_type_handle,
"RopeNode",
250 PandaNode::get_class_type());
253 return get_class_type();
255 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
261 #include "ropeNode.I"
A basic node of the scene graph or data graph.
This is the fundamental interface for extracting binary objects from a Bam file, as generated by a Ba...
A single page of data maintained by a PipelineCycler.
This class is an abstraction for evaluating NURBS curves.
Base class for objects that can be written to and read from Bam files.
This is an "unaligned" LVecBase4.
This collects together the pieces of data that are accumulated for each node while walking the scene ...
virtual PandaNode * make_copy() const
Returns a newly-allocated PandaNode that is a shallow copy of this one.
This class draws a visible representation of the NURBS curve stored in its NurbsCurveEvaluator.
This is a three-component vector distance (as opposed to a three-component point, which represents a ...
This is a three-component point in space (as opposed to a three-component vector, which represents a ...
This is the fundamental interface for writing binary objects to a Bam file, to be extracted later by ...
This template class calls PipelineCycler::read_unlocked(), and then provides a transparent read-only ...
This is our own Panda specialization on the default STL vector.
This is an abstract class for any volume in any sense which can be said to define the locality of ref...
A lightweight class that represents a single element that may be timed and/or counted via stats...
This is a 4-by-4 transform matrix.
virtual bool safe_to_transform() const
Returns true if it is generally safe to transform this particular kind of PandaNode by calling the xf...
This defines the actual numeric vertex data stored in a Geom, in the structure defined by a particula...
An instance of this class is passed to the Factory when requesting it to do its business and construc...
virtual bool is_renderable() const
Returns true if there is some value to visiting this particular node during the cull traversal for an...
This template class calls PipelineCycler::write() in the constructor and PipelineCycler::release_writ...
virtual void fillin(DatagramIterator &scan, BamReader *manager)
This internal function is intended to be called by each class's make_from_bam() method to read in all...
A thread; that is, a lightweight process.
A class to retrieve the individual data elements previously stored in a Datagram. ...
virtual void write_datagram(BamWriter *, Datagram &) const
Writes the contents of this object to the datagram for shipping out to a Bam file.
TypeHandle is the identifier used to differentiate C++ class types.
An ordered list of data elements, formatted in memory for transmission over a socket or writing to a ...
The result of a NurbsCurveEvaluator.
NodePath is the fundamental system for disambiguating instances, and also provides a higher-level int...
This object performs a depth-first traversal of the scene graph, with optional view-frustum culling...
virtual bool cull_callback(CullTraverser *trav, CullTraverserData &data)
This function will be called during the cull traversal to perform any additional operations that shou...