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);
199 operator bool ()
const;
219 INLINE
size_t add_hash(
size_t hash)
const;
277 void output(std::ostream &out)
const;
279 INLINE
void ls()
const;
280 INLINE
void ls(std::ostream &out,
int indent_level = 0)
const;
282 int reverse_ls(std::ostream &out,
int indent_level = 0)
const;
291 INLINE
void set_attrib(
const RenderAttrib *attrib,
int priority = 0);
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);
330 void set_fluid_x(PN_stdfloat x);
331 void set_fluid_y(PN_stdfloat y);
332 void set_fluid_z(PN_stdfloat z);
334 INLINE PN_stdfloat get_x()
const;
335 INLINE PN_stdfloat get_y()
const;
336 INLINE PN_stdfloat get_z()
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);
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);
353 INLINE
void set_scale(PN_stdfloat scale);
354 INLINE
void set_scale(PN_stdfloat sx, PN_stdfloat sy, PN_stdfloat sz);
356 void set_sx(PN_stdfloat sx);
357 void set_sy(PN_stdfloat sy);
358 void set_sz(PN_stdfloat sz);
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);
366 void set_shxy(PN_stdfloat shxy);
367 void set_shxz(PN_stdfloat shxz);
368 void set_shyz(PN_stdfloat shyz);
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);
377 const LVecBase3 &hpr);
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);
384 const LVecBase3 &scale);
386 const LVecBase3 &scale);
388 PN_stdfloat h, PN_stdfloat p, PN_stdfloat r,
389 PN_stdfloat sx, PN_stdfloat sy, PN_stdfloat sz);
391 const LVecBase3 &hpr,
392 const LVecBase3 &scale);
394 const LQuaternion &quat,
395 const LVecBase3 &scale);
397 const LVecBase3 &hpr,
398 const LVecBase3 &scale,
399 const LVecBase3 &shear);
401 const LQuaternion &quat,
402 const LVecBase3 &scale,
403 const LVecBase3 &shear);
405 void set_mat(
const LMatrix4 &mat);
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);
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);
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;
435 INLINE
void set_hpr(
const NodePath &other, PN_stdfloat h, PN_stdfloat p, PN_stdfloat r);
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);
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;
449 INLINE
void set_scale(
const NodePath &other, PN_stdfloat sx, PN_stdfloat sy, PN_stdfloat sz);
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);
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);
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;
470 PN_stdfloat x, PN_stdfloat y, PN_stdfloat z,
471 PN_stdfloat h, PN_stdfloat p, PN_stdfloat r);
473 const LVecBase3 &pos,
474 const LVecBase3 &hpr);
476 const LVecBase3 &pos,
477 const LQuaternion &quat);
479 PN_stdfloat h, PN_stdfloat p, PN_stdfloat r,
480 PN_stdfloat sx, PN_stdfloat sy, PN_stdfloat sz);
482 const LVecBase3 &hpr,
483 const LVecBase3 &scale);
485 const LQuaternion &quat,
486 const LVecBase3 &scale);
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);
492 const LVecBase3 &pos,
493 const LVecBase3 &hpr,
494 const LVecBase3 &scale);
496 const LVecBase3 &pos,
497 const LQuaternion &quat,
498 const LVecBase3 &scale);
500 const LVecBase3 &pos,
501 const LVecBase3 &hpr,
502 const LVecBase3 &scale,
503 const LVecBase3 &shear);
505 const LVecBase3 &pos,
506 const LQuaternion &quat,
507 const LVecBase3 &scale,
508 const LVecBase3 &shear);
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());
522 PN_stdfloat x, PN_stdfloat y, PN_stdfloat z);
524 const LPoint3 &point = LPoint3(0.0, 0.0, 0.0),
525 const LVector3 &up = LVector3::up());
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);
545 INLINE
void set_color_scale(PN_stdfloat sx, PN_stdfloat sy, PN_stdfloat sz, PN_stdfloat sa,
549 INLINE
void compose_color_scale(PN_stdfloat sx, PN_stdfloat sy, PN_stdfloat sz, PN_stdfloat sa,
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);
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;
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);
589 const LPoint3 &a,
const LPoint3 &b);
591 const LPoint3 &a,
const LPoint3 &b,
592 const LPoint3 &c,
const LPoint3 &d);
601 void set_bin(
const std::string &bin_name,
int draw_order,
int priority = 0);
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));
675 const Shader *get_shader()
const;
730 const LTexCoord3 &constant_value,
748 INLINE
bool has_texcoord(
const std::string &texcoord_name)
const;
793 void set_render_mode(RenderModeAttrib::Mode mode, PN_stdfloat thickness,
int priority = 0);
841 void set_logic_op(LogicOpAttrib::Operation op,
int priority = 0);
863 INLINE
void show(DrawMask camera_mask);
867 INLINE
void hide(DrawMask camera_mask);
868 INLINE
bool is_hidden(DrawMask camera_mask = PandaNode::get_overall_bit())
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;
888 bool operator == (
const WeakNodePath &other)
const;
889 bool operator != (
const WeakNodePath &other)
const;
890 bool operator < (
const WeakNodePath &other)
const;
891 int compare_to(
const WeakNodePath &other)
const;
909 EXTENSION(PyObject *get_tight_bounds(
const NodePath &other =
NodePath())
const);
919 INLINE
void set_tag(
const std::string &key,
const std::string &value);
920 INLINE std::string
get_tag(
const std::string &key)
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;
930 EXTENSION(INLINE PyObject *get_tags()
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));
949 INLINE
void set_name(
const std::string &name);
950 INLINE std::string
get_name()
const;
962 const PandaNode::InstanceMap &inst_map,
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;
983 void find_matches(NodePathCollection &result,
984 const std::string &approx_path_str,
985 int max_matches)
const;
986 void find_matches(NodePathCollection &result,
988 int max_matches)
const;
989 void find_matches(NodePathCollection &result,
991 int max_matches)
const;
994 void r_adjust_all_priorities(
PandaNode *
node,
int adjustment);
999 CollideMask and_mask, CollideMask or_mask,
1002 typedef phash_set<const InternalName *, pointer_hash> InternalNames;
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() {
1055 static TypeHandle _type_handle;
1057 friend class NodePathCollection;
1058 friend class WorkingNodePath;
1059 friend class WeakNodePath;
1060 friend class CullTraverserData;
1063INLINE 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()
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...
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...
void stash(int sort=0, Thread *current_thread=Thread::get_current_thread())
Removes the referenced node (and the entire subgraph below this node) from the scene graph in any nor...
LogicOpAttrib::Operation get_logic_op() const
Returns the logical operation that has been specifically set on this node via set_logic_op(),...
void premunge_scene(GraphicsStateGuardianBase *gsg=nullptr)
Walks through the scene graph beginning at the bottom node, and internally adjusts any GeomVertexForm...
void set_tex_hpr(TextureStage *stage, PN_stdfloat h, PN_stdfloat p, PN_stdfloat r)
Sets a texture matrix on the current node to apply the indicated rotation, as a 3-D HPR,...
void set_x(PN_stdfloat x)
Sets the X component of the position transform, leaving other components untouched.
void clear_occluder()
Completely removes any occluders that may have been set via set_occluder() from this particular node.
void set_sa(PN_stdfloat sa)
Sets the alpha component of the color scale.
void force_recompute_bounds()
Forces the recomputing of all the bounding volumes at every node in the subgraph beginning at this no...
void set_hpr_scale(PN_stdfloat h, PN_stdfloat p, PN_stdfloat r, PN_stdfloat sx, PN_stdfloat sy, PN_stdfloat sz)
Sets the rotation and scale components of the transform, leaving translation untouched.
void set_light(const NodePath &light, int priority=0)
Adds the indicated Light or PolylightNode to the list of lights that illuminate geometry at this node...
static void set_max_search_depth(int max_search_depth)
Certain operations, such as find() or find_all_matches(), require a traversal of the scene graph to s...
bool has_light_off() const
Returns true if all Lights have been specifically disabled on this particular node.
static NodePath any_path(PandaNode *node, Thread *current_thread=Thread::get_current_thread())
Returns a new NodePath that represents any arbitrary path from the root to the indicated node.
void set_tex_gen(TextureStage *stage, RenderAttrib::TexGenMode mode, int priority=0)
Enables automatic texture coordinate generation for the indicated texture stage.
LPoint3 get_relative_point(const NodePath &other, const LVecBase3 &point) const
Given that the indicated point is in the coordinate system of the other node, returns the same point ...
NodePath copy_to(const NodePath &other, int sort=0, Thread *current_thread=Thread::get_current_thread()) const
Functions like instance_to(), except a deep copy is made of the referenced node and all of its descen...
void set_sz(PN_stdfloat sz)
Sets the z-scale component of the transform, leaving other components untouched.
void compose_color_scale(const LVecBase4 &scale, int priority=0)
multiplies the color scale component of the transform, with previous color scale leaving translation ...
void set_sb(PN_stdfloat sb)
Sets the blue component of the color scale.
void get_tag_keys(vector_string &keys) const
Fills the given vector up with the list of tags on this PandaNode.
bool has_depth_test() const
Returns true if a depth-test adjustment has been explicitly set on this particular node via set_depth...
get_ancestor
Returns the nth ancestor of the path, where 0 is the NodePath itself and get_num_nodes() - 1 is get_t...
void list_tags() const
Lists the tags to the nout stream, one per line.
void set_quat(const LQuaternion &quat)
Sets the rotation component of the transform, leaving translation and scale untouched.
void clear_transform(Thread *current_thread=Thread::get_current_thread())
Sets the transform object on this node to identity.
get_children
Returns the set of all child nodes of the referenced node.
bool get_depth_test() const
Returns true if depth-test rendering has been specifically set on this node via set_depth_test(),...
bool is_same_graph(const NodePath &other, Thread *current_thread=Thread::get_current_thread()) const
Returns true if the node represented by this NodePath is parented within the same graph as that of th...
int get_num_children(Thread *current_thread=Thread::get_current_thread()) const
Returns the number of children of the referenced node.
void clear_two_sided()
Completely removes any two-sided adjustment that may have been set on this node via set_two_sided().
void set_alpha_scale(PN_stdfloat scale, int priority=0)
Sets the alpha scale component of the transform without (much) affecting the color scale.
void set_scissor(PN_stdfloat left, PN_stdfloat right, PN_stdfloat bottom, PN_stdfloat top)
Sets up a scissor region on the nodes rendered at this level and below.
LVector3 get_pos_delta() const
Returns the delta vector from this node's position in the previous frame (according to set_prev_trans...
bool get_depth_write() const
Returns true if depth-write rendering has been specifically set on this node via set_depth_write(),...
void show_bounds()
Causes the bounding volume of the bottom node and all of its descendants (that is,...
void clear_clip_plane()
Completely removes any clip planes that may have been set via set_clip_plane() or set_clip_plane_off(...
void set_audio_volume_off(int priority=0)
Disables any audio volume attribute inherited from above.
bool has_texture_off() const
Returns true if texturing has been specifically disabled on this particular node via set_texture_off(...
int count_num_descendants() const
Returns the number of nodes at and below this level.
void do_billboard_point_eye(const NodePath &camera, PN_stdfloat offset)
Performs a billboard-type rotate to the indicated camera node, one time only, and leaves the object r...
void clear_mat()
Completely removes any transform from the referenced node.
bool verify_complete(Thread *current_thread=Thread::get_current_thread()) const
Returns true if all of the nodes described in the NodePath are connected, or false otherwise.
void clear_depth_test()
Completely removes any depth-test adjustment that may have been set on this node via set_depth_test()...
bool has_transparency() const
Returns true if a transparent-rendering adjustment has been explicitly set on this particular node vi...
void clear_depth_write()
Completely removes any depth-write adjustment that may have been set on this node via set_depth_write...
NodePath find_path_to(PandaNode *node) const
Searches for the indicated node below this node and returns the shortest NodePath that connects them.
void do_billboard_axis(const NodePath &camera, PN_stdfloat offset)
Performs a billboard-type rotate to the indicated camera node, one time only, and leaves the object r...
void set_billboard_point_eye(PN_stdfloat offset=0.0, bool fixed_depth=false)
Puts a billboard transition on the node such that it will rotate in three dimensions about the origin...
bool has_vertex_column(const InternalName *name) const
Returns true if there are at least some vertices at this node and below that contain a reference to t...
static NodePath not_found()
Creates a NodePath with the ET_not_found error type set.
static int get_max_search_depth()
Returns the current setting of the search depth limit.
void clear_tex_gen()
Removes the texture coordinate generation mode from all texture stages on this node.
void set_depth_write(bool depth_write, int priority=0)
Specifically sets or disables the writing to the depth buffer on this particular node.
void set_occluder(const NodePath &occluder)
Adds the indicated occluder to the list of occluders that apply to geometry at this node and below.
void set_sy(PN_stdfloat sy)
Sets the y-scale component of the transform, leaving other components untouched.
RenderModeAttrib::Mode get_render_mode() const
Returns the render mode that has been specifically set on this node via set_render_mode(),...
RenderAttrib::TexGenMode get_tex_gen(TextureStage *stage) const
Returns the texture coordinate generation mode for the given stage, or M_off if there is no explicit ...
bool has_light(const NodePath &light) const
Returns true if the indicated Light or PolylightNode has been specifically enabled on this particular...
bool has_audio_volume() const
Returns true if an audio volume has been applied to the referenced node, false otherwise.
int flatten_light()
Analyzes the geometry below this node and reports the number of vertices, triangles,...
void show()
Undoes the effect of a previous hide() on this node: makes the referenced node (and the entire subgra...
size_t add_hash(size_t hash) const
Adds the NodePath into the running hash.
void set_pos_quat_scale(const LVecBase3 &pos, const LQuaternion &quat, const LVecBase3 &scale)
Replaces the translation, rotation, and scale components, implicitly setting shear to 0.
void set_sr(PN_stdfloat sr)
Sets the red component of the color scale.
void clear_effects()
Resets this node to have no render effects.
void wrt_reparent_to(const NodePath &other, int sort=0, Thread *current_thread=Thread::get_current_thread())
This functions identically to reparent_to(), except the transform on this node is also adjusted so th...
LVecBase3 get_hpr() const
Retrieves the rotation component of the transform.
void set_mat(const LMatrix4 &mat)
Directly sets an arbitrary 4x4 transform matrix.
void project_texture(TextureStage *stage, Texture *tex, const NodePath &projector)
A convenience function to enable projective texturing at this node level and below,...
PandaNode * get_top_node(Thread *current_thread=Thread::get_current_thread()) const
Returns the top node of the path, or NULL if the path is empty.
void output(std::ostream &out) const
Writes a sensible description of the NodePath to the indicated output stream.
void set_pos_quat_scale_shear(const LVecBase3 &pos, const LQuaternion &quat, const LVecBase3 &scale, const LVecBase3 &shear)
Completely replaces the transform with new translation, rotation, scale, and shear components.
void show_tight_bounds()
Similar to show_bounds(), this draws a bounding box representing the "tight" bounds of this node and ...
LPoint3 get_pos() const
Retrieves the translation component of the transform.
int flatten_medium()
A more thorough flattening than flatten_light(), this first applies all the transforms,...
void set_clip_plane(const NodePath &clip_plane, int priority=0)
Adds the indicated clipping plane to the list of planes that apply to geometry at this node and below...
NodePath find(const std::string &path) const
Searches for a node below the referenced node that matches the indicated string.
void clear_depth_offset()
Completely removes any depth-offset adjustment that may have been set on this node via set_depth_offs...
void prepare_scene(GraphicsStateGuardianBase *gsg)
Walks through the scene graph beginning at the bottom node, and does whatever initialization is requi...
const TransformState * get_prev_transform(Thread *current_thread=Thread::get_current_thread()) const
Returns the transform that has been set as this node's "previous" position.
void set_depth_offset(int bias, int priority=0)
This instructs the graphics driver to apply an offset or bias to the generated depth values for rende...
void look_at(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z)
Sets the transform on this NodePath so that it rotates to face the indicated point in space.
void hide()
Makes the referenced node (and the entire subgraph below this node) invisible to all cameras.
void hide_bounds()
Stops the rendering of the bounding volume begun with show_bounds().
const RenderEffect * get_effect(TypeHandle type) const
Returns the render effect of the indicated type, if it is defined on the node, or NULL if it is not.
bool has_fog_off() const
Returns true if a fog has been specifically disabled on this particular node via set_fog_off(),...
InternalNameCollection find_all_vertex_columns() const
Returns a list of all vertex array columns stored on some geometry found at this node level and below...
Texture * get_texture() const
Returns the base-level texture that has been set on this particular node, or NULL if no texture has b...
void replace_texture(Texture *tex, Texture *new_tex)
Recursively searches the scene graph for references to the given texture, and replaces them with the ...
PN_stdfloat get_render_mode_thickness() const
Returns the render mode thickness that has been specifically set on this node via set_render_mode(),...
void set_texture(Texture *tex, int priority=0)
Adds the indicated texture to the list of textures that will be rendered on the default texture stage...
LVecBase3 get_shear() const
Retrieves the shear component of the transform.
set_name
Changes the name of the referenced node.
LVecBase3 get_scale() const
Retrieves the scale component of the transform.
bool has_logic_op() const
Returns true if a logical operation has been explicitly set on this particular node via set_logic_op(...
void fillin(DatagramIterator &scan, BamReader *manager)
This internal function is called by make_from_bam to read in all of the relevant data from the BamFil...
bool has_effect(TypeHandle type) const
Returns true if there is a render effect of the indicated type defined on this node,...
PointerTo< Material > get_material() const
Returns the material that has been set on this particular node, or NULL if no material has been set.
void remove_node(Thread *current_thread=Thread::get_current_thread())
Disconnects the referenced node from the scene graph.
get_net_tag
Returns the tag value that has been defined on this node, or the nearest ancestor node,...
LVector3 get_relative_vector(const NodePath &other, const LVecBase3 &vec) const
Given that the indicated vector is in the coordinate system of the other node, returns the same vecto...
void set_z(PN_stdfloat z)
Sets the Z component of the position transform, leaving other components untouched.
NodePath get_tex_projector_from(TextureStage *stage) const
Returns the "from" node associated with the TexProjectorEffect on the indicated stage.
NodePath get_common_ancestor(const NodePath &other, Thread *current_thread=Thread::get_current_thread()) const
Returns the lowest NodePath that both of these two NodePaths have in common: the first ancestor that ...
bool has_bin() const
Returns true if the node has been assigned to the a particular rendering bin via set_bin(),...
void adjust_all_priorities(int adjustment)
Adds the indicated adjustment amount (which may be negative) to the priority for all transitions on t...
void set_tex_transform(TextureStage *stage, const TransformState *transform)
Sets the texture matrix on the current node to the indicated transform for the given stage.
void clear_tex_projector(TextureStage *stage)
Removes the TexProjectorEffect for the indicated stage from this node.
void set_antialias(unsigned short mode, int priority=0)
Specifies the antialiasing type that should be applied at this node and below.
void set_sg(PN_stdfloat sg)
Sets the green component of the color scale.
void set_pos_hpr_scale(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z, PN_stdfloat h, PN_stdfloat p, PN_stdfloat r, PN_stdfloat sx, PN_stdfloat sy, PN_stdfloat sz)
Completely replaces the transform with new translation, rotation, and scale components.
PN_stdfloat get_sb() const
Gets the blue component of the color scale.
void clear_color()
Completely removes any color adjustment from the node.
bool has_tex_projector(TextureStage *stage) const
Returns true if this node has a TexProjectorEffect for the indicated stage, false otherwise.
bool is_empty() const
Returns true if the NodePath contains no nodes.
void clear_tag(const std::string &key)
Removes the value defined for this key on this particular node.
void set_fog_off(int priority=0)
Sets the geometry at this level and below to render using no fog.
bool has_clip_plane_off() const
Returns true if all clipping planes have been specifically disabled on this particular node.
PN_stdfloat get_tex_rotate(TextureStage *stage) const
Returns the rotation set for the UV's for the given stage on the current node.
InternalNameCollection find_all_texcoords() const
Returns a list of all texture coordinate sets used by any geometry at this node level and below.
void clear_billboard()
Removes any billboard effect from the node.
void set_sx(PN_stdfloat sx)
Sets the x-scale component of the transform, leaving other components untouched.
bool has_depth_offset() const
Returns true if a depth-offset adjustment has been explicitly set on this particular node via set_dep...
void set_logic_op(LogicOpAttrib::Operation op, int priority=0)
Specifically sets or disables a logical operation on this particular node.
LVecBase3 get_tex_pos(TextureStage *stage) const
Returns the offset set for the UVW's for the given stage on the current node.
void do_billboard_point_world(const NodePath &camera, PN_stdfloat offset)
Performs a billboard-type rotate to the indicated camera node, one time only, and leaves the object r...
get_node
Returns the nth node of the path, where 0 is the referenced (bottom) node and get_num_nodes() - 1 is ...
bool has_color() const
Returns true if a color has been applied to the given node, false otherwise.
void reverse_ls() const
Lists the hierarchy at and above the referenced node.
LVecBase2 get_tex_scale(TextureStage *stage) const
Returns the scale set for the UV's for the given stage on the current node.
void set_compass(const NodePath &reference=NodePath())
Puts a compass effect on the node, so that it will retain a fixed rotation relative to the reference ...
int get_bin_draw_order() const
Returns the drawing order associated with the bin that this particular node was assigned to via set_b...
TextureStageCollection find_all_texture_stages() const
Returns a list of a TextureStages applied to geometry at this node and below.
const SamplerState & get_texture_sampler() const
Returns the sampler state that has been given for the base-level texture that has been set on this pa...
get_error_type
If is_empty() is true, this returns a code that represents the reason why the NodePath is empty.
void set_clip_plane_off(int priority=0)
Sets the geometry at this level and below to render using no clip_planes at all.
Texture * find_texture(const std::string &name) const
Returns the first texture found applied to geometry at this node or below that matches the indicated ...
void set_fluid_pos(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z)
Sets the translation component, without changing the "previous" position, so that the collision syste...
get_num_nodes
Returns the number of nodes in the path.
int complete_pointers(TypedWritable **plist, BamReader *manager)
Receives an array of pointers, one for each time manager->read_pointer() was called in fillin().
bool has_texture() const
Returns true if a texture has been applied to this particular node via set_texture(),...
bool has_depth_write() const
Returns true if a depth-write adjustment has been explicitly set on this particular node via set_dept...
void clear_logic_op()
Completely removes any logical operation that may have been set on this node via set_logic_op().
const LMatrix4 & get_mat() const
Returns the transform matrix that has been applied to the referenced node, or the identity matrix if ...
int clear_model_nodes()
Recursively walks through the scene graph at this level and below, looking for ModelNodes,...
void set_collide_mask(CollideMask new_mask, CollideMask bits_to_change=CollideMask::all_on(), TypeHandle node_type=TypeHandle::none())
Recursively applies the indicated CollideMask to the into_collide_masks for all nodes at this level a...
NodePathCollection find_all_matches(const std::string &path) const
Returns the complete set of all NodePaths that begin with this NodePath and can be extended by path.
void clear_light()
Completely removes any lighting operations that may have been set via set_light() or set_light_off() ...
bool is_stashed() const
Returns true if the referenced node is stashed either directly, or because some ancestor is stashed.
void clear_material()
Completely removes any material adjustment that may have been set via set_material() from this partic...
bool is_ancestor_of(const NodePath &other, Thread *current_thread=Thread::get_current_thread()) const
Returns true if the node represented by this NodePath is a parent or other ancestor of the other Node...
PandaNode * node() const
Returns the referenced node of the path.
Material * find_material(const std::string &name) const
Returns the first material found applied to geometry at this node or below that matches the indicated...
void clear_texture()
Completely removes any texture adjustment that may have been set via set_texture() or set_texture_off...
void unify_texture_stages(TextureStage *stage)
Searches through all TextureStages at this node and below.
bool has_render_mode() const
Returns true if a render mode has been explicitly set on this particular node via set_render_mode() (...
bool has_scissor() const
Returns true if a scissor region was defined at this node by a previous call to set_scissor().
const LVecBase4 & get_color_scale() const
Returns the complete color scale vector that has been applied to this node via a previous call to set...
void clear_render_mode()
Completely removes any render mode adjustment that may have been set on this node via set_render_mode...
LVecBase2 get_tex_offset(TextureStage *stage) const
Returns the offset set for the UV's for the given stage on the current node.
void reparent_to(const NodePath &other, int sort=0, Thread *current_thread=Thread::get_current_thread())
Removes the referenced node of the NodePath from its current parent and attaches it to the referenced...
NodePath()
This constructs an empty NodePath with no nodes.
bool has_fog() const
Returns true if a fog has been applied to this particular node via set_fog(), false otherwise.
void set_tex_projector(TextureStage *stage, const NodePath &from, const NodePath &to, int lens_index=0)
Establishes a TexProjectorEffect on this node, which can be used to establish projective texturing (b...
bool has_billboard() const
Returns true if there is any billboard effect on the node.
PN_stdfloat get_distance(const NodePath &other) const
Returns the straight-line distance between this referenced node's coordinate frame's origin,...
void set_effect(const RenderEffect *effect)
Adds the indicated render effect to the scene graph on this node.
void replace_material(Material *mat, Material *new_mat)
Recursively searches the scene graph for references to the given material, and replaces them with the...
ConstPointerTo< TransformState > get_tex_transform(TextureStage *stage) const
Returns the texture matrix on the current node for the given stage, or identity transform if there is...
bool has_clip_plane(const NodePath &clip_plane) const
Returns true if the indicated clipping plane has been specifically applied to this particular node.
std::string get_bin_name() const
Returns the name of the bin that this particular node was assigned to via set_bin(),...
CollideMask get_collide_mask() const
Returns the union of all of the into_collide_masks for nodes at this level and below.
void set_pos_quat(const LVecBase3 &pos, const LQuaternion &quat)
Sets the translation and rotation component of the transform, leaving scale untouched.
void set_material(Material *tex, int priority=0)
Sets the geometry at this level and below to render using the indicated material.
void clear_attrib(TypeHandle type)
Removes the render attribute of the given type from this node.
int get_instance_count() const
Returns the geometry instance count, or 0 if disabled.
void set_render_mode_filled_wireframe(const LColor &wireframe_color, int priority=0)
Sets up the geometry at this level and below (unless overridden) to render in filled,...
void set_audio_volume(PN_stdfloat volume, int priority=0)
Sets the audio volume component of the transform.
void unstash(int sort=0, Thread *current_thread=Thread::get_current_thread())
Undoes the effect of a previous stash() on this node: makes the referenced node (and the entire subgr...
bool calc_tight_bounds(LPoint3 &min_point, LPoint3 &max_point, const NodePath &other=NodePath(), Thread *current_thread=Thread::get_current_thread()) const
Calculates the minimum and maximum vertices of all Geoms at this NodePath's bottom node and below.
bool has_two_sided() const
Returns true if a two-sided adjustment has been explicitly set on this particular node via set_two_si...
void ls() const
Lists the hierarchy at and below the referenced node.
void clear_compass()
Removes any compass effect from the node.
bool write_bam_file(const Filename &filename) const
Writes the contents of this node and below out to a bam file with the indicated filename.
bool has_mat() const
Returns true if a non-identity transform matrix has been applied to the referenced node,...
int compare_to(const NodePath &other) const
Returns a number less than zero if this NodePath sorts before the other one, greater than zero if it ...
vector_uchar encode_to_bam_stream() const
Converts the NodePath object into a single stream of data using a BamWriter, and returns that data as...
bool has_occluder(const NodePath &occluder) const
Returns true if the indicated occluder has been specifically applied to this particular node.
get_sort
Returns the sort value of the referenced node within its parent; that is, the sort number passed on t...
void set_color(PN_stdfloat r, PN_stdfloat g, PN_stdfloat b, PN_stdfloat a=1.0, int priority=0)
Applies a scene-graph color to the referenced node.
bool get_render_mode_perspective() const
Returns the flag that has been set on this node via set_render_mode_perspective(),...
LColor get_color() const
Returns the color that has been assigned to the node, or black if no color has been assigned.
NodePath get_child(int n, Thread *current_thread=Thread::get_current_thread()) const
Returns a NodePath representing the nth child of the referenced node.
LQuaternion get_quat() const
Retrieves the rotation component of the transform.
NodePath find_net_tag(const std::string &key) const
Returns the lowest ancestor of this node that contains a tag definition with the indicated key,...
void clear_antialias()
Completely removes any antialias setting that may have been set on this node via set_antialias().
bool has_tex_transform(TextureStage *stage) const
Returns true if there is an explicit texture matrix on the current node for the given stage.
void set_texture_off(int priority=0)
Sets the geometry at this level and below to render using no texture, on any stage.
void set_state(const RenderState *state, Thread *current_thread=Thread::get_current_thread())
Changes the complete state object on this node.
void set_depth_test(bool depth_test, int priority=0)
Specifically sets or disables the testing of the depth buffer on this particular node.
bool has_antialias() const
Returns true if an antialias setting has been explicitly mode on this particular node via set_antiali...
int get_depth_offset() const
Returns the depth offset value if it has been specified using set_depth_offset, or 0 if not.
NodePathCollection find_all_paths_to(PandaNode *node) const
Returns the set of all NodePaths that extend from this NodePath down to the indicated node.
void set_pos_hpr_scale_shear(const LVecBase3 &pos, const LVecBase3 &hpr, const LVecBase3 &scale, const LVecBase3 &shear)
Completely replaces the transform with new translation, rotation, scale, and shear components.
bool is_singleton(Thread *current_thread=Thread::get_current_thread()) const
Returns true if the NodePath contains exactly one node.
const RenderState * get_state(Thread *current_thread=Thread::get_current_thread()) const
Returns the complete state object set on this node.
void set_fog(Fog *fog, int priority=0)
Sets the geometry at this level and below to render using the indicated fog.
TextureCollection find_all_textures() const
Returns a list of a textures applied to geometry at this node and below.
PN_stdfloat get_sr() const
Gets the red component of the color scale.
static NodePath decode_from_bam_stream(vector_uchar data, BamReader *reader=nullptr)
Reads the string created by a previous call to encode_to_bam_stream(), and extracts and returns the N...
void clear_fog()
Completely removes any fog adjustment that may have been set via set_fog() or set_fog_off() from this...
void heads_up(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z)
Behaves like look_at(), but with a strong preference to keeping the up vector oriented in the indicat...
bool is_hidden(DrawMask camera_mask=PandaNode::get_overall_bit()) const
Returns true if the referenced node is hidden from the indicated camera(s) either directly,...
void set_color_scale_off(int priority=0)
Disables any color scale attribute inherited from above.
PointerTo< BoundingVolume > get_bounds(Thread *current_thread=Thread::get_current_thread()) const
Returns a newly-allocated bounding volume containing the bottom node and all of its descendants.
void set_shear(PN_stdfloat shxy, PN_stdfloat shxz, PN_stdfloat shyz)
Sets the shear component of the transform, leaving translation, rotation, and scale untouched.
bool has_material() const
Returns true if a material has been applied to this particular node via set_material(),...
void clear_bin()
Completely removes any bin adjustment that may have been set via set_bin() from this particular node.
bool has_tex_gen(TextureStage *stage) const
Returns true if there is a mode for automatic texture coordinate generation on the current node for t...
const RenderAttrib * get_attrib(TypeHandle type) const
Returns the render attribute of the indicated type, if it is defined on the node, or NULL if it is no...
NodePath get_top(Thread *current_thread=Thread::get_current_thread()) const
Returns a singleton NodePath that represents the top of the path, or empty NodePath if this path is e...
void clear_scissor()
Removes the scissor region that was defined at this node level by a previous call to set_scissor().
bool has_texcoord(const std::string &texcoord_name) const
Returns true if there are at least some vertices at this node and below that use the named texture co...
void clear_transparency()
Completely removes any transparency adjustment that may have been set on this node via set_transparen...
NodePath attach_new_node(PandaNode *node, int sort=0, Thread *current_thread=Thread::get_current_thread()) const
Attaches a new node, with or without existing parents, to the scene graph below the referenced node o...
void unstash_all(Thread *current_thread=Thread::get_current_thread())
Unstashes this node and all stashed child nodes.
void stash_to(const NodePath &other, int sort=0, Thread *current_thread=Thread::get_current_thread())
Similar to reparent_to(), but the node is added to its new parent's stashed list, so that the result ...
has_parent
Returns true if the referenced node has a parent; i.e.
void set_billboard_axis(PN_stdfloat offset=0.0)
Puts a billboard transition on the node such that it will rotate in two dimensions around the up axis...
bool write_bam_stream(std::ostream &out) const
Writes the contents of this node and below out to the indicated stream.
get_parent
Returns the NodePath to the parent of the referenced node: that is, this NodePath,...
void set_material_off(int priority=0)
Sets the geometry at this level and below to render using no material.
void set_all_color_scale(PN_stdfloat scale, int priority=0)
Scales all the color components of the object by the same amount, darkening the object,...
void set_pos_hpr(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z, PN_stdfloat h, PN_stdfloat p, PN_stdfloat r)
Sets the translation and rotation component of the transform, leaving scale untouched.
LVecBase3 get_tex_hpr(TextureStage *stage) const
Returns the 3-D HPR set for the UVW's for the given stage on the current node.
void set_tex_pos(TextureStage *stage, PN_stdfloat u, PN_stdfloat v, PN_stdfloat w)
Sets a texture matrix on the current node to apply the indicated offset to UVW's for the given stage.
static NodePath fail()
Creates a NodePath with the ET_fail error type set.
const TransformState * get_transform(Thread *current_thread=Thread::get_current_thread()) const
Returns the complete transform object set on this node.
void set_bin(const std::string &bin_name, int draw_order, int priority=0)
Assigns the geometry at this level and below to the named rendering bin.
void set_tex_offset(TextureStage *stage, PN_stdfloat u, PN_stdfloat v)
Sets a texture matrix on the current node to apply the indicated offset to UV's for the given stage.
PN_stdfloat get_sg() const
Gets the green component of the color scale.
bool has_compass() const
Returns true if there is any compass effect on the node.
void clear_tex_transform()
Removes all texture matrices from the current node.
void set_scale(PN_stdfloat scale)
Sets the scale component of the transform, leaving translation and rotation untouched.
void apply_texture_colors()
Removes textures from Geoms at this node and below by applying the texture colors to the vertices.
void set_render_mode(RenderModeAttrib::Mode mode, PN_stdfloat thickness, int priority=0)
Sets up the geometry at this level and below (unless overridden) to render in the specified mode and ...
MaterialCollection find_all_materials() const
Returns a list of a materials applied to geometry at this node and below.
static NodePath removed()
Creates a NodePath with the ET_removed error type set.
void detach_node(Thread *current_thread=Thread::get_current_thread())
Disconnects the referenced node from its parent, but does not immediately delete it.
void set_two_sided(bool two_sided, int priority=0)
Specifically sets or disables two-sided rendering mode on this particular node.
Fog * get_fog() const
Returns the fog that has been set on this particular node, or NULL if no fog has been set.
PN_stdfloat get_net_audio_volume() const
Returns the complete audio volume for this node taking highers nodes in the graph into account.
void set_render_mode_wireframe(int priority=0)
Sets up the geometry at this level and below (unless overridden) to render in wireframe mode.
void set_quat_scale(const LQuaternion &quat, const LVecBase3 &scale)
Sets the rotation and scale components of the transform, leaving translation untouched.
void clear_color_scale()
Completely removes any color scale from the referenced node.
void set_render_mode_thickness(PN_stdfloat thickness, int priority=0)
Sets up the point geometry at this level and below to render as thick points (that is,...
void clear_project_texture(TextureStage *stage)
Undoes the effect of project_texture().
get_name
Returns the name of the referenced node.
void set_hpr(PN_stdfloat h, PN_stdfloat p, PN_stdfloat r)
Sets the rotation component of the transform, leaving translation and scale untouched.
bool has_tag(const std::string &key) const
Returns true if a value has been defined on this node for the particular key (even if that value is t...
void set_instance_count(int instance_count)
Sets the geometry instance count, or 0 if geometry instancing should be disabled.
void set_y(PN_stdfloat y)
Sets the Y component of the position transform, leaving other components untouched.
void clear_audio_volume()
Completely removes any audio volume from the referenced node.
void set_billboard_point_world(PN_stdfloat offset=0.0)
Puts a billboard transition on the node such that it will rotate in three dimensions about the origin...
LVecBase3 get_tex_scale_3d(TextureStage *stage) const
Returns the scale set for the UVW's for the given stage on the current node.
NodePath instance_under_node(const NodePath &other, const std::string &name, int sort=0, Thread *current_thread=Thread::get_current_thread()) const
Behaves like instance_to(), but implicitly creates a new node to instance the geometry under,...
void set_render_mode_filled(int priority=0)
Sets up the geometry at this level and below (unless overridden) to render in filled (i....
void set_tex_scale(TextureStage *stage, PN_stdfloat scale)
Sets a texture matrix on the current node to apply the indicated scale to UVW's for the given stage.
NodePath get_tex_projector_to(TextureStage *stage) const
Returns the "to" node associated with the TexProjectorEffect on the indicated stage.
NodePath instance_to(const NodePath &other, int sort=0, Thread *current_thread=Thread::get_current_thread()) const
Adds the referenced node of the NodePath as a child of the referenced node of the indicated other Nod...
const RenderEffects * get_effects() const
Returns the complete RenderEffects that will be applied to this node.
void set_transparency(TransparencyAttrib::Mode mode, int priority=0)
Specifically sets or disables transparent rendering mode on this particular node.
has_net_tag
Returns true if the indicated tag value has been defined on this node or on any ancestor node,...
bool get_two_sided() const
Returns true if two-sided rendering has been specifically set on this node via set_two_sided(),...
bool has_attrib(TypeHandle type) const
Returns true if there is a render attribute of the indicated type defined on this node,...
int get_key() const
Returns an integer that is guaranteed to be the same for all NodePaths that represent the same node i...
void clear_effect(TypeHandle type)
Removes the render effect of the given type from this node.
bool has_color_scale() const
Returns true if a color scale has been applied to the referenced node, false otherwise.
void clear()
Sets this NodePath to the empty NodePath.
int flatten_strong()
The strongest possible flattening.
TransparencyAttrib::Mode get_transparency() const
Returns the transparent rendering that has been specifically set on this node via set_transparency(),...
TextureStage * find_texture_stage(const std::string &name) const
Returns the first TextureStage found applied to geometry at this node or below that matches the indic...
void set_color_off(int priority=0)
Sets the geometry at this level and below to render using the geometry color.
PN_stdfloat get_audio_volume() const
Returns the complete audio volume that has been applied to this node via a previous call to set_audio...
void set_render_mode_perspective(bool perspective, int priority=0)
Sets up the point geometry at this level and below to render as perspective sprites (that is,...
void set_tex_rotate(TextureStage *stage, PN_stdfloat r)
Sets a texture matrix on the current node to apply the indicated rotation, clockwise in degrees,...
unsigned short get_antialias() const
Returns the antialias setting that has been specifically set on this node via set_antialias(),...
get_stashed_children
Returns the set of all child nodes of the referenced node that have been stashed.
void set_color_scale(const LVecBase4 &scale, int priority=0)
Sets the color scale component of the transform, leaving translation and rotation untouched.
void write_datagram(BamWriter *manager, Datagram &dg) const
Writes the contents of this object to the datagram for shipping out to a Bam file.
void set_effects(const RenderEffects *effects)
Sets the complete RenderEffects that will be applied this node.
PN_stdfloat get_sa() const
Gets the alpha component of the color scale.
NodePath get_stashed_ancestor(Thread *current_thread=Thread::get_current_thread()) const
Returns the NodePath at or above the referenced node that is stashed, or an empty NodePath if no ance...
NodePath get_hidden_ancestor(DrawMask camera_mask=PandaNode::get_overall_bit(), Thread *current_thread=Thread::get_current_thread()) const
Returns the NodePath at or above the referenced node that is hidden to the indicated camera(s),...
void set_tag(const std::string &key, const std::string &value)
Associates a user-defined value with a user-defined key which is stored on the node.
void set_transform(const TransformState *transform, Thread *current_thread=Thread::get_current_thread())
Changes the complete transform object on this node.
void write_bounds(std::ostream &out) const
Writes a description of the bounding volume containing the bottom node and all of its descendants to ...
void set_light_off(int priority=0)
Sets the geometry at this level and below to render using no lights at all.
void show_through()
Makes the referenced node visible just to the cameras whose camera_mask shares the indicated bits.
std::string get_tag(const std::string &key) const
Retrieves the user-defined value that was previously set on this node for the particular key,...
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 our own Panda specialization on the default STL list.
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.