36 explicit RopeNode(
const std::string &name);
41 virtual void output(std::ostream &out)
const;
42 virtual void write(std::ostream &out,
int indent_level = 0)
const;
97 INLINE
void set_render_mode(RenderMode render_mode);
98 INLINE RenderMode get_render_mode()
const;
100 INLINE
void set_uv_mode(UVMode uv_mode);
101 INLINE UVMode get_uv_mode()
const;
103 INLINE
void set_uv_direction(
bool u_dominant);
104 INLINE
bool get_uv_direction()
const;
106 INLINE
void set_uv_scale(PN_stdfloat scale);
107 INLINE PN_stdfloat get_uv_scale()
const;
109 INLINE
void set_normal_mode(NormalMode normal_mode);
110 INLINE NormalMode get_normal_mode()
const;
112 INLINE
void set_tube_up(
const LVector3 &tube_up);
113 INLINE
const LVector3 &get_tube_up()
const;
115 INLINE
void set_use_vertex_color(
bool flag);
116 INLINE
bool get_use_vertex_color()
const;
117 INLINE
static int get_vertex_color_dimension();
119 INLINE
void set_num_subdiv(
int num_subdiv);
120 INLINE
int get_num_subdiv()
const;
122 INLINE
void set_num_slices(
int num_slices);
123 INLINE
int get_num_slices()
const;
125 INLINE
void set_use_vertex_thickness(
bool flag);
126 INLINE
bool get_use_vertex_thickness()
const;
127 INLINE
static int get_vertex_thickness_dimension();
129 INLINE
void set_thickness(PN_stdfloat thickness);
130 INLINE PN_stdfloat get_thickness()
const;
132 INLINE
void set_matrix(
const LMatrix4 &matrix);
133 INLINE
void clear_matrix();
134 INLINE
bool has_matrix()
const;
135 INLINE
const LMatrix4 &get_matrix()
const;
137 void reset_bound(
const NodePath &rel_to);
140 MAKE_PROPERTY(curve, get_curve, set_curve);
141 MAKE_PROPERTY(render_mode, get_render_mode, set_render_mode);
142 MAKE_PROPERTY(uv_mode, get_uv_mode, set_uv_mode);
143 MAKE_PROPERTY(uv_direction, get_uv_direction, set_uv_direction);
144 MAKE_PROPERTY(uv_scale, get_uv_scale, set_uv_scale);
145 MAKE_PROPERTY(normal_mode, get_normal_mode, set_normal_mode);
146 MAKE_PROPERTY(tube_up, get_tube_up, set_tube_up);
147 MAKE_PROPERTY(use_vertex_color, get_use_vertex_color, set_use_vertex_color);
148 MAKE_PROPERTY(vertex_color_dimension, get_vertex_color_dimension);
149 MAKE_PROPERTY(num_subdiv, get_num_subdiv, set_num_subdiv);
150 MAKE_PROPERTY(num_slices, get_num_slices, set_num_slices);
151 MAKE_PROPERTY(use_vertex_thickness, get_use_vertex_thickness, set_use_vertex_thickness);
152 MAKE_PROPERTY(vertex_thickness_dimension, get_vertex_thickness_dimension);
153 MAKE_PROPERTY(thickness, get_thickness, set_thickness);
154 MAKE_PROPERTY2(matrix, has_matrix, get_matrix, set_matrix, clear_matrix);
157 virtual void compute_internal_bounds(CPT(
BoundingVolume) &internal_bounds,
158 int &internal_vertices,
160 Thread *current_thread)
const;
167 Thread *current_thread)
const;
180 UnalignedLVecBase4 _c;
181 PN_stdfloat _thickness;
187 int get_connected_segments(CurveSegments &curve_segments,
191 const CurveSegments &curve_segments,
192 int num_curve_verts)
const;
194 const LVector3 &camera_vec,
195 const CurveSegments &curve_segments,
199 int &num_verts_per_slice,
200 const CurveSegments &curve_segments,
204 static void compute_tangent(LVector3 &tangent,
const CurveSegment &segment,
206 static PN_stdfloat compute_uv_t(PN_stdfloat &dist,
const UVMode &uv_mode,
207 PN_stdfloat uv_scale,
const CurveSegment &segment,
213 class EXPCL_PANDA_PARAMETRICS CData :
public CycleData {
216 INLINE CData(
const CData ©);
221 return RopeNode::get_class_type();
225 RenderMode _render_mode;
228 PN_stdfloat _uv_scale;
229 NormalMode _normal_mode;
233 bool _use_vertex_color;
236 bool _use_vertex_thickness;
237 PN_stdfloat _thickness;
258 static void init_type() {
259 PandaNode::init_type();
261 PandaNode::get_class_type());
264 return get_class_type();
266 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
This is the fundamental interface for extracting binary objects from a Bam file, as generated by a Ba...
This is the fundamental interface for writing binary objects to a Bam file, to be extracted later by ...
This is an abstract class for any volume in any sense which can be said to define the locality of ref...
This collects together the pieces of data that are accumulated for each node while walking the scene ...
This object performs a depth-first traversal of the scene graph, with optional view-frustum culling,...
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...
A single page of data maintained by a PipelineCycler.
A class to retrieve the individual data elements previously stored in a Datagram.
An ordered list of data elements, formatted in memory for transmission over a socket or writing to a ...
An instance of this class is passed to the Factory when requesting it to do its business and construc...
This defines the actual numeric vertex data stored in a Geom, in the structure defined by a particula...
NodePath is the fundamental system for disambiguating instances, and also provides a higher-level int...
This class is an abstraction for evaluating NURBS curves.
The result of a NurbsCurveEvaluator.
A lightweight class that represents a single element that may be timed and/or counted via stats.
A basic node of the scene graph or data graph.
virtual bool safe_to_transform() const
Returns true if it is generally safe to transform this particular kind of PandaNode by calling the xf...
virtual bool is_renderable() const
Returns true if there is some value to visiting this particular node during the cull traversal for an...
static void register_with_read_factory()
Tells the BamReader how to create objects of type PandaNode.
virtual PandaNode * make_copy() const
Returns a newly-allocated PandaNode that is a shallow copy of this one.
virtual void write_datagram(BamWriter *manager, Datagram &dg)
Writes the contents of this object to the datagram for shipping out to a Bam file.
This class draws a visible representation of the NURBS curve stored in its NurbsCurveEvaluator.
A thread; that is, a lightweight process.
TypeHandle is the identifier used to differentiate C++ class types.
Base class for objects that can be written to and read from Bam files.
This is our own Panda specialization on the default STL vector.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
void register_type(TypeHandle &type_handle, const std::string &name)
This inline function is just a convenient way to call TypeRegistry::register_type(),...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.