29 #include "logicOpAttrib.h"
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;
625 void set_shader(
const Shader *sha,
int priority = 0);
626 void set_shader_off(
int priority = 0);
627 void set_shader_auto(
int priority = 0);
628 void set_shader_auto(
BitMask32 shader_switch,
int priority=0);
635 INLINE
void set_shader_input(
CPT_InternalName id,
Texture *tex,
bool read,
bool write,
int z=-1,
int n=0,
int priority=0);
641 INLINE
void set_shader_input(
CPT_InternalName id,
const PTA_float &v,
int priority=0);
642 INLINE
void set_shader_input(
CPT_InternalName id,
const PTA_double &v,
int priority=0);
643 INLINE
void set_shader_input(
CPT_InternalName id,
const PTA_int &v,
int priority=0);
644 INLINE
void set_shader_input(
CPT_InternalName id,
const PTA_LVecBase4 &v,
int priority=0);
645 INLINE
void set_shader_input(
CPT_InternalName id,
const PTA_LVecBase3 &v,
int priority=0);
646 INLINE
void set_shader_input(
CPT_InternalName id,
const PTA_LVecBase2 &v,
int priority=0);
647 INLINE
void set_shader_input(
CPT_InternalName id,
const PTA_LMatrix4 &v,
int priority=0);
648 INLINE
void set_shader_input(
CPT_InternalName id,
const PTA_LMatrix3 &v,
int priority=0);
649 INLINE
void set_shader_input(
CPT_InternalName id,
const LVecBase4 &v,
int priority=0);
650 INLINE
void set_shader_input(
CPT_InternalName id,
const LVecBase3 &v,
int priority=0);
651 INLINE
void set_shader_input(
CPT_InternalName id,
const LVecBase2 &v,
int priority=0);
652 INLINE
void set_shader_input(
CPT_InternalName id,
const LMatrix4 &v,
int priority=0);
653 INLINE
void set_shader_input(
CPT_InternalName id,
const LMatrix3 &v,
int priority=0);
654 INLINE
void set_shader_input(
CPT_InternalName id,
const PTA_LVecBase4i &v,
int priority=0);
655 INLINE
void set_shader_input(
CPT_InternalName id,
const PTA_LVecBase3i &v,
int priority=0);
656 INLINE
void set_shader_input(
CPT_InternalName id,
const PTA_LVecBase2i &v,
int priority=0);
657 INLINE
void set_shader_input(
CPT_InternalName id,
const LVecBase4i &v,
int priority=0);
658 INLINE
void set_shader_input(
CPT_InternalName id,
const LVecBase3i &v,
int priority=0);
659 INLINE
void set_shader_input(
CPT_InternalName id,
const LVecBase2i &v,
int priority=0);
662 int n4=0,
int priority=0);
663 INLINE
void set_shader_input(
CPT_InternalName id, PN_stdfloat n1, PN_stdfloat n2,
664 PN_stdfloat n3=0, PN_stdfloat n4=0,
int priority=0);
666 EXTENSION(
void set_shader_input(
CPT_InternalName, PyObject *,
int priority=0));
667 EXTENSION(
void set_shader_inputs(PyObject *args, PyObject *kwargs));
670 void set_instance_count(
int instance_count);
672 const Shader *get_shader()
const;
674 int get_instance_count()
const;
677 void clear_tex_transform();
682 INLINE
void set_tex_offset(
TextureStage *stage, PN_stdfloat u, PN_stdfloat v);
683 INLINE
void set_tex_offset(
TextureStage *stage,
const LVecBase2 &uv);
684 INLINE
void set_tex_rotate(
TextureStage *stage, PN_stdfloat r);
685 INLINE
void set_tex_scale(
TextureStage *stage, PN_stdfloat scale);
686 INLINE
void set_tex_scale(
TextureStage *stage, PN_stdfloat su, PN_stdfloat sv);
687 INLINE
void set_tex_scale(
TextureStage *stage,
const LVecBase2 &scale);
688 INLINE LVecBase2 get_tex_offset(
TextureStage *stage)
const;
689 INLINE PN_stdfloat get_tex_rotate(
TextureStage *stage)
const;
690 INLINE LVecBase2 get_tex_scale(
TextureStage *stage)
const;
692 INLINE
void set_tex_pos(
TextureStage *stage, PN_stdfloat u, PN_stdfloat v, PN_stdfloat w);
693 INLINE
void set_tex_pos(
TextureStage *stage,
const LVecBase3 &uvw);
694 INLINE
void set_tex_hpr(
TextureStage *stage, PN_stdfloat h, PN_stdfloat p, PN_stdfloat r);
695 INLINE
void set_tex_hpr(
TextureStage *stage,
const LVecBase3 &hpr);
696 INLINE
void set_tex_scale(
TextureStage *stage, PN_stdfloat su, PN_stdfloat sv, PN_stdfloat sw);
697 INLINE
void set_tex_scale(
TextureStage *stage,
const LVecBase3 &scale);
698 INLINE LVecBase3 get_tex_pos(
TextureStage *stage)
const;
699 INLINE LVecBase3 get_tex_hpr(
TextureStage *stage)
const;
700 INLINE LVecBase3 get_tex_scale_3d(
TextureStage *stage)
const;
705 INLINE
void set_tex_offset(
const NodePath &other,
TextureStage *stage, PN_stdfloat u, PN_stdfloat v);
709 INLINE
void set_tex_scale(
const NodePath &other,
TextureStage *stage, PN_stdfloat su, PN_stdfloat sv);
715 INLINE
void set_tex_pos(
const NodePath &other,
TextureStage *stage, PN_stdfloat u, PN_stdfloat v, PN_stdfloat w);
717 INLINE
void set_tex_hpr(
const NodePath &other,
TextureStage *stage, PN_stdfloat h, PN_stdfloat p, PN_stdfloat r);
719 INLINE
void set_tex_scale(
const NodePath &other,
TextureStage *stage, PN_stdfloat su, PN_stdfloat sv, PN_stdfloat sw);
725 void set_tex_gen(
TextureStage *stage, RenderAttrib::TexGenMode mode,
int priority = 0);
726 void set_tex_gen(
TextureStage *stage, RenderAttrib::TexGenMode mode,
727 const LTexCoord3 &constant_value,
729 void clear_tex_gen();
732 RenderAttrib::TexGenMode get_tex_gen(
TextureStage *stage)
const;
737 void clear_tex_projector();
745 INLINE
bool has_texcoord(
const std::string &texcoord_name)
const;
752 Texture *find_texture(
const std::string &name)
const;
758 TextureStage *find_texture_stage(
const std::string &name)
const;
764 Material *find_material(
const std::string &name)
const;
768 void set_material(
Material *tex,
int priority = 0);
769 void set_material_off(
int priority = 0);
770 void clear_material();
771 bool has_material()
const;
775 void set_fog(
Fog *fog,
int priority = 0);
776 void set_fog_off(
int priority = 0);
778 bool has_fog()
const;
779 bool has_fog_off()
const;
780 Fog *get_fog()
const;
782 void set_render_mode_wireframe(
int priority = 0);
783 void set_render_mode_filled(
int priority = 0);
784 void set_render_mode_filled_wireframe(
const LColor &wireframe_color,
int priority = 0);
785 void set_render_mode_thickness(PN_stdfloat thickness,
int priority = 0);
786 void set_render_mode_perspective(
bool perspective,
int priority = 0);
787 void set_render_mode(RenderModeAttrib::Mode mode, PN_stdfloat thickness,
int priority = 0);
788 void clear_render_mode();
789 bool has_render_mode()
const;
790 RenderModeAttrib::Mode get_render_mode()
const;
791 PN_stdfloat get_render_mode_thickness()
const;
792 bool get_render_mode_perspective()
const;
794 void set_two_sided(
bool two_sided,
int priority = 0);
795 void clear_two_sided();
796 bool has_two_sided()
const;
797 bool get_two_sided()
const;
799 void set_depth_test(
bool depth_test,
int priority = 0);
800 void clear_depth_test();
801 bool has_depth_test()
const;
802 bool get_depth_test()
const;
804 void set_depth_write(
bool depth_write,
int priority = 0);
805 void clear_depth_write();
806 bool has_depth_write()
const;
807 bool get_depth_write()
const;
809 void set_depth_offset(
int bias,
int priority = 0);
810 void clear_depth_offset();
811 bool has_depth_offset()
const;
812 int get_depth_offset()
const;
814 void do_billboard_axis(
const NodePath &camera, PN_stdfloat offset);
815 void do_billboard_point_eye(
const NodePath &camera, PN_stdfloat offset);
816 void do_billboard_point_world(
const NodePath &camera, PN_stdfloat offset);
817 INLINE
void set_billboard_axis(PN_stdfloat offset = 0.0);
818 INLINE
void set_billboard_point_eye(PN_stdfloat offset = 0.0,
bool fixed_depth =
false);
819 INLINE
void set_billboard_point_world(PN_stdfloat offset = 0.0);
820 void set_billboard_axis(
const NodePath &camera, PN_stdfloat offset);
821 void set_billboard_point_eye(
const NodePath &camera, PN_stdfloat offset,
bool fixed_depth =
false);
822 void set_billboard_point_world(
const NodePath &camera, PN_stdfloat offset);
823 void clear_billboard();
824 bool has_billboard()
const;
827 void clear_compass();
828 bool has_compass()
const;
830 void set_transparency(TransparencyAttrib::Mode mode,
int priority = 0);
831 void clear_transparency();
832 bool has_transparency()
const;
833 TransparencyAttrib::Mode get_transparency()
const;
835 void set_logic_op(LogicOpAttrib::Operation op,
int priority = 0);
836 void clear_logic_op();
837 bool has_logic_op()
const;
838 LogicOpAttrib::Operation get_logic_op()
const;
840 void set_antialias(
unsigned short mode,
int priority = 0);
841 void clear_antialias();
842 bool has_antialias()
const;
843 unsigned short get_antialias()
const;
845 bool has_audio_volume()
const;
846 void clear_audio_volume();
847 void set_audio_volume(PN_stdfloat volume,
849 void set_audio_volume_off(
int priority = 0);
850 PN_stdfloat get_audio_volume()
const;
851 PN_stdfloat get_net_audio_volume()
const;
853 INLINE
void adjust_all_priorities(
int adjustment);
857 INLINE
void show(
DrawMask camera_mask);
858 INLINE
void show_through();
859 INLINE
void show_through(
DrawMask camera_mask);
861 INLINE
void hide(
DrawMask camera_mask);
862 INLINE
bool is_hidden(
DrawMask camera_mask = PandaNode::get_overall_bit())
const;
863 NodePath get_hidden_ancestor(
DrawMask camera_mask = PandaNode::get_overall_bit(),
869 INLINE
bool is_stashed()
const;
877 INLINE
bool operator == (
const NodePath &other)
const;
878 INLINE
bool operator != (
const NodePath &other)
const;
879 INLINE
bool operator < (
const NodePath &other)
const;
894 void show_tight_bounds();
897 void force_recompute_bounds();
898 void write_bounds(std::ostream &out)
const;
899 bool calc_tight_bounds(LPoint3 &min_point, LPoint3 &max_point,
903 EXTENSION(PyObject *get_tight_bounds(
const NodePath &other =
NodePath())
const);
908 int flatten_medium();
909 int flatten_strong();
910 void apply_texture_colors();
911 INLINE
int clear_model_nodes();
913 INLINE
void set_tag(
const std::string &key,
const std::string &value);
914 INLINE std::string get_tag(
const std::string &key)
const;
915 INLINE
void get_tag_keys(vector_string &keys)
const;
916 INLINE
bool has_tag(
const std::string &key)
const;
917 INLINE
void clear_tag(
const std::string &key);
918 INLINE std::string get_net_tag(
const std::string &key)
const;
919 INLINE
bool has_net_tag(
const std::string &key)
const;
920 NodePath find_net_tag(
const std::string &key)
const;
922 MAKE_MAP_PROPERTY(net_tags, has_net_tag, get_net_tag);
924 EXTENSION(INLINE PyObject *get_tags()
const);
925 EXTENSION(INLINE PyObject *get_tag_keys()
const);
926 MAKE_PROPERTY(tags, get_tags);
928 EXTENSION(PyObject *get_python_tags());
929 EXTENSION(INLINE
void set_python_tag(PyObject *keys, PyObject *value));
930 EXTENSION(INLINE PyObject *get_python_tag(PyObject *keys)
const);
931 EXTENSION(INLINE PyObject *get_python_tag_keys()
const);
932 EXTENSION(INLINE
bool has_python_tag(PyObject *keys)
const);
933 EXTENSION(INLINE
void clear_python_tag(PyObject *keys));
934 EXTENSION(INLINE PyObject *get_net_python_tag(PyObject *keys)
const);
935 EXTENSION(INLINE
bool has_net_python_tag(PyObject *keys)
const);
936 EXTENSION(
NodePath find_net_python_tag(PyObject *keys)
const);
937 MAKE_PROPERTY(python_tags, get_python_tags);
939 EXTENSION(
int __traverse__(visitproc visit,
void *arg));
941 INLINE
void list_tags()
const;
943 INLINE
void set_name(
const std::string &name);
944 INLINE std::string get_name()
const;
945 MAKE_PROPERTY(name, get_name, set_name);
947 BLOCKING
bool write_bam_file(
const Filename &filename)
const;
948 BLOCKING
bool write_bam_stream(std::ostream &out)
const;
950 INLINE vector_uchar encode_to_bam_stream()
const;
951 bool encode_to_bam_stream(vector_uchar &data,
BamWriter *writer =
nullptr)
const;
952 static NodePath decode_from_bam_stream(vector_uchar data,
BamReader *reader =
nullptr);
961 int &a_count,
int &b_count,
965 Thread *current_thread)
const;
967 Thread *current_thread)
const;
969 Thread *current_thread)
const;
971 Thread *current_thread)
const;
973 Thread *current_thread)
const;
975 int n,
Thread *current_thread)
const;
978 const std::string &approx_path_str,
979 int max_matches)
const;
982 int max_matches)
const;
985 int max_matches)
const;
987 int r_clear_model_nodes(
PandaNode *node);
988 void r_adjust_all_priorities(
PandaNode *node,
int adjustment);
990 void r_force_recompute_bounds(
PandaNode *node);
996 typedef phash_set<const InternalName *, pointer_hash> InternalNames;
998 void r_find_all_vertex_columns(
PandaNode *node,
999 InternalNames &vertex_columns)
const;
1001 typedef phash_set<Texture *, pointer_hash> Textures;
1005 Textures &textures)
const;
1008 Textures &textures)
const;
1011 typedef phash_set<TextureStage *, pointer_hash> TextureStages;
1015 TextureStages &texture_stages)
const;
1019 typedef phash_set<Material *, pointer_hash> Materials;
1023 Materials &materials)
const;
1029 ErrorType _error_type;
1030 static int _max_search_depth;
1042 return _type_handle;
1044 static void init_type() {
1057 INLINE std::ostream &operator << (std::ostream &out,
const NodePath &node_path);
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 ...
static BitMask< uint32_t, nbits > all_on()
Returns a BitMask whose bits are all on.
This is an abstract class for any volume in any sense which can be said to define the locality of ref...
This is a const pointer to an InternalName, and should be used in lieu of a CPT(InternalName) in func...
This collects together the pieces of data that are accumulated for each node while walking the scene ...
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 ...
The name of a file, such as a texture file or an Egg file.
This class is local to this package only; it doesn't get exported.
This class is local to this package only; it doesn't get exported.
Specifies how atmospheric fog effects are applied to geometry.
This class can be used to test for string matches against standard Unix- shell filename globbing conv...
This is a base class for the GraphicsStateGuardian class, which is itself a base class for the variou...
Encodes a string name in a hash table, mapping it to a pointer.
The abstract interface to all kinds of lights.
Indicates which, if any, material should be applied to geometry.
Defines the way an object appears in the presence of lighting.
This is a set of zero or more NodePaths.
This is one component of a NodePath.
NodePath is the fundamental system for disambiguating instances, and also provides a higher-level int...
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.
A table of objects that are saved within the graphics context for reference by handle later.
This is the base class for a number of render attributes (other than transform) that may be set on sc...
This is the base class for a number of special render effects that may be set on scene graph nodes to...
This represents a unique collection of RenderEffect objects that correspond to a particular renderabl...
This represents a unique collection of RenderAttrib objects that correspond to a particular renderabl...
Represents a set of settings that indicate how a texture is sampled.
This is a generic buffer object that lives in graphics memory.
Manages a list of Texture objects, as returned by TexturePool::find_all_textures().
Defines the properties of a named stage of the multitexture pipeline.
Represents a texture object, which is typically a single 2-d image but may also represent a 1-d or 3-...
A thread; that is, a lightweight process.
get_current_thread
Returns a pointer to the currently-executing Thread object.
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 class is a wrapper around a NodePath that, unlike the actual NodePath class, doesn't hold a refe...
This is a class designed to support low-overhead traversals of the complete scene graph,...
An STL function object class, this is intended to be used on any ordered collection of class objects ...
This is our own Panda specialization on the default STL list.
This is our own Panda specialization on the default STL map.
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.
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.
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.
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.
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.
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.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.