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;
   247   static void register_with_read_factory();
   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();}
 PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
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.
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.
virtual TypeHandle get_parent_type() const
Returns the type of the container that owns the CycleData.
This collects together the pieces of data that are accumulated for each node while walking the scene ...
This class draws a visible representation of the NURBS curve stored in its NurbsCurveEvaluator.
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.
virtual void write_datagram(BamWriter *, Datagram &) const
Writes the contents of this object to the datagram for shipping out to a Bam file.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
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...
This template class calls PipelineCycler::write() in the constructor and PipelineCycler::release_writ...
virtual PandaNode * make_copy() const
Returns a newly-allocated PandaNode that is a shallow copy of this one.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
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.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
A class to retrieve the individual data elements previously stored in a Datagram.
TypeHandle is the identifier used to differentiate C++ class types.
virtual bool safe_to_transform() const
Returns true if it is generally safe to transform this particular kind of PandaNode by calling the xf...
An ordered list of data elements, formatted in memory for transmission over a socket or writing to a ...
virtual bool is_renderable() const
Returns true if there is some value to visiting this particular node during the cull traversal for an...
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,...