180 INLINE
void operator = (
const NodePath ©);
181 INLINE
void operator = (
NodePath &&from)
noexcept;
185 EXTENSION(
NodePath __copy__()
const);
186 EXTENSION(PyObject *__deepcopy__(PyObject *self, PyObject *memo)
const);
187 EXTENSION(PyObject *__reduce__(PyObject *self)
const);
188 EXTENSION(PyObject *__reduce_persist__(PyObject *self, PyObject *pickler)
const);
194 INLINE
static void set_max_search_depth(
int max_search_depth);
195 INLINE
static int get_max_search_depth();
198 INLINE
bool is_empty()
const;
199 operator bool ()
const;
204 MAKE_SEQ(get_nodes, get_num_nodes, get_node);
205 MAKE_SEQ_PROPERTY(nodes, get_num_nodes, get_node);
207 MAKE_SEQ(get_ancestors, get_num_nodes, get_ancestor);
208 MAKE_SEQ_PROPERTY(ancestors, get_num_nodes, get_ancestor);
210 INLINE ErrorType get_error_type()
const;
211 MAKE_PROPERTY(error_type, get_error_type);
218 INLINE
int get_key()
const;
219 INLINE
size_t add_hash(
size_t hash)
const;
233 MAKE_PROPERTY(children, get_children);
234 MAKE_PROPERTY(stashed_children, get_stashed_children);
236 INLINE
int count_num_descendants()
const;
242 MAKE_PROPERTY2(parent, has_parent, get_parent);
243 MAKE_PROPERTY(sort, get_sort);
245 NodePath find(
const std::string &path)
const;
255 void reparent_to(
const NodePath &other,
int sort = 0,
257 void stash_to(
const NodePath &other,
int sort = 0,
259 void wrt_reparent_to(
const NodePath &other,
int sort = 0,
263 NodePath instance_under_node(
const NodePath &other,
const std::string &name,
270 INLINE
NodePath attach_new_node(
const std::string &name,
int sort = 0,
277 void output(std::ostream &out)
const;
279 INLINE
void ls()
const;
280 INLINE
void ls(std::ostream &out,
int indent_level = 0)
const;
281 INLINE
void reverse_ls()
const;
282 int reverse_ls(std::ostream &out,
int indent_level = 0)
const;
291 INLINE
void set_attrib(
const RenderAttrib *attrib,
int priority = 0);
293 INLINE
bool has_attrib(
TypeHandle type)
const;
298 INLINE
bool has_effect(
TypeHandle type)
const;
303 INLINE
void clear_effects();
323 INLINE
void set_pos(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z);
324 void set_pos(
const LVecBase3 &pos);
325 void set_x(PN_stdfloat x);
326 void set_y(PN_stdfloat y);
327 void set_z(PN_stdfloat z);
328 INLINE
void set_fluid_pos(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z);
329 void set_fluid_pos(
const LVecBase3 &pos);
330 void set_fluid_x(PN_stdfloat x);
331 void set_fluid_y(PN_stdfloat y);
332 void set_fluid_z(PN_stdfloat z);
333 LPoint3 get_pos()
const;
334 INLINE PN_stdfloat get_x()
const;
335 INLINE PN_stdfloat get_y()
const;
336 INLINE PN_stdfloat get_z()
const;
338 LVector3 get_pos_delta()
const;
340 INLINE
void set_hpr(PN_stdfloat h, PN_stdfloat p, PN_stdfloat r);
341 void set_hpr(
const LVecBase3 &hpr);
342 void set_h(PN_stdfloat h);
343 void set_p(PN_stdfloat p);
344 void set_r(PN_stdfloat r);
345 LVecBase3 get_hpr()
const;
346 INLINE PN_stdfloat get_h()
const;
347 INLINE PN_stdfloat get_p()
const;
348 INLINE PN_stdfloat get_r()
const;
350 void set_quat(
const LQuaternion &quat);
351 LQuaternion get_quat()
const;
353 INLINE
void set_scale(PN_stdfloat scale);
354 INLINE
void set_scale(PN_stdfloat sx, PN_stdfloat sy, PN_stdfloat sz);
355 void set_scale(
const LVecBase3 &scale);
356 void set_sx(PN_stdfloat sx);
357 void set_sy(PN_stdfloat sy);
358 void set_sz(PN_stdfloat sz);
359 LVecBase3 get_scale()
const;
360 INLINE PN_stdfloat get_sx()
const;
361 INLINE PN_stdfloat get_sy()
const;
362 INLINE PN_stdfloat get_sz()
const;
364 INLINE
void set_shear(PN_stdfloat shxy, PN_stdfloat shxz, PN_stdfloat shyz);
365 void set_shear(
const LVecBase3 &shear);
366 void set_shxy(PN_stdfloat shxy);
367 void set_shxz(PN_stdfloat shxz);
368 void set_shyz(PN_stdfloat shyz);
369 LVecBase3 get_shear()
const;
370 INLINE PN_stdfloat get_shxy()
const;
371 INLINE PN_stdfloat get_shxz()
const;
372 INLINE PN_stdfloat get_shyz()
const;
374 INLINE
void set_pos_hpr(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z,
375 PN_stdfloat h, PN_stdfloat p, PN_stdfloat r);
376 void set_pos_hpr(
const LVecBase3 &pos,
377 const LVecBase3 &hpr);
378 void set_pos_quat(
const LVecBase3 &pos,
379 const LQuaternion &quat);
381 INLINE
void set_hpr_scale(PN_stdfloat h, PN_stdfloat p, PN_stdfloat r,
382 PN_stdfloat sx, PN_stdfloat sy, PN_stdfloat sz);
383 void set_hpr_scale(
const LVecBase3 &hpr,
384 const LVecBase3 &scale);
385 void set_quat_scale(
const LQuaternion &quat,
386 const LVecBase3 &scale);
387 INLINE
void set_pos_hpr_scale(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z,
388 PN_stdfloat h, PN_stdfloat p, PN_stdfloat r,
389 PN_stdfloat sx, PN_stdfloat sy, PN_stdfloat sz);
390 void set_pos_hpr_scale(
const LVecBase3 &pos,
391 const LVecBase3 &hpr,
392 const LVecBase3 &scale);
393 void set_pos_quat_scale(
const LVecBase3 &pos,
394 const LQuaternion &quat,
395 const LVecBase3 &scale);
396 void set_pos_hpr_scale_shear(
const LVecBase3 &pos,
397 const LVecBase3 &hpr,
398 const LVecBase3 &scale,
399 const LVecBase3 &shear);
400 void set_pos_quat_scale_shear(
const LVecBase3 &pos,
401 const LQuaternion &quat,
402 const LVecBase3 &scale,
403 const LVecBase3 &shear);
405 void set_mat(
const LMatrix4 &mat);
406 INLINE
void clear_mat();
407 INLINE
bool has_mat()
const;
408 INLINE
const LMatrix4 &get_mat()
const;
410 INLINE
void look_at(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z);
411 void look_at(
const LPoint3 &point,
const LVector3 &up = LVector3::up());
412 INLINE
void heads_up(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z);
413 void heads_up(
const LPoint3 &point,
const LVector3 &up = LVector3::up());
418 INLINE
void set_pos(
const NodePath &other, PN_stdfloat x, PN_stdfloat y, PN_stdfloat z);
419 void set_pos(
const NodePath &other,
const LVecBase3 &pos);
420 void set_x(
const NodePath &other, PN_stdfloat x);
421 void set_y(
const NodePath &other, PN_stdfloat y);
422 void set_z(
const NodePath &other, PN_stdfloat z);
423 INLINE
void set_fluid_pos(
const NodePath &other, PN_stdfloat x, PN_stdfloat y, PN_stdfloat z);
424 void set_fluid_pos(
const NodePath &other,
const LVecBase3 &pos);
425 void set_fluid_x(
const NodePath &other, PN_stdfloat x);
426 void set_fluid_y(
const NodePath &other, PN_stdfloat y);
427 void set_fluid_z(
const NodePath &other, PN_stdfloat z);
428 LPoint3 get_pos(
const NodePath &other)
const;
429 INLINE PN_stdfloat get_x(
const NodePath &other)
const;
430 INLINE PN_stdfloat get_y(
const NodePath &other)
const;
431 INLINE PN_stdfloat get_z(
const NodePath &other)
const;
433 LVector3 get_pos_delta(
const NodePath &other)
const;
435 INLINE
void set_hpr(
const NodePath &other, PN_stdfloat h, PN_stdfloat p, PN_stdfloat r);
436 void set_hpr(
const NodePath &other,
const LVecBase3 &hpr);
437 void set_h(
const NodePath &other, PN_stdfloat h);
438 void set_p(
const NodePath &other, PN_stdfloat p);
439 void set_r(
const NodePath &other, PN_stdfloat r);
440 LVecBase3 get_hpr(
const NodePath &other)
const;
441 INLINE PN_stdfloat get_h(
const NodePath &other)
const;
442 INLINE PN_stdfloat get_p(
const NodePath &other)
const;
443 INLINE PN_stdfloat get_r(
const NodePath &other)
const;
445 void set_quat(
const NodePath &other,
const LQuaternion &quat);
446 LQuaternion get_quat(
const NodePath &other)
const;
448 INLINE
void set_scale(
const NodePath &other, PN_stdfloat scale);
449 INLINE
void set_scale(
const NodePath &other, PN_stdfloat sx, PN_stdfloat sy, PN_stdfloat sz);
450 void set_scale(
const NodePath &other,
const LVecBase3 &scale);
451 void set_sx(
const NodePath &other, PN_stdfloat sx);
452 void set_sy(
const NodePath &other, PN_stdfloat sy);
453 void set_sz(
const NodePath &other, PN_stdfloat sz);
454 LVecBase3 get_scale(
const NodePath &other)
const;
455 INLINE PN_stdfloat get_sx(
const NodePath &other)
const;
456 INLINE PN_stdfloat get_sy(
const NodePath &other)
const;
457 INLINE PN_stdfloat get_sz(
const NodePath &other)
const;
459 INLINE
void set_shear(
const NodePath &other, PN_stdfloat shxy, PN_stdfloat shxz, PN_stdfloat shyz);
460 void set_shear(
const NodePath &other,
const LVecBase3 &shear);
461 void set_shxy(
const NodePath &other, PN_stdfloat shxy);
462 void set_shxz(
const NodePath &other, PN_stdfloat shxz);
463 void set_shyz(
const NodePath &other, PN_stdfloat shyz);
464 LVecBase3 get_shear(
const NodePath &other)
const;
465 INLINE PN_stdfloat get_shxy(
const NodePath &other)
const;
466 INLINE PN_stdfloat get_shxz(
const NodePath &other)
const;
467 INLINE PN_stdfloat get_shyz(
const NodePath &other)
const;
469 INLINE
void set_pos_hpr(
const NodePath &other,
470 PN_stdfloat x, PN_stdfloat y, PN_stdfloat z,
471 PN_stdfloat h, PN_stdfloat p, PN_stdfloat r);
472 void set_pos_hpr(
const NodePath &other,
473 const LVecBase3 &pos,
474 const LVecBase3 &hpr);
475 void set_pos_quat(
const NodePath &other,
476 const LVecBase3 &pos,
477 const LQuaternion &quat);
478 INLINE
void set_hpr_scale(
const NodePath &other,
479 PN_stdfloat h, PN_stdfloat p, PN_stdfloat r,
480 PN_stdfloat sx, PN_stdfloat sy, PN_stdfloat sz);
481 void set_hpr_scale(
const NodePath &other,
482 const LVecBase3 &hpr,
483 const LVecBase3 &scale);
484 void set_quat_scale(
const NodePath &other,
485 const LQuaternion &quat,
486 const LVecBase3 &scale);
487 INLINE
void set_pos_hpr_scale(
const NodePath &other,
488 PN_stdfloat x, PN_stdfloat y, PN_stdfloat z,
489 PN_stdfloat h, PN_stdfloat p, PN_stdfloat r,
490 PN_stdfloat sx, PN_stdfloat sy, PN_stdfloat sz);
491 void set_pos_hpr_scale(
const NodePath &other,
492 const LVecBase3 &pos,
493 const LVecBase3 &hpr,
494 const LVecBase3 &scale);
495 void set_pos_quat_scale(
const NodePath &other,
496 const LVecBase3 &pos,
497 const LQuaternion &quat,
498 const LVecBase3 &scale);
499 void set_pos_hpr_scale_shear(
const NodePath &other,
500 const LVecBase3 &pos,
501 const LVecBase3 &hpr,
502 const LVecBase3 &scale,
503 const LVecBase3 &shear);
504 void set_pos_quat_scale_shear(
const NodePath &other,
505 const LVecBase3 &pos,
506 const LQuaternion &quat,
507 const LVecBase3 &scale,
508 const LVecBase3 &shear);
510 LMatrix4 get_mat(
const NodePath &other)
const;
511 void set_mat(
const NodePath &other,
const LMatrix4 &mat);
513 LPoint3 get_relative_point(
const NodePath &other,
const LVecBase3 &point)
const;
514 LVector3 get_relative_vector(
const NodePath &other,
const LVecBase3 &vec)
const;
516 INLINE
void look_at(
const NodePath &other,
517 PN_stdfloat x, PN_stdfloat y, PN_stdfloat z);
519 const LPoint3 &point = LPoint3(0.0, 0.0, 0.0),
520 const LVector3 &up = LVector3::up());
521 INLINE
void heads_up(
const NodePath &other,
522 PN_stdfloat x, PN_stdfloat y, PN_stdfloat z);
523 void heads_up(
const NodePath &other,
524 const LPoint3 &point = LPoint3(0.0, 0.0, 0.0),
525 const LVector3 &up = LVector3::up());
527 INLINE PN_stdfloat get_distance(
const NodePath &other)
const;
533 void set_color(PN_stdfloat r, PN_stdfloat g, PN_stdfloat b, PN_stdfloat a = 1.0,
535 void set_color(
const LColor &color,
int priority = 0);
536 void set_color_off(
int priority = 0);
538 bool has_color()
const;
539 LColor get_color()
const;
541 bool has_color_scale()
const;
542 void clear_color_scale();
543 void set_color_scale(
const LVecBase4 &scale,
545 INLINE
void set_color_scale(PN_stdfloat sx, PN_stdfloat sy, PN_stdfloat sz, PN_stdfloat sa,
547 void compose_color_scale(
const LVecBase4 &scale,
549 INLINE
void compose_color_scale(PN_stdfloat sx, PN_stdfloat sy, PN_stdfloat sz, PN_stdfloat sa,
551 void set_color_scale_off(
int priority = 0);
553 void set_alpha_scale(PN_stdfloat scale,
int priority = 0);
554 void set_all_color_scale(PN_stdfloat scale,
int priority = 0);
555 INLINE
void set_sr(PN_stdfloat sr);
556 INLINE
void set_sg(PN_stdfloat sg);
557 INLINE
void set_sb(PN_stdfloat sb);
558 INLINE
void set_sa(PN_stdfloat sa);
560 const LVecBase4 &get_color_scale()
const;
561 INLINE PN_stdfloat get_sr()
const;
562 INLINE PN_stdfloat get_sg()
const;
563 INLINE PN_stdfloat get_sb()
const;
564 INLINE PN_stdfloat get_sa()
const;
566 void set_light(
const NodePath &light,
int priority = 0);
567 void set_light_off(
int priority = 0);
568 void set_light_off(
const NodePath &light,
int priority = 0);
570 void clear_light(
const NodePath &light);
571 bool has_light(
const NodePath &light)
const;
572 bool has_light_off()
const;
573 bool has_light_off(
const NodePath &light)
const;
575 void set_clip_plane(
const NodePath &clip_plane,
int priority = 0);
576 void set_clip_plane_off(
int priority = 0);
577 void set_clip_plane_off(
const NodePath &clip_plane,
int priority = 0);
578 void clear_clip_plane();
579 void clear_clip_plane(
const NodePath &clip_plane);
580 bool has_clip_plane(
const NodePath &clip_plane)
const;
581 bool has_clip_plane_off()
const;
582 bool has_clip_plane_off(
const NodePath &clip_plane)
const;
584 void set_scissor(PN_stdfloat left, PN_stdfloat right, PN_stdfloat bottom, PN_stdfloat top);
585 void set_scissor(
const LPoint3 &a,
const LPoint3 &b);
586 void set_scissor(
const LPoint3 &a,
const LPoint3 &b,
587 const LPoint3 &c,
const LPoint3 &d);
588 void set_scissor(
const NodePath &other,
589 const LPoint3 &a,
const LPoint3 &b);
590 void set_scissor(
const NodePath &other,
591 const LPoint3 &a,
const LPoint3 &b,
592 const LPoint3 &c,
const LPoint3 &d);
593 void clear_scissor();
594 bool has_scissor()
const;
596 void set_occluder(
const NodePath &occluder);
597 void clear_occluder();
598 void clear_occluder(
const NodePath &occluder);
599 bool has_occluder(
const NodePath &occluder)
const;
601 void set_bin(
const std::string &bin_name,
int draw_order,
int priority = 0);
603 bool has_bin()
const;
604 std::string get_bin_name()
const;
605 int get_bin_draw_order()
const;
607 void set_texture(
Texture *tex,
int priority = 0);
611 void set_texture_off(
int priority = 0);
612 void set_texture_off(
TextureStage *stage,
int priority = 0);
613 void clear_texture();
615 bool has_texture()
const;
617 bool has_texture_off()
const;
623 void replace_texture(
Texture *tex, std::nullptr_t new_tex);
628 void set_shader(
const Shader *sha,
int priority = 0);
629 void set_shader_off(
int priority = 0);
630 void set_shader_auto(
int priority = 0);
631 void set_shader_auto(
BitMask32 shader_switch,
int priority=0);
638 INLINE
void set_shader_input(
CPT_InternalName id,
Texture *tex,
bool read,
bool write,
int z=-1,
int n=0,
int priority=0);
644 INLINE
void set_shader_input(
CPT_InternalName id,
const PTA_float &v,
int priority=0);
645 INLINE
void set_shader_input(
CPT_InternalName id,
const PTA_double &v,
int priority=0);
646 INLINE
void set_shader_input(
CPT_InternalName id,
const PTA_int &v,
int priority=0);
647 INLINE
void set_shader_input(
CPT_InternalName id,
const PTA_LVecBase4 &v,
int priority=0);
648 INLINE
void set_shader_input(
CPT_InternalName id,
const PTA_LVecBase3 &v,
int priority=0);
649 INLINE
void set_shader_input(
CPT_InternalName id,
const PTA_LVecBase2 &v,
int priority=0);
650 INLINE
void set_shader_input(
CPT_InternalName id,
const PTA_LMatrix4 &v,
int priority=0);
651 INLINE
void set_shader_input(
CPT_InternalName id,
const PTA_LMatrix3 &v,
int priority=0);
652 INLINE
void set_shader_input(
CPT_InternalName id,
const LVecBase4 &v,
int priority=0);
653 INLINE
void set_shader_input(
CPT_InternalName id,
const LVecBase3 &v,
int priority=0);
654 INLINE
void set_shader_input(
CPT_InternalName id,
const LVecBase2 &v,
int priority=0);
655 INLINE
void set_shader_input(
CPT_InternalName id,
const LMatrix4 &v,
int priority=0);
656 INLINE
void set_shader_input(
CPT_InternalName id,
const LMatrix3 &v,
int priority=0);
657 INLINE
void set_shader_input(
CPT_InternalName id,
const PTA_LVecBase4i &v,
int priority=0);
658 INLINE
void set_shader_input(
CPT_InternalName id,
const PTA_LVecBase3i &v,
int priority=0);
659 INLINE
void set_shader_input(
CPT_InternalName id,
const PTA_LVecBase2i &v,
int priority=0);
660 INLINE
void set_shader_input(
CPT_InternalName id,
const LVecBase4i &v,
int priority=0);
661 INLINE
void set_shader_input(
CPT_InternalName id,
const LVecBase3i &v,
int priority=0);
662 INLINE
void set_shader_input(
CPT_InternalName id,
const LVecBase2i &v,
int priority=0);
665 int n4=0,
int priority=0);
666 INLINE
void set_shader_input(
CPT_InternalName id, PN_stdfloat n1, PN_stdfloat n2,
667 PN_stdfloat n3=0, PN_stdfloat n4=0,
int priority=0);
669 EXTENSION(
void set_shader_input(
CPT_InternalName, PyObject *,
int priority=0));
670 EXTENSION(
void set_shader_inputs(PyObject *args, PyObject *kwargs));
673 void set_instance_count(
int instance_count);
675 const Shader *get_shader()
const;
677 int get_instance_count()
const;
680 void clear_tex_transform();
685 INLINE
void set_tex_offset(
TextureStage *stage, PN_stdfloat u, PN_stdfloat v);
686 INLINE
void set_tex_offset(
TextureStage *stage,
const LVecBase2 &uv);
687 INLINE
void set_tex_rotate(
TextureStage *stage, PN_stdfloat r);
688 INLINE
void set_tex_scale(
TextureStage *stage, PN_stdfloat scale);
689 INLINE
void set_tex_scale(
TextureStage *stage, PN_stdfloat su, PN_stdfloat sv);
690 INLINE
void set_tex_scale(
TextureStage *stage,
const LVecBase2 &scale);
691 INLINE LVecBase2 get_tex_offset(
TextureStage *stage)
const;
692 INLINE PN_stdfloat get_tex_rotate(
TextureStage *stage)
const;
693 INLINE LVecBase2 get_tex_scale(
TextureStage *stage)
const;
695 INLINE
void set_tex_pos(
TextureStage *stage, PN_stdfloat u, PN_stdfloat v, PN_stdfloat w);
696 INLINE
void set_tex_pos(
TextureStage *stage,
const LVecBase3 &uvw);
697 INLINE
void set_tex_hpr(
TextureStage *stage, PN_stdfloat h, PN_stdfloat p, PN_stdfloat r);
698 INLINE
void set_tex_hpr(
TextureStage *stage,
const LVecBase3 &hpr);
699 INLINE
void set_tex_scale(
TextureStage *stage, PN_stdfloat su, PN_stdfloat sv, PN_stdfloat sw);
700 INLINE
void set_tex_scale(
TextureStage *stage,
const LVecBase3 &scale);
701 INLINE LVecBase3 get_tex_pos(
TextureStage *stage)
const;
702 INLINE LVecBase3 get_tex_hpr(
TextureStage *stage)
const;
703 INLINE LVecBase3 get_tex_scale_3d(
TextureStage *stage)
const;
708 INLINE
void set_tex_offset(
const NodePath &other,
TextureStage *stage, PN_stdfloat u, PN_stdfloat v);
712 INLINE
void set_tex_scale(
const NodePath &other,
TextureStage *stage, PN_stdfloat su, PN_stdfloat sv);
718 INLINE
void set_tex_pos(
const NodePath &other,
TextureStage *stage, PN_stdfloat u, PN_stdfloat v, PN_stdfloat w);
720 INLINE
void set_tex_hpr(
const NodePath &other,
TextureStage *stage, PN_stdfloat h, PN_stdfloat p, PN_stdfloat r);
722 INLINE
void set_tex_scale(
const NodePath &other,
TextureStage *stage, PN_stdfloat su, PN_stdfloat sv, PN_stdfloat sw);
728 void set_tex_gen(
TextureStage *stage, RenderAttrib::TexGenMode mode,
int priority = 0);
729 void set_tex_gen(
TextureStage *stage, RenderAttrib::TexGenMode mode,
730 const LTexCoord3 &constant_value,
732 void clear_tex_gen();
735 RenderAttrib::TexGenMode get_tex_gen(
TextureStage *stage)
const;
740 void clear_tex_projector();
748 INLINE
bool has_texcoord(
const std::string &texcoord_name)
const;
755 Texture *find_texture(
const std::string &name)
const;
761 TextureStage *find_texture_stage(
const std::string &name)
const;
767 Material *find_material(
const std::string &name)
const;
771 void set_material(
Material *tex,
int priority = 0);
772 void set_material_off(
int priority = 0);
773 void clear_material();
774 bool has_material()
const;
778 void replace_material(
Material *mat, std::nullptr_t new_mat);
781 void set_fog(
Fog *fog,
int priority = 0);
782 void set_fog_off(
int priority = 0);
784 bool has_fog()
const;
785 bool has_fog_off()
const;
786 Fog *get_fog()
const;
788 void set_render_mode_wireframe(
int priority = 0);
789 void set_render_mode_filled(
int priority = 0);
790 void set_render_mode_filled_wireframe(
const LColor &wireframe_color,
int priority = 0);
791 void set_render_mode_thickness(PN_stdfloat thickness,
int priority = 0);
792 void set_render_mode_perspective(
bool perspective,
int priority = 0);
793 void set_render_mode(RenderModeAttrib::Mode mode, PN_stdfloat thickness,
int priority = 0);
794 void clear_render_mode();
795 bool has_render_mode()
const;
796 RenderModeAttrib::Mode get_render_mode()
const;
797 PN_stdfloat get_render_mode_thickness()
const;
798 bool get_render_mode_perspective()
const;
800 void set_two_sided(
bool two_sided,
int priority = 0);
801 void clear_two_sided();
802 bool has_two_sided()
const;
803 bool get_two_sided()
const;
805 void set_depth_test(
bool depth_test,
int priority = 0);
806 void clear_depth_test();
807 bool has_depth_test()
const;
808 bool get_depth_test()
const;
810 void set_depth_write(
bool depth_write,
int priority = 0);
811 void clear_depth_write();
812 bool has_depth_write()
const;
813 bool get_depth_write()
const;
815 void set_depth_offset(
int bias,
int priority = 0);
816 void clear_depth_offset();
817 bool has_depth_offset()
const;
818 int get_depth_offset()
const;
820 void do_billboard_axis(
const NodePath &camera, PN_stdfloat offset);
821 void do_billboard_point_eye(
const NodePath &camera, PN_stdfloat offset);
822 void do_billboard_point_world(
const NodePath &camera, PN_stdfloat offset);
823 INLINE
void set_billboard_axis(PN_stdfloat offset = 0.0);
824 INLINE
void set_billboard_point_eye(PN_stdfloat offset = 0.0,
bool fixed_depth =
false);
825 INLINE
void set_billboard_point_world(PN_stdfloat offset = 0.0);
826 void set_billboard_axis(
const NodePath &camera, PN_stdfloat offset);
827 void set_billboard_point_eye(
const NodePath &camera, PN_stdfloat offset,
bool fixed_depth =
false);
828 void set_billboard_point_world(
const NodePath &camera, PN_stdfloat offset);
829 void clear_billboard();
830 bool has_billboard()
const;
833 void clear_compass();
834 bool has_compass()
const;
836 void set_transparency(TransparencyAttrib::Mode mode,
int priority = 0);
837 void clear_transparency();
838 bool has_transparency()
const;
839 TransparencyAttrib::Mode get_transparency()
const;
841 void set_logic_op(LogicOpAttrib::Operation op,
int priority = 0);
842 void clear_logic_op();
843 bool has_logic_op()
const;
844 LogicOpAttrib::Operation get_logic_op()
const;
846 void set_antialias(
unsigned short mode,
int priority = 0);
847 void clear_antialias();
848 bool has_antialias()
const;
849 unsigned short get_antialias()
const;
851 bool has_audio_volume()
const;
852 void clear_audio_volume();
853 void set_audio_volume(PN_stdfloat volume,
855 void set_audio_volume_off(
int priority = 0);
856 PN_stdfloat get_audio_volume()
const;
857 PN_stdfloat get_net_audio_volume()
const;
859 INLINE
void adjust_all_priorities(
int adjustment);
863 INLINE
void show(
DrawMask camera_mask);
864 INLINE
void show_through();
865 INLINE
void show_through(
DrawMask camera_mask);
867 INLINE
void hide(
DrawMask camera_mask);
868 INLINE
bool is_hidden(
DrawMask camera_mask = PandaNode::get_overall_bit())
const;
869 NodePath get_hidden_ancestor(
DrawMask camera_mask = PandaNode::get_overall_bit(),
875 INLINE
bool is_stashed()
const;
883 INLINE
bool operator == (
const NodePath &other)
const;
884 INLINE
bool operator != (
const NodePath &other)
const;
885 INLINE
bool operator < (
const NodePath &other)
const;
900 void show_tight_bounds();
903 void force_recompute_bounds();
904 void write_bounds(std::ostream &out)
const;
905 bool calc_tight_bounds(LPoint3 &min_point, LPoint3 &max_point,
909 EXTENSION(PyObject *get_tight_bounds(
const NodePath &other =
NodePath())
const);
914 int flatten_medium();
915 int flatten_strong();
916 void apply_texture_colors();
917 INLINE
int clear_model_nodes();
919 INLINE
void set_tag(
const std::string &key,
const std::string &value);
920 INLINE std::string get_tag(
const std::string &key)
const;
921 INLINE
void get_tag_keys(vector_string &keys)
const;
922 INLINE
bool has_tag(
const std::string &key)
const;
923 INLINE
void clear_tag(
const std::string &key);
924 INLINE std::string get_net_tag(
const std::string &key)
const;
925 INLINE
bool has_net_tag(
const std::string &key)
const;
926 NodePath find_net_tag(
const std::string &key)
const;
928 MAKE_MAP_PROPERTY(net_tags, has_net_tag, get_net_tag);
930 EXTENSION(INLINE PyObject *get_tags()
const);
931 EXTENSION(INLINE PyObject *get_tag_keys()
const);
932 MAKE_PROPERTY(tags, get_tags);
934 EXTENSION(PyObject *get_python_tags());
935 EXTENSION(INLINE
void set_python_tag(PyObject *keys, PyObject *value));
936 EXTENSION(INLINE PyObject *get_python_tag(PyObject *keys)
const);
937 EXTENSION(INLINE PyObject *get_python_tag_keys()
const);
938 EXTENSION(INLINE
bool has_python_tag(PyObject *keys)
const);
939 EXTENSION(INLINE
void clear_python_tag(PyObject *keys));
940 EXTENSION(INLINE PyObject *get_net_python_tag(PyObject *keys)
const);
941 EXTENSION(INLINE
bool has_net_python_tag(PyObject *keys)
const);
942 EXTENSION(
NodePath find_net_python_tag(PyObject *keys)
const);
943 MAKE_PROPERTY(python_tags, get_python_tags);
945 EXTENSION(
int __traverse__(visitproc visit,
void *arg));
947 INLINE
void list_tags()
const;
949 INLINE
void set_name(
const std::string &name);
950 INLINE std::string get_name()
const;
951 MAKE_PROPERTY(name, get_name, set_name);
953 BLOCKING
bool write_bam_file(
const Filename &filename)
const;
954 BLOCKING
bool write_bam_stream(std::ostream &out)
const;
956 INLINE vector_uchar encode_to_bam_stream()
const;
957 bool encode_to_bam_stream(vector_uchar &data,
BamWriter *writer =
nullptr)
const;
958 static NodePath decode_from_bam_stream(vector_uchar data,
BamReader *reader =
nullptr);
967 int &a_count,
int &b_count,
971 Thread *current_thread)
const;
973 Thread *current_thread)
const;
975 Thread *current_thread)
const;
977 Thread *current_thread)
const;
979 Thread *current_thread)
const;
981 int n,
Thread *current_thread)
const;
984 const std::string &approx_path_str,
985 int max_matches)
const;
988 int max_matches)
const;
991 int max_matches)
const;
993 int r_clear_model_nodes(
PandaNode *node);
994 void r_adjust_all_priorities(
PandaNode *node,
int adjustment);
996 void r_force_recompute_bounds(
PandaNode *node);
1002 typedef phash_set<const InternalName *, pointer_hash> InternalNames;
1004 void r_find_all_vertex_columns(
PandaNode *node,
1005 InternalNames &vertex_columns)
const;
1007 typedef phash_set<Texture *, pointer_hash> Textures;
1011 Textures &textures)
const;
1014 Textures &textures)
const;
1017 typedef phash_set<TextureStage *, pointer_hash> TextureStages;
1021 TextureStages &texture_stages)
const;
1025 typedef phash_set<Material *, pointer_hash> Materials;
1029 Materials &materials)
const;
1035 ErrorType _error_type;
1036 static int _max_search_depth;
1048 return _type_handle;
1050 static void init_type() {