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();}