1730992849
3 3
11 libp3pgraph 4 w0Cq 12 panda3d.core 
1688
1889 11 operator != 0 4 3577 27 TransformState::operator != 0 1 1 0
75
inline bool TransformState::operator !=(TransformState const &other) const;

1890 10 compare_to 0 4 3577 26 TransformState::compare_to 0 2 2 3 847
/**
 * Provides an arbitrary ordering among all unique TransformStates, so we can
 * store the essentially different ones in a big set and throw away the rest.
 *
 * Note that if this returns 0, it doesn't necessarily imply that operator ==
 * returns true; it uses a very slightly different comparison threshold.
 */

/**
 * Provides an arbitrary ordering among all unique TransformStates, so we can
 * store the essentially different ones in a big set and throw away the rest.
 *
 * Note that if this returns 0, it doesn't necessarily imply that operator ==
 * returns true; it uses a very slightly different comparison threshold.
 *
 * If uniquify_matrix is true, then matrix-defined TransformStates are also
 * uniqified.  If uniquify_matrix is false, then only component-defined
 * TransformStates are uniquified, which is less expensive.
 */
162
inline int TransformState::compare_to(TransformState const &other) const;
int TransformState::compare_to(TransformState const &other, bool uniquify_matrix) const;

1891 11 operator == 0 4 3577 27 TransformState::operator == 0 1 4 0
68
bool TransformState::operator ==(TransformState const &other) const;

1892 8 get_hash 0 4 3577 24 TransformState::get_hash 0 1 5 55
/**
 * Returns a suitable hash value for phash_map.
 */
56
inline std::size_t TransformState::get_hash(void) const;

1893 13 make_identity 0 4 3577 29 TransformState::make_identity 0 1 6 44
/**
 * Constructs an identity transform.
 */
76
static ConstPointerTo< TransformState > TransformState::make_identity(void);

1894 12 make_invalid 0 4 3577 28 TransformState::make_invalid 0 1 7 103
/**
 * Constructs an invalid transform; for instance, the result of inverting a
 * singular matrix.
 */
75
static ConstPointerTo< TransformState > TransformState::make_invalid(void);

1895 8 make_pos 0 4 3577 24 TransformState::make_pos 0 1 8 68
/**
 * Makes a new TransformState with the specified components.
 */
94
static inline ConstPointerTo< TransformState > TransformState::make_pos(LVecBase3 const &pos);

1896 8 make_hpr 0 4 3577 24 TransformState::make_hpr 0 1 9 68
/**
 * Makes a new TransformState with the specified components.
 */
94
static inline ConstPointerTo< TransformState > TransformState::make_hpr(LVecBase3 const &hpr);

1897 9 make_quat 0 4 3577 25 TransformState::make_quat 0 1 10 68
/**
 * Makes a new TransformState with the specified components.
 */
98
static inline ConstPointerTo< TransformState > TransformState::make_quat(LQuaternion const &quat);

1898 12 make_pos_hpr 0 4 3577 28 TransformState::make_pos_hpr 0 1 11 68
/**
 * Makes a new TransformState with the specified components.
 */
120
static inline ConstPointerTo< TransformState > TransformState::make_pos_hpr(LVecBase3 const &pos, LVecBase3 const &hpr);

1899 10 make_scale 0 4 3577 26 TransformState::make_scale 0 2 12 13 138
/**
 * Makes a new TransformState with the specified components.
 */

/**
 * Makes a new TransformState with the specified components.
 */
192
static inline ConstPointerTo< TransformState > TransformState::make_scale(PN_stdfloat scale);
static inline ConstPointerTo< TransformState > TransformState::make_scale(LVecBase3 const &scale);

1900 10 make_shear 0 4 3577 26 TransformState::make_shear 0 1 14 68
/**
 * Makes a new TransformState with the specified components.
 */
98
static inline ConstPointerTo< TransformState > TransformState::make_shear(LVecBase3 const &shear);

1901 18 make_pos_hpr_scale 0 4 3577 34 TransformState::make_pos_hpr_scale 0 1 15 68
/**
 * Makes a new TransformState with the specified components.
 */
150
static inline ConstPointerTo< TransformState > TransformState::make_pos_hpr_scale(LVecBase3 const &pos, LVecBase3 const &hpr, LVecBase3 const &scale);

1902 19 make_pos_quat_scale 0 4 3577 35 TransformState::make_pos_quat_scale 0 1 16 68
/**
 * Makes a new TransformState with the specified components.
 */
154
static inline ConstPointerTo< TransformState > TransformState::make_pos_quat_scale(LVecBase3 const &pos, LQuaternion const &quat, LVecBase3 const &scale);

1903 24 make_pos_hpr_scale_shear 0 4 3577 40 TransformState::make_pos_hpr_scale_shear 0 1 17 68
/**
 * Makes a new TransformState with the specified components.
 */
173
static ConstPointerTo< TransformState > TransformState::make_pos_hpr_scale_shear(LVecBase3 const &pos, LVecBase3 const &hpr, LVecBase3 const &scale, LVecBase3 const &shear);

1904 25 make_pos_quat_scale_shear 0 4 3577 41 TransformState::make_pos_quat_scale_shear 0 1 18 68
/**
 * Makes a new TransformState with the specified components.
 */
177
static ConstPointerTo< TransformState > TransformState::make_pos_quat_scale_shear(LVecBase3 const &pos, LQuaternion const &quat, LVecBase3 const &scale, LVecBase3 const &shear);

1905 8 make_mat 0 4 3577 24 TransformState::make_mat 0 1 19 79
/**
 * Makes a new TransformState with the specified transformation matrix.
 */
86
static ConstPointerTo< TransformState > TransformState::make_mat(LMatrix4 const &mat);

1906 10 make_pos2d 0 4 3577 26 TransformState::make_pos2d 0 1 20 72
/**
 * Makes a new 2-d TransformState with the specified components.
 */
96
static inline ConstPointerTo< TransformState > TransformState::make_pos2d(LVecBase2 const &pos);

1907 13 make_rotate2d 0 4 3577 29 TransformState::make_rotate2d 0 1 21 72
/**
 * Makes a new 2-d TransformState with the specified components.
 */
97
static inline ConstPointerTo< TransformState > TransformState::make_rotate2d(PN_stdfloat rotate);

1908 17 make_pos_rotate2d 0 4 3577 33 TransformState::make_pos_rotate2d 0 1 22 72
/**
 * Makes a new 2-d TransformState with the specified components.
 */
123
static inline ConstPointerTo< TransformState > TransformState::make_pos_rotate2d(LVecBase2 const &pos, PN_stdfloat rotate);

1909 12 make_scale2d 0 4 3577 28 TransformState::make_scale2d 0 2 23 24 146
/**
 * Makes a new 2-d TransformState with the specified components.
 */

/**
 * Makes a new 2-d TransformState with the specified components.
 */
196
static inline ConstPointerTo< TransformState > TransformState::make_scale2d(PN_stdfloat scale);
static inline ConstPointerTo< TransformState > TransformState::make_scale2d(LVecBase2 const &scale);

1910 12 make_shear2d 0 4 3577 28 TransformState::make_shear2d 0 1 25 72
/**
 * Makes a new 2-d TransformState with the specified components.
 */
95
static inline ConstPointerTo< TransformState > TransformState::make_shear2d(PN_stdfloat shear);

1911 23 make_pos_rotate_scale2d 0 4 3577 39 TransformState::make_pos_rotate_scale2d 0 1 26 72
/**
 * Makes a new 2-d TransformState with the specified components.
 */
153
static inline ConstPointerTo< TransformState > TransformState::make_pos_rotate_scale2d(LVecBase2 const &pos, PN_stdfloat rotate, LVecBase2 const &scale);

1912 29 make_pos_rotate_scale_shear2d 0 4 3577 45 TransformState::make_pos_rotate_scale_shear2d 0 1 27 84
/**
 * Makes a new two-dimensional TransformState with the specified components.
 */
171
static ConstPointerTo< TransformState > TransformState::make_pos_rotate_scale_shear2d(LVecBase2 const &pos, PN_stdfloat rotate, LVecBase2 const &scale, PN_stdfloat shear);

1913 9 make_mat3 0 4 3577 25 TransformState::make_mat3 0 1 28 102
/**
 * Makes a new two-dimensional TransformState with the specified 3x3
 * transformation matrix.
 */
87
static ConstPointerTo< TransformState > TransformState::make_mat3(LMatrix3 const &mat);

1914 11 is_identity 0 4 3577 27 TransformState::is_identity 0 1 29 92
/**
 * Returns true if the transform represents the identity matrix, false
 * otherwise.
 */
52
inline bool TransformState::is_identity(void) const;

1915 10 is_invalid 0 4 3577 26 TransformState::is_invalid 0 1 30 168
/**
 * Returns true if the transform represents an invalid matrix, for instance
 * the result of inverting a singular matrix, or false if the transform is
 * valid.
 */
51
inline bool TransformState::is_invalid(void) const;

1916 11 is_singular 0 4 3577 27 TransformState::is_singular 0 1 31 154
/**
 * Returns true if the transform represents a singular transform (that is, it
 * has a zero scale, and it cannot be inverted), or false otherwise.
 */
52
inline bool TransformState::is_singular(void) const;

1917 5 is_2d 0 4 3577 21 TransformState::is_2d 0 1 32 206
/**
 * Returns true if the transform has been constructed entirely using the 2-d
 * transform operations, e.g.  make_pos2d(), and therefore operates strictly
 * in two-dimensional space on X and Y only.
 */
46
inline bool TransformState::is_2d(void) const;

1918 14 has_components 0 4 3577 30 TransformState::has_components 0 1 33 654
/**
 * Returns true if the transform can be described by separate pos, hpr, and
 * scale components.  Most transforms we use in everyday life can be so
 * described, but some kinds of transforms (for instance, those involving a
 * skew) cannot.
 *
 * This is not related to whether the transform was originally described
 * componentwise.  Even a transform that was constructed with a 4x4 may return
 * true here if the matrix is a simple affine matrix with no skew.
 *
 * If this returns true, you may safely call get_hpr() and get_scale() to
 * retrieve the components.  (You may always safely call get_pos() whether
 * this returns true or false.)
 */
55
inline bool TransformState::has_components(void) const;

1919 16 components_given 0 4 3577 32 TransformState::components_given 0 1 34 454
/**
 * Returns true if the transform was specified componentwise, or false if it
 * was specified with a general 4x4 matrix.  If this is true, the components
 * returned by get_pos() and get_scale() will be exactly those that were set;
 * otherwise, these functions will return computed values.  If this is true,
 * the rotation may have been set either with a hpr trio or with a quaternion;
 * hpr_given() or quat_given() can resolve the difference.
 */
57
inline bool TransformState::components_given(void) const;

1920 9 hpr_given 0 4 3577 25 TransformState::hpr_given 0 1 35 200
/**
 * Returns true if the rotation was specified via a trio of Euler angles,
 * false otherwise.  If this is true, get_hpr() will be exactly as set;
 * otherwise, it will return a computed value.
 */
50
inline bool TransformState::hpr_given(void) const;

1921 10 quat_given 0 4 3577 26 TransformState::quat_given 0 1 36 191
/**
 * Returns true if the rotation was specified via a quaternion, false
 * otherwise.  If this is true, get_quat() will be exactly as set; otherwise,
 * it will return a computed value.
 */
51
inline bool TransformState::quat_given(void) const;

1922 7 has_pos 0 4 3577 23 TransformState::has_pos 0 1 37 194
/**
 * Returns true if the transform's pos component can be extracted out
 * separately.  This is generally always true, unless the transform is invalid
 * (i.e.  is_invalid() returns true).
 */
48
inline bool TransformState::has_pos(void) const;

1923 7 has_hpr 0 4 3577 23 TransformState::has_hpr 0 1 38 199
/**
 * Returns true if the transform's rotation component can be extracted out
 * separately and described as a set of Euler angles.  This is generally true
 * only when has_components() is true.
 */
48
inline bool TransformState::has_hpr(void) const;

1924 8 has_quat 0 4 3577 24 TransformState::has_quat 0 1 39 190
/**
 * Returns true if the transform's rotation component can be extracted out
 * separately and described as a quaternion.  This is generally true only when
 * has_components() is true.
 */
49
inline bool TransformState::has_quat(void) const;

1925 9 has_scale 0 4 3577 25 TransformState::has_scale 0 1 40 154
/**
 * Returns true if the transform's scale component can be extracted out
 * separately.  This is generally true only when has_components() is true.
 */
50
inline bool TransformState::has_scale(void) const;

1926 18 has_identity_scale 0 4 3577 34 TransformState::has_identity_scale 0 1 41 98
/**
 * Returns true if the scale is uniform 1.0, or false if the scale has some
 * real value.
 */
59
inline bool TransformState::has_identity_scale(void) const;

1927 17 has_uniform_scale 0 4 3577 33 TransformState::has_uniform_scale 0 1 42 201
/**
 * Returns true if the scale is uniform across all three axes (and therefore
 * can be expressed as a single number), or false if the transform has a
 * different scale in different dimensions.
 */
58
inline bool TransformState::has_uniform_scale(void) const;

1928 9 has_shear 0 4 3577 25 TransformState::has_shear 0 1 43 154
/**
 * Returns true if the transform's shear component can be extracted out
 * separately.  This is generally true only when has_components() is true.
 */
50
inline bool TransformState::has_shear(void) const;

1929 17 has_nonzero_shear 0 4 3577 33 TransformState::has_nonzero_shear 0 1 44 121
/**
 * Returns true if the shear component is non-zero, false if it is zero or if
 * the matrix cannot be decomposed.
 */
58
inline bool TransformState::has_nonzero_shear(void) const;

1930 7 has_mat 0 4 3577 23 TransformState::has_mat 0 1 45 134
/**
 * Returns true if the transform can be described as a matrix.  This is
 * generally always true, unless is_invalid() is true.
 */
48
inline bool TransformState::has_mat(void) const;

1931 7 get_pos 0 4 3577 23 TransformState::get_pos 0 1 46 259
// Force interrogate to make a copy as a temporary solution for #1625.

// Force interrogate to make a copy as a temporary solution for #1625.

/**
 * Returns the pos component of the transform.  It is an error to call this if
 * has_pos() returned false.
 */
44
LPoint3 TransformState::get_pos(void) const;

1932 7 get_hpr 0 4 3577 23 TransformState::get_hpr 0 1 47 152
/**
 * Returns the rotation component of the transform as a trio of Euler angles.
 * It is an error to call this if has_components() returned false.
 */
46
LVecBase3 TransformState::get_hpr(void) const;

1933 8 get_quat 0 4 3577 24 TransformState::get_quat 0 1 48 412
/**
 * Returns the rotation component of the transform as a quaternion.  The
 * return value will be normalized if a normalized quaternion was given to the
 * constructor (or if the quaternion was computed implicitly); it will be non-
 * normalized if a non-normalized quaternion was given to the constructor.
 * See also get_norm_quat().
 *
 * It is an error to call this if has_components() returned false.
 */
49
LQuaternion TransformState::get_quat(void) const;

1934 13 get_norm_quat 0 4 3577 29 TransformState::get_norm_quat 0 1 49 247
/**
 * Returns the rotation component of the transform as a quaternion.  Unlike
 * the result of get_quat(), the return value of this method is guaranteed to
 * be normalized.  It is an error to call this if has_components() returned
 * false.
 */
54
LQuaternion TransformState::get_norm_quat(void) const;

1935 9 get_scale 0 4 3577 25 TransformState::get_scale 0 1 50 124
/**
 * Returns the scale component of the transform.  It is an error to call this
 * if has_components() returned false.
 */
48
LVecBase3 TransformState::get_scale(void) const;

1936 17 get_uniform_scale 0 4 3577 33 TransformState::get_uniform_scale 0 1 51 147
/**
 * Returns the scale component of the transform, as a single number.  It is an
 * error to call this if has_uniform_scale() returned false.
 */
58
PN_stdfloat TransformState::get_uniform_scale(void) const;

1937 9 get_shear 0 4 3577 25 TransformState::get_shear 0 1 52 124
/**
 * Returns the shear component of the transform.  It is an error to call this
 * if has_components() returned false.
 */
48
LVecBase3 TransformState::get_shear(void) const;

1938 7 get_mat 0 4 3577 23 TransformState::get_mat 0 1 53 59
/**
 * Returns the matrix that describes the transform.
 */
45
LMatrix4 TransformState::get_mat(void) const;

1939 9 get_pos2d 0 4 3577 25 TransformState::get_pos2d 0 1 54 130
/**
 * Returns the pos component of the 2-d transform.  It is an error to call
 * this if has_pos() or is_2d() returned false.
 */
55
inline LVecBase2 TransformState::get_pos2d(void) const;

1940 12 get_rotate2d 0 4 3577 28 TransformState::get_rotate2d 0 1 55 195
/**
 * Returns the rotation component of the 2-d transform as an angle in degrees
 * clockwise about the origin.  It is an error to call this if
 * has_components() or is_2d() returned false.
 */
60
inline PN_stdfloat TransformState::get_rotate2d(void) const;

1941 11 get_scale2d 0 4 3577 27 TransformState::get_scale2d 0 1 56 139
/**
 * Returns the scale component of the 2-d transform.  It is an error to call
 * this if has_components() or is_2d() returned false.
 */
57
inline LVecBase2 TransformState::get_scale2d(void) const;

1942 11 get_shear2d 0 4 3577 27 TransformState::get_shear2d 0 1 57 139
/**
 * Returns the shear component of the 2-d transform.  It is an error to call
 * this if has_components() or is_2d() returned false.
 */
59
inline PN_stdfloat TransformState::get_shear2d(void) const;

1943 8 get_mat3 0 4 3577 24 TransformState::get_mat3 0 1 58 126
/**
 * Returns the 3x3 matrix that describes the 2-d transform.  It is an error to
 * call this if is_2d() returned false.
 */
53
inline LMatrix3 TransformState::get_mat3(void) const;

1944 7 set_pos 0 4 3577 23 TransformState::set_pos 0 1 59 151
/**
 * Returns a new TransformState object that represents the original
 * TransformState with its pos component replaced with the indicated value.
 */
85
ConstPointerTo< TransformState > TransformState::set_pos(LVecBase3 const &pos) const;

1945 7 set_hpr 0 4 3577 23 TransformState::set_hpr 0 1 60 172
/**
 * Returns a new TransformState object that represents the original
 * TransformState with its rotation component replaced with the indicated
 * value, if possible.
 */
85
ConstPointerTo< TransformState > TransformState::set_hpr(LVecBase3 const &hpr) const;

1946 8 set_quat 0 4 3577 24 TransformState::set_quat 0 1 61 172
/**
 * Returns a new TransformState object that represents the original
 * TransformState with its rotation component replaced with the indicated
 * value, if possible.
 */
89
ConstPointerTo< TransformState > TransformState::set_quat(LQuaternion const &quat) const;

1947 9 set_scale 0 4 3577 25 TransformState::set_scale 0 1 62 169
/**
 * Returns a new TransformState object that represents the original
 * TransformState with its scale component replaced with the indicated value,
 * if possible.
 */
89
ConstPointerTo< TransformState > TransformState::set_scale(LVecBase3 const &scale) const;

1948 9 set_shear 0 4 3577 25 TransformState::set_shear 0 1 63 169
/**
 * Returns a new TransformState object that represents the original
 * TransformState with its shear component replaced with the indicated value,
 * if possible.
 */
89
ConstPointerTo< TransformState > TransformState::set_shear(LVecBase3 const &shear) const;

1949 9 set_pos2d 0 4 3577 25 TransformState::set_pos2d 0 1 64 155
/**
 * Returns a new TransformState object that represents the original 2-d
 * TransformState with its pos component replaced with the indicated value.
 */
87
ConstPointerTo< TransformState > TransformState::set_pos2d(LVecBase2 const &pos) const;

1950 12 set_rotate2d 0 4 3577 28 TransformState::set_rotate2d 0 1 65 176
/**
 * Returns a new TransformState object that represents the original 2-d
 * TransformState with its rotation component replaced with the indicated
 * value, if possible.
 */
88
ConstPointerTo< TransformState > TransformState::set_rotate2d(PN_stdfloat rotate) const;

1951 11 set_scale2d 0 4 3577 27 TransformState::set_scale2d 0 1 66 173
/**
 * Returns a new TransformState object that represents the original 2-d
 * TransformState with its scale component replaced with the indicated value,
 * if possible.
 */
91
ConstPointerTo< TransformState > TransformState::set_scale2d(LVecBase2 const &scale) const;

1952 11 set_shear2d 0 4 3577 27 TransformState::set_shear2d 0 1 67 173
/**
 * Returns a new TransformState object that represents the original 2-d
 * TransformState with its shear component replaced with the indicated value,
 * if possible.
 */
86
ConstPointerTo< TransformState > TransformState::set_shear2d(PN_stdfloat shear) const;

1953 7 compose 0 4 3577 23 TransformState::compose 0 1 68 408
/**
 * Returns a new TransformState object that represents the composition of this
 * state with the other state.
 *
 * The result of this operation is cached, and will be retained as long as
 * both this TransformState object and the other TransformState object
 * continue to exist.  Should one of them destruct, the cached entry will be
 * removed, and its pointer will be allowed to destruct as well.
 */
92
ConstPointerTo< TransformState > TransformState::compose(TransformState const *other) const;

1954 14 invert_compose 0 4 3577 30 TransformState::invert_compose 0 1 69 268
/**
 * Returns a new TransformState object that represents the composition of this
 * state's inverse with the other state.
 *
 * This is similar to compose(), but is particularly useful for computing the
 * relative state of a node as viewed from some other node.
 */
99
ConstPointerTo< TransformState > TransformState::invert_compose(TransformState const *other) const;

1955 11 get_inverse 0 4 3577 27 TransformState::get_inverse 0 1 70 199
/**
 * Returns the inverse of this transform.  If you are going to immediately
 * compose this result with another TransformState, it is faster to do it in
 * one operation with invert_compose().
 */
80
inline ConstPointerTo< TransformState > TransformState::get_inverse(void) const;

1956 10 get_unique 0 4 3577 26 TransformState::get_unique 0 1 71 331
/**
 * Returns the pointer to the unique TransformState in the cache that is
 * equivalent to this one.  This may be the same pointer as this object, or it
 * may be a different pointer; but it will be an equivalent object, and it
 * will be a shared pointer.  This may be called from time to time to improve
 * cache benefits.
 */
79
inline ConstPointerTo< TransformState > TransformState::get_unique(void) const;

1957 18 get_geom_rendering 0 4 3577 34 TransformState::get_geom_rendering 0 1 72 261
/**
 * Returns the union of the Geom::GeomRendering bits that will be required
 * once this TransformState is applied to a geom which includes the indicated
 * geom_rendering bits.  The RenderState's get_geom_rendering() should already
 * have been applied.
 */
72
inline int TransformState::get_geom_rendering(int geom_rendering) const;

1958 9 cache_ref 0 4 3577 25 TransformState::cache_ref 0 1 73 64
/**
 * Overrides this method to update PStats appropriately.
 */
50
inline void TransformState::cache_ref(void) const;

1959 11 cache_unref 0 4 3577 27 TransformState::cache_unref 0 1 74 64
/**
 * Overrides this method to update PStats appropriately.
 */
52
inline bool TransformState::cache_unref(void) const;

1960 8 node_ref 0 4 3577 24 TransformState::node_ref 0 1 75 64
/**
 * Overrides this method to update PStats appropriately.
 */
49
inline void TransformState::node_ref(void) const;

1961 10 node_unref 0 4 3577 26 TransformState::node_unref 0 1 76 64
/**
 * Overrides this method to update PStats appropriately.
 */
51
inline bool TransformState::node_unref(void) const;

1962 33 get_composition_cache_num_entries 0 4 3577 49 TransformState::get_composition_cache_num_entries 0 1 77 278
/**
 * Returns the number of entries in the composition cache for this
 * TransformState.  This is the number of other TransformStates whose
 * composition with this one has been cached.  This number is not useful for
 * any practical reason other than performance analysis.
 */
81
inline std::size_t TransformState::get_composition_cache_num_entries(void) const;

1963 40 get_invert_composition_cache_num_entries 0 4 3577 56 TransformState::get_invert_composition_cache_num_entries 0 1 78 256
/**
 * Returns the number of entries in the invert_composition cache for this
 * TransformState.  This is similar to the composition cache, but it records
 * cache entries for the invert_compose() operation.  See
 * get_composition_cache_num_entries().
 */
88
inline std::size_t TransformState::get_invert_composition_cache_num_entries(void) const;

1964 26 get_composition_cache_size 0 4 3577 42 TransformState::get_composition_cache_size 0 1 79 337
/**
 * Returns the number of slots in the composition cache for this
 * TransformState.  You may use this as an upper bound when walking through
 * all of the composition cache results via get_composition_cache_source() or
 * result().
 *
 * This has no practical value other than for examining the cache for
 * performance analysis.
 */
74
inline std::size_t TransformState::get_composition_cache_size(void) const;

1965 28 get_composition_cache_source 0 4 3577 44 TransformState::get_composition_cache_source 0 1 80 303
/**
 * Returns the source TransformState of the nth element in the composition
 * cache.  Returns NULL if there doesn't happen to be an entry in the nth
 * element.  See get_composition_cache_result().
 *
 * This has no practical value other than for examining the cache for
 * performance analysis.
 */
95
inline TransformState const *TransformState::get_composition_cache_source(std::size_t n) const;

1966 28 get_composition_cache_result 0 4 3577 44 TransformState::get_composition_cache_result 0 1 81 373
/**
 * Returns the result TransformState of the nth element in the composition
 * cache.  Returns NULL if there doesn't happen to be an entry in the nth
 * element.
 *
 * In general, a->compose(a->get_composition_cache_source(n)) ==
 * a->get_composition_cache_result(n).
 *
 * This has no practical value other than for examining the cache for
 * performance analysis.
 */
95
inline TransformState const *TransformState::get_composition_cache_result(std::size_t n) const;

1967 33 get_invert_composition_cache_size 0 4 3577 49 TransformState::get_invert_composition_cache_size 0 1 82 344
/**
 * Returns the number of slots in the composition cache for this
 * TransformState.  You may use this as an upper bound when walking through
 * all of the composition cache results via
 * get_invert_composition_cache_source() or result().
 *
 * This has no practical value other than for examining the cache for
 * performance analysis.
 */
81
inline std::size_t TransformState::get_invert_composition_cache_size(void) const;

1968 35 get_invert_composition_cache_source 0 4 3577 51 TransformState::get_invert_composition_cache_source 0 1 83 317
/**
 * Returns the source TransformState of the nth element in the invert
 * composition cache.  Returns NULL if there doesn't happen to be an entry in
 * the nth element.  See get_invert_composition_cache_result().
 *
 * This has no practical value other than for examining the cache for
 * performance analysis.
 */
102
inline TransformState const *TransformState::get_invert_composition_cache_source(std::size_t n) const;

1969 35 get_invert_composition_cache_result 0 4 3577 51 TransformState::get_invert_composition_cache_result 0 1 84 401
/**
 * Returns the result TransformState of the nth element in the invert
 * composition cache.  Returns NULL if there doesn't happen to be an entry in
 * the nth element.
 *
 * In general, a->invert_compose(a->get_invert_composition_cache_source(n)) ==
 * a->get_invert_composition_cache_result(n).
 *
 * This has no practical value other than for examining the cache for
 * performance analysis.
 */
102
inline TransformState const *TransformState::get_invert_composition_cache_result(std::size_t n) const;

1970 26 validate_composition_cache 0 4 3577 42 TransformState::validate_composition_cache 0 1 85 163
/**
 * Returns true if the composition cache and invert composition cache for this
 * particular TransformState are self-consistent and valid, false otherwise.
 */
60
bool TransformState::validate_composition_cache(void) const;

1971 21 get_composition_cache 0 4 3577 37 TransformState::get_composition_cache 0 1 86 0
60
PyObject *TransformState::get_composition_cache(void) const;

1972 28 get_invert_composition_cache 0 4 3577 44 TransformState::get_invert_composition_cache 0 1 87 0
67
PyObject *TransformState::get_invert_composition_cache(void) const;

1973 6 output 0 4 3577 22 TransformState::output 0 1 88 10
/**
 *
 */
53
void TransformState::output(std::ostream &out) const;

1974 5 write 0 4 3577 21 TransformState::write 0 1 89 10
/**
 *
 */
70
void TransformState::write(std::ostream &out, int indent_level) const;

1975 23 write_composition_cache 0 4 3577 39 TransformState::write_composition_cache 0 1 90 208
/**
 * Writes a brief description of the composition cache and invert composition
 * cache to the indicated ostream.  This is not useful except for performance
 * analysis, to examine the cache structure.
 */
88
void TransformState::write_composition_cache(std::ostream &out, int indent_level) const;

1976 14 get_num_states 0 4 3577 30 TransformState::get_num_states 0 1 91 147
/**
 * Returns the total number of unique TransformState objects allocated in the
 * world.  This will go up and down during normal operations.
 */
48
static int TransformState::get_num_states(void);

1977 21 get_num_unused_states 0 4 3577 37 TransformState::get_num_unused_states 0 1 92 612
/**
 * Returns the total number of TransformState objects that have been allocated
 * but have no references outside of the internal TransformState cache.
 *
 * A nonzero return value is not necessarily indicative of leaked references;
 * it is normal for two TransformState objects, both of which have references
 * held outside the cache, to have the result of their composition stored
 * within the cache.  This result will be retained within the cache until one
 * of the base TransformStates is released.
 *
 * Use list_cycles() to get an idea of the number of actual "leaked"
 * TransformState objects.
 */
55
static int TransformState::get_num_unused_states(void);

1978 11 clear_cache 0 4 3577 27 TransformState::clear_cache 0 1 93 617
/**
 * Empties the cache of composed TransformStates.  This makes every
 * TransformState forget what results when it is composed with other
 * TransformStates.
 *
 * This will eliminate any TransformState objects that have been allocated but
 * have no references outside of the internal TransformState map.  It will not
 * eliminate TransformState objects that are still in use.
 *
 * Nowadays, this method should not be necessary, as reference-count cycles in
 * the composition cache should be automatically detected and broken.
 *
 * The return value is the number of TransformStates freed by this operation.
 */
45
static int TransformState::clear_cache(void);

1979 15 garbage_collect 0 4 3577 31 TransformState::garbage_collect 0 1 94 297
/**
 * Performs a garbage-collection cycle.  This must be called periodically if
 * garbage-collect-states is true to ensure that TransformStates get cleaned
 * up appropriately.  It does no harm to call it even if this variable is not
 * true, but there is probably no advantage in that case.
 */
49
static int TransformState::garbage_collect(void);

1980 11 list_cycles 0 4 3577 27 TransformState::list_cycles 0 1 95 565
/**
 * Detects all of the reference-count cycles in the cache and reports them to
 * standard output.
 *
 * These cycles may be inadvertently created when state compositions cycle
 * back to a starting point.  Nowadays, these cycles should be automatically
 * detected and broken, so this method should never list any cycles unless
 * there is a bug in that detection logic.
 *
 * The cycles listed here are not leaks in the strictest sense of the word,
 * since they can be reclaimed by a call to clear_cache(); but they will not
 * be reclaimed automatically.
 */
59
static void TransformState::list_cycles(std::ostream &out);

1981 11 list_states 0 4 3577 27 TransformState::list_states 0 1 96 172
/**
 * Lists all of the TransformStates in the cache to the output stream, one per
 * line.  This can be quite a lot of output if the cache is large, so be
 * prepared.
 */
59
static void TransformState::list_states(std::ostream &out);

1982 15 validate_states 0 4 3577 31 TransformState::validate_states 0 1 97 282
/**
 * Ensures that the cache is still stored in sorted order, and that none of
 * the cache elements have been inadvertently deleted.  Returns true if so,
 * false if there is a problem (which implies someone has modified one of the
 * supposedly-const TransformState objects).
 */
50
static bool TransformState::validate_states(void);

1983 10 get_states 0 4 3577 26 TransformState::get_states 0 1 98 0
50
static PyObject *TransformState::get_states(void);

1984 17 get_unused_states 0 4 3577 33 TransformState::get_unused_states 0 1 99 0
57
static PyObject *TransformState::get_unused_states(void);

1985 14 get_class_type 0 4 3577 30 TransformState::get_class_type 0 1 100 0
55
static TypeHandle TransformState::get_class_type(void);

1986 8 get_slot 0 4 3587 30 RenderAttribRegistry::get_slot 0 1 101 117
/**
 * Returns the slot number assigned to the indicated TypeHandle, or 0 if no
 * slot number has been assigned.
 */
72
inline int RenderAttribRegistry::get_slot(TypeHandle type_handle) const;

1987 13 get_max_slots 0 4 3587 35 RenderAttribRegistry::get_max_slots 0 1 102 0
63
static constexpr int RenderAttribRegistry::get_max_slots(void);

1988 13 get_num_slots 0 4 3587 35 RenderAttribRegistry::get_num_slots 0 1 103 135
/**
 * Returns the number of RenderAttrib slots that have been allocated.  This is
 * one more than the highest slot number in use.
 */
59
inline int RenderAttribRegistry::get_num_slots(void) const;

1989 13 get_slot_type 0 4 3587 35 RenderAttribRegistry::get_slot_type 0 1 104 57
/**
 * Returns the TypeHandle associated with slot n.
 */
70
inline TypeHandle RenderAttribRegistry::get_slot_type(int slot) const;

1990 13 get_slot_sort 0 4 3587 35 RenderAttribRegistry::get_slot_sort 0 1 105 58
/**
 * Returns the sort number associated with slot n.
 */
63
inline int RenderAttribRegistry::get_slot_sort(int slot) const;

1991 13 set_slot_sort 0 4 3587 35 RenderAttribRegistry::set_slot_sort 0 1 106 58
/**
 * Changes the sort number associated with slot n.
 */
61
void RenderAttribRegistry::set_slot_sort(int slot, int sort);

1992 16 get_slot_default 0 4 3587 38 RenderAttribRegistry::get_slot_default 0 1 107 172
/**
 * Returns the default RenderAttrib object associated with slot n.  This is
 * the attrib that should be applied in the absence of any other attrib of
 * this type.
 */
82
inline RenderAttrib const *RenderAttribRegistry::get_slot_default(int slot) const;

1993 20 get_num_sorted_slots 0 4 3587 42 RenderAttribRegistry::get_num_sorted_slots 0 1 108 66
/**
 * Returns the number of entries in the sorted_slots list.
 */
66
inline int RenderAttribRegistry::get_num_sorted_slots(void) const;

1994 15 get_sorted_slot 0 4 3587 37 RenderAttribRegistry::get_sorted_slot 0 1 109 170
/**
 * Returns the nth slot in sorted order.  By traversing this list, you will
 * retrieve all the slot numbers in order according to their registered sort
 * value.
 */
62
inline int RenderAttribRegistry::get_sorted_slot(int n) const;

1995 14 get_global_ptr 0 4 3587 36 RenderAttribRegistry::get_global_ptr 0 1 110 10
/**
 *
 */
79
static inline RenderAttribRegistry *RenderAttribRegistry::get_global_ptr(void);

1996 7 compose 0 4 3588 21 RenderAttrib::compose 0 1 111 322
/**
 * Returns a new RenderAttrib object that represents the composition of this
 * attrib with the other attrib.  In most cases, this is the same as the other
 * attrib; a compose b produces b.  Some kinds of attributes, like a
 * TextureTransform, for instance, might produce a new result: a compose b
 * produces c.
 */
93
inline ConstPointerTo< RenderAttrib > RenderAttrib::compose(RenderAttrib const *other) const;

1997 14 invert_compose 0 4 3588 28 RenderAttrib::invert_compose 0 1 112 583
/**
 * Returns a new RenderAttrib object that represents the composition of the
 * inverse of this attrib with the other attrib.  In most cases, this is the
 * same as the other attrib; !a compose b produces b.  Some kinds of
 * attributes, like a TextureTransform, for instance, might produce a new
 * result: !a compose b produces c.
 *
 * This is similar to compose() except that the source attrib is inverted
 * first.  This is used to compute the relative attribute for one node as
 * viewed from some other node, which is especially useful for transform-type
 * attributes.
 */
100
inline ConstPointerTo< RenderAttrib > RenderAttrib::invert_compose(RenderAttrib const *other) const;

1998 25 lower_attrib_can_override 0 6 3588 39 RenderAttrib::lower_attrib_can_override 0 1 113 951
/**
 * Intended to be overridden by derived RenderAttrib types to specify how two
 * consecutive RenderAttrib objects of the same type interact.
 *
 * This should return false if a RenderAttrib on a higher node will compose
 * into a RenderAttrib on a lower node that has a higher override value, or
 * true if the lower RenderAttrib will completely replace the state.
 *
 * The default behavior is false: normally, a RenderAttrib in the graph cannot
 * completely override a RenderAttrib above it, regardless of its override
 * value--instead, the two attribs are composed.  But for some kinds of
 * RenderAttribs, it is useful to allow this kind of override.
 *
 * This method only handles the one special case of a lower RenderAttrib with
 * a higher override value.  If the higher RenderAttrib has a higher override
 * value, it always completely overrides.  And if both RenderAttribs have the
 * same override value, they are always composed.
 */
65
virtual bool RenderAttrib::lower_attrib_can_override(void) const;

1999 10 compare_to 0 4 3588 24 RenderAttrib::compare_to 0 1 114 368
/**
 * Provides an arbitrary ordering among all unique RenderAttribs, so we can
 * store the essentially different ones in a big set and throw away the rest.
 *
 * This method is not needed outside of the RenderAttrib class because all
 * equivalent RenderAttrib objects are guaranteed to share the same pointer;
 * thus, a pointer comparison is always sufficient.
 */
69
inline int RenderAttrib::compare_to(RenderAttrib const &other) const;

2000 8 get_hash 0 4 3588 22 RenderAttrib::get_hash 0 1 115 55
/**
 * Returns a suitable hash value for phash_map.
 */
54
inline std::size_t RenderAttrib::get_hash(void) const;

2001 10 get_unique 0 4 3588 24 RenderAttrib::get_unique 0 1 116 329
/**
 * Returns the pointer to the unique RenderAttrib in the cache that is
 * equivalent to this one.  This may be the same pointer as this object, or it
 * may be a different pointer; but it will be an equivalent object, and it
 * will be a shared pointer.  This may be called from time to time to improve
 * cache benefits.
 */
75
inline ConstPointerTo< RenderAttrib > RenderAttrib::get_unique(void) const;

2002 6 output 0 6 3588 20 RenderAttrib::output 0 1 117 10
/**
 *
 */
59
virtual void RenderAttrib::output(std::ostream &out) const;

2003 5 write 0 6 3588 19 RenderAttrib::write 0 1 118 10
/**
 *
 */
76
virtual void RenderAttrib::write(std::ostream &out, int indent_level) const;

2004 15 get_num_attribs 0 4 3588 29 RenderAttrib::get_num_attribs 0 1 119 145
/**
 * Returns the total number of unique RenderAttrib objects allocated in the
 * world.  This will go up and down during normal operations.
 */
47
static int RenderAttrib::get_num_attribs(void);

2005 12 list_attribs 0 4 3588 26 RenderAttrib::list_attribs 0 1 120 170
/**
 * Lists all of the RenderAttribs in the cache to the output stream, one per
 * line.  This can be quite a lot of output if the cache is large, so be
 * prepared.
 */
58
static void RenderAttrib::list_attribs(std::ostream &out);

2006 15 garbage_collect 0 4 3588 29 RenderAttrib::garbage_collect 0 1 121 155
/**
 * Performs a garbage-collection cycle.  This is called automatically from
 * RenderState::garbage_collect(); see that method for more information.
 */
47
static int RenderAttrib::garbage_collect(void);

2007 16 validate_attribs 0 4 3588 30 RenderAttrib::validate_attribs 0 1 122 208
/**
 * Ensures that the cache is still stored in sorted order.  Returns true if
 * so, false if there is a problem (which implies someone has modified one of
 * the supposedly-const RenderAttrib objects).
 */
49
static bool RenderAttrib::validate_attribs(void);

2008 8 get_slot 0 6 3588 22 RenderAttrib::get_slot 0 1 123 0
51
virtual int RenderAttrib::get_slot(void) const = 0;

2009 14 get_class_type 0 4 3588 28 RenderAttrib::get_class_type 0 1 124 0
53
static TypeHandle RenderAttrib::get_class_type(void);

2010 4 make 0 4 3593 22 RenderModeAttrib::make 0 1 125 921
/**
 * Constructs a new RenderModeAttrib object that specifies whether to draw
 * polygons in the normal, filled mode, or wireframe mode, or in some other
 * yet-to-be-defined mode.
 *
 * The thickness parameter specifies the thickness to be used for wireframe
 * lines, as well as for ordinary linestrip lines; it also specifies the
 * diameter of points.  (Thick lines are presently only supported in OpenGL;
 * but thick points are supported on either platform.)
 *
 * If perspective is true, the point thickness represented is actually a width
 * in 3-d units, and the points should scale according to perspective.  When
 * it is false, the point thickness is actually a width in pixels, and points
 * are a uniform screen size regardless of distance from the camera.
 *
 * In M_filled_wireframe mode, you should also specify the wireframe_color,
 * indicating the flat color to assign to the overlayed wireframe.
 */
193
static ConstPointerTo< RenderAttrib > RenderModeAttrib::make(RenderModeAttrib::Mode mode, PN_stdfloat thickness = 1.0, bool perspective = false, LColor const &wireframe_color = LColor::zero());

2011 12 make_default 0 4 3593 30 RenderModeAttrib::make_default 0 1 126 145
/**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */
75
static ConstPointerTo< RenderAttrib > RenderModeAttrib::make_default(void);

2012 8 get_mode 0 4 3593 26 RenderModeAttrib::get_mode 0 1 127 35
/**
 * Returns the render mode.
 */
69
inline RenderModeAttrib::Mode RenderModeAttrib::get_mode(void) const;

2013 13 get_thickness 0 4 3593 31 RenderModeAttrib::get_thickness 0 1 128 235
/**
 * Returns the line width or point thickness.  This is only relevant when
 * rendering points or lines, such as when the mode is M_wireframe or M_point
 * (or when rendering actual points or lines primitives in M_polygon mode).
 */
63
inline PN_stdfloat RenderModeAttrib::get_thickness(void) const;

2014 15 get_perspective 0 4 3593 33 RenderModeAttrib::get_perspective 0 1 129 364
/**
 * Returns the perspective flag.  When this is true, the point thickness
 * represented by get_thickness() is actually a width in 3-d units, and the
 * points should scale according to perspective.  When it is false, the
 * default, the point thickness is actually a width in pixels, and points are
 * a uniform size regardless of distance from the camera.
 */
58
inline bool RenderModeAttrib::get_perspective(void) const;

2015 19 get_wireframe_color 0 4 3593 37 RenderModeAttrib::get_wireframe_color 0 1 130 131
/**
 * Returns the color that is used in M_filled_wireframe mode to distinguish
 * the wireframe from the rest of the geometry.
 */
71
inline LColor const &RenderModeAttrib::get_wireframe_color(void) const;

2016 18 get_geom_rendering 0 4 3593 36 RenderModeAttrib::get_geom_rendering 0 1 131 186
/**
 * Returns the union of the Geom::GeomRendering bits that will be required
 * once this RenderModeAttrib is applied to a geom which includes the
 * indicated geom_rendering bits.
 */
74
inline int RenderModeAttrib::get_geom_rendering(int geom_rendering) const;

2017 14 get_class_slot 0 4 3593 32 RenderModeAttrib::get_class_slot 0 1 132 0
50
static int RenderModeAttrib::get_class_slot(void);

2018 14 get_class_type 0 4 3593 32 RenderModeAttrib::get_class_type 0 1 133 0
57
static TypeHandle RenderModeAttrib::get_class_type(void);

2019 17 ~RenderModeAttrib 0 516 3593 35 RenderModeAttrib::~RenderModeAttrib 0 0 0
42
RenderModeAttrib::~RenderModeAttrib(void);

2020 4 make 0 4 3602 21 TexMatrixAttrib::make 0 3 134 135 136 391
/**
 * Constructs a TexMatrixAttrib that applies no stages at all.
 */

/**
 * Constructs a TexMatrixAttrib that applies the indicated matrix to the
 * default texture stage.  This interface is deprecated.
 *
 * @deprecated Use the constructor that takes a TextureStage instead.
 */

/**
 * Constructs a TexMatrixAttrib that applies the indicated transform to the
 * named texture stage.
 */
263
static ConstPointerTo< RenderAttrib > TexMatrixAttrib::make(void);
static ConstPointerTo< RenderAttrib > TexMatrixAttrib::make(LMatrix4 const &mat);
static ConstPointerTo< RenderAttrib > TexMatrixAttrib::make(TextureStage *stage, TransformState const *transform);

2021 12 make_default 0 4 3602 29 TexMatrixAttrib::make_default 0 1 137 145
/**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */
74
static ConstPointerTo< RenderAttrib > TexMatrixAttrib::make_default(void);

2022 9 add_stage 0 4 3602 26 TexMatrixAttrib::add_stage 0 1 138 174
/**
 * Returns a new TexMatrixAttrib just like this one, with the indicated
 * transform for the given stage.  If this stage already exists, its transform
 * is replaced.
 */
136
ConstPointerTo< RenderAttrib > TexMatrixAttrib::add_stage(TextureStage *stage, TransformState const *transform, int override = 0) const;

2023 12 remove_stage 0 4 3602 29 TexMatrixAttrib::remove_stage 0 1 139 97
/**
 * Returns a new TexMatrixAttrib just like this one, with the indicated stage
 * removed.
 */
88
ConstPointerTo< RenderAttrib > TexMatrixAttrib::remove_stage(TextureStage *stage) const;

2024 8 is_empty 0 4 3602 25 TexMatrixAttrib::is_empty 0 1 140 101
/**
 * Returns true if no stages are defined in the TexMatrixAttrib, false if at
 * least one is.
 */
43
bool TexMatrixAttrib::is_empty(void) const;

2025 9 has_stage 0 4 3602 26 TexMatrixAttrib::has_stage 0 1 141 182
/**
 * Returns true if there is a transform associated with the indicated stage,
 * or false otherwise (in which case get_transform(stage) will return the
 * identity transform).
 */
59
bool TexMatrixAttrib::has_stage(TextureStage *stage) const;

2026 14 get_num_stages 0 4 3602 31 TexMatrixAttrib::get_num_stages 0 1 142 76
/**
 * Returns the number of stages that are represented by this attrib.
 */
48
int TexMatrixAttrib::get_num_stages(void) const;

2027 9 get_stage 0 4 3602 26 TexMatrixAttrib::get_stage 0 1 143 118
/**
 * Returns the nth stage that is represented by this attrib.  The
 * TextureStages are in no particular order.
 */
54
TextureStage *TexMatrixAttrib::get_stage(int n) const;

2028 7 get_mat 0 4 3602 24 TexMatrixAttrib::get_mat 0 2 144 145 257
/**
 * Returns the transformation matrix associated with the default texture
 * stage.
 */

/**
 * Returns the transformation matrix associated with the indicated texture
 * stage, or identity matrix if nothing is associated with the indicated
 * stage.
 */
122
LMatrix4 const &TexMatrixAttrib::get_mat(void) const;
LMatrix4 const &TexMatrixAttrib::get_mat(TextureStage *stage) const;

2029 13 get_transform 0 4 3602 30 TexMatrixAttrib::get_transform 0 1 146 155
/**
 * Returns the transformation associated with the indicated texture stage, or
 * identity matrix if nothing is associated with the indicated stage.
 */
91
ConstPointerTo< TransformState > TexMatrixAttrib::get_transform(TextureStage *stage) const;

2030 12 get_override 0 4 3602 29 TexMatrixAttrib::get_override 0 1 147 74
/**
 * Returns the override value associated with the indicated stage.
 */
68
inline int TexMatrixAttrib::get_override(TextureStage *stage) const;

2031 18 get_geom_rendering 0 4 3602 35 TexMatrixAttrib::get_geom_rendering 0 1 148 185
/**
 * Returns the union of the Geom::GeomRendering bits that will be required
 * once this TexMatrixAttrib is applied to a geom which includes the indicated
 * geom_rendering bits.
 */
73
inline int TexMatrixAttrib::get_geom_rendering(int geom_rendering) const;

2032 14 get_class_slot 0 4 3602 31 TexMatrixAttrib::get_class_slot 0 1 149 0
49
static int TexMatrixAttrib::get_class_slot(void);

2033 14 get_class_type 0 4 3602 31 TexMatrixAttrib::get_class_type 0 1 150 0
56
static TypeHandle TexMatrixAttrib::get_class_type(void);

2034 10 compare_to 0 4 3603 23 RenderState::compare_to 0 1 151 365
/**
 * Provides an arbitrary ordering among all unique RenderStates, so we can
 * store the essentially different ones in a big set and throw away the rest.
 *
 * This method is not needed outside of the RenderState class because all
 * equivalent RenderState objects are guaranteed to share the same pointer;
 * thus, a pointer comparison is always sufficient.
 */
60
int RenderState::compare_to(RenderState const &other) const;

2035 12 compare_sort 0 4 3603 25 RenderState::compare_sort 0 1 152 333
/**
 * Returns -1, 0, or 1 according to the relative sorting of these two
 * RenderStates, with regards to rendering performance, so that "heavier"
 * RenderAttribs (as defined by RenderAttribRegistry::get_slot_sort()) are
 * more likely to be grouped together.  This is not related to the sorting
 * order defined by compare_to.
 */
62
int RenderState::compare_sort(RenderState const &other) const;

2036 12 compare_mask 0 4 3603 25 RenderState::compare_mask 0 1 153 191
/**
 * This version of compare_to takes a slot mask that indicates which
 * attributes to include in the comparison.  Unlike compare_to, this method
 * compares the attributes by pointer.
 */
98
int RenderState::compare_mask(RenderState const &other, RenderState::SlotMask compare_mask) const;

2037 8 get_hash 0 4 3603 21 RenderState::get_hash 0 1 154 55
/**
 * Returns a suitable hash value for phash_map.
 */
53
inline std::size_t RenderState::get_hash(void) const;

2038 8 is_empty 0 4 3603 21 RenderState::is_empty 0 1 155 63
/**
 * Returns true if the state is empty, false otherwise.
 */
46
inline bool RenderState::is_empty(void) const;

2039 17 has_cull_callback 0 4 3603 30 RenderState::has_cull_callback 0 1 156 121
/**
 * Returns true if any of the RenderAttribs in this state request a
 * cull_callback(), false if none of them do.
 */
55
inline bool RenderState::has_cull_callback(void) const;

2040 13 cull_callback 0 4 3603 26 RenderState::cull_callback 0 1 157 183
/**
 * Calls cull_callback() on each attrib.  If any attrib returns false,
 * interrupts the list and returns false immediately; otherwise, completes the
 * list and returns true.
 */
90
bool RenderState::cull_callback(CullTraverser *trav, CullTraverserData const &data) const;

2041 10 make_empty 0 4 3603 23 RenderState::make_empty 0 1 158 56
/**
 * Returns a RenderState with no attributes set.
 */
74
static inline ConstPointerTo< RenderState > RenderState::make_empty(void);

2042 4 make 0 4 3603 17 RenderState::make 0 5 159 160 161 162 163 353
/**
 * Returns a RenderState with one attribute set.
 */

/**
 * Returns a RenderState with two attributes set.
 */

/**
 * Returns a RenderState with three attributes set.
 */

/**
 * Returns a RenderState with four attributes set.
 */

/**
 * Returns a RenderState with five attributes set.
 */

/**
 * Returns a RenderState with n attributes set.
 */
929
static ConstPointerTo< RenderState > RenderState::make(RenderAttrib const *attrib, int override = 0);
static ConstPointerTo< RenderState > RenderState::make(RenderAttrib const *attrib1, RenderAttrib const *attrib2, int override = 0);
static ConstPointerTo< RenderState > RenderState::make(RenderAttrib const *attrib1, RenderAttrib const *attrib2, RenderAttrib const *attrib3, int override = 0);
static ConstPointerTo< RenderState > RenderState::make(RenderAttrib const *attrib1, RenderAttrib const *attrib2, RenderAttrib const *attrib3, RenderAttrib const *attrib4, int override = 0);
static ConstPointerTo< RenderState > RenderState::make(RenderAttrib const *attrib1, RenderAttrib const *attrib2, RenderAttrib const *attrib3, RenderAttrib const *attrib4, RenderAttrib const *attrib5, int override = 0);
static ConstPointerTo< RenderState > RenderState::make(RenderAttrib const *const *attrib, int num_attribs, int override = 0);

2043 7 compose 0 4 3603 20 RenderState::compose 0 1 164 399
/**
 * Returns a new RenderState object that represents the composition of this
 * state with the other state.
 *
 * The result of this operation is cached, and will be retained as long as
 * both this RenderState object and the other RenderState object continue to
 * exist.  Should one of them destruct, the cached entry will be removed, and
 * its pointer will be allowed to destruct as well.
 */
83
ConstPointerTo< RenderState > RenderState::compose(RenderState const *other) const;

2044 14 invert_compose 0 4 3603 27 RenderState::invert_compose 0 1 165 265
/**
 * Returns a new RenderState object that represents the composition of this
 * state's inverse with the other state.
 *
 * This is similar to compose(), but is particularly useful for computing the
 * relative state of a node as viewed from some other node.
 */
90
ConstPointerTo< RenderState > RenderState::invert_compose(RenderState const *other) const;

2045 10 add_attrib 0 4 3603 23 RenderState::add_attrib 0 1 166 231
/**
 * Returns a new RenderState object that represents the same as the source
 * state, with the new RenderAttrib added.  If there is already a RenderAttrib
 * with the same type, it is replaced (unless the override is lower).
 */
106
ConstPointerTo< RenderState > RenderState::add_attrib(RenderAttrib const *attrib, int override = 0) const;

2046 10 set_attrib 0 4 3603 23 RenderState::set_attrib 0 2 167 168 518
/**
 * Returns a new RenderState object that represents the same as the source
 * state, with the new RenderAttrib added.  If there is already a RenderAttrib
 * with the same type, it is replaced unconditionally.  The override is not
 * changed.
 */

/**
 * Returns a new RenderState object that represents the same as the source
 * state, with the new RenderAttrib added.  If there is already a RenderAttrib
 * with the same type, it is replaced unconditionally.  The override is also
 * replaced unconditionally.
 */
191
ConstPointerTo< RenderState > RenderState::set_attrib(RenderAttrib const *attrib) const;
ConstPointerTo< RenderState > RenderState::set_attrib(RenderAttrib const *attrib, int override) const;

2047 13 remove_attrib 0 4 3603 26 RenderState::remove_attrib 0 2 169 170 268
/**
 * Returns a new RenderState object that represents the same as the source
 * state, with the indicated RenderAttrib removed.
 */

/**
 * Returns a new RenderState object that represents the same as the source
 * state, with the indicated RenderAttrib removed.
 */
161
inline ConstPointerTo< RenderState > RenderState::remove_attrib(TypeHandle type) const;
ConstPointerTo< RenderState > RenderState::remove_attrib(int slot) const;

2048 21 adjust_all_priorities 0 4 3603 34 RenderState::adjust_all_priorities 0 1 171 261
/**
 * Returns a new RenderState object that represents the same as the source
 * state, with all attributes' override values incremented (or decremented, if
 * negative) by the indicated amount.  If the override would drop below zero,
 * it is set to zero.
 */
87
ConstPointerTo< RenderState > RenderState::adjust_all_priorities(int adjustment) const;

2049 10 has_attrib 0 4 3603 23 RenderState::has_attrib 0 2 172 173 182
/**
 * Returns true if an attrib of the indicated type is present, false
 * otherwise.
 */

/**
 * Returns true if an attrib of the indicated type is present, false
 * otherwise.
 */
112
inline bool RenderState::has_attrib(TypeHandle type) const;
inline bool RenderState::has_attrib(int slot) const;

2050 10 get_attrib 0 4 3603 23 RenderState::get_attrib 0 2 174 175 253
/**
 * Looks for a RenderAttrib of the indicated type in the state, and returns it
 * if it is found, or NULL if it is not.
 */

/**
 * Returns the RenderAttrib with the indicated slot index, or NULL if there is
 * no such RenderAttrib in the state.
 */
142
inline RenderAttrib const *RenderState::get_attrib(TypeHandle type) const;
inline RenderAttrib const *RenderState::get_attrib(int slot) const;

2051 14 get_attrib_def 0 4 3603 27 RenderState::get_attrib_def 0 1 176 152
/**
 * Returns the RenderAttrib with the indicated slot index, or the default
 * attrib for that slot if there is no such RenderAttrib in the state.
 */
71
inline RenderAttrib const *RenderState::get_attrib_def(int slot) const;

2052 12 get_override 0 4 3603 25 RenderState::get_override 0 2 177 178 282
/**
 * Looks for a RenderAttrib of the indicated type in the state, and returns
 * its override value if it is found, or 0 if it is not.
 */

/**
 * Looks for a RenderAttrib of the indicated type in the state, and returns
 * its override value if it is found, or 0 if it is not.
 */
114
inline int RenderState::get_override(TypeHandle type) const;
inline int RenderState::get_override(int slot) const;

2053 10 get_unique 0 4 3603 23 RenderState::get_unique 0 1 179 328
/**
 * Returns the pointer to the unique RenderState in the cache that is
 * equivalent to this one.  This may be the same pointer as this object, or it
 * may be a different pointer; but it will be an equivalent object, and it
 * will be a shared pointer.  This may be called from time to time to improve
 * cache benefits.
 */
73
inline ConstPointerTo< RenderState > RenderState::get_unique(void) const;

2054 9 cache_ref 0 4 3603 22 RenderState::cache_ref 0 1 180 64
/**
 * Overrides this method to update PStats appropriately.
 */
47
inline void RenderState::cache_ref(void) const;

2055 11 cache_unref 0 4 3603 24 RenderState::cache_unref 0 1 181 64
/**
 * Overrides this method to update PStats appropriately.
 */
49
inline bool RenderState::cache_unref(void) const;

2056 8 node_ref 0 4 3603 21 RenderState::node_ref 0 1 182 64
/**
 * Overrides this method to update PStats appropriately.
 */
46
inline void RenderState::node_ref(void) const;

2057 10 node_unref 0 4 3603 23 RenderState::node_unref 0 1 183 64
/**
 * Overrides this method to update PStats appropriately.
 */
48
inline bool RenderState::node_unref(void) const;

2058 33 get_composition_cache_num_entries 0 4 3603 46 RenderState::get_composition_cache_num_entries 0 1 184 272
/**
 * Returns the number of entries in the composition cache for this
 * RenderState.  This is the number of other RenderStates whose composition
 * with this one has been cached.  This number is not useful for any practical
 * reason other than performance analysis.
 */
78
inline std::size_t RenderState::get_composition_cache_num_entries(void) const;

2059 40 get_invert_composition_cache_num_entries 0 4 3603 53 RenderState::get_invert_composition_cache_num_entries 0 1 185 253
/**
 * Returns the number of entries in the invert_composition cache for this
 * RenderState.  This is similar to the composition cache, but it records
 * cache entries for the invert_compose() operation.  See
 * get_composition_cache_num_entries().
 */
85
inline std::size_t RenderState::get_invert_composition_cache_num_entries(void) const;

2060 26 get_composition_cache_size 0 4 3603 39 RenderState::get_composition_cache_size 0 1 186 330
/**
 * Returns the number of slots in the composition cache for this RenderState.
 * You may use this as an upper bound when walking through all of the
 * composition cache results via get_composition_cache_source() or result().
 *
 * This has no practical value other than for examining the cache for
 * performance analysis.
 */
71
inline std::size_t RenderState::get_composition_cache_size(void) const;

2061 28 get_composition_cache_source 0 4 3603 41 RenderState::get_composition_cache_source 0 1 187 298
/**
 * Returns the source RenderState of the nth element in the composition cache.
 * Returns NULL if there doesn't happen to be an entry in the nth element.
 * See get_composition_cache_result().
 *
 * This has no practical value other than for examining the cache for
 * performance analysis.
 */
89
inline RenderState const *RenderState::get_composition_cache_source(std::size_t n) const;

2062 28 get_composition_cache_result 0 4 3603 41 RenderState::get_composition_cache_result 0 1 188 366
/**
 * Returns the result RenderState of the nth element in the composition cache.
 * Returns NULL if there doesn't happen to be an entry in the nth element.
 *
 * In general, a->compose(a->get_composition_cache_source(n)) ==
 * a->get_composition_cache_result(n).
 *
 * This has no practical value other than for examining the cache for
 * performance analysis.
 */
89
inline RenderState const *RenderState::get_composition_cache_result(std::size_t n) const;

2063 33 get_invert_composition_cache_size 0 4 3603 46 RenderState::get_invert_composition_cache_size 0 1 189 340
/**
 * Returns the number of slots in the composition cache for this RenderState.
 * You may use this as an upper bound when walking through all of the
 * composition cache results via get_invert_composition_cache_source() or
 * result().
 *
 * This has no practical value other than for examining the cache for
 * performance analysis.
 */
78
inline std::size_t RenderState::get_invert_composition_cache_size(void) const;

2064 35 get_invert_composition_cache_source 0 4 3603 48 RenderState::get_invert_composition_cache_source 0 1 190 314
/**
 * Returns the source RenderState of the nth element in the invert composition
 * cache.  Returns NULL if there doesn't happen to be an entry in the nth
 * element.  See get_invert_composition_cache_result().
 *
 * This has no practical value other than for examining the cache for
 * performance analysis.
 */
96
inline RenderState const *RenderState::get_invert_composition_cache_source(std::size_t n) const;

2065 35 get_invert_composition_cache_result 0 4 3603 48 RenderState::get_invert_composition_cache_result 0 1 191 398
/**
 * Returns the result RenderState of the nth element in the invert composition
 * cache.  Returns NULL if there doesn't happen to be an entry in the nth
 * element.
 *
 * In general, a->invert_compose(a->get_invert_composition_cache_source(n)) ==
 * a->get_invert_composition_cache_result(n).
 *
 * This has no practical value other than for examining the cache for
 * performance analysis.
 */
96
inline RenderState const *RenderState::get_invert_composition_cache_result(std::size_t n) const;

2066 21 get_composition_cache 0 4 3603 34 RenderState::get_composition_cache 0 1 192 0
57
PyObject *RenderState::get_composition_cache(void) const;

2067 28 get_invert_composition_cache 0 4 3603 41 RenderState::get_invert_composition_cache 0 1 193 0
64
PyObject *RenderState::get_invert_composition_cache(void) const;

2068 6 output 0 4 3603 19 RenderState::output 0 1 194 10
/**
 *
 */
50
void RenderState::output(std::ostream &out) const;

2069 5 write 0 4 3603 18 RenderState::write 0 1 195 10
/**
 *
 */
67
void RenderState::write(std::ostream &out, int indent_level) const;

2070 16 get_max_priority 0 4 3603 29 RenderState::get_max_priority 0 1 196 297
/**
 * Returns the maximum priority number (sometimes called override) that may be
 * set on any node.  This may or may not be enforced, but the scene graph code
 * assumes that no priority numbers will be larger than this, and some effects
 * may not work properly if you use a larger number.
 */
47
static int RenderState::get_max_priority(void);

2071 14 get_num_states 0 4 3603 27 RenderState::get_num_states 0 1 197 144
/**
 * Returns the total number of unique RenderState objects allocated in the
 * world.  This will go up and down during normal operations.
 */
45
static int RenderState::get_num_states(void);

2072 21 get_num_unused_states 0 4 3603 34 RenderState::get_num_unused_states 0 1 198 596
/**
 * Returns the total number of RenderState objects that have been allocated
 * but have no references outside of the internal RenderState cache.
 *
 * A nonzero return value is not necessarily indicative of leaked references;
 * it is normal for two RenderState objects, both of which have references
 * held outside the cache, to have to result of their composition stored
 * within the cache.  This result will be retained within the cache until one
 * of the base RenderStates is released.
 *
 * Use list_cycles() to get an idea of the number of actual "leaked"
 * RenderState objects.
 */
52
static int RenderState::get_num_unused_states(void);

2073 11 clear_cache 0 4 3603 24 RenderState::clear_cache 0 1 199 593
/**
 * Empties the cache of composed RenderStates.  This makes every RenderState
 * forget what results when it is composed with other RenderStates.
 *
 * This will eliminate any RenderState objects that have been allocated but
 * have no references outside of the internal RenderState map.  It will not
 * eliminate RenderState objects that are still in use.
 *
 * Nowadays, this method should not be necessary, as reference-count cycles in
 * the composition cache should be automatically detected and broken.
 *
 * The return value is the number of RenderStates freed by this operation.
 */
42
static int RenderState::clear_cache(void);

2074 18 clear_munger_cache 0 4 3603 31 RenderState::clear_munger_cache 0 1 200 146
/**
 * Completely empties the cache of state + gsg -> munger, for all states and
 * all gsg's.  Normally there is no need to empty this cache.
 */
50
static void RenderState::clear_munger_cache(void);

2075 15 garbage_collect 0 4 3603 28 RenderState::garbage_collect 0 1 201 366
/**
 * Performs a garbage-collection cycle.  This must be called periodically if
 * garbage-collect-states is true to ensure that RenderStates get cleaned up
 * appropriately.  It does no harm to call it even if this variable is not
 * true, but there is probably no advantage in that case.
 *
 * This automatically calls RenderAttrib::garbage_collect() as well.
 */
46
static int RenderState::garbage_collect(void);

2076 11 list_cycles 0 4 3603 24 RenderState::list_cycles 0 1 202 565
/**
 * Detects all of the reference-count cycles in the cache and reports them to
 * standard output.
 *
 * These cycles may be inadvertently created when state compositions cycle
 * back to a starting point.  Nowadays, these cycles should be automatically
 * detected and broken, so this method should never list any cycles unless
 * there is a bug in that detection logic.
 *
 * The cycles listed here are not leaks in the strictest sense of the word,
 * since they can be reclaimed by a call to clear_cache(); but they will not
 * be reclaimed automatically.
 */
56
static void RenderState::list_cycles(std::ostream &out);

2077 11 list_states 0 4 3603 24 RenderState::list_states 0 1 203 169
/**
 * Lists all of the RenderStates in the cache to the output stream, one per
 * line.  This can be quite a lot of output if the cache is large, so be
 * prepared.
 */
56
static void RenderState::list_states(std::ostream &out);

2078 15 validate_states 0 4 3603 28 RenderState::validate_states 0 1 204 279
/**
 * Ensures that the cache is still stored in sorted order, and that none of
 * the cache elements have been inadvertently deleted.  Returns true if so,
 * false if there is a problem (which implies someone has modified one of the
 * supposedly-const RenderState objects).
 */
47
static bool RenderState::validate_states(void);

2079 10 get_states 0 4 3603 23 RenderState::get_states 0 1 205 0
47
static PyObject *RenderState::get_states(void);

2080 17 get_unused_states 0 4 3603 30 RenderState::get_unused_states 0 1 206 0
54
static PyObject *RenderState::get_unused_states(void);

2081 14 get_draw_order 0 4 3603 27 RenderState::get_draw_order 0 1 207 282
// These methods are intended for use by low-level code, but they're also
// handy enough to expose to high-level users.

/**
 * Returns the draw order indicated by the CullBinAttrib, if any, associated
 * by this state (or 0 if there is no CullBinAttrib).  See get_bin_index().
 */
51
inline int RenderState::get_draw_order(void) const;

2082 13 get_bin_index 0 4 3603 26 RenderState::get_bin_index 0 1 208 246
/**
 * Returns the bin index indicated by the CullBinAttrib, if any, associated by
 * this state (or the default bin index if there is no CullBinAttrib).  This
 * function is provided as an optimization for determining this at render
 * time.
 */
50
inline int RenderState::get_bin_index(void) const;

2083 18 get_geom_rendering 0 4 3603 31 RenderState::get_geom_rendering 0 1 209 181
/**
 * Returns the union of the Geom::GeomRendering bits that will be required
 * once this RenderState is applied to a geom which includes the indicated
 * geom_rendering bits.
 */
62
int RenderState::get_geom_rendering(int geom_rendering) const;

2084 14 get_class_type 0 4 3603 27 RenderState::get_class_type 0 1 210 0
52
static TypeHandle RenderState::get_class_type(void);

2085 4 make 0 4 3606 21 AlphaTestAttrib::make 0 1 211 51
/**
 * Constructs a new AlphaTestAttrib object.
 */
126
static ConstPointerTo< RenderAttrib > AlphaTestAttrib::make(RenderAttrib::PandaCompareFunc mode, PN_stdfloat reference_alpha);

2086 12 make_default 0 4 3606 29 AlphaTestAttrib::make_default 0 1 212 145
/**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */
74
static ConstPointerTo< RenderAttrib > AlphaTestAttrib::make_default(void);

2087 19 get_reference_alpha 0 4 3606 36 AlphaTestAttrib::get_reference_alpha 0 1 213 45
/**
 * Returns the alpha reference value.
 */
68
inline PN_stdfloat AlphaTestAttrib::get_reference_alpha(void) const;

2088 8 get_mode 0 4 3606 25 AlphaTestAttrib::get_mode 0 1 214 40
/**
 * Returns the alpha write mode.
 */
76
inline RenderAttrib::PandaCompareFunc AlphaTestAttrib::get_mode(void) const;

2089 14 get_class_slot 0 4 3606 31 AlphaTestAttrib::get_class_slot 0 1 215 0
49
static int AlphaTestAttrib::get_class_slot(void);

2090 14 get_class_type 0 4 3606 31 AlphaTestAttrib::get_class_type 0 1 216 0
56
static TypeHandle AlphaTestAttrib::get_class_type(void);

2091 16 ~AlphaTestAttrib 0 516 3606 33 AlphaTestAttrib::~AlphaTestAttrib 0 0 0
40
AlphaTestAttrib::~AlphaTestAttrib(void);

2092 4 make 0 4 3607 21 AntialiasAttrib::make 0 1 217 1313
/**
 * Constructs a new AntialiasAttrib object.
 *
 * The mode should be either M_none, M_auto, or a union of any or all of
 * M_point, M_line, M_polygon, and M_multisample.  Also, in addition to the
 * above choices, it may include either of M_better of M_faster to specify a
 * performance/quality tradeoff hint.
 *
 * If M_none is specified, no antialiasing is performed.
 *
 * If M_multisample is specified, it means to use the special framebuffer
 * multisample bits for antialiasing, if it is available.  If so, the M_point,
 * M_line, and M_polygon modes are ignored.  This advanced antialiasing mode
 * is only available on certain graphics hardware.  If it is not available,
 * the M_multisample bit is ignored (and the other modes may be used instead,
 * if specified).
 *
 * M_point, M_line, and/or M_polygon specify per-primitive smoothing.  When
 * enabled, M_point and M_line may force transparency on.  M_polygon requires
 * a frame buffer that includes an alpha channel, and it works best if the
 * primitives are sorted front-to-back.
 *
 * If M_auto is specified, M_multisample is selected if it is available,
 * otherwise M_polygon is selected, unless drawing lines or points, in which
 * case M_line or M_point is selected (these two generally produce better
 * results than M_multisample)
 */
85
static ConstPointerTo< RenderAttrib > AntialiasAttrib::make(unsigned short int mode);

2093 12 make_default 0 4 3607 29 AntialiasAttrib::make_default 0 1 218 145
/**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */
74
static ConstPointerTo< RenderAttrib > AntialiasAttrib::make_default(void);

2094 8 get_mode 0 4 3607 25 AntialiasAttrib::get_mode 0 1 219 48
/**
 * Returns the specified antialias mode.
 */
64
inline unsigned short int AntialiasAttrib::get_mode(void) const;

2095 13 get_mode_type 0 4 3607 30 AntialiasAttrib::get_mode_type 0 1 220 200
/**
 * Returns the specified antialias mode, with the quality bits masked out.
 * This therefore indicates only the requested type of antialiasing: M_none,
 * M_auto, or some specific combination.
 */
69
inline unsigned short int AntialiasAttrib::get_mode_type(void) const;

2096 16 get_mode_quality 0 4 3607 33 AntialiasAttrib::get_mode_quality 0 1 221 211
/**
 * Returns the specified antialias mode, with the type bits masked out.  This
 * therefore indicates only the requested quality settings: one of M_faster,
 * M_better, M_dont_care, or zero (unspecified).
 */
72
inline unsigned short int AntialiasAttrib::get_mode_quality(void) const;

2097 14 get_class_slot 0 4 3607 31 AntialiasAttrib::get_class_slot 0 1 222 0
49
static int AntialiasAttrib::get_class_slot(void);

2098 14 get_class_type 0 4 3607 31 AntialiasAttrib::get_class_type 0 1 223 0
56
static TypeHandle AntialiasAttrib::get_class_type(void);

2099 16 ~AntialiasAttrib 0 516 3607 33 AntialiasAttrib::~AntialiasAttrib 0 0 0
40
AntialiasAttrib::~AntialiasAttrib(void);

2100 10 compare_to 0 4 3610 24 RenderEffect::compare_to 0 1 224 368
/**
 * Provides an arbitrary ordering among all unique RenderEffects, so we can
 * store the essentially different ones in a big set and throw away the rest.
 *
 * This method is not needed outside of the RenderEffect class because all
 * equivalent RenderEffect objects are guaranteed to share the same pointer;
 * thus, a pointer comparison is always sufficient.
 */
69
inline int RenderEffect::compare_to(RenderEffect const &other) const;

2101 6 output 0 6 3610 20 RenderEffect::output 0 1 225 10
/**
 *
 */
59
virtual void RenderEffect::output(std::ostream &out) const;

2102 5 write 0 6 3610 19 RenderEffect::write 0 1 226 10
/**
 *
 */
76
virtual void RenderEffect::write(std::ostream &out, int indent_level) const;

2103 15 get_num_effects 0 4 3610 29 RenderEffect::get_num_effects 0 1 227 145
/**
 * Returns the total number of unique RenderEffect objects allocated in the
 * world.  This will go up and down during normal operations.
 */
47
static int RenderEffect::get_num_effects(void);

2104 12 list_effects 0 4 3610 26 RenderEffect::list_effects 0 1 228 170
/**
 * Lists all of the RenderEffects in the cache to the output stream, one per
 * line.  This can be quite a lot of output if the cache is large, so be
 * prepared.
 */
58
static void RenderEffect::list_effects(std::ostream &out);

2105 16 validate_effects 0 4 3610 30 RenderEffect::validate_effects 0 1 229 208
/**
 * Ensures that the cache is still stored in sorted order.  Returns true if
 * so, false if there is a problem (which implies someone has modified one of
 * the supposedly-const RenderEffect objects).
 */
49
static bool RenderEffect::validate_effects(void);

2106 14 get_class_type 0 4 3610 28 RenderEffect::get_class_type 0 1 230 0
53
static TypeHandle RenderEffect::get_class_type(void);

2107 10 operator < 0 4 3611 25 RenderEffects::operator < 0 1 231 0
65
bool RenderEffects::operator <(RenderEffects const &other) const;

2108 8 is_empty 0 4 3611 23 RenderEffects::is_empty 0 1 232 63
/**
 * Returns true if the state is empty, false otherwise.
 */
48
inline bool RenderEffects::is_empty(void) const;

2109 15 get_num_effects 0 4 3611 30 RenderEffects::get_num_effects 0 1 233 151
/**
 * Returns the number of separate effects indicated in the state.
 * @deprecated in Python, use len(effects) instead, or effects.size() in C++.
 */
62
inline std::size_t RenderEffects::get_num_effects(void) const;

2110 10 get_effect 0 4 3611 25 RenderEffects::get_effect 0 2 234 235 176
/**
 * Returns the nth effect in the state.
 */

/**
 * Looks for a RenderEffect of the indicated type in the state, and returns it
 * if it is found, or NULL if it is not.
 */
144
inline RenderEffect const *RenderEffects::get_effect(std::size_t n) const;
RenderEffect const *RenderEffects::get_effect(TypeHandle type) const;

2111 4 size 0 4 3611 19 RenderEffects::size 0 1 236 73
/**
 * Returns the number of separate effects indicated in the state.
 */
51
inline std::size_t RenderEffects::size(void) const;

2112 11 operator [] 0 4 3611 26 RenderEffects::operator [] 0 2 237 238 112
/**
 * Returns the nth effect in the state.
 */

/**
 * Returns the effect in the state with the given type.
 */
153
inline RenderEffect const *RenderEffects::operator [](std::size_t n) const;
inline RenderEffect const *RenderEffects::operator [](TypeHandle type) const;

2113 11 find_effect 0 4 3611 26 RenderEffects::find_effect 0 1 239 132
/**
 * Searches for an effect with the indicated type in the state, and returns
 * its index if it is found, or -1 if it is not.
 */
54
int RenderEffects::find_effect(TypeHandle type) const;

2114 10 make_empty 0 4 3611 25 RenderEffects::make_empty 0 1 240 55
/**
 * Returns a RenderEffects with no effects set.
 */
71
static ConstPointerTo< RenderEffects > RenderEffects::make_empty(void);

2115 4 make 0 4 3611 19 RenderEffects::make 0 4 241 242 243 244 232
/**
 * Returns a RenderEffects with one effect set.
 */

/**
 * Returns a RenderEffects with two effects set.
 */

/**
 * Returns a RenderEffects with three effects set.
 */

/**
 * Returns a RenderEffects with four effects set.
 */
528
static ConstPointerTo< RenderEffects > RenderEffects::make(RenderEffect const *effect);
static ConstPointerTo< RenderEffects > RenderEffects::make(RenderEffect const *effect1, RenderEffect const *effect2);
static ConstPointerTo< RenderEffects > RenderEffects::make(RenderEffect const *effect1, RenderEffect const *effect2, RenderEffect const *effect3);
static ConstPointerTo< RenderEffects > RenderEffects::make(RenderEffect const *effect1, RenderEffect const *effect2, RenderEffect const *effect3, RenderEffect const *effect4);

2116 10 add_effect 0 4 3611 25 RenderEffects::add_effect 0 1 245 202
/**
 * Returns a new RenderEffects object that represents the same as the source
 * state, with the new RenderEffect added.  If there is already a RenderEffect
 * with the same type, it is replaced.
 */
92
ConstPointerTo< RenderEffects > RenderEffects::add_effect(RenderEffect const *effect) const;

2117 13 remove_effect 0 4 3611 28 RenderEffects::remove_effect 0 1 246 135
/**
 * Returns a new RenderEffects object that represents the same as the source
 * state, with the indicated RenderEffect removed.
 */
84
ConstPointerTo< RenderEffects > RenderEffects::remove_effect(TypeHandle type) const;

2118 6 output 0 4 3611 21 RenderEffects::output 0 1 247 10
/**
 *
 */
52
void RenderEffects::output(std::ostream &out) const;

2119 5 write 0 4 3611 20 RenderEffects::write 0 1 248 10
/**
 *
 */
69
void RenderEffects::write(std::ostream &out, int indent_level) const;

2120 14 get_num_states 0 4 3611 29 RenderEffects::get_num_states 0 1 249 146
/**
 * Returns the total number of unique RenderEffects objects allocated in the
 * world.  This will go up and down during normal operations.
 */
47
static int RenderEffects::get_num_states(void);

2121 11 list_states 0 4 3611 26 RenderEffects::list_states 0 1 250 170
/**
 * Lists all of the RenderEffects in the cache to the output stream, one per
 * line.  This can be quite a lot of output if the cache is large, so be
 * prepared.
 */
58
static void RenderEffects::list_states(std::ostream &out);

2122 15 validate_states 0 4 3611 30 RenderEffects::validate_states 0 1 251 209
/**
 * Ensures that the cache is still stored in sorted order.  Returns true if
 * so, false if there is a problem (which implies someone has modified one of
 * the supposedly-const RenderEffects objects).
 */
49
static bool RenderEffects::validate_states(void);

2123 14 get_class_type 0 4 3611 29 RenderEffects::get_class_type 0 1 252 0
54
static TypeHandle RenderEffects::get_class_type(void);

2124 37 upcast_to_TypedWritableReferenceCount 0 12 3612 48 PandaNode::upcast_to_TypedWritableReferenceCount 0 1 374 52
upcast from PandaNode to TypedWritableReferenceCount
84
TypedWritableReferenceCount *PandaNode::upcast_to_TypedWritableReferenceCount(void);

2125 21 downcast_to_PandaNode 0 12 3589 50 TypedWritableReferenceCount::downcast_to_PandaNode 0 0 54
downcast from TypedWritableReferenceCount to PandaNode
68
PandaNode *TypedWritableReferenceCount::downcast_to_PandaNode(void);

2126 17 upcast_to_Namable 0 12 3612 28 PandaNode::upcast_to_Namable 0 1 375 32
upcast from PandaNode to Namable
44
Namable *PandaNode::upcast_to_Namable(void);

2127 21 downcast_to_PandaNode 0 12 3613 30 Namable::downcast_to_PandaNode 0 0 34
downcast from Namable to PandaNode
48
PandaNode *Namable::downcast_to_PandaNode(void);

2128 24 upcast_to_LinkedListNode 0 12 3612 35 PandaNode::upcast_to_LinkedListNode 0 1 376 39
upcast from PandaNode to LinkedListNode
58
LinkedListNode *PandaNode::upcast_to_LinkedListNode(void);

2129 21 downcast_to_PandaNode 0 12 3614 37 LinkedListNode::downcast_to_PandaNode 0 0 41
downcast from LinkedListNode to PandaNode
55
PandaNode *LinkedListNode::downcast_to_PandaNode(void);

2130 9 PandaNode 0 260 3612 20 PandaNode::PandaNode 0 1 253 138
/**
 *
 */

/**
 * Do not call the copy constructor directly; instead, use make_copy() or
 * copy_subgraph() to make a copy of a node.
 */
55
explicit PandaNode::PandaNode(std::string const &name);

2131 10 ~PandaNode 0 518 3612 21 PandaNode::~PandaNode 0 0 10
/**
 *
 */
36
virtual PandaNode::~PandaNode(void);

2132 12 combine_with 0 6 3612 23 PandaNode::combine_with 0 1 254 525
// published so that characters can be combined.

/**
 * Collapses this PandaNode with the other PandaNode, if possible, and returns
 * a pointer to the combined PandaNode, or NULL if the two PandaNodes cannot
 * safely be combined.
 *
 * The return value may be this, other, or a new PandaNode altogether.
 *
 * This function is called from GraphReducer::flatten(), and need not deal
 * with children; its job is just to decide whether to collapse the two
 * PandaNodes and what the collapsed PandaNode should look like.
 */
61
virtual PandaNode *PandaNode::combine_with(PandaNode *other);

2133 9 make_copy 0 6 3612 20 PandaNode::make_copy 0 1 255 234
/**
 * Returns a newly-allocated PandaNode that is a shallow copy of this one.  It
 * will be a different pointer, but its internal data may or may not be shared
 * with that of the original PandaNode.  No children will be copied.
 */
52
virtual PandaNode *PandaNode::make_copy(void) const;

2134 13 copy_subgraph 0 4 3612 24 PandaNode::copy_subgraph 0 1 256 264
/**
 * Allocates and returns a complete copy of this PandaNode and the entire
 * scene graph rooted at this PandaNode.  Some data may still be shared from
 * the original (e.g.  vertex index tables), but nothing that will impede
 * normal use of the PandaNode.
 */
109
PointerTo< PandaNode > PandaNode::copy_subgraph(Thread *current_thread = Thread::get_current_thread()) const;

2135 8 __copy__ 0 4 3612 19 PandaNode::__copy__ 0 1 257 0
55
PointerTo< PandaNode > PandaNode::__copy__(void) const;

2136 12 __deepcopy__ 0 4 3612 23 PandaNode::__deepcopy__ 0 1 258 0
72
PyObject *PandaNode::__deepcopy__(PyObject *self, PyObject *memo) const;

2137 15 get_num_parents 0 4 3612 26 PandaNode::get_num_parents 0 1 259 264
/**
 * Returns the number of parent nodes this node has.  If this number is
 * greater than 1, the node has been multiply instanced.  The order of the
 * parent nodes is not meaningful and is not related to the order in which the
 * node was instanced to them.
 */
99
inline int PandaNode::get_num_parents(Thread *current_thread = Thread::get_current_thread()) const;

2138 10 get_parent 0 4 3612 21 PandaNode::get_parent 0 1 260 219
/**
 * Returns the nth parent node of this node.  See get_num_parents().  Also see
 * get_parents(), if your intention is to iterate through the complete list of
 * parents; get_parents() is preferable in this case.
 */
108
inline PandaNode *PandaNode::get_parent(int n, Thread *current_thread = Thread::get_current_thread()) const;

2139 11 find_parent 0 4 3612 22 PandaNode::find_parent 0 1 261 100
/**
 * Returns the index of the indicated parent node, if it is a parent, or -1 if
 * it is not.
 */
112
inline int PandaNode::find_parent(PandaNode *node, Thread *current_thread = Thread::get_current_thread()) const;

2140 16 get_num_children 0 4 3612 27 PandaNode::get_num_children 0 1 262 228
/**
 * Returns the number of child nodes this node has.  The order of the child
 * nodes *is* meaningful and is based on the sort number that was passed to
 * add_child(), and also on the order in which the nodes were added.
 */
100
inline int PandaNode::get_num_children(Thread *current_thread = Thread::get_current_thread()) const;

2141 9 get_child 0 4 3612 20 PandaNode::get_child 0 1 263 222
/**
 * Returns the nth child node of this node.  See get_num_children().  Also see
 * get_children(), if your intention is to iterate through the complete list
 * of children; get_children() is preferable in this case.
 */
107
inline PandaNode *PandaNode::get_child(int n, Thread *current_thread = Thread::get_current_thread()) const;

2142 14 get_child_sort 0 4 3612 25 PandaNode::get_child_sort 0 1 264 150
/**
 * Returns the sort index of the nth child node of this node (that is, the
 * number that was passed to add_child()).  See get_num_children().
 */
105
inline int PandaNode::get_child_sort(int n, Thread *current_thread = Thread::get_current_thread()) const;

2143 10 find_child 0 4 3612 21 PandaNode::find_child 0 1 265 98
/**
 * Returns the index of the indicated child node, if it is a child, or -1 if
 * it is not.
 */
111
inline int PandaNode::find_child(PandaNode *node, Thread *current_thread = Thread::get_current_thread()) const;

2144 21 count_num_descendants 0 4 3612 32 PandaNode::count_num_descendants 0 1 266 63
/**
 * Returns the number of nodes at and below this level.
 */
49
int PandaNode::count_num_descendants(void) const;

2145 9 add_child 0 4 3612 20 PandaNode::add_child 0 1 267 285
/**
 * Adds a new child to the node.  The child is added in the relative position
 * indicated by sort; if all children have the same sort index, the child is
 * added at the end.
 *
 * If the same child is added to a node more than once, the previous instance
 * is first removed.
 */
118
void PandaNode::add_child(PandaNode *child_node, int sort = 0, Thread *current_thread = Thread::get_current_thread());

2146 12 remove_child 0 4 3612 23 PandaNode::remove_child 0 2 268 269 267
/**
 * Removes the nth child from the node.
 */

/**
 * Removes the indicated child from the node.  Returns true if the child was
 * removed, false if it was not already a child of the node.  This will also
 * successfully remove the child if it had been stashed.
 */
209
void PandaNode::remove_child(int child_index, Thread *current_thread = Thread::get_current_thread());
bool PandaNode::remove_child(PandaNode *child_node, Thread *current_thread = Thread::get_current_thread());

2147 13 replace_child 0 4 3612 24 PandaNode::replace_child 0 1 270 241
/**
 * Searches for the orig_child node in the node's list of children, and
 * replaces it with the new_child instead.  Returns true if the replacement is
 * made, or false if the node is not a child or if there is some other
 * problem.
 */
130
bool PandaNode::replace_child(PandaNode *orig_child, PandaNode *new_child, Thread *current_thread = Thread::get_current_thread());

2148 11 stash_child 0 4 3612 22 PandaNode::stash_child 0 2 271 272 1018
/**
 * Stashes the indicated child node.  This removes the child from the list of
 * active children and puts it on a special list of stashed children.  This
 * child node no longer contributes to the bounding volume of the PandaNode,
 * and is not visited in normal traversals.  It is invisible and uncollidable.
 * The child may later be restored by calling unstash_child().
 *
 * This function returns true if the child node was successfully stashed, or
 * false if it was not a child of the node in the first place (e.g.  it was
 * previously stashed).
 */

/**
 * Stashes the indicated child node.  This removes the child from the list of
 * active children and puts it on a special list of stashed children.  This
 * child node no longer contributes to the bounding volume of the PandaNode,
 * and is not visited in normal traversals.  It is invisible and uncollidable.
 * The child may later be restored by calling unstash_child().
 *
 * This can only be called from the top pipeline stage (i.e.  from App).
 */
214
inline bool PandaNode::stash_child(PandaNode *child_node, Thread *current_thread = Thread::get_current_thread());
void PandaNode::stash_child(int child_index, Thread *current_thread = Thread::get_current_thread());

2149 13 unstash_child 0 4 3612 24 PandaNode::unstash_child 0 2 273 274 946
/**
 * Returns the indicated stashed node to normal child status.  This removes
 * the child from the list of stashed children and puts it on the normal list
 * of active children.  This child node once again contributes to the bounding
 * volume of the PandaNode, and will be visited in normal traversals.  It is
 * visible and collidable.
 *
 * This function returns true if the child node was successfully stashed, or
 * false if it was not a child of the node in the first place (e.g.  it was
 * previously stashed).
 */

/**
 * Returns the indicated stashed node to normal child status.  This removes
 * the child from the list of stashed children and puts it on the normal list
 * of active children.  This child node once again contributes to the bounding
 * volume of the PandaNode, and will be visited in normal traversals.  It is
 * visible and collidable.
 *
 * This can only be called from the top pipeline stage (i.e.  from App).
 */
220
inline bool PandaNode::unstash_child(PandaNode *child_node, Thread *current_thread = Thread::get_current_thread());
void PandaNode::unstash_child(int stashed_index, Thread *current_thread = Thread::get_current_thread());

2150 15 get_num_stashed 0 4 3612 26 PandaNode::get_num_stashed 0 1 275 174
/**
 * Returns the number of stashed nodes this node has.  These are former
 * children of the node that have been moved to the special stashed list via
 * stash_child().
 */
99
inline int PandaNode::get_num_stashed(Thread *current_thread = Thread::get_current_thread()) const;

2151 11 get_stashed 0 4 3612 22 PandaNode::get_stashed 0 2 276 277 856
/**
 * Returns the nth stashed child of this node.  See get_num_stashed().  Also
 * see get_stashed(), if your intention is to iterate through the complete
 * list of stashed children; get_stashed() is preferable in this case.
 */

/**
 * Returns an object that can be used to walk through the list of children of
 * the node.  When you intend to visit multiple children, using this is
 * slightly faster than calling get_stashed() directly on the PandaNode, since
 * this object avoids reopening the PipelineCycler each time.
 *
 * This object also protects you from self-modifying loops (e.g.  adding or
 * removing children during traversal), since a virtual copy of the children
 * is made ahead of time.  The virtual copy is fast--it is a form of copy-on-
 * write, so the list is not actually copied unless it is modified during the
 * traversal.
 */
220
inline PandaNode *PandaNode::get_stashed(int n, Thread *current_thread = Thread::get_current_thread()) const;
inline PandaNode::Stashed PandaNode::get_stashed(Thread *current_thread = Thread::get_current_thread()) const;

2152 16 get_stashed_sort 0 4 3612 27 PandaNode::get_stashed_sort 0 1 278 151
/**
 * Returns the sort index of the nth stashed node of this node (that is, the
 * number that was passed to add_child()).  See get_num_stashed().
 */
107
inline int PandaNode::get_stashed_sort(int n, Thread *current_thread = Thread::get_current_thread()) const;

2153 12 find_stashed 0 4 3612 23 PandaNode::find_stashed 0 1 279 108
/**
 * Returns the index of the indicated stashed node, if it is a stashed child,
 * or -1 if it is not.
 */
113
inline int PandaNode::find_stashed(PandaNode *node, Thread *current_thread = Thread::get_current_thread()) const;

2154 11 add_stashed 0 4 3612 22 PandaNode::add_stashed 0 1 280 361
/**
 * Adds a new child to the node, directly as a stashed child.  The child is
 * not added in the normal sense, but will be revealed if unstash_child() is
 * called on it later.
 *
 * If the same child is added to a node more than once, the previous instance
 * is first removed.
 *
 * This can only be called from the top pipeline stage (i.e.  from App).
 */
120
void PandaNode::add_stashed(PandaNode *child_node, int sort = 0, Thread *current_thread = Thread::get_current_thread());

2155 14 remove_stashed 0 4 3612 25 PandaNode::remove_stashed 0 1 281 55
/**
 * Removes the nth stashed child from the node.
 */
103
void PandaNode::remove_stashed(int child_index, Thread *current_thread = Thread::get_current_thread());

2156 19 remove_all_children 0 4 3612 30 PandaNode::remove_all_children 0 1 282 162
/**
 * Removes all the children from the node at once, including stashed children.
 *
 * This can only be called from the top pipeline stage (i.e.  from App).
 */
91
void PandaNode::remove_all_children(Thread *current_thread = Thread::get_current_thread());

2157 14 steal_children 0 4 3612 25 PandaNode::steal_children 0 1 283 177
/**
 * Moves all the children from the other node onto this node.
 *
 * Any NodePaths to child nodes of the other node are truncated, rather than
 * moved to the new parent.
 */
104
void PandaNode::steal_children(PandaNode *other, Thread *current_thread = Thread::get_current_thread());

2158 13 copy_children 0 4 3612 24 PandaNode::copy_children 0 1 284 102
/**
 * Makes another instance of all the children of the other node, copying them
 * to this node.
 */
103
void PandaNode::copy_children(PandaNode *other, Thread *current_thread = Thread::get_current_thread());

2159 10 set_attrib 0 4 3612 21 PandaNode::set_attrib 0 1 285 220
/**
 * Adds the indicated render attribute to the scene graph on this node.  This
 * attribute will now apply to this node and everything below.  If there was
 * already an attribute of the same type, it is replaced.
 */
73
void PandaNode::set_attrib(RenderAttrib const *attrib, int override = 0);

2160 10 get_attrib 0 4 3612 21 PandaNode::get_attrib 0 2 286 287 542
/**
 * Returns the render attribute of the indicated type, if it is defined on the
 * node, or NULL if it is not.  This checks only what is set on this
 * particular node level, and has nothing to do with what render attributes
 * may be inherited from parent nodes.
 */

/**
 * Returns the render attribute of the indicated type, if it is defined on the
 * node, or NULL if it is not.  This checks only what is set on this
 * particular node level, and has nothing to do with what render attributes
 * may be inherited from parent nodes.
 */
160
inline ConstPointerTo< RenderAttrib > PandaNode::get_attrib(TypeHandle type) const;
inline ConstPointerTo< RenderAttrib > PandaNode::get_attrib(int slot) const;

2161 10 has_attrib 0 4 3612 21 PandaNode::has_attrib 0 2 288 289 256
/**
 * Returns true if there is a render attribute of the indicated type defined
 * on this node, or false if there is not.
 */

/**
 * Returns true if there is a render attribute of the indicated type defined
 * on this node, or false if there is not.
 */
108
inline bool PandaNode::has_attrib(TypeHandle type) const;
inline bool PandaNode::has_attrib(int slot) const;

2162 12 clear_attrib 0 4 3612 23 PandaNode::clear_attrib 0 2 290 291 390
/**
 * Removes the render attribute of the given type from this node.  This node,
 * and the subgraph below, will now inherit the indicated render attribute
 * from the nodes above this one.
 */

/**
 * Removes the render attribute of the given type from this node.  This node,
 * and the subgraph below, will now inherit the indicated render attribute
 * from the nodes above this one.
 */
93
inline void PandaNode::clear_attrib(TypeHandle type);
void PandaNode::clear_attrib(int slot);

2163 10 set_effect 0 4 3612 21 PandaNode::set_effect 0 1 292 145
/**
 * Adds the indicated render effect to the scene graph on this node.  If there
 * was already an effect of the same type, it is replaced.
 */
55
void PandaNode::set_effect(RenderEffect const *effect);

2164 10 get_effect 0 4 3612 21 PandaNode::get_effect 0 1 293 114
/**
 * Returns the render effect of the indicated type, if it is defined on the
 * node, or NULL if it is not.
 */
83
inline ConstPointerTo< RenderEffect > PandaNode::get_effect(TypeHandle type) const;

2165 10 has_effect 0 4 3612 21 PandaNode::has_effect 0 1 294 124
/**
 * Returns true if there is a render effect of the indicated type defined on
 * this node, or false if there is not.
 */
57
inline bool PandaNode::has_effect(TypeHandle type) const;

2166 12 clear_effect 0 4 3612 23 PandaNode::clear_effect 0 1 295 70
/**
 * Removes the render effect of the given type from this node.
 */
46
void PandaNode::clear_effect(TypeHandle type);

2167 9 set_state 0 4 3612 20 PandaNode::set_state 0 1 296 337
/**
 * Sets the complete RenderState that will be applied to all nodes at this
 * level and below.  (The actual state that will be applied to lower nodes is
 * based on the composition of RenderStates from above this node as well).
 * This completely replaces whatever has been set on this node via repeated
 * calls to set_attrib().
 */
107
void PandaNode::set_state(RenderState const *state, Thread *current_thread = Thread::get_current_thread());

2168 9 get_state 0 4 3612 20 PandaNode::get_state 0 1 297 265
/**
 * Returns the complete RenderState that will be applied to all nodes at this
 * level and below, as set on this node.  This returns only the RenderState
 * set on this particular node, and has nothing to do with state that might be
 * inherited from above.
 */
119
inline ConstPointerTo< RenderState > PandaNode::get_state(Thread *current_thread = Thread::get_current_thread()) const;

2169 11 clear_state 0 4 3612 22 PandaNode::clear_state 0 1 298 183
/**
 * Resets this node to leave the render state alone.  Nodes at this level and
 * below will once again inherit their render state unchanged from the nodes
 * above this level.
 */
90
inline void PandaNode::clear_state(Thread *current_thread = Thread::get_current_thread());

2170 11 set_effects 0 4 3612 22 PandaNode::set_effects 0 1 299 177
/**
 * Sets the complete RenderEffects that will be applied this node.  This
 * completely replaces whatever has been set on this node via repeated calls
 * to set_attrib().
 */
113
void PandaNode::set_effects(RenderEffects const *effects, Thread *current_thread = Thread::get_current_thread());

2171 11 get_effects 0 4 3612 22 PandaNode::get_effects 0 1 300 80
/**
 * Returns the complete RenderEffects that will be applied to this node.
 */
123
inline ConstPointerTo< RenderEffects > PandaNode::get_effects(Thread *current_thread = Thread::get_current_thread()) const;

2172 13 clear_effects 0 4 3612 24 PandaNode::clear_effects 0 1 301 54
/**
 * Resets this node to have no render effects.
 */
92
inline void PandaNode::clear_effects(Thread *current_thread = Thread::get_current_thread());

2173 13 set_transform 0 4 3612 24 PandaNode::set_transform 0 1 302 158
/**
 * Sets the transform that will be applied to this node and below.  This
 * defines a new coordinate space at this point in the scene graph and below.
 */
118
void PandaNode::set_transform(TransformState const *transform, Thread *current_thread = Thread::get_current_thread());

2174 13 get_transform 0 4 3612 24 PandaNode::get_transform 0 1 303 177
/**
 * Returns the transform that has been set on this particular node.  This is
 * not the net transform from the root, but simply the transform on this
 * particular node.
 */
126
inline ConstPointerTo< TransformState > PandaNode::get_transform(Thread *current_thread = Thread::get_current_thread()) const;

2175 15 clear_transform 0 4 3612 26 PandaNode::clear_transform 0 1 304 71
/**
 * Resets the transform on this node to the identity transform.
 */
94
inline void PandaNode::clear_transform(Thread *current_thread = Thread::get_current_thread());

2176 18 set_prev_transform 0 4 3612 29 PandaNode::set_prev_transform 0 1 305 173
/**
 * Sets the transform that represents this node's "previous" position, one
 * frame ago, for the purposes of detecting motion for accurate collision
 * calculations.
 */
123
void PandaNode::set_prev_transform(TransformState const *transform, Thread *current_thread = Thread::get_current_thread());

2177 18 get_prev_transform 0 4 3612 29 PandaNode::get_prev_transform 0 1 306 115
/**
 * Returns the transform that has been set as this node's "previous" position.
 * See set_prev_transform().
 */
131
inline ConstPointerTo< TransformState > PandaNode::get_prev_transform(Thread *current_thread = Thread::get_current_thread()) const;

2178 20 reset_prev_transform 0 4 3612 31 PandaNode::reset_prev_transform 0 1 307 179
/**
 * Resets the transform that represents this node's "previous" position to the
 * same as the current transform.  This is not the same thing as clearing it
 * to identity.
 */
92
void PandaNode::reset_prev_transform(Thread *current_thread = Thread::get_current_thread());

2179 24 has_dirty_prev_transform 0 4 3612 35 PandaNode::has_dirty_prev_transform 0 1 308 250
/**
 * Returns true if this node has the _dirty_prev_transform flag set, which
 * indicates its _prev_transform is different from its _transform value (in
 * pipeline stage 0).  In this case, the node will be visited by
 * reset_prev_transform().
 */
60
inline bool PandaNode::has_dirty_prev_transform(void) const;

2180 24 reset_all_prev_transform 0 4 3612 35 PandaNode::reset_all_prev_transform 0 1 309 242
/**
 * Visits all nodes in the world with the _dirty_prev_transform flag--that is,
 * all nodes whose _prev_transform is different from the _transform in
 * pipeline stage 0--and resets the _prev_transform to be the same as
 * _transform.
 */
103
static void PandaNode::reset_all_prev_transform(Thread *current_thread = Thread::get_current_thread());

2181 7 set_tag 0 4 3612 18 PandaNode::set_tag 0 1 310 391
/**
 * Associates a user-defined value with a user-defined key which is stored on
 * the node.  This value has no meaning to Panda; but it is stored
 * indefinitely on the node until it is requested again.
 *
 * Each unique key stores a different string value.  There is no effective
 * limit on the number of different keys that may be stored or on the length
 * of any one key's value.
 */
129
void PandaNode::set_tag(std::string const &key, std::string const &value, Thread *current_thread = Thread::get_current_thread());

2182 7 get_tag 0 4 3612 18 PandaNode::get_tag 0 1 311 182
/**
 * Retrieves the user-defined value that was previously set on this node for
 * the particular key, if any.  If no value has been previously set, returns
 * the empty string.
 */
123
inline std::string PandaNode::get_tag(std::string const &key, Thread *current_thread = Thread::get_current_thread()) const;

2183 7 has_tag 0 4 3612 18 PandaNode::has_tag 0 1 312 170
/**
 * Returns true if a value has been defined on this node for the particular
 * key (even if that value is the empty string), or false if no value has been
 * set.
 */
116
inline bool PandaNode::has_tag(std::string const &key, Thread *current_thread = Thread::get_current_thread()) const;

2184 9 clear_tag 0 4 3612 20 PandaNode::clear_tag 0 1 313 158
/**
 * Removes the value defined for this key on this particular node.  After a
 * call to clear_tag(), has_tag() will return false for the indicated key.
 */
105
void PandaNode::clear_tag(std::string const &key, Thread *current_thread = Thread::get_current_thread());

2185 12 get_num_tags 0 4 3612 23 PandaNode::get_num_tags 0 1 377 59
/**
 * Returns the number of tags applied to this node.
 */
55
inline std::size_t PandaNode::get_num_tags(void) const;

2186 11 get_tag_key 0 4 3612 22 PandaNode::get_tag_key 0 1 378 63
/**
 * Returns the key of the nth tag applied to this node.
 */
63
inline std::string PandaNode::get_tag_key(std::size_t i) const;

2187 12 get_tag_keys 0 4 3612 23 PandaNode::get_tag_keys 0 1 314 231
/**
 * Fills the given vector up with the list of tags on this PandaNode.
 *
 * It is the user's responsibility to ensure that the keys vector is empty
 * before making this call; otherwise, the new keys will be appended to it.
 */
46
PyObject *PandaNode::get_tag_keys(void) const;

2188 15 get_python_tags 0 4 3612 26 PandaNode::get_python_tags 0 1 315 0
43
PyObject *PandaNode::get_python_tags(void);

2189 14 set_python_tag 0 4 3612 25 PandaNode::set_python_tag 0 1 316 0
63
void PandaNode::set_python_tag(PyObject *key, PyObject *value);

2190 14 get_python_tag 0 4 3612 25 PandaNode::get_python_tag 0 1 317 0
57
PyObject *PandaNode::get_python_tag(PyObject *key) const;

2191 14 has_python_tag 0 4 3612 25 PandaNode::has_python_tag 0 1 318 0
52
bool PandaNode::has_python_tag(PyObject *key) const;

2192 16 clear_python_tag 0 4 3612 27 PandaNode::clear_python_tag 0 1 319 0
48
void PandaNode::clear_python_tag(PyObject *key);

2193 19 get_python_tag_keys 0 4 3612 30 PandaNode::get_python_tag_keys 0 1 320 0
53
PyObject *PandaNode::get_python_tag_keys(void) const;

2194 12 __traverse__ 0 4 3612 23 PandaNode::__traverse__ 0 1 321 0
56
int PandaNode::__traverse__(visitproc visit, void *arg);

2195 8 has_tags 0 4 3612 19 PandaNode::has_tags 0 1 322 102
/**
 * Returns true if the node has any tags (or any Python tags) at all, false if
 * it has none.
 */
44
inline bool PandaNode::has_tags(void) const;

2196 9 copy_tags 0 4 3612 20 PandaNode::copy_tags 0 1 323 191
/**
 * Copies all of the tags stored on the other node onto this node.  If a
 * particular tag exists on both nodes, the contents of this node's value is
 * replaced by that of the other.
 */
44
void PandaNode::copy_tags(PandaNode *other);

2197 9 list_tags 0 4 3612 20 PandaNode::list_tags 0 1 324 364
/**
 * Writes a list of all the tag keys assigned to the node to the indicated
 * stream.  Writes one instance of the separator following each key (but does
 * not write a terminal separator).  The value associated with each key is not
 * written.
 *
 * This is mainly for the benefit of the realtime user, to see the list of all
 * of the associated tag keys.
 */
88
void PandaNode::list_tags(std::ostream &out, std::string const &separator = "\n") const;

2198 12 compare_tags 0 4 3612 23 PandaNode::compare_tags 0 1 325 341
/**
 * Returns a number less than 0, 0, or greater than 0, to indicate the
 * similarity of tags between this node and the other one.  If this returns 0,
 * the tags are identical.  If it returns other than 0, then the tags are
 * different; and the nodes may be sorted into a consistent (but arbitrary)
 * ordering based on this number.
 */
58
int PandaNode::compare_tags(PandaNode const *other) const;

2199 19 copy_all_properties 0 4 3612 30 PandaNode::copy_all_properties 0 1 326 264
/**
 * Copies the TransformState, RenderState, RenderEffects, tags, Python tags,
 * and the show/hide state from the other node onto this one.  Typically this
 * is used to prepare a node to replace another node in the scene graph (also
 * see replace_node()).
 */
54
void PandaNode::copy_all_properties(PandaNode *other);

2200 12 replace_node 0 4 3612 23 PandaNode::replace_node 0 1 327 602
/**
 * Inserts this node into the scene graph in place of the other one, and
 * removes the other node.  All scene graph attributes (TransformState,
 * RenderState, etc.) are copied to this node.
 *
 * All children are moved to this node, and removed from the old node.  The
 * new node is left in the same place in the old node's parent's list of
 * children.
 *
 * Even NodePaths that reference the old node are updated in-place to
 * reference the new node instead.
 *
 * This method is intended to be used to replace a node of a given type in the
 * scene graph with a node of a different type.
 */
47
void PandaNode::replace_node(PandaNode *other);

2201 21 set_unexpected_change 0 4 3612 32 PandaNode::set_unexpected_change 0 1 328 627
/**
 * Sets one or more of the PandaNode::UnexpectedChange bits on, indicating
 * that the corresponding property should not change again on this node.  Once
 * one of these bits has been set, if the property changes, an assertion
 * failure will be raised, which is designed to assist the developer in
 * identifying the troublesome code that modified the property unexpectedly.
 *
 * The input parameter is the union of bits that are to be set.  To clear
 * these bits later, use clear_unexpected_change().
 *
 * Since this is a developer debugging tool only, this function does nothing
 * in a production (NDEBUG) build.
 */
58
void PandaNode::set_unexpected_change(unsigned int flags);

2202 21 get_unexpected_change 0 4 3612 32 PandaNode::get_unexpected_change 0 1 329 409
/**
 * Returns nonzero if any of the bits in the input parameter are set on this
 * node, or zero if none of them are set.  More specifically, this returns the
 * particular set of bits (masked by the input parameter) that have been set
 * on this node.  See set_unexpected_change().
 *
 * Since this is a developer debugging tool only, this function always returns
 * zero in a production (NDEBUG) build.
 */
72
unsigned int PandaNode::get_unexpected_change(unsigned int flags) const;

2203 23 clear_unexpected_change 0 4 3612 34 PandaNode::clear_unexpected_change 0 1 330 373
/**
 * Sets one or more of the PandaNode::UnexpectedChange bits off, indicating
 * that the corresponding property may once again change on this node.  See
 * set_unexpected_change().
 *
 * The input parameter is the union of bits that are to be cleared.
 *
 * Since this is a developer debugging tool only, this function does nothing
 * in a production (NDEBUG) build.
 */
60
void PandaNode::clear_unexpected_change(unsigned int flags);

2204 15 get_overall_bit 0 4 3612 26 PandaNode::get_overall_bit 0 1 331 189
/**
 * Returns the special bit that, when specifically cleared in the node's
 * DrawMask, indicates that the node is hidden to all cameras, regardless of
 * the remaining DrawMask bits.
 */
56
static inline DrawMask PandaNode::get_overall_bit(void);

2205 19 get_all_camera_mask 0 4 3612 30 PandaNode::get_all_camera_mask 0 1 332 79
/**
 * Returns a DrawMask that is appropriate for rendering to all cameras.
 */
60
static inline DrawMask PandaNode::get_all_camera_mask(void);

2206 17 is_overall_hidden 0 4 3612 28 PandaNode::is_overall_hidden 0 1 333 98
/**
 * Returns true if the node has been hidden to all cameras by clearing its
 * overall bit.
 */
53
inline bool PandaNode::is_overall_hidden(void) const;

2207 18 set_overall_hidden 0 4 3612 29 PandaNode::set_overall_hidden 0 1 334 411
/**
 * Sets or clears the hidden flag.  When the hidden flag is true, the node and
 * all of its children are invisible to all cameras, regardless of the setting
 * of any draw masks.  Setting the hidden flag to false restores the previous
 * visibility as established by the draw masks.
 *
 * This actually works by twiddling the reserved _overall_bit in the node's
 * draw mask, which has special meaning.
 */
63
inline void PandaNode::set_overall_hidden(bool overall_hidden);

2208 16 adjust_draw_mask 0 4 3612 27 PandaNode::adjust_draw_mask 0 1 335 1343
/**
 * Adjusts the hide/show bits of this particular node.
 *
 * These three parameters can be used to adjust the _draw_control_mask and
 * _draw_show_mask independently, which work together to provide per-camera
 * visibility for the node and its descendents.
 *
 * _draw_control_mask indicates the bits in _draw_show_mask that are
 * significant.  Each different bit corresponds to a different camera (and
 * these bits are assigned via Camera::set_camera_mask()).
 *
 * Where _draw_control_mask has a 1 bit, a 1 bit in _draw_show_mask indicates
 * the node is visible to that camera, and a 0 bit indicates the node is
 * hidden to that camera.  Where _draw_control_mask is 0, the node is hidden
 * only if a parent node is hidden.
 *
 * The meaning of the three parameters is as follows:
 *
 * * Wherever show_mask is 1, _draw_show_mask and _draw_control_mask will be
 * set 1.  Thus, show_mask indicates the set of cameras to which the node
 * should be shown.
 *
 * * Wherever hide_mask is 1, _draw_show_mask will be set 0 and
 * _draw_control_mask will be set 1.  Thus, hide_mask indicates the set of
 * cameras from which the node should be hidden.
 *
 * * Wherever clear_mask is 1, _draw_control_mask will be set 0.  Thus,
 * clear_mask indicates the set of cameras from which the hidden state should
 * be inherited from a parent.
 */
94
void PandaNode::adjust_draw_mask(DrawMask show_mask, DrawMask hide_mask, DrawMask clear_mask);

2209 21 get_draw_control_mask 0 4 3612 32 PandaNode::get_draw_control_mask 0 1 336 111
/**
 * Returns the set of bits in draw_show_mask that are considered meaningful.
 * See adjust_draw_mask().
 */
61
inline DrawMask PandaNode::get_draw_control_mask(void) const;

2210 18 get_draw_show_mask 0 4 3612 29 PandaNode::get_draw_show_mask 0 1 337 90
/**
 * Returns the hide/show bits of this particular node.  See
 * adjust_draw_mask().
 */
58
inline DrawMask PandaNode::get_draw_show_mask(void) const;

2211 25 get_net_draw_control_mask 0 4 3612 36 PandaNode::get_net_draw_control_mask 0 1 338 366
/**
 * Returns the set of bits in get_net_draw_show_mask() that have been
 * explicitly set via adjust_draw_mask(), rather than implicitly inherited.
 *
 * A 1 bit in any position of this mask indicates that (a) this node has
 * renderable children, and (b) some child of this node has made an explicit
 * hide() or show_through() call for the corresponding bit.
 */
58
DrawMask PandaNode::get_net_draw_control_mask(void) const;

2212 22 get_net_draw_show_mask 0 4 3612 33 PandaNode::get_net_draw_show_mask 0 1 339 576
/**
 * Returns the union of all draw_show_mask values--of renderable nodes only--
 * at this level and below.  If any bit in this mask is 0, there is no reason
 * to traverse below this node for a camera with the corresponding
 * camera_mask.
 *
 * The bits in this mask that do not correspond to a 1 bit in the
 * net_draw_control_mask are meaningless (and will be set to 1).  For bits
 * that *do* correspond to a 1 bit in the net_draw_control_mask, a 1 bit
 * indicates that at least one child should be visible, while a 0 bit
 * indicates that all children are hidden.
 */
55
DrawMask PandaNode::get_net_draw_show_mask(void) const;

2213 21 set_into_collide_mask 0 4 3612 32 PandaNode::set_into_collide_mask 0 1 340 510
/**
 * Sets the "into" CollideMask.
 *
 * This specifies the set of bits that must be shared with a CollisionNode's
 * "from" CollideMask in order for the CollisionNode to detect a collision
 * with this particular node.
 *
 * The actual CollideMask that will be set is masked by the return value from
 * get_legal_collide_mask(). Thus, the into_collide_mask cannot be set to
 * anything other than nonzero except for those types of nodes that can be
 * collided into, such as CollisionNodes and GeomNodes.
 */
56
void PandaNode::set_into_collide_mask(CollideMask mask);

2214 21 get_into_collide_mask 0 4 3612 32 PandaNode::get_into_collide_mask 0 1 341 57
/**
 * Returns the "into" collide mask for this node.
 */
64
inline CollideMask PandaNode::get_into_collide_mask(void) const;

2215 22 get_legal_collide_mask 0 6 3612 33 PandaNode::get_legal_collide_mask 0 1 342 314
/**
 * Returns the subset of CollideMask bits that may be set for this particular
 * type of PandaNode.  For most nodes, this is 0; it doesn't make sense to set
 * a CollideMask for most kinds of nodes.
 *
 * For nodes that can be collided with, such as GeomNode and CollisionNode,
 * this returns all bits on.
 */
66
virtual CollideMask PandaNode::get_legal_collide_mask(void) const;

2216 20 get_net_collide_mask 0 4 3612 31 PandaNode::get_net_collide_mask 0 1 343 112
/**
 * Returns the union of all into_collide_mask() values set at CollisionNodes
 * at this level and below.
 */
105
CollideMask PandaNode::get_net_collide_mask(Thread *current_thread = Thread::get_current_thread()) const;

2217 19 get_off_clip_planes 0 4 3612 30 PandaNode::get_off_clip_planes 0 1 344 145
/**
 * Returns a ClipPlaneAttrib which represents the union of all of the clip
 * planes that have been turned *off* at this level and below.
 */
123
ConstPointerTo< RenderAttrib > PandaNode::get_off_clip_planes(Thread *current_thread = Thread::get_current_thread()) const;

2218 13 prepare_scene 0 4 3612 24 PandaNode::prepare_scene 0 1 345 470
/**
 * Walks through the scene graph beginning at this node, and does whatever
 * initialization is required to render the scene properly with the indicated
 * GSG.  It is not strictly necessary to call this, since the GSG will
 * initialize itself when the scene is rendered, but this may take some of the
 * overhead away from that process.
 *
 * In particular, this will ensure that textures and vertex buffers within the
 * scene are loaded into graphics memory.
 */
93
void PandaNode::prepare_scene(GraphicsStateGuardianBase *gsg, RenderState const *node_state);

2219 13 is_scene_root 0 4 3612 24 PandaNode::is_scene_root 0 1 346 173
/**
 * Returns true if this particular node is known to be the render root of some
 * active DisplayRegion associated with the global GraphicsEngine, false
 * otherwise.
 */
42
bool PandaNode::is_scene_root(void) const;

2220 19 is_under_scene_root 0 4 3612 30 PandaNode::is_under_scene_root 0 1 347 305
/**
 * Returns true if this particular node is in a live scene graph: that is, it
 * is a child or descendent of a node that is itself a scene root.  If this is
 * true, this node may potentially be traversed by the render traverser.
 * Stashed nodes don't count for this purpose, but hidden nodes do.
 */
48
bool PandaNode::is_under_scene_root(void) const;

2221 6 output 0 6 3612 17 PandaNode::output 0 1 348 10
/**
 *
 */
56
virtual void PandaNode::output(std::ostream &out) const;

2222 5 write 0 6 3612 16 PandaNode::write 0 1 349 10
/**
 *
 */
73
virtual void PandaNode::write(std::ostream &out, int indent_level) const;

2223 2 ls 0 4 3612 13 PandaNode::ls 0 1 350 76
/**
 * Lists all the nodes at and below the current path hierarchically.
 */
69
inline void PandaNode::ls(std::ostream &out, int indent_level) const;

2224 15 set_bounds_type 0 4 3612 26 PandaNode::set_bounds_type 0 1 351 1282
// We define set_bounds() and get_bounds() functions so that set_bounds()
// sets the user bounding volume, while get_bounds() returns the external
// bounding volume.  Although it might seem strange and confusing to do
// this, this is actually the natural way the user thinks about nodes and
// bounding volumes.

// We define set_bounds() and get_bounds() functions so that set_bounds()
// sets the user bounding volume, while get_bounds() returns the external
// bounding volume.  Although it might seem strange and confusing to do
// this, this is actually the natural way the user thinks about nodes and
// bounding volumes.

/**
 * Specifies the desired type of bounding volume that will be created for this
 * node.  This is normally BoundingVolume::BT_default, which means to set the
 * type according to the config variable "bounds-type".
 *
 * If this is BT_sphere or BT_box, a BoundingSphere or BoundingBox is
 * explicitly created.  If it is BT_best, the appropriate type to best enclose
 * the node's children is created.
 *
 * This affects the bounding volume returned by get_bounds(), which is not
 * exactly the same bounding volume modified by set_bounds(), because a new
 * bounding volume has to be created that includes this node and all of its
 * children.
 */
72
void PandaNode::set_bounds_type(BoundingVolume::BoundsType bounds_type);

2225 15 get_bounds_type 0 4 3612 26 PandaNode::get_bounds_type 0 1 352 71
/**
 * Returns the bounding volume type set with set_bounds_type().
 */
66
BoundingVolume::BoundsType PandaNode::get_bounds_type(void) const;

2226 10 set_bounds 0 4 3612 21 PandaNode::set_bounds 0 1 353 478
/**
 * Resets the bounding volume so that it is the indicated volume.  When it is
 * explicitly set, the bounding volume will no longer be automatically
 * computed according to the contents of the node itself, for nodes like
 * GeomNodes and TextNodes that contain substance (but the bounding volume
 * will still be automatically expanded to include its children).
 *
 * Call clear_bounds() if you would like to return the bounding volume to its
 * default behavior later.
 */
57
void PandaNode::set_bounds(BoundingVolume const *volume);

2227 9 set_bound 0 4 3612 20 PandaNode::set_bound 0 1 354 48
/**
 * @deprecated Use set_bounds() instead.
 */
56
void PandaNode::set_bound(BoundingVolume const *volume);

2228 12 clear_bounds 0 4 3612 23 PandaNode::clear_bounds 0 1 355 184
/**
 * Reverses the effect of a previous call to set_bounds(), and allows the
 * node's bounding volume to be automatically computed once more based on the
 * contents of the node.
 */
42
inline void PandaNode::clear_bounds(void);

2229 10 get_bounds 0 4 3612 21 PandaNode::get_bounds 0 2 356 357 790
/**
 * Returns the external bounding volume of this node: a bounding volume that
 * contains the user bounding volume, the internal bounding volume, and all of
 * the children's bounding volumes.
 */

/**
 * This flavor of get_bounds() return the external bounding volume, and also
 * fills in seq with the bounding volume's current sequence number.  When this
 * sequence number changes, it indicates that the bounding volume might have
 * changed, e.g.  because some nested child's bounding volume has changed.
 *
 * Although this might occasionally increment without changing the bounding
 * volume, the bounding volume will never change without incrementing this
 * counter, so as long as this counter remains unchanged you can be confident
 * the bounding volume is also unchanged.
 */
249
ConstPointerTo< BoundingVolume > PandaNode::get_bounds(Thread *current_thread = Thread::get_current_thread()) const;
ConstPointerTo< BoundingVolume > PandaNode::get_bounds(UpdateSeq &seq, Thread *current_thread = Thread::get_current_thread()) const;

2230 19 get_nested_vertices 0 4 3612 30 PandaNode::get_nested_vertices 0 1 358 422
/**
 * Returns the total number of vertices that will be rendered by this node and
 * all of its descendents.
 *
 * This is not necessarily an accurate count of vertices that will actually be
 * rendered, since this will include all vertices of all LOD's, and it will
 * also include hidden nodes.  It may also omit or only approximate certain
 * kinds of dynamic geometry.  However, it will not include stashed nodes.
 */
96
int PandaNode::get_nested_vertices(Thread *current_thread = Thread::get_current_thread()) const;

2231 19 get_internal_bounds 0 4 3612 30 PandaNode::get_internal_bounds 0 1 359 361
/**
 * Returns the node's internal bounding volume.  This is the bounding volume
 * around the node alone, without including children.  If the user has called
 * set_bounds(), it will be the specified bounding volume.
 */

/**
 * Returns the node's internal bounding volume.  This is the bounding volume
 * around the node alone, without including children.
 */
132
inline ConstPointerTo< BoundingVolume > PandaNode::get_internal_bounds(Thread *current_thread = Thread::get_current_thread()) const;

2232 21 get_internal_vertices 0 4 3612 32 PandaNode::get_internal_vertices 0 1 360 412
/**
 * Returns the total number of vertices that will be rendered by this
 * particular node alone, not accounting for its children.
 *
 * This may not include all vertices for certain dynamic effects.
 */

/**
 * Returns the total number of vertices that will be rendered by this
 * particular node alone, not accounting for its children.
 *
 * This may not include all vertices for certain dynamic effects.
 */
105
inline int PandaNode::get_internal_vertices(Thread *current_thread = Thread::get_current_thread()) const;

2233 17 mark_bounds_stale 0 4 3612 28 PandaNode::mark_bounds_stale 0 1 361 786
/**
 * Indicates that the bounding volume, or something that influences the
 * bounding volume (or any of the other things stored in CData, like
 * net_collide_mask), may have changed for this node, and that it must be
 * recomputed.
 */

/**
 * Indicates that the bounding volume, or something that influences the
 * bounding volume (or any of the other things stored in CData, like
 * net_collide_mask), may have changed for this node, and that it must be
 * recomputed.
 *
 * With no parameters, this means to iterate through all stages including and
 * upstream of the current pipeline stage.
 *
 * This method is intended for internal use; usually it is not necessary for a
 * user to call this directly.  It will be called automatically by derived
 * classes when appropriate.
 */
95
void PandaNode::mark_bounds_stale(Thread *current_thread = Thread::get_current_thread()) const;

2234 26 mark_internal_bounds_stale 0 4 3612 37 PandaNode::mark_internal_bounds_stale 0 1 362 654
/**
 * Should be called by a derived class to mark the internal bounding volume
 * stale, so that recompute_internal_bounds() will be called when the bounding
 * volume is next requested.
 */

/**
 * Should be called by a derived class to mark the internal bounding volume
 * stale, so that compute_internal_bounds() will be called when the bounding
 * volume is next requested.
 *
 * With no parameters, this means to iterate through all stages including and
 * upstream of the current pipeline stage.
 *
 * It is normally not necessary to call this method directly; each node should
 * be responsible for calling it when its internals have changed.
 */
98
void PandaNode::mark_internal_bounds_stale(Thread *current_thread = Thread::get_current_thread());

2235 15 is_bounds_stale 0 4 3612 26 PandaNode::is_bounds_stale 0 1 363 194
/**
 * Returns true if the bounding volume of this node is stale and will be
 * implicitly recomputed at the next call to get_bounds(), or false if it is
 * fresh and need not be recomputed.
 */
51
inline bool PandaNode::is_bounds_stale(void) const;

2236 9 set_final 0 4 3612 20 PandaNode::set_final 0 1 364 623
/**
 * Sets the "final" flag on this PandaNode.  If this is true, than no bounding
 * volume need be tested below it; a positive intersection with this node's
 * bounding volume is deemed to be a positive intersection with all geometry
 * inside.
 *
 * This is useful to quickly force a larger bounding volume around a node when
 * the GeomNodes themselves are inaccurate for some reason, without forcing a
 * recompute of every nested bounding volume.  It's also helpful when the
 * bounding volume is tricked by some special properties, like billboards,
 * that may move geometry out of its bounding volume otherwise.
 */
44
inline void PandaNode::set_final(bool flag);

2237 8 is_final 0 4 3612 19 PandaNode::is_final 0 1 365 177
/**
 * Returns the current state of the "final" flag.  Initially, this flag is off
 * (false), but it may be changed by an explicit call to set_final().  See
 * set_final().
 */
93
inline bool PandaNode::is_final(Thread *current_thread = Thread::get_current_thread()) const;

2238 12 is_geom_node 0 6 3612 23 PandaNode::is_geom_node 0 1 366 276
/**
 * A simple downcast check.  Returns true if this kind of node happens to
 * inherit from GeomNode, false otherwise.
 *
 * This is provided as a a faster alternative to calling
 * is_of_type(GeomNode::get_class_type()), since this test is so important to
 * rendering.
 */
49
virtual bool PandaNode::is_geom_node(void) const;

2239 11 is_lod_node 0 6 3612 22 PandaNode::is_lod_node 0 1 367 225
/**
 * A simple downcast check.  Returns true if this kind of node happens to
 * inherit from LODNode, false otherwise.
 *
 * This is provided as a a faster alternative to calling
 * is_of_type(LODNode::get_class_type()).
 */
48
virtual bool PandaNode::is_lod_node(void) const;

2240 17 is_collision_node 0 6 3612 28 PandaNode::is_collision_node 0 1 368 237
/**
 * A simple downcast check.  Returns true if this kind of node happens to
 * inherit from CollisionNode, false otherwise.
 *
 * This is provided as a a faster alternative to calling
 * is_of_type(CollisionNode::get_class_type()).
 */
54
virtual bool PandaNode::is_collision_node(void) const;

2241 8 as_light 0 6 3612 19 PandaNode::as_light 0 1 369 131
/**
 * Cross-casts the node to a Light pointer, if it is one of the four kinds of
 * Light nodes, or returns NULL if it is not.
 */
41
virtual Light *PandaNode::as_light(void);

2242 16 is_ambient_light 0 6 3612 27 PandaNode::is_ambient_light 0 1 370 117
/**
 * Returns true if this is an AmbientLight, false if it is not a light, or it
 * is some other kind of light.
 */
53
virtual bool PandaNode::is_ambient_light(void) const;

2243 14 get_fancy_bits 0 4 3612 25 PandaNode::get_fancy_bits 0 1 371 330
/**
 * Returns the union of all of the enum FancyBits values corresponding to the
 * various "fancy" attributes that are set on the node.  If this returns 0,
 * the node has nothing interesting about it.  This is intended to speed
 * traversal by quickly skipping past nodes that don't particularly affect the
 * render state.
 */
98
inline int PandaNode::get_fancy_bits(Thread *current_thread = Thread::get_current_thread()) const;

2244 22 decode_from_bam_stream 0 4 3612 33 PandaNode::decode_from_bam_stream 0 1 372 470
/**
 * Reads the bytes created by a previous call to encode_to_bam_stream(), and
 * extracts and returns the single object on those bytes.  Returns NULL on
 * error.
 *
 * This method is intended to replace decode_raw_from_bam_stream() when you
 * know the stream in question returns an object of type PandaNode, allowing
 * for easier reference count management.  Note that the caller is still
 * responsible for maintaining the reference count on the return value.
 */
112
static PointerTo< PandaNode > PandaNode::decode_from_bam_stream(vector_uchar data, BamReader *reader = nullptr);

2245 11 operator [] 0 4 3632 32 PandaNode::Children::operator [] 0 1 379 0
72
inline PandaNode *PandaNode::Children::operator [](std::size_t n) const;

2246 4 size 0 4 3632 25 PandaNode::Children::size 0 1 380 0
57
inline std::size_t PandaNode::Children::size(void) const;

2247 9 ~Children 0 516 3632 30 PandaNode::Children::~Children 0 0 0
37
PandaNode::Children::~Children(void);

2248 11 operator [] 0 4 3633 31 PandaNode::Stashed::operator [] 0 1 381 0
71
inline PandaNode *PandaNode::Stashed::operator [](std::size_t n) const;

2249 4 size 0 4 3633 24 PandaNode::Stashed::size 0 1 382 0
56
inline std::size_t PandaNode::Stashed::size(void) const;

2250 8 ~Stashed 0 516 3633 28 PandaNode::Stashed::~Stashed 0 0 0
35
PandaNode::Stashed::~Stashed(void);

2251 11 operator [] 0 4 3634 31 PandaNode::Parents::operator [] 0 1 383 0
71
inline PandaNode *PandaNode::Parents::operator [](std::size_t n) const;

2252 4 size 0 4 3634 24 PandaNode::Parents::size 0 1 384 0
56
inline std::size_t PandaNode::Parents::size(void) const;

2253 8 ~Parents 0 516 3634 28 PandaNode::Parents::~Parents 0 0 0
35
PandaNode::Parents::~Parents(void);

2254 12 get_children 0 4 3612 23 PandaNode::get_children 0 0 622
/**
 * Returns an object that can be used to walk through the list of children of
 * the node.  When you intend to visit multiple children, using this is
 * slightly faster than calling get_child() directly on the PandaNode, since
 * this object avoids reopening the PipelineCycler each time.
 *
 * This object also protects you from self-modifying loops (e.g.  adding or
 * removing children during traversal), since a virtual copy of the children
 * is made ahead of time.  The virtual copy is fast--it is a form of copy-on-
 * write, so the list is not actually copied unless it is modified during the
 * traversal.
 */
112
inline PandaNode::Children PandaNode::get_children(Thread *current_thread = Thread::get_current_thread()) const;

2255 11 get_parents 0 4 3612 22 PandaNode::get_parents 0 0 142
/**
 * Returns an object that can be used to walk through the list of parents of
 * the node, similar to get_children() and get_stashed().
 */
110
inline PandaNode::Parents PandaNode::get_parents(Thread *current_thread = Thread::get_current_thread()) const;

2256 14 get_class_type 0 4 3612 25 PandaNode::get_class_type 0 1 373 0
50
static TypeHandle PandaNode::get_class_type(void);

2257 4 make 0 4 3635 24 TransparencyAttrib::make 0 1 385 54
/**
 * Constructs a new TransparencyAttrib object.
 */
94
static ConstPointerTo< RenderAttrib > TransparencyAttrib::make(TransparencyAttrib::Mode mode);

2258 12 make_default 0 4 3635 32 TransparencyAttrib::make_default 0 1 386 145
/**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */
77
static ConstPointerTo< RenderAttrib > TransparencyAttrib::make_default(void);

2259 8 get_mode 0 4 3635 28 TransparencyAttrib::get_mode 0 1 387 41
/**
 * Returns the transparency mode.
 */
73
inline TransparencyAttrib::Mode TransparencyAttrib::get_mode(void) const;

2260 14 get_class_slot 0 4 3635 34 TransparencyAttrib::get_class_slot 0 1 388 0
52
static int TransparencyAttrib::get_class_slot(void);

2261 14 get_class_type 0 4 3635 34 TransparencyAttrib::get_class_type 0 1 389 0
59
static TypeHandle TransparencyAttrib::get_class_type(void);

2262 19 ~TransparencyAttrib 0 516 3635 39 TransparencyAttrib::~TransparencyAttrib 0 0 0
46
TransparencyAttrib::~TransparencyAttrib(void);

2263 8 make_off 0 4 3637 23 LogicOpAttrib::make_off 0 1 390 139
/**
 * Constructs a new LogicOpAttrib object that disables special-effect
 * blending, allowing normal transparency to be used instead.
 */
68
static ConstPointerTo< RenderAttrib > LogicOpAttrib::make_off(void);

2264 4 make 0 4 3637 19 LogicOpAttrib::make 0 1 391 80
/**
 * Constructs a new LogicOpAttrib object with the given logic operation.
 */
87
static ConstPointerTo< RenderAttrib > LogicOpAttrib::make(LogicOpAttrib::Operation op);

2265 12 make_default 0 4 3637 27 LogicOpAttrib::make_default 0 1 392 145
/**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */
72
static ConstPointerTo< RenderAttrib > LogicOpAttrib::make_default(void);

2266 13 get_operation 0 4 3637 28 LogicOpAttrib::get_operation 0 1 393 67
/**
 * Returns the logic operation specified by this attribute.
 */
73
inline LogicOpAttrib::Operation LogicOpAttrib::get_operation(void) const;

2267 14 get_class_slot 0 4 3637 29 LogicOpAttrib::get_class_slot 0 1 394 0
47
static int LogicOpAttrib::get_class_slot(void);

2268 14 get_class_type 0 4 3637 29 LogicOpAttrib::get_class_type 0 1 395 0
54
static TypeHandle LogicOpAttrib::get_class_type(void);

2269 14 ~LogicOpAttrib 0 516 3637 29 LogicOpAttrib::~LogicOpAttrib 0 0 0
36
LogicOpAttrib::~LogicOpAttrib(void);

2270 9 get_blank 0 4 3639 22 ShaderInput::get_blank 0 1 401 124
/**
 * Returns a static ShaderInput object with name NULL, priority zero, type
 * INVALID, and all value-fields cleared.
 */
55
static ShaderInput const &ShaderInput::get_blank(void);

2271 11 ShaderInput 0 260 3639 24 ShaderInput::ShaderInput 0 5 396 397 398 399 400 430
/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */
494
inline explicit ShaderInput::ShaderInput(CPT_InternalName name, int priority = 0);
explicit ShaderInput::ShaderInput(CPT_InternalName name, PyObject *value, int priority = 0);
explicit ShaderInput::ShaderInput(CPT_InternalName name, Texture *tex, bool read, bool write, int z = -1, int n = 0, int priority = 0);
explicit ShaderInput::ShaderInput(CPT_InternalName name, Texture *tex, SamplerState const &sampler, int priority = 0);
inline ShaderInput::ShaderInput(ShaderInput const &) = default;

2272 22 operator typecast bool 0 132 3639 35 ShaderInput::operator typecast bool 0 1 414 0
34
inline operator bool (void) const;

2273 11 operator == 0 4 3639 24 ShaderInput::operator == 0 1 402 0
69
inline bool ShaderInput::operator ==(ShaderInput const &other) const;

2274 11 operator != 0 4 3639 24 ShaderInput::operator != 0 1 403 0
69
inline bool ShaderInput::operator !=(ShaderInput const &other) const;

2275 10 operator < 0 4 3639 23 ShaderInput::operator < 0 1 404 0
68
inline bool ShaderInput::operator <(ShaderInput const &other) const;

2276 8 add_hash 0 4 3639 21 ShaderInput::add_hash 0 1 405 10
/**
 *
 */
58
std::size_t ShaderInput::add_hash(std::size_t hash) const;

2277 8 get_name 0 4 3639 21 ShaderInput::get_name 0 1 406 10
/**
 *
 */
61
inline InternalName const *ShaderInput::get_name(void) const;

2278 14 get_value_type 0 4 3639 27 ShaderInput::get_value_type 0 1 407 10
/**
 *
 */
51
inline int ShaderInput::get_value_type(void) const;

2279 12 get_priority 0 4 3639 25 ShaderInput::get_priority 0 1 408 10
/**
 *
 */
49
inline int ShaderInput::get_priority(void) const;

2280 10 get_vector 0 4 3639 23 ShaderInput::get_vector 0 1 409 10
/**
 *
 */
60
inline LVecBase4 const &ShaderInput::get_vector(void) const;

2281 7 get_ptr 0 4 3639 20 ShaderInput::get_ptr 0 1 410 10
/**
 *
 */
69
inline Shader::ShaderPtrData const &ShaderInput::get_ptr(void) const;

2282 12 get_nodepath 0 4 3639 25 ShaderInput::get_nodepath 0 1 411 107
/**
 * Warning: no error checking is done.  This *will* crash if get_value_type()
 * is not M_nodepath.
 */
54
NodePath const &ShaderInput::get_nodepath(void) const;

2283 11 get_texture 0 4 3639 24 ShaderInput::get_texture 0 1 412 10
/**
 *
 */
46
Texture *ShaderInput::get_texture(void) const;

2284 11 get_sampler 0 4 3639 24 ShaderInput::get_sampler 0 1 413 46
/**
 * Warning: no error checking is done.
 */
57
SamplerState const &ShaderInput::get_sampler(void) const;

2285 12 ~ShaderInput 0 516 3639 25 ShaderInput::~ShaderInput 0 0 0
32
ShaderInput::~ShaderInput(void);

2286 22 InternalNameCollection 0 260 3642 46 InternalNameCollection::InternalNameCollection 0 2 415 416 22
/**
 *
 */

/**
 *
 */
137
InternalNameCollection::InternalNameCollection(void);
InternalNameCollection::InternalNameCollection(InternalNameCollection const &copy);

2287 10 operator = 0 4 3642 34 InternalNameCollection::operator = 0 1 417 0
76
void InternalNameCollection::operator =(InternalNameCollection const &copy);

2288 23 ~InternalNameCollection 0 516 3642 47 InternalNameCollection::~InternalNameCollection 0 0 10
/**
 *
 */
61
inline InternalNameCollection::~InternalNameCollection(void);

2289 8 add_name 0 4 3642 32 InternalNameCollection::add_name 0 1 418 53
/**
 * Adds a new InternalName to the collection.
 */
64
void InternalNameCollection::add_name(InternalName const *name);

2290 11 remove_name 0 4 3642 35 InternalNameCollection::remove_name 0 1 419 156
/**
 * Removes the indicated InternalName from the collection.  Returns true if
 * the name was removed, false if it was not a member of the collection.
 */
67
bool InternalNameCollection::remove_name(InternalName const *name);

2291 14 add_names_from 0 4 3642 38 InternalNameCollection::add_names_from 0 1 420 207
/**
 * Adds all the InternalNames indicated in the other collection to this name.
 * The other names are simply appended to the end of the names in this list;
 * duplicates are not automatically removed.
 */
81
void InternalNameCollection::add_names_from(InternalNameCollection const &other);

2292 17 remove_names_from 0 4 3642 41 InternalNameCollection::remove_names_from 0 1 421 99
/**
 * Removes from this collection all of the InternalNames listed in the other
 * collection.
 */
84
void InternalNameCollection::remove_names_from(InternalNameCollection const &other);

2293 22 remove_duplicate_names 0 4 3642 46 InternalNameCollection::remove_duplicate_names 0 1 422 204
/**
 * Removes any duplicate entries of the same InternalNames on this collection.
 * If a InternalName appears multiple times, the first appearance is retained;
 * subsequent appearances are removed.
 */
58
void InternalNameCollection::remove_duplicate_names(void);

2294 8 has_name 0 4 3642 32 InternalNameCollection::has_name 0 1 423 101
/**
 * Returns true if the indicated InternalName appears in this collection,
 * false otherwise.
 */
70
bool InternalNameCollection::has_name(InternalName const *name) const;

2295 5 clear 0 4 3642 29 InternalNameCollection::clear 0 1 424 57
/**
 * Removes all InternalNames from the collection.
 */
41
void InternalNameCollection::clear(void);

2296 13 get_num_names 0 4 3642 37 InternalNameCollection::get_num_names 0 1 425 65
/**
 * Returns the number of InternalNames in the collection.
 */
54
int InternalNameCollection::get_num_names(void) const;

2297 8 get_name 0 4 3642 32 InternalNameCollection::get_name 0 1 426 58
/**
 * Returns the nth InternalName in the collection.
 */
70
InternalName const *InternalNameCollection::get_name(int index) const;

2298 11 operator [] 0 4 3642 35 InternalNameCollection::operator [] 0 1 427 144
/**
 * Returns the nth InternalName in the collection.  This is the same as
 * get_name(), but it may be a more convenient way to access it.
 */
73
InternalName const *InternalNameCollection::operator [](int index) const;

2299 4 size 0 4 3642 28 InternalNameCollection::size 0 1 428 104
/**
 * Returns the number of names in the collection.  This is the same thing as
 * get_num_names().
 */
45
int InternalNameCollection::size(void) const;

2300 11 operator += 0 4 3642 35 InternalNameCollection::operator += 0 1 429 0
85
inline void InternalNameCollection::operator +=(InternalNameCollection const &other);

2301 10 operator + 0 4 3642 34 InternalNameCollection::operator + 0 1 430 0
108
inline InternalNameCollection InternalNameCollection::operator +(InternalNameCollection const &other) const;

2302 6 output 0 4 3642 30 InternalNameCollection::output 0 1 431 111
/**
 * Writes a brief one-line description of the InternalNameCollection to the
 * indicated output stream.
 */
61
void InternalNameCollection::output(std::ostream &out) const;

2303 5 write 0 4 3642 29 InternalNameCollection::write 0 1 432 116
/**
 * Writes a complete multi-line description of the InternalNameCollection to
 * the indicated output stream.
 */
82
void InternalNameCollection::write(std::ostream &out, int indent_level = 0) const;

2304 18 MaterialCollection 0 260 3643 38 MaterialCollection::MaterialCollection 0 2 433 434 22
/**
 *
 */

/**
 *
 */
117
MaterialCollection::MaterialCollection(void);
MaterialCollection::MaterialCollection(MaterialCollection const &copy);

2305 10 operator = 0 4 3643 30 MaterialCollection::operator = 0 1 435 0
68
void MaterialCollection::operator =(MaterialCollection const &copy);

2306 19 ~MaterialCollection 0 516 3643 39 MaterialCollection::~MaterialCollection 0 0 10
/**
 *
 */
53
inline MaterialCollection::~MaterialCollection(void);

2307 12 add_material 0 4 3643 32 MaterialCollection::add_material 0 1 436 49
/**
 * Adds a new Material to the collection.
 */
63
void MaterialCollection::add_material(Material *node_material);

2308 15 remove_material 0 4 3643 35 MaterialCollection::remove_material 0 1 437 156
/**
 * Removes the indicated Material from the collection.  Returns true if the
 * material was removed, false if it was not a member of the collection.
 */
66
bool MaterialCollection::remove_material(Material *node_material);

2309 18 add_materials_from 0 4 3643 38 MaterialCollection::add_materials_from 0 1 438 215
/**
 * Adds all the Materials indicated in the other collection to this material.
 * The other materials are simply appended to the end of the materials in this
 * list; duplicates are not automatically removed.
 */
77
void MaterialCollection::add_materials_from(MaterialCollection const &other);

2310 21 remove_materials_from 0 4 3643 41 MaterialCollection::remove_materials_from 0 1 439 95
/**
 * Removes from this collection all of the Materials listed in the other
 * collection.
 */
80
void MaterialCollection::remove_materials_from(MaterialCollection const &other);

2311 26 remove_duplicate_materials 0 4 3643 46 MaterialCollection::remove_duplicate_materials 0 1 440 197
/**
 * Removes any duplicate entries of the same Materials on this collection.  If
 * a Material appears multiple times, the first appearance is retained;
 * subsequent appearances are removed.
 */
58
void MaterialCollection::remove_duplicate_materials(void);

2312 12 has_material 0 4 3643 32 MaterialCollection::has_material 0 1 441 97
/**
 * Returns true if the indicated Material appears in this collection, false
 * otherwise.
 */
64
bool MaterialCollection::has_material(Material *material) const;

2313 5 clear 0 4 3643 25 MaterialCollection::clear 0 1 442 53
/**
 * Removes all Materials from the collection.
 */
37
void MaterialCollection::clear(void);

2314 13 find_material 0 4 3643 33 MaterialCollection::find_material 0 1 443 123
/**
 * Returns the material in the collection with the indicated name, if any, or
 * NULL if no material has that name.
 */
75
Material *MaterialCollection::find_material(std::string const &name) const;

2315 17 get_num_materials 0 4 3643 37 MaterialCollection::get_num_materials 0 1 444 61
/**
 * Returns the number of Materials in the collection.
 */
54
int MaterialCollection::get_num_materials(void) const;

2316 12 get_material 0 4 3643 32 MaterialCollection::get_material 0 1 445 54
/**
 * Returns the nth Material in the collection.
 */
60
Material *MaterialCollection::get_material(int index) const;

2317 11 operator [] 0 4 3643 31 MaterialCollection::operator [] 0 1 446 144
/**
 * Returns the nth Material in the collection.  This is the same as
 * get_material(), but it may be a more convenient way to access it.
 */
59
Material *MaterialCollection::operator [](int index) const;

2318 4 size 0 4 3643 24 MaterialCollection::size 0 1 447 112
/**
 * Returns the number of materials in the collection.  This is the same thing
 * as get_num_materials().
 */
41
int MaterialCollection::size(void) const;

2319 11 operator += 0 4 3643 31 MaterialCollection::operator += 0 1 448 0
77
inline void MaterialCollection::operator +=(MaterialCollection const &other);

2320 10 operator + 0 4 3643 30 MaterialCollection::operator + 0 1 449 0
96
inline MaterialCollection MaterialCollection::operator +(MaterialCollection const &other) const;

2321 6 output 0 4 3643 26 MaterialCollection::output 0 1 450 107
/**
 * Writes a brief one-line description of the MaterialCollection to the
 * indicated output stream.
 */
57
void MaterialCollection::output(std::ostream &out) const;

2322 5 write 0 4 3643 25 MaterialCollection::write 0 1 451 112
/**
 * Writes a complete multi-line description of the MaterialCollection to the
 * indicated output stream.
 */
78
void MaterialCollection::write(std::ostream &out, int indent_level = 0) const;

2323 22 TextureStageCollection 0 260 3644 46 TextureStageCollection::TextureStageCollection 0 2 452 453 22
/**
 *
 */

/**
 *
 */
137
TextureStageCollection::TextureStageCollection(void);
TextureStageCollection::TextureStageCollection(TextureStageCollection const &copy);

2324 10 operator = 0 4 3644 34 TextureStageCollection::operator = 0 1 454 0
76
void TextureStageCollection::operator =(TextureStageCollection const &copy);

2325 23 ~TextureStageCollection 0 516 3644 47 TextureStageCollection::~TextureStageCollection 0 0 10
/**
 *
 */
61
inline TextureStageCollection::~TextureStageCollection(void);

2326 17 add_texture_stage 0 4 3644 41 TextureStageCollection::add_texture_stage 0 1 455 53
/**
 * Adds a new TextureStage to the collection.
 */
81
void TextureStageCollection::add_texture_stage(TextureStage *node_texture_stage);

2327 20 remove_texture_stage 0 4 3644 44 TextureStageCollection::remove_texture_stage 0 1 456 168
/**
 * Removes the indicated TextureStage from the collection.  Returns true if
 * the texture_stage was removed, false if it was not a member of the
 * collection.
 */
84
bool TextureStageCollection::remove_texture_stage(TextureStage *node_texture_stage);

2328 23 add_texture_stages_from 0 4 3644 47 TextureStageCollection::add_texture_stages_from 0 1 457 235
/**
 * Adds all the TextureStages indicated in the other collection to this
 * texture_stage.  The other texture_stages are simply appended to the end of
 * the texture_stages in this list; duplicates are not automatically removed.
 */
90
void TextureStageCollection::add_texture_stages_from(TextureStageCollection const &other);

2329 26 remove_texture_stages_from 0 4 3644 50 TextureStageCollection::remove_texture_stages_from 0 1 458 99
/**
 * Removes from this collection all of the TextureStages listed in the other
 * collection.
 */
93
void TextureStageCollection::remove_texture_stages_from(TextureStageCollection const &other);

2330 31 remove_duplicate_texture_stages 0 4 3644 55 TextureStageCollection::remove_duplicate_texture_stages 0 1 459 204
/**
 * Removes any duplicate entries of the same TextureStages on this collection.
 * If a TextureStage appears multiple times, the first appearance is retained;
 * subsequent appearances are removed.
 */
67
void TextureStageCollection::remove_duplicate_texture_stages(void);

2331 17 has_texture_stage 0 4 3644 41 TextureStageCollection::has_texture_stage 0 1 460 101
/**
 * Returns true if the indicated TextureStage appears in this collection,
 * false otherwise.
 */
82
bool TextureStageCollection::has_texture_stage(TextureStage *texture_stage) const;

2332 5 clear 0 4 3644 29 TextureStageCollection::clear 0 1 461 57
/**
 * Removes all TextureStages from the collection.
 */
41
void TextureStageCollection::clear(void);

2333 18 find_texture_stage 0 4 3644 42 TextureStageCollection::find_texture_stage 0 1 462 133
/**
 * Returns the texture_stage in the collection with the indicated name, if
 * any, or NULL if no texture_stage has that name.
 */
88
TextureStage *TextureStageCollection::find_texture_stage(std::string const &name) const;

2334 22 get_num_texture_stages 0 4 3644 46 TextureStageCollection::get_num_texture_stages 0 1 463 65
/**
 * Returns the number of TextureStages in the collection.
 */
63
int TextureStageCollection::get_num_texture_stages(void) const;

2335 17 get_texture_stage 0 4 3644 41 TextureStageCollection::get_texture_stage 0 1 464 58
/**
 * Returns the nth TextureStage in the collection.
 */
73
TextureStage *TextureStageCollection::get_texture_stage(int index) const;

2336 11 operator [] 0 4 3644 35 TextureStageCollection::operator [] 0 1 465 153
/**
 * Returns the nth TextureStage in the collection.  This is the same as
 * get_texture_stage(), but it may be a more convenient way to access it.
 */
67
TextureStage *TextureStageCollection::operator [](int index) const;

2337 4 size 0 4 3644 28 TextureStageCollection::size 0 1 466 122
/**
 * Returns the number of texture stages in the collection.  This is the same
 * thing as get_num_texture_stages().
 */
45
int TextureStageCollection::size(void) const;

2338 11 operator += 0 4 3644 35 TextureStageCollection::operator += 0 1 467 0
85
inline void TextureStageCollection::operator +=(TextureStageCollection const &other);

2339 10 operator + 0 4 3644 34 TextureStageCollection::operator + 0 1 468 0
108
inline TextureStageCollection TextureStageCollection::operator +(TextureStageCollection const &other) const;

2340 4 sort 0 4 3644 28 TextureStageCollection::sort 0 1 469 116
/**
 * Sorts the TextureStages in this collection into order by
 * TextureStage::sort(), from lowest to highest.
 */
40
void TextureStageCollection::sort(void);

2341 6 output 0 4 3644 30 TextureStageCollection::output 0 1 470 111
/**
 * Writes a brief one-line description of the TextureStageCollection to the
 * indicated output stream.
 */
61
void TextureStageCollection::output(std::ostream &out) const;

2342 5 write 0 4 3644 29 TextureStageCollection::write 0 1 471 116
/**
 * Writes a complete multi-line description of the TextureStageCollection to
 * the indicated output stream.
 */
82
void TextureStageCollection::write(std::ostream &out, int indent_level = 0) const;

2343 8 NodePath 0 260 3645 18 NodePath::NodePath 0 5 472 473 474 475 476 748
/**
 * This constructs an empty NodePath with no nodes.
 */

/**
 * This constructs a new NodePath with a single node.  An ordinary, unattached
 * PandaNode is created with the indicated name.
 */

/**
 * This constructs a NodePath for the indicated node.  If the node does not
 * have any parents, this creates a singleton NodePath; otherwise, it
 * automatically finds the path from the node to the root.  If the node has
 * multiple paths to the root, one path is chosen arbitrarily and a warning
 * message is printed (but see also NodePath::any_path(), below).
 */

/**
 *
 */

/**
 *
 */

/**
 * Constructs a NodePath with the indicated parent NodePath and child node;
 * the child node must be a stashed or unstashed child of the parent.
 */
445
inline NodePath::NodePath(void);
inline explicit NodePath::NodePath(std::string const &top_node_name, Thread *current_thread = Thread::get_current_thread());
inline explicit NodePath::NodePath(PandaNode *node, Thread *current_thread = Thread::get_current_thread());
explicit NodePath::NodePath(NodePath const &parent, PandaNode *child_node, Thread *current_thread = Thread::get_current_thread());
inline NodePath::NodePath(NodePath const &copy);

2344 8 any_path 0 4 3645 18 NodePath::any_path 0 1 477 236
/**
 * Returns a new NodePath that represents any arbitrary path from the root to
 * the indicated node.  This is the same thing that would be returned by
 * NodePath(node), except that no warning is issued if the path is ambiguous.
 */
114
static inline NodePath NodePath::any_path(PandaNode *node, Thread *current_thread = Thread::get_current_thread());

2345 10 operator = 0 4 3645 20 NodePath::operator = 0 1 478 0
55
inline void NodePath::operator =(NodePath const &copy);

2346 5 clear 0 4 3645 15 NodePath::clear 0 1 479 93
/**
 * Sets this NodePath to the empty NodePath.  It will no longer point to any
 * node.
 */
34
inline void NodePath::clear(void);

2347 8 __copy__ 0 4 3645 18 NodePath::__copy__ 0 1 480 0
40
NodePath NodePath::__copy__(void) const;

2348 12 __deepcopy__ 0 4 3645 22 NodePath::__deepcopy__ 0 1 481 0
71
PyObject *NodePath::__deepcopy__(PyObject *self, PyObject *memo) const;

2349 10 __reduce__ 0 4 3645 20 NodePath::__reduce__ 0 1 482 0
53
PyObject *NodePath::__reduce__(PyObject *self) const;

2350 18 __reduce_persist__ 0 4 3645 28 NodePath::__reduce_persist__ 0 1 483 0
80
PyObject *NodePath::__reduce_persist__(PyObject *self, PyObject *pickler) const;

2351 9 not_found 0 4 3645 19 NodePath::not_found 0 1 484 67
/**
 * Creates a NodePath with the ET_not_found error type set.
 */
49
static inline NodePath NodePath::not_found(void);

2352 7 removed 0 4 3645 17 NodePath::removed 0 1 485 65
/**
 * Creates a NodePath with the ET_removed error type set.
 */
47
static inline NodePath NodePath::removed(void);

2353 4 fail 0 4 3645 14 NodePath::fail 0 1 486 62
/**
 * Creates a NodePath with the ET_fail error type set.
 */
44
static inline NodePath NodePath::fail(void);

2354 20 set_max_search_depth 0 4 3645 30 NodePath::set_max_search_depth 0 1 487 798
/**
 * Certain operations, such as find() or find_all_matches(), require a
 * traversal of the scene graph to search for the target node or nodes.  This
 * traversal does not attempt to detect cycles, so an arbitrary cap is set on
 * the depth of the traversal as a poor man's cycle detection, in the event
 * that a cycle has inadvertently been introduced into the scene graph.
 *
 * There may be other reasons you'd want to truncate a search before the
 * bottom of the scene graph has been reached.  In any event, this function
 * sets the limit on the number of levels that a traversal will continue, and
 * hence the maximum length of a path that may be returned by a traversal.
 *
 * This is a static method, and so changing this parameter affects all of the
 * NodePaths in the universe.
 */
72
static inline void NodePath::set_max_search_depth(int max_search_depth);

2355 20 get_max_search_depth 0 4 3645 30 NodePath::get_max_search_depth 0 1 488 95
/**
 * Returns the current setting of the search depth limit.  See
 * set_max_search_depth.
 */
55
static inline int NodePath::get_max_search_depth(void);

2356 8 is_empty 0 4 3645 18 NodePath::is_empty 0 1 489 102
// Methods to query a NodePath's contents.

/**
 * Returns true if the NodePath contains no nodes.
 */
43
inline bool NodePath::is_empty(void) const;

2357 22 operator typecast bool 0 132 3645 32 NodePath::operator typecast bool 0 1 994 0
27
operator bool (void) const;

2358 12 is_singleton 0 4 3645 22 NodePath::is_singleton 0 1 490 66
/**
 * Returns true if the NodePath contains exactly one node.
 */
96
inline bool NodePath::is_singleton(Thread *current_thread = Thread::get_current_thread()) const;

2359 13 get_num_nodes 0 4 3645 23 NodePath::get_num_nodes 0 1 491 51
/**
 * Returns the number of nodes in the path.
 */
89
int NodePath::get_num_nodes(Thread *current_thread = Thread::get_current_thread()) const;

2360 8 get_node 0 4 3645 18 NodePath::get_node 0 1 492 473
/**
 * Returns the nth node of the path, where 0 is the referenced (bottom) node
 * and get_num_nodes() - 1 is the top node.  This requires iterating through
 * the path.
 *
 * Also see node(), which is a convenience function to return the same thing
 * as get_node(0) (since the bottom node is the most important node in the
 * NodePath, and is the one most frequently referenced).
 *
 * Note that this function returns the same thing as
 * get_ancestor(index).node().
 */
102
PandaNode *NodePath::get_node(int index, Thread *current_thread = Thread::get_current_thread()) const;

2361 12 get_ancestor 0 4 3645 22 NodePath::get_ancestor 0 1 493 261
/**
 * Returns the nth ancestor of the path, where 0 is the NodePath itself and
 * get_num_nodes() - 1 is get_top(). This requires iterating through the path.
 *
 * Also see get_node(), which returns the same thing as a PandaNode pointer,
 * not a NodePath.
 */
104
NodePath NodePath::get_ancestor(int index, Thread *current_thread = Thread::get_current_thread()) const;

2362 14 get_error_type 0 4 3645 24 NodePath::get_error_type 0 1 494 110
/**
 * If is_empty() is true, this returns a code that represents the reason why
 * the NodePath is empty.
 */
64
inline NodePath::ErrorType NodePath::get_error_type(void) const;

2363 12 get_top_node 0 4 3645 22 NodePath::get_top_node 0 1 495 120
/**
 * Returns the top node of the path, or NULL if the path is empty.  This
 * requires iterating through the path.
 */
102
inline PandaNode *NodePath::get_top_node(Thread *current_thread = Thread::get_current_thread()) const;

2364 7 get_top 0 4 3645 17 NodePath::get_top 0 1 496 120
/**
 * Returns a singleton NodePath that represents the top of the path, or empty
 * NodePath if this path is empty.
 */
88
NodePath NodePath::get_top(Thread *current_thread = Thread::get_current_thread()) const;

2365 4 node 0 4 3645 14 NodePath::node 0 1 497 51
/**
 * Returns the referenced node of the path.
 */
45
inline PandaNode *NodePath::node(void) const;

2366 7 get_key 0 4 3645 17 NodePath::get_key 0 1 498 617
/**
 * Returns an integer that is guaranteed to be the same for all NodePaths that
 * represent the same node instance, and different for all NodePaths that
 * represent a different node instance.
 *
 * The same key will be returned for a particular instance as long as at least
 * one NodePath exists that represents that instance; if all NodePaths for a
 * particular instance destruct and a new one is later created, it may have a
 * different index.  However, a given key will never be reused for a different
 * instance (unless the app has been running long enough that we overflow the
 * integer key value).
 */
41
inline int NodePath::get_key(void) const;

2367 8 add_hash 0 4 3645 18 NodePath::add_hash 0 1 499 528
/**
 * Adds the NodePath into the running hash.  This is intended to be used by
 * lower-level code that computes a hash for each NodePath.  It modifies the
 * hash value passed in by a unique adjustment for each NodePath, and returns
 * the modified hash.
 *
 * This is similar to the unique integer returned by get_key(), but it is not
 * guaranteed to remain unique beyond the lifetime of this particular
 * NodePath.  Once this NodePath destructs, a different NodePath may be
 * created which shares the same hash value.
 */
62
inline std::size_t NodePath::add_hash(std::size_t hash) const;

2368 13 is_same_graph 0 4 3645 23 NodePath::is_same_graph 0 1 500 255
/**
 * Returns true if the node represented by this NodePath is parented within
 * the same graph as that of the other NodePath.  This is essentially the same
 * thing as asking whether get_top() of both NodePaths is the same (e.g., both
 * "render").
 */
120
inline bool NodePath::is_same_graph(NodePath const &other, Thread *current_thread = Thread::get_current_thread()) const;

2369 14 is_ancestor_of 0 4 3645 24 NodePath::is_ancestor_of 0 1 501 143
/**
 * Returns true if the node represented by this NodePath is a parent or other
 * ancestor of the other NodePath, or false if it is not.
 */
121
inline bool NodePath::is_ancestor_of(NodePath const &other, Thread *current_thread = Thread::get_current_thread()) const;

2370 19 get_common_ancestor 0 4 3645 29 NodePath::get_common_ancestor 0 1 502 205
/**
 * Returns the lowest NodePath that both of these two NodePaths have in
 * common: the first ancestor that both of them share.  If the two NodePaths
 * are unrelated, returns NodePath::not_found().
 */
130
inline NodePath NodePath::get_common_ancestor(NodePath const &other, Thread *current_thread = Thread::get_current_thread()) const;

2371 12 get_children 0 4 3645 22 NodePath::get_children 0 1 503 69
/**
 * Returns the set of all child nodes of the referenced node.
 */
103
NodePathCollection NodePath::get_children(Thread *current_thread = Thread::get_current_thread()) const;

2372 16 get_num_children 0 4 3645 26 NodePath::get_num_children 0 1 504 65
/**
 * Returns the number of children of the referenced node.
 */
99
inline int NodePath::get_num_children(Thread *current_thread = Thread::get_current_thread()) const;

2373 9 get_child 0 4 3645 19 NodePath::get_child 0 1 505 80
/**
 * Returns a NodePath representing the nth child of the referenced node.
 */
104
inline NodePath NodePath::get_child(int n, Thread *current_thread = Thread::get_current_thread()) const;

2374 20 get_stashed_children 0 4 3645 30 NodePath::get_stashed_children 0 1 506 210
/**
 * Returns the set of all child nodes of the referenced node that have been
 * stashed.  These children are not normally visible on the node, and do not
 * appear in the list returned by get_children().
 */
111
NodePathCollection NodePath::get_stashed_children(Thread *current_thread = Thread::get_current_thread()) const;

2375 18 NodePathCollection 0 260 3648 38 NodePathCollection::NodePathCollection 0 3 995 996 997 0
216
NodePathCollection::NodePathCollection(void) = default;
NodePathCollection::NodePathCollection(PyObject *self, PyObject *sequence);
inline NodePathCollection::NodePathCollection(NodePathCollection const &) = default;

2376 10 __reduce__ 0 4 3648 30 NodePathCollection::__reduce__ 0 1 998 0
63
PyObject *NodePathCollection::__reduce__(PyObject *self) const;

2377 8 add_path 0 4 3648 28 NodePathCollection::add_path 0 1 999 49
/**
 * Adds a new NodePath to the collection.
 */
61
void NodePathCollection::add_path(NodePath const &node_path);

2378 11 remove_path 0 4 3648 31 NodePathCollection::remove_path 0 1 1000 152
/**
 * Removes the indicated NodePath from the collection.  Returns true if the
 * path was removed, false if it was not a member of the collection.
 */
64
bool NodePathCollection::remove_path(NodePath const &node_path);

2379 14 add_paths_from 0 4 3648 34 NodePathCollection::add_paths_from 0 1 1001 204
/**
 * Adds all the NodePaths indicated in the other collection to this path.  The
 * other paths are simply appended to the end of the paths in this list;
 * duplicates are not automatically removed.
 */
73
void NodePathCollection::add_paths_from(NodePathCollection const &other);

2380 17 remove_paths_from 0 4 3648 37 NodePathCollection::remove_paths_from 0 1 1002 95
/**
 * Removes from this collection all of the NodePaths listed in the other
 * collection.
 */
76
void NodePathCollection::remove_paths_from(NodePathCollection const &other);

2381 22 remove_duplicate_paths 0 4 3648 42 NodePathCollection::remove_duplicate_paths 0 1 1003 197
/**
 * Removes any duplicate entries of the same NodePaths on this collection.  If
 * a NodePath appears multiple times, the first appearance is retained;
 * subsequent appearances are removed.
 */
54
void NodePathCollection::remove_duplicate_paths(void);

2382 8 has_path 0 4 3648 28 NodePathCollection::has_path 0 1 1004 97
/**
 * Returns true if the indicated NodePath appears in this collection, false
 * otherwise.
 */
62
bool NodePathCollection::has_path(NodePath const &path) const;

2383 5 clear 0 4 3648 25 NodePathCollection::clear 0 1 1005 53
/**
 * Removes all NodePaths from the collection.
 */
37
void NodePathCollection::clear(void);

2384 7 reserve 0 4 3648 27 NodePathCollection::reserve 0 1 1006 157
/**
 * This is a hint to Panda to allocate enough memory to hold the given number
 * of NodePaths, if you know ahead of time how many you will be adding.
 */
50
void NodePathCollection::reserve(std::size_t num);

2385 8 is_empty 0 4 3648 28 NodePathCollection::is_empty 0 1 1007 85
/**
 * Returns true if there are no NodePaths in the collection, false otherwise.
 */
46
bool NodePathCollection::is_empty(void) const;

2386 13 get_num_paths 0 4 3648 33 NodePathCollection::get_num_paths 0 1 1008 61
/**
 * Returns the number of NodePaths in the collection.
 */
50
int NodePathCollection::get_num_paths(void) const;

2387 8 get_path 0 4 3648 28 NodePathCollection::get_path 0 1 1009 54
/**
 * Returns the nth NodePath in the collection.
 */
55
NodePath NodePathCollection::get_path(int index) const;

2388 11 operator [] 0 4 3648 31 NodePathCollection::operator [] 0 1 1010 0
66
NodePath NodePathCollection::operator [](std::size_t index) const;

2389 4 size 0 4 3648 24 NodePathCollection::size 0 1 1011 104
/**
 * Returns the number of paths in the collection.  This is the same thing as
 * get_num_paths().
 */
49
std::size_t NodePathCollection::size(void) const;

2390 11 operator += 0 4 3648 31 NodePathCollection::operator += 0 1 1012 0
77
inline void NodePathCollection::operator +=(NodePathCollection const &other);

2391 10 operator + 0 4 3648 30 NodePathCollection::operator + 0 1 1013 0
96
inline NodePathCollection NodePathCollection::operator +(NodePathCollection const &other) const;

2392 6 append 0 4 3648 26 NodePathCollection::append 0 1 1014 203
// Method names to satisfy Python's conventions.

/**
 * Adds a new NodePath to the collection.  This method duplicates the
 * add_path() method; it is provided to satisfy Python's naming convention.
 */
66
inline void NodePathCollection::append(NodePath const &node_path);

2393 6 extend 0 4 3648 26 NodePathCollection::extend 0 1 1015 157
/**
 * Appends the other list onto the end of this one.  This method duplicates
 * the += operator; it is provided to satisfy Python's naming convention.
 */
72
inline void NodePathCollection::extend(NodePathCollection const &other);

2394 2 ls 0 4 3648 22 NodePathCollection::ls 0 2 1016 1017 230
// Handy operations on many NodePaths at once.

/**
 * Lists all the nodes at and below each node in the collection
 * hierarchically.
 */

/**
 * Lists all the nodes at and below each node in the collection
 * hierarchically.
 */
123
inline void NodePathCollection::ls(void) const;
void NodePathCollection::ls(std::ostream &out, int indent_level = 0) const;

2395 16 find_all_matches 0 4 3648 36 NodePathCollection::find_all_matches 0 1 1018 177
/**
 * Returns the complete set of all NodePaths that begin with any NodePath in
 * this collection and can be extended by path.  The shortest paths will be
 * listed first.
 */
87
NodePathCollection NodePathCollection::find_all_matches(std::string const &path) const;

2396 11 reparent_to 0 4 3648 31 NodePathCollection::reparent_to 0 1 1019 79
/**
 * Reparents all the NodePaths in the collection to the indicated node.
 */
60
void NodePathCollection::reparent_to(NodePath const &other);

2397 15 wrt_reparent_to 0 4 3648 35 NodePathCollection::wrt_reparent_to 0 1 1020 147
/**
 * Reparents all the NodePaths in the collection to the indicated node,
 * adjusting each transform so as not to move in world coordinates.
 */
64
void NodePathCollection::wrt_reparent_to(NodePath const &other);

2398 4 show 0 4 3648 24 NodePathCollection::show 0 1 1021 49
/**
 * Shows all NodePaths in the collection.
 */
36
void NodePathCollection::show(void);

2399 4 hide 0 4 3648 24 NodePathCollection::hide 0 1 1022 49
/**
 * Hides all NodePaths in the collection.
 */
36
void NodePathCollection::hide(void);

2400 5 stash 0 4 3648 25 NodePathCollection::stash 0 1 1023 51
/**
 * Stashes all NodePaths in the collection.
 */
37
void NodePathCollection::stash(void);

2401 7 unstash 0 4 3648 27 NodePathCollection::unstash 0 1 1024 53
/**
 * Unstashes all NodePaths in the collection.
 */
39
void NodePathCollection::unstash(void);

2402 6 detach 0 4 3648 26 NodePathCollection::detach 0 1 1025 52
/**
 * Detaches all NodePaths in the collection.
 */
38
void NodePathCollection::detach(void);

2403 16 get_collide_mask 0 4 3648 36 NodePathCollection::get_collide_mask 0 1 1026 309
/**
 * Returns the union of all of the into_collide_masks for nodes at this level
 * and below.  This is the same thing as node()->get_net_collide_mask().
 *
 * If you want to return what the into_collide_mask of this node itself is,
 * without regard to its children, use node()->get_into_collide_mask().
 */
61
CollideMask NodePathCollection::get_collide_mask(void) const;

2404 16 set_collide_mask 0 4 3648 36 NodePathCollection::set_collide_mask 0 1 1027 349
/**
 * Recursively applies the indicated CollideMask to the into_collide_masks for
 * all nodes at this level and below.
 *
 * The default is to change all bits, but if bits_to_change is not all bits
 * on, then only the bits that are set in bits_to_change are modified,
 * allowing this call to change only a subset of the bits in the subgraph.
 */
159
void NodePathCollection::set_collide_mask(CollideMask new_mask, CollideMask bits_to_change = CollideMask::all_on(), TypeHandle node_type = TypeHandle::none());

2405 17 calc_tight_bounds 0 4 3648 37 NodePathCollection::calc_tight_bounds 0 1 1028 369
/**
 * Calculates the minimum and maximum vertices of all Geoms at these
 * NodePath's bottom nodes and below This is a tight bounding box; it will
 * generally be tighter than the bounding volume returned by get_bounds() (but
 * it is more expensive to compute).
 *
 * The return value is true if any points are within the bounding volume, or
 * false if none are.
 */
89
bool NodePathCollection::calc_tight_bounds(LPoint3 &min_point, LPoint3 &max_point) const;

2406 16 get_tight_bounds 0 4 3648 36 NodePathCollection::get_tight_bounds 0 1 1029 0
59
PyObject *NodePathCollection::get_tight_bounds(void) const;

2407 11 set_texture 0 4 3648 31 NodePathCollection::set_texture 0 2 1030 1031 738
/**
 * Adds the indicated texture to the list of textures that will be rendered on
 * the default texture stage.
 *
 * This is the deprecated single-texture variant of this method; it is now
 * superceded by set_texture() that accepts a stage and texture.  However,
 * this method may be used in the presence of multitexture if you just want to
 * adjust the default stage.
 */

/**
 * Adds the indicated texture to the list of textures that will be rendered on
 * the indicated multitexture stage.  If there are multiple texture stages
 * specified (possibly on multiple different nodes at different levels), they
 * will all be applied to geometry together, according to the stage
 * specification set up in the TextureStage object.
 */
160
void NodePathCollection::set_texture(Texture *tex, int priority = 0);
void NodePathCollection::set_texture(TextureStage *stage, Texture *tex, int priority = 0);

2408 15 set_texture_off 0 4 3648 35 NodePathCollection::set_texture_off 0 2 1032 1033 602
/**
 * Sets the geometry at this level and below to render using no texture, on
 * any stage.  This is different from not specifying a texture; rather, this
 * specifically contradicts set_texture() at a higher node level (or, with a
 * priority, overrides a set_texture() at a lower level).
 */

/**
 * Sets the geometry at this level and below to render using no texture, on
 * the indicated stage.  This is different from not specifying a texture;
 * rather, this specifically contradicts set_texture() at a higher node level
 * (or, with a priority, overrides a set_texture() at a lower level).
 */
140
void NodePathCollection::set_texture_off(int priority = 0);
void NodePathCollection::set_texture_off(TextureStage *stage, int priority = 0);

2409 9 set_color 0 4 3648 29 NodePathCollection::set_color 0 2 1034 1035 100
/**
 * Colors all NodePaths in the collection
 */

/**
 * Colors all NodePaths in the collection
 */
201
inline void NodePathCollection::set_color(PN_stdfloat r, PN_stdfloat g, PN_stdfloat b, PN_stdfloat a = 1.0, int priority = 0);
void NodePathCollection::set_color(LColor const &color, int priority = 0);

2410 15 set_color_scale 0 4 3648 35 NodePathCollection::set_color_scale 0 2 1036 1037 220
/**
 * Applies color scales to all NodePaths in the collection.  The existing
 * color scale is replaced.
 */

/**
 * Applies color scales to all NodePaths in the collection.  The existing
 * color scale is replaced.
 */
216
inline void NodePathCollection::set_color_scale(PN_stdfloat r, PN_stdfloat g, PN_stdfloat b, PN_stdfloat a = 1.0, int priority = 0);
void NodePathCollection::set_color_scale(LVecBase4 const &scale, int priority = 0);

2411 19 compose_color_scale 0 4 3648 39 NodePathCollection::compose_color_scale 0 2 1038 1039 300
/**
 * Applies color scales to all NodePaths in the collection.  The existing
 * color scale, if any, is multiplied by the specified color scale.
 */

/**
 * Applies color scales to all NodePaths in the collection.  The existing
 * color scale, if any, is multiplied by the specified color scale.
 */
224
inline void NodePathCollection::compose_color_scale(PN_stdfloat r, PN_stdfloat g, PN_stdfloat b, PN_stdfloat a = 1.0, int priority = 0);
void NodePathCollection::compose_color_scale(LVecBase4 const &scale, int priority = 0);

2412 10 set_attrib 0 4 3648 30 NodePathCollection::set_attrib 0 1 1040 223
/**
 * Applies the indicated RenderAttrib to all NodePaths in the collection.  An
 * effort is made to apply the attrib to many NodePaths as quickly as
 * possible; redundant RenderState compositions are not duplicated.
 */
82
void NodePathCollection::set_attrib(RenderAttrib const *attrib, int priority = 0);

2413 6 output 0 4 3648 26 NodePathCollection::output 0 1 1041 107
/**
 * Writes a brief one-line description of the NodePathCollection to the
 * indicated output stream.
 */
57
void NodePathCollection::output(std::ostream &out) const;

2414 5 write 0 4 3648 25 NodePathCollection::write 0 1 1042 112
/**
 * Writes a complete multi-line description of the NodePathCollection to the
 * indicated output stream.
 */
78
void NodePathCollection::write(std::ostream &out, int indent_level = 0) const;

2415 19 ~NodePathCollection 0 516 3648 39 NodePathCollection::~NodePathCollection 0 0 0
46
NodePathCollection::~NodePathCollection(void);

2416 21 count_num_descendants 0 4 3645 31 NodePath::count_num_descendants 0 1 507 63
/**
 * Returns the number of nodes at and below this level.
 */
55
inline int NodePath::count_num_descendants(void) const;

2417 10 has_parent 0 4 3645 20 NodePath::has_parent 0 1 508 117
/**
 * Returns true if the referenced node has a parent; i.e.  the NodePath chain
 * contains at least two nodes.
 */
94
inline bool NodePath::has_parent(Thread *current_thread = Thread::get_current_thread()) const;

2418 10 get_parent 0 4 3645 20 NodePath::get_parent 0 1 509 195
/**
 * Returns the NodePath to the parent of the referenced node: that is, this
 * NodePath, shortened by one node.  The parent of a singleton NodePath is
 * defined to be the empty NodePath.
 */
98
inline NodePath NodePath::get_parent(Thread *current_thread = Thread::get_current_thread()) const;

2419 8 get_sort 0 4 3645 18 NodePath::get_sort 0 1 510 246
/**
 * Returns the sort value of the referenced node within its parent; that is,
 * the sort number passed on the last reparenting operation for this node.
 * This will control the position of the node within its parent's list of
 * children.
 */
84
int NodePath::get_sort(Thread *current_thread = Thread::get_current_thread()) const;

2420 4 find 0 4 3645 14 NodePath::find 0 1 511 253
/**
 * Searches for a node below the referenced node that matches the indicated
 * string.  Returns the shortest match found, if any, or an empty NodePath if
 * no match can be found.
 *
 * The referenced node itself is not considered in the search.
 */
55
NodePath NodePath::find(std::string const &path) const;

2421 12 find_path_to 0 4 3645 22 NodePath::find_path_to 0 1 512 115
/**
 * Searches for the indicated node below this node and returns the shortest
 * NodePath that connects them.
 */
55
NodePath NodePath::find_path_to(PandaNode *node) const;

2422 16 find_all_matches 0 4 3645 26 NodePath::find_all_matches 0 1 513 222
/**
 * Returns the complete set of all NodePaths that begin with this NodePath and
 * can be extended by path.  The shortest paths will be listed first.
 *
 * The referenced node itself is not considered in the search.
 */
77
NodePathCollection NodePath::find_all_matches(std::string const &path) const;

2423 17 find_all_paths_to 0 4 3645 27 NodePath::find_all_paths_to 0 1 514 147
/**
 * Returns the set of all NodePaths that extend from this NodePath down to the
 * indicated node.  The shortest paths will be listed first.
 */
70
NodePathCollection NodePath::find_all_paths_to(PandaNode *node) const;

2424 11 reparent_to 0 4 3645 21 NodePath::reparent_to 0 1 515 711
// Methods that actually move nodes around in the scene graph.  The optional
// "sort" parameter can be used to force a particular ordering between
// sibling nodes, useful when dealing with LOD's and similar switch nodes.
// If the sort value is the same, nodes will be arranged in the order they
// were added.

/**
 * Removes the referenced node of the NodePath from its current parent and
 * attaches it to the referenced node of the indicated NodePath.
 *
 * If the destination NodePath is empty, this is the same thing as
 * detach_node().
 *
 * If the referenced node is already a child of the indicated NodePath (via
 * some other instance), this operation fails and leaves the NodePath
 * detached.
 */
119
void NodePath::reparent_to(NodePath const &other, int sort = 0, Thread *current_thread = Thread::get_current_thread());

2425 8 stash_to 0 4 3645 18 NodePath::stash_to 0 1 516 189
/**
 * Similar to reparent_to(), but the node is added to its new parent's stashed
 * list, so that the result is equivalent to calling reparent_to() immediately
 * followed by stash().
 */
116
void NodePath::stash_to(NodePath const &other, int sort = 0, Thread *current_thread = Thread::get_current_thread());

2426 15 wrt_reparent_to 0 4 3645 25 NodePath::wrt_reparent_to 0 1 517 238
/**
 * This functions identically to reparent_to(), except the transform on this
 * node is also adjusted so that the node remains in the same place in world
 * coordinates, even if it is reparented into a different coordinate system.
 */
123
void NodePath::wrt_reparent_to(NodePath const &other, int sort = 0, Thread *current_thread = Thread::get_current_thread());

2427 11 instance_to 0 4 3645 21 NodePath::instance_to 0 1 518 962
/**
 * Adds the referenced node of the NodePath as a child of the referenced node
 * of the indicated other NodePath.  Any other parent-child relations of the
 * node are unchanged; in particular, the node is not removed from its
 * existing parent, if any.
 *
 * If the node already had an existing parent, this method will create a new
 * instance of the node within the scene graph.
 *
 * This does not change the NodePath itself, but does return a new NodePath
 * that reflects the new instance node.
 *
 * If the destination NodePath is empty, this creates a new instance which is
 * not yet parented to any node.  A new instance of this sort cannot easily be
 * differentiated from other similar instances, but it is nevertheless a
 * different instance and it will return a different get_id() value.
 *
 * If the referenced node is already a child of the indicated NodePath,
 * returns that already-existing instance, unstashing it first if necessary.
 */
129
NodePath NodePath::instance_to(NodePath const &other, int sort = 0, Thread *current_thread = Thread::get_current_thread()) const;

2428 19 instance_under_node 0 4 3645 29 NodePath::instance_under_node 0 1 519 236
/**
 * Behaves like instance_to(), but implicitly creates a new node to instance
 * the geometry under, and returns a NodePath to that new node.  This allows
 * the programmer to set a unique state and/or transform on this instance.
 */
162
NodePath NodePath::instance_under_node(NodePath const &other, std::string const &name, int sort = 0, Thread *current_thread = Thread::get_current_thread()) const;

2429 7 copy_to 0 4 3645 17 NodePath::copy_to 0 1 520 221
/**
 * Functions like instance_to(), except a deep copy is made of the referenced
 * node and all of its descendents, which is then parented to the indicated
 * node.  A NodePath to the newly created copy is returned.
 */
125
NodePath NodePath::copy_to(NodePath const &other, int sort = 0, Thread *current_thread = Thread::get_current_thread()) const;

2430 15 attach_new_node 0 4 3645 25 NodePath::attach_new_node 0 2 521 522 588
/**
 * Creates an ordinary PandaNode and attaches it below the current NodePath,
 * returning a new NodePath that references it.
 */

/**
 * Attaches a new node, with or without existing parents, to the scene graph
 * below the referenced node of this NodePath.  This is the preferred way to
 * add nodes to the graph.
 *
 * If the node was already a child of the parent, this returns a NodePath to
 * the existing child.
 *
 * This does *not* automatically extend the current NodePath to reflect the
 * attachment; however, a NodePath that does reflect this extension is
 * returned.
 */
270
NodePath NodePath::attach_new_node(PandaNode *node, int sort = 0, Thread *current_thread = Thread::get_current_thread()) const;
inline NodePath NodePath::attach_new_node(std::string const &name, int sort = 0, Thread *current_thread = Thread::get_current_thread()) const;

2431 11 remove_node 0 4 3645 21 NodePath::remove_node 0 1 523 754
/**
 * Disconnects the referenced node from the scene graph.  This will also
 * delete the node if there are no other pointers to it.
 *
 * Normally, this should be called only when you are really done with the
 * node.  If you want to remove a node from the scene graph but keep it around
 * for later, you should probably use detach_node() instead.
 *
 * In practice, the only difference between remove_node() and detach_node() is
 * that remove_node() also resets the NodePath to empty, which will cause the
 * node to be deleted immediately if there are no other references.  On the
 * other hand, detach_node() leaves the NodePath referencing the node, which
 * will keep at least one reference to the node for as long as the NodePath
 * exists.
 */
82
void NodePath::remove_node(Thread *current_thread = Thread::get_current_thread());

2432 11 detach_node 0 4 3645 21 NodePath::detach_node 0 1 524 735
/**
 * Disconnects the referenced node from its parent, but does not immediately
 * delete it.  The NodePath retains a pointer to the node, and becomes a
 * singleton NodePath.
 *
 * This should be called to detach a node from the scene graph, with the
 * option of reattaching it later to the same parent or to a different parent.
 *
 * In practice, the only difference between remove_node() and detach_node() is
 * that remove_node() also resets the NodePath to empty, which will cause the
 * node to be deleted immediately if there are no other references.  On the
 * other hand, detach_node() leaves the NodePath referencing the node, which
 * will keep at least one reference to the node for as long as the NodePath
 * exists.
 */
82
void NodePath::detach_node(Thread *current_thread = Thread::get_current_thread());

2433 6 output 0 4 3645 16 NodePath::output 0 1 525 91
/**
 * Writes a sensible description of the NodePath to the indicated output
 * stream.
 */
47
void NodePath::output(std::ostream &out) const;

2434 2 ls 0 4 3645 12 NodePath::ls 0 2 526 527 130
/**
 * Lists the hierarchy at and below the referenced node.
 */

/**
 * Lists the hierarchy at and below the referenced node.
 */
110
inline void NodePath::ls(void) const;
inline void NodePath::ls(std::ostream &out, int indent_level = 0) const;

2435 10 reverse_ls 0 4 3645 20 NodePath::reverse_ls 0 2 528 529 130
/**
 * Lists the hierarchy at and above the referenced node.
 */

/**
 * Lists the hierarchy at and above the referenced node.
 */
118
inline void NodePath::reverse_ls(void) const;
int NodePath::reverse_ls(std::ostream &out, int indent_level = 0) const;

2436 9 get_state 0 4 3645 19 NodePath::get_state 0 2 530 531 256
// Aggregate transform and state information.

/**
 * Returns the complete state object set on this node.
 */

/**
 * Returns the state changes that must be made to transition to the render
 * state of this node from the render state of the other node.
 */
235
RenderState const *NodePath::get_state(Thread *current_thread = Thread::get_current_thread()) const;
ConstPointerTo< RenderState > NodePath::get_state(NodePath const &other, Thread *current_thread = Thread::get_current_thread()) const;

2437 9 set_state 0 4 3645 19 NodePath::set_state 0 2 532 533 240
/**
 * Changes the complete state object on this node.
 */

/**
 * Sets the state object on this node, relative to the other node.  This
 * computes a new state object that will have the indicated value when seen
 * from the other node.
 */
243
inline void NodePath::set_state(RenderState const *state, Thread *current_thread = Thread::get_current_thread());
void NodePath::set_state(NodePath const &other, RenderState const *state, Thread *current_thread = Thread::get_current_thread());

2438 13 get_net_state 0 4 3645 23 NodePath::get_net_state 0 1 534 60
/**
 * Returns the net state on this node from the root.
 */
122
inline ConstPointerTo< RenderState > NodePath::get_net_state(Thread *current_thread = Thread::get_current_thread()) const;

2439 10 set_attrib 0 4 3645 20 NodePath::set_attrib 0 1 535 220
/**
 * Adds the indicated render attribute to the scene graph on this node.  This
 * attribute will now apply to this node and everything below.  If there was
 * already an attribute of the same type, it is replaced.
 */
79
inline void NodePath::set_attrib(RenderAttrib const *attrib, int priority = 0);

2440 10 get_attrib 0 4 3645 20 NodePath::get_attrib 0 1 536 270
/**
 * Returns the render attribute of the indicated type, if it is defined on the
 * node, or NULL if it is not.  This checks only what is set on this
 * particular node level, and has nothing to do with what render attributes
 * may be inherited from parent nodes.
 */
71
inline RenderAttrib const *NodePath::get_attrib(TypeHandle type) const;

2441 10 has_attrib 0 4 3645 20 NodePath::has_attrib 0 1 537 127
/**
 * Returns true if there is a render attribute of the indicated type defined
 * on this node, or false if there is not.
 */
56
inline bool NodePath::has_attrib(TypeHandle type) const;

2442 12 clear_attrib 0 4 3645 22 NodePath::clear_attrib 0 1 538 194
/**
 * Removes the render attribute of the given type from this node.  This node,
 * and the subgraph below, will now inherit the indicated render attribute
 * from the nodes above this one.
 */
52
inline void NodePath::clear_attrib(TypeHandle type);

2443 10 set_effect 0 4 3645 20 NodePath::set_effect 0 1 539 145
/**
 * Adds the indicated render effect to the scene graph on this node.  If there
 * was already an effect of the same type, it is replaced.
 */
61
inline void NodePath::set_effect(RenderEffect const *effect);

2444 10 get_effect 0 4 3645 20 NodePath::get_effect 0 1 540 114
/**
 * Returns the render effect of the indicated type, if it is defined on the
 * node, or NULL if it is not.
 */
71
inline RenderEffect const *NodePath::get_effect(TypeHandle type) const;

2445 10 has_effect 0 4 3645 20 NodePath::has_effect 0 1 541 124
/**
 * Returns true if there is a render effect of the indicated type defined on
 * this node, or false if there is not.
 */
56
inline bool NodePath::has_effect(TypeHandle type) const;

2446 12 clear_effect 0 4 3645 22 NodePath::clear_effect 0 1 542 70
/**
 * Removes the render effect of the given type from this node.
 */
52
inline void NodePath::clear_effect(TypeHandle type);

2447 11 set_effects 0 4 3645 21 NodePath::set_effects 0 1 543 177
/**
 * Sets the complete RenderEffects that will be applied this node.  This
 * completely replaces whatever has been set on this node via repeated calls
 * to set_attrib().
 */
64
inline void NodePath::set_effects(RenderEffects const *effects);

2448 11 get_effects 0 4 3645 21 NodePath::get_effects 0 1 544 80
/**
 * Returns the complete RenderEffects that will be applied to this node.
 */
62
inline RenderEffects const *NodePath::get_effects(void) const;

2449 13 clear_effects 0 4 3645 23 NodePath::clear_effects 0 1 545 54
/**
 * Resets this node to have no render effects.
 */
42
inline void NodePath::clear_effects(void);

2450 13 get_transform 0 4 3645 23 NodePath::get_transform 0 2 546 547 213
/**
 * Returns the complete transform object set on this node.
 */

/**
 * Returns the relative transform to this node from the other node; i.e.  the
 * transformation of this node as seen from the other node.
 */
249
TransformState const *NodePath::get_transform(Thread *current_thread = Thread::get_current_thread()) const;
ConstPointerTo< TransformState > NodePath::get_transform(NodePath const &other, Thread *current_thread = Thread::get_current_thread()) const;

2451 15 clear_transform 0 4 3645 25 NodePath::clear_transform 0 2 548 549 235
/**
 * Sets the transform object on this node to identity.
 */

/**
 * Sets the transform object on this node to identity, relative to the other
 * node.  This effectively places this node at the same position as the other
 * node.
 */
210
inline void NodePath::clear_transform(Thread *current_thread = Thread::get_current_thread());
inline void NodePath::clear_transform(NodePath const &other, Thread *current_thread = Thread::get_current_thread());

2452 13 set_transform 0 4 3645 23 NodePath::set_transform 0 2 550 551 252
/**
 * Changes the complete transform object on this node.
 */

/**
 * Sets the transform object on this node, relative to the other node.  This
 * computes a new transform object that will have the indicated value when
 * seen from the other node.
 */
265
inline void NodePath::set_transform(TransformState const *transform, Thread *current_thread = Thread::get_current_thread());
void NodePath::set_transform(NodePath const &other, TransformState const *transform, Thread *current_thread = Thread::get_current_thread());

2453 17 get_net_transform 0 4 3645 27 NodePath::get_net_transform 0 1 552 64
/**
 * Returns the net transform on this node from the root.
 */
129
inline ConstPointerTo< TransformState > NodePath::get_net_transform(Thread *current_thread = Thread::get_current_thread()) const;

2454 18 get_prev_transform 0 4 3645 28 NodePath::get_prev_transform 0 2 553 554 313
/**
 * Returns the transform that has been set as this node's "previous" position.
 * See set_prev_transform().
 */

/**
 * Returns the relative "previous" transform to this node from the other node;
 * i.e.  the position of this node in the previous frame, as seen by the other
 * node in the previous frame.
 */
259
TransformState const *NodePath::get_prev_transform(Thread *current_thread = Thread::get_current_thread()) const;
ConstPointerTo< TransformState > NodePath::get_prev_transform(NodePath const &other, Thread *current_thread = Thread::get_current_thread()) const;

2455 18 set_prev_transform 0 4 3645 28 NodePath::set_prev_transform 0 2 555 556 374
/**
 * Sets the transform that represents this node's "previous" position, one
 * frame ago, for the purposes of detecting motion for accurate collision
 * calculations.
 */

/**
 * Sets the "previous" transform object on this node, relative to the other
 * node.  This computes a new transform object that will have the indicated
 * value when seen from the other node.
 */
275
inline void NodePath::set_prev_transform(TransformState const *transform, Thread *current_thread = Thread::get_current_thread());
void NodePath::set_prev_transform(NodePath const &other, TransformState const *transform, Thread *current_thread = Thread::get_current_thread());

2456 22 get_net_prev_transform 0 4 3645 32 NodePath::get_net_prev_transform 0 1 557 105
/**
 * Returns the net "previous" transform on this node from the root.  See
 * set_prev_transform().
 */
134
inline ConstPointerTo< TransformState > NodePath::get_net_prev_transform(Thread *current_thread = Thread::get_current_thread()) const;

2457 7 set_pos 0 4 3645 17 NodePath::set_pos 0 4 558 559 560 561 806
/**
 * Sets the translation component of the transform, leaving rotation and scale
 * untouched.  This also resets the node's "previous" position, so that the
 * collision system will see the node as having suddenly appeared in the new
 * position, without passing any points in between.
 */

/**
 * Sets the translation component of the transform, relative to the other
 * node.
 */

/**
 * Sets the translation component of the transform, leaving rotation and scale
 * untouched.  This also resets the node's "previous" position, so that the
 * collision system will see the node as having suddenly appeared in the new
 * position, without passing any points in between.  See Also:
 * NodePath::set_fluid_pos
 */

/**
 * Sets the translation component of the transform, relative to the other
 * node.
 */
289
inline void NodePath::set_pos(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z);
void NodePath::set_pos(LVecBase3 const &pos);
inline void NodePath::set_pos(NodePath const &other, PN_stdfloat x, PN_stdfloat y, PN_stdfloat z);
void NodePath::set_pos(NodePath const &other, LVecBase3 const &pos);

2458 5 set_x 0 4 3645 15 NodePath::set_x 0 2 562 563 115
/**
 * Sets the X component of the position transform, leaving other components
 * untouched.
 * @see set_pos()
 */
96
void NodePath::set_x(PN_stdfloat x);
void NodePath::set_x(NodePath const &other, PN_stdfloat x);

2459 5 set_y 0 4 3645 15 NodePath::set_y 0 2 564 565 115
/**
 * Sets the Y component of the position transform, leaving other components
 * untouched.
 * @see set_pos()
 */
96
void NodePath::set_y(PN_stdfloat y);
void NodePath::set_y(NodePath const &other, PN_stdfloat y);

2460 5 set_z 0 4 3645 15 NodePath::set_z 0 2 566 567 115
/**
 * Sets the Z component of the position transform, leaving other components
 * untouched.
 * @see set_pos()
 */
96
void NodePath::set_z(PN_stdfloat z);
void NodePath::set_z(NodePath const &other, PN_stdfloat z);

2461 13 set_fluid_pos 0 4 3645 23 NodePath::set_fluid_pos 0 4 568 569 570 571 734
/**
 * Sets the translation component, without changing the "previous" position,
 * so that the collision system will see the node as moving fluidly from its
 * previous position to its new position.
 */

/**
 * Sets the translation component, without changing the "previous" position,
 * so that the collision system will see the node as moving fluidly from its
 * previous position to its new position.
 */

/**
 * Sets the translation component, without changing the "previous" position,
 * so that the collision system will see the node as moving fluidly from its
 * previous position to its new position.  See Also: NodePath::set_pos
 */

/**
 * Sets the translation component of the transform, relative to the other
 * node.
 */
313
inline void NodePath::set_fluid_pos(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z);
void NodePath::set_fluid_pos(LVecBase3 const &pos);
inline void NodePath::set_fluid_pos(NodePath const &other, PN_stdfloat x, PN_stdfloat y, PN_stdfloat z);
void NodePath::set_fluid_pos(NodePath const &other, LVecBase3 const &pos);

2462 11 set_fluid_x 0 4 3645 21 NodePath::set_fluid_x 0 2 572 573 0
108
void NodePath::set_fluid_x(PN_stdfloat x);
void NodePath::set_fluid_x(NodePath const &other, PN_stdfloat x);

2463 11 set_fluid_y 0 4 3645 21 NodePath::set_fluid_y 0 2 574 575 0
108
void NodePath::set_fluid_y(PN_stdfloat y);
void NodePath::set_fluid_y(NodePath const &other, PN_stdfloat y);

2464 11 set_fluid_z 0 4 3645 21 NodePath::set_fluid_z 0 2 576 577 0
108
void NodePath::set_fluid_z(PN_stdfloat z);
void NodePath::set_fluid_z(NodePath const &other, PN_stdfloat z);

2465 7 get_pos 0 4 3645 17 NodePath::get_pos 0 2 578 579 161
/**
 * Retrieves the translation component of the transform.
 */

/**
 * Returns the relative position of the referenced node as seen from the other
 * node.
 */
94
LPoint3 NodePath::get_pos(void) const;
LPoint3 NodePath::get_pos(NodePath const &other) const;

2466 5 get_x 0 4 3645 15 NodePath::get_x 0 2 580 581 0
112
inline PN_stdfloat NodePath::get_x(void) const;
inline PN_stdfloat NodePath::get_x(NodePath const &other) const;

2467 5 get_y 0 4 3645 15 NodePath::get_y 0 2 582 583 0
112
inline PN_stdfloat NodePath::get_y(void) const;
inline PN_stdfloat NodePath::get_y(NodePath const &other) const;

2468 5 get_z 0 4 3645 15 NodePath::get_z 0 2 584 585 0
112
inline PN_stdfloat NodePath::get_z(void) const;
inline PN_stdfloat NodePath::get_z(NodePath const &other) const;

2469 13 get_pos_delta 0 4 3645 23 NodePath::get_pos_delta 0 2 586 587 990
/**
 * Returns the delta vector from this node's position in the previous frame
 * (according to set_prev_transform(), typically set via the use of
 * set_fluid_pos()) and its position in the current frame.  This is the vector
 * used to determine collisions.  Generally, if the node was last repositioned
 * via set_pos(), the delta will be zero; if it was adjusted via
 * set_fluid_pos(), the delta will represent the change from the previous
 * frame's position.
 */

/**
 * Returns the delta vector from this node's position in the previous frame
 * (according to set_prev_transform(), typically set via the use of
 * set_fluid_pos()) and its position in the current frame, as seen in the
 * indicated node's coordinate space.  This is the vector used to determine
 * collisions.  Generally, if the node was last repositioned via set_pos(),
 * the delta will be zero; if it was adjusted via set_fluid_pos(), the delta
 * will represent the change from the previous frame's position.
 */
108
LVector3 NodePath::get_pos_delta(void) const;
LVector3 NodePath::get_pos_delta(NodePath const &other) const;

2470 7 set_hpr 0 4 3645 17 NodePath::set_hpr 0 4 588 589 590 591 374
/**
 * Sets the rotation component of the transform, leaving translation and scale
 * untouched.
 */

/**
 * Sets the rotation component of the transform, relative to the other node.
 */

/**
 * Sets the rotation component of the transform, leaving translation and scale
 * untouched.
 */

/**
 * Sets the rotation component of the transform, relative to the other node.
 */
289
inline void NodePath::set_hpr(PN_stdfloat h, PN_stdfloat p, PN_stdfloat r);
void NodePath::set_hpr(LVecBase3 const &hpr);
inline void NodePath::set_hpr(NodePath const &other, PN_stdfloat h, PN_stdfloat p, PN_stdfloat r);
void NodePath::set_hpr(NodePath const &other, LVecBase3 const &hpr);

2471 5 set_h 0 4 3645 15 NodePath::set_h 0 2 592 593 0
96
void NodePath::set_h(PN_stdfloat h);
void NodePath::set_h(NodePath const &other, PN_stdfloat h);

2472 5 set_p 0 4 3645 15 NodePath::set_p 0 2 594 595 0
96
void NodePath::set_p(PN_stdfloat p);
void NodePath::set_p(NodePath const &other, PN_stdfloat p);

2473 5 set_r 0 4 3645 15 NodePath::set_r 0 2 596 597 0
96
void NodePath::set_r(PN_stdfloat r);
void NodePath::set_r(NodePath const &other, PN_stdfloat r);

2474 7 get_hpr 0 4 3645 17 NodePath::get_hpr 0 2 598 599 157
/**
 * Retrieves the rotation component of the transform.
 */

/**
 * Returns the relative orientation of the bottom node as seen from the other
 * node.
 */
98
LVecBase3 NodePath::get_hpr(void) const;
LVecBase3 NodePath::get_hpr(NodePath const &other) const;

2475 5 get_h 0 4 3645 15 NodePath::get_h 0 2 600 601 0
112
inline PN_stdfloat NodePath::get_h(void) const;
inline PN_stdfloat NodePath::get_h(NodePath const &other) const;

2476 5 get_p 0 4 3645 15 NodePath::get_p 0 2 602 603 0
112
inline PN_stdfloat NodePath::get_p(void) const;
inline PN_stdfloat NodePath::get_p(NodePath const &other) const;

2477 5 get_r 0 4 3645 15 NodePath::get_r 0 2 604 605 0
112
inline PN_stdfloat NodePath::get_r(void) const;
inline PN_stdfloat NodePath::get_r(NodePath const &other) const;

2478 8 set_quat 0 4 3645 18 NodePath::set_quat 0 2 606 607 186
/**
 * Sets the rotation component of the transform, leaving translation and scale
 * untouched.
 */

/**
 * Sets the rotation component of the transform, relative to the other node.
 */
122
void NodePath::set_quat(LQuaternion const &quat);
void NodePath::set_quat(NodePath const &other, LQuaternion const &quat);

2479 8 get_quat 0 4 3645 18 NodePath::get_quat 0 2 608 609 157
/**
 * Retrieves the rotation component of the transform.
 */

/**
 * Returns the relative orientation of the bottom node as seen from the other
 * node.
 */
104
LQuaternion NodePath::get_quat(void) const;
LQuaternion NodePath::get_quat(NodePath const &other) const;

2480 9 set_scale 0 4 3645 19 NodePath::set_scale 0 6 610 611 612 613 614 615 451
/**
 * Sets the scale component of the transform, leaving translation and rotation
 * untouched.
 */

/**
 * Sets the scale component of the transform, relative to the other node.
 */

/**
 * Sets the scale component of the transform, relative to the other node.
 */

/**
 * Sets the scale component of the transform, leaving translation and rotation
 * untouched.
 */

/**
 * Sets the scale component of the transform, relative to the other node.
 */
434
inline void NodePath::set_scale(PN_stdfloat scale);
inline void NodePath::set_scale(PN_stdfloat sx, PN_stdfloat sy, PN_stdfloat sz);
void NodePath::set_scale(LVecBase3 const &scale);
inline void NodePath::set_scale(NodePath const &other, PN_stdfloat scale);
inline void NodePath::set_scale(NodePath const &other, PN_stdfloat sx, PN_stdfloat sy, PN_stdfloat sz);
void NodePath::set_scale(NodePath const &other, LVecBase3 const &scale);

2481 6 set_sx 0 4 3645 16 NodePath::set_sx 0 2 616 617 114
/**
 * Sets the x-scale component of the transform, leaving other components
 * untouched.
 * @see set_scale()
 */
100
void NodePath::set_sx(PN_stdfloat sx);
void NodePath::set_sx(NodePath const &other, PN_stdfloat sx);

2482 6 set_sy 0 4 3645 16 NodePath::set_sy 0 2 618 619 114
/**
 * Sets the y-scale component of the transform, leaving other components
 * untouched.
 * @see set_scale()
 */
100
void NodePath::set_sy(PN_stdfloat sy);
void NodePath::set_sy(NodePath const &other, PN_stdfloat sy);

2483 6 set_sz 0 4 3645 16 NodePath::set_sz 0 2 620 621 114
/**
 * Sets the z-scale component of the transform, leaving other components
 * untouched.
 * @see set_scale()
 */
100
void NodePath::set_sz(PN_stdfloat sz);
void NodePath::set_sz(NodePath const &other, PN_stdfloat sz);

2484 9 get_scale 0 4 3645 19 NodePath::get_scale 0 2 622 623 145
/**
 * Retrieves the scale component of the transform.
 */

/**
 * Returns the relative scale of the bottom node as seen from the other node.
 */
102
LVecBase3 NodePath::get_scale(void) const;
LVecBase3 NodePath::get_scale(NodePath const &other) const;

2485 6 get_sx 0 4 3645 16 NodePath::get_sx 0 2 624 625 92
/**
 * Returns the relative scale of the referenced node as seen from the other
 * node.
 */
114
inline PN_stdfloat NodePath::get_sx(void) const;
inline PN_stdfloat NodePath::get_sx(NodePath const &other) const;

2486 6 get_sy 0 4 3645 16 NodePath::get_sy 0 2 626 627 0
114
inline PN_stdfloat NodePath::get_sy(void) const;
inline PN_stdfloat NodePath::get_sy(NodePath const &other) const;

2487 6 get_sz 0 4 3645 16 NodePath::get_sz 0 2 628 629 0
114
inline PN_stdfloat NodePath::get_sz(void) const;
inline PN_stdfloat NodePath::get_sz(NodePath const &other) const;

2488 9 set_shear 0 4 3645 19 NodePath::set_shear 0 4 630 631 632 633 376
/**
 * Sets the shear component of the transform, leaving translation, rotation,
 * and scale untouched.
 */

/**
 * Sets the shear component of the transform, relative to the other node.
 */

/**
 * Sets the shear component of the transform, leaving translation and rotation
 * untouched.
 */

/**
 * Sets the shear component of the transform, relative to the other node.
 */
319
inline void NodePath::set_shear(PN_stdfloat shxy, PN_stdfloat shxz, PN_stdfloat shyz);
void NodePath::set_shear(LVecBase3 const &shear);
inline void NodePath::set_shear(NodePath const &other, PN_stdfloat shxy, PN_stdfloat shxz, PN_stdfloat shyz);
void NodePath::set_shear(NodePath const &other, LVecBase3 const &shear);

2489 8 set_shxy 0 4 3645 18 NodePath::set_shxy 0 2 634 635 0
108
void NodePath::set_shxy(PN_stdfloat shxy);
void NodePath::set_shxy(NodePath const &other, PN_stdfloat shxy);

2490 8 set_shxz 0 4 3645 18 NodePath::set_shxz 0 2 636 637 0
108
void NodePath::set_shxz(PN_stdfloat shxz);
void NodePath::set_shxz(NodePath const &other, PN_stdfloat shxz);

2491 8 set_shyz 0 4 3645 18 NodePath::set_shyz 0 2 638 639 0
108
void NodePath::set_shyz(PN_stdfloat shyz);
void NodePath::set_shyz(NodePath const &other, PN_stdfloat shyz);

2492 9 get_shear 0 4 3645 19 NodePath::get_shear 0 2 640 641 145
/**
 * Retrieves the shear component of the transform.
 */

/**
 * Returns the relative shear of the bottom node as seen from the other node.
 */
102
LVecBase3 NodePath::get_shear(void) const;
LVecBase3 NodePath::get_shear(NodePath const &other) const;

2493 8 get_shxy 0 4 3645 18 NodePath::get_shxy 0 2 642 643 92
/**
 * Returns the relative shear of the referenced node as seen from the other
 * node.
 */
118
inline PN_stdfloat NodePath::get_shxy(void) const;
inline PN_stdfloat NodePath::get_shxy(NodePath const &other) const;

2494 8 get_shxz 0 4 3645 18 NodePath::get_shxz 0 2 644 645 0
118
inline PN_stdfloat NodePath::get_shxz(void) const;
inline PN_stdfloat NodePath::get_shxz(NodePath const &other) const;

2495 8 get_shyz 0 4 3645 18 NodePath::get_shyz 0 2 646 647 0
118
inline PN_stdfloat NodePath::get_shyz(void) const;
inline PN_stdfloat NodePath::get_shyz(NodePath const &other) const;

2496 11 set_pos_hpr 0 4 3645 21 NodePath::set_pos_hpr 0 4 648 649 650 651 412
/**
 * Sets the translation and rotation component of the transform, leaving scale
 * untouched.
 */

/**
 * Sets the translation and rotation component of the transform, relative to
 * the other node.
 */

/**
 * Sets the translation and rotation component of the transform, leaving scale
 * untouched.
 */

/**
 * Sets the translation and rotation component of the transform, relative to
 * the other node.
 */
439
inline void NodePath::set_pos_hpr(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z, PN_stdfloat h, PN_stdfloat p, PN_stdfloat r);
void NodePath::set_pos_hpr(LVecBase3 const &pos, LVecBase3 const &hpr);
inline void NodePath::set_pos_hpr(NodePath const &other, PN_stdfloat x, PN_stdfloat y, PN_stdfloat z, PN_stdfloat h, PN_stdfloat p, PN_stdfloat r);
void NodePath::set_pos_hpr(NodePath const &other, LVecBase3 const &pos, LVecBase3 const &hpr);

2497 12 set_pos_quat 0 4 3645 22 NodePath::set_pos_quat 0 2 652 653 205
/**
 * Sets the translation and rotation component of the transform, leaving scale
 * untouched.
 */

/**
 * Sets the translation and rotation component of the transform, relative to
 * the other node.
 */
174
void NodePath::set_pos_quat(LVecBase3 const &pos, LQuaternion const &quat);
void NodePath::set_pos_quat(NodePath const &other, LVecBase3 const &pos, LQuaternion const &quat);

2498 13 set_hpr_scale 0 4 3645 23 NodePath::set_hpr_scale 0 4 654 655 656 657 646
/**
 * Sets the rotation and scale components of the transform, leaving
 * translation untouched.
 */

/**
 * Sets the rotation and scale components of the transform, leaving
 * translation untouched.  This, or set_pos_hpr_scale, is the preferred way to
 * update a transform when both hpr and scale are to be changed.
 */

/**
 * Sets the rotation and scale components of the transform, leaving
 * translation untouched.
 */

/**
 * Sets the rotation and scale components of the transform, leaving
 * translation untouched.  This, or set_pos_hpr_scale, is the preferred way to
 * update a transform when both hpr and scale are to be changed.
 */
457
inline void NodePath::set_hpr_scale(PN_stdfloat h, PN_stdfloat p, PN_stdfloat r, PN_stdfloat sx, PN_stdfloat sy, PN_stdfloat sz);
void NodePath::set_hpr_scale(LVecBase3 const &hpr, LVecBase3 const &scale);
inline void NodePath::set_hpr_scale(NodePath const &other, PN_stdfloat h, PN_stdfloat p, PN_stdfloat r, PN_stdfloat sx, PN_stdfloat sy, PN_stdfloat sz);
void NodePath::set_hpr_scale(NodePath const &other, LVecBase3 const &hpr, LVecBase3 const &scale);

2499 14 set_quat_scale 0 4 3645 24 NodePath::set_quat_scale 0 2 658 659 324
/**
 * Sets the rotation and scale components of the transform, leaving
 * translation untouched.
 */

/**
 * Sets the rotation and scale components of the transform, leaving
 * translation untouched.  This, or set_pos_quat_scale, is the preferred way
 * to update a transform when both quat and scale are to be changed.
 */
182
void NodePath::set_quat_scale(LQuaternion const &quat, LVecBase3 const &scale);
void NodePath::set_quat_scale(NodePath const &other, LQuaternion const &quat, LVecBase3 const &scale);

2500 17 set_pos_hpr_scale 0 4 3645 27 NodePath::set_pos_hpr_scale 0 4 660 661 662 663 498
/**
 * Completely replaces the transform with new translation, rotation, and scale
 * components.
 */

/**
 * Completely replaces the transform with new translation, rotation, and scale
 * components, relative to the other node.
 */

/**
 * Replaces the translation, rotation, and scale components, implicitly
 * setting shear to 0.
 */

/**
 * Completely replaces the transform with new translation, rotation, and scale
 * components, relative to the other node, implicitly setting shear to 0.
 */
607
inline void NodePath::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);
void NodePath::set_pos_hpr_scale(LVecBase3 const &pos, LVecBase3 const &hpr, LVecBase3 const &scale);
inline void NodePath::set_pos_hpr_scale(NodePath const &other, 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);
void NodePath::set_pos_hpr_scale(NodePath const &other, LVecBase3 const &pos, LVecBase3 const &hpr, LVecBase3 const &scale);

2501 18 set_pos_quat_scale 0 4 3645 28 NodePath::set_pos_quat_scale 0 2 664 665 264
/**
 * Replaces the translation, rotation, and scale components, implicitly
 * setting shear to 0.
 */

/**
 * Completely replaces the transform with new translation, rotation, and scale
 * components, relative to the other node, implicitly setting shear to 0.
 */
234
void NodePath::set_pos_quat_scale(LVecBase3 const &pos, LQuaternion const &quat, LVecBase3 const &scale);
void NodePath::set_pos_quat_scale(NodePath const &other, LVecBase3 const &pos, LQuaternion const &quat, LVecBase3 const &scale);

2502 23 set_pos_hpr_scale_shear 0 4 3645 33 NodePath::set_pos_hpr_scale_shear 0 2 666 667 246
/**
 * Completely replaces the transform with new translation, rotation, scale,
 * and shear components.
 */

/**
 * Completely replaces the transform with new translation, rotation, scale,
 * and shear components, relative to the other node.
 */
286
void NodePath::set_pos_hpr_scale_shear(LVecBase3 const &pos, LVecBase3 const &hpr, LVecBase3 const &scale, LVecBase3 const &shear);
void NodePath::set_pos_hpr_scale_shear(NodePath const &other, LVecBase3 const &pos, LVecBase3 const &hpr, LVecBase3 const &scale, LVecBase3 const &shear);

2503 24 set_pos_quat_scale_shear 0 4 3645 34 NodePath::set_pos_quat_scale_shear 0 2 668 669 246
/**
 * Completely replaces the transform with new translation, rotation, scale,
 * and shear components.
 */

/**
 * Completely replaces the transform with new translation, rotation, scale,
 * and shear components, relative to the other node.
 */
294
void NodePath::set_pos_quat_scale_shear(LVecBase3 const &pos, LQuaternion const &quat, LVecBase3 const &scale, LVecBase3 const &shear);
void NodePath::set_pos_quat_scale_shear(NodePath const &other, LVecBase3 const &pos, LQuaternion const &quat, LVecBase3 const &scale, LVecBase3 const &shear);

2504 7 set_mat 0 4 3645 17 NodePath::set_mat 0 2 670 671 197
/**
 * Directly sets an arbitrary 4x4 transform matrix.
 */

/**
 * Converts the indicated matrix from the other's coordinate space to the
 * local coordinate space, and applies it to the node.
 */
112
void NodePath::set_mat(LMatrix4 const &mat);
void NodePath::set_mat(NodePath const &other, LMatrix4 const &mat);

2505 9 clear_mat 0 4 3645 19 NodePath::clear_mat 0 1 672 69
/**
 * Completely removes any transform from the referenced node.
 */
38
inline void NodePath::clear_mat(void);

2506 7 has_mat 0 4 3645 17 NodePath::has_mat 0 1 673 119
/**
 * Returns true if a non-identity transform matrix has been applied to the
 * referenced node, false otherwise.
 */
42
inline bool NodePath::has_mat(void) const;

2507 7 get_mat 0 4 3645 17 NodePath::get_mat 0 2 674 675 293
/**
 * Returns the transform matrix that has been applied to the referenced node,
 * or the identity matrix if no matrix has been applied.
 */

/**
 * Returns the matrix that describes the coordinate space of the bottom node,
 * relative to the other path's bottom node's coordinate space.
 */
110
inline LMatrix4 const &NodePath::get_mat(void) const;
LMatrix4 NodePath::get_mat(NodePath const &other) const;

2508 7 look_at 0 4 3645 17 NodePath::look_at 0 4 676 677 678 679 610
/**
 * Sets the transform on this NodePath so that it rotates to face the
 * indicated point in space.  This will overwrite any previously existing
 * scale on the node, although it will preserve any translation.
 */

/**
 * Sets the hpr on this NodePath so that it rotates to face the indicated
 * point in space, which is relative to the other NodePath.
 */

/**
 * Sets the hpr on this NodePath so that it rotates to face the indicated
 * point in space.
 */

/**
 * Sets the transform on this NodePath so that it rotates to face the
 * indicated point in space, which is relative to the other NodePath.
 */
388
inline void NodePath::look_at(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z);
void NodePath::look_at(LPoint3 const &point, LVector3 const &up = LVector3::up());
inline void NodePath::look_at(NodePath const &other, PN_stdfloat x, PN_stdfloat y, PN_stdfloat z);
void NodePath::look_at(NodePath const &other, LPoint3 const &point = LPoint3(0.0, 0.0, 0.0), LVector3 const &up = LVector3::up());

2509 8 heads_up 0 4 3645 18 NodePath::heads_up 0 4 680 681 682 683 538
/**
 * Behaves like look_at(), but with a strong preference to keeping the up
 * vector oriented in the indicated "up" direction.
 */

/**
 * Behaves like look_at(), but with a strong preference to keeping the up
 * vector oriented in the indicated "up" direction.
 */

/**
 * Behaves like look_at(), but with a strong preference to keeping the up
 * vector oriented in the indicated "up" direction.
 */

/**
 * Behaves like look_at(), but with a strong preference to keeping the up
 * vector oriented in the indicated "up" direction.
 */
392
inline void NodePath::heads_up(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z);
void NodePath::heads_up(LPoint3 const &point, LVector3 const &up = LVector3::up());
inline void NodePath::heads_up(NodePath const &other, PN_stdfloat x, PN_stdfloat y, PN_stdfloat z);
void NodePath::heads_up(NodePath const &other, LPoint3 const &point = LPoint3(0.0, 0.0, 0.0), LVector3 const &up = LVector3::up());

2510 18 get_relative_point 0 4 3645 28 NodePath::get_relative_point 0 1 684 148
/**
 * Given that the indicated point is in the coordinate system of the other
 * node, returns the same point in this node's coordinate system.
 */
90
LPoint3 NodePath::get_relative_point(NodePath const &other, LVecBase3 const &point) const;

2511 19 get_relative_vector 0 4 3645 29 NodePath::get_relative_vector 0 1 685 150
/**
 * Given that the indicated vector is in the coordinate system of the other
 * node, returns the same vector in this node's coordinate system.
 */
90
LVector3 NodePath::get_relative_vector(NodePath const &other, LVecBase3 const &vec) const;

2512 12 get_distance 0 4 3645 22 NodePath::get_distance 0 1 686 143
/**
 * Returns the straight-line distance between this referenced node's
 * coordinate frame's origin, and that of the other node's origin.
 */
71
inline PN_stdfloat NodePath::get_distance(NodePath const &other) const;

2513 9 set_color 0 4 3645 19 NodePath::set_color 0 2 687 688 380
/**
 * Applies a scene-graph color to the referenced node.  This color will apply
 * to all geometry at this level and below (that does not specify a new color
 * or a set_color_off()).
 */

/**
 * Applies a scene-graph color to the referenced node.  This color will apply
 * to all geometry at this level and below (that does not specify a new color
 * or a set_color_off()).
 */
174
void NodePath::set_color(PN_stdfloat r, PN_stdfloat g, PN_stdfloat b, PN_stdfloat a = 1.0, int priority = 0);
void NodePath::set_color(LColor const &color, int priority = 0);

2514 13 set_color_off 0 4 3645 23 NodePath::set_color_off 0 1 689 277
/**
 * Sets the geometry at this level and below to render using the geometry
 * color.  This is normally the default, but it may be useful to use this to
 * contradict set_color() at a higher node level (or, with a priority, to
 * override a set_color() at a lower level).
 */
47
void NodePath::set_color_off(int priority = 0);

2515 11 clear_color 0 4 3645 21 NodePath::clear_color 0 1 690 209
/**
 * Completely removes any color adjustment from the node.  This allows the
 * natural color of the geometry, or whatever color transitions might be
 * otherwise affecting the geometry, to show instead.
 */
33
void NodePath::clear_color(void);

2516 9 has_color 0 4 3645 19 NodePath::has_color 0 1 691 90
/**
 * Returns true if a color has been applied to the given node, false
 * otherwise.
 */
37
bool NodePath::has_color(void) const;

2517 9 get_color 0 4 3645 19 NodePath::get_color 0 1 692 107
/**
 * Returns the color that has been assigned to the node, or black if no color
 * has been assigned.
 */
39
LColor NodePath::get_color(void) const;

2518 15 has_color_scale 0 4 3645 25 NodePath::has_color_scale 0 1 693 194
/**
 * Returns true if a color scale has been applied to the referenced node,
 * false otherwise.  It is still possible that color at this node might have
 * been scaled by an ancestor node.
 */
43
bool NodePath::has_color_scale(void) const;

2519 17 clear_color_scale 0 4 3645 27 NodePath::clear_color_scale 0 1 694 221
/**
 * Completely removes any color scale from the referenced node.  This is
 * preferable to simply setting the color scale to identity, as it also
 * removes the overhead associated with having a color scale at all.
 */
39
void NodePath::clear_color_scale(void);

2520 15 set_color_scale 0 4 3645 25 NodePath::set_color_scale 0 2 695 696 166
/**
 * Sets the color scale component of the transform
 */

/**
 * Sets the color scale component of the transform, leaving translation and
 * rotation untouched.
 */
194
void NodePath::set_color_scale(LVecBase4 const &scale, int priority = 0);
inline void NodePath::set_color_scale(PN_stdfloat sx, PN_stdfloat sy, PN_stdfloat sz, PN_stdfloat sa, int priority = 0);

2521 19 compose_color_scale 0 4 3645 29 NodePath::compose_color_scale 0 2 697 698 198
/**
 * Sets the color scale component of the transform
 */

/**
 * multiplies the color scale component of the transform, with previous color
 * scale leaving translation and rotation untouched.
 */
202
void NodePath::compose_color_scale(LVecBase4 const &scale, int priority = 0);
inline void NodePath::compose_color_scale(PN_stdfloat sx, PN_stdfloat sy, PN_stdfloat sz, PN_stdfloat sa, int priority = 0);

2522 19 set_color_scale_off 0 4 3645 29 NodePath::set_color_scale_off 0 1 699 533
/**
 * Disables any color scale attribute inherited from above.  This is not the
 * same thing as clear_color_scale(), which undoes any previous
 * set_color_scale() operation on this node; rather, this actively disables
 * any set_color_scale() that might be inherited from a parent node.  This
 * also disables set_alpha_scale() at the same time.
 *
 * It is legal to specify a new color scale on the same node with a subsequent
 * call to set_color_scale() or set_alpha_scale(); this new scale will apply
 * to lower geometry.
 */
53
void NodePath::set_color_scale_off(int priority = 0);

2523 15 set_alpha_scale 0 4 3645 25 NodePath::set_alpha_scale 0 1 700 176
/**
 * Sets the alpha scale component of the transform without (much) affecting
 * the color scale.  Note that any priority specified will also apply to the
 * color scale.
 */
68
void NodePath::set_alpha_scale(PN_stdfloat scale, int priority = 0);

2524 19 set_all_color_scale 0 4 3645 29 NodePath::set_all_color_scale 0 1 701 206
/**
 * Scales all the color components of the object by the same amount, darkening
 * the object, without (much) affecting alpha.  Note that any priority
 * specified will also apply to the alpha scale.
 */
72
void NodePath::set_all_color_scale(PN_stdfloat scale, int priority = 0);

2525 6 set_sr 0 4 3645 16 NodePath::set_sr 0 1 702 79
/**
 * Sets the red component of the color scale.
 * @see set_color_scale()
 */
45
inline void NodePath::set_sr(PN_stdfloat sr);

2526 6 set_sg 0 4 3645 16 NodePath::set_sg 0 1 703 81
/**
 * Sets the green component of the color scale.
 * @see set_color_scale()
 */
45
inline void NodePath::set_sg(PN_stdfloat sg);

2527 6 set_sb 0 4 3645 16 NodePath::set_sb 0 1 704 80
/**
 * Sets the blue component of the color scale.
 * @see set_color_scale()
 */
45
inline void NodePath::set_sb(PN_stdfloat sb);

2528 6 set_sa 0 4 3645 16 NodePath::set_sa 0 1 705 81
/**
 * Sets the alpha component of the color scale.
 * @see set_color_scale()
 */
45
inline void NodePath::set_sa(PN_stdfloat sa);

2529 15 get_color_scale 0 4 3645 25 NodePath::get_color_scale 0 1 706 234
/**
 * Returns the complete color scale vector that has been applied to this node
 * via a previous call to set_color_scale() and/or set_alpha_scale(), or all
 * 1's (identity) if no scale has been applied to this particular node.
 */
55
LVecBase4 const &NodePath::get_color_scale(void) const;

2530 6 get_sr 0 4 3645 16 NodePath::get_sr 0 1 707 79
/**
 * Gets the red component of the color scale.
 * @see get_color_scale()
 */
48
inline PN_stdfloat NodePath::get_sr(void) const;

2531 6 get_sg 0 4 3645 16 NodePath::get_sg 0 1 708 81
/**
 * Gets the green component of the color scale.
 * @see get_color_scale()
 */
48
inline PN_stdfloat NodePath::get_sg(void) const;

2532 6 get_sb 0 4 3645 16 NodePath::get_sb 0 1 709 80
/**
 * Gets the blue component of the color scale.
 * @see get_color_scale()
 */
48
inline PN_stdfloat NodePath::get_sb(void) const;

2533 6 get_sa 0 4 3645 16 NodePath::get_sa 0 1 710 81
/**
 * Gets the alpha component of the color scale.
 * @see get_color_scale()
 */
48
inline PN_stdfloat NodePath::get_sa(void) const;

2534 9 set_light 0 4 3645 19 NodePath::set_light 0 1 711 309
/**
 * Adds the indicated Light or PolylightNode to the list of lights that
 * illuminate geometry at this node and below.  The light itself should be
 * parented into the scene graph elsewhere, to represent the light's position
 * in space; but until set_light() is called it will illuminate no geometry.
 */
66
void NodePath::set_light(NodePath const &light, int priority = 0);

2535 13 set_light_off 0 4 3645 23 NodePath::set_light_off 0 2 712 713 799
/**
 * Sets the geometry at this level and below to render using no lights at all.
 * This is different from not specifying a light; rather, this specifically
 * contradicts set_light() at a higher node level (or, with a priority,
 * overrides a set_light() at a lower level).
 *
 * If no lights are in effect on a particular piece of geometry, that geometry
 * is rendered with lighting disabled.
 */

/**
 * Sets the geometry at this level and below to render without using the
 * indicated Light.  This is different from not specifying the Light; rather,
 * this specifically contradicts set_light() at a higher node level (or, with
 * a priority, overrides a set_light() at a lower level).
 *
 * This interface does not support PolylightNodes, which cannot be turned off
 * at a lower level.
 */
118
void NodePath::set_light_off(int priority = 0);
void NodePath::set_light_off(NodePath const &light, int priority = 0);

2536 11 clear_light 0 4 3645 21 NodePath::clear_light 0 2 714 715 237
/**
 * Completely removes any lighting operations that may have been set via
 * set_light() or set_light_off() from this particular node.
 */

/**
 * Removes any reference to the indicated Light or PolylightNode from the
 * NodePath.
 */
84
void NodePath::clear_light(void);
void NodePath::clear_light(NodePath const &light);

2537 9 has_light 0 4 3645 19 NodePath::has_light 0 1 716 207
/**
 * Returns true if the indicated Light or PolylightNode has been specifically
 * enabled on this particular node.  This means that someone called
 * set_light() on this node with the indicated light.
 */
54
bool NodePath::has_light(NodePath const &light) const;

2538 13 has_light_off 0 4 3645 23 NodePath::has_light_off 0 2 717 718 480
/**
 * Returns true if all Lights have been specifically disabled on this
 * particular node.  This means that someone called set_light_off() on this
 * node with no parameters.
 */

/**
 * Returns true if the indicated Light has been specifically disabled on this
 * particular node.  This means that someone called set_light_off() on this
 * node with the indicated light.
 *
 * This interface does not support PolylightNodes, which cannot be turned off
 * at a lower level.
 */
100
bool NodePath::has_light_off(void) const;
bool NodePath::has_light_off(NodePath const &light) const;

2539 14 set_clip_plane 0 4 3645 24 NodePath::set_clip_plane 0 1 719 324
/**
 * Adds the indicated clipping plane to the list of planes that apply to
 * geometry at this node and below.  The clipping plane itself, a PlaneNode,
 * should be parented into the scene graph elsewhere, to represent the plane's
 * position in space; but until set_clip_plane() is called it will clip no
 * geometry.
 */
76
void NodePath::set_clip_plane(NodePath const &clip_plane, int priority = 0);

2540 18 set_clip_plane_off 0 4 3645 28 NodePath::set_clip_plane_off 0 2 720 721 793
/**
 * Sets the geometry at this level and below to render using no clip_planes at
 * all.  This is different from not specifying a clip_plane; rather, this
 * specifically contradicts set_clip_plane() at a higher node level (or, with
 * a priority, overrides a set_clip_plane() at a lower level).
 *
 * If no clip_planes are in effect on a particular piece of geometry, that
 * geometry is rendered without being clipped (other than by the viewing
 * frustum).
 */

/**
 * Sets the geometry at this level and below to render without being clipped
 * by the indicated PlaneNode.  This is different from not specifying the
 * PlaneNode; rather, this specifically contradicts set_clip_plane() at a
 * higher node level (or, with a priority, overrides a set_clip_plane() at a
 * lower level).
 */
133
void NodePath::set_clip_plane_off(int priority = 0);
void NodePath::set_clip_plane_off(NodePath const &clip_plane, int priority = 0);

2541 16 clear_clip_plane 0 4 3645 26 NodePath::clear_clip_plane 0 2 722 723 228
/**
 * Completely removes any clip planes that may have been set via
 * set_clip_plane() or set_clip_plane_off() from this particular node.
 */

/**
 * Removes any reference to the indicated clipping plane from the NodePath.
 */
99
void NodePath::clear_clip_plane(void);
void NodePath::clear_clip_plane(NodePath const &clip_plane);

2542 14 has_clip_plane 0 4 3645 24 NodePath::has_clip_plane 0 1 724 209
/**
 * Returns true if the indicated clipping plane has been specifically applied
 * to this particular node.  This means that someone called set_clip_plane()
 * on this node with the indicated clip_plane.
 */
64
bool NodePath::has_clip_plane(NodePath const &clip_plane) const;

2543 18 has_clip_plane_off 0 4 3645 28 NodePath::has_clip_plane_off 0 2 725 726 411
/**
 * Returns true if all clipping planes have been specifically disabled on this
 * particular node.  This means that someone called set_clip_plane_off() on
 * this node with no parameters.
 */

/**
 * Returns true if the indicated clipping plane has been specifically disabled
 * on this particular node.  This means that someone called
 * set_clip_plane_off() on this node with the indicated clip_plane.
 */
115
bool NodePath::has_clip_plane_off(void) const;
bool NodePath::has_clip_plane_off(NodePath const &clip_plane) const;

2544 11 set_scissor 0 4 3645 21 NodePath::set_scissor 0 5 727 728 729 730 731 1612
/**
 * Sets up a scissor region on the nodes rendered at this level and below.
 * The four coordinates are understood to define a rectangle in screen space.
 * These numbers are relative to the current DisplayRegion, where (0,0) is the
 * lower-left corner of the DisplayRegion, and (1,1) is the upper-right
 * corner.
 */

/**
 * Sets up a scissor region on the nodes rendered at this level and below.
 * The two points are understood to be relative to this node.  When these
 * points are projected into screen space, they define the diagonally-opposite
 * points that determine the scissor region.
 */

/**
 * Sets up a scissor region on the nodes rendered at this level and below.
 * The four points are understood to be relative to this node.  When these
 * points are projected into screen space, they define the bounding volume of
 * the scissor region (the scissor region is the smallest onscreen rectangle
 * that encloses all four points).
 */

/**
 * Sets up a scissor region on the nodes rendered at this level and below.
 * The two points are understood to be relative to the indicated other node.
 * When these points are projected into screen space, they define the
 * diagonally-opposite points that determine the scissor region.
 */

/**
 * Sets up a scissor region on the nodes rendered at this level and below.
 * The four points are understood to be relative to the indicated other node.
 * When these points are projected into screen space, they define the bounding
 * volume of the scissor region (the scissor region is the smallest onscreen
 * rectangle that encloses all four points).
 */
475
void NodePath::set_scissor(PN_stdfloat left, PN_stdfloat right, PN_stdfloat bottom, PN_stdfloat top);
void NodePath::set_scissor(LPoint3 const &a, LPoint3 const &b);
void NodePath::set_scissor(LPoint3 const &a, LPoint3 const &b, LPoint3 const &c, LPoint3 const &d);
void NodePath::set_scissor(NodePath const &other, LPoint3 const &a, LPoint3 const &b);
void NodePath::set_scissor(NodePath const &other, LPoint3 const &a, LPoint3 const &b, LPoint3 const &c, LPoint3 const &d);

2545 13 clear_scissor 0 4 3645 23 NodePath::clear_scissor 0 1 732 113
/**
 * Removes the scissor region that was defined at this node level by a
 * previous call to set_scissor().
 */
35
void NodePath::clear_scissor(void);

2546 11 has_scissor 0 4 3645 21 NodePath::has_scissor 0 1 733 325
/**
 * Returns true if a scissor region was defined at this node by a previous
 * call to set_scissor().  This does not check for scissor regions inherited
 * from a parent class.  It also does not check for the presence of a low-
 * level ScissorAttrib, which is different from the ScissorEffect added by
 * set_scissor.
 */
39
bool NodePath::has_scissor(void) const;

2547 12 set_occluder 0 4 3645 22 NodePath::set_occluder 0 1 734 320
/**
 * Adds the indicated occluder to the list of occluders that apply to geometry
 * at this node and below.  The occluder itself, an OccluderNode, should be
 * parented into the scene graph elsewhere, to represent the occluder's
 * position in space; but until set_occluder() is called it will clip no
 * geometry.
 */
54
void NodePath::set_occluder(NodePath const &occluder);

2548 14 clear_occluder 0 4 3645 24 NodePath::clear_occluder 0 2 735 736 194
/**
 * Completely removes any occluders that may have been set via set_occluder()
 * from this particular node.
 */

/**
 * Removes any reference to the indicated occluder from the NodePath.
 */
93
void NodePath::clear_occluder(void);
void NodePath::clear_occluder(NodePath const &occluder);

2549 12 has_occluder 0 4 3645 22 NodePath::has_occluder 0 1 737 199
/**
 * Returns true if the indicated occluder has been specifically applied to
 * this particular node.  This means that someone called set_occluder() on
 * this node with the indicated occluder.
 */
60
bool NodePath::has_occluder(NodePath const &occluder) const;

2550 7 set_bin 0 4 3645 17 NodePath::set_bin 0 1 738 884
/**
 * Assigns the geometry at this level and below to the named rendering bin.
 * It is the user's responsibility to ensure that such a bin already exists,
 * either via the cull-bin Configrc variable, or by explicitly creating a
 * GeomBin of the appropriate type at runtime.
 *
 * There are two default bins created when Panda is started: "default" and
 * "fixed".  Normally, all geometry is assigned to "default" unless specified
 * otherwise.  This bin renders opaque geometry in state-sorted order,
 * followed by transparent geometry sorted back-to-front.  If any geometry is
 * assigned to "fixed", this will be rendered following all the geometry in
 * "default", in the order specified by draw_order for each piece of geometry
 * so assigned.
 *
 * The draw_order parameter is meaningful only for GeomBinFixed type bins,
 * e.g.  "fixed".  Other kinds of bins ignore it.
 */
86
void NodePath::set_bin(std::string const &bin_name, int draw_order, int priority = 0);

2551 9 clear_bin 0 4 3645 19 NodePath::clear_bin 0 1 739 115
/**
 * Completely removes any bin adjustment that may have been set via set_bin()
 * from this particular node.
 */
31
void NodePath::clear_bin(void);

2552 7 has_bin 0 4 3645 17 NodePath::has_bin 0 1 740 122
/**
 * Returns true if the node has been assigned to the a particular rendering
 * bin via set_bin(), false otherwise.
 */
35
bool NodePath::has_bin(void) const;

2553 12 get_bin_name 0 4 3645 22 NodePath::get_bin_name 0 1 741 175
/**
 * Returns the name of the bin that this particular node was assigned to via
 * set_bin(), or the empty string if no bin was assigned.  See set_bin() and
 * has_bin().
 */
47
std::string NodePath::get_bin_name(void) const;

2554 18 get_bin_draw_order 0 4 3645 28 NodePath::get_bin_draw_order 0 1 742 182
/**
 * Returns the drawing order associated with the bin that this particular node
 * was assigned to via set_bin(), or 0 if no bin was assigned.  See set_bin()
 * and has_bin().
 */
45
int NodePath::get_bin_draw_order(void) const;

2555 11 set_texture 0 4 3645 21 NodePath::set_texture 0 4 743 744 745 746 1840
/**
 * Adds the indicated texture to the list of textures that will be rendered on
 * the default texture stage.
 *
 * This is the convenience single-texture variant of this method; it is now
 * superceded by set_texture() that accepts a stage and texture.  You may use
 * this method if you just want to adjust the default stage.
 */

/**
 * Adds the indicated texture to the list of textures that will be rendered on
 * the indicated multitexture stage.  If there are multiple texture stages
 * specified (possibly on multiple different nodes at different levels), they
 * will all be applied to geometry together, according to the stage
 * specification set up in the TextureStage object.
 */

/**
 * Adds the indicated texture to the list of textures that will be rendered on
 * the default texture stage.
 *
 * The given sampler state will override the sampling settings on the texture
 * itself.  Note that this method makes a copy of the sampler settings that
 * you give; further changes to this object will not be reflected.
 *
 * This is the convenience single-texture variant of this method; it is now
 * superceded by set_texture() that accepts a stage and texture.  You may use
 * this method if you just want to adjust the default stage.
 */

/**
 * Adds the indicated texture to the list of textures that will be rendered on
 * the indicated multitexture stage.  If there are multiple texture stages
 * specified (possibly on multiple different nodes at different levels), they
 * will all be applied to geometry together, according to the stage
 * specification set up in the TextureStage object.
 *
 * The given sampler state will override the sampling settings on the texture
 * itself.  Note that this method makes a copy of the sampler settings that
 * you give; further changes to this object will not be reflected.
 */
339
void NodePath::set_texture(Texture *tex, int priority = 0);
void NodePath::set_texture(TextureStage *stage, Texture *tex, int priority = 0);
void NodePath::set_texture(Texture *tex, SamplerState const &sampler, int priority = 0);
void NodePath::set_texture(TextureStage *stage, Texture *tex, SamplerState const &sampler, int priority = 0);

2556 15 set_texture_off 0 4 3645 25 NodePath::set_texture_off 0 2 747 748 602
/**
 * Sets the geometry at this level and below to render using no texture, on
 * any stage.  This is different from not specifying a texture; rather, this
 * specifically contradicts set_texture() at a higher node level (or, with a
 * priority, overrides a set_texture() at a lower level).
 */

/**
 * Sets the geometry at this level and below to render using no texture, on
 * the indicated stage.  This is different from not specifying a texture;
 * rather, this specifically contradicts set_texture() at a higher node level
 * (or, with a priority, overrides a set_texture() at a lower level).
 */
120
void NodePath::set_texture_off(int priority = 0);
void NodePath::set_texture_off(TextureStage *stage, int priority = 0);

2557 13 clear_texture 0 4 3645 23 NodePath::clear_texture 0 2 749 750 324
/**
 * Completely removes any texture adjustment that may have been set via
 * set_texture() or set_texture_off() from this particular node.  This allows
 * whatever textures might be otherwise affecting the geometry to show
 * instead.
 */

/**
 * Removes any reference to the indicated texture stage from the NodePath.
 */
86
void NodePath::clear_texture(void);
void NodePath::clear_texture(TextureStage *stage);

2558 11 has_texture 0 4 3645 21 NodePath::has_texture 0 2 751 752 601
/**
 * Returns true if a texture has been applied to this particular node via
 * set_texture(), false otherwise.  This is not the same thing as asking
 * whether the geometry at this node will be rendered with texturing, as there
 * may be a texture in effect from a higher or lower level.
 */

/**
 * Returns true if texturing has been specifically enabled on this particular
 * node for the indicated stage.  This means that someone called set_texture()
 * on this node with the indicated stage name, or the stage_name is the
 * default stage_name, and someone called set_texture() on this node.
 */
94
bool NodePath::has_texture(void) const;
bool NodePath::has_texture(TextureStage *stage) const;

2559 15 has_texture_off 0 4 3645 25 NodePath::has_texture_off 0 2 753 754 604
/**
 * Returns true if texturing has been specifically disabled on this particular
 * node via set_texture_off(), false otherwise.  This is not the same thing as
 * asking whether the geometry at this node will be rendered untextured, as
 * there may be a texture in effect from a higher or lower level.
 */

/**
 * Returns true if texturing has been specifically disabled on this particular
 * node for the indicated stage.  This means that someone called
 * set_texture_off() on this node with the indicated stage name, or that
 * someone called set_texture_off() on this node to remove all stages.
 */
102
bool NodePath::has_texture_off(void) const;
bool NodePath::has_texture_off(TextureStage *stage) const;

2560 11 get_texture 0 4 3645 21 NodePath::get_texture 0 2 755 756 471
/**
 * Returns the base-level texture that has been set on this particular node,
 * or NULL if no texture has been set.  This is not necessarily the texture
 * that will be applied to the geometry at or below this level, as another
 * texture at a higher or lower level may override.
 *
 * See also find_texture().
 */

/**
 * Returns the texture that has been set on the indicated stage for this
 * particular node, or NULL if no texture has been set for this stage.
 */
102
Texture *NodePath::get_texture(void) const;
Texture *NodePath::get_texture(TextureStage *stage) const;

2561 15 replace_texture 0 4 3645 25 NodePath::replace_texture 0 2 757 758 267
// Let interrogate know this also accepts None

/**
 * Recursively searches the scene graph for references to the given texture,
 * and replaces them with the new texture.
 *
 * As of Panda3D 1.10.13, new_tex may be null to remove the texture.
 *
 * @since 1.10.4
 */
133
void NodePath::replace_texture(Texture *tex, Texture *new_tex);
void NodePath::replace_texture(Texture *tex, std::nullptr_t new_tex);

2562 19 get_texture_sampler 0 4 3645 29 NodePath::get_texture_sampler 0 2 759 760 649
/**
 * Returns the sampler state that has been given for the base-level texture
 * that has been set on this particular node.  If no sampler state was given,
 * this returns the texture's default sampler settings.
 *
 * It is an error to call this if there is no base-level texture applied to
 * this particular node.
 */

/**
 * Returns the sampler state that has been given for the indicated texture
 * stage that has been set on this particular node.  If no sampler state was
 * given, this returns the texture's default sampler settings.
 *
 * It is an error to call this if there is no texture set for this stage on
 * this particular node.
 */
140
SamplerState const &NodePath::get_texture_sampler(void) const;
SamplerState const &NodePath::get_texture_sampler(TextureStage *stage) const;

2563 10 set_shader 0 4 3645 20 NodePath::set_shader 0 1 761 10
/**
 *
 */
63
void NodePath::set_shader(Shader const *sha, int priority = 0);

2564 14 set_shader_off 0 4 3645 24 NodePath::set_shader_off 0 1 762 10
/**
 *
 */
48
void NodePath::set_shader_off(int priority = 0);

2565 15 set_shader_auto 0 4 3645 25 NodePath::set_shader_auto 0 2 763 764 63
/**
 *
 */

/**
 * overloaded for auto shader customization
 */
124
void NodePath::set_shader_auto(int priority = 0);
void NodePath::set_shader_auto(BitMask32 shader_switch, int priority = 0);

2566 12 clear_shader 0 4 3645 22 NodePath::clear_shader 0 1 765 10
/**
 *
 */
34
void NodePath::clear_shader(void);

2567 16 set_shader_input 0 4 3645 26 NodePath::set_shader_input 0 6 766 767 768 769 770 771 334
/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */
671
void NodePath::set_shader_input(ShaderInput const &input);
inline void NodePath::set_shader_input(CPT_InternalName id, Texture *tex, SamplerState const &sampler, int priority = 0);
inline void NodePath::set_shader_input(CPT_InternalName id, Texture *tex, bool read, bool write, int z = -1, int n = 0, int priority = 0);
inline void NodePath::set_shader_input(CPT_InternalName id, int n1, int n2, int n3 = 0, int n4 = 0, int priority = 0);
inline void NodePath::set_shader_input(CPT_InternalName id, PN_stdfloat n1, PN_stdfloat n2, PN_stdfloat n3 = 0, PN_stdfloat n4 = 0, int priority = 0);
void NodePath::set_shader_input(CPT_InternalName , PyObject *, int priority = 0);

2568 17 set_shader_inputs 0 4 3645 27 NodePath::set_shader_inputs 0 1 772 0
67
void NodePath::set_shader_inputs(PyObject *args, PyObject *kwargs);

2569 18 clear_shader_input 0 4 3645 28 NodePath::clear_shader_input 0 1 773 10
/**
 *
 */
55
void NodePath::clear_shader_input(CPT_InternalName id);

2570 18 set_instance_count 0 4 3645 28 NodePath::set_instance_count 0 1 774 174
/**
 * Sets the geometry instance count, or 0 if geometry instancing should be
 * disabled.  Do not confuse with instanceTo which only applies to animation
 * instancing.
 */
54
void NodePath::set_instance_count(int instance_count);

2571 10 get_shader 0 4 3645 20 NodePath::get_shader 0 1 775 10
/**
 *
 */
47
Shader const *NodePath::get_shader(void) const;

2572 16 get_shader_input 0 4 3645 26 NodePath::get_shader_input 0 1 776 10
/**
 *
 */
66
ShaderInput NodePath::get_shader_input(CPT_InternalName id) const;

2573 18 get_instance_count 0 4 3645 28 NodePath::get_instance_count 0 1 777 93
/**
 * Returns the geometry instance count, or 0 if disabled.  See
 * set_instance_count.
 */
45
int NodePath::get_instance_count(void) const;

2574 17 set_tex_transform 0 4 3645 27 NodePath::set_tex_transform 0 2 778 779 212
/**
 * Sets the texture matrix on the current node to the indicated transform for
 * the given stage.
 */

/**
 * Sets the texture matrix on the current node to the indicated transform for
 * the given stage.
 */
198
void NodePath::set_tex_transform(TextureStage *stage, TransformState const *transform);
void NodePath::set_tex_transform(NodePath const &other, TextureStage *stage, TransformState const *transform);

2575 19 clear_tex_transform 0 4 3645 29 NodePath::clear_tex_transform 0 2 780 781 142
/**
 * Removes all texture matrices from the current node.
 */

/**
 * Removes the texture matrix on the current node for the given stage.
 */
98
void NodePath::clear_tex_transform(void);
void NodePath::clear_tex_transform(TextureStage *stage);

2576 17 has_tex_transform 0 4 3645 27 NodePath::has_tex_transform 0 1 782 106
/**
 * Returns true if there is an explicit texture matrix on the current node for
 * the given stage.
 */
60
bool NodePath::has_tex_transform(TextureStage *stage) const;

2577 17 get_tex_transform 0 4 3645 27 NodePath::get_tex_transform 0 2 783 784 276
/**
 * Returns the texture matrix on the current node for the given stage, or
 * identity transform if there is no explicit transform set for the given
 * stage.
 */

/**
 * Returns the texture matrix on the current node for the given stage,
 * relative to the other node.
 */
200
ConstPointerTo< TransformState > NodePath::get_tex_transform(TextureStage *stage) const;
ConstPointerTo< TransformState > NodePath::get_tex_transform(NodePath const &other, TextureStage *stage) const;

2578 14 set_tex_offset 0 4 3645 24 NodePath::set_tex_offset 0 4 785 786 787 788 738
/**
 * Sets a texture matrix on the current node to apply the indicated offset to
 * UV's for the given stage.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */

/**
 * Sets a texture matrix on the current node to apply the indicated offset to
 * UV's for the given stage.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */

/**
 * Sets a texture matrix on the current node to apply the indicated offset to
 * UV's for the given stage.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */

/**
 * Sets a texture matrix on the current node to apply the indicated offset to
 * UV's for the given stage.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */
383
inline void NodePath::set_tex_offset(TextureStage *stage, PN_stdfloat u, PN_stdfloat v);
inline void NodePath::set_tex_offset(TextureStage *stage, LVecBase2 const &uv);
inline void NodePath::set_tex_offset(NodePath const &other, TextureStage *stage, PN_stdfloat u, PN_stdfloat v);
inline void NodePath::set_tex_offset(NodePath const &other, TextureStage *stage, LVecBase2 const &uv);

2579 14 set_tex_rotate 0 4 3645 24 NodePath::set_tex_rotate 0 2 789 790 418
/**
 * Sets a texture matrix on the current node to apply the indicated rotation,
 * clockwise in degrees, to UV's for the given stage.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */

/**
 * Sets a texture matrix on the current node to apply the indicated rotation,
 * clockwise in degrees, to UV's for the given stage.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */
170
inline void NodePath::set_tex_rotate(TextureStage *stage, PN_stdfloat r);
inline void NodePath::set_tex_rotate(NodePath const &other, TextureStage *stage, PN_stdfloat r);

2580 13 set_tex_scale 0 4 3645 23 NodePath::set_tex_scale 0 10 791 792 793 794 795 796 797 798 799 800 1803
/**
 * Sets a texture matrix on the current node to apply the indicated scale to
 * UVW's for the given stage.
 *
 * This call is appropriate for 2-d or 3-d texture coordinates.
 */

/**
 * Sets a texture matrix on the current node to apply the indicated scale to
 * UV's for the given stage.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */

/**
 * Sets a texture matrix on the current node to apply the indicated scale to
 * UV's for the given stage.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */

/**
 * Sets a texture matrix on the current node to apply the indicated scale to
 * UVW's for the given stage.
 *
 * This call is appropriate for 3-d texture coordinates.
 */

/**
 * Sets a texture matrix on the current node to apply the indicated scale to
 * UVW's for the given stage.
 *
 * This call is appropriate for 3-d texture coordinates.
 */

/**
 * Sets a texture matrix on the current node to apply the indicated scale to
 * UV's for the given stage.
 *
 * This call is appropriate for 2-d or 3-d texture coordinates.
 */

/**
 * Sets a texture matrix on the current node to apply the indicated scale to
 * UV's for the given stage.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */

/**
 * Sets a texture matrix on the current node to apply the indicated scale to
 * UV's for the given stage.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */

/**
 * Sets a texture matrix on the current node to apply the indicated scale to
 * UVW's for the given stage.
 *
 * This call is appropriate for 3-d texture coordinates.
 */

/**
 * Sets a texture matrix on the current node to apply the indicated scale to
 * UVW's for the given stage.
 *
 * This call is appropriate for 3-d texture coordinates.
 */
988
inline void NodePath::set_tex_scale(TextureStage *stage, PN_stdfloat scale);
inline void NodePath::set_tex_scale(TextureStage *stage, PN_stdfloat su, PN_stdfloat sv);
inline void NodePath::set_tex_scale(TextureStage *stage, LVecBase2 const &scale);
inline void NodePath::set_tex_scale(TextureStage *stage, PN_stdfloat su, PN_stdfloat sv, PN_stdfloat sw);
inline void NodePath::set_tex_scale(TextureStage *stage, LVecBase3 const &scale);
inline void NodePath::set_tex_scale(NodePath const &other, TextureStage *stage, PN_stdfloat scale);
inline void NodePath::set_tex_scale(NodePath const &other, TextureStage *stage, PN_stdfloat su, PN_stdfloat sv);
inline void NodePath::set_tex_scale(NodePath const &other, TextureStage *stage, LVecBase2 const &scale);
inline void NodePath::set_tex_scale(NodePath const &other, TextureStage *stage, PN_stdfloat su, PN_stdfloat sv, PN_stdfloat sw);
inline void NodePath::set_tex_scale(NodePath const &other, TextureStage *stage, LVecBase3 const &scale);

2581 14 get_tex_offset 0 4 3645 24 NodePath::get_tex_offset 0 2 801 802 320
/**
 * Returns the offset set for the UV's for the given stage on the current
 * node.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */

/**
 * Returns the offset set for the UV's for the given stage on the current
 * node.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */
162
inline LVecBase2 NodePath::get_tex_offset(TextureStage *stage) const;
inline LVecBase2 NodePath::get_tex_offset(NodePath const &other, TextureStage *stage) const;

2582 14 get_tex_rotate 0 4 3645 24 NodePath::get_tex_rotate 0 2 803 804 324
/**
 * Returns the rotation set for the UV's for the given stage on the current
 * node.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */

/**
 * Returns the rotation set for the UV's for the given stage on the current
 * node.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */
166
inline PN_stdfloat NodePath::get_tex_rotate(TextureStage *stage) const;
inline PN_stdfloat NodePath::get_tex_rotate(NodePath const &other, TextureStage *stage) const;

2583 13 get_tex_scale 0 4 3645 23 NodePath::get_tex_scale 0 2 805 806 312
/**
 * Returns the scale set for the UV's for the given stage on the current node.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */

/**
 * Returns the scale set for the UV's for the given stage on the current node.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */
160
inline LVecBase2 NodePath::get_tex_scale(TextureStage *stage) const;
inline LVecBase2 NodePath::get_tex_scale(NodePath const &other, TextureStage *stage) const;

2584 11 set_tex_pos 0 4 3645 21 NodePath::set_tex_pos 0 4 807 808 809 810 706
/**
 * Sets a texture matrix on the current node to apply the indicated offset to
 * UVW's for the given stage.
 *
 * This call is appropriate for 3-d texture coordinates.
 */

/**
 * Sets a texture matrix on the current node to apply the indicated offset to
 * UVW's for the given stage.
 *
 * This call is appropriate for 3-d texture coordinates.
 */

/**
 * Sets a texture matrix on the current node to apply the indicated offset to
 * UVW's for the given stage.
 *
 * This call is appropriate for 3-d texture coordinates.
 */

/**
 * Sets a texture matrix on the current node to apply the indicated offset to
 * UVW's for the given stage.
 *
 * This call is appropriate for 3-d texture coordinates.
 */
403
inline void NodePath::set_tex_pos(TextureStage *stage, PN_stdfloat u, PN_stdfloat v, PN_stdfloat w);
inline void NodePath::set_tex_pos(TextureStage *stage, LVecBase3 const &uvw);
inline void NodePath::set_tex_pos(NodePath const &other, TextureStage *stage, PN_stdfloat u, PN_stdfloat v, PN_stdfloat w);
inline void NodePath::set_tex_pos(NodePath const &other, TextureStage *stage, LVecBase3 const &uvw);

2585 11 set_tex_hpr 0 4 3645 21 NodePath::set_tex_hpr 0 4 811 812 813 814 774
/**
 * Sets a texture matrix on the current node to apply the indicated rotation,
 * as a 3-D HPR, to UVW's for the given stage.
 *
 * This call is appropriate for 3-d texture coordinates.
 */

/**
 * Sets a texture matrix on the current node to apply the indicated rotation,
 * as a 3-D HPR, to UVW's for the given stage.
 *
 * This call is appropriate for 3-d texture coordinates.
 */

/**
 * Sets a texture matrix on the current node to apply the indicated rotation,
 * as a 3-D HPR, to UVW's for the given stage.
 *
 * This call is appropriate for 3-d texture coordinates.
 */

/**
 * Sets a texture matrix on the current node to apply the indicated rotation,
 * as a 3-D HPR, to UVW's for the given stage.
 *
 * This call is appropriate for 3-d texture coordinates.
 */
403
inline void NodePath::set_tex_hpr(TextureStage *stage, PN_stdfloat h, PN_stdfloat p, PN_stdfloat r);
inline void NodePath::set_tex_hpr(TextureStage *stage, LVecBase3 const &hpr);
inline void NodePath::set_tex_hpr(NodePath const &other, TextureStage *stage, PN_stdfloat h, PN_stdfloat p, PN_stdfloat r);
inline void NodePath::set_tex_hpr(NodePath const &other, TextureStage *stage, LVecBase3 const &hpr);

2586 11 get_tex_pos 0 4 3645 21 NodePath::get_tex_pos 0 2 815 816 304
/**
 * Returns the offset set for the UVW's for the given stage on the current
 * node.
 *
 * This call is appropriate for 3-d texture coordinates.
 */

/**
 * Returns the offset set for the UVW's for the given stage on the current
 * node.
 *
 * This call is appropriate for 3-d texture coordinates.
 */
156
inline LVecBase3 NodePath::get_tex_pos(TextureStage *stage) const;
inline LVecBase3 NodePath::get_tex_pos(NodePath const &other, TextureStage *stage) const;

2587 11 get_tex_hpr 0 4 3645 21 NodePath::get_tex_hpr 0 2 817 818 306
/**
 * Returns the 3-D HPR set for the UVW's for the given stage on the current
 * node.
 *
 * This call is appropriate for 3-d texture coordinates.
 */

/**
 * Returns the 3-D HPR set for the UVW's for the given stage on the current
 * node.
 *
 * This call is appropriate for 3-d texture coordinates.
 */
156
inline LVecBase3 NodePath::get_tex_hpr(TextureStage *stage) const;
inline LVecBase3 NodePath::get_tex_hpr(NodePath const &other, TextureStage *stage) const;

2588 16 get_tex_scale_3d 0 4 3645 26 NodePath::get_tex_scale_3d 0 2 819 820 302
/**
 * Returns the scale set for the UVW's for the given stage on the current
 * node.
 *
 * This call is appropriate for 3-d texture coordinates.
 */

/**
 * Returns the scale set for the UVW's for the given stage on the current
 * node.
 *
 * This call is appropriate for 3-d texture coordinates.
 */
166
inline LVecBase3 NodePath::get_tex_scale_3d(TextureStage *stage) const;
inline LVecBase3 NodePath::get_tex_scale_3d(NodePath const &other, TextureStage *stage) const;

2589 11 set_tex_gen 0 4 3645 21 NodePath::set_tex_gen 0 2 821 822 309
/**
 * Enables automatic texture coordinate generation for the indicated texture
 * stage.
 */

/**
 * Enables automatic texture coordinate generation for the indicated texture
 * stage.  This version of this method is useful when setting M_constant,
 * which requires a constant texture coordinate value.
 */
229
void NodePath::set_tex_gen(TextureStage *stage, RenderAttrib::TexGenMode mode, int priority = 0);
void NodePath::set_tex_gen(TextureStage *stage, RenderAttrib::TexGenMode mode, LTexCoord3 const &constant_value, int priority = 0);

2590 13 clear_tex_gen 0 4 3645 23 NodePath::clear_tex_gen 0 2 823 824 195
/**
 * Removes the texture coordinate generation mode from all texture stages on
 * this node.
 */

/**
 * Disables automatic texture coordinate generation for the indicated texture
 * stage.
 */
86
void NodePath::clear_tex_gen(void);
void NodePath::clear_tex_gen(TextureStage *stage);

2591 11 has_tex_gen 0 4 3645 21 NodePath::has_tex_gen 0 1 825 130
/**
 * Returns true if there is a mode for automatic texture coordinate generation
 * on the current node for the given stage.
 */
54
bool NodePath::has_tex_gen(TextureStage *stage) const;

2592 11 get_tex_gen 0 4 3645 21 NodePath::get_tex_gen 0 1 826 144
/**
 * Returns the texture coordinate generation mode for the given stage, or
 * M_off if there is no explicit mode set for the given stage.
 */
74
RenderAttrib::TexGenMode NodePath::get_tex_gen(TextureStage *stage) const;

2593 17 set_tex_projector 0 4 3645 27 NodePath::set_tex_projector 0 1 827 529
/**
 * Establishes a TexProjectorEffect on this node, which can be used to
 * establish projective texturing (but see also the
 * NodePath::project_texture() convenience function), or it can be used to
 * bind this node's texture transform to particular node's position in space,
 * allowing a LerpInterval (for instance) to adjust this node's texture
 * coordinates.
 *
 * If to is a LensNode, then the fourth parameter, lens_index, can be provided
 * to select a particular lens to apply.  Otherwise lens_index is not used.
 */
116
void NodePath::set_tex_projector(TextureStage *stage, NodePath const &from, NodePath const &to, int lens_index = 0);

2594 19 clear_tex_projector 0 4 3645 29 NodePath::clear_tex_projector 0 2 828 829 155
/**
 * Removes the TexProjectorEffect for the indicated stage from this node.
 */

/**
 * Removes the TexProjectorEffect for all stages from this node.
 */
98
void NodePath::clear_tex_projector(TextureStage *stage);
void NodePath::clear_tex_projector(void);

2595 17 has_tex_projector 0 4 3645 27 NodePath::has_tex_projector 0 1 830 106
/**
 * Returns true if this node has a TexProjectorEffect for the indicated stage,
 * false otherwise.
 */
60
bool NodePath::has_tex_projector(TextureStage *stage) const;

2596 22 get_tex_projector_from 0 4 3645 32 NodePath::get_tex_projector_from 0 1 831 227
/**
 * Returns the "from" node associated with the TexProjectorEffect on the
 * indicated stage.  The relative transform between the "from" and the "to"
 * nodes is automatically applied to the texture transform each frame.
 */
69
NodePath NodePath::get_tex_projector_from(TextureStage *stage) const;

2597 20 get_tex_projector_to 0 4 3645 30 NodePath::get_tex_projector_to 0 1 832 225
/**
 * Returns the "to" node associated with the TexProjectorEffect on the
 * indicated stage.  The relative transform between the "from" and the "to"
 * nodes is automatically applied to the texture transform each frame.
 */
67
NodePath NodePath::get_tex_projector_to(TextureStage *stage) const;

2598 15 project_texture 0 4 3645 25 NodePath::project_texture 0 1 833 181
/**
 * A convenience function to enable projective texturing at this node level
 * and below, using the indicated NodePath (which should contain a LensNode)
 * as the projector.
 */
93
void NodePath::project_texture(TextureStage *stage, Texture *tex, NodePath const &projector);

2599 21 clear_project_texture 0 4 3645 31 NodePath::clear_project_texture 0 1 834 50
/**
 * Undoes the effect of project_texture().
 */
65
inline void NodePath::clear_project_texture(TextureStage *stage);

2600 12 has_texcoord 0 4 3645 22 NodePath::has_texcoord 0 1 835 211
/**
 * Returns true if there are at least some vertices at this node and below
 * that use the named texture coordinate set, false otherwise.  Pass the empty
 * string for the default texture coordinate set.
 */
75
inline bool NodePath::has_texcoord(std::string const &texcoord_name) const;

2601 17 has_vertex_column 0 4 3645 27 NodePath::has_vertex_column 0 1 836 309
/**
 * Returns true if there are at least some vertices at this node and below
 * that contain a reference to the indicated vertex data column name, false
 * otherwise.
 *
 * This is particularly useful for testing whether a particular model has a
 * given texture coordinate set (but see has_texcoord()).
 */
65
bool NodePath::has_vertex_column(InternalName const *name) const;

2602 23 find_all_vertex_columns 0 4 3645 33 NodePath::find_all_vertex_columns 0 2 837 838 307
/**
 * Returns a list of all vertex array columns stored on some geometry found at
 * this node level and below.
 */

/**
 * Returns a list of all vertex array columns stored on some geometry found at
 * this node level and below that match the indicated name (which may contain
 * wildcard characters).
 */
158
InternalNameCollection NodePath::find_all_vertex_columns(void) const;
InternalNameCollection NodePath::find_all_vertex_columns(std::string const &name) const;

2603 18 find_all_texcoords 0 4 3645 28 NodePath::find_all_texcoords 0 2 839 840 295
/**
 * Returns a list of all texture coordinate sets used by any geometry at this
 * node level and below.
 */

/**
 * Returns a list of all texture coordinate sets used by any geometry at this
 * node level and below that match the indicated name (which may contain
 * wildcard characters).
 */
148
InternalNameCollection NodePath::find_all_texcoords(void) const;
InternalNameCollection NodePath::find_all_texcoords(std::string const &name) const;

2604 12 find_texture 0 4 3645 22 NodePath::find_texture 0 2 841 842 412
/**
 * Returns the first texture found applied to geometry at this node or below
 * that matches the indicated name (which may contain wildcards).  Returns the
 * texture if it is found, or NULL if it is not.
 */

/**
 * Returns the first texture found applied to geometry at this node or below
 * that is assigned to the indicated texture stage.  Returns the texture if it
 * is found, or NULL if it is not.
 */
123
Texture *NodePath::find_texture(std::string const &name) const;
Texture *NodePath::find_texture(TextureStage *stage) const;

2605 17 find_all_textures 0 4 3645 27 NodePath::find_all_textures 0 3 843 844 845 370
/**
 * Returns a list of a textures applied to geometry at this node and below.
 */

/**
 * Returns a list of a textures applied to geometry at this node and below
 * that match the indicated name (which may contain wildcard characters).
 */

/**
 * Returns a list of a textures on geometry at this node and below that are
 * assigned to the indicated texture stage.
 */
210
TextureCollection NodePath::find_all_textures(void) const;
TextureCollection NodePath::find_all_textures(std::string const &name) const;
TextureCollection NodePath::find_all_textures(TextureStage *stage) const;

2606 18 find_texture_stage 0 4 3645 28 NodePath::find_texture_stage 0 1 846 221
/**
 * Returns the first TextureStage found applied to geometry at this node or
 * below that matches the indicated name (which may contain wildcards).
 * Returns the TextureStage if it is found, or NULL if it is not.
 */
74
TextureStage *NodePath::find_texture_stage(std::string const &name) const;

2607 23 find_all_texture_stages 0 4 3645 33 NodePath::find_all_texture_stages 0 2 847 848 257
/**
 * Returns a list of a TextureStages applied to geometry at this node and
 * below.
 */

/**
 * Returns a list of a TextureStages applied to geometry at this node and
 * below that match the indicated name (which may contain wildcard
 * characters).
 */
158
TextureStageCollection NodePath::find_all_texture_stages(void) const;
TextureStageCollection NodePath::find_all_texture_stages(std::string const &name) const;

2608 20 unify_texture_stages 0 4 3645 30 NodePath::unify_texture_stages 0 1 849 323
/**
 * Searches through all TextureStages at this node and below.  Any
 * TextureStages that share the same name as the indicated TextureStage object
 * are replaced with this object, thus ensuring that all geometry at this node
 * and below with a particular TextureStage name is using the same
 * TextureStage object.
 */
57
void NodePath::unify_texture_stages(TextureStage *stage);

2609 13 find_material 0 4 3645 23 NodePath::find_material 0 1 850 214
/**
 * Returns the first material found applied to geometry at this node or below
 * that matches the indicated name (which may contain wildcards).  Returns the
 * material if it is found, or NULL if it is not.
 */
65
Material *NodePath::find_material(std::string const &name) const;

2610 18 find_all_materials 0 4 3645 28 NodePath::find_all_materials 0 2 851 852 243
/**
 * Returns a list of a materials applied to geometry at this node and below.
 */

/**
 * Returns a list of a materials applied to geometry at this node and below
 * that match the indicated name (which may contain wildcard characters).
 */
140
MaterialCollection NodePath::find_all_materials(void) const;
MaterialCollection NodePath::find_all_materials(std::string const &name) const;

2611 12 set_material 0 4 3645 22 NodePath::set_material 0 1 853 216
/**
 * Sets the geometry at this level and below to render using the indicated
 * material.
 *
 * Previously, this operation made a copy of the material structure, but
 * nowadays it assigns the pointer directly.
 */
61
void NodePath::set_material(Material *tex, int priority = 0);

2612 16 set_material_off 0 4 3645 26 NodePath::set_material_off 0 1 854 275
/**
 * Sets the geometry at this level and below to render using no material.
 * This is normally the default, but it may be useful to use this to
 * contradict set_material() at a higher node level (or, with a priority, to
 * override a set_material() at a lower level).
 */
50
void NodePath::set_material_off(int priority = 0);

2613 14 clear_material 0 4 3645 24 NodePath::clear_material 0 1 855 125
/**
 * Completely removes any material adjustment that may have been set via
 * set_material() from this particular node.
 */
36
void NodePath::clear_material(void);

2614 12 has_material 0 4 3645 22 NodePath::has_material 0 1 856 118
/**
 * Returns true if a material has been applied to this particular node via
 * set_material(), false otherwise.
 */
40
bool NodePath::has_material(void) const;

2615 12 get_material 0 4 3645 22 NodePath::get_material 0 1 857 312
/**
 * Returns the material that has been set on this particular node, or NULL if
 * no material has been set.  This is not necessarily the material that will
 * be applied to the geometry at or below this level, as another material at a
 * higher or lower level may override.
 *
 * See also find_material().
 */
57
PointerTo< Material > NodePath::get_material(void) const;

2616 16 replace_material 0 4 3645 26 NodePath::replace_material 0 2 858 859 270
// Let interrogate know this also accepts None

/**
 * Recursively searches the scene graph for references to the given material,
 * and replaces them with the new material.
 *
 * As of Panda3D 1.10.13, new_mat may be null to remove the material.
 *
 * @since 1.10.0
 */
138
void NodePath::replace_material(Material *mat, Material *new_mat);
void NodePath::replace_material(Material *mat, std::nullptr_t new_mat);

2617 7 set_fog 0 4 3645 17 NodePath::set_fog 0 1 860 90
/**
 * Sets the geometry at this level and below to render using the indicated
 * fog.
 */
51
void NodePath::set_fog(Fog *fog, int priority = 0);

2618 11 set_fog_off 0 4 3645 21 NodePath::set_fog_off 0 1 861 261
/**
 * Sets the geometry at this level and below to render using no fog.  This is
 * normally the default, but it may be useful to use this to contradict
 * set_fog() at a higher node level (or, with a priority, to override a
 * set_fog() at a lower level).
 */
45
void NodePath::set_fog_off(int priority = 0);

2619 9 clear_fog 0 4 3645 19 NodePath::clear_fog 0 1 862 221
/**
 * Completely removes any fog adjustment that may have been set via set_fog()
 * or set_fog_off() from this particular node.  This allows whatever fogs
 * might be otherwise affecting the geometry to show instead.
 */
31
void NodePath::clear_fog(void);

2620 7 has_fog 0 4 3645 17 NodePath::has_fog 0 1 863 275
/**
 * Returns true if a fog has been applied to this particular node via
 * set_fog(), false otherwise.  This is not the same thing as asking whether
 * the geometry at this node will be rendered with fog, as there may be a fog
 * in effect from a higher or lower level.
 */
35
bool NodePath::has_fog(void) const;

2621 11 has_fog_off 0 4 3645 21 NodePath::has_fog_off 0 1 864 293
/**
 * Returns true if a fog has been specifically disabled on this particular
 * node via set_fog_off(), false otherwise.  This is not the same thing as
 * asking whether the geometry at this node will be rendered unfogged, as
 * there may be a fog in effect from a higher or lower level.
 */
39
bool NodePath::has_fog_off(void) const;

2622 7 get_fog 0 4 3645 17 NodePath::get_fog 0 1 865 260
/**
 * Returns the fog that has been set on this particular node, or NULL if no
 * fog has been set.  This is not necessarily the fog that will be applied to
 * the geometry at or below this level, as another fog at a higher or lower
 * level may override.
 */
35
Fog *NodePath::get_fog(void) const;

2623 25 set_render_mode_wireframe 0 4 3645 35 NodePath::set_render_mode_wireframe 0 1 866 107
/**
 * Sets up the geometry at this level and below (unless overridden) to render
 * in wireframe mode.
 */
59
void NodePath::set_render_mode_wireframe(int priority = 0);

2624 22 set_render_mode_filled 0 4 3645 32 NodePath::set_render_mode_filled 0 1 867 126
/**
 * Sets up the geometry at this level and below (unless overridden) to render
 * in filled (i.e.  not wireframe) mode.
 */
56
void NodePath::set_render_mode_filled(int priority = 0);

2625 32 set_render_mode_filled_wireframe 0 4 3645 42 NodePath::set_render_mode_filled_wireframe 0 1 868 197
/**
 * Sets up the geometry at this level and below (unless overridden) to render
 * in filled, but overlay the wireframe on top with a fixed color.  This is
 * useful for debug visualizations.
 */
97
void NodePath::set_render_mode_filled_wireframe(LColor const &wireframe_color, int priority = 0);

2626 25 set_render_mode_thickness 0 4 3645 35 NodePath::set_render_mode_thickness 0 1 869 359
/**
 * Sets up the point geometry at this level and below to render as thick
 * points (that is, billboarded quads).  The thickness is in pixels, unless
 * set_render_mode_perspective is also true, in which case it is in 3-D units.
 *
 * If you want the quads to be individually textured, you should also set a
 * TexGenAttrib::M_point_sprite on the node.
 */
82
void NodePath::set_render_mode_thickness(PN_stdfloat thickness, int priority = 0);

2627 27 set_render_mode_perspective 0 4 3645 37 NodePath::set_render_mode_perspective 0 1 870 461
/**
 * Sets up the point geometry at this level and below to render as perspective
 * sprites (that is, billboarded quads).  The thickness, as specified with
 * set_render_mode_thickness(), is the width of each point in 3-D units,
 * unless it is overridden on a per-vertex basis.  This does not affect
 * geometry other than points.
 *
 * If you want the quads to be individually textured, you should also set a
 * TexGenAttrib::M_point_sprite on the node.
 */
79
void NodePath::set_render_mode_perspective(bool perspective, int priority = 0);

2628 15 set_render_mode 0 4 3645 25 NodePath::set_render_mode 0 1 871 162
/**
 * Sets up the geometry at this level and below (unless overridden) to render
 * in the specified mode and with the indicated line and/or point thickness.
 */
101
void NodePath::set_render_mode(RenderModeAttrib::Mode mode, PN_stdfloat thickness, int priority = 0);

2629 17 clear_render_mode 0 4 3645 27 NodePath::clear_render_mode 0 1 872 156
/**
 * Completely removes any render mode adjustment that may have been set on
 * this node via set_render_mode_wireframe() or set_render_mode_filled().
 */
39
void NodePath::clear_render_mode(void);

2630 15 has_render_mode 0 4 3645 25 NodePath::has_render_mode 0 1 873 195
/**
 * Returns true if a render mode has been explicitly set on this particular
 * node via set_render_mode() (or set_render_mode_wireframe() or
 * set_render_mode_filled()), false otherwise.
 */
43
bool NodePath::has_render_mode(void) const;

2631 15 get_render_mode 0 4 3645 25 NodePath::get_render_mode 0 1 874 144
/**
 * Returns the render mode that has been specifically set on this node via
 * set_render_mode(), or M_unchanged if nothing has been set.
 */
61
RenderModeAttrib::Mode NodePath::get_render_mode(void) const;

2632 25 get_render_mode_thickness 0 4 3645 35 NodePath::get_render_mode_thickness 0 1 875 146
/**
 * Returns the render mode thickness that has been specifically set on this
 * node via set_render_mode(), or 1.0 if nothing has been set.
 */
60
PN_stdfloat NodePath::get_render_mode_thickness(void) const;

2633 27 get_render_mode_perspective 0 4 3645 37 NodePath::get_render_mode_perspective 0 1 876 130
/**
 * Returns the flag that has been set on this node via
 * set_render_mode_perspective(), or false if no flag has been set.
 */
55
bool NodePath::get_render_mode_perspective(void) const;

2634 13 set_two_sided 0 4 3645 23 NodePath::set_two_sided 0 1 877 237
/**
 * Specifically sets or disables two-sided rendering mode on this particular
 * node.  If no other nodes override, this will cause backfacing polygons to
 * be drawn (in two-sided mode, true) or culled (in one-sided mode, false).
 */
63
void NodePath::set_two_sided(bool two_sided, int priority = 0);

2635 15 clear_two_sided 0 4 3645 25 NodePath::clear_two_sided 0 1 878 336
/**
 * Completely removes any two-sided adjustment that may have been set on this
 * node via set_two_sided(). The geometry at this level and below will
 * subsequently be rendered either two-sided or one-sided, according to
 * whatever other nodes may have had set_two_sided() on it, or according to
 * the initial state otherwise.
 */
37
void NodePath::clear_two_sided(void);

2636 13 has_two_sided 0 4 3645 23 NodePath::has_two_sided 0 1 879 215
/**
 * Returns true if a two-sided adjustment has been explicitly set on this
 * particular node via set_two_sided().  If this returns true, then
 * get_two_sided() may be called to determine which has been set.
 */
41
bool NodePath::has_two_sided(void) const;

2637 13 get_two_sided 0 4 3645 23 NodePath::get_two_sided 0 1 880 378
/**
 * Returns true if two-sided rendering has been specifically set on this node
 * via set_two_sided(), or false if one-sided rendering has been specifically
 * set, or if nothing has been specifically set.  See also has_two_sided().
 * This does not necessarily imply that the geometry will or will not be
 * rendered two-sided, as there may be other nodes that override.
 */
41
bool NodePath::get_two_sided(void) const;

2638 14 set_depth_test 0 4 3645 24 NodePath::set_depth_test 0 1 881 236
/**
 * Specifically sets or disables the testing of the depth buffer on this
 * particular node.  This is normally on in the 3-d scene graph and off in the
 * 2-d scene graph; it should be on for rendering most 3-d objects properly.
 */
65
void NodePath::set_depth_test(bool depth_test, int priority = 0);

2639 16 clear_depth_test 0 4 3645 26 NodePath::clear_depth_test 0 1 882 116
/**
 * Completely removes any depth-test adjustment that may have been set on this
 * node via set_depth_test().
 */
38
void NodePath::clear_depth_test(void);

2640 14 has_depth_test 0 4 3645 24 NodePath::has_depth_test 0 1 883 218
/**
 * Returns true if a depth-test adjustment has been explicitly set on this
 * particular node via set_depth_test().  If this returns true, then
 * get_depth_test() may be called to determine which has been set.
 */
42
bool NodePath::has_depth_test(void) const;

2641 14 get_depth_test 0 4 3645 24 NodePath::get_depth_test 0 1 884 262
/**
 * Returns true if depth-test rendering has been specifically set on this node
 * via set_depth_test(), or false if depth-test rendering has been
 * specifically disabled.  If nothing has been specifically set, returns true.
 * See also has_depth_test().
 */
42
bool NodePath::get_depth_test(void) const;

2642 15 set_depth_write 0 4 3645 25 NodePath::set_depth_write 0 1 885 236
/**
 * Specifically sets or disables the writing to the depth buffer on this
 * particular node.  This is normally on in the 3-d scene graph and off in the
 * 2-d scene graph; it should be on for rendering most 3-d objects properly.
 */
67
void NodePath::set_depth_write(bool depth_write, int priority = 0);

2643 17 clear_depth_write 0 4 3645 27 NodePath::clear_depth_write 0 1 886 118
/**
 * Completely removes any depth-write adjustment that may have been set on
 * this node via set_depth_write().
 */
39
void NodePath::clear_depth_write(void);

2644 15 has_depth_write 0 4 3645 25 NodePath::has_depth_write 0 1 887 221
/**
 * Returns true if a depth-write adjustment has been explicitly set on this
 * particular node via set_depth_write().  If this returns true, then
 * get_depth_write() may be called to determine which has been set.
 */
43
bool NodePath::has_depth_write(void) const;

2645 15 get_depth_write 0 4 3645 25 NodePath::get_depth_write 0 1 888 266
/**
 * Returns true if depth-write rendering has been specifically set on this
 * node via set_depth_write(), or false if depth-write rendering has been
 * specifically disabled.  If nothing has been specifically set, returns true.
 * See also has_depth_write().
 */
43
bool NodePath::get_depth_write(void) const;

2646 16 set_depth_offset 0 4 3645 26 NodePath::set_depth_offset 0 1 889 542
/**
 * This instructs the graphics driver to apply an offset or bias to the
 * generated depth values for rendered polygons, before they are written to
 * the depth buffer.  This can be used to shift polygons forward slightly, to
 * resolve depth conflicts, or self-shadowing artifacts on thin objects.  The
 * bias is always an integer number, and each integer increment represents the
 * smallest possible increment in Z that is sufficient to completely resolve
 * two coplanar polygons.  Positive numbers are closer towards the camera.
 */
60
void NodePath::set_depth_offset(int bias, int priority = 0);

2647 18 clear_depth_offset 0 4 3645 28 NodePath::clear_depth_offset 0 1 890 120
/**
 * Completely removes any depth-offset adjustment that may have been set on
 * this node via set_depth_offset().
 */
40
void NodePath::clear_depth_offset(void);

2648 16 has_depth_offset 0 4 3645 26 NodePath::has_depth_offset 0 1 891 224
/**
 * Returns true if a depth-offset adjustment has been explicitly set on this
 * particular node via set_depth_offset().  If this returns true, then
 * get_depth_offset() may be called to determine which has been set.
 */
44
bool NodePath::has_depth_offset(void) const;

2649 16 get_depth_offset 0 4 3645 26 NodePath::get_depth_offset 0 1 892 106
/**
 * Returns the depth offset value if it has been specified using
 * set_depth_offset, or 0 if not.
 */
43
int NodePath::get_depth_offset(void) const;

2650 17 do_billboard_axis 0 4 3645 27 NodePath::do_billboard_axis 0 1 893 170
/**
 * Performs a billboard-type rotate to the indicated camera node, one time
 * only, and leaves the object rotated.  This is similar in principle to
 * heads_up().
 */
77
void NodePath::do_billboard_axis(NodePath const &camera, PN_stdfloat offset);

2651 22 do_billboard_point_eye 0 4 3645 32 NodePath::do_billboard_point_eye 0 1 894 266
/**
 * Performs a billboard-type rotate to the indicated camera node, one time
 * only, and leaves the object rotated.  This is similar in principle to
 * look_at(), although the point_eye billboard effect cannot be achieved using
 * the ordinary look_at() call.
 */
82
void NodePath::do_billboard_point_eye(NodePath const &camera, PN_stdfloat offset);

2652 24 do_billboard_point_world 0 4 3645 34 NodePath::do_billboard_point_world 0 1 895 169
/**
 * Performs a billboard-type rotate to the indicated camera node, one time
 * only, and leaves the object rotated.  This is similar in principle to
 * look_at().
 */
84
void NodePath::do_billboard_point_world(NodePath const &camera, PN_stdfloat offset);

2653 18 set_billboard_axis 0 4 3645 28 NodePath::set_billboard_axis 0 2 896 897 300
/**
 * Puts a billboard transition on the node such that it will rotate in two
 * dimensions around the up axis.
 */

/**
 * Puts a billboard transition on the node such that it will rotate in two
 * dimensions around the up axis, towards a specified "camera" instead of to
 * the viewing camera.
 */
146
inline void NodePath::set_billboard_axis(PN_stdfloat offset = 0.0);
void NodePath::set_billboard_axis(NodePath const &camera, PN_stdfloat offset);

2654 23 set_billboard_point_eye 0 4 3645 33 NodePath::set_billboard_point_eye 0 2 898 899 417
/**
 * Puts a billboard transition on the node such that it will rotate in three
 * dimensions about the origin, keeping its up vector oriented to the top of
 * the camera.
 */

/**
 * Puts a billboard transition on the node such that it will rotate in three
 * dimensions about the origin, keeping its up vector oriented to the top of
 * the camera, towards a specified "camera" instead of to the viewing camera.
 */
208
inline void NodePath::set_billboard_point_eye(PN_stdfloat offset = 0.0, bool fixed_depth = false);
void NodePath::set_billboard_point_eye(NodePath const &camera, PN_stdfloat offset, bool fixed_depth = false);

2655 25 set_billboard_point_world 0 4 3645 35 NodePath::set_billboard_point_world 0 2 900 901 386
/**
 * Puts a billboard transition on the node such that it will rotate in three
 * dimensions about the origin, keeping its up vector oriented to the sky.
 */

/**
 * Puts a billboard transition on the node such that it will rotate in three
 * dimensions about the origin, keeping its up vector oriented to the sky,
 * towards a specified "camera" instead of to the viewing camera.
 */
160
inline void NodePath::set_billboard_point_world(PN_stdfloat offset = 0.0);
void NodePath::set_billboard_point_world(NodePath const &camera, PN_stdfloat offset);

2656 15 clear_billboard 0 4 3645 25 NodePath::clear_billboard 0 1 902 54
/**
 * Removes any billboard effect from the node.
 */
37
void NodePath::clear_billboard(void);

2657 13 has_billboard 0 4 3645 23 NodePath::has_billboard 0 1 903 69
/**
 * Returns true if there is any billboard effect on the node.
 */
41
bool NodePath::has_billboard(void) const;

2658 11 set_compass 0 4 3645 21 NodePath::set_compass 0 1 904 204
/**
 * Puts a compass effect on the node, so that it will retain a fixed rotation
 * relative to the reference node (or render if the reference node is empty)
 * regardless of the transforms above it.
 */
67
void NodePath::set_compass(NodePath const &reference = NodePath());

2659 13 clear_compass 0 4 3645 23 NodePath::clear_compass 0 1 905 52
/**
 * Removes any compass effect from the node.
 */
35
void NodePath::clear_compass(void);

2660 11 has_compass 0 4 3645 21 NodePath::has_compass 0 1 906 67
/**
 * Returns true if there is any compass effect on the node.
 */
39
bool NodePath::has_compass(void) const;

2661 16 set_transparency 0 4 3645 26 NodePath::set_transparency 0 1 907 222
/**
 * Specifically sets or disables transparent rendering mode on this particular
 * node.  If no other nodes override, this will cause items with a non-1 value
 * for alpha color to be rendered partially transparent.
 */
81
void NodePath::set_transparency(TransparencyAttrib::Mode mode, int priority = 0);

2662 18 clear_transparency 0 4 3645 28 NodePath::clear_transparency 0 1 908 285
/**
 * Completely removes any transparency adjustment that may have been set on
 * this node via set_transparency(). The geometry at this level and below will
 * subsequently be rendered either transparent or not, to whatever other nodes
 * may have had set_transparency() on them.
 */
40
void NodePath::clear_transparency(void);

2663 16 has_transparency 0 4 3645 26 NodePath::has_transparency 0 1 909 303
/**
 * Returns true if a transparent-rendering adjustment has been explicitly set
 * on this particular node via set_transparency().  If this returns true, then
 * get_transparency() may be called to determine whether transparency has been
 * explicitly enabled or explicitly disabled for this node.
 */
44
bool NodePath::has_transparency(void) const;

2664 16 get_transparency 0 4 3645 26 NodePath::get_transparency 0 1 910 399
/**
 * Returns the transparent rendering that has been specifically set on this
 * node via set_transparency(), or M_none if nontransparent rendering has been
 * specifically set, or if nothing has been specifically set.  See also
 * has_transparency().  This does not necessarily imply that the geometry will
 * or will not be rendered transparent, as there may be other nodes that
 * override.
 */
64
TransparencyAttrib::Mode NodePath::get_transparency(void) const;

2665 12 set_logic_op 0 4 3645 22 NodePath::set_logic_op 0 1 911 248
/**
 * Specifically sets or disables a logical operation on this particular node.
 * If no other nodes override, this will cause geometry to be rendered without
 * color blending but instead using the given logical operator.
 *
 * @since 1.10.0
 */
75
void NodePath::set_logic_op(LogicOpAttrib::Operation op, int priority = 0);

2666 14 clear_logic_op 0 4 3645 24 NodePath::clear_logic_op 0 1 912 231
/**
 * Completely removes any logical operation that may have been set on this
 * node via set_logic_op(). The geometry at this level and below will
 * subsequently be rendered using standard color blending.
 *
 * @since 1.10.0
 */
36
void NodePath::clear_logic_op(void);

2667 12 has_logic_op 0 4 3645 22 NodePath::has_logic_op 0 1 913 316
/**
 * Returns true if a logical operation has been explicitly set on this
 * particular node via set_logic_op().  If this returns true, then
 * get_logic_op() may be called to determine whether a logical operation has
 * been explicitly disabled for this node or set to particular operation.
 *
 * @since 1.10.0
 */
40
bool NodePath::has_logic_op(void) const;

2668 12 get_logic_op 0 4 3645 22 NodePath::get_logic_op 0 1 914 427
/**
 * Returns the logical operation that has been specifically set on this node
 * via set_logic_op(), or O_none if standard color blending has been
 * specifically set, or if nothing has been specifically set.  See also
 * has_logic_op().  This does not necessarily imply that the geometry will
 * or will not be rendered with the given logical operation, as there may be
 * other nodes that override.
 *
 * @since 1.10.0
 */
60
LogicOpAttrib::Operation NodePath::get_logic_op(void) const;

2669 13 set_antialias 0 4 3645 23 NodePath::set_antialias 0 1 915 114
/**
 * Specifies the antialiasing type that should be applied at this node and
 * below.  See AntialiasAttrib.
 */
72
void NodePath::set_antialias(unsigned short int mode, int priority = 0);

2670 15 clear_antialias 0 4 3645 25 NodePath::clear_antialias 0 1 916 111
/**
 * Completely removes any antialias setting that may have been set on this
 * node via set_antialias().
 */
37
void NodePath::clear_antialias(void);

2671 13 has_antialias 0 4 3645 23 NodePath::has_antialias 0 1 917 216
/**
 * Returns true if an antialias setting has been explicitly mode on this
 * particular node via set_antialias().  If this returns true, then
 * get_antialias() may be called to determine what the setting was.
 */
41
bool NodePath::has_antialias(void) const;

2672 13 get_antialias 0 4 3645 23 NodePath::get_antialias 0 1 918 147
/**
 * Returns the antialias setting that has been specifically set on this node
 * via set_antialias(), or M_none if no setting has been made.
 */
55
unsigned short int NodePath::get_antialias(void) const;

2673 16 has_audio_volume 0 4 3645 26 NodePath::has_audio_volume 0 1 919 197
/**
 * Returns true if an audio volume has been applied to the referenced node,
 * false otherwise.  It is still possible that volume at this node might have
 * been scaled by an ancestor node.
 */
44
bool NodePath::has_audio_volume(void) const;

2674 18 clear_audio_volume 0 4 3645 28 NodePath::clear_audio_volume 0 1 920 225
/**
 * Completely removes any audio volume from the referenced node.  This is
 * preferable to simply setting the audio volume to identity, as it also
 * removes the overhead associated with having an audio volume at all.
 */
40
void NodePath::clear_audio_volume(void);

2675 16 set_audio_volume 0 4 3645 26 NodePath::set_audio_volume 0 1 921 59
/**
 * Sets the audio volume component of the transform
 */
70
void NodePath::set_audio_volume(PN_stdfloat volume, int priority = 0);

2676 20 set_audio_volume_off 0 4 3645 30 NodePath::set_audio_volume_off 0 1 922 447
/**
 * Disables any audio volume attribute inherited from above.  This is not the
 * same thing as clear_audio_volume(), which undoes any previous
 * set_audio_volume() operation on this node; rather, this actively disables
 * any set_audio_volume() that might be inherited from a parent node.
 *
 * It is legal to specify a new volume on the same node with a subsequent call
 * to set_audio_volume(); this new scale will apply to lower nodes.
 */
54
void NodePath::set_audio_volume_off(int priority = 0);

2677 16 get_audio_volume 0 4 3645 26 NodePath::get_audio_volume 0 1 923 200
/**
 * Returns the complete audio volume that has been applied to this node via a
 * previous call to set_audio_volume(), or 1. (identity) if no volume has been
 * applied to this particular node.
 */
51
PN_stdfloat NodePath::get_audio_volume(void) const;

2678 20 get_net_audio_volume 0 4 3645 30 NodePath::get_net_audio_volume 0 1 924 109
/**
 * Returns the complete audio volume for this node taking highers nodes in the
 * graph into account.
 */
55
PN_stdfloat NodePath::get_net_audio_volume(void) const;

2679 21 adjust_all_priorities 0 4 3645 31 NodePath::adjust_all_priorities 0 1 925 339
/**
 * Adds the indicated adjustment amount (which may be negative) to the
 * priority for all transitions on the referenced node, and for all nodes in
 * the subgraph below.  This can be used to force these nodes not to be
 * overridden by a high-level state change above.  If the priority would drop
 * below zero, it is set to zero.
 */
60
inline void NodePath::adjust_all_priorities(int adjustment);

2680 4 show 0 4 3645 14 NodePath::show 0 2 926 927 524
// Variants on show and hide

/**
 * Undoes the effect of a previous hide() on this node: makes the referenced
 * node (and the entire subgraph below this node) visible to all cameras.
 *
 * This will not reveal the node if a parent node has been hidden.
 */

/**
 * Makes the referenced node visible just to the cameras whose camera_mask
 * shares the indicated bits.
 *
 * This undoes the effect of a previous hide() call.  It will not reveal the
 * node if a parent node has been hidden.  However, see show_through().
 */
83
inline void NodePath::show(void);
inline void NodePath::show(DrawMask camera_mask);

2681 12 show_through 0 4 3645 22 NodePath::show_through 0 2 928 929 635
/**
 * Makes the referenced node visible just to the cameras whose camera_mask
 * shares the indicated bits.
 *
 * Unlike show(), this will reveal the node even if a parent node has been
 * hidden, thus "showing through" a parent's hide().
 */

/**
 * Makes the referenced node visible just to the cameras whose camera_mask
 * shares the indicated bits.
 *
 * Unlike show(), this will reveal the node even if a parent node has been
 * hidden via the one-parameter hide() method, thus "showing through" a
 * parent's hide().  (However, it will not show through a parent's hide() call
 * if the no-parameter form of hide() was used.)
 */
99
inline void NodePath::show_through(void);
inline void NodePath::show_through(DrawMask camera_mask);

2682 4 hide 0 4 3645 14 NodePath::hide 0 2 930 931 634
/**
 * Makes the referenced node (and the entire subgraph below this node)
 * invisible to all cameras.  It remains part of the scene graph, its bounding
 * volume still contributes to its parent's bounding volume, and it will still
 * be involved in collision tests.
 *
 * To undo this, call show().
 */

/**
 * Makes the referenced node invisible just to the cameras whose camera_mask
 * shares the indicated bits.
 *
 * This will also hide any nodes below this node in the scene graph, including
 * those nodes for which show() has been called, but it will not hide
 * descendent nodes for which show_through() has been called.
 */
83
inline void NodePath::hide(void);
inline void NodePath::hide(DrawMask camera_mask);

2683 9 is_hidden 0 4 3645 19 NodePath::is_hidden 0 1 932 141
/**
 * Returns true if the referenced node is hidden from the indicated camera(s)
 * either directly, or because some ancestor is hidden.
 */
91
inline bool NodePath::is_hidden(DrawMask camera_mask = PandaNode::get_overall_bit()) const;

2684 19 get_hidden_ancestor 0 4 3645 29 NodePath::get_hidden_ancestor 0 1 933 215
/**
 * Returns the NodePath at or above the referenced node that is hidden to the
 * indicated camera(s), or an empty NodePath if no ancestor of the referenced
 * node is hidden (and the node should be visible).
 */
153
NodePath NodePath::get_hidden_ancestor(DrawMask camera_mask = PandaNode::get_overall_bit(), Thread *current_thread = Thread::get_current_thread()) const;

2685 5 stash 0 4 3645 15 NodePath::stash 0 1 934 480
/**
 * Removes the referenced node (and the entire subgraph below this node) from
 * the scene graph in any normal sense.  The node will no longer be visible
 * and is not tested for collisions; furthermore, no normal scene graph
 * traversal will visit the node.  The node's bounding volume no longer
 * contributes to its parent's bounding volume.
 *
 * A stashed node cannot be located by a normal find() operation (although a
 * special find string can still retrieve it).
 */
90
void NodePath::stash(int sort = 0, Thread *current_thread = Thread::get_current_thread());

2686 7 unstash 0 4 3645 17 NodePath::unstash 0 1 935 174
/**
 * Undoes the effect of a previous stash() on this node: makes the referenced
 * node (and the entire subgraph below this node) once again part of the scene
 * graph.
 */
92
void NodePath::unstash(int sort = 0, Thread *current_thread = Thread::get_current_thread());

2687 11 unstash_all 0 4 3645 21 NodePath::unstash_all 0 1 936 59
/**
 * Unstashes this node and all stashed child nodes.
 */
82
void NodePath::unstash_all(Thread *current_thread = Thread::get_current_thread());

2688 10 is_stashed 0 4 3645 20 NodePath::is_stashed 0 1 937 114
/**
 * Returns true if the referenced node is stashed either directly, or because
 * some ancestor is stashed.
 */
45
inline bool NodePath::is_stashed(void) const;

2689 20 get_stashed_ancestor 0 4 3645 30 NodePath::get_stashed_ancestor 0 1 938 190
/**
 * Returns the NodePath at or above the referenced node that is stashed, or an
 * empty NodePath if no ancestor of the referenced node is stashed (and the
 * node should be visible).
 */
101
NodePath NodePath::get_stashed_ancestor(Thread *current_thread = Thread::get_current_thread()) const;

2690 16 get_collide_mask 0 4 3645 26 NodePath::get_collide_mask 0 1 939 309
/**
 * Returns the union of all of the into_collide_masks for nodes at this level
 * and below.  This is the same thing as node()->get_net_collide_mask().
 *
 * If you want to return what the into_collide_mask of this node itself is,
 * without regard to its children, use node()->get_into_collide_mask().
 */
58
inline CollideMask NodePath::get_collide_mask(void) const;

2691 16 set_collide_mask 0 4 3645 26 NodePath::set_collide_mask 0 1 940 489
/**
 * Recursively applies the indicated CollideMask to the into_collide_masks for
 * all nodes at this level and below.  If node_type is not TypeHandle::none(),
 * then only nodes matching (or inheriting from) the indicated PandaNode
 * subclass are modified.
 *
 * The default is to change all bits, but if bits_to_change is not all bits
 * on, then only the bits that are set in bits_to_change are modified,
 * allowing this call to change only a subset of the bits in the subgraph.
 */
156
inline void NodePath::set_collide_mask(CollideMask new_mask, CollideMask bits_to_change = CollideMask::all_on(), TypeHandle node_type = TypeHandle::none());

2692 11 operator == 0 4 3645 21 NodePath::operator == 0 2 941 942 21
// Comparison methods
124
inline bool NodePath::operator ==(NodePath const &other) const;
bool NodePath::operator ==(WeakNodePath const &other) const;

2693 11 operator != 0 4 3645 21 NodePath::operator != 0 2 943 944 0
124
inline bool NodePath::operator !=(NodePath const &other) const;
bool NodePath::operator !=(WeakNodePath const &other) const;

2694 10 operator < 0 4 3645 20 NodePath::operator < 0 2 945 946 0
122
inline bool NodePath::operator <(NodePath const &other) const;
bool NodePath::operator <(WeakNodePath const &other) const;

2695 10 compare_to 0 4 3645 20 NodePath::compare_to 0 2 947 948 974
/**
 * Returns a number less than zero if this NodePath sorts before the other
 * one, greater than zero if it sorts after, or zero if they are equivalent.
 *
 * Two NodePaths are considered equivalent if they consist of exactly the same
 * list of nodes in the same order.  Otherwise, they are different; different
 * NodePaths will be ranked in a consistent but undefined ordering; the
 * ordering is useful only for placing the NodePaths in a sorted container
 * like an STL set.
 */

/**
 * Returns a number less than zero if this NodePath sorts before the other
 * one, greater than zero if it sorts after, or zero if they are equivalent.
 *
 * Two NodePaths are considered equivalent if they consist of exactly the same
 * list of nodes in the same order.  Otherwise, they are different; different
 * NodePaths will be ranked in a consistent but undefined ordering; the
 * ordering is useful only for placing the NodePaths in a sorted container
 * like an STL set.
 */
120
inline int NodePath::compare_to(NodePath const &other) const;
int NodePath::compare_to(WeakNodePath const &other) const;

2696 15 verify_complete 0 4 3645 25 NodePath::verify_complete 0 1 949 125
// Miscellaneous

/**
 * Returns true if all of the nodes described in the NodePath are connected,
 * or false otherwise.
 */
92
bool NodePath::verify_complete(Thread *current_thread = Thread::get_current_thread()) const;

2697 14 premunge_scene 0 4 3645 24 NodePath::premunge_scene 0 1 950 414
/**
 * Walks through the scene graph beginning at the bottom node, and internally
 * adjusts any GeomVertexFormats for optimal rendering on the indicated GSG.
 * If this step is not done prior to rendering, the formats will be optimized
 * at render time instead, for a small cost.
 *
 * It is not normally necessary to do this on a model loaded directly from
 * disk, since the loader will do this by default.
 */
72
void NodePath::premunge_scene(GraphicsStateGuardianBase *gsg = nullptr);

2698 13 prepare_scene 0 4 3645 23 NodePath::prepare_scene 0 1 951 476
/**
 * Walks through the scene graph beginning at the bottom node, and does
 * whatever initialization is required to render the scene properly with the
 * indicated GSG.  It is not strictly necessary to call this, since the GSG
 * will initialize itself when the scene is rendered, but this may take some
 * of the overhead away from that process.
 *
 * In particular, this will ensure that textures and vertex buffers within the
 * scene are loaded into graphics memory.
 */
61
void NodePath::prepare_scene(GraphicsStateGuardianBase *gsg);

2699 11 show_bounds 0 4 3645 21 NodePath::show_bounds 0 1 952 273
/**
 * Causes the bounding volume of the bottom node and all of its descendants
 * (that is, the bounding volume associated with the the bottom arc) to be
 * rendered, if possible.  The rendering method is less than optimal; this is
 * intended primarily for debugging.
 */
33
void NodePath::show_bounds(void);

2700 17 show_tight_bounds 0 4 3645 27 NodePath::show_tight_bounds 0 1 953 288
/**
 * Similar to show_bounds(), this draws a bounding box representing the
 * "tight" bounds of this node and all of its descendants.  The bounding box
 * is recomputed every frame by reexamining all of the vertices; this is far
 * from efficient, but this is intended for debugging.
 */
39
void NodePath::show_tight_bounds(void);

2701 11 hide_bounds 0 4 3645 21 NodePath::hide_bounds 0 1 954 79
/**
 * Stops the rendering of the bounding volume begun with show_bounds().
 */
33
void NodePath::hide_bounds(void);

2702 10 get_bounds 0 4 3645 20 NodePath::get_bounds 0 1 955 214
/**
 * Returns a newly-allocated bounding volume containing the bottom node and
 * all of its descendants.  This is the bounding volume on the bottom arc,
 * converted to the local coordinate space of the node.
 */
110
PointerTo< BoundingVolume > NodePath::get_bounds(Thread *current_thread = Thread::get_current_thread()) const;

2703 22 force_recompute_bounds 0 4 3645 32 NodePath::force_recompute_bounds 0 1 956 520
/**
 * Forces the recomputing of all the bounding volumes at every node in the
 * subgraph beginning at this node and below.
 *
 * This should not normally need to be called, since the bounding volumes are
 * supposed to be recomputed automatically when necessary.  It may be useful
 * when debugging, to verify that the bounding volumes have not become
 * inadvertently stale; it may also be useful to force animated characters to
 * update their bounding volumes (which does not presently happen
 * automatically).
 */
44
void NodePath::force_recompute_bounds(void);

2704 12 write_bounds 0 4 3645 22 NodePath::write_bounds 0 1 957 143
/**
 * Writes a description of the bounding volume containing the bottom node and
 * all of its descendants to the indicated output stream.
 */
53
void NodePath::write_bounds(std::ostream &out) const;

2705 17 calc_tight_bounds 0 4 3645 27 NodePath::calc_tight_bounds 0 1 958 725
/**
 * Calculates the minimum and maximum vertices of all Geoms at this NodePath's
 * bottom node and below.  This is a tight bounding box; it will generally be
 * tighter than the bounding volume returned by get_bounds() (but it is more
 * expensive to compute).
 *
 * The bounding box is computed relative to the parent node's coordinate
 * system by default.  You can optionally specify a different NodePath to
 * compute the bounds relative to.  Note that the box is always axis-aligned
 * against the given NodePath's coordinate system, so you might get a
 * differently sized box depending on which node you pass.
 *
 * The return value is true if any points are within the bounding volume, or
 * false if none are.
 */
170
bool NodePath::calc_tight_bounds(LPoint3 &min_point, LPoint3 &max_point, NodePath const &other = NodePath(), Thread *current_thread = Thread::get_current_thread()) const;

2706 16 get_tight_bounds 0 4 3645 26 NodePath::get_tight_bounds 0 1 959 0
79
PyObject *NodePath::get_tight_bounds(NodePath const &other = NodePath()) const;

2707 13 flatten_light 0 4 3645 23 NodePath::flatten_light 0 1 960 811
/**
 * Lightly flattens out the hierarchy below this node by applying transforms,
 * colors, and texture matrices from the nodes onto the vertices, but does not
 * remove any nodes.
 *
 * This can result in improved rendering performance because there will be
 * fewer transforms in the resulting scene graph, but the number of nodes will
 * remain the same.
 *
 * In particular, any NodePaths that reference nodes within this hierarchy
 * will not be damaged.  However, since this operation will remove transforms
 * from the scene graph, it may be dangerous to apply to nodes where you
 * expect to dynamically modify the transform, or where you expect the
 * geometry to remain in a particular local coordinate system.
 *
 * The return value is always 0, since flatten_light does not remove any
 * nodes.
 */
34
int NodePath::flatten_light(void);

2708 14 flatten_medium 0 4 3645 24 NodePath::flatten_medium 0 1 961 488
/**
 * A more thorough flattening than flatten_light(), this first applies all the
 * transforms, colors, and texture matrices from the nodes onto the vertices,
 * and then removes unneeded grouping nodes--nodes that have exactly one
 * child, for instance, but have no special properties in themselves.
 *
 * This results in improved performance over flatten_light() because the
 * number of nodes in the scene graph is reduced.
 *
 * The return value is the number of nodes removed.
 */
35
int NodePath::flatten_medium(void);

2709 14 flatten_strong 0 4 3645 24 NodePath::flatten_strong 0 1 962 630
/**
 * The strongest possible flattening.  This first applies all of the
 * transforms to the vertices, as in flatten_medium(), but then it will
 * combine sibling nodes together when possible, in addition to removing
 * unnecessary parent-child nodes.  This can result in substantially fewer
 * nodes, but any nicely-grouped hierachical bounding volumes may be lost.
 *
 * It is generally a good idea to apply this kind of flattening only to nodes
 * that will be culled largely as a single unit, like a car.  Applying this to
 * an entire scene may result in overall poorer performance because of less-
 * effective culling.
 */
35
int NodePath::flatten_strong(void);

2710 20 apply_texture_colors 0 4 3645 30 NodePath::apply_texture_colors 0 1 963 692
/**
 * Removes textures from Geoms at this node and below by applying the texture
 * colors to the vertices.  This is primarily useful to simplify a low-LOD
 * model.  The texture colors are replaced by flat colors that approximate the
 * original textures.
 *
 * Only the bottommost texture on each Geom is used (if there is more than
 * one), and it is applied as if it were M_modulate, and WM_repeat, regardless
 * of its actual settings.  If the texture has a simple_ram_image, this may be
 * used if the main image isn't resident.
 *
 * After this call, there will be no texturing specified at this level and
 * below.  Of course, there might still be texturing inherited from above.
 */
42
void NodePath::apply_texture_colors(void);

2711 17 clear_model_nodes 0 4 3645 27 NodePath::clear_model_nodes 0 1 964 315
/**
 * Recursively walks through the scene graph at this level and below, looking
 * for ModelNodes, and calls model_node->set_preserve_transform(PT_drop_node)
 * on each one.  This allows a subsequent call to flatten_strong() to
 * eliminate all of the ModelNodes.
 *
 * Returns the number of ModelNodes found.
 */
45
inline int NodePath::clear_model_nodes(void);

2712 7 set_tag 0 4 3645 17 NodePath::set_tag 0 1 965 391
/**
 * Associates a user-defined value with a user-defined key which is stored on
 * the node.  This value has no meaning to Panda; but it is stored
 * indefinitely on the node until it is requested again.
 *
 * Each unique key stores a different string value.  There is no effective
 * limit on the number of different keys that may be stored or on the length
 * of any one key's value.
 */
80
inline void NodePath::set_tag(std::string const &key, std::string const &value);

2713 7 get_tag 0 4 3645 17 NodePath::get_tag 0 1 966 207
/**
 * Retrieves the user-defined value that was previously set on this node for
 * the particular key, if any.  If no value has been previously set, returns
 * the empty string.  See also get_net_tag().
 */
67
inline std::string NodePath::get_tag(std::string const &key) const;

2714 12 get_tag_keys 0 4 3645 22 NodePath::get_tag_keys 0 2 967 968 232
/**
 * Fills the given vector up with the list of tags on this PandaNode.
 *
 * It is the user's responsibility to ensure that the keys vector is empty
 * before making this call; otherwise, the new files will be appended to it.
 */
115
inline void NodePath::get_tag_keys(vector_string &keys) const;
inline PyObject *NodePath::get_tag_keys(void) const;

2715 7 has_tag 0 4 3645 17 NodePath::has_tag 0 1 969 195
/**
 * Returns true if a value has been defined on this node for the particular
 * key (even if that value is the empty string), or false if no value has been
 * set.  See also has_net_tag().
 */
60
inline bool NodePath::has_tag(std::string const &key) const;

2716 9 clear_tag 0 4 3645 19 NodePath::clear_tag 0 1 970 158
/**
 * Removes the value defined for this key on this particular node.  After a
 * call to clear_tag(), has_tag() will return false for the indicated key.
 */
56
inline void NodePath::clear_tag(std::string const &key);

2717 11 get_net_tag 0 4 3645 21 NodePath::get_net_tag 0 1 971 251
/**
 * Returns the tag value that has been defined on this node, or the nearest
 * ancestor node, for the indicated key.  If no value has been defined for the
 * indicated key on any ancestor node, returns the empty string.  See also
 * get_tag().
 */
71
inline std::string NodePath::get_net_tag(std::string const &key) const;

2718 11 has_net_tag 0 4 3645 21 NodePath::has_net_tag 0 1 972 149
/**
 * Returns true if the indicated tag value has been defined on this node or on
 * any ancestor node, or false otherwise.  See also has_tag().
 */
64
inline bool NodePath::has_net_tag(std::string const &key) const;

2719 12 find_net_tag 0 4 3645 22 NodePath::find_net_tag 0 1 973 215
/**
 * Returns the lowest ancestor of this node that contains a tag definition
 * with the indicated key, if any, or an empty NodePath if no ancestor of this
 * node contains this tag definition.  See set_tag().
 */
62
NodePath NodePath::find_net_tag(std::string const &key) const;

2720 8 get_tags 0 4 3645 18 NodePath::get_tags 0 1 974 0
48
inline PyObject *NodePath::get_tags(void) const;

2721 15 get_python_tags 0 4 3645 25 NodePath::get_python_tags 0 1 975 0
42
PyObject *NodePath::get_python_tags(void);

2722 14 set_python_tag 0 4 3645 24 NodePath::set_python_tag 0 1 976 0
70
inline void NodePath::set_python_tag(PyObject *keys, PyObject *value);

2723 14 get_python_tag 0 4 3645 24 NodePath::get_python_tag 0 1 977 0
64
inline PyObject *NodePath::get_python_tag(PyObject *keys) const;

2724 19 get_python_tag_keys 0 4 3645 29 NodePath::get_python_tag_keys 0 1 978 0
59
inline PyObject *NodePath::get_python_tag_keys(void) const;

2725 14 has_python_tag 0 4 3645 24 NodePath::has_python_tag 0 1 979 0
59
inline bool NodePath::has_python_tag(PyObject *keys) const;

2726 16 clear_python_tag 0 4 3645 26 NodePath::clear_python_tag 0 1 980 0
55
inline void NodePath::clear_python_tag(PyObject *keys);

2727 18 get_net_python_tag 0 4 3645 28 NodePath::get_net_python_tag 0 1 981 0
68
inline PyObject *NodePath::get_net_python_tag(PyObject *keys) const;

2728 18 has_net_python_tag 0 4 3645 28 NodePath::has_net_python_tag 0 1 982 0
63
inline bool NodePath::has_net_python_tag(PyObject *keys) const;

2729 19 find_net_python_tag 0 4 3645 29 NodePath::find_net_python_tag 0 1 983 0
61
NodePath NodePath::find_net_python_tag(PyObject *keys) const;

2730 12 __traverse__ 0 4 3645 22 NodePath::__traverse__ 0 1 984 0
55
int NodePath::__traverse__(visitproc visit, void *arg);

2731 9 list_tags 0 4 3645 19 NodePath::list_tags 0 1 985 153
/**
 * Lists the tags to the nout stream, one per line.  See
 * PandaNode::list_tags() for a variant that allows you to specify the output
 * stream.
 */
44
inline void NodePath::list_tags(void) const;

2732 8 set_name 0 4 3645 18 NodePath::set_name 0 1 986 51
/**
 * Changes the name of the referenced node.
 */
56
inline void NodePath::set_name(std::string const &name);

2733 8 get_name 0 4 3645 18 NodePath::get_name 0 1 987 51
/**
 * Returns the name of the referenced node.
 */
50
inline std::string NodePath::get_name(void) const;

2734 14 write_bam_file 0 4 3645 24 NodePath::write_bam_file 0 1 988 230
/**
 * Writes the contents of this node and below out to a bam file with the
 * indicated filename.  This file may then be read in again, as is, at some
 * later point.  Returns true if successful, false on some kind of error.
 */
62
bool NodePath::write_bam_file(Filename const &filename) const;

2735 16 write_bam_stream 0 4 3645 26 NodePath::write_bam_stream 0 1 989 82
/**
 * Writes the contents of this node and below out to the indicated stream.
 */
57
bool NodePath::write_bam_stream(std::ostream &out) const;

2736 20 encode_to_bam_stream 0 4 3645 30 NodePath::encode_to_bam_stream 0 2 990 991 1372
/**
 * Converts the NodePath object into a single stream of data using a
 * BamWriter, and returns that data as a string string.  Returns empty string
 * on failure.  This is similar to write_bam_stream().
 *
 * This method is used by __reduce__ to handle streaming of NodePaths to a
 * pickle file.
 */

/**
 * Converts the NodePath object into a single stream of data using a
 * BamWriter, and stores that data in the indicated string.  Returns true on
 * success, false on failure.
 *
 * If the BamWriter is NULL, this behaves the same way as
 * NodePath::write_bam_stream() and PandaNode::encode_to_bam_stream(), in the
 * sense that it only writes this node and all nodes below it.
 *
 * However, if the BamWriter is not NULL, it behaves very differently.  In
 * this case, it encodes the *entire graph* of all nodes connected to the
 * NodePath, including all parent nodes and siblings.  This is necessary for
 * correct streaming of related NodePaths and restoration of instances, etc.,
 * but it does mean you must detach() a node before writing it if you want to
 * limit the nodes that get written.
 *
 * This method is used by __reduce__ to handle streaming of NodePaths to a
 * pickle file.  The BamWriter case is used by the direct.stdpy.pickle module,
 * while the saner, non-BamWriter case is used when the standard pickle module
 * calls this function.
 */
155
inline vector_uchar NodePath::encode_to_bam_stream(void) const;
bool NodePath::encode_to_bam_stream(vector_uchar &data, BamWriter *writer = nullptr) const;

2737 22 decode_from_bam_stream 0 4 3645 32 NodePath::decode_from_bam_stream 0 1 992 162
/**
 * Reads the string created by a previous call to encode_to_bam_stream(), and
 * extracts and returns the NodePath on that string.  Returns NULL on error.
 */
97
static NodePath NodePath::decode_from_bam_stream(vector_uchar data, BamReader *reader = nullptr);

2738 14 get_class_type 0 4 3645 24 NodePath::get_class_type 0 1 993 0
49
static TypeHandle NodePath::get_class_type(void);

2739 9 ~NodePath 0 516 3645 19 NodePath::~NodePath 0 0 0
26
NodePath::~NodePath(void);

2740 8 add_node 0 4 3649 28 AttribNodeRegistry::add_node 0 1 1043 556
/**
 * Adds the indicated NodePath to the registry.  The name and type of the node
 * are noted at the time of this call; if the name changes later, it will not
 * update the registry index.
 *
 * The NodePath must reference some kind of an attribute node, such as a
 * LightNode or a PlaneNode.  When bam files that reference an attribute node
 * of the same type and the same name are loaded, they will quietly be
 * redirected to reference this NodePath.
 *
 * If there is already a node matching the indicated name and type, it will be
 * replaced.
 */
63
void AttribNodeRegistry::add_node(NodePath const &attrib_node);

2741 11 remove_node 0 4 3649 31 AttribNodeRegistry::remove_node 0 2 1044 1045 372
/**
 * Removes the indicated NodePath from the registry.  The name of the node
 * must not have changed since the matching call to add_node(), or it will not
 * be successfully removed.
 *
 * Returns true if the NodePath is found and removed, false if it is not found
 * (for instance, because the name has changed).
 */

/**
 * Removes the nth node from the registry.
 */
111
bool AttribNodeRegistry::remove_node(NodePath const &attrib_node);
void AttribNodeRegistry::remove_node(int n);

2742 11 lookup_node 0 4 3649 31 AttribNodeRegistry::lookup_node 0 1 1046 215
/**
 * Looks up the indicated NodePath in the registry.  If there is a node
 * already in the registry with the matching name and type, returns that
 * NodePath instead; otherwise, returns the original NodePath.
 */
74
NodePath AttribNodeRegistry::lookup_node(NodePath const &orig_node) const;

2743 13 get_num_nodes 0 4 3649 33 AttribNodeRegistry::get_num_nodes 0 1 1047 61
/**
 * Returns the total number of nodes in the registry.
 */
50
int AttribNodeRegistry::get_num_nodes(void) const;

2744 8 get_node 0 4 3649 28 AttribNodeRegistry::get_node 0 1 1048 61
/**
 * Returns the nth NodePath recorded in the registry.
 */
51
NodePath AttribNodeRegistry::get_node(int n) const;

2745 13 get_node_type 0 4 3649 33 AttribNodeRegistry::get_node_type 0 1 1049 73
/**
 * Returns the type of the nth node, as recorded in the registry.
 */
58
TypeHandle AttribNodeRegistry::get_node_type(int n) const;

2746 13 get_node_name 0 4 3649 33 AttribNodeRegistry::get_node_name 0 1 1050 236
/**
 * Returns the name of the nth node, as recorded in the registry.  This will
 * be the node name as it was at the time the node was recorded; if the node
 * has changed names since then, this will still return the original name.
 */
59
std::string AttribNodeRegistry::get_node_name(int n) const;

2747 9 find_node 0 4 3649 29 AttribNodeRegistry::find_node 0 2 1051 1052 394
/**
 * Returns the index number of the indicated NodePath in the registry
 * (assuming its name hasn't changed since it was recorded in the registry),
 * or -1 if the NodePath cannot be found (for instance, because its name has
 * changed).
 */

/**
 * Returns the index number of the node with the indicated type and name in
 * the registry, or -1 if there is no such node in the registry.
 */
152
int AttribNodeRegistry::find_node(NodePath const &attrib_node) const;
int AttribNodeRegistry::find_node(TypeHandle type, std::string const &name) const;

2748 5 clear 0 4 3649 25 AttribNodeRegistry::clear 0 1 1053 47
/**
 * Removes all nodes from the registry.
 */
37
void AttribNodeRegistry::clear(void);

2749 6 output 0 4 3649 26 AttribNodeRegistry::output 0 1 1054 10
/**
 *
 */
57
void AttribNodeRegistry::output(std::ostream &out) const;

2750 5 write 0 4 3649 25 AttribNodeRegistry::write 0 1 1055 10
/**
 *
 */
56
void AttribNodeRegistry::write(std::ostream &out) const;

2751 14 get_global_ptr 0 4 3649 34 AttribNodeRegistry::get_global_ptr 0 1 1056 10
/**
 *
 */
75
static inline AttribNodeRegistry *AttribNodeRegistry::get_global_ptr(void);

2752 19 ~AttribNodeRegistry 0 516 3649 39 AttribNodeRegistry::~AttribNodeRegistry 0 0 0
46
AttribNodeRegistry::~AttribNodeRegistry(void);

2753 13 make_identity 0 4 3650 32 AudioVolumeAttrib::make_identity 0 1 1057 54
/**
 * Constructs an identity audio volume attrib.
 */
77
static ConstPointerTo< RenderAttrib > AudioVolumeAttrib::make_identity(void);

2754 4 make 0 4 3650 23 AudioVolumeAttrib::make 0 1 1058 125
/**
 * Constructs a new AudioVolumeAttrib object that indicates audio volume
 * should be scaled by the indicated factor.
 */
82
static ConstPointerTo< RenderAttrib > AudioVolumeAttrib::make(PN_stdfloat volume);

2755 8 make_off 0 4 3650 27 AudioVolumeAttrib::make_off 0 1 1059 213
/**
 * Constructs a new AudioVolumeAttrib object that ignores any
 * AudioVolumeAttrib inherited from above.  You may also specify an additional
 * volume scale to apply to geometry below (using set_volume()).
 */
72
static ConstPointerTo< RenderAttrib > AudioVolumeAttrib::make_off(void);

2756 12 make_default 0 4 3650 31 AudioVolumeAttrib::make_default 0 1 1060 145
/**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */
76
static ConstPointerTo< RenderAttrib > AudioVolumeAttrib::make_default(void);

2757 6 is_off 0 4 3650 25 AudioVolumeAttrib::is_off 0 1 1061 257
/**
 * Returns true if the AudioVolumeAttrib will ignore any color scales
 * inherited from above, false otherwise.  This is not the same thing as
 * !has_scale(); a AudioVolumeAttrib may have the "off" flag set and also have
 * another scale specified.
 */
50
inline bool AudioVolumeAttrib::is_off(void) const;

2758 10 has_volume 0 4 3650 29 AudioVolumeAttrib::has_volume 0 1 1062 159
/**
 * Returns true if the AudioVolumeAttrib has a non-identity volume, false
 * otherwise (in which case it might be an off attrib or an identity attrib).
 */
54
inline bool AudioVolumeAttrib::has_volume(void) const;

2759 10 get_volume 0 4 3650 29 AudioVolumeAttrib::get_volume 0 1 1063 54
/**
 * Returns the volume to be applied to sounds.
 */
61
inline PN_stdfloat AudioVolumeAttrib::get_volume(void) const;

2760 10 set_volume 0 4 3650 29 AudioVolumeAttrib::set_volume 0 1 1064 118
/**
 * Returns a new AudioVolumeAttrib, just like this one, but with the volume
 * changed to the indicated value.
 */
87
ConstPointerTo< RenderAttrib > AudioVolumeAttrib::set_volume(PN_stdfloat volume) const;

2761 14 get_class_slot 0 4 3650 33 AudioVolumeAttrib::get_class_slot 0 1 1065 0
51
static int AudioVolumeAttrib::get_class_slot(void);

2762 14 get_class_type 0 4 3650 33 AudioVolumeAttrib::get_class_type 0 1 1066 0
58
static TypeHandle AudioVolumeAttrib::get_class_type(void);

2763 18 ~AudioVolumeAttrib 0 516 3650 37 AudioVolumeAttrib::~AudioVolumeAttrib 0 0 0
44
AudioVolumeAttrib::~AudioVolumeAttrib(void);

2764 4 make 0 4 3651 23 AuxBitplaneAttrib::make 0 2 1067 1068 118
/**
 * Constructs a default AuxBitplaneAttrib object.
 */

/**
 * Constructs a specified AuxBitplaneAttrib object.
 */
144
static ConstPointerTo< RenderAttrib > AuxBitplaneAttrib::make(void);
static ConstPointerTo< RenderAttrib > AuxBitplaneAttrib::make(int outputs);

2765 12 make_default 0 4 3651 31 AuxBitplaneAttrib::make_default 0 1 1069 145
/**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */
76
static ConstPointerTo< RenderAttrib > AuxBitplaneAttrib::make_default(void);

2766 11 get_outputs 0 4 3651 30 AuxBitplaneAttrib::get_outputs 0 1 1070 53
/**
 * Returns the AuxBitplaneAttrib output bits.
 */
54
inline int AuxBitplaneAttrib::get_outputs(void) const;

2767 14 get_class_slot 0 4 3651 33 AuxBitplaneAttrib::get_class_slot 0 1 1071 0
51
static int AuxBitplaneAttrib::get_class_slot(void);

2768 14 get_class_type 0 4 3651 33 AuxBitplaneAttrib::get_class_type 0 1 1072 0
58
static TypeHandle AuxBitplaneAttrib::get_class_type(void);

2769 18 ~AuxBitplaneAttrib 0 516 3651 37 AuxBitplaneAttrib::~AuxBitplaneAttrib 0 0 0
44
AuxBitplaneAttrib::~AuxBitplaneAttrib(void);

2770 12 set_duration 0 4 3653 26 AuxSceneData::set_duration 0 1 1074 159
/**
 * Specifies the minimum length in time, in seconds, to keep this AuxSceneData
 * object around in the scene graph after the last time it was rendered.
 */
56
inline void AuxSceneData::set_duration(double duration);

2771 12 get_duration 0 4 3653 26 AuxSceneData::get_duration 0 1 1075 157
/**
 * Returns the minimum length in time, in seconds, to keep this AuxSceneData
 * object around in the scene graph after the last time it was rendered.
 */
53
inline double AuxSceneData::get_duration(void) const;

2772 20 set_last_render_time 0 4 3653 34 AuxSceneData::set_last_render_time 0 1 1076 111
/**
 * Should be called with the current frame_time each time the AuxSceneData is
 * used during traversal.
 */
67
inline void AuxSceneData::set_last_render_time(double render_time);

2773 20 get_last_render_time 0 4 3653 34 AuxSceneData::get_last_render_time 0 1 1077 112
/**
 * Returns the last time this object was used during traversal (according to
 * set_last_render_time()).
 */
61
inline double AuxSceneData::get_last_render_time(void) const;

2774 19 get_expiration_time 0 4 3653 33 AuxSceneData::get_expiration_time 0 1 1078 129
/**
 * Returns the frame_time at which this AuxSceneData object is currently
 * scheduled to be removed from the scene graph.
 */
60
inline double AuxSceneData::get_expiration_time(void) const;

2775 6 output 0 6 3653 20 AuxSceneData::output 0 1 1079 10
/**
 *
 */
59
virtual void AuxSceneData::output(std::ostream &out) const;

2776 5 write 0 6 3653 19 AuxSceneData::write 0 1 1080 10
/**
 *
 */
80
virtual void AuxSceneData::write(std::ostream &out, int indent_level = 0) const;

2777 14 get_class_type 0 4 3653 28 AuxSceneData::get_class_type 0 1 1081 0
53
static TypeHandle AuxSceneData::get_class_type(void);

2778 12 AuxSceneData 0 260 3653 26 AuxSceneData::AuxSceneData 0 1 1073 193
/**
 * This is protected, since you normally don't want to create a plain
 * AuxSceneData object; instead, create an instance of a derived class that
 * actually has some useful data in it.
 */
66
inline AuxSceneData::AuxSceneData(AuxSceneData const &) = default;

2779 13 ~AuxSceneData 0 516 3653 27 AuxSceneData::~AuxSceneData 0 0 0
34
AuxSceneData::~AuxSceneData(void);

2780 7 BamFile 0 260 3655 16 BamFile::BamFile 0 1 1082 10
/**
 *
 */
23
BamFile::BamFile(void);

2781 8 ~BamFile 0 516 3655 17 BamFile::~BamFile 0 0 10
/**
 *
 */
24
BamFile::~BamFile(void);

2782 9 open_read 0 4 3655 18 BamFile::open_read 0 2 1083 1084 275
/**
 * Attempts to open the indicated filename for reading.  Returns true if
 * successful, false on error.
 */

/**
 * Attempts to open the indicated stream for reading.  The filename is just
 * for information purposes only.  Returns true if successful, false on error.
 */
195
bool BamFile::open_read(Filename const &bam_filename, bool report_errors = true);
bool BamFile::open_read(std::istream &in, std::string const &bam_filename = "stream", bool report_errors = true);

2783 11 read_object 0 4 3655 20 BamFile::read_object 0 1 1085 313
/**
 * Reads and returns the next object from the Bam file, or NULL if the end of
 * the file has been reached, or if there is an error condition.  Use is_eof()
 * to differentiate these two cases.
 *
 * The pointers returned by this method will not be valid for use until
 * resolve() is subsequently called.
 */
42
TypedWritable *BamFile::read_object(void);

2784 6 is_eof 0 4 3655 15 BamFile::is_eof 0 1 1086 138
/**
 * Returns true if the reader has reached end-of-file, false otherwise.  This
 * call is only valid after a call to read_object().
 */
33
bool BamFile::is_eof(void) const;

2785 7 resolve 0 4 3655 16 BamFile::resolve 0 1 1087 358
/**
 * This must be called after one or more objects have been read via calls to
 * read_object() in order to resolve all internal pointer references in the
 * objects read and make all the pointers valid.  It returns true if all
 * objects are successfully resolved, or false if some have not been (in which
 * case you must call resolve() again later).
 */
28
bool BamFile::resolve(void);

2786 9 read_node 0 4 3655 18 BamFile::read_node 0 1 1088 758
/**
 * Although the bam file format is general enough to store a list of objects
 * of arbitrary type, bam files on disk usually contain just one object, a
 * PandaNode that is the root of a scene graph.  (Bam files that store other
 * kinds of things are usually given the extension "boo", for "binary other
 * objects", to differentiate them from the normal scene graph type file.)
 *
 * This is a convenience method for when you believe you are reading a scene
 * graph bam file.  It reads the one PandaNode and returns it.  It also calls
 * resolve() to fully resolve the object, since we expect this will be the
 * only object in the file.
 *
 * If the bam file contains something other than a PandaNode, an error is
 * printed and NULL is returned.
 */
69
PointerTo< PandaNode > BamFile::read_node(bool report_errors = true);

2787 10 open_write 0 4 3655 19 BamFile::open_write 0 2 1089 1090 354
/**
 * Attempts to open the indicated file for writing.  If another file by the
 * same name already exists, it will be silently removed.  Returns true if
 * successful, false otherwise.
 */

/**
 * Attempts to open the indicated stream for writing.  The filename is just
 * for information purposes only.  Returns true if successful, false on error.
 */
198
bool BamFile::open_write(Filename const &bam_filename, bool report_errors = true);
bool BamFile::open_write(std::ostream &out, std::string const &bam_filename = "stream", bool report_errors = true);

2788 12 write_object 0 4 3655 21 BamFile::write_object 0 1 1091 103
/**
 * Writes the indicated object to the Bam file.  Returns true if successful,
 * false on error.
 */
56
bool BamFile::write_object(TypedWritable const *object);

2789 5 close 0 4 3655 14 BamFile::close 0 1 1092 45
/**
 * Closes the input or output stream.
 */
26
void BamFile::close(void);

2790 13 is_valid_read 0 4 3655 22 BamFile::is_valid_read 0 1 1093 124
/**
 * Returns true if the Bam file is open and ready for reading with no errors
 * so far detected, or false otherwise.
 */
47
inline bool BamFile::is_valid_read(void) const;

2791 14 is_valid_write 0 4 3655 23 BamFile::is_valid_write 0 1 1094 124
/**
 * Returns true if the Bam file is open and ready for writing with no errors
 * so far detected, or false otherwise.
 */
48
inline bool BamFile::is_valid_write(void) const;

2792 18 get_file_major_ver 0 4 3655 27 BamFile::get_file_major_ver 0 1 1095 168
/**
 * Returns the major version number of the file currently being read, or the
 * system current major version number if no file is currently open for
 * reading.
 */
38
int BamFile::get_file_major_ver(void);

2793 18 get_file_minor_ver 0 4 3655 27 BamFile::get_file_minor_ver 0 1 1096 168
/**
 * Returns the minor version number of the file currently being read, or the
 * system current minor version number if no file is currently open for
 * reading.
 */
38
int BamFile::get_file_minor_ver(void);

2794 15 get_file_endian 0 4 3655 24 BamFile::get_file_endian 0 1 1097 102
/**
 * Returns the endian preference indicated by the Bam file currently being
 * read or written.
 */
57
BamEnums::BamEndian BamFile::get_file_endian(void) const;

2795 24 get_file_stdfloat_double 0 4 3655 33 BamFile::get_file_stdfloat_double 0 1 1098 122
/**
 * Returns true if the file stores all "standard" floats as 64-bit doubles, or
 * false if they are 32-bit floats.
 */
51
bool BamFile::get_file_stdfloat_double(void) const;

2796 21 get_current_major_ver 0 4 3655 30 BamFile::get_current_major_ver 0 1 1099 140
/**
 * Returns the system current major version number.  This is the version
 * number that will be assigned to any generated Bam files.
 */
41
int BamFile::get_current_major_ver(void);

2797 21 get_current_minor_ver 0 4 3655 30 BamFile::get_current_minor_ver 0 1 1100 140
/**
 * Returns the system current minor version number.  This is the version
 * number that will be assigned to any generated Bam files.
 */
41
int BamFile::get_current_minor_ver(void);

2798 10 get_reader 0 4 3655 19 BamFile::get_reader 0 1 1101 134
/**
 * Returns the BamReader in charge of performing the read operations.  This
 * will return NULL unless open_read() was called.
 */
37
BamReader *BamFile::get_reader(void);

2799 10 get_writer 0 4 3655 19 BamFile::get_writer 0 1 1102 136
/**
 * Returns the BamWriter in charge of performing the write operations.  This
 * will return NULL unless open_write() was called.
 */
37
BamWriter *BamFile::get_writer(void);

2800 16 get_file_version 0 4 3655 25 BamFile::get_file_version 0 0 0
48
PyObject *BamFile::get_file_version(void) const;

2801 4 make 0 4 3662 21 BillboardEffect::make 0 1 1103 81
/**
 * Constructs a new BillboardEffect object with the indicated properties.
 */
226
static ConstPointerTo< RenderEffect > BillboardEffect::make(LVector3 const &up_vector, bool eye_relative, bool axial_rotate, PN_stdfloat offset, NodePath const &look_at, LPoint3 const &look_at_point, bool fixed_depth = false);

2802 9 make_axis 0 4 3662 26 BillboardEffect::make_axis 0 1 1104 76
/**
 * A convenience function to make a typical axis-rotating billboard.
 */
78
static inline ConstPointerTo< RenderEffect > BillboardEffect::make_axis(void);

2803 14 make_point_eye 0 4 3662 31 BillboardEffect::make_point_eye 0 1 1105 93
/**
 * A convenience function to make a typical eye-relative point-rotating
 * billboard.
 */
83
static inline ConstPointerTo< RenderEffect > BillboardEffect::make_point_eye(void);

2804 16 make_point_world 0 4 3662 33 BillboardEffect::make_point_world 0 1 1106 95
/**
 * A convenience function to make a typical world-relative point-rotating
 * billboard.
 */
85
static inline ConstPointerTo< RenderEffect > BillboardEffect::make_point_world(void);

2805 6 is_off 0 4 3662 23 BillboardEffect::is_off 0 1 1107 323
/**
 * Returns true if the BillboardEffect is an 'off' BillboardEffect, indicating
 * that it does not enable billboarding.  This kind of BillboardEffect isn't
 * particularly useful and isn't normally created or stored in the graph; it
 * might be implicitly discovered as the result of a
 * NodePath::get_rel_state().
 */
48
inline bool BillboardEffect::is_off(void) const;

2806 13 get_up_vector 0 4 3662 30 BillboardEffect::get_up_vector 0 1 1108 62
/**
 * Returns the up vector in effect for this billboard.
 */
66
inline LVector3 const &BillboardEffect::get_up_vector(void) const;

2807 16 get_eye_relative 0 4 3662 33 BillboardEffect::get_eye_relative 0 1 1109 134
/**
 * Returns true if this billboard interprets the up vector relative to the
 * camera, or false if it is relative to the world.
 */
58
inline bool BillboardEffect::get_eye_relative(void) const;

2808 16 get_axial_rotate 0 4 3662 33 BillboardEffect::get_axial_rotate 0 1 1110 142
/**
 * Returns true if this billboard rotates only around the axis of the up
 * vector, or false if it rotates freely in three dimensions.
 */
58
inline bool BillboardEffect::get_axial_rotate(void) const;

2809 15 get_fixed_depth 0 4 3662 32 BillboardEffect::get_fixed_depth 0 1 1111 96
/**
 * Returns true if this billboard always appears at a fixed distance from the
 * camera.
 */
57
inline bool BillboardEffect::get_fixed_depth(void) const;

2810 10 get_offset 0 4 3662 27 BillboardEffect::get_offset 0 1 1112 204
/**
 * Returns the distance toward the camera (or the look_at_point) the billboard
 * is moved towards, after rotating.  This can be used to ensure the billboard
 * is not obscured by nearby geometry.
 */
59
inline PN_stdfloat BillboardEffect::get_offset(void) const;

2811 11 get_look_at 0 4 3662 28 BillboardEffect::get_look_at 0 1 1113 188
/**
 * Returns the node this billboard will rotate to look towards.  If this is
 * empty, it means the billboard will rotate towards the current camera node,
 * wherever that might be.
 */
64
inline NodePath const &BillboardEffect::get_look_at(void) const;

2812 17 get_look_at_point 0 4 3662 34 BillboardEffect::get_look_at_point 0 1 1114 132
/**
 * Returns the point, relative to the look_at node, towards which the
 * billboard will rotate.  Normally this is (0, 0, 0).
 */
69
inline LPoint3 const &BillboardEffect::get_look_at_point(void) const;

2813 14 get_class_type 0 4 3662 31 BillboardEffect::get_class_type 0 1 1115 0
56
static TypeHandle BillboardEffect::get_class_type(void);

2814 16 ~BillboardEffect 0 516 3662 33 BillboardEffect::~BillboardEffect 0 0 0
40
BillboardEffect::~BillboardEffect(void);

2815 8 LensNode 0 260 3663 18 LensNode::LensNode 0 1 1116 22
/**
 *
 */

/**
 *
 */
75
explicit LensNode::LensNode(std::string const &name, Lens *lens = nullptr);

2816 9 copy_lens 0 4 3663 19 LensNode::copy_lens 0 2 1117 1118 211
/**
 * Sets up the LensNode using a copy of the indicated Lens.  If the original
 * Lens is changed or destroyed, this LensNode is not affected.
 */

/**
 * Copies the indicated lens into the specified slot.
 */
112
inline void LensNode::copy_lens(Lens const &lens);
inline void LensNode::copy_lens(int index, Lens const &lens);

2817 8 set_lens 0 4 3663 18 LensNode::set_lens 0 2 1119 1120 472
/**
 * Sets up the LensNode using this particular Lens pointer.  If the lens is
 * subsequently modified, the LensNode properties immediately reflect the
 * change.
 */

/**
 * Sets the indicated lens.  Although a LensNode normally holds only one lens,
 * it may optionally include multiple lenses, each with a different index
 * number.  The different lenses may be referenced by index number on the
 * DisplayRegion.  Adding a new lens automatically makes it active.
 */
91
inline void LensNode::set_lens(Lens *lens);
void LensNode::set_lens(int index, Lens *lens);

2818 8 get_lens 0 4 3663 18 LensNode::get_lens 0 1 1121 191
/**
 * Returns a pointer to the particular Lens associated with this LensNode, or
 * NULL if there is not yet a Lens associated.  If an index number is
 * specified, returns the nth lens.
 */
53
inline Lens *LensNode::get_lens(int index = 0) const;

2819 15 set_lens_active 0 4 3663 25 LensNode::set_lens_active 0 1 1122 263
/**
 * Sets the active flag for the nth lens.  When a lens is inactive, it is not
 * used for rendering, and any DisplayRegions associated with it are
 * implicitly inactive as well.  Returns true if the flag is changed, false if
 * it already had this value.
 */
55
bool LensNode::set_lens_active(int index, bool active);

2820 15 get_lens_active 0 4 3663 25 LensNode::get_lens_active 0 1 1123 52
/**
 * Returns the active flag for the nth lens.
 */
55
inline bool LensNode::get_lens_active(int index) const;

2821 13 activate_lens 0 4 3663 23 LensNode::activate_lens 0 1 1124 65
/**
 * An alternate way to call set_lens_active(index, true).
 */
47
inline bool LensNode::activate_lens(int index);

2822 15 deactivate_lens 0 4 3663 25 LensNode::deactivate_lens 0 1 1125 66
/**
 * An alternate way to call set_lens_active(index, false).
 */
49
inline bool LensNode::deactivate_lens(int index);

2823 10 is_in_view 0 4 3663 20 LensNode::is_in_view 0 2 1126 1127 336
/**
 * Returns true if the given point is within the bounds of the lens of the
 * LensNode (i.e.  if the camera can see the point).
 */

/**
 * Returns true if the given point is within the bounds of the lens of the
 * LensNode (i.e.  if the camera can see the point).  The point is assumed to
 * be relative to the LensNode itself.
 */
111
inline bool LensNode::is_in_view(LPoint3 const &pos);
bool LensNode::is_in_view(int index, LPoint3 const &pos);

2824 12 show_frustum 0 4 3663 22 LensNode::show_frustum 0 1 1128 149
/**
 * Enables the drawing of the lens's frustum to aid in visualization.  This
 * actually creates a GeomNode which is parented to the LensNode.
 */
34
void LensNode::show_frustum(void);

2825 12 hide_frustum 0 4 3663 22 LensNode::hide_frustum 0 1 1129 78
/**
 * Disables the drawing of the lens's frustum to aid in visualization.
 */
34
void LensNode::hide_frustum(void);

2826 14 get_class_type 0 4 3663 24 LensNode::get_class_type 0 1 1130 0
49
static TypeHandle LensNode::get_class_type(void);

2827 9 ~LensNode 0 516 3663 19 LensNode::~LensNode 0 0 0
26
LensNode::~LensNode(void);

2828 12 WeakNodePath 0 260 3664 26 WeakNodePath::WeakNodePath 0 2 1131 1132 22
/**
 *
 */

/**
 *
 */
122
inline WeakNodePath::WeakNodePath(NodePath const &node_path);
inline WeakNodePath::WeakNodePath(WeakNodePath const &copy);

2829 13 ~WeakNodePath 0 516 3664 27 WeakNodePath::~WeakNodePath 0 0 10
/**
 *
 */
41
inline WeakNodePath::~WeakNodePath(void);

2830 10 operator = 0 4 3664 24 WeakNodePath::operator = 0 2 1133 1134 0
128
inline void WeakNodePath::operator =(NodePath const &node_path);
inline void WeakNodePath::operator =(WeakNodePath const &copy);

2831 5 clear 0 4 3664 19 WeakNodePath::clear 0 1 1135 93
/**
 * Sets this NodePath to the empty NodePath.  It will no longer point to any
 * node.
 */
38
inline void WeakNodePath::clear(void);

2832 22 operator typecast bool 0 132 3664 36 WeakNodePath::operator typecast bool 0 1 1150 0
34
inline operator bool (void) const;

2833 8 is_empty 0 4 3664 22 WeakNodePath::is_empty 0 1 1136 85
/**
 * Returns true if the NodePath contains no nodes, or if it has been deleted.
 */
47
inline bool WeakNodePath::is_empty(void) const;

2834 11 was_deleted 0 4 3664 25 WeakNodePath::was_deleted 0 1 1137 116
/**
 * Returns true if the NodePath we were referencing has been quietly deleted
 * outside of the WeakNodePath.
 */
50
inline bool WeakNodePath::was_deleted(void) const;

2835 13 get_node_path 0 4 3664 27 WeakNodePath::get_node_path 0 1 1138 131
/**
 * Returns the NodePath held within this object, or an empty NodePath with the
 * error flag set if the object was deleted.
 */
56
inline NodePath WeakNodePath::get_node_path(void) const;

2836 4 node 0 4 3664 18 WeakNodePath::node 0 1 1139 98
/**
 * Returns the PandaNode held within this object, or nullptr if the object was
 * deleted.
 */
61
inline PointerTo< PandaNode > WeakNodePath::node(void) const;

2837 11 operator == 0 4 3664 25 WeakNodePath::operator == 0 2 1140 1141 0
139
inline bool WeakNodePath::operator ==(NodePath const &other) const;
inline bool WeakNodePath::operator ==(WeakNodePath const &other) const;

2838 11 operator != 0 4 3664 25 WeakNodePath::operator != 0 2 1142 1143 0
139
inline bool WeakNodePath::operator !=(NodePath const &other) const;
inline bool WeakNodePath::operator !=(WeakNodePath const &other) const;

2839 10 operator < 0 4 3664 24 WeakNodePath::operator < 0 2 1144 1145 0
137
inline bool WeakNodePath::operator <(NodePath const &other) const;
inline bool WeakNodePath::operator <(WeakNodePath const &other) const;

2840 10 compare_to 0 4 3664 24 WeakNodePath::compare_to 0 2 1146 1147 990
/**
 * Returns a number less than zero if this NodePath sorts before the other
 * one, greater than zero if it sorts after, or zero if they are equivalent.
 *
 * Two NodePaths are considered equivalent if they consist of exactly the same
 * list of nodes in the same order.  Otherwise, they are different; different
 * NodePaths will be ranked in a consistent but undefined ordering; the
 * ordering is useful only for placing the NodePaths in a sorted container
 * like an STL set.
 */

/**
 * Returns a number less than zero if this WeakNodePath sorts before the other
 * one, greater than zero if it sorts after, or zero if they are equivalent.
 *
 * Two WeakNodePaths are considered equivalent if they consist of exactly the
 * same list of nodes in the same order.  Otherwise, they are different;
 * different WeakNodePaths will be ranked in a consistent but undefined
 * ordering; the ordering is useful only for placing the WeakNodePaths in a
 * sorted container like an STL set.
 */
135
inline int WeakNodePath::compare_to(NodePath const &other) const;
inline int WeakNodePath::compare_to(WeakNodePath const &other) const;

2841 7 get_key 0 4 3664 21 WeakNodePath::get_key 0 1 1148 58
/**
 * Returns the same values as NodePath::get_key().
 */
45
inline int WeakNodePath::get_key(void) const;

2842 6 output 0 4 3664 20 WeakNodePath::output 0 1 1149 10
/**
 *
 */
51
void WeakNodePath::output(std::ostream &out) const;

2843 6 Camera 0 260 3665 14 Camera::Camera 0 2 1151 1152 22
/**
 *
 */

/**
 *
 */
123
explicit Camera::Camera(std::string const &name, Lens *lens = (new PerspectiveLens()));
Camera::Camera(Camera const &copy);

2844 10 set_active 0 4 3665 18 Camera::set_active 0 1 1153 107
/**
 * Sets the active flag on the camera.  When the camera is not active, nothing
 * will be rendered.
 */
44
inline void Camera::set_active(bool active);

2845 9 is_active 0 4 3665 17 Camera::is_active 0 1 1154 72
/**
 * Returns the current setting of the active flag on the camera.
 */
42
inline bool Camera::is_active(void) const;

2846 9 set_scene 0 4 3665 17 Camera::set_scene 0 1 1155 479
/**
 * Sets the scene that will be rendered by the camera.  This is normally the
 * root node of a scene graph, typically a node called 'render', although it
 * could represent the root of any subgraph.
 *
 * Note that the use of this method is now deprecated.  In the absence of an
 * explicit scene set on the camera, the camera will render whatever scene it
 * is parented into.  This is the preferred way to specify the scene, since it
 * is the more intuitive mechanism.
 */
53
inline void Camera::set_scene(NodePath const &scene);

2847 9 get_scene 0 4 3665 17 Camera::get_scene 0 1 1156 83
/**
 * Returns the scene that will be rendered by the camera.  See set_scene().
 */
53
inline NodePath const &Camera::get_scene(void) const;

2848 23 get_num_display_regions 0 4 3665 31 Camera::get_num_display_regions 0 1 1157 76
/**
 * Returns the number of display regions associated with the camera.
 */
63
inline std::size_t Camera::get_num_display_regions(void) const;

2849 18 get_display_region 0 4 3665 26 Camera::get_display_region 0 1 1158 69
/**
 * Returns the nth display region associated with the camera.
 */
70
inline DisplayRegion *Camera::get_display_region(std::size_t n) const;

2850 15 set_camera_mask 0 4 3665 23 Camera::set_camera_mask 0 1 1159 401
/**
 * Changes the set of bits that represent the subset of the scene graph the
 * camera will render.
 *
 * During the cull traversal, a node is not visited if none of its draw mask
 * bits intersect with the camera's camera mask bits.  These masks can be used
 * to selectively hide and show different parts of the scene graph from
 * different cameras that are otherwise viewing the same scene.
 */
51
inline void Camera::set_camera_mask(DrawMask mask);

2851 15 get_camera_mask 0 4 3665 23 Camera::get_camera_mask 0 1 1160 130
/**
 * Returns the set of bits that represent the subset of the scene graph the
 * camera will render.  See set_camera_mask().
 */
52
inline DrawMask Camera::get_camera_mask(void) const;

2852 15 set_cull_center 0 4 3665 23 Camera::set_cull_center 0 1 1161 320
/**
 * Specifies the point from which the culling operations are performed.
 * Normally, this is the same as the camera, and that is the default if this
 * is not specified; but it may sometimes be useful to perform the culling
 * from some other viewpoint, particularly when you are debugging the culling
 * itself.
 */
65
inline void Camera::set_cull_center(NodePath const &cull_center);

2853 15 get_cull_center 0 4 3665 23 Camera::get_cull_center 0 1 1162 153
/**
 * Returns the point from which the culling operations will be performed, if
 * it was set by set_cull_center(), or the empty NodePath otherwise.
 */
59
inline NodePath const &Camera::get_cull_center(void) const;

2854 15 set_cull_bounds 0 4 3665 23 Camera::set_cull_bounds 0 1 1163 379
/**
 * Specifies the bounding volume that should be used to perform culling from
 * this camera.  Normally, this is the bounding volume returned from the
 * active lens' make_bounds() call, but you may override this to specify a
 * custom volume if you require.  The specified bounding volume will be
 * understood to be in the coordinate space of the get_cull_center() node.
 */
65
inline void Camera::set_cull_bounds(BoundingVolume *cull_bounds);

2855 15 get_cull_bounds 0 4 3665 23 Camera::get_cull_bounds 0 1 1164 129
/**
 * Returns the custom cull volume that was set by set_cull_bounds(), if any,
 * or NULL if no custom cull volume was set.
 */
59
inline BoundingVolume *Camera::get_cull_bounds(void) const;

2856 14 set_lod_center 0 4 3665 22 Camera::set_lod_center 0 1 1165 379
/**
 * Specifies the point from which the LOD distances are measured.  Normally,
 * this is the same as the camera, and that is the default if this is not
 * specified; but it may sometimes be useful to perform the distance test from
 * some other viewpoint.  This may be used, for instance, to reduce LOD
 * popping when the camera rotates in a small circle about an avatar.
 */
63
inline void Camera::set_lod_center(NodePath const &lod_center);

2857 14 get_lod_center 0 4 3665 22 Camera::get_lod_center 0 1 1166 146
/**
 * Returns the point from which the LOD distances will be measured, if it was
 * set by set_lod_center(), or the empty NodePath otherwise.
 */
58
inline NodePath const &Camera::get_lod_center(void) const;

2858 17 set_initial_state 0 4 3665 25 Camera::set_initial_state 0 1 1167 129
/**
 * Sets the initial state which is applied to all nodes in the scene, as if it
 * were set at the top of the scene graph.
 */
64
inline void Camera::set_initial_state(RenderState const *state);

2859 17 get_initial_state 0 4 3665 25 Camera::get_initial_state 0 1 1168 86
/**
 * Returns the initial state as set by a previous call to set_initial_state().
 */
75
inline ConstPointerTo< RenderState > Camera::get_initial_state(void) const;

2860 17 set_tag_state_key 0 4 3665 25 Camera::set_tag_state_key 0 1 1169 218
/**
 * Sets the tag key which, when encountered as a tag on nodes in the scene
 * graph, causes this Camera to apply an arbitrary state transition based on
 * the value of the tag (as specified to set_tag_state()).
 */
72
inline void Camera::set_tag_state_key(std::string const &tag_state_key);

2861 17 get_tag_state_key 0 4 3665 25 Camera::get_tag_state_key 0 1 1170 80
/**
 * Returns the tag key as set by a previous call to set_tag_state_key().
 */
64
inline std::string const &Camera::get_tag_state_key(void) const;

2862 13 set_lod_scale 0 4 3665 21 Camera::set_lod_scale 0 1 1171 114
/**
 * Sets the multiplier for LOD distances.  This value is multiplied with the
 * LOD scale set on LodNodes.
 */
53
inline void Camera::set_lod_scale(PN_stdfloat value);

2863 13 get_lod_scale 0 4 3665 21 Camera::get_lod_scale 0 1 1172 52
/**
 * Returns the multiplier for LOD distances.
 */
53
inline PN_stdfloat Camera::get_lod_scale(void) const;

2864 13 set_tag_state 0 4 3665 21 Camera::set_tag_state 0 1 1173 585
/**
 * Associates a particular state transition with the indicated tag value.
 * When a node is encountered during traversal with the tag key specified by
 * set_tag_state_key(), if the value of that tag matches tag_state, then the
 * indicated state is applied to this node--but only when it is rendered by
 * this camera.
 *
 * This can be used to apply special effects to nodes when they are rendered
 * by certain cameras.  It is particularly useful for multipass rendering, in
 * which specialty cameras might be needed to render the scene with a
 * particular set of effects.
 */
83
void Camera::set_tag_state(std::string const &tag_state, RenderState const *state);

2865 15 clear_tag_state 0 4 3665 23 Camera::clear_tag_state 0 1 1174 85
/**
 * Removes the association established by a previous call to set_tag_state().
 */
59
void Camera::clear_tag_state(std::string const &tag_state);

2866 16 clear_tag_states 0 4 3665 24 Camera::clear_tag_states 0 1 1175 85
/**
 * Removes all associations established by previous calls to set_tag_state().
 */
36
void Camera::clear_tag_states(void);

2867 13 has_tag_state 0 4 3665 21 Camera::has_tag_state 0 1 1176 119
/**
 * Returns true if set_tag_state() has previously been called with the
 * indicated tag state, false otherwise.
 */
63
bool Camera::has_tag_state(std::string const &tag_state) const;

2868 13 get_tag_state 0 4 3665 21 Camera::get_tag_state 0 1 1177 161
/**
 * Returns the state associated with the indicated tag state by a previous
 * call to set_tag_state(), or the empty state if nothing has been associated.
 */
88
ConstPointerTo< RenderState > Camera::get_tag_state(std::string const &tag_state) const;

2869 18 set_aux_scene_data 0 4 3665 26 Camera::set_aux_scene_data 0 1 1178 157
/**
 * Associates the indicated AuxSceneData object with the given NodePath,
 * possibly replacing a previous data defined for the same NodePath, if any.
 */
79
void Camera::set_aux_scene_data(NodePath const &node_path, AuxSceneData *data);

2870 20 clear_aux_scene_data 0 4 3665 28 Camera::clear_aux_scene_data 0 1 1179 153
/**
 * Removes the AuxSceneData associated with the indicated NodePath.  Returns
 * true if it is removed successfully, false if it was already gone.
 */
61
bool Camera::clear_aux_scene_data(NodePath const &node_path);

2871 18 get_aux_scene_data 0 4 3665 26 Camera::get_aux_scene_data 0 1 1180 112
/**
 * Returns the AuxSceneData associated with the indicated NodePath, or NULL if
 * nothing is associated.
 */
74
AuxSceneData *Camera::get_aux_scene_data(NodePath const &node_path) const;

2872 19 list_aux_scene_data 0 4 3665 27 Camera::list_aux_scene_data 0 1 1181 65
/**
 * Outputs all of the NodePaths and AuxSceneDatas in use.
 */
58
void Camera::list_aux_scene_data(std::ostream &out) const;

2873 22 cleanup_aux_scene_data 0 4 3665 30 Camera::cleanup_aux_scene_data 0 1 1182 179
/**
 * Walks through the list of currently-assigned AuxSceneData objects and
 * releases any that are past their expiration times.  Returns the number of
 * elements released.
 */
90
int Camera::cleanup_aux_scene_data(Thread *current_thread = Thread::get_current_thread());

2874 14 get_class_type 0 4 3665 22 Camera::get_class_type 0 1 1183 0
47
static TypeHandle Camera::get_class_type(void);

2875 9 PlaneNode 0 260 3672 20 PlaneNode::PlaneNode 0 1 1184 22
/**
 *
 */

/**
 *
 */
87
explicit PlaneNode::PlaneNode(std::string const &name, LPlane const &plane = LPlane());

2876 9 set_plane 0 4 3672 20 PlaneNode::set_plane 0 1 1185 66
/**
 * Sets the particular plane represented by the PlaneNode.
 */
54
inline void PlaneNode::set_plane(LPlane const &plane);

2877 9 get_plane 0 4 3672 20 PlaneNode::get_plane 0 1 1186 58
/**
 * Returns the plane represented by the PlaneNode.
 */
54
inline LPlane const &PlaneNode::get_plane(void) const;

2878 13 set_viz_scale 0 4 3672 24 PlaneNode::set_viz_scale 0 1 1187 115
/**
 * Specifies the size of the visual representation of the plane that is drawn
 * if the PlaneNode is shown.
 */
60
inline void PlaneNode::set_viz_scale(PN_stdfloat viz_scale);

2879 13 get_viz_scale 0 4 3672 24 PlaneNode::get_viz_scale 0 1 1188 113
/**
 * Returns the size of the visual representation of the plane that is drawn if
 * the PlaneNode is shown.
 */
56
inline PN_stdfloat PlaneNode::get_viz_scale(void) const;

2880 12 set_priority 0 4 3672 23 PlaneNode::set_priority 0 1 1189 454
/**
 * Changes the relative importance of this PlaneNode (when it is used as a
 * clip plane) relative to the other clip planes that are applied
 * simultaneously.
 *
 * The priority number is used to decide which of the requested clip planes
 * are to be activated when more clip planes are requested than the hardware
 * will support.  The highest-priority n planes are selected for rendering.
 *
 * This is similar to TextureStage::set_priority().
 */
50
inline void PlaneNode::set_priority(int priority);

2881 12 get_priority 0 4 3672 23 PlaneNode::get_priority 0 1 1190 85
/**
 * Returns the priority associated with this clip plane.  See set_priority().
 */
47
inline int PlaneNode::get_priority(void) const;

2882 15 set_clip_effect 0 4 3672 26 PlaneNode::set_clip_effect 0 1 1191 436
/**
 * Specifies the sort of things this plane will actually clip (when it is used
 * as a clip plane).  This is a bitmask union of ClipEffect values.  If it
 * includes CE_visible, then it will clip visible geometry; if it includes
 * CE_collision, then it will clip collision polygons.  If it includes neither
 * bit, it will still affect culling, but objects will either be wholly behind
 * the clipping plane, or wholly present.
 */
56
inline void PlaneNode::set_clip_effect(int clip_effect);

2883 15 get_clip_effect 0 4 3672 26 PlaneNode::get_clip_effect 0 1 1192 84
/**
 * Returns the clip_effect bits for this clip plane.  See set_clip_effect().
 */
50
inline int PlaneNode::get_clip_effect(void) const;

2884 14 get_class_type 0 4 3672 25 PlaneNode::get_class_type 0 1 1193 0
50
static TypeHandle PlaneNode::get_class_type(void);

2885 10 ~PlaneNode 0 516 3672 21 PlaneNode::~PlaneNode 0 0 0
28
PlaneNode::~PlaneNode(void);

2886 4 make 0 4 3677 21 ClipPlaneAttrib::make 0 5 1194 1195 1196 1197 1198 883
// The following is the new, more general interface to the ClipPlaneAttrib.

/**
 * Constructs a new ClipPlaneAttrib object that enables (or disables,
 * according to op) the indicated plane(s).
 *
 * @deprecated Use add_on_plane() or add_off_plane() instead.
 */

/**
 * Constructs a new ClipPlaneAttrib object that turns on (or off, according to
 * op) the indicate plane(s).
 *
 * @deprecated Use add_on_plane() or add_off_plane() instead.
 */

/**
 * Constructs a new ClipPlaneAttrib object that turns on (or off, according to
 * op) the indicate plane(s).
 *
 * @deprecated Use add_on_plane() or add_off_plane() instead.
 */

/**
 * Constructs a new ClipPlaneAttrib object that turns on (or off, according to
 * op) the indicate plane(s).
 *
 * @deprecated Use add_on_plane() or add_off_plane() instead.
 */

/**
 * Constructs a new ClipPlaneAttrib object that does nothing.
 */
623
static ConstPointerTo< RenderAttrib > ClipPlaneAttrib::make(ClipPlaneAttrib::Operation op, PlaneNode *plane);
static ConstPointerTo< RenderAttrib > ClipPlaneAttrib::make(ClipPlaneAttrib::Operation op, PlaneNode *plane1, PlaneNode *plane2);
static ConstPointerTo< RenderAttrib > ClipPlaneAttrib::make(ClipPlaneAttrib::Operation op, PlaneNode *plane1, PlaneNode *plane2, PlaneNode *plane3);
static ConstPointerTo< RenderAttrib > ClipPlaneAttrib::make(ClipPlaneAttrib::Operation op, PlaneNode *plane1, PlaneNode *plane2, PlaneNode *plane3, PlaneNode *plane4);
static ConstPointerTo< RenderAttrib > ClipPlaneAttrib::make(void);

2887 12 make_default 0 4 3677 29 ClipPlaneAttrib::make_default 0 1 1199 145
/**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */
74
static ConstPointerTo< RenderAttrib > ClipPlaneAttrib::make_default(void);

2888 13 get_operation 0 4 3677 30 ClipPlaneAttrib::get_operation 0 1 1200 512
/**
 * Returns the basic operation type of the ClipPlaneAttrib.  If this is O_set,
 * the planes listed here completely replace any planes that were already on.
 * If this is O_add, the planes here are added to the set of planes that
 * were already on, and if O_remove, the planes here are removed from the set
 * of planes that were on.
 *
 * @deprecated ClipPlaneAttribs nowadays have a separate list of on_planes and
 * off_planes, so this method no longer makes sense.  Query the lists
 * independently.
 */
70
ClipPlaneAttrib::Operation ClipPlaneAttrib::get_operation(void) const;

2889 14 get_num_planes 0 4 3677 31 ClipPlaneAttrib::get_num_planes 0 1 1201 234
/**
 * Returns the number of planes listed in the attribute.
 *
 * @deprecated ClipPlaneAttribs nowadays have a separate list of on_planes and
 * off_planes, so this method no longer makes sense.  Query the lists
 * independently.
 */
48
int ClipPlaneAttrib::get_num_planes(void) const;

2890 9 get_plane 0 4 3677 26 ClipPlaneAttrib::get_plane 0 1 1202 227
/**
 * Returns the nth plane listed in the attribute.
 *
 * @deprecated ClipPlaneAttribs nowadays have a separate list of on_planes and
 * off_planes, so this method no longer makes sense.  Query the lists
 * independently.
 */
51
PlaneNode *ClipPlaneAttrib::get_plane(int n) const;

2891 9 has_plane 0 4 3677 26 ClipPlaneAttrib::has_plane 0 1 1203 261
/**
 * Returns true if the indicated plane is listed in the attrib, false
 * otherwise.
 *
 * @deprecated ClipPlaneAttribs nowadays have a separate list of on_planes and
 * off_planes, so this method no longer makes sense.  Query the lists
 * independently.
 */
56
bool ClipPlaneAttrib::has_plane(PlaneNode *plane) const;

2892 9 add_plane 0 4 3677 26 ClipPlaneAttrib::add_plane 0 1 1204 187
/**
 * Returns a new ClipPlaneAttrib, just like this one, but with the indicated
 * plane added to the list of planes.
 *
 * @deprecated Use add_on_plane() or add_off_plane() instead.
 */
82
ConstPointerTo< RenderAttrib > ClipPlaneAttrib::add_plane(PlaneNode *plane) const;

2893 12 remove_plane 0 4 3677 29 ClipPlaneAttrib::remove_plane 0 1 1205 197
/**
 * Returns a new ClipPlaneAttrib, just like this one, but with the indicated
 * plane removed from the list of planes.
 *
 * @deprecated Use remove_on_plane() or remove_off_plane() instead.
 */
85
ConstPointerTo< RenderAttrib > ClipPlaneAttrib::remove_plane(PlaneNode *plane) const;

2894 12 make_all_off 0 4 3677 29 ClipPlaneAttrib::make_all_off 0 1 1206 109
/**
 * Constructs a new ClipPlaneAttrib object that disables all planes (and hence
 * disables clipping).
 */
74
static ConstPointerTo< RenderAttrib > ClipPlaneAttrib::make_all_off(void);

2895 17 get_num_on_planes 0 4 3677 34 ClipPlaneAttrib::get_num_on_planes 0 1 1207 74
/**
 * Returns the number of planes that are enabled by the attribute.
 */
58
inline int ClipPlaneAttrib::get_num_on_planes(void) const;

2896 12 get_on_plane 0 4 3677 29 ClipPlaneAttrib::get_on_plane 0 1 1208 82
/**
 * Returns the nth plane enabled by the attribute, sorted in render order.
 */
59
inline NodePath ClipPlaneAttrib::get_on_plane(int n) const;

2897 12 has_on_plane 0 4 3677 29 ClipPlaneAttrib::has_on_plane 0 1 1209 92
/**
 * Returns true if the indicated plane is enabled by the attrib, false
 * otherwise.
 */
71
inline bool ClipPlaneAttrib::has_on_plane(NodePath const &plane) const;

2898 18 get_num_off_planes 0 4 3677 35 ClipPlaneAttrib::get_num_off_planes 0 1 1210 75
/**
 * Returns the number of planes that are disabled by the attribute.
 */
59
inline int ClipPlaneAttrib::get_num_off_planes(void) const;

2899 13 get_off_plane 0 4 3677 30 ClipPlaneAttrib::get_off_plane 0 1 1211 99
/**
 * Returns the nth plane disabled by the attribute, sorted in arbitrary
 * (pointer) order.
 */
60
inline NodePath ClipPlaneAttrib::get_off_plane(int n) const;

2900 13 has_off_plane 0 4 3677 30 ClipPlaneAttrib::has_off_plane 0 1 1212 93
/**
 * Returns true if the indicated plane is disabled by the attrib, false
 * otherwise.
 */
72
inline bool ClipPlaneAttrib::has_off_plane(NodePath const &plane) const;

2901 11 has_all_off 0 4 3677 28 ClipPlaneAttrib::has_all_off 0 1 1213 97
/**
 * Returns true if this attrib disables all planes (although it may also
 * enable some).
 */
53
inline bool ClipPlaneAttrib::has_all_off(void) const;

2902 11 is_identity 0 4 3677 28 ClipPlaneAttrib::is_identity 0 1 1214 102
/**
 * Returns true if this is an identity attrib: it does not change the set of
 * planes in use.
 */
53
inline bool ClipPlaneAttrib::is_identity(void) const;

2903 12 add_on_plane 0 4 3677 29 ClipPlaneAttrib::add_on_plane 0 1 1215 145
/**
 * Returns a new ClipPlaneAttrib, just like this one, but with the indicated
 * plane added to the list of planes enabled by this attrib.
 */
90
ConstPointerTo< RenderAttrib > ClipPlaneAttrib::add_on_plane(NodePath const &plane) const;

2904 15 remove_on_plane 0 4 3677 32 ClipPlaneAttrib::remove_on_plane 0 1 1216 149
/**
 * Returns a new ClipPlaneAttrib, just like this one, but with the indicated
 * plane removed from the list of planes enabled by this attrib.
 */
93
ConstPointerTo< RenderAttrib > ClipPlaneAttrib::remove_on_plane(NodePath const &plane) const;

2905 13 add_off_plane 0 4 3677 30 ClipPlaneAttrib::add_off_plane 0 1 1217 146
/**
 * Returns a new ClipPlaneAttrib, just like this one, but with the indicated
 * plane added to the list of planes disabled by this attrib.
 */
91
ConstPointerTo< RenderAttrib > ClipPlaneAttrib::add_off_plane(NodePath const &plane) const;

2906 16 remove_off_plane 0 4 3677 33 ClipPlaneAttrib::remove_off_plane 0 1 1218 150
/**
 * Returns a new ClipPlaneAttrib, just like this one, but with the indicated
 * plane removed from the list of planes disabled by this attrib.
 */
94
ConstPointerTo< RenderAttrib > ClipPlaneAttrib::remove_off_plane(NodePath const &plane) const;

2907 13 filter_to_max 0 4 3677 30 ClipPlaneAttrib::filter_to_max 0 1 1219 216
/**
 * Returns a new ClipPlaneAttrib, very much like this one, but with the number
 * of on_planes reduced to be no more than max_clip_planes.  The number of
 * off_planes in the new ClipPlaneAttrib is undefined.
 */
92
ConstPointerTo< ClipPlaneAttrib > ClipPlaneAttrib::filter_to_max(int max_clip_planes) const;

2908 14 get_class_slot 0 4 3677 31 ClipPlaneAttrib::get_class_slot 0 1 1220 0
49
static int ClipPlaneAttrib::get_class_slot(void);

2909 14 get_class_type 0 4 3677 31 ClipPlaneAttrib::get_class_type 0 1 1221 0
56
static TypeHandle ClipPlaneAttrib::get_class_type(void);

2910 16 ~ClipPlaneAttrib 0 516 3677 33 ClipPlaneAttrib::~ClipPlaneAttrib 0 0 0
40
ClipPlaneAttrib::~ClipPlaneAttrib(void);

2911 11 make_vertex 0 4 3679 24 ColorAttrib::make_vertex 0 1 1222 127
/**
 * Constructs a new ColorAttrib object that indicates geometry should be
 * rendered according to its own vertex color.
 */
69
static ConstPointerTo< RenderAttrib > ColorAttrib::make_vertex(void);

2912 9 make_flat 0 4 3679 22 ColorAttrib::make_flat 0 1 1223 116
/**
 * Constructs a new ColorAttrib object that indicates geometry should be
 * rendered in the indicated color.
 */
82
static ConstPointerTo< RenderAttrib > ColorAttrib::make_flat(LColor const &color);

2913 8 make_off 0 4 3679 21 ColorAttrib::make_off 0 1 1224 102
/**
 * Constructs a new ColorAttrib object that indicates geometry should be
 * rendered in white.
 */
66
static ConstPointerTo< RenderAttrib > ColorAttrib::make_off(void);

2914 12 make_default 0 4 3679 25 ColorAttrib::make_default 0 1 1225 145
/**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */
70
static ConstPointerTo< RenderAttrib > ColorAttrib::make_default(void);

2915 14 get_color_type 0 4 3679 27 ColorAttrib::get_color_type 0 1 1226 313
/**
 * Returns the type of color specified by this ColorAttrib.  The options are:
 *
 * T_vertex - use the vertex color specified in the geometry itself.
 *
 * T_flat - use the color specified in this ColorAttrib for all geometry.  You
 * can get this color via get_color().
 *
 * T_off - use the color white.
 */
65
inline ColorAttrib::Type ColorAttrib::get_color_type(void) const;

2916 9 get_color 0 4 3679 22 ColorAttrib::get_color 0 1 1227 149
/**
 * If the type is T_flat or T_off, this returns the color that will be applied
 * to geometry.  If the type is T_vertex, this is meaningless.
 */
56
inline LColor const &ColorAttrib::get_color(void) const;

2917 14 get_class_slot 0 4 3679 27 ColorAttrib::get_class_slot 0 1 1228 0
45
static int ColorAttrib::get_class_slot(void);

2918 14 get_class_type 0 4 3679 27 ColorAttrib::get_class_type 0 1 1229 0
52
static TypeHandle ColorAttrib::get_class_type(void);

2919 12 ~ColorAttrib 0 516 3679 25 ColorAttrib::~ColorAttrib 0 0 0
32
ColorAttrib::~ColorAttrib(void);

2920 8 make_off 0 4 3681 26 ColorBlendAttrib::make_off 0 1 1230 142
/**
 * Constructs a new ColorBlendAttrib object that disables special-effect
 * blending, allowing normal transparency to be used instead.
 */
71
static ConstPointerTo< RenderAttrib > ColorBlendAttrib::make_off(void);

2921 4 make 0 4 3681 22 ColorBlendAttrib::make 0 3 1231 1232 1233 546
/**
 * Constructs a new ColorBlendAttrib object.
 *
 * @deprecated Use the three- or four-parameter constructor instead.
 */

/**
 * Constructs a new ColorBlendAttrib object that enables special-effect
 * blending.  This supercedes transparency.  The given mode and operands are
 * used for both the RGB and alpha channels.
 */

/**
 * Constructs a new ColorBlendAttrib object that enables special-effect
 * blending.  This supercedes transparency.  This form is used to specify
 * separate blending parameters for the RGB and alpha channels.
 */
581
static ConstPointerTo< RenderAttrib > ColorBlendAttrib::make(ColorBlendAttrib::Mode mode);
static ConstPointerTo< RenderAttrib > ColorBlendAttrib::make(ColorBlendAttrib::Mode mode, ColorBlendAttrib::Operand a, ColorBlendAttrib::Operand b, LColor const &color = LColor::zero());
static ConstPointerTo< RenderAttrib > ColorBlendAttrib::make(ColorBlendAttrib::Mode rgb_mode, ColorBlendAttrib::Operand rgb_a, ColorBlendAttrib::Operand rgb_b, ColorBlendAttrib::Mode alpha_mode, ColorBlendAttrib::Operand alpha_a, ColorBlendAttrib::Operand alpha_b, LColor const &color = LColor::zero());

2922 12 make_default 0 4 3681 30 ColorBlendAttrib::make_default 0 1 1234 145
/**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */
75
static ConstPointerTo< RenderAttrib > ColorBlendAttrib::make_default(void);

2923 8 get_mode 0 4 3681 26 ColorBlendAttrib::get_mode 0 1 1235 58
/**
 * Returns the blending mode for the RGB channels.
 */
69
inline ColorBlendAttrib::Mode ColorBlendAttrib::get_mode(void) const;

2924 13 get_operand_a 0 4 3681 31 ColorBlendAttrib::get_operand_a 0 1 1236 62
/**
 * Returns the RGB multiplier for the first component.
 */
77
inline ColorBlendAttrib::Operand ColorBlendAttrib::get_operand_a(void) const;

2925 13 get_operand_b 0 4 3681 31 ColorBlendAttrib::get_operand_b 0 1 1237 63
/**
 * Returns the RGB multiplier for the second component.
 */
77
inline ColorBlendAttrib::Operand ColorBlendAttrib::get_operand_b(void) const;

2926 14 get_alpha_mode 0 4 3681 32 ColorBlendAttrib::get_alpha_mode 0 1 1238 59
/**
 * Returns the blending mode for the alpha channel.
 */
75
inline ColorBlendAttrib::Mode ColorBlendAttrib::get_alpha_mode(void) const;

2927 19 get_alpha_operand_a 0 4 3681 37 ColorBlendAttrib::get_alpha_operand_a 0 1 1239 64
/**
 * Returns the alpha multiplier for the first component.
 */
83
inline ColorBlendAttrib::Operand ColorBlendAttrib::get_alpha_operand_a(void) const;

2928 19 get_alpha_operand_b 0 4 3681 37 ColorBlendAttrib::get_alpha_operand_b 0 1 1240 65
/**
 * Returns the alpha multiplier for the second component.
 */
83
inline ColorBlendAttrib::Operand ColorBlendAttrib::get_alpha_operand_b(void) const;

2929 9 get_color 0 4 3681 27 ColorBlendAttrib::get_color 0 1 1241 65
/**
 * Returns the constant color associated with the attrib.
 */
54
inline LColor ColorBlendAttrib::get_color(void) const;

2930 23 involves_constant_color 0 4 3681 41 ColorBlendAttrib::involves_constant_color 0 2 1242 1243 179
/**
 * Returns true if the this attrib uses the constant color, false otherwise.
 */

/**
 * Returns true if the indicated operand uses the constant color, false
 * otherwise.
 */
163
inline bool ColorBlendAttrib::involves_constant_color(void) const;
static inline bool ColorBlendAttrib::involves_constant_color(ColorBlendAttrib::Operand operand);

2931 20 involves_color_scale 0 4 3681 38 ColorBlendAttrib::involves_color_scale 0 2 1244 1245 190
/**
 * Returns true if the this attrib uses the color scale attrib, false
 * otherwise.
 */

/**
 * Returns true if the indicated operand uses the color scale attrib, false
 * otherwise.
 */
157
inline bool ColorBlendAttrib::involves_color_scale(void) const;
static inline bool ColorBlendAttrib::involves_color_scale(ColorBlendAttrib::Operand operand);

2932 14 get_class_slot 0 4 3681 32 ColorBlendAttrib::get_class_slot 0 1 1246 0
50
static int ColorBlendAttrib::get_class_slot(void);

2933 14 get_class_type 0 4 3681 32 ColorBlendAttrib::get_class_type 0 1 1247 0
57
static TypeHandle ColorBlendAttrib::get_class_type(void);

2934 17 ~ColorBlendAttrib 0 516 3681 35 ColorBlendAttrib::~ColorBlendAttrib 0 0 0
42
ColorBlendAttrib::~ColorBlendAttrib(void);

2935 13 make_identity 0 4 3684 31 ColorScaleAttrib::make_identity 0 1 1248 47
/**
 * Constructs an identity scale attrib.
 */
76
static ConstPointerTo< RenderAttrib > ColorScaleAttrib::make_identity(void);

2936 4 make 0 4 3684 22 ColorScaleAttrib::make 0 1 1249 120
/**
 * Constructs a new ColorScaleAttrib object that indicates geometry should be
 * scaled by the indicated factor.
 */
85
static ConstPointerTo< RenderAttrib > ColorScaleAttrib::make(LVecBase4 const &scale);

2937 8 make_off 0 4 3684 26 ColorScaleAttrib::make_off 0 1 1250 209
/**
 * Constructs a new ColorScaleAttrib object that ignores any ColorScaleAttrib
 * inherited from above.  You may also specify an additional color scale to
 * apply to geometry below (using set_scale()).
 */
71
static ConstPointerTo< RenderAttrib > ColorScaleAttrib::make_off(void);

2938 12 make_default 0 4 3684 30 ColorScaleAttrib::make_default 0 1 1251 145
/**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */
75
static ConstPointerTo< RenderAttrib > ColorScaleAttrib::make_default(void);

2939 6 is_off 0 4 3684 24 ColorScaleAttrib::is_off 0 1 1252 255
/**
 * Returns true if the ColorScaleAttrib will ignore any color scales inherited
 * from above, false otherwise.  This is not the same thing as !has_scale(); a
 * ColorScaleAttrib may have the "off" flag set and also have another scale
 * specified.
 */
49
inline bool ColorScaleAttrib::is_off(void) const;

2940 11 is_identity 0 4 3684 29 ColorScaleAttrib::is_identity 0 1 1253 128
/**
 * Returns true if the ColorScaleAttrib is an identity attrib, false if it is
 * either an off attrib or it has a scale.
 */
54
inline bool ColorScaleAttrib::is_identity(void) const;

2941 9 has_scale 0 4 3684 27 ColorScaleAttrib::has_scale 0 1 1254 157
/**
 * Returns true if the ColorScaleAttrib has a non-identity scale, false
 * otherwise (in which case it might be an off attrib or an identity attrib).
 */
52
inline bool ColorScaleAttrib::has_scale(void) const;

2942 13 has_rgb_scale 0 4 3684 31 ColorScaleAttrib::has_rgb_scale 0 1 1255 135
/**
 * Returns true if the ColorScaleAttrib has a non-identity scale in the RGB
 * components (ignoring alpha), or false otherwise.
 */
56
inline bool ColorScaleAttrib::has_rgb_scale(void) const;

2943 15 has_alpha_scale 0 4 3684 33 ColorScaleAttrib::has_alpha_scale 0 1 1256 134
/**
 * Returns true if the ColorScaleAttrib has a non-identity scale in the alpha
 * component (ignoring RGB), or false otherwise.
 */
58
inline bool ColorScaleAttrib::has_alpha_scale(void) const;

2944 9 get_scale 0 4 3684 27 ColorScaleAttrib::get_scale 0 1 1257 53
/**
 * Returns the scale to be applied to colors.
 */
64
inline LVecBase4 const &ColorScaleAttrib::get_scale(void) const;

2945 9 set_scale 0 4 3684 27 ColorScaleAttrib::set_scale 0 1 1258 116
/**
 * Returns a new ColorScaleAttrib, just like this one, but with the scale
 * changed to the indicated value.
 */
89
ConstPointerTo< RenderAttrib > ColorScaleAttrib::set_scale(LVecBase4 const &scale) const;

2946 14 get_class_slot 0 4 3684 32 ColorScaleAttrib::get_class_slot 0 1 1259 0
50
static int ColorScaleAttrib::get_class_slot(void);

2947 14 get_class_type 0 4 3684 32 ColorScaleAttrib::get_class_type 0 1 1260 0
57
static TypeHandle ColorScaleAttrib::get_class_type(void);

2948 17 ~ColorScaleAttrib 0 516 3684 35 ColorScaleAttrib::~ColorScaleAttrib 0 0 0
42
ColorScaleAttrib::~ColorScaleAttrib(void);

2949 4 make 0 4 3687 22 ColorWriteAttrib::make 0 1 1261 52
/**
 * Constructs a new ColorWriteAttrib object.
 */
84
static ConstPointerTo< RenderAttrib > ColorWriteAttrib::make(unsigned int channels);

2950 12 make_default 0 4 3687 30 ColorWriteAttrib::make_default 0 1 1262 145
/**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */
75
static ConstPointerTo< RenderAttrib > ColorWriteAttrib::make_default(void);

2951 12 get_channels 0 4 3687 30 ColorWriteAttrib::get_channels 0 1 1263 78
/**
 * Returns the mask of color channels that are enabled by this attrib.
 */
63
inline unsigned int ColorWriteAttrib::get_channels(void) const;

2952 14 get_class_slot 0 4 3687 32 ColorWriteAttrib::get_class_slot 0 1 1264 0
50
static int ColorWriteAttrib::get_class_slot(void);

2953 14 get_class_type 0 4 3687 32 ColorWriteAttrib::get_class_type 0 1 1265 0
57
static TypeHandle ColorWriteAttrib::get_class_type(void);

2954 17 ~ColorWriteAttrib 0 516 3687 35 ColorWriteAttrib::~ColorWriteAttrib 0 0 0
42
ColorWriteAttrib::~ColorWriteAttrib(void);

2955 4 make 0 4 3690 19 CompassEffect::make 0 1 1266 354
/**
 * Constructs a new CompassEffect object.  If the reference is an empty
 * NodePath, it means the CompassEffect is relative to the root of the scene
 * graph; otherwise, it's relative to the indicated node.  The properties
 * bitmask specifies the set of properties that the compass node inherits from
 * the reference instead of from its parent.
 */
126
static ConstPointerTo< RenderEffect > CompassEffect::make(NodePath const &reference, int properties = ::CompassEffect::P_rot);

2956 13 get_reference 0 4 3690 28 CompassEffect::get_reference 0 1 1267 150
/**
 * Returns the reference node from which the CompassEffect inherits its
 * transform.  If this is empty, it means the root of the scene graph.
 */
64
inline NodePath const &CompassEffect::get_reference(void) const;

2957 14 get_properties 0 4 3690 29 CompassEffect::get_properties 0 1 1268 131
/**
 * Returns the bitmask of properties that this CompassEffect object inherits
 * from its reference node (or from the root).
 */
53
inline int CompassEffect::get_properties(void) const;

2958 14 get_class_type 0 4 3690 29 CompassEffect::get_class_type 0 1 1269 0
54
static TypeHandle CompassEffect::get_class_type(void);

2959 14 ~CompassEffect 0 516 3690 29 CompassEffect::~CompassEffect 0 0 0
36
CompassEffect::~CompassEffect(void);

2960 12 CullBinEnums 0 260 3692 26 CullBinEnums::CullBinEnums 0 2 1270 1271 0
117
inline CullBinEnums::CullBinEnums(void) = default;
inline CullBinEnums::CullBinEnums(CullBinEnums const &) = default;

2961 13 ~CullBinEnums 0 516 3692 27 CullBinEnums::~CullBinEnums 0 0 0
34
CullBinEnums::~CullBinEnums(void);

2962 8 GeomNode 0 260 3694 18 GeomNode::GeomNode 0 1 1272 22
/**
 *
 */

/**
 *
 */
53
explicit GeomNode::GeomNode(std::string const &name);

2963 13 set_preserved 0 4 3694 23 GeomNode::set_preserved 0 1 1273 123
/**
 * Sets the "preserved" flag.  When this is true, the GeomNode will be left
 * untouched by any flatten operations.
 */
48
inline void GeomNode::set_preserved(bool value);

2964 13 get_preserved 0 4 3694 23 GeomNode::get_preserved 0 1 1274 126
/**
 * Returns the "preserved" flag.  When this is true, the GeomNode will be left
 * untouched by any flatten operations.
 */
48
inline bool GeomNode::get_preserved(void) const;

2965 13 get_num_geoms 0 4 3694 23 GeomNode::get_num_geoms 0 1 1275 51
/**
 * Returns the number of geoms in the node.
 */
47
inline int GeomNode::get_num_geoms(void) const;

2966 8 get_geom 0 4 3694 18 GeomNode::get_geom 0 1 1276 186
/**
 * Returns the nth geom of the node.  This object should not be modified,
 * since the same object might be shared between multiple different GeomNodes,
 * but see modify_geom().
 */
62
inline ConstPointerTo< Geom > GeomNode::get_geom(int n) const;

2967 11 modify_geom 0 4 3694 21 GeomNode::modify_geom 0 1 1277 641
/**
 * Returns the nth geom of the node, suitable for modifying it.  If the nth
 * Geom has multiple reference counts to it, reassigns it to an identical copy
 * first, and returns the new copy--this provides a "copy on write" that
 * ensures that the Geom that is returned is unique to this GeomNode and is
 * not shared with any other GeomNodes.
 *
 * Note that if this method is called in a downstream stage (for instance,
 * during cull or draw), then it will propagate the new list of Geoms upstream
 * all the way to pipeline stage 0, which may step on changes that were made
 * independently in pipeline stage 0. Use with caution.
 */
54
inline PointerTo< Geom > GeomNode::modify_geom(int n);

2968 14 get_geom_state 0 4 3694 24 GeomNode::get_geom_state 0 1 1278 296
/**
 * Returns the RenderState associated with the nth geom of the node.  This is
 * just the RenderState directly associated with the Geom; the actual state in
 * which the Geom is rendered will also be affected by RenderStates that
 * appear on the scene graph in nodes above this GeomNode.
 */
64
inline RenderState const *GeomNode::get_geom_state(int n) const;

2969 14 set_geom_state 0 4 3694 24 GeomNode::set_geom_state 0 1 1279 586
/**
 * Changes the RenderState associated with the nth geom of the node.  This is
 * just the RenderState directly associated with the Geom; the actual state in
 * which the Geom is rendered will also be affected by RenderStates that
 * appear on the scene graph in nodes above this GeomNode.
 *
 * Note that if this method is called in a downstream stage (for instance,
 * during cull or draw), then it will propagate the new list of Geoms upstream
 * all the way to pipeline stage 0, which may step on changes that were made
 * independently in pipeline stage 0. Use with caution.
 */
70
inline void GeomNode::set_geom_state(int n, RenderState const *state);

2970 8 add_geom 0 4 3694 18 GeomNode::add_geom 0 1 1280 180
/**
 * Adds a new Geom to the node.  The geom is given the indicated state (which
 * may be RenderState::make_empty(), to completely inherit its state from the
 * scene graph).
 */
90
void GeomNode::add_geom(Geom *geom, RenderState const *state = RenderState::make_empty());

2971 14 add_geoms_from 0 4 3694 24 GeomNode::add_geoms_from 0 1 1281 109
/**
 * Copies the Geoms (and their associated RenderStates) from the indicated
 * GeomNode into this one.
 */
53
void GeomNode::add_geoms_from(GeomNode const *other);

2972 8 set_geom 0 4 3694 18 GeomNode::set_geom 0 1 1282 401
/**
 * Replaces the nth Geom of the node with a new pointer.  There must already
 * be a Geom in this slot.
 *
 * Note that if this method is called in a downstream stage (for instance,
 * during cull or draw), then it will propagate the new list of Geoms upstream
 * all the way to pipeline stage 0, which may step on changes that were made
 * independently in pipeline stage 0. Use with caution.
 */
43
void GeomNode::set_geom(int n, Geom *geom);

2973 11 remove_geom 0 4 3694 21 GeomNode::remove_geom 0 1 1283 46
/**
 * Removes the nth geom from the node.
 */
41
inline void GeomNode::remove_geom(int n);

2974 16 remove_all_geoms 0 4 3694 26 GeomNode::remove_all_geoms 0 1 1284 55
/**
 * Removes all the geoms from the node at once.
 */
45
inline void GeomNode::remove_all_geoms(void);

2975 11 check_valid 0 4 3694 21 GeomNode::check_valid 0 1 1285 198
/**
 * Verifies that the each Geom within the GeomNode reference vertices that
 * actually exist within its GeomVertexData.  Returns true if the GeomNode
 * appears to be valid, false otherwise.
 */
39
bool GeomNode::check_valid(void) const;

2976 9 decompose 0 4 3694 19 GeomNode::decompose 0 1 1286 431
/**
 * Calls decompose() on each Geom with the GeomNode.  This decomposes higher-
 * order primitive types, like triangle strips, into lower-order types like
 * indexed triangles.  Normally there is no reason to do this, but it can be
 * useful as an early preprocessing step, to allow a later call to unify() to
 * proceed more quickly.
 *
 * See also SceneGraphReducer::decompose(), which is the normal way this is
 * called.
 */
31
void GeomNode::decompose(void);

2977 5 unify 0 4 3694 15 GeomNode::unify 0 1 1287 901
/**
 * Attempts to unify all of the Geoms contained within this node into a single
 * Geom, or at least as few Geoms as possible.  In turn, the individual
 * GeomPrimitives contained within each resulting Geom are also unified.  The
 * goal is to reduce the number of GeomPrimitives within the node as far as
 * possible.  This may result in composite primitives, such as triangle strips
 * and triangle fans, being decomposed into triangles.  See also
 * Geom::unify().
 *
 * max_indices represents the maximum number of indices that will be put in
 * any one GeomPrimitive.  If preserve_order is true, then the primitives will
 * not be reordered during the operation, even if this results in a suboptimal
 * result.
 *
 * In order for this to be successful, the primitives must reference the same
 * GeomVertexData, have the same fundamental primitive type, and have
 * compatible shade models.
 */
59
void GeomNode::unify(int max_indices, bool preserve_order);

2978 11 write_geoms 0 4 3694 21 GeomNode::write_geoms 0 1 1288 67
/**
 * Writes a short description of all the Geoms in the node.
 */
70
void GeomNode::write_geoms(std::ostream &out, int indent_level) const;

2979 13 write_verbose 0 4 3694 23 GeomNode::write_verbose 0 1 1289 70
/**
 * Writes a detailed description of all the Geoms in the node.
 */
72
void GeomNode::write_verbose(std::ostream &out, int indent_level) const;

2980 24 get_default_collide_mask 0 4 3694 34 GeomNode::get_default_collide_mask 0 1 1290 75
/**
 * Returns the default into_collide_mask assigned to new GeomNodes.
 */
67
static inline CollideMask GeomNode::get_default_collide_mask(void);

2981 14 get_class_type 0 4 3694 24 GeomNode::get_class_type 0 1 1291 0
49
static TypeHandle GeomNode::get_class_type(void);

2982 4 make 0 4 3695 19 CullBinAttrib::make 0 1 1292 297
/**
 * Constructs a new CullBinAttrib assigning geometry into the named bin.  If
 * the bin name is the empty string, the default bin is used.
 *
 * The draw_order specifies further ordering information which is relevant
 * only to certain kinds of bins (in particular CullBinFixed type bins).
 */
103
static ConstPointerTo< RenderAttrib > CullBinAttrib::make(std::string const &bin_name, int draw_order);

2983 12 make_default 0 4 3695 27 CullBinAttrib::make_default 0 1 1293 145
/**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */
72
static ConstPointerTo< RenderAttrib > CullBinAttrib::make_default(void);

2984 12 get_bin_name 0 4 3695 27 CullBinAttrib::get_bin_name 0 1 1294 127
/**
 * Returns the name of the bin this attribute specifies.  If this is the empty
 * string, it refers to the default bin.
 */
66
inline std::string const &CullBinAttrib::get_bin_name(void) const;

2985 14 get_draw_order 0 4 3695 29 CullBinAttrib::get_draw_order 0 1 1295 186
/**
 * Returns the draw order this attribute specifies.  Some bins (in particular,
 * CullBinFixed bins) use this to further specify the order in which objects
 * should be rendered.
 */
53
inline int CullBinAttrib::get_draw_order(void) const;

2986 14 get_class_slot 0 4 3695 29 CullBinAttrib::get_class_slot 0 1 1296 0
47
static int CullBinAttrib::get_class_slot(void);

2987 14 get_class_type 0 4 3695 29 CullBinAttrib::get_class_type 0 1 1297 0
54
static TypeHandle CullBinAttrib::get_class_type(void);

2988 14 ~CullBinAttrib 0 516 3695 29 CullBinAttrib::~CullBinAttrib 0 0 0
36
CullBinAttrib::~CullBinAttrib(void);

2989 7 add_bin 0 4 3696 23 CullBinManager::add_bin 0 1 1298 232
/**
 * Defines a new bin with the indicated name, and returns the new bin_index.
 * If there is already a bin with the same name returns its bin_index if it
 * had the same properties; otherwise, reports an error and returns -1.
 */
93
int CullBinManager::add_bin(std::string const &name, CullBinManager::BinType type, int sort);

2990 10 remove_bin 0 4 3696 26 CullBinManager::remove_bin 0 1 1299 357
/**
 * Permanently removes the indicated bin.  This operation is not protected
 * from the pipeline and will disturb whatever is currently rendering in draw.
 * You should not call this during the normal course of rendering a frame; it
 * is intended only as an aid to development, to allow the developer to
 * interactively fiddle with the set of bins.
 */
47
void CullBinManager::remove_bin(int bin_index);

2991 12 get_num_bins 0 4 3696 28 CullBinManager::get_num_bins 0 1 1300 51
/**
 * Returns the number of bins in the world.
 */
52
inline int CullBinManager::get_num_bins(void) const;

2992 7 get_bin 0 4 3696 23 CullBinManager::get_bin 0 1 1301 240
/**
 * Returns the bin_index of the nth bin in the set, where n is a number
 * between 0 and get_num_bins(). This returns the list of bin_index numbers,
 * in sorted order (that is, in the order in which the bins should be
 * rendered).
 */
48
inline int CullBinManager::get_bin(int n) const;

2993 8 find_bin 0 4 3696 24 CullBinManager::find_bin 0 1 1302 109
/**
 * Returns the bin_index associated with the bin of the given name, or -1 if
 * no bin has that name.
 */
60
int CullBinManager::find_bin(std::string const &name) const;

2994 12 get_bin_name 0 4 3696 28 CullBinManager::get_bin_name 0 1 1303 196
/**
 * Returns the name of the bin with the indicated bin_index (where bin_index
 * was retrieved by get_bin() or find_bin()).  The bin's name may not be
 * changed during the life of the bin.
 */
69
inline std::string CullBinManager::get_bin_name(int bin_index) const;

2995 12 get_bin_type 0 4 3696 28 CullBinManager::get_bin_type 0 2 1304 1305 195
/**
 * Returns the type of the bin with the indicated bin_index (where bin_index
 * was retrieved by get_bin() or find_bin()).
 */

/**
 * Returns the type of the bin with the indicated name.
 */
173
inline CullBinManager::BinType CullBinManager::get_bin_type(int bin_index) const;
inline CullBinManager::BinType CullBinManager::get_bin_type(std::string const &name) const;

2996 12 set_bin_type 0 4 3696 28 CullBinManager::set_bin_type 0 2 1306 1307 423
/**
 * Changes the type of the bin with the indicated bin_index (where bin_index
 * was retrieved by get_bin() or find_bin()).
 *
 * The change might be effective immediately, or it might take place next
 * frame, depending on the bin type.
 */

/**
 * Changes the type of the bin with the indicated name.
 *
 * The change might be effective immediately, or it might take place next
 * frame, depending on the bin type.
 */
183
inline void CullBinManager::set_bin_type(int bin_index, CullBinManager::BinType type);
inline void CullBinManager::set_bin_type(std::string const &name, CullBinManager::BinType type);

2997 12 get_bin_sort 0 4 3696 28 CullBinManager::get_bin_sort 0 2 1308 1309 483
/**
 * Returns the sort order of the bin with the indicated bin_index (where
 * bin_index was retrieved by get_bin() or find_bin()).
 *
 * The bins are rendered in increasing order by their sort order; this number
 * may be changed from time to time to reorder the bins.
 */

/**
 * Returns the sort order of the bin with the indicated name.
 *
 * The bins are rendered in increasing order by their sort order; this number
 * may be changed from time to time to reorder the bins.
 */
133
inline int CullBinManager::get_bin_sort(int bin_index) const;
inline int CullBinManager::get_bin_sort(std::string const &name) const;

2998 12 set_bin_sort 0 4 3696 28 CullBinManager::set_bin_sort 0 2 1310 1311 483
/**
 * Changes the sort order of the bin with the indicated bin_index (where
 * bin_index was retrieved by get_bin() or find_bin()).
 *
 * The bins are rendered in increasing order by their sort order; this number
 * may be changed from time to time to reorder the bins.
 */

/**
 * Changes the sort order of the bin with the indicated name.
 *
 * The bins are rendered in increasing order by their sort order; this number
 * may be changed from time to time to reorder the bins.
 */
143
inline void CullBinManager::set_bin_sort(int bin_index, int sort);
inline void CullBinManager::set_bin_sort(std::string const &name, int sort);

2999 14 get_bin_active 0 4 3696 30 CullBinManager::get_bin_active 0 2 1312 1313 373
/**
 * Returns the active flag of the bin with the indicated bin_index (where
 * bin_index was retrieved by get_bin() or find_bin()).
 *
 * When a bin is marked inactive, all geometry assigned to it is not rendered.
 */

/**
 * Returns the active flag of the bin with the indicated name.
 *
 * When a bin is marked inactive, all geometry assigned to it is not rendered.
 */
139
inline bool CullBinManager::get_bin_active(int bin_index) const;
inline bool CullBinManager::get_bin_active(std::string const &name) const;

3000 14 set_bin_active 0 4 3696 30 CullBinManager::set_bin_active 0 2 1314 1315 373
/**
 * Changes the active flag of the bin with the indicated bin_index (where
 * bin_index was retrieved by get_bin() or find_bin()).
 *
 * When a bin is marked inactive, all geometry assigned to it is not rendered.
 */

/**
 * Changes the active flag of the bin with the indicated name.
 *
 * When a bin is marked inactive, all geometry assigned to it is not rendered.
 */
153
inline void CullBinManager::set_bin_active(int bin_index, bool active);
inline void CullBinManager::set_bin_active(std::string const &name, bool active);

3001 20 get_bin_flash_active 0 4 3696 36 CullBinManager::get_bin_flash_active 0 1 1316 227
/**
 * Returns true if the bin with the given bin_index is configured to flash at
 * a predetermined color (where bin_index was retrieved by get_bin() or
 * find_bin()).
 *
 * This method is not available in release builds.
 */
70
inline bool CullBinManager::get_bin_flash_active(int bin_index) const;

3002 19 get_bin_flash_color 0 4 3696 35 CullBinManager::get_bin_flash_color 0 1 1317 147
/**
 * Returns the color that this bin has been configured to flash to, if
 * configured.
 *
 * This method is not available in release builds.
 */
78
inline LColor const &CullBinManager::get_bin_flash_color(int bin_index) const;

3003 20 set_bin_flash_active 0 4 3696 36 CullBinManager::set_bin_flash_active 0 1 1318 216
/**
 * When set to true, the given bin_index is configured to flash at a
 * predetermined color (where bin_index was retrieved by get_bin() or
 * find_bin()).
 *
 * This method is not available in release builds.
 */
77
inline void CullBinManager::set_bin_flash_active(int bin_index, bool active);

3004 19 set_bin_flash_color 0 4 3696 35 CullBinManager::set_bin_flash_color 0 1 1319 113
/**
 * Changes the flash color for the given bin index.
 *
 * This method is not available in release builds.
 */
84
inline void CullBinManager::set_bin_flash_color(int bin_index, LColor const &color);

3005 5 write 0 4 3696 21 CullBinManager::write 0 1 1320 10
/**
 *
 */
52
void CullBinManager::write(std::ostream &out) const;

3006 14 get_global_ptr 0 4 3696 30 CullBinManager::get_global_ptr 0 1 1321 67
/**
 * Returns the pointer to the global CullBinManager object.
 */
67
static inline CullBinManager *CullBinManager::get_global_ptr(void);

3007 4 make 0 4 3697 20 CullFaceAttrib::make 0 1 1322 400
/**
 * Constructs a new CullFaceAttrib object that specifies how to cull geometry.
 * By Panda convention, vertices are ordered counterclockwise when seen from
 * the front, so the M_cull_clockwise will cull backfacing polygons.
 *
 * M_cull_unchanged is an identity attrib; if this is applied to vertices
 * without any other intervening attrib, it is the same as applying the
 * default attrib.
 */
123
static ConstPointerTo< RenderAttrib > CullFaceAttrib::make(CullFaceAttrib::Mode mode = ::CullFaceAttrib::M_cull_clockwise);

3008 12 make_reverse 0 4 3697 28 CullFaceAttrib::make_reverse 0 1 1323 246
/**
 * Constructs a new CullFaceAttrib object that reverses the effects of any
 * other CullFaceAttrib objects in the scene graph.  M_cull_clockwise will be
 * treated as M_cull_counter_clockwise, and vice-versa.  M_cull_none is
 * unchanged.
 */
73
static ConstPointerTo< RenderAttrib > CullFaceAttrib::make_reverse(void);

3009 12 make_default 0 4 3697 28 CullFaceAttrib::make_default 0 1 1324 145
/**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */
73
static ConstPointerTo< RenderAttrib > CullFaceAttrib::make_default(void);

3010 15 get_actual_mode 0 4 3697 31 CullFaceAttrib::get_actual_mode 0 1 1325 131
/**
 * Returns the actual culling mode, without considering the effects of the
 * reverse flag.  See also get_effective_mode().
 */
72
inline CullFaceAttrib::Mode CullFaceAttrib::get_actual_mode(void) const;

3011 11 get_reverse 0 4 3697 27 CullFaceAttrib::get_reverse 0 1 1326 299
/**
 * Returns the 'reverse' flag.  If this is true, the actual cull direction
 * (clockwise vs.  counterclockwise) is the reverse of what is specified here.
 * This allows support for make_reverse(), which defines a CullFaceAttrib that
 * reverses whatever the sense of culling would have been.
 */
52
inline bool CullFaceAttrib::get_reverse(void) const;

3012 18 get_effective_mode 0 4 3697 34 CullFaceAttrib::get_effective_mode 0 1 1327 220
/**
 * Returns the effective culling mode.  This is the same as the actual culling
 * mode, unless the reverse flag is set, which swaps CW for CCW and vice-
 * versa.  Also, M_cull_unchanged is mapped to M_cull_none.
 */
68
CullFaceAttrib::Mode CullFaceAttrib::get_effective_mode(void) const;

3013 14 get_class_slot 0 4 3697 30 CullFaceAttrib::get_class_slot 0 1 1328 0
48
static int CullFaceAttrib::get_class_slot(void);

3014 14 get_class_type 0 4 3697 30 CullFaceAttrib::get_class_type 0 1 1329 0
55
static TypeHandle CullFaceAttrib::get_class_type(void);

3015 15 ~CullFaceAttrib 0 516 3697 31 CullFaceAttrib::~CullFaceAttrib 0 0 0
38
CullFaceAttrib::~CullFaceAttrib(void);

3016 16 ~WorkingNodePath 0 516 3699 33 WorkingNodePath::~WorkingNodePath 0 0 10
/**
 *
 */
47
inline WorkingNodePath::~WorkingNodePath(void);

3017 8 is_valid 0 4 3699 25 WorkingNodePath::is_valid 0 0 115
/**
 * Returns true if the WorkingNodePath object appears to be a valid NodePath
 * reference, false otherwise.
 */
43
bool WorkingNodePath::is_valid(void) const;

3018 13 get_node_path 0 4 3699 30 WorkingNodePath::get_node_path 0 0 109
/**
 * Constructs and returns an actual NodePath that represents the same path we
 * have just traversed.
 */
59
inline NodePath WorkingNodePath::get_node_path(void) const;

3019 4 node 0 4 3700 23 CullTraverserData::node 0 1 1331 48
/**
 * Returns the node traversed to so far.
 */
54
inline PandaNode *CullTraverserData::node(void) const;

3020 23 get_modelview_transform 0 4 3700 42 CullTraverserData::get_modelview_transform 0 1 1332 99
/**
 * Returns the modelview transform: the relative transform from the camera to
 * the model.
 */
116
inline ConstPointerTo< TransformState > CullTraverserData::get_modelview_transform(CullTraverser const *trav) const;

3021 22 get_internal_transform 0 4 3700 41 CullTraverserData::get_internal_transform 0 1 1333 110
/**
 * Returns the internal transform: the modelview transform in the GSG's
 * internal coordinate system.
 */
115
inline ConstPointerTo< TransformState > CullTraverserData::get_internal_transform(CullTraverser const *trav) const;

3022 17 get_net_transform 0 4 3700 36 CullTraverserData::get_net_transform 0 1 1334 113
/**
 * Returns the net transform: the relative transform from root of the scene
 * graph to the current node.
 */
99
inline TransformState const *CullTraverserData::get_net_transform(CullTraverser const *trav) const;

3023 10 is_in_view 0 4 3700 29 CullTraverserData::is_in_view 0 1 1335 252
/**
 * Returns true if the current node is within the view frustum, false
 * otherwise.  If the node's bounding volume falls completely within the view
 * frustum, this will also reset the view frustum pointer, saving some work
 * for future nodes.
 */
71
inline bool CullTraverserData::is_in_view(DrawMask const &camera_mask);

3024 19 is_this_node_hidden 0 4 3700 38 CullTraverserData::is_this_node_hidden 0 1 1336 234
/**
 * Returns true if this particular node is hidden, even though we might be
 * traversing past this node to find a child node that has had show_through()
 * called for it.  If this returns true, the node should not be rendered.
 */
86
inline bool CullTraverserData::is_this_node_hidden(DrawMask const &camera_mask) const;

3025 25 apply_transform_and_state 0 4 3700 44 CullTraverserData::apply_transform_and_state 0 1 1337 128
/**
 * Applies the transform and state from the current node onto the current
 * data.  This also evaluates billboards, etc.
 */
71
void CullTraverserData::apply_transform_and_state(CullTraverser *trav);

3026 15 apply_transform 0 4 3700 34 CullTraverserData::apply_transform 0 1 1338 73
/**
 * Applies the indicated transform changes onto the current data.
 */
78
void CullTraverserData::apply_transform(TransformState const *node_transform);

3027 13 get_node_path 0 4 3700 32 CullTraverserData::get_node_path 0 0 109
/**
 * Constructs and returns an actual NodePath that represents the same path we
 * have just traversed.
 */
61
inline NodePath CullTraverserData::get_node_path(void) const;

3028 17 CullTraverserData 0 260 3700 36 CullTraverserData::CullTraverserData 0 1 1330 128
/**
 *
 */

/**
 * This constructor creates a CullTraverserData object that reflects the next
 * node down in the traversal.
 */
81
inline CullTraverserData::CullTraverserData(CullTraverserData const &) = default;

3029 18 ~CullTraverserData 0 516 3700 37 CullTraverserData::~CullTraverserData 0 0 0
44
CullTraverserData::~CullTraverserData(void);

3030 18 set_display_region 0 4 3701 30 SceneSetup::set_display_region 0 1 1340 54
/**
 * Specifies the display region for the scene.
 */
74
inline void SceneSetup::set_display_region(DisplayRegion *display_region);

3031 18 get_display_region 0 4 3701 30 SceneSetup::get_display_region 0 1 1341 52
/**
 * Returns the display region for the scene.
 */
65
inline DisplayRegion *SceneSetup::get_display_region(void) const;

3032 17 set_viewport_size 0 4 3701 29 SceneSetup::set_viewport_size 0 1 1342 74
/**
 * Specifies the size of the viewport (display region), in pixels.
 */
65
inline void SceneSetup::set_viewport_size(int width, int height);

3033 18 get_viewport_width 0 4 3701 30 SceneSetup::get_viewport_width 0 1 1343 72
/**
 * Returns the width of the viewport (display region) in pixels.
 */
54
inline int SceneSetup::get_viewport_width(void) const;

3034 19 get_viewport_height 0 4 3701 31 SceneSetup::get_viewport_height 0 1 1344 73
/**
 * Returns the height of the viewport (display region) in pixels.
 */
55
inline int SceneSetup::get_viewport_height(void) const;

3035 14 set_scene_root 0 4 3701 26 SceneSetup::set_scene_root 0 1 1345 48
/**
 * Specifies the root node of the scene.
 */
67
inline void SceneSetup::set_scene_root(NodePath const &scene_root);

3036 14 get_scene_root 0 4 3701 26 SceneSetup::get_scene_root 0 1 1346 46
/**
 * Returns the root node of the scene.
 */
62
inline NodePath const &SceneSetup::get_scene_root(void) const;

3037 15 set_camera_path 0 4 3701 27 SceneSetup::set_camera_path 0 1 1347 48
/**
 * Specifies the NodePath to the camera.
 */
69
inline void SceneSetup::set_camera_path(NodePath const &camera_path);

3038 15 get_camera_path 0 4 3701 27 SceneSetup::get_camera_path 0 1 1348 46
/**
 * Returns the NodePath to the camera.
 */
63
inline NodePath const &SceneSetup::get_camera_path(void) const;

3039 15 set_camera_node 0 4 3701 27 SceneSetup::set_camera_node 0 1 1349 57
/**
 * Specifies the camera used to render the scene.
 */
61
inline void SceneSetup::set_camera_node(Camera *camera_node);

3040 15 get_camera_node 0 4 3701 27 SceneSetup::get_camera_node 0 1 1350 55
/**
 * Returns the camera used to render the scene.
 */
55
inline Camera *SceneSetup::get_camera_node(void) const;

3041 8 set_lens 0 4 3701 20 SceneSetup::set_lens 0 1 1351 60
/**
 * Indicates the particular Lens used for rendering.
 */
51
inline void SceneSetup::set_lens(Lens const *lens);

3042 8 get_lens 0 4 3701 20 SceneSetup::get_lens 0 1 1352 58
/**
 * Returns the particular Lens used for rendering.
 */
52
inline Lens const *SceneSetup::get_lens(void) const;

3043 12 set_inverted 0 4 3701 24 SceneSetup::set_inverted 0 1 1353 220
/**
 * Changes the current setting of the inverted flag.  When this is true, the
 * scene is rendered into the window upside-down and backwards, that is,
 * inverted as if viewed through a mirror placed on the floor.
 */
52
inline void SceneSetup::set_inverted(bool inverted);

3044 12 get_inverted 0 4 3701 24 SceneSetup::get_inverted 0 1 1354 177
/**
 * Returns the current setting of the inverted flag.  When this is true, the
 * scene is rendered into the window upside-down, flipped like a mirror along
 * the X axis.
 */
49
inline bool SceneSetup::get_inverted(void) const;

3045 15 get_cull_center 0 4 3701 27 SceneSetup::get_cull_center 0 1 1355 207
/**
 * Returns the point from which the culling operations will be performed.
 * This is normally the camera, but if camera->set_cull_center() has been
 * specified, it will be that special node instead.
 */
63
inline NodePath const &SceneSetup::get_cull_center(void) const;

3046 15 get_cull_bounds 0 4 3701 27 SceneSetup::get_cull_bounds 0 1 1356 246
/**
 * Returns the bounding volume that should be used to perform view-frustum
 * culling (in the space of get_cull_center()).  This is normally the current
 * lens' bounding volume, but it may be overridden with
 * Camera::set_cull_bounds().
 */
75
inline PointerTo< BoundingVolume > SceneSetup::get_cull_bounds(void) const;

3047 17 set_initial_state 0 4 3701 29 SceneSetup::set_initial_state 0 1 1357 129
/**
 * Sets the initial state which is applied to all nodes in the scene, as if it
 * were set at the top of the scene graph.
 */
76
inline void SceneSetup::set_initial_state(RenderState const *initial_state);

3048 17 get_initial_state 0 4 3701 29 SceneSetup::get_initial_state 0 1 1358 86
/**
 * Returns the initial state as set by a previous call to set_initial_state().
 */
68
inline RenderState const *SceneSetup::get_initial_state(void) const;

3049 20 set_camera_transform 0 4 3701 32 SceneSetup::set_camera_transform 0 1 1359 78
/**
 * Specifies the position of the camera relative to the starting node.
 */
85
inline void SceneSetup::set_camera_transform(TransformState const *camera_transform);

3050 20 get_camera_transform 0 4 3701 32 SceneSetup::get_camera_transform 0 1 1360 76
/**
 * Returns the position of the camera relative to the starting node.
 */
74
inline TransformState const *SceneSetup::get_camera_transform(void) const;

3051 19 set_world_transform 0 4 3701 31 SceneSetup::set_world_transform 0 1 1361 127
/**
 * Specifies the position of the starting node relative to the camera.  This
 * is the inverse of the camera transform.
 */
83
inline void SceneSetup::set_world_transform(TransformState const *world_transform);

3052 19 get_world_transform 0 4 3701 31 SceneSetup::get_world_transform 0 1 1362 125
/**
 * Returns the position of the starting node relative to the camera.  This is
 * the inverse of the camera transform.
 */
73
inline TransformState const *SceneSetup::get_world_transform(void) const;

3053 16 set_cs_transform 0 4 3701 28 SceneSetup::set_cs_transform 0 1 1363 114
/**
 * Specifies the transform from the camera's coordinate system to the GSG's
 * internal coordinate system.
 */
77
inline void SceneSetup::set_cs_transform(TransformState const *cs_transform);

3054 16 get_cs_transform 0 4 3701 28 SceneSetup::get_cs_transform 0 1 1364 112
/**
 * Returns the transform from the camera's coordinate system to the GSG's
 * internal coordinate system.
 */
70
inline TransformState const *SceneSetup::get_cs_transform(void) const;

3055 22 set_cs_world_transform 0 4 3701 34 SceneSetup::set_cs_world_transform 0 1 1365 124
/**
 * Specifies the position from the starting node relative to the camera, in
 * the GSG's internal coordinate system.
 */
89
inline void SceneSetup::set_cs_world_transform(TransformState const *cs_world_transform);

3056 22 get_cs_world_transform 0 4 3701 34 SceneSetup::get_cs_world_transform 0 1 1366 122
/**
 * Returns the position from the starting node relative to the camera, in the
 * GSG's internal coordinate system.
 */
76
inline TransformState const *SceneSetup::get_cs_world_transform(void) const;

3057 14 get_class_type 0 4 3701 26 SceneSetup::get_class_type 0 1 1367 0
51
static TypeHandle SceneSetup::get_class_type(void);

3058 10 SceneSetup 0 260 3701 22 SceneSetup::SceneSetup 0 1 1339 10
/**
 *
 */
60
inline SceneSetup::SceneSetup(SceneSetup const &) = default;

3059 11 ~SceneSetup 0 516 3701 23 SceneSetup::~SceneSetup 0 0 0
30
SceneSetup::~SceneSetup(void);

3060 3 Fog 0 260 3702 8 Fog::Fog 0 1 1368 22
/**
 *
 */

/**
 *
 */
43
explicit Fog::Fog(std::string const &name);

3061 8 get_mode 0 4 3702 13 Fog::get_mode 0 1 1369 10
/**
 *
 */
43
inline Fog::Mode Fog::get_mode(void) const;

3062 8 set_mode 0 4 3702 13 Fog::set_mode 0 1 1370 586
/**
 * Specifies the computation that is used to determine the fog effect.  If
 * this is M_linear, then the fog will range from linearly from the onset
 * point to the opaque point (or for the distances specified in
 * set_linear_range), and the fog object should be parented into the scene
 * graph, or to the camera.
 *
 * If this is anything else, the onset point and opaque point are not used,
 * and the fog effect is based on the value specified to set_exp_density(),
 * and it doesn't matter to which node the fog object is parented, or if it is
 * parented anywhere at all.
 */
42
inline void Fog::set_mode(Fog::Mode mode);

3063 9 get_color 0 4 3702 14 Fog::get_color 0 1 1371 40
/**
 * Returns the color of the fog.
 */
48
inline LColor const &Fog::get_color(void) const;

3064 9 set_color 0 4 3702 14 Fog::set_color 0 2 1372 1373 110
/**
 * Sets the color of the fog.
 */

/**
 * Sets the color of the fog.  The alpha component is not used.
 */
121
inline void Fog::set_color(PN_stdfloat r, PN_stdfloat g, PN_stdfloat b);
inline void Fog::set_color(LColor const &color);

3065 16 set_linear_range 0 4 3702 21 Fog::set_linear_range 0 1 1374 400
/**
 * Specifies the effects of the fog in linear distance units.  This is only
 * used if the mode is M_linear.
 *
 * This specifies a fog that begins at distance onset units from the origin,
 * and becomes totally opaque at distance opaque units from the origin, along
 * the forward axis (usually Y).
 *
 * This function also implicitly sets the mode the M_linear, if it is not
 * already set.
 */
73
inline void Fog::set_linear_range(PN_stdfloat onset, PN_stdfloat opaque);

3066 22 get_linear_onset_point 0 4 3702 27 Fog::get_linear_onset_point 0 1 1375 109
/**
 * Returns the point in space at which the fog begins.  This is only used if
 * the mode is M_linear.
 */
62
inline LPoint3 const &Fog::get_linear_onset_point(void) const;

3067 22 set_linear_onset_point 0 4 3702 27 Fog::set_linear_onset_point 0 2 1376 1377 224
/**
 * Specifies the point in space at which the fog begins.  This is only used if
 * the mode is M_linear.
 */

/**
 * Specifies the point in space at which the fog begins.  This is only used if
 * the mode is M_linear.
 */
161
inline void Fog::set_linear_onset_point(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z);
inline void Fog::set_linear_onset_point(LPoint3 const &linear_onset_point);

3068 23 get_linear_opaque_point 0 4 3702 28 Fog::get_linear_opaque_point 0 1 1378 130
/**
 * Returns the point in space at which the fog completely obscures geometry.
 * This is only used if the mode is M_linear.
 */
63
inline LPoint3 const &Fog::get_linear_opaque_point(void) const;

3069 23 set_linear_opaque_point 0 4 3702 28 Fog::set_linear_opaque_point 0 2 1379 1380 266
/**
 * Specifies the point in space at which the fog completely obscures geometry.
 * This is only used if the mode is M_linear.
 */

/**
 * Specifies the point in space at which the fog completely obscures geometry.
 * This is only used if the mode is M_linear.
 */
164
inline void Fog::set_linear_opaque_point(LPoint3 const &linear_opaque_point);
inline void Fog::set_linear_opaque_point(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z);

3070 19 set_linear_fallback 0 4 3702 24 Fog::set_linear_fallback 0 1 1381 1553
/**
 * Fog effects are traditionally defined in camera-relative space, but the
 * Panda Fog node has a special mode in which it can define a linear fog
 * effect in an arbitrary coordinate space.
 *
 * This is done by specifying 3-d onset and opaque points, and parenting the
 * Fog object somewhere within the scene graph.  In this mode, the fog will be
 * rendered as if it extended along the vector from the onset point to the
 * opaque point, in 3-d space.
 *
 * However, the underlying fog effect supported by hardware is generally only
 * one-dimensional, and must be rendered based on linear distance from the
 * camera plane.  Thus, this in-the-world effect is most effective when the
 * fog vector from onset point to opaque point is most nearly parallel to the
 * camera's eye vector.
 *
 * As the angle between the fog vector and the eye vector increases, the
 * accuracy of the effect diminishes, up to a complete breakdown of the effect
 * at a 90 degree angle.
 *
 * This function exists to define the workaround to this problem.  The linear
 * fallback parameters given here specify how the fog should be rendered when
 * the parameters are exceeded in this way.
 *
 * The angle parameter is the minimum angle, in degrees, of the fog vector to
 * the eye vector, at which the fallback effect should be employed.  The onset
 * and opaque parameters specify the camera-relative onset and opaque
 * distances to pass to the rendering hardware when employing the fallback
 * effect.  This supercedes the 3-d onset point and opaque points.
 */
95
inline void Fog::set_linear_fallback(PN_stdfloat angle, PN_stdfloat onset, PN_stdfloat opaque);

3071 15 get_exp_density 0 4 3702 20 Fog::get_exp_density 0 1 1382 122
/**
 * Returns the density of the fog for exponential calculations.  This is only
 * used if the mode is not M_linear.
 */
52
inline PN_stdfloat Fog::get_exp_density(void) const;

3072 15 set_exp_density 0 4 3702 20 Fog::set_exp_density 0 1 1383 221
/**
 * Sets the density of the fog for exponential calculations.  This is only
 * used if the mode is not M_linear.
 *
 * If the mode is currently set to M_linear, this function implicitly sets it
 * to M_exponential.
 */
58
inline void Fog::set_exp_density(PN_stdfloat exp_density);

3073 14 get_class_type 0 4 3702 19 Fog::get_class_type 0 1 1384 0
44
static TypeHandle Fog::get_class_type(void);

3074 4 make 0 4 3705 15 FogAttrib::make 0 1 1385 103
/**
 * Constructs a new FogAttrib object suitable for rendering the indicated fog
 * onto geometry.
 */
64
static ConstPointerTo< RenderAttrib > FogAttrib::make(Fog *fog);

3075 8 make_off 0 4 3705 19 FogAttrib::make_off 0 1 1386 84
/**
 * Constructs a new FogAttrib object suitable for rendering unfogd geometry.
 */
64
static ConstPointerTo< RenderAttrib > FogAttrib::make_off(void);

3076 12 make_default 0 4 3705 23 FogAttrib::make_default 0 1 1387 145
/**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */
68
static ConstPointerTo< RenderAttrib > FogAttrib::make_default(void);

3077 6 is_off 0 4 3705 17 FogAttrib::is_off 0 1 1388 105
/**
 * Returns true if the FogAttrib is an 'off' FogAttrib, indicating that it
 * should disable fog.
 */
42
inline bool FogAttrib::is_off(void) const;

3078 7 get_fog 0 4 3705 18 FogAttrib::get_fog 0 1 1389 118
/**
 * If the FogAttrib is not an 'off' FogAttrib, returns the fog that is
 * associated.  Otherwise, return NULL.
 */
43
inline Fog *FogAttrib::get_fog(void) const;

3079 14 get_class_slot 0 4 3705 25 FogAttrib::get_class_slot 0 1 1390 0
43
static int FogAttrib::get_class_slot(void);

3080 14 get_class_type 0 4 3705 25 FogAttrib::get_class_type 0 1 1391 0
50
static TypeHandle FogAttrib::get_class_type(void);

3081 10 ~FogAttrib 0 516 3705 21 FogAttrib::~FogAttrib 0 0 0
28
FogAttrib::~FogAttrib(void);

3082 13 CullTraverser 0 260 3707 28 CullTraverser::CullTraverser 0 2 1392 1393 22
/**
 *
 */

/**
 *
 */
92
CullTraverser::CullTraverser(void);
CullTraverser::CullTraverser(CullTraverser const &copy);

3083 7 get_gsg 0 4 3707 22 CullTraverser::get_gsg 0 1 1394 55
/**
 * Returns the GraphicsStateGuardian in effect.
 */
69
inline GraphicsStateGuardianBase *CullTraverser::get_gsg(void) const;

3084 18 get_current_thread 0 4 3707 33 CullTraverser::get_current_thread 0 1 1395 104
/**
 * Returns the currently-executing thread object, as passed to the
 * CullTraverser constructor.
 */
61
inline Thread *CullTraverser::get_current_thread(void) const;

3085 9 set_scene 0 6 3707 24 CullTraverser::set_scene 0 1 1396 134
/**
 * Sets the SceneSetup object that indicates the initial camera position, etc.
 * This must be called before traversal begins.
 */
122
virtual void CullTraverser::set_scene(SceneSetup *scene_setup, GraphicsStateGuardianBase *gsg, bool dr_incomplete_render);

3086 9 get_scene 0 4 3707 24 CullTraverser::get_scene 0 1 1397 41
/**
 * Returns the SceneSetup object.
 */
56
inline SceneSetup *CullTraverser::get_scene(void) const;

3087 17 has_tag_state_key 0 4 3707 32 CullTraverser::has_tag_state_key 0 1 1398 114
/**
 * Returns true if a nonempty tag state key has been specified for the scene's
 * camera, false otherwise.
 */
57
inline bool CullTraverser::has_tag_state_key(void) const;

3088 17 get_tag_state_key 0 4 3707 32 CullTraverser::get_tag_state_key 0 1 1399 95
/**
 * Returns the tag state key that has been specified for the scene's camera,
 * if any.
 */
71
inline std::string const &CullTraverser::get_tag_state_key(void) const;

3089 15 set_camera_mask 0 4 3707 30 CullTraverser::set_camera_mask 0 1 1400 276
/**
 * Changes the visibility mask for the camera viewing the scene.  This is
 * normally set automatically at the time setup_scene() is called; you should
 * change this only if you want to render some set of objects different from
 * what the camera normally would draw.
 */
72
inline void CullTraverser::set_camera_mask(DrawMask const &camera_mask);

3090 15 get_camera_mask 0 4 3707 30 CullTraverser::get_camera_mask 0 1 1401 73
/**
 * Returns the visibility mask from the camera viewing the scene.
 */
66
inline DrawMask const &CullTraverser::get_camera_mask(void) const;

3091 20 get_camera_transform 0 4 3707 35 CullTraverser::get_camera_transform 0 1 1402 76
/**
 * Returns the position of the camera relative to the starting node.
 */
77
inline TransformState const *CullTraverser::get_camera_transform(void) const;

3092 19 get_world_transform 0 4 3707 34 CullTraverser::get_world_transform 0 1 1403 362
/**
 * Returns the position of the starting node relative to the camera.  This is
 * the inverse of the camera transform.
 *
 * Note that this value is always the position of the starting node, not the
 * current node, even if it is sampled during a traversal.  To get the
 * transform of the current node use
 * CullTraverserData::get_modelview_transform().
 */
76
inline TransformState const *CullTraverser::get_world_transform(void) const;

3093 17 get_initial_state 0 4 3707 32 CullTraverser::get_initial_state 0 1 1404 149
/**
 * Returns the initial RenderState at the top of the scene graph we are
 * traversing, or the empty state if the initial state was never set.
 */
71
inline RenderState const *CullTraverser::get_initial_state(void) const;

3094 23 get_depth_offset_decals 0 4 3707 38 CullTraverser::get_depth_offset_decals 0 1 1405 96
/**
 * Returns true, as depth offsets are the only way that we implement decals
 * nowadays.
 */
63
inline bool CullTraverser::get_depth_offset_decals(void) const;

3095 16 set_view_frustum 0 4 3707 31 CullTraverser::set_view_frustum 0 1 1406 154
/**
 * Specifies the bounding volume that corresponds to the view frustum.  Any
 * primitives that fall entirely outside of this volume are not drawn.
 */
83
inline void CullTraverser::set_view_frustum(GeometricBoundingVolume *view_frustum);

3096 16 get_view_frustum 0 4 3707 31 CullTraverser::get_view_frustum 0 1 1407 423
/**
 * Returns the bounding volume that corresponds to the view frustum, or NULL
 * if the view frustum is not in use or has not been set.
 *
 * Note that the view frustum returned here is always in the coordinate space
 * of the starting node, not the current node, even if it is sampled during a
 * traversal.  To get the view frustum in the current node's coordinate space,
 * check in the current CullTraverserData.
 */
76
inline GeometricBoundingVolume *CullTraverser::get_view_frustum(void) const;

3097 16 set_cull_handler 0 4 3707 31 CullTraverser::set_cull_handler 0 1 1408 115
/**
 * Specifies the object that will receive the culled Geoms.  This must be set
 * before calling traverse().
 */
71
inline void CullTraverser::set_cull_handler(CullHandler *cull_handler);

3098 16 get_cull_handler 0 4 3707 31 CullTraverser::get_cull_handler 0 1 1409 65
/**
 * Returns the object that will receive the culled Geoms.
 */
64
inline CullHandler *CullTraverser::get_cull_handler(void) const;

3099 18 set_portal_clipper 0 4 3707 33 CullTraverser::set_portal_clipper 0 1 1410 108
/**
 * Specifies _portal_clipper object pointer that subsequent traverse() or
 * traverse_below may use.
 */
77
inline void CullTraverser::set_portal_clipper(PortalClipper *portal_clipper);

3100 18 get_portal_clipper 0 4 3707 33 CullTraverser::get_portal_clipper 0 1 1411 46
/**
 * Returns the _portal_clipper pointer
 */
68
inline PortalClipper *CullTraverser::get_portal_clipper(void) const;

3101 31 get_effective_incomplete_render 0 4 3707 46 CullTraverser::get_effective_incomplete_render 0 1 1412 341
/**
 * Returns true if the cull traversal is effectively in incomplete_render
 * state, considering both the GSG's incomplete_render and the current
 * DisplayRegion's incomplete_render flags.  This returns the flag during the
 * cull traversal; see GSG::get_effective_incomplete_render() for this same
 * flag during the draw traversal.
 */
71
inline bool CullTraverser::get_effective_incomplete_render(void) const;

3102 8 traverse 0 4 3707 23 CullTraverser::traverse 0 2 1413 1414 219
/**
 * Begins the traversal from the indicated node.
 */

/**
 * Traverses from the next node with the given data, which has been
 * constructed with the node but has not yet been converted into the node's
 * space.
 */
106
void CullTraverser::traverse(NodePath const &root);
void CullTraverser::traverse(CullTraverserData &data);

3103 14 traverse_below 0 6 3707 29 CullTraverser::traverse_below 0 1 1415 132
/**
 * Traverses all the children of the indicated node, with the given data,
 * which has been converted into the node's space.
 */
68
virtual void CullTraverser::traverse_below(CullTraverserData &data);

3104 12 end_traverse 0 6 3707 27 CullTraverser::end_traverse 0 1 1416 141
/**
 * Should be called when the traverser has finished traversing its scene, this
 * gives it a chance to do any necessary finalization.
 */
47
virtual void CullTraverser::end_traverse(void);

3105 11 flush_level 0 4 3707 26 CullTraverser::flush_level 0 1 1417 61
/**
 * Flushes the PStatCollectors used during traversal.
 */
52
static inline void CullTraverser::flush_level(void);

3106 20 draw_bounding_volume 0 4 3707 35 CullTraverser::draw_bounding_volume 0 1 1418 79
/**
 * Draws an appropriate visualization of the indicated bounding volume.
 */
116
void CullTraverser::draw_bounding_volume(BoundingVolume const *vol, TransformState const *internal_transform) const;

3107 14 get_class_type 0 4 3707 29 CullTraverser::get_class_type 0 1 1419 0
54
static TypeHandle CullTraverser::get_class_type(void);

3108 14 ~CullTraverser 0 516 3707 29 CullTraverser::~CullTraverser 0 0 0
36
CullTraverser::~CullTraverser(void);

3109 10 get_object 0 4 3708 32 GeomDrawCallbackData::get_object 0 1 1420 74
/**
 * Returns a pointer to the particular object that is being drawn.
 */
68
inline CullableObject *GeomDrawCallbackData::get_object(void) const;

3110 7 get_gsg 0 4 3708 29 GeomDrawCallbackData::get_gsg 0 1 1421 48
/**
 * Returns a pointer to the current GSG.
 */
76
inline GraphicsStateGuardianBase *GeomDrawCallbackData::get_gsg(void) const;

3111 9 get_force 0 4 3708 31 GeomDrawCallbackData::get_force 0 1 1422 246
/**
 * Returns true if any required data should be forced into memory if necessary
 * to render the object, or false if the object should be omitted if some of
 * the data is not available (at least until the data becomes available
 * later).
 */
56
inline bool GeomDrawCallbackData::get_force(void) const;

3112 14 set_lost_state 0 4 3708 36 GeomDrawCallbackData::set_lost_state 0 1 1423 461
/**
 * Sets the lost_state flag.  If this is true, the callback does not have to
 * be quite so careful to clean up after itself; Panda will assume that the
 * graphics state is in an unknown state after the callback has finished, and
 * will issue all the necessary calls to restore it.  If this is false, Panda
 * will assume the callback will leave the graphics state exactly as it came
 * in, and won't bother to try to restore it.  The default is true.
 */
66
inline void GeomDrawCallbackData::set_lost_state(bool lost_state);

3113 14 get_lost_state 0 4 3708 36 GeomDrawCallbackData::get_lost_state 0 1 1424 62
/**
 * Returns the lost_state flag.  See set_lost_state().
 */
61
inline bool GeomDrawCallbackData::get_lost_state(void) const;

3114 14 get_class_type 0 4 3708 36 GeomDrawCallbackData::get_class_type 0 1 1425 0
61
static TypeHandle GeomDrawCallbackData::get_class_type(void);

3115 21 ~GeomDrawCallbackData 0 516 3708 43 GeomDrawCallbackData::~GeomDrawCallbackData 0 0 0
50
GeomDrawCallbackData::~GeomDrawCallbackData(void);

3116 4 make 0 4 3710 25 RescaleNormalAttrib::make 0 1 1426 169
/**
 * Constructs a new RescaleNormalAttrib object that specifies whether to
 * rescale normals to compensate for transform scales or incorrectly defined
 * normals.
 */
96
static ConstPointerTo< RenderAttrib > RescaleNormalAttrib::make(RescaleNormalAttrib::Mode mode);

3117 12 make_default 0 4 3710 33 RescaleNormalAttrib::make_default 0 1 1427 209
/**
 * Constructs a RescaleNormalAttrib object that's suitable for putting at the
 * top of a scene graph.  This will contain whatever attrib was suggested by
 * the user's rescale-normals Config variable.
 */
85
static inline ConstPointerTo< RenderAttrib > RescaleNormalAttrib::make_default(void);

3118 8 get_mode 0 4 3710 29 RescaleNormalAttrib::get_mode 0 1 1428 35
/**
 * Returns the render mode.
 */
75
inline RescaleNormalAttrib::Mode RescaleNormalAttrib::get_mode(void) const;

3119 14 get_class_slot 0 4 3710 35 RescaleNormalAttrib::get_class_slot 0 1 1429 0
53
static int RescaleNormalAttrib::get_class_slot(void);

3120 14 get_class_type 0 4 3710 35 RescaleNormalAttrib::get_class_type 0 1 1430 0
60
static TypeHandle RescaleNormalAttrib::get_class_type(void);

3121 20 ~RescaleNormalAttrib 0 516 3710 41 RescaleNormalAttrib::~RescaleNormalAttrib 0 0 0
48
RescaleNormalAttrib::~RescaleNormalAttrib(void);

3122 9 make_next 0 4 3712 21 CullResult::make_next 0 1 1432 185
/**
 * Returns a newly-allocated CullResult object that contains a copy of just
 * the subset of the data from this CullResult object that is worth keeping
 * around for next frame.
 */
58
PointerTo< CullResult > CullResult::make_next(void) const;

3123 7 get_bin 0 4 3712 19 CullResult::get_bin 0 1 1433 238
/**
 * Returns the CullBin associated with the indicated bin_index, or NULL if the
 * bin_index is invalid.  If there is the first time this bin_index has been
 * requested for this CullResult, creates a new CullBin object on the fly.
 */
51
inline CullBin *CullResult::get_bin(int bin_index);

3124 10 add_object 0 4 3712 22 CullResult::add_object 0 1 1434 152
/**
 * Adds the indicated CullableObject to the appropriate bin.  The bin becomes
 * the owner of the object pointer, and will eventually delete it.
 */
84
void CullResult::add_object(CullableObject *object, CullTraverser const *traverser);

3125 11 finish_cull 0 4 3712 23 CullResult::finish_cull 0 1 1435 219
/**
 * Called after all the geoms have been added, this indicates that the cull
 * process is finished for this frame and gives the bins a chance to do any
 * post-processing (like sorting) before moving on to draw.
 */
78
void CullResult::finish_cull(SceneSetup *scene_setup, Thread *current_thread);

3126 4 draw 0 4 3712 16 CullResult::draw 0 1 1436 69
/**
 * Asks all the bins to draw themselves in the correct order.
 */
46
void CullResult::draw(Thread *current_thread);

3127 17 make_result_graph 0 4 3712 29 CullResult::make_result_graph 0 1 1437 496
/**
 * Returns a special scene graph constructed to represent the results of the
 * cull.  This will be a hierarchy of nodes, one node for each bin, each of
 * which will in term be a parent of a number of GeomNodes, representing the
 * geometry drawn in each bin.
 *
 * This is useful mainly for high-level debugging and abstraction tools; it
 * should not be mistaken for the low-level cull result itself.  For the low-
 * level cull result, use draw() to efficiently draw the culled scene.
 */
59
PointerTo< PandaNode > CullResult::make_result_graph(void);

3128 14 get_class_type 0 4 3712 26 CullResult::get_class_type 0 1 1438 0
51
static TypeHandle CullResult::get_class_type(void);

3129 10 CullResult 0 260 3712 22 CullResult::CullResult 0 1 1431 10
/**
 *
 */
60
inline CullResult::CullResult(CullResult const &) = default;

3130 4 make 0 4 3714 17 DecalEffect::make 0 1 1439 47
/**
 * Constructs a new DecalEffect object.
 */
62
static ConstPointerTo< RenderEffect > DecalEffect::make(void);

3131 14 get_class_type 0 4 3714 27 DecalEffect::get_class_type 0 1 1440 0
52
static TypeHandle DecalEffect::get_class_type(void);

3132 12 ~DecalEffect 0 516 3714 25 DecalEffect::~DecalEffect 0 0 0
32
DecalEffect::~DecalEffect(void);

3133 4 make 0 4 3715 23 DepthOffsetAttrib::make 0 2 1441 1442 503
/**
 * Constructs a new DepthOffsetAttrib object that indicates the relative
 * amount of bias to write to the depth buffer for subsequent geometry.
 */

/**
 * Constructs a new DepthOffsetAttrib object that indicates the bias, and also
 * specifies a minimum and maximum (or, more precisely, nearest and farthest)
 * values to write to the depth buffer, in the range 0 .. 1.  This range is 0,
 * 1 by default; setting it to some other range can be used to create
 * additional depth buffer effects.
 */
199
static ConstPointerTo< RenderAttrib > DepthOffsetAttrib::make(int offset = 1);
static ConstPointerTo< RenderAttrib > DepthOffsetAttrib::make(int offset, PN_stdfloat min_value, PN_stdfloat max_value);

3134 12 make_default 0 4 3715 31 DepthOffsetAttrib::make_default 0 1 1443 145
/**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */
76
static ConstPointerTo< RenderAttrib > DepthOffsetAttrib::make_default(void);

3135 10 get_offset 0 4 3715 29 DepthOffsetAttrib::get_offset 0 1 1444 63
/**
 * Returns the depth offset represented by this attrib.
 */
53
inline int DepthOffsetAttrib::get_offset(void) const;

3136 13 get_min_value 0 4 3715 32 DepthOffsetAttrib::get_min_value 0 1 1445 118
/**
 * Returns the value for the minimum (closest) depth value to be stored in the
 * buffer, in the range 0 .. 1.
 */
64
inline PN_stdfloat DepthOffsetAttrib::get_min_value(void) const;

3137 13 get_max_value 0 4 3715 32 DepthOffsetAttrib::get_max_value 0 1 1446 119
/**
 * Returns the value for the maximum (farthest) depth value to be stored in
 * the buffer, in the range 0 .. 1.
 */
64
inline PN_stdfloat DepthOffsetAttrib::get_max_value(void) const;

3138 14 get_class_slot 0 4 3715 33 DepthOffsetAttrib::get_class_slot 0 1 1447 0
51
static int DepthOffsetAttrib::get_class_slot(void);

3139 14 get_class_type 0 4 3715 33 DepthOffsetAttrib::get_class_type 0 1 1448 0
58
static TypeHandle DepthOffsetAttrib::get_class_type(void);

3140 18 ~DepthOffsetAttrib 0 516 3715 37 DepthOffsetAttrib::~DepthOffsetAttrib 0 0 0
44
DepthOffsetAttrib::~DepthOffsetAttrib(void);

3141 4 make 0 4 3716 21 DepthTestAttrib::make 0 1 1449 51
/**
 * Constructs a new DepthTestAttrib object.
 */
97
static ConstPointerTo< RenderAttrib > DepthTestAttrib::make(RenderAttrib::PandaCompareFunc mode);

3142 12 make_default 0 4 3716 29 DepthTestAttrib::make_default 0 1 1450 145
/**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */
74
static ConstPointerTo< RenderAttrib > DepthTestAttrib::make_default(void);

3143 8 get_mode 0 4 3716 25 DepthTestAttrib::get_mode 0 1 1451 40
/**
 * Returns the depth write mode.
 */
76
inline RenderAttrib::PandaCompareFunc DepthTestAttrib::get_mode(void) const;

3144 14 get_class_slot 0 4 3716 31 DepthTestAttrib::get_class_slot 0 1 1452 0
49
static int DepthTestAttrib::get_class_slot(void);

3145 14 get_class_type 0 4 3716 31 DepthTestAttrib::get_class_type 0 1 1453 0
56
static TypeHandle DepthTestAttrib::get_class_type(void);

3146 16 ~DepthTestAttrib 0 516 3716 33 DepthTestAttrib::~DepthTestAttrib 0 0 0
40
DepthTestAttrib::~DepthTestAttrib(void);

3147 4 make 0 4 3717 22 DepthWriteAttrib::make 0 1 1454 52
/**
 * Constructs a new DepthWriteAttrib object.
 */
90
static ConstPointerTo< RenderAttrib > DepthWriteAttrib::make(DepthWriteAttrib::Mode mode);

3148 12 make_default 0 4 3717 30 DepthWriteAttrib::make_default 0 1 1455 145
/**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */
75
static ConstPointerTo< RenderAttrib > DepthWriteAttrib::make_default(void);

3149 8 get_mode 0 4 3717 26 DepthWriteAttrib::get_mode 0 1 1456 40
/**
 * Returns the depth write mode.
 */
69
inline DepthWriteAttrib::Mode DepthWriteAttrib::get_mode(void) const;

3150 14 get_class_slot 0 4 3717 32 DepthWriteAttrib::get_class_slot 0 1 1457 0
50
static int DepthWriteAttrib::get_class_slot(void);

3151 14 get_class_type 0 4 3717 32 DepthWriteAttrib::get_class_type 0 1 1458 0
57
static TypeHandle DepthWriteAttrib::get_class_type(void);

3152 17 ~DepthWriteAttrib 0 516 3717 35 DepthWriteAttrib::~DepthWriteAttrib 0 0 0
42
DepthWriteAttrib::~DepthWriteAttrib(void);

3153 6 ~Light 0 518 3719 13 Light::~Light 0 0 10
/**
 *
 */
28
virtual Light::~Light(void);

3154 7 as_node 0 6 3719 14 Light::as_node 0 1 1459 0
44
virtual PandaNode *Light::as_node(void) = 0;

3155 16 is_ambient_light 0 6 3719 23 Light::is_ambient_light 0 1 1460 95
/**
 * Returns true if this is an AmbientLight, false if it is some other kind of
 * light.
 */
49
virtual bool Light::is_ambient_light(void) const;

3156 9 get_color 0 4 3719 16 Light::get_color 0 1 1461 48
/**
 * Returns the basic color of the light.
 */
50
inline LColor const &Light::get_color(void) const;

3157 9 set_color 0 4 3719 16 Light::set_color 0 1 1462 45
/**
 * Sets the basic color of the light.
 */
50
inline void Light::set_color(LColor const &color);

3158 21 has_color_temperature 0 4 3719 28 Light::has_color_temperature 0 1 1463 140
/**
 * Returns true if the color was specified as a temperature in kelvins, and
 * get_color_temperature is defined.
 *
 * @since 1.10.0
 */
53
inline bool Light::has_color_temperature(void) const;

3159 21 get_color_temperature 0 4 3719 28 Light::get_color_temperature 0 1 1464 130
/**
 * Returns the basic color temperature of the light, assuming
 * has_color_temperature() returns true.
 *
 * @since 1.10.0
 */
60
inline PN_stdfloat Light::get_color_temperature(void) const;

3160 21 set_color_temperature 0 4 3719 28 Light::set_color_temperature 0 1 1465 234
/**
 * Sets the color temperature of the light in kelvins.  This will recalculate
 * the light's color.
 *
 * The default value is 6500 K, corresponding to a perfectly white light
 * assuming a D65 white point.
 *
 * @since 1.10.0
 */
59
void Light::set_color_temperature(PN_stdfloat temperature);

3161 12 get_exponent 0 6 3719 19 Light::get_exponent 0 1 1466 168
/**
 * For spotlights, returns the exponent that controls the amount of light
 * falloff from the center of the spotlight.  For other kinds of lights,
 * returns 0.
 */
52
virtual PN_stdfloat Light::get_exponent(void) const;

3162 18 get_specular_color 0 6 3719 25 Light::get_specular_color 0 1 1467 125
/**
 * Returns the color of specular highlights generated by the light.  This
 * value is meaningless for ambient lights.
 */
60
virtual LColor const &Light::get_specular_color(void) const;

3163 15 get_attenuation 0 6 3719 22 Light::get_attenuation 0 1 1468 193
/**
 * Returns the terms of the attenuation equation for the light.  These are, in
 * order, the constant, linear, and quadratic terms based on the distance from
 * the point to the vertex.
 */
60
virtual LVecBase3 const &Light::get_attenuation(void) const;

3164 12 set_priority 0 4 3719 19 Light::set_priority 0 1 1469 411
/**
 * Changes the relative importance of this light relative to the other lights
 * that are applied simultaneously.
 *
 * The priority number is used to decide which of the requested lights are to
 * be selected for rendering when more lights are requested than the hardware
 * will support.  The highest-priority n lights are selected for rendering.
 *
 * This is similar to TextureStage::set_priority().
 */
46
inline void Light::set_priority(int priority);

3165 12 get_priority 0 4 3719 19 Light::get_priority 0 1 1470 80
/**
 * Returns the priority associated with this light.  See set_priority().
 */
43
inline int Light::get_priority(void) const;

3166 18 get_class_priority 0 6 3719 25 Light::get_class_priority 0 1 1471 0
54
virtual int Light::get_class_priority(void) const = 0;

3167 14 get_class_type 0 4 3719 21 Light::get_class_type 0 1 1472 0
46
static TypeHandle Light::get_class_type(void);

3168 4 make 0 4 3720 17 LightAttrib::make 0 5 1473 1474 1475 1476 1477 855
// The following is the new, more general interface to the LightAttrib.

/**
 * Constructs a new LightAttrib object that turns on (or off, according to op)
 * the indicated light(s).
 *
 * @deprecated Use add_on_light() or add_off_light() instead.
 */

/**
 * Constructs a new LightAttrib object that turns on (or off, according to op)
 * the indicate light(s).
 *
 * @deprecated Use add_on_light() or add_off_light() instead.
 */

/**
 * Constructs a new LightAttrib object that turns on (or off, according to op)
 * the indicate light(s).
 *
 * @deprecated Use add_on_light() or add_off_light() instead.
 */

/**
 * Constructs a new LightAttrib object that turns on (or off, according to op)
 * the indicate light(s).
 *
 * @deprecated Use add_on_light() or add_off_light() instead.
 */

/**
 * Constructs a new LightAttrib object that does nothing.
 */
547
static ConstPointerTo< RenderAttrib > LightAttrib::make(LightAttrib::Operation op, Light *light);
static ConstPointerTo< RenderAttrib > LightAttrib::make(LightAttrib::Operation op, Light *light1, Light *light2);
static ConstPointerTo< RenderAttrib > LightAttrib::make(LightAttrib::Operation op, Light *light1, Light *light2, Light *light3);
static ConstPointerTo< RenderAttrib > LightAttrib::make(LightAttrib::Operation op, Light *light1, Light *light2, Light *light3, Light *light4);
static ConstPointerTo< RenderAttrib > LightAttrib::make(void);

3169 12 make_default 0 4 3720 25 LightAttrib::make_default 0 1 1478 145
/**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */
70
static ConstPointerTo< RenderAttrib > LightAttrib::make_default(void);

3170 13 get_operation 0 4 3720 26 LightAttrib::get_operation 0 1 1479 505
/**
 * Returns the basic operation type of the LightAttrib.  If this is O_set, the
 * lights listed here completely replace any lights that were already on.  If
 * this is O_add, the lights here are added to the set of lights that were
 * already on, and if O_remove, the lights here are removed from the set of
 * lights that were on.
 *
 * @deprecated LightAttribs nowadays have a separate list of on_lights and
 * off_lights, so this method no longer makes sense.  Query the lists
 * independently.
 */
62
LightAttrib::Operation LightAttrib::get_operation(void) const;

3171 14 get_num_lights 0 4 3720 27 LightAttrib::get_num_lights 0 1 1480 230
/**
 * Returns the number of lights listed in the attribute.
 *
 * @deprecated LightAttribs nowadays have a separate list of on_lights and
 * off_lights, so this method no longer makes sense.  Query the lists
 * independently.
 */
44
int LightAttrib::get_num_lights(void) const;

3172 9 get_light 0 4 3720 22 LightAttrib::get_light 0 1 1481 223
/**
 * Returns the nth light listed in the attribute.
 *
 * @deprecated LightAttribs nowadays have a separate list of on_lights and
 * off_lights, so this method no longer makes sense.  Query the lists
 * independently.
 */
43
Light *LightAttrib::get_light(int n) const;

3173 9 has_light 0 4 3720 22 LightAttrib::has_light 0 1 1482 257
/**
 * Returns true if the indicated light is listed in the attrib, false
 * otherwise.
 *
 * @deprecated LightAttribs nowadays have a separate list of on_lights and
 * off_lights, so this method no longer makes sense.  Query the lists
 * independently.
 */
48
bool LightAttrib::has_light(Light *light) const;

3174 9 add_light 0 4 3720 22 LightAttrib::add_light 0 1 1483 183
/**
 * Returns a new LightAttrib, just like this one, but with the indicated light
 * added to the list of lights.
 *
 * @deprecated Use add_on_light() or add_off_light() instead.
 */
74
ConstPointerTo< RenderAttrib > LightAttrib::add_light(Light *light) const;

3175 12 remove_light 0 4 3720 25 LightAttrib::remove_light 0 1 1484 193
/**
 * Returns a new LightAttrib, just like this one, but with the indicated light
 * removed from the list of lights.
 *
 * @deprecated Use remove_on_light() or remove_off_light() instead.
 */
77
ConstPointerTo< RenderAttrib > LightAttrib::remove_light(Light *light) const;

3176 12 make_all_off 0 4 3720 25 LightAttrib::make_all_off 0 1 1485 106
/**
 * Constructs a new LightAttrib object that turns off all lights (and hence
 * disables lighting).
 */
70
static ConstPointerTo< RenderAttrib > LightAttrib::make_all_off(void);

3177 17 get_num_on_lights 0 4 3720 30 LightAttrib::get_num_on_lights 0 1 1486 76
/**
 * Returns the number of lights that are turned on by the attribute.
 */
62
inline std::size_t LightAttrib::get_num_on_lights(void) const;

3178 26 get_num_non_ambient_lights 0 4 3720 39 LightAttrib::get_num_non_ambient_lights 0 1 1487 92
/**
 * Returns the number of non-ambient lights that are turned on by this
 * attribute.
 */
71
inline std::size_t LightAttrib::get_num_non_ambient_lights(void) const;

3179 12 get_on_light 0 4 3720 25 LightAttrib::get_on_light 0 1 1488 84
/**
 * Returns the nth light turned on by the attribute, sorted in render order.
 */
63
inline NodePath LightAttrib::get_on_light(std::size_t n) const;

3180 12 has_on_light 0 4 3720 25 LightAttrib::has_on_light 0 1 1489 94
/**
 * Returns true if the indicated light is turned on by the attrib, false
 * otherwise.
 */
67
inline bool LightAttrib::has_on_light(NodePath const &light) const;

3181 16 has_any_on_light 0 4 3720 29 LightAttrib::has_any_on_light 0 1 1490 81
/**
 * Returns true if any light is turned on by the attrib, false otherwise.
 */
54
inline bool LightAttrib::has_any_on_light(void) const;

3182 18 get_num_off_lights 0 4 3720 31 LightAttrib::get_num_off_lights 0 1 1491 77
/**
 * Returns the number of lights that are turned off by the attribute.
 */
63
inline std::size_t LightAttrib::get_num_off_lights(void) const;

3183 13 get_off_light 0 4 3720 26 LightAttrib::get_off_light 0 1 1492 101
/**
 * Returns the nth light turned off by the attribute, sorted in arbitrary
 * (pointer) order.
 */
64
inline NodePath LightAttrib::get_off_light(std::size_t n) const;

3184 13 has_off_light 0 4 3720 26 LightAttrib::has_off_light 0 1 1493 95
/**
 * Returns true if the indicated light is turned off by the attrib, false
 * otherwise.
 */
68
inline bool LightAttrib::has_off_light(NodePath const &light) const;

3185 11 has_all_off 0 4 3720 24 LightAttrib::has_all_off 0 1 1494 99
/**
 * Returns true if this attrib turns off all lights (although it may also turn
 * some on).
 */
49
inline bool LightAttrib::has_all_off(void) const;

3186 11 is_identity 0 4 3720 24 LightAttrib::is_identity 0 1 1495 102
/**
 * Returns true if this is an identity attrib: it does not change the set of
 * lights in use.
 */
49
inline bool LightAttrib::is_identity(void) const;

3187 12 add_on_light 0 4 3720 25 LightAttrib::add_on_light 0 1 1496 143
/**
 * Returns a new LightAttrib, just like this one, but with the indicated light
 * added to the list of lights turned on by this attrib.
 */
86
ConstPointerTo< RenderAttrib > LightAttrib::add_on_light(NodePath const &light) const;

3188 15 remove_on_light 0 4 3720 28 LightAttrib::remove_on_light 0 1 1497 147
/**
 * Returns a new LightAttrib, just like this one, but with the indicated light
 * removed from the list of lights turned on by this attrib.
 */
89
ConstPointerTo< RenderAttrib > LightAttrib::remove_on_light(NodePath const &light) const;

3189 16 replace_on_light 0 4 3720 29 LightAttrib::replace_on_light 0 1 1498 126
/**
 * Returns a new LightAttrib, just like this one, but with the indicated light
 * replaced with the given other light.
 */
113
ConstPointerTo< RenderAttrib > LightAttrib::replace_on_light(NodePath const &source, NodePath const &dest) const;

3190 13 add_off_light 0 4 3720 26 LightAttrib::add_off_light 0 1 1499 144
/**
 * Returns a new LightAttrib, just like this one, but with the indicated light
 * added to the list of lights turned off by this attrib.
 */
87
ConstPointerTo< RenderAttrib > LightAttrib::add_off_light(NodePath const &light) const;

3191 16 remove_off_light 0 4 3720 29 LightAttrib::remove_off_light 0 1 1500 148
/**
 * Returns a new LightAttrib, just like this one, but with the indicated light
 * removed from the list of lights turned off by this attrib.
 */
90
ConstPointerTo< RenderAttrib > LightAttrib::remove_off_light(NodePath const &light) const;

3192 17 replace_off_light 0 4 3720 30 LightAttrib::replace_off_light 0 1 1501 126
/**
 * Returns a new LightAttrib, just like this one, but with the indicated light
 * replaced with the given other light.
 */
114
ConstPointerTo< RenderAttrib > LightAttrib::replace_off_light(NodePath const &source, NodePath const &dest) const;

3193 24 get_most_important_light 0 4 3720 37 LightAttrib::get_most_important_light 0 1 1502 209
/**
 * Returns the most important light (that is, the light with the highest
 * priority) in the LightAttrib, excluding any ambient lights.  Returns an
 * empty NodePath if no non-ambient lights are found.
 */
59
NodePath LightAttrib::get_most_important_light(void) const;

3194 24 get_ambient_contribution 0 4 3720 37 LightAttrib::get_ambient_contribution 0 1 1503 68
/**
 * Returns the total contribution of all the ambient lights.
 */
57
LColor LightAttrib::get_ambient_contribution(void) const;

3195 14 get_class_slot 0 4 3720 27 LightAttrib::get_class_slot 0 1 1504 0
45
static int LightAttrib::get_class_slot(void);

3196 14 get_class_type 0 4 3720 27 LightAttrib::get_class_type 0 1 1505 0
52
static TypeHandle LightAttrib::get_class_type(void);

3197 12 make_default 0 4 3722 29 LightRampAttrib::make_default 0 1 1506 151
/**
 * Constructs a new LightRampAttrib object.  This is the standard OpenGL
 * lighting ramp, which clamps the final light total to the 0-1 range.
 */
74
static ConstPointerTo< RenderAttrib > LightRampAttrib::make_default(void);

3198 13 make_identity 0 4 3722 30 LightRampAttrib::make_identity 0 1 1507 169
/**
 * Constructs a new LightRampAttrib object.  This differs from the usual
 * OpenGL lighting model in that it does not clamp the final lighting total to
 * (0,1).
 */
75
static ConstPointerTo< RenderAttrib > LightRampAttrib::make_identity(void);

3199 21 make_single_threshold 0 4 3722 38 LightRampAttrib::make_single_threshold 0 1 1508 290
/**
 * Constructs a new LightRampAttrib object.  This causes the luminance of the
 * diffuse lighting contribution to be quantized using a single threshold:
 *
 * @code
 * if (original_luminance > threshold0) {
 *   luminance = level0;
 * } else {
 *   luminance = 0.0;
 * }
 * @endcode
 */
116
static ConstPointerTo< RenderAttrib > LightRampAttrib::make_single_threshold(PN_stdfloat thresh0, PN_stdfloat lev0);

3200 21 make_double_threshold 0 4 3722 38 LightRampAttrib::make_double_threshold 0 1 1509 360
/**
 * Constructs a new LightRampAttrib object.  This causes the luminance of the
 * diffuse lighting contribution to be quantized using two thresholds:
 *
 * @code
 * if (original_luminance > threshold1) {
 *   luminance = level1;
 * } else if (original_luminance > threshold0) {
 *   luminance = level0;
 * } else {
 *   luminance = 0.0;
 * }
 * @endcode
 */
155
static ConstPointerTo< RenderAttrib > LightRampAttrib::make_double_threshold(PN_stdfloat thresh0, PN_stdfloat lev0, PN_stdfloat thresh1, PN_stdfloat lev1);

3201 9 make_hdr0 0 4 3722 26 LightRampAttrib::make_hdr0 0 1 1510 814
/**
 * Constructs a new LightRampAttrib object.  This causes an HDR tone mapping
 * operation to be applied.
 *
 * Normally, brightness values greater than 1 cannot be distinguished from
 * each other, causing very brightly lit objects to wash out white and all
 * detail to be erased.  HDR tone mapping remaps brightness values in the
 * range 0-infinity into the range (0,1), making it possible to distinguish
 * detail in scenes whose brightness exceeds 1.
 *
 * However, the monitor has finite contrast.  Normally, all of that contrast
 * is used to represent brightnesses in the range 0-1.  The HDR0 tone mapping
 * operator 'steals' one quarter of that contrast to represent brightnesses in
 * the range 1-infinity.
 *
 * @code
 * FINAL_RGB = (RGB^3 + RGB^2 + RGB) / (RGB^3 + RGB^2 + RGB + 1)
 * @endcode
 */
71
static ConstPointerTo< RenderAttrib > LightRampAttrib::make_hdr0(void);

3202 9 make_hdr1 0 4 3722 26 LightRampAttrib::make_hdr1 0 1 1511 796
/**
 * Constructs a new LightRampAttrib object.  This causes an HDR tone mapping
 * operation to be applied.
 *
 * Normally, brightness values greater than 1 cannot be distinguished from
 * each other, causing very brightly lit objects to wash out white and all
 * detail to be erased.  HDR tone mapping remaps brightness values in the
 * range 0-infinity into the range (0,1), making it possible to distinguish
 * detail in scenes whose brightness exceeds 1.
 *
 * However, the monitor has finite contrast.  Normally, all of that contrast
 * is used to represent brightnesses in the range 0-1.  The HDR1 tone mapping
 * operator 'steals' one third of that contrast to represent brightnesses in
 * the range 1-infinity.
 *
 * @code
 * FINAL_RGB = (RGB^2 + RGB) / (RGB^2 + RGB + 1)
 * @endcode
 */
71
static ConstPointerTo< RenderAttrib > LightRampAttrib::make_hdr1(void);

3203 9 make_hdr2 0 4 3722 26 LightRampAttrib::make_hdr2 0 1 1512 779
/**
 * Constructs a new LightRampAttrib object.  This causes an HDR tone mapping
 * operation to be applied.
 *
 * Normally, brightness values greater than 1 cannot be distinguished from
 * each other, causing very brightly lit objects to wash out white and all
 * detail to be erased.  HDR tone mapping remaps brightness values in the
 * range 0-infinity into the range (0,1), making it possible to distinguish
 * detail in scenes whose brightness exceeds 1.
 *
 * However, the monitor has finite contrast.  Normally, all of that contrast
 * is used to represent brightnesses in the range 0-1.  The HDR2 tone mapping
 * operator 'steals' one half of that contrast to represent brightnesses in
 * the range 1-infinity.
 *
 * @code
 * FINAL_RGB = (RGB) / (RGB + 1)
 * @endcode
 */
71
static ConstPointerTo< RenderAttrib > LightRampAttrib::make_hdr2(void);

3204 8 get_mode 0 4 3722 25 LightRampAttrib::get_mode 0 1 1513 44
/**
 * Returns the LightRampAttrib mode.
 */
76
inline LightRampAttrib::LightRampMode LightRampAttrib::get_mode(void) const;

3205 9 get_level 0 4 3722 26 LightRampAttrib::get_level 0 1 1514 42
/**
 * Returns the nth lighting level.
 */
59
inline PN_stdfloat LightRampAttrib::get_level(int n) const;

3206 13 get_threshold 0 4 3722 30 LightRampAttrib::get_threshold 0 1 1515 43
/**
 * Returns the nth threshold level.
 */
63
inline PN_stdfloat LightRampAttrib::get_threshold(int n) const;

3207 14 get_class_slot 0 4 3722 31 LightRampAttrib::get_class_slot 0 1 1516 0
49
static int LightRampAttrib::get_class_slot(void);

3208 14 get_class_type 0 4 3722 31 LightRampAttrib::get_class_type 0 1 1517 0
56
static TypeHandle LightRampAttrib::get_class_type(void);

3209 16 ~LightRampAttrib 0 516 3722 33 LightRampAttrib::~LightRampAttrib 0 0 0
40
LightRampAttrib::~LightRampAttrib(void);

3210 29 upcast_to_TypedReferenceCount 0 12 3724 37 Loader::upcast_to_TypedReferenceCount 0 1 1536 41
upcast from Loader to TypedReferenceCount
65
TypedReferenceCount *Loader::upcast_to_TypedReferenceCount(void);

3211 18 downcast_to_Loader 0 12 3654 39 TypedReferenceCount::downcast_to_Loader 0 0 43
downcast from TypedReferenceCount to Loader
54
Loader *TypedReferenceCount::downcast_to_Loader(void);

3212 17 upcast_to_Namable 0 12 3724 25 Loader::upcast_to_Namable 0 1 1537 29
upcast from Loader to Namable
41
Namable *Loader::upcast_to_Namable(void);

3213 18 downcast_to_Loader 0 12 3613 27 Namable::downcast_to_Loader 0 0 31
downcast from Namable to Loader
42
Loader *Namable::downcast_to_Loader(void);

3214 7 Results 0 260 3725 24 Loader::Results::Results 0 2 1538 1539 22
/**
 *
 */

/**
 *
 */
100
inline Loader::Results::Results(void);
inline Loader::Results::Results(Loader::Results const &copy);

3215 10 operator = 0 4 3725 27 Loader::Results::operator = 0 1 1540 0
69
inline void Loader::Results::operator =(Loader::Results const &copy);

3216 8 ~Results 0 516 3725 25 Loader::Results::~Results 0 0 10
/**
 *
 */
39
inline Loader::Results::~Results(void);

3217 5 clear 0 4 3725 22 Loader::Results::clear 0 1 1541 47
/**
 * Removes all the files from the list.
 */
41
inline void Loader::Results::clear(void);

3218 13 get_num_files 0 4 3725 30 Loader::Results::get_num_files 0 1 1542 58
/**
 * Returns the number of files on the result list.
 */
54
inline int Loader::Results::get_num_files(void) const;

3219 8 get_file 0 4 3725 25 Loader::Results::get_file 0 1 1543 51
/**
 * Returns the nth file on the result list.
 */
62
inline Filename const &Loader::Results::get_file(int n) const;

3220 13 get_file_type 0 4 3725 30 Loader::Results::get_file_type 0 1 1544 68
/**
 * Returns the file type of the nth file on the result list.
 */
67
inline LoaderFileType *Loader::Results::get_file_type(int n) const;

3221 6 Loader 0 260 3724 14 Loader::Loader 0 2 1518 1519 10
/**
 *
 */
109
explicit Loader::Loader(std::string const &name = "loader");
inline Loader::Loader(Loader const &) = default;

3222 16 set_task_manager 0 4 3724 24 Loader::set_task_manager 0 1 1520 118
/**
 * Specifies the task manager that is used for asynchronous loads.  The
 * default is the global task manager.
 */
69
inline void Loader::set_task_manager(AsyncTaskManager *task_manager);

3223 16 get_task_manager 0 4 3724 24 Loader::get_task_manager 0 1 1521 72
/**
 * Returns the task manager that is used for asynchronous loads.
 */
62
inline AsyncTaskManager *Loader::get_task_manager(void) const;

3224 14 set_task_chain 0 4 3724 22 Loader::set_task_chain 0 1 1522 130
/**
 * Specifies the task chain that is used for asynchronous loads.  The default
 * is the initial name of the Loader object.
 */
66
inline void Loader::set_task_chain(std::string const &task_chain);

3225 14 get_task_chain 0 4 3724 22 Loader::get_task_chain 0 1 1523 70
/**
 * Returns the task chain that is used for asynchronous loads.
 */
61
inline std::string const &Loader::get_task_chain(void) const;

3226 12 stop_threads 0 4 3724 20 Loader::stop_threads 0 1 1524 56
/**
 * Stop any threads used for asynchronous loads.
 */
39
inline void Loader::stop_threads(void);

3227 6 remove 0 4 3724 14 Loader::remove 0 1 1525 168
/**
 * Removes a pending asynchronous load request.  Returns true if successful,
 * false otherwise.
 * @deprecated use task.cancel() to cancel the request instead.
 */
44
inline bool Loader::remove(AsyncTask *task);

3228 9 load_sync 0 4 3724 17 Loader::load_sync 0 1 1526 187
/**
 * Loads the file immediately, waiting for it to complete.
 *
 * If search is true, the file is searched for along the model path;
 * otherwise, only the exact filename is loaded.
 */
128
inline PointerTo< PandaNode > Loader::load_sync(Filename const &filename, LoaderOptions const &options = LoaderOptions()) const;

3229 18 make_async_request 0 4 3724 26 Loader::make_async_request 0 1 1527 117
/**
 * Returns a new AsyncTask object suitable for adding to load_async() to start
 * an asynchronous model load.
 */
124
PointerTo< AsyncTask > Loader::make_async_request(Filename const &filename, LoaderOptions const &options = LoaderOptions());

3230 10 load_async 0 4 3724 18 Loader::load_async 0 1 1528 591
/**
 * Begins an asynchronous load request.  To use this call, first call
 * make_async_request() to create a new ModelLoadRequest object with the
 * filename you wish to load, and then add that object to the Loader with
 * load_async.  This function will return immediately, and the model will be
 * loaded in the background.
 *
 * To determine when the model has completely loaded, you may poll
 * request->is_ready() from time to time, or set the done_event on the request
 * object and listen for that event.  When the model is ready, you may
 * retrieve it via request->get_model().
 */
51
inline void Loader::load_async(AsyncTask *request);

3231 9 save_sync 0 4 3724 17 Loader::save_sync 0 1 1529 66
/**
 * Saves the file immediately, waiting for it to complete.
 */
109
inline bool Loader::save_sync(Filename const &filename, LoaderOptions const &options, PandaNode *node) const;

3232 23 make_async_save_request 0 4 3724 31 Loader::make_async_save_request 0 1 1530 117
/**
 * Returns a new AsyncTask object suitable for adding to save_async() to start
 * an asynchronous model save.
 */
128
PointerTo< AsyncTask > Loader::make_async_save_request(Filename const &filename, LoaderOptions const &options, PandaNode *node);

3233 10 save_async 0 4 3724 18 Loader::save_async 0 1 1531 620
/**
 * Begins an asynchronous save request.  To use this call, first call
 * make_async_save_request() to create a new ModelSaveRequest object with the
 * filename you wish to load, and then add that object to the Loader with
 * save_async.  This function will return immediately, and the model will be
 * loaded in the background.
 *
 * To determine when the model has completely loaded, you may poll
 * request->is_ready() from time to time, or set the done_event on the request
 * object and listen for that event.  When the request is ready, you may
 * retrieve the success or failure via request->get_success().
 */
51
inline void Loader::save_async(AsyncTask *request);

3234 15 load_bam_stream 0 4 3724 23 Loader::load_bam_stream 0 1 1532 109
/**
 * Attempts to read a bam file from the indicated stream and return the scene
 * graph defined there.
 */
65
PointerTo< PandaNode > Loader::load_bam_stream(std::istream &in);

3235 6 output 0 6 3724 14 Loader::output 0 1 1533 10
/**
 *
 */
53
virtual void Loader::output(std::ostream &out) const;

3236 14 get_global_ptr 0 4 3724 22 Loader::get_global_ptr 0 1 1534 119
/**
 * Returns a pointer to the global Loader.  This is the Loader that most code
 * should use for loading models.
 */
51
static inline Loader *Loader::get_global_ptr(void);

3237 14 get_class_type 0 4 3724 22 Loader::get_class_type 0 1 1535 0
47
static TypeHandle Loader::get_class_type(void);

3238 7 ~Loader 0 516 3724 15 Loader::~Loader 0 0 0
22
Loader::~Loader(void);

3239 8 get_name 0 6 3726 24 LoaderFileType::get_name 0 1 1545 0
61
virtual std::string LoaderFileType::get_name(void) const = 0;

3240 13 get_extension 0 6 3726 29 LoaderFileType::get_extension 0 1 1546 0
66
virtual std::string LoaderFileType::get_extension(void) const = 0;

3241 25 get_additional_extensions 0 6 3726 41 LoaderFileType::get_additional_extensions 0 1 1547 146
/**
 * Returns a space-separated list of extension, in addition to the one
 * returned by get_extension(), that are recognized by this loader.
 */
74
virtual std::string LoaderFileType::get_additional_extensions(void) const;

3242 19 supports_compressed 0 6 3726 35 LoaderFileType::supports_compressed 0 1 1548 132
/**
 * Returns true if this file type can transparently load compressed files
 * (with a .pz or .gz extension), false otherwise.
 */
61
virtual bool LoaderFileType::supports_compressed(void) const;

3243 20 get_allow_disk_cache 0 6 3726 36 LoaderFileType::get_allow_disk_cache 0 1 1549 138
/**
 * Returns true if the loader flags allow retrieving the model from the on-
 * disk bam cache (if it is enabled), false otherwise.
 */
86
virtual bool LoaderFileType::get_allow_disk_cache(LoaderOptions const &options) const;

3244 19 get_allow_ram_cache 0 6 3726 35 LoaderFileType::get_allow_ram_cache 0 1 1550 127
/**
 * Returns true if the loader flags allow retrieving the model from the in-
 * memory ModelPool cache, false otherwise.
 */
85
virtual bool LoaderFileType::get_allow_ram_cache(LoaderOptions const &options) const;

3245 13 supports_load 0 6 3726 29 LoaderFileType::supports_load 0 1 1551 172
/**
 * Returns true if the file type can be used to load files, and load_file() is
 * supported.  Returns false if load_file() is unimplemented and will always
 * fail.
 */
55
virtual bool LoaderFileType::supports_load(void) const;

3246 13 supports_save 0 6 3726 29 LoaderFileType::supports_save 0 1 1552 172
/**
 * Returns true if the file type can be used to save files, and save_file() is
 * supported.  Returns false if save_file() is unimplemented and will always
 * fail.
 */
55
virtual bool LoaderFileType::supports_save(void) const;

3247 14 get_class_type 0 4 3726 30 LoaderFileType::get_class_type 0 1 1553 0
55
static TypeHandle LoaderFileType::get_class_type(void);

3248 23 ~LoaderFileTypeRegistry 0 516 3728 47 LoaderFileTypeRegistry::~LoaderFileTypeRegistry 0 0 10
/**
 *
 */
54
LoaderFileTypeRegistry::~LoaderFileTypeRegistry(void);

3249 13 register_type 0 4 3728 37 LoaderFileTypeRegistry::register_type 0 1 1555 56
/**
 * Defines a new LoaderFileType in the universe.
 */
59
void LoaderFileTypeRegistry::register_type(PyObject *type);

3250 22 register_deferred_type 0 4 3728 46 LoaderFileTypeRegistry::register_deferred_type 0 1 1556 305
/**
 * Records a type associated with a particular extension to be loaded in the
 * future.  The named library will be dynamically loaded the first time files
 * of this extension are loaded; presumably this library will call
 * register_type() when it initializes, thus making the extension loadable.
 */
75
void LoaderFileTypeRegistry::register_deferred_type(PyObject *entry_point);

3251 15 unregister_type 0 4 3728 39 LoaderFileTypeRegistry::unregister_type 0 1 1557 68
/**
 * Removes a type previously registered using register_type.
 */
61
void LoaderFileTypeRegistry::unregister_type(PyObject *type);

3252 13 get_num_types 0 4 3728 37 LoaderFileTypeRegistry::get_num_types 0 1 1558 56
/**
 * Returns the total number of types registered.
 */
54
int LoaderFileTypeRegistry::get_num_types(void) const;

3253 8 get_type 0 4 3728 32 LoaderFileTypeRegistry::get_type 0 1 1559 43
/**
 * Returns the nth type registered.
 */
62
LoaderFileType *LoaderFileTypeRegistry::get_type(int n) const;

3254 23 get_type_from_extension 0 4 3728 47 LoaderFileTypeRegistry::get_type_from_extension 0 1 1560 163
/**
 * Determines the type of the file based on the indicated extension (without a
 * leading dot).  Returns NULL if the extension matches no known file types.
 */
94
LoaderFileType *LoaderFileTypeRegistry::get_type_from_extension(std::string const &extension);

3255 5 write 0 4 3728 29 LoaderFileTypeRegistry::write 0 1 1561 97
/**
 * Writes a list of supported file types to the indicated output stream, one
 * per line.
 */
82
void LoaderFileTypeRegistry::write(std::ostream &out, int indent_level = 0) const;

3256 14 get_global_ptr 0 4 3728 38 LoaderFileTypeRegistry::get_global_ptr 0 1 1562 73
/**
 * Returns a pointer to the global LoaderFileTypeRegistry object.
 */
76
static LoaderFileTypeRegistry *LoaderFileTypeRegistry::get_global_ptr(void);

3257 10 __reduce__ 0 4 3728 34 LoaderFileTypeRegistry::__reduce__ 0 1 1563 0
57
PyObject *LoaderFileTypeRegistry::__reduce__(void) const;

3258 22 LoaderFileTypeRegistry 0 260 3728 46 LoaderFileTypeRegistry::LoaderFileTypeRegistry 0 1 1554 10
/**
 *
 */
96
inline LoaderFileTypeRegistry::LoaderFileTypeRegistry(LoaderFileTypeRegistry const &) = default;

3259 4 make 0 4 3730 20 MaterialAttrib::make 0 1 1564 113
/**
 * Constructs a new MaterialAttrib object suitable for rendering the indicated
 * material onto geometry.
 */
79
static ConstPointerTo< RenderAttrib > MaterialAttrib::make(Material *material);

3260 8 make_off 0 4 3730 24 MaterialAttrib::make_off 0 1 1565 97
/**
 * Constructs a new MaterialAttrib object suitable for rendering unmateriald
 * geometry.
 */
69
static ConstPointerTo< RenderAttrib > MaterialAttrib::make_off(void);

3261 12 make_default 0 4 3730 28 MaterialAttrib::make_default 0 1 1566 145
/**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */
73
static ConstPointerTo< RenderAttrib > MaterialAttrib::make_default(void);

3262 6 is_off 0 4 3730 22 MaterialAttrib::is_off 0 1 1567 132
/**
 * Returns true if the MaterialAttrib is an 'off' MaterialAttrib, indicating
 * that it should disable the use of materials.
 */
47
inline bool MaterialAttrib::is_off(void) const;

3263 12 get_material 0 4 3730 28 MaterialAttrib::get_material 0 1 1568 133
/**
 * If the MaterialAttrib is not an 'off' MaterialAttrib, returns the material
 * that is associated.  Otherwise, return NULL.
 */
58
inline Material *MaterialAttrib::get_material(void) const;

3264 14 get_class_slot 0 4 3730 30 MaterialAttrib::get_class_slot 0 1 1569 0
48
static int MaterialAttrib::get_class_slot(void);

3265 14 get_class_type 0 4 3730 30 MaterialAttrib::get_class_type 0 1 1570 0
55
static TypeHandle MaterialAttrib::get_class_type(void);

3266 15 ~MaterialAttrib 0 516 3730 31 MaterialAttrib::~MaterialAttrib 0 0 0
38
MaterialAttrib::~MaterialAttrib(void);

3267 19 ModelFlattenRequest 0 260 3733 40 ModelFlattenRequest::ModelFlattenRequest 0 2 1571 1572 121
/**
 * Create a new ModelFlattenRequest, and add it to the loader via
 * load_async(), to begin an asynchronous load.
 */
162
inline explicit ModelFlattenRequest::ModelFlattenRequest(PandaNode *orig);
inline ModelFlattenRequest::ModelFlattenRequest(ModelFlattenRequest const &) = default;

3268 8 get_orig 0 4 3733 29 ModelFlattenRequest::get_orig 0 1 1573 50
/**
 * Returns the original, unflattened node.
 */
60
inline PandaNode *ModelFlattenRequest::get_orig(void) const;

3269 8 is_ready 0 4 3733 29 ModelFlattenRequest::is_ready 0 1 1574 239
/**
 * Returns true if this request has completed, false if it is still pending.
 * When this returns true, you may retrieve the model loaded by calling
 * result().
 * Equivalent to `req.done() and not req.cancelled()`.
 * @see done()
 */
54
inline bool ModelFlattenRequest::is_ready(void) const;

3270 9 get_model 0 4 3733 30 ModelFlattenRequest::get_model 0 1 1575 148
/**
 * Returns the flattened copy of the model.  It is an error to call this
 * unless done() returns true.
 * @deprecated Use result() instead.
 */
61
inline PandaNode *ModelFlattenRequest::get_model(void) const;

3271 14 get_class_type 0 4 3733 35 ModelFlattenRequest::get_class_type 0 1 1576 0
60
static TypeHandle ModelFlattenRequest::get_class_type(void);

3272 20 ~ModelFlattenRequest 0 516 3733 41 ModelFlattenRequest::~ModelFlattenRequest 0 0 0
48
ModelFlattenRequest::~ModelFlattenRequest(void);

3273 16 ModelLoadRequest 0 260 3735 34 ModelLoadRequest::ModelLoadRequest 0 2 1577 1578 118
/**
 * Create a new ModelLoadRequest, and add it to the loader via load_async(),
 * to begin an asynchronous load.
 */
220
explicit ModelLoadRequest::ModelLoadRequest(std::string const &name, Filename const &filename, LoaderOptions const &options, Loader *loader);
inline ModelLoadRequest::ModelLoadRequest(ModelLoadRequest const &) = default;

3274 12 get_filename 0 4 3735 30 ModelLoadRequest::get_filename 0 1 1579 83
/**
 * Returns the filename associated with this asynchronous ModelLoadRequest.
 */
66
inline Filename const &ModelLoadRequest::get_filename(void) const;

3275 11 get_options 0 4 3735 29 ModelLoadRequest::get_options 0 1 1580 91
/**
 * Returns the LoaderOptions associated with this asynchronous
 * ModelLoadRequest.
 */
70
inline LoaderOptions const &ModelLoadRequest::get_options(void) const;

3276 10 get_loader 0 4 3735 28 ModelLoadRequest::get_loader 0 1 1581 91
/**
 * Returns the Loader object associated with this asynchronous
 * ModelLoadRequest.
 */
56
inline Loader *ModelLoadRequest::get_loader(void) const;

3277 8 is_ready 0 4 3735 26 ModelLoadRequest::is_ready 0 1 1582 271
/**
 * Returns true if this request has completed, false if it is still pending or
 * if it has been cancelled.  When this returns true, you may retrieve the
 * model loaded by calling get_model().
 * Equivalent to `req.done() and not req.cancelled()`.
 * @see done()
 */
51
inline bool ModelLoadRequest::is_ready(void) const;

3278 9 get_model 0 4 3735 27 ModelLoadRequest::get_model 0 1 1583 196
/**
 * Returns the model that was loaded asynchronously, if any, or null if there
 * was an error.  It is an error to call this unless done() returns true.
 * @deprecated Use result() instead.
 */
58
inline PandaNode *ModelLoadRequest::get_model(void) const;

3279 14 get_class_type 0 4 3735 32 ModelLoadRequest::get_class_type 0 1 1584 0
57
static TypeHandle ModelLoadRequest::get_class_type(void);

3280 17 ~ModelLoadRequest 0 516 3735 35 ModelLoadRequest::~ModelLoadRequest 0 0 0
42
ModelLoadRequest::~ModelLoadRequest(void);

3281 9 ModelNode 0 260 3741 20 ModelNode::ModelNode 0 1 1585 22
/**
 *
 */

/**
 *
 */
62
inline explicit ModelNode::ModelNode(std::string const &name);

3282 22 set_preserve_transform 0 4 3741 33 ModelNode::set_preserve_transform 0 1 1586 1183
/**
 * Sets the preserve_transform flag.  This restricts the ability of a flatten
 * operation to affect the transform stored on this node, and/or the node
 * itself.  In the order from weakest to strongest restrictions, the possible
 * flags are:
 *
 * PT_drop_node - This node should be removed at the next flatten call.
 *
 * PT_none - The transform may be adjusted at will.  The node itself will not
 * be removed.  This is the default.
 *
 * PT_net - Preserve the net transform from the root, but it's acceptable to
 * modify the local transform stored on this particular node if necessary, so
 * long as the net transform is not changed.  This eliminates the need to drop
 * an extra transform on the node above.
 *
 * PT_local - The local (and net) transform should not be changed in any way.
 * If necessary, an extra transform will be left on the node above to
 * guarantee this.  This is a stronger restriction than PT_net.
 *
 * PT_no_touch - The local transform will not be changed, the node will not be
 * removed, and furthermore any flatten operation will not continue below this
 * node--this node and all descendents are protected from the effects of
 * flatten.
 */
95
inline void ModelNode::set_preserve_transform(ModelNode::PreserveTransform preserve_transform);

3283 22 get_preserve_transform 0 4 3741 33 ModelNode::get_preserve_transform 0 1 1587 104
/**
 * Returns the current setting of the preserve_transform flag.  See
 * set_preserve_transform().
 */
82
inline ModelNode::PreserveTransform ModelNode::get_preserve_transform(void) const;

3284 23 set_preserve_attributes 0 4 3741 34 ModelNode::set_preserve_attributes 0 1 1588 295
/**
 * Sets the preserve_attributes flag.  This restricts the ability of a flatten
 * operation to affect the render attributes stored on this node.
 *
 * The value should be the union of bits from SceneGraphReducer::AttribTypes
 * that represent the attributes that should *not* be changed.
 */
64
inline void ModelNode::set_preserve_attributes(int attrib_mask);

3285 23 get_preserve_attributes 0 4 3741 34 ModelNode::get_preserve_attributes 0 1 1589 106
/**
 * Returns the current setting of the preserve_attributes flag.  See
 * set_preserve_attributes().
 */
58
inline int ModelNode::get_preserve_attributes(void) const;

3286 19 set_transform_limit 0 4 3741 30 ModelNode::set_transform_limit 0 1 1590 0
55
void ModelNode::set_transform_limit(PN_stdfloat limit);

3287 14 get_class_type 0 4 3741 25 ModelNode::get_class_type 0 1 1591 0
50
static TypeHandle ModelNode::get_class_type(void);

3288 10 ~ModelNode 0 516 3741 21 ModelNode::~ModelNode 0 0 0
28
ModelNode::~ModelNode(void);

3289 9 ModelRoot 0 260 3743 20 ModelRoot::ModelRoot 0 2 1592 1593 34
/**
 *
 */

/**
 *
 */

/**
 *
 */
144
inline explicit ModelRoot::ModelRoot(std::string const &name);
inline explicit ModelRoot::ModelRoot(Filename const &fullpath, time_t timestamp);

3290 19 get_model_ref_count 0 4 3743 30 ModelRoot::get_model_ref_count 0 1 1594 344
/**
 * Returns the number of copies that exist of this particular ModelRoot node.
 * Each time ModelRoot::copy_subgraph() or make_copy() is called (or some
 * other copying mechanism, such as NodePath.copy_to(), is used), this count
 * will increment by one in all copies; when one of the copies is destructed,
 * this count will decrement.
 */
54
inline int ModelRoot::get_model_ref_count(void) const;

3291 12 get_fullpath 0 4 3743 23 ModelRoot::get_fullpath 0 1 1595 206
/**
 * Returns the full pathname of the model represented by this node, as found
 * on disk.  This is mainly useful for reference purposes, but is also used to
 * index the ModelRoot into the ModelPool.
 */
59
inline Filename const &ModelRoot::get_fullpath(void) const;

3292 12 set_fullpath 0 4 3743 23 ModelRoot::set_fullpath 0 1 1596 399
/**
 * Sets the full pathname of the model represented by this node, as found on
 * disk.  This is mainly useful for reference purposes, but is also used to
 * index the ModelRoot into the ModelPool.
 *
 * This is normally set automatically when a model is loaded, and should not
 * be set directly by the user.  If you change this on a loaded model, then
 * ModelPool::release_model() may fail.
 */
62
inline void ModelRoot::set_fullpath(Filename const &fullpath);

3293 13 get_timestamp 0 4 3743 24 ModelRoot::get_timestamp 0 1 1597 324
/**
 * Returns the timestamp of the file on disk that was read for this model, at
 * the time it was read, if it is known.  Returns 0 if the timestamp is not
 * known or could not be provided.  This can be used as a quick (but fallible)
 * check to verify whether the file might have changed since the model was
 * read.
 */
51
inline time_t ModelRoot::get_timestamp(void) const;

3294 13 set_timestamp 0 4 3743 24 ModelRoot::set_timestamp 0 1 1598 189
/**
 * Sets the timestamp of the file on disk that was read for this model.  This
 * is normally set automatically when a model is loaded, and should not be set
 * directly by the user.
 */
55
inline void ModelRoot::set_timestamp(time_t timestamp);

3295 14 ModelReference 0 260 3746 41 ModelRoot::ModelReference::ModelReference 0 2 1602 1603 10
/**
 *
 */
150
inline ModelRoot::ModelReference::ModelReference(void);
inline ModelRoot::ModelReference::ModelReference(ModelRoot::ModelReference const &) = default;

3296 15 ~ModelReference 0 516 3746 42 ModelRoot::ModelReference::~ModelReference 0 0 0
49
ModelRoot::ModelReference::~ModelReference(void);

3297 13 get_reference 0 4 3743 24 ModelRoot::get_reference 0 1 1599 315
/**
 * Returns the pointer that represents the object shared between all copies of
 * this ModelRoot.  Since there's not much associated with this object other
 * than a reference count, normally there's not much reason to get the pointer
 * (though it may be compared pointerwise with other ModelRoot objects).
 */
71
inline ModelRoot::ModelReference *ModelRoot::get_reference(void) const;

3298 13 set_reference 0 4 3743 24 ModelRoot::set_reference 0 1 1600 212
/**
 * Changes the pointer that represents the object shared between all copies of
 * this ModelRoot.  This will disassociate this ModelRoot from all of its
 * copies.  Normally, there's no reason to do this.
 */
62
void ModelRoot::set_reference(ModelRoot::ModelReference *ref);

3299 14 get_class_type 0 4 3743 25 ModelRoot::get_class_type 0 1 1601 0
50
static TypeHandle ModelRoot::get_class_type(void);

3300 10 ~ModelRoot 0 516 3743 21 ModelRoot::~ModelRoot 0 0 0
28
ModelRoot::~ModelRoot(void);

3301 9 has_model 0 4 3748 20 ModelPool::has_model 0 1 1604 149
/**
 * Returns true if the model has ever been loaded, false otherwise.  Note that
 * this does not guarantee that the model is still up-to-date.
 */
66
static inline bool ModelPool::has_model(Filename const &filename);

3302 12 verify_model 0 4 3748 23 ModelPool::verify_model 0 1 1605 549
/**
 * Loads the given filename up as a model, if it has not already been loaded,
 * and returns true to indicate success, or false to indicate failure.  If
 * this returns true, it is probable that a subsequent call to load_model()
 * with the same model name will return a valid PandaNode.
 *
 * However, even if this returns true, it is still possible for a subsequent
 * call to load_model() to fail.  This can happen if cache-check-timestamps is
 * true, and the on-disk file is subsequently modified to replace it with an
 * invalid model.
 */
69
static inline bool ModelPool::verify_model(Filename const &filename);

3303 9 get_model 0 4 3748 20 ModelPool::get_model 0 1 1606 244
/**
 * Returns the model that has already been previously loaded, or NULL
 * otherwise.  If verify is true, it will check if the file is still up-to-
 * date (and hasn't been modified in the meantime), and if not, will still
 * return NULL.
 */
85
static inline ModelRoot *ModelPool::get_model(Filename const &filename, bool verify);

3304 10 load_model 0 4 3748 21 ModelPool::load_model 0 1 1607 369
/**
 * Loads the given filename up as a model, if it has not already been loaded,
 * and returns the new model.  If a model with the same filename was
 * previously loaded, returns that one instead (unless cache-check-timestamps
 * is true and the file has recently changed).  If the model file cannot be
 * found, or cannot be loaded for some reason, returns NULL.
 */
121
static inline ModelRoot *ModelPool::load_model(Filename const &filename, LoaderOptions const &options = LoaderOptions());

3305 9 add_model 0 4 3748 20 ModelPool::add_model 0 2 1608 1609 384
/**
 * Adds the indicated already-loaded model to the pool.  The model will
 * replace any previously-loaded model in the pool that had the same filename.
 *
 * @deprecated Use the one-parameter add_model(model) instead.
 */

/**
 * Adds the indicated already-loaded model to the pool.  The model will
 * replace any previously-loaded model in the pool that had the same filename.
 */
143
static inline void ModelPool::add_model(Filename const &filename, ModelRoot *model);
static inline void ModelPool::add_model(ModelRoot *model);

3306 13 release_model 0 4 3748 24 ModelPool::release_model 0 2 1610 1611 754
/**
 * Removes the indicated model from the pool, indicating it will never be
 * loaded again; the model may then be freed.  If this function is never
 * called, a reference count will be maintained on every model every loaded,
 * and models will never be freed.
 *
 * @deprecated Use release_model(model) instead.
 */

/**
 * Removes the indicated model from the pool, indicating it will never be
 * loaded again; the model may then be freed.  If this function (and
 * garbage_collect()) is never called, a reference count will be maintained on
 * every model every loaded, and models will never be freed.
 *
 * The model's get_fullpath() value should not have been changed during its
 * lifetime, or this function may fail to locate it in the pool.
 */
133
static inline void ModelPool::release_model(Filename const &filename);
static inline void ModelPool::release_model(ModelRoot *model);

3307 18 release_all_models 0 4 3748 29 ModelPool::release_all_models 0 1 1612 84
/**
 * Releases all models in the pool and restores the pool to the empty state.
 */
55
static inline void ModelPool::release_all_models(void);

3308 15 garbage_collect 0 4 3748 26 ModelPool::garbage_collect 0 1 1613 206
/**
 * Releases only those models in the pool that have a reference count of
 * exactly 1; i.e.  only those models that are not being used outside of the
 * pool.  Returns the number of models released.
 */
51
static inline int ModelPool::garbage_collect(void);

3309 13 list_contents 0 4 3748 24 ModelPool::list_contents 0 2 1614 1615 137
/**
 * Lists the contents of the model pool to the indicated output stream.
 */

/**
 * Lists the contents of the model pool to cout.
 */
114
static inline void ModelPool::list_contents(std::ostream &out);
static inline void ModelPool::list_contents(void);

3310 5 write 0 4 3748 16 ModelPool::write 0 1 1616 105
/**
 * Lists the contents of the model pool to the indicated output stream.  Helps
 * with debugging.
 */
48
static void ModelPool::write(std::ostream &out);

3311 10 ~ModelPool 0 516 3748 21 ModelPool::~ModelPool 0 0 0
28
ModelPool::~ModelPool(void);

3312 16 ModelSaveRequest 0 260 3749 34 ModelSaveRequest::ModelSaveRequest 0 2 1617 1618 118
/**
 * Create a new ModelSaveRequest, and add it to the loader via save_async(),
 * to begin an asynchronous save.
 */
237
explicit ModelSaveRequest::ModelSaveRequest(std::string const &name, Filename const &filename, LoaderOptions const &options, PandaNode *node, Loader *loader);
inline ModelSaveRequest::ModelSaveRequest(ModelSaveRequest const &) = default;

3313 12 get_filename 0 4 3749 30 ModelSaveRequest::get_filename 0 1 1619 83
/**
 * Returns the filename associated with this asynchronous ModelSaveRequest.
 */
66
inline Filename const &ModelSaveRequest::get_filename(void) const;

3314 11 get_options 0 4 3749 29 ModelSaveRequest::get_options 0 1 1620 91
/**
 * Returns the LoaderOptions associated with this asynchronous
 * ModelSaveRequest.
 */
70
inline LoaderOptions const &ModelSaveRequest::get_options(void) const;

3315 8 get_node 0 4 3749 26 ModelSaveRequest::get_node 0 1 1621 63
/**
 * Returns the node that was passed to the constructor.
 */
57
inline PandaNode *ModelSaveRequest::get_node(void) const;

3316 10 get_loader 0 4 3749 28 ModelSaveRequest::get_loader 0 1 1622 91
/**
 * Returns the Loader object associated with this asynchronous
 * ModelSaveRequest.
 */
56
inline Loader *ModelSaveRequest::get_loader(void) const;

3317 8 is_ready 0 4 3749 26 ModelSaveRequest::is_ready 0 1 1623 238
/**
 * Returns true if this request has completed, false if it is still pending.
 * When this returns true, you may retrieve the success flag with
 * get_success().
 * Equivalent to `req.done() and not req.cancelled()`.
 * @see done()
 */
51
inline bool ModelSaveRequest::is_ready(void) const;

3318 11 get_success 0 4 3749 29 ModelSaveRequest::get_success 0 1 1624 141
/**
 * Returns the true if the model was saved successfully, false otherwise.  It
 * is an error to call this unless done() returns true.
 */
54
inline bool ModelSaveRequest::get_success(void) const;

3319 14 get_class_type 0 4 3749 32 ModelSaveRequest::get_class_type 0 1 1625 0
57
static TypeHandle ModelSaveRequest::get_class_type(void);

3320 17 ~ModelSaveRequest 0 516 3749 35 ModelSaveRequest::~ModelSaveRequest 0 0 0
42
ModelSaveRequest::~ModelSaveRequest(void);

3321 4 make 0 4 3750 19 TextureAttrib::make 0 2 1626 1627 609
// These methods are used to create a simple, single-textured layer.  For
// multitexture, use the multitexture interfaces, further below.

// The following methods define the new multitexture mode for TextureAttrib.
// Each TextureAttrib can add or remove individual texture stages from the
// complete set of textures that are to be applied; this is similar to the
// mechanism of LightAttrib.

/**
 * Constructs a new TextureAttrib object suitable for rendering the indicated
 * texture onto geometry, using the default TextureStage.
 */

/**
 * Constructs a new TextureAttrib object that does nothing.
 */
137
static ConstPointerTo< RenderAttrib > TextureAttrib::make(Texture *tex);
static ConstPointerTo< RenderAttrib > TextureAttrib::make(void);

3322 8 make_off 0 4 3750 23 TextureAttrib::make_off 0 1 1628 95
/**
 * Constructs a new TextureAttrib object suitable for rendering untextured
 * geometry.
 */
68
static ConstPointerTo< RenderAttrib > TextureAttrib::make_off(void);

3323 12 make_default 0 4 3750 27 TextureAttrib::make_default 0 1 1629 145
/**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */
72
static ConstPointerTo< RenderAttrib > TextureAttrib::make_default(void);

3324 6 is_off 0 4 3750 21 TextureAttrib::is_off 0 1 1630 365
/**
 * Returns true if the TextureAttrib is an 'off' TextureAttrib, indicating
 * that it should disable texturing.
 *
 * If multitexture is in effect, a TextureAttrib may not be strictly "on" or
 * "off"; therefore, to get a more precise answer to this question, you should
 * consider using has_all_off() or get_num_off_stages() or has_off_stage()
 * instead.
 */
46
inline bool TextureAttrib::is_off(void) const;

3325 11 get_texture 0 4 3750 26 TextureAttrib::get_texture 0 1 1631 141
/**
 * If the TextureAttrib is not an 'off' TextureAttrib, returns the base-level
 * texture that is associated.  Otherwise, return NULL.
 */
55
inline Texture *TextureAttrib::get_texture(void) const;

3326 12 make_all_off 0 4 3750 27 TextureAttrib::make_all_off 0 1 1632 109
/**
 * Constructs a new TextureAttrib object that turns off all stages (and hence
 * disables texturing).
 */
72
static ConstPointerTo< RenderAttrib > TextureAttrib::make_all_off(void);

3327 17 get_num_on_stages 0 4 3750 32 TextureAttrib::get_num_on_stages 0 1 1633 76
/**
 * Returns the number of stages that are turned on by the attribute.
 */
56
inline int TextureAttrib::get_num_on_stages(void) const;

3328 12 get_on_stage 0 4 3750 27 TextureAttrib::get_on_stage 0 1 1634 84
/**
 * Returns the nth stage turned on by the attribute, sorted in render order.
 */
62
inline TextureStage *TextureAttrib::get_on_stage(int n) const;

3329 20 get_num_on_ff_stages 0 4 3750 35 TextureAttrib::get_num_on_ff_stages 0 1 1635 154
/**
 * Returns the number of on-stages that are relevant to the classic fixed
 * function pipeline.  This excludes texture stages such as normal maps.
 */
59
inline int TextureAttrib::get_num_on_ff_stages(void) const;

3330 15 get_on_ff_stage 0 4 3750 30 TextureAttrib::get_on_ff_stage 0 1 1636 211
/**
 * Returns the nth stage turned on by the attribute, sorted in render order,
 * including only those relevant to the classic fixed function pipeline.  This
 * excludes texture stages such as normal maps.
 */
65
inline TextureStage *TextureAttrib::get_on_ff_stage(int n) const;

3331 15 get_ff_tc_index 0 4 3750 30 TextureAttrib::get_ff_tc_index 0 1 1637 315
/**
 * For each TextureStage listed in get_on_ff_stage(), this returns a unique
 * index number for the texture coordinate name used by that TextureStage.  It
 * is guaranteed to remain the same index number for each texcoord name (for a
 * given set of TextureStages), even if the texture render order changes.
 */
55
inline int TextureAttrib::get_ff_tc_index(int n) const;

3332 12 has_on_stage 0 4 3750 27 TextureAttrib::has_on_stage 0 1 1638 94
/**
 * Returns true if the indicated stage is turned on by the attrib, false
 * otherwise.
 */
67
inline bool TextureAttrib::has_on_stage(TextureStage *stage) const;

3333 14 get_on_texture 0 4 3750 29 TextureAttrib::get_on_texture 0 1 1639 107
/**
 * Returns the texture associated with the indicated stage, or NULL if no
 * texture is associated.
 */
73
inline Texture *TextureAttrib::get_on_texture(TextureStage *stage) const;

3334 14 get_on_sampler 0 4 3750 29 TextureAttrib::get_on_sampler 0 1 1640 209
/**
 * Returns the sampler associated with the indicated stage, or the one
 * associated with its texture if no custom stage has been specified.  It is
 * an error to call this if the stage does not exist.
 */
84
inline SamplerState const &TextureAttrib::get_on_sampler(TextureStage *stage) const;

3335 21 get_on_stage_override 0 4 3750 36 TextureAttrib::get_on_stage_override 0 1 1641 74
/**
 * Returns the override value associated with the indicated stage.
 */
75
inline int TextureAttrib::get_on_stage_override(TextureStage *stage) const;

3336 13 find_on_stage 0 4 3750 28 TextureAttrib::find_on_stage 0 1 1642 142
/**
 * Returns the index number of the indicated TextureStage within the list of
 * on_stages, or -1 if the indicated stage is not listed.
 */
66
int TextureAttrib::find_on_stage(TextureStage const *stage) const;

3337 18 get_num_off_stages 0 4 3750 33 TextureAttrib::get_num_off_stages 0 1 1643 77
/**
 * Returns the number of stages that are turned off by the attribute.
 */
57
inline int TextureAttrib::get_num_off_stages(void) const;

3338 13 get_off_stage 0 4 3750 28 TextureAttrib::get_off_stage 0 1 1644 101
/**
 * Returns the nth stage turned off by the attribute, sorted in arbitrary
 * (pointer) order.
 */
63
inline TextureStage *TextureAttrib::get_off_stage(int n) const;

3339 13 has_off_stage 0 4 3750 28 TextureAttrib::has_off_stage 0 1 1645 95
/**
 * Returns true if the indicated stage is turned off by the attrib, false
 * otherwise.
 */
68
inline bool TextureAttrib::has_off_stage(TextureStage *stage) const;

3340 11 has_all_off 0 4 3750 26 TextureAttrib::has_all_off 0 1 1646 99
/**
 * Returns true if this attrib turns off all stages (although it may also turn
 * some on).
 */
51
inline bool TextureAttrib::has_all_off(void) const;

3341 11 is_identity 0 4 3750 26 TextureAttrib::is_identity 0 1 1647 102
/**
 * Returns true if this is an identity attrib: it does not change the set of
 * stages in use.
 */
51
inline bool TextureAttrib::is_identity(void) const;

3342 12 add_on_stage 0 4 3750 27 TextureAttrib::add_on_stage 0 2 1648 1649 292
/**
 * Returns a new TextureAttrib, just like this one, but with the indicated
 * stage added to the list of stages turned on by this attrib.
 */

/**
 * Returns a new TextureAttrib, just like this one, but with the indicated
 * stage added to the list of stages turned on by this attrib.
 */
266
ConstPointerTo< RenderAttrib > TextureAttrib::add_on_stage(TextureStage *stage, Texture *tex, int override = 0) const;
ConstPointerTo< RenderAttrib > TextureAttrib::add_on_stage(TextureStage *stage, Texture *tex, SamplerState const &sampler, int override = 0) const;

3343 15 remove_on_stage 0 4 3750 30 TextureAttrib::remove_on_stage 0 1 1650 149
/**
 * Returns a new TextureAttrib, just like this one, but with the indicated
 * stage removed from the list of stages turned on by this attrib.
 */
89
ConstPointerTo< RenderAttrib > TextureAttrib::remove_on_stage(TextureStage *stage) const;

3344 13 add_off_stage 0 4 3750 28 TextureAttrib::add_off_stage 0 1 1651 146
/**
 * Returns a new TextureAttrib, just like this one, but with the indicated
 * stage added to the list of stages turned off by this attrib.
 */
105
ConstPointerTo< RenderAttrib > TextureAttrib::add_off_stage(TextureStage *stage, int override = 0) const;

3345 16 remove_off_stage 0 4 3750 31 TextureAttrib::remove_off_stage 0 1 1652 150
/**
 * Returns a new TextureAttrib, just like this one, but with the indicated
 * stage removed from the list of stages turned off by this attrib.
 */
90
ConstPointerTo< RenderAttrib > TextureAttrib::remove_off_stage(TextureStage *stage) const;

3346 20 unify_texture_stages 0 4 3750 35 TextureAttrib::unify_texture_stages 0 1 1653 182
/**
 * Returns a new TextureAttrib, just like this one, but with any included
 * TextureAttribs that happen to have the same name as the given object
 * replaced with the object.
 */
94
ConstPointerTo< RenderAttrib > TextureAttrib::unify_texture_stages(TextureStage *stage) const;

3347 15 replace_texture 0 4 3750 30 TextureAttrib::replace_texture 0 2 1654 1655 278
// Let interrogate know this also accepts None

/**
 * Returns a new TextureAttrib, just like this one, but with all references to
 * the given texture replaced with the new texture.
 *
 * As of Panda3D 1.10.13, new_tex may be null to remove the texture.
 *
 * @since 1.10.4
 */
207
ConstPointerTo< RenderAttrib > TextureAttrib::replace_texture(Texture *tex, Texture *new_tex) const;
ConstPointerTo< RenderAttrib > TextureAttrib::replace_texture(Texture *tex, std::nullptr_t new_tex) const;

3348 14 get_class_slot 0 4 3750 29 TextureAttrib::get_class_slot 0 1 1656 0
47
static int TextureAttrib::get_class_slot(void);

3349 14 get_class_type 0 4 3750 29 TextureAttrib::get_class_type 0 1 1657 0
54
static TypeHandle TextureAttrib::get_class_type(void);

3350 14 ~TextureAttrib 0 516 3750 29 TextureAttrib::~TextureAttrib 0 0 0
36
TextureAttrib::~TextureAttrib(void);

3351 4 make 0 4 3757 18 TexGenAttrib::make 0 2 1658 1659 148
/**
 * Constructs a TexGenAttrib that generates no stages at all.
 */

/**
 * Constructs a TexGenAttrib that generates just the indicated stage.
 */
167
static ConstPointerTo< RenderAttrib > TexGenAttrib::make(void);
static ConstPointerTo< RenderAttrib > TexGenAttrib::make(TextureStage *stage, TexGenAttrib::Mode mode);

3352 12 make_default 0 4 3757 26 TexGenAttrib::make_default 0 1 1660 145
/**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */
71
static ConstPointerTo< RenderAttrib > TexGenAttrib::make_default(void);

3353 9 add_stage 0 4 3757 23 TexGenAttrib::add_stage 0 2 1661 1662 445
/**
 * Returns a new TexGenAttrib just like this one, with the indicated
 * generation mode for the given stage.  If this stage already exists, its
 * mode is replaced.
 */

/**
 * Returns a new TexGenAttrib just like this one, with the indicated
 * generation mode for the given stage.  If this stage already exists, its
 * mode is replaced.
 *
 * This variant also accepts constant_value, which is only meaningful if mode
 * is M_constant.
 */
249
ConstPointerTo< RenderAttrib > TexGenAttrib::add_stage(TextureStage *stage, TexGenAttrib::Mode mode) const;
ConstPointerTo< RenderAttrib > TexGenAttrib::add_stage(TextureStage *stage, TexGenAttrib::Mode mode, LTexCoord3 const &constant_value) const;

3354 12 remove_stage 0 4 3757 26 TexGenAttrib::remove_stage 0 1 1663 94
/**
 * Returns a new TexGenAttrib just like this one, with the indicated stage
 * removed.
 */
85
ConstPointerTo< RenderAttrib > TexGenAttrib::remove_stage(TextureStage *stage) const;

3355 8 is_empty 0 4 3757 22 TexGenAttrib::is_empty 0 1 1664 98
/**
 * Returns true if no stages are defined in the TexGenAttrib, false if at
 * least one is.
 */
40
bool TexGenAttrib::is_empty(void) const;

3356 9 has_stage 0 4 3757 23 TexGenAttrib::has_stage 0 1 1665 157
/**
 * Returns true if there is a mode associated with the indicated stage, or
 * false otherwise (in which case get_transform(stage) will return M_off).
 */
56
bool TexGenAttrib::has_stage(TextureStage *stage) const;

3357 8 get_mode 0 4 3757 22 TexGenAttrib::get_mode 0 1 1666 142
/**
 * Returns the generation mode associated with the named texture stage, or
 * M_off if nothing is associated with the indicated stage.
 */
69
TexGenAttrib::Mode TexGenAttrib::get_mode(TextureStage *stage) const;

3358 22 has_gen_texcoord_stage 0 4 3757 36 TexGenAttrib::has_gen_texcoord_stage 0 1 1667 207
/**
 * Returns true if the indicated TextureStage will have texture coordinates
 * generated for it automatically (and thus there is no need to upload the
 * texture coordinates encoded in the vertices).
 */
69
bool TexGenAttrib::has_gen_texcoord_stage(TextureStage *stage) const;

3359 18 get_constant_value 0 4 3757 32 TexGenAttrib::get_constant_value 0 1 1668 133
/**
 * Returns the constant value associated with the named texture stage.  This
 * is only meaningful if the mode is M_constant.
 */
78
LTexCoord3 const &TexGenAttrib::get_constant_value(TextureStage *stage) const;

3360 18 get_geom_rendering 0 4 3757 32 TexGenAttrib::get_geom_rendering 0 1 1669 182
/**
 * Returns the union of the Geom::GeomRendering bits that will be required
 * once this TexGenAttrib is applied to a geom which includes the indicated
 * geom_rendering bits.
 */
70
inline int TexGenAttrib::get_geom_rendering(int geom_rendering) const;

3361 14 get_class_slot 0 4 3757 28 TexGenAttrib::get_class_slot 0 1 1670 0
46
static int TexGenAttrib::get_class_slot(void);

3362 14 get_class_type 0 4 3757 28 TexGenAttrib::get_class_type 0 1 1671 0
53
static TypeHandle TexGenAttrib::get_class_type(void);

3363 12 OccluderNode 0 260 3758 26 OccluderNode::OccluderNode 0 1 1672 281
/**
 * The default constructor creates a default occlusion polygon in the XZ plane
 * (or XY plane in a y-up coordinate system).  Use the normal Panda set_pos(),
 * set_hpr(), set_scale() to position it appropriately, or replace the
 * vertices with set_vertices().
 */

/**
 *
 */
61
explicit OccluderNode::OccluderNode(std::string const &name);

3364 16 set_double_sided 0 4 3758 30 OccluderNode::set_double_sided 0 1 1673 62
/**
 * If true, the back-face will also be used to occlude
 */
55
inline void OccluderNode::set_double_sided(bool value);

3365 15 is_double_sided 0 4 3758 29 OccluderNode::is_double_sided 0 1 1674 40
/**
 * Is this occluder double-sided
 */
48
inline bool OccluderNode::is_double_sided(void);

3366 16 set_min_coverage 0 4 3758 30 OccluderNode::set_min_coverage 0 1 1675 202
/**
 * Minimum screen coverage needed before occluder used.  Range should be 0 to
 * 1. For example, setting to 0.2 would mean that the occluder needs to cover
 * 20% of the screen to be considered.
 */
62
inline void OccluderNode::set_min_coverage(PN_stdfloat value);

3367 16 get_min_coverage 0 4 3758 30 OccluderNode::get_min_coverage 0 1 1676 47
/**
 * Returns the minimum screen coverage.
 */
56
inline PN_stdfloat OccluderNode::get_min_coverage(void);

3368 12 set_vertices 0 4 3758 26 OccluderNode::set_vertices 0 1 1677 176
/**
 * Replaces the four vertices of the occluder polygon.  The vertices should be
 * defined in a counterclockwise orientation when looking at the face of the
 * occluder.
 */
115
inline void OccluderNode::set_vertices(LPoint3 const &v0, LPoint3 const &v1, LPoint3 const &v2, LPoint3 const &v3);

3369 16 get_num_vertices 0 4 3758 30 OccluderNode::get_num_vertices 0 1 1678 99
/**
 * Returns the number of vertices in the occluder polygon.  This should always
 * return 4.
 */
62
inline std::size_t OccluderNode::get_num_vertices(void) const;

3370 10 get_vertex 0 4 3758 24 OccluderNode::get_vertex 0 1 1679 58
/**
 * Returns the nth vertex of the occluder polygon.
 */
68
inline LPoint3 const &OccluderNode::get_vertex(std::size_t n) const;

3371 10 set_vertex 0 4 3758 24 OccluderNode::set_vertex 0 1 1680 55
/**
 * Sets the nth vertex of the occluder polygon.
 */
70
inline void OccluderNode::set_vertex(std::size_t n, LPoint3 const &v);

3372 14 get_class_type 0 4 3758 28 OccluderNode::get_class_type 0 1 1681 0
53
static TypeHandle OccluderNode::get_class_type(void);

3373 4 make 0 4 3759 20 OccluderEffect::make 0 1 1682 68
/**
 * Constructs a new OccluderEffect object that does nothing.
 */
65
static ConstPointerTo< RenderEffect > OccluderEffect::make(void);

3374 20 get_num_on_occluders 0 4 3759 36 OccluderEffect::get_num_on_occluders 0 1 1683 77
/**
 * Returns the number of occluders that are enabled by the effectute.
 */
60
inline int OccluderEffect::get_num_on_occluders(void) const;

3375 15 get_on_occluder 0 4 3759 31 OccluderEffect::get_on_occluder 0 1 1684 85
/**
 * Returns the nth occluder enabled by the effectute, sorted in render order.
 */
61
inline NodePath OccluderEffect::get_on_occluder(int n) const;

3376 15 has_on_occluder 0 4 3759 31 OccluderEffect::has_on_occluder 0 1 1685 95
/**
 * Returns true if the indicated occluder is enabled by the effect, false
 * otherwise.
 */
76
inline bool OccluderEffect::has_on_occluder(NodePath const &occluder) const;

3377 11 is_identity 0 4 3759 27 OccluderEffect::is_identity 0 1 1686 105
/**
 * Returns true if this is an identity effect: it does not change the set of
 * occluders in use.
 */
52
inline bool OccluderEffect::is_identity(void) const;

3378 15 add_on_occluder 0 4 3759 31 OccluderEffect::add_on_occluder 0 1 1687 150
/**
 * Returns a new OccluderEffect, just like this one, but with the indicated
 * occluder added to the list of occluders enabled by this effect.
 */
95
ConstPointerTo< RenderEffect > OccluderEffect::add_on_occluder(NodePath const &occluder) const;

3379 18 remove_on_occluder 0 4 3759 34 OccluderEffect::remove_on_occluder 0 1 1688 154
/**
 * Returns a new OccluderEffect, just like this one, but with the indicated
 * occluder removed from the list of occluders enabled by this effect.
 */
98
ConstPointerTo< RenderEffect > OccluderEffect::remove_on_occluder(NodePath const &occluder) const;

3380 14 get_class_type 0 4 3759 30 OccluderEffect::get_class_type 0 1 1689 0
55
static TypeHandle OccluderEffect::get_class_type(void);

3381 15 ~OccluderEffect 0 516 3759 31 OccluderEffect::~OccluderEffect 0 0 0
38
OccluderEffect::~OccluderEffect(void);

3382 13 PolylightNode 0 260 3760 28 PolylightNode::PolylightNode 0 2 1690 1691 71
/**
 * Use PolylightNode() to construct a new PolylightNode object.
 */
133
explicit PolylightNode::PolylightNode(std::string const &name);
inline PolylightNode::PolylightNode(PolylightNode const &) = default;

3383 6 enable 0 4 3760 21 PolylightNode::enable 0 1 1692 28
/**
 * Enable this light
 */
40
inline void PolylightNode::enable(void);

3384 7 disable 0 4 3760 22 PolylightNode::disable 0 1 1693 29
/**
 * Disable this light
 */
41
inline void PolylightNode::disable(void);

3385 7 set_pos 0 4 3760 22 PolylightNode::set_pos 0 2 1694 1695 74
/**
 * Set this light's position
 */

/**
 * Set this light's position
 */
141
inline void PolylightNode::set_pos(LPoint3 const &position);
inline void PolylightNode::set_pos(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z);

3386 7 get_pos 0 4 3760 22 PolylightNode::get_pos 0 1 1696 40
/**
 * Returns position as a LPoint3
 */
50
inline LPoint3 PolylightNode::get_pos(void) const;

3387 9 set_color 0 4 3760 24 PolylightNode::set_color 0 2 1697 1698 97
/**
 * Set the light's color...
 */

/**
 * Set the light's color... 3 floats between 0 and 1
 */
141
inline void PolylightNode::set_color(LColor const &color);
inline void PolylightNode::set_color(PN_stdfloat r, PN_stdfloat g, PN_stdfloat b);

3388 9 get_color 0 4 3760 24 PolylightNode::get_color 0 1 1699 46
/**
 * Returns the light's color as LColor
 */
51
inline LColor PolylightNode::get_color(void) const;

3389 20 get_color_scenegraph 0 4 3760 35 PolylightNode::get_color_scenegraph 0 1 1700 173
/**
 * This differs from get_color in that when applying the light color we need
 * to make sure that a color flattening external to the PolylightNode is not
 * ignored.
 */
62
inline LColor PolylightNode::get_color_scenegraph(void) const;

3390 10 set_radius 0 4 3760 25 PolylightNode::set_radius 0 1 1701 51
/**
 * Set radius of the spherical light volume
 */
53
inline void PolylightNode::set_radius(PN_stdfloat r);

3391 10 get_radius 0 4 3760 25 PolylightNode::get_radius 0 1 1702 51
/**
 * Get radius of the spherical light volume
 */
57
inline PN_stdfloat PolylightNode::get_radius(void) const;

3392 15 set_attenuation 0 4 3760 30 PolylightNode::set_attenuation 0 1 1703 48
/**
 * Set ALINEAR or AQUADRATIC attenuation
 */
81
inline bool PolylightNode::set_attenuation(PolylightNode::Attenuation_Type type);

3393 15 get_attenuation 0 4 3760 30 PolylightNode::get_attenuation 0 1 1704 55
/**
 * Get "linear" or "quadratic" attenuation type
 */
82
inline PolylightNode::Attenuation_Type PolylightNode::get_attenuation(void) const;

3394 6 set_a0 0 4 3760 21 PolylightNode::set_a0 0 1 1705 105
/**
 * Set the quadratic attenuation factor a0 fd = 1 / ( a0 + a1*distance +
 * a2*distance*distance)
 */
50
inline void PolylightNode::set_a0(PN_stdfloat a0);

3395 6 set_a1 0 4 3760 21 PolylightNode::set_a1 0 1 1706 105
/**
 * Set the quadratic attenuation factor a1 fd = 1 / ( a0 + a1*distance +
 * a2*distance*distance)
 */
50
inline void PolylightNode::set_a1(PN_stdfloat a1);

3396 6 set_a2 0 4 3760 21 PolylightNode::set_a2 0 1 1707 105
/**
 * Set the quadratic attenuation factor a2 fd = 1 / ( a0 + a1*distance +
 * a2*distance*distance)
 */
50
inline void PolylightNode::set_a2(PN_stdfloat a2);

3397 6 get_a0 0 4 3760 21 PolylightNode::get_a0 0 1 1708 105
/**
 * Get the quadratic attenuation factor a0 fd = 1 / ( a0 + a1*distance +
 * a2*distance*distance)
 */
53
inline PN_stdfloat PolylightNode::get_a0(void) const;

3398 6 get_a1 0 4 3760 21 PolylightNode::get_a1 0 1 1709 105
/**
 * Get the quadratic attenuation factor a1 fd = 1 / ( a0 + a1*distance +
 * a2*distance*distance)
 */
53
inline PN_stdfloat PolylightNode::get_a1(void) const;

3399 6 get_a2 0 4 3760 21 PolylightNode::get_a2 0 1 1710 105
/**
 * Get the quadratic attenuation factor a2 fd = 1 / ( a0 + a1*distance +
 * a2*distance*distance)
 */
53
inline PN_stdfloat PolylightNode::get_a2(void) const;

3400 10 flicker_on 0 4 3760 25 PolylightNode::flicker_on 0 1 1711 104
/**
 * Set flickering to true so at every loop this light's color is varied based
 * on flicker_type
 */
44
inline void PolylightNode::flicker_on(void);

3401 11 flicker_off 0 4 3760 26 PolylightNode::flicker_off 0 1 1712 30
/**
 * Turn flickering off
 */
45
inline void PolylightNode::flicker_off(void);

3402 13 is_flickering 0 4 3760 28 PolylightNode::is_flickering 0 1 1713 44
/**
 * Check is this light is flickering
 */
53
inline bool PolylightNode::is_flickering(void) const;

3403 16 set_flicker_type 0 4 3760 31 PolylightNode::set_flicker_type 0 1 1714 181
/**
 * Flicker type can be FRANDOM or FSIN At a later point there might be a
 * FCUSTOM Custom flicker will be a set of fix points recorded by animating
 * the light's intensity
 */
78
inline bool PolylightNode::set_flicker_type(PolylightNode::Flicker_Type type);

3404 16 get_flicker_type 0 4 3760 31 PolylightNode::get_flicker_type 0 1 1715 34
/**
 * Returns FRANDOM or FSIN
 */
79
inline PolylightNode::Flicker_Type PolylightNode::get_flicker_type(void) const;

3405 10 set_offset 0 4 3760 25 PolylightNode::set_offset 0 1 1716 142
/**
 * Set the offset value for the random and sin flicker variations... used to
 * tweak the flicker This value is added to the variation
 */
58
inline void PolylightNode::set_offset(PN_stdfloat offset);

3406 10 get_offset 0 4 3760 25 PolylightNode::get_offset 0 1 1717 73
/**
 * Get the offset value for the random and sin flicker variations
 */
57
inline PN_stdfloat PolylightNode::get_offset(void) const;

3407 9 set_scale 0 4 3760 24 PolylightNode::set_scale 0 1 1718 148
/**
 * Set the scale value for the random and sin flicker variations... used to
 * tweak the flicker This value is multiplied with the variation
 */
56
inline void PolylightNode::set_scale(PN_stdfloat scale);

3408 9 get_scale 0 4 3760 24 PolylightNode::get_scale 0 1 1719 72
/**
 * Get the scale value for the random and sin flicker variations
 */
56
inline PN_stdfloat PolylightNode::get_scale(void) const;

3409 13 set_step_size 0 4 3760 28 PolylightNode::set_step_size 0 1 1720 133
/**
 * Set the step size for the sin function in flicker This is the increment
 * size for the value supplied to the sin function
 */
59
inline void PolylightNode::set_step_size(PN_stdfloat step);

3410 13 get_step_size 0 4 3760 28 PolylightNode::get_step_size 0 1 1721 133
/**
 * Get the step size for the sin function in flicker This is the increment
 * size for the value supplied to the sin function
 */
60
inline PN_stdfloat PolylightNode::get_step_size(void) const;

3411 8 set_freq 0 4 3760 23 PolylightNode::set_freq 0 1 1722 39
/**
 * Set frequency of sin flicker
 */
51
inline void PolylightNode::set_freq(PN_stdfloat f);

3412 8 get_freq 0 4 3760 23 PolylightNode::get_freq 0 1 1723 39
/**
 * Get frequency of sin flicker
 */
55
inline PN_stdfloat PolylightNode::get_freq(void) const;

3413 11 operator == 0 4 3760 26 PolylightNode::operator == 0 1 1724 21
// Comparison methods
73
inline bool PolylightNode::operator ==(PolylightNode const &other) const;

3414 11 operator != 0 4 3760 26 PolylightNode::operator != 0 1 1725 0
73
inline bool PolylightNode::operator !=(PolylightNode const &other) const;

3415 10 operator < 0 4 3760 25 PolylightNode::operator < 0 1 1726 0
72
inline bool PolylightNode::operator <(PolylightNode const &other) const;

3416 10 compare_to 0 4 3760 25 PolylightNode::compare_to 0 1 1727 486
/**
 * Returns a number less than zero if this PolylightNode sorts before the
 * other one, greater than zero if it sorts after, or zero if they are
 * equivalent.
 *
 * Two PolylightNodes are considered equivalent if they consist of exactly the
 * same properties Otherwise, they are different; different PolylightNodes
 * will be ranked in a consistent but undefined ordering; the ordering is
 * useful only for placing the PolylightNodes in a sorted container like an
 * STL set.
 */
64
int PolylightNode::compare_to(PolylightNode const &other) const;

3417 10 is_enabled 0 4 3760 25 PolylightNode::is_enabled 0 1 1728 45
/**
 * Is this light is enabled/disabled?
 */
50
inline bool PolylightNode::is_enabled(void) const;

3418 14 get_class_type 0 4 3760 29 PolylightNode::get_class_type 0 1 1729 0
54
static TypeHandle PolylightNode::get_class_type(void);

3419 14 ~PolylightNode 0 516 3760 29 PolylightNode::~PolylightNode 0 0 0
36
PolylightNode::~PolylightNode(void);

3420 4 make 0 4 3763 21 PolylightEffect::make 0 3 1730 1731 1732 157
/**
 * Constructs a new PolylightEffect object.
 */

/**
 * Constructs a new PolylightEffect object.
 */

/**
 * Constructs a new PolylightEffect object.
 */
407
static ConstPointerTo< RenderEffect > PolylightEffect::make(void);
static ConstPointerTo< RenderEffect > PolylightEffect::make(PN_stdfloat weight, PolylightEffect::ContribType contrib, LPoint3 const &effect_center);
static ConstPointerTo< RenderEffect > PolylightEffect::make(PN_stdfloat weight, PolylightEffect::ContribType contrib, LPoint3 const &effect_center, PolylightEffect::LightGroup const &lights);

3421 9 add_light 0 4 3763 26 PolylightEffect::add_light 0 1 1733 76
/**
 * Add a PolylightNode object to this effect and return a new effect
 */
90
ConstPointerTo< RenderEffect > PolylightEffect::add_light(NodePath const &newlight) const;

3422 12 remove_light 0 4 3763 29 PolylightEffect::remove_light 0 1 1734 74
/**
 * Remove a light from this effect.  Return the new updated effect
 */
93
ConstPointerTo< RenderEffect > PolylightEffect::remove_light(NodePath const &newlight) const;

3423 10 set_weight 0 4 3763 27 PolylightEffect::set_weight 0 1 1735 241
/**
 * Set weight and return a new effect... the reason this couldnt be done
 * through make was because that would return a new effect without the
 * lightgroup which is static and cant be accessed Here, we just pass that to
 * the make
 */
80
ConstPointerTo< RenderEffect > PolylightEffect::set_weight(PN_stdfloat w) const;

3424 11 set_contrib 0 4 3763 28 PolylightEffect::set_contrib 0 1 1736 247
/**
 * Set Contrib Type and return a new effect... the reason this couldnt be done
 * through make was because that would return a new effect without the
 * lightgroup which is static and cant be accessed Here, we just pass that to
 * the make
 */
98
ConstPointerTo< RenderEffect > PolylightEffect::set_contrib(PolylightEffect::ContribType c) const;

3425 17 set_effect_center 0 4 3763 34 PolylightEffect::set_effect_center 0 1 1737 241
/**
 * Set weight and return a new effect... the reason this couldnt be done
 * through make was because that would return a new effect without the
 * lightgroup which is static and cant be accessed Here, we just pass that to
 * the make
 */
91
ConstPointerTo< RenderEffect > PolylightEffect::set_effect_center(LPoint3 const &ec) const;

3426 10 get_weight 0 4 3763 27 PolylightEffect::get_weight 0 1 1738 31
/**
 * Get the weight value
 */
59
inline PN_stdfloat PolylightEffect::get_weight(void) const;

3427 11 get_contrib 0 4 3763 28 PolylightEffect::get_contrib 0 1 1739 40
/**
 * Returns CT_all or CT_proximal
 */
77
inline PolylightEffect::ContribType PolylightEffect::get_contrib(void) const;

3428 17 get_effect_center 0 4 3763 34 PolylightEffect::get_effect_center 0 1 1740 49
/**
 * Return the value of the _effect_center
 */
62
inline LPoint3 PolylightEffect::get_effect_center(void) const;

3429 9 has_light 0 4 3763 26 PolylightEffect::has_light 0 1 1741 100
/**
 * Returns true if the indicated light is listed in the PolylightEffect, false
 * otherwise.
 */
61
bool PolylightEffect::has_light(NodePath const &light) const;

3430 14 get_class_type 0 4 3763 31 PolylightEffect::get_class_type 0 1 1742 0
56
static TypeHandle PolylightEffect::get_class_type(void);

3431 16 ~PolylightEffect 0 516 3763 33 PolylightEffect::~PolylightEffect 0 0 0
40
PolylightEffect::~PolylightEffect(void);

3432 4 make 0 4 3767 18 ShaderAttrib::make 0 1 1743 65
/**
 * Constructs a new ShaderAttrib object with nothing set.
 */
107
static ConstPointerTo< RenderAttrib > ShaderAttrib::make(Shader const *shader = nullptr, int priority = 0);

3433 8 make_off 0 4 3767 22 ShaderAttrib::make_off 0 1 1744 133
/**
 * Constructs a new ShaderAttrib object that disables the use of shaders (it
 * does not clear out all shader data, however.)
 */
67
static ConstPointerTo< RenderAttrib > ShaderAttrib::make_off(void);

3434 12 make_default 0 4 3767 26 ShaderAttrib::make_default 0 1 1745 145
/**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */
71
static ConstPointerTo< RenderAttrib > ShaderAttrib::make_default(void);

3435 10 has_shader 0 4 3767 24 ShaderAttrib::has_shader 0 1 1746 109
/**
 * If true, the shader field of this attribute overrides the shader field of
 * the parent attribute.
 */
49
inline bool ShaderAttrib::has_shader(void) const;

3436 11 auto_shader 0 4 3767 25 ShaderAttrib::auto_shader 0 1 1747 142
/**
 * If true, then this ShaderAttrib does not contain an explicit shader -
 * instead, it requests the automatic generation of a shader.
 */
50
inline bool ShaderAttrib::auto_shader(void) const;

3437 19 get_shader_priority 0 4 3767 33 ShaderAttrib::get_shader_priority 0 1 1748 10
/**
 *
 */
57
inline int ShaderAttrib::get_shader_priority(void) const;

3438 18 get_instance_count 0 4 3767 32 ShaderAttrib::get_instance_count 0 1 1749 105
/**
 * Returns the number of geometry instances.  A value of 0 means not to use
 * instancing at all.
 */
56
inline int ShaderAttrib::get_instance_count(void) const;

3439 14 auto_normal_on 0 4 3767 28 ShaderAttrib::auto_normal_on 0 1 1750 0
53
inline bool ShaderAttrib::auto_normal_on(void) const;

3440 12 auto_glow_on 0 4 3767 26 ShaderAttrib::auto_glow_on 0 1 1751 10
/**
 *
 */
51
inline bool ShaderAttrib::auto_glow_on(void) const;

3441 13 auto_gloss_on 0 4 3767 27 ShaderAttrib::auto_gloss_on 0 1 1752 10
/**
 *
 */
52
inline bool ShaderAttrib::auto_gloss_on(void) const;

3442 12 auto_ramp_on 0 4 3767 26 ShaderAttrib::auto_ramp_on 0 1 1753 10
/**
 *
 */
51
inline bool ShaderAttrib::auto_ramp_on(void) const;

3443 14 auto_shadow_on 0 4 3767 28 ShaderAttrib::auto_shadow_on 0 1 1754 10
/**
 *
 */
53
inline bool ShaderAttrib::auto_shadow_on(void) const;

3444 10 set_shader 0 4 3767 24 ShaderAttrib::set_shader 0 1 1755 10
/**
 *
 */
97
ConstPointerTo< RenderAttrib > ShaderAttrib::set_shader(Shader const *s, int priority = 0) const;

3445 14 set_shader_off 0 4 3767 28 ShaderAttrib::set_shader_off 0 1 1756 10
/**
 *
 */
84
ConstPointerTo< RenderAttrib > ShaderAttrib::set_shader_off(int priority = 0) const;

3446 15 set_shader_auto 0 4 3767 29 ShaderAttrib::set_shader_auto 0 2 1757 1758 116
/**
 *
 */

/**
 * Set auto shader with bitmask to customize use, e.g., to keep normal, glow,
 * etc., on or off
 */
196
ConstPointerTo< RenderAttrib > ShaderAttrib::set_shader_auto(int priority = 0) const;
ConstPointerTo< RenderAttrib > ShaderAttrib::set_shader_auto(BitMask32 shader_switch, int priority = 0) const;

3447 12 clear_shader 0 4 3767 26 ShaderAttrib::clear_shader 0 1 1759 10
/**
 *
 */
70
ConstPointerTo< RenderAttrib > ShaderAttrib::clear_shader(void) const;

3448 16 set_shader_input 0 4 3767 30 ShaderAttrib::set_shader_input 0 2 1760 1761 220
// Shader Inputs

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */

/**
 *
 */
212
ConstPointerTo< RenderAttrib > ShaderAttrib::set_shader_input(ShaderInput const &input) const;
ConstPointerTo< RenderAttrib > ShaderAttrib::set_shader_input(CPT_InternalName , PyObject *, int priority = 0) const;

3449 17 set_shader_inputs 0 4 3767 31 ShaderAttrib::set_shader_inputs 0 1 1762 0
103
ConstPointerTo< RenderAttrib > ShaderAttrib::set_shader_inputs(PyObject *args, PyObject *kwargs) const;

3450 18 set_instance_count 0 4 3767 32 ShaderAttrib::set_instance_count 0 1 1763 211
/**
 * Sets the geometry instance count.  Do not confuse this with instanceTo,
 * which is used for animation instancing, and has nothing to do with this.  A
 * value of 0 means not to use instancing at all.
 */
90
ConstPointerTo< RenderAttrib > ShaderAttrib::set_instance_count(int instance_count) const;

3451 8 set_flag 0 4 3767 22 ShaderAttrib::set_flag 0 1 1764 10
/**
 *
 */
82
ConstPointerTo< RenderAttrib > ShaderAttrib::set_flag(int flag, bool value) const;

3452 10 clear_flag 0 4 3767 24 ShaderAttrib::clear_flag 0 1 1765 10
/**
 *
 */
72
ConstPointerTo< RenderAttrib > ShaderAttrib::clear_flag(int flag) const;

3453 18 clear_shader_input 0 4 3767 32 ShaderAttrib::clear_shader_input 0 2 1766 1767 22
/**
 *
 */

/**
 *
 */
188
ConstPointerTo< RenderAttrib > ShaderAttrib::clear_shader_input(InternalName const *id) const;
ConstPointerTo< RenderAttrib > ShaderAttrib::clear_shader_input(std::string const &id) const;

3454 23 clear_all_shader_inputs 0 4 3767 37 ShaderAttrib::clear_all_shader_inputs 0 1 1768 54
/**
 * Clears all the shader inputs on the attrib.
 */
81
ConstPointerTo< RenderAttrib > ShaderAttrib::clear_all_shader_inputs(void) const;

3455 8 get_flag 0 4 3767 22 ShaderAttrib::get_flag 0 1 1769 10
/**
 *
 */
51
inline bool ShaderAttrib::get_flag(int flag) const;

3456 16 has_shader_input 0 4 3767 30 ShaderAttrib::has_shader_input 0 1 1770 68
/**
 * Returns true if there is a ShaderInput of the given name.
 */
70
inline bool ShaderAttrib::has_shader_input(CPT_InternalName id) const;

3457 10 get_shader 0 4 3767 24 ShaderAttrib::get_shader 0 1 1771 186
/**
 * Returns the shader object associated with the node.  If get_override
 * returns true, but get_shader returns NULL, that means that this attribute
 * should disable the shader.
 */
51
Shader const *ShaderAttrib::get_shader(void) const;

3458 16 get_shader_input 0 4 3767 30 ShaderAttrib::get_shader_input 0 2 1772 1773 318
/**
 * Returns the ShaderInput of the given name.  If no such name is found, this
 * function does not return NULL --- it returns the "blank" ShaderInput.
 */

/**
 * Returns the ShaderInput of the given name.  If no such name is found, this
 * function does not return NULL --- it returns the "blank" ShaderInput.
 */
160
ShaderInput const &ShaderAttrib::get_shader_input(InternalName const *id) const;
ShaderInput const &ShaderAttrib::get_shader_input(std::string const &id) const;

3459 25 get_shader_input_nodepath 0 4 3767 39 ShaderAttrib::get_shader_input_nodepath 0 1 1774 115
/**
 * Returns the ShaderInput as a nodepath.  Assertion fails if there is none,
 * or if it is not a nodepath.
 */
86
NodePath const &ShaderAttrib::get_shader_input_nodepath(InternalName const *id) const;

3460 23 get_shader_input_vector 0 4 3767 37 ShaderAttrib::get_shader_input_vector 0 1 1775 111
/**
 * Returns the ShaderInput as a vector.  Assertion fails if there is none, or
 * if it is not a vector.
 */
72
LVecBase4 ShaderAttrib::get_shader_input_vector(InternalName *id) const;

3461 24 get_shader_input_texture 0 4 3767 38 ShaderAttrib::get_shader_input_texture 0 1 1776 207
/**
 * Returns the ShaderInput as a texture.  Assertion fails if there is none, or
 * if it is not a texture.
 *
 * If sampler is not NULL, the sampler state to use for this texture is
 * assigned to it.
 */
111
Texture *ShaderAttrib::get_shader_input_texture(InternalName const *id, SamplerState *sampler = nullptr) const;

3462 20 get_shader_input_ptr 0 4 3767 34 ShaderAttrib::get_shader_input_ptr 0 1 1777 136
/**
 * Returns the ShaderInput as a ShaderPtrData struct.  Assertion fails if
 * there is none.  or if it is not a PTA(double/float)
 */
94
Shader::ShaderPtrData const *ShaderAttrib::get_shader_input_ptr(InternalName const *id) const;

3463 23 get_shader_input_matrix 0 4 3767 37 ShaderAttrib::get_shader_input_matrix 0 1 1778 123
/**
 * Returns the ShaderInput as a matrix.  Assertion fails if there is none, or
 * if it is not a matrix or NodePath.
 */
102
LMatrix4 const &ShaderAttrib::get_shader_input_matrix(InternalName const *id, LMatrix4 &matrix) const;

3464 23 get_shader_input_buffer 0 4 3767 37 ShaderAttrib::get_shader_input_buffer 0 1 1779 123
/**
 * Returns the ShaderInput as a ShaderBuffer.  Assertion fails if there is
 * none, or if it is not a ShaderBuffer.
 */
82
ShaderBuffer *ShaderAttrib::get_shader_input_buffer(InternalName const *id) const;

3465 26 register_with_read_factory 0 4 3767 40 ShaderAttrib::register_with_read_factory 0 1 1780 53
/**
 * Factory method to generate a Shader object
 */
59
static void ShaderAttrib::register_with_read_factory(void);

3466 14 get_class_slot 0 4 3767 28 ShaderAttrib::get_class_slot 0 1 1781 0
46
static int ShaderAttrib::get_class_slot(void);

3467 14 get_class_type 0 4 3767 28 ShaderAttrib::get_class_type 0 1 1782 0
53
static TypeHandle ShaderAttrib::get_class_type(void);

3468 13 ~ShaderAttrib 0 516 3767 27 ShaderAttrib::~ShaderAttrib 0 0 0
34
ShaderAttrib::~ShaderAttrib(void);

3469 4 make 0 4 3772 22 ShowBoundsEffect::make 0 1 1783 52
/**
 * Constructs a new ShowBoundsEffect object.
 */
81
static ConstPointerTo< RenderEffect > ShowBoundsEffect::make(bool tight = false);

3470 9 get_tight 0 4 3772 27 ShowBoundsEffect::get_tight 0 1 1784 157
/**
 * Returns true if the "tight" flag was set, meaning the effect should compute
 * and draw the tight bounding-box of the node's vertices every frame.
 */
52
inline bool ShowBoundsEffect::get_tight(void) const;

3471 14 get_class_type 0 4 3772 32 ShowBoundsEffect::get_class_type 0 1 1785 0
57
static TypeHandle ShowBoundsEffect::get_class_type(void);

3472 17 ~ShowBoundsEffect 0 516 3772 35 ShowBoundsEffect::~ShowBoundsEffect 0 0 0
42
ShowBoundsEffect::~ShowBoundsEffect(void);

3473 4 make 0 4 3773 24 TexProjectorEffect::make 0 1 1786 74
/**
 * Constructs a TexProjectorEffect that modifies no stages at all.
 */
69
static ConstPointerTo< RenderEffect > TexProjectorEffect::make(void);

3474 9 add_stage 0 4 3773 29 TexProjectorEffect::add_stage 0 1 1787 536
/**
 * Returns a new TexProjectorEffect just like this one, with the indicated
 * projection for the given stage.  If this stage already exists, its
 * projection definition is replaced.
 *
 * The relative transform between the "from" and the "to" nodes is
 * automatically applied to the texture transform each frame.
 *
 * Furthermore, if the "to" node is a LensNode, its projection matrix is also
 * applied to the texture transform.  In this case, the lens_index may be used
 * to select the particular lens that should be used.
 */
150
ConstPointerTo< RenderEffect > TexProjectorEffect::add_stage(TextureStage *stage, NodePath const &from, NodePath const &to, int lens_index = 0) const;

3475 12 remove_stage 0 4 3773 32 TexProjectorEffect::remove_stage 0 1 1788 100
/**
 * Returns a new TexProjectorEffect just like this one, with the indicated
 * stage removed.
 */
91
ConstPointerTo< RenderEffect > TexProjectorEffect::remove_stage(TextureStage *stage) const;

3476 8 is_empty 0 4 3773 28 TexProjectorEffect::is_empty 0 1 1789 104
/**
 * Returns true if no stages are defined in the TexProjectorEffect, false if
 * at least one is.
 */
46
bool TexProjectorEffect::is_empty(void) const;

3477 9 has_stage 0 4 3773 29 TexProjectorEffect::has_stage 0 1 1790 182
/**
 * Returns true if there is a transform associated with the indicated stage,
 * or false otherwise (in which case get_transform(stage) will return the
 * identity transform).
 */
62
bool TexProjectorEffect::has_stage(TextureStage *stage) const;

3478 8 get_from 0 4 3773 28 TexProjectorEffect::get_from 0 1 1791 227
/**
 * Returns the "from" node associated with the TexProjectorEffect on the
 * indicated stage.  The relative transform between the "from" and the "to"
 * nodes is automatically applied to the texture transform each frame.
 */
65
NodePath TexProjectorEffect::get_from(TextureStage *stage) const;

3479 6 get_to 0 4 3773 26 TexProjectorEffect::get_to 0 1 1792 343
/**
 * Returns the "to" node associated with the TexProjectorEffect on the
 * indicated stage.  The relative transform between the "from" and the "to"
 * nodes is automatically applied to the texture transform each frame.
 *
 * Furthermore, if the "to" node is a LensNode, its projection matrix is also
 * applied to the texture transform.
 */
63
NodePath TexProjectorEffect::get_to(TextureStage *stage) const;

3480 14 get_lens_index 0 4 3773 34 TexProjectorEffect::get_lens_index 0 1 1793 221
/**
 * Returns the lens_index associated with the TexProjectorEffect on the
 * indicated stage.  This is only used if the "to" node is a LensNode, in
 * which case it specifies the particular lens that should be used.
 */
66
int TexProjectorEffect::get_lens_index(TextureStage *stage) const;

3481 14 get_class_type 0 4 3773 34 TexProjectorEffect::get_class_type 0 1 1794 0
59
static TypeHandle TexProjectorEffect::get_class_type(void);

3482 11 make_screen 0 4 3774 26 ScissorEffect::make_screen 0 1 1795 169
/**
 * Constructs a new screen-relative ScissorEffect.  The frame defines a left,
 * right, bottom, top region, relative to the DisplayRegion.  See
 * ScissorAttrib.
 */
107
static ConstPointerTo< RenderEffect > ScissorEffect::make_screen(LVecBase4 const &frame, bool clip = true);

3483 9 make_node 0 4 3774 24 ScissorEffect::make_node 0 3 1796 1797 1798 699
/**
 * Constructs a new node-relative ScissorEffect, with no points.  This empty
 * ScissorEffect does nothing.  You must then call add_point a number of times
 * to add the points you require.
 */

/**
 * Constructs a new node-relative ScissorEffect.  The two points are
 * understood to be relative to the indicated node, or the current node if the
 * NodePath is empty, and determine the diagonally opposite corners of the
 * scissor region.
 */

/**
 * Constructs a new node-relative ScissorEffect.  The four points are
 * understood to be relative to the indicated node, or the current node if the
 * indicated NodePath is empty, and determine four points surrounding the
 * scissor region.
 */
387
static ConstPointerTo< RenderEffect > ScissorEffect::make_node(bool clip = true);
static ConstPointerTo< RenderEffect > ScissorEffect::make_node(LPoint3 const &a, LPoint3 const &b, NodePath const &node = NodePath());
static ConstPointerTo< RenderEffect > ScissorEffect::make_node(LPoint3 const &a, LPoint3 const &b, LPoint3 const &c, LPoint3 const &d, NodePath const &node = NodePath());

3484 9 add_point 0 4 3774 24 ScissorEffect::add_point 0 1 1799 325
/**
 * Returns a new ScissorEffect with the indicated point added.  It is only
 * valid to call this on a "node" type ScissorEffect.  The full set of points,
 * projected into screen space, defines the bounding volume of the rectangular
 * scissor region.
 *
 * Each point may be relative to a different node, if desired.
 */
119
ConstPointerTo< RenderEffect > ScissorEffect::add_point(LPoint3 const &point, NodePath const &node = NodePath()) const;

3485 9 is_screen 0 4 3774 24 ScissorEffect::is_screen 0 1 1800 149
/**
 * Returns true if the ScissorEffect is a screen-based effect, meaning
 * get_frame() has a meaningful value, but get_a() and get_b() do not.
 */
49
inline bool ScissorEffect::is_screen(void) const;

3486 9 get_frame 0 4 3774 24 ScissorEffect::get_frame 0 1 1801 253
/**
 * If is_screen() returns true, this method may be called to query the screen-
 * based scissor frame.  This is a series of left, right, bottom, top,
 * representing the scissor frame relative to the current DisplayRegion.  See
 * ScissorAttrib.
 */
61
inline LVecBase4 const &ScissorEffect::get_frame(void) const;

3487 14 get_num_points 0 4 3774 29 ScissorEffect::get_num_points 0 1 1802 77
/**
 * Returns the number of node-based scissor points.  See get_point().
 */
53
inline int ScissorEffect::get_num_points(void) const;

3488 9 get_point 0 4 3774 24 ScissorEffect::get_point 0 1 1803 293
/**
 * If is_screen() returns false, then get_num_points() and get_point() may be
 * called to query the node-based scissor frame.  These return n points (at
 * least two), which are understood to be in the space of this node, and which
 * define any opposite corners of the scissor frame.
 */
60
inline LPoint3 const &ScissorEffect::get_point(int n) const;

3489 8 get_node 0 4 3774 23 ScissorEffect::get_node 0 1 1804 114
/**
 * Returns the node to which the nth point is relative, or empty NodePath to
 * indicate the current node.
 */
53
inline NodePath ScissorEffect::get_node(int n) const;

3490 8 get_clip 0 4 3774 23 ScissorEffect::get_clip 0 1 1805 104
/**
 * Returns true if this ScissorEffect actually enables scissoring, or false if
 * it culls only.
 */
48
inline bool ScissorEffect::get_clip(void) const;

3491 14 get_class_type 0 4 3774 29 ScissorEffect::get_class_type 0 1 1806 0
54
static TypeHandle ScissorEffect::get_class_type(void);

3492 14 ~ScissorEffect 0 516 3774 29 ScissorEffect::~ScissorEffect 0 0 0
36
ScissorEffect::~ScissorEffect(void);

3493 17 SceneGraphReducer 0 260 3775 36 SceneGraphReducer::SceneGraphReducer 0 2 1807 1808 10
/**
 *
 */
177
inline explicit SceneGraphReducer::SceneGraphReducer(GraphicsStateGuardianBase *gsg = nullptr);
inline SceneGraphReducer::SceneGraphReducer(SceneGraphReducer const &) = default;

3494 18 ~SceneGraphReducer 0 516 3775 37 SceneGraphReducer::~SceneGraphReducer 0 0 10
/**
 *
 */
51
inline SceneGraphReducer::~SceneGraphReducer(void);

3495 7 set_gsg 0 4 3775 26 SceneGraphReducer::set_gsg 0 1 1809 360
/**
 * Specifies the particular GraphicsStateGuardian that this object will
 * attempt to optimize to.  The GSG may specify parameters such as maximum
 * number of vertices per vertex data, max number of vertices per primitive,
 * and whether triangle strips are preferred.  It also affects the types of
 * vertex column data that is created by premunge().
 */
64
void SceneGraphReducer::set_gsg(GraphicsStateGuardianBase *gsg);

3496 9 clear_gsg 0 4 3775 28 SceneGraphReducer::clear_gsg 0 1 1810 218
/**
 * Specifies that no particular GraphicsStateGuardian will be used to guide
 * the optimization.  The SceneGraphReducer will instead use config variables
 * such as max-collect-vertices and max-collect-indices.
 */
40
void SceneGraphReducer::clear_gsg(void);

3497 7 get_gsg 0 4 3775 26 SceneGraphReducer::get_gsg 0 1 1811 120
/**
 * Returns the particular GraphicsStateGuardian that this object will attempt
 * to optimize to.  See set_gsg().
 */
73
inline GraphicsStateGuardianBase *SceneGraphReducer::get_gsg(void) const;

3498 18 set_combine_radius 0 4 3775 37 SceneGraphReducer::set_combine_radius 0 1 1812 413
/**
 * Specifies the radius that is used in conjunction with CS_within_radius to
 * decide whether a subgraph's siblings should be combined into a single node
 * or not.
 *
 * If the CS_within_radius bit is included in the combine_siblings_bits
 * parameter passed to flatten, than any nodes whose bounding volume is
 * smaller than the indicated radius will be combined together (as if CS_other
 * were set).
 */
78
inline void SceneGraphReducer::set_combine_radius(PN_stdfloat combine_radius);

3499 18 get_combine_radius 0 4 3775 37 SceneGraphReducer::get_combine_radius 0 1 1813 110
/**
 * Returns the radius that is used in conjunction with CS_within_radius.  See
 * set_combine_radius().
 */
69
inline PN_stdfloat SceneGraphReducer::get_combine_radius(void) const;

3500 13 apply_attribs 0 4 3775 32 SceneGraphReducer::apply_attribs 0 2 1814 1815 756
/**
 * Walks the scene graph, accumulating attribs of the indicated types,
 * applying them to the vertices, and removing them from the scene graph.
 * This has a performance optimization benefit in itself, but is especially
 * useful to pave the way for a call to flatten() and greatly improve the
 * effectiveness of the flattening operation.
 *
 * Multiply instanced geometry is duplicated before the attribs are applied.
 *
 * Of course, this operation does make certain dynamic operations impossible.
 */

/**
 * This flavor of apply_attribs() can be called recursively from within
 * another flatten process (e.g.  from
 * PandaNode::apply_attribs_to_vertices()). The parameters were presumably
 * received from a parent SceneGraphReducer object.
 */
353
inline void SceneGraphReducer::apply_attribs(PandaNode *node, int attrib_types = (~ ((::SceneGraphReducer::TT_clip_plane | ::SceneGraphReducer::TT_cull_face) | ::SceneGraphReducer::TT_apply_texture_color)));
inline void SceneGraphReducer::apply_attribs(PandaNode *node, AccumulatedAttribs const &attribs, int attrib_types, GeomTransformer &transformer);

3501 7 flatten 0 4 3775 26 SceneGraphReducer::flatten 0 1 1816 559
/**
 * Simplifies the graph by removing unnecessary nodes and nodes.
 *
 * In general, a node (and its parent node) is a candidate for removal if the
 * node has no siblings and the node has no special properties.
 *
 * If combine_siblings_bits is nonzero, some sibling nodes (according to the
 * bits set in combine_siblings_bits) may also be collapsed into a single
 * node.  This will further reduce scene graph complexity, sometimes
 * substantially, at the cost of reduced spatial separation.
 *
 * Returns the number of nodes removed from the graph.
 */
75
int SceneGraphReducer::flatten(PandaNode *root, int combine_siblings_bits);

3502 13 remove_column 0 4 3775 32 SceneGraphReducer::remove_column 0 1 1817 154
/**
 * Removes the indicated data column from any GeomVertexDatas found at the
 * indicated root and below.  Returns the number of GeomNodes modified.
 */
82
int SceneGraphReducer::remove_column(PandaNode *root, InternalName const *column);

3503 21 make_compatible_state 0 4 3775 40 SceneGraphReducer::make_compatible_state 0 1 1818 254
/**
 * Searches for GeomNodes that contain multiple Geoms that differ only in
 * their ColorAttribs.  If such a GeomNode is found, then all the colors are
 * pushed down into the vertices.  This makes it feasible for the geoms to be
 * unified later.
 */
62
int SceneGraphReducer::make_compatible_state(PandaNode *root);

3504 22 make_compatible_format 0 4 3775 41 SceneGraphReducer::make_compatible_format 0 1 1819 715
/**
 * Walks through the tree at this node and below and unifies the
 * GeomVertexFormat for any GeomVertexData objects that are found, so that all
 * eligible vdatas (according to collect_bits; see collect_vertex_data) will
 * share the same vertex format.
 *
 * This will add unused columns where necessary to match formats.  It can
 * result in suboptimal performance if used needlessly.
 *
 * There is usually no reason to call this explicitly, since
 * collect_vertex_data() will do this anyway if it has not been done already.
 * However, calling it ahead of time can make that future call to
 * collect_vertex_data() run a little bit faster.
 *
 * The return value is the number of vertex datas modified.
 */
96
inline int SceneGraphReducer::make_compatible_format(PandaNode *root, int collect_bits = (~ 0));

3505 9 decompose 0 4 3775 28 SceneGraphReducer::decompose 0 1 1820 396
/**
 * Calls decompose() on every GeomNode at this level and below.
 *
 * There is usually no reason to call this explicitly, since unify() will do
 * this anyway if it needs to be done.  However, calling it ahead of time can
 * make that future call to unify() run a little bit faster.
 *
 * This operation has no effect if the config variable preserve-triangle-
 * strips has been set true.
 */
51
void SceneGraphReducer::decompose(PandaNode *root);

3506 19 collect_vertex_data 0 4 3775 38 SceneGraphReducer::collect_vertex_data 0 1 1821 579
/**
 * Collects all different GeomVertexData blocks that have compatible formats
 * at this node and below into a single, unified block (or at least multiple
 * larger blocks).  This is intended to reduce rendering overhead incurred by
 * switching vertex buffers.  It can also make a subsequent call to unify()
 * much more effective than it would have been otherwise.
 *
 * The set of bits passed in collect_bits indicates which properties are used
 * to differentiate GeomVertexData blocks.  If it is 0, then more blocks will
 * be combined together than if it is nonzero.
 */
93
inline int SceneGraphReducer::collect_vertex_data(PandaNode *root, int collect_bits = (~ 0));

3507 15 make_nonindexed 0 4 3775 34 SceneGraphReducer::make_nonindexed 0 1 1822 308
/**
 * Converts indexed geometry to nonindexed geometry at the indicated node and
 * below, by duplicating vertices where necessary.  The parameter
 * nonindexed_bits is a union of bits defined in
 * SceneGraphReducer::MakeNonindexed, which specifes which types of geometry
 * to avoid making nonindexed.
 */
92
inline int SceneGraphReducer::make_nonindexed(PandaNode *root, int nonindexed_bits = (~ 0));

3508 5 unify 0 4 3775 24 SceneGraphReducer::unify 0 1 1823 224
/**
 * Calls unify() on every GeomNode at this level and below.  This attempts to
 * reduce the total number of individual Geoms and GeomPrimitives by combining
 * these objects wherever possible.  See GeomNode::unify().
 */
68
void SceneGraphReducer::unify(PandaNode *root, bool preserve_order);

3509 22 remove_unused_vertices 0 4 3775 41 SceneGraphReducer::remove_unused_vertices 0 1 1824 273
/**
 * Removes any vertices in GeomVertexDatas that are no longer used at this
 * level and below.  This requires remapping vertex indices in all of the
 * GeomPrimitives, to remove holes in the GeomVertexDatas.  It is normally not
 * necessary to call this explicitly.
 */
64
void SceneGraphReducer::remove_unused_vertices(PandaNode *root);

3510 8 premunge 0 4 3775 27 SceneGraphReducer::premunge 0 1 1825 320
/**
 * Walks the scene graph rooted at this node and below, and uses the indicated
 * GSG to premunge every Geom found to optimize it for eventual rendering on
 * the indicated GSG.  If there is no GSG indicated for the SceneGraphReducer,
 * this is a no-op.
 *
 * This operation will also apply to stashed children.
 */
91
inline void SceneGraphReducer::premunge(PandaNode *root, RenderState const *initial_state);

3511 18 check_live_flatten 0 4 3775 37 SceneGraphReducer::check_live_flatten 0 1 1826 359
/**
 * In a non-release build, returns false if the node is correctly not in a
 * live scene graph.  (Calling flatten on a node that is part of a live scene
 * graph, for instance, a node somewhere under render, can cause problems in a
 * multithreaded environment.)
 *
 * If allow_live_flatten is true, or in a release build, this always returns
 * true.
 */
60
bool SceneGraphReducer::check_live_flatten(PandaNode *node);

3512 34 py_decode_NodePath_from_bam_stream 0 1 0 34 py_decode_NodePath_from_bam_stream 0 1 1887 0
63
NodePath py_decode_NodePath_from_bam_stream(vector_uchar data);

3513 42 py_decode_NodePath_from_bam_stream_persist 0 1 0 42 py_decode_NodePath_from_bam_stream_persist 0 1 1888 0
92
NodePath py_decode_NodePath_from_bam_stream_persist(PyObject *unpickler, vector_uchar data);

3514 13 ParamNodePath 0 260 3780 28 ParamNodePath::ParamNodePath 0 1 1827 150
/**
 * Creates a new ParamNodePath storing the given node path object.
 */

/**
 * Creates a new ParamNodePath storing the given node path object.
 */
63
inline ParamNodePath::ParamNodePath(NodePath const &node_path);

3515 9 get_value 0 4 3780 24 ParamNodePath::get_value 0 1 1828 58
/**
 * Retrieves the NodePath stored in the parameter.
 */
60
inline NodePath const &ParamNodePath::get_value(void) const;

3516 14 get_class_type 0 4 3780 29 ParamNodePath::get_class_type 0 1 1829 0
54
static TypeHandle ParamNodePath::get_class_type(void);

3517 14 ~ParamNodePath 0 516 3780 29 ParamNodePath::~ParamNodePath 0 0 0
36
ParamNodePath::~ParamNodePath(void);

3518 10 PortalNode 0 260 3782 22 PortalNode::PortalNode 0 2 1830 1831 349
/**
 * Default constructor, just an empty node, no geo This is used to read portal
 * from model.  You can also use this from python to create an empty portal.
 * Then you can set the vertices yourself, with addVertex.
 */

/**
 * Create a default rectangle as portal.  Use this to create an arbitrary
 * portal and setup from Python
 */

/**
 *
 */
154
explicit PortalNode::PortalNode(std::string const &name);
explicit PortalNode::PortalNode(std::string const &name, LPoint3 pos, PN_stdfloat scale = 10.0);

3519 15 set_portal_mask 0 4 3782 27 PortalNode::set_portal_mask 0 1 1832 97
/**
 * Simultaneously sets both the "from" and "into" PortalMask values to the
 * same thing.
 */
57
inline void PortalNode::set_portal_mask(PortalMask mask);

3520 20 set_from_portal_mask 0 4 3782 32 PortalNode::set_from_portal_mask 0 1 1833 218
/**
 * Sets the "from" PortalMask.  In order for a portal to be detected from this
 * object into another object, the intersection of this object's "from" mask
 * and the other object's "into" mask must be nonzero.
 */
62
inline void PortalNode::set_from_portal_mask(PortalMask mask);

3521 20 set_into_portal_mask 0 4 3782 32 PortalNode::set_into_portal_mask 0 1 1834 218
/**
 * Sets the "into" PortalMask.  In order for a portal to be detected from
 * another object into this object, the intersection of the other object's
 * "from" mask and this object's "into" mask must be nonzero.
 */
62
inline void PortalNode::set_into_portal_mask(PortalMask mask);

3522 20 get_from_portal_mask 0 4 3782 32 PortalNode::get_from_portal_mask 0 1 1835 229
/**
 * Returns the current "from" PortalMask.  In order for a portal to be
 * detected from this object into another object, the intersection of this
 * object's "from" mask and the other object's "into" mask must be nonzero.
 */
63
inline PortalMask PortalNode::get_from_portal_mask(void) const;

3523 20 get_into_portal_mask 0 4 3782 32 PortalNode::get_into_portal_mask 0 1 1836 229
/**
 * Returns the current "into" PortalMask.  In order for a portal to be
 * detected from another object into this object, the intersection of the
 * other object's "from" mask and this object's "into" mask must be nonzero.
 */
63
inline PortalMask PortalNode::get_into_portal_mask(void) const;

3524 15 set_portal_geom 0 4 3782 27 PortalNode::set_portal_geom 0 1 1837 496
/**
 * Sets the state of the "portal geom" flag for this PortalNode.  Normally,
 * this is false; when this is set true, the PortalSolids in this node will
 * test for portals with actual renderable geometry, in addition to whatever
 * PortalSolids may be indicated by the from_portal_mask.
 *
 * Setting this to true causes this to test *all* GeomNodes for portals.  It
 * is an all-or-none thing; there is no way to portal with only some
 * GeomNodes, as GeomNodes have no into_portal_mask.
 */
51
inline void PortalNode::set_portal_geom(bool flag);

3525 15 get_portal_geom 0 4 3782 27 PortalNode::get_portal_geom 0 1 1838 85
/**
 * Returns the current state of the portal_geom flag.  See set_portal_geom().
 */
52
inline bool PortalNode::get_portal_geom(void) const;

3526 14 clear_vertices 0 4 3782 26 PortalNode::clear_vertices 0 1 1839 63
/**
 * Resets the vertices of the portal to the empty list.
 */
45
inline void PortalNode::clear_vertices(void);

3527 10 add_vertex 0 4 3782 22 PortalNode::add_vertex 0 1 1840 153
/**
 * Adds a new vertex to the portal polygon.  The vertices should be defined in
 * a counterclockwise orientation when viewing through the portal.
 */
58
inline void PortalNode::add_vertex(LPoint3 const &vertex);

3528 16 get_num_vertices 0 4 3782 28 PortalNode::get_num_vertices 0 1 1841 64
/**
 * Returns the number of vertices in the portal polygon.
 */
52
inline int PortalNode::get_num_vertices(void) const;

3529 10 get_vertex 0 4 3782 22 PortalNode::get_vertex 0 1 1842 56
/**
 * Returns the nth vertex of the portal polygon.
 */
58
inline LPoint3 const &PortalNode::get_vertex(int n) const;

3530 11 set_cell_in 0 4 3782 23 PortalNode::set_cell_in 0 1 1843 52
/**
 * Sets the cell that this portal belongs to
 */
58
inline void PortalNode::set_cell_in(NodePath const &cell);

3531 11 get_cell_in 0 4 3782 23 PortalNode::get_cell_in 0 1 1844 52
/**
 * Sets the cell that this portal belongs to
 */
52
inline NodePath PortalNode::get_cell_in(void) const;

3532 12 set_cell_out 0 4 3782 24 PortalNode::set_cell_out 0 1 1845 54
/**
 * Sets the cell that this portal leads out to
 */
59
inline void PortalNode::set_cell_out(NodePath const &cell);

3533 12 get_cell_out 0 4 3782 24 PortalNode::get_cell_out 0 1 1846 54
/**
 * Sets the cell that this portal leads out to
 */
53
inline NodePath PortalNode::get_cell_out(void) const;

3534 14 set_clip_plane 0 4 3782 26 PortalNode::set_clip_plane 0 1 1847 80
/**
 * this is set if the portal will clip against its left and right planes
 */
51
inline void PortalNode::set_clip_plane(bool value);

3535 13 is_clip_plane 0 4 3782 25 PortalNode::is_clip_plane 0 1 1848 64
/**
 * Is this portal clipping against its left-right planes
 */
44
inline bool PortalNode::is_clip_plane(void);

3536 11 set_visible 0 4 3782 23 PortalNode::set_visible 0 1 1849 53
/**
 * this is set if the portal is facing camera
 */
48
inline void PortalNode::set_visible(bool value);

3537 10 is_visible 0 4 3782 22 PortalNode::is_visible 0 1 1850 43
/**
 * Is this portal facing the camera
 */
41
inline bool PortalNode::is_visible(void);

3538 13 set_max_depth 0 4 3782 25 PortalNode::set_max_depth 0 1 1851 63
/**
 * Set the maximum depth this portal will be visible at
 */
49
inline void PortalNode::set_max_depth(int value);

3539 13 get_max_depth 0 4 3782 25 PortalNode::get_max_depth 0 1 1852 67
/**
 * Returns the maximum depth this portal will be visible at
 */
43
inline int PortalNode::get_max_depth(void);

3540 8 set_open 0 4 3782 20 PortalNode::set_open 0 1 1853 55
/**
 * Python sets this based on curent camera zone
 */
45
inline void PortalNode::set_open(bool value);

3541 7 is_open 0 4 3782 19 PortalNode::is_open 0 1 1854 55
/**
 * Is this portal open from current camera zone
 */
38
inline bool PortalNode::is_open(void);

3542 14 get_class_type 0 4 3782 26 PortalNode::get_class_type 0 1 1855 0
51
static TypeHandle PortalNode::get_class_type(void);

3543 8 make_off 0 4 3784 23 ScissorAttrib::make_off 0 1 1856 112
/**
 * Constructs a new ScissorAttrib object that removes the scissor region and
 * fills the DisplayRegion.
 */
68
static ConstPointerTo< RenderAttrib > ScissorAttrib::make_off(void);

3544 4 make 0 4 3784 19 ScissorAttrib::make 0 2 1857 1858 434
/**
 * Constructs a ScissorAttrib that restricts rendering to the indicated frame
 * within the current DisplayRegion.  (0,0) is the lower-left corner of the
 * DisplayRegion, and (1,1) is the upper-right corner.
 */

/**
 * Constructs a ScissorAttrib that restricts rendering to the indicated frame
 * within the current DisplayRegion.  (0,0) is the lower-left corner of the
 * DisplayRegion, and (1,1) is the upper-right corner.
 */
222
static inline ConstPointerTo< RenderAttrib > ScissorAttrib::make(PN_stdfloat left, PN_stdfloat right, PN_stdfloat bottom, PN_stdfloat top);
static ConstPointerTo< RenderAttrib > ScissorAttrib::make(LVecBase4 const &frame);

3545 12 make_default 0 4 3784 27 ScissorAttrib::make_default 0 1 1859 145
/**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */
72
static ConstPointerTo< RenderAttrib > ScissorAttrib::make_default(void);

3546 6 is_off 0 4 3784 21 ScissorAttrib::is_off 0 1 1860 119
/**
 * Returns true if the ScissorAttrib is an 'off' ScissorAttrib, indicating
 * that scissor testing is disabled.
 */
46
inline bool ScissorAttrib::is_off(void) const;

3547 9 get_frame 0 4 3784 24 ScissorAttrib::get_frame 0 1 1861 234
/**
 * Returns the left, right, bottom, top coordinates of the scissor frame.
 * This defines a frame within the current DisplayRegion, where 0,0 is the
 * lower-left corner of the DisplayRegion, and 1,1 is the upper-right corner.
 */
61
inline LVecBase4 const &ScissorAttrib::get_frame(void) const;

3548 14 get_class_slot 0 4 3784 29 ScissorAttrib::get_class_slot 0 1 1862 0
47
static int ScissorAttrib::get_class_slot(void);

3549 14 get_class_type 0 4 3784 29 ScissorAttrib::get_class_type 0 1 1863 0
54
static TypeHandle ScissorAttrib::get_class_type(void);

3550 14 ~ScissorAttrib 0 516 3784 29 ScissorAttrib::~ScissorAttrib 0 0 0
36
ScissorAttrib::~ScissorAttrib(void);

3551 4 make 0 4 3785 22 ShadeModelAttrib::make 0 1 1864 149
/**
 * Constructs a new ShadeModelAttrib object that specifies whether to draw
 * polygons with flat shading or with per-vertex (smooth) shading.
 */
90
static ConstPointerTo< RenderAttrib > ShadeModelAttrib::make(ShadeModelAttrib::Mode mode);

3552 12 make_default 0 4 3785 30 ShadeModelAttrib::make_default 0 1 1865 145
/**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */
75
static ConstPointerTo< RenderAttrib > ShadeModelAttrib::make_default(void);

3553 8 get_mode 0 4 3785 26 ShadeModelAttrib::get_mode 0 1 1866 34
/**
 * Returns the shade mode.
 */
69
inline ShadeModelAttrib::Mode ShadeModelAttrib::get_mode(void) const;

3554 14 get_class_slot 0 4 3785 32 ShadeModelAttrib::get_class_slot 0 1 1867 0
50
static int ShadeModelAttrib::get_class_slot(void);

3555 14 get_class_type 0 4 3785 32 ShadeModelAttrib::get_class_type 0 1 1868 0
57
static TypeHandle ShadeModelAttrib::get_class_type(void);

3556 17 ~ShadeModelAttrib 0 516 3785 35 ShadeModelAttrib::~ShadeModelAttrib 0 0 0
42
ShadeModelAttrib::~ShadeModelAttrib(void);

3557 8 make_off 0 4 3787 23 StencilAttrib::make_off 0 1 1869 69
/**
 * Constructs a StencilAttrib that has stenciling turned off.
 */
68
static ConstPointerTo< RenderAttrib > StencilAttrib::make_off(void);

3558 12 make_default 0 4 3787 27 StencilAttrib::make_default 0 1 1870 145
/**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */
72
static ConstPointerTo< RenderAttrib > StencilAttrib::make_default(void);

3559 4 make 0 4 3787 19 StencilAttrib::make 0 1 1871 49
/**
 * Constructs a front face StencilAttrib.
 */
420
static ConstPointerTo< RenderAttrib > StencilAttrib::make(bool front_enable, RenderAttrib::PandaCompareFunc front_comparison_function, StencilAttrib::StencilOperation stencil_fail_operation, StencilAttrib::StencilOperation stencil_pass_z_fail_operation, StencilAttrib::StencilOperation front_stencil_pass_z_pass_operation, unsigned int reference, unsigned int read_mask, unsigned int write_mask = (~ (unsigned int)(0)));

3560 12 make_2_sided 0 4 3787 27 StencilAttrib::make_2_sided 0 1 1872 48
/**
 * Constructs a two-sided StencilAttrib.
 */
676
static ConstPointerTo< RenderAttrib > StencilAttrib::make_2_sided(bool front_enable, bool back_enable, RenderAttrib::PandaCompareFunc front_comparison_function, StencilAttrib::StencilOperation stencil_fail_operation, StencilAttrib::StencilOperation stencil_pass_z_fail_operation, StencilAttrib::StencilOperation front_stencil_pass_z_pass_operation, unsigned int reference, unsigned int read_mask, unsigned int write_mask, RenderAttrib::PandaCompareFunc back_comparison_function, StencilAttrib::StencilOperation back_stencil_fail_operation, StencilAttrib::StencilOperation back_stencil_pass_z_fail_operation, StencilAttrib::StencilOperation back_stencil_pass_z_pass_operation);

3561 15 make_with_clear 0 4 3787 30 StencilAttrib::make_with_clear 0 1 1873 49
/**
 * Constructs a front face StencilAttrib.
 */
445
static ConstPointerTo< RenderAttrib > StencilAttrib::make_with_clear(bool front_enable, RenderAttrib::PandaCompareFunc front_comparison_function, StencilAttrib::StencilOperation stencil_fail_operation, StencilAttrib::StencilOperation stencil_pass_z_fail_operation, StencilAttrib::StencilOperation front_stencil_pass_z_pass_operation, unsigned int reference, unsigned int read_mask, unsigned int write_mask, bool clear, unsigned int clear_value);

3562 23 make_2_sided_with_clear 0 4 3787 38 StencilAttrib::make_2_sided_with_clear 0 1 1874 48
/**
 * Constructs a two-sided StencilAttrib.
 */
725
static ConstPointerTo< RenderAttrib > StencilAttrib::make_2_sided_with_clear(bool front_enable, bool back_enable, RenderAttrib::PandaCompareFunc front_comparison_function, StencilAttrib::StencilOperation stencil_fail_operation, StencilAttrib::StencilOperation stencil_pass_z_fail_operation, StencilAttrib::StencilOperation front_stencil_pass_z_pass_operation, unsigned int reference, unsigned int read_mask, unsigned int write_mask, RenderAttrib::PandaCompareFunc back_comparison_function, StencilAttrib::StencilOperation back_stencil_fail_operation, StencilAttrib::StencilOperation back_stencil_pass_z_fail_operation, StencilAttrib::StencilOperation back_stencil_pass_z_pass_operation, bool clear, unsigned int clear_value);

3563 16 get_render_state 0 4 3787 31 StencilAttrib::get_render_state 0 1 1875 32
/**
 * Returns render state.
 */
117
inline unsigned int StencilAttrib::get_render_state(StencilAttrib::StencilRenderState render_state_identifier) const;

3564 14 get_class_slot 0 4 3787 29 StencilAttrib::get_class_slot 0 1 1876 0
47
static int StencilAttrib::get_class_slot(void);

3565 14 get_class_type 0 4 3787 29 StencilAttrib::get_class_type 0 1 1877 0
54
static TypeHandle StencilAttrib::get_class_type(void);

3566 14 ~StencilAttrib 0 516 3787 29 StencilAttrib::~StencilAttrib 0 0 0
36
StencilAttrib::~StencilAttrib(void);

3567 10 has_shader 0 4 3791 22 ShaderPool::has_shader 0 1 1878 76
/**
 * Returns true if the shader has ever been loaded, false otherwise.
 */
68
static inline bool ShaderPool::has_shader(Filename const &filename);

3568 13 verify_shader 0 4 3791 25 ShaderPool::verify_shader 0 1 1879 306
/**
 * Loads the given filename up into a shader, if it has not already been
 * loaded, and returns true to indicate success, or false to indicate failure.
 * If this returns true, it is guaranteed that a subsequent call to
 * load_shader() with the same shader name will return a valid Shader pointer.
 */
71
static inline bool ShaderPool::verify_shader(Filename const &filename);

3569 11 load_shader 0 4 3791 23 ShaderPool::load_shader 0 1 1880 261
/**
 * Loads the given filename up into a shader, if it has not already been
 * loaded, and returns the new shader.  If a shader with the same filename was
 * previously loaded, returns that one instead.  If the shader file cannot be
 * found, returns NULL.
 */
89
static inline ConstPointerTo< Shader > ShaderPool::load_shader(Filename const &filename);

3570 10 add_shader 0 4 3791 22 ShaderPool::add_shader 0 1 1881 171
/**
 * Adds the indicated already-loaded shader to the pool.  The shader will
 * always replace any previously-loaded shader in the pool that had the same
 * filename.
 */
84
static inline void ShaderPool::add_shader(Filename const &filename, Shader *shader);

3571 14 release_shader 0 4 3791 26 ShaderPool::release_shader 0 1 1882 270
/**
 * Removes the indicated shader from the pool, indicating it will never be
 * loaded again; the shader may then be freed.  If this function is never
 * called, a reference count will be maintained on every shader every loaded,
 * and shaders will never be freed.
 */
72
static inline void ShaderPool::release_shader(Filename const &filename);

3572 19 release_all_shaders 0 4 3791 31 ShaderPool::release_all_shaders 0 1 1883 85
/**
 * Releases all shaders in the pool and restores the pool to the empty state.
 */
57
static inline void ShaderPool::release_all_shaders(void);

3573 15 garbage_collect 0 4 3791 27 ShaderPool::garbage_collect 0 1 1884 209
/**
 * Releases only those shaders in the pool that have a reference count of
 * exactly 1; i.e.  only those shaders that are not being used outside of the
 * pool.  Returns the number of shaders released.
 */
52
static inline int ShaderPool::garbage_collect(void);

3574 13 list_contents 0 4 3791 25 ShaderPool::list_contents 0 1 1885 80
/**
 * Lists the contents of the shader pool to the indicated output stream.
 */
64
static inline void ShaderPool::list_contents(std::ostream &out);

3575 5 write 0 4 3791 17 ShaderPool::write 0 1 1886 80
/**
 * Lists the contents of the shader pool to the indicated output stream.
 */
49
static void ShaderPool::write(std::ostream &out);

3576 11 ~ShaderPool 0 516 3791 23 ShaderPool::~ShaderPool 0 0 0
30
ShaderPool::~ShaderPool(void);

1888
1 0 0 6 3 3597 0 0 0 2 4 this 3 3792  5 other 1 3792  
2 0 0 6 4 3590 0 0 317 /**
 * Provides an arbitrary ordering among all unique TransformStates, so we can
 * store the essentially different ones in a big set and throw away the rest.
 *
 * Note that if this returns 0, it doesn't necessarily imply that operator ==
 * returns true; it uses a very slightly different comparison threshold.
 */ 2 4 this 3 3792  5 other 1 3792  
3 0 0 6 4 3590 0 0 528 /**
 * Provides an arbitrary ordering among all unique TransformStates, so we can
 * store the essentially different ones in a big set and throw away the rest.
 *
 * Note that if this returns 0, it doesn't necessarily imply that operator ==
 * returns true; it uses a very slightly different comparison threshold.
 *
 * If uniquify_matrix is true, then matrix-defined TransformStates are also
 * uniqified.  If uniquify_matrix is false, then only component-defined
 * TransformStates are uniquified, which is less expensive.
 */ 3 4 this 3 3792  5 other 1 3792  15 uniquify_matrix 1 3597  
4 0 0 6 5 3597 0 0 0 2 4 this 3 3792  5 other 1 3792  
5 0 0 6 6 3794 0 0 55 /**
 * Returns a suitable hash value for phash_map.
 */ 1 4 this 3 3792  
6 0 0 7 7 3792 0 0 44 /**
 * Constructs an identity transform.
 */ 0 
7 0 0 7 8 3792 0 0 103 /**
 * Constructs an invalid transform; for instance, the result of inverting a
 * singular matrix.
 */ 0 
8 0 0 7 9 3792 0 0 68 /**
 * Makes a new TransformState with the specified components.
 */ 1 3 pos 1 3796  
9 0 0 7 10 3792 0 0 68 /**
 * Makes a new TransformState with the specified components.
 */ 1 3 hpr 1 3796  
10 0 0 7 11 3792 0 0 68 /**
 * Makes a new TransformState with the specified components.
 */ 1 4 quat 1 3798  
11 0 0 7 12 3792 0 0 68 /**
 * Makes a new TransformState with the specified components.
 */ 2 3 pos 1 3796  3 hpr 1 3796  
12 0 0 7 13 3792 0 0 68 /**
 * Makes a new TransformState with the specified components.
 */ 1 5 scale 1 3796  
13 0 0 7 13 3792 0 0 68 /**
 * Makes a new TransformState with the specified components.
 */ 1 5 scale 1 3595  
14 0 0 7 14 3792 0 0 68 /**
 * Makes a new TransformState with the specified components.
 */ 1 5 shear 1 3796  
15 0 0 7 15 3792 0 0 68 /**
 * Makes a new TransformState with the specified components.
 */ 3 3 pos 1 3796  3 hpr 1 3796  5 scale 1 3796  
16 0 0 7 16 3792 0 0 68 /**
 * Makes a new TransformState with the specified components.
 */ 3 3 pos 1 3796  4 quat 1 3798  5 scale 1 3796  
17 0 0 7 17 3792 0 0 68 /**
 * Makes a new TransformState with the specified components.
 */ 4 3 pos 1 3796  3 hpr 1 3796  5 scale 1 3796  5 shear 1 3796  
18 0 0 7 18 3792 0 0 68 /**
 * Makes a new TransformState with the specified components.
 */ 4 3 pos 1 3796  4 quat 1 3798  5 scale 1 3796  5 shear 1 3796  
19 0 0 7 19 3792 0 0 79 /**
 * Makes a new TransformState with the specified transformation matrix.
 */ 1 3 mat 1 3800  
20 0 0 7 20 3792 0 0 72 /**
 * Makes a new 2-d TransformState with the specified components.
 */ 1 3 pos 1 3802  
21 0 0 7 21 3792 0 0 72 /**
 * Makes a new 2-d TransformState with the specified components.
 */ 1 6 rotate 1 3595  
22 0 0 7 22 3792 0 0 72 /**
 * Makes a new 2-d TransformState with the specified components.
 */ 2 3 pos 1 3802  6 rotate 1 3595  
23 0 0 7 23 3792 0 0 72 /**
 * Makes a new 2-d TransformState with the specified components.
 */ 1 5 scale 1 3802  
24 0 0 7 23 3792 0 0 72 /**
 * Makes a new 2-d TransformState with the specified components.
 */ 1 5 scale 1 3595  
25 0 0 7 24 3792 0 0 72 /**
 * Makes a new 2-d TransformState with the specified components.
 */ 1 5 shear 1 3595  
26 0 0 7 25 3792 0 0 72 /**
 * Makes a new 2-d TransformState with the specified components.
 */ 3 3 pos 1 3802  6 rotate 1 3595  5 scale 1 3802  
27 0 0 7 26 3792 0 0 84 /**
 * Makes a new two-dimensional TransformState with the specified components.
 */ 4 3 pos 1 3802  6 rotate 1 3595  5 scale 1 3802  5 shear 1 3595  
28 0 0 7 27 3792 0 0 102 /**
 * Makes a new two-dimensional TransformState with the specified 3x3
 * transformation matrix.
 */ 1 3 mat 1 3806  
29 0 0 6 28 3597 0 0 92 /**
 * Returns true if the transform represents the identity matrix, false
 * otherwise.
 */ 1 4 this 3 3792  
30 0 0 6 29 3597 0 0 168 /**
 * Returns true if the transform represents an invalid matrix, for instance
 * the result of inverting a singular matrix, or false if the transform is
 * valid.
 */ 1 4 this 3 3792  
31 0 0 6 30 3597 0 0 154 /**
 * Returns true if the transform represents a singular transform (that is, it
 * has a zero scale, and it cannot be inverted), or false otherwise.
 */ 1 4 this 3 3792  
32 0 0 6 31 3597 0 0 206 /**
 * Returns true if the transform has been constructed entirely using the 2-d
 * transform operations, e.g.  make_pos2d(), and therefore operates strictly
 * in two-dimensional space on X and Y only.
 */ 1 4 this 3 3792  
33 0 0 6 32 3597 0 0 654 /**
 * Returns true if the transform can be described by separate pos, hpr, and
 * scale components.  Most transforms we use in everyday life can be so
 * described, but some kinds of transforms (for instance, those involving a
 * skew) cannot.
 *
 * This is not related to whether the transform was originally described
 * componentwise.  Even a transform that was constructed with a 4x4 may return
 * true here if the matrix is a simple affine matrix with no skew.
 *
 * If this returns true, you may safely call get_hpr() and get_scale() to
 * retrieve the components.  (You may always safely call get_pos() whether
 * this returns true or false.)
 */ 1 4 this 3 3792  
34 0 0 6 33 3597 0 0 454 /**
 * Returns true if the transform was specified componentwise, or false if it
 * was specified with a general 4x4 matrix.  If this is true, the components
 * returned by get_pos() and get_scale() will be exactly those that were set;
 * otherwise, these functions will return computed values.  If this is true,
 * the rotation may have been set either with a hpr trio or with a quaternion;
 * hpr_given() or quat_given() can resolve the difference.
 */ 1 4 this 3 3792  
35 0 0 6 34 3597 0 0 200 /**
 * Returns true if the rotation was specified via a trio of Euler angles,
 * false otherwise.  If this is true, get_hpr() will be exactly as set;
 * otherwise, it will return a computed value.
 */ 1 4 this 3 3792  
36 0 0 6 35 3597 0 0 191 /**
 * Returns true if the rotation was specified via a quaternion, false
 * otherwise.  If this is true, get_quat() will be exactly as set; otherwise,
 * it will return a computed value.
 */ 1 4 this 3 3792  
37 0 0 6 36 3597 0 0 194 /**
 * Returns true if the transform's pos component can be extracted out
 * separately.  This is generally always true, unless the transform is invalid
 * (i.e.  is_invalid() returns true).
 */ 1 4 this 3 3792  
38 0 0 6 37 3597 0 0 199 /**
 * Returns true if the transform's rotation component can be extracted out
 * separately and described as a set of Euler angles.  This is generally true
 * only when has_components() is true.
 */ 1 4 this 3 3792  
39 0 0 6 38 3597 0 0 190 /**
 * Returns true if the transform's rotation component can be extracted out
 * separately and described as a quaternion.  This is generally true only when
 * has_components() is true.
 */ 1 4 this 3 3792  
40 0 0 6 39 3597 0 0 154 /**
 * Returns true if the transform's scale component can be extracted out
 * separately.  This is generally true only when has_components() is true.
 */ 1 4 this 3 3792  
41 0 0 6 40 3597 0 0 98 /**
 * Returns true if the scale is uniform 1.0, or false if the scale has some
 * real value.
 */ 1 4 this 3 3792  
42 0 0 6 41 3597 0 0 201 /**
 * Returns true if the scale is uniform across all three axes (and therefore
 * can be expressed as a single number), or false if the transform has a
 * different scale in different dimensions.
 */ 1 4 this 3 3792  
43 0 0 6 42 3597 0 0 154 /**
 * Returns true if the transform's shear component can be extracted out
 * separately.  This is generally true only when has_components() is true.
 */ 1 4 this 3 3792  
44 0 0 6 43 3597 0 0 121 /**
 * Returns true if the shear component is non-zero, false if it is zero or if
 * the matrix cannot be decomposed.
 */ 1 4 this 3 3792  
45 0 0 6 44 3597 0 0 134 /**
 * Returns true if the transform can be described as a matrix.  This is
 * generally always true, unless is_invalid() is true.
 */ 1 4 this 3 3792  
46 0 0 7 45 3810 0 0 115 /**
 * Returns the pos component of the transform.  It is an error to call this if
 * has_pos() returned false.
 */ 1 4 this 3 3792  
47 0 0 7 46 3811 0 0 152 /**
 * Returns the rotation component of the transform as a trio of Euler angles.
 * It is an error to call this if has_components() returned false.
 */ 1 4 this 3 3792  
48 0 0 7 47 3812 0 0 412 /**
 * Returns the rotation component of the transform as a quaternion.  The
 * return value will be normalized if a normalized quaternion was given to the
 * constructor (or if the quaternion was computed implicitly); it will be non-
 * normalized if a non-normalized quaternion was given to the constructor.
 * See also get_norm_quat().
 *
 * It is an error to call this if has_components() returned false.
 */ 1 4 this 3 3792  
49 0 0 7 48 3812 0 0 247 /**
 * Returns the rotation component of the transform as a quaternion.  Unlike
 * the result of get_quat(), the return value of this method is guaranteed to
 * be normalized.  It is an error to call this if has_components() returned
 * false.
 */ 1 4 this 3 3792  
50 0 0 7 49 3811 0 0 124 /**
 * Returns the scale component of the transform.  It is an error to call this
 * if has_components() returned false.
 */ 1 4 this 3 3792  
51 0 0 6 50 3595 0 0 147 /**
 * Returns the scale component of the transform, as a single number.  It is an
 * error to call this if has_uniform_scale() returned false.
 */ 1 4 this 3 3792  
52 0 0 7 51 3811 0 0 124 /**
 * Returns the shear component of the transform.  It is an error to call this
 * if has_components() returned false.
 */ 1 4 this 3 3792  
53 0 0 7 52 3813 0 0 59 /**
 * Returns the matrix that describes the transform.
 */ 1 4 this 3 3792  
54 0 0 7 53 3814 0 0 130 /**
 * Returns the pos component of the 2-d transform.  It is an error to call
 * this if has_pos() or is_2d() returned false.
 */ 1 4 this 3 3792  
55 0 0 6 54 3595 0 0 195 /**
 * Returns the rotation component of the 2-d transform as an angle in degrees
 * clockwise about the origin.  It is an error to call this if
 * has_components() or is_2d() returned false.
 */ 1 4 this 3 3792  
56 0 0 7 55 3814 0 0 139 /**
 * Returns the scale component of the 2-d transform.  It is an error to call
 * this if has_components() or is_2d() returned false.
 */ 1 4 this 3 3792  
57 0 0 6 56 3595 0 0 139 /**
 * Returns the shear component of the 2-d transform.  It is an error to call
 * this if has_components() or is_2d() returned false.
 */ 1 4 this 3 3792  
58 0 0 7 57 3815 0 0 126 /**
 * Returns the 3x3 matrix that describes the 2-d transform.  It is an error to
 * call this if is_2d() returned false.
 */ 1 4 this 3 3792  
59 0 0 7 73 3792 0 0 151 /**
 * Returns a new TransformState object that represents the original
 * TransformState with its pos component replaced with the indicated value.
 */ 2 4 this 3 3792  3 pos 1 3796  
60 0 0 7 74 3792 0 0 172 /**
 * Returns a new TransformState object that represents the original
 * TransformState with its rotation component replaced with the indicated
 * value, if possible.
 */ 2 4 this 3 3792  3 hpr 1 3796  
61 0 0 7 75 3792 0 0 172 /**
 * Returns a new TransformState object that represents the original
 * TransformState with its rotation component replaced with the indicated
 * value, if possible.
 */ 2 4 this 3 3792  4 quat 1 3798  
62 0 0 7 76 3792 0 0 169 /**
 * Returns a new TransformState object that represents the original
 * TransformState with its scale component replaced with the indicated value,
 * if possible.
 */ 2 4 this 3 3792  5 scale 1 3796  
63 0 0 7 77 3792 0 0 169 /**
 * Returns a new TransformState object that represents the original
 * TransformState with its shear component replaced with the indicated value,
 * if possible.
 */ 2 4 this 3 3792  5 shear 1 3796  
64 0 0 7 78 3792 0 0 155 /**
 * Returns a new TransformState object that represents the original 2-d
 * TransformState with its pos component replaced with the indicated value.
 */ 2 4 this 3 3792  3 pos 1 3802  
65 0 0 7 79 3792 0 0 176 /**
 * Returns a new TransformState object that represents the original 2-d
 * TransformState with its rotation component replaced with the indicated
 * value, if possible.
 */ 2 4 this 3 3792  6 rotate 1 3595  
66 0 0 7 80 3792 0 0 173 /**
 * Returns a new TransformState object that represents the original 2-d
 * TransformState with its scale component replaced with the indicated value,
 * if possible.
 */ 2 4 this 3 3792  5 scale 1 3802  
67 0 0 7 81 3792 0 0 173 /**
 * Returns a new TransformState object that represents the original 2-d
 * TransformState with its shear component replaced with the indicated value,
 * if possible.
 */ 2 4 this 3 3792  5 shear 1 3595  
68 0 0 7 82 3792 0 0 408 /**
 * Returns a new TransformState object that represents the composition of this
 * state with the other state.
 *
 * The result of this operation is cached, and will be retained as long as
 * both this TransformState object and the other TransformState object
 * continue to exist.  Should one of them destruct, the cached entry will be
 * removed, and its pointer will be allowed to destruct as well.
 */ 2 4 this 3 3792  5 other 1 3792  
69 0 0 7 83 3792 0 0 268 /**
 * Returns a new TransformState object that represents the composition of this
 * state's inverse with the other state.
 *
 * This is similar to compose(), but is particularly useful for computing the
 * relative state of a node as viewed from some other node.
 */ 2 4 this 3 3792  5 other 1 3792  
70 0 0 7 84 3792 0 0 199 /**
 * Returns the inverse of this transform.  If you are going to immediately
 * compose this result with another TransformState, it is faster to do it in
 * one operation with invert_compose().
 */ 1 4 this 3 3792  
71 0 0 7 85 3792 0 0 331 /**
 * Returns the pointer to the unique TransformState in the cache that is
 * equivalent to this one.  This may be the same pointer as this object, or it
 * may be a different pointer; but it will be an equivalent object, and it
 * will be a shared pointer.  This may be called from time to time to improve
 * cache benefits.
 */ 1 4 this 3 3792  
72 0 0 6 86 3590 0 0 261 /**
 * Returns the union of the Geom::GeomRendering bits that will be required
 * once this TransformState is applied to a geom which includes the indicated
 * geom_rendering bits.  The RenderState's get_geom_rendering() should already
 * have been applied.
 */ 2 4 this 3 3792  14 geom_rendering 1 3590  
73 0 0 4 87 3816 0 0 64 /**
 * Overrides this method to update PStats appropriately.
 */ 1 4 this 3 3792  
74 0 0 6 88 3597 0 0 64 /**
 * Overrides this method to update PStats appropriately.
 */ 1 4 this 3 3792  
75 0 0 4 89 3816 0 0 64 /**
 * Overrides this method to update PStats appropriately.
 */ 1 4 this 3 3792  
76 0 0 6 90 3597 0 0 64 /**
 * Overrides this method to update PStats appropriately.
 */ 1 4 this 3 3792  
77 0 0 6 91 3794 0 0 278 /**
 * Returns the number of entries in the composition cache for this
 * TransformState.  This is the number of other TransformStates whose
 * composition with this one has been cached.  This number is not useful for
 * any practical reason other than performance analysis.
 */ 1 4 this 3 3792  
78 0 0 6 92 3794 0 0 256 /**
 * Returns the number of entries in the invert_composition cache for this
 * TransformState.  This is similar to the composition cache, but it records
 * cache entries for the invert_compose() operation.  See
 * get_composition_cache_num_entries().
 */ 1 4 this 3 3792  
79 0 0 6 93 3794 0 0 337 /**
 * Returns the number of slots in the composition cache for this
 * TransformState.  You may use this as an upper bound when walking through
 * all of the composition cache results via get_composition_cache_source() or
 * result().
 *
 * This has no practical value other than for examining the cache for
 * performance analysis.
 */ 1 4 this 3 3792  
80 0 0 7 94 3792 0 0 303 /**
 * Returns the source TransformState of the nth element in the composition
 * cache.  Returns NULL if there doesn't happen to be an entry in the nth
 * element.  See get_composition_cache_result().
 *
 * This has no practical value other than for examining the cache for
 * performance analysis.
 */ 2 4 this 3 3792  1 n 1 3794  
81 0 0 7 95 3792 0 0 373 /**
 * Returns the result TransformState of the nth element in the composition
 * cache.  Returns NULL if there doesn't happen to be an entry in the nth
 * element.
 *
 * In general, a->compose(a->get_composition_cache_source(n)) ==
 * a->get_composition_cache_result(n).
 *
 * This has no practical value other than for examining the cache for
 * performance analysis.
 */ 2 4 this 3 3792  1 n 1 3794  
82 0 0 6 96 3794 0 0 344 /**
 * Returns the number of slots in the composition cache for this
 * TransformState.  You may use this as an upper bound when walking through
 * all of the composition cache results via
 * get_invert_composition_cache_source() or result().
 *
 * This has no practical value other than for examining the cache for
 * performance analysis.
 */ 1 4 this 3 3792  
83 0 0 7 97 3792 0 0 317 /**
 * Returns the source TransformState of the nth element in the invert
 * composition cache.  Returns NULL if there doesn't happen to be an entry in
 * the nth element.  See get_invert_composition_cache_result().
 *
 * This has no practical value other than for examining the cache for
 * performance analysis.
 */ 2 4 this 3 3792  1 n 1 3794  
84 0 0 7 98 3792 0 0 401 /**
 * Returns the result TransformState of the nth element in the invert
 * composition cache.  Returns NULL if there doesn't happen to be an entry in
 * the nth element.
 *
 * In general, a->invert_compose(a->get_invert_composition_cache_source(n)) ==
 * a->get_invert_composition_cache_result(n).
 *
 * This has no practical value other than for examining the cache for
 * performance analysis.
 */ 2 4 this 3 3792  1 n 1 3794  
85 0 0 6 99 3597 0 0 163 /**
 * Returns true if the composition cache and invert composition cache for this
 * particular TransformState are self-consistent and valid, false otherwise.
 */ 1 4 this 3 3792  
86 0 0 38 100 3620 0 0 0 1 4 this 3 3792  
87 0 0 38 101 3620 0 0 0 1 4 this 3 3792  
88 0 0 4 102 3816 0 0 10 /**
 *
 */ 2 4 this 3 3792  3 out 1 3817  
89 0 0 4 103 3816 0 0 10 /**
 *
 */ 3 4 this 3 3792  3 out 1 3817  12 indent_level 1 3590  
90 0 0 4 104 3816 0 0 208 /**
 * Writes a brief description of the composition cache and invert composition
 * cache to the indicated ostream.  This is not useful except for performance
 * analysis, to examine the cache structure.
 */ 3 4 this 3 3792  3 out 1 3817  12 indent_level 1 3590  
91 0 0 6 105 3590 0 0 147 /**
 * Returns the total number of unique TransformState objects allocated in the
 * world.  This will go up and down during normal operations.
 */ 0 
92 0 0 6 106 3590 0 0 612 /**
 * Returns the total number of TransformState objects that have been allocated
 * but have no references outside of the internal TransformState cache.
 *
 * A nonzero return value is not necessarily indicative of leaked references;
 * it is normal for two TransformState objects, both of which have references
 * held outside the cache, to have the result of their composition stored
 * within the cache.  This result will be retained within the cache until one
 * of the base TransformStates is released.
 *
 * Use list_cycles() to get an idea of the number of actual "leaked"
 * TransformState objects.
 */ 0 
93 0 0 6 107 3590 0 0 617 /**
 * Empties the cache of composed TransformStates.  This makes every
 * TransformState forget what results when it is composed with other
 * TransformStates.
 *
 * This will eliminate any TransformState objects that have been allocated but
 * have no references outside of the internal TransformState map.  It will not
 * eliminate TransformState objects that are still in use.
 *
 * Nowadays, this method should not be necessary, as reference-count cycles in
 * the composition cache should be automatically detected and broken.
 *
 * The return value is the number of TransformStates freed by this operation.
 */ 0 
94 0 0 6 108 3590 0 0 297 /**
 * Performs a garbage-collection cycle.  This must be called periodically if
 * garbage-collect-states is true to ensure that TransformStates get cleaned
 * up appropriately.  It does no harm to call it even if this variable is not
 * true, but there is probably no advantage in that case.
 */ 0 
95 0 0 4 109 3816 0 0 565 /**
 * Detects all of the reference-count cycles in the cache and reports them to
 * standard output.
 *
 * These cycles may be inadvertently created when state compositions cycle
 * back to a starting point.  Nowadays, these cycles should be automatically
 * detected and broken, so this method should never list any cycles unless
 * there is a bug in that detection logic.
 *
 * The cycles listed here are not leaks in the strictest sense of the word,
 * since they can be reclaimed by a call to clear_cache(); but they will not
 * be reclaimed automatically.
 */ 1 3 out 1 3817  
96 0 0 4 110 3816 0 0 172 /**
 * Lists all of the TransformStates in the cache to the output stream, one per
 * line.  This can be quite a lot of output if the cache is large, so be
 * prepared.
 */ 1 3 out 1 3817  
97 0 0 6 111 3597 0 0 282 /**
 * Ensures that the cache is still stored in sorted order, and that none of
 * the cache elements have been inadvertently deleted.  Returns true if so,
 * false if there is a problem (which implies someone has modified one of the
 * supposedly-const TransformState objects).
 */ 0 
98 0 0 38 112 3620 0 0 0 0 
99 0 0 38 113 3620 0 0 0 0 
100 0 0 7 114 3820 0 0 0 0 
101 0 0 6 116 3590 0 0 117 /**
 * Returns the slot number assigned to the indicated TypeHandle, or 0 if no
 * slot number has been assigned.
 */ 2 4 this 3 3821  11 type_handle 1 3820  
102 0 0 6 117 3590 0 0 0 0 
103 0 0 6 118 3590 0 0 135 /**
 * Returns the number of RenderAttrib slots that have been allocated.  This is
 * one more than the highest slot number in use.
 */ 1 4 this 3 3821  
104 0 0 7 119 3820 0 0 57 /**
 * Returns the TypeHandle associated with slot n.
 */ 2 4 this 3 3821  4 slot 1 3590  
105 0 0 6 120 3590 0 0 58 /**
 * Returns the sort number associated with slot n.
 */ 2 4 this 3 3821  4 slot 1 3590  
106 0 0 4 121 3816 0 0 58 /**
 * Changes the sort number associated with slot n.
 */ 3 4 this 3 3823  4 slot 1 3590  4 sort 1 3590  
107 0 0 7 122 3604 0 0 172 /**
 * Returns the default RenderAttrib object associated with slot n.  This is
 * the attrib that should be applied in the absence of any other attrib of
 * this type.
 */ 2 4 this 3 3821  4 slot 1 3590  
108 0 0 6 123 3590 0 0 66 /**
 * Returns the number of entries in the sorted_slots list.
 */ 1 4 this 3 3821  
109 0 0 6 124 3590 0 0 170 /**
 * Returns the nth slot in sorted order.  By traversing this list, you will
 * retrieve all the slot numbers in order according to their registered sort
 * value.
 */ 2 4 this 3 3821  1 n 1 3590  
110 0 0 6 125 3823 0 0 10 /**
 *
 */ 0 
111 0 0 7 128 3604 0 0 322 /**
 * Returns a new RenderAttrib object that represents the composition of this
 * attrib with the other attrib.  In most cases, this is the same as the other
 * attrib; a compose b produces b.  Some kinds of attributes, like a
 * TextureTransform, for instance, might produce a new result: a compose b
 * produces c.
 */ 2 4 this 3 3604  5 other 1 3604  
112 0 0 7 129 3604 0 0 583 /**
 * Returns a new RenderAttrib object that represents the composition of the
 * inverse of this attrib with the other attrib.  In most cases, this is the
 * same as the other attrib; !a compose b produces b.  Some kinds of
 * attributes, like a TextureTransform, for instance, might produce a new
 * result: !a compose b produces c.
 *
 * This is similar to compose() except that the source attrib is inverted
 * first.  This is used to compute the relative attribute for one node as
 * viewed from some other node, which is especially useful for transform-type
 * attributes.
 */ 2 4 this 3 3604  5 other 1 3604  
113 0 0 6 130 3597 0 0 951 /**
 * Intended to be overridden by derived RenderAttrib types to specify how two
 * consecutive RenderAttrib objects of the same type interact.
 *
 * This should return false if a RenderAttrib on a higher node will compose
 * into a RenderAttrib on a lower node that has a higher override value, or
 * true if the lower RenderAttrib will completely replace the state.
 *
 * The default behavior is false: normally, a RenderAttrib in the graph cannot
 * completely override a RenderAttrib above it, regardless of its override
 * value--instead, the two attribs are composed.  But for some kinds of
 * RenderAttribs, it is useful to allow this kind of override.
 *
 * This method only handles the one special case of a lower RenderAttrib with
 * a higher override value.  If the higher RenderAttrib has a higher override
 * value, it always completely overrides.  And if both RenderAttribs have the
 * same override value, they are always composed.
 */ 1 4 this 3 3604  
114 0 0 6 131 3590 0 0 368 /**
 * Provides an arbitrary ordering among all unique RenderAttribs, so we can
 * store the essentially different ones in a big set and throw away the rest.
 *
 * This method is not needed outside of the RenderAttrib class because all
 * equivalent RenderAttrib objects are guaranteed to share the same pointer;
 * thus, a pointer comparison is always sufficient.
 */ 2 4 this 3 3604  5 other 1 3604  
115 0 0 6 132 3794 0 0 55 /**
 * Returns a suitable hash value for phash_map.
 */ 1 4 this 3 3604  
116 0 0 7 133 3604 0 0 329 /**
 * Returns the pointer to the unique RenderAttrib in the cache that is
 * equivalent to this one.  This may be the same pointer as this object, or it
 * may be a different pointer; but it will be an equivalent object, and it
 * will be a shared pointer.  This may be called from time to time to improve
 * cache benefits.
 */ 1 4 this 3 3604  
117 0 0 4 134 3816 0 0 10 /**
 *
 */ 2 4 this 3 3604  3 out 1 3817  
118 0 0 4 135 3816 0 0 10 /**
 *
 */ 3 4 this 3 3604  3 out 1 3817  12 indent_level 1 3590  
119 0 0 6 136 3590 0 0 145 /**
 * Returns the total number of unique RenderAttrib objects allocated in the
 * world.  This will go up and down during normal operations.
 */ 0 
120 0 0 4 137 3816 0 0 170 /**
 * Lists all of the RenderAttribs in the cache to the output stream, one per
 * line.  This can be quite a lot of output if the cache is large, so be
 * prepared.
 */ 1 3 out 1 3817  
121 0 0 6 138 3590 0 0 155 /**
 * Performs a garbage-collection cycle.  This is called automatically from
 * RenderState::garbage_collect(); see that method for more information.
 */ 0 
122 0 0 6 139 3597 0 0 208 /**
 * Ensures that the cache is still stored in sorted order.  Returns true if
 * so, false if there is a problem (which implies someone has modified one of
 * the supposedly-const RenderAttrib objects).
 */ 0 
123 0 0 6 140 3590 0 0 0 1 4 this 3 3604  
124 0 0 7 145 3820 0 0 0 0 
125 0 0 23 148 3604 0 0 921 /**
 * Constructs a new RenderModeAttrib object that specifies whether to draw
 * polygons in the normal, filled mode, or wireframe mode, or in some other
 * yet-to-be-defined mode.
 *
 * The thickness parameter specifies the thickness to be used for wireframe
 * lines, as well as for ordinary linestrip lines; it also specifies the
 * diameter of points.  (Thick lines are presently only supported in OpenGL;
 * but thick points are supported on either platform.)
 *
 * If perspective is true, the point thickness represented is actually a width
 * in 3-d units, and the points should scale according to perspective.  When
 * it is false, the point thickness is actually a width in pixels, and points
 * are a uniform screen size regardless of distance from the camera.
 *
 * In M_filled_wireframe mode, you should also specify the wireframe_color,
 * indicating the flat color to assign to the overlayed wireframe.
 */ 4 4 mode 1 3594  9 thickness 5 3595  11 perspective 5 3597  15 wireframe_color 5 3824  
126 0 0 7 149 3604 0 0 145 /**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */ 0 
127 0 0 6 150 3594 0 0 35 /**
 * Returns the render mode.
 */ 1 4 this 3 3825  
128 0 0 6 151 3595 0 0 235 /**
 * Returns the line width or point thickness.  This is only relevant when
 * rendering points or lines, such as when the mode is M_wireframe or M_point
 * (or when rendering actual points or lines primitives in M_polygon mode).
 */ 1 4 this 3 3825  
129 0 0 6 152 3597 0 0 364 /**
 * Returns the perspective flag.  When this is true, the point thickness
 * represented by get_thickness() is actually a width in 3-d units, and the
 * points should scale according to perspective.  When it is false, the
 * default, the point thickness is actually a width in pixels, and points are
 * a uniform size regardless of distance from the camera.
 */ 1 4 this 3 3825  
130 0 0 6 153 3824 0 0 131 /**
 * Returns the color that is used in M_filled_wireframe mode to distinguish
 * the wireframe from the rest of the geometry.
 */ 1 4 this 3 3825  
131 0 0 6 154 3590 0 0 186 /**
 * Returns the union of the Geom::GeomRendering bits that will be required
 * once this RenderModeAttrib is applied to a geom which includes the
 * indicated geom_rendering bits.
 */ 2 4 this 3 3825  14 geom_rendering 1 3590  
132 0 0 6 166 3590 0 0 0 0 
133 0 0 7 168 3820 0 0 0 0 
134 0 0 7 171 3604 0 0 70 /**
 * Constructs a TexMatrixAttrib that applies no stages at all.
 */ 0 
135 0 0 23 171 3604 0 0 210 /**
 * Constructs a TexMatrixAttrib that applies the indicated matrix to the
 * default texture stage.  This interface is deprecated.
 *
 * @deprecated Use the constructor that takes a TextureStage instead.
 */ 1 3 mat 1 3800  
136 0 0 23 171 3604 0 0 107 /**
 * Constructs a TexMatrixAttrib that applies the indicated transform to the
 * named texture stage.
 */ 2 5 stage 1 3751  9 transform 1 3792  
137 0 0 7 172 3604 0 0 145 /**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */ 0 
138 0 0 7 173 3604 0 0 174 /**
 * Returns a new TexMatrixAttrib just like this one, with the indicated
 * transform for the given stage.  If this stage already exists, its transform
 * is replaced.
 */ 4 4 this 3 3827  5 stage 1 3751  9 transform 1 3792  8 override 5 3590  
139 0 0 7 174 3604 0 0 97 /**
 * Returns a new TexMatrixAttrib just like this one, with the indicated stage
 * removed.
 */ 2 4 this 3 3827  5 stage 1 3751  
140 0 0 6 175 3597 0 0 101 /**
 * Returns true if no stages are defined in the TexMatrixAttrib, false if at
 * least one is.
 */ 1 4 this 3 3827  
141 0 0 6 176 3597 0 0 182 /**
 * Returns true if there is a transform associated with the indicated stage,
 * or false otherwise (in which case get_transform(stage) will return the
 * identity transform).
 */ 2 4 this 3 3827  5 stage 1 3751  
142 0 0 6 177 3590 0 0 76 /**
 * Returns the number of stages that are represented by this attrib.
 */ 1 4 this 3 3827  
143 0 0 7 178 3751 0 0 118 /**
 * Returns the nth stage that is represented by this attrib.  The
 * TextureStages are in no particular order.
 */ 2 4 this 3 3827  1 n 1 3590  
144 0 0 6 180 3800 0 0 90 /**
 * Returns the transformation matrix associated with the default texture
 * stage.
 */ 1 4 this 3 3827  
145 0 0 6 180 3800 0 0 165 /**
 * Returns the transformation matrix associated with the indicated texture
 * stage, or identity matrix if nothing is associated with the indicated
 * stage.
 */ 2 4 this 3 3827  5 stage 1 3751  
146 0 0 7 181 3792 0 0 155 /**
 * Returns the transformation associated with the indicated texture stage, or
 * identity matrix if nothing is associated with the indicated stage.
 */ 2 4 this 3 3827  5 stage 1 3751  
147 0 0 6 182 3590 0 0 74 /**
 * Returns the override value associated with the indicated stage.
 */ 2 4 this 3 3827  5 stage 1 3751  
148 0 0 6 183 3590 0 0 185 /**
 * Returns the union of the Geom::GeomRendering bits that will be required
 * once this TexMatrixAttrib is applied to a geom which includes the indicated
 * geom_rendering bits.
 */ 2 4 this 3 3827  14 geom_rendering 1 3590  
149 0 0 6 184 3590 0 0 0 0 
150 0 0 7 186 3820 0 0 0 0 
151 0 0 6 188 3590 0 0 365 /**
 * Provides an arbitrary ordering among all unique RenderStates, so we can
 * store the essentially different ones in a big set and throw away the rest.
 *
 * This method is not needed outside of the RenderState class because all
 * equivalent RenderState objects are guaranteed to share the same pointer;
 * thus, a pointer comparison is always sufficient.
 */ 2 4 this 3 3829  5 other 1 3829  
152 0 0 6 189 3590 0 0 333 /**
 * Returns -1, 0, or 1 according to the relative sorting of these two
 * RenderStates, with regards to rendering performance, so that "heavier"
 * RenderAttribs (as defined by RenderAttribRegistry::get_slot_sort()) are
 * more likely to be grouped together.  This is not related to the sorting
 * order defined by compare_to.
 */ 2 4 this 3 3829  5 other 1 3829  
153 0 0 6 190 3590 0 0 191 /**
 * This version of compare_to takes a slot mask that indicates which
 * attributes to include in the comparison.  Unlike compare_to, this method
 * compares the attributes by pointer.
 */ 3 4 this 3 3829  5 other 1 3829  12 compare_mask 1 3831  
154 0 0 6 191 3794 0 0 55 /**
 * Returns a suitable hash value for phash_map.
 */ 1 4 this 3 3829  
155 0 0 6 192 3597 0 0 63 /**
 * Returns true if the state is empty, false otherwise.
 */ 1 4 this 3 3829  
156 0 0 6 193 3597 0 0 121 /**
 * Returns true if any of the RenderAttribs in this state request a
 * cull_callback(), false if none of them do.
 */ 1 4 this 3 3829  
157 0 0 6 194 3597 0 0 183 /**
 * Calls cull_callback() on each attrib.  If any attrib returns false,
 * interrupts the list and returns false immediately; otherwise, completes the
 * list and returns true.
 */ 3 4 this 3 3829  4 trav 1 3834  4 data 1 3835  
158 0 0 7 195 3829 0 0 56 /**
 * Returns a RenderState with no attributes set.
 */ 0 
159 0 0 23 196 3829 0 0 58 /**
 * Returns a RenderState with five attributes set.
 */ 6 7 attrib1 1 3604  7 attrib2 1 3604  7 attrib3 1 3604  7 attrib4 1 3604  7 attrib5 1 3604  8 override 5 3590  
160 0 0 23 196 3829 0 0 58 /**
 * Returns a RenderState with four attributes set.
 */ 5 7 attrib1 1 3604  7 attrib2 1 3604  7 attrib3 1 3604  7 attrib4 1 3604  8 override 5 3590  
161 0 0 23 196 3829 0 0 59 /**
 * Returns a RenderState with three attributes set.
 */ 4 7 attrib1 1 3604  7 attrib2 1 3604  7 attrib3 1 3604  8 override 5 3590  
162 0 0 23 196 3829 0 0 57 /**
 * Returns a RenderState with two attributes set.
 */ 3 7 attrib1 1 3604  7 attrib2 1 3604  8 override 5 3590  
163 0 0 23 196 3829 0 0 56 /**
 * Returns a RenderState with one attribute set.
 */ 2 6 attrib 1 3604  8 override 5 3590  
164 0 0 7 197 3829 0 0 399 /**
 * Returns a new RenderState object that represents the composition of this
 * state with the other state.
 *
 * The result of this operation is cached, and will be retained as long as
 * both this RenderState object and the other RenderState object continue to
 * exist.  Should one of them destruct, the cached entry will be removed, and
 * its pointer will be allowed to destruct as well.
 */ 2 4 this 3 3829  5 other 1 3829  
165 0 0 7 198 3829 0 0 265 /**
 * Returns a new RenderState object that represents the composition of this
 * state's inverse with the other state.
 *
 * This is similar to compose(), but is particularly useful for computing the
 * relative state of a node as viewed from some other node.
 */ 2 4 this 3 3829  5 other 1 3829  
166 0 0 7 199 3829 0 0 231 /**
 * Returns a new RenderState object that represents the same as the source
 * state, with the new RenderAttrib added.  If there is already a RenderAttrib
 * with the same type, it is replaced (unless the override is lower).
 */ 3 4 this 3 3829  6 attrib 1 3604  8 override 5 3590  
167 0 0 7 200 3829 0 0 249 /**
 * Returns a new RenderState object that represents the same as the source
 * state, with the new RenderAttrib added.  If there is already a RenderAttrib
 * with the same type, it is replaced unconditionally.  The override is not
 * changed.
 */ 2 4 this 3 3829  6 attrib 1 3604  
168 0 0 7 200 3829 0 0 267 /**
 * Returns a new RenderState object that represents the same as the source
 * state, with the new RenderAttrib added.  If there is already a RenderAttrib
 * with the same type, it is replaced unconditionally.  The override is also
 * replaced unconditionally.
 */ 3 4 this 3 3829  6 attrib 1 3604  8 override 1 3590  
169 0 0 7 201 3829 0 0 133 /**
 * Returns a new RenderState object that represents the same as the source
 * state, with the indicated RenderAttrib removed.
 */ 2 4 this 3 3829  4 type 1 3820  
170 0 0 7 201 3829 0 0 133 /**
 * Returns a new RenderState object that represents the same as the source
 * state, with the indicated RenderAttrib removed.
 */ 2 4 this 3 3829  4 slot 1 3590  
171 0 0 7 202 3829 0 0 261 /**
 * Returns a new RenderState object that represents the same as the source
 * state, with all attributes' override values incremented (or decremented, if
 * negative) by the indicated amount.  If the override would drop below zero,
 * it is set to zero.
 */ 2 4 this 3 3829  10 adjustment 1 3590  
172 0 0 6 203 3597 0 0 90 /**
 * Returns true if an attrib of the indicated type is present, false
 * otherwise.
 */ 2 4 this 3 3829  4 type 1 3820  
173 0 0 6 203 3597 0 0 90 /**
 * Returns true if an attrib of the indicated type is present, false
 * otherwise.
 */ 2 4 this 3 3829  4 slot 1 3590  
174 0 0 7 204 3604 0 0 127 /**
 * Looks for a RenderAttrib of the indicated type in the state, and returns it
 * if it is found, or NULL if it is not.
 */ 2 4 this 3 3829  4 type 1 3820  
175 0 0 7 204 3604 0 0 124 /**
 * Returns the RenderAttrib with the indicated slot index, or NULL if there is
 * no such RenderAttrib in the state.
 */ 2 4 this 3 3829  4 slot 1 3590  
176 0 0 7 205 3604 0 0 152 /**
 * Returns the RenderAttrib with the indicated slot index, or the default
 * attrib for that slot if there is no such RenderAttrib in the state.
 */ 2 4 this 3 3829  4 slot 1 3590  
177 0 0 6 206 3590 0 0 140 /**
 * Looks for a RenderAttrib of the indicated type in the state, and returns
 * its override value if it is found, or 0 if it is not.
 */ 2 4 this 3 3829  4 type 1 3820  
178 0 0 6 206 3590 0 0 140 /**
 * Looks for a RenderAttrib of the indicated type in the state, and returns
 * its override value if it is found, or 0 if it is not.
 */ 2 4 this 3 3829  4 slot 1 3590  
179 0 0 7 210 3829 0 0 328 /**
 * Returns the pointer to the unique RenderState in the cache that is
 * equivalent to this one.  This may be the same pointer as this object, or it
 * may be a different pointer; but it will be an equivalent object, and it
 * will be a shared pointer.  This may be called from time to time to improve
 * cache benefits.
 */ 1 4 this 3 3829  
180 0 0 4 211 3816 0 0 64 /**
 * Overrides this method to update PStats appropriately.
 */ 1 4 this 3 3829  
181 0 0 6 212 3597 0 0 64 /**
 * Overrides this method to update PStats appropriately.
 */ 1 4 this 3 3829  
182 0 0 4 213 3816 0 0 64 /**
 * Overrides this method to update PStats appropriately.
 */ 1 4 this 3 3829  
183 0 0 6 214 3597 0 0 64 /**
 * Overrides this method to update PStats appropriately.
 */ 1 4 this 3 3829  
184 0 0 6 215 3794 0 0 272 /**
 * Returns the number of entries in the composition cache for this
 * RenderState.  This is the number of other RenderStates whose composition
 * with this one has been cached.  This number is not useful for any practical
 * reason other than performance analysis.
 */ 1 4 this 3 3829  
185 0 0 6 216 3794 0 0 253 /**
 * Returns the number of entries in the invert_composition cache for this
 * RenderState.  This is similar to the composition cache, but it records
 * cache entries for the invert_compose() operation.  See
 * get_composition_cache_num_entries().
 */ 1 4 this 3 3829  
186 0 0 6 217 3794 0 0 330 /**
 * Returns the number of slots in the composition cache for this RenderState.
 * You may use this as an upper bound when walking through all of the
 * composition cache results via get_composition_cache_source() or result().
 *
 * This has no practical value other than for examining the cache for
 * performance analysis.
 */ 1 4 this 3 3829  
187 0 0 7 218 3829 0 0 298 /**
 * Returns the source RenderState of the nth element in the composition cache.
 * Returns NULL if there doesn't happen to be an entry in the nth element.
 * See get_composition_cache_result().
 *
 * This has no practical value other than for examining the cache for
 * performance analysis.
 */ 2 4 this 3 3829  1 n 1 3794  
188 0 0 7 219 3829 0 0 366 /**
 * Returns the result RenderState of the nth element in the composition cache.
 * Returns NULL if there doesn't happen to be an entry in the nth element.
 *
 * In general, a->compose(a->get_composition_cache_source(n)) ==
 * a->get_composition_cache_result(n).
 *
 * This has no practical value other than for examining the cache for
 * performance analysis.
 */ 2 4 this 3 3829  1 n 1 3794  
189 0 0 6 220 3794 0 0 340 /**
 * Returns the number of slots in the composition cache for this RenderState.
 * You may use this as an upper bound when walking through all of the
 * composition cache results via get_invert_composition_cache_source() or
 * result().
 *
 * This has no practical value other than for examining the cache for
 * performance analysis.
 */ 1 4 this 3 3829  
190 0 0 7 221 3829 0 0 314 /**
 * Returns the source RenderState of the nth element in the invert composition
 * cache.  Returns NULL if there doesn't happen to be an entry in the nth
 * element.  See get_invert_composition_cache_result().
 *
 * This has no practical value other than for examining the cache for
 * performance analysis.
 */ 2 4 this 3 3829  1 n 1 3794  
191 0 0 7 222 3829 0 0 398 /**
 * Returns the result RenderState of the nth element in the invert composition
 * cache.  Returns NULL if there doesn't happen to be an entry in the nth
 * element.
 *
 * In general, a->invert_compose(a->get_invert_composition_cache_source(n)) ==
 * a->get_invert_composition_cache_result(n).
 *
 * This has no practical value other than for examining the cache for
 * performance analysis.
 */ 2 4 this 3 3829  1 n 1 3794  
192 0 0 38 223 3620 0 0 0 1 4 this 3 3829  
193 0 0 38 224 3620 0 0 0 1 4 this 3 3829  
194 0 0 4 225 3816 0 0 10 /**
 *
 */ 2 4 this 3 3829  3 out 1 3817  
195 0 0 4 226 3816 0 0 10 /**
 *
 */ 3 4 this 3 3829  3 out 1 3817  12 indent_level 1 3590  
196 0 0 6 227 3590 0 0 297 /**
 * Returns the maximum priority number (sometimes called override) that may be
 * set on any node.  This may or may not be enforced, but the scene graph code
 * assumes that no priority numbers will be larger than this, and some effects
 * may not work properly if you use a larger number.
 */ 0 
197 0 0 6 228 3590 0 0 144 /**
 * Returns the total number of unique RenderState objects allocated in the
 * world.  This will go up and down during normal operations.
 */ 0 
198 0 0 6 229 3590 0 0 596 /**
 * Returns the total number of RenderState objects that have been allocated
 * but have no references outside of the internal RenderState cache.
 *
 * A nonzero return value is not necessarily indicative of leaked references;
 * it is normal for two RenderState objects, both of which have references
 * held outside the cache, to have to result of their composition stored
 * within the cache.  This result will be retained within the cache until one
 * of the base RenderStates is released.
 *
 * Use list_cycles() to get an idea of the number of actual "leaked"
 * RenderState objects.
 */ 0 
199 0 0 6 230 3590 0 0 593 /**
 * Empties the cache of composed RenderStates.  This makes every RenderState
 * forget what results when it is composed with other RenderStates.
 *
 * This will eliminate any RenderState objects that have been allocated but
 * have no references outside of the internal RenderState map.  It will not
 * eliminate RenderState objects that are still in use.
 *
 * Nowadays, this method should not be necessary, as reference-count cycles in
 * the composition cache should be automatically detected and broken.
 *
 * The return value is the number of RenderStates freed by this operation.
 */ 0 
200 0 0 4 231 3816 0 0 146 /**
 * Completely empties the cache of state + gsg -> munger, for all states and
 * all gsg's.  Normally there is no need to empty this cache.
 */ 0 
201 0 0 6 232 3590 0 0 366 /**
 * Performs a garbage-collection cycle.  This must be called periodically if
 * garbage-collect-states is true to ensure that RenderStates get cleaned up
 * appropriately.  It does no harm to call it even if this variable is not
 * true, but there is probably no advantage in that case.
 *
 * This automatically calls RenderAttrib::garbage_collect() as well.
 */ 0 
202 0 0 4 233 3816 0 0 565 /**
 * Detects all of the reference-count cycles in the cache and reports them to
 * standard output.
 *
 * These cycles may be inadvertently created when state compositions cycle
 * back to a starting point.  Nowadays, these cycles should be automatically
 * detected and broken, so this method should never list any cycles unless
 * there is a bug in that detection logic.
 *
 * The cycles listed here are not leaks in the strictest sense of the word,
 * since they can be reclaimed by a call to clear_cache(); but they will not
 * be reclaimed automatically.
 */ 1 3 out 1 3817  
203 0 0 4 234 3816 0 0 169 /**
 * Lists all of the RenderStates in the cache to the output stream, one per
 * line.  This can be quite a lot of output if the cache is large, so be
 * prepared.
 */ 1 3 out 1 3817  
204 0 0 6 235 3597 0 0 279 /**
 * Ensures that the cache is still stored in sorted order, and that none of
 * the cache elements have been inadvertently deleted.  Returns true if so,
 * false if there is a problem (which implies someone has modified one of the
 * supposedly-const RenderState objects).
 */ 0 
205 0 0 38 236 3620 0 0 0 0 
206 0 0 38 237 3620 0 0 0 0 
207 0 0 6 238 3590 0 0 160 /**
 * Returns the draw order indicated by the CullBinAttrib, if any, associated
 * by this state (or 0 if there is no CullBinAttrib).  See get_bin_index().
 */ 1 4 this 3 3829  
208 0 0 6 239 3590 0 0 246 /**
 * Returns the bin index indicated by the CullBinAttrib, if any, associated by
 * this state (or the default bin index if there is no CullBinAttrib).  This
 * function is provided as an optimization for determining this at render
 * time.
 */ 1 4 this 3 3829  
209 0 0 6 240 3590 0 0 181 /**
 * Returns the union of the Geom::GeomRendering bits that will be required
 * once this RenderState is applied to a geom which includes the indicated
 * geom_rendering bits.
 */ 2 4 this 3 3829  14 geom_rendering 1 3590  
210 0 0 7 241 3820 0 0 0 0 
211 0 0 23 243 3604 0 0 51 /**
 * Constructs a new AlphaTestAttrib object.
 */ 2 4 mode 1 3591  15 reference_alpha 1 3595  
212 0 0 7 244 3604 0 0 145 /**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */ 0 
213 0 0 6 245 3595 0 0 45 /**
 * Returns the alpha reference value.
 */ 1 4 this 3 3837  
214 0 0 6 246 3591 0 0 40 /**
 * Returns the alpha write mode.
 */ 1 4 this 3 3837  
215 0 0 6 249 3590 0 0 0 0 
216 0 0 7 251 3820 0 0 0 0 
217 0 0 23 255 3604 0 0 1313 /**
 * Constructs a new AntialiasAttrib object.
 *
 * The mode should be either M_none, M_auto, or a union of any or all of
 * M_point, M_line, M_polygon, and M_multisample.  Also, in addition to the
 * above choices, it may include either of M_better of M_faster to specify a
 * performance/quality tradeoff hint.
 *
 * If M_none is specified, no antialiasing is performed.
 *
 * If M_multisample is specified, it means to use the special framebuffer
 * multisample bits for antialiasing, if it is available.  If so, the M_point,
 * M_line, and M_polygon modes are ignored.  This advanced antialiasing mode
 * is only available on certain graphics hardware.  If it is not available,
 * the M_multisample bit is ignored (and the other modes may be used instead,
 * if specified).
 *
 * M_point, M_line, and/or M_polygon specify per-primitive smoothing.  When
 * enabled, M_point and M_line may force transparency on.  M_polygon requires
 * a frame buffer that includes an alpha channel, and it works best if the
 * primitives are sorted front-to-back.
 *
 * If M_auto is specified, M_multisample is selected if it is available,
 * otherwise M_polygon is selected, unless drawing lines or points, in which
 * case M_line or M_point is selected (these two generally produce better
 * results than M_multisample)
 */ 1 4 mode 1 3609  
218 0 0 7 256 3604 0 0 145 /**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */ 0 
219 0 0 6 257 3609 0 0 48 /**
 * Returns the specified antialias mode.
 */ 1 4 this 3 3839  
220 0 0 6 258 3609 0 0 200 /**
 * Returns the specified antialias mode, with the quality bits masked out.
 * This therefore indicates only the requested type of antialiasing: M_none,
 * M_auto, or some specific combination.
 */ 1 4 this 3 3839  
221 0 0 6 259 3609 0 0 211 /**
 * Returns the specified antialias mode, with the type bits masked out.  This
 * therefore indicates only the requested quality settings: one of M_faster,
 * M_better, M_dont_care, or zero (unspecified).
 */ 1 4 this 3 3839  
222 0 0 6 264 3590 0 0 0 0 
223 0 0 7 266 3820 0 0 0 0 
224 0 0 6 269 3590 0 0 368 /**
 * Provides an arbitrary ordering among all unique RenderEffects, so we can
 * store the essentially different ones in a big set and throw away the rest.
 *
 * This method is not needed outside of the RenderEffect class because all
 * equivalent RenderEffect objects are guaranteed to share the same pointer;
 * thus, a pointer comparison is always sufficient.
 */ 2 4 this 3 3841  5 other 1 3841  
225 0 0 4 270 3816 0 0 10 /**
 *
 */ 2 4 this 3 3841  3 out 1 3817  
226 0 0 4 271 3816 0 0 10 /**
 *
 */ 3 4 this 3 3841  3 out 1 3817  12 indent_level 1 3590  
227 0 0 6 272 3590 0 0 145 /**
 * Returns the total number of unique RenderEffect objects allocated in the
 * world.  This will go up and down during normal operations.
 */ 0 
228 0 0 4 273 3816 0 0 170 /**
 * Lists all of the RenderEffects in the cache to the output stream, one per
 * line.  This can be quite a lot of output if the cache is large, so be
 * prepared.
 */ 1 3 out 1 3817  
229 0 0 6 274 3597 0 0 208 /**
 * Ensures that the cache is still stored in sorted order.  Returns true if
 * so, false if there is a problem (which implies someone has modified one of
 * the supposedly-const RenderEffect objects).
 */ 0 
230 0 0 7 275 3820 0 0 0 0 
231 0 0 6 277 3597 0 0 0 2 4 this 3 3843  5 other 1 3843  
232 0 0 6 278 3597 0 0 63 /**
 * Returns true if the state is empty, false otherwise.
 */ 1 4 this 3 3843  
233 0 0 6 279 3794 0 0 151 /**
 * Returns the number of separate effects indicated in the state.
 * @deprecated in Python, use len(effects) instead, or effects.size() in C++.
 */ 1 4 this 3 3843  
234 0 0 7 280 3841 0 0 127 /**
 * Looks for a RenderEffect of the indicated type in the state, and returns it
 * if it is found, or NULL if it is not.
 */ 2 4 this 3 3843  4 type 1 3820  
235 0 0 7 280 3841 0 0 47 /**
 * Returns the nth effect in the state.
 */ 2 4 this 3 3843  1 n 1 3794  
236 0 0 6 281 3794 0 0 73 /**
 * Returns the number of separate effects indicated in the state.
 */ 1 4 this 3 3843  
237 0 0 7 282 3841 0 0 63 /**
 * Returns the effect in the state with the given type.
 */ 2 4 this 3 3843  4 type 1 3820  
238 0 0 7 282 3841 0 0 47 /**
 * Returns the nth effect in the state.
 */ 2 4 this 3 3843  1 n 1 3794  
239 0 0 6 283 3590 0 0 132 /**
 * Searches for an effect with the indicated type in the state, and returns
 * its index if it is found, or -1 if it is not.
 */ 2 4 this 3 3843  4 type 1 3820  
240 0 0 7 284 3843 0 0 55 /**
 * Returns a RenderEffects with no effects set.
 */ 0 
241 0 0 23 285 3843 0 0 55 /**
 * Returns a RenderEffects with one effect set.
 */ 1 6 effect 1 3841  
242 0 0 23 285 3843 0 0 56 /**
 * Returns a RenderEffects with two effects set.
 */ 2 7 effect1 1 3841  7 effect2 1 3841  
243 0 0 23 285 3843 0 0 58 /**
 * Returns a RenderEffects with three effects set.
 */ 3 7 effect1 1 3841  7 effect2 1 3841  7 effect3 1 3841  
244 0 0 23 285 3843 0 0 57 /**
 * Returns a RenderEffects with four effects set.
 */ 4 7 effect1 1 3841  7 effect2 1 3841  7 effect3 1 3841  7 effect4 1 3841  
245 0 0 7 286 3843 0 0 202 /**
 * Returns a new RenderEffects object that represents the same as the source
 * state, with the new RenderEffect added.  If there is already a RenderEffect
 * with the same type, it is replaced.
 */ 2 4 this 3 3843  6 effect 1 3841  
246 0 0 7 287 3843 0 0 135 /**
 * Returns a new RenderEffects object that represents the same as the source
 * state, with the indicated RenderEffect removed.
 */ 2 4 this 3 3843  4 type 1 3820  
247 0 0 4 288 3816 0 0 10 /**
 *
 */ 2 4 this 3 3843  3 out 1 3817  
248 0 0 4 289 3816 0 0 10 /**
 *
 */ 3 4 this 3 3843  3 out 1 3817  12 indent_level 1 3590  
249 0 0 6 290 3590 0 0 146 /**
 * Returns the total number of unique RenderEffects objects allocated in the
 * world.  This will go up and down during normal operations.
 */ 0 
250 0 0 4 291 3816 0 0 170 /**
 * Lists all of the RenderEffects in the cache to the output stream, one per
 * line.  This can be quite a lot of output if the cache is large, so be
 * prepared.
 */ 1 3 out 1 3817  
251 0 0 6 292 3597 0 0 209 /**
 * Ensures that the cache is still stored in sorted order.  Returns true if
 * so, false if there is a problem (which implies someone has modified one of
 * the supposedly-const RenderEffects objects).
 */ 0 
252 0 0 7 293 3820 0 0 0 0 
253 0 0 7 303 3647 2131 0 10 /**
 *
 */ 1 4 name 1 3845  
254 0 0 7 305 3647 2131 0 475 /**
 * Collapses this PandaNode with the other PandaNode, if possible, and returns
 * a pointer to the combined PandaNode, or NULL if the two PandaNodes cannot
 * safely be combined.
 *
 * The return value may be this, other, or a new PandaNode altogether.
 *
 * This function is called from GraphReducer::flatten(), and need not deal
 * with children; its job is just to decide whether to collapse the two
 * PandaNodes and what the collapsed PandaNode should look like.
 */ 2 4 this 3 3647  5 other 1 3647  
255 0 0 7 306 3647 2131 0 234 /**
 * Returns a newly-allocated PandaNode that is a shallow copy of this one.  It
 * will be a different pointer, but its internal data may or may not be shared
 * with that of the original PandaNode.  No children will be copied.
 */ 1 4 this 3 3846  
256 0 0 7 307 3647 2131 0 264 /**
 * Allocates and returns a complete copy of this PandaNode and the entire
 * scene graph rooted at this PandaNode.  Some data may still be shared from
 * the original (e.g.  vertex index tables), but nothing that will impede
 * normal use of the PandaNode.
 */ 2 4 this 3 3846  14 current_thread 5 3848  
257 0 0 39 308 3647 2131 0 0 1 4 this 3 3846  
258 0 0 38 309 3620 0 0 0 2 4 this 3 3846  4 memo 1 3620  
259 0 0 6 310 3590 0 0 264 /**
 * Returns the number of parent nodes this node has.  If this number is
 * greater than 1, the node has been multiply instanced.  The order of the
 * parent nodes is not meaningful and is not related to the order in which the
 * node was instanced to them.
 */ 2 4 this 3 3846  14 current_thread 5 3848  
260 0 0 7 311 3647 2131 0 219 /**
 * Returns the nth parent node of this node.  See get_num_parents().  Also see
 * get_parents(), if your intention is to iterate through the complete list of
 * parents; get_parents() is preferable in this case.
 */ 3 4 this 3 3846  1 n 1 3590  14 current_thread 5 3848  
261 0 0 6 312 3590 0 0 100 /**
 * Returns the index of the indicated parent node, if it is a parent, or -1 if
 * it is not.
 */ 3 4 this 3 3846  4 node 1 3647  14 current_thread 5 3848  
262 0 0 6 314 3590 0 0 228 /**
 * Returns the number of child nodes this node has.  The order of the child
 * nodes *is* meaningful and is based on the sort number that was passed to
 * add_child(), and also on the order in which the nodes were added.
 */ 2 4 this 3 3846  14 current_thread 5 3848  
263 0 0 7 315 3647 2131 0 222 /**
 * Returns the nth child node of this node.  See get_num_children().  Also see
 * get_children(), if your intention is to iterate through the complete list
 * of children; get_children() is preferable in this case.
 */ 3 4 this 3 3846  1 n 1 3590  14 current_thread 5 3848  
264 0 0 6 316 3590 0 0 150 /**
 * Returns the sort index of the nth child node of this node (that is, the
 * number that was passed to add_child()).  See get_num_children().
 */ 3 4 this 3 3846  1 n 1 3590  14 current_thread 5 3848  
265 0 0 6 317 3590 0 0 98 /**
 * Returns the index of the indicated child node, if it is a child, or -1 if
 * it is not.
 */ 3 4 this 3 3846  4 node 1 3647  14 current_thread 5 3848  
266 0 0 6 319 3590 0 0 63 /**
 * Returns the number of nodes at and below this level.
 */ 1 4 this 3 3846  
267 0 0 4 320 3816 0 0 285 /**
 * Adds a new child to the node.  The child is added in the relative position
 * indicated by sort; if all children have the same sort index, the child is
 * added at the end.
 *
 * If the same child is added to a node more than once, the previous instance
 * is first removed.
 */ 4 4 this 3 3647  10 child_node 1 3647  4 sort 5 3590  14 current_thread 5 3848  
268 0 0 6 321 3597 0 0 218 /**
 * Removes the indicated child from the node.  Returns true if the child was
 * removed, false if it was not already a child of the node.  This will also
 * successfully remove the child if it had been stashed.
 */ 3 4 this 3 3647  10 child_node 1 3647  14 current_thread 5 3848  
269 0 0 4 321 3816 0 0 47 /**
 * Removes the nth child from the node.
 */ 3 4 this 3 3647  11 child_index 1 3590  14 current_thread 5 3848  
270 0 0 6 322 3597 0 0 241 /**
 * Searches for the orig_child node in the node's list of children, and
 * replaces it with the new_child instead.  Returns true if the replacement is
 * made, or false if the node is not a child or if there is some other
 * problem.
 */ 4 4 this 3 3647  10 orig_child 1 3647  9 new_child 1 3647  14 current_thread 5 3848  
271 0 0 6 323 3597 0 0 560 /**
 * Stashes the indicated child node.  This removes the child from the list of
 * active children and puts it on a special list of stashed children.  This
 * child node no longer contributes to the bounding volume of the PandaNode,
 * and is not visited in normal traversals.  It is invisible and uncollidable.
 * The child may later be restored by calling unstash_child().
 *
 * This function returns true if the child node was successfully stashed, or
 * false if it was not a child of the node in the first place (e.g.  it was
 * previously stashed).
 */ 3 4 this 3 3647  10 child_node 1 3647  14 current_thread 5 3848  
272 0 0 4 323 3816 0 0 456 /**
 * Stashes the indicated child node.  This removes the child from the list of
 * active children and puts it on a special list of stashed children.  This
 * child node no longer contributes to the bounding volume of the PandaNode,
 * and is not visited in normal traversals.  It is invisible and uncollidable.
 * The child may later be restored by calling unstash_child().
 *
 * This can only be called from the top pipeline stage (i.e.  from App).
 */ 3 4 this 3 3647  11 child_index 1 3590  14 current_thread 5 3848  
273 0 0 6 324 3597 0 0 524 /**
 * Returns the indicated stashed node to normal child status.  This removes
 * the child from the list of stashed children and puts it on the normal list
 * of active children.  This child node once again contributes to the bounding
 * volume of the PandaNode, and will be visited in normal traversals.  It is
 * visible and collidable.
 *
 * This function returns true if the child node was successfully stashed, or
 * false if it was not a child of the node in the first place (e.g.  it was
 * previously stashed).
 */ 3 4 this 3 3647  10 child_node 1 3647  14 current_thread 5 3848  
274 0 0 4 324 3816 0 0 420 /**
 * Returns the indicated stashed node to normal child status.  This removes
 * the child from the list of stashed children and puts it on the normal list
 * of active children.  This child node once again contributes to the bounding
 * volume of the PandaNode, and will be visited in normal traversals.  It is
 * visible and collidable.
 *
 * This can only be called from the top pipeline stage (i.e.  from App).
 */ 3 4 this 3 3647  13 stashed_index 1 3590  14 current_thread 5 3848  
275 0 0 6 325 3590 0 0 174 /**
 * Returns the number of stashed nodes this node has.  These are former
 * children of the node that have been moved to the special stashed list via
 * stash_child().
 */ 2 4 this 3 3846  14 current_thread 5 3848  
276 0 0 7 326 3850 2250 0 624 /**
 * Returns an object that can be used to walk through the list of children of
 * the node.  When you intend to visit multiple children, using this is
 * slightly faster than calling get_stashed() directly on the PandaNode, since
 * this object avoids reopening the PipelineCycler each time.
 *
 * This object also protects you from self-modifying loops (e.g.  adding or
 * removing children during traversal), since a virtual copy of the children
 * is made ahead of time.  The virtual copy is fast--it is a form of copy-on-
 * write, so the list is not actually copied unless it is modified during the
 * traversal.
 */ 2 4 this 3 3846  14 current_thread 5 3848  
277 0 0 7 326 3647 2131 0 230 /**
 * Returns the nth stashed child of this node.  See get_num_stashed().  Also
 * see get_stashed(), if your intention is to iterate through the complete
 * list of stashed children; get_stashed() is preferable in this case.
 */ 3 4 this 3 3846  1 n 1 3590  14 current_thread 5 3848  
278 0 0 6 327 3590 0 0 151 /**
 * Returns the sort index of the nth stashed node of this node (that is, the
 * number that was passed to add_child()).  See get_num_stashed().
 */ 3 4 this 3 3846  1 n 1 3590  14 current_thread 5 3848  
279 0 0 6 328 3590 0 0 108 /**
 * Returns the index of the indicated stashed node, if it is a stashed child,
 * or -1 if it is not.
 */ 3 4 this 3 3846  4 node 1 3647  14 current_thread 5 3848  
280 0 0 4 330 3816 0 0 361 /**
 * Adds a new child to the node, directly as a stashed child.  The child is
 * not added in the normal sense, but will be revealed if unstash_child() is
 * called on it later.
 *
 * If the same child is added to a node more than once, the previous instance
 * is first removed.
 *
 * This can only be called from the top pipeline stage (i.e.  from App).
 */ 4 4 this 3 3647  10 child_node 1 3647  4 sort 5 3590  14 current_thread 5 3848  
281 0 0 4 331 3816 0 0 55 /**
 * Removes the nth stashed child from the node.
 */ 3 4 this 3 3647  11 child_index 1 3590  14 current_thread 5 3848  
282 0 0 4 332 3816 0 0 162 /**
 * Removes all the children from the node at once, including stashed children.
 *
 * This can only be called from the top pipeline stage (i.e.  from App).
 */ 2 4 this 3 3647  14 current_thread 5 3848  
283 0 0 4 333 3816 0 0 177 /**
 * Moves all the children from the other node onto this node.
 *
 * Any NodePaths to child nodes of the other node are truncated, rather than
 * moved to the new parent.
 */ 3 4 this 3 3647  5 other 1 3647  14 current_thread 5 3848  
284 0 0 4 334 3816 0 0 102 /**
 * Makes another instance of all the children of the other node, copying them
 * to this node.
 */ 3 4 this 3 3647  5 other 1 3647  14 current_thread 5 3848  
285 0 0 4 335 3816 0 0 220 /**
 * Adds the indicated render attribute to the scene graph on this node.  This
 * attribute will now apply to this node and everything below.  If there was
 * already an attribute of the same type, it is replaced.
 */ 3 4 this 3 3647  6 attrib 1 3604  8 override 5 3590  
286 0 0 7 336 3604 0 0 270 /**
 * Returns the render attribute of the indicated type, if it is defined on the
 * node, or NULL if it is not.  This checks only what is set on this
 * particular node level, and has nothing to do with what render attributes
 * may be inherited from parent nodes.
 */ 2 4 this 3 3846  4 type 1 3820  
287 0 0 7 336 3604 0 0 270 /**
 * Returns the render attribute of the indicated type, if it is defined on the
 * node, or NULL if it is not.  This checks only what is set on this
 * particular node level, and has nothing to do with what render attributes
 * may be inherited from parent nodes.
 */ 2 4 this 3 3846  4 slot 1 3590  
288 0 0 6 337 3597 0 0 127 /**
 * Returns true if there is a render attribute of the indicated type defined
 * on this node, or false if there is not.
 */ 2 4 this 3 3846  4 type 1 3820  
289 0 0 6 337 3597 0 0 127 /**
 * Returns true if there is a render attribute of the indicated type defined
 * on this node, or false if there is not.
 */ 2 4 this 3 3846  4 slot 1 3590  
290 0 0 4 338 3816 0 0 194 /**
 * Removes the render attribute of the given type from this node.  This node,
 * and the subgraph below, will now inherit the indicated render attribute
 * from the nodes above this one.
 */ 2 4 this 3 3647  4 type 1 3820  
291 0 0 4 338 3816 0 0 194 /**
 * Removes the render attribute of the given type from this node.  This node,
 * and the subgraph below, will now inherit the indicated render attribute
 * from the nodes above this one.
 */ 2 4 this 3 3647  4 slot 1 3590  
292 0 0 4 339 3816 0 0 145 /**
 * Adds the indicated render effect to the scene graph on this node.  If there
 * was already an effect of the same type, it is replaced.
 */ 2 4 this 3 3647  6 effect 1 3841  
293 0 0 7 340 3841 0 0 114 /**
 * Returns the render effect of the indicated type, if it is defined on the
 * node, or NULL if it is not.
 */ 2 4 this 3 3846  4 type 1 3820  
294 0 0 6 341 3597 0 0 124 /**
 * Returns true if there is a render effect of the indicated type defined on
 * this node, or false if there is not.
 */ 2 4 this 3 3846  4 type 1 3820  
295 0 0 4 342 3816 0 0 70 /**
 * Removes the render effect of the given type from this node.
 */ 2 4 this 3 3647  4 type 1 3820  
296 0 0 4 343 3816 0 0 337 /**
 * Sets the complete RenderState that will be applied to all nodes at this
 * level and below.  (The actual state that will be applied to lower nodes is
 * based on the composition of RenderStates from above this node as well).
 * This completely replaces whatever has been set on this node via repeated
 * calls to set_attrib().
 */ 3 4 this 3 3647  5 state 1 3829  14 current_thread 5 3848  
297 0 0 7 344 3829 0 0 265 /**
 * Returns the complete RenderState that will be applied to all nodes at this
 * level and below, as set on this node.  This returns only the RenderState
 * set on this particular node, and has nothing to do with state that might be
 * inherited from above.
 */ 2 4 this 3 3846  14 current_thread 5 3848  
298 0 0 4 345 3816 0 0 183 /**
 * Resets this node to leave the render state alone.  Nodes at this level and
 * below will once again inherit their render state unchanged from the nodes
 * above this level.
 */ 2 4 this 3 3647  14 current_thread 5 3848  
299 0 0 4 348 3816 0 0 177 /**
 * Sets the complete RenderEffects that will be applied this node.  This
 * completely replaces whatever has been set on this node via repeated calls
 * to set_attrib().
 */ 3 4 this 3 3647  7 effects 1 3843  14 current_thread 5 3848  
300 0 0 7 349 3843 0 0 80 /**
 * Returns the complete RenderEffects that will be applied to this node.
 */ 2 4 this 3 3846  14 current_thread 5 3848  
301 0 0 4 350 3816 0 0 54 /**
 * Resets this node to have no render effects.
 */ 2 4 this 3 3647  14 current_thread 5 3848  
302 0 0 4 353 3816 0 0 158 /**
 * Sets the transform that will be applied to this node and below.  This
 * defines a new coordinate space at this point in the scene graph and below.
 */ 3 4 this 3 3647  9 transform 1 3792  14 current_thread 5 3848  
303 0 0 7 354 3792 0 0 177 /**
 * Returns the transform that has been set on this particular node.  This is
 * not the net transform from the root, but simply the transform on this
 * particular node.
 */ 2 4 this 3 3846  14 current_thread 5 3848  
304 0 0 4 355 3816 0 0 71 /**
 * Resets the transform on this node to the identity transform.
 */ 2 4 this 3 3647  14 current_thread 5 3848  
305 0 0 4 358 3816 0 0 173 /**
 * Sets the transform that represents this node's "previous" position, one
 * frame ago, for the purposes of detecting motion for accurate collision
 * calculations.
 */ 3 4 this 3 3647  9 transform 1 3792  14 current_thread 5 3848  
306 0 0 7 359 3792 0 0 115 /**
 * Returns the transform that has been set as this node's "previous" position.
 * See set_prev_transform().
 */ 2 4 this 3 3846  14 current_thread 5 3848  
307 0 0 4 360 3816 0 0 179 /**
 * Resets the transform that represents this node's "previous" position to the
 * same as the current transform.  This is not the same thing as clearing it
 * to identity.
 */ 2 4 this 3 3647  14 current_thread 5 3848  
308 0 0 6 361 3597 0 0 250 /**
 * Returns true if this node has the _dirty_prev_transform flag set, which
 * indicates its _prev_transform is different from its _transform value (in
 * pipeline stage 0).  In this case, the node will be visited by
 * reset_prev_transform().
 */ 1 4 this 3 3846  
309 0 0 4 362 3816 0 0 242 /**
 * Visits all nodes in the world with the _dirty_prev_transform flag--that is,
 * all nodes whose _prev_transform is different from the _transform in
 * pipeline stage 0--and resets the _prev_transform to be the same as
 * _transform.
 */ 1 14 current_thread 5 3848  
310 0 0 4 364 3816 0 0 391 /**
 * Associates a user-defined value with a user-defined key which is stored on
 * the node.  This value has no meaning to Panda; but it is stored
 * indefinitely on the node until it is requested again.
 *
 * Each unique key stores a different string value.  There is no effective
 * limit on the number of different keys that may be stored or on the length
 * of any one key's value.
 */ 4 4 this 3 3647  3 key 1 3845  5 value 1 3845  14 current_thread 5 3848  
311 0 0 6 365 3845 0 0 182 /**
 * Retrieves the user-defined value that was previously set on this node for
 * the particular key, if any.  If no value has been previously set, returns
 * the empty string.
 */ 3 4 this 3 3846  3 key 1 3845  14 current_thread 5 3848  
312 0 0 6 366 3597 0 0 170 /**
 * Returns true if a value has been defined on this node for the particular
 * key (even if that value is the empty string), or false if no value has been
 * set.
 */ 3 4 this 3 3846  3 key 1 3845  14 current_thread 5 3848  
313 0 0 4 367 3816 0 0 158 /**
 * Removes the value defined for this key on this particular node.  After a
 * call to clear_tag(), has_tag() will return false for the indicated key.
 */ 3 4 this 3 3647  3 key 1 3845  14 current_thread 5 3848  
314 0 0 38 373 3620 0 0 0 1 4 this 3 3846  
315 0 0 38 374 3620 0 0 0 1 4 this 3 3647  
316 0 0 36 375 3816 0 0 0 3 4 this 3 3647  3 key 1 3620  5 value 1 3620  
317 0 0 38 376 3620 0 0 0 2 4 this 3 3846  3 key 1 3620  
318 0 0 38 377 3597 0 0 0 2 4 this 3 3846  3 key 1 3620  
319 0 0 36 378 3816 0 0 0 2 4 this 3 3647  3 key 1 3620  
320 0 0 38 379 3620 0 0 0 1 4 this 3 3846  
321 0 0 38 384 3590 0 0 0 3 4 this 3 3647  5 visit 1 3851  3 arg 1 3852  
322 0 0 6 385 3597 0 0 102 /**
 * Returns true if the node has any tags (or any Python tags) at all, false if
 * it has none.
 */ 1 4 this 3 3846  
323 0 0 4 386 3816 0 0 191 /**
 * Copies all of the tags stored on the other node onto this node.  If a
 * particular tag exists on both nodes, the contents of this node's value is
 * replaced by that of the other.
 */ 2 4 this 3 3647  5 other 1 3647  
324 0 0 4 387 3816 0 0 364 /**
 * Writes a list of all the tag keys assigned to the node to the indicated
 * stream.  Writes one instance of the separator following each key (but does
 * not write a terminal separator).  The value associated with each key is not
 * written.
 *
 * This is mainly for the benefit of the realtime user, to see the list of all
 * of the associated tag keys.
 */ 3 4 this 3 3846  3 out 1 3817  9 separator 5 3845  
325 0 0 6 388 3590 0 0 341 /**
 * Returns a number less than 0, 0, or greater than 0, to indicate the
 * similarity of tags between this node and the other one.  If this returns 0,
 * the tags are identical.  If it returns other than 0, then the tags are
 * different; and the nodes may be sorted into a consistent (but arbitrary)
 * ordering based on this number.
 */ 2 4 this 3 3846  5 other 1 3846  
326 0 0 4 389 3816 0 0 264 /**
 * Copies the TransformState, RenderState, RenderEffects, tags, Python tags,
 * and the show/hide state from the other node onto this one.  Typically this
 * is used to prepare a node to replace another node in the scene graph (also
 * see replace_node()).
 */ 2 4 this 3 3647  5 other 1 3647  
327 0 0 4 390 3816 0 0 602 /**
 * Inserts this node into the scene graph in place of the other one, and
 * removes the other node.  All scene graph attributes (TransformState,
 * RenderState, etc.) are copied to this node.
 *
 * All children are moved to this node, and removed from the old node.  The
 * new node is left in the same place in the old node's parent's list of
 * children.
 *
 * Even NodePaths that reference the old node are updated in-place to
 * reference the new node instead.
 *
 * This method is intended to be used to replace a node of a given type in the
 * scene graph with a node of a different type.
 */ 2 4 this 3 3647  5 other 1 3647  
328 0 0 4 392 3816 0 0 627 /**
 * Sets one or more of the PandaNode::UnexpectedChange bits on, indicating
 * that the corresponding property should not change again on this node.  Once
 * one of these bits has been set, if the property changes, an assertion
 * failure will be raised, which is designed to assist the developer in
 * identifying the troublesome code that modified the property unexpectedly.
 *
 * The input parameter is the union of bits that are to be set.  To clear
 * these bits later, use clear_unexpected_change().
 *
 * Since this is a developer debugging tool only, this function does nothing
 * in a production (NDEBUG) build.
 */ 2 4 this 3 3647  5 flags 1 3689  
329 0 0 6 393 3689 0 0 409 /**
 * Returns nonzero if any of the bits in the input parameter are set on this
 * node, or zero if none of them are set.  More specifically, this returns the
 * particular set of bits (masked by the input parameter) that have been set
 * on this node.  See set_unexpected_change().
 *
 * Since this is a developer debugging tool only, this function always returns
 * zero in a production (NDEBUG) build.
 */ 2 4 this 3 3846  5 flags 1 3689  
330 0 0 4 394 3816 0 0 373 /**
 * Sets one or more of the PandaNode::UnexpectedChange bits off, indicating
 * that the corresponding property may once again change on this node.  See
 * set_unexpected_change().
 *
 * The input parameter is the union of bits that are to be cleared.
 *
 * Since this is a developer debugging tool only, this function does nothing
 * in a production (NDEBUG) build.
 */ 2 4 this 3 3647  5 flags 1 3689  
331 0 0 7 395 3853 0 0 189 /**
 * Returns the special bit that, when specifically cleared in the node's
 * DrawMask, indicates that the node is hidden to all cameras, regardless of
 * the remaining DrawMask bits.
 */ 0 
332 0 0 7 396 3853 0 0 79 /**
 * Returns a DrawMask that is appropriate for rendering to all cameras.
 */ 0 
333 0 0 6 397 3597 0 0 98 /**
 * Returns true if the node has been hidden to all cameras by clearing its
 * overall bit.
 */ 1 4 this 3 3846  
334 0 0 4 398 3816 0 0 411 /**
 * Sets or clears the hidden flag.  When the hidden flag is true, the node and
 * all of its children are invisible to all cameras, regardless of the setting
 * of any draw masks.  Setting the hidden flag to false restores the previous
 * visibility as established by the draw masks.
 *
 * This actually works by twiddling the reserved _overall_bit in the node's
 * draw mask, which has special meaning.
 */ 2 4 this 3 3647  14 overall_hidden 1 3597  
335 0 0 4 405 3816 0 0 1343 /**
 * Adjusts the hide/show bits of this particular node.
 *
 * These three parameters can be used to adjust the _draw_control_mask and
 * _draw_show_mask independently, which work together to provide per-camera
 * visibility for the node and its descendents.
 *
 * _draw_control_mask indicates the bits in _draw_show_mask that are
 * significant.  Each different bit corresponds to a different camera (and
 * these bits are assigned via Camera::set_camera_mask()).
 *
 * Where _draw_control_mask has a 1 bit, a 1 bit in _draw_show_mask indicates
 * the node is visible to that camera, and a 0 bit indicates the node is
 * hidden to that camera.  Where _draw_control_mask is 0, the node is hidden
 * only if a parent node is hidden.
 *
 * The meaning of the three parameters is as follows:
 *
 * * Wherever show_mask is 1, _draw_show_mask and _draw_control_mask will be
 * set 1.  Thus, show_mask indicates the set of cameras to which the node
 * should be shown.
 *
 * * Wherever hide_mask is 1, _draw_show_mask will be set 0 and
 * _draw_control_mask will be set 1.  Thus, hide_mask indicates the set of
 * cameras from which the node should be hidden.
 *
 * * Wherever clear_mask is 1, _draw_control_mask will be set 0.  Thus,
 * clear_mask indicates the set of cameras from which the hidden state should
 * be inherited from a parent.
 */ 4 4 this 3 3647  9 show_mask 1 3853  9 hide_mask 1 3853  10 clear_mask 1 3853  
336 0 0 7 406 3853 0 0 111 /**
 * Returns the set of bits in draw_show_mask that are considered meaningful.
 * See adjust_draw_mask().
 */ 1 4 this 3 3846  
337 0 0 7 407 3853 0 0 90 /**
 * Returns the hide/show bits of this particular node.  See
 * adjust_draw_mask().
 */ 1 4 this 3 3846  
338 0 0 7 410 3853 0 0 366 /**
 * Returns the set of bits in get_net_draw_show_mask() that have been
 * explicitly set via adjust_draw_mask(), rather than implicitly inherited.
 *
 * A 1 bit in any position of this mask indicates that (a) this node has
 * renderable children, and (b) some child of this node has made an explicit
 * hide() or show_through() call for the corresponding bit.
 */ 1 4 this 3 3846  
339 0 0 7 411 3853 0 0 576 /**
 * Returns the union of all draw_show_mask values--of renderable nodes only--
 * at this level and below.  If any bit in this mask is 0, there is no reason
 * to traverse below this node for a camera with the corresponding
 * camera_mask.
 *
 * The bits in this mask that do not correspond to a 1 bit in the
 * net_draw_control_mask are meaningless (and will be set to 1).  For bits
 * that *do* correspond to a 1 bit in the net_draw_control_mask, a 1 bit
 * indicates that at least one child should be visible, while a 0 bit
 * indicates that all children are hidden.
 */ 1 4 this 3 3846  
340 0 0 4 412 3816 0 0 510 /**
 * Sets the "into" CollideMask.
 *
 * This specifies the set of bits that must be shared with a CollisionNode's
 * "from" CollideMask in order for the CollisionNode to detect a collision
 * with this particular node.
 *
 * The actual CollideMask that will be set is masked by the return value from
 * get_legal_collide_mask(). Thus, the into_collide_mask cannot be set to
 * anything other than nonzero except for those types of nodes that can be
 * collided into, such as CollisionNodes and GeomNodes.
 */ 2 4 this 3 3647  4 mask 1 3854  
341 0 0 7 413 3854 0 0 57 /**
 * Returns the "into" collide mask for this node.
 */ 1 4 this 3 3846  
342 0 0 7 414 3854 0 0 314 /**
 * Returns the subset of CollideMask bits that may be set for this particular
 * type of PandaNode.  For most nodes, this is 0; it doesn't make sense to set
 * a CollideMask for most kinds of nodes.
 *
 * For nodes that can be collided with, such as GeomNode and CollisionNode,
 * this returns all bits on.
 */ 1 4 this 3 3846  
343 0 0 7 418 3854 0 0 112 /**
 * Returns the union of all into_collide_mask() values set at CollisionNodes
 * at this level and below.
 */ 2 4 this 3 3846  14 current_thread 5 3848  
344 0 0 7 419 3604 0 0 145 /**
 * Returns a ClipPlaneAttrib which represents the union of all of the clip
 * planes that have been turned *off* at this level and below.
 */ 2 4 this 3 3846  14 current_thread 5 3848  
345 0 0 4 420 3816 0 0 470 /**
 * Walks through the scene graph beginning at this node, and does whatever
 * initialization is required to render the scene properly with the indicated
 * GSG.  It is not strictly necessary to call this, since the GSG will
 * initialize itself when the scene is rendered, but this may take some of the
 * overhead away from that process.
 *
 * In particular, this will ensure that textures and vertex buffers within the
 * scene are loaded into graphics memory.
 */ 3 4 this 3 3647  3 gsg 1 3855  10 node_state 1 3829  
346 0 0 6 421 3597 0 0 173 /**
 * Returns true if this particular node is known to be the render root of some
 * active DisplayRegion associated with the global GraphicsEngine, false
 * otherwise.
 */ 1 4 this 3 3846  
347 0 0 6 422 3597 0 0 305 /**
 * Returns true if this particular node is in a live scene graph: that is, it
 * is a child or descendent of a node that is itself a scene root.  If this is
 * true, this node may potentially be traversed by the render traverser.
 * Stashed nodes don't count for this purpose, but hidden nodes do.
 */ 1 4 this 3 3846  
348 0 0 4 423 3816 0 0 10 /**
 *
 */ 2 4 this 3 3846  3 out 1 3817  
349 0 0 4 424 3816 0 0 10 /**
 *
 */ 3 4 this 3 3846  3 out 1 3817  12 indent_level 1 3590  
350 0 0 4 425 3816 0 0 76 /**
 * Lists all the nodes at and below the current path hierarchically.
 */ 3 4 this 3 3846  3 out 1 3817  12 indent_level 1 3590  
351 0 0 4 426 3816 0 0 650 /**
 * Specifies the desired type of bounding volume that will be created for this
 * node.  This is normally BoundingVolume::BT_default, which means to set the
 * type according to the config variable "bounds-type".
 *
 * If this is BT_sphere or BT_box, a BoundingSphere or BoundingBox is
 * explicitly created.  If it is BT_best, the appropriate type to best enclose
 * the node's children is created.
 *
 * This affects the bounding volume returned by get_bounds(), which is not
 * exactly the same bounding volume modified by set_bounds(), because a new
 * bounding volume has to be created that includes this node and all of its
 * children.
 */ 2 4 this 3 3647  11 bounds_type 1 3628  
352 0 0 6 427 3628 0 0 71 /**
 * Returns the bounding volume type set with set_bounds_type().
 */ 1 4 this 3 3846  
353 0 0 4 431 3816 0 0 478 /**
 * Resets the bounding volume so that it is the indicated volume.  When it is
 * explicitly set, the bounding volume will no longer be automatically
 * computed according to the contents of the node itself, for nodes like
 * GeomNodes and TextNodes that contain substance (but the bounding volume
 * will still be automatically expanded to include its children).
 *
 * Call clear_bounds() if you would like to return the bounding volume to its
 * default behavior later.
 */ 2 4 this 3 3647  6 volume 1 3857  
354 0 0 4 432 3816 0 0 48 /**
 * @deprecated Use set_bounds() instead.
 */ 2 4 this 3 3647  6 volume 1 3857  
355 0 0 4 433 3816 0 0 184 /**
 * Reverses the effect of a previous call to set_bounds(), and allows the
 * node's bounding volume to be automatically computed once more based on the
 * contents of the node.
 */ 1 4 this 3 3647  
356 0 0 7 434 3857 0 0 199 /**
 * Returns the external bounding volume of this node: a bounding volume that
 * contains the user bounding volume, the internal bounding volume, and all of
 * the children's bounding volumes.
 */ 2 4 this 3 3846  14 current_thread 5 3848  
357 0 0 7 434 3857 0 0 589 /**
 * This flavor of get_bounds() return the external bounding volume, and also
 * fills in seq with the bounding volume's current sequence number.  When this
 * sequence number changes, it indicates that the bounding volume might have
 * changed, e.g.  because some nested child's bounding volume has changed.
 *
 * Although this might occasionally increment without changing the bounding
 * volume, the bounding volume will never change without incrementing this
 * counter, so as long as this counter remains unchanged you can be confident
 * the bounding volume is also unchanged.
 */ 3 4 this 3 3846  3 seq 1 3859  14 current_thread 5 3848  
358 0 0 6 435 3590 0 0 422 /**
 * Returns the total number of vertices that will be rendered by this node and
 * all of its descendents.
 *
 * This is not necessarily an accurate count of vertices that will actually be
 * rendered, since this will include all vertices of all LOD's, and it will
 * also include hidden nodes.  It may also omit or only approximate certain
 * kinds of dynamic geometry.  However, it will not include stashed nodes.
 */ 2 4 this 3 3846  14 current_thread 5 3848  
359 0 0 7 436 3857 0 0 221 /**
 * Returns the node's internal bounding volume.  This is the bounding volume
 * around the node alone, without including children.  If the user has called
 * set_bounds(), it will be the specified bounding volume.
 */ 2 4 this 3 3846  14 current_thread 5 3848  
360 0 0 6 437 3590 0 0 205 /**
 * Returns the total number of vertices that will be rendered by this
 * particular node alone, not accounting for its children.
 *
 * This may not include all vertices for certain dynamic effects.
 */ 2 4 this 3 3846  14 current_thread 5 3848  
361 0 0 4 442 3816 0 0 547 /**
 * Indicates that the bounding volume, or something that influences the
 * bounding volume (or any of the other things stored in CData, like
 * net_collide_mask), may have changed for this node, and that it must be
 * recomputed.
 *
 * With no parameters, this means to iterate through all stages including and
 * upstream of the current pipeline stage.
 *
 * This method is intended for internal use; usually it is not necessary for a
 * user to call this directly.  It will be called automatically by derived
 * classes when appropriate.
 */ 2 4 this 3 3846  14 current_thread 5 3848  
362 0 0 4 443 3816 0 0 461 /**
 * Should be called by a derived class to mark the internal bounding volume
 * stale, so that compute_internal_bounds() will be called when the bounding
 * volume is next requested.
 *
 * With no parameters, this means to iterate through all stages including and
 * upstream of the current pipeline stage.
 *
 * It is normally not necessary to call this method directly; each node should
 * be responsible for calling it when its internals have changed.
 */ 2 4 this 3 3647  14 current_thread 5 3848  
363 0 0 6 444 3597 0 0 194 /**
 * Returns true if the bounding volume of this node is stale and will be
 * implicitly recomputed at the next call to get_bounds(), or false if it is
 * fresh and need not be recomputed.
 */ 1 4 this 3 3846  
364 0 0 4 446 3816 0 0 623 /**
 * Sets the "final" flag on this PandaNode.  If this is true, than no bounding
 * volume need be tested below it; a positive intersection with this node's
 * bounding volume is deemed to be a positive intersection with all geometry
 * inside.
 *
 * This is useful to quickly force a larger bounding volume around a node when
 * the GeomNodes themselves are inaccurate for some reason, without forcing a
 * recompute of every nested bounding volume.  It's also helpful when the
 * bounding volume is tricked by some special properties, like billboards,
 * that may move geometry out of its bounding volume otherwise.
 */ 2 4 this 3 3647  4 flag 1 3597  
365 0 0 6 447 3597 0 0 177 /**
 * Returns the current state of the "final" flag.  Initially, this flag is off
 * (false), but it may be changed by an explicit call to set_final().  See
 * set_final().
 */ 2 4 this 3 3846  14 current_thread 5 3848  
366 0 0 6 449 3597 0 0 276 /**
 * A simple downcast check.  Returns true if this kind of node happens to
 * inherit from GeomNode, false otherwise.
 *
 * This is provided as a a faster alternative to calling
 * is_of_type(GeomNode::get_class_type()), since this test is so important to
 * rendering.
 */ 1 4 this 3 3846  
367 0 0 6 450 3597 0 0 225 /**
 * A simple downcast check.  Returns true if this kind of node happens to
 * inherit from LODNode, false otherwise.
 *
 * This is provided as a a faster alternative to calling
 * is_of_type(LODNode::get_class_type()).
 */ 1 4 this 3 3846  
368 0 0 6 451 3597 0 0 237 /**
 * A simple downcast check.  Returns true if this kind of node happens to
 * inherit from CollisionNode, false otherwise.
 *
 * This is provided as a a faster alternative to calling
 * is_of_type(CollisionNode::get_class_type()).
 */ 1 4 this 3 3846  
369 0 0 6 452 3861 0 0 131 /**
 * Cross-casts the node to a Light pointer, if it is one of the four kinds of
 * Light nodes, or returns NULL if it is not.
 */ 1 4 this 3 3647  
370 0 0 6 453 3597 0 0 117 /**
 * Returns true if this is an AmbientLight, false if it is not a light, or it
 * is some other kind of light.
 */ 1 4 this 3 3846  
371 0 0 6 455 3590 0 0 330 /**
 * Returns the union of all of the enum FancyBits values corresponding to the
 * various "fancy" attributes that are set on the node.  If this returns 0,
 * the node has nothing interesting about it.  This is intended to speed
 * traversal by quickly skipping past nodes that don't particularly affect the
 * render state.
 */ 2 4 this 3 3846  14 current_thread 5 3848  
372 0 0 7 456 3647 2131 0 470 /**
 * Reads the bytes created by a previous call to encode_to_bam_stream(), and
 * extracts and returns the single object on those bytes.  Returns NULL on
 * error.
 *
 * This method is intended to replace decode_raw_from_bam_stream() when you
 * know the stream in question returns an object of type PandaNode, allowing
 * for easier reference count management.  Note that the caller is still
 * responsible for maintaining the reference count on the return value.
 */ 2 4 data 1 3862  6 reader 5 3658  
373 0 0 7 474 3820 0 0 0 0 
374 0 0 7 295 3864 0 0 0 1 4 this 3 3647  
375 0 0 6 298 3865 0 0 0 1 4 this 3 3647  
376 0 0 6 301 3866 0 0 0 1 4 this 3 3647  
377 0 0 6 368 3794 0 0 59 /**
 * Returns the number of tags applied to this node.
 */ 1 4 this 3 3846  
378 0 0 6 372 3845 0 0 63 /**
 * Returns the key of the nth tag applied to this node.
 */ 2 4 this 3 3846  1 i 1 3794  
379 0 0 7 458 3647 2131 0 0 2 4 this 3 3867  1 n 1 3794  
380 0 0 6 459 3794 0 0 0 1 4 this 3 3867  
381 0 0 7 462 3647 2131 0 0 2 4 this 3 3869  1 n 1 3794  
382 0 0 6 463 3794 0 0 0 1 4 this 3 3869  
383 0 0 7 466 3647 2131 0 0 2 4 this 3 3871  1 n 1 3794  
384 0 0 6 467 3794 0 0 0 1 4 this 3 3871  
385 0 0 23 477 3604 0 0 54 /**
 * Constructs a new TransparencyAttrib object.
 */ 1 4 mode 1 3636  
386 0 0 7 478 3604 0 0 145 /**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */ 0 
387 0 0 6 479 3636 0 0 41 /**
 * Returns the transparency mode.
 */ 1 4 this 3 3873  
388 0 0 6 481 3590 0 0 0 0 
389 0 0 7 483 3820 0 0 0 0 
390 0 0 7 487 3604 0 0 139 /**
 * Constructs a new LogicOpAttrib object that disables special-effect
 * blending, allowing normal transparency to be used instead.
 */ 0 
391 0 0 23 488 3604 0 0 80 /**
 * Constructs a new LogicOpAttrib object with the given logic operation.
 */ 1 2 op 1 3638  
392 0 0 7 489 3604 0 0 145 /**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */ 0 
393 0 0 6 490 3638 0 0 67 /**
 * Returns the logic operation specified by this attribute.
 */ 1 4 this 3 3875  
394 0 0 6 492 3590 0 0 0 0 
395 0 0 7 494 3820 0 0 0 0 
396 0 0 39 499 3880 2285 0 0 3 4 name 1 3877  5 value 1 3620  8 priority 5 3590  
397 0 0 7 499 3880 2285 0 10 /**
 *
 */ 4 4 name 1 3877  3 tex 1 3753  7 sampler 1 3881  8 priority 5 3590  
398 0 0 7 499 3880 2285 0 10 /**
 *
 */ 7 4 name 1 3877  3 tex 1 3753  4 read 1 3597  5 write 1 3597  1 z 5 3590  1 n 5 3590  8 priority 5 3590  
399 0 0 7 499 3880 2285 0 10 /**
 *
 */ 2 4 name 1 3877  8 priority 5 3590  
400 0 0 15 499 3880 2285 0 0 1 6 param0 0 3882  
401 0 0 6 498 3882 0 0 124 /**
 * Returns a static ShaderInput object with name NULL, priority zero, type
 * INVALID, and all value-fields cleared.
 */ 0 
402 0 0 6 502 3597 0 0 0 2 4 this 3 3882  5 other 1 3882  
403 0 0 6 503 3597 0 0 0 2 4 this 3 3882  5 other 1 3882  
404 0 0 6 504 3597 0 0 0 2 4 this 3 3882  5 other 1 3882  
405 0 0 6 505 3794 0 0 10 /**
 *
 */ 2 4 this 3 3882  4 hash 1 3794  
406 0 0 7 506 3877 0 0 10 /**
 *
 */ 1 4 this 3 3882  
407 0 0 6 507 3590 0 0 10 /**
 *
 */ 1 4 this 3 3882  
408 0 0 6 508 3590 0 0 10 /**
 *
 */ 1 4 this 3 3882  
409 0 0 6 509 3884 0 0 10 /**
 *
 */ 1 4 this 3 3882  
410 0 0 6 510 3885 0 0 10 /**
 *
 */ 1 4 this 3 3882  
411 0 0 6 511 3888 0 0 107 /**
 * Warning: no error checking is done.  This *will* crash if get_value_type()
 * is not M_nodepath.
 */ 1 4 this 3 3882  
412 0 0 7 512 3753 0 0 10 /**
 *
 */ 1 4 this 3 3882  
413 0 0 6 513 3881 0 0 46 /**
 * Warning: no error checking is done.
 */ 1 4 this 3 3882  
414 0 0 6 501 3597 0 0 0 1 4 this 3 3882  
415 0 0 7 516 3889 2288 0 10 /**
 *
 */ 0 
416 0 0 15 516 3889 2288 0 10 /**
 *
 */ 1 4 copy 1 3890  
417 0 0 6 517 3889 0 0 0 2 4 this 3 3889  4 copy 1 3890  
418 0 0 4 519 3816 0 0 53 /**
 * Adds a new InternalName to the collection.
 */ 2 4 this 3 3889  4 name 1 3877  
419 0 0 6 520 3597 0 0 156 /**
 * Removes the indicated InternalName from the collection.  Returns true if
 * the name was removed, false if it was not a member of the collection.
 */ 2 4 this 3 3889  4 name 1 3877  
420 0 0 4 521 3816 0 0 207 /**
 * Adds all the InternalNames indicated in the other collection to this name.
 * The other names are simply appended to the end of the names in this list;
 * duplicates are not automatically removed.
 */ 2 4 this 3 3889  5 other 1 3890  
421 0 0 4 522 3816 0 0 99 /**
 * Removes from this collection all of the InternalNames listed in the other
 * collection.
 */ 2 4 this 3 3889  5 other 1 3890  
422 0 0 4 523 3816 0 0 204 /**
 * Removes any duplicate entries of the same InternalNames on this collection.
 * If a InternalName appears multiple times, the first appearance is retained;
 * subsequent appearances are removed.
 */ 1 4 this 3 3889  
423 0 0 6 524 3597 0 0 101 /**
 * Returns true if the indicated InternalName appears in this collection,
 * false otherwise.
 */ 2 4 this 3 3890  4 name 1 3877  
424 0 0 4 525 3816 0 0 57 /**
 * Removes all InternalNames from the collection.
 */ 1 4 this 3 3889  
425 0 0 6 526 3590 0 0 65 /**
 * Returns the number of InternalNames in the collection.
 */ 1 4 this 3 3890  
426 0 0 7 527 3877 0 0 58 /**
 * Returns the nth InternalName in the collection.
 */ 2 4 this 3 3890  5 index 1 3590  
427 0 0 7 529 3877 0 0 144 /**
 * Returns the nth InternalName in the collection.  This is the same as
 * get_name(), but it may be a more convenient way to access it.
 */ 2 4 this 3 3890  5 index 1 3590  
428 0 0 6 530 3590 0 0 104 /**
 * Returns the number of names in the collection.  This is the same thing as
 * get_num_names().
 */ 1 4 this 3 3890  
429 0 0 6 531 3889 0 0 0 2 4 this 3 3889  5 other 1 3890  
430 0 0 7 532 3889 2288 0 0 2 4 this 3 3890  5 other 1 3890  
431 0 0 4 533 3816 0 0 111 /**
 * Writes a brief one-line description of the InternalNameCollection to the
 * indicated output stream.
 */ 2 4 this 3 3890  3 out 1 3817  
432 0 0 4 534 3816 0 0 116 /**
 * Writes a complete multi-line description of the InternalNameCollection to
 * the indicated output stream.
 */ 3 4 this 3 3890  3 out 1 3817  12 indent_level 5 3590  
433 0 0 7 536 3892 2306 0 10 /**
 *
 */ 0 
434 0 0 15 536 3892 2306 0 10 /**
 *
 */ 1 4 copy 1 3893  
435 0 0 6 537 3892 0 0 0 2 4 this 3 3892  4 copy 1 3893  
436 0 0 4 539 3816 0 0 49 /**
 * Adds a new Material to the collection.
 */ 2 4 this 3 3892  13 node_material 1 3731  
437 0 0 6 540 3597 0 0 156 /**
 * Removes the indicated Material from the collection.  Returns true if the
 * material was removed, false if it was not a member of the collection.
 */ 2 4 this 3 3892  13 node_material 1 3731  
438 0 0 4 541 3816 0 0 215 /**
 * Adds all the Materials indicated in the other collection to this material.
 * The other materials are simply appended to the end of the materials in this
 * list; duplicates are not automatically removed.
 */ 2 4 this 3 3892  5 other 1 3893  
439 0 0 4 542 3816 0 0 95 /**
 * Removes from this collection all of the Materials listed in the other
 * collection.
 */ 2 4 this 3 3892  5 other 1 3893  
440 0 0 4 543 3816 0 0 197 /**
 * Removes any duplicate entries of the same Materials on this collection.  If
 * a Material appears multiple times, the first appearance is retained;
 * subsequent appearances are removed.
 */ 1 4 this 3 3892  
441 0 0 6 544 3597 0 0 97 /**
 * Returns true if the indicated Material appears in this collection, false
 * otherwise.
 */ 2 4 this 3 3893  8 material 1 3731  
442 0 0 4 545 3816 0 0 53 /**
 * Removes all Materials from the collection.
 */ 1 4 this 3 3892  
443 0 0 7 546 3731 0 0 123 /**
 * Returns the material in the collection with the indicated name, if any, or
 * NULL if no material has that name.
 */ 2 4 this 3 3893  4 name 1 3845  
444 0 0 6 547 3590 0 0 61 /**
 * Returns the number of Materials in the collection.
 */ 1 4 this 3 3893  
445 0 0 7 548 3731 0 0 54 /**
 * Returns the nth Material in the collection.
 */ 2 4 this 3 3893  5 index 1 3590  
446 0 0 7 549 3731 0 0 144 /**
 * Returns the nth Material in the collection.  This is the same as
 * get_material(), but it may be a more convenient way to access it.
 */ 2 4 this 3 3893  5 index 1 3590  
447 0 0 6 550 3590 0 0 112 /**
 * Returns the number of materials in the collection.  This is the same thing
 * as get_num_materials().
 */ 1 4 this 3 3893  
448 0 0 6 551 3892 0 0 0 2 4 this 3 3892  5 other 1 3893  
449 0 0 7 552 3892 2306 0 0 2 4 this 3 3893  5 other 1 3893  
450 0 0 4 553 3816 0 0 107 /**
 * Writes a brief one-line description of the MaterialCollection to the
 * indicated output stream.
 */ 2 4 this 3 3893  3 out 1 3817  
451 0 0 4 554 3816 0 0 112 /**
 * Writes a complete multi-line description of the MaterialCollection to the
 * indicated output stream.
 */ 3 4 this 3 3893  3 out 1 3817  12 indent_level 5 3590  
452 0 0 7 556 3895 2325 0 10 /**
 *
 */ 0 
453 0 0 15 556 3895 2325 0 10 /**
 *
 */ 1 4 copy 1 3896  
454 0 0 6 557 3895 0 0 0 2 4 this 3 3895  4 copy 1 3896  
455 0 0 4 559 3816 0 0 53 /**
 * Adds a new TextureStage to the collection.
 */ 2 4 this 3 3895  18 node_texture_stage 1 3751  
456 0 0 6 560 3597 0 0 168 /**
 * Removes the indicated TextureStage from the collection.  Returns true if
 * the texture_stage was removed, false if it was not a member of the
 * collection.
 */ 2 4 this 3 3895  18 node_texture_stage 1 3751  
457 0 0 4 561 3816 0 0 235 /**
 * Adds all the TextureStages indicated in the other collection to this
 * texture_stage.  The other texture_stages are simply appended to the end of
 * the texture_stages in this list; duplicates are not automatically removed.
 */ 2 4 this 3 3895  5 other 1 3896  
458 0 0 4 562 3816 0 0 99 /**
 * Removes from this collection all of the TextureStages listed in the other
 * collection.
 */ 2 4 this 3 3895  5 other 1 3896  
459 0 0 4 563 3816 0 0 204 /**
 * Removes any duplicate entries of the same TextureStages on this collection.
 * If a TextureStage appears multiple times, the first appearance is retained;
 * subsequent appearances are removed.
 */ 1 4 this 3 3895  
460 0 0 6 564 3597 0 0 101 /**
 * Returns true if the indicated TextureStage appears in this collection,
 * false otherwise.
 */ 2 4 this 3 3896  13 texture_stage 1 3751  
461 0 0 4 565 3816 0 0 57 /**
 * Removes all TextureStages from the collection.
 */ 1 4 this 3 3895  
462 0 0 7 566 3751 0 0 133 /**
 * Returns the texture_stage in the collection with the indicated name, if
 * any, or NULL if no texture_stage has that name.
 */ 2 4 this 3 3896  4 name 1 3845  
463 0 0 6 567 3590 0 0 65 /**
 * Returns the number of TextureStages in the collection.
 */ 1 4 this 3 3896  
464 0 0 7 568 3751 0 0 58 /**
 * Returns the nth TextureStage in the collection.
 */ 2 4 this 3 3896  5 index 1 3590  
465 0 0 7 570 3751 0 0 153 /**
 * Returns the nth TextureStage in the collection.  This is the same as
 * get_texture_stage(), but it may be a more convenient way to access it.
 */ 2 4 this 3 3896  5 index 1 3590  
466 0 0 6 571 3590 0 0 122 /**
 * Returns the number of texture stages in the collection.  This is the same
 * thing as get_num_texture_stages().
 */ 1 4 this 3 3896  
467 0 0 6 572 3895 0 0 0 2 4 this 3 3895  5 other 1 3896  
468 0 0 7 573 3895 2325 0 0 2 4 this 3 3896  5 other 1 3896  
469 0 0 4 574 3816 0 0 116 /**
 * Sorts the TextureStages in this collection into order by
 * TextureStage::sort(), from lowest to highest.
 */ 1 4 this 3 3895  
470 0 0 4 575 3816 0 0 111 /**
 * Writes a brief one-line description of the TextureStageCollection to the
 * indicated output stream.
 */ 2 4 this 3 3896  3 out 1 3817  
471 0 0 4 576 3816 0 0 116 /**
 * Writes a complete multi-line description of the TextureStageCollection to
 * the indicated output stream.
 */ 3 4 this 3 3896  3 out 1 3817  12 indent_level 5 3590  
472 0 0 7 579 3898 2739 0 59 /**
 * This constructs an empty NodePath with no nodes.
 */ 0 
473 0 0 15 579 3898 2739 0 10 /**
 *
 */ 1 4 copy 1 3888  
474 0 0 7 579 3898 2739 0 153 /**
 * Constructs a NodePath with the indicated parent NodePath and child node;
 * the child node must be a stashed or unstashed child of the parent.
 */ 3 6 parent 1 3888  10 child_node 1 3647  14 current_thread 5 3848  
475 0 0 7 579 3898 2739 0 371 /**
 * This constructs a NodePath for the indicated node.  If the node does not
 * have any parents, this creates a singleton NodePath; otherwise, it
 * automatically finds the path from the node to the root.  If the node has
 * multiple paths to the root, one path is chosen arbitrarily and a warning
 * message is printed (but see also NodePath::any_path(), below).
 */ 2 4 node 1 3647  14 current_thread 5 3848  
476 0 0 7 579 3898 2739 0 135 /**
 * This constructs a new NodePath with a single node.  An ordinary, unattached
 * PandaNode is created with the indicated name.
 */ 2 13 top_node_name 1 3845  14 current_thread 5 3848  
477 0 0 7 580 3898 2739 0 236 /**
 * Returns a new NodePath that represents any arbitrary path from the root to
 * the indicated node.  This is the same thing that would be returned by
 * NodePath(node), except that no warning is issued if the path is ambiguous.
 */ 2 4 node 1 3647  14 current_thread 5 3848  
478 0 0 6 581 3898 0 0 0 2 4 this 3 3898  4 copy 1 3888  
479 0 0 4 582 3816 0 0 93 /**
 * Sets this NodePath to the empty NodePath.  It will no longer point to any
 * node.
 */ 1 4 this 3 3898  
480 0 0 39 583 3898 2739 0 0 1 4 this 3 3888  
481 0 0 38 584 3620 0 0 0 2 4 this 3 3888  4 memo 1 3620  
482 0 0 38 585 3620 0 0 0 1 4 this 3 3888  
483 0 0 38 586 3620 0 0 0 2 4 this 3 3888  7 pickler 1 3620  
484 0 0 7 587 3898 2739 0 67 /**
 * Creates a NodePath with the ET_not_found error type set.
 */ 0 
485 0 0 7 588 3898 2739 0 65 /**
 * Creates a NodePath with the ET_removed error type set.
 */ 0 
486 0 0 7 589 3898 2739 0 62 /**
 * Creates a NodePath with the ET_fail error type set.
 */ 0 
487 0 0 4 590 3816 0 0 798 /**
 * Certain operations, such as find() or find_all_matches(), require a
 * traversal of the scene graph to search for the target node or nodes.  This
 * traversal does not attempt to detect cycles, so an arbitrary cap is set on
 * the depth of the traversal as a poor man's cycle detection, in the event
 * that a cycle has inadvertently been introduced into the scene graph.
 *
 * There may be other reasons you'd want to truncate a search before the
 * bottom of the scene graph has been reached.  In any event, this function
 * sets the limit on the number of levels that a traversal will continue, and
 * hence the maximum length of a path that may be returned by a traversal.
 *
 * This is a static method, and so changing this parameter affects all of the
 * NodePaths in the universe.
 */ 1 16 max_search_depth 1 3590  
488 0 0 6 591 3590 0 0 95 /**
 * Returns the current setting of the search depth limit.  See
 * set_max_search_depth.
 */ 0 
489 0 0 6 592 3597 0 0 58 /**
 * Returns true if the NodePath contains no nodes.
 */ 1 4 this 3 3888  
490 0 0 6 594 3597 0 0 66 /**
 * Returns true if the NodePath contains exactly one node.
 */ 2 4 this 3 3888  14 current_thread 5 3848  
491 0 0 6 595 3590 0 0 51 /**
 * Returns the number of nodes in the path.
 */ 2 4 this 3 3888  14 current_thread 5 3848  
492 0 0 7 596 3647 2131 0 473 /**
 * Returns the nth node of the path, where 0 is the referenced (bottom) node
 * and get_num_nodes() - 1 is the top node.  This requires iterating through
 * the path.
 *
 * Also see node(), which is a convenience function to return the same thing
 * as get_node(0) (since the bottom node is the most important node in the
 * NodePath, and is the one most frequently referenced).
 *
 * Note that this function returns the same thing as
 * get_ancestor(index).node().
 */ 3 4 this 3 3888  5 index 1 3590  14 current_thread 5 3848  
493 0 0 7 600 3898 2739 0 261 /**
 * Returns the nth ancestor of the path, where 0 is the NodePath itself and
 * get_num_nodes() - 1 is get_top(). This requires iterating through the path.
 *
 * Also see get_node(), which returns the same thing as a PandaNode pointer,
 * not a NodePath.
 */ 3 4 this 3 3888  5 index 1 3590  14 current_thread 5 3848  
494 0 0 6 603 3646 0 0 110 /**
 * If is_empty() is true, this returns a code that represents the reason why
 * the NodePath is empty.
 */ 1 4 this 3 3888  
495 0 0 7 605 3647 2131 0 120 /**
 * Returns the top node of the path, or NULL if the path is empty.  This
 * requires iterating through the path.
 */ 2 4 this 3 3888  14 current_thread 5 3848  
496 0 0 7 606 3898 2739 0 120 /**
 * Returns a singleton NodePath that represents the top of the path, or empty
 * NodePath if this path is empty.
 */ 2 4 this 3 3888  14 current_thread 5 3848  
497 0 0 7 607 3647 2131 0 51 /**
 * Returns the referenced node of the path.
 */ 1 4 this 3 3888  
498 0 0 6 608 3590 0 0 617 /**
 * Returns an integer that is guaranteed to be the same for all NodePaths that
 * represent the same node instance, and different for all NodePaths that
 * represent a different node instance.
 *
 * The same key will be returned for a particular instance as long as at least
 * one NodePath exists that represents that instance; if all NodePaths for a
 * particular instance destruct and a new one is later created, it may have a
 * different index.  However, a given key will never be reused for a different
 * instance (unless the app has been running long enough that we overflow the
 * integer key value).
 */ 1 4 this 3 3888  
499 0 0 6 609 3794 0 0 528 /**
 * Adds the NodePath into the running hash.  This is intended to be used by
 * lower-level code that computes a hash for each NodePath.  It modifies the
 * hash value passed in by a unique adjustment for each NodePath, and returns
 * the modified hash.
 *
 * This is similar to the unique integer returned by get_key(), but it is not
 * guaranteed to remain unique beyond the lifetime of this particular
 * NodePath.  Once this NodePath destructs, a different NodePath may be
 * created which shares the same hash value.
 */ 2 4 this 3 3888  4 hash 1 3794  
500 0 0 6 610 3597 0 0 255 /**
 * Returns true if the node represented by this NodePath is parented within
 * the same graph as that of the other NodePath.  This is essentially the same
 * thing as asking whether get_top() of both NodePaths is the same (e.g., both
 * "render").
 */ 3 4 this 3 3888  5 other 1 3888  14 current_thread 5 3848  
501 0 0 6 611 3597 0 0 143 /**
 * Returns true if the node represented by this NodePath is a parent or other
 * ancestor of the other NodePath, or false if it is not.
 */ 3 4 this 3 3888  5 other 1 3888  14 current_thread 5 3848  
502 0 0 7 612 3898 2739 0 205 /**
 * Returns the lowest NodePath that both of these two NodePaths have in
 * common: the first ancestor that both of them share.  If the two NodePaths
 * are unrelated, returns NodePath::not_found().
 */ 3 4 this 3 3888  5 other 1 3888  14 current_thread 5 3848  
503 0 0 7 613 3899 2415 0 69 /**
 * Returns the set of all child nodes of the referenced node.
 */ 2 4 this 3 3888  14 current_thread 5 3848  
504 0 0 6 614 3590 0 0 65 /**
 * Returns the number of children of the referenced node.
 */ 2 4 this 3 3888  14 current_thread 5 3848  
505 0 0 7 615 3898 2739 0 80 /**
 * Returns a NodePath representing the nth child of the referenced node.
 */ 3 4 this 3 3888  1 n 1 3590  14 current_thread 5 3848  
506 0 0 7 616 3899 2415 0 210 /**
 * Returns the set of all child nodes of the referenced node that have been
 * stashed.  These children are not normally visible on the node, and do not
 * appear in the list returned by get_children().
 */ 2 4 this 3 3888  14 current_thread 5 3848  
507 0 0 6 662 3590 0 0 63 /**
 * Returns the number of nodes at and below this level.
 */ 1 4 this 3 3888  
508 0 0 6 663 3597 0 0 117 /**
 * Returns true if the referenced node has a parent; i.e.  the NodePath chain
 * contains at least two nodes.
 */ 2 4 this 3 3888  14 current_thread 5 3848  
509 0 0 7 664 3898 2739 0 195 /**
 * Returns the NodePath to the parent of the referenced node: that is, this
 * NodePath, shortened by one node.  The parent of a singleton NodePath is
 * defined to be the empty NodePath.
 */ 2 4 this 3 3888  14 current_thread 5 3848  
510 0 0 6 665 3590 0 0 246 /**
 * Returns the sort value of the referenced node within its parent; that is,
 * the sort number passed on the last reparenting operation for this node.
 * This will control the position of the node within its parent's list of
 * children.
 */ 2 4 this 3 3888  14 current_thread 5 3848  
511 0 0 7 668 3898 2739 0 253 /**
 * Searches for a node below the referenced node that matches the indicated
 * string.  Returns the shortest match found, if any, or an empty NodePath if
 * no match can be found.
 *
 * The referenced node itself is not considered in the search.
 */ 2 4 this 3 3888  4 path 1 3845  
512 0 0 7 669 3898 2739 0 115 /**
 * Searches for the indicated node below this node and returns the shortest
 * NodePath that connects them.
 */ 2 4 this 3 3888  4 node 1 3647  
513 0 0 7 670 3899 2415 0 222 /**
 * Returns the complete set of all NodePaths that begin with this NodePath and
 * can be extended by path.  The shortest paths will be listed first.
 *
 * The referenced node itself is not considered in the search.
 */ 2 4 this 3 3888  4 path 1 3845  
514 0 0 7 671 3899 2415 0 147 /**
 * Returns the set of all NodePaths that extend from this NodePath down to the
 * indicated node.  The shortest paths will be listed first.
 */ 2 4 this 3 3888  4 node 1 3647  
515 0 0 4 672 3816 0 0 397 /**
 * Removes the referenced node of the NodePath from its current parent and
 * attaches it to the referenced node of the indicated NodePath.
 *
 * If the destination NodePath is empty, this is the same thing as
 * detach_node().
 *
 * If the referenced node is already a child of the indicated NodePath (via
 * some other instance), this operation fails and leaves the NodePath
 * detached.
 */ 4 4 this 3 3898  5 other 1 3888  4 sort 5 3590  14 current_thread 5 3848  
516 0 0 4 673 3816 0 0 189 /**
 * Similar to reparent_to(), but the node is added to its new parent's stashed
 * list, so that the result is equivalent to calling reparent_to() immediately
 * followed by stash().
 */ 4 4 this 3 3898  5 other 1 3888  4 sort 5 3590  14 current_thread 5 3848  
517 0 0 4 674 3816 0 0 238 /**
 * This functions identically to reparent_to(), except the transform on this
 * node is also adjusted so that the node remains in the same place in world
 * coordinates, even if it is reparented into a different coordinate system.
 */ 4 4 this 3 3898  5 other 1 3888  4 sort 5 3590  14 current_thread 5 3848  
518 0 0 7 675 3898 2739 0 962 /**
 * Adds the referenced node of the NodePath as a child of the referenced node
 * of the indicated other NodePath.  Any other parent-child relations of the
 * node are unchanged; in particular, the node is not removed from its
 * existing parent, if any.
 *
 * If the node already had an existing parent, this method will create a new
 * instance of the node within the scene graph.
 *
 * This does not change the NodePath itself, but does return a new NodePath
 * that reflects the new instance node.
 *
 * If the destination NodePath is empty, this creates a new instance which is
 * not yet parented to any node.  A new instance of this sort cannot easily be
 * differentiated from other similar instances, but it is nevertheless a
 * different instance and it will return a different get_id() value.
 *
 * If the referenced node is already a child of the indicated NodePath,
 * returns that already-existing instance, unstashing it first if necessary.
 */ 4 4 this 3 3888  5 other 1 3888  4 sort 5 3590  14 current_thread 5 3848  
519 0 0 7 676 3898 2739 0 236 /**
 * Behaves like instance_to(), but implicitly creates a new node to instance
 * the geometry under, and returns a NodePath to that new node.  This allows
 * the programmer to set a unique state and/or transform on this instance.
 */ 5 4 this 3 3888  5 other 1 3888  4 name 1 3845  4 sort 5 3590  14 current_thread 5 3848  
520 0 0 7 677 3898 2739 0 221 /**
 * Functions like instance_to(), except a deep copy is made of the referenced
 * node and all of its descendents, which is then parented to the indicated
 * node.  A NodePath to the newly created copy is returned.
 */ 4 4 this 3 3888  5 other 1 3888  4 sort 5 3590  14 current_thread 5 3848  
521 0 0 7 678 3898 2739 0 454 /**
 * Attaches a new node, with or without existing parents, to the scene graph
 * below the referenced node of this NodePath.  This is the preferred way to
 * add nodes to the graph.
 *
 * If the node was already a child of the parent, this returns a NodePath to
 * the existing child.
 *
 * This does *not* automatically extend the current NodePath to reflect the
 * attachment; however, a NodePath that does reflect this extension is
 * returned.
 */ 4 4 this 3 3888  4 node 1 3647  4 sort 5 3590  14 current_thread 5 3848  
522 0 0 7 678 3898 2739 0 132 /**
 * Creates an ordinary PandaNode and attaches it below the current NodePath,
 * returning a new NodePath that references it.
 */ 4 4 this 3 3888  4 name 1 3845  4 sort 5 3590  14 current_thread 5 3848  
523 0 0 4 679 3816 0 0 754 /**
 * Disconnects the referenced node from the scene graph.  This will also
 * delete the node if there are no other pointers to it.
 *
 * Normally, this should be called only when you are really done with the
 * node.  If you want to remove a node from the scene graph but keep it around
 * for later, you should probably use detach_node() instead.
 *
 * In practice, the only difference between remove_node() and detach_node() is
 * that remove_node() also resets the NodePath to empty, which will cause the
 * node to be deleted immediately if there are no other references.  On the
 * other hand, detach_node() leaves the NodePath referencing the node, which
 * will keep at least one reference to the node for as long as the NodePath
 * exists.
 */ 2 4 this 3 3898  14 current_thread 5 3848  
524 0 0 4 680 3816 0 0 735 /**
 * Disconnects the referenced node from its parent, but does not immediately
 * delete it.  The NodePath retains a pointer to the node, and becomes a
 * singleton NodePath.
 *
 * This should be called to detach a node from the scene graph, with the
 * option of reattaching it later to the same parent or to a different parent.
 *
 * In practice, the only difference between remove_node() and detach_node() is
 * that remove_node() also resets the NodePath to empty, which will cause the
 * node to be deleted immediately if there are no other references.  On the
 * other hand, detach_node() leaves the NodePath referencing the node, which
 * will keep at least one reference to the node for as long as the NodePath
 * exists.
 */ 2 4 this 3 3898  14 current_thread 5 3848  
525 0 0 4 681 3816 0 0 91 /**
 * Writes a sensible description of the NodePath to the indicated output
 * stream.
 */ 2 4 this 3 3888  3 out 1 3817  
526 0 0 4 682 3816 0 0 64 /**
 * Lists the hierarchy at and below the referenced node.
 */ 1 4 this 3 3888  
527 0 0 4 682 3816 0 0 64 /**
 * Lists the hierarchy at and below the referenced node.
 */ 3 4 this 3 3888  3 out 1 3817  12 indent_level 5 3590  
528 0 0 4 683 3816 0 0 64 /**
 * Lists the hierarchy at and above the referenced node.
 */ 1 4 this 3 3888  
529 0 0 6 683 3590 0 0 64 /**
 * Lists the hierarchy at and above the referenced node.
 */ 3 4 this 3 3888  3 out 1 3817  12 indent_level 5 3590  
530 0 0 7 684 3829 0 0 145 /**
 * Returns the state changes that must be made to transition to the render
 * state of this node from the render state of the other node.
 */ 3 4 this 3 3888  5 other 1 3888  14 current_thread 5 3848  
531 0 0 7 684 3829 0 0 62 /**
 * Returns the complete state object set on this node.
 */ 2 4 this 3 3888  14 current_thread 5 3848  
532 0 0 4 685 3816 0 0 180 /**
 * Sets the state object on this node, relative to the other node.  This
 * computes a new state object that will have the indicated value when seen
 * from the other node.
 */ 4 4 this 3 3898  5 other 1 3888  5 state 1 3829  14 current_thread 5 3848  
533 0 0 4 685 3816 0 0 58 /**
 * Changes the complete state object on this node.
 */ 3 4 this 3 3898  5 state 1 3829  14 current_thread 5 3848  
534 0 0 7 686 3829 0 0 60 /**
 * Returns the net state on this node from the root.
 */ 2 4 this 3 3888  14 current_thread 5 3848  
535 0 0 4 687 3816 0 0 220 /**
 * Adds the indicated render attribute to the scene graph on this node.  This
 * attribute will now apply to this node and everything below.  If there was
 * already an attribute of the same type, it is replaced.
 */ 3 4 this 3 3898  6 attrib 1 3604  8 priority 5 3590  
536 0 0 7 688 3604 0 0 270 /**
 * Returns the render attribute of the indicated type, if it is defined on the
 * node, or NULL if it is not.  This checks only what is set on this
 * particular node level, and has nothing to do with what render attributes
 * may be inherited from parent nodes.
 */ 2 4 this 3 3888  4 type 1 3820  
537 0 0 6 689 3597 0 0 127 /**
 * Returns true if there is a render attribute of the indicated type defined
 * on this node, or false if there is not.
 */ 2 4 this 3 3888  4 type 1 3820  
538 0 0 4 690 3816 0 0 194 /**
 * Removes the render attribute of the given type from this node.  This node,
 * and the subgraph below, will now inherit the indicated render attribute
 * from the nodes above this one.
 */ 2 4 this 3 3898  4 type 1 3820  
539 0 0 4 691 3816 0 0 145 /**
 * Adds the indicated render effect to the scene graph on this node.  If there
 * was already an effect of the same type, it is replaced.
 */ 2 4 this 3 3898  6 effect 1 3841  
540 0 0 7 692 3841 0 0 114 /**
 * Returns the render effect of the indicated type, if it is defined on the
 * node, or NULL if it is not.
 */ 2 4 this 3 3888  4 type 1 3820  
541 0 0 6 693 3597 0 0 124 /**
 * Returns true if there is a render effect of the indicated type defined on
 * this node, or false if there is not.
 */ 2 4 this 3 3888  4 type 1 3820  
542 0 0 4 694 3816 0 0 70 /**
 * Removes the render effect of the given type from this node.
 */ 2 4 this 3 3898  4 type 1 3820  
543 0 0 4 695 3816 0 0 177 /**
 * Sets the complete RenderEffects that will be applied this node.  This
 * completely replaces whatever has been set on this node via repeated calls
 * to set_attrib().
 */ 2 4 this 3 3898  7 effects 1 3843  
544 0 0 7 696 3843 0 0 80 /**
 * Returns the complete RenderEffects that will be applied to this node.
 */ 1 4 this 3 3888  
545 0 0 4 697 3816 0 0 54 /**
 * Resets this node to have no render effects.
 */ 1 4 this 3 3898  
546 0 0 7 698 3792 0 0 145 /**
 * Returns the relative transform to this node from the other node; i.e.  the
 * transformation of this node as seen from the other node.
 */ 3 4 this 3 3888  5 other 1 3888  14 current_thread 5 3848  
547 0 0 7 698 3792 0 0 66 /**
 * Returns the complete transform object set on this node.
 */ 2 4 this 3 3888  14 current_thread 5 3848  
548 0 0 4 699 3816 0 0 171 /**
 * Sets the transform object on this node to identity, relative to the other
 * node.  This effectively places this node at the same position as the other
 * node.
 */ 3 4 this 3 3898  5 other 1 3888  14 current_thread 5 3848  
549 0 0 4 699 3816 0 0 62 /**
 * Sets the transform object on this node to identity.
 */ 2 4 this 3 3898  14 current_thread 5 3848  
550 0 0 4 700 3816 0 0 188 /**
 * Sets the transform object on this node, relative to the other node.  This
 * computes a new transform object that will have the indicated value when
 * seen from the other node.
 */ 4 4 this 3 3898  5 other 1 3888  9 transform 1 3792  14 current_thread 5 3848  
551 0 0 4 700 3816 0 0 62 /**
 * Changes the complete transform object on this node.
 */ 3 4 this 3 3898  9 transform 1 3792  14 current_thread 5 3848  
552 0 0 7 701 3792 0 0 64 /**
 * Returns the net transform on this node from the root.
 */ 2 4 this 3 3888  14 current_thread 5 3848  
553 0 0 7 702 3792 0 0 196 /**
 * Returns the relative "previous" transform to this node from the other node;
 * i.e.  the position of this node in the previous frame, as seen by the other
 * node in the previous frame.
 */ 3 4 this 3 3888  5 other 1 3888  14 current_thread 5 3848  
554 0 0 7 702 3792 0 0 115 /**
 * Returns the transform that has been set as this node's "previous" position.
 * See set_prev_transform().
 */ 2 4 this 3 3888  14 current_thread 5 3848  
555 0 0 4 703 3816 0 0 199 /**
 * Sets the "previous" transform object on this node, relative to the other
 * node.  This computes a new transform object that will have the indicated
 * value when seen from the other node.
 */ 4 4 this 3 3898  5 other 1 3888  9 transform 1 3792  14 current_thread 5 3848  
556 0 0 4 703 3816 0 0 173 /**
 * Sets the transform that represents this node's "previous" position, one
 * frame ago, for the purposes of detecting motion for accurate collision
 * calculations.
 */ 3 4 this 3 3898  9 transform 1 3792  14 current_thread 5 3848  
557 0 0 7 704 3792 0 0 105 /**
 * Returns the net "previous" transform on this node from the root.  See
 * set_prev_transform().
 */ 2 4 this 3 3888  14 current_thread 5 3848  
558 0 0 4 705 3816 0 0 329 /**
 * Sets the translation component of the transform, leaving rotation and scale
 * untouched.  This also resets the node's "previous" position, so that the
 * collision system will see the node as having suddenly appeared in the new
 * position, without passing any points in between.  See Also:
 * NodePath::set_fluid_pos
 */ 2 4 this 3 3898  3 pos 1 3796  
559 0 0 4 705 3816 0 0 90 /**
 * Sets the translation component of the transform, relative to the other
 * node.
 */ 3 4 this 3 3898  5 other 1 3888  3 pos 1 3796  
560 0 0 4 705 3816 0 0 90 /**
 * Sets the translation component of the transform, relative to the other
 * node.
 */ 5 4 this 3 3898  5 other 1 3888  1 x 1 3595  1 y 1 3595  1 z 1 3595  
561 0 0 4 705 3816 0 0 291 /**
 * Sets the translation component of the transform, leaving rotation and scale
 * untouched.  This also resets the node's "previous" position, so that the
 * collision system will see the node as having suddenly appeared in the new
 * position, without passing any points in between.
 */ 4 4 this 3 3898  1 x 1 3595  1 y 1 3595  1 z 1 3595  
562 0 0 4 706 3816 0 0 0 3 4 this 3 3898  5 other 1 3888  1 x 1 3595  
563 0 0 4 706 3816 0 0 115 /**
 * Sets the X component of the position transform, leaving other components
 * untouched.
 * @see set_pos()
 */ 2 4 this 3 3898  1 x 1 3595  
564 0 0 4 707 3816 0 0 0 3 4 this 3 3898  5 other 1 3888  1 y 1 3595  
565 0 0 4 707 3816 0 0 115 /**
 * Sets the Y component of the position transform, leaving other components
 * untouched.
 * @see set_pos()
 */ 2 4 this 3 3898  1 y 1 3595  
566 0 0 4 708 3816 0 0 0 3 4 this 3 3898  5 other 1 3888  1 z 1 3595  
567 0 0 4 708 3816 0 0 115 /**
 * Sets the Z component of the position transform, leaving other components
 * untouched.
 * @see set_pos()
 */ 2 4 this 3 3898  1 z 1 3595  
568 0 0 4 709 3816 0 0 232 /**
 * Sets the translation component, without changing the "previous" position,
 * so that the collision system will see the node as moving fluidly from its
 * previous position to its new position.  See Also: NodePath::set_pos
 */ 2 4 this 3 3898  3 pos 1 3796  
569 0 0 4 709 3816 0 0 90 /**
 * Sets the translation component of the transform, relative to the other
 * node.
 */ 3 4 this 3 3898  5 other 1 3888  3 pos 1 3796  
570 0 0 4 709 3816 0 0 203 /**
 * Sets the translation component, without changing the "previous" position,
 * so that the collision system will see the node as moving fluidly from its
 * previous position to its new position.
 */ 5 4 this 3 3898  5 other 1 3888  1 x 1 3595  1 y 1 3595  1 z 1 3595  
571 0 0 4 709 3816 0 0 203 /**
 * Sets the translation component, without changing the "previous" position,
 * so that the collision system will see the node as moving fluidly from its
 * previous position to its new position.
 */ 4 4 this 3 3898  1 x 1 3595  1 y 1 3595  1 z 1 3595  
572 0 0 4 710 3816 0 0 0 3 4 this 3 3898  5 other 1 3888  1 x 1 3595  
573 0 0 4 710 3816 0 0 0 2 4 this 3 3898  1 x 1 3595  
574 0 0 4 711 3816 0 0 0 3 4 this 3 3898  5 other 1 3888  1 y 1 3595  
575 0 0 4 711 3816 0 0 0 2 4 this 3 3898  1 y 1 3595  
576 0 0 4 712 3816 0 0 0 3 4 this 3 3898  5 other 1 3888  1 z 1 3595  
577 0 0 4 712 3816 0 0 0 2 4 this 3 3898  1 z 1 3595  
578 0 0 7 713 3810 0 0 64 /**
 * Retrieves the translation component of the transform.
 */ 1 4 this 3 3888  
579 0 0 7 713 3810 0 0 95 /**
 * Returns the relative position of the referenced node as seen from the other
 * node.
 */ 2 4 this 3 3888  5 other 1 3888  
580 0 0 6 714 3595 0 0 0 1 4 this 3 3888  
581 0 0 6 714 3595 0 0 0 2 4 this 3 3888  5 other 1 3888  
582 0 0 6 715 3595 0 0 0 1 4 this 3 3888  
583 0 0 6 715 3595 0 0 0 2 4 this 3 3888  5 other 1 3888  
584 0 0 6 716 3595 0 0 0 1 4 this 3 3888  
585 0 0 6 716 3595 0 0 0 2 4 this 3 3888  5 other 1 3888  
586 0 0 7 717 3902 0 0 469 /**
 * Returns the delta vector from this node's position in the previous frame
 * (according to set_prev_transform(), typically set via the use of
 * set_fluid_pos()) and its position in the current frame.  This is the vector
 * used to determine collisions.  Generally, if the node was last repositioned
 * via set_pos(), the delta will be zero; if it was adjusted via
 * set_fluid_pos(), the delta will represent the change from the previous
 * frame's position.
 */ 1 4 this 3 3888  
587 0 0 7 717 3902 0 0 519 /**
 * Returns the delta vector from this node's position in the previous frame
 * (according to set_prev_transform(), typically set via the use of
 * set_fluid_pos()) and its position in the current frame, as seen in the
 * indicated node's coordinate space.  This is the vector used to determine
 * collisions.  Generally, if the node was last repositioned via set_pos(),
 * the delta will be zero; if it was adjusted via set_fluid_pos(), the delta
 * will represent the change from the previous frame's position.
 */ 2 4 this 3 3888  5 other 1 3888  
588 0 0 4 718 3816 0 0 100 /**
 * Sets the rotation component of the transform, leaving translation and scale
 * untouched.
 */ 2 4 this 3 3898  3 hpr 1 3796  
589 0 0 4 718 3816 0 0 84 /**
 * Sets the rotation component of the transform, relative to the other node.
 */ 3 4 this 3 3898  5 other 1 3888  3 hpr 1 3796  
590 0 0 4 718 3816 0 0 84 /**
 * Sets the rotation component of the transform, relative to the other node.
 */ 5 4 this 3 3898  5 other 1 3888  1 h 1 3595  1 p 1 3595  1 r 1 3595  
591 0 0 4 718 3816 0 0 100 /**
 * Sets the rotation component of the transform, leaving translation and scale
 * untouched.
 */ 4 4 this 3 3898  1 h 1 3595  1 p 1 3595  1 r 1 3595  
592 0 0 4 719 3816 0 0 0 3 4 this 3 3898  5 other 1 3888  1 h 1 3595  
593 0 0 4 719 3816 0 0 0 2 4 this 3 3898  1 h 1 3595  
594 0 0 4 720 3816 0 0 0 3 4 this 3 3898  5 other 1 3888  1 p 1 3595  
595 0 0 4 720 3816 0 0 0 2 4 this 3 3898  1 p 1 3595  
596 0 0 4 721 3816 0 0 0 3 4 this 3 3898  5 other 1 3888  1 r 1 3595  
597 0 0 4 721 3816 0 0 0 2 4 this 3 3898  1 r 1 3595  
598 0 0 7 722 3811 0 0 61 /**
 * Retrieves the rotation component of the transform.
 */ 1 4 this 3 3888  
599 0 0 7 722 3811 0 0 94 /**
 * Returns the relative orientation of the bottom node as seen from the other
 * node.
 */ 2 4 this 3 3888  5 other 1 3888  
600 0 0 6 723 3595 0 0 0 1 4 this 3 3888  
601 0 0 6 723 3595 0 0 0 2 4 this 3 3888  5 other 1 3888  
602 0 0 6 724 3595 0 0 0 1 4 this 3 3888  
603 0 0 6 724 3595 0 0 0 2 4 this 3 3888  5 other 1 3888  
604 0 0 6 725 3595 0 0 0 1 4 this 3 3888  
605 0 0 6 725 3595 0 0 0 2 4 this 3 3888  5 other 1 3888  
606 0 0 4 726 3816 0 0 100 /**
 * Sets the rotation component of the transform, leaving translation and scale
 * untouched.
 */ 2 4 this 3 3898  4 quat 1 3798  
607 0 0 4 726 3816 0 0 84 /**
 * Sets the rotation component of the transform, relative to the other node.
 */ 3 4 this 3 3898  5 other 1 3888  4 quat 1 3798  
608 0 0 7 727 3812 0 0 61 /**
 * Retrieves the rotation component of the transform.
 */ 1 4 this 3 3888  
609 0 0 7 727 3812 0 0 94 /**
 * Returns the relative orientation of the bottom node as seen from the other
 * node.
 */ 2 4 this 3 3888  5 other 1 3888  
610 0 0 4 728 3816 0 0 100 /**
 * Sets the scale component of the transform, leaving translation and rotation
 * untouched.
 */ 2 4 this 3 3898  5 scale 1 3796  
611 0 0 4 728 3816 0 0 81 /**
 * Sets the scale component of the transform, relative to the other node.
 */ 3 4 this 3 3898  5 other 1 3888  5 scale 1 3796  
612 0 0 4 728 3816 0 0 81 /**
 * Sets the scale component of the transform, relative to the other node.
 */ 3 4 this 3 3898  5 other 1 3888  5 scale 1 3595  
613 0 0 4 728 3816 0 0 81 /**
 * Sets the scale component of the transform, relative to the other node.
 */ 5 4 this 3 3898  5 other 1 3888  2 sx 1 3595  2 sy 1 3595  2 sz 1 3595  
614 0 0 4 728 3816 0 0 100 /**
 * Sets the scale component of the transform, leaving translation and rotation
 * untouched.
 */ 2 4 this 3 3898  5 scale 1 3595  
615 0 0 4 728 3816 0 0 0 4 4 this 3 3898  2 sx 1 3595  2 sy 1 3595  2 sz 1 3595  
616 0 0 4 729 3816 0 0 0 3 4 this 3 3898  5 other 1 3888  2 sx 1 3595  
617 0 0 4 729 3816 0 0 114 /**
 * Sets the x-scale component of the transform, leaving other components
 * untouched.
 * @see set_scale()
 */ 2 4 this 3 3898  2 sx 1 3595  
618 0 0 4 730 3816 0 0 0 3 4 this 3 3898  5 other 1 3888  2 sy 1 3595  
619 0 0 4 730 3816 0 0 114 /**
 * Sets the y-scale component of the transform, leaving other components
 * untouched.
 * @see set_scale()
 */ 2 4 this 3 3898  2 sy 1 3595  
620 0 0 4 731 3816 0 0 0 3 4 this 3 3898  5 other 1 3888  2 sz 1 3595  
621 0 0 4 731 3816 0 0 114 /**
 * Sets the z-scale component of the transform, leaving other components
 * untouched.
 * @see set_scale()
 */ 2 4 this 3 3898  2 sz 1 3595  
622 0 0 7 732 3811 0 0 58 /**
 * Retrieves the scale component of the transform.
 */ 1 4 this 3 3888  
623 0 0 7 732 3811 0 0 85 /**
 * Returns the relative scale of the bottom node as seen from the other node.
 */ 2 4 this 3 3888  5 other 1 3888  
624 0 0 6 733 3595 0 0 0 1 4 this 3 3888  
625 0 0 6 733 3595 0 0 92 /**
 * Returns the relative scale of the referenced node as seen from the other
 * node.
 */ 2 4 this 3 3888  5 other 1 3888  
626 0 0 6 734 3595 0 0 0 1 4 this 3 3888  
627 0 0 6 734 3595 0 0 0 2 4 this 3 3888  5 other 1 3888  
628 0 0 6 735 3595 0 0 0 1 4 this 3 3888  
629 0 0 6 735 3595 0 0 0 2 4 this 3 3888  5 other 1 3888  
630 0 0 4 736 3816 0 0 100 /**
 * Sets the shear component of the transform, leaving translation and rotation
 * untouched.
 */ 2 4 this 3 3898  5 shear 1 3796  
631 0 0 4 736 3816 0 0 81 /**
 * Sets the shear component of the transform, relative to the other node.
 */ 3 4 this 3 3898  5 other 1 3888  5 shear 1 3796  
632 0 0 4 736 3816 0 0 81 /**
 * Sets the shear component of the transform, relative to the other node.
 */ 5 4 this 3 3898  5 other 1 3888  4 shxy 1 3595  4 shxz 1 3595  4 shyz 1 3595  
633 0 0 4 736 3816 0 0 108 /**
 * Sets the shear component of the transform, leaving translation, rotation,
 * and scale untouched.
 */ 4 4 this 3 3898  4 shxy 1 3595  4 shxz 1 3595  4 shyz 1 3595  
634 0 0 4 737 3816 0 0 0 3 4 this 3 3898  5 other 1 3888  4 shxy 1 3595  
635 0 0 4 737 3816 0 0 0 2 4 this 3 3898  4 shxy 1 3595  
636 0 0 4 738 3816 0 0 0 3 4 this 3 3898  5 other 1 3888  4 shxz 1 3595  
637 0 0 4 738 3816 0 0 0 2 4 this 3 3898  4 shxz 1 3595  
638 0 0 4 739 3816 0 0 0 3 4 this 3 3898  5 other 1 3888  4 shyz 1 3595  
639 0 0 4 739 3816 0 0 0 2 4 this 3 3898  4 shyz 1 3595  
640 0 0 7 740 3811 0 0 58 /**
 * Retrieves the shear component of the transform.
 */ 1 4 this 3 3888  
641 0 0 7 740 3811 0 0 85 /**
 * Returns the relative shear of the bottom node as seen from the other node.
 */ 2 4 this 3 3888  5 other 1 3888  
642 0 0 6 741 3595 0 0 0 1 4 this 3 3888  
643 0 0 6 741 3595 0 0 92 /**
 * Returns the relative shear of the referenced node as seen from the other
 * node.
 */ 2 4 this 3 3888  5 other 1 3888  
644 0 0 6 742 3595 0 0 0 1 4 this 3 3888  
645 0 0 6 742 3595 0 0 0 2 4 this 3 3888  5 other 1 3888  
646 0 0 6 743 3595 0 0 0 1 4 this 3 3888  
647 0 0 6 743 3595 0 0 0 2 4 this 3 3888  5 other 1 3888  
648 0 0 4 744 3816 0 0 100 /**
 * Sets the translation and rotation component of the transform, leaving scale
 * untouched.
 */ 3 4 this 3 3898  3 pos 1 3796  3 hpr 1 3796  
649 0 0 4 744 3816 0 0 103 /**
 * Sets the translation and rotation component of the transform, relative to
 * the other node.
 */ 4 4 this 3 3898  5 other 1 3888  3 pos 1 3796  3 hpr 1 3796  
650 0 0 4 744 3816 0 0 103 /**
 * Sets the translation and rotation component of the transform, relative to
 * the other node.
 */ 8 4 this 3 3898  5 other 1 3888  1 x 1 3595  1 y 1 3595  1 z 1 3595  1 h 1 3595  1 p 1 3595  1 r 1 3595  
651 0 0 4 744 3816 0 0 100 /**
 * Sets the translation and rotation component of the transform, leaving scale
 * untouched.
 */ 7 4 this 3 3898  1 x 1 3595  1 y 1 3595  1 z 1 3595  1 h 1 3595  1 p 1 3595  1 r 1 3595  
652 0 0 4 745 3816 0 0 100 /**
 * Sets the translation and rotation component of the transform, leaving scale
 * untouched.
 */ 3 4 this 3 3898  3 pos 1 3796  4 quat 1 3798  
653 0 0 4 745 3816 0 0 103 /**
 * Sets the translation and rotation component of the transform, relative to
 * the other node.
 */ 4 4 this 3 3898  5 other 1 3888  3 pos 1 3796  4 quat 1 3798  
654 0 0 4 746 3816 0 0 101 /**
 * Sets the rotation and scale components of the transform, leaving
 * translation untouched.
 */ 3 4 this 3 3898  3 hpr 1 3796  5 scale 1 3796  
655 0 0 4 746 3816 0 0 219 /**
 * Sets the rotation and scale components of the transform, leaving
 * translation untouched.  This, or set_pos_hpr_scale, is the preferred way to
 * update a transform when both hpr and scale are to be changed.
 */ 4 4 this 3 3898  5 other 1 3888  3 hpr 1 3796  5 scale 1 3796  
656 0 0 4 746 3816 0 0 219 /**
 * Sets the rotation and scale components of the transform, leaving
 * translation untouched.  This, or set_pos_hpr_scale, is the preferred way to
 * update a transform when both hpr and scale are to be changed.
 */ 8 4 this 3 3898  5 other 1 3888  1 h 1 3595  1 p 1 3595  1 r 1 3595  2 sx 1 3595  2 sy 1 3595  2 sz 1 3595  
657 0 0 4 746 3816 0 0 101 /**
 * Sets the rotation and scale components of the transform, leaving
 * translation untouched.
 */ 7 4 this 3 3898  1 h 1 3595  1 p 1 3595  1 r 1 3595  2 sx 1 3595  2 sy 1 3595  2 sz 1 3595  
658 0 0 4 747 3816 0 0 101 /**
 * Sets the rotation and scale components of the transform, leaving
 * translation untouched.
 */ 3 4 this 3 3898  4 quat 1 3798  5 scale 1 3796  
659 0 0 4 747 3816 0 0 221 /**
 * Sets the rotation and scale components of the transform, leaving
 * translation untouched.  This, or set_pos_quat_scale, is the preferred way
 * to update a transform when both quat and scale are to be changed.
 */ 4 4 this 3 3898  5 other 1 3888  4 quat 1 3798  5 scale 1 3796  
660 0 0 4 748 3816 0 0 102 /**
 * Replaces the translation, rotation, and scale components, implicitly
 * setting shear to 0.
 */ 4 4 this 3 3898  3 pos 1 3796  3 hpr 1 3796  5 scale 1 3796  
661 0 0 4 748 3816 0 0 160 /**
 * Completely replaces the transform with new translation, rotation, and scale
 * components, relative to the other node, implicitly setting shear to 0.
 */ 5 4 this 3 3898  5 other 1 3888  3 pos 1 3796  3 hpr 1 3796  5 scale 1 3796  
662 0 0 4 748 3816 0 0 129 /**
 * Completely replaces the transform with new translation, rotation, and scale
 * components, relative to the other node.
 */ 11 4 this 3 3898  5 other 1 3888  1 x 1 3595  1 y 1 3595  1 z 1 3595  1 h 1 3595  1 p 1 3595  1 r 1 3595  2 sx 1 3595  2 sy 1 3595  2 sz 1 3595  
663 0 0 4 748 3816 0 0 101 /**
 * Completely replaces the transform with new translation, rotation, and scale
 * components.
 */ 10 4 this 3 3898  1 x 1 3595  1 y 1 3595  1 z 1 3595  1 h 1 3595  1 p 1 3595  1 r 1 3595  2 sx 1 3595  2 sy 1 3595  2 sz 1 3595  
664 0 0 4 749 3816 0 0 102 /**
 * Replaces the translation, rotation, and scale components, implicitly
 * setting shear to 0.
 */ 4 4 this 3 3898  3 pos 1 3796  4 quat 1 3798  5 scale 1 3796  
665 0 0 4 749 3816 0 0 160 /**
 * Completely replaces the transform with new translation, rotation, and scale
 * components, relative to the other node, implicitly setting shear to 0.
 */ 5 4 this 3 3898  5 other 1 3888  3 pos 1 3796  4 quat 1 3798  5 scale 1 3796  
666 0 0 4 750 3816 0 0 108 /**
 * Completely replaces the transform with new translation, rotation, scale,
 * and shear components.
 */ 5 4 this 3 3898  3 pos 1 3796  3 hpr 1 3796  5 scale 1 3796  5 shear 1 3796  
667 0 0 4 750 3816 0 0 136 /**
 * Completely replaces the transform with new translation, rotation, scale,
 * and shear components, relative to the other node.
 */ 6 4 this 3 3898  5 other 1 3888  3 pos 1 3796  3 hpr 1 3796  5 scale 1 3796  5 shear 1 3796  
668 0 0 4 751 3816 0 0 108 /**
 * Completely replaces the transform with new translation, rotation, scale,
 * and shear components.
 */ 5 4 this 3 3898  3 pos 1 3796  4 quat 1 3798  5 scale 1 3796  5 shear 1 3796  
669 0 0 4 751 3816 0 0 136 /**
 * Completely replaces the transform with new translation, rotation, scale,
 * and shear components, relative to the other node.
 */ 6 4 this 3 3898  5 other 1 3888  3 pos 1 3796  4 quat 1 3798  5 scale 1 3796  5 shear 1 3796  
670 0 0 4 752 3816 0 0 59 /**
 * Directly sets an arbitrary 4x4 transform matrix.
 */ 2 4 this 3 3898  3 mat 1 3800  
671 0 0 4 752 3816 0 0 136 /**
 * Converts the indicated matrix from the other's coordinate space to the
 * local coordinate space, and applies it to the node.
 */ 3 4 this 3 3898  5 other 1 3888  3 mat 1 3800  
672 0 0 4 753 3816 0 0 69 /**
 * Completely removes any transform from the referenced node.
 */ 1 4 this 3 3898  
673 0 0 6 754 3597 0 0 119 /**
 * Returns true if a non-identity transform matrix has been applied to the
 * referenced node, false otherwise.
 */ 1 4 this 3 3888  
674 0 0 6 755 3800 0 0 142 /**
 * Returns the transform matrix that has been applied to the referenced node,
 * or the identity matrix if no matrix has been applied.
 */ 1 4 this 3 3888  
675 0 0 7 755 3813 0 0 149 /**
 * Returns the matrix that describes the coordinate space of the bottom node,
 * relative to the other path's bottom node's coordinate space.
 */ 2 4 this 3 3888  5 other 1 3888  
676 0 0 4 756 3816 0 0 100 /**
 * Sets the hpr on this NodePath so that it rotates to face the indicated
 * point in space.
 */ 3 4 this 3 3898  5 point 1 3903  2 up 5 3904  
677 0 0 4 756 3816 0 0 147 /**
 * Sets the transform on this NodePath so that it rotates to face the
 * indicated point in space, which is relative to the other NodePath.
 */ 4 4 this 3 3898  5 other 1 3888  5 point 5 3903  2 up 5 3904  
678 0 0 4 756 3816 0 0 141 /**
 * Sets the hpr on this NodePath so that it rotates to face the indicated
 * point in space, which is relative to the other NodePath.
 */ 5 4 this 3 3898  5 other 1 3888  1 x 1 3595  1 y 1 3595  1 z 1 3595  
679 0 0 4 756 3816 0 0 216 /**
 * Sets the transform on this NodePath so that it rotates to face the
 * indicated point in space.  This will overwrite any previously existing
 * scale on the node, although it will preserve any translation.
 */ 4 4 this 3 3898  1 x 1 3595  1 y 1 3595  1 z 1 3595  
680 0 0 4 757 3816 0 0 133 /**
 * Behaves like look_at(), but with a strong preference to keeping the up
 * vector oriented in the indicated "up" direction.
 */ 3 4 this 3 3898  5 point 1 3903  2 up 5 3904  
681 0 0 4 757 3816 0 0 133 /**
 * Behaves like look_at(), but with a strong preference to keeping the up
 * vector oriented in the indicated "up" direction.
 */ 4 4 this 3 3898  5 other 1 3888  5 point 5 3903  2 up 5 3904  
682 0 0 4 757 3816 0 0 133 /**
 * Behaves like look_at(), but with a strong preference to keeping the up
 * vector oriented in the indicated "up" direction.
 */ 5 4 this 3 3898  5 other 1 3888  1 x 1 3595  1 y 1 3595  1 z 1 3595  
683 0 0 4 757 3816 0 0 133 /**
 * Behaves like look_at(), but with a strong preference to keeping the up
 * vector oriented in the indicated "up" direction.
 */ 4 4 this 3 3898  1 x 1 3595  1 y 1 3595  1 z 1 3595  
684 0 0 7 758 3810 0 0 148 /**
 * Given that the indicated point is in the coordinate system of the other
 * node, returns the same point in this node's coordinate system.
 */ 3 4 this 3 3888  5 other 1 3888  5 point 1 3796  
685 0 0 7 759 3902 0 0 150 /**
 * Given that the indicated vector is in the coordinate system of the other
 * node, returns the same vector in this node's coordinate system.
 */ 3 4 this 3 3888  5 other 1 3888  3 vec 1 3796  
686 0 0 6 760 3595 0 0 143 /**
 * Returns the straight-line distance between this referenced node's
 * coordinate frame's origin, and that of the other node's origin.
 */ 2 4 this 3 3888  5 other 1 3888  
687 0 0 4 761 3816 0 0 189 /**
 * Applies a scene-graph color to the referenced node.  This color will apply
 * to all geometry at this level and below (that does not specify a new color
 * or a set_color_off()).
 */ 3 4 this 3 3898  5 color 1 3824  8 priority 5 3590  
688 0 0 4 761 3816 0 0 189 /**
 * Applies a scene-graph color to the referenced node.  This color will apply
 * to all geometry at this level and below (that does not specify a new color
 * or a set_color_off()).
 */ 6 4 this 3 3898  1 r 1 3595  1 g 1 3595  1 b 1 3595  1 a 5 3595  8 priority 5 3590  
689 0 0 4 762 3816 0 0 277 /**
 * Sets the geometry at this level and below to render using the geometry
 * color.  This is normally the default, but it may be useful to use this to
 * contradict set_color() at a higher node level (or, with a priority, to
 * override a set_color() at a lower level).
 */ 2 4 this 3 3898  8 priority 5 3590  
690 0 0 4 763 3816 0 0 209 /**
 * Completely removes any color adjustment from the node.  This allows the
 * natural color of the geometry, or whatever color transitions might be
 * otherwise affecting the geometry, to show instead.
 */ 1 4 this 3 3898  
691 0 0 6 764 3597 0 0 90 /**
 * Returns true if a color has been applied to the given node, false
 * otherwise.
 */ 1 4 this 3 3888  
692 0 0 7 765 3906 0 0 107 /**
 * Returns the color that has been assigned to the node, or black if no color
 * has been assigned.
 */ 1 4 this 3 3888  
693 0 0 6 766 3597 0 0 194 /**
 * Returns true if a color scale has been applied to the referenced node,
 * false otherwise.  It is still possible that color at this node might have
 * been scaled by an ancestor node.
 */ 1 4 this 3 3888  
694 0 0 4 767 3816 0 0 221 /**
 * Completely removes any color scale from the referenced node.  This is
 * preferable to simply setting the color scale to identity, as it also
 * removes the overhead associated with having a color scale at all.
 */ 1 4 this 3 3898  
695 0 0 4 768 3816 0 0 106 /**
 * Sets the color scale component of the transform, leaving translation and
 * rotation untouched.
 */ 3 4 this 3 3898  5 scale 1 3884  8 priority 5 3590  
696 0 0 4 768 3816 0 0 58 /**
 * Sets the color scale component of the transform
 */ 6 4 this 3 3898  2 sx 1 3595  2 sy 1 3595  2 sz 1 3595  2 sa 1 3595  8 priority 5 3590  
697 0 0 4 769 3816 0 0 138 /**
 * multiplies the color scale component of the transform, with previous color
 * scale leaving translation and rotation untouched.
 */ 3 4 this 3 3898  5 scale 1 3884  8 priority 5 3590  
698 0 0 4 769 3816 0 0 58 /**
 * Sets the color scale component of the transform
 */ 6 4 this 3 3898  2 sx 1 3595  2 sy 1 3595  2 sz 1 3595  2 sa 1 3595  8 priority 5 3590  
699 0 0 4 770 3816 0 0 533 /**
 * Disables any color scale attribute inherited from above.  This is not the
 * same thing as clear_color_scale(), which undoes any previous
 * set_color_scale() operation on this node; rather, this actively disables
 * any set_color_scale() that might be inherited from a parent node.  This
 * also disables set_alpha_scale() at the same time.
 *
 * It is legal to specify a new color scale on the same node with a subsequent
 * call to set_color_scale() or set_alpha_scale(); this new scale will apply
 * to lower geometry.
 */ 2 4 this 3 3898  8 priority 5 3590  
700 0 0 4 771 3816 0 0 176 /**
 * Sets the alpha scale component of the transform without (much) affecting
 * the color scale.  Note that any priority specified will also apply to the
 * color scale.
 */ 3 4 this 3 3898  5 scale 1 3595  8 priority 5 3590  
701 0 0 4 772 3816 0 0 206 /**
 * Scales all the color components of the object by the same amount, darkening
 * the object, without (much) affecting alpha.  Note that any priority
 * specified will also apply to the alpha scale.
 */ 3 4 this 3 3898  5 scale 1 3595  8 priority 5 3590  
702 0 0 4 773 3816 0 0 79 /**
 * Sets the red component of the color scale.
 * @see set_color_scale()
 */ 2 4 this 3 3898  2 sr 1 3595  
703 0 0 4 774 3816 0 0 81 /**
 * Sets the green component of the color scale.
 * @see set_color_scale()
 */ 2 4 this 3 3898  2 sg 1 3595  
704 0 0 4 775 3816 0 0 80 /**
 * Sets the blue component of the color scale.
 * @see set_color_scale()
 */ 2 4 this 3 3898  2 sb 1 3595  
705 0 0 4 776 3816 0 0 81 /**
 * Sets the alpha component of the color scale.
 * @see set_color_scale()
 */ 2 4 this 3 3898  2 sa 1 3595  
706 0 0 6 777 3884 0 0 234 /**
 * Returns the complete color scale vector that has been applied to this node
 * via a previous call to set_color_scale() and/or set_alpha_scale(), or all
 * 1's (identity) if no scale has been applied to this particular node.
 */ 1 4 this 3 3888  
707 0 0 6 778 3595 0 0 79 /**
 * Gets the red component of the color scale.
 * @see get_color_scale()
 */ 1 4 this 3 3888  
708 0 0 6 779 3595 0 0 81 /**
 * Gets the green component of the color scale.
 * @see get_color_scale()
 */ 1 4 this 3 3888  
709 0 0 6 780 3595 0 0 80 /**
 * Gets the blue component of the color scale.
 * @see get_color_scale()
 */ 1 4 this 3 3888  
710 0 0 6 781 3595 0 0 81 /**
 * Gets the alpha component of the color scale.
 * @see get_color_scale()
 */ 1 4 this 3 3888  
711 0 0 4 782 3816 0 0 309 /**
 * Adds the indicated Light or PolylightNode to the list of lights that
 * illuminate geometry at this node and below.  The light itself should be
 * parented into the scene graph elsewhere, to represent the light's position
 * in space; but until set_light() is called it will illuminate no geometry.
 */ 3 4 this 3 3898  5 light 1 3888  8 priority 5 3590  
712 0 0 4 783 3816 0 0 396 /**
 * Sets the geometry at this level and below to render without using the
 * indicated Light.  This is different from not specifying the Light; rather,
 * this specifically contradicts set_light() at a higher node level (or, with
 * a priority, overrides a set_light() at a lower level).
 *
 * This interface does not support PolylightNodes, which cannot be turned off
 * at a lower level.
 */ 3 4 this 3 3898  5 light 1 3888  8 priority 5 3590  
713 0 0 4 783 3816 0 0 401 /**
 * Sets the geometry at this level and below to render using no lights at all.
 * This is different from not specifying a light; rather, this specifically
 * contradicts set_light() at a higher node level (or, with a priority,
 * overrides a set_light() at a lower level).
 *
 * If no lights are in effect on a particular piece of geometry, that geometry
 * is rendered with lighting disabled.
 */ 2 4 this 3 3898  8 priority 5 3590  
714 0 0 4 784 3816 0 0 141 /**
 * Completely removes any lighting operations that may have been set via
 * set_light() or set_light_off() from this particular node.
 */ 1 4 this 3 3898  
715 0 0 4 784 3816 0 0 94 /**
 * Removes any reference to the indicated Light or PolylightNode from the
 * NodePath.
 */ 2 4 this 3 3898  5 light 1 3888  
716 0 0 6 785 3597 0 0 207 /**
 * Returns true if the indicated Light or PolylightNode has been specifically
 * enabled on this particular node.  This means that someone called
 * set_light() on this node with the indicated light.
 */ 2 4 this 3 3888  5 light 1 3888  
717 0 0 6 786 3597 0 0 181 /**
 * Returns true if all Lights have been specifically disabled on this
 * particular node.  This means that someone called set_light_off() on this
 * node with no parameters.
 */ 1 4 this 3 3888  
718 0 0 6 786 3597 0 0 297 /**
 * Returns true if the indicated Light has been specifically disabled on this
 * particular node.  This means that someone called set_light_off() on this
 * node with the indicated light.
 *
 * This interface does not support PolylightNodes, which cannot be turned off
 * at a lower level.
 */ 2 4 this 3 3888  5 light 1 3888  
719 0 0 4 787 3816 0 0 324 /**
 * Adds the indicated clipping plane to the list of planes that apply to
 * geometry at this node and below.  The clipping plane itself, a PlaneNode,
 * should be parented into the scene graph elsewhere, to represent the plane's
 * position in space; but until set_clip_plane() is called it will clip no
 * geometry.
 */ 3 4 this 3 3898  10 clip_plane 1 3888  8 priority 5 3590  
720 0 0 4 788 3816 0 0 326 /**
 * Sets the geometry at this level and below to render without being clipped
 * by the indicated PlaneNode.  This is different from not specifying the
 * PlaneNode; rather, this specifically contradicts set_clip_plane() at a
 * higher node level (or, with a priority, overrides a set_clip_plane() at a
 * lower level).
 */ 3 4 this 3 3898  10 clip_plane 1 3888  8 priority 5 3590  
721 0 0 4 788 3816 0 0 465 /**
 * Sets the geometry at this level and below to render using no clip_planes at
 * all.  This is different from not specifying a clip_plane; rather, this
 * specifically contradicts set_clip_plane() at a higher node level (or, with
 * a priority, overrides a set_clip_plane() at a lower level).
 *
 * If no clip_planes are in effect on a particular piece of geometry, that
 * geometry is rendered without being clipped (other than by the viewing
 * frustum).
 */ 2 4 this 3 3898  8 priority 5 3590  
722 0 0 4 789 3816 0 0 143 /**
 * Completely removes any clip planes that may have been set via
 * set_clip_plane() or set_clip_plane_off() from this particular node.
 */ 1 4 this 3 3898  
723 0 0 4 789 3816 0 0 83 /**
 * Removes any reference to the indicated clipping plane from the NodePath.
 */ 2 4 this 3 3898  10 clip_plane 1 3888  
724 0 0 6 790 3597 0 0 209 /**
 * Returns true if the indicated clipping plane has been specifically applied
 * to this particular node.  This means that someone called set_clip_plane()
 * on this node with the indicated clip_plane.
 */ 2 4 this 3 3888  10 clip_plane 1 3888  
725 0 0 6 791 3597 0 0 195 /**
 * Returns true if all clipping planes have been specifically disabled on this
 * particular node.  This means that someone called set_clip_plane_off() on
 * this node with no parameters.
 */ 1 4 this 3 3888  
726 0 0 6 791 3597 0 0 214 /**
 * Returns true if the indicated clipping plane has been specifically disabled
 * on this particular node.  This means that someone called
 * set_clip_plane_off() on this node with the indicated clip_plane.
 */ 2 4 this 3 3888  10 clip_plane 1 3888  
727 0 0 4 792 3816 0 0 280 /**
 * Sets up a scissor region on the nodes rendered at this level and below.
 * The two points are understood to be relative to this node.  When these
 * points are projected into screen space, they define the diagonally-opposite
 * points that determine the scissor region.
 */ 3 4 this 3 3898  1 a 1 3903  1 b 1 3903  
728 0 0 4 792 3816 0 0 347 /**
 * Sets up a scissor region on the nodes rendered at this level and below.
 * The four points are understood to be relative to this node.  When these
 * points are projected into screen space, they define the bounding volume of
 * the scissor region (the scissor region is the smallest onscreen rectangle
 * that encloses all four points).
 */ 5 4 this 3 3898  1 a 1 3903  1 b 1 3903  1 c 1 3903  1 d 1 3903  
729 0 0 4 792 3816 0 0 294 /**
 * Sets up a scissor region on the nodes rendered at this level and below.
 * The two points are understood to be relative to the indicated other node.
 * When these points are projected into screen space, they define the
 * diagonally-opposite points that determine the scissor region.
 */ 4 4 this 3 3898  5 other 1 3888  1 a 1 3903  1 b 1 3903  
730 0 0 4 792 3816 0 0 361 /**
 * Sets up a scissor region on the nodes rendered at this level and below.
 * The four points are understood to be relative to the indicated other node.
 * When these points are projected into screen space, they define the bounding
 * volume of the scissor region (the scissor region is the smallest onscreen
 * rectangle that encloses all four points).
 */ 6 4 this 3 3898  5 other 1 3888  1 a 1 3903  1 b 1 3903  1 c 1 3903  1 d 1 3903  
731 0 0 4 792 3816 0 0 322 /**
 * Sets up a scissor region on the nodes rendered at this level and below.
 * The four coordinates are understood to define a rectangle in screen space.
 * These numbers are relative to the current DisplayRegion, where (0,0) is the
 * lower-left corner of the DisplayRegion, and (1,1) is the upper-right
 * corner.
 */ 5 4 this 3 3898  4 left 1 3595  5 right 1 3595  6 bottom 1 3595  3 top 1 3595  
732 0 0 4 793 3816 0 0 113 /**
 * Removes the scissor region that was defined at this node level by a
 * previous call to set_scissor().
 */ 1 4 this 3 3898  
733 0 0 6 794 3597 0 0 325 /**
 * Returns true if a scissor region was defined at this node by a previous
 * call to set_scissor().  This does not check for scissor regions inherited
 * from a parent class.  It also does not check for the presence of a low-
 * level ScissorAttrib, which is different from the ScissorEffect added by
 * set_scissor.
 */ 1 4 this 3 3888  
734 0 0 4 795 3816 0 0 320 /**
 * Adds the indicated occluder to the list of occluders that apply to geometry
 * at this node and below.  The occluder itself, an OccluderNode, should be
 * parented into the scene graph elsewhere, to represent the occluder's
 * position in space; but until set_occluder() is called it will clip no
 * geometry.
 */ 2 4 this 3 3898  8 occluder 1 3888  
735 0 0 4 796 3816 0 0 115 /**
 * Completely removes any occluders that may have been set via set_occluder()
 * from this particular node.
 */ 1 4 this 3 3898  
736 0 0 4 796 3816 0 0 77 /**
 * Removes any reference to the indicated occluder from the NodePath.
 */ 2 4 this 3 3898  8 occluder 1 3888  
737 0 0 6 797 3597 0 0 199 /**
 * Returns true if the indicated occluder has been specifically applied to
 * this particular node.  This means that someone called set_occluder() on
 * this node with the indicated occluder.
 */ 2 4 this 3 3888  8 occluder 1 3888  
738 0 0 4 798 3816 0 0 884 /**
 * Assigns the geometry at this level and below to the named rendering bin.
 * It is the user's responsibility to ensure that such a bin already exists,
 * either via the cull-bin Configrc variable, or by explicitly creating a
 * GeomBin of the appropriate type at runtime.
 *
 * There are two default bins created when Panda is started: "default" and
 * "fixed".  Normally, all geometry is assigned to "default" unless specified
 * otherwise.  This bin renders opaque geometry in state-sorted order,
 * followed by transparent geometry sorted back-to-front.  If any geometry is
 * assigned to "fixed", this will be rendered following all the geometry in
 * "default", in the order specified by draw_order for each piece of geometry
 * so assigned.
 *
 * The draw_order parameter is meaningful only for GeomBinFixed type bins,
 * e.g.  "fixed".  Other kinds of bins ignore it.
 */ 4 4 this 3 3898  8 bin_name 1 3845  10 draw_order 1 3590  8 priority 5 3590  
739 0 0 4 799 3816 0 0 115 /**
 * Completely removes any bin adjustment that may have been set via set_bin()
 * from this particular node.
 */ 1 4 this 3 3898  
740 0 0 6 800 3597 0 0 122 /**
 * Returns true if the node has been assigned to the a particular rendering
 * bin via set_bin(), false otherwise.
 */ 1 4 this 3 3888  
741 0 0 6 801 3845 0 0 175 /**
 * Returns the name of the bin that this particular node was assigned to via
 * set_bin(), or the empty string if no bin was assigned.  See set_bin() and
 * has_bin().
 */ 1 4 this 3 3888  
742 0 0 6 802 3590 0 0 182 /**
 * Returns the drawing order associated with the bin that this particular node
 * was assigned to via set_bin(), or 0 if no bin was assigned.  See set_bin()
 * and has_bin().
 */ 1 4 this 3 3888  
743 0 0 4 803 3816 0 0 558 /**
 * Adds the indicated texture to the list of textures that will be rendered on
 * the default texture stage.
 *
 * The given sampler state will override the sampling settings on the texture
 * itself.  Note that this method makes a copy of the sampler settings that
 * you give; further changes to this object will not be reflected.
 *
 * This is the convenience single-texture variant of this method; it is now
 * superceded by set_texture() that accepts a stage and texture.  You may use
 * this method if you just want to adjust the default stage.
 */ 4 4 this 3 3898  3 tex 1 3753  7 sampler 1 3881  8 priority 5 3590  
744 0 0 4 803 3816 0 0 334 /**
 * Adds the indicated texture to the list of textures that will be rendered on
 * the default texture stage.
 *
 * This is the convenience single-texture variant of this method; it is now
 * superceded by set_texture() that accepts a stage and texture.  You may use
 * this method if you just want to adjust the default stage.
 */ 3 4 this 3 3898  3 tex 1 3753  8 priority 5 3590  
745 0 0 4 803 3816 0 0 583 /**
 * Adds the indicated texture to the list of textures that will be rendered on
 * the indicated multitexture stage.  If there are multiple texture stages
 * specified (possibly on multiple different nodes at different levels), they
 * will all be applied to geometry together, according to the stage
 * specification set up in the TextureStage object.
 *
 * The given sampler state will override the sampling settings on the texture
 * itself.  Note that this method makes a copy of the sampler settings that
 * you give; further changes to this object will not be reflected.
 */ 5 4 this 3 3898  5 stage 1 3751  3 tex 1 3753  7 sampler 1 3881  8 priority 5 3590  
746 0 0 4 803 3816 0 0 359 /**
 * Adds the indicated texture to the list of textures that will be rendered on
 * the indicated multitexture stage.  If there are multiple texture stages
 * specified (possibly on multiple different nodes at different levels), they
 * will all be applied to geometry together, according to the stage
 * specification set up in the TextureStage object.
 */ 4 4 this 3 3898  5 stage 1 3751  3 tex 1 3753  8 priority 5 3590  
747 0 0 4 804 3816 0 0 305 /**
 * Sets the geometry at this level and below to render using no texture, on
 * the indicated stage.  This is different from not specifying a texture;
 * rather, this specifically contradicts set_texture() at a higher node level
 * (or, with a priority, overrides a set_texture() at a lower level).
 */ 3 4 this 3 3898  5 stage 1 3751  8 priority 5 3590  
748 0 0 4 804 3816 0 0 295 /**
 * Sets the geometry at this level and below to render using no texture, on
 * any stage.  This is different from not specifying a texture; rather, this
 * specifically contradicts set_texture() at a higher node level (or, with a
 * priority, overrides a set_texture() at a lower level).
 */ 2 4 this 3 3898  8 priority 5 3590  
749 0 0 4 805 3816 0 0 240 /**
 * Completely removes any texture adjustment that may have been set via
 * set_texture() or set_texture_off() from this particular node.  This allows
 * whatever textures might be otherwise affecting the geometry to show
 * instead.
 */ 1 4 this 3 3898  
750 0 0 4 805 3816 0 0 82 /**
 * Removes any reference to the indicated texture stage from the NodePath.
 */ 2 4 this 3 3898  5 stage 1 3751  
751 0 0 6 806 3597 0 0 293 /**
 * Returns true if a texture has been applied to this particular node via
 * set_texture(), false otherwise.  This is not the same thing as asking
 * whether the geometry at this node will be rendered with texturing, as there
 * may be a texture in effect from a higher or lower level.
 */ 1 4 this 3 3888  
752 0 0 6 806 3597 0 0 306 /**
 * Returns true if texturing has been specifically enabled on this particular
 * node for the indicated stage.  This means that someone called set_texture()
 * on this node with the indicated stage name, or the stage_name is the
 * default stage_name, and someone called set_texture() on this node.
 */ 2 4 this 3 3888  5 stage 1 3751  
753 0 0 6 807 3597 0 0 307 /**
 * Returns true if texturing has been specifically disabled on this particular
 * node via set_texture_off(), false otherwise.  This is not the same thing as
 * asking whether the geometry at this node will be rendered untextured, as
 * there may be a texture in effect from a higher or lower level.
 */ 1 4 this 3 3888  
754 0 0 6 807 3597 0 0 295 /**
 * Returns true if texturing has been specifically disabled on this particular
 * node for the indicated stage.  This means that someone called
 * set_texture_off() on this node with the indicated stage name, or that
 * someone called set_texture_off() on this node to remove all stages.
 */ 2 4 this 3 3888  5 stage 1 3751  
755 0 0 7 808 3753 0 0 318 /**
 * Returns the base-level texture that has been set on this particular node,
 * or NULL if no texture has been set.  This is not necessarily the texture
 * that will be applied to the geometry at or below this level, as another
 * texture at a higher or lower level may override.
 *
 * See also find_texture().
 */ 1 4 this 3 3888  
756 0 0 7 808 3753 0 0 151 /**
 * Returns the texture that has been set on the indicated stage for this
 * particular node, or NULL if no texture has been set for this stage.
 */ 2 4 this 3 3888  5 stage 1 3751  
757 0 0 4 809 3816 0 0 219 /**
 * Recursively searches the scene graph for references to the given texture,
 * and replaces them with the new texture.
 *
 * As of Panda3D 1.10.13, new_tex may be null to remove the texture.
 *
 * @since 1.10.4
 */ 3 4 this 3 3898  3 tex 1 3753  7 new_tex 1 3753  
758 0 0 4 809 3816 0 0 46 // Let interrogate know this also accepts None 3 4 this 3 3898  3 tex 1 3753  7 new_tex 1 3907  
759 0 0 6 810 3881 0 0 321 /**
 * Returns the sampler state that has been given for the base-level texture
 * that has been set on this particular node.  If no sampler state was given,
 * this returns the texture's default sampler settings.
 *
 * It is an error to call this if there is no base-level texture applied to
 * this particular node.
 */ 1 4 this 3 3888  
760 0 0 6 810 3881 0 0 326 /**
 * Returns the sampler state that has been given for the indicated texture
 * stage that has been set on this particular node.  If no sampler state was
 * given, this returns the texture's default sampler settings.
 *
 * It is an error to call this if there is no texture set for this stage on
 * this particular node.
 */ 2 4 this 3 3888  5 stage 1 3751  
761 0 0 4 811 3816 0 0 10 /**
 *
 */ 3 4 this 3 3898  3 sha 1 3769  8 priority 5 3590  
762 0 0 4 812 3816 0 0 10 /**
 *
 */ 2 4 this 3 3898  8 priority 5 3590  
763 0 0 4 813 3816 0 0 51 /**
 * overloaded for auto shader customization
 */ 3 4 this 3 3898  13 shader_switch 1 3909  8 priority 5 3590  
764 0 0 4 813 3816 0 0 10 /**
 *
 */ 2 4 this 3 3898  8 priority 5 3590  
765 0 0 4 814 3816 0 0 10 /**
 *
 */ 1 4 this 3 3898  
766 0 0 4 815 3816 0 0 10 /**
 *
 */ 7 4 this 3 3898  2 id 1 3877  2 n1 1 3595  2 n2 1 3595  2 n3 5 3595  2 n4 5 3595  8 priority 5 3590  
767 0 0 36 815 3816 0 0 0 4 4 this 3 3898  6 param0 0 3877  6 param1 0 3620  8 priority 5 3590  
768 0 0 4 815 3816 0 0 10 /**
 *
 */ 5 4 this 3 3898  2 id 1 3877  3 tex 1 3753  7 sampler 1 3881  8 priority 5 3590  
769 0 0 4 815 3816 0 0 10 /**
 *
 */ 8 4 this 3 3898  2 id 1 3877  3 tex 1 3753  4 read 1 3597  5 write 1 3597  1 z 5 3590  1 n 5 3590  8 priority 5 3590  
770 0 0 4 815 3816 0 0 10 /**
 *
 */ 7 4 this 3 3898  2 id 1 3877  2 n1 1 3590  2 n2 1 3590  2 n3 5 3590  2 n4 5 3590  8 priority 5 3590  
771 0 0 4 815 3816 0 0 10 /**
 *
 */ 2 4 this 3 3898  5 input 1 3882  
772 0 0 36 816 3816 0 0 0 3 4 this 3 3898  4 args 1 3620  6 kwargs 1 3620  
773 0 0 4 817 3816 0 0 10 /**
 *
 */ 2 4 this 3 3898  2 id 1 3877  
774 0 0 4 818 3816 0 0 174 /**
 * Sets the geometry instance count, or 0 if geometry instancing should be
 * disabled.  Do not confuse with instanceTo which only applies to animation
 * instancing.
 */ 2 4 this 3 3898  14 instance_count 1 3590  
775 0 0 7 819 3769 0 0 10 /**
 *
 */ 1 4 this 3 3888  
776 0 0 7 820 3880 2285 0 10 /**
 *
 */ 2 4 this 3 3888  2 id 1 3877  
777 0 0 6 821 3590 0 0 93 /**
 * Returns the geometry instance count, or 0 if disabled.  See
 * set_instance_count.
 */ 1 4 this 3 3888  
778 0 0 4 822 3816 0 0 105 /**
 * Sets the texture matrix on the current node to the indicated transform for
 * the given stage.
 */ 4 4 this 3 3898  5 other 1 3888  5 stage 1 3751  9 transform 1 3792  
779 0 0 4 822 3816 0 0 105 /**
 * Sets the texture matrix on the current node to the indicated transform for
 * the given stage.
 */ 3 4 this 3 3898  5 stage 1 3751  9 transform 1 3792  
780 0 0 4 823 3816 0 0 62 /**
 * Removes all texture matrices from the current node.
 */ 1 4 this 3 3898  
781 0 0 4 823 3816 0 0 78 /**
 * Removes the texture matrix on the current node for the given stage.
 */ 2 4 this 3 3898  5 stage 1 3751  
782 0 0 6 824 3597 0 0 106 /**
 * Returns true if there is an explicit texture matrix on the current node for
 * the given stage.
 */ 2 4 this 3 3888  5 stage 1 3751  
783 0 0 7 825 3792 0 0 109 /**
 * Returns the texture matrix on the current node for the given stage,
 * relative to the other node.
 */ 3 4 this 3 3888  5 other 1 3888  5 stage 1 3751  
784 0 0 7 825 3792 0 0 165 /**
 * Returns the texture matrix on the current node for the given stage, or
 * identity transform if there is no explicit transform set for the given
 * stage.
 */ 2 4 this 3 3888  5 stage 1 3751  
785 0 0 4 826 3816 0 0 183 /**
 * Sets a texture matrix on the current node to apply the indicated offset to
 * UV's for the given stage.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */ 4 4 this 3 3898  5 other 1 3888  5 stage 1 3751  2 uv 1 3802  
786 0 0 4 826 3816 0 0 183 /**
 * Sets a texture matrix on the current node to apply the indicated offset to
 * UV's for the given stage.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */ 5 4 this 3 3898  5 other 1 3888  5 stage 1 3751  1 u 1 3595  1 v 1 3595  
787 0 0 4 826 3816 0 0 183 /**
 * Sets a texture matrix on the current node to apply the indicated offset to
 * UV's for the given stage.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */ 3 4 this 3 3898  5 stage 1 3751  2 uv 1 3802  
788 0 0 4 826 3816 0 0 183 /**
 * Sets a texture matrix on the current node to apply the indicated offset to
 * UV's for the given stage.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */ 4 4 this 3 3898  5 stage 1 3751  1 u 1 3595  1 v 1 3595  
789 0 0 4 827 3816 0 0 208 /**
 * Sets a texture matrix on the current node to apply the indicated rotation,
 * clockwise in degrees, to UV's for the given stage.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */ 4 4 this 3 3898  5 other 1 3888  5 stage 1 3751  1 r 1 3595  
790 0 0 4 827 3816 0 0 208 /**
 * Sets a texture matrix on the current node to apply the indicated rotation,
 * clockwise in degrees, to UV's for the given stage.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */ 3 4 this 3 3898  5 stage 1 3751  1 r 1 3595  
791 0 0 4 828 3816 0 0 182 /**
 * Sets a texture matrix on the current node to apply the indicated scale to
 * UV's for the given stage.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */ 4 4 this 3 3898  5 other 1 3888  5 stage 1 3751  5 scale 1 3802  
792 0 0 4 828 3816 0 0 174 /**
 * Sets a texture matrix on the current node to apply the indicated scale to
 * UVW's for the given stage.
 *
 * This call is appropriate for 3-d texture coordinates.
 */ 4 4 this 3 3898  5 other 1 3888  5 stage 1 3751  5 scale 1 3796  
793 0 0 4 828 3816 0 0 180 /**
 * Sets a texture matrix on the current node to apply the indicated scale to
 * UV's for the given stage.
 *
 * This call is appropriate for 2-d or 3-d texture coordinates.
 */ 4 4 this 3 3898  5 other 1 3888  5 stage 1 3751  5 scale 1 3595  
794 0 0 4 828 3816 0 0 182 /**
 * Sets a texture matrix on the current node to apply the indicated scale to
 * UV's for the given stage.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */ 5 4 this 3 3898  5 other 1 3888  5 stage 1 3751  2 su 1 3595  2 sv 1 3595  
795 0 0 4 828 3816 0 0 174 /**
 * Sets a texture matrix on the current node to apply the indicated scale to
 * UVW's for the given stage.
 *
 * This call is appropriate for 3-d texture coordinates.
 */ 6 4 this 3 3898  5 other 1 3888  5 stage 1 3751  2 su 1 3595  2 sv 1 3595  2 sw 1 3595  
796 0 0 4 828 3816 0 0 182 /**
 * Sets a texture matrix on the current node to apply the indicated scale to
 * UV's for the given stage.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */ 3 4 this 3 3898  5 stage 1 3751  5 scale 1 3802  
797 0 0 4 828 3816 0 0 174 /**
 * Sets a texture matrix on the current node to apply the indicated scale to
 * UVW's for the given stage.
 *
 * This call is appropriate for 3-d texture coordinates.
 */ 3 4 this 3 3898  5 stage 1 3751  5 scale 1 3796  
798 0 0 4 828 3816 0 0 181 /**
 * Sets a texture matrix on the current node to apply the indicated scale to
 * UVW's for the given stage.
 *
 * This call is appropriate for 2-d or 3-d texture coordinates.
 */ 3 4 this 3 3898  5 stage 1 3751  5 scale 1 3595  
799 0 0 4 828 3816 0 0 182 /**
 * Sets a texture matrix on the current node to apply the indicated scale to
 * UV's for the given stage.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */ 4 4 this 3 3898  5 stage 1 3751  2 su 1 3595  2 sv 1 3595  
800 0 0 4 828 3816 0 0 174 /**
 * Sets a texture matrix on the current node to apply the indicated scale to
 * UVW's for the given stage.
 *
 * This call is appropriate for 3-d texture coordinates.
 */ 5 4 this 3 3898  5 stage 1 3751  2 su 1 3595  2 sv 1 3595  2 sw 1 3595  
801 0 0 7 829 3814 0 0 159 /**
 * Returns the offset set for the UV's for the given stage on the current
 * node.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */ 3 4 this 3 3888  5 other 1 3888  5 stage 1 3751  
802 0 0 7 829 3814 0 0 159 /**
 * Returns the offset set for the UV's for the given stage on the current
 * node.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */ 2 4 this 3 3888  5 stage 1 3751  
803 0 0 6 830 3595 0 0 161 /**
 * Returns the rotation set for the UV's for the given stage on the current
 * node.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */ 3 4 this 3 3888  5 other 1 3888  5 stage 1 3751  
804 0 0 6 830 3595 0 0 161 /**
 * Returns the rotation set for the UV's for the given stage on the current
 * node.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */ 2 4 this 3 3888  5 stage 1 3751  
805 0 0 7 831 3814 0 0 155 /**
 * Returns the scale set for the UV's for the given stage on the current node.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */ 3 4 this 3 3888  5 other 1 3888  5 stage 1 3751  
806 0 0 7 831 3814 0 0 155 /**
 * Returns the scale set for the UV's for the given stage on the current node.
 *
 * This call is appropriate for ordinary 2-d texture coordinates.
 */ 2 4 this 3 3888  5 stage 1 3751  
807 0 0 4 832 3816 0 0 175 /**
 * Sets a texture matrix on the current node to apply the indicated offset to
 * UVW's for the given stage.
 *
 * This call is appropriate for 3-d texture coordinates.
 */ 4 4 this 3 3898  5 other 1 3888  5 stage 1 3751  3 uvw 1 3796  
808 0 0 4 832 3816 0 0 175 /**
 * Sets a texture matrix on the current node to apply the indicated offset to
 * UVW's for the given stage.
 *
 * This call is appropriate for 3-d texture coordinates.
 */ 6 4 this 3 3898  5 other 1 3888  5 stage 1 3751  1 u 1 3595  1 v 1 3595  1 w 1 3595  
809 0 0 4 832 3816 0 0 175 /**
 * Sets a texture matrix on the current node to apply the indicated offset to
 * UVW's for the given stage.
 *
 * This call is appropriate for 3-d texture coordinates.
 */ 3 4 this 3 3898  5 stage 1 3751  3 uvw 1 3796  
810 0 0 4 832 3816 0 0 175 /**
 * Sets a texture matrix on the current node to apply the indicated offset to
 * UVW's for the given stage.
 *
 * This call is appropriate for 3-d texture coordinates.
 */ 5 4 this 3 3898  5 stage 1 3751  1 u 1 3595  1 v 1 3595  1 w 1 3595  
811 0 0 4 833 3816 0 0 192 /**
 * Sets a texture matrix on the current node to apply the indicated rotation,
 * as a 3-D HPR, to UVW's for the given stage.
 *
 * This call is appropriate for 3-d texture coordinates.
 */ 4 4 this 3 3898  5 other 1 3888  5 stage 1 3751  3 hpr 1 3796  
812 0 0 4 833 3816 0 0 192 /**
 * Sets a texture matrix on the current node to apply the indicated rotation,
 * as a 3-D HPR, to UVW's for the given stage.
 *
 * This call is appropriate for 3-d texture coordinates.
 */ 6 4 this 3 3898  5 other 1 3888  5 stage 1 3751  1 h 1 3595  1 p 1 3595  1 r 1 3595  
813 0 0 4 833 3816 0 0 192 /**
 * Sets a texture matrix on the current node to apply the indicated rotation,
 * as a 3-D HPR, to UVW's for the given stage.
 *
 * This call is appropriate for 3-d texture coordinates.
 */ 3 4 this 3 3898  5 stage 1 3751  3 hpr 1 3796  
814 0 0 4 833 3816 0 0 192 /**
 * Sets a texture matrix on the current node to apply the indicated rotation,
 * as a 3-D HPR, to UVW's for the given stage.
 *
 * This call is appropriate for 3-d texture coordinates.
 */ 5 4 this 3 3898  5 stage 1 3751  1 h 1 3595  1 p 1 3595  1 r 1 3595  
815 0 0 7 834 3811 0 0 151 /**
 * Returns the offset set for the UVW's for the given stage on the current
 * node.
 *
 * This call is appropriate for 3-d texture coordinates.
 */ 3 4 this 3 3888  5 other 1 3888  5 stage 1 3751  
816 0 0 7 834 3811 0 0 151 /**
 * Returns the offset set for the UVW's for the given stage on the current
 * node.
 *
 * This call is appropriate for 3-d texture coordinates.
 */ 2 4 this 3 3888  5 stage 1 3751  
817 0 0 7 835 3811 0 0 152 /**
 * Returns the 3-D HPR set for the UVW's for the given stage on the current
 * node.
 *
 * This call is appropriate for 3-d texture coordinates.
 */ 3 4 this 3 3888  5 other 1 3888  5 stage 1 3751  
818 0 0 7 835 3811 0 0 152 /**
 * Returns the 3-D HPR set for the UVW's for the given stage on the current
 * node.
 *
 * This call is appropriate for 3-d texture coordinates.
 */ 2 4 this 3 3888  5 stage 1 3751  
819 0 0 7 836 3811 0 0 150 /**
 * Returns the scale set for the UVW's for the given stage on the current
 * node.
 *
 * This call is appropriate for 3-d texture coordinates.
 */ 3 4 this 3 3888  5 other 1 3888  5 stage 1 3751  
820 0 0 7 836 3811 0 0 150 /**
 * Returns the scale set for the UVW's for the given stage on the current
 * node.
 *
 * This call is appropriate for 3-d texture coordinates.
 */ 2 4 this 3 3888  5 stage 1 3751  
821 0 0 4 837 3816 0 0 213 /**
 * Enables automatic texture coordinate generation for the indicated texture
 * stage.  This version of this method is useful when setting M_constant,
 * which requires a constant texture coordinate value.
 */ 5 4 this 3 3898  5 stage 1 3751  4 mode 1 3592  14 constant_value 1 3910  8 priority 5 3590  
822 0 0 4 837 3816 0 0 94 /**
 * Enables automatic texture coordinate generation for the indicated texture
 * stage.
 */ 4 4 this 3 3898  5 stage 1 3751  4 mode 1 3592  8 priority 5 3590  
823 0 0 4 838 3816 0 0 98 /**
 * Removes the texture coordinate generation mode from all texture stages on
 * this node.
 */ 1 4 this 3 3898  
824 0 0 4 838 3816 0 0 95 /**
 * Disables automatic texture coordinate generation for the indicated texture
 * stage.
 */ 2 4 this 3 3898  5 stage 1 3751  
825 0 0 6 839 3597 0 0 130 /**
 * Returns true if there is a mode for automatic texture coordinate generation
 * on the current node for the given stage.
 */ 2 4 this 3 3888  5 stage 1 3751  
826 0 0 6 840 3592 0 0 144 /**
 * Returns the texture coordinate generation mode for the given stage, or
 * M_off if there is no explicit mode set for the given stage.
 */ 2 4 this 3 3888  5 stage 1 3751  
827 0 0 4 841 3816 0 0 529 /**
 * Establishes a TexProjectorEffect on this node, which can be used to
 * establish projective texturing (but see also the
 * NodePath::project_texture() convenience function), or it can be used to
 * bind this node's texture transform to particular node's position in space,
 * allowing a LerpInterval (for instance) to adjust this node's texture
 * coordinates.
 *
 * If to is a LensNode, then the fourth parameter, lens_index, can be provided
 * to select a particular lens to apply.  Otherwise lens_index is not used.
 */ 5 4 this 3 3898  5 stage 1 3751  4 from 1 3888  2 to 1 3888  10 lens_index 5 3590  
828 0 0 4 842 3816 0 0 72 /**
 * Removes the TexProjectorEffect for all stages from this node.
 */ 1 4 this 3 3898  
829 0 0 4 842 3816 0 0 81 /**
 * Removes the TexProjectorEffect for the indicated stage from this node.
 */ 2 4 this 3 3898  5 stage 1 3751  
830 0 0 6 843 3597 0 0 106 /**
 * Returns true if this node has a TexProjectorEffect for the indicated stage,
 * false otherwise.
 */ 2 4 this 3 3888  5 stage 1 3751  
831 0 0 7 844 3898 2739 0 227 /**
 * Returns the "from" node associated with the TexProjectorEffect on the
 * indicated stage.  The relative transform between the "from" and the "to"
 * nodes is automatically applied to the texture transform each frame.
 */ 2 4 this 3 3888  5 stage 1 3751  
832 0 0 7 845 3898 2739 0 225 /**
 * Returns the "to" node associated with the TexProjectorEffect on the
 * indicated stage.  The relative transform between the "from" and the "to"
 * nodes is automatically applied to the texture transform each frame.
 */ 2 4 this 3 3888  5 stage 1 3751  
833 0 0 4 846 3816 0 0 181 /**
 * A convenience function to enable projective texturing at this node level
 * and below, using the indicated NodePath (which should contain a LensNode)
 * as the projector.
 */ 4 4 this 3 3898  5 stage 1 3751  3 tex 1 3753  9 projector 1 3888  
834 0 0 4 847 3816 0 0 50 /**
 * Undoes the effect of project_texture().
 */ 2 4 this 3 3898  5 stage 1 3751  
835 0 0 6 848 3597 0 0 211 /**
 * Returns true if there are at least some vertices at this node and below
 * that use the named texture coordinate set, false otherwise.  Pass the empty
 * string for the default texture coordinate set.
 */ 2 4 this 3 3888  13 texcoord_name 1 3845  
836 0 0 6 849 3597 0 0 309 /**
 * Returns true if there are at least some vertices at this node and below
 * that contain a reference to the indicated vertex data column name, false
 * otherwise.
 *
 * This is particularly useful for testing whether a particular model has a
 * given texture coordinate set (but see has_texcoord()).
 */ 2 4 this 3 3888  4 name 1 3877  
837 0 0 7 850 3889 2288 0 116 /**
 * Returns a list of all vertex array columns stored on some geometry found at
 * this node level and below.
 */ 1 4 this 3 3888  
838 0 0 7 850 3889 2288 0 189 /**
 * Returns a list of all vertex array columns stored on some geometry found at
 * this node level and below that match the indicated name (which may contain
 * wildcard characters).
 */ 2 4 this 3 3888  4 name 1 3845  
839 0 0 7 851 3889 2288 0 110 /**
 * Returns a list of all texture coordinate sets used by any geometry at this
 * node level and below.
 */ 1 4 this 3 3888  
840 0 0 7 851 3889 2288 0 183 /**
 * Returns a list of all texture coordinate sets used by any geometry at this
 * node level and below that match the indicated name (which may contain
 * wildcard characters).
 */ 2 4 this 3 3888  4 name 1 3845  
841 0 0 7 852 3753 0 0 198 /**
 * Returns the first texture found applied to geometry at this node or below
 * that is assigned to the indicated texture stage.  Returns the texture if it
 * is found, or NULL if it is not.
 */ 2 4 this 3 3888  5 stage 1 3751  
842 0 0 7 852 3753 0 0 212 /**
 * Returns the first texture found applied to geometry at this node or below
 * that matches the indicated name (which may contain wildcards).  Returns the
 * texture if it is found, or NULL if it is not.
 */ 2 4 this 3 3888  4 name 1 3845  
843 0 0 7 853 3915 0 0 83 /**
 * Returns a list of a textures applied to geometry at this node and below.
 */ 1 4 this 3 3888  
844 0 0 7 853 3915 0 0 127 /**
 * Returns a list of a textures on geometry at this node and below that are
 * assigned to the indicated texture stage.
 */ 2 4 this 3 3888  5 stage 1 3751  
845 0 0 7 853 3915 0 0 156 /**
 * Returns a list of a textures applied to geometry at this node and below
 * that match the indicated name (which may contain wildcard characters).
 */ 2 4 this 3 3888  4 name 1 3845  
846 0 0 7 854 3751 0 0 221 /**
 * Returns the first TextureStage found applied to geometry at this node or
 * below that matches the indicated name (which may contain wildcards).
 * Returns the TextureStage if it is found, or NULL if it is not.
 */ 2 4 this 3 3888  4 name 1 3845  
847 0 0 7 855 3895 2325 0 91 /**
 * Returns a list of a TextureStages applied to geometry at this node and
 * below.
 */ 1 4 this 3 3888  
848 0 0 7 855 3895 2325 0 164 /**
 * Returns a list of a TextureStages applied to geometry at this node and
 * below that match the indicated name (which may contain wildcard
 * characters).
 */ 2 4 this 3 3888  4 name 1 3845  
849 0 0 4 856 3816 0 0 323 /**
 * Searches through all TextureStages at this node and below.  Any
 * TextureStages that share the same name as the indicated TextureStage object
 * are replaced with this object, thus ensuring that all geometry at this node
 * and below with a particular TextureStage name is using the same
 * TextureStage object.
 */ 2 4 this 3 3898  5 stage 1 3751  
850 0 0 7 857 3731 0 0 214 /**
 * Returns the first material found applied to geometry at this node or below
 * that matches the indicated name (which may contain wildcards).  Returns the
 * material if it is found, or NULL if it is not.
 */ 2 4 this 3 3888  4 name 1 3845  
851 0 0 7 858 3892 2306 0 84 /**
 * Returns a list of a materials applied to geometry at this node and below.
 */ 1 4 this 3 3888  
852 0 0 7 858 3892 2306 0 157 /**
 * Returns a list of a materials applied to geometry at this node and below
 * that match the indicated name (which may contain wildcard characters).
 */ 2 4 this 3 3888  4 name 1 3845  
853 0 0 4 859 3816 0 0 216 /**
 * Sets the geometry at this level and below to render using the indicated
 * material.
 *
 * Previously, this operation made a copy of the material structure, but
 * nowadays it assigns the pointer directly.
 */ 3 4 this 3 3898  3 tex 1 3731  8 priority 5 3590  
854 0 0 4 860 3816 0 0 275 /**
 * Sets the geometry at this level and below to render using no material.
 * This is normally the default, but it may be useful to use this to
 * contradict set_material() at a higher node level (or, with a priority, to
 * override a set_material() at a lower level).
 */ 2 4 this 3 3898  8 priority 5 3590  
855 0 0 4 861 3816 0 0 125 /**
 * Completely removes any material adjustment that may have been set via
 * set_material() from this particular node.
 */ 1 4 this 3 3898  
856 0 0 6 862 3597 0 0 118 /**
 * Returns true if a material has been applied to this particular node via
 * set_material(), false otherwise.
 */ 1 4 this 3 3888  
857 0 0 7 863 3731 0 0 312 /**
 * Returns the material that has been set on this particular node, or NULL if
 * no material has been set.  This is not necessarily the material that will
 * be applied to the geometry at or below this level, as another material at a
 * higher or lower level may override.
 *
 * See also find_material().
 */ 1 4 this 3 3888  
858 0 0 4 864 3816 0 0 222 /**
 * Recursively searches the scene graph for references to the given material,
 * and replaces them with the new material.
 *
 * As of Panda3D 1.10.13, new_mat may be null to remove the material.
 *
 * @since 1.10.0
 */ 3 4 this 3 3898  3 mat 1 3731  7 new_mat 1 3731  
859 0 0 4 864 3816 0 0 46 // Let interrogate know this also accepts None 3 4 this 3 3898  3 mat 1 3731  7 new_mat 1 3907  
860 0 0 4 865 3816 0 0 90 /**
 * Sets the geometry at this level and below to render using the indicated
 * fog.
 */ 3 4 this 3 3898  3 fog 1 3706  8 priority 5 3590  
861 0 0 4 866 3816 0 0 261 /**
 * Sets the geometry at this level and below to render using no fog.  This is
 * normally the default, but it may be useful to use this to contradict
 * set_fog() at a higher node level (or, with a priority, to override a
 * set_fog() at a lower level).
 */ 2 4 this 3 3898  8 priority 5 3590  
862 0 0 4 867 3816 0 0 221 /**
 * Completely removes any fog adjustment that may have been set via set_fog()
 * or set_fog_off() from this particular node.  This allows whatever fogs
 * might be otherwise affecting the geometry to show instead.
 */ 1 4 this 3 3898  
863 0 0 6 868 3597 0 0 275 /**
 * Returns true if a fog has been applied to this particular node via
 * set_fog(), false otherwise.  This is not the same thing as asking whether
 * the geometry at this node will be rendered with fog, as there may be a fog
 * in effect from a higher or lower level.
 */ 1 4 this 3 3888  
864 0 0 6 869 3597 0 0 293 /**
 * Returns true if a fog has been specifically disabled on this particular
 * node via set_fog_off(), false otherwise.  This is not the same thing as
 * asking whether the geometry at this node will be rendered unfogged, as
 * there may be a fog in effect from a higher or lower level.
 */ 1 4 this 3 3888  
865 0 0 7 870 3706 2131 0 260 /**
 * Returns the fog that has been set on this particular node, or NULL if no
 * fog has been set.  This is not necessarily the fog that will be applied to
 * the geometry at or below this level, as another fog at a higher or lower
 * level may override.
 */ 1 4 this 3 3888  
866 0 0 4 871 3816 0 0 107 /**
 * Sets up the geometry at this level and below (unless overridden) to render
 * in wireframe mode.
 */ 2 4 this 3 3898  8 priority 5 3590  
867 0 0 4 872 3816 0 0 126 /**
 * Sets up the geometry at this level and below (unless overridden) to render
 * in filled (i.e.  not wireframe) mode.
 */ 2 4 this 3 3898  8 priority 5 3590  
868 0 0 4 873 3816 0 0 197 /**
 * Sets up the geometry at this level and below (unless overridden) to render
 * in filled, but overlay the wireframe on top with a fixed color.  This is
 * useful for debug visualizations.
 */ 3 4 this 3 3898  15 wireframe_color 1 3824  8 priority 5 3590  
869 0 0 4 874 3816 0 0 359 /**
 * Sets up the point geometry at this level and below to render as thick
 * points (that is, billboarded quads).  The thickness is in pixels, unless
 * set_render_mode_perspective is also true, in which case it is in 3-D units.
 *
 * If you want the quads to be individually textured, you should also set a
 * TexGenAttrib::M_point_sprite on the node.
 */ 3 4 this 3 3898  9 thickness 1 3595  8 priority 5 3590  
870 0 0 4 875 3816 0 0 461 /**
 * Sets up the point geometry at this level and below to render as perspective
 * sprites (that is, billboarded quads).  The thickness, as specified with
 * set_render_mode_thickness(), is the width of each point in 3-D units,
 * unless it is overridden on a per-vertex basis.  This does not affect
 * geometry other than points.
 *
 * If you want the quads to be individually textured, you should also set a
 * TexGenAttrib::M_point_sprite on the node.
 */ 3 4 this 3 3898  11 perspective 1 3597  8 priority 5 3590  
871 0 0 4 876 3816 0 0 162 /**
 * Sets up the geometry at this level and below (unless overridden) to render
 * in the specified mode and with the indicated line and/or point thickness.
 */ 4 4 this 3 3898  4 mode 1 3594  9 thickness 1 3595  8 priority 5 3590  
872 0 0 4 877 3816 0 0 156 /**
 * Completely removes any render mode adjustment that may have been set on
 * this node via set_render_mode_wireframe() or set_render_mode_filled().
 */ 1 4 this 3 3898  
873 0 0 6 878 3597 0 0 195 /**
 * Returns true if a render mode has been explicitly set on this particular
 * node via set_render_mode() (or set_render_mode_wireframe() or
 * set_render_mode_filled()), false otherwise.
 */ 1 4 this 3 3888  
874 0 0 6 879 3594 0 0 144 /**
 * Returns the render mode that has been specifically set on this node via
 * set_render_mode(), or M_unchanged if nothing has been set.
 */ 1 4 this 3 3888  
875 0 0 6 880 3595 0 0 146 /**
 * Returns the render mode thickness that has been specifically set on this
 * node via set_render_mode(), or 1.0 if nothing has been set.
 */ 1 4 this 3 3888  
876 0 0 6 881 3597 0 0 130 /**
 * Returns the flag that has been set on this node via
 * set_render_mode_perspective(), or false if no flag has been set.
 */ 1 4 this 3 3888  
877 0 0 4 882 3816 0 0 237 /**
 * Specifically sets or disables two-sided rendering mode on this particular
 * node.  If no other nodes override, this will cause backfacing polygons to
 * be drawn (in two-sided mode, true) or culled (in one-sided mode, false).
 */ 3 4 this 3 3898  9 two_sided 1 3597  8 priority 5 3590  
878 0 0 4 883 3816 0 0 336 /**
 * Completely removes any two-sided adjustment that may have been set on this
 * node via set_two_sided(). The geometry at this level and below will
 * subsequently be rendered either two-sided or one-sided, according to
 * whatever other nodes may have had set_two_sided() on it, or according to
 * the initial state otherwise.
 */ 1 4 this 3 3898  
879 0 0 6 884 3597 0 0 215 /**
 * Returns true if a two-sided adjustment has been explicitly set on this
 * particular node via set_two_sided().  If this returns true, then
 * get_two_sided() may be called to determine which has been set.
 */ 1 4 this 3 3888  
880 0 0 6 885 3597 0 0 378 /**
 * Returns true if two-sided rendering has been specifically set on this node
 * via set_two_sided(), or false if one-sided rendering has been specifically
 * set, or if nothing has been specifically set.  See also has_two_sided().
 * This does not necessarily imply that the geometry will or will not be
 * rendered two-sided, as there may be other nodes that override.
 */ 1 4 this 3 3888  
881 0 0 4 886 3816 0 0 236 /**
 * Specifically sets or disables the testing of the depth buffer on this
 * particular node.  This is normally on in the 3-d scene graph and off in the
 * 2-d scene graph; it should be on for rendering most 3-d objects properly.
 */ 3 4 this 3 3898  10 depth_test 1 3597  8 priority 5 3590  
882 0 0 4 887 3816 0 0 116 /**
 * Completely removes any depth-test adjustment that may have been set on this
 * node via set_depth_test().
 */ 1 4 this 3 3898  
883 0 0 6 888 3597 0 0 218 /**
 * Returns true if a depth-test adjustment has been explicitly set on this
 * particular node via set_depth_test().  If this returns true, then
 * get_depth_test() may be called to determine which has been set.
 */ 1 4 this 3 3888  
884 0 0 6 889 3597 0 0 262 /**
 * Returns true if depth-test rendering has been specifically set on this node
 * via set_depth_test(), or false if depth-test rendering has been
 * specifically disabled.  If nothing has been specifically set, returns true.
 * See also has_depth_test().
 */ 1 4 this 3 3888  
885 0 0 4 890 3816 0 0 236 /**
 * Specifically sets or disables the writing to the depth buffer on this
 * particular node.  This is normally on in the 3-d scene graph and off in the
 * 2-d scene graph; it should be on for rendering most 3-d objects properly.
 */ 3 4 this 3 3898  11 depth_write 1 3597  8 priority 5 3590  
886 0 0 4 891 3816 0 0 118 /**
 * Completely removes any depth-write adjustment that may have been set on
 * this node via set_depth_write().
 */ 1 4 this 3 3898  
887 0 0 6 892 3597 0 0 221 /**
 * Returns true if a depth-write adjustment has been explicitly set on this
 * particular node via set_depth_write().  If this returns true, then
 * get_depth_write() may be called to determine which has been set.
 */ 1 4 this 3 3888  
888 0 0 6 893 3597 0 0 266 /**
 * Returns true if depth-write rendering has been specifically set on this
 * node via set_depth_write(), or false if depth-write rendering has been
 * specifically disabled.  If nothing has been specifically set, returns true.
 * See also has_depth_write().
 */ 1 4 this 3 3888  
889 0 0 4 894 3816 0 0 542 /**
 * This instructs the graphics driver to apply an offset or bias to the
 * generated depth values for rendered polygons, before they are written to
 * the depth buffer.  This can be used to shift polygons forward slightly, to
 * resolve depth conflicts, or self-shadowing artifacts on thin objects.  The
 * bias is always an integer number, and each integer increment represents the
 * smallest possible increment in Z that is sufficient to completely resolve
 * two coplanar polygons.  Positive numbers are closer towards the camera.
 */ 3 4 this 3 3898  4 bias 1 3590  8 priority 5 3590  
890 0 0 4 895 3816 0 0 120 /**
 * Completely removes any depth-offset adjustment that may have been set on
 * this node via set_depth_offset().
 */ 1 4 this 3 3898  
891 0 0 6 896 3597 0 0 224 /**
 * Returns true if a depth-offset adjustment has been explicitly set on this
 * particular node via set_depth_offset().  If this returns true, then
 * get_depth_offset() may be called to determine which has been set.
 */ 1 4 this 3 3888  
892 0 0 6 897 3590 0 0 106 /**
 * Returns the depth offset value if it has been specified using
 * set_depth_offset, or 0 if not.
 */ 1 4 this 3 3888  
893 0 0 4 898 3816 0 0 170 /**
 * Performs a billboard-type rotate to the indicated camera node, one time
 * only, and leaves the object rotated.  This is similar in principle to
 * heads_up().
 */ 3 4 this 3 3898  6 camera 1 3888  6 offset 1 3595  
894 0 0 4 899 3816 0 0 266 /**
 * Performs a billboard-type rotate to the indicated camera node, one time
 * only, and leaves the object rotated.  This is similar in principle to
 * look_at(), although the point_eye billboard effect cannot be achieved using
 * the ordinary look_at() call.
 */ 3 4 this 3 3898  6 camera 1 3888  6 offset 1 3595  
895 0 0 4 900 3816 0 0 169 /**
 * Performs a billboard-type rotate to the indicated camera node, one time
 * only, and leaves the object rotated.  This is similar in principle to
 * look_at().
 */ 3 4 this 3 3898  6 camera 1 3888  6 offset 1 3595  
896 0 0 4 901 3816 0 0 182 /**
 * Puts a billboard transition on the node such that it will rotate in two
 * dimensions around the up axis, towards a specified "camera" instead of to
 * the viewing camera.
 */ 3 4 this 3 3898  6 camera 1 3888  6 offset 1 3595  
897 0 0 4 901 3816 0 0 116 /**
 * Puts a billboard transition on the node such that it will rotate in two
 * dimensions around the up axis.
 */ 2 4 this 3 3898  6 offset 5 3595  
898 0 0 4 902 3816 0 0 239 /**
 * Puts a billboard transition on the node such that it will rotate in three
 * dimensions about the origin, keeping its up vector oriented to the top of
 * the camera, towards a specified "camera" instead of to the viewing camera.
 */ 4 4 this 3 3898  6 camera 1 3888  6 offset 1 3595  11 fixed_depth 5 3597  
899 0 0 4 902 3816 0 0 176 /**
 * Puts a billboard transition on the node such that it will rotate in three
 * dimensions about the origin, keeping its up vector oriented to the top of
 * the camera.
 */ 3 4 this 3 3898  6 offset 5 3595  11 fixed_depth 5 3597  
900 0 0 4 903 3816 0 0 225 /**
 * Puts a billboard transition on the node such that it will rotate in three
 * dimensions about the origin, keeping its up vector oriented to the sky,
 * towards a specified "camera" instead of to the viewing camera.
 */ 3 4 this 3 3898  6 camera 1 3888  6 offset 1 3595  
901 0 0 4 903 3816 0 0 159 /**
 * Puts a billboard transition on the node such that it will rotate in three
 * dimensions about the origin, keeping its up vector oriented to the sky.
 */ 2 4 this 3 3898  6 offset 5 3595  
902 0 0 4 904 3816 0 0 54 /**
 * Removes any billboard effect from the node.
 */ 1 4 this 3 3898  
903 0 0 6 905 3597 0 0 69 /**
 * Returns true if there is any billboard effect on the node.
 */ 1 4 this 3 3888  
904 0 0 4 906 3816 0 0 204 /**
 * Puts a compass effect on the node, so that it will retain a fixed rotation
 * relative to the reference node (or render if the reference node is empty)
 * regardless of the transforms above it.
 */ 2 4 this 3 3898  9 reference 5 3888  
905 0 0 4 907 3816 0 0 52 /**
 * Removes any compass effect from the node.
 */ 1 4 this 3 3898  
906 0 0 6 908 3597 0 0 67 /**
 * Returns true if there is any compass effect on the node.
 */ 1 4 this 3 3888  
907 0 0 4 909 3816 0 0 222 /**
 * Specifically sets or disables transparent rendering mode on this particular
 * node.  If no other nodes override, this will cause items with a non-1 value
 * for alpha color to be rendered partially transparent.
 */ 3 4 this 3 3898  4 mode 1 3636  8 priority 5 3590  
908 0 0 4 910 3816 0 0 285 /**
 * Completely removes any transparency adjustment that may have been set on
 * this node via set_transparency(). The geometry at this level and below will
 * subsequently be rendered either transparent or not, to whatever other nodes
 * may have had set_transparency() on them.
 */ 1 4 this 3 3898  
909 0 0 6 911 3597 0 0 303 /**
 * Returns true if a transparent-rendering adjustment has been explicitly set
 * on this particular node via set_transparency().  If this returns true, then
 * get_transparency() may be called to determine whether transparency has been
 * explicitly enabled or explicitly disabled for this node.
 */ 1 4 this 3 3888  
910 0 0 6 912 3636 0 0 399 /**
 * Returns the transparent rendering that has been specifically set on this
 * node via set_transparency(), or M_none if nontransparent rendering has been
 * specifically set, or if nothing has been specifically set.  See also
 * has_transparency().  This does not necessarily imply that the geometry will
 * or will not be rendered transparent, as there may be other nodes that
 * override.
 */ 1 4 this 3 3888  
911 0 0 4 913 3816 0 0 248 /**
 * Specifically sets or disables a logical operation on this particular node.
 * If no other nodes override, this will cause geometry to be rendered without
 * color blending but instead using the given logical operator.
 *
 * @since 1.10.0
 */ 3 4 this 3 3898  2 op 1 3638  8 priority 5 3590  
912 0 0 4 914 3816 0 0 231 /**
 * Completely removes any logical operation that may have been set on this
 * node via set_logic_op(). The geometry at this level and below will
 * subsequently be rendered using standard color blending.
 *
 * @since 1.10.0
 */ 1 4 this 3 3898  
913 0 0 6 915 3597 0 0 316 /**
 * Returns true if a logical operation has been explicitly set on this
 * particular node via set_logic_op().  If this returns true, then
 * get_logic_op() may be called to determine whether a logical operation has
 * been explicitly disabled for this node or set to particular operation.
 *
 * @since 1.10.0
 */ 1 4 this 3 3888  
914 0 0 6 916 3638 0 0 427 /**
 * Returns the logical operation that has been specifically set on this node
 * via set_logic_op(), or O_none if standard color blending has been
 * specifically set, or if nothing has been specifically set.  See also
 * has_logic_op().  This does not necessarily imply that the geometry will
 * or will not be rendered with the given logical operation, as there may be
 * other nodes that override.
 *
 * @since 1.10.0
 */ 1 4 this 3 3888  
915 0 0 4 917 3816 0 0 114 /**
 * Specifies the antialiasing type that should be applied at this node and
 * below.  See AntialiasAttrib.
 */ 3 4 this 3 3898  4 mode 1 3609  8 priority 5 3590  
916 0 0 4 918 3816 0 0 111 /**
 * Completely removes any antialias setting that may have been set on this
 * node via set_antialias().
 */ 1 4 this 3 3898  
917 0 0 6 919 3597 0 0 216 /**
 * Returns true if an antialias setting has been explicitly mode on this
 * particular node via set_antialias().  If this returns true, then
 * get_antialias() may be called to determine what the setting was.
 */ 1 4 this 3 3888  
918 0 0 6 920 3609 0 0 147 /**
 * Returns the antialias setting that has been specifically set on this node
 * via set_antialias(), or M_none if no setting has been made.
 */ 1 4 this 3 3888  
919 0 0 6 921 3597 0 0 197 /**
 * Returns true if an audio volume has been applied to the referenced node,
 * false otherwise.  It is still possible that volume at this node might have
 * been scaled by an ancestor node.
 */ 1 4 this 3 3888  
920 0 0 4 922 3816 0 0 225 /**
 * Completely removes any audio volume from the referenced node.  This is
 * preferable to simply setting the audio volume to identity, as it also
 * removes the overhead associated with having an audio volume at all.
 */ 1 4 this 3 3898  
921 0 0 4 923 3816 0 0 59 /**
 * Sets the audio volume component of the transform
 */ 3 4 this 3 3898  6 volume 1 3595  8 priority 5 3590  
922 0 0 4 924 3816 0 0 447 /**
 * Disables any audio volume attribute inherited from above.  This is not the
 * same thing as clear_audio_volume(), which undoes any previous
 * set_audio_volume() operation on this node; rather, this actively disables
 * any set_audio_volume() that might be inherited from a parent node.
 *
 * It is legal to specify a new volume on the same node with a subsequent call
 * to set_audio_volume(); this new scale will apply to lower nodes.
 */ 2 4 this 3 3898  8 priority 5 3590  
923 0 0 6 925 3595 0 0 200 /**
 * Returns the complete audio volume that has been applied to this node via a
 * previous call to set_audio_volume(), or 1. (identity) if no volume has been
 * applied to this particular node.
 */ 1 4 this 3 3888  
924 0 0 6 926 3595 0 0 109 /**
 * Returns the complete audio volume for this node taking highers nodes in the
 * graph into account.
 */ 1 4 this 3 3888  
925 0 0 4 927 3816 0 0 339 /**
 * Adds the indicated adjustment amount (which may be negative) to the
 * priority for all transitions on the referenced node, and for all nodes in
 * the subgraph below.  This can be used to force these nodes not to be
 * overridden by a high-level state change above.  If the priority would drop
 * below zero, it is set to zero.
 */ 2 4 this 3 3898  10 adjustment 1 3590  
926 0 0 4 928 3816 0 0 228 /**
 * Undoes the effect of a previous hide() on this node: makes the referenced
 * node (and the entire subgraph below this node) visible to all cameras.
 *
 * This will not reveal the node if a parent node has been hidden.
 */ 1 4 this 3 3898  
927 0 0 4 928 3816 0 0 264 /**
 * Makes the referenced node visible just to the cameras whose camera_mask
 * shares the indicated bits.
 *
 * This undoes the effect of a previous hide() call.  It will not reveal the
 * node if a parent node has been hidden.  However, see show_through().
 */ 2 4 this 3 3898  11 camera_mask 1 3853  
928 0 0 4 929 3816 0 0 243 /**
 * Makes the referenced node visible just to the cameras whose camera_mask
 * shares the indicated bits.
 *
 * Unlike show(), this will reveal the node even if a parent node has been
 * hidden, thus "showing through" a parent's hide().
 */ 1 4 this 3 3898  
929 0 0 4 929 3816 0 0 390 /**
 * Makes the referenced node visible just to the cameras whose camera_mask
 * shares the indicated bits.
 *
 * Unlike show(), this will reveal the node even if a parent node has been
 * hidden via the one-parameter hide() method, thus "showing through" a
 * parent's hide().  (However, it will not show through a parent's hide() call
 * if the no-parameter form of hide() was used.)
 */ 2 4 this 3 3898  11 camera_mask 1 3853  
930 0 0 4 930 3816 0 0 304 /**
 * Makes the referenced node (and the entire subgraph below this node)
 * invisible to all cameras.  It remains part of the scene graph, its bounding
 * volume still contributes to its parent's bounding volume, and it will still
 * be involved in collision tests.
 *
 * To undo this, call show().
 */ 1 4 this 3 3898  
931 0 0 4 930 3816 0 0 328 /**
 * Makes the referenced node invisible just to the cameras whose camera_mask
 * shares the indicated bits.
 *
 * This will also hide any nodes below this node in the scene graph, including
 * those nodes for which show() has been called, but it will not hide
 * descendent nodes for which show_through() has been called.
 */ 2 4 this 3 3898  11 camera_mask 1 3853  
932 0 0 6 931 3597 0 0 141 /**
 * Returns true if the referenced node is hidden from the indicated camera(s)
 * either directly, or because some ancestor is hidden.
 */ 2 4 this 3 3888  11 camera_mask 5 3853  
933 0 0 7 932 3898 2739 0 215 /**
 * Returns the NodePath at or above the referenced node that is hidden to the
 * indicated camera(s), or an empty NodePath if no ancestor of the referenced
 * node is hidden (and the node should be visible).
 */ 3 4 this 3 3888  11 camera_mask 5 3853  14 current_thread 5 3848  
934 0 0 4 933 3816 0 0 480 /**
 * Removes the referenced node (and the entire subgraph below this node) from
 * the scene graph in any normal sense.  The node will no longer be visible
 * and is not tested for collisions; furthermore, no normal scene graph
 * traversal will visit the node.  The node's bounding volume no longer
 * contributes to its parent's bounding volume.
 *
 * A stashed node cannot be located by a normal find() operation (although a
 * special find string can still retrieve it).
 */ 3 4 this 3 3898  4 sort 5 3590  14 current_thread 5 3848  
935 0 0 4 934 3816 0 0 174 /**
 * Undoes the effect of a previous stash() on this node: makes the referenced
 * node (and the entire subgraph below this node) once again part of the scene
 * graph.
 */ 3 4 this 3 3898  4 sort 5 3590  14 current_thread 5 3848  
936 0 0 4 935 3816 0 0 59 /**
 * Unstashes this node and all stashed child nodes.
 */ 2 4 this 3 3898  14 current_thread 5 3848  
937 0 0 6 936 3597 0 0 114 /**
 * Returns true if the referenced node is stashed either directly, or because
 * some ancestor is stashed.
 */ 1 4 this 3 3888  
938 0 0 7 937 3898 2739 0 190 /**
 * Returns the NodePath at or above the referenced node that is stashed, or an
 * empty NodePath if no ancestor of the referenced node is stashed (and the
 * node should be visible).
 */ 2 4 this 3 3888  14 current_thread 5 3848  
939 0 0 7 938 3854 0 0 309 /**
 * Returns the union of all of the into_collide_masks for nodes at this level
 * and below.  This is the same thing as node()->get_net_collide_mask().
 *
 * If you want to return what the into_collide_mask of this node itself is,
 * without regard to its children, use node()->get_into_collide_mask().
 */ 1 4 this 3 3888  
940 0 0 4 939 3816 0 0 489 /**
 * Recursively applies the indicated CollideMask to the into_collide_masks for
 * all nodes at this level and below.  If node_type is not TypeHandle::none(),
 * then only nodes matching (or inheriting from) the indicated PandaNode
 * subclass are modified.
 *
 * The default is to change all bits, but if bits_to_change is not all bits
 * on, then only the bits that are set in bits_to_change are modified,
 * allowing this call to change only a subset of the bits in the subgraph.
 */ 4 4 this 3 3898  8 new_mask 1 3854  14 bits_to_change 5 3854  9 node_type 5 3820  
941 0 0 6 940 3597 0 0 21 // Comparison methods 2 4 this 3 3888  5 other 1 3888  
942 0 0 6 940 3597 0 0 0 2 4 this 3 3888  5 other 1 3916  
943 0 0 6 941 3597 0 0 0 2 4 this 3 3888  5 other 1 3888  
944 0 0 6 941 3597 0 0 0 2 4 this 3 3888  5 other 1 3916  
945 0 0 6 942 3597 0 0 0 2 4 this 3 3888  5 other 1 3888  
946 0 0 6 942 3597 0 0 0 2 4 this 3 3888  5 other 1 3916  
947 0 0 6 943 3590 0 0 486 /**
 * Returns a number less than zero if this NodePath sorts before the other
 * one, greater than zero if it sorts after, or zero if they are equivalent.
 *
 * Two NodePaths are considered equivalent if they consist of exactly the same
 * list of nodes in the same order.  Otherwise, they are different; different
 * NodePaths will be ranked in a consistent but undefined ordering; the
 * ordering is useful only for placing the NodePaths in a sorted container
 * like an STL set.
 */ 2 4 this 3 3888  5 other 1 3888  
948 0 0 6 943 3590 0 0 486 /**
 * Returns a number less than zero if this NodePath sorts before the other
 * one, greater than zero if it sorts after, or zero if they are equivalent.
 *
 * Two NodePaths are considered equivalent if they consist of exactly the same
 * list of nodes in the same order.  Otherwise, they are different; different
 * NodePaths will be ranked in a consistent but undefined ordering; the
 * ordering is useful only for placing the NodePaths in a sorted container
 * like an STL set.
 */ 2 4 this 3 3888  5 other 1 3916  
949 0 0 6 944 3597 0 0 107 /**
 * Returns true if all of the nodes described in the NodePath are connected,
 * or false otherwise.
 */ 2 4 this 3 3888  14 current_thread 5 3848  
950 0 0 4 945 3816 0 0 414 /**
 * Walks through the scene graph beginning at the bottom node, and internally
 * adjusts any GeomVertexFormats for optimal rendering on the indicated GSG.
 * If this step is not done prior to rendering, the formats will be optimized
 * at render time instead, for a small cost.
 *
 * It is not normally necessary to do this on a model loaded directly from
 * disk, since the loader will do this by default.
 */ 2 4 this 3 3898  3 gsg 5 3855  
951 0 0 4 946 3816 0 0 476 /**
 * Walks through the scene graph beginning at the bottom node, and does
 * whatever initialization is required to render the scene properly with the
 * indicated GSG.  It is not strictly necessary to call this, since the GSG
 * will initialize itself when the scene is rendered, but this may take some
 * of the overhead away from that process.
 *
 * In particular, this will ensure that textures and vertex buffers within the
 * scene are loaded into graphics memory.
 */ 2 4 this 3 3898  3 gsg 1 3855  
952 0 0 4 947 3816 0 0 273 /**
 * Causes the bounding volume of the bottom node and all of its descendants
 * (that is, the bounding volume associated with the the bottom arc) to be
 * rendered, if possible.  The rendering method is less than optimal; this is
 * intended primarily for debugging.
 */ 1 4 this 3 3898  
953 0 0 4 948 3816 0 0 288 /**
 * Similar to show_bounds(), this draws a bounding box representing the
 * "tight" bounds of this node and all of its descendants.  The bounding box
 * is recomputed every frame by reexamining all of the vertices; this is far
 * from efficient, but this is intended for debugging.
 */ 1 4 this 3 3898  
954 0 0 4 949 3816 0 0 79 /**
 * Stops the rendering of the bounding volume begun with show_bounds().
 */ 1 4 this 3 3898  
955 0 0 7 950 3669 0 0 214 /**
 * Returns a newly-allocated bounding volume containing the bottom node and
 * all of its descendants.  This is the bounding volume on the bottom arc,
 * converted to the local coordinate space of the node.
 */ 2 4 this 3 3888  14 current_thread 5 3848  
956 0 0 4 951 3816 0 0 520 /**
 * Forces the recomputing of all the bounding volumes at every node in the
 * subgraph beginning at this node and below.
 *
 * This should not normally need to be called, since the bounding volumes are
 * supposed to be recomputed automatically when necessary.  It may be useful
 * when debugging, to verify that the bounding volumes have not become
 * inadvertently stale; it may also be useful to force animated characters to
 * update their bounding volumes (which does not presently happen
 * automatically).
 */ 1 4 this 3 3898  
957 0 0 4 952 3816 0 0 143 /**
 * Writes a description of the bounding volume containing the bottom node and
 * all of its descendants to the indicated output stream.
 */ 2 4 this 3 3888  3 out 1 3817  
958 0 0 6 953 3597 0 0 725 /**
 * Calculates the minimum and maximum vertices of all Geoms at this NodePath's
 * bottom node and below.  This is a tight bounding box; it will generally be
 * tighter than the bounding volume returned by get_bounds() (but it is more
 * expensive to compute).
 *
 * The bounding box is computed relative to the parent node's coordinate
 * system by default.  You can optionally specify a different NodePath to
 * compute the bounds relative to.  Note that the box is always axis-aligned
 * against the given NodePath's coordinate system, so you might get a
 * differently sized box depending on which node you pass.
 *
 * The return value is true if any points are within the bounding volume, or
 * false if none are.
 */ 5 4 this 3 3888  9 min_point 1 3810  9 max_point 1 3810  5 other 5 3888  14 current_thread 5 3848  
959 0 0 38 954 3620 0 0 0 2 4 this 3 3888  5 other 5 3888  
960 0 0 6 955 3590 0 0 811 /**
 * Lightly flattens out the hierarchy below this node by applying transforms,
 * colors, and texture matrices from the nodes onto the vertices, but does not
 * remove any nodes.
 *
 * This can result in improved rendering performance because there will be
 * fewer transforms in the resulting scene graph, but the number of nodes will
 * remain the same.
 *
 * In particular, any NodePaths that reference nodes within this hierarchy
 * will not be damaged.  However, since this operation will remove transforms
 * from the scene graph, it may be dangerous to apply to nodes where you
 * expect to dynamically modify the transform, or where you expect the
 * geometry to remain in a particular local coordinate system.
 *
 * The return value is always 0, since flatten_light does not remove any
 * nodes.
 */ 1 4 this 3 3898  
961 0 0 6 956 3590 0 0 488 /**
 * A more thorough flattening than flatten_light(), this first applies all the
 * transforms, colors, and texture matrices from the nodes onto the vertices,
 * and then removes unneeded grouping nodes--nodes that have exactly one
 * child, for instance, but have no special properties in themselves.
 *
 * This results in improved performance over flatten_light() because the
 * number of nodes in the scene graph is reduced.
 *
 * The return value is the number of nodes removed.
 */ 1 4 this 3 3898  
962 0 0 6 957 3590 0 0 630 /**
 * The strongest possible flattening.  This first applies all of the
 * transforms to the vertices, as in flatten_medium(), but then it will
 * combine sibling nodes together when possible, in addition to removing
 * unnecessary parent-child nodes.  This can result in substantially fewer
 * nodes, but any nicely-grouped hierachical bounding volumes may be lost.
 *
 * It is generally a good idea to apply this kind of flattening only to nodes
 * that will be culled largely as a single unit, like a car.  Applying this to
 * an entire scene may result in overall poorer performance because of less-
 * effective culling.
 */ 1 4 this 3 3898  
963 0 0 4 958 3816 0 0 692 /**
 * Removes textures from Geoms at this node and below by applying the texture
 * colors to the vertices.  This is primarily useful to simplify a low-LOD
 * model.  The texture colors are replaced by flat colors that approximate the
 * original textures.
 *
 * Only the bottommost texture on each Geom is used (if there is more than
 * one), and it is applied as if it were M_modulate, and WM_repeat, regardless
 * of its actual settings.  If the texture has a simple_ram_image, this may be
 * used if the main image isn't resident.
 *
 * After this call, there will be no texturing specified at this level and
 * below.  Of course, there might still be texturing inherited from above.
 */ 1 4 this 3 3898  
964 0 0 6 959 3590 0 0 315 /**
 * Recursively walks through the scene graph at this level and below, looking
 * for ModelNodes, and calls model_node->set_preserve_transform(PT_drop_node)
 * on each one.  This allows a subsequent call to flatten_strong() to
 * eliminate all of the ModelNodes.
 *
 * Returns the number of ModelNodes found.
 */ 1 4 this 3 3898  
965 0 0 4 960 3816 0 0 391 /**
 * Associates a user-defined value with a user-defined key which is stored on
 * the node.  This value has no meaning to Panda; but it is stored
 * indefinitely on the node until it is requested again.
 *
 * Each unique key stores a different string value.  There is no effective
 * limit on the number of different keys that may be stored or on the length
 * of any one key's value.
 */ 3 4 this 3 3898  3 key 1 3845  5 value 1 3845  
966 0 0 6 961 3845 0 0 207 /**
 * Retrieves the user-defined value that was previously set on this node for
 * the particular key, if any.  If no value has been previously set, returns
 * the empty string.  See also get_net_tag().
 */ 2 4 this 3 3888  3 key 1 3845  
967 0 0 38 962 3620 0 0 0 1 4 this 3 3888  
968 0 0 4 962 3816 0 0 232 /**
 * Fills the given vector up with the list of tags on this PandaNode.
 *
 * It is the user's responsibility to ensure that the keys vector is empty
 * before making this call; otherwise, the new files will be appended to it.
 */ 2 4 this 3 3888  4 keys 1 3918  
969 0 0 6 963 3597 0 0 195 /**
 * Returns true if a value has been defined on this node for the particular
 * key (even if that value is the empty string), or false if no value has been
 * set.  See also has_net_tag().
 */ 2 4 this 3 3888  3 key 1 3845  
970 0 0 4 964 3816 0 0 158 /**
 * Removes the value defined for this key on this particular node.  After a
 * call to clear_tag(), has_tag() will return false for the indicated key.
 */ 2 4 this 3 3898  3 key 1 3845  
971 0 0 6 965 3845 0 0 251 /**
 * Returns the tag value that has been defined on this node, or the nearest
 * ancestor node, for the indicated key.  If no value has been defined for the
 * indicated key on any ancestor node, returns the empty string.  See also
 * get_tag().
 */ 2 4 this 3 3888  3 key 1 3845  
972 0 0 6 966 3597 0 0 149 /**
 * Returns true if the indicated tag value has been defined on this node or on
 * any ancestor node, or false otherwise.  See also has_tag().
 */ 2 4 this 3 3888  3 key 1 3845  
973 0 0 7 967 3898 2739 0 215 /**
 * Returns the lowest ancestor of this node that contains a tag definition
 * with the indicated key, if any, or an empty NodePath if no ancestor of this
 * node contains this tag definition.  See set_tag().
 */ 2 4 this 3 3888  3 key 1 3845  
974 0 0 38 969 3620 0 0 0 1 4 this 3 3888  
975 0 0 38 971 3620 0 0 0 1 4 this 3 3898  
976 0 0 36 972 3816 0 0 0 3 4 this 3 3898  4 keys 1 3620  5 value 1 3620  
977 0 0 38 973 3620 0 0 0 2 4 this 3 3888  4 keys 1 3620  
978 0 0 38 974 3620 0 0 0 1 4 this 3 3888  
979 0 0 38 975 3597 0 0 0 2 4 this 3 3888  4 keys 1 3620  
980 0 0 36 976 3816 0 0 0 2 4 this 3 3898  4 keys 1 3620  
981 0 0 38 977 3620 0 0 0 2 4 this 3 3888  4 keys 1 3620  
982 0 0 38 978 3597 0 0 0 2 4 this 3 3888  4 keys 1 3620  
983 0 0 39 979 3898 2739 0 0 2 4 this 3 3888  4 keys 1 3620  
984 0 0 38 981 3590 0 0 0 3 4 this 3 3898  5 visit 1 3851  3 arg 1 3852  
985 0 0 4 982 3816 0 0 153 /**
 * Lists the tags to the nout stream, one per line.  See
 * PandaNode::list_tags() for a variant that allows you to specify the output
 * stream.
 */ 1 4 this 3 3888  
986 0 0 4 983 3816 0 0 51 /**
 * Changes the name of the referenced node.
 */ 2 4 this 3 3898  4 name 1 3845  
987 0 0 6 984 3845 0 0 51 /**
 * Returns the name of the referenced node.
 */ 1 4 this 3 3888  
988 0 0 6 986 3597 0 0 230 /**
 * Writes the contents of this node and below out to a bam file with the
 * indicated filename.  This file may then be read in again, as is, at some
 * later point.  Returns true if successful, false on some kind of error.
 */ 2 4 this 3 3888  8 filename 1 3921  
989 0 0 6 987 3597 0 0 82 /**
 * Writes the contents of this node and below out to the indicated stream.
 */ 2 4 this 3 3888  3 out 1 3817  
990 0 0 6 988 3862 0 0 303 /**
 * Converts the NodePath object into a single stream of data using a
 * BamWriter, and returns that data as a string string.  Returns empty string
 * on failure.  This is similar to write_bam_stream().
 *
 * This method is used by __reduce__ to handle streaming of NodePaths to a
 * pickle file.
 */ 1 4 this 3 3888  
991 0 0 6 988 3597 0 0 1067 /**
 * Converts the NodePath object into a single stream of data using a
 * BamWriter, and stores that data in the indicated string.  Returns true on
 * success, false on failure.
 *
 * If the BamWriter is NULL, this behaves the same way as
 * NodePath::write_bam_stream() and PandaNode::encode_to_bam_stream(), in the
 * sense that it only writes this node and all nodes below it.
 *
 * However, if the BamWriter is not NULL, it behaves very differently.  In
 * this case, it encodes the *entire graph* of all nodes connected to the
 * NodePath, including all parent nodes and siblings.  This is necessary for
 * correct streaming of related NodePaths and restoration of instances, etc.,
 * but it does mean you must detach() a node before writing it if you want to
 * limit the nodes that get written.
 *
 * This method is used by __reduce__ to handle streaming of NodePaths to a
 * pickle file.  The BamWriter case is used by the direct.stdpy.pickle module,
 * while the saner, non-BamWriter case is used when the standard pickle module
 * calls this function.
 */ 3 4 this 3 3888  4 data 1 3922  6 writer 5 3660  
992 0 0 7 989 3898 2739 0 162 /**
 * Reads the string created by a previous call to encode_to_bam_stream(), and
 * extracts and returns the NodePath on that string.  Returns NULL on error.
 */ 2 4 data 1 3862  6 reader 5 3658  
993 0 0 7 990 3820 0 0 0 0 
994 0 0 6 593 3597 0 0 0 1 4 this 3 3888  
995 0 0 7 619 3899 2415 0 0 0 
996 0 0 15 619 3899 2415 0 0 1 6 param0 0 3923  
997 0 0 55 619 3899 2415 0 0 1 8 sequence 1 3620  
998 0 0 38 620 3620 0 0 0 1 4 this 3 3923  
999 0 0 4 621 3816 0 0 49 /**
 * Adds a new NodePath to the collection.
 */ 2 4 this 3 3899  9 node_path 1 3888  
1000 0 0 6 622 3597 0 0 152 /**
 * Removes the indicated NodePath from the collection.  Returns true if the
 * path was removed, false if it was not a member of the collection.
 */ 2 4 this 3 3899  9 node_path 1 3888  
1001 0 0 4 623 3816 0 0 204 /**
 * Adds all the NodePaths indicated in the other collection to this path.  The
 * other paths are simply appended to the end of the paths in this list;
 * duplicates are not automatically removed.
 */ 2 4 this 3 3899  5 other 1 3923  
1002 0 0 4 624 3816 0 0 95 /**
 * Removes from this collection all of the NodePaths listed in the other
 * collection.
 */ 2 4 this 3 3899  5 other 1 3923  
1003 0 0 4 625 3816 0 0 197 /**
 * Removes any duplicate entries of the same NodePaths on this collection.  If
 * a NodePath appears multiple times, the first appearance is retained;
 * subsequent appearances are removed.
 */ 1 4 this 3 3899  
1004 0 0 6 626 3597 0 0 97 /**
 * Returns true if the indicated NodePath appears in this collection, false
 * otherwise.
 */ 2 4 this 3 3923  4 path 1 3888  
1005 0 0 4 627 3816 0 0 53 /**
 * Removes all NodePaths from the collection.
 */ 1 4 this 3 3899  
1006 0 0 4 628 3816 0 0 157 /**
 * This is a hint to Panda to allocate enough memory to hold the given number
 * of NodePaths, if you know ahead of time how many you will be adding.
 */ 2 4 this 3 3899  3 num 1 3794  
1007 0 0 6 629 3597 0 0 85 /**
 * Returns true if there are no NodePaths in the collection, false otherwise.
 */ 1 4 this 3 3923  
1008 0 0 6 630 3590 0 0 61 /**
 * Returns the number of NodePaths in the collection.
 */ 1 4 this 3 3923  
1009 0 0 7 631 3898 2739 0 54 /**
 * Returns the nth NodePath in the collection.
 */ 2 4 this 3 3923  5 index 1 3590  
1010 0 0 7 633 3898 2739 0 0 2 4 this 3 3923  5 index 1 3794  
1011 0 0 6 634 3794 0 0 104 /**
 * Returns the number of paths in the collection.  This is the same thing as
 * get_num_paths().
 */ 1 4 this 3 3923  
1012 0 0 6 635 3899 0 0 0 2 4 this 3 3899  5 other 1 3923  
1013 0 0 7 636 3899 2415 0 0 2 4 this 3 3923  5 other 1 3923  
1014 0 0 4 637 3816 0 0 153 /**
 * Adds a new NodePath to the collection.  This method duplicates the
 * add_path() method; it is provided to satisfy Python's naming convention.
 */ 2 4 this 3 3899  9 node_path 1 3888  
1015 0 0 4 638 3816 0 0 157 /**
 * Appends the other list onto the end of this one.  This method duplicates
 * the += operator; it is provided to satisfy Python's naming convention.
 */ 2 4 this 3 3899  5 other 1 3923  
1016 0 0 4 639 3816 0 0 90 /**
 * Lists all the nodes at and below each node in the collection
 * hierarchically.
 */ 1 4 this 3 3923  
1017 0 0 4 639 3816 0 0 90 /**
 * Lists all the nodes at and below each node in the collection
 * hierarchically.
 */ 3 4 this 3 3923  3 out 1 3817  12 indent_level 5 3590  
1018 0 0 7 640 3899 2415 0 177 /**
 * Returns the complete set of all NodePaths that begin with any NodePath in
 * this collection and can be extended by path.  The shortest paths will be
 * listed first.
 */ 2 4 this 3 3923  4 path 1 3845  
1019 0 0 4 641 3816 0 0 79 /**
 * Reparents all the NodePaths in the collection to the indicated node.
 */ 2 4 this 3 3899  5 other 1 3888  
1020 0 0 4 642 3816 0 0 147 /**
 * Reparents all the NodePaths in the collection to the indicated node,
 * adjusting each transform so as not to move in world coordinates.
 */ 2 4 this 3 3899  5 other 1 3888  
1021 0 0 4 643 3816 0 0 49 /**
 * Shows all NodePaths in the collection.
 */ 1 4 this 3 3899  
1022 0 0 4 644 3816 0 0 49 /**
 * Hides all NodePaths in the collection.
 */ 1 4 this 3 3899  
1023 0 0 4 645 3816 0 0 51 /**
 * Stashes all NodePaths in the collection.
 */ 1 4 this 3 3899  
1024 0 0 4 646 3816 0 0 53 /**
 * Unstashes all NodePaths in the collection.
 */ 1 4 this 3 3899  
1025 0 0 4 647 3816 0 0 52 /**
 * Detaches all NodePaths in the collection.
 */ 1 4 this 3 3899  
1026 0 0 7 648 3854 0 0 309 /**
 * Returns the union of all of the into_collide_masks for nodes at this level
 * and below.  This is the same thing as node()->get_net_collide_mask().
 *
 * If you want to return what the into_collide_mask of this node itself is,
 * without regard to its children, use node()->get_into_collide_mask().
 */ 1 4 this 3 3923  
1027 0 0 4 649 3816 0 0 349 /**
 * Recursively applies the indicated CollideMask to the into_collide_masks for
 * all nodes at this level and below.
 *
 * The default is to change all bits, but if bits_to_change is not all bits
 * on, then only the bits that are set in bits_to_change are modified,
 * allowing this call to change only a subset of the bits in the subgraph.
 */ 4 4 this 3 3899  8 new_mask 1 3854  14 bits_to_change 5 3854  9 node_type 5 3820  
1028 0 0 6 650 3597 0 0 369 /**
 * Calculates the minimum and maximum vertices of all Geoms at these
 * NodePath's bottom nodes and below This is a tight bounding box; it will
 * generally be tighter than the bounding volume returned by get_bounds() (but
 * it is more expensive to compute).
 *
 * The return value is true if any points are within the bounding volume, or
 * false if none are.
 */ 3 4 this 3 3923  9 min_point 1 3810  9 max_point 1 3810  
1029 0 0 38 651 3620 0 0 0 1 4 this 3 3923  
1030 0 0 4 652 3816 0 0 377 /**
 * Adds the indicated texture to the list of textures that will be rendered on
 * the default texture stage.
 *
 * This is the deprecated single-texture variant of this method; it is now
 * superceded by set_texture() that accepts a stage and texture.  However,
 * this method may be used in the presence of multitexture if you just want to
 * adjust the default stage.
 */ 3 4 this 3 3899  3 tex 1 3753  8 priority 5 3590  
1031 0 0 4 652 3816 0 0 359 /**
 * Adds the indicated texture to the list of textures that will be rendered on
 * the indicated multitexture stage.  If there are multiple texture stages
 * specified (possibly on multiple different nodes at different levels), they
 * will all be applied to geometry together, according to the stage
 * specification set up in the TextureStage object.
 */ 4 4 this 3 3899  5 stage 1 3751  3 tex 1 3753  8 priority 5 3590  
1032 0 0 4 653 3816 0 0 305 /**
 * Sets the geometry at this level and below to render using no texture, on
 * the indicated stage.  This is different from not specifying a texture;
 * rather, this specifically contradicts set_texture() at a higher node level
 * (or, with a priority, overrides a set_texture() at a lower level).
 */ 3 4 this 3 3899  5 stage 1 3751  8 priority 5 3590  
1033 0 0 4 653 3816 0 0 295 /**
 * Sets the geometry at this level and below to render using no texture, on
 * any stage.  This is different from not specifying a texture; rather, this
 * specifically contradicts set_texture() at a higher node level (or, with a
 * priority, overrides a set_texture() at a lower level).
 */ 2 4 this 3 3899  8 priority 5 3590  
1034 0 0 4 654 3816 0 0 49 /**
 * Colors all NodePaths in the collection
 */ 3 4 this 3 3899  5 color 1 3824  8 priority 5 3590  
1035 0 0 4 654 3816 0 0 49 /**
 * Colors all NodePaths in the collection
 */ 6 4 this 3 3899  1 r 1 3595  1 g 1 3595  1 b 1 3595  1 a 5 3595  8 priority 5 3590  
1036 0 0 4 655 3816 0 0 109 /**
 * Applies color scales to all NodePaths in the collection.  The existing
 * color scale is replaced.
 */ 3 4 this 3 3899  5 scale 1 3884  8 priority 5 3590  
1037 0 0 4 655 3816 0 0 109 /**
 * Applies color scales to all NodePaths in the collection.  The existing
 * color scale is replaced.
 */ 6 4 this 3 3899  1 r 1 3595  1 g 1 3595  1 b 1 3595  1 a 5 3595  8 priority 5 3590  
1038 0 0 4 656 3816 0 0 149 /**
 * Applies color scales to all NodePaths in the collection.  The existing
 * color scale, if any, is multiplied by the specified color scale.
 */ 3 4 this 3 3899  5 scale 1 3884  8 priority 5 3590  
1039 0 0 4 656 3816 0 0 149 /**
 * Applies color scales to all NodePaths in the collection.  The existing
 * color scale, if any, is multiplied by the specified color scale.
 */ 6 4 this 3 3899  1 r 1 3595  1 g 1 3595  1 b 1 3595  1 a 5 3595  8 priority 5 3590  
1040 0 0 4 657 3816 0 0 223 /**
 * Applies the indicated RenderAttrib to all NodePaths in the collection.  An
 * effort is made to apply the attrib to many NodePaths as quickly as
 * possible; redundant RenderState compositions are not duplicated.
 */ 3 4 this 3 3899  6 attrib 1 3604  8 priority 5 3590  
1041 0 0 4 658 3816 0 0 107 /**
 * Writes a brief one-line description of the NodePathCollection to the
 * indicated output stream.
 */ 2 4 this 3 3923  3 out 1 3817  
1042 0 0 4 659 3816 0 0 112 /**
 * Writes a complete multi-line description of the NodePathCollection to the
 * indicated output stream.
 */ 3 4 this 3 3923  3 out 1 3817  12 indent_level 5 3590  
1043 0 0 4 993 3816 0 0 556 /**
 * Adds the indicated NodePath to the registry.  The name and type of the node
 * are noted at the time of this call; if the name changes later, it will not
 * update the registry index.
 *
 * The NodePath must reference some kind of an attribute node, such as a
 * LightNode or a PlaneNode.  When bam files that reference an attribute node
 * of the same type and the same name are loaded, they will quietly be
 * redirected to reference this NodePath.
 *
 * If there is already a node matching the indicated name and type, it will be
 * replaced.
 */ 2 4 this 3 3925  11 attrib_node 1 3888  
1044 0 0 6 994 3597 0 0 320 /**
 * Removes the indicated NodePath from the registry.  The name of the node
 * must not have changed since the matching call to add_node(), or it will not
 * be successfully removed.
 *
 * Returns true if the NodePath is found and removed, false if it is not found
 * (for instance, because the name has changed).
 */ 2 4 this 3 3925  11 attrib_node 1 3888  
1045 0 0 4 994 3816 0 0 50 /**
 * Removes the nth node from the registry.
 */ 2 4 this 3 3925  1 n 1 3590  
1046 0 0 7 995 3898 2739 0 215 /**
 * Looks up the indicated NodePath in the registry.  If there is a node
 * already in the registry with the matching name and type, returns that
 * NodePath instead; otherwise, returns the original NodePath.
 */ 2 4 this 3 3926  9 orig_node 1 3888  
1047 0 0 6 996 3590 0 0 61 /**
 * Returns the total number of nodes in the registry.
 */ 1 4 this 3 3926  
1048 0 0 7 997 3898 2739 0 61 /**
 * Returns the nth NodePath recorded in the registry.
 */ 2 4 this 3 3926  1 n 1 3590  
1049 0 0 7 999 3820 0 0 73 /**
 * Returns the type of the nth node, as recorded in the registry.
 */ 2 4 this 3 3926  1 n 1 3590  
1050 0 0 6 1000 3845 0 0 236 /**
 * Returns the name of the nth node, as recorded in the registry.  This will
 * be the node name as it was at the time the node was recorded; if the node
 * has changed names since then, this will still return the original name.
 */ 2 4 this 3 3926  1 n 1 3590  
1051 0 0 6 1001 3590 0 0 244 /**
 * Returns the index number of the indicated NodePath in the registry
 * (assuming its name hasn't changed since it was recorded in the registry),
 * or -1 if the NodePath cannot be found (for instance, because its name has
 * changed).
 */ 2 4 this 3 3926  11 attrib_node 1 3888  
1052 0 0 6 1001 3590 0 0 148 /**
 * Returns the index number of the node with the indicated type and name in
 * the registry, or -1 if there is no such node in the registry.
 */ 3 4 this 3 3926  4 type 1 3820  4 name 1 3845  
1053 0 0 4 1002 3816 0 0 47 /**
 * Removes all nodes from the registry.
 */ 1 4 this 3 3925  
1054 0 0 4 1003 3816 0 0 10 /**
 *
 */ 2 4 this 3 3926  3 out 1 3817  
1055 0 0 4 1004 3816 0 0 10 /**
 *
 */ 2 4 this 3 3926  3 out 1 3817  
1056 0 0 6 1005 3925 0 0 10 /**
 *
 */ 0 
1057 0 0 7 1008 3604 0 0 54 /**
 * Constructs an identity audio volume attrib.
 */ 0 
1058 0 0 23 1009 3604 0 0 125 /**
 * Constructs a new AudioVolumeAttrib object that indicates audio volume
 * should be scaled by the indicated factor.
 */ 1 6 volume 1 3595  
1059 0 0 7 1010 3604 0 0 213 /**
 * Constructs a new AudioVolumeAttrib object that ignores any
 * AudioVolumeAttrib inherited from above.  You may also specify an additional
 * volume scale to apply to geometry below (using set_volume()).
 */ 0 
1060 0 0 7 1011 3604 0 0 145 /**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */ 0 
1061 0 0 6 1012 3597 0 0 257 /**
 * Returns true if the AudioVolumeAttrib will ignore any color scales
 * inherited from above, false otherwise.  This is not the same thing as
 * !has_scale(); a AudioVolumeAttrib may have the "off" flag set and also have
 * another scale specified.
 */ 1 4 this 3 3928  
1062 0 0 6 1013 3597 0 0 159 /**
 * Returns true if the AudioVolumeAttrib has a non-identity volume, false
 * otherwise (in which case it might be an off attrib or an identity attrib).
 */ 1 4 this 3 3928  
1063 0 0 6 1014 3595 0 0 54 /**
 * Returns the volume to be applied to sounds.
 */ 1 4 this 3 3928  
1064 0 0 7 1015 3604 0 0 118 /**
 * Returns a new AudioVolumeAttrib, just like this one, but with the volume
 * changed to the indicated value.
 */ 2 4 this 3 3928  6 volume 1 3595  
1065 0 0 6 1017 3590 0 0 0 0 
1066 0 0 7 1019 3820 0 0 0 0 
1067 0 0 7 1023 3604 0 0 57 /**
 * Constructs a default AuxBitplaneAttrib object.
 */ 0 
1068 0 0 23 1023 3604 0 0 59 /**
 * Constructs a specified AuxBitplaneAttrib object.
 */ 1 7 outputs 1 3590  
1069 0 0 7 1024 3604 0 0 145 /**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */ 0 
1070 0 0 6 1025 3590 0 0 53 /**
 * Returns the AuxBitplaneAttrib output bits.
 */ 1 4 this 3 3930  
1071 0 0 6 1027 3590 0 0 0 0 
1072 0 0 7 1029 3820 0 0 0 0 
1073 0 0 15 1041 3671 2779 0 0 1 6 param0 0 3932  
1074 0 0 4 1033 3816 0 0 159 /**
 * Specifies the minimum length in time, in seconds, to keep this AuxSceneData
 * object around in the scene graph after the last time it was rendered.
 */ 2 4 this 3 3671  8 duration 1 3934  
1075 0 0 6 1034 3934 0 0 157 /**
 * Returns the minimum length in time, in seconds, to keep this AuxSceneData
 * object around in the scene graph after the last time it was rendered.
 */ 1 4 this 3 3932  
1076 0 0 4 1035 3816 0 0 111 /**
 * Should be called with the current frame_time each time the AuxSceneData is
 * used during traversal.
 */ 2 4 this 3 3671  11 render_time 1 3934  
1077 0 0 6 1036 3934 0 0 112 /**
 * Returns the last time this object was used during traversal (according to
 * set_last_render_time()).
 */ 1 4 this 3 3932  
1078 0 0 6 1037 3934 0 0 129 /**
 * Returns the frame_time at which this AuxSceneData object is currently
 * scheduled to be removed from the scene graph.
 */ 1 4 this 3 3932  
1079 0 0 4 1038 3816 0 0 10 /**
 *
 */ 2 4 this 3 3932  3 out 1 3817  
1080 0 0 4 1039 3816 0 0 10 /**
 *
 */ 3 4 this 3 3932  3 out 1 3817  12 indent_level 5 3590  
1081 0 0 7 1040 3820 0 0 0 0 
1082 0 0 7 1045 3935 2781 0 10 /**
 *
 */ 0 
1083 0 0 6 1047 3597 0 0 111 /**
 * Attempts to open the indicated filename for reading.  Returns true if
 * successful, false on error.
 */ 3 4 this 3 3935  12 bam_filename 1 3921  13 report_errors 5 3597  
1084 0 0 6 1047 3597 0 0 162 /**
 * Attempts to open the indicated stream for reading.  The filename is just
 * for information purposes only.  Returns true if successful, false on error.
 */ 4 4 this 3 3935  2 in 1 3936  12 bam_filename 5 3845  13 report_errors 5 3597  
1085 0 0 6 1048 3938 0 0 313 /**
 * Reads and returns the next object from the Bam file, or NULL if the end of
 * the file has been reached, or if there is an error condition.  Use is_eof()
 * to differentiate these two cases.
 *
 * The pointers returned by this method will not be valid for use until
 * resolve() is subsequently called.
 */ 1 4 this 3 3935  
1086 0 0 6 1049 3597 0 0 138 /**
 * Returns true if the reader has reached end-of-file, false otherwise.  This
 * call is only valid after a call to read_object().
 */ 1 4 this 3 3940  
1087 0 0 6 1050 3597 0 0 358 /**
 * This must be called after one or more objects have been read via calls to
 * read_object() in order to resolve all internal pointer references in the
 * objects read and make all the pointers valid.  It returns true if all
 * objects are successfully resolved, or false if some have not been (in which
 * case you must call resolve() again later).
 */ 1 4 this 3 3935  
1088 0 0 7 1051 3647 2131 0 758 /**
 * Although the bam file format is general enough to store a list of objects
 * of arbitrary type, bam files on disk usually contain just one object, a
 * PandaNode that is the root of a scene graph.  (Bam files that store other
 * kinds of things are usually given the extension "boo", for "binary other
 * objects", to differentiate them from the normal scene graph type file.)
 *
 * This is a convenience method for when you believe you are reading a scene
 * graph bam file.  It reads the one PandaNode and returns it.  It also calls
 * resolve() to fully resolve the object, since we expect this will be the
 * only object in the file.
 *
 * If the bam file contains something other than a PandaNode, an error is
 * printed and NULL is returned.
 */ 2 4 this 3 3935  13 report_errors 5 3597  
1089 0 0 6 1052 3597 0 0 190 /**
 * Attempts to open the indicated file for writing.  If another file by the
 * same name already exists, it will be silently removed.  Returns true if
 * successful, false otherwise.
 */ 3 4 this 3 3935  12 bam_filename 1 3921  13 report_errors 5 3597  
1090 0 0 6 1052 3597 0 0 162 /**
 * Attempts to open the indicated stream for writing.  The filename is just
 * for information purposes only.  Returns true if successful, false on error.
 */ 4 4 this 3 3935  3 out 1 3817  12 bam_filename 5 3845  13 report_errors 5 3597  
1091 0 0 6 1053 3597 0 0 103 /**
 * Writes the indicated object to the Bam file.  Returns true if successful,
 * false on error.
 */ 2 4 this 3 3935  6 object 1 3942  
1092 0 0 4 1054 3816 0 0 45 /**
 * Closes the input or output stream.
 */ 1 4 this 3 3935  
1093 0 0 6 1055 3597 0 0 124 /**
 * Returns true if the Bam file is open and ready for reading with no errors
 * so far detected, or false otherwise.
 */ 1 4 this 3 3940  
1094 0 0 6 1056 3597 0 0 124 /**
 * Returns true if the Bam file is open and ready for writing with no errors
 * so far detected, or false otherwise.
 */ 1 4 this 3 3940  
1095 0 0 6 1057 3590 0 0 168 /**
 * Returns the major version number of the file currently being read, or the
 * system current major version number if no file is currently open for
 * reading.
 */ 1 4 this 3 3935  
1096 0 0 6 1058 3590 0 0 168 /**
 * Returns the minor version number of the file currently being read, or the
 * system current minor version number if no file is currently open for
 * reading.
 */ 1 4 this 3 3935  
1097 0 0 6 1059 3657 0 0 102 /**
 * Returns the endian preference indicated by the Bam file currently being
 * read or written.
 */ 1 4 this 3 3940  
1098 0 0 6 1060 3597 0 0 122 /**
 * Returns true if the file stores all "standard" floats as 64-bit doubles, or
 * false if they are 32-bit floats.
 */ 1 4 this 3 3940  
1099 0 0 6 1061 3590 0 0 140 /**
 * Returns the system current major version number.  This is the version
 * number that will be assigned to any generated Bam files.
 */ 1 4 this 3 3935  
1100 0 0 6 1062 3590 0 0 140 /**
 * Returns the system current minor version number.  This is the version
 * number that will be assigned to any generated Bam files.
 */ 1 4 this 3 3935  
1101 0 0 6 1063 3658 0 0 134 /**
 * Returns the BamReader in charge of performing the read operations.  This
 * will return NULL unless open_read() was called.
 */ 1 4 this 3 3935  
1102 0 0 6 1064 3660 0 0 136 /**
 * Returns the BamWriter in charge of performing the write operations.  This
 * will return NULL unless open_write() was called.
 */ 1 4 this 3 3935  
1103 0 0 23 1077 3841 0 0 81 /**
 * Constructs a new BillboardEffect object with the indicated properties.
 */ 7 9 up_vector 1 3904  12 eye_relative 1 3597  12 axial_rotate 1 3597  6 offset 1 3595  7 look_at 1 3888  13 look_at_point 1 3903  11 fixed_depth 5 3597  
1104 0 0 7 1078 3841 0 0 76 /**
 * A convenience function to make a typical axis-rotating billboard.
 */ 0 
1105 0 0 7 1079 3841 0 0 93 /**
 * A convenience function to make a typical eye-relative point-rotating
 * billboard.
 */ 0 
1106 0 0 7 1080 3841 0 0 95 /**
 * A convenience function to make a typical world-relative point-rotating
 * billboard.
 */ 0 
1107 0 0 6 1081 3597 0 0 323 /**
 * Returns true if the BillboardEffect is an 'off' BillboardEffect, indicating
 * that it does not enable billboarding.  This kind of BillboardEffect isn't
 * particularly useful and isn't normally created or stored in the graph; it
 * might be implicitly discovered as the result of a
 * NodePath::get_rel_state().
 */ 1 4 this 3 3944  
1108 0 0 6 1082 3904 0 0 62 /**
 * Returns the up vector in effect for this billboard.
 */ 1 4 this 3 3944  
1109 0 0 6 1083 3597 0 0 134 /**
 * Returns true if this billboard interprets the up vector relative to the
 * camera, or false if it is relative to the world.
 */ 1 4 this 3 3944  
1110 0 0 6 1084 3597 0 0 142 /**
 * Returns true if this billboard rotates only around the axis of the up
 * vector, or false if it rotates freely in three dimensions.
 */ 1 4 this 3 3944  
1111 0 0 6 1085 3597 0 0 96 /**
 * Returns true if this billboard always appears at a fixed distance from the
 * camera.
 */ 1 4 this 3 3944  
1112 0 0 6 1086 3595 0 0 204 /**
 * Returns the distance toward the camera (or the look_at_point) the billboard
 * is moved towards, after rotating.  This can be used to ensure the billboard
 * is not obscured by nearby geometry.
 */ 1 4 this 3 3944  
1113 0 0 6 1087 3888 0 0 188 /**
 * Returns the node this billboard will rotate to look towards.  If this is
 * empty, it means the billboard will rotate towards the current camera node,
 * wherever that might be.
 */ 1 4 this 3 3944  
1114 0 0 6 1088 3903 0 0 132 /**
 * Returns the point, relative to the look_at node, towards which the
 * billboard will rotate.  Normally this is (0, 0, 0).
 */ 1 4 this 3 3944  
1115 0 0 7 1089 3820 0 0 0 0 
1116 0 0 7 1092 3948 2827 0 10 /**
 *
 */ 2 4 name 1 3845  4 lens 5 3946  
1117 0 0 4 1093 3816 0 0 148 /**
 * Sets up the LensNode using a copy of the indicated Lens.  If the original
 * Lens is changed or destroyed, this LensNode is not affected.
 */ 2 4 this 3 3948  4 lens 1 3949  
1118 0 0 4 1093 3816 0 0 61 /**
 * Copies the indicated lens into the specified slot.
 */ 3 4 this 3 3948  5 index 1 3590  4 lens 1 3949  
1119 0 0 4 1094 3816 0 0 168 /**
 * Sets up the LensNode using this particular Lens pointer.  If the lens is
 * subsequently modified, the LensNode properties immediately reflect the
 * change.
 */ 2 4 this 3 3948  4 lens 1 3946  
1120 0 0 4 1094 3816 0 0 302 /**
 * Sets the indicated lens.  Although a LensNode normally holds only one lens,
 * it may optionally include multiple lenses, each with a different index
 * number.  The different lenses may be referenced by index number on the
 * DisplayRegion.  Adding a new lens automatically makes it active.
 */ 3 4 this 3 3948  5 index 1 3590  4 lens 1 3946  
1121 0 0 7 1095 3946 0 0 191 /**
 * Returns a pointer to the particular Lens associated with this LensNode, or
 * NULL if there is not yet a Lens associated.  If an index number is
 * specified, returns the nth lens.
 */ 2 4 this 3 3951  5 index 5 3590  
1122 0 0 6 1096 3597 0 0 263 /**
 * Sets the active flag for the nth lens.  When a lens is inactive, it is not
 * used for rendering, and any DisplayRegions associated with it are
 * implicitly inactive as well.  Returns true if the flag is changed, false if
 * it already had this value.
 */ 3 4 this 3 3948  5 index 1 3590  6 active 1 3597  
1123 0 0 6 1097 3597 0 0 52 /**
 * Returns the active flag for the nth lens.
 */ 2 4 this 3 3951  5 index 1 3590  
1124 0 0 6 1098 3597 0 0 65 /**
 * An alternate way to call set_lens_active(index, true).
 */ 2 4 this 3 3948  5 index 1 3590  
1125 0 0 6 1099 3597 0 0 66 /**
 * An alternate way to call set_lens_active(index, false).
 */ 2 4 this 3 3948  5 index 1 3590  
1126 0 0 6 1100 3597 0 0 135 /**
 * Returns true if the given point is within the bounds of the lens of the
 * LensNode (i.e.  if the camera can see the point).
 */ 2 4 this 3 3948  3 pos 1 3903  
1127 0 0 6 1100 3597 0 0 199 /**
 * Returns true if the given point is within the bounds of the lens of the
 * LensNode (i.e.  if the camera can see the point).  The point is assumed to
 * be relative to the LensNode itself.
 */ 3 4 this 3 3948  5 index 1 3590  3 pos 1 3903  
1128 0 0 4 1101 3816 0 0 149 /**
 * Enables the drawing of the lens's frustum to aid in visualization.  This
 * actually creates a GeomNode which is parented to the LensNode.
 */ 1 4 this 3 3948  
1129 0 0 4 1102 3816 0 0 78 /**
 * Disables the drawing of the lens's frustum to aid in visualization.
 */ 1 4 this 3 3948  
1130 0 0 7 1103 3820 0 0 0 0 
1131 0 0 23 1106 3953 2829 0 10 /**
 *
 */ 1 9 node_path 1 3888  
1132 0 0 15 1106 3953 2829 0 10 /**
 *
 */ 1 4 copy 1 3916  
1133 0 0 6 1108 3953 0 0 0 2 4 this 3 3953  9 node_path 1 3888  
1134 0 0 6 1108 3953 0 0 0 2 4 this 3 3953  4 copy 1 3916  
1135 0 0 4 1109 3816 0 0 93 /**
 * Sets this NodePath to the empty NodePath.  It will no longer point to any
 * node.
 */ 1 4 this 3 3953  
1136 0 0 6 1111 3597 0 0 85 /**
 * Returns true if the NodePath contains no nodes, or if it has been deleted.
 */ 1 4 this 3 3916  
1137 0 0 6 1112 3597 0 0 116 /**
 * Returns true if the NodePath we were referencing has been quietly deleted
 * outside of the WeakNodePath.
 */ 1 4 this 3 3916  
1138 0 0 7 1113 3898 2739 0 131 /**
 * Returns the NodePath held within this object, or an empty NodePath with the
 * error flag set if the object was deleted.
 */ 1 4 this 3 3916  
1139 0 0 7 1114 3647 2131 0 98 /**
 * Returns the PandaNode held within this object, or nullptr if the object was
 * deleted.
 */ 1 4 this 3 3916  
1140 0 0 6 1115 3597 0 0 0 2 4 this 3 3916  5 other 1 3888  
1141 0 0 6 1115 3597 0 0 0 2 4 this 3 3916  5 other 1 3916  
1142 0 0 6 1116 3597 0 0 0 2 4 this 3 3916  5 other 1 3888  
1143 0 0 6 1116 3597 0 0 0 2 4 this 3 3916  5 other 1 3916  
1144 0 0 6 1117 3597 0 0 0 2 4 this 3 3916  5 other 1 3888  
1145 0 0 6 1117 3597 0 0 0 2 4 this 3 3916  5 other 1 3916  
1146 0 0 6 1118 3590 0 0 486 /**
 * Returns a number less than zero if this NodePath sorts before the other
 * one, greater than zero if it sorts after, or zero if they are equivalent.
 *
 * Two NodePaths are considered equivalent if they consist of exactly the same
 * list of nodes in the same order.  Otherwise, they are different; different
 * NodePaths will be ranked in a consistent but undefined ordering; the
 * ordering is useful only for placing the NodePaths in a sorted container
 * like an STL set.
 */ 2 4 this 3 3916  5 other 1 3888  
1147 0 0 6 1118 3590 0 0 502 /**
 * Returns a number less than zero if this WeakNodePath sorts before the other
 * one, greater than zero if it sorts after, or zero if they are equivalent.
 *
 * Two WeakNodePaths are considered equivalent if they consist of exactly the
 * same list of nodes in the same order.  Otherwise, they are different;
 * different WeakNodePaths will be ranked in a consistent but undefined
 * ordering; the ordering is useful only for placing the WeakNodePaths in a
 * sorted container like an STL set.
 */ 2 4 this 3 3916  5 other 1 3916  
1148 0 0 6 1119 3590 0 0 58 /**
 * Returns the same values as NodePath::get_key().
 */ 1 4 this 3 3916  
1149 0 0 4 1120 3816 0 0 10 /**
 *
 */ 2 4 this 3 3916  3 out 1 3817  
1150 0 0 6 1110 3597 0 0 0 1 4 this 3 3916  
1151 0 0 15 1122 3956 2827 0 10 /**
 *
 */ 1 4 copy 1 3954  
1152 0 0 7 1122 3956 2827 0 10 /**
 *
 */ 2 4 name 1 3845  4 lens 5 3946  
1153 0 0 4 1123 3816 0 0 107 /**
 * Sets the active flag on the camera.  When the camera is not active, nothing
 * will be rendered.
 */ 2 4 this 3 3956  6 active 1 3597  
1154 0 0 6 1124 3597 0 0 72 /**
 * Returns the current setting of the active flag on the camera.
 */ 1 4 this 3 3954  
1155 0 0 4 1126 3816 0 0 479 /**
 * Sets the scene that will be rendered by the camera.  This is normally the
 * root node of a scene graph, typically a node called 'render', although it
 * could represent the root of any subgraph.
 *
 * Note that the use of this method is now deprecated.  In the absence of an
 * explicit scene set on the camera, the camera will render whatever scene it
 * is parented into.  This is the preferred way to specify the scene, since it
 * is the more intuitive mechanism.
 */ 2 4 this 3 3956  5 scene 1 3888  
1156 0 0 6 1127 3888 0 0 83 /**
 * Returns the scene that will be rendered by the camera.  See set_scene().
 */ 1 4 this 3 3954  
1157 0 0 6 1130 3794 0 0 76 /**
 * Returns the number of display regions associated with the camera.
 */ 1 4 this 3 3954  
1158 0 0 6 1131 3667 0 0 69 /**
 * Returns the nth display region associated with the camera.
 */ 2 4 this 3 3954  1 n 1 3794  
1159 0 0 4 1136 3816 0 0 401 /**
 * Changes the set of bits that represent the subset of the scene graph the
 * camera will render.
 *
 * During the cull traversal, a node is not visited if none of its draw mask
 * bits intersect with the camera's camera mask bits.  These masks can be used
 * to selectively hide and show different parts of the scene graph from
 * different cameras that are otherwise viewing the same scene.
 */ 2 4 this 3 3956  4 mask 1 3853  
1160 0 0 7 1137 3853 0 0 130 /**
 * Returns the set of bits that represent the subset of the scene graph the
 * camera will render.  See set_camera_mask().
 */ 1 4 this 3 3954  
1161 0 0 4 1139 3816 0 0 320 /**
 * Specifies the point from which the culling operations are performed.
 * Normally, this is the same as the camera, and that is the default if this
 * is not specified; but it may sometimes be useful to perform the culling
 * from some other viewpoint, particularly when you are debugging the culling
 * itself.
 */ 2 4 this 3 3956  11 cull_center 1 3888  
1162 0 0 6 1140 3888 0 0 153 /**
 * Returns the point from which the culling operations will be performed, if
 * it was set by set_cull_center(), or the empty NodePath otherwise.
 */ 1 4 this 3 3954  
1163 0 0 4 1142 3816 0 0 379 /**
 * Specifies the bounding volume that should be used to perform culling from
 * this camera.  Normally, this is the bounding volume returned from the
 * active lens' make_bounds() call, but you may override this to specify a
 * custom volume if you require.  The specified bounding volume will be
 * understood to be in the coordinate space of the get_cull_center() node.
 */ 2 4 this 3 3956  11 cull_bounds 1 3669  
1164 0 0 7 1143 3669 0 0 129 /**
 * Returns the custom cull volume that was set by set_cull_bounds(), if any,
 * or NULL if no custom cull volume was set.
 */ 1 4 this 3 3954  
1165 0 0 4 1146 3816 0 0 379 /**
 * Specifies the point from which the LOD distances are measured.  Normally,
 * this is the same as the camera, and that is the default if this is not
 * specified; but it may sometimes be useful to perform the distance test from
 * some other viewpoint.  This may be used, for instance, to reduce LOD
 * popping when the camera rotates in a small circle about an avatar.
 */ 2 4 this 3 3956  10 lod_center 1 3888  
1166 0 0 6 1147 3888 0 0 146 /**
 * Returns the point from which the LOD distances will be measured, if it was
 * set by set_lod_center(), or the empty NodePath otherwise.
 */ 1 4 this 3 3954  
1167 0 0 4 1149 3816 0 0 129 /**
 * Sets the initial state which is applied to all nodes in the scene, as if it
 * were set at the top of the scene graph.
 */ 2 4 this 3 3956  5 state 1 3829  
1168 0 0 7 1150 3829 0 0 86 /**
 * Returns the initial state as set by a previous call to set_initial_state().
 */ 1 4 this 3 3954  
1169 0 0 4 1152 3816 0 0 218 /**
 * Sets the tag key which, when encountered as a tag on nodes in the scene
 * graph, causes this Camera to apply an arbitrary state transition based on
 * the value of the tag (as specified to set_tag_state()).
 */ 2 4 this 3 3956  13 tag_state_key 1 3845  
1170 0 0 6 1153 3845 0 0 80 /**
 * Returns the tag key as set by a previous call to set_tag_state_key().
 */ 1 4 this 3 3954  
1171 0 0 4 1156 3816 0 0 114 /**
 * Sets the multiplier for LOD distances.  This value is multiplied with the
 * LOD scale set on LodNodes.
 */ 2 4 this 3 3956  5 value 1 3595  
1172 0 0 6 1157 3595 0 0 52 /**
 * Returns the multiplier for LOD distances.
 */ 1 4 this 3 3954  
1173 0 0 4 1159 3816 0 0 585 /**
 * Associates a particular state transition with the indicated tag value.
 * When a node is encountered during traversal with the tag key specified by
 * set_tag_state_key(), if the value of that tag matches tag_state, then the
 * indicated state is applied to this node--but only when it is rendered by
 * this camera.
 *
 * This can be used to apply special effects to nodes when they are rendered
 * by certain cameras.  It is particularly useful for multipass rendering, in
 * which specialty cameras might be needed to render the scene with a
 * particular set of effects.
 */ 3 4 this 3 3956  9 tag_state 1 3845  5 state 1 3829  
1174 0 0 4 1160 3816 0 0 85 /**
 * Removes the association established by a previous call to set_tag_state().
 */ 2 4 this 3 3956  9 tag_state 1 3845  
1175 0 0 4 1161 3816 0 0 85 /**
 * Removes all associations established by previous calls to set_tag_state().
 */ 1 4 this 3 3956  
1176 0 0 6 1162 3597 0 0 119 /**
 * Returns true if set_tag_state() has previously been called with the
 * indicated tag state, false otherwise.
 */ 2 4 this 3 3954  9 tag_state 1 3845  
1177 0 0 7 1163 3829 0 0 161 /**
 * Returns the state associated with the indicated tag state by a previous
 * call to set_tag_state(), or the empty state if nothing has been associated.
 */ 2 4 this 3 3954  9 tag_state 1 3845  
1178 0 0 4 1165 3816 0 0 157 /**
 * Associates the indicated AuxSceneData object with the given NodePath,
 * possibly replacing a previous data defined for the same NodePath, if any.
 */ 3 4 this 3 3956  9 node_path 1 3888  4 data 1 3671  
1179 0 0 6 1166 3597 0 0 153 /**
 * Removes the AuxSceneData associated with the indicated NodePath.  Returns
 * true if it is removed successfully, false if it was already gone.
 */ 2 4 this 3 3956  9 node_path 1 3888  
1180 0 0 7 1167 3671 2779 0 112 /**
 * Returns the AuxSceneData associated with the indicated NodePath, or NULL if
 * nothing is associated.
 */ 2 4 this 3 3954  9 node_path 1 3888  
1181 0 0 4 1168 3816 0 0 65 /**
 * Outputs all of the NodePaths and AuxSceneDatas in use.
 */ 2 4 this 3 3954  3 out 1 3817  
1182 0 0 6 1169 3590 0 0 179 /**
 * Walks through the list of currently-assigned AuxSceneData objects and
 * releases any that are past their expiration times.  Returns the number of
 * elements released.
 */ 2 4 this 3 3956  14 current_thread 5 3848  
1183 0 0 7 1172 3820 0 0 0 0 
1184 0 0 7 1174 3958 2885 0 10 /**
 *
 */ 2 4 name 1 3845  5 plane 5 3957  
1185 0 0 4 1175 3816 0 0 66 /**
 * Sets the particular plane represented by the PlaneNode.
 */ 2 4 this 3 3958  5 plane 1 3957  
1186 0 0 6 1176 3957 0 0 58 /**
 * Returns the plane represented by the PlaneNode.
 */ 1 4 this 3 3959  
1187 0 0 4 1177 3816 0 0 115 /**
 * Specifies the size of the visual representation of the plane that is drawn
 * if the PlaneNode is shown.
 */ 2 4 this 3 3958  9 viz_scale 1 3595  
1188 0 0 6 1178 3595 0 0 113 /**
 * Returns the size of the visual representation of the plane that is drawn if
 * the PlaneNode is shown.
 */ 1 4 this 3 3959  
1189 0 0 4 1179 3816 0 0 454 /**
 * Changes the relative importance of this PlaneNode (when it is used as a
 * clip plane) relative to the other clip planes that are applied
 * simultaneously.
 *
 * The priority number is used to decide which of the requested clip planes
 * are to be activated when more clip planes are requested than the hardware
 * will support.  The highest-priority n planes are selected for rendering.
 *
 * This is similar to TextureStage::set_priority().
 */ 2 4 this 3 3958  8 priority 1 3590  
1190 0 0 6 1180 3590 0 0 85 /**
 * Returns the priority associated with this clip plane.  See set_priority().
 */ 1 4 this 3 3959  
1191 0 0 4 1182 3816 0 0 436 /**
 * Specifies the sort of things this plane will actually clip (when it is used
 * as a clip plane).  This is a bitmask union of ClipEffect values.  If it
 * includes CE_visible, then it will clip visible geometry; if it includes
 * CE_collision, then it will clip collision polygons.  If it includes neither
 * bit, it will still affect culling, but objects will either be wholly behind
 * the clipping plane, or wholly present.
 */ 2 4 this 3 3958  11 clip_effect 1 3590  
1192 0 0 6 1183 3590 0 0 84 /**
 * Returns the clip_effect bits for this clip plane.  See set_clip_effect().
 */ 1 4 this 3 3959  
1193 0 0 7 1191 3820 0 0 0 0 
1194 0 0 7 1195 3604 0 0 75 // The following is the new, more general interface to the ClipPlaneAttrib. 0 
1195 0 0 23 1195 3604 0 0 186 /**
 * Constructs a new ClipPlaneAttrib object that enables (or disables,
 * according to op) the indicated plane(s).
 *
 * @deprecated Use add_on_plane() or add_off_plane() instead.
 */ 2 2 op 1 3678  5 plane 1 3958  
1196 0 0 23 1195 3604 0 0 181 /**
 * Constructs a new ClipPlaneAttrib object that turns on (or off, according to
 * op) the indicate plane(s).
 *
 * @deprecated Use add_on_plane() or add_off_plane() instead.
 */ 3 2 op 1 3678  6 plane1 1 3958  6 plane2 1 3958  
1197 0 0 23 1195 3604 0 0 181 /**
 * Constructs a new ClipPlaneAttrib object that turns on (or off, according to
 * op) the indicate plane(s).
 *
 * @deprecated Use add_on_plane() or add_off_plane() instead.
 */ 4 2 op 1 3678  6 plane1 1 3958  6 plane2 1 3958  6 plane3 1 3958  
1198 0 0 23 1195 3604 0 0 181 /**
 * Constructs a new ClipPlaneAttrib object that turns on (or off, according to
 * op) the indicate plane(s).
 *
 * @deprecated Use add_on_plane() or add_off_plane() instead.
 */ 5 2 op 1 3678  6 plane1 1 3958  6 plane2 1 3958  6 plane3 1 3958  6 plane4 1 3958  
1199 0 0 7 1196 3604 0 0 145 /**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */ 0 
1200 0 0 6 1197 3678 0 0 512 /**
 * Returns the basic operation type of the ClipPlaneAttrib.  If this is O_set,
 * the planes listed here completely replace any planes that were already on.
 * If this is O_add, the planes here are added to the set of planes that
 * were already on, and if O_remove, the planes here are removed from the set
 * of planes that were on.
 *
 * @deprecated ClipPlaneAttribs nowadays have a separate list of on_planes and
 * off_planes, so this method no longer makes sense.  Query the lists
 * independently.
 */ 1 4 this 3 3961  
1201 0 0 6 1198 3590 0 0 234 /**
 * Returns the number of planes listed in the attribute.
 *
 * @deprecated ClipPlaneAttribs nowadays have a separate list of on_planes and
 * off_planes, so this method no longer makes sense.  Query the lists
 * independently.
 */ 1 4 this 3 3961  
1202 0 0 7 1199 3958 2885 0 227 /**
 * Returns the nth plane listed in the attribute.
 *
 * @deprecated ClipPlaneAttribs nowadays have a separate list of on_planes and
 * off_planes, so this method no longer makes sense.  Query the lists
 * independently.
 */ 2 4 this 3 3961  1 n 1 3590  
1203 0 0 6 1200 3597 0 0 261 /**
 * Returns true if the indicated plane is listed in the attrib, false
 * otherwise.
 *
 * @deprecated ClipPlaneAttribs nowadays have a separate list of on_planes and
 * off_planes, so this method no longer makes sense.  Query the lists
 * independently.
 */ 2 4 this 3 3961  5 plane 1 3958  
1204 0 0 7 1201 3604 0 0 187 /**
 * Returns a new ClipPlaneAttrib, just like this one, but with the indicated
 * plane added to the list of planes.
 *
 * @deprecated Use add_on_plane() or add_off_plane() instead.
 */ 2 4 this 3 3961  5 plane 1 3958  
1205 0 0 7 1202 3604 0 0 197 /**
 * Returns a new ClipPlaneAttrib, just like this one, but with the indicated
 * plane removed from the list of planes.
 *
 * @deprecated Use remove_on_plane() or remove_off_plane() instead.
 */ 2 4 this 3 3961  5 plane 1 3958  
1206 0 0 7 1203 3604 0 0 109 /**
 * Constructs a new ClipPlaneAttrib object that disables all planes (and hence
 * disables clipping).
 */ 0 
1207 0 0 6 1204 3590 0 0 74 /**
 * Returns the number of planes that are enabled by the attribute.
 */ 1 4 this 3 3961  
1208 0 0 7 1205 3898 2739 0 82 /**
 * Returns the nth plane enabled by the attribute, sorted in render order.
 */ 2 4 this 3 3961  1 n 1 3590  
1209 0 0 6 1207 3597 0 0 92 /**
 * Returns true if the indicated plane is enabled by the attrib, false
 * otherwise.
 */ 2 4 this 3 3961  5 plane 1 3888  
1210 0 0 6 1208 3590 0 0 75 /**
 * Returns the number of planes that are disabled by the attribute.
 */ 1 4 this 3 3961  
1211 0 0 7 1209 3898 2739 0 99 /**
 * Returns the nth plane disabled by the attribute, sorted in arbitrary
 * (pointer) order.
 */ 2 4 this 3 3961  1 n 1 3590  
1212 0 0 6 1211 3597 0 0 93 /**
 * Returns true if the indicated plane is disabled by the attrib, false
 * otherwise.
 */ 2 4 this 3 3961  5 plane 1 3888  
1213 0 0 6 1212 3597 0 0 97 /**
 * Returns true if this attrib disables all planes (although it may also
 * enable some).
 */ 1 4 this 3 3961  
1214 0 0 6 1213 3597 0 0 102 /**
 * Returns true if this is an identity attrib: it does not change the set of
 * planes in use.
 */ 1 4 this 3 3961  
1215 0 0 7 1214 3604 0 0 145 /**
 * Returns a new ClipPlaneAttrib, just like this one, but with the indicated
 * plane added to the list of planes enabled by this attrib.
 */ 2 4 this 3 3961  5 plane 1 3888  
1216 0 0 7 1215 3604 0 0 149 /**
 * Returns a new ClipPlaneAttrib, just like this one, but with the indicated
 * plane removed from the list of planes enabled by this attrib.
 */ 2 4 this 3 3961  5 plane 1 3888  
1217 0 0 7 1216 3604 0 0 146 /**
 * Returns a new ClipPlaneAttrib, just like this one, but with the indicated
 * plane added to the list of planes disabled by this attrib.
 */ 2 4 this 3 3961  5 plane 1 3888  
1218 0 0 7 1217 3604 0 0 150 /**
 * Returns a new ClipPlaneAttrib, just like this one, but with the indicated
 * plane removed from the list of planes disabled by this attrib.
 */ 2 4 this 3 3961  5 plane 1 3888  
1219 0 0 7 1218 3961 0 0 216 /**
 * Returns a new ClipPlaneAttrib, very much like this one, but with the number
 * of on_planes reduced to be no more than max_clip_planes.  The number of
 * off_planes in the new ClipPlaneAttrib is undefined.
 */ 2 4 this 3 3961  15 max_clip_planes 1 3590  
1220 0 0 6 1219 3590 0 0 0 0 
1221 0 0 7 1221 3820 0 0 0 0 
1222 0 0 7 1225 3604 0 0 127 /**
 * Constructs a new ColorAttrib object that indicates geometry should be
 * rendered according to its own vertex color.
 */ 0 
1223 0 0 7 1226 3604 0 0 116 /**
 * Constructs a new ColorAttrib object that indicates geometry should be
 * rendered in the indicated color.
 */ 1 5 color 1 3824  
1224 0 0 7 1227 3604 0 0 102 /**
 * Constructs a new ColorAttrib object that indicates geometry should be
 * rendered in white.
 */ 0 
1225 0 0 7 1228 3604 0 0 145 /**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */ 0 
1226 0 0 6 1229 3680 0 0 313 /**
 * Returns the type of color specified by this ColorAttrib.  The options are:
 *
 * T_vertex - use the vertex color specified in the geometry itself.
 *
 * T_flat - use the color specified in this ColorAttrib for all geometry.  You
 * can get this color via get_color().
 *
 * T_off - use the color white.
 */ 1 4 this 3 3963  
1227 0 0 6 1230 3824 0 0 149 /**
 * If the type is T_flat or T_off, this returns the color that will be applied
 * to geometry.  If the type is T_vertex, this is meaningless.
 */ 1 4 this 3 3963  
1228 0 0 6 1233 3590 0 0 0 0 
1229 0 0 7 1235 3820 0 0 0 0 
1230 0 0 7 1240 3604 0 0 142 /**
 * Constructs a new ColorBlendAttrib object that disables special-effect
 * blending, allowing normal transparency to be used instead.
 */ 0 
1231 0 0 23 1241 3604 0 0 124 /**
 * Constructs a new ColorBlendAttrib object.
 *
 * @deprecated Use the three- or four-parameter constructor instead.
 */ 1 4 mode 1 3682  
1232 0 0 23 1241 3604 0 0 217 /**
 * Constructs a new ColorBlendAttrib object that enables special-effect
 * blending.  This supercedes transparency.  This form is used to specify
 * separate blending parameters for the RGB and alpha channels.
 */ 7 8 rgb_mode 1 3682  5 rgb_a 1 3683  5 rgb_b 1 3683  10 alpha_mode 1 3682  7 alpha_a 1 3683  7 alpha_b 1 3683  5 color 5 3824  
1233 0 0 23 1241 3604 0 0 201 /**
 * Constructs a new ColorBlendAttrib object that enables special-effect
 * blending.  This supercedes transparency.  The given mode and operands are
 * used for both the RGB and alpha channels.
 */ 4 4 mode 1 3682  1 a 1 3683  1 b 1 3683  5 color 5 3824  
1234 0 0 7 1242 3604 0 0 145 /**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */ 0 
1235 0 0 6 1243 3682 0 0 58 /**
 * Returns the blending mode for the RGB channels.
 */ 1 4 this 3 3965  
1236 0 0 6 1244 3683 0 0 62 /**
 * Returns the RGB multiplier for the first component.
 */ 1 4 this 3 3965  
1237 0 0 6 1245 3683 0 0 63 /**
 * Returns the RGB multiplier for the second component.
 */ 1 4 this 3 3965  
1238 0 0 6 1246 3682 0 0 59 /**
 * Returns the blending mode for the alpha channel.
 */ 1 4 this 3 3965  
1239 0 0 6 1247 3683 0 0 64 /**
 * Returns the alpha multiplier for the first component.
 */ 1 4 this 3 3965  
1240 0 0 6 1248 3683 0 0 65 /**
 * Returns the alpha multiplier for the second component.
 */ 1 4 this 3 3965  
1241 0 0 7 1249 3906 0 0 65 /**
 * Returns the constant color associated with the attrib.
 */ 1 4 this 3 3965  
1242 0 0 6 1250 3597 0 0 84 /**
 * Returns true if the this attrib uses the constant color, false otherwise.
 */ 1 4 this 3 3965  
1243 0 0 6 1250 3597 0 0 93 /**
 * Returns true if the indicated operand uses the constant color, false
 * otherwise.
 */ 1 7 operand 1 3683  
1244 0 0 6 1251 3597 0 0 91 /**
 * Returns true if the this attrib uses the color scale attrib, false
 * otherwise.
 */ 1 4 this 3 3965  
1245 0 0 6 1251 3597 0 0 97 /**
 * Returns true if the indicated operand uses the color scale attrib, false
 * otherwise.
 */ 1 7 operand 1 3683  
1246 0 0 6 1259 3590 0 0 0 0 
1247 0 0 7 1261 3820 0 0 0 0 
1248 0 0 7 1264 3604 0 0 47 /**
 * Constructs an identity scale attrib.
 */ 0 
1249 0 0 23 1265 3604 0 0 120 /**
 * Constructs a new ColorScaleAttrib object that indicates geometry should be
 * scaled by the indicated factor.
 */ 1 5 scale 1 3884  
1250 0 0 7 1266 3604 0 0 209 /**
 * Constructs a new ColorScaleAttrib object that ignores any ColorScaleAttrib
 * inherited from above.  You may also specify an additional color scale to
 * apply to geometry below (using set_scale()).
 */ 0 
1251 0 0 7 1267 3604 0 0 145 /**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */ 0 
1252 0 0 6 1268 3597 0 0 255 /**
 * Returns true if the ColorScaleAttrib will ignore any color scales inherited
 * from above, false otherwise.  This is not the same thing as !has_scale(); a
 * ColorScaleAttrib may have the "off" flag set and also have another scale
 * specified.
 */ 1 4 this 3 3967  
1253 0 0 6 1269 3597 0 0 128 /**
 * Returns true if the ColorScaleAttrib is an identity attrib, false if it is
 * either an off attrib or it has a scale.
 */ 1 4 this 3 3967  
1254 0 0 6 1270 3597 0 0 157 /**
 * Returns true if the ColorScaleAttrib has a non-identity scale, false
 * otherwise (in which case it might be an off attrib or an identity attrib).
 */ 1 4 this 3 3967  
1255 0 0 6 1271 3597 0 0 135 /**
 * Returns true if the ColorScaleAttrib has a non-identity scale in the RGB
 * components (ignoring alpha), or false otherwise.
 */ 1 4 this 3 3967  
1256 0 0 6 1272 3597 0 0 134 /**
 * Returns true if the ColorScaleAttrib has a non-identity scale in the alpha
 * component (ignoring RGB), or false otherwise.
 */ 1 4 this 3 3967  
1257 0 0 6 1273 3884 0 0 53 /**
 * Returns the scale to be applied to colors.
 */ 1 4 this 3 3967  
1258 0 0 7 1274 3604 0 0 116 /**
 * Returns a new ColorScaleAttrib, just like this one, but with the scale
 * changed to the indicated value.
 */ 2 4 this 3 3967  5 scale 1 3884  
1259 0 0 6 1278 3590 0 0 0 0 
1260 0 0 7 1280 3820 0 0 0 0 
1261 0 0 23 1284 3604 0 0 52 /**
 * Constructs a new ColorWriteAttrib object.
 */ 1 8 channels 1 3689  
1262 0 0 7 1285 3604 0 0 145 /**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */ 0 
1263 0 0 6 1286 3689 0 0 78 /**
 * Returns the mask of color channels that are enabled by this attrib.
 */ 1 4 this 3 3969  
1264 0 0 6 1289 3590 0 0 0 0 
1265 0 0 7 1291 3820 0 0 0 0 
1266 0 0 23 1295 3841 0 0 354 /**
 * Constructs a new CompassEffect object.  If the reference is an empty
 * NodePath, it means the CompassEffect is relative to the root of the scene
 * graph; otherwise, it's relative to the indicated node.  The properties
 * bitmask specifies the set of properties that the compass node inherits from
 * the reference instead of from its parent.
 */ 2 9 reference 1 3888  10 properties 5 3590  
1267 0 0 6 1296 3888 0 0 150 /**
 * Returns the reference node from which the CompassEffect inherits its
 * transform.  If this is empty, it means the root of the scene graph.
 */ 1 4 this 3 3971  
1268 0 0 6 1297 3590 0 0 131 /**
 * Returns the bitmask of properties that this CompassEffect object inherits
 * from its reference node (or from the root).
 */ 1 4 this 3 3971  
1269 0 0 7 1298 3820 0 0 0 0 
1270 0 0 7 1302 3973 2961 0 0 0 
1271 0 0 15 1302 3973 2961 0 0 1 6 param0 0 3974  
1272 0 0 7 1305 3976 2131 0 10 /**
 *
 */ 1 4 name 1 3845  
1273 0 0 4 1306 3816 0 0 123 /**
 * Sets the "preserved" flag.  When this is true, the GeomNode will be left
 * untouched by any flatten operations.
 */ 2 4 this 3 3976  5 value 1 3597  
1274 0 0 6 1307 3597 0 0 126 /**
 * Returns the "preserved" flag.  When this is true, the GeomNode will be left
 * untouched by any flatten operations.
 */ 1 4 this 3 3977  
1275 0 0 6 1308 3590 0 0 51 /**
 * Returns the number of geoms in the node.
 */ 1 4 this 3 3977  
1276 0 0 7 1309 3981 0 0 186 /**
 * Returns the nth geom of the node.  This object should not be modified,
 * since the same object might be shared between multiple different GeomNodes,
 * but see modify_geom().
 */ 2 4 this 3 3977  1 n 1 3590  
1277 0 0 7 1311 3982 0 0 641 /**
 * Returns the nth geom of the node, suitable for modifying it.  If the nth
 * Geom has multiple reference counts to it, reassigns it to an identical copy
 * first, and returns the new copy--this provides a "copy on write" that
 * ensures that the Geom that is returned is unique to this GeomNode and is
 * not shared with any other GeomNodes.
 *
 * Note that if this method is called in a downstream stage (for instance,
 * during cull or draw), then it will propagate the new list of Geoms upstream
 * all the way to pipeline stage 0, which may step on changes that were made
 * independently in pipeline stage 0. Use with caution.
 */ 2 4 this 3 3976  1 n 1 3590  
1278 0 0 7 1313 3829 0 0 296 /**
 * Returns the RenderState associated with the nth geom of the node.  This is
 * just the RenderState directly associated with the Geom; the actual state in
 * which the Geom is rendered will also be affected by RenderStates that
 * appear on the scene graph in nodes above this GeomNode.
 */ 2 4 this 3 3977  1 n 1 3590  
1279 0 0 4 1315 3816 0 0 586 /**
 * Changes the RenderState associated with the nth geom of the node.  This is
 * just the RenderState directly associated with the Geom; the actual state in
 * which the Geom is rendered will also be affected by RenderStates that
 * appear on the scene graph in nodes above this GeomNode.
 *
 * Note that if this method is called in a downstream stage (for instance,
 * during cull or draw), then it will propagate the new list of Geoms upstream
 * all the way to pipeline stage 0, which may step on changes that were made
 * independently in pipeline stage 0. Use with caution.
 */ 3 4 this 3 3976  1 n 1 3590  5 state 1 3829  
1280 0 0 4 1316 3816 0 0 180 /**
 * Adds a new Geom to the node.  The geom is given the indicated state (which
 * may be RenderState::make_empty(), to completely inherit its state from the
 * scene graph).
 */ 3 4 this 3 3976  4 geom 1 3982  5 state 5 3829  
1281 0 0 4 1317 3816 0 0 109 /**
 * Copies the Geoms (and their associated RenderStates) from the indicated
 * GeomNode into this one.
 */ 2 4 this 3 3976  5 other 1 3977  
1282 0 0 4 1318 3816 0 0 401 /**
 * Replaces the nth Geom of the node with a new pointer.  There must already
 * be a Geom in this slot.
 *
 * Note that if this method is called in a downstream stage (for instance,
 * during cull or draw), then it will propagate the new list of Geoms upstream
 * all the way to pipeline stage 0, which may step on changes that were made
 * independently in pipeline stage 0. Use with caution.
 */ 3 4 this 3 3976  1 n 1 3590  4 geom 1 3982  
1283 0 0 4 1319 3816 0 0 46 /**
 * Removes the nth geom from the node.
 */ 2 4 this 3 3976  1 n 1 3590  
1284 0 0 4 1320 3816 0 0 55 /**
 * Removes all the geoms from the node at once.
 */ 1 4 this 3 3976  
1285 0 0 6 1321 3597 0 0 198 /**
 * Verifies that the each Geom within the GeomNode reference vertices that
 * actually exist within its GeomVertexData.  Returns true if the GeomNode
 * appears to be valid, false otherwise.
 */ 1 4 this 3 3977  
1286 0 0 4 1322 3816 0 0 431 /**
 * Calls decompose() on each Geom with the GeomNode.  This decomposes higher-
 * order primitive types, like triangle strips, into lower-order types like
 * indexed triangles.  Normally there is no reason to do this, but it can be
 * useful as an early preprocessing step, to allow a later call to unify() to
 * proceed more quickly.
 *
 * See also SceneGraphReducer::decompose(), which is the normal way this is
 * called.
 */ 1 4 this 3 3976  
1287 0 0 4 1323 3816 0 0 901 /**
 * Attempts to unify all of the Geoms contained within this node into a single
 * Geom, or at least as few Geoms as possible.  In turn, the individual
 * GeomPrimitives contained within each resulting Geom are also unified.  The
 * goal is to reduce the number of GeomPrimitives within the node as far as
 * possible.  This may result in composite primitives, such as triangle strips
 * and triangle fans, being decomposed into triangles.  See also
 * Geom::unify().
 *
 * max_indices represents the maximum number of indices that will be put in
 * any one GeomPrimitive.  If preserve_order is true, then the primitives will
 * not be reordered during the operation, even if this results in a suboptimal
 * result.
 *
 * In order for this to be successful, the primitives must reference the same
 * GeomVertexData, have the same fundamental primitive type, and have
 * compatible shade models.
 */ 3 4 this 3 3976  11 max_indices 1 3590  14 preserve_order 1 3597  
1288 0 0 4 1324 3816 0 0 67 /**
 * Writes a short description of all the Geoms in the node.
 */ 3 4 this 3 3977  3 out 1 3817  12 indent_level 1 3590  
1289 0 0 4 1325 3816 0 0 70 /**
 * Writes a detailed description of all the Geoms in the node.
 */ 3 4 this 3 3977  3 out 1 3817  12 indent_level 1 3590  
1290 0 0 7 1326 3854 0 0 75 /**
 * Returns the default into_collide_mask assigned to new GeomNodes.
 */ 0 
1291 0 0 7 1328 3820 0 0 0 0 
1292 0 0 23 1330 3604 0 0 297 /**
 * Constructs a new CullBinAttrib assigning geometry into the named bin.  If
 * the bin name is the empty string, the default bin is used.
 *
 * The draw_order specifies further ordering information which is relevant
 * only to certain kinds of bins (in particular CullBinFixed type bins).
 */ 2 8 bin_name 1 3845  10 draw_order 1 3590  
1293 0 0 7 1331 3604 0 0 145 /**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */ 0 
1294 0 0 6 1332 3845 0 0 127 /**
 * Returns the name of the bin this attribute specifies.  If this is the empty
 * string, it refers to the default bin.
 */ 1 4 this 3 3983  
1295 0 0 6 1333 3590 0 0 186 /**
 * Returns the draw order this attribute specifies.  Some bins (in particular,
 * CullBinFixed bins) use this to further specify the order in which objects
 * should be rendered.
 */ 1 4 this 3 3983  
1296 0 0 6 1336 3590 0 0 0 0 
1297 0 0 7 1338 3820 0 0 0 0 
1298 0 0 6 1341 3590 0 0 232 /**
 * Defines a new bin with the indicated name, and returns the new bin_index.
 * If there is already a bin with the same name returns its bin_index if it
 * had the same properties; otherwise, reports an error and returns -1.
 */ 4 4 this 3 3985  4 name 1 3845  4 type 1 3986  4 sort 1 3590  
1299 0 0 4 1342 3816 0 0 357 /**
 * Permanently removes the indicated bin.  This operation is not protected
 * from the pipeline and will disturb whatever is currently rendering in draw.
 * You should not call this during the normal course of rendering a frame; it
 * is intended only as an aid to development, to allow the developer to
 * interactively fiddle with the set of bins.
 */ 2 4 this 3 3985  9 bin_index 1 3590  
1300 0 0 6 1343 3590 0 0 51 /**
 * Returns the number of bins in the world.
 */ 1 4 this 3 3987  
1301 0 0 6 1344 3590 0 0 240 /**
 * Returns the bin_index of the nth bin in the set, where n is a number
 * between 0 and get_num_bins(). This returns the list of bin_index numbers,
 * in sorted order (that is, in the order in which the bins should be
 * rendered).
 */ 2 4 this 3 3987  1 n 1 3590  
1302 0 0 6 1346 3590 0 0 109 /**
 * Returns the bin_index associated with the bin of the given name, or -1 if
 * no bin has that name.
 */ 2 4 this 3 3987  4 name 1 3845  
1303 0 0 6 1347 3845 0 0 196 /**
 * Returns the name of the bin with the indicated bin_index (where bin_index
 * was retrieved by get_bin() or find_bin()).  The bin's name may not be
 * changed during the life of the bin.
 */ 2 4 this 3 3987  9 bin_index 1 3590  
1304 0 0 6 1348 3986 0 0 130 /**
 * Returns the type of the bin with the indicated bin_index (where bin_index
 * was retrieved by get_bin() or find_bin()).
 */ 2 4 this 3 3987  9 bin_index 1 3590  
1305 0 0 6 1348 3986 0 0 63 /**
 * Returns the type of the bin with the indicated name.
 */ 2 4 this 3 3987  4 name 1 3845  
1306 0 0 4 1349 3816 0 0 244 /**
 * Changes the type of the bin with the indicated bin_index (where bin_index
 * was retrieved by get_bin() or find_bin()).
 *
 * The change might be effective immediately, or it might take place next
 * frame, depending on the bin type.
 */ 3 4 this 3 3985  9 bin_index 1 3590  4 type 1 3986  
1307 0 0 4 1349 3816 0 0 177 /**
 * Changes the type of the bin with the indicated name.
 *
 * The change might be effective immediately, or it might take place next
 * frame, depending on the bin type.
 */ 3 4 this 3 3985  4 name 1 3845  4 type 1 3986  
1308 0 0 6 1350 3590 0 0 274 /**
 * Returns the sort order of the bin with the indicated bin_index (where
 * bin_index was retrieved by get_bin() or find_bin()).
 *
 * The bins are rendered in increasing order by their sort order; this number
 * may be changed from time to time to reorder the bins.
 */ 2 4 this 3 3987  9 bin_index 1 3590  
1309 0 0 6 1350 3590 0 0 207 /**
 * Returns the sort order of the bin with the indicated name.
 *
 * The bins are rendered in increasing order by their sort order; this number
 * may be changed from time to time to reorder the bins.
 */ 2 4 this 3 3987  4 name 1 3845  
1310 0 0 4 1351 3816 0 0 274 /**
 * Changes the sort order of the bin with the indicated bin_index (where
 * bin_index was retrieved by get_bin() or find_bin()).
 *
 * The bins are rendered in increasing order by their sort order; this number
 * may be changed from time to time to reorder the bins.
 */ 3 4 this 3 3985  9 bin_index 1 3590  4 sort 1 3590  
1311 0 0 4 1351 3816 0 0 207 /**
 * Changes the sort order of the bin with the indicated name.
 *
 * The bins are rendered in increasing order by their sort order; this number
 * may be changed from time to time to reorder the bins.
 */ 3 4 this 3 3985  4 name 1 3845  4 sort 1 3590  
1312 0 0 6 1352 3597 0 0 219 /**
 * Returns the active flag of the bin with the indicated bin_index (where
 * bin_index was retrieved by get_bin() or find_bin()).
 *
 * When a bin is marked inactive, all geometry assigned to it is not rendered.
 */ 2 4 this 3 3987  9 bin_index 1 3590  
1313 0 0 6 1352 3597 0 0 152 /**
 * Returns the active flag of the bin with the indicated name.
 *
 * When a bin is marked inactive, all geometry assigned to it is not rendered.
 */ 2 4 this 3 3987  4 name 1 3845  
1314 0 0 4 1353 3816 0 0 219 /**
 * Changes the active flag of the bin with the indicated bin_index (where
 * bin_index was retrieved by get_bin() or find_bin()).
 *
 * When a bin is marked inactive, all geometry assigned to it is not rendered.
 */ 3 4 this 3 3985  9 bin_index 1 3590  6 active 1 3597  
1315 0 0 4 1353 3816 0 0 152 /**
 * Changes the active flag of the bin with the indicated name.
 *
 * When a bin is marked inactive, all geometry assigned to it is not rendered.
 */ 3 4 this 3 3985  4 name 1 3845  6 active 1 3597  
1316 0 0 6 1354 3597 0 0 227 /**
 * Returns true if the bin with the given bin_index is configured to flash at
 * a predetermined color (where bin_index was retrieved by get_bin() or
 * find_bin()).
 *
 * This method is not available in release builds.
 */ 2 4 this 3 3987  9 bin_index 1 3590  
1317 0 0 6 1355 3824 0 0 147 /**
 * Returns the color that this bin has been configured to flash to, if
 * configured.
 *
 * This method is not available in release builds.
 */ 2 4 this 3 3987  9 bin_index 1 3590  
1318 0 0 4 1356 3816 0 0 216 /**
 * When set to true, the given bin_index is configured to flash at a
 * predetermined color (where bin_index was retrieved by get_bin() or
 * find_bin()).
 *
 * This method is not available in release builds.
 */ 3 4 this 3 3985  9 bin_index 1 3590  6 active 1 3597  
1319 0 0 4 1357 3816 0 0 113 /**
 * Changes the flash color for the given bin index.
 *
 * This method is not available in release builds.
 */ 3 4 this 3 3985  9 bin_index 1 3590  5 color 1 3824  
1320 0 0 4 1358 3816 0 0 10 /**
 *
 */ 2 4 this 3 3987  3 out 1 3817  
1321 0 0 6 1359 3985 0 0 67 /**
 * Returns the pointer to the global CullBinManager object.
 */ 0 
1322 0 0 23 1362 3604 0 0 400 /**
 * Constructs a new CullFaceAttrib object that specifies how to cull geometry.
 * By Panda convention, vertices are ordered counterclockwise when seen from
 * the front, so the M_cull_clockwise will cull backfacing polygons.
 *
 * M_cull_unchanged is an identity attrib; if this is applied to vertices
 * without any other intervening attrib, it is the same as applying the
 * default attrib.
 */ 1 4 mode 5 3698  
1323 0 0 7 1363 3604 0 0 246 /**
 * Constructs a new CullFaceAttrib object that reverses the effects of any
 * other CullFaceAttrib objects in the scene graph.  M_cull_clockwise will be
 * treated as M_cull_counter_clockwise, and vice-versa.  M_cull_none is
 * unchanged.
 */ 0 
1324 0 0 7 1364 3604 0 0 145 /**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */ 0 
1325 0 0 6 1365 3698 0 0 131 /**
 * Returns the actual culling mode, without considering the effects of the
 * reverse flag.  See also get_effective_mode().
 */ 1 4 this 3 3989  
1326 0 0 6 1366 3597 0 0 299 /**
 * Returns the 'reverse' flag.  If this is true, the actual cull direction
 * (clockwise vs.  counterclockwise) is the reverse of what is specified here.
 * This allows support for make_reverse(), which defines a CullFaceAttrib that
 * reverses whatever the sense of culling would have been.
 */ 1 4 this 3 3989  
1327 0 0 6 1367 3698 0 0 220 /**
 * Returns the effective culling mode.  This is the same as the actual culling
 * mode, unless the reverse flag is set, which swaps CW for CCW and vice-
 * versa.  Also, M_cull_unchanged is mapped to M_cull_none.
 */ 1 4 this 3 3989  
1328 0 0 6 1371 3590 0 0 0 0 
1329 0 0 7 1373 3820 0 0 0 0 
1330 0 0 15 1392 3991 3029 0 0 1 6 param0 0 3835  
1331 0 0 7 1382 3647 2131 0 48 /**
 * Returns the node traversed to so far.
 */ 1 4 this 3 3835  
1332 0 0 7 1383 3792 0 0 99 /**
 * Returns the modelview transform: the relative transform from the camera to
 * the model.
 */ 2 4 this 3 3835  4 trav 1 3992  
1333 0 0 7 1384 3792 0 0 110 /**
 * Returns the internal transform: the modelview transform in the GSG's
 * internal coordinate system.
 */ 2 4 this 3 3835  4 trav 1 3992  
1334 0 0 7 1385 3792 0 0 113 /**
 * Returns the net transform: the relative transform from root of the scene
 * graph to the current node.
 */ 2 4 this 3 3835  4 trav 1 3992  
1335 0 0 6 1386 3597 0 0 252 /**
 * Returns true if the current node is within the view frustum, false
 * otherwise.  If the node's bounding volume falls completely within the view
 * frustum, this will also reset the view frustum pointer, saving some work
 * for future nodes.
 */ 2 4 this 3 3991  11 camera_mask 1 3994  
1336 0 0 6 1387 3597 0 0 234 /**
 * Returns true if this particular node is hidden, even though we might be
 * traversing past this node to find a child node that has had show_through()
 * called for it.  If this returns true, the node should not be rendered.
 */ 2 4 this 3 3835  11 camera_mask 1 3994  
1337 0 0 4 1388 3816 0 0 128 /**
 * Applies the transform and state from the current node onto the current
 * data.  This also evaluates billboards, etc.
 */ 2 4 this 3 3991  4 trav 1 3834  
1338 0 0 4 1389 3816 0 0 73 /**
 * Applies the indicated transform changes onto the current data.
 */ 2 4 this 3 3991  14 node_transform 1 3792  
1339 0 0 15 1423 3998 3059 0 0 1 6 param0 0 3996  
1340 0 0 4 1395 3816 0 0 54 /**
 * Specifies the display region for the scene.
 */ 2 4 this 3 3998  14 display_region 1 3667  
1341 0 0 6 1396 3667 0 0 52 /**
 * Returns the display region for the scene.
 */ 1 4 this 3 3996  
1342 0 0 4 1397 3816 0 0 74 /**
 * Specifies the size of the viewport (display region), in pixels.
 */ 3 4 this 3 3998  5 width 1 3590  6 height 1 3590  
1343 0 0 6 1398 3590 0 0 72 /**
 * Returns the width of the viewport (display region) in pixels.
 */ 1 4 this 3 3996  
1344 0 0 6 1399 3590 0 0 73 /**
 * Returns the height of the viewport (display region) in pixels.
 */ 1 4 this 3 3996  
1345 0 0 4 1400 3816 0 0 48 /**
 * Specifies the root node of the scene.
 */ 2 4 this 3 3998  10 scene_root 1 3888  
1346 0 0 6 1401 3888 0 0 46 /**
 * Returns the root node of the scene.
 */ 1 4 this 3 3996  
1347 0 0 4 1402 3816 0 0 48 /**
 * Specifies the NodePath to the camera.
 */ 2 4 this 3 3998  11 camera_path 1 3888  
1348 0 0 6 1403 3888 0 0 46 /**
 * Returns the NodePath to the camera.
 */ 1 4 this 3 3996  
1349 0 0 4 1404 3816 0 0 57 /**
 * Specifies the camera used to render the scene.
 */ 2 4 this 3 3998  11 camera_node 1 3956  
1350 0 0 7 1405 3956 2827 0 55 /**
 * Returns the camera used to render the scene.
 */ 1 4 this 3 3996  
1351 0 0 4 1406 3816 0 0 60 /**
 * Indicates the particular Lens used for rendering.
 */ 2 4 this 3 3998  4 lens 1 3949  
1352 0 0 7 1407 3949 0 0 58 /**
 * Returns the particular Lens used for rendering.
 */ 1 4 this 3 3996  
1353 0 0 4 1408 3816 0 0 220 /**
 * Changes the current setting of the inverted flag.  When this is true, the
 * scene is rendered into the window upside-down and backwards, that is,
 * inverted as if viewed through a mirror placed on the floor.
 */ 2 4 this 3 3998  8 inverted 1 3597  
1354 0 0 6 1409 3597 0 0 177 /**
 * Returns the current setting of the inverted flag.  When this is true, the
 * scene is rendered into the window upside-down, flipped like a mirror along
 * the X axis.
 */ 1 4 this 3 3996  
1355 0 0 6 1410 3888 0 0 207 /**
 * Returns the point from which the culling operations will be performed.
 * This is normally the camera, but if camera->set_cull_center() has been
 * specified, it will be that special node instead.
 */ 1 4 this 3 3996  
1356 0 0 7 1411 3669 0 0 246 /**
 * Returns the bounding volume that should be used to perform view-frustum
 * culling (in the space of get_cull_center()).  This is normally the current
 * lens' bounding volume, but it may be overridden with
 * Camera::set_cull_bounds().
 */ 1 4 this 3 3996  
1357 0 0 4 1412 3816 0 0 129 /**
 * Sets the initial state which is applied to all nodes in the scene, as if it
 * were set at the top of the scene graph.
 */ 2 4 this 3 3998  13 initial_state 1 3829  
1358 0 0 7 1413 3829 0 0 86 /**
 * Returns the initial state as set by a previous call to set_initial_state().
 */ 1 4 this 3 3996  
1359 0 0 4 1414 3816 0 0 78 /**
 * Specifies the position of the camera relative to the starting node.
 */ 2 4 this 3 3998  16 camera_transform 1 3792  
1360 0 0 7 1415 3792 0 0 76 /**
 * Returns the position of the camera relative to the starting node.
 */ 1 4 this 3 3996  
1361 0 0 4 1416 3816 0 0 127 /**
 * Specifies the position of the starting node relative to the camera.  This
 * is the inverse of the camera transform.
 */ 2 4 this 3 3998  15 world_transform 1 3792  
1362 0 0 7 1417 3792 0 0 125 /**
 * Returns the position of the starting node relative to the camera.  This is
 * the inverse of the camera transform.
 */ 1 4 this 3 3996  
1363 0 0 4 1418 3816 0 0 114 /**
 * Specifies the transform from the camera's coordinate system to the GSG's
 * internal coordinate system.
 */ 2 4 this 3 3998  12 cs_transform 1 3792  
1364 0 0 7 1419 3792 0 0 112 /**
 * Returns the transform from the camera's coordinate system to the GSG's
 * internal coordinate system.
 */ 1 4 this 3 3996  
1365 0 0 4 1420 3816 0 0 124 /**
 * Specifies the position from the starting node relative to the camera, in
 * the GSG's internal coordinate system.
 */ 2 4 this 3 3998  18 cs_world_transform 1 3792  
1366 0 0 7 1421 3792 0 0 122 /**
 * Returns the position from the starting node relative to the camera, in the
 * GSG's internal coordinate system.
 */ 1 4 this 3 3996  
1367 0 0 7 1422 3820 0 0 0 0 
1368 0 0 7 1426 3706 2131 0 10 /**
 *
 */ 1 4 name 1 3845  
1369 0 0 6 1428 3703 0 0 10 /**
 *
 */ 1 4 this 3 3999  
1370 0 0 4 1429 3816 0 0 586 /**
 * Specifies the computation that is used to determine the fog effect.  If
 * this is M_linear, then the fog will range from linearly from the onset
 * point to the opaque point (or for the distances specified in
 * set_linear_range), and the fog object should be parented into the scene
 * graph, or to the camera.
 *
 * If this is anything else, the onset point and opaque point are not used,
 * and the fog effect is based on the value specified to set_exp_density(),
 * and it doesn't matter to which node the fog object is parented, or if it is
 * parented anywhere at all.
 */ 2 4 this 3 3706  4 mode 1 3703  
1371 0 0 6 1431 3824 0 0 40 /**
 * Returns the color of the fog.
 */ 1 4 this 3 3999  
1372 0 0 4 1432 3816 0 0 71 /**
 * Sets the color of the fog.  The alpha component is not used.
 */ 2 4 this 3 3706  5 color 1 3824  
1373 0 0 4 1432 3816 0 0 37 /**
 * Sets the color of the fog.
 */ 4 4 this 3 3706  1 r 1 3595  1 g 1 3595  1 b 1 3595  
1374 0 0 4 1434 3816 0 0 400 /**
 * Specifies the effects of the fog in linear distance units.  This is only
 * used if the mode is M_linear.
 *
 * This specifies a fog that begins at distance onset units from the origin,
 * and becomes totally opaque at distance opaque units from the origin, along
 * the forward axis (usually Y).
 *
 * This function also implicitly sets the mode the M_linear, if it is not
 * already set.
 */ 3 4 this 3 3706  5 onset 1 3595  6 opaque 1 3595  
1375 0 0 6 1435 3903 0 0 109 /**
 * Returns the point in space at which the fog begins.  This is only used if
 * the mode is M_linear.
 */ 1 4 this 3 3999  
1376 0 0 4 1436 3816 0 0 111 /**
 * Specifies the point in space at which the fog begins.  This is only used if
 * the mode is M_linear.
 */ 2 4 this 3 3706  18 linear_onset_point 1 3903  
1377 0 0 4 1436 3816 0 0 111 /**
 * Specifies the point in space at which the fog begins.  This is only used if
 * the mode is M_linear.
 */ 4 4 this 3 3706  1 x 1 3595  1 y 1 3595  1 z 1 3595  
1378 0 0 6 1439 3903 0 0 130 /**
 * Returns the point in space at which the fog completely obscures geometry.
 * This is only used if the mode is M_linear.
 */ 1 4 this 3 3999  
1379 0 0 4 1440 3816 0 0 132 /**
 * Specifies the point in space at which the fog completely obscures geometry.
 * This is only used if the mode is M_linear.
 */ 2 4 this 3 3706  19 linear_opaque_point 1 3903  
1380 0 0 4 1440 3816 0 0 132 /**
 * Specifies the point in space at which the fog completely obscures geometry.
 * This is only used if the mode is M_linear.
 */ 4 4 this 3 3706  1 x 1 3595  1 y 1 3595  1 z 1 3595  
1381 0 0 4 1442 3816 0 0 1553 /**
 * Fog effects are traditionally defined in camera-relative space, but the
 * Panda Fog node has a special mode in which it can define a linear fog
 * effect in an arbitrary coordinate space.
 *
 * This is done by specifying 3-d onset and opaque points, and parenting the
 * Fog object somewhere within the scene graph.  In this mode, the fog will be
 * rendered as if it extended along the vector from the onset point to the
 * opaque point, in 3-d space.
 *
 * However, the underlying fog effect supported by hardware is generally only
 * one-dimensional, and must be rendered based on linear distance from the
 * camera plane.  Thus, this in-the-world effect is most effective when the
 * fog vector from onset point to opaque point is most nearly parallel to the
 * camera's eye vector.
 *
 * As the angle between the fog vector and the eye vector increases, the
 * accuracy of the effect diminishes, up to a complete breakdown of the effect
 * at a 90 degree angle.
 *
 * This function exists to define the workaround to this problem.  The linear
 * fallback parameters given here specify how the fog should be rendered when
 * the parameters are exceeded in this way.
 *
 * The angle parameter is the minimum angle, in degrees, of the fog vector to
 * the eye vector, at which the fallback effect should be employed.  The onset
 * and opaque parameters specify the camera-relative onset and opaque
 * distances to pass to the rendering hardware when employing the fallback
 * effect.  This supercedes the 3-d onset point and opaque points.
 */ 4 4 this 3 3706  5 angle 1 3595  5 onset 1 3595  6 opaque 1 3595  
1382 0 0 6 1443 3595 0 0 122 /**
 * Returns the density of the fog for exponential calculations.  This is only
 * used if the mode is not M_linear.
 */ 1 4 this 3 3999  
1383 0 0 4 1444 3816 0 0 221 /**
 * Sets the density of the fog for exponential calculations.  This is only
 * used if the mode is not M_linear.
 *
 * If the mode is currently set to M_linear, this function implicitly sets it
 * to M_exponential.
 */ 2 4 this 3 3706  11 exp_density 1 3595  
1384 0 0 7 1446 3820 0 0 0 0 
1385 0 0 23 1448 3604 0 0 103 /**
 * Constructs a new FogAttrib object suitable for rendering the indicated fog
 * onto geometry.
 */ 1 3 fog 1 3706  
1386 0 0 7 1449 3604 0 0 84 /**
 * Constructs a new FogAttrib object suitable for rendering unfogd geometry.
 */ 0 
1387 0 0 7 1450 3604 0 0 145 /**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */ 0 
1388 0 0 6 1451 3597 0 0 105 /**
 * Returns true if the FogAttrib is an 'off' FogAttrib, indicating that it
 * should disable fog.
 */ 1 4 this 3 4001  
1389 0 0 7 1452 3706 2131 0 118 /**
 * If the FogAttrib is not an 'off' FogAttrib, returns the fog that is
 * associated.  Otherwise, return NULL.
 */ 1 4 this 3 4001  
1390 0 0 6 1455 3590 0 0 0 0 
1391 0 0 7 1457 3820 0 0 0 0 
1392 0 0 7 1460 3834 3108 0 10 /**
 *
 */ 0 
1393 0 0 15 1460 3834 3108 0 10 /**
 *
 */ 1 4 copy 1 3992  
1394 0 0 7 1461 3855 0 0 55 /**
 * Returns the GraphicsStateGuardian in effect.
 */ 1 4 this 3 3992  
1395 0 0 7 1462 3848 0 0 104 /**
 * Returns the currently-executing thread object, as passed to the
 * CullTraverser constructor.
 */ 1 4 this 3 3992  
1396 0 0 4 1463 3816 0 0 134 /**
 * Sets the SceneSetup object that indicates the initial camera position, etc.
 * This must be called before traversal begins.
 */ 4 4 this 3 3834  11 scene_setup 1 3998  3 gsg 1 3855  20 dr_incomplete_render 1 3597  
1397 0 0 7 1464 3998 3059 0 41 /**
 * Returns the SceneSetup object.
 */ 1 4 this 3 3992  
1398 0 0 6 1465 3597 0 0 114 /**
 * Returns true if a nonempty tag state key has been specified for the scene's
 * camera, false otherwise.
 */ 1 4 this 3 3992  
1399 0 0 6 1466 3845 0 0 95 /**
 * Returns the tag state key that has been specified for the scene's camera,
 * if any.
 */ 1 4 this 3 3992  
1400 0 0 4 1467 3816 0 0 276 /**
 * Changes the visibility mask for the camera viewing the scene.  This is
 * normally set automatically at the time setup_scene() is called; you should
 * change this only if you want to render some set of objects different from
 * what the camera normally would draw.
 */ 2 4 this 3 3834  11 camera_mask 1 3994  
1401 0 0 6 1468 3994 0 0 73 /**
 * Returns the visibility mask from the camera viewing the scene.
 */ 1 4 this 3 3992  
1402 0 0 7 1469 3792 0 0 76 /**
 * Returns the position of the camera relative to the starting node.
 */ 1 4 this 3 3992  
1403 0 0 7 1470 3792 0 0 362 /**
 * Returns the position of the starting node relative to the camera.  This is
 * the inverse of the camera transform.
 *
 * Note that this value is always the position of the starting node, not the
 * current node, even if it is sampled during a traversal.  To get the
 * transform of the current node use
 * CullTraverserData::get_modelview_transform().
 */ 1 4 this 3 3992  
1404 0 0 7 1471 3829 0 0 149 /**
 * Returns the initial RenderState at the top of the scene graph we are
 * traversing, or the empty state if the initial state was never set.
 */ 1 4 this 3 3992  
1405 0 0 6 1472 3597 0 0 96 /**
 * Returns true, as depth offsets are the only way that we implement decals
 * nowadays.
 */ 1 4 this 3 3992  
1406 0 0 4 1473 3816 0 0 154 /**
 * Specifies the bounding volume that corresponds to the view frustum.  Any
 * primitives that fall entirely outside of this volume are not drawn.
 */ 2 4 this 3 3834  12 view_frustum 1 4003  
1407 0 0 7 1474 4003 0 0 423 /**
 * Returns the bounding volume that corresponds to the view frustum, or NULL
 * if the view frustum is not in use or has not been set.
 *
 * Note that the view frustum returned here is always in the coordinate space
 * of the starting node, not the current node, even if it is sampled during a
 * traversal.  To get the view frustum in the current node's coordinate space,
 * check in the current CullTraverserData.
 */ 1 4 this 3 3992  
1408 0 0 4 1475 3816 0 0 115 /**
 * Specifies the object that will receive the culled Geoms.  This must be set
 * before calling traverse().
 */ 2 4 this 3 3834  12 cull_handler 1 4005  
1409 0 0 6 1476 4005 0 0 65 /**
 * Returns the object that will receive the culled Geoms.
 */ 1 4 this 3 3992  
1410 0 0 4 1477 3816 0 0 108 /**
 * Specifies _portal_clipper object pointer that subsequent traverse() or
 * traverse_below may use.
 */ 2 4 this 3 3834  14 portal_clipper 1 4007  
1411 0 0 6 1478 4007 0 0 46 /**
 * Returns the _portal_clipper pointer
 */ 1 4 this 3 3992  
1412 0 0 6 1479 3597 0 0 341 /**
 * Returns true if the cull traversal is effectively in incomplete_render
 * state, considering both the GSG's incomplete_render and the current
 * DisplayRegion's incomplete_render flags.  This returns the flag during the
 * cull traversal; see GSG::get_effective_incomplete_render() for this same
 * flag during the draw traversal.
 */ 1 4 this 3 3992  
1413 0 0 4 1480 3816 0 0 161 /**
 * Traverses from the next node with the given data, which has been
 * constructed with the node but has not yet been converted into the node's
 * space.
 */ 2 4 this 3 3834  4 data 1 3991  
1414 0 0 4 1480 3816 0 0 56 /**
 * Begins the traversal from the indicated node.
 */ 2 4 this 3 3834  4 root 1 3888  
1415 0 0 4 1481 3816 0 0 132 /**
 * Traverses all the children of the indicated node, with the given data,
 * which has been converted into the node's space.
 */ 2 4 this 3 3834  4 data 1 3991  
1416 0 0 4 1482 3816 0 0 141 /**
 * Should be called when the traverser has finished traversing its scene, this
 * gives it a chance to do any necessary finalization.
 */ 1 4 this 3 3834  
1417 0 0 4 1483 3816 0 0 61 /**
 * Flushes the PStatCollectors used during traversal.
 */ 0 
1418 0 0 4 1484 3816 0 0 79 /**
 * Draws an appropriate visualization of the indicated bounding volume.
 */ 3 4 this 3 3992  3 vol 1 3857  18 internal_transform 1 3792  
1419 0 0 7 1485 3820 0 0 0 0 
1420 0 0 6 1489 4011 0 0 74 /**
 * Returns a pointer to the particular object that is being drawn.
 */ 1 4 this 3 4009  
1421 0 0 7 1490 3855 0 0 48 /**
 * Returns a pointer to the current GSG.
 */ 1 4 this 3 4009  
1422 0 0 6 1491 3597 0 0 246 /**
 * Returns true if any required data should be forced into memory if necessary
 * to render the object, or false if the object should be omitted if some of
 * the data is not available (at least until the data becomes available
 * later).
 */ 1 4 this 3 4009  
1423 0 0 4 1492 3816 0 0 461 /**
 * Sets the lost_state flag.  If this is true, the callback does not have to
 * be quite so careful to clean up after itself; Panda will assume that the
 * graphics state is in an unknown state after the callback has finished, and
 * will issue all the necessary calls to restore it.  If this is false, Panda
 * will assume the callback will leave the graphics state exactly as it came
 * in, and won't bother to try to restore it.  The default is true.
 */ 2 4 this 3 4013  10 lost_state 1 3597  
1424 0 0 6 1493 3597 0 0 62 /**
 * Returns the lost_state flag.  See set_lost_state().
 */ 1 4 this 3 4009  
1425 0 0 7 1494 3820 0 0 0 0 
1426 0 0 23 1498 3604 0 0 169 /**
 * Constructs a new RescaleNormalAttrib object that specifies whether to
 * rescale normals to compensate for transform scales or incorrectly defined
 * normals.
 */ 1 4 mode 1 3711  
1427 0 0 7 1499 3604 0 0 209 /**
 * Constructs a RescaleNormalAttrib object that's suitable for putting at the
 * top of a scene graph.  This will contain whatever attrib was suggested by
 * the user's rescale-normals Config variable.
 */ 0 
1428 0 0 6 1500 3711 0 0 35 /**
 * Returns the render mode.
 */ 1 4 this 3 4014  
1429 0 0 6 1502 3590 0 0 0 0 
1430 0 0 7 1504 3820 0 0 0 0 
1431 0 0 15 1515 4018 0 0 0 1 6 param0 0 4016  
1432 0 0 7 1508 4018 0 0 185 /**
 * Returns a newly-allocated CullResult object that contains a copy of just
 * the subset of the data from this CullResult object that is worth keeping
 * around for next frame.
 */ 1 4 this 3 4016  
1433 0 0 7 1509 4020 0 0 238 /**
 * Returns the CullBin associated with the indicated bin_index, or NULL if the
 * bin_index is invalid.  If there is the first time this bin_index has been
 * requested for this CullResult, creates a new CullBin object on the fly.
 */ 2 4 this 3 4018  9 bin_index 1 3590  
1434 0 0 4 1510 3816 0 0 152 /**
 * Adds the indicated CullableObject to the appropriate bin.  The bin becomes
 * the owner of the object pointer, and will eventually delete it.
 */ 3 4 this 3 4018  6 object 1 4011  9 traverser 1 3992  
1435 0 0 4 1511 3816 0 0 219 /**
 * Called after all the geoms have been added, this indicates that the cull
 * process is finished for this frame and gives the bins a chance to do any
 * post-processing (like sorting) before moving on to draw.
 */ 3 4 this 3 4018  11 scene_setup 1 3998  14 current_thread 1 3848  
1436 0 0 4 1512 3816 0 0 69 /**
 * Asks all the bins to draw themselves in the correct order.
 */ 2 4 this 3 4018  14 current_thread 1 3848  
1437 0 0 7 1513 3647 2131 0 496 /**
 * Returns a special scene graph constructed to represent the results of the
 * cull.  This will be a hierarchy of nodes, one node for each bin, each of
 * which will in term be a parent of a number of GeomNodes, representing the
 * geometry drawn in each bin.
 *
 * This is useful mainly for high-level debugging and abstraction tools; it
 * should not be mistaken for the low-level cull result itself.  For the low-
 * level cull result, use draw() to efficiently draw the culled scene.
 */ 1 4 this 3 4018  
1438 0 0 7 1514 3820 0 0 0 0 
1439 0 0 7 1517 3841 0 0 47 /**
 * Constructs a new DecalEffect object.
 */ 0 
1440 0 0 7 1518 3820 0 0 0 0 
1441 0 0 23 1521 3604 0 0 152 /**
 * Constructs a new DepthOffsetAttrib object that indicates the relative
 * amount of bias to write to the depth buffer for subsequent geometry.
 */ 1 6 offset 5 3590  
1442 0 0 23 1521 3604 0 0 349 /**
 * Constructs a new DepthOffsetAttrib object that indicates the bias, and also
 * specifies a minimum and maximum (or, more precisely, nearest and farthest)
 * values to write to the depth buffer, in the range 0 .. 1.  This range is 0,
 * 1 by default; setting it to some other range can be used to create
 * additional depth buffer effects.
 */ 3 6 offset 1 3590  9 min_value 1 3595  9 max_value 1 3595  
1443 0 0 7 1522 3604 0 0 145 /**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */ 0 
1444 0 0 6 1523 3590 0 0 63 /**
 * Returns the depth offset represented by this attrib.
 */ 1 4 this 3 4021  
1445 0 0 6 1524 3595 0 0 118 /**
 * Returns the value for the minimum (closest) depth value to be stored in the
 * buffer, in the range 0 .. 1.
 */ 1 4 this 3 4021  
1446 0 0 6 1525 3595 0 0 119 /**
 * Returns the value for the maximum (farthest) depth value to be stored in
 * the buffer, in the range 0 .. 1.
 */ 1 4 this 3 4021  
1447 0 0 6 1529 3590 0 0 0 0 
1448 0 0 7 1531 3820 0 0 0 0 
1449 0 0 23 1534 3604 0 0 51 /**
 * Constructs a new DepthTestAttrib object.
 */ 1 4 mode 1 3591  
1450 0 0 7 1535 3604 0 0 145 /**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */ 0 
1451 0 0 6 1536 3591 0 0 40 /**
 * Returns the depth write mode.
 */ 1 4 this 3 4023  
1452 0 0 6 1538 3590 0 0 0 0 
1453 0 0 7 1540 3820 0 0 0 0 
1454 0 0 23 1544 3604 0 0 52 /**
 * Constructs a new DepthWriteAttrib object.
 */ 1 4 mode 1 3718  
1455 0 0 7 1545 3604 0 0 145 /**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */ 0 
1456 0 0 6 1546 3718 0 0 40 /**
 * Returns the depth write mode.
 */ 1 4 this 3 4025  
1457 0 0 6 1548 3590 0 0 0 0 
1458 0 0 7 1550 3820 0 0 0 0 
1459 0 0 7 1554 3647 2131 0 0 1 4 this 3 3861  
1460 0 0 6 1555 3597 0 0 95 /**
 * Returns true if this is an AmbientLight, false if it is some other kind of
 * light.
 */ 1 4 this 3 4027  
1461 0 0 6 1556 3824 0 0 48 /**
 * Returns the basic color of the light.
 */ 1 4 this 3 4027  
1462 0 0 4 1557 3816 0 0 45 /**
 * Sets the basic color of the light.
 */ 2 4 this 3 3861  5 color 1 3824  
1463 0 0 6 1559 3597 0 0 140 /**
 * Returns true if the color was specified as a temperature in kelvins, and
 * get_color_temperature is defined.
 *
 * @since 1.10.0
 */ 1 4 this 3 4027  
1464 0 0 6 1560 3595 0 0 130 /**
 * Returns the basic color temperature of the light, assuming
 * has_color_temperature() returns true.
 *
 * @since 1.10.0
 */ 1 4 this 3 4027  
1465 0 0 4 1561 3816 0 0 234 /**
 * Sets the color temperature of the light in kelvins.  This will recalculate
 * the light's color.
 *
 * The default value is 6500 K, corresponding to a perfectly white light
 * assuming a D65 white point.
 *
 * @since 1.10.0
 */ 2 4 this 3 3861  11 temperature 1 3595  
1466 0 0 6 1563 3595 0 0 168 /**
 * For spotlights, returns the exponent that controls the amount of light
 * falloff from the center of the spotlight.  For other kinds of lights,
 * returns 0.
 */ 1 4 this 3 4027  
1467 0 0 6 1564 3824 0 0 125 /**
 * Returns the color of specular highlights generated by the light.  This
 * value is meaningless for ambient lights.
 */ 1 4 this 3 4027  
1468 0 0 6 1565 3796 0 0 193 /**
 * Returns the terms of the attenuation equation for the light.  These are, in
 * order, the constant, linear, and quadratic terms based on the distance from
 * the point to the vertex.
 */ 1 4 this 3 4027  
1469 0 0 4 1566 3816 0 0 411 /**
 * Changes the relative importance of this light relative to the other lights
 * that are applied simultaneously.
 *
 * The priority number is used to decide which of the requested lights are to
 * be selected for rendering when more lights are requested than the hardware
 * will support.  The highest-priority n lights are selected for rendering.
 *
 * This is similar to TextureStage::set_priority().
 */ 2 4 this 3 3861  8 priority 1 3590  
1470 0 0 6 1567 3590 0 0 80 /**
 * Returns the priority associated with this light.  See set_priority().
 */ 1 4 this 3 4027  
1471 0 0 6 1568 3590 0 0 0 1 4 this 3 4027  
1472 0 0 7 1570 3820 0 0 0 0 
1473 0 0 7 1573 3604 0 0 71 // The following is the new, more general interface to the LightAttrib. 0 
1474 0 0 23 1573 3604 0 0 178 /**
 * Constructs a new LightAttrib object that turns on (or off, according to op)
 * the indicated light(s).
 *
 * @deprecated Use add_on_light() or add_off_light() instead.
 */ 2 2 op 1 3721  5 light 1 3861  
1475 0 0 23 1573 3604 0 0 177 /**
 * Constructs a new LightAttrib object that turns on (or off, according to op)
 * the indicate light(s).
 *
 * @deprecated Use add_on_light() or add_off_light() instead.
 */ 3 2 op 1 3721  6 light1 1 3861  6 light2 1 3861  
1476 0 0 23 1573 3604 0 0 177 /**
 * Constructs a new LightAttrib object that turns on (or off, according to op)
 * the indicate light(s).
 *
 * @deprecated Use add_on_light() or add_off_light() instead.
 */ 4 2 op 1 3721  6 light1 1 3861  6 light2 1 3861  6 light3 1 3861  
1477 0 0 23 1573 3604 0 0 177 /**
 * Constructs a new LightAttrib object that turns on (or off, according to op)
 * the indicate light(s).
 *
 * @deprecated Use add_on_light() or add_off_light() instead.
 */ 5 2 op 1 3721  6 light1 1 3861  6 light2 1 3861  6 light3 1 3861  6 light4 1 3861  
1478 0 0 7 1574 3604 0 0 145 /**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */ 0 
1479 0 0 6 1575 3721 0 0 505 /**
 * Returns the basic operation type of the LightAttrib.  If this is O_set, the
 * lights listed here completely replace any lights that were already on.  If
 * this is O_add, the lights here are added to the set of lights that were
 * already on, and if O_remove, the lights here are removed from the set of
 * lights that were on.
 *
 * @deprecated LightAttribs nowadays have a separate list of on_lights and
 * off_lights, so this method no longer makes sense.  Query the lists
 * independently.
 */ 1 4 this 3 4029  
1480 0 0 6 1576 3590 0 0 230 /**
 * Returns the number of lights listed in the attribute.
 *
 * @deprecated LightAttribs nowadays have a separate list of on_lights and
 * off_lights, so this method no longer makes sense.  Query the lists
 * independently.
 */ 1 4 this 3 4029  
1481 0 0 6 1577 3861 0 0 223 /**
 * Returns the nth light listed in the attribute.
 *
 * @deprecated LightAttribs nowadays have a separate list of on_lights and
 * off_lights, so this method no longer makes sense.  Query the lists
 * independently.
 */ 2 4 this 3 4029  1 n 1 3590  
1482 0 0 6 1578 3597 0 0 257 /**
 * Returns true if the indicated light is listed in the attrib, false
 * otherwise.
 *
 * @deprecated LightAttribs nowadays have a separate list of on_lights and
 * off_lights, so this method no longer makes sense.  Query the lists
 * independently.
 */ 2 4 this 3 4029  5 light 1 3861  
1483 0 0 7 1579 3604 0 0 183 /**
 * Returns a new LightAttrib, just like this one, but with the indicated light
 * added to the list of lights.
 *
 * @deprecated Use add_on_light() or add_off_light() instead.
 */ 2 4 this 3 4029  5 light 1 3861  
1484 0 0 7 1580 3604 0 0 193 /**
 * Returns a new LightAttrib, just like this one, but with the indicated light
 * removed from the list of lights.
 *
 * @deprecated Use remove_on_light() or remove_off_light() instead.
 */ 2 4 this 3 4029  5 light 1 3861  
1485 0 0 7 1581 3604 0 0 106 /**
 * Constructs a new LightAttrib object that turns off all lights (and hence
 * disables lighting).
 */ 0 
1486 0 0 6 1582 3794 0 0 76 /**
 * Returns the number of lights that are turned on by the attribute.
 */ 1 4 this 3 4029  
1487 0 0 6 1583 3794 0 0 92 /**
 * Returns the number of non-ambient lights that are turned on by this
 * attribute.
 */ 1 4 this 3 4029  
1488 0 0 7 1584 3898 2739 0 84 /**
 * Returns the nth light turned on by the attribute, sorted in render order.
 */ 2 4 this 3 4029  1 n 1 3794  
1489 0 0 6 1586 3597 0 0 94 /**
 * Returns true if the indicated light is turned on by the attrib, false
 * otherwise.
 */ 2 4 this 3 4029  5 light 1 3888  
1490 0 0 6 1587 3597 0 0 81 /**
 * Returns true if any light is turned on by the attrib, false otherwise.
 */ 1 4 this 3 4029  
1491 0 0 6 1588 3794 0 0 77 /**
 * Returns the number of lights that are turned off by the attribute.
 */ 1 4 this 3 4029  
1492 0 0 7 1589 3898 2739 0 101 /**
 * Returns the nth light turned off by the attribute, sorted in arbitrary
 * (pointer) order.
 */ 2 4 this 3 4029  1 n 1 3794  
1493 0 0 6 1591 3597 0 0 95 /**
 * Returns true if the indicated light is turned off by the attrib, false
 * otherwise.
 */ 2 4 this 3 4029  5 light 1 3888  
1494 0 0 6 1592 3597 0 0 99 /**
 * Returns true if this attrib turns off all lights (although it may also turn
 * some on).
 */ 1 4 this 3 4029  
1495 0 0 6 1593 3597 0 0 102 /**
 * Returns true if this is an identity attrib: it does not change the set of
 * lights in use.
 */ 1 4 this 3 4029  
1496 0 0 7 1594 3604 0 0 143 /**
 * Returns a new LightAttrib, just like this one, but with the indicated light
 * added to the list of lights turned on by this attrib.
 */ 2 4 this 3 4029  5 light 1 3888  
1497 0 0 7 1595 3604 0 0 147 /**
 * Returns a new LightAttrib, just like this one, but with the indicated light
 * removed from the list of lights turned on by this attrib.
 */ 2 4 this 3 4029  5 light 1 3888  
1498 0 0 7 1596 3604 0 0 126 /**
 * Returns a new LightAttrib, just like this one, but with the indicated light
 * replaced with the given other light.
 */ 3 4 this 3 4029  6 source 1 3888  4 dest 1 3888  
1499 0 0 7 1597 3604 0 0 144 /**
 * Returns a new LightAttrib, just like this one, but with the indicated light
 * added to the list of lights turned off by this attrib.
 */ 2 4 this 3 4029  5 light 1 3888  
1500 0 0 7 1598 3604 0 0 148 /**
 * Returns a new LightAttrib, just like this one, but with the indicated light
 * removed from the list of lights turned off by this attrib.
 */ 2 4 this 3 4029  5 light 1 3888  
1501 0 0 7 1599 3604 0 0 126 /**
 * Returns a new LightAttrib, just like this one, but with the indicated light
 * replaced with the given other light.
 */ 3 4 this 3 4029  6 source 1 3888  4 dest 1 3888  
1502 0 0 7 1600 3898 2739 0 209 /**
 * Returns the most important light (that is, the light with the highest
 * priority) in the LightAttrib, excluding any ambient lights.  Returns an
 * empty NodePath if no non-ambient lights are found.
 */ 1 4 this 3 4029  
1503 0 0 7 1601 3906 0 0 68 /**
 * Returns the total contribution of all the ambient lights.
 */ 1 4 this 3 4029  
1504 0 0 6 1604 3590 0 0 0 0 
1505 0 0 7 1606 3820 0 0 0 0 
1506 0 0 7 1609 3604 0 0 151 /**
 * Constructs a new LightRampAttrib object.  This is the standard OpenGL
 * lighting ramp, which clamps the final light total to the 0-1 range.
 */ 0 
1507 0 0 7 1610 3604 0 0 169 /**
 * Constructs a new LightRampAttrib object.  This differs from the usual
 * OpenGL lighting model in that it does not clamp the final lighting total to
 * (0,1).
 */ 0 
1508 0 0 7 1611 3604 0 0 290 /**
 * Constructs a new LightRampAttrib object.  This causes the luminance of the
 * diffuse lighting contribution to be quantized using a single threshold:
 *
 * @code
 * if (original_luminance > threshold0) {
 *   luminance = level0;
 * } else {
 *   luminance = 0.0;
 * }
 * @endcode
 */ 2 7 thresh0 1 3595  4 lev0 1 3595  
1509 0 0 7 1612 3604 0 0 360 /**
 * Constructs a new LightRampAttrib object.  This causes the luminance of the
 * diffuse lighting contribution to be quantized using two thresholds:
 *
 * @code
 * if (original_luminance > threshold1) {
 *   luminance = level1;
 * } else if (original_luminance > threshold0) {
 *   luminance = level0;
 * } else {
 *   luminance = 0.0;
 * }
 * @endcode
 */ 4 7 thresh0 1 3595  4 lev0 1 3595  7 thresh1 1 3595  4 lev1 1 3595  
1510 0 0 7 1613 3604 0 0 814 /**
 * Constructs a new LightRampAttrib object.  This causes an HDR tone mapping
 * operation to be applied.
 *
 * Normally, brightness values greater than 1 cannot be distinguished from
 * each other, causing very brightly lit objects to wash out white and all
 * detail to be erased.  HDR tone mapping remaps brightness values in the
 * range 0-infinity into the range (0,1), making it possible to distinguish
 * detail in scenes whose brightness exceeds 1.
 *
 * However, the monitor has finite contrast.  Normally, all of that contrast
 * is used to represent brightnesses in the range 0-1.  The HDR0 tone mapping
 * operator 'steals' one quarter of that contrast to represent brightnesses in
 * the range 1-infinity.
 *
 * @code
 * FINAL_RGB = (RGB^3 + RGB^2 + RGB) / (RGB^3 + RGB^2 + RGB + 1)
 * @endcode
 */ 0 
1511 0 0 7 1614 3604 0 0 796 /**
 * Constructs a new LightRampAttrib object.  This causes an HDR tone mapping
 * operation to be applied.
 *
 * Normally, brightness values greater than 1 cannot be distinguished from
 * each other, causing very brightly lit objects to wash out white and all
 * detail to be erased.  HDR tone mapping remaps brightness values in the
 * range 0-infinity into the range (0,1), making it possible to distinguish
 * detail in scenes whose brightness exceeds 1.
 *
 * However, the monitor has finite contrast.  Normally, all of that contrast
 * is used to represent brightnesses in the range 0-1.  The HDR1 tone mapping
 * operator 'steals' one third of that contrast to represent brightnesses in
 * the range 1-infinity.
 *
 * @code
 * FINAL_RGB = (RGB^2 + RGB) / (RGB^2 + RGB + 1)
 * @endcode
 */ 0 
1512 0 0 7 1615 3604 0 0 779 /**
 * Constructs a new LightRampAttrib object.  This causes an HDR tone mapping
 * operation to be applied.
 *
 * Normally, brightness values greater than 1 cannot be distinguished from
 * each other, causing very brightly lit objects to wash out white and all
 * detail to be erased.  HDR tone mapping remaps brightness values in the
 * range 0-infinity into the range (0,1), making it possible to distinguish
 * detail in scenes whose brightness exceeds 1.
 *
 * However, the monitor has finite contrast.  Normally, all of that contrast
 * is used to represent brightnesses in the range 0-1.  The HDR2 tone mapping
 * operator 'steals' one half of that contrast to represent brightnesses in
 * the range 1-infinity.
 *
 * @code
 * FINAL_RGB = (RGB) / (RGB + 1)
 * @endcode
 */ 0 
1513 0 0 6 1616 3723 0 0 44 /**
 * Returns the LightRampAttrib mode.
 */ 1 4 this 3 4031  
1514 0 0 6 1617 3595 0 0 42 /**
 * Returns the nth lighting level.
 */ 2 4 this 3 4031  1 n 1 3590  
1515 0 0 6 1618 3595 0 0 43 /**
 * Returns the nth threshold level.
 */ 2 4 this 3 4031  1 n 1 3590  
1516 0 0 6 1620 3590 0 0 0 0 
1517 0 0 7 1622 3820 0 0 0 0 
1518 0 0 15 1639 3740 3238 0 0 1 6 param0 0 4033  
1519 0 0 7 1639 3740 3238 0 10 /**
 *
 */ 1 4 name 5 3845  
1520 0 0 4 1640 3816 0 0 118 /**
 * Specifies the task manager that is used for asynchronous loads.  The
 * default is the global task manager.
 */ 2 4 this 3 3740  12 task_manager 1 4035  
1521 0 0 7 1641 4035 0 0 72 /**
 * Returns the task manager that is used for asynchronous loads.
 */ 1 4 this 3 4033  
1522 0 0 4 1642 3816 0 0 130 /**
 * Specifies the task chain that is used for asynchronous loads.  The default
 * is the initial name of the Loader object.
 */ 2 4 this 3 3740  10 task_chain 1 3845  
1523 0 0 6 1643 3845 0 0 70 /**
 * Returns the task chain that is used for asynchronous loads.
 */ 1 4 this 3 4033  
1524 0 0 4 1644 3816 0 0 56 /**
 * Stop any threads used for asynchronous loads.
 */ 1 4 this 3 3740  
1525 0 0 6 1645 3597 0 0 168 /**
 * Removes a pending asynchronous load request.  Returns true if successful,
 * false otherwise.
 * @deprecated use task.cancel() to cancel the request instead.
 */ 2 4 this 3 3740  4 task 1 4037  
1526 0 0 7 1646 3647 2131 0 187 /**
 * Loads the file immediately, waiting for it to complete.
 *
 * If search is true, the file is searched for along the model path;
 * otherwise, only the exact filename is loaded.
 */ 3 4 this 3 4033  8 filename 1 3921  7 options 5 4038  
1527 0 0 7 1647 4037 0 0 117 /**
 * Returns a new AsyncTask object suitable for adding to load_async() to start
 * an asynchronous model load.
 */ 3 4 this 3 3740  8 filename 1 3921  7 options 5 4038  
1528 0 0 4 1648 3816 0 0 591 /**
 * Begins an asynchronous load request.  To use this call, first call
 * make_async_request() to create a new ModelLoadRequest object with the
 * filename you wish to load, and then add that object to the Loader with
 * load_async.  This function will return immediately, and the model will be
 * loaded in the background.
 *
 * To determine when the model has completely loaded, you may poll
 * request->is_ready() from time to time, or set the done_event on the request
 * object and listen for that event.  When the model is ready, you may
 * retrieve it via request->get_model().
 */ 2 4 this 3 3740  7 request 1 4037  
1529 0 0 6 1649 3597 0 0 66 /**
 * Saves the file immediately, waiting for it to complete.
 */ 4 4 this 3 4033  8 filename 1 3921  7 options 1 4038  4 node 1 3647  
1530 0 0 7 1650 4037 0 0 117 /**
 * Returns a new AsyncTask object suitable for adding to save_async() to start
 * an asynchronous model save.
 */ 4 4 this 3 3740  8 filename 1 3921  7 options 1 4038  4 node 1 3647  
1531 0 0 4 1651 3816 0 0 620 /**
 * Begins an asynchronous save request.  To use this call, first call
 * make_async_save_request() to create a new ModelSaveRequest object with the
 * filename you wish to load, and then add that object to the Loader with
 * save_async.  This function will return immediately, and the model will be
 * loaded in the background.
 *
 * To determine when the model has completely loaded, you may poll
 * request->is_ready() from time to time, or set the done_event on the request
 * object and listen for that event.  When the request is ready, you may
 * retrieve the success or failure via request->get_success().
 */ 2 4 this 3 3740  7 request 1 4037  
1532 0 0 7 1652 3647 2131 0 109 /**
 * Attempts to read a bam file from the indicated stream and return the scene
 * graph defined there.
 */ 2 4 this 3 3740  2 in 1 3936  
1533 0 0 4 1653 3816 0 0 10 /**
 *
 */ 2 4 this 3 4033  3 out 1 3817  
1534 0 0 7 1654 3740 3238 0 119 /**
 * Returns a pointer to the global Loader.  This is the Loader that most code
 * should use for loading models.
 */ 0 
1535 0 0 7 1655 3820 0 0 0 0 
1536 0 0 7 1625 4039 0 0 0 1 4 this 3 3740  
1537 0 0 6 1627 3865 0 0 0 1 4 this 3 3740  
1538 0 0 7 1630 4040 3216 0 10 /**
 *
 */ 0 
1539 0 0 15 1630 4040 3216 0 10 /**
 *
 */ 1 4 copy 1 4041  
1540 0 0 6 1631 4040 0 0 0 2 4 this 3 4040  4 copy 1 4041  
1541 0 0 4 1633 3816 0 0 47 /**
 * Removes all the files from the list.
 */ 1 4 this 3 4040  
1542 0 0 6 1634 3590 0 0 58 /**
 * Returns the number of files on the result list.
 */ 1 4 this 3 4041  
1543 0 0 6 1635 3921 0 0 51 /**
 * Returns the nth file on the result list.
 */ 2 4 this 3 4041  1 n 1 3590  
1544 0 0 6 1637 3729 0 0 68 /**
 * Returns the file type of the nth file on the result list.
 */ 2 4 this 3 4041  1 n 1 3590  
1545 0 0 6 1659 3845 0 0 0 1 4 this 3 4043  
1546 0 0 6 1660 3845 0 0 0 1 4 this 3 4043  
1547 0 0 6 1661 3845 0 0 146 /**
 * Returns a space-separated list of extension, in addition to the one
 * returned by get_extension(), that are recognized by this loader.
 */ 1 4 this 3 4043  
1548 0 0 6 1662 3597 0 0 132 /**
 * Returns true if this file type can transparently load compressed files
 * (with a .pz or .gz extension), false otherwise.
 */ 1 4 this 3 4043  
1549 0 0 6 1663 3597 0 0 138 /**
 * Returns true if the loader flags allow retrieving the model from the on-
 * disk bam cache (if it is enabled), false otherwise.
 */ 2 4 this 3 4043  7 options 1 4038  
1550 0 0 6 1664 3597 0 0 127 /**
 * Returns true if the loader flags allow retrieving the model from the in-
 * memory ModelPool cache, false otherwise.
 */ 2 4 this 3 4043  7 options 1 4038  
1551 0 0 6 1665 3597 0 0 172 /**
 * Returns true if the file type can be used to load files, and load_file() is
 * supported.  Returns false if load_file() is unimplemented and will always
 * fail.
 */ 1 4 this 3 4043  
1552 0 0 6 1666 3597 0 0 172 /**
 * Returns true if the file type can be used to save files, and save_file() is
 * supported.  Returns false if save_file() is unimplemented and will always
 * fail.
 */ 1 4 this 3 4043  
1553 0 0 7 1667 3820 0 0 0 0 
1554 0 0 15 1682 4047 3248 0 0 1 6 param0 0 4045  
1555 0 0 36 1670 3816 0 0 0 2 4 this 3 4047  4 type 1 3620  
1556 0 0 36 1671 3816 0 0 0 2 4 this 3 4047  11 entry_point 1 3620  
1557 0 0 36 1672 3816 0 0 0 2 4 this 3 4047  4 type 1 3620  
1558 0 0 6 1673 3590 0 0 56 /**
 * Returns the total number of types registered.
 */ 1 4 this 3 4045  
1559 0 0 6 1674 3729 0 0 43 /**
 * Returns the nth type registered.
 */ 2 4 this 3 4045  1 n 1 3590  
1560 0 0 6 1678 3729 0 0 163 /**
 * Determines the type of the file based on the indicated extension (without a
 * leading dot).  Returns NULL if the extension matches no known file types.
 */ 2 4 this 3 4047  9 extension 1 3845  
1561 0 0 4 1679 3816 0 0 97 /**
 * Writes a list of supported file types to the indicated output stream, one
 * per line.
 */ 3 4 this 3 4045  3 out 1 3817  12 indent_level 5 3590  
1562 0 0 6 1680 4047 0 0 73 /**
 * Returns a pointer to the global LoaderFileTypeRegistry object.
 */ 0 
1563 0 0 38 1681 3620 0 0 0 1 4 this 3 4045  
1564 0 0 23 1684 3604 0 0 113 /**
 * Constructs a new MaterialAttrib object suitable for rendering the indicated
 * material onto geometry.
 */ 1 8 material 1 3731  
1565 0 0 7 1685 3604 0 0 97 /**
 * Constructs a new MaterialAttrib object suitable for rendering unmateriald
 * geometry.
 */ 0 
1566 0 0 7 1686 3604 0 0 145 /**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */ 0 
1567 0 0 6 1687 3597 0 0 132 /**
 * Returns true if the MaterialAttrib is an 'off' MaterialAttrib, indicating
 * that it should disable the use of materials.
 */ 1 4 this 3 4048  
1568 0 0 7 1688 3731 0 0 133 /**
 * If the MaterialAttrib is not an 'off' MaterialAttrib, returns the material
 * that is associated.  Otherwise, return NULL.
 */ 1 4 this 3 4048  
1569 0 0 6 1692 3590 0 0 0 0 
1570 0 0 7 1694 3820 0 0 0 0 
1571 0 0 15 1698 4052 3272 0 0 1 6 param0 0 4050  
1572 0 0 7 1698 4052 3272 0 121 /**
 * Create a new ModelFlattenRequest, and add it to the loader via
 * load_async(), to begin an asynchronous load.
 */ 1 4 orig 1 3647  
1573 0 0 7 1699 3647 2131 0 50 /**
 * Returns the original, unflattened node.
 */ 1 4 this 3 4050  
1574 0 0 6 1700 3597 0 0 239 /**
 * Returns true if this request has completed, false if it is still pending.
 * When this returns true, you may retrieve the model loaded by calling
 * result().
 * Equivalent to `req.done() and not req.cancelled()`.
 * @see done()
 */ 1 4 this 3 4050  
1575 0 0 7 1701 3647 2131 0 148 /**
 * Returns the flattened copy of the model.  It is an error to call this
 * unless done() returns true.
 * @deprecated Use result() instead.
 */ 1 4 this 3 4050  
1576 0 0 7 1703 3820 0 0 0 0 
1577 0 0 15 1706 4055 3280 0 0 1 6 param0 0 4053  
1578 0 0 7 1706 4055 3280 0 118 /**
 * Create a new ModelLoadRequest, and add it to the loader via load_async(),
 * to begin an asynchronous load.
 */ 4 4 name 1 3845  8 filename 1 3921  7 options 1 4038  6 loader 1 3740  
1579 0 0 6 1707 3921 0 0 83 /**
 * Returns the filename associated with this asynchronous ModelLoadRequest.
 */ 1 4 this 3 4053  
1580 0 0 6 1708 4038 0 0 91 /**
 * Returns the LoaderOptions associated with this asynchronous
 * ModelLoadRequest.
 */ 1 4 this 3 4053  
1581 0 0 7 1709 3740 3238 0 91 /**
 * Returns the Loader object associated with this asynchronous
 * ModelLoadRequest.
 */ 1 4 this 3 4053  
1582 0 0 6 1710 3597 0 0 271 /**
 * Returns true if this request has completed, false if it is still pending or
 * if it has been cancelled.  When this returns true, you may retrieve the
 * model loaded by calling get_model().
 * Equivalent to `req.done() and not req.cancelled()`.
 * @see done()
 */ 1 4 this 3 4053  
1583 0 0 7 1711 3647 2131 0 196 /**
 * Returns the model that was loaded asynchronously, if any, or null if there
 * was an error.  It is an error to call this unless done() returns true.
 * @deprecated Use result() instead.
 */ 1 4 this 3 4053  
1584 0 0 7 1720 3820 0 0 0 0 
1585 0 0 7 1723 4056 3288 0 10 /**
 *
 */ 1 4 name 1 3845  
1586 0 0 4 1725 3816 0 0 1183 /**
 * Sets the preserve_transform flag.  This restricts the ability of a flatten
 * operation to affect the transform stored on this node, and/or the node
 * itself.  In the order from weakest to strongest restrictions, the possible
 * flags are:
 *
 * PT_drop_node - This node should be removed at the next flatten call.
 *
 * PT_none - The transform may be adjusted at will.  The node itself will not
 * be removed.  This is the default.
 *
 * PT_net - Preserve the net transform from the root, but it's acceptable to
 * modify the local transform stored on this particular node if necessary, so
 * long as the net transform is not changed.  This eliminates the need to drop
 * an extra transform on the node above.
 *
 * PT_local - The local (and net) transform should not be changed in any way.
 * If necessary, an extra transform will be left on the node above to
 * guarantee this.  This is a stronger restriction than PT_net.
 *
 * PT_no_touch - The local transform will not be changed, the node will not be
 * removed, and furthermore any flatten operation will not continue below this
 * node--this node and all descendents are protected from the effects of
 * flatten.
 */ 2 4 this 3 4056  18 preserve_transform 1 3742  
1587 0 0 6 1726 3742 0 0 104 /**
 * Returns the current setting of the preserve_transform flag.  See
 * set_preserve_transform().
 */ 1 4 this 3 4057  
1588 0 0 4 1727 3816 0 0 295 /**
 * Sets the preserve_attributes flag.  This restricts the ability of a flatten
 * operation to affect the render attributes stored on this node.
 *
 * The value should be the union of bits from SceneGraphReducer::AttribTypes
 * that represent the attributes that should *not* be changed.
 */ 2 4 this 3 4056  11 attrib_mask 1 3590  
1589 0 0 6 1728 3590 0 0 106 /**
 * Returns the current setting of the preserve_attributes flag.  See
 * set_preserve_attributes().
 */ 1 4 this 3 4057  
1590 0 0 4 1729 3816 0 0 0 2 4 this 3 4056  5 limit 1 3595  
1591 0 0 7 1730 3820 0 0 0 0 
1592 0 0 7 1733 4059 3300 0 10 /**
 *
 */ 2 8 fullpath 1 3921  9 timestamp 1 3744  
1593 0 0 7 1733 4059 3300 0 10 /**
 *
 */ 1 4 name 1 3845  
1594 0 0 6 1734 3590 0 0 344 /**
 * Returns the number of copies that exist of this particular ModelRoot node.
 * Each time ModelRoot::copy_subgraph() or make_copy() is called (or some
 * other copying mechanism, such as NodePath.copy_to(), is used), this count
 * will increment by one in all copies; when one of the copies is destructed,
 * this count will decrement.
 */ 1 4 this 3 4060  
1595 0 0 6 1736 3921 0 0 206 /**
 * Returns the full pathname of the model represented by this node, as found
 * on disk.  This is mainly useful for reference purposes, but is also used to
 * index the ModelRoot into the ModelPool.
 */ 1 4 this 3 4060  
1596 0 0 4 1737 3816 0 0 399 /**
 * Sets the full pathname of the model represented by this node, as found on
 * disk.  This is mainly useful for reference purposes, but is also used to
 * index the ModelRoot into the ModelPool.
 *
 * This is normally set automatically when a model is loaded, and should not
 * be set directly by the user.  If you change this on a loaded model, then
 * ModelPool::release_model() may fail.
 */ 2 4 this 3 4059  8 fullpath 1 3921  
1597 0 0 6 1739 3744 0 0 324 /**
 * Returns the timestamp of the file on disk that was read for this model, at
 * the time it was read, if it is known.  Returns 0 if the timestamp is not
 * known or could not be provided.  This can be used as a quick (but fallible)
 * check to verify whether the file might have changed since the model was
 * read.
 */ 1 4 this 3 4060  
1598 0 0 4 1740 3816 0 0 189 /**
 * Sets the timestamp of the file on disk that was read for this model.  This
 * is normally set automatically when a model is loaded, and should not be set
 * directly by the user.
 */ 2 4 this 3 4059  9 timestamp 1 3744  
1599 0 0 7 1747 3747 3296 0 315 /**
 * Returns the pointer that represents the object shared between all copies of
 * this ModelRoot.  Since there's not much associated with this object other
 * than a reference count, normally there's not much reason to get the pointer
 * (though it may be compared pointerwise with other ModelRoot objects).
 */ 1 4 this 3 4060  
1600 0 0 4 1748 3816 0 0 212 /**
 * Changes the pointer that represents the object shared between all copies of
 * this ModelRoot.  This will disassociate this ModelRoot from all of its
 * copies.  Normally, there's no reason to do this.
 */ 2 4 this 3 4059  3 ref 1 3747  
1601 0 0 7 1751 3820 0 0 0 0 
1602 0 0 7 1745 3747 3296 0 10 /**
 *
 */ 0 
1603 0 0 15 1745 3747 3296 0 0 1 6 param0 0 4062  
1604 0 0 6 1754 3597 0 0 149 /**
 * Returns true if the model has ever been loaded, false otherwise.  Note that
 * this does not guarantee that the model is still up-to-date.
 */ 1 8 filename 1 3921  
1605 0 0 6 1755 3597 0 0 549 /**
 * Loads the given filename up as a model, if it has not already been loaded,
 * and returns true to indicate success, or false to indicate failure.  If
 * this returns true, it is probable that a subsequent call to load_model()
 * with the same model name will return a valid PandaNode.
 *
 * However, even if this returns true, it is still possible for a subsequent
 * call to load_model() to fail.  This can happen if cache-check-timestamps is
 * true, and the on-disk file is subsequently modified to replace it with an
 * invalid model.
 */ 1 8 filename 1 3921  
1606 0 0 7 1756 4059 3300 0 244 /**
 * Returns the model that has already been previously loaded, or NULL
 * otherwise.  If verify is true, it will check if the file is still up-to-
 * date (and hasn't been modified in the meantime), and if not, will still
 * return NULL.
 */ 2 8 filename 1 3921  6 verify 1 3597  
1607 0 0 7 1757 4059 3300 0 369 /**
 * Loads the given filename up as a model, if it has not already been loaded,
 * and returns the new model.  If a model with the same filename was
 * previously loaded, returns that one instead (unless cache-check-timestamps
 * is true and the file has recently changed).  If the model file cannot be
 * found, or cannot be loaded for some reason, returns NULL.
 */ 2 8 filename 1 3921  7 options 5 4038  
1608 0 0 4 1758 3816 0 0 224 /**
 * Adds the indicated already-loaded model to the pool.  The model will
 * replace any previously-loaded model in the pool that had the same filename.
 *
 * @deprecated Use the one-parameter add_model(model) instead.
 */ 2 8 filename 1 3921  5 model 1 4059  
1609 0 0 4 1758 3816 0 0 158 /**
 * Adds the indicated already-loaded model to the pool.  The model will
 * replace any previously-loaded model in the pool that had the same filename.
 */ 1 5 model 1 4059  
1610 0 0 4 1759 3816 0 0 318 /**
 * Removes the indicated model from the pool, indicating it will never be
 * loaded again; the model may then be freed.  If this function is never
 * called, a reference count will be maintained on every model every loaded,
 * and models will never be freed.
 *
 * @deprecated Use release_model(model) instead.
 */ 1 8 filename 1 3921  
1611 0 0 4 1759 3816 0 0 434 /**
 * Removes the indicated model from the pool, indicating it will never be
 * loaded again; the model may then be freed.  If this function (and
 * garbage_collect()) is never called, a reference count will be maintained on
 * every model every loaded, and models will never be freed.
 *
 * The model's get_fullpath() value should not have been changed during its
 * lifetime, or this function may fail to locate it in the pool.
 */ 1 5 model 1 4059  
1612 0 0 4 1760 3816 0 0 84 /**
 * Releases all models in the pool and restores the pool to the empty state.
 */ 0 
1613 0 0 6 1761 3590 0 0 206 /**
 * Releases only those models in the pool that have a reference count of
 * exactly 1; i.e.  only those models that are not being used outside of the
 * pool.  Returns the number of models released.
 */ 0 
1614 0 0 4 1762 3816 0 0 56 /**
 * Lists the contents of the model pool to cout.
 */ 0 
1615 0 0 4 1762 3816 0 0 79 /**
 * Lists the contents of the model pool to the indicated output stream.
 */ 1 3 out 1 3817  
1616 0 0 4 1763 3816 0 0 105 /**
 * Lists the contents of the model pool to the indicated output stream.  Helps
 * with debugging.
 */ 1 3 out 1 3817  
1617 0 0 15 1766 4066 3320 0 0 1 6 param0 0 4064  
1618 0 0 7 1766 4066 3320 0 118 /**
 * Create a new ModelSaveRequest, and add it to the loader via save_async(),
 * to begin an asynchronous save.
 */ 5 4 name 1 3845  8 filename 1 3921  7 options 1 4038  4 node 1 3647  6 loader 1 3740  
1619 0 0 6 1767 3921 0 0 83 /**
 * Returns the filename associated with this asynchronous ModelSaveRequest.
 */ 1 4 this 3 4064  
1620 0 0 6 1768 4038 0 0 91 /**
 * Returns the LoaderOptions associated with this asynchronous
 * ModelSaveRequest.
 */ 1 4 this 3 4064  
1621 0 0 7 1769 3647 2131 0 63 /**
 * Returns the node that was passed to the constructor.
 */ 1 4 this 3 4064  
1622 0 0 7 1770 3740 3238 0 91 /**
 * Returns the Loader object associated with this asynchronous
 * ModelSaveRequest.
 */ 1 4 this 3 4064  
1623 0 0 6 1771 3597 0 0 238 /**
 * Returns true if this request has completed, false if it is still pending.
 * When this returns true, you may retrieve the success flag with
 * get_success().
 * Equivalent to `req.done() and not req.cancelled()`.
 * @see done()
 */ 1 4 this 3 4064  
1624 0 0 6 1772 3597 0 0 141 /**
 * Returns the true if the model was saved successfully, false otherwise.  It
 * is an error to call this unless done() returns true.
 */ 1 4 this 3 4064  
1625 0 0 7 1777 3820 0 0 0 0 
1626 0 0 7 1780 3604 0 0 255 // The following methods define the new multitexture mode for TextureAttrib.
// Each TextureAttrib can add or remove individual texture stages from the
// complete set of textures that are to be applied; this is similar to the
// mechanism of LightAttrib. 0 
1627 0 0 23 1780 3604 0 0 143 /**
 * Constructs a new TextureAttrib object suitable for rendering the indicated
 * texture onto geometry, using the default TextureStage.
 */ 1 3 tex 1 3753  
1628 0 0 7 1781 3604 0 0 95 /**
 * Constructs a new TextureAttrib object suitable for rendering untextured
 * geometry.
 */ 0 
1629 0 0 7 1782 3604 0 0 145 /**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */ 0 
1630 0 0 6 1783 3597 0 0 365 /**
 * Returns true if the TextureAttrib is an 'off' TextureAttrib, indicating
 * that it should disable texturing.
 *
 * If multitexture is in effect, a TextureAttrib may not be strictly "on" or
 * "off"; therefore, to get a more precise answer to this question, you should
 * consider using has_all_off() or get_num_off_stages() or has_off_stage()
 * instead.
 */ 1 4 this 3 4067  
1631 0 0 7 1784 3753 0 0 141 /**
 * If the TextureAttrib is not an 'off' TextureAttrib, returns the base-level
 * texture that is associated.  Otherwise, return NULL.
 */ 1 4 this 3 4067  
1632 0 0 7 1785 3604 0 0 109 /**
 * Constructs a new TextureAttrib object that turns off all stages (and hence
 * disables texturing).
 */ 0 
1633 0 0 6 1786 3590 0 0 76 /**
 * Returns the number of stages that are turned on by the attribute.
 */ 1 4 this 3 4067  
1634 0 0 7 1787 3751 0 0 84 /**
 * Returns the nth stage turned on by the attribute, sorted in render order.
 */ 2 4 this 3 4067  1 n 1 3590  
1635 0 0 6 1789 3590 0 0 154 /**
 * Returns the number of on-stages that are relevant to the classic fixed
 * function pipeline.  This excludes texture stages such as normal maps.
 */ 1 4 this 3 4067  
1636 0 0 7 1790 3751 0 0 211 /**
 * Returns the nth stage turned on by the attribute, sorted in render order,
 * including only those relevant to the classic fixed function pipeline.  This
 * excludes texture stages such as normal maps.
 */ 2 4 this 3 4067  1 n 1 3590  
1637 0 0 6 1792 3590 0 0 315 /**
 * For each TextureStage listed in get_on_ff_stage(), this returns a unique
 * index number for the texture coordinate name used by that TextureStage.  It
 * is guaranteed to remain the same index number for each texcoord name (for a
 * given set of TextureStages), even if the texture render order changes.
 */ 2 4 this 3 4067  1 n 1 3590  
1638 0 0 6 1793 3597 0 0 94 /**
 * Returns true if the indicated stage is turned on by the attrib, false
 * otherwise.
 */ 2 4 this 3 4067  5 stage 1 3751  
1639 0 0 7 1794 3753 0 0 107 /**
 * Returns the texture associated with the indicated stage, or NULL if no
 * texture is associated.
 */ 2 4 this 3 4067  5 stage 1 3751  
1640 0 0 6 1795 3881 0 0 209 /**
 * Returns the sampler associated with the indicated stage, or the one
 * associated with its texture if no custom stage has been specified.  It is
 * an error to call this if the stage does not exist.
 */ 2 4 this 3 4067  5 stage 1 3751  
1641 0 0 6 1796 3590 0 0 74 /**
 * Returns the override value associated with the indicated stage.
 */ 2 4 this 3 4067  5 stage 1 3751  
1642 0 0 6 1797 3590 0 0 142 /**
 * Returns the index number of the indicated TextureStage within the list of
 * on_stages, or -1 if the indicated stage is not listed.
 */ 2 4 this 3 4067  5 stage 1 4069  
1643 0 0 6 1807 3590 0 0 77 /**
 * Returns the number of stages that are turned off by the attribute.
 */ 1 4 this 3 4067  
1644 0 0 7 1808 3751 0 0 101 /**
 * Returns the nth stage turned off by the attribute, sorted in arbitrary
 * (pointer) order.
 */ 2 4 this 3 4067  1 n 1 3590  
1645 0 0 6 1810 3597 0 0 95 /**
 * Returns true if the indicated stage is turned off by the attrib, false
 * otherwise.
 */ 2 4 this 3 4067  5 stage 1 3751  
1646 0 0 6 1811 3597 0 0 99 /**
 * Returns true if this attrib turns off all stages (although it may also turn
 * some on).
 */ 1 4 this 3 4067  
1647 0 0 6 1813 3597 0 0 102 /**
 * Returns true if this is an identity attrib: it does not change the set of
 * stages in use.
 */ 1 4 this 3 4067  
1648 0 0 7 1814 3604 0 0 145 /**
 * Returns a new TextureAttrib, just like this one, but with the indicated
 * stage added to the list of stages turned on by this attrib.
 */ 5 4 this 3 4067  5 stage 1 3751  3 tex 1 3753  7 sampler 1 3881  8 override 5 3590  
1649 0 0 7 1814 3604 0 0 145 /**
 * Returns a new TextureAttrib, just like this one, but with the indicated
 * stage added to the list of stages turned on by this attrib.
 */ 4 4 this 3 4067  5 stage 1 3751  3 tex 1 3753  8 override 5 3590  
1650 0 0 7 1815 3604 0 0 149 /**
 * Returns a new TextureAttrib, just like this one, but with the indicated
 * stage removed from the list of stages turned on by this attrib.
 */ 2 4 this 3 4067  5 stage 1 3751  
1651 0 0 7 1816 3604 0 0 146 /**
 * Returns a new TextureAttrib, just like this one, but with the indicated
 * stage added to the list of stages turned off by this attrib.
 */ 3 4 this 3 4067  5 stage 1 3751  8 override 5 3590  
1652 0 0 7 1817 3604 0 0 150 /**
 * Returns a new TextureAttrib, just like this one, but with the indicated
 * stage removed from the list of stages turned off by this attrib.
 */ 2 4 this 3 4067  5 stage 1 3751  
1653 0 0 7 1818 3604 0 0 182 /**
 * Returns a new TextureAttrib, just like this one, but with any included
 * TextureAttribs that happen to have the same name as the given object
 * replaced with the object.
 */ 2 4 this 3 4067  5 stage 1 3751  
1654 0 0 7 1819 3604 0 0 230 /**
 * Returns a new TextureAttrib, just like this one, but with all references to
 * the given texture replaced with the new texture.
 *
 * As of Panda3D 1.10.13, new_tex may be null to remove the texture.
 *
 * @since 1.10.4
 */ 3 4 this 3 4067  3 tex 1 3753  7 new_tex 1 3753  
1655 0 0 7 1819 3604 0 0 46 // Let interrogate know this also accepts None 3 4 this 3 4067  3 tex 1 3753  7 new_tex 1 3907  
1656 0 0 6 1820 3590 0 0 0 0 
1657 0 0 7 1822 3820 0 0 0 0 
1658 0 0 7 1825 3604 0 0 69 /**
 * Constructs a TexGenAttrib that generates no stages at all.
 */ 0 
1659 0 0 23 1825 3604 0 0 77 /**
 * Constructs a TexGenAttrib that generates just the indicated stage.
 */ 2 5 stage 1 3751  4 mode 1 4071  
1660 0 0 7 1826 3604 0 0 145 /**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */ 0 
1661 0 0 7 1827 3604 0 0 172 /**
 * Returns a new TexGenAttrib just like this one, with the indicated
 * generation mode for the given stage.  If this stage already exists, its
 * mode is replaced.
 */ 3 4 this 3 4072  5 stage 1 3751  4 mode 1 4071  
1662 0 0 7 1827 3604 0 0 271 /**
 * Returns a new TexGenAttrib just like this one, with the indicated
 * generation mode for the given stage.  If this stage already exists, its
 * mode is replaced.
 *
 * This variant also accepts constant_value, which is only meaningful if mode
 * is M_constant.
 */ 4 4 this 3 4072  5 stage 1 3751  4 mode 1 4071  14 constant_value 1 3910  
1663 0 0 7 1828 3604 0 0 94 /**
 * Returns a new TexGenAttrib just like this one, with the indicated stage
 * removed.
 */ 2 4 this 3 4072  5 stage 1 3751  
1664 0 0 6 1829 3597 0 0 98 /**
 * Returns true if no stages are defined in the TexGenAttrib, false if at
 * least one is.
 */ 1 4 this 3 4072  
1665 0 0 6 1830 3597 0 0 157 /**
 * Returns true if there is a mode associated with the indicated stage, or
 * false otherwise (in which case get_transform(stage) will return M_off).
 */ 2 4 this 3 4072  5 stage 1 3751  
1666 0 0 6 1831 4071 0 0 142 /**
 * Returns the generation mode associated with the named texture stage, or
 * M_off if nothing is associated with the indicated stage.
 */ 2 4 this 3 4072  5 stage 1 3751  
1667 0 0 6 1832 3597 0 0 207 /**
 * Returns true if the indicated TextureStage will have texture coordinates
 * generated for it automatically (and thus there is no need to upload the
 * texture coordinates encoded in the vertices).
 */ 2 4 this 3 4072  5 stage 1 3751  
1668 0 0 6 1833 3910 0 0 133 /**
 * Returns the constant value associated with the named texture stage.  This
 * is only meaningful if the mode is M_constant.
 */ 2 4 this 3 4072  5 stage 1 3751  
1669 0 0 6 1834 3590 0 0 182 /**
 * Returns the union of the Geom::GeomRendering bits that will be required
 * once this TexGenAttrib is applied to a geom which includes the indicated
 * geom_rendering bits.
 */ 2 4 this 3 4072  14 geom_rendering 1 3590  
1670 0 0 6 1835 3590 0 0 0 0 
1671 0 0 7 1837 3820 0 0 0 0 
1672 0 0 7 1839 4074 2131 0 269 /**
 * The default constructor creates a default occlusion polygon in the XZ plane
 * (or XY plane in a y-up coordinate system).  Use the normal Panda set_pos(),
 * set_hpr(), set_scale() to position it appropriately, or replace the
 * vertices with set_vertices().
 */ 1 4 name 1 3845  
1673 0 0 4 1840 3816 0 0 62 /**
 * If true, the back-face will also be used to occlude
 */ 2 4 this 3 4074  5 value 1 3597  
1674 0 0 6 1841 3597 0 0 40 /**
 * Is this occluder double-sided
 */ 1 4 this 3 4074  
1675 0 0 4 1842 3816 0 0 202 /**
 * Minimum screen coverage needed before occluder used.  Range should be 0 to
 * 1. For example, setting to 0.2 would mean that the occluder needs to cover
 * 20% of the screen to be considered.
 */ 2 4 this 3 4074  5 value 1 3595  
1676 0 0 6 1843 3595 0 0 47 /**
 * Returns the minimum screen coverage.
 */ 1 4 this 3 4074  
1677 0 0 4 1844 3816 0 0 176 /**
 * Replaces the four vertices of the occluder polygon.  The vertices should be
 * defined in a counterclockwise orientation when looking at the face of the
 * occluder.
 */ 5 4 this 3 4074  2 v0 1 3903  2 v1 1 3903  2 v2 1 3903  2 v3 1 3903  
1678 0 0 6 1845 3794 0 0 99 /**
 * Returns the number of vertices in the occluder polygon.  This should always
 * return 4.
 */ 1 4 this 3 4075  
1679 0 0 6 1846 3903 0 0 58 /**
 * Returns the nth vertex of the occluder polygon.
 */ 2 4 this 3 4075  1 n 1 3794  
1680 0 0 4 1847 3816 0 0 55 /**
 * Sets the nth vertex of the occluder polygon.
 */ 3 4 this 3 4074  1 n 1 3794  1 v 1 3903  
1681 0 0 7 1852 3820 0 0 0 0 
1682 0 0 7 1854 3841 0 0 68 /**
 * Constructs a new OccluderEffect object that does nothing.
 */ 0 
1683 0 0 6 1855 3590 0 0 77 /**
 * Returns the number of occluders that are enabled by the effectute.
 */ 1 4 this 3 4077  
1684 0 0 7 1856 3898 2739 0 85 /**
 * Returns the nth occluder enabled by the effectute, sorted in render order.
 */ 2 4 this 3 4077  1 n 1 3590  
1685 0 0 6 1858 3597 0 0 95 /**
 * Returns true if the indicated occluder is enabled by the effect, false
 * otherwise.
 */ 2 4 this 3 4077  8 occluder 1 3888  
1686 0 0 6 1859 3597 0 0 105 /**
 * Returns true if this is an identity effect: it does not change the set of
 * occluders in use.
 */ 1 4 this 3 4077  
1687 0 0 7 1860 3841 0 0 150 /**
 * Returns a new OccluderEffect, just like this one, but with the indicated
 * occluder added to the list of occluders enabled by this effect.
 */ 2 4 this 3 4077  8 occluder 1 3888  
1688 0 0 7 1861 3841 0 0 154 /**
 * Returns a new OccluderEffect, just like this one, but with the indicated
 * occluder removed from the list of occluders enabled by this effect.
 */ 2 4 this 3 4077  8 occluder 1 3888  
1689 0 0 7 1862 3820 0 0 0 0 
1690 0 0 15 1867 4081 3419 0 0 1 6 param0 0 4079  
1691 0 0 7 1867 4081 3419 0 71 /**
 * Use PolylightNode() to construct a new PolylightNode object.
 */ 1 4 name 1 3845  
1692 0 0 4 1868 3816 0 0 28 /**
 * Enable this light
 */ 1 4 this 3 4081  
1693 0 0 4 1869 3816 0 0 29 /**
 * Disable this light
 */ 1 4 this 3 4081  
1694 0 0 4 1870 3816 0 0 36 /**
 * Set this light's position
 */ 2 4 this 3 4081  8 position 1 3903  
1695 0 0 4 1870 3816 0 0 36 /**
 * Set this light's position
 */ 4 4 this 3 4081  1 x 1 3595  1 y 1 3595  1 z 1 3595  
1696 0 0 7 1871 3810 0 0 40 /**
 * Returns position as a LPoint3
 */ 1 4 this 3 4079  
1697 0 0 4 1872 3816 0 0 35 /**
 * Set the light's color...
 */ 2 4 this 3 4081  5 color 1 3824  
1698 0 0 4 1872 3816 0 0 60 /**
 * Set the light's color... 3 floats between 0 and 1
 */ 4 4 this 3 4081  1 r 1 3595  1 g 1 3595  1 b 1 3595  
1699 0 0 7 1873 3906 0 0 46 /**
 * Returns the light's color as LColor
 */ 1 4 this 3 4079  
1700 0 0 7 1874 3906 0 0 173 /**
 * This differs from get_color in that when applying the light color we need
 * to make sure that a color flattening external to the PolylightNode is not
 * ignored.
 */ 1 4 this 3 4079  
1701 0 0 4 1875 3816 0 0 51 /**
 * Set radius of the spherical light volume
 */ 2 4 this 3 4081  1 r 1 3595  
1702 0 0 6 1876 3595 0 0 51 /**
 * Get radius of the spherical light volume
 */ 1 4 this 3 4079  
1703 0 0 6 1877 3597 0 0 48 /**
 * Set ALINEAR or AQUADRATIC attenuation
 */ 2 4 this 3 4081  4 type 1 3762  
1704 0 0 6 1878 3762 0 0 55 /**
 * Get "linear" or "quadratic" attenuation type
 */ 1 4 this 3 4079  
1705 0 0 4 1879 3816 0 0 105 /**
 * Set the quadratic attenuation factor a0 fd = 1 / ( a0 + a1*distance +
 * a2*distance*distance)
 */ 2 4 this 3 4081  2 a0 1 3595  
1706 0 0 4 1880 3816 0 0 105 /**
 * Set the quadratic attenuation factor a1 fd = 1 / ( a0 + a1*distance +
 * a2*distance*distance)
 */ 2 4 this 3 4081  2 a1 1 3595  
1707 0 0 4 1881 3816 0 0 105 /**
 * Set the quadratic attenuation factor a2 fd = 1 / ( a0 + a1*distance +
 * a2*distance*distance)
 */ 2 4 this 3 4081  2 a2 1 3595  
1708 0 0 6 1882 3595 0 0 105 /**
 * Get the quadratic attenuation factor a0 fd = 1 / ( a0 + a1*distance +
 * a2*distance*distance)
 */ 1 4 this 3 4079  
1709 0 0 6 1883 3595 0 0 105 /**
 * Get the quadratic attenuation factor a1 fd = 1 / ( a0 + a1*distance +
 * a2*distance*distance)
 */ 1 4 this 3 4079  
1710 0 0 6 1884 3595 0 0 105 /**
 * Get the quadratic attenuation factor a2 fd = 1 / ( a0 + a1*distance +
 * a2*distance*distance)
 */ 1 4 this 3 4079  
1711 0 0 4 1885 3816 0 0 104 /**
 * Set flickering to true so at every loop this light's color is varied based
 * on flicker_type
 */ 1 4 this 3 4081  
1712 0 0 4 1886 3816 0 0 30 /**
 * Turn flickering off
 */ 1 4 this 3 4081  
1713 0 0 6 1887 3597 0 0 44 /**
 * Check is this light is flickering
 */ 1 4 this 3 4079  
1714 0 0 6 1888 3597 0 0 181 /**
 * Flicker type can be FRANDOM or FSIN At a later point there might be a
 * FCUSTOM Custom flicker will be a set of fix points recorded by animating
 * the light's intensity
 */ 2 4 this 3 4081  4 type 1 3761  
1715 0 0 6 1889 3761 0 0 34 /**
 * Returns FRANDOM or FSIN
 */ 1 4 this 3 4079  
1716 0 0 4 1890 3816 0 0 142 /**
 * Set the offset value for the random and sin flicker variations... used to
 * tweak the flicker This value is added to the variation
 */ 2 4 this 3 4081  6 offset 1 3595  
1717 0 0 6 1891 3595 0 0 73 /**
 * Get the offset value for the random and sin flicker variations
 */ 1 4 this 3 4079  
1718 0 0 4 1892 3816 0 0 148 /**
 * Set the scale value for the random and sin flicker variations... used to
 * tweak the flicker This value is multiplied with the variation
 */ 2 4 this 3 4081  5 scale 1 3595  
1719 0 0 6 1893 3595 0 0 72 /**
 * Get the scale value for the random and sin flicker variations
 */ 1 4 this 3 4079  
1720 0 0 4 1894 3816 0 0 133 /**
 * Set the step size for the sin function in flicker This is the increment
 * size for the value supplied to the sin function
 */ 2 4 this 3 4081  4 step 1 3595  
1721 0 0 6 1895 3595 0 0 133 /**
 * Get the step size for the sin function in flicker This is the increment
 * size for the value supplied to the sin function
 */ 1 4 this 3 4079  
1722 0 0 4 1896 3816 0 0 39 /**
 * Set frequency of sin flicker
 */ 2 4 this 3 4081  1 f 1 3595  
1723 0 0 6 1897 3595 0 0 39 /**
 * Get frequency of sin flicker
 */ 1 4 this 3 4079  
1724 0 0 6 1898 3597 0 0 21 // Comparison methods 2 4 this 3 4079  5 other 1 4079  
1725 0 0 6 1899 3597 0 0 0 2 4 this 3 4079  5 other 1 4079  
1726 0 0 6 1900 3597 0 0 0 2 4 this 3 4079  5 other 1 4079  
1727 0 0 6 1901 3590 0 0 486 /**
 * Returns a number less than zero if this PolylightNode sorts before the
 * other one, greater than zero if it sorts after, or zero if they are
 * equivalent.
 *
 * Two PolylightNodes are considered equivalent if they consist of exactly the
 * same properties Otherwise, they are different; different PolylightNodes
 * will be ranked in a consistent but undefined ordering; the ordering is
 * useful only for placing the PolylightNodes in a sorted container like an
 * STL set.
 */ 2 4 this 3 4079  5 other 1 4079  
1728 0 0 6 1902 3597 0 0 45 /**
 * Is this light is enabled/disabled?
 */ 1 4 this 3 4079  
1729 0 0 7 1903 3820 0 0 0 0 
1730 0 0 7 1909 3841 0 0 51 /**
 * Constructs a new PolylightEffect object.
 */ 0 
1731 0 0 23 1909 3841 0 0 51 /**
 * Constructs a new PolylightEffect object.
 */ 3 6 weight 1 3595  7 contrib 1 3764  13 effect_center 1 3903  
1732 0 0 23 1909 3841 0 0 51 /**
 * Constructs a new PolylightEffect object.
 */ 4 6 weight 1 3595  7 contrib 1 3764  13 effect_center 1 3903  6 lights 1 4082  
1733 0 0 7 1910 3841 0 0 76 /**
 * Add a PolylightNode object to this effect and return a new effect
 */ 2 4 this 3 4084  8 newlight 1 3888  
1734 0 0 7 1911 3841 0 0 74 /**
 * Remove a light from this effect.  Return the new updated effect
 */ 2 4 this 3 4084  8 newlight 1 3888  
1735 0 0 7 1912 3841 0 0 241 /**
 * Set weight and return a new effect... the reason this couldnt be done
 * through make was because that would return a new effect without the
 * lightgroup which is static and cant be accessed Here, we just pass that to
 * the make
 */ 2 4 this 3 4084  1 w 1 3595  
1736 0 0 7 1913 3841 0 0 247 /**
 * Set Contrib Type and return a new effect... the reason this couldnt be done
 * through make was because that would return a new effect without the
 * lightgroup which is static and cant be accessed Here, we just pass that to
 * the make
 */ 2 4 this 3 4084  1 c 1 3764  
1737 0 0 7 1914 3841 0 0 241 /**
 * Set weight and return a new effect... the reason this couldnt be done
 * through make was because that would return a new effect without the
 * lightgroup which is static and cant be accessed Here, we just pass that to
 * the make
 */ 2 4 this 3 4084  2 ec 1 3903  
1738 0 0 6 1915 3595 0 0 31 /**
 * Get the weight value
 */ 1 4 this 3 4084  
1739 0 0 6 1916 3764 0 0 40 /**
 * Returns CT_all or CT_proximal
 */ 1 4 this 3 4084  
1740 0 0 7 1917 3810 0 0 49 /**
 * Return the value of the _effect_center
 */ 1 4 this 3 4084  
1741 0 0 6 1918 3597 0 0 100 /**
 * Returns true if the indicated light is listed in the PolylightEffect, false
 * otherwise.
 */ 2 4 this 3 4084  5 light 1 3888  
1742 0 0 7 1919 3820 0 0 0 0 
1743 0 0 23 1922 3604 0 0 65 /**
 * Constructs a new ShaderAttrib object with nothing set.
 */ 2 6 shader 5 3769  8 priority 5 3590  
1744 0 0 7 1923 3604 0 0 133 /**
 * Constructs a new ShaderAttrib object that disables the use of shaders (it
 * does not clear out all shader data, however.)
 */ 0 
1745 0 0 7 1924 3604 0 0 145 /**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */ 0 
1746 0 0 6 1926 3597 0 0 109 /**
 * If true, the shader field of this attribute overrides the shader field of
 * the parent attribute.
 */ 1 4 this 3 4086  
1747 0 0 6 1927 3597 0 0 142 /**
 * If true, then this ShaderAttrib does not contain an explicit shader -
 * instead, it requests the automatic generation of a shader.
 */ 1 4 this 3 4086  
1748 0 0 6 1928 3590 0 0 10 /**
 *
 */ 1 4 this 3 4086  
1749 0 0 6 1929 3590 0 0 105 /**
 * Returns the number of geometry instances.  A value of 0 means not to use
 * instancing at all.
 */ 1 4 this 3 4086  
1750 0 0 6 1930 3597 0 0 0 1 4 this 3 4086  
1751 0 0 6 1931 3597 0 0 10 /**
 *
 */ 1 4 this 3 4086  
1752 0 0 6 1932 3597 0 0 10 /**
 *
 */ 1 4 this 3 4086  
1753 0 0 6 1933 3597 0 0 10 /**
 *
 */ 1 4 this 3 4086  
1754 0 0 6 1934 3597 0 0 10 /**
 *
 */ 1 4 this 3 4086  
1755 0 0 7 1935 3604 0 0 10 /**
 *
 */ 3 4 this 3 4086  1 s 1 3769  8 priority 5 3590  
1756 0 0 7 1936 3604 0 0 10 /**
 *
 */ 2 4 this 3 4086  8 priority 5 3590  
1757 0 0 7 1937 3604 0 0 104 /**
 * Set auto shader with bitmask to customize use, e.g., to keep normal, glow,
 * etc., on or off
 */ 3 4 this 3 4086  13 shader_switch 1 3909  8 priority 5 3590  
1758 0 0 7 1937 3604 0 0 10 /**
 *
 */ 2 4 this 3 4086  8 priority 5 3590  
1759 0 0 7 1938 3604 0 0 10 /**
 *
 */ 1 4 this 3 4086  
1760 0 0 39 1939 3604 0 0 0 4 4 this 3 4086  6 param0 0 3877  6 param1 0 3620  8 priority 5 3590  
1761 0 0 7 1939 3604 0 0 16 // Shader Inputs 2 4 this 3 4086  5 input 1 3882  
1762 0 0 39 1940 3604 0 0 0 3 4 this 3 4086  4 args 1 3620  6 kwargs 1 3620  
1763 0 0 7 1941 3604 0 0 211 /**
 * Sets the geometry instance count.  Do not confuse this with instanceTo,
 * which is used for animation instancing, and has nothing to do with this.  A
 * value of 0 means not to use instancing at all.
 */ 2 4 this 3 4086  14 instance_count 1 3590  
1764 0 0 7 1942 3604 0 0 10 /**
 *
 */ 3 4 this 3 4086  4 flag 1 3590  5 value 1 3597  
1765 0 0 7 1943 3604 0 0 10 /**
 *
 */ 2 4 this 3 4086  4 flag 1 3590  
1766 0 0 7 1944 3604 0 0 10 /**
 *
 */ 2 4 this 3 4086  2 id 1 3877  
1767 0 0 7 1944 3604 0 0 10 /**
 *
 */ 2 4 this 3 4086  2 id 1 3845  
1768 0 0 7 1945 3604 0 0 54 /**
 * Clears all the shader inputs on the attrib.
 */ 1 4 this 3 4086  
1769 0 0 6 1946 3597 0 0 10 /**
 *
 */ 2 4 this 3 4086  4 flag 1 3590  
1770 0 0 6 1947 3597 0 0 68 /**
 * Returns true if there is a ShaderInput of the given name.
 */ 2 4 this 3 4086  2 id 1 3877  
1771 0 0 7 1948 3769 0 0 186 /**
 * Returns the shader object associated with the node.  If get_override
 * returns true, but get_shader returns NULL, that means that this attribute
 * should disable the shader.
 */ 1 4 this 3 4086  
1772 0 0 6 1949 3882 0 0 158 /**
 * Returns the ShaderInput of the given name.  If no such name is found, this
 * function does not return NULL --- it returns the "blank" ShaderInput.
 */ 2 4 this 3 4086  2 id 1 3877  
1773 0 0 6 1949 3882 0 0 158 /**
 * Returns the ShaderInput of the given name.  If no such name is found, this
 * function does not return NULL --- it returns the "blank" ShaderInput.
 */ 2 4 this 3 4086  2 id 1 3845  
1774 0 0 6 1950 3888 0 0 115 /**
 * Returns the ShaderInput as a nodepath.  Assertion fails if there is none,
 * or if it is not a nodepath.
 */ 2 4 this 3 4086  2 id 1 3877  
1775 0 0 7 1951 4089 0 0 111 /**
 * Returns the ShaderInput as a vector.  Assertion fails if there is none, or
 * if it is not a vector.
 */ 2 4 this 3 4086  2 id 1 4088  
1776 0 0 7 1952 3753 0 0 207 /**
 * Returns the ShaderInput as a texture.  Assertion fails if there is none, or
 * if it is not a texture.
 *
 * If sampler is not NULL, the sampler state to use for this texture is
 * assigned to it.
 */ 3 4 this 3 4086  2 id 1 3877  7 sampler 5 4090  
1777 0 0 6 1953 3885 0 0 136 /**
 * Returns the ShaderInput as a ShaderPtrData struct.  Assertion fails if
 * there is none.  or if it is not a PTA(double/float)
 */ 2 4 this 3 4086  2 id 1 3877  
1778 0 0 6 1954 3800 0 0 123 /**
 * Returns the ShaderInput as a matrix.  Assertion fails if there is none, or
 * if it is not a matrix or NodePath.
 */ 3 4 this 3 4086  2 id 1 3877  6 matrix 1 3813  
1779 0 0 7 1955 4092 0 0 123 /**
 * Returns the ShaderInput as a ShaderBuffer.  Assertion fails if there is
 * none, or if it is not a ShaderBuffer.
 */ 2 4 this 3 4086  2 id 1 3877  
1780 0 0 4 1956 3816 0 0 53 /**
 * Factory method to generate a Shader object
 */ 0 
1781 0 0 6 1962 3590 0 0 0 0 
1782 0 0 7 1964 3820 0 0 0 0 
1783 0 0 23 1967 3841 0 0 52 /**
 * Constructs a new ShowBoundsEffect object.
 */ 1 5 tight 5 3597  
1784 0 0 6 1968 3597 0 0 157 /**
 * Returns true if the "tight" flag was set, meaning the effect should compute
 * and draw the tight bounding-box of the node's vertices every frame.
 */ 1 4 this 3 4093  
1785 0 0 7 1969 3820 0 0 0 0 
1786 0 0 7 1972 3841 0 0 74 /**
 * Constructs a TexProjectorEffect that modifies no stages at all.
 */ 0 
1787 0 0 7 1973 3841 0 0 536 /**
 * Returns a new TexProjectorEffect just like this one, with the indicated
 * projection for the given stage.  If this stage already exists, its
 * projection definition is replaced.
 *
 * The relative transform between the "from" and the "to" nodes is
 * automatically applied to the texture transform each frame.
 *
 * Furthermore, if the "to" node is a LensNode, its projection matrix is also
 * applied to the texture transform.  In this case, the lens_index may be used
 * to select the particular lens that should be used.
 */ 5 4 this 3 4095  5 stage 1 3751  4 from 1 3888  2 to 1 3888  10 lens_index 5 3590  
1788 0 0 7 1974 3841 0 0 100 /**
 * Returns a new TexProjectorEffect just like this one, with the indicated
 * stage removed.
 */ 2 4 this 3 4095  5 stage 1 3751  
1789 0 0 6 1975 3597 0 0 104 /**
 * Returns true if no stages are defined in the TexProjectorEffect, false if
 * at least one is.
 */ 1 4 this 3 4095  
1790 0 0 6 1976 3597 0 0 182 /**
 * Returns true if there is a transform associated with the indicated stage,
 * or false otherwise (in which case get_transform(stage) will return the
 * identity transform).
 */ 2 4 this 3 4095  5 stage 1 3751  
1791 0 0 7 1977 3898 2739 0 227 /**
 * Returns the "from" node associated with the TexProjectorEffect on the
 * indicated stage.  The relative transform between the "from" and the "to"
 * nodes is automatically applied to the texture transform each frame.
 */ 2 4 this 3 4095  5 stage 1 3751  
1792 0 0 7 1978 3898 2739 0 343 /**
 * Returns the "to" node associated with the TexProjectorEffect on the
 * indicated stage.  The relative transform between the "from" and the "to"
 * nodes is automatically applied to the texture transform each frame.
 *
 * Furthermore, if the "to" node is a LensNode, its projection matrix is also
 * applied to the texture transform.
 */ 2 4 this 3 4095  5 stage 1 3751  
1793 0 0 6 1979 3590 0 0 221 /**
 * Returns the lens_index associated with the TexProjectorEffect on the
 * indicated stage.  This is only used if the "to" node is a LensNode, in
 * which case it specifies the particular lens that should be used.
 */ 2 4 this 3 4095  5 stage 1 3751  
1794 0 0 7 1980 3820 0 0 0 0 
1795 0 0 7 1982 3841 0 0 169 /**
 * Constructs a new screen-relative ScissorEffect.  The frame defines a left,
 * right, bottom, top region, relative to the DisplayRegion.  See
 * ScissorAttrib.
 */ 2 5 frame 1 3884  4 clip 5 3597  
1796 0 0 7 1983 3841 0 0 249 /**
 * Constructs a new node-relative ScissorEffect.  The four points are
 * understood to be relative to the indicated node, or the current node if the
 * indicated NodePath is empty, and determine four points surrounding the
 * scissor region.
 */ 5 1 a 1 3903  1 b 1 3903  1 c 1 3903  1 d 1 3903  4 node 5 3888  
1797 0 0 7 1983 3841 0 0 249 /**
 * Constructs a new node-relative ScissorEffect.  The two points are
 * understood to be relative to the indicated node, or the current node if the
 * NodePath is empty, and determine the diagonally opposite corners of the
 * scissor region.
 */ 3 1 a 1 3903  1 b 1 3903  4 node 5 3888  
1798 0 0 7 1983 3841 0 0 197 /**
 * Constructs a new node-relative ScissorEffect, with no points.  This empty
 * ScissorEffect does nothing.  You must then call add_point a number of times
 * to add the points you require.
 */ 1 4 clip 5 3597  
1799 0 0 7 1984 3841 0 0 325 /**
 * Returns a new ScissorEffect with the indicated point added.  It is only
 * valid to call this on a "node" type ScissorEffect.  The full set of points,
 * projected into screen space, defines the bounding volume of the rectangular
 * scissor region.
 *
 * Each point may be relative to a different node, if desired.
 */ 3 4 this 3 4097  5 point 1 3903  4 node 5 3888  
1800 0 0 6 1985 3597 0 0 149 /**
 * Returns true if the ScissorEffect is a screen-based effect, meaning
 * get_frame() has a meaningful value, but get_a() and get_b() do not.
 */ 1 4 this 3 4097  
1801 0 0 6 1986 3884 0 0 253 /**
 * If is_screen() returns true, this method may be called to query the screen-
 * based scissor frame.  This is a series of left, right, bottom, top,
 * representing the scissor frame relative to the current DisplayRegion.  See
 * ScissorAttrib.
 */ 1 4 this 3 4097  
1802 0 0 6 1987 3590 0 0 77 /**
 * Returns the number of node-based scissor points.  See get_point().
 */ 1 4 this 3 4097  
1803 0 0 6 1988 3903 0 0 293 /**
 * If is_screen() returns false, then get_num_points() and get_point() may be
 * called to query the node-based scissor frame.  These return n points (at
 * least two), which are understood to be in the space of this node, and which
 * define any opposite corners of the scissor frame.
 */ 2 4 this 3 4097  1 n 1 3590  
1804 0 0 7 1990 3898 2739 0 114 /**
 * Returns the node to which the nth point is relative, or empty NodePath to
 * indicate the current node.
 */ 2 4 this 3 4097  1 n 1 3590  
1805 0 0 6 1992 3597 0 0 104 /**
 * Returns true if this ScissorEffect actually enables scissoring, or false if
 * it culls only.
 */ 1 4 this 3 4097  
1806 0 0 7 1993 3820 0 0 0 0 
1807 0 0 7 1996 4099 3494 0 10 /**
 *
 */ 1 3 gsg 5 3855  
1808 0 0 15 1996 4099 3494 0 0 1 6 param0 0 4100  
1809 0 0 4 2002 3816 0 0 360 /**
 * Specifies the particular GraphicsStateGuardian that this object will
 * attempt to optimize to.  The GSG may specify parameters such as maximum
 * number of vertices per vertex data, max number of vertices per primitive,
 * and whether triangle strips are preferred.  It also affects the types of
 * vertex column data that is created by premunge().
 */ 2 4 this 3 4099  3 gsg 1 3855  
1810 0 0 4 2003 3816 0 0 218 /**
 * Specifies that no particular GraphicsStateGuardian will be used to guide
 * the optimization.  The SceneGraphReducer will instead use config variables
 * such as max-collect-vertices and max-collect-indices.
 */ 1 4 this 3 4099  
1811 0 0 7 2004 3855 0 0 120 /**
 * Returns the particular GraphicsStateGuardian that this object will attempt
 * to optimize to.  See set_gsg().
 */ 1 4 this 3 4100  
1812 0 0 4 2005 3816 0 0 413 /**
 * Specifies the radius that is used in conjunction with CS_within_radius to
 * decide whether a subgraph's siblings should be combined into a single node
 * or not.
 *
 * If the CS_within_radius bit is included in the combine_siblings_bits
 * parameter passed to flatten, than any nodes whose bounding volume is
 * smaller than the indicated radius will be combined together (as if CS_other
 * were set).
 */ 2 4 this 3 4099  14 combine_radius 1 3595  
1813 0 0 6 2006 3595 0 0 110 /**
 * Returns the radius that is used in conjunction with CS_within_radius.  See
 * set_combine_radius().
 */ 1 4 this 3 4100  
1814 0 0 4 2007 3816 0 0 245 /**
 * This flavor of apply_attribs() can be called recursively from within
 * another flatten process (e.g.  from
 * PandaNode::apply_attribs_to_vertices()). The parameters were presumably
 * received from a parent SceneGraphReducer object.
 */ 5 4 this 3 4099  4 node 1 3647  7 attribs 1 4102  12 attrib_types 1 3590  11 transformer 1 4105  
1815 0 0 4 2007 3816 0 0 509 /**
 * Walks the scene graph, accumulating attribs of the indicated types,
 * applying them to the vertices, and removing them from the scene graph.
 * This has a performance optimization benefit in itself, but is especially
 * useful to pave the way for a call to flatten() and greatly improve the
 * effectiveness of the flattening operation.
 *
 * Multiply instanced geometry is duplicated before the attribs are applied.
 *
 * Of course, this operation does make certain dynamic operations impossible.
 */ 3 4 this 3 4099  4 node 1 3647  12 attrib_types 5 3590  
1816 0 0 6 2008 3590 0 0 559 /**
 * Simplifies the graph by removing unnecessary nodes and nodes.
 *
 * In general, a node (and its parent node) is a candidate for removal if the
 * node has no siblings and the node has no special properties.
 *
 * If combine_siblings_bits is nonzero, some sibling nodes (according to the
 * bits set in combine_siblings_bits) may also be collapsed into a single
 * node.  This will further reduce scene graph complexity, sometimes
 * substantially, at the cost of reduced spatial separation.
 *
 * Returns the number of nodes removed from the graph.
 */ 3 4 this 3 4099  4 root 1 3647  21 combine_siblings_bits 1 3590  
1817 0 0 6 2009 3590 0 0 154 /**
 * Removes the indicated data column from any GeomVertexDatas found at the
 * indicated root and below.  Returns the number of GeomNodes modified.
 */ 3 4 this 3 4099  4 root 1 3647  6 column 1 3877  
1818 0 0 6 2010 3590 0 0 254 /**
 * Searches for GeomNodes that contain multiple Geoms that differ only in
 * their ColorAttribs.  If such a GeomNode is found, then all the colors are
 * pushed down into the vertices.  This makes it feasible for the geoms to be
 * unified later.
 */ 2 4 this 3 4099  4 root 1 3647  
1819 0 0 6 2011 3590 0 0 715 /**
 * Walks through the tree at this node and below and unifies the
 * GeomVertexFormat for any GeomVertexData objects that are found, so that all
 * eligible vdatas (according to collect_bits; see collect_vertex_data) will
 * share the same vertex format.
 *
 * This will add unused columns where necessary to match formats.  It can
 * result in suboptimal performance if used needlessly.
 *
 * There is usually no reason to call this explicitly, since
 * collect_vertex_data() will do this anyway if it has not been done already.
 * However, calling it ahead of time can make that future call to
 * collect_vertex_data() run a little bit faster.
 *
 * The return value is the number of vertex datas modified.
 */ 3 4 this 3 4099  4 root 1 3647  12 collect_bits 5 3590  
1820 0 0 4 2012 3816 0 0 396 /**
 * Calls decompose() on every GeomNode at this level and below.
 *
 * There is usually no reason to call this explicitly, since unify() will do
 * this anyway if it needs to be done.  However, calling it ahead of time can
 * make that future call to unify() run a little bit faster.
 *
 * This operation has no effect if the config variable preserve-triangle-
 * strips has been set true.
 */ 2 4 this 3 4099  4 root 1 3647  
1821 0 0 6 2013 3590 0 0 579 /**
 * Collects all different GeomVertexData blocks that have compatible formats
 * at this node and below into a single, unified block (or at least multiple
 * larger blocks).  This is intended to reduce rendering overhead incurred by
 * switching vertex buffers.  It can also make a subsequent call to unify()
 * much more effective than it would have been otherwise.
 *
 * The set of bits passed in collect_bits indicates which properties are used
 * to differentiate GeomVertexData blocks.  If it is 0, then more blocks will
 * be combined together than if it is nonzero.
 */ 3 4 this 3 4099  4 root 1 3647  12 collect_bits 5 3590  
1822 0 0 6 2014 3590 0 0 308 /**
 * Converts indexed geometry to nonindexed geometry at the indicated node and
 * below, by duplicating vertices where necessary.  The parameter
 * nonindexed_bits is a union of bits defined in
 * SceneGraphReducer::MakeNonindexed, which specifes which types of geometry
 * to avoid making nonindexed.
 */ 3 4 this 3 4099  4 root 1 3647  15 nonindexed_bits 5 3590  
1823 0 0 4 2015 3816 0 0 224 /**
 * Calls unify() on every GeomNode at this level and below.  This attempts to
 * reduce the total number of individual Geoms and GeomPrimitives by combining
 * these objects wherever possible.  See GeomNode::unify().
 */ 3 4 this 3 4099  4 root 1 3647  14 preserve_order 1 3597  
1824 0 0 4 2016 3816 0 0 273 /**
 * Removes any vertices in GeomVertexDatas that are no longer used at this
 * level and below.  This requires remapping vertex indices in all of the
 * GeomPrimitives, to remove holes in the GeomVertexDatas.  It is normally not
 * necessary to call this explicitly.
 */ 2 4 this 3 4099  4 root 1 3647  
1825 0 0 4 2017 3816 0 0 320 /**
 * Walks the scene graph rooted at this node and below, and uses the indicated
 * GSG to premunge every Geom found to optimize it for eventual rendering on
 * the indicated GSG.  If there is no GSG indicated for the SceneGraphReducer,
 * this is a no-op.
 *
 * This operation will also apply to stashed children.
 */ 3 4 this 3 4099  4 root 1 3647  13 initial_state 1 3829  
1826 0 0 6 2018 3597 0 0 359 /**
 * In a non-release build, returns false if the node is correctly not in a
 * live scene graph.  (Calling flatten on a node that is part of a live scene
 * graph, for instance, a node somewhere under render, can cause problems in a
 * multithreaded environment.)
 *
 * If allow_live_flatten is true, or in a release build, this always returns
 * true.
 */ 2 4 this 3 4099  4 node 1 3647  
1827 0 0 23 2023 4107 3517 0 74 /**
 * Creates a new ParamNodePath storing the given node path object.
 */ 1 9 node_path 1 3888  
1828 0 0 6 2024 3888 0 0 58 /**
 * Retrieves the NodePath stored in the parameter.
 */ 1 4 this 3 4108  
1829 0 0 7 2025 3820 0 0 0 0 
1830 0 0 7 2028 4110 2131 0 222 /**
 * Default constructor, just an empty node, no geo This is used to read portal
 * from model.  You can also use this from python to create an empty portal.
 * Then you can set the vertices yourself, with addVertex.
 */ 1 4 name 1 3845  
1831 0 0 7 2028 4110 2131 0 113 /**
 * Create a default rectangle as portal.  Use this to create an arbitrary
 * portal and setup from Python
 */ 3 4 name 1 3845  3 pos 1 3810  5 scale 5 3595  
1832 0 0 4 2029 3816 0 0 97 /**
 * Simultaneously sets both the "from" and "into" PortalMask values to the
 * same thing.
 */ 2 4 this 3 4110  4 mask 1 4111  
1833 0 0 4 2030 3816 0 0 218 /**
 * Sets the "from" PortalMask.  In order for a portal to be detected from this
 * object into another object, the intersection of this object's "from" mask
 * and the other object's "into" mask must be nonzero.
 */ 2 4 this 3 4110  4 mask 1 4111  
1834 0 0 4 2031 3816 0 0 218 /**
 * Sets the "into" PortalMask.  In order for a portal to be detected from
 * another object into this object, the intersection of the other object's
 * "from" mask and this object's "into" mask must be nonzero.
 */ 2 4 this 3 4110  4 mask 1 4111  
1835 0 0 7 2032 4111 0 0 229 /**
 * Returns the current "from" PortalMask.  In order for a portal to be
 * detected from this object into another object, the intersection of this
 * object's "from" mask and the other object's "into" mask must be nonzero.
 */ 1 4 this 3 4112  
1836 0 0 7 2033 4111 0 0 229 /**
 * Returns the current "into" PortalMask.  In order for a portal to be
 * detected from another object into this object, the intersection of the
 * other object's "from" mask and this object's "into" mask must be nonzero.
 */ 1 4 this 3 4112  
1837 0 0 4 2034 3816 0 0 496 /**
 * Sets the state of the "portal geom" flag for this PortalNode.  Normally,
 * this is false; when this is set true, the PortalSolids in this node will
 * test for portals with actual renderable geometry, in addition to whatever
 * PortalSolids may be indicated by the from_portal_mask.
 *
 * Setting this to true causes this to test *all* GeomNodes for portals.  It
 * is an all-or-none thing; there is no way to portal with only some
 * GeomNodes, as GeomNodes have no into_portal_mask.
 */ 2 4 this 3 4110  4 flag 1 3597  
1838 0 0 6 2035 3597 0 0 85 /**
 * Returns the current state of the portal_geom flag.  See set_portal_geom().
 */ 1 4 this 3 4112  
1839 0 0 4 2036 3816 0 0 63 /**
 * Resets the vertices of the portal to the empty list.
 */ 1 4 this 3 4110  
1840 0 0 4 2037 3816 0 0 153 /**
 * Adds a new vertex to the portal polygon.  The vertices should be defined in
 * a counterclockwise orientation when viewing through the portal.
 */ 2 4 this 3 4110  6 vertex 1 3903  
1841 0 0 6 2038 3590 0 0 64 /**
 * Returns the number of vertices in the portal polygon.
 */ 1 4 this 3 4112  
1842 0 0 6 2039 3903 0 0 56 /**
 * Returns the nth vertex of the portal polygon.
 */ 2 4 this 3 4112  1 n 1 3590  
1843 0 0 4 2041 3816 0 0 52 /**
 * Sets the cell that this portal belongs to
 */ 2 4 this 3 4110  4 cell 1 3888  
1844 0 0 7 2042 3898 2739 0 52 /**
 * Sets the cell that this portal belongs to
 */ 1 4 this 3 4112  
1845 0 0 4 2043 3816 0 0 54 /**
 * Sets the cell that this portal leads out to
 */ 2 4 this 3 4110  4 cell 1 3888  
1846 0 0 7 2044 3898 2739 0 54 /**
 * Sets the cell that this portal leads out to
 */ 1 4 this 3 4112  
1847 0 0 4 2045 3816 0 0 80 /**
 * this is set if the portal will clip against its left and right planes
 */ 2 4 this 3 4110  5 value 1 3597  
1848 0 0 6 2046 3597 0 0 64 /**
 * Is this portal clipping against its left-right planes
 */ 1 4 this 3 4110  
1849 0 0 4 2047 3816 0 0 53 /**
 * this is set if the portal is facing camera
 */ 2 4 this 3 4110  5 value 1 3597  
1850 0 0 6 2048 3597 0 0 43 /**
 * Is this portal facing the camera
 */ 1 4 this 3 4110  
1851 0 0 4 2049 3816 0 0 63 /**
 * Set the maximum depth this portal will be visible at
 */ 2 4 this 3 4110  5 value 1 3590  
1852 0 0 6 2050 3590 0 0 67 /**
 * Returns the maximum depth this portal will be visible at
 */ 1 4 this 3 4110  
1853 0 0 4 2051 3816 0 0 55 /**
 * Python sets this based on curent camera zone
 */ 2 4 this 3 4110  5 value 1 3597  
1854 0 0 6 2052 3597 0 0 55 /**
 * Is this portal open from current camera zone
 */ 1 4 this 3 4110  
1855 0 0 7 2064 3820 0 0 0 0 
1856 0 0 7 2066 3604 0 0 112 /**
 * Constructs a new ScissorAttrib object that removes the scissor region and
 * fills the DisplayRegion.
 */ 0 
1857 0 0 23 2067 3604 0 0 216 /**
 * Constructs a ScissorAttrib that restricts rendering to the indicated frame
 * within the current DisplayRegion.  (0,0) is the lower-left corner of the
 * DisplayRegion, and (1,1) is the upper-right corner.
 */ 1 5 frame 1 3884  
1858 0 0 23 2067 3604 0 0 216 /**
 * Constructs a ScissorAttrib that restricts rendering to the indicated frame
 * within the current DisplayRegion.  (0,0) is the lower-left corner of the
 * DisplayRegion, and (1,1) is the upper-right corner.
 */ 4 4 left 1 3595  5 right 1 3595  6 bottom 1 3595  3 top 1 3595  
1859 0 0 7 2068 3604 0 0 145 /**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */ 0 
1860 0 0 6 2069 3597 0 0 119 /**
 * Returns true if the ScissorAttrib is an 'off' ScissorAttrib, indicating
 * that scissor testing is disabled.
 */ 1 4 this 3 4114  
1861 0 0 6 2070 3884 0 0 234 /**
 * Returns the left, right, bottom, top coordinates of the scissor frame.
 * This defines a frame within the current DisplayRegion, where 0,0 is the
 * lower-left corner of the DisplayRegion, and 1,1 is the upper-right corner.
 */ 1 4 this 3 4114  
1862 0 0 6 2072 3590 0 0 0 0 
1863 0 0 7 2074 3820 0 0 0 0 
1864 0 0 23 2078 3604 0 0 149 /**
 * Constructs a new ShadeModelAttrib object that specifies whether to draw
 * polygons with flat shading or with per-vertex (smooth) shading.
 */ 1 4 mode 1 3786  
1865 0 0 7 2079 3604 0 0 145 /**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */ 0 
1866 0 0 6 2080 3786 0 0 34 /**
 * Returns the shade mode.
 */ 1 4 this 3 4116  
1867 0 0 6 2082 3590 0 0 0 0 
1868 0 0 7 2084 3820 0 0 0 0 
1869 0 0 7 2090 3604 0 0 69 /**
 * Constructs a StencilAttrib that has stenciling turned off.
 */ 0 
1870 0 0 7 2091 3604 0 0 145 /**
 * Returns a RenderAttrib that corresponds to whatever the standard default
 * properties for render attributes of this type ought to be.
 */ 0 
1871 0 0 23 2092 3604 0 0 49 /**
 * Constructs a front face StencilAttrib.
 */ 8 12 front_enable 1 3597  25 front_comparison_function 1 3591  22 stencil_fail_operation 1 3790  29 stencil_pass_z_fail_operation 1 3790  35 front_stencil_pass_z_pass_operation 1 3790  9 reference 1 3689  9 read_mask 1 3689  10 write_mask 5 3689  
1872 0 0 7 2093 3604 0 0 48 /**
 * Constructs a two-sided StencilAttrib.
 */ 13 12 front_enable 1 3597  11 back_enable 1 3597  25 front_comparison_function 1 3591  22 stencil_fail_operation 1 3790  29 stencil_pass_z_fail_operation 1 3790  35 front_stencil_pass_z_pass_operation 1 3790  9 reference 1 3689  9 read_mask 1 3689  10 write_mask 1 3689  24 back_comparison_function 1 3591  27 back_stencil_fail_operation 1 3790  34 back_stencil_pass_z_fail_operation 1 3790  34 back_stencil_pass_z_pass_operation 1 3790  
1873 0 0 7 2094 3604 0 0 49 /**
 * Constructs a front face StencilAttrib.
 */ 10 12 front_enable 1 3597  25 front_comparison_function 1 3591  22 stencil_fail_operation 1 3790  29 stencil_pass_z_fail_operation 1 3790  35 front_stencil_pass_z_pass_operation 1 3790  9 reference 1 3689  9 read_mask 1 3689  10 write_mask 1 3689  5 clear 1 3597  11 clear_value 1 3689  
1874 0 0 7 2095 3604 0 0 48 /**
 * Constructs a two-sided StencilAttrib.
 */ 15 12 front_enable 1 3597  11 back_enable 1 3597  25 front_comparison_function 1 3591  22 stencil_fail_operation 1 3790  29 stencil_pass_z_fail_operation 1 3790  35 front_stencil_pass_z_pass_operation 1 3790  9 reference 1 3689  9 read_mask 1 3689  10 write_mask 1 3689  24 back_comparison_function 1 3591  27 back_stencil_fail_operation 1 3790  34 back_stencil_pass_z_fail_operation 1 3790  34 back_stencil_pass_z_pass_operation 1 3790  5 clear 1 3597  11 clear_value 1 3689  
1875 0 0 6 2096 3689 0 0 32 /**
 * Returns render state.
 */ 2 4 this 3 4118  23 render_state_identifier 1 3788  
1876 0 0 6 2097 3590 0 0 0 0 
1877 0 0 7 2099 3820 0 0 0 0 
1878 0 0 6 2102 3597 0 0 76 /**
 * Returns true if the shader has ever been loaded, false otherwise.
 */ 1 8 filename 1 3921  
1879 0 0 6 2103 3597 0 0 306 /**
 * Loads the given filename up into a shader, if it has not already been
 * loaded, and returns true to indicate success, or false to indicate failure.
 * If this returns true, it is guaranteed that a subsequent call to
 * load_shader() with the same shader name will return a valid Shader pointer.
 */ 1 8 filename 1 3921  
1880 0 0 7 2104 3769 0 0 261 /**
 * Loads the given filename up into a shader, if it has not already been
 * loaded, and returns the new shader.  If a shader with the same filename was
 * previously loaded, returns that one instead.  If the shader file cannot be
 * found, returns NULL.
 */ 1 8 filename 1 3921  
1881 0 0 4 2105 3816 0 0 171 /**
 * Adds the indicated already-loaded shader to the pool.  The shader will
 * always replace any previously-loaded shader in the pool that had the same
 * filename.
 */ 2 8 filename 1 3921  6 shader 1 4120  
1882 0 0 4 2106 3816 0 0 270 /**
 * Removes the indicated shader from the pool, indicating it will never be
 * loaded again; the shader may then be freed.  If this function is never
 * called, a reference count will be maintained on every shader every loaded,
 * and shaders will never be freed.
 */ 1 8 filename 1 3921  
1883 0 0 4 2107 3816 0 0 85 /**
 * Releases all shaders in the pool and restores the pool to the empty state.
 */ 0 
1884 0 0 6 2108 3590 0 0 209 /**
 * Releases only those shaders in the pool that have a reference count of
 * exactly 1; i.e.  only those shaders that are not being used outside of the
 * pool.  Returns the number of shaders released.
 */ 0 
1885 0 0 4 2109 3816 0 0 80 /**
 * Lists the contents of the shader pool to the indicated output stream.
 */ 1 3 out 1 3817  
1886 0 0 4 2110 3816 0 0 80 /**
 * Lists the contents of the shader pool to the indicated output stream.
 */ 1 3 out 1 3817  
1887 0 0 7 2019 3898 2739 0 0 1 4 data 1 3862  
1888 0 0 7 2020 3898 2739 0 0 2 9 unpickler 1 3620  4 data 1 3862  
544
3577 14 TransformState 0 16852993 14 TransformState 14 TransformState 0 0 0 0 0 7 4121 4122 4123 4124 4125 4126 4127 97 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 0 0 1 0 3578 0 0 0 0 734
/**
 * Indicates a coordinate-system transform on vertices.  TransformStates are
 * the primary means for storing transformations on the scene graph.
 *
 * Transforms may be specified in one of two ways: componentwise, with a pos-
 * hpr-scale, or with an arbitrary transform matrix.  If you specify a
 * transform componentwise, it will remember its original components.
 *
 * TransformState objects are managed very much like RenderState objects.
 * They are immutable and reference-counted automatically.
 *
 * You should not attempt to create or modify a TransformState object
 * directly.  Instead, call one of the make() functions to create one for you.
 * And instead of modifying a TransformState object, create a new one.
 */

3578 24 NodeCachedReferenceCount 0 2048 24 NodeCachedReferenceCount 24 NodeCachedReferenceCount 0 0 0 0 0 0 0 0 0 0 0 0 1495
/**
 * This class further specializes CachedTypedWritableReferenceCount to also
 * add a node_ref_count, for the purposes of counting the number of times the
 * object is referenced by a "node", presumably a PandaNode.
 *
 * This essentially combines the functionality of NodeReferenceCount and
 * CachedTypedWritableReferenceCount, so that a derivative of this object
 * actually has three counters: the standard reference count, the "cache"
 * reference count, and the "node" reference count.  Rather than multiply
 * inheriting from the two reference count classes, we inherit only from
 * CachedTypedWritableReferenceCount and simply duplicate the functionality of
 * NodeReferenceCount, to avoid all of the problems associated with multiple
 * inheritance.
 *
 * The intended design is to use this as a base class for RenderState and
 * TransformState, both of which are held by PandaNodes, and also have caches
 * which are independently maintained.  By keeping track of how many nodes
 * hold a pointer to a particular object, we can classify each object into
 * node-referenced, cache-referenced, or other, which is primarily useful for
 * PStats reporting.
 *
 * As with CachedTypedWritableReferenceCount's cache_ref() and cache_unref(),
 * the new methods node_ref() and node_unref() automatically increment and
 * decrement the primary reference count as well.  In this case, however,
 * there does exist a NodePointerTo<> class to maintain the node_ref counters
 * automatically.
 */

3579 7 LPoint3 0 2105344 7 LPoint3 7 LPoint3 0 0 3580 0 0 0 0 0 0 0 0 0 0

3580 8 LPoint3f 0 2048 8 LPoint3f 8 LPoint3f 0 0 0 0 0 0 0 0 0 0 0 0 337
/**
 * This is a three-component point in space (as opposed to a three-component
 * vector, which represents a direction and a distance).  Some of the methods
 * are slightly different between LPoint3 and LVector3; in particular,
 * subtraction of two points yields a vector, while addition of a vector and a
 * point yields a point.
 */

3581 9 LVecBase3 0 2105344 9 LVecBase3 9 LVecBase3 0 0 3582 0 0 0 0 0 0 0 0 0 0

3582 10 LVecBase3f 0 2048 10 LVecBase3f 10 LVecBase3f 0 0 0 0 0 0 0 0 0 0 0 0 77
/**
 * This is the base class for all three-component vectors and points.
 */

3583 11 LQuaternion 0 2105344 11 LQuaternion 11 LQuaternion 0 0 3584 0 0 0 0 0 0 0 0 0 0

3584 12 LQuaternionf 0 2048 12 LQuaternionf 12 LQuaternionf 0 0 0 0 0 0 0 0 0 0 0 0 44
/**
 * This is the base quaternion class
 */

3585 8 LMatrix4 0 2105344 8 LMatrix4 8 LMatrix4 0 0 3586 0 0 0 0 0 0 0 0 0 0

3586 9 LMatrix4f 0 2048 9 LMatrix4f 9 LMatrix4f 0 0 0 0 0 0 0 0 0 0 0 0 45
/**
 * This is a 4-by-4 transform matrix.
 */

3587 20 RenderAttribRegistry 0 43009 20 RenderAttribRegistry 20 RenderAttribRegistry 0 0 0 0 0 0 10 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 0 0 0 0 0 212
/**
 * This class is used to associate each RenderAttrib with a different slot
 * index at runtime, so we can store a list of RenderAttribs in the
 * RenderState object, and very quickly look them up by type.
 */

3588 12 RenderAttrib 0 75777 12 RenderAttrib 12 RenderAttrib 0 0 0 0 0 1 4128 14 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 0 0 1 0 3589 0 0 0 2 3591 3592 1074
/**
 * This is the base class for a number of render attributes (other than
 * transform) that may be set on scene graph nodes to control the appearance
 * of geometry.  This includes TextureAttrib, ColorAttrib, etc.
 *
 * RenderAttrib represents render attributes that always propagate down to the
 * leaves without regard to the particular node they are assigned to.  A
 * RenderAttrib will have the same effect on a leaf node whether it is
 * assigned to the graph at the leaf or several nodes above.  This is
 * different from RenderEffect, which represents a particular render property
 * that is applied immediately to the node on which it is encountered, like
 * billboarding or decaling.
 *
 * You should not attempt to create or modify a RenderAttrib directly;
 * instead, use the make() method of the appropriate kind of attrib you want.
 * This will allocate and return a new RenderAttrib of the appropriate type,
 * and it may share pointers if possible.  Do not modify the new RenderAttrib
 * if you wish to change its properties; instead, create a new one.
 */

3589 27 TypedWritableReferenceCount 0 2048 27 TypedWritableReferenceCount 27 TypedWritableReferenceCount 0 0 0 0 0 0 0 0 0 0 0 0 414
/**
 * A base class for things which need to inherit from both TypedWritable and
 * from ReferenceCount.  It's convenient to define this intermediate base
 * class instead of multiply inheriting from the two classes each time they
 * are needed, so that we can sensibly pass around pointers to things which
 * are both TypedWritables and ReferenceCounters.
 *
 * See also TypedObject for detailed instructions.
 */

3590 3 int 0 8194 3 int 3 int 0 1 0 0 0 0 0 0 0 0 0 0 0

3591 16 PandaCompareFunc 0 794624 30 RenderAttrib::PandaCompareFunc 30 RenderAttrib::PandaCompareFunc 3588 0 0 0 0 0 0 0 0 0 9 6 M_none 20 RenderAttrib::M_none 36
// alpha-test disabled (always-draw)
0 7 M_never 21 RenderAttrib::M_never 14
// Never draw.
1 6 M_less 20 RenderAttrib::M_less 29
// incoming < reference_alpha
2 7 M_equal 21 RenderAttrib::M_equal 30
// incoming == reference_alpha
3 12 M_less_equal 26 RenderAttrib::M_less_equal 30
// incoming <= reference_alpha
4 9 M_greater 23 RenderAttrib::M_greater 29
// incoming > reference_alpha
5 11 M_not_equal 25 RenderAttrib::M_not_equal 30
// incoming != reference_alpha
6 15 M_greater_equal 29 RenderAttrib::M_greater_equal 30
// incoming >= reference_alpha
7 8 M_always 22 RenderAttrib::M_always 15
// Always draw.
8 0 44
// intentionally defined to match D3DCMPFUNC

3592 10 TexGenMode 0 794624 24 RenderAttrib::TexGenMode 24 RenderAttrib::TexGenMode 3588 0 0 0 0 0 0 0 0 0 12 5 M_off 19 RenderAttrib::M_off 0
0 16 M_eye_sphere_map 30 RenderAttrib::M_eye_sphere_map 210
// Sphere maps are classic static reflection maps.  They are supported on
// just about any hardware, and require a precomputed 360-degree fisheye
// image.  Sphere maps only make sense in eye coordinate space.
1 16 M_world_cube_map 30 RenderAttrib::M_world_cube_map 439
/*
 * Cube maps are a modern improvement on the sphere map; they don't suffer
 * from any polar singularities, but they require six texture images.  They
 * can also be generated dynamically for real-time reflections (see
 * GraphicsOutput::make_cube_map()). Typically, a statically-generated cube
 * map will be in eye space, while a dynamically-generated map will be in
 * world space.  Cube mapping is not supported on all hardware.
 */
2 14 M_eye_cube_map 28 RenderAttrib::M_eye_cube_map 0
3 14 M_world_normal 28 RenderAttrib::M_world_normal 100
// Normal maps are most useful for applying diffuse lighting effects via a
// pregenerated cube map.
4 12 M_eye_normal 26 RenderAttrib::M_eye_normal 0
5 16 M_world_position 30 RenderAttrib::M_world_position 180
// Position maps convert XYZ coordinates directly to texture coordinates.
// This is particularly useful for implementing projective texturing (see
// NodePath::project_texture()).
6 8 M_unused 22 RenderAttrib::M_unused 46
// formerly M_object_position, now deprecated.
7 14 M_eye_position 28 RenderAttrib::M_eye_position 0
8 14 M_point_sprite 28 RenderAttrib::M_point_sprite 683
/*
 * With M_point_sprite, texture coordinates will be generated for large points
 * in the range (0,0) - (1,1) from upper-left to lower-right across the
 * point's face.  Without this, each point will have just a single uniform
 * texture coordinate value across its face.  Unfortunately, the generated
 * texture coordinates are inverted (upside-down) from Panda's usual
 * convention, but this is what the graphics card manufacturers decided to
 * use.  You could use a texture matrix to re-invert the texture, but that
 * will probably force the sprites' vertices to be computed in the CPU. You'll
 * have to paint your textures upside-down if you want true hardware sprites.
 */
9 9 M_unused2 23 RenderAttrib::M_unused2 324
// M_light_vector generated special 3-d texture coordinates that
// represented the vector to a particular Light in the scene graph,
// expressed in each vertex's tangent space.  This has now been removed.
// We need to reserve the slot in the enum, though, to make sure the
// following enum value still has the same value.
10 10 M_constant 24 RenderAttrib::M_constant 193
// M_constant generates the same fixed texture coordinates at each vertex.
// Not terribly useful, of course, except for certain special effects
// involving moving a flat color over an object.
11 0 179
// This is the enumerated type for TexGenAttrib.  It is inherited into
// TexGenAttrib.  It is defined up at this level only to avoid circular
// dependencies in the header files.

3593 16 RenderModeAttrib 0 141313 16 RenderModeAttrib 16 RenderModeAttrib 0 0 0 0 2019 5 4129 4130 4131 4132 4133 9 2010 2011 2012 2013 2014 2015 2016 2017 2018 0 0 1 0 3588 0 0 0 1 3594 50
/**
 * Specifies how polygons are to be drawn.
 */

3594 4 Mode 0 794624 22 RenderModeAttrib::Mode 22 RenderModeAttrib::Mode 3593 0 0 0 0 0 0 0 0 0 6 11 M_unchanged 29 RenderModeAttrib::M_unchanged 0
0 8 M_filled 26 RenderModeAttrib::M_filled 27
// Normal, filled polygons.
1 11 M_wireframe 29 RenderModeAttrib::M_wireframe 47
// Wireframe polygons, possibly with thickness.
2 7 M_point 25 RenderModeAttrib::M_point 80
// Points at vertices only, possibly with thickness andor perspective
// sizing.
3 13 M_filled_flat 31 RenderModeAttrib::M_filled_flat 152
// Filled polygons, without any particular emphasis on perspective
// correctness (a particularly useful designation for software rendering
// sprites).
4 18 M_filled_wireframe 36 RenderModeAttrib::M_filled_wireframe 94
// Filled polygons with wireframe rendered in front.  The wireframe is
// given a solid color.
5 0 0

3595 11 PN_stdfloat 0 2105344 11 PN_stdfloat 11 PN_stdfloat 0 0 3596 0 0 0 0 0 0 0 0 0 0

3596 5 float 0 8194 5 float 5 float 0 2 0 0 0 0 0 0 0 0 0 0 0

3597 4 bool 0 8194 4 bool 4 bool 0 4 0 0 0 0 0 0 0 0 0 0 0

3598 12 LColor const 0 8832 12 LColor const 12 LColor const 0 0 3599 0 0 0 0 0 0 0 0 0 0

3599 6 LColor 0 2105344 6 LColor 6 LColor 0 0 3600 0 0 0 0 0 0 0 0 0 0

3600 7 LColorf 0 2105344 7 LColorf 7 LColorf 0 0 3601 0 0 0 0 0 0 0 0 0 0

3601 10 LVecBase4f 0 2048 10 LVecBase4f 10 LVecBase4f 0 0 0 0 0 0 0 0 0 0 0 0 77
/**
 * This is the base class for all three-component vectors and points.
 */

3602 15 TexMatrixAttrib 0 75777 15 TexMatrixAttrib 15 TexMatrixAttrib 0 0 0 0 0 1 4134 14 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 1 4299 0 1 0 3588 0 0 0 0 71
/**
 * Applies a transform matrix to UV's before they are rendered.
 */

3603 11 RenderState 0 75777 11 RenderState 11 RenderState 0 0 0 0 0 1 4135 51 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 0 0 1 0 3578 0 0 0 0 340
/**
 * This represents a unique collection of RenderAttrib objects that correspond
 * to a particular renderable state.
 *
 * You should not attempt to create or modify a RenderState object directly.
 * Instead, call one of the make() functions to create one for you.  And
 * instead of modifying a RenderState object, create a new one.
 */

3604 20 RenderAttrib const * 0 8576 20 RenderAttrib const * 20 RenderAttrib const * 0 0 3605 0 0 0 0 0 0 0 0 0 0

3605 18 RenderAttrib const 0 8832 18 RenderAttrib const 18 RenderAttrib const 0 0 3588 0 0 0 0 0 0 0 0 0 0

3606 15 AlphaTestAttrib 0 141313 15 AlphaTestAttrib 15 AlphaTestAttrib 0 0 0 0 2091 3 4136 4137 4138 6 2085 2086 2087 2088 2089 2090 0 0 1 0 3588 0 0 0 0 126
/**
 * Enables or disables writing of pixel to framebuffer based on its alpha
 * value relative to a reference alpha value
 */

3607 15 AntialiasAttrib 0 141313 15 AntialiasAttrib 15 AntialiasAttrib 0 0 0 0 2099 4 4139 4140 4141 4142 7 2092 2093 2094 2095 2096 2097 2098 0 0 1 0 3588 0 0 0 1 3608 100
/**
 * Specifies whether or how to enable antialiasing, if supported by the
 * backend renderer.
 */

3608 4 Mode 0 794624 21 AntialiasAttrib::Mode 21 AntialiasAttrib::Mode 3607 0 0 0 0 0 0 0 0 0 10 6 M_none 23 AntialiasAttrib::M_none 0
0 7 M_point 24 AntialiasAttrib::M_point 0
1 6 M_line 23 AntialiasAttrib::M_line 0
2 9 M_polygon 26 AntialiasAttrib::M_polygon 0
4 13 M_multisample 30 AntialiasAttrib::M_multisample 0
8 6 M_auto 23 AntialiasAttrib::M_auto 0
31 11 M_type_mask 28 AntialiasAttrib::M_type_mask 0
31 8 M_faster 25 AntialiasAttrib::M_faster 50
// Extra add-on bits for performancequality hints.
32 8 M_better 25 AntialiasAttrib::M_better 0
64 11 M_dont_care 28 AntialiasAttrib::M_dont_care 0
96 0 0

3609 18 unsigned short int 0 8262 18 unsigned short int 18 unsigned short int 0 1 0 0 0 0 0 0 0 0 0 0 0

3610 12 RenderEffect 0 75777 12 RenderEffect 12 RenderEffect 0 0 0 0 0 0 7 2100 2101 2102 2103 2104 2105 2106 0 0 1 0 3589 0 0 0 0 901
/**
 * This is the base class for a number of special render effects that may be
 * set on scene graph nodes to change the way they render.  This includes
 * BillboardEffect, DecalEffect, etc.
 *
 * RenderEffect represents render properties that must be applied as soon as
 * they are encountered in the scene graph, rather than propagating down to
 * the leaves.  This is different from RenderAttrib, which represents
 * properties like color and texture that don't do anything until they
 * propagate down to a GeomNode.
 *
 * You should not attempt to create or modify a RenderEffect directly;
 * instead, use the make() method of the appropriate kind of effect you want.
 * This will allocate and return a new RenderEffect of the appropriate type,
 * and it may share pointers if possible.  Do not modify the new RenderEffect
 * if you wish to change its properties; instead, create a new one.
 */

3611 13 RenderEffects 0 75777 13 RenderEffects 13 RenderEffects 0 0 0 0 0 0 17 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 0 0 1 0 3589 0 0 0 0 344
/**
 * This represents a unique collection of RenderEffect objects that correspond
 * to a particular renderable state.
 *
 * You should not attempt to create or modify a RenderEffects object directly.
 * Instead, call one of the make() functions to create one for you.  And
 * instead of modifying a RenderEffects object, create a new one.
 */

3612 9 PandaNode 0 26625 9 PandaNode 9 PandaNode 0 0 0 1 2130 2131 22 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 112 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2256 3 4300 4301 4302 0 3 3 3589 2124 2125 3 3613 2126 2127 3 3614 2128 2129 0 5 3623 3631 3632 3633 3634 175
/**
 * A basic node of the scene graph or data graph.  This is the base class of
 * all specialized nodes, and also serves as a generic node with no special
 * properties.
 */

3613 7 Namable 0 2048 7 Namable 7 Namable 0 0 0 0 0 0 0 0 0 0 0 0 125
/**
 * A base class for all things which can have a name.  The name is either
 * empty or nonempty, but it is never NULL.
 */

3614 14 LinkedListNode 0 2048 14 LinkedListNode 14 LinkedListNode 0 0 0 0 0 0 0 0 0 0 0 0 468
/**
 * This just stores the pointers to implement a doubly-linked list of some
 * kind of object.  There are occasions when a hand-rolled linked list is more
 * appropriate than an STL container.
 *
 * Typically, each node of the linked list, as well as the root of the list,
 * will inherit from this class.
 *
 * Note that this class is not inherently thread-safe; derived classes are
 * responsible for protecting any calls into it within mutexes, if necessary.
 */

3615 29 ConstPointerTo< RenderState > 0 2048 29 ConstPointerTo< RenderState > 29 ConstPointerTo< RenderState > 0 0 0 0 0 0 0 0 0 0 0 0 0

3616 31 ConstPointerTo< RenderEffects > 0 2048 31 ConstPointerTo< RenderEffects > 31 ConstPointerTo< RenderEffects > 0 0 0 0 0 0 0 0 0 0 0 0 0

3617 32 ConstPointerTo< TransformState > 0 2048 32 ConstPointerTo< TransformState > 32 ConstPointerTo< TransformState > 0 0 0 0 0 0 0 0 0 0 0 0 0

3618 6 string 0 2105344 11 std::string 11 std::string 0 0 3619 0 0 0 0 0 0 0 0 0 0

3619 20 basic_string< char > 0 2048 25 std::basic_string< char > 25 std::basic_string< char > 0 0 0 0 0 0 0 0 0 0 0 0 0

3620 10 PyObject * 0 8576 10 PyObject * 10 PyObject * 0 0 3621 0 0 0 0 0 0 0 0 0 0

3621 8 PyObject 0 2105344 8 PyObject 8 PyObject 0 0 3622 0 0 0 0 0 0 0 0 0 0

3622 7 _object 0 1024 7 _object 7 _object 0 0 0 0 0 0 0 0 0 0 0 0 0

3623 16 UnexpectedChange 0 794624 27 PandaNode::UnexpectedChange 27 PandaNode::UnexpectedChange 3612 0 0 0 0 0 0 0 0 0 5 10 UC_parents 21 PandaNode::UC_parents 0
1 11 UC_children 22 PandaNode::UC_children 0
2 12 UC_transform 23 PandaNode::UC_transform 0
4 8 UC_state 19 PandaNode::UC_state 0
8 12 UC_draw_mask 23 PandaNode::UC_draw_mask 0
16 0 0

3624 8 DrawMask 0 2105344 8 DrawMask 8 DrawMask 0 0 3625 0 0 0 0 0 0 0 0 0 0

3625 9 BitMask32 0 2105344 9 BitMask32 9 BitMask32 0 0 3626 0 0 0 0 0 0 0 0 0 0

3626 23 BitMask< uint32_t, 32 > 0 2048 23 BitMask< uint32_t, 32 > 23 BitMask< uint32_t, 32 > 0 0 0 0 0 0 0 0 0 0 0 0 0

3627 11 CollideMask 0 2105344 11 CollideMask 11 CollideMask 0 0 3625 0 0 0 0 0 0 0 0 0 0

3628 10 BoundsType 0 794624 26 BoundingVolume::BoundsType 26 BoundingVolume::BoundsType 3629 0 0 0 0 0 0 0 0 0 5 10 BT_default 26 BoundingVolume::BT_default 0
0 7 BT_best 23 BoundingVolume::BT_best 0
1 9 BT_sphere 25 BoundingVolume::BT_sphere 0
2 6 BT_box 22 BoundingVolume::BT_box 0
3 10 BT_fastest 26 BoundingVolume::BT_fastest 0
4 0 80
// This enum is used to control the automatic generation of bounding
// volumes.

3629 14 BoundingVolume 0 2048 14 BoundingVolume 14 BoundingVolume 0 0 0 0 0 0 0 0 0 0 0 0 330
/**
 * This is an abstract class for any volume in any sense which can be said to
 * define the locality of reference of a node in a graph, along with all of
 * its descendants.  It is not necessarily a geometric volume (although see
 * GeometricBoundingVolume); this is simply an abstract interface for bounds
 * of any sort.
 */

3630 32 ConstPointerTo< BoundingVolume > 0 2048 32 ConstPointerTo< BoundingVolume > 32 ConstPointerTo< BoundingVolume > 0 0 0 0 0 0 0 0 0 0 0 0 0

3631 9 FancyBits 0 794624 20 PandaNode::FancyBits 20 PandaNode::FancyBits 3612 0 0 0 0 0 0 0 0 0 6 12 FB_transform 23 PandaNode::FB_transform 0
1 8 FB_state 19 PandaNode::FB_state 0
2 10 FB_effects 21 PandaNode::FB_effects 0
4 6 FB_tag 17 PandaNode::FB_tag 0
16 12 FB_draw_mask 23 PandaNode::FB_draw_mask 0
32 16 FB_cull_callback 27 PandaNode::FB_cull_callback 0
64 0 0

3632 8 Children 0 403457 19 PandaNode::Children 19 PandaNode::Children 3612 0 0 0 2247 0 2 2245 2246 0 0 0 0 0 382
// This class is returned from get_children().  Use it to walk through the
// list of children.  This is faster, and safer, than walking through the
// children one at a time via get_num_children()/get_child(), since the list
// of children is saved out ahead of time, rather than having to reacquire
// the lock with each iteration, or to keep the lock held for the entire
// pass.

3633 7 Stashed 0 403457 18 PandaNode::Stashed 18 PandaNode::Stashed 3612 0 0 0 2250 0 2 2248 2249 0 0 0 0 0 34
// Similarly for stashed children.

3634 7 Parents 0 403457 18 PandaNode::Parents 18 PandaNode::Parents 3612 0 0 0 2253 0 2 2251 2252 0 0 0 0 0 45
// This class is returned from get_parents().

3635 18 TransparencyAttrib 0 141313 18 TransparencyAttrib 18 TransparencyAttrib 0 0 0 0 2262 2 4165 4166 5 2257 2258 2259 2260 2261 0 0 1 0 3588 0 0 0 1 3636 425
/**
 * This controls the enabling of transparency.  Simply setting an alpha
 * component to non-1 does not in itself make an object transparent; you must
 * also enable transparency mode with a suitable TransparencyAttrib.
 * Similarly, it is wasteful to render an object with a TransparencyAttrib in
 * effect unless you actually want it to be at least partially transparent
 * (and it has alpha components less than 1).
 */

3636 4 Mode 0 794624 24 TransparencyAttrib::Mode 24 TransparencyAttrib::Mode 3635 0 0 0 0 0 0 0 0 0 7 6 M_none 26 TransparencyAttrib::M_none 19
// No transparency.
0 7 M_alpha 27 TransparencyAttrib::M_alpha 54
// Normal transparency, panda will sort back-to-front.
1 21 M_premultiplied_alpha 41 TransparencyAttrib::M_premultiplied_alpha 43
// Assume textures use premultiplied alpha.
2 13 M_multisample 33 TransparencyAttrib::M_multisample 48
// Uses ms buffer, alpha values modified to 1.0.
3 18 M_multisample_mask 38 TransparencyAttrib::M_multisample_mask 45
// Uses ms buffer, alpha values not modified.
4 8 M_binary 28 TransparencyAttrib::M_binary 40
// Only writes pixels with alpha >= 0.5.
5 6 M_dual 26 TransparencyAttrib::M_dual 53
// opaque parts first, then sorted transparent parts.
6 0 0

3637 13 LogicOpAttrib 0 141313 13 LogicOpAttrib 13 LogicOpAttrib 0 0 0 0 2269 2 4167 4168 6 2263 2264 2265 2266 2267 2268 0 0 1 0 3588 0 0 0 1 3638 263
/**
 * If enabled, specifies that a custom logical operation be performed instead
 * of any color blending.  Setting it to a value other than M_none will cause
 * color blending to be disabled and the given logic operation to be performed.
 *
 * @since 1.10.0
 */

3638 9 Operation 0 794624 24 LogicOpAttrib::Operation 24 LogicOpAttrib::Operation 3637 0 0 0 0 0 0 0 0 0 17 6 O_none 21 LogicOpAttrib::O_none 45
// LogicOp disabled, regular blending occurs.
0 7 O_clear 22 LogicOpAttrib::O_clear 28
// Clears framebuffer value.
1 5 O_and 20 LogicOpAttrib::O_and 0
2 13 O_and_reverse 28 LogicOpAttrib::O_and_reverse 0
3 6 O_copy 21 LogicOpAttrib::O_copy 48
// Writes the incoming color to the framebuffer.
4 14 O_and_inverted 29 LogicOpAttrib::O_and_inverted 0
5 6 O_noop 21 LogicOpAttrib::O_noop 42
// Leaves the framebuffer value unaltered.
6 5 O_xor 20 LogicOpAttrib::O_xor 0
7 4 O_or 19 LogicOpAttrib::O_or 0
8 5 O_nor 20 LogicOpAttrib::O_nor 0
9 12 O_equivalent 27 LogicOpAttrib::O_equivalent 0
10 8 O_invert 23 LogicOpAttrib::O_invert 0
11 12 O_or_reverse 27 LogicOpAttrib::O_or_reverse 0
12 15 O_copy_inverted 30 LogicOpAttrib::O_copy_inverted 0
13 13 O_or_inverted 28 LogicOpAttrib::O_or_inverted 0
14 6 O_nand 21 LogicOpAttrib::O_nand 0
15 5 O_set 20 LogicOpAttrib::O_set 45
// Sets all the bits in the framebuffer to 1.
16 0 0

3639 11 ShaderInput 0 141313 11 ShaderInput 11 ShaderInput 0 0 0 1 2271 2285 0 13 2270 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 0 1 2272 0 0 2 3640 3641 127
/**
 * This is a small container class that can hold any one of the value types
 * that can be passed as input to a shader.
 */

3640 11 AccessFlags 0 794624 24 ShaderInput::AccessFlags 24 ShaderInput::AccessFlags 3639 0 0 0 0 0 0 0 0 0 3 6 A_read 19 ShaderInput::A_read 0
1 7 A_write 20 ShaderInput::A_write 0
2 9 A_layered 22 ShaderInput::A_layered 0
4 0 36
// Used when binding texture images.

3641 15 ShaderInputType 0 794624 28 ShaderInput::ShaderInputType 28 ShaderInput::ShaderInputType 3639 0 0 0 0 0 0 0 0 0 9 9 M_invalid 22 ShaderInput::M_invalid 0
0 9 M_texture 22 ShaderInput::M_texture 0
1 10 M_nodepath 23 ShaderInput::M_nodepath 0
2 8 M_vector 21 ShaderInput::M_vector 0
3 9 M_numeric 22 ShaderInput::M_numeric 0
4 17 M_texture_sampler 30 ShaderInput::M_texture_sampler 0
5 7 M_param 20 ShaderInput::M_param 0
6 15 M_texture_image 28 ShaderInput::M_texture_image 0
7 8 M_buffer 21 ShaderInput::M_buffer 0
8 0 0

3642 22 InternalNameCollection 0 26625 22 InternalNameCollection 22 InternalNameCollection 0 0 0 1 2286 2288 0 16 2287 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 1 4303 0 0 0 0 10
/**
 *
 */

3643 18 MaterialCollection 0 26625 18 MaterialCollection 18 MaterialCollection 0 0 0 1 2304 2306 0 17 2305 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 0 0 0 0 0 10
/**
 *
 */

3644 22 TextureStageCollection 0 26625 22 TextureStageCollection 22 TextureStageCollection 0 0 0 1 2323 2325 0 18 2324 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 1 4304 0 0 0 0 10
/**
 *
 */

3645 8 NodePath 0 141313 8 NodePath 8 NodePath 0 0 0 1 2343 2739 11 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 353 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2 4305 4306 1 2357 0 0 1 3646 762
/**
 * NodePath is the fundamental system for disambiguating instances, and also
 * provides a higher-level interface for manipulating the scene graph.
 *
 * A NodePath is a list of connected nodes from the root of the graph to any
 * sub-node.  Each NodePath therefore uniquely describes one instance of a
 * node.
 *
 * NodePaths themselves are lightweight objects that may easily be copied and
 * passed by value.  Their data is stored as a series of NodePathComponents
 * that are stored on the nodes.  Holding a NodePath will keep a reference
 * count to all the nodes in the path.  However, if any node in the path is
 * removed or reparented (perhaps through a different NodePath), the NodePath
 * will automatically be updated to reflect the changes.
 */

3646 9 ErrorType 0 794624 19 NodePath::ErrorType 19 NodePath::ErrorType 3645 0 0 0 0 0 0 0 0 0 4 5 ET_ok 15 NodePath::ET_ok 49
// i.e. not empty, or never assigned to anything.
0 12 ET_not_found 22 NodePath::ET_not_found 53
// returned from a failed find() or similar function.
1 10 ET_removed 20 NodePath::ET_removed 56
// remove_node() was previously called on this NodePath.
2 7 ET_fail 17 NodePath::ET_fail 45
// general failure return from some function.
3 0 109
// This enumeration is returned by get_error_type() for an empty NodePath to
// report the reason it's empty.

3647 11 PandaNode * 0 8576 11 PandaNode * 11 PandaNode * 0 0 3612 0 0 0 0 0 0 0 0 0 0

3648 18 NodePathCollection 0 141313 18 NodePathCollection 18 NodePathCollection 0 0 0 1 2375 2415 0 39 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 1 4307 0 0 0 0 178
/**
 * This is a set of zero or more NodePaths.  It's handy for returning from
 * functions that need to return multiple NodePaths (for instance,
 * NodePaths::get_children).
 */

3649 18 AttribNodeRegistry 0 141313 18 AttribNodeRegistry 18 AttribNodeRegistry 0 0 0 0 2752 0 12 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 1 4308 0 0 0 0 549
/**
 * This global object records NodePaths that are referenced by scene graph
 * attribs, such as ClipPlaneAttribs and LightAttribs.
 *
 * Its primary purpose is to unify attribs that are loaded in from bam files.
 * Attrib nodes are identified by name and type; when a bam file that contains
 * references to some attrib nodes is loaded, those nodes are first looked up
 * here in the AttribNodeRegistry.  If there is a match (by name and node
 * type), the identified node is used instead of the node referenced within
 * the bam file itself.
 */

3650 17 AudioVolumeAttrib 0 141313 17 AudioVolumeAttrib 17 AudioVolumeAttrib 0 0 0 0 2763 2 4180 4181 10 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 0 0 1 0 3588 0 0 0 0 84
/**
 * Applies a scale to audio volume for positional sounds in the scene graph.
 */

3651 17 AuxBitplaneAttrib 0 141313 17 AuxBitplaneAttrib 17 AuxBitplaneAttrib 0 0 0 0 2769 2 4182 4183 5 2764 2765 2766 2767 2768 0 0 1 0 3588 0 0 0 1 3652 1237
/**
 * Modern frame buffers can have 'aux' bitplanes, which are additional
 * bitplanes above and beyond the standard depth and color.  This attrib
 * controls what gets rendered into those additional bitplanes.  It can also
 * affect what goes into the alpha channel of the primary color buffer.
 *
 * ABO_glow: copy the glow map into the alpha channel of the primary frame
 * buffer.  If there is no glow map, set it to zero.  Caveat: it is not
 * possible to write glow or depth values to the framebuffer alpha channel at
 * the same time as using alpha blending or alpha testing.  Any attempt to use
 * transparency, blending, or alpha testing will cause this flag to be
 * overridden.
 *
 * ABO_aux_normal: put the camera-space normal into the into the R,G
 * components of the first auxiliary bitplane.
 *
 * ABO_aux_modelz: put the clip-space Z coordinate of the center of the model
 * (after perspective divide) into the B channel of the first auxiliary
 * bitplane.
 *
 * ABO_aux_glow: put a copy of the glow map into the alpha channel of the
 * first auxiliary bitplane.  If there is no glow map, set it to zero.
 *
 * AuxBitplaneAttrib is relevant only when shader generation is enabled.
 * Otherwise, it has no effect.
 *
 */

3652 17 AuxBitplaneOutput 0 794624 36 AuxBitplaneAttrib::AuxBitplaneOutput 36 AuxBitplaneAttrib::AuxBitplaneOutput 3651 0 0 0 0 0 0 0 0 0 3 8 ABO_glow 27 AuxBitplaneAttrib::ABO_glow 0
1 14 ABO_aux_normal 33 AuxBitplaneAttrib::ABO_aux_normal 0
2 12 ABO_aux_glow 31 AuxBitplaneAttrib::ABO_aux_glow 0
4 0 0

3653 12 AuxSceneData 0 141313 12 AuxSceneData 12 AuxSceneData 0 0 0 1 2778 2779 0 8 2770 2771 2772 2773 2774 2775 2776 2777 0 0 1 0 3654 0 0 0 0 378
/**
 * This is a base class for a generic data structure that can be attached per-
 * instance to the camera, to store per-instance data that must be preserved
 * over multiple frames.
 *
 * In particular, this is used to implement the FadeLODNode, which must
 * remember during traversal at what point it is in the fade, separately for
 * each instance and for each camera.
 */

3654 19 TypedReferenceCount 0 2048 19 TypedReferenceCount 19 TypedReferenceCount 0 0 0 0 0 0 0 0 0 0 0 0 410
/**
 * A base class for things which need to inherit from both TypedObject and
 * from ReferenceCount.  It's convenient to define this intermediate base
 * class instead of multiply inheriting from the two classes each time they
 * are needed, so that we can sensibly pass around pointers to things which
 * are both TypedObjects and ReferenceCounters.
 *
 * See also TypedObject for detailed instructions.
 */

3655 7 BamFile 0 26625 7 BamFile 7 BamFile 0 0 0 1 2780 2781 5 4184 4185 4186 4187 4188 18 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 0 0 1 0 3656 0 0 0 0 574
/**
 * The principle public interface to reading and writing Bam disk files.  See
 * also BamReader and BamWriter, the more general implementation of this
 * class.
 *
 * Bam files are most often used to store scene graphs or subgraphs, and by
 * convention they are given filenames ending in the extension ".bam" when
 * they are used for this purpose.  However, a Bam file may store any
 * arbitrary list of TypedWritable objects; in this more general usage, they
 * are given filenames ending in ".boo" to differentiate them from the more
 * common scene graph files.
 */

3656 8 BamEnums 0 2048 8 BamEnums 8 BamEnums 0 0 0 0 0 0 0 0 0 0 0 0 104
/**
 * This class exists just to provide scoping for the enums shared by BamReader
 * and BamWriter.
 */

3657 9 BamEndian 0 794624 19 BamEnums::BamEndian 19 BamEnums::BamEndian 3656 0 0 0 0 0 0 0 0 0 3 12 BE_bigendian 22 BamEnums::BE_bigendian 0
0 15 BE_littleendian 25 BamEnums::BE_littleendian 0
1 9 BE_native 19 BamEnums::BE_native 0
1 0 365
/**
   * This defines an enumerated type used to represent the endianness of
   * certain numeric values stored in a Bam file.  It really has only two
   * possible values, either BE_bigendian or BE_littleendian; but through a
   * preprocessor trick we also add BE_native, which is the same numerically
   * as whichever value the hardware supports natively.
   */

3658 11 BamReader * 0 8576 11 BamReader * 11 BamReader * 0 0 3659 0 0 0 0 0 0 0 0 0 0

3659 9 BamReader 0 2048 9 BamReader 9 BamReader 0 0 0 0 0 0 0 0 0 0 0 0 1311
/**
 * This is the fundamental interface for extracting binary objects from a Bam
 * file, as generated by a BamWriter.
 *
 * A Bam file can be thought of as a linear collection of objects.  Each
 * object is an instance of a class that inherits, directly or indirectly,
 * from TypedWritable.  The objects may include pointers to other objects
 * within the Bam file; the BamReader automatically manages these (with help
 * from code within each class) and restores the pointers correctly.
 *
 * This is the abstract interface and does not specifically deal with disk
 * files, but rather with a DatagramGenerator of some kind, which is simply a
 * linear source of Datagrams.  It is probably from a disk file, but it might
 * conceivably be streamed directly from a network or some such nonsense.
 *
 * Bam files are most often used to store scene graphs or subgraphs, and by
 * convention they are given filenames ending in the extension ".bam" when
 * they are used for this purpose.  However, a Bam file may store any
 * arbitrary list of TypedWritable objects; in this more general usage, they
 * are given filenames ending in ".boo" to differentiate them from the more
 * common scene graph files.
 *
 * See also BamFile, which defines a higher-level interface to read and write
 * Bam files on disk.
 */

3660 11 BamWriter * 0 8576 11 BamWriter * 11 BamWriter * 0 0 3661 0 0 0 0 0 0 0 0 0 0

3661 9 BamWriter 0 2048 9 BamWriter 9 BamWriter 0 0 0 0 0 0 0 0 0 0 0 0 1376
/**
 * This is the fundamental interface for writing binary objects to a Bam file,
 * to be extracted later by a BamReader.
 *
 * A Bam file can be thought of as a linear collection of objects.  Each
 * object is an instance of a class that inherits, directly or indirectly,
 * from TypedWritable.  The objects may include pointers to other objects; the
 * BamWriter automatically manages these (with help from code within each
 * class) and writes all referenced objects to the file in such a way that the
 * pointers may be correctly restored later.
 *
 * This is the abstract interface and does not specifically deal with disk
 * files, but rather with a DatagramSink of some kind, which simply accepts a
 * linear stream of Datagrams.  It is probably written to a disk file, but it
 * might conceivably be streamed directly to a network or some such nonsense.
 *
 * Bam files are most often used to store scene graphs or subgraphs, and by
 * convention they are given filenames ending in the extension ".bam" when
 * they are used for this purpose.  However, a Bam file may store any
 * arbitrary list of TypedWritable objects; in this more general usage, they
 * are given filenames ending in ".boo" to differentiate them from the more
 * common scene graph files.
 *
 * See also BamFile, which defines a higher-level interface to read and write
 * Bam files on disk.
 */

3662 15 BillboardEffect 0 141313 15 BillboardEffect 15 BillboardEffect 0 0 0 0 2814 0 13 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 0 0 1 0 3610 0 0 0 0 127
/**
 * Indicates that geometry at this node should automatically rotate to face
 * the camera, or any other arbitrary node.
 */

3663 8 LensNode 0 141313 8 LensNode 8 LensNode 0 0 0 1 2815 2827 0 11 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 0 0 1 0 3612 0 0 0 0 181
/**
 * A node that contains a Lens.  The most important example of this kind of
 * node is a Camera, but other kinds of nodes also contain a lens (for
 * instance, a Spotlight).
 */

3664 12 WeakNodePath 0 26625 12 WeakNodePath 12 WeakNodePath 0 0 0 1 2828 2829 0 12 2830 2831 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 0 1 2832 0 0 0 397
/**
 * This class is a wrapper around a NodePath that, unlike the actual NodePath
 * class, doesn't hold a reference count to the node.  Thus the node may be
 * detached from the scene graph and destructed at any time.
 *
 * You can call is_valid() or was_deleted() at any time to determine whether
 * the node is still around; if it is, get_node_path() will return the
 * associated NodePath.
 */

3665 6 Camera 0 75777 6 Camera 6 Camera 0 0 0 1 2843 2827 12 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 31 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 1 4309 0 1 0 3663 0 0 0 0 121
/**
 * A node that can be positioned around in the scene graph to represent a
 * point of view for rendering a scene.
 */

3666 14 NodePath const 0 8832 14 NodePath const 14 NodePath const 0 0 3645 0 0 0 0 0 0 0 0 0 0

3667 15 DisplayRegion * 0 8576 15 DisplayRegion * 15 DisplayRegion * 0 0 3668 0 0 0 0 0 0 0 0 0 0

3668 13 DisplayRegion 0 2048 13 DisplayRegion 13 DisplayRegion 0 0 0 0 0 0 0 0 0 0 0 0 0

3669 16 BoundingVolume * 0 8576 16 BoundingVolume * 16 BoundingVolume * 0 0 3629 0 0 0 0 0 0 0 0 0 0

3670 12 string const 0 8832 17 std::string const 17 std::string const 0 0 3618 0 0 0 0 0 0 0 0 0 0

3671 14 AuxSceneData * 0 8576 14 AuxSceneData * 14 AuxSceneData * 0 0 3653 0 0 0 0 0 0 0 0 0 0

3672 9 PlaneNode 0 141313 9 PlaneNode 9 PlaneNode 0 0 0 1 2875 2885 4 4201 4202 4203 4204 9 2876 2877 2878 2879 2880 2881 2882 2883 2884 0 0 1 0 3612 0 0 0 1 3673 213
/**
 * A node that contains a plane.  This is most often used as a clipping plane,
 * but it can serve other purposes as well; whenever a plane is needed to be
 * defined in some coordinate space in the world.
 */

3673 10 ClipEffect 0 794624 21 PlaneNode::ClipEffect 21 PlaneNode::ClipEffect 3672 0 0 0 0 0 0 0 0 0 2 10 CE_visible 21 PlaneNode::CE_visible 0
1 12 CE_collision 23 PlaneNode::CE_collision 0
2 0 0

3674 12 LPlane const 0 8832 12 LPlane const 12 LPlane const 0 0 3675 0 0 0 0 0 0 0 0 0 0

3675 6 LPlane 0 2105344 6 LPlane 6 LPlane 0 0 3676 0 0 0 0 0 0 0 0 0 0

3676 7 LPlanef 0 2048 7 LPlanef 7 LPlanef 0 0 0 0 0 0 0 0 0 0 0 0 120
/**
 * An abstract mathematical description of a plane.  A plane is defined by the
 * equation Ax + By + Cz + D = 0.
 */

3677 15 ClipPlaneAttrib 0 141313 15 ClipPlaneAttrib 15 ClipPlaneAttrib 0 0 0 0 2910 1 4205 24 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2 4310 4311 0 1 0 3588 0 0 0 1 3678 260
/**
 * This functions similarly to a LightAttrib.  It indicates the set of
 * clipping planes that modify the geometry at this level and below.  A
 * ClipPlaneAttrib can either add planes or remove planes from the total set
 * of clipping planes in effect.
 */

3678 9 Operation 0 794624 26 ClipPlaneAttrib::Operation 26 ClipPlaneAttrib::Operation 3677 0 0 0 0 0 0 0 0 0 3 5 O_set 22 ClipPlaneAttrib::O_set 0
0 5 O_add 22 ClipPlaneAttrib::O_add 0
1 8 O_remove 25 ClipPlaneAttrib::O_remove 0
2 0 146
// This is the old, deprecated interface to ClipPlaneAttrib.  Do not use any
// of these methods for new code; these methods will be removed soon.

3679 11 ColorAttrib 0 141313 11 ColorAttrib 11 ColorAttrib 0 0 0 0 2919 3 4206 4207 4208 8 2911 2912 2913 2914 2915 2916 2917 2918 0 0 1 0 3588 0 0 0 1 3680 73
/**
 * Indicates what color should be applied to renderable geometry.
 */

3680 4 Type 0 794624 17 ColorAttrib::Type 17 ColorAttrib::Type 3679 0 0 0 0 0 0 0 0 0 3 8 T_vertex 21 ColorAttrib::T_vertex 0
0 6 T_flat 19 ColorAttrib::T_flat 0
1 5 T_off 18 ColorAttrib::T_off 0
2 0 0

3681 16 ColorBlendAttrib 0 141313 16 ColorBlendAttrib 16 ColorBlendAttrib 0 0 0 0 2934 8 4209 4210 4211 4212 4213 4214 4215 4216 14 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 0 0 1 0 3588 0 0 0 2 3682 3683 159
/**
 * This specifies how colors are blended into the frame buffer, for special
 * effects.  This overrides transparency if transparency is also specified.
 */

3682 4 Mode 0 794624 22 ColorBlendAttrib::Mode 22 ColorBlendAttrib::Mode 3681 0 0 0 0 0 0 0 0 0 6 6 M_none 24 ColorBlendAttrib::M_none 23
// Blending is disabled
0 5 M_add 23 ColorBlendAttrib::M_add 41
// incoming color * A + fbuffer color * B
1 10 M_subtract 28 ColorBlendAttrib::M_subtract 41
// incoming color * A - fbuffer color * B
2 14 M_inv_subtract 32 ColorBlendAttrib::M_inv_subtract 41
// fbuffer color * B - incoming color * A
3 5 M_min 23 ColorBlendAttrib::M_min 37
// min(incoming color, fbuffer color)
4 5 M_max 23 ColorBlendAttrib::M_max 37
// max(incoming color, fbuffer color)
5 0 0

3683 7 Operand 0 794624 25 ColorBlendAttrib::Operand 25 ColorBlendAttrib::Operand 3681 0 0 0 0 0 0 0 0 0 23 6 O_zero 24 ColorBlendAttrib::O_zero 0
0 5 O_one 23 ColorBlendAttrib::O_one 0
1 16 O_incoming_color 34 ColorBlendAttrib::O_incoming_color 0
2 26 O_one_minus_incoming_color 44 ColorBlendAttrib::O_one_minus_incoming_color 0
3 15 O_fbuffer_color 33 ColorBlendAttrib::O_fbuffer_color 0
4 25 O_one_minus_fbuffer_color 43 ColorBlendAttrib::O_one_minus_fbuffer_color 0
5 16 O_incoming_alpha 34 ColorBlendAttrib::O_incoming_alpha 0
6 26 O_one_minus_incoming_alpha 44 ColorBlendAttrib::O_one_minus_incoming_alpha 0
7 15 O_fbuffer_alpha 33 ColorBlendAttrib::O_fbuffer_alpha 0
8 25 O_one_minus_fbuffer_alpha 43 ColorBlendAttrib::O_one_minus_fbuffer_alpha 0
9 16 O_constant_color 34 ColorBlendAttrib::O_constant_color 0
10 26 O_one_minus_constant_color 44 ColorBlendAttrib::O_one_minus_constant_color 0
11 16 O_constant_alpha 34 ColorBlendAttrib::O_constant_alpha 0
12 26 O_one_minus_constant_alpha 44 ColorBlendAttrib::O_one_minus_constant_alpha 0
13 25 O_incoming_color_saturate 43 ColorBlendAttrib::O_incoming_color_saturate 27
// valid only for operand a
14 17 O_incoming1_color 35 ColorBlendAttrib::O_incoming1_color 135
// The following are used for dual-source blending, where the fragment
// shader outputs a second color that will be used for blending.
15 27 O_one_minus_incoming1_color 45 ColorBlendAttrib::O_one_minus_incoming1_color 0
16 17 O_incoming1_alpha 35 ColorBlendAttrib::O_incoming1_alpha 0
17 27 O_one_minus_incoming1_alpha 45 ColorBlendAttrib::O_one_minus_incoming1_alpha 0
18 13 O_color_scale 31 ColorBlendAttrib::O_color_scale 52
// These modes are being considered for deprecation.
19 23 O_one_minus_color_scale 41 ColorBlendAttrib::O_one_minus_color_scale 0
20 13 O_alpha_scale 31 ColorBlendAttrib::O_alpha_scale 0
21 23 O_one_minus_alpha_scale 41 ColorBlendAttrib::O_one_minus_alpha_scale 0
22 0 0

3684 16 ColorScaleAttrib 0 141313 16 ColorScaleAttrib 16 ColorScaleAttrib 0 0 0 0 2948 2 4217 4218 13 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 0 0 1 0 3588 0 0 0 0 72
/**
 * Applies a scale to colors in the scene graph and on vertices.
 */

3685 15 LVecBase4 const 0 8832 15 LVecBase4 const 15 LVecBase4 const 0 0 3686 0 0 0 0 0 0 0 0 0 0

3686 9 LVecBase4 0 2105344 9 LVecBase4 9 LVecBase4 0 0 3601 0 0 0 0 0 0 0 0 0 0

3687 16 ColorWriteAttrib 0 141313 16 ColorWriteAttrib 16 ColorWriteAttrib 0 0 0 0 2954 2 4219 4220 5 2949 2950 2951 2952 2953 0 0 1 0 3588 0 0 0 1 3688 209
/**
 * Enables or disables writing to the color buffer.  This is primarily useful
 * for certain special effects in which it is important to write to the depth
 * buffer without affecting the color buffer.
 */

3688 8 Channels 0 794624 26 ColorWriteAttrib::Channels 26 ColorWriteAttrib::Channels 3687 0 0 0 0 0 0 0 0 0 7 5 C_off 23 ColorWriteAttrib::C_off 110
// By coincidence, these bits are the same as those for
// D3DCOLORWRITEENABLE_RED, _GREEN, _BLUE, and _ALPHA.
0 5 C_red 23 ColorWriteAttrib::C_red 0
1 7 C_green 25 ColorWriteAttrib::C_green 0
2 6 C_blue 24 ColorWriteAttrib::C_blue 0
4 5 C_rgb 23 ColorWriteAttrib::C_rgb 30
// == C_red | C_green | C_blue
7 7 C_alpha 25 ColorWriteAttrib::C_alpha 0
8 5 C_all 23 ColorWriteAttrib::C_all 0
15 0 0

3689 12 unsigned int 0 8198 12 unsigned int 12 unsigned int 0 1 0 0 0 0 0 0 0 0 0 0 0

3690 13 CompassEffect 0 141313 13 CompassEffect 13 CompassEffect 0 0 0 0 2959 0 4 2955 2956 2957 2958 0 0 1 0 3610 0 0 0 1 3691 1226
/**
 * A CompassEffect causes a node to inherit its rotation (or pos or scale, if
 * specified) from some other reference node in the graph, or more often from
 * the root.
 *
 * In its purest form, a CompassEffect is used to keep the node's rotation
 * fixed relative to the top of the scene graph, despite other transforms that
 * may exist above the node.  Hence the name: the node behaves like a magnetic
 * compass, always pointing in the same direction.
 *
 * As an couple of generalizing extensions, the CompassEffect may also be set
 * up to always orient its node according to some other reference node than
 * the root of the scene graph.  Furthermore, it may optionally adjust any of
 * pos, rotation, or scale, instead of necessarily rotation; and it may adjust
 * individual pos and scale components.  (Rotation may not be adjusted on an
 * individual component basis; that's just asking for trouble.)
 *
 * Be careful when using the pos and scale modes.  In these modes, it's
 * possible for the CompassEffect to move its node far from its normal
 * bounding volume, causing culling to fail.  If this is an issue, you may
 * need to explicitly set a large (or infinite) bounding volume on the effect
 * node.
 */

3691 10 Properties 0 794624 25 CompassEffect::Properties 25 CompassEffect::Properties 3690 0 0 0 0 0 0 0 0 0 10 3 P_x 18 CompassEffect::P_x 0
1 3 P_y 18 CompassEffect::P_y 0
2 3 P_z 18 CompassEffect::P_z 0
4 5 P_pos 20 CompassEffect::P_pos 0
7 5 P_rot 20 CompassEffect::P_rot 0
8 4 P_sx 19 CompassEffect::P_sx 0
16 4 P_sy 19 CompassEffect::P_sy 0
32 4 P_sz 19 CompassEffect::P_sz 0
64 7 P_scale 22 CompassEffect::P_scale 0
112 5 P_all 20 CompassEffect::P_all 0
127 0 0

3692 12 CullBinEnums 0 141313 12 CullBinEnums 12 CullBinEnums 0 0 0 1 2960 2961 0 0 0 0 0 0 1 3693 92
/**
 * Provides scoping for the enumerated type shared by CullBin and
 * CullBinManager.
 */

3693 7 BinType 0 794624 21 CullBinEnums::BinType 21 CullBinEnums::BinType 3692 0 0 0 0 0 0 0 0 0 6 10 BT_invalid 24 CullBinEnums::BT_invalid 0
0 11 BT_unsorted 25 CullBinEnums::BT_unsorted 0
1 15 BT_state_sorted 29 CullBinEnums::BT_state_sorted 0
2 16 BT_back_to_front 30 CullBinEnums::BT_back_to_front 0
3 16 BT_front_to_back 30 CullBinEnums::BT_front_to_back 0
4 8 BT_fixed 22 CullBinEnums::BT_fixed 0
5 0 0

3694 8 GeomNode 0 75777 8 GeomNode 8 GeomNode 0 0 0 1 2962 2131 1 4221 19 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 3 4312 4313 4314 0 1 0 3612 0 0 0 0 208
/**
 * A node that holds Geom objects, renderable pieces of geometry.  This is the
 * primary kind of leaf node in the scene graph; almost all visible objects
 * will be contained in a GeomNode somewhere.
 */

3695 13 CullBinAttrib 0 141313 13 CullBinAttrib 13 CullBinAttrib 0 0 0 0 2988 3 4222 4223 4224 6 2982 2983 2984 2985 2986 2987 0 0 1 0 3588 0 0 0 0 130
/**
 * Assigns geometry to a particular bin by name.  The bins must be created
 * separately via the CullBinManager interface.
 */

3696 14 CullBinManager 0 43009 14 CullBinManager 14 CullBinManager 0 0 0 0 0 0 18 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 1 4315 0 1 0 3692 0 0 0 0 99
/**
 * This is a global object that maintains the collection of named CullBins in
 * the world.
 */

3697 14 CullFaceAttrib 0 141313 14 CullFaceAttrib 14 CullFaceAttrib 0 0 0 0 3015 4 4225 4226 4227 4228 8 3007 3008 3009 3010 3011 3012 3013 3014 0 0 1 0 3588 0 0 0 1 3698 81
/**
 * Indicates which faces should be culled based on their vertex ordering.
 */

3698 4 Mode 0 794624 20 CullFaceAttrib::Mode 20 CullFaceAttrib::Mode 3697 0 0 0 0 0 0 0 0 0 4 11 M_cull_none 27 CullFaceAttrib::M_cull_none 19
// Cull no polygons
0 16 M_cull_clockwise 32 CullFaceAttrib::M_cull_clockwise 35
// Cull clockwise-oriented polygons
1 24 M_cull_counter_clockwise 40 CullFaceAttrib::M_cull_counter_clockwise 43
// Cull counter-clockwise-oriented polygons
2 16 M_cull_unchanged 32 CullFaceAttrib::M_cull_unchanged 39
// Do not change existing cull behavior
3 0 0

3699 15 WorkingNodePath 0 26625 15 WorkingNodePath 15 WorkingNodePath 0 0 0 0 3016 2 4229 4230 0 0 0 0 0 0 750
/**
 * This is a class designed to support low-overhead traversals of the complete
 * scene graph, with a memory of the complete path through the graph at any
 * given point.
 *
 * You could just use a regular NodePath to do this, but since the NodePath
 * requires storing NodePathComponents on each node as it is constructed, and
 * then removing them when it destructs, there is considerable overhead in
 * that approach.
 *
 * The WorkingNodePath eliminates this overhead (but does not guarantee
 * consistency if the scene graph changes while the path is held).
 *
 * At any given point, you may ask the WorkingNodePath for its actual
 * NodePath, and it will construct and return a new NodePath representing the
 * complete generated chain.
 */

3700 17 CullTraverserData 0 141313 17 CullTraverserData 17 CullTraverserData 0 0 0 1 3028 3029 1 4231 8 3019 3020 3021 3022 3023 3024 3025 3026 0 0 0 0 0 464
/**
 * This collects together the pieces of data that are accumulated for each
 * node while walking the scene graph during the cull traversal.
 *
 * Having this as a separate object simplifies the parameter list to
 * CullTraverser::r_traverse(), as well as to other functions like
 * PandaNode::cull_callback().  It also makes it easier to add cull
 * parameters, and provides a place to abstract out some of the cull behavior
 * (like view-frustum culling).
 */

3701 10 SceneSetup 0 141313 10 SceneSetup 10 SceneSetup 0 0 0 1 3058 3059 0 28 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 0 0 1 0 3654 0 0 0 0 128
/**
 * This object holds the camera position, etc., and other general setup
 * information for rendering a particular scene.
 */

3702 3 Fog 0 75777 3 Fog 3 Fog 0 0 0 1 3060 2131 5 4232 4233 4234 4235 4236 13 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 0 0 1 0 3612 0 0 0 1 3703 782
/**
 * Specifies how atmospheric fog effects are applied to geometry.  The Fog
 * object is now a PandaNode, which means it can be used similarly to a Light
 * to define effects relative to a particular coordinate system within the
 * scene graph.
 *
 * In exponential mode, the fog effects are always camera-relative, and it
 * does not matter where the Fog node is parented.  However, in linear mode,
 * the onset and opaque distances are defined as offsets along the local
 * forward axis (e.g.  the Y axis).  This allows the fog effect to be
 * localized to a particular region in space, rather than always camera-
 * relative.  If the fog object is not parented to any node, it is used to
 * generate traditonal camera-relative fog, as if it were parented to the
 * camera.
 */

3703 4 Mode 0 794624 9 Fog::Mode 9 Fog::Mode 3702 0 0 0 0 0 0 0 0 0 3 8 M_linear 13 Fog::M_linear 32
// f = (end - z) / (end - start)
0 13 M_exponential 18 Fog::M_exponential 23
// f = e^(-density * z)
1 21 M_exponential_squared 26 Fog::M_exponential_squared 27
// f = e^((-density * z)^2)
2 0 0

3704 13 LPoint3 const 0 8832 13 LPoint3 const 13 LPoint3 const 0 0 3579 0 0 0 0 0 0 0 0 0 0

3705 9 FogAttrib 0 141313 9 FogAttrib 9 FogAttrib 0 0 0 0 3081 2 4237 4238 7 3074 3075 3076 3077 3078 3079 3080 0 0 1 0 3588 0 0 0 0 64
/**
 * Applies a Fog to the geometry at and below this node.
 */

3706 5 Fog * 0 8576 5 Fog * 5 Fog * 0 0 3702 0 0 0 0 0 0 0 0 0 0

3707 13 CullTraverser 0 141313 13 CullTraverser 13 CullTraverser 0 0 0 1 3082 3108 0 25 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 0 0 1 0 3654 0 0 0 0 279
/**
 * This object performs a depth-first traversal of the scene graph, with
 * optional view-frustum culling, collecting CullState and searching for
 * GeomNodes.  Each renderable Geom encountered is passed along with its
 * associated RenderState to the CullHandler object.
 */

3708 20 GeomDrawCallbackData 0 141313 20 GeomDrawCallbackData 20 GeomDrawCallbackData 0 0 0 0 3115 0 6 3109 3110 3111 3112 3113 3114 0 0 1 0 3709 0 0 0 0 150
/**
 * This specialization on CallbackData is passed when the callback is
 * initiated from deep within the draw traversal, for a particular Geom.
 */

3709 12 CallbackData 0 2048 12 CallbackData 12 CallbackData 0 0 0 0 0 0 0 0 0 0 0 0 348
/**
 * This is a generic data block that is passed along to a CallbackObject when
 * a callback is made.  It contains data specific to the particular callback
 * type in question.
 *
 * This is actually an abstract base class and contains no data.
 * Specializations of this class will contain the actual data relevant to each
 * callback type.
 */

3710 19 RescaleNormalAttrib 0 141313 19 RescaleNormalAttrib 19 RescaleNormalAttrib 0 0 0 0 3121 2 4239 4240 5 3116 3117 3118 3119 3120 0 0 1 0 3588 0 0 0 1 3711 50
/**
 * Specifies how polygons are to be drawn.
 */

3711 4 Mode 0 794624 25 RescaleNormalAttrib::Mode 25 RescaleNormalAttrib::Mode 3710 0 0 0 0 0 0 0 0 0 4 6 M_none 27 RescaleNormalAttrib::M_none 38
// No adjustments are made to normals.
0 9 M_rescale 30 RescaleNormalAttrib::M_rescale 99
// Normals are counterscaled by the transform's uniform scale, if
// supported by the graphics API.
1 11 M_normalize 32 RescaleNormalAttrib::M_normalize 60
// Normals are scaled to unit length; potentially expensive.
2 6 M_auto 27 RescaleNormalAttrib::M_auto 141
// Normals are counterscaled in the presence of a uniform scale transform,
// or normalized in the presence of a non-uniform scale transform.
3 0 0

3712 10 CullResult 0 75777 10 CullResult 10 CullResult 0 0 0 1 3129 0 0 7 3122 3123 3124 3125 3126 3127 3128 0 0 1 0 3713 0 0 0 0 349
/**
 * This stores the result of a BinCullHandler traversal: an ordered collection
 * of CullBins, each of which holds a number of Geoms and RenderStates to be
 * rendered in some defined order.
 *
 * This is also used to keep the results of last frame's cull traversal around
 * to make next frame's traversal of the same scene a little easier.
 */

3713 14 ReferenceCount 0 2048 14 ReferenceCount 14 ReferenceCount 0 0 0 0 0 0 0 0 0 0 0 0 203
/**
 * A base class for all things that want to be reference-counted.
 * ReferenceCount works in conjunction with PointerTo to automatically delete
 * objects when the last pointer to them goes away.
 */

3714 11 DecalEffect 0 141313 11 DecalEffect 11 DecalEffect 0 0 0 0 3132 0 2 3130 3131 0 0 1 0 3610 0 0 0 0 151
/**
 * Applied to a GeomNode to indicate that the children of this GeomNode are
 * coplanar and should be drawn as decals (eliminating Z-fighting).
 */

3715 17 DepthOffsetAttrib 0 141313 17 DepthOffsetAttrib 17 DepthOffsetAttrib 0 0 0 0 3140 4 4241 4242 4243 4244 7 3133 3134 3135 3136 3137 3138 3139 0 0 1 0 3588 0 0 0 0 1333
/**
 * This is a special kind of attribute that instructs the graphics driver to
 * apply an offset or bias to the generated depth values for rendered
 * polygons, before they are written to the depth buffer.
 *
 * This can be used to shift polygons forward slightly, to resolve depth
 * conflicts.  The cull traverser may optionally use this, for instance, to
 * implement decals.  However, driver support for this feature seems to be
 * spotty, so use with caution.
 *
 * The bias is always an integer number, and each integer increment represents
 * the smallest possible increment in Z that is sufficient to completely
 * resolve two coplanar polygons.  Positive numbers are closer towards the
 * camera.
 *
 * Nested DepthOffsetAttrib values accumulate; that is, a DepthOffsetAttrib
 * with a value of 1 beneath another DepthOffsetAttrib with a value of 2
 * presents a net offset of 3.  (A DepthOffsetAttrib will not, however,
 * combine with any other DepthOffsetAttribs with a lower override parameter.)
 * The net value should probably not exceed 16 or drop below 0 for maximum
 * portability.
 *
 * Also, and only tangentially related, the DepthOffsetAttrib can be used to
 * constrain the Z output value to a subset of the usual [0, 1] range (or
 * reversing its direction) by specifying a new min_value and max_value.
 */

3716 15 DepthTestAttrib 0 141313 15 DepthTestAttrib 15 DepthTestAttrib 0 0 0 0 3146 2 4245 4246 5 3141 3142 3143 3144 3145 0 0 1 0 3588 0 0 0 0 59
/**
 * Enables or disables writing to the depth buffer.
 */

3717 16 DepthWriteAttrib 0 141313 16 DepthWriteAttrib 16 DepthWriteAttrib 0 0 0 0 3152 2 4247 4248 5 3147 3148 3149 3150 3151 0 0 1 0 3588 0 0 0 1 3718 59
/**
 * Enables or disables writing to the depth buffer.
 */

3718 4 Mode 0 794624 22 DepthWriteAttrib::Mode 22 DepthWriteAttrib::Mode 3717 0 0 0 0 0 0 0 0 0 2 5 M_off 23 DepthWriteAttrib::M_off 0
0 4 M_on 22 DepthWriteAttrib::M_on 0
1 0 0

3719 5 Light 0 26625 5 Light 5 Light 0 0 0 0 3153 3 4249 4250 4251 14 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 0 0 0 0 0 231
/**
 * The abstract interface to all kinds of lights.  The actual light objects
 * also inherit from PandaNode, and can therefore be added to the scene graph
 * at some arbitrary point to define the coordinate system of effect.
 */

3720 11 LightAttrib 0 75777 11 LightAttrib 11 LightAttrib 0 0 0 0 0 3 4252 4253 4254 29 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 2 4316 4317 0 1 0 3588 0 0 0 1 3721 209
/**
 * Indicates which set of lights should be considered "on" to illuminate
 * geometry at this level and below.  A LightAttrib can either add lights or
 * remove lights from the total set of "on" lights.
 */

3721 9 Operation 0 794624 22 LightAttrib::Operation 22 LightAttrib::Operation 3720 0 0 0 0 0 0 0 0 0 3 5 O_set 18 LightAttrib::O_set 0
0 5 O_add 18 LightAttrib::O_add 0
1 8 O_remove 21 LightAttrib::O_remove 0
2 0 142
// This is the old, deprecated interface to LightAttrib.  Do not use any of
// these methods for new code; these methods will be removed soon.

3722 15 LightRampAttrib 0 141313 15 LightRampAttrib 15 LightRampAttrib 0 0 0 0 3209 2 4255 4256 12 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 0 0 1 0 3588 0 0 0 1 3723 302
/**
 * A Light Ramp is any unary operator that takes a rendered pixel as input,
 * and adjusts the brightness of that pixel.  For example, gamma correction is
 * a kind of light ramp.  So is HDR tone mapping.  So is cartoon shading.  See
 * the constructors for an explanation of each kind of ramp.
 */

3723 13 LightRampMode 0 794624 30 LightRampAttrib::LightRampMode 30 LightRampAttrib::LightRampMode 3722 0 0 0 0 0 0 0 0 0 7 11 LRT_default 28 LightRampAttrib::LRT_default 0
0 12 LRT_identity 29 LightRampAttrib::LRT_identity 0
1 20 LRT_single_threshold 37 LightRampAttrib::LRT_single_threshold 0
2 20 LRT_double_threshold 37 LightRampAttrib::LRT_double_threshold 0
3 8 LRT_hdr0 25 LightRampAttrib::LRT_hdr0 0
4 8 LRT_hdr1 25 LightRampAttrib::LRT_hdr1 0
5 8 LRT_hdr2 25 LightRampAttrib::LRT_hdr2 0
6 0 0

3724 6 Loader 0 141313 6 Loader 6 Loader 0 0 0 1 3221 3238 0 16 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 0 0 2 3 3654 3210 3211 3 3613 3212 3213 0 1 3725 503
/**
 * A convenient class for loading models from disk, in bam or egg format (or
 * any of a number of other formats implemented by a LoaderFileType, such as
 * ptloader).
 *
 * This class supports synchronous as well as asynchronous loading.  In
 * asynchronous loading, the model is loaded in the background by a thread,
 * and an event will be generated when the model is available.  If threading
 * is not available, the asynchronous loading interface may be used, but it
 * loads synchronously.
 */

3725 7 Results 0 288769 15 Loader::Results 15 Loader::Results 3724 0 0 1 3214 3216 0 5 3215 3217 3218 3219 3220 2 4318 4319 0 0 0 0 0

3726 14 LoaderFileType 0 75777 14 LoaderFileType 14 LoaderFileType 0 0 0 0 0 0 9 3239 3240 3241 3242 3243 3244 3245 3246 3247 0 0 1 0 3727 0 0 0 0 215
/**
 * This is the base class for a family of scene-graph file types that the
 * Loader supports.  Each kind of loader that's available should define a
 * corresponding LoaderFileType object and register itself.
 */

3727 11 TypedObject 0 2048 11 TypedObject 11 TypedObject 0 0 0 0 0 0 0 0 0 0 0 0 2508
/**
 * This is an abstract class that all classes which use TypeHandle, and also
 * provide virtual functions to support polymorphism, should inherit from.
 * Each derived class should define get_type(), which should return the
 * specific type of the derived class.  Inheriting from this automatically
 * provides support for is_of_type() and is_exact_type().
 *
 * All classes that inherit directly or indirectly from TypedObject should
 * redefine get_type() and force_init_type(), as shown below.  Some classes
 * that do not inherit from TypedObject may still declare TypeHandles for
 * themselves by defining methods called get_class_type() and init_type().
 * Classes such as these may serve as base classes, but the dynamic type
 * identification system will be limited.  Classes that do not inherit from
 * TypedObject need not define the virtual functions get_type() and
 * force_init_type() (or any other virtual functions).
 *
 * There is a specific layout for defining the overrides from this class.
 * Keeping the definitions formatted just like these examples will allow
 * someone in the future to use a sed (or similar) script to make global
 * changes, if necessary.  Avoid rearranging the braces or the order of the
 * functions unless you're ready to change them in every file all at once.
 *
 * What follows are some examples that can be used in new classes that you
 * create.
 *
 * @par In the class definition (.h file):
 * @code
 * public:
 *   static TypeHandle get_class_type() {
 *     return _type_handle;
 *   }
 *   static void init_type() {
 *     <<<BaseClassOne>>>::init_type();
 *     <<<BaseClassTwo>>>::init_type();
 *     <<<BaseClassN>>>::init_type();
 *     register_type(_type_handle, "<<<ThisClassStringName>>>",
 *                   <<<BaseClassOne>>>::get_class_type(),
 *                   <<<BaseClassTwo>>>::get_class_type(),
 *                   <<<BaseClassN>>>::get_class_type());
 *   }
 *   virtual TypeHandle get_type() const {
 *     return get_class_type();
 *   }
 *   virtual TypeHandle force_init_type() {init_type(); return get_class_type();}
 *
 * private:
 *   static TypeHandle _type_handle;
 * @endcode
 *
 * @par In the class .cxx file:
 * @code
 * TypeHandle <<<ThisClassStringName>>>::_type_handle;
 * @endcode
 *
 * @par In the class config_<<<PackageName>>>.cxx file:
 * @code
 * ConfigureFn(config_<<<PackageName>>>) {
 *   <<<ClassOne>>>::init_type();
 *   <<<ClassTwo>>>::init_type();
 *   <<<ClassN>>>::init_type();
 * }
 * @endcode
 */

3728 22 LoaderFileTypeRegistry 0 26625 22 LoaderFileTypeRegistry 22 LoaderFileTypeRegistry 0 0 0 1 3258 3248 1 4257 9 3249 3250 3251 3252 3253 3254 3255 3256 3257 1 4320 0 0 0 0 85
/**
 * This class maintains the set of all known LoaderFileTypes in the universe.
 */

3729 16 LoaderFileType * 0 8576 16 LoaderFileType * 16 LoaderFileType * 0 0 3726 0 0 0 0 0 0 0 0 0 0

3730 14 MaterialAttrib 0 141313 14 MaterialAttrib 14 MaterialAttrib 0 0 0 0 3266 2 4258 4259 7 3259 3260 3261 3262 3263 3264 3265 0 0 1 0 3588 0 0 0 0 202
/**
 * Indicates which, if any, material should be applied to geometry.  The
 * material is used primarily to control lighting effects, and isn't necessary
 * (or useful) in the absence of lighting.
 */

3731 10 Material * 0 8576 10 Material * 10 Material * 0 0 3732 0 0 0 0 0 0 0 0 0 0

3732 8 Material 0 2048 8 Material 8 Material 0 0 0 0 0 0 0 0 0 0 0 0 682
/**
 * Defines the way an object appears in the presence of lighting.  A material
 * is only necessary if lighting is to be enabled; otherwise, the material
 * isn't used.
 *
 * There are two workflows that are supported: the "classic" workflow of
 * providing separate ambient, diffuse and specular colors, and the
 * "metalness" workflow, in which a base color is specified along with a
 * "metallic" value that indicates whether the material is a metal or a
 * dielectric.
 *
 * The size of the specular highlight can be specified by either specifying
 * the specular exponent (shininess) or by specifying a roughness value that
 * in perceptually linear in the range of 0-1.
 */

3733 19 ModelFlattenRequest 0 141313 19 ModelFlattenRequest 19 ModelFlattenRequest 0 0 0 1 3267 3272 1 4260 4 3268 3269 3270 3271 0 0 1 0 3734 0 0 0 0 287
/**
 * This class object manages a single asynchronous request to flatten a model.
 * The model will be duplicated and flattened in a sub-thread (if threading is
 * available), without affecting the original model; and when the result is
 * done it may be retrieved from this object.
 */

3734 9 AsyncTask 0 2048 9 AsyncTask 9 AsyncTask 0 0 0 0 0 0 0 0 0 0 0 0 217
/**
 * This class represents a concrete task performed by an AsyncManager.
 * Normally, you would subclass from this class, and override do_task(), to
 * define the functionality you wish to have the task perform.
 */

3735 16 ModelLoadRequest 0 141313 16 ModelLoadRequest 16 ModelLoadRequest 0 0 0 1 3273 3280 3 4261 4262 4263 6 3274 3275 3276 3277 3278 3279 0 0 1 0 3734 0 0 0 0 191
/**
 * A class object that manages a single asynchronous model load request.
 * Create a new ModelLoadRequest, and add it to the loader via load_async(),
 * to begin an asynchronous load.
 */

3736 14 Filename const 0 8832 14 Filename const 14 Filename const 0 0 3737 0 0 0 0 0 0 0 0 0 0

3737 8 Filename 0 2048 8 Filename 8 Filename 0 0 0 0 0 0 0 0 0 0 0 0 839
/**
 * The name of a file, such as a texture file or an Egg file.  Stores the full
 * pathname, and includes functions for extracting out the directory prefix
 * part and the file extension and stuff.
 *
 * A Filename is also aware of the mapping between the Unix-like filename
 * convention we use internally, and the local OS's specific filename
 * convention, and it knows how to perform basic OS-specific I/O, like testing
 * for file existence and searching a searchpath, as well as the best way to
 * open an fstream for reading or writing.
 *
 * Note that the methods of Filename that interact with the filesystem (such
 * as exists(), open_read(), etc.) directly interface with the operating system
 * and are not aware of Panda's virtual file system.  To interact with the VFS,
 * use the methods on VirtualFileSystem instead.
 */

3738 19 LoaderOptions const 0 8832 19 LoaderOptions const 19 LoaderOptions const 0 0 3739 0 0 0 0 0 0 0 0 0 0

3739 13 LoaderOptions 0 2048 13 LoaderOptions 13 LoaderOptions 0 0 0 0 0 0 0 0 0 0 0 0 65
/**
 * Specifies parameters that may be passed to the loader.
 */

3740 8 Loader * 0 8576 8 Loader * 8 Loader * 0 0 3724 0 0 0 0 0 0 0 0 0 0

3741 9 ModelNode 0 141313 9 ModelNode 9 ModelNode 0 0 0 1 3281 3288 0 6 3282 3283 3284 3285 3286 3287 0 0 1 0 3612 0 0 0 1 3742 411
/**
 * This node is placed at key points within the scene graph to indicate the
 * roots of "models": subtrees that are conceptually to be treated as a single
 * unit, like a car or a room, for instance.  It doesn't affect rendering or
 * any other operations; it's primarily useful as a high-level model
 * indication.
 *
 * ModelNodes are created in response to a <Model> { 1 } flag within an egg
 * file.
 */

3742 17 PreserveTransform 0 794624 28 ModelNode::PreserveTransform 28 ModelNode::PreserveTransform 3741 0 0 0 0 0 0 0 0 0 5 7 PT_none 18 ModelNode::PT_none 0
0 8 PT_local 19 ModelNode::PT_local 0
1 6 PT_net 17 ModelNode::PT_net 0
2 12 PT_drop_node 23 ModelNode::PT_drop_node 0
3 11 PT_no_touch 22 ModelNode::PT_no_touch 0
4 0 0

3743 9 ModelRoot 0 141313 9 ModelRoot 9 ModelRoot 0 0 0 1 3289 3300 4 4264 4265 4266 4267 8 3290 3291 3292 3293 3294 3297 3298 3299 0 0 1 0 3741 0 0 0 1 3746 314
/**
 * A node of this type is created automatically at the root of each model file
 * that is loaded.  It may eventually contain some information about the
 * contents of the model; at the moment, it contains no special information,
 * but can be used as a flag to indicate the presence of a loaded model file.
 */

3744 6 time_t 0 2105344 6 time_t 6 time_t 0 0 3745 0 0 0 0 0 0 0 0 0 0

3745 8 long int 0 8210 8 long int 8 long int 0 1 0 0 0 0 0 0 0 0 0 0 0

3746 14 ModelReference 0 403457 25 ModelRoot::ModelReference 25 ModelRoot::ModelReference 3743 0 0 1 3295 3296 0 0 0 0 1 0 3713 0 0 0 0 60
// This class is used to unify references to the same model.

3747 16 ModelReference * 0 8576 27 ModelRoot::ModelReference * 27 ModelRoot::ModelReference * 0 0 3746 0 0 0 0 0 0 0 0 0 0

3748 9 ModelPool 0 141313 9 ModelPool 9 ModelPool 0 0 0 0 3311 0 10 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 0 0 0 0 0 804
/**
 * This class unifies all references to the same filename, so that multiple
 * attempts to load the same model will return the same pointer.  Note that
 * the default behavior is thus to make instances: use with caution.  Use the
 * copy_subgraph() method on Node (or use NodePath::copy_to) to make
 * modifiable copies of the node.
 *
 * Unlike TexturePool, this class does not automatically resolve the model
 * filenames before loading, so a relative path and an absolute path to the
 * same model will appear to be different filenames.
 *
 * However, see the Loader class, which is now the preferred interface for
 * loading models.  The Loader class can resolve filenames, supports threaded
 * loading, and can automatically consult the ModelPool, according to the
 * supplied LoaderOptions.
 */

3749 16 ModelSaveRequest 0 141313 16 ModelSaveRequest 16 ModelSaveRequest 0 0 0 1 3312 3320 4 4268 4269 4270 4271 7 3313 3314 3315 3316 3317 3318 3319 0 0 1 0 3734 0 0 0 0 191
/**
 * A class object that manages a single asynchronous model save request.
 * Create a new ModelSaveRequest, and add it to the loader via save_async(),
 * to begin an asynchronous save.
 */

3750 13 TextureAttrib 0 141313 13 TextureAttrib 13 TextureAttrib 0 0 0 0 3350 5 4272 4273 4274 4275 4276 29 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3 4321 4322 4323 0 1 0 3588 0 0 0 0 130
/**
 * Indicates the set of TextureStages and their associated Textures that
 * should be applied to (or removed from) a node.
 */

3751 14 TextureStage * 0 8576 14 TextureStage * 14 TextureStage * 0 0 3752 0 0 0 0 0 0 0 0 0 0

3752 12 TextureStage 0 2048 12 TextureStage 12 TextureStage 0 0 0 0 0 0 0 0 0 0 0 0 336
/**
 * Defines the properties of a named stage of the multitexture pipeline.  The
 * TextureAttrib will associated a number of these stages with Texture
 * objects, and the GSG will render geometry by sorting all of the currently
 * active TextureStages in order and then issuing the appropriate rendering
 * calls to activate them.
 */

3753 9 Texture * 0 8576 9 Texture * 9 Texture * 0 0 3754 0 0 0 0 0 0 0 0 0 0

3754 7 Texture 0 2048 7 Texture 7 Texture 0 0 0 0 0 0 0 0 0 0 0 0 688
/**
 * Represents a texture object, which is typically a single 2-d image but may
 * also represent a 1-d or 3-d texture image, or the six 2-d faces of a cube
 * map texture.
 *
 * A texture's image data might be stored in system RAM (see get_ram_image())
 * or its image may be represented in texture memory on one or more
 * GraphicsStateGuardians (see prepare()), or both.  The typical usage pattern
 * is that a texture is loaded from an image file on disk, which copies its
 * image data into system RAM; then the first time the texture is rendered its
 * image data is copied to texture memory (actually, to the graphics API), and
 * the system RAM image is automatically freed.
 */

3755 18 SamplerState const 0 8832 18 SamplerState const 18 SamplerState const 0 0 3756 0 0 0 0 0 0 0 0 0 0

3756 12 SamplerState 0 2048 12 SamplerState 12 SamplerState 0 0 0 0 0 0 0 0 0 0 0 0 176
/**
 * Represents a set of settings that indicate how a texture is sampled.  This
 * can be used to sample the same texture using different settings in
 * different places.
 */

3757 12 TexGenAttrib 0 75777 12 TexGenAttrib 12 TexGenAttrib 0 0 0 0 0 1 4277 12 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 0 0 1 0 3588 0 0 0 0 281
/**
 * Computes texture coordinates for geometry automatically based on vertex
 * position and/or normal.  This can be used to implement reflection and/or
 * refraction maps, for instance to make shiny surfaces, as well as other
 * special effects such as projective texturing.
 */

3758 12 OccluderNode 0 75777 12 OccluderNode 12 OccluderNode 0 0 0 1 3363 2131 3 4278 4279 4280 9 3364 3365 3366 3367 3368 3369 3370 3371 3372 1 4324 0 1 0 3612 0 0 0 0 272
/**
 * A node in the scene graph that can hold an occluder polygon, which must be
 * a rectangle.  When the occluder is activated with something like
 * render.set_occluder(), then objects whose bouding volume lies entirely
 * behind the occluder will not be rendered.
 */

3759 14 OccluderEffect 0 141313 14 OccluderEffect 14 OccluderEffect 0 0 0 0 3381 0 8 3373 3374 3375 3376 3377 3378 3379 3380 1 4325 0 1 0 3610 0 0 0 0 336
/**
 * This functions similarly to a LightAttrib or ClipPlaneAttrib.  It indicates
 * the set of occluders that modify the geometry at this level and below.
 * Unlike a ClipPlaneAttrib, an OccluderEffect takes effect immediately when
 * it is encountered during traversal, and thus can only add occluders; it may
 * not remove them.
 */

3760 13 PolylightNode 0 141313 13 PolylightNode 13 PolylightNode 0 0 0 1 3382 3419 0 36 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 0 0 1 0 3612 0 0 0 2 3761 3762 26
/**
 * A PolylightNode
 */

3761 12 Flicker_Type 0 794624 27 PolylightNode::Flicker_Type 27 PolylightNode::Flicker_Type 3760 0 0 0 0 0 0 0 0 0 3 7 FRANDOM 22 PolylightNode::FRANDOM 0
0 4 FSIN 19 PolylightNode::FSIN 0
1 7 FCUSTOM 22 PolylightNode::FCUSTOM 0
2 0 0

3762 16 Attenuation_Type 0 794624 31 PolylightNode::Attenuation_Type 31 PolylightNode::Attenuation_Type 3760 0 0 0 0 0 0 0 0 0 2 7 ALINEAR 22 PolylightNode::ALINEAR 0
0 10 AQUADRATIC 25 PolylightNode::AQUADRATIC 0
1 0 0

3763 15 PolylightEffect 0 141313 15 PolylightEffect 15 PolylightEffect 0 0 0 0 3431 0 11 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 0 0 1 0 3610 0 0 0 2 3764 3765 306
/**
 * A PolylightEffect can be used on a node to define a LightGroup  for that
 * node.  A LightGroup contains PolylightNodes which are essentially nodes
 * that add color to the polygons of a model based on distance.  PolylightNode
 * is a cheap way to get lighting effects specially for night scenes
 */

3764 11 ContribType 0 794624 28 PolylightEffect::ContribType 28 PolylightEffect::ContribType 3763 0 0 0 0 0 0 0 0 0 2 11 CT_proximal 28 PolylightEffect::CT_proximal 0
0 6 CT_all 23 PolylightEffect::CT_all 0
1 0 0

3765 10 LightGroup 0 2367488 27 PolylightEffect::LightGroup 27 PolylightEffect::LightGroup 3763 0 3766 0 0 0 0 0 0 0 0 0 0

3766 19 pvector< NodePath > 0 2048 19 pvector< NodePath > 19 pvector< NodePath > 0 0 0 0 0 0 0 0 0 0 0 0 0

3767 12 ShaderAttrib 0 141313 12 ShaderAttrib 12 ShaderAttrib 0 0 0 0 3468 3 4281 4282 4283 36 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 0 0 1 0 3588 0 0 0 1 3768 10
/**
 *
 */

3768 0 0 794624 14 ShaderAttrib:: 0 3767 0 0 0 0 0 0 0 0 0 4 21 F_disable_alpha_write 35 ShaderAttrib::F_disable_alpha_write 49
// Suppress writes to color buffer alpha channel.
0 20 F_subsume_alpha_test 34 ShaderAttrib::F_subsume_alpha_test 58
// Shader promises to subsume the alpha test using TEXKILL
1 19 F_hardware_skinning 33 ShaderAttrib::F_hardware_skinning 37
// Shader needs pre-animated vertices
2 19 F_shader_point_size 33 ShaderAttrib::F_shader_point_size 51
// Shader provides point size, not RenderModeAttrib
3 0 0

3769 14 Shader const * 0 8576 14 Shader const * 14 Shader const * 0 0 3770 0 0 0 0 0 0 0 0 0 0

3770 12 Shader const 0 8832 12 Shader const 12 Shader const 0 0 3771 0 0 0 0 0 0 0 0 0 0

3771 6 Shader 0 2048 6 Shader 6 Shader 0 0 0 0 0 0 0 0 0 0 0 0 8
/**

 */

3772 16 ShowBoundsEffect 0 141313 16 ShowBoundsEffect 16 ShowBoundsEffect 0 0 0 0 3472 0 3 3469 3470 3471 0 0 1 0 3610 0 0 0 0 189
/**
 * Applied to a GeomNode to cause a visible bounding volume to be drawn for
 * this node.  This is generally used only during development to help identify
 * bounding volume issues.
 */

3773 18 TexProjectorEffect 0 75777 18 TexProjectorEffect 18 TexProjectorEffect 0 0 0 0 0 0 9 3473 3474 3475 3476 3477 3478 3479 3480 3481 0 0 1 0 3610 0 0 0 0 1344
/**
 * This effect automatically applies a computed texture matrix to the
 * specified texture stage, according to the relative position of two
 * specified nodes.
 *
 * The relative transform from the "from" node to the "to" node is applied
 * directly to the texture matrix each frame.  If the "to" node happens to be
 * a LensNode, its lens projection matrix is applied as well.
 *
 * This can be used to apply a number of special effects.  Fundamentally, it
 * may simply be used to provide a separate PandaNode that may be adjusted
 * (e.g.  via a LerpInterval) in order to easily apply a linear transformation
 * to an object's texture coordinates (rather than having to explicitly call
 * NodePath.set_tex_transform() each frame).
 *
 * In a more sophisticated case, the TexProjectorEffect is particularly useful
 * in conjunction with a TexGenAttrib that specifies a mode of
 * M_world_position (which copies the world position of each vertex to the
 * texture coordinates).  Then the TexProjector can be used to convert these
 * world coordinates to the relative coordinates of a particular node, causing
 * (for instance) a texture to appear to follow a node around as it moves
 * through the world.  With a LensNode, you can project a texture onto the
 * walls, for instance to apply a flashlight effect or an image-based shadow.
 */

3774 13 ScissorEffect 0 141313 13 ScissorEffect 13 ScissorEffect 0 0 0 0 3492 0 10 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 2 4326 4327 0 1 0 3610 0 0 0 0 219
/**
 * This provides a higher-level wrapper around ScissorAttrib.  It allows for
 * the scissor region to be defined via points relative to the current node,
 * and also performs culling based on the scissor region.
 */

3775 17 SceneGraphReducer 0 26625 17 SceneGraphReducer 17 SceneGraphReducer 0 0 0 1 3493 3494 0 17 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 0 0 0 0 4 3776 3777 3778 3779 341
/**
 * An interface for simplifying ("flattening") scene graphs by eliminating
 * unneeded nodes and collapsing out unneeded state changes and transforms.
 *
 * This class is designed so that it may be inherited from and specialized, if
 * needed, to fine-tune the flattening behavior, but normally the default
 * behavior is sufficient.
 */

3776 11 AttribTypes 0 794624 30 SceneGraphReducer::AttribTypes 30 SceneGraphReducer::AttribTypes 3775 0 0 0 0 0 0 0 0 0 8 12 TT_transform 31 SceneGraphReducer::TT_transform 0
1 8 TT_color 27 SceneGraphReducer::TT_color 0
2 14 TT_color_scale 33 SceneGraphReducer::TT_color_scale 0
4 13 TT_tex_matrix 32 SceneGraphReducer::TT_tex_matrix 0
8 13 TT_clip_plane 32 SceneGraphReducer::TT_clip_plane 0
16 12 TT_cull_face 31 SceneGraphReducer::TT_cull_face 0
32 22 TT_apply_texture_color 41 SceneGraphReducer::TT_apply_texture_color 0
64 8 TT_other 27 SceneGraphReducer::TT_other 0
128 0 0

3777 15 CombineSiblings 0 794624 34 SceneGraphReducer::CombineSiblings 34 SceneGraphReducer::CombineSiblings 3775 0 0 0 0 0 0 0 0 0 4 12 CS_geom_node 31 SceneGraphReducer::CS_geom_node 0
1 16 CS_within_radius 35 SceneGraphReducer::CS_within_radius 0
2 8 CS_other 27 SceneGraphReducer::CS_other 0
4 10 CS_recurse 29 SceneGraphReducer::CS_recurse 0
8 0 0

3778 17 CollectVertexData 0 794624 36 SceneGraphReducer::CollectVertexData 36 SceneGraphReducer::CollectVertexData 3775 0 0 0 0 0 0 0 0 0 8 8 CVD_name 27 SceneGraphReducer::CVD_name 86
// If set, two GeomVertexDatas with different names will not be collected
// together.
1 9 CVD_model 28 SceneGraphReducer::CVD_model 129
// If set, a ModelNode begins a subgraph of nodes whose GeomVertexDatas
// will not be collected with nodes outside the subgraph.
2 13 CVD_transform 32 SceneGraphReducer::CVD_transform 142
// If set, a non-identity transform begins a subgraph of nodes whose
// GeomVertexDatas will not be collected with nodes outside the subgraph.
4 17 CVD_avoid_dynamic 36 SceneGraphReducer::CVD_avoid_dynamic 237
// If set, GeomVertexDatas with any usage_hint other than UH_static will
// not be collected with any other Geoms in a different GeomNode.
// However, two different dynamic Geoms within the same node might still
// be collected together.
8 17 CVD_one_node_only 36 SceneGraphReducer::CVD_one_node_only 90
// If set, only those GeomVertexDatas within the same node might be
// collected together.
16 10 CVD_format 29 SceneGraphReducer::CVD_format 230
// If set, two GeomVertexDatas with different formats will not be
// collected together.  If not set, GeomVertexDatas of different formats
// may be combined by expanding all GeomVertexDatas to the union of all
// defined columns.
32 14 CVD_usage_hint 33 SceneGraphReducer::CVD_usage_hint 134
// If set, two GeomVertexDatas with different usage hints (for instance,
// UH_static vs.  UH_dynamic) will not be collected together.
64 18 CVD_animation_type 37 SceneGraphReducer::CVD_animation_type 120
// If set, GeomVertexDatas with unanimated vertices will not be combined
// with GeomVertexDatas with animated vertices.
128 0 0

3779 14 MakeNonindexed 0 794624 33 SceneGraphReducer::MakeNonindexed 33 SceneGraphReducer::MakeNonindexed 3775 0 0 0 0 0 0 0 0 0 3 17 MN_composite_only 36 SceneGraphReducer::MN_composite_only 155
// If set, only composite primitives such as tristrips and trifans will be
// made nonindexed; simple primitives such as triangles will be left
// indexed.
1 17 MN_avoid_animated 36 SceneGraphReducer::MN_avoid_animated 163
// If set any GeomVertexData with any animation indication will not be
// adjusted, whether the animation is to be performed on the CPU or on the
// graphics pipe.
2 16 MN_avoid_dynamic 35 SceneGraphReducer::MN_avoid_dynamic 108
// If set, any GeomVertexData or Geom with a usage_hint other than
// UH_static will not be made nonindexed.
4 0 0

3780 13 ParamNodePath 0 141313 13 ParamNodePath 13 ParamNodePath 0 0 0 1 3514 3517 0 2 3515 3516 0 0 1 0 3781 0 0 0 0 64
/**
 * A class object for storing a NodePath as a parameter.
 */

3781 14 ParamValueBase 0 2048 14 ParamValueBase 14 ParamValueBase 0 0 0 0 0 0 0 0 0 0 0 0 141
/**
 * A non-template base class of ParamValue (below), which serves mainly to
 * define the placeholder for the virtual output function.
 */

3782 10 PortalNode 0 75777 10 PortalNode 10 PortalNode 0 0 0 1 3518 2131 10 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 24 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 1 4328 0 1 0 3612 0 0 0 0 217
/**
 * A node in the scene graph that can hold a Portal Polygon, which is a
 * rectangle.  Other types of polygons are not supported for now.  It also
 * holds a PT(PandaNode) Cell that this portal is connected to
 */

3783 10 PortalMask 0 2105344 10 PortalMask 10 PortalMask 0 0 3625 0 0 0 0 0 0 0 0 0 0

3784 13 ScissorAttrib 0 141313 13 ScissorAttrib 13 ScissorAttrib 0 0 0 0 3550 2 4294 4295 7 3543 3544 3545 3546 3547 3548 3549 0 0 1 0 3588 0 0 0 0 528
/**
 * This restricts rendering to within a rectangular region of the scene,
 * without otherwise affecting the viewport or lens properties.  Geometry that
 * falls outside the scissor region is not rendered.  It is akin to the OpenGL
 * glScissor() function.
 *
 * The ScissorAttrib always specifies its region relative to its enclosing
 * DisplayRegion, in screen space, and performs no culling.
 *
 * See ScissorEffect if you wish to define a region relative to 2-D or 3-D
 * coordinates in the scene graph, with culling.
 */

3785 16 ShadeModelAttrib 0 141313 16 ShadeModelAttrib 16 ShadeModelAttrib 0 0 0 0 3556 2 4296 4297 5 3551 3552 3553 3554 3555 0 0 1 0 3588 0 0 0 1 3786 103
/**
 * Specifies whether flat shading (per-polygon) or smooth shading (per-vertex)
 * is in effect.
 */

3786 4 Mode 0 794624 22 ShadeModelAttrib::Mode 22 ShadeModelAttrib::Mode 3785 0 0 0 0 0 0 0 0 0 2 6 M_flat 24 ShadeModelAttrib::M_flat 0
0 8 M_smooth 26 ShadeModelAttrib::M_smooth 0
1 0 0

3787 13 StencilAttrib 0 141313 13 StencilAttrib 13 StencilAttrib 0 0 0 0 3566 1 4298 9 3557 3558 3559 3560 3561 3562 3563 3564 3565 0 0 1 0 3588 0 0 0 3 3788 3789 3790 312
/**
 * A StencilAttrib is a collection of all stencil render states.  The render
 * states in a StencilAttrib are read-only.  A StencilAttrib is created with
 * make or make_2_sided.  To determine if two sided stencil is supported, call
 * the function GraphicsStateGuardian:: get_supports_two_sided_stencil.
 */

3788 18 StencilRenderState 0 794624 33 StencilAttrib::StencilRenderState 33 StencilAttrib::StencilRenderState 3787 0 0 0 0 0 0 0 0 0 14 29 SRS_front_comparison_function 44 StencilAttrib::SRS_front_comparison_function 0
0 32 SRS_front_stencil_fail_operation 47 StencilAttrib::SRS_front_stencil_fail_operation 0
1 39 SRS_front_stencil_pass_z_fail_operation 54 StencilAttrib::SRS_front_stencil_pass_z_fail_operation 0
2 39 SRS_front_stencil_pass_z_pass_operation 54 StencilAttrib::SRS_front_stencil_pass_z_pass_operation 0
3 13 SRS_reference 28 StencilAttrib::SRS_reference 0
4 13 SRS_read_mask 28 StencilAttrib::SRS_read_mask 0
5 14 SRS_write_mask 29 StencilAttrib::SRS_write_mask 0
6 28 SRS_back_comparison_function 43 StencilAttrib::SRS_back_comparison_function 0
7 31 SRS_back_stencil_fail_operation 46 StencilAttrib::SRS_back_stencil_fail_operation 0
8 38 SRS_back_stencil_pass_z_fail_operation 53 StencilAttrib::SRS_back_stencil_pass_z_fail_operation 0
9 38 SRS_back_stencil_pass_z_pass_operation 53 StencilAttrib::SRS_back_stencil_pass_z_pass_operation 0
10 9 SRS_clear 24 StencilAttrib::SRS_clear 0
11 15 SRS_clear_value 30 StencilAttrib::SRS_clear_value 0
12 9 SRS_total 24 StencilAttrib::SRS_total 0
13 0 80
// enums are duplicated here from class StencilRenderStates for use in
// Python

3789 25 StencilComparisonFunction 0 794624 40 StencilAttrib::StencilComparisonFunction 40 StencilAttrib::StencilComparisonFunction 3787 0 0 0 0 0 0 0 0 0 8 9 SCF_never 24 StencilAttrib::SCF_never 0
1 13 SCF_less_than 28 StencilAttrib::SCF_less_than 0
2 9 SCF_equal 24 StencilAttrib::SCF_equal 0
3 22 SCF_less_than_or_equal 37 StencilAttrib::SCF_less_than_or_equal 0
4 16 SCF_greater_than 31 StencilAttrib::SCF_greater_than 0
5 13 SCF_not_equal 28 StencilAttrib::SCF_not_equal 0
6 25 SCF_greater_than_or_equal 40 StencilAttrib::SCF_greater_than_or_equal 0
7 10 SCF_always 25 StencilAttrib::SCF_always 0
8 0 44
// Exists purely for backward compatibility.

3790 16 StencilOperation 0 794624 31 StencilAttrib::StencilOperation 31 StencilAttrib::StencilOperation 3787 0 0 0 0 0 0 0 0 0 8 7 SO_keep 22 StencilAttrib::SO_keep 0
0 7 SO_zero 22 StencilAttrib::SO_zero 0
1 10 SO_replace 25 StencilAttrib::SO_replace 0
2 12 SO_increment 27 StencilAttrib::SO_increment 0
3 12 SO_decrement 27 StencilAttrib::SO_decrement 0
4 9 SO_invert 24 StencilAttrib::SO_invert 0
5 21 SO_increment_saturate 36 StencilAttrib::SO_increment_saturate 0
6 21 SO_decrement_saturate 36 StencilAttrib::SO_decrement_saturate 0
7 0 0

3791 10 ShaderPool 0 141313 10 ShaderPool 10 ShaderPool 0 0 0 0 3576 0 9 3567 3568 3569 3570 3571 3572 3573 3574 3575 0 0 0 0 0 189
/**
 * This is the preferred interface for loading shaders for the TextNode
 * system.  It is similar to ModelPool and TexturePool in that it unifies
 * references to the same filename.
 */

3792 22 TransformState const * 0 8576 22 TransformState const * 22 TransformState const * 0 0 3793 0 0 0 0 0 0 0 0 0 0

3793 20 TransformState const 0 8832 20 TransformState const 20 TransformState const 0 0 3577 0 0 0 0 0 0 0 0 0 0

3794 6 size_t 0 2105344 11 std::size_t 11 std::size_t 0 0 3795 0 0 0 0 0 0 0 0 0 0

3795 22 unsigned long long int 0 8230 22 unsigned long long int 22 unsigned long long int 0 8 0 0 0 0 0 0 0 0 0 0 0

3796 17 LVecBase3 const * 0 8576 17 LVecBase3 const * 17 LVecBase3 const * 0 0 3797 0 0 0 0 0 0 0 0 0 0

3797 15 LVecBase3 const 0 8832 15 LVecBase3 const 15 LVecBase3 const 0 0 3581 0 0 0 0 0 0 0 0 0 0

3798 19 LQuaternion const * 0 8576 19 LQuaternion const * 19 LQuaternion const * 0 0 3799 0 0 0 0 0 0 0 0 0 0

3799 17 LQuaternion const 0 8832 17 LQuaternion const 17 LQuaternion const 0 0 3583 0 0 0 0 0 0 0 0 0 0

3800 16 LMatrix4 const * 0 8576 16 LMatrix4 const * 16 LMatrix4 const * 0 0 3801 0 0 0 0 0 0 0 0 0 0

3801 14 LMatrix4 const 0 8832 14 LMatrix4 const 14 LMatrix4 const 0 0 3585 0 0 0 0 0 0 0 0 0 0

3802 17 LVecBase2 const * 0 8576 17 LVecBase2 const * 17 LVecBase2 const * 0 0 3803 0 0 0 0 0 0 0 0 0 0

3803 15 LVecBase2 const 0 8832 15 LVecBase2 const 15 LVecBase2 const 0 0 3804 0 0 0 0 0 0 0 0 0 0

3804 9 LVecBase2 0 2105344 9 LVecBase2 9 LVecBase2 0 0 3805 0 0 0 0 0 0 0 0 0 0

3805 10 LVecBase2f 0 2048 10 LVecBase2f 10 LVecBase2f 0 0 0 0 0 0 0 0 0 0 0 0 75
/**
 * This is the base class for all two-component vectors and points.
 */

3806 16 LMatrix3 const * 0 8576 16 LMatrix3 const * 16 LMatrix3 const * 0 0 3807 0 0 0 0 0 0 0 0 0 0

3807 14 LMatrix3 const 0 8832 14 LMatrix3 const 14 LMatrix3 const 0 0 3808 0 0 0 0 0 0 0 0 0 0

3808 8 LMatrix3 0 2105344 8 LMatrix3 8 LMatrix3 0 0 3809 0 0 0 0 0 0 0 0 0 0

3809 9 LMatrix3f 0 2048 9 LMatrix3f 9 LMatrix3f 0 0 0 0 0 0 0 0 0 0 0 0 231
/**
 * This is a 3-by-3 transform matrix.  It typically will represent either a
 * rotation-and-scale (no translation) matrix in 3-d, or a full affine matrix
 * (rotation, scale, translation) in 2-d, e.g.  for a texture matrix.
 */

3810 9 LPoint3 * 0 8576 9 LPoint3 * 9 LPoint3 * 0 0 3579 0 0 0 0 0 0 0 0 0 0

3811 11 LVecBase3 * 0 8576 11 LVecBase3 * 11 LVecBase3 * 0 0 3581 0 0 0 0 0 0 0 0 0 0

3812 13 LQuaternion * 0 8576 13 LQuaternion * 13 LQuaternion * 0 0 3583 0 0 0 0 0 0 0 0 0 0

3813 10 LMatrix4 * 0 8576 10 LMatrix4 * 10 LMatrix4 * 0 0 3585 0 0 0 0 0 0 0 0 0 0

3814 11 LVecBase2 * 0 8576 11 LVecBase2 * 11 LVecBase2 * 0 0 3804 0 0 0 0 0 0 0 0 0 0

3815 10 LMatrix3 * 0 8576 10 LMatrix3 * 10 LMatrix3 * 0 0 3808 0 0 0 0 0 0 0 0 0 0

3816 4 void 0 8194 4 void 4 void 0 6 0 0 0 0 0 0 0 0 0 0 0

3817 9 ostream * 0 8576 14 std::ostream * 14 std::ostream * 0 0 3818 0 0 0 0 0 0 0 0 0 0

3818 7 ostream 0 2048 12 std::ostream 12 std::ostream 0 0 0 0 0 0 0 0 0 0 0 0 0

3819 10 TypeHandle 0 16779264 10 TypeHandle 10 TypeHandle 0 0 0 0 0 0 0 0 0 0 0 0 732
/**
 * TypeHandle is the identifier used to differentiate C++ class types.  Any
 * C++ classes that inherit from some base class, and must be differentiated
 * at run time, should store a static TypeHandle object that can be queried
 * through a static member function named get_class_type().  Most of the time,
 * it is also desirable to inherit from TypedObject, which provides some
 * virtual functions to return the TypeHandle for a particular instance.
 *
 * At its essence, a TypeHandle is simply a unique identifier that is assigned
 * by the TypeRegistry.  The TypeRegistry stores a tree of TypeHandles, so
 * that ancestry of a particular type may be queried, and the type name may be
 * retrieved for run-time display.
 */

3820 12 TypeHandle * 0 8576 12 TypeHandle * 12 TypeHandle * 0 0 3819 0 0 0 0 0 0 0 0 0 0

3821 28 RenderAttribRegistry const * 0 8576 28 RenderAttribRegistry const * 28 RenderAttribRegistry const * 0 0 3822 0 0 0 0 0 0 0 0 0 0

3822 26 RenderAttribRegistry const 0 8832 26 RenderAttribRegistry const 26 RenderAttribRegistry const 0 0 3587 0 0 0 0 0 0 0 0 0 0

3823 22 RenderAttribRegistry * 0 8576 22 RenderAttribRegistry * 22 RenderAttribRegistry * 0 0 3587 0 0 0 0 0 0 0 0 0 0

3824 14 LColor const * 0 8576 14 LColor const * 14 LColor const * 0 0 3598 0 0 0 0 0 0 0 0 0 0

3825 24 RenderModeAttrib const * 0 8576 24 RenderModeAttrib const * 24 RenderModeAttrib const * 0 0 3826 0 0 0 0 0 0 0 0 0 0

3826 22 RenderModeAttrib const 0 8832 22 RenderModeAttrib const 22 RenderModeAttrib const 0 0 3593 0 0 0 0 0 0 0 0 0 0

3827 23 TexMatrixAttrib const * 0 8576 23 TexMatrixAttrib const * 23 TexMatrixAttrib const * 0 0 3828 0 0 0 0 0 0 0 0 0 0

3828 21 TexMatrixAttrib const 0 8832 21 TexMatrixAttrib const 21 TexMatrixAttrib const 0 0 3602 0 0 0 0 0 0 0 0 0 0

3829 19 RenderState const * 0 8576 19 RenderState const * 19 RenderState const * 0 0 3830 0 0 0 0 0 0 0 0 0 0

3830 17 RenderState const 0 8832 17 RenderState const 17 RenderState const 0 0 3603 0 0 0 0 0 0 0 0 0 0

3831 10 SlotMask * 0 8576 23 RenderState::SlotMask * 23 RenderState::SlotMask * 0 0 3832 0 0 0 0 0 0 0 0 0 0

3832 8 SlotMask 0 2367488 21 RenderState::SlotMask 21 RenderState::SlotMask 3603 0 3833 0 0 0 0 0 0 0 0 0 0

3833 8 SlotMask 0 2367488 30 RenderAttribRegistry::SlotMask 30 RenderAttribRegistry::SlotMask 3587 0 3625 0 0 0 0 0 0 0 0 0 0

3834 15 CullTraverser * 0 8576 15 CullTraverser * 15 CullTraverser * 0 0 3707 0 0 0 0 0 0 0 0 0 0

3835 25 CullTraverserData const * 0 8576 25 CullTraverserData const * 25 CullTraverserData const * 0 0 3836 0 0 0 0 0 0 0 0 0 0

3836 23 CullTraverserData const 0 8832 23 CullTraverserData const 23 CullTraverserData const 0 0 3700 0 0 0 0 0 0 0 0 0 0

3837 23 AlphaTestAttrib const * 0 8576 23 AlphaTestAttrib const * 23 AlphaTestAttrib const * 0 0 3838 0 0 0 0 0 0 0 0 0 0

3838 21 AlphaTestAttrib const 0 8832 21 AlphaTestAttrib const 21 AlphaTestAttrib const 0 0 3606 0 0 0 0 0 0 0 0 0 0

3839 23 AntialiasAttrib const * 0 8576 23 AntialiasAttrib const * 23 AntialiasAttrib const * 0 0 3840 0 0 0 0 0 0 0 0 0 0

3840 21 AntialiasAttrib const 0 8832 21 AntialiasAttrib const 21 AntialiasAttrib const 0 0 3607 0 0 0 0 0 0 0 0 0 0

3841 20 RenderEffect const * 0 8576 20 RenderEffect const * 20 RenderEffect const * 0 0 3842 0 0 0 0 0 0 0 0 0 0

3842 18 RenderEffect const 0 8832 18 RenderEffect const 18 RenderEffect const 0 0 3610 0 0 0 0 0 0 0 0 0 0

3843 21 RenderEffects const * 0 8576 21 RenderEffects const * 21 RenderEffects const * 0 0 3844 0 0 0 0 0 0 0 0 0 0

3844 19 RenderEffects const 0 8832 19 RenderEffects const 19 RenderEffects const 0 0 3611 0 0 0 0 0 0 0 0 0 0

3845 13 atomic string 0 2 13 atomic string 13 atomic string 0 7 0 0 0 0 0 0 0 0 0 0 0

3846 17 PandaNode const * 0 8576 17 PandaNode const * 17 PandaNode const * 0 0 3847 0 0 0 0 0 0 0 0 0 0

3847 15 PandaNode const 0 8832 15 PandaNode const 15 PandaNode const 0 0 3612 0 0 0 0 0 0 0 0 0 0

3848 8 Thread * 0 8576 8 Thread * 8 Thread * 0 0 3849 0 0 0 0 0 0 0 0 0 0

3849 6 Thread 0 2048 6 Thread 6 Thread 0 0 0 0 0 0 0 0 0 0 0 0 396
/**
 * A thread; that is, a lightweight process.  This is an abstract base class;
 * to use it, you must subclass from it and redefine thread_main().
 *
 * The thread itself will keep a reference count on the Thread object while it
 * is running; when the thread returns from its root function, the Thread
 * object will automatically be destructed if no other pointers are
 * referencing it.
 */

3850 9 Stashed * 0 8576 20 PandaNode::Stashed * 20 PandaNode::Stashed * 0 0 3633 0 0 0 0 0 0 0 0 0 0

3851 9 visitproc 0 2105344 9 visitproc 9 visitproc 0 0 3852 0 0 0 0 0 0 0 0 0 0

3852 6 void * 0 8576 6 void * 6 void * 0 0 3816 0 0 0 0 0 0 0 0 0 0

3853 10 DrawMask * 0 8576 10 DrawMask * 10 DrawMask * 0 0 3624 0 0 0 0 0 0 0 0 0 0

3854 13 CollideMask * 0 8576 13 CollideMask * 13 CollideMask * 0 0 3627 0 0 0 0 0 0 0 0 0 0

3855 27 GraphicsStateGuardianBase * 0 8576 27 GraphicsStateGuardianBase * 27 GraphicsStateGuardianBase * 0 0 3856 0 0 0 0 0 0 0 0 0 0

3856 25 GraphicsStateGuardianBase 0 2048 25 GraphicsStateGuardianBase 25 GraphicsStateGuardianBase 0 0 0 0 0 0 0 0 0 0 0 0 607
/**
 * This is a base class for the GraphicsStateGuardian class, which is itself a
 * base class for the various GSG's for different platforms.  This class
 * contains all the function prototypes to support the double-dispatch of GSG
 * to geoms, transitions, etc.  It lives in a separate class in its own
 * package so we can avoid circular build dependency problems.
 *
 * GraphicsStateGuardians are not actually writable to bam files, of course,
 * but they may be passed as event parameters, so they inherit from
 * TypedWritableReferenceCount instead of TypedReferenceCount for that
 * convenience.
 */

3857 22 BoundingVolume const * 0 8576 22 BoundingVolume const * 22 BoundingVolume const * 0 0 3858 0 0 0 0 0 0 0 0 0 0

3858 20 BoundingVolume const 0 8832 20 BoundingVolume const 20 BoundingVolume const 0 0 3629 0 0 0 0 0 0 0 0 0 0

3859 11 UpdateSeq * 0 8576 11 UpdateSeq * 11 UpdateSeq * 0 0 3860 0 0 0 0 0 0 0 0 0 0

3860 9 UpdateSeq 0 2048 9 UpdateSeq 9 UpdateSeq 0 0 0 0 0 0 0 0 0 0 0 0 761
/**
 * This is a sequence number that increments monotonically.  It can be used to
 * track cache updates, or serve as a kind of timestamp for any changing
 * properties.
 *
 * A special class is used instead of simply an int, so we can elegantly
 * handle such things as wraparound and special cases.  There are two special
 * cases.  Firstly, a sequence number is 'initial' when it is first created.
 * This sequence is older than any other sequence number.  Secondly, a
 * sequence number may be explicitly set to 'old'.  This is older than any
 * other sequence number except 'initial'.  Finally, we have the explicit
 * number 'fresh', which is newer than any other sequence number.  All other
 * sequences are numeric and are monotonically increasing.
 */

3861 7 Light * 0 8576 7 Light * 7 Light * 0 0 3719 0 0 0 0 0 0 0 0 0 0

3862 12 vector_uchar 0 2105344 12 vector_uchar 12 vector_uchar 0 0 3863 0 0 0 0 0 0 0 0 0 0

3863 24 pvector< unsigned char > 0 2048 24 pvector< unsigned char > 24 pvector< unsigned char > 0 0 0 0 0 0 0 0 0 0 0 0 0

3864 29 TypedWritableReferenceCount * 0 8576 29 TypedWritableReferenceCount * 29 TypedWritableReferenceCount * 0 0 3589 0 0 0 0 0 0 0 0 0 0

3865 9 Namable * 0 8576 9 Namable * 9 Namable * 0 0 3613 0 0 0 0 0 0 0 0 0 0

3866 16 LinkedListNode * 0 8576 16 LinkedListNode * 16 LinkedListNode * 0 0 3614 0 0 0 0 0 0 0 0 0 0

3867 16 Children const * 0 8576 27 PandaNode::Children const * 27 PandaNode::Children const * 0 0 3868 0 0 0 0 0 0 0 0 0 0

3868 14 Children const 0 8832 25 PandaNode::Children const 25 PandaNode::Children const 0 0 3632 0 0 0 0 0 0 0 0 0 0

3869 15 Stashed const * 0 8576 26 PandaNode::Stashed const * 26 PandaNode::Stashed const * 0 0 3870 0 0 0 0 0 0 0 0 0 0

3870 13 Stashed const 0 8832 24 PandaNode::Stashed const 24 PandaNode::Stashed const 0 0 3633 0 0 0 0 0 0 0 0 0 0

3871 15 Parents const * 0 8576 26 PandaNode::Parents const * 26 PandaNode::Parents const * 0 0 3872 0 0 0 0 0 0 0 0 0 0

3872 13 Parents const 0 8832 24 PandaNode::Parents const 24 PandaNode::Parents const 0 0 3634 0 0 0 0 0 0 0 0 0 0

3873 26 TransparencyAttrib const * 0 8576 26 TransparencyAttrib const * 26 TransparencyAttrib const * 0 0 3874 0 0 0 0 0 0 0 0 0 0

3874 24 TransparencyAttrib const 0 8832 24 TransparencyAttrib const 24 TransparencyAttrib const 0 0 3635 0 0 0 0 0 0 0 0 0 0

3875 21 LogicOpAttrib const * 0 8576 21 LogicOpAttrib const * 21 LogicOpAttrib const * 0 0 3876 0 0 0 0 0 0 0 0 0 0

3876 19 LogicOpAttrib const 0 8832 19 LogicOpAttrib const 19 LogicOpAttrib const 0 0 3637 0 0 0 0 0 0 0 0 0 0

3877 20 InternalName const * 0 8576 20 InternalName const * 20 InternalName const * 0 0 3878 0 0 0 0 0 0 0 0 0 0

3878 18 InternalName const 0 8832 18 InternalName const 18 InternalName const 0 0 3879 0 0 0 0 0 0 0 0 0 0

3879 12 InternalName 0 16779264 12 InternalName 12 InternalName 0 0 0 0 0 0 0 0 0 0 0 0 514
/**
 * Encodes a string name in a hash table, mapping it to a pointer.  This is
 * used to tokenify names so they may be used efficiently in low-level Panda
 * structures, for instance to differentiate the multiple sets of texture
 * coordinates that might be stored on a Geom.
 *
 * InternalNames are hierarchical, with the '.' used by convention as a
 * separator character.  You can construct a single InternalName as a
 * composition of one or more other names, or by giving it a source string
 * directly.
 */

3880 13 ShaderInput * 0 8576 13 ShaderInput * 13 ShaderInput * 0 0 3639 0 0 0 0 0 0 0 0 0 0

3881 20 SamplerState const * 0 8576 20 SamplerState const * 20 SamplerState const * 0 0 3755 0 0 0 0 0 0 0 0 0 0

3882 19 ShaderInput const * 0 8576 19 ShaderInput const * 19 ShaderInput const * 0 0 3883 0 0 0 0 0 0 0 0 0 0

3883 17 ShaderInput const 0 8832 17 ShaderInput const 17 ShaderInput const 0 0 3639 0 0 0 0 0 0 0 0 0 0

3884 17 LVecBase4 const * 0 8576 17 LVecBase4 const * 17 LVecBase4 const * 0 0 3685 0 0 0 0 0 0 0 0 0 0

3885 21 ShaderPtrData const * 0 8576 29 Shader::ShaderPtrData const * 29 Shader::ShaderPtrData const * 0 0 3886 0 0 0 0 0 0 0 0 0 0

3886 19 ShaderPtrData const 0 8832 27 Shader::ShaderPtrData const 27 Shader::ShaderPtrData const 0 0 3887 0 0 0 0 0 0 0 0 0 0

3887 13 ShaderPtrData 0 263168 21 Shader::ShaderPtrData 21 Shader::ShaderPtrData 3771 0 0 0 0 0 0 0 0 0 0 0 60
// Container structure for data of parameters ShaderPtrSpec.

3888 16 NodePath const * 0 8576 16 NodePath const * 16 NodePath const * 0 0 3666 0 0 0 0 0 0 0 0 0 0

3889 24 InternalNameCollection * 0 8576 24 InternalNameCollection * 24 InternalNameCollection * 0 0 3642 0 0 0 0 0 0 0 0 0 0

3890 30 InternalNameCollection const * 0 8576 30 InternalNameCollection const * 30 InternalNameCollection const * 0 0 3891 0 0 0 0 0 0 0 0 0 0

3891 28 InternalNameCollection const 0 8832 28 InternalNameCollection const 28 InternalNameCollection const 0 0 3642 0 0 0 0 0 0 0 0 0 0

3892 20 MaterialCollection * 0 8576 20 MaterialCollection * 20 MaterialCollection * 0 0 3643 0 0 0 0 0 0 0 0 0 0

3893 26 MaterialCollection const * 0 8576 26 MaterialCollection const * 26 MaterialCollection const * 0 0 3894 0 0 0 0 0 0 0 0 0 0

3894 24 MaterialCollection const 0 8832 24 MaterialCollection const 24 MaterialCollection const 0 0 3643 0 0 0 0 0 0 0 0 0 0

3895 24 TextureStageCollection * 0 8576 24 TextureStageCollection * 24 TextureStageCollection * 0 0 3644 0 0 0 0 0 0 0 0 0 0

3896 30 TextureStageCollection const * 0 8576 30 TextureStageCollection const * 30 TextureStageCollection const * 0 0 3897 0 0 0 0 0 0 0 0 0 0

3897 28 TextureStageCollection const 0 8832 28 TextureStageCollection const 28 TextureStageCollection const 0 0 3644 0 0 0 0 0 0 0 0 0 0

3898 10 NodePath * 0 8576 10 NodePath * 10 NodePath * 0 0 3645 0 0 0 0 0 0 0 0 0 0

3899 20 NodePathCollection * 0 8576 20 NodePathCollection * 20 NodePathCollection * 0 0 3648 0 0 0 0 0 0 0 0 0 0

3900 8 LVector3 0 2105344 8 LVector3 8 LVector3 0 0 3901 0 0 0 0 0 0 0 0 0 0

3901 9 LVector3f 0 2048 9 LVector3f 9 LVector3f 0 0 0 0 0 0 0 0 0 0 0 0 338
/**
 * This is a three-component vector distance (as opposed to a three-component
 * point, which represents a particular point in space).  Some of the methods
 * are slightly different between LPoint3 and LVector3; in particular,
 * subtraction of two points yields a vector, while addition of a vector and a
 * point yields a point.
 */

3902 10 LVector3 * 0 8576 10 LVector3 * 10 LVector3 * 0 0 3900 0 0 0 0 0 0 0 0 0 0

3903 15 LPoint3 const * 0 8576 15 LPoint3 const * 15 LPoint3 const * 0 0 3704 0 0 0 0 0 0 0 0 0 0

3904 16 LVector3 const * 0 8576 16 LVector3 const * 16 LVector3 const * 0 0 3905 0 0 0 0 0 0 0 0 0 0

3905 14 LVector3 const 0 8832 14 LVector3 const 14 LVector3 const 0 0 3900 0 0 0 0 0 0 0 0 0 0

3906 8 LColor * 0 8576 8 LColor * 8 LColor * 0 0 3599 0 0 0 0 0 0 0 0 0 0

3907 9 nullptr_t 0 2105344 14 std::nullptr_t 14 std::nullptr_t 0 0 3908 0 0 0 0 0 0 0 0 0 0

3908 17 decltype(nullptr) 0 8194 17 decltype(nullptr) 17 decltype(nullptr) 0 9 0 0 0 0 0 0 0 0 0 0 0

3909 11 BitMask32 * 0 8576 11 BitMask32 * 11 BitMask32 * 0 0 3625 0 0 0 0 0 0 0 0 0 0

3910 18 LTexCoord3 const * 0 8576 18 LTexCoord3 const * 18 LTexCoord3 const * 0 0 3911 0 0 0 0 0 0 0 0 0 0

3911 16 LTexCoord3 const 0 8832 16 LTexCoord3 const 16 LTexCoord3 const 0 0 3912 0 0 0 0 0 0 0 0 0 0

3912 10 LTexCoord3 0 2105344 10 LTexCoord3 10 LTexCoord3 0 0 3913 0 0 0 0 0 0 0 0 0 0

3913 11 LTexCoord3f 0 2105344 11 LTexCoord3f 11 LTexCoord3f 0 0 3580 0 0 0 0 0 0 0 0 0 0

3914 17 TextureCollection 0 2048 17 TextureCollection 17 TextureCollection 0 0 0 0 0 0 0 0 0 0 0 0 97
/**
 * Manages a list of Texture objects, as returned by
 * TexturePool::find_all_textures().
 */

3915 19 TextureCollection * 0 8576 19 TextureCollection * 19 TextureCollection * 0 0 3914 0 0 0 0 0 0 0 0 0 0

3916 20 WeakNodePath const * 0 8576 20 WeakNodePath const * 20 WeakNodePath const * 0 0 3917 0 0 0 0 0 0 0 0 0 0

3917 18 WeakNodePath const 0 8832 18 WeakNodePath const 18 WeakNodePath const 0 0 3664 0 0 0 0 0 0 0 0 0 0

3918 15 vector_string * 0 8576 15 vector_string * 15 vector_string * 0 0 3919 0 0 0 0 0 0 0 0 0 0

3919 13 vector_string 0 2105344 13 vector_string 13 vector_string 0 0 3920 0 0 0 0 0 0 0 0 0 0

3920 17 pvector< string > 0 2048 22 pvector< std::string > 22 pvector< std::string > 0 0 0 0 0 0 0 0 0 0 0 0 0

3921 16 Filename const * 0 8576 16 Filename const * 16 Filename const * 0 0 3736 0 0 0 0 0 0 0 0 0 0

3922 14 vector_uchar * 0 8576 14 vector_uchar * 14 vector_uchar * 0 0 3862 0 0 0 0 0 0 0 0 0 0

3923 26 NodePathCollection const * 0 8576 26 NodePathCollection const * 26 NodePathCollection const * 0 0 3924 0 0 0 0 0 0 0 0 0 0

3924 24 NodePathCollection const 0 8832 24 NodePathCollection const 24 NodePathCollection const 0 0 3648 0 0 0 0 0 0 0 0 0 0

3925 20 AttribNodeRegistry * 0 8576 20 AttribNodeRegistry * 20 AttribNodeRegistry * 0 0 3649 0 0 0 0 0 0 0 0 0 0

3926 26 AttribNodeRegistry const * 0 8576 26 AttribNodeRegistry const * 26 AttribNodeRegistry const * 0 0 3927 0 0 0 0 0 0 0 0 0 0

3927 24 AttribNodeRegistry const 0 8832 24 AttribNodeRegistry const 24 AttribNodeRegistry const 0 0 3649 0 0 0 0 0 0 0 0 0 0

3928 25 AudioVolumeAttrib const * 0 8576 25 AudioVolumeAttrib const * 25 AudioVolumeAttrib const * 0 0 3929 0 0 0 0 0 0 0 0 0 0

3929 23 AudioVolumeAttrib const 0 8832 23 AudioVolumeAttrib const 23 AudioVolumeAttrib const 0 0 3650 0 0 0 0 0 0 0 0 0 0

3930 25 AuxBitplaneAttrib const * 0 8576 25 AuxBitplaneAttrib const * 25 AuxBitplaneAttrib const * 0 0 3931 0 0 0 0 0 0 0 0 0 0

3931 23 AuxBitplaneAttrib const 0 8832 23 AuxBitplaneAttrib const 23 AuxBitplaneAttrib const 0 0 3651 0 0 0 0 0 0 0 0 0 0

3932 20 AuxSceneData const * 0 8576 20 AuxSceneData const * 20 AuxSceneData const * 0 0 3933 0 0 0 0 0 0 0 0 0 0

3933 18 AuxSceneData const 0 8832 18 AuxSceneData const 18 AuxSceneData const 0 0 3653 0 0 0 0 0 0 0 0 0 0

3934 6 double 0 8194 6 double 6 double 0 3 0 0 0 0 0 0 0 0 0 0 0

3935 9 BamFile * 0 8576 9 BamFile * 9 BamFile * 0 0 3655 0 0 0 0 0 0 0 0 0 0

3936 9 istream * 0 8576 14 std::istream * 14 std::istream * 0 0 3937 0 0 0 0 0 0 0 0 0 0

3937 7 istream 0 2048 12 std::istream 12 std::istream 0 0 0 0 0 0 0 0 0 0 0 0 0

3938 15 TypedWritable * 0 8576 15 TypedWritable * 15 TypedWritable * 0 0 3939 0 0 0 0 0 0 0 0 0 0

3939 13 TypedWritable 0 2048 13 TypedWritable 13 TypedWritable 0 0 0 0 0 0 0 0 0 0 0 0 135
/**
 * Base class for objects that can be written to and read from Bam files.
 *
 * See also TypedObject for detailed instructions.
 */

3940 15 BamFile const * 0 8576 15 BamFile const * 15 BamFile const * 0 0 3941 0 0 0 0 0 0 0 0 0 0

3941 13 BamFile const 0 8832 13 BamFile const 13 BamFile const 0 0 3655 0 0 0 0 0 0 0 0 0 0

3942 21 TypedWritable const * 0 8576 21 TypedWritable const * 21 TypedWritable const * 0 0 3943 0 0 0 0 0 0 0 0 0 0

3943 19 TypedWritable const 0 8832 19 TypedWritable const 19 TypedWritable const 0 0 3939 0 0 0 0 0 0 0 0 0 0

3944 23 BillboardEffect const * 0 8576 23 BillboardEffect const * 23 BillboardEffect const * 0 0 3945 0 0 0 0 0 0 0 0 0 0

3945 21 BillboardEffect const 0 8832 21 BillboardEffect const 21 BillboardEffect const 0 0 3662 0 0 0 0 0 0 0 0 0 0

3946 6 Lens * 0 8576 6 Lens * 6 Lens * 0 0 3947 0 0 0 0 0 0 0 0 0 0

3947 4 Lens 0 2048 4 Lens 4 Lens 0 0 0 0 0 0 0 0 0 0 0 0 398
/**
 * A base class for any number of different kinds of lenses, linear and
 * otherwise.  Presently, this includes perspective and orthographic lenses.
 *
 * A Lens object is the main part of a Camera node, which defines the
 * fundamental interface to point-of-view for rendering.  Lenses are also used
 * in other contexts, however; for instance, a Spotlight is also defined using
 * a lens.
 */

3948 10 LensNode * 0 8576 10 LensNode * 10 LensNode * 0 0 3663 0 0 0 0 0 0 0 0 0 0

3949 12 Lens const * 0 8576 12 Lens const * 12 Lens const * 0 0 3950 0 0 0 0 0 0 0 0 0 0

3950 10 Lens const 0 8832 10 Lens const 10 Lens const 0 0 3947 0 0 0 0 0 0 0 0 0 0

3951 16 LensNode const * 0 8576 16 LensNode const * 16 LensNode const * 0 0 3952 0 0 0 0 0 0 0 0 0 0

3952 14 LensNode const 0 8832 14 LensNode const 14 LensNode const 0 0 3663 0 0 0 0 0 0 0 0 0 0

3953 14 WeakNodePath * 0 8576 14 WeakNodePath * 14 WeakNodePath * 0 0 3664 0 0 0 0 0 0 0 0 0 0

3954 14 Camera const * 0 8576 14 Camera const * 14 Camera const * 0 0 3955 0 0 0 0 0 0 0 0 0 0

3955 12 Camera const 0 8832 12 Camera const 12 Camera const 0 0 3665 0 0 0 0 0 0 0 0 0 0

3956 8 Camera * 0 8576 8 Camera * 8 Camera * 0 0 3665 0 0 0 0 0 0 0 0 0 0

3957 14 LPlane const * 0 8576 14 LPlane const * 14 LPlane const * 0 0 3674 0 0 0 0 0 0 0 0 0 0

3958 11 PlaneNode * 0 8576 11 PlaneNode * 11 PlaneNode * 0 0 3672 0 0 0 0 0 0 0 0 0 0

3959 17 PlaneNode const * 0 8576 17 PlaneNode const * 17 PlaneNode const * 0 0 3960 0 0 0 0 0 0 0 0 0 0

3960 15 PlaneNode const 0 8832 15 PlaneNode const 15 PlaneNode const 0 0 3672 0 0 0 0 0 0 0 0 0 0

3961 23 ClipPlaneAttrib const * 0 8576 23 ClipPlaneAttrib const * 23 ClipPlaneAttrib const * 0 0 3962 0 0 0 0 0 0 0 0 0 0

3962 21 ClipPlaneAttrib const 0 8832 21 ClipPlaneAttrib const 21 ClipPlaneAttrib const 0 0 3677 0 0 0 0 0 0 0 0 0 0

3963 19 ColorAttrib const * 0 8576 19 ColorAttrib const * 19 ColorAttrib const * 0 0 3964 0 0 0 0 0 0 0 0 0 0

3964 17 ColorAttrib const 0 8832 17 ColorAttrib const 17 ColorAttrib const 0 0 3679 0 0 0 0 0 0 0 0 0 0

3965 24 ColorBlendAttrib const * 0 8576 24 ColorBlendAttrib const * 24 ColorBlendAttrib const * 0 0 3966 0 0 0 0 0 0 0 0 0 0

3966 22 ColorBlendAttrib const 0 8832 22 ColorBlendAttrib const 22 ColorBlendAttrib const 0 0 3681 0 0 0 0 0 0 0 0 0 0

3967 24 ColorScaleAttrib const * 0 8576 24 ColorScaleAttrib const * 24 ColorScaleAttrib const * 0 0 3968 0 0 0 0 0 0 0 0 0 0

3968 22 ColorScaleAttrib const 0 8832 22 ColorScaleAttrib const 22 ColorScaleAttrib const 0 0 3684 0 0 0 0 0 0 0 0 0 0

3969 24 ColorWriteAttrib const * 0 8576 24 ColorWriteAttrib const * 24 ColorWriteAttrib const * 0 0 3970 0 0 0 0 0 0 0 0 0 0

3970 22 ColorWriteAttrib const 0 8832 22 ColorWriteAttrib const 22 ColorWriteAttrib const 0 0 3687 0 0 0 0 0 0 0 0 0 0

3971 21 CompassEffect const * 0 8576 21 CompassEffect const * 21 CompassEffect const * 0 0 3972 0 0 0 0 0 0 0 0 0 0

3972 19 CompassEffect const 0 8832 19 CompassEffect const 19 CompassEffect const 0 0 3690 0 0 0 0 0 0 0 0 0 0

3973 14 CullBinEnums * 0 8576 14 CullBinEnums * 14 CullBinEnums * 0 0 3692 0 0 0 0 0 0 0 0 0 0

3974 20 CullBinEnums const * 0 8576 20 CullBinEnums const * 20 CullBinEnums const * 0 0 3975 0 0 0 0 0 0 0 0 0 0

3975 18 CullBinEnums const 0 8832 18 CullBinEnums const 18 CullBinEnums const 0 0 3692 0 0 0 0 0 0 0 0 0 0

3976 10 GeomNode * 0 8576 10 GeomNode * 10 GeomNode * 0 0 3694 0 0 0 0 0 0 0 0 0 0

3977 16 GeomNode const * 0 8576 16 GeomNode const * 16 GeomNode const * 0 0 3978 0 0 0 0 0 0 0 0 0 0

3978 14 GeomNode const 0 8832 14 GeomNode const 14 GeomNode const 0 0 3694 0 0 0 0 0 0 0 0 0 0

3979 10 Geom const 0 8832 10 Geom const 10 Geom const 0 0 3980 0 0 0 0 0 0 0 0 0 0

3980 4 Geom 0 2048 4 Geom 4 Geom 0 0 0 0 0 0 0 0 0 0 0 0 418
/**
 * A container for geometry primitives.  This class associates one or more
 * GeomPrimitive objects with a table of vertices defined by a GeomVertexData
 * object.  All of the primitives stored in a particular Geom are drawn from
 * the same set of vertices (each primitive uses a subset of all of the
 * vertices in the table), and all of them must be rendered at the same time,
 * in the same graphics state.
 */

3981 12 Geom const * 0 8576 12 Geom const * 12 Geom const * 0 0 3979 0 0 0 0 0 0 0 0 0 0

3982 6 Geom * 0 8576 6 Geom * 6 Geom * 0 0 3980 0 0 0 0 0 0 0 0 0 0

3983 21 CullBinAttrib const * 0 8576 21 CullBinAttrib const * 21 CullBinAttrib const * 0 0 3984 0 0 0 0 0 0 0 0 0 0

3984 19 CullBinAttrib const 0 8832 19 CullBinAttrib const 19 CullBinAttrib const 0 0 3695 0 0 0 0 0 0 0 0 0 0

3985 16 CullBinManager * 0 8576 16 CullBinManager * 16 CullBinManager * 0 0 3696 0 0 0 0 0 0 0 0 0 0

3986 7 BinType 0 2367488 23 CullBinManager::BinType 23 CullBinManager::BinType 3696 0 3693 0 0 0 0 0 0 0 0 0 0

3987 22 CullBinManager const * 0 8576 22 CullBinManager const * 22 CullBinManager const * 0 0 3988 0 0 0 0 0 0 0 0 0 0

3988 20 CullBinManager const 0 8832 20 CullBinManager const 20 CullBinManager const 0 0 3696 0 0 0 0 0 0 0 0 0 0

3989 22 CullFaceAttrib const * 0 8576 22 CullFaceAttrib const * 22 CullFaceAttrib const * 0 0 3990 0 0 0 0 0 0 0 0 0 0

3990 20 CullFaceAttrib const 0 8832 20 CullFaceAttrib const 20 CullFaceAttrib const 0 0 3697 0 0 0 0 0 0 0 0 0 0

3991 19 CullTraverserData * 0 8576 19 CullTraverserData * 19 CullTraverserData * 0 0 3700 0 0 0 0 0 0 0 0 0 0

3992 21 CullTraverser const * 0 8576 21 CullTraverser const * 21 CullTraverser const * 0 0 3993 0 0 0 0 0 0 0 0 0 0

3993 19 CullTraverser const 0 8832 19 CullTraverser const 19 CullTraverser const 0 0 3707 0 0 0 0 0 0 0 0 0 0

3994 16 DrawMask const * 0 8576 16 DrawMask const * 16 DrawMask const * 0 0 3995 0 0 0 0 0 0 0 0 0 0

3995 14 DrawMask const 0 8832 14 DrawMask const 14 DrawMask const 0 0 3624 0 0 0 0 0 0 0 0 0 0

3996 18 SceneSetup const * 0 8576 18 SceneSetup const * 18 SceneSetup const * 0 0 3997 0 0 0 0 0 0 0 0 0 0

3997 16 SceneSetup const 0 8832 16 SceneSetup const 16 SceneSetup const 0 0 3701 0 0 0 0 0 0 0 0 0 0

3998 12 SceneSetup * 0 8576 12 SceneSetup * 12 SceneSetup * 0 0 3701 0 0 0 0 0 0 0 0 0 0

3999 11 Fog const * 0 8576 11 Fog const * 11 Fog const * 0 0 4000 0 0 0 0 0 0 0 0 0 0

4000 9 Fog const 0 8832 9 Fog const 9 Fog const 0 0 3702 0 0 0 0 0 0 0 0 0 0

4001 17 FogAttrib const * 0 8576 17 FogAttrib const * 17 FogAttrib const * 0 0 4002 0 0 0 0 0 0 0 0 0 0

4002 15 FogAttrib const 0 8832 15 FogAttrib const 15 FogAttrib const 0 0 3705 0 0 0 0 0 0 0 0 0 0

4003 25 GeometricBoundingVolume * 0 8576 25 GeometricBoundingVolume * 25 GeometricBoundingVolume * 0 0 4004 0 0 0 0 0 0 0 0 0 0

4004 23 GeometricBoundingVolume 0 2048 23 GeometricBoundingVolume 23 GeometricBoundingVolume 0 0 0 0 0 0 0 0 0 0 0 0 167
/**
 * This is another abstract class, for a general class of bounding volumes
 * that actually enclose points in 3-d space, such as BSP's and bounding
 * spheres.
 */

4005 13 CullHandler * 0 8576 13 CullHandler * 13 CullHandler * 0 0 4006 0 0 0 0 0 0 0 0 0 0

4006 11 CullHandler 0 2048 11 CullHandler 11 CullHandler 0 0 0 0 0 0 0 0 0 0 0 0 0

4007 15 PortalClipper * 0 8576 15 PortalClipper * 15 PortalClipper * 0 0 4008 0 0 0 0 0 0 0 0 0 0

4008 13 PortalClipper 0 2048 13 PortalClipper 13 PortalClipper 0 0 0 0 0 0 0 0 0 0 0 0 0

4009 28 GeomDrawCallbackData const * 0 8576 28 GeomDrawCallbackData const * 28 GeomDrawCallbackData const * 0 0 4010 0 0 0 0 0 0 0 0 0 0

4010 26 GeomDrawCallbackData const 0 8832 26 GeomDrawCallbackData const 26 GeomDrawCallbackData const 0 0 3708 0 0 0 0 0 0 0 0 0 0

4011 16 CullableObject * 0 8576 16 CullableObject * 16 CullableObject * 0 0 4012 0 0 0 0 0 0 0 0 0 0

4012 14 CullableObject 0 1050624 14 CullableObject 14 CullableObject 0 0 0 0 0 0 0 0 0 0 0 0 133
/**
 * The smallest atom of cull.  This is normally just a Geom and its associated
 * state, but it also contain a draw callback.
 */

4013 22 GeomDrawCallbackData * 0 8576 22 GeomDrawCallbackData * 22 GeomDrawCallbackData * 0 0 3708 0 0 0 0 0 0 0 0 0 0

4014 27 RescaleNormalAttrib const * 0 8576 27 RescaleNormalAttrib const * 27 RescaleNormalAttrib const * 0 0 4015 0 0 0 0 0 0 0 0 0 0

4015 25 RescaleNormalAttrib const 0 8832 25 RescaleNormalAttrib const 25 RescaleNormalAttrib const 0 0 3710 0 0 0 0 0 0 0 0 0 0

4016 18 CullResult const * 0 8576 18 CullResult const * 18 CullResult const * 0 0 4017 0 0 0 0 0 0 0 0 0 0

4017 16 CullResult const 0 8832 16 CullResult const 16 CullResult const 0 0 3712 0 0 0 0 0 0 0 0 0 0

4018 12 CullResult * 0 8576 12 CullResult * 12 CullResult * 0 0 3712 0 0 0 0 0 0 0 0 0 0

4019 7 CullBin 0 1050624 7 CullBin 7 CullBin 0 0 0 0 0 0 0 0 0 0 0 0 320
/**
 * A collection of Geoms and their associated state, for a particular scene.
 * The cull traversal (and the BinCullHandler) assigns Geoms to bins as it
 * comes across them.
 *
 * This is an abstract base class; derived classes like CullBinStateSorted and
 * CullBinBackToFront provide the actual implementation.
 */

4020 9 CullBin * 0 8576 9 CullBin * 9 CullBin * 0 0 4019 0 0 0 0 0 0 0 0 0 0

4021 25 DepthOffsetAttrib const * 0 8576 25 DepthOffsetAttrib const * 25 DepthOffsetAttrib const * 0 0 4022 0 0 0 0 0 0 0 0 0 0

4022 23 DepthOffsetAttrib const 0 8832 23 DepthOffsetAttrib const 23 DepthOffsetAttrib const 0 0 3715 0 0 0 0 0 0 0 0 0 0

4023 23 DepthTestAttrib const * 0 8576 23 DepthTestAttrib const * 23 DepthTestAttrib const * 0 0 4024 0 0 0 0 0 0 0 0 0 0

4024 21 DepthTestAttrib const 0 8832 21 DepthTestAttrib const 21 DepthTestAttrib const 0 0 3716 0 0 0 0 0 0 0 0 0 0

4025 24 DepthWriteAttrib const * 0 8576 24 DepthWriteAttrib const * 24 DepthWriteAttrib const * 0 0 4026 0 0 0 0 0 0 0 0 0 0

4026 22 DepthWriteAttrib const 0 8832 22 DepthWriteAttrib const 22 DepthWriteAttrib const 0 0 3717 0 0 0 0 0 0 0 0 0 0

4027 13 Light const * 0 8576 13 Light const * 13 Light const * 0 0 4028 0 0 0 0 0 0 0 0 0 0

4028 11 Light const 0 8832 11 Light const 11 Light const 0 0 3719 0 0 0 0 0 0 0 0 0 0

4029 19 LightAttrib const * 0 8576 19 LightAttrib const * 19 LightAttrib const * 0 0 4030 0 0 0 0 0 0 0 0 0 0

4030 17 LightAttrib const 0 8832 17 LightAttrib const 17 LightAttrib const 0 0 3720 0 0 0 0 0 0 0 0 0 0

4031 23 LightRampAttrib const * 0 8576 23 LightRampAttrib const * 23 LightRampAttrib const * 0 0 4032 0 0 0 0 0 0 0 0 0 0

4032 21 LightRampAttrib const 0 8832 21 LightRampAttrib const 21 LightRampAttrib const 0 0 3722 0 0 0 0 0 0 0 0 0 0

4033 14 Loader const * 0 8576 14 Loader const * 14 Loader const * 0 0 4034 0 0 0 0 0 0 0 0 0 0

4034 12 Loader const 0 8832 12 Loader const 12 Loader const 0 0 3724 0 0 0 0 0 0 0 0 0 0

4035 18 AsyncTaskManager * 0 8576 18 AsyncTaskManager * 18 AsyncTaskManager * 0 0 4036 0 0 0 0 0 0 0 0 0 0

4036 16 AsyncTaskManager 0 2048 16 AsyncTaskManager 16 AsyncTaskManager 0 0 0 0 0 0 0 0 0 0 0 0 674
/**
 * A class to manage a loose queue of isolated tasks, which can be performed
 * either synchronously (in the foreground thread) or asynchronously (by a
 * background thread).
 *
 * The AsyncTaskManager is actually a collection of AsyncTaskChains, each of
 * which maintains a list of tasks.  Each chain can be either foreground or
 * background (it may run only in the main thread, or it may be serviced by
 * one or more background threads). See AsyncTaskChain for more information.
 *
 * If you do not require background processing, it is perfectly acceptable to
 * create only one AsyncTaskChain, which runs in the main thread.  This is a
 * common configuration.
 */

4037 11 AsyncTask * 0 8576 11 AsyncTask * 11 AsyncTask * 0 0 3734 0 0 0 0 0 0 0 0 0 0

4038 21 LoaderOptions const * 0 8576 21 LoaderOptions const * 21 LoaderOptions const * 0 0 3738 0 0 0 0 0 0 0 0 0 0

4039 21 TypedReferenceCount * 0 8576 21 TypedReferenceCount * 21 TypedReferenceCount * 0 0 3654 0 0 0 0 0 0 0 0 0 0

4040 9 Results * 0 8576 17 Loader::Results * 17 Loader::Results * 0 0 3725 0 0 0 0 0 0 0 0 0 0

4041 15 Results const * 0 8576 23 Loader::Results const * 23 Loader::Results const * 0 0 4042 0 0 0 0 0 0 0 0 0 0

4042 13 Results const 0 8832 21 Loader::Results const 21 Loader::Results const 0 0 3725 0 0 0 0 0 0 0 0 0 0

4043 22 LoaderFileType const * 0 8576 22 LoaderFileType const * 22 LoaderFileType const * 0 0 4044 0 0 0 0 0 0 0 0 0 0

4044 20 LoaderFileType const 0 8832 20 LoaderFileType const 20 LoaderFileType const 0 0 3726 0 0 0 0 0 0 0 0 0 0

4045 30 LoaderFileTypeRegistry const * 0 8576 30 LoaderFileTypeRegistry const * 30 LoaderFileTypeRegistry const * 0 0 4046 0 0 0 0 0 0 0 0 0 0

4046 28 LoaderFileTypeRegistry const 0 8832 28 LoaderFileTypeRegistry const 28 LoaderFileTypeRegistry const 0 0 3728 0 0 0 0 0 0 0 0 0 0

4047 24 LoaderFileTypeRegistry * 0 8576 24 LoaderFileTypeRegistry * 24 LoaderFileTypeRegistry * 0 0 3728 0 0 0 0 0 0 0 0 0 0

4048 22 MaterialAttrib const * 0 8576 22 MaterialAttrib const * 22 MaterialAttrib const * 0 0 4049 0 0 0 0 0 0 0 0 0 0

4049 20 MaterialAttrib const 0 8832 20 MaterialAttrib const 20 MaterialAttrib const 0 0 3730 0 0 0 0 0 0 0 0 0 0

4050 27 ModelFlattenRequest const * 0 8576 27 ModelFlattenRequest const * 27 ModelFlattenRequest const * 0 0 4051 0 0 0 0 0 0 0 0 0 0

4051 25 ModelFlattenRequest const 0 8832 25 ModelFlattenRequest const 25 ModelFlattenRequest const 0 0 3733 0 0 0 0 0 0 0 0 0 0

4052 21 ModelFlattenRequest * 0 8576 21 ModelFlattenRequest * 21 ModelFlattenRequest * 0 0 3733 0 0 0 0 0 0 0 0 0 0

4053 24 ModelLoadRequest const * 0 8576 24 ModelLoadRequest const * 24 ModelLoadRequest const * 0 0 4054 0 0 0 0 0 0 0 0 0 0

4054 22 ModelLoadRequest const 0 8832 22 ModelLoadRequest const 22 ModelLoadRequest const 0 0 3735 0 0 0 0 0 0 0 0 0 0

4055 18 ModelLoadRequest * 0 8576 18 ModelLoadRequest * 18 ModelLoadRequest * 0 0 3735 0 0 0 0 0 0 0 0 0 0

4056 11 ModelNode * 0 8576 11 ModelNode * 11 ModelNode * 0 0 3741 0 0 0 0 0 0 0 0 0 0

4057 17 ModelNode const * 0 8576 17 ModelNode const * 17 ModelNode const * 0 0 4058 0 0 0 0 0 0 0 0 0 0

4058 15 ModelNode const 0 8832 15 ModelNode const 15 ModelNode const 0 0 3741 0 0 0 0 0 0 0 0 0 0

4059 11 ModelRoot * 0 8576 11 ModelRoot * 11 ModelRoot * 0 0 3743 0 0 0 0 0 0 0 0 0 0

4060 17 ModelRoot const * 0 8576 17 ModelRoot const * 17 ModelRoot const * 0 0 4061 0 0 0 0 0 0 0 0 0 0

4061 15 ModelRoot const 0 8832 15 ModelRoot const 15 ModelRoot const 0 0 3743 0 0 0 0 0 0 0 0 0 0

4062 22 ModelReference const * 0 8576 33 ModelRoot::ModelReference const * 33 ModelRoot::ModelReference const * 0 0 4063 0 0 0 0 0 0 0 0 0 0

4063 20 ModelReference const 0 8832 31 ModelRoot::ModelReference const 31 ModelRoot::ModelReference const 0 0 3746 0 0 0 0 0 0 0 0 0 0

4064 24 ModelSaveRequest const * 0 8576 24 ModelSaveRequest const * 24 ModelSaveRequest const * 0 0 4065 0 0 0 0 0 0 0 0 0 0

4065 22 ModelSaveRequest const 0 8832 22 ModelSaveRequest const 22 ModelSaveRequest const 0 0 3749 0 0 0 0 0 0 0 0 0 0

4066 18 ModelSaveRequest * 0 8576 18 ModelSaveRequest * 18 ModelSaveRequest * 0 0 3749 0 0 0 0 0 0 0 0 0 0

4067 21 TextureAttrib const * 0 8576 21 TextureAttrib const * 21 TextureAttrib const * 0 0 4068 0 0 0 0 0 0 0 0 0 0

4068 19 TextureAttrib const 0 8832 19 TextureAttrib const 19 TextureAttrib const 0 0 3750 0 0 0 0 0 0 0 0 0 0

4069 20 TextureStage const * 0 8576 20 TextureStage const * 20 TextureStage const * 0 0 4070 0 0 0 0 0 0 0 0 0 0

4070 18 TextureStage const 0 8832 18 TextureStage const 18 TextureStage const 0 0 3752 0 0 0 0 0 0 0 0 0 0

4071 4 Mode 0 2367488 18 TexGenAttrib::Mode 18 TexGenAttrib::Mode 3757 0 3592 0 0 0 0 0 0 0 0 0 0

4072 20 TexGenAttrib const * 0 8576 20 TexGenAttrib const * 20 TexGenAttrib const * 0 0 4073 0 0 0 0 0 0 0 0 0 0

4073 18 TexGenAttrib const 0 8832 18 TexGenAttrib const 18 TexGenAttrib const 0 0 3757 0 0 0 0 0 0 0 0 0 0

4074 14 OccluderNode * 0 8576 14 OccluderNode * 14 OccluderNode * 0 0 3758 0 0 0 0 0 0 0 0 0 0

4075 20 OccluderNode const * 0 8576 20 OccluderNode const * 20 OccluderNode const * 0 0 4076 0 0 0 0 0 0 0 0 0 0

4076 18 OccluderNode const 0 8832 18 OccluderNode const 18 OccluderNode const 0 0 3758 0 0 0 0 0 0 0 0 0 0

4077 22 OccluderEffect const * 0 8576 22 OccluderEffect const * 22 OccluderEffect const * 0 0 4078 0 0 0 0 0 0 0 0 0 0

4078 20 OccluderEffect const 0 8832 20 OccluderEffect const 20 OccluderEffect const 0 0 3759 0 0 0 0 0 0 0 0 0 0

4079 21 PolylightNode const * 0 8576 21 PolylightNode const * 21 PolylightNode const * 0 0 4080 0 0 0 0 0 0 0 0 0 0

4080 19 PolylightNode const 0 8832 19 PolylightNode const 19 PolylightNode const 0 0 3760 0 0 0 0 0 0 0 0 0 0

4081 15 PolylightNode * 0 8576 15 PolylightNode * 15 PolylightNode * 0 0 3760 0 0 0 0 0 0 0 0 0 0

4082 18 LightGroup const * 0 8576 35 PolylightEffect::LightGroup const * 35 PolylightEffect::LightGroup const * 0 0 4083 0 0 0 0 0 0 0 0 0 0

4083 16 LightGroup const 0 8832 33 PolylightEffect::LightGroup const 33 PolylightEffect::LightGroup const 0 0 3765 0 0 0 0 0 0 0 0 0 0

4084 23 PolylightEffect const * 0 8576 23 PolylightEffect const * 23 PolylightEffect const * 0 0 4085 0 0 0 0 0 0 0 0 0 0

4085 21 PolylightEffect const 0 8832 21 PolylightEffect const 21 PolylightEffect const 0 0 3763 0 0 0 0 0 0 0 0 0 0

4086 20 ShaderAttrib const * 0 8576 20 ShaderAttrib const * 20 ShaderAttrib const * 0 0 4087 0 0 0 0 0 0 0 0 0 0

4087 18 ShaderAttrib const 0 8832 18 ShaderAttrib const 18 ShaderAttrib const 0 0 3767 0 0 0 0 0 0 0 0 0 0

4088 14 InternalName * 0 8576 14 InternalName * 14 InternalName * 0 0 3879 0 0 0 0 0 0 0 0 0 0

4089 11 LVecBase4 * 0 8576 11 LVecBase4 * 11 LVecBase4 * 0 0 3686 0 0 0 0 0 0 0 0 0 0

4090 14 SamplerState * 0 8576 14 SamplerState * 14 SamplerState * 0 0 3756 0 0 0 0 0 0 0 0 0 0

4091 12 ShaderBuffer 0 2048 12 ShaderBuffer 12 ShaderBuffer 0 0 0 0 0 0 0 0 0 0 0 0 93
/**
 * This is a generic buffer object that lives in graphics memory.
 *
 * @since 1.10.0
 */

4092 14 ShaderBuffer * 0 8576 14 ShaderBuffer * 14 ShaderBuffer * 0 0 4091 0 0 0 0 0 0 0 0 0 0

4093 24 ShowBoundsEffect const * 0 8576 24 ShowBoundsEffect const * 24 ShowBoundsEffect const * 0 0 4094 0 0 0 0 0 0 0 0 0 0

4094 22 ShowBoundsEffect const 0 8832 22 ShowBoundsEffect const 22 ShowBoundsEffect const 0 0 3772 0 0 0 0 0 0 0 0 0 0

4095 26 TexProjectorEffect const * 0 8576 26 TexProjectorEffect const * 26 TexProjectorEffect const * 0 0 4096 0 0 0 0 0 0 0 0 0 0

4096 24 TexProjectorEffect const 0 8832 24 TexProjectorEffect const 24 TexProjectorEffect const 0 0 3773 0 0 0 0 0 0 0 0 0 0

4097 21 ScissorEffect const * 0 8576 21 ScissorEffect const * 21 ScissorEffect const * 0 0 4098 0 0 0 0 0 0 0 0 0 0

4098 19 ScissorEffect const 0 8832 19 ScissorEffect const 19 ScissorEffect const 0 0 3774 0 0 0 0 0 0 0 0 0 0

4099 19 SceneGraphReducer * 0 8576 19 SceneGraphReducer * 19 SceneGraphReducer * 0 0 3775 0 0 0 0 0 0 0 0 0 0

4100 25 SceneGraphReducer const * 0 8576 25 SceneGraphReducer const * 25 SceneGraphReducer const * 0 0 4101 0 0 0 0 0 0 0 0 0 0

4101 23 SceneGraphReducer const 0 8832 23 SceneGraphReducer const 23 SceneGraphReducer const 0 0 3775 0 0 0 0 0 0 0 0 0 0

4102 26 AccumulatedAttribs const * 0 8576 26 AccumulatedAttribs const * 26 AccumulatedAttribs const * 0 0 4103 0 0 0 0 0 0 0 0 0 0

4103 24 AccumulatedAttribs const 0 8832 24 AccumulatedAttribs const 24 AccumulatedAttribs const 0 0 4104 0 0 0 0 0 0 0 0 0 0

4104 18 AccumulatedAttribs 0 1050624 18 AccumulatedAttribs 18 AccumulatedAttribs 0 0 0 0 0 0 0 0 0 0 0 0 206
/**
 * This class is used by the SceneGraphReducer to maintain and accumulate the
 * set of attributes we have encountered on each node that might eventually be
 * applied to the vertices at the leaves.
 */

4105 17 GeomTransformer * 0 8576 17 GeomTransformer * 17 GeomTransformer * 0 0 4106 0 0 0 0 0 0 0 0 0 0

4106 15 GeomTransformer 0 1050624 15 GeomTransformer 15 GeomTransformer 0 0 0 0 0 0 0 0 0 0 0 0 630
/**
 * An object specifically designed to transform the vertices of a Geom without
 * disturbing indexing or affecting any other Geoms that may share the same
 * vertex arrays, and without needlessly wasting memory when different Geoms
 * sharing the same vertex arrays are transformed by the same amount.
 *
 * If you create a single GeomTransformer and use it to transform a number of
 * different Geoms by various transformations, then those Geoms which happen
 * to share the same arrays and are transformed by the same amounts will still
 * share the same arrays as each other (but different from the original
 * arrays).
 */

4107 15 ParamNodePath * 0 8576 15 ParamNodePath * 15 ParamNodePath * 0 0 3780 0 0 0 0 0 0 0 0 0 0

4108 21 ParamNodePath const * 0 8576 21 ParamNodePath const * 21 ParamNodePath const * 0 0 4109 0 0 0 0 0 0 0 0 0 0

4109 19 ParamNodePath const 0 8832 19 ParamNodePath const 19 ParamNodePath const 0 0 3780 0 0 0 0 0 0 0 0 0 0

4110 12 PortalNode * 0 8576 12 PortalNode * 12 PortalNode * 0 0 3782 0 0 0 0 0 0 0 0 0 0

4111 12 PortalMask * 0 8576 12 PortalMask * 12 PortalMask * 0 0 3783 0 0 0 0 0 0 0 0 0 0

4112 18 PortalNode const * 0 8576 18 PortalNode const * 18 PortalNode const * 0 0 4113 0 0 0 0 0 0 0 0 0 0

4113 16 PortalNode const 0 8832 16 PortalNode const 16 PortalNode const 0 0 3782 0 0 0 0 0 0 0 0 0 0

4114 21 ScissorAttrib const * 0 8576 21 ScissorAttrib const * 21 ScissorAttrib const * 0 0 4115 0 0 0 0 0 0 0 0 0 0

4115 19 ScissorAttrib const 0 8832 19 ScissorAttrib const 19 ScissorAttrib const 0 0 3784 0 0 0 0 0 0 0 0 0 0

4116 24 ShadeModelAttrib const * 0 8576 24 ShadeModelAttrib const * 24 ShadeModelAttrib const * 0 0 4117 0 0 0 0 0 0 0 0 0 0

4117 22 ShadeModelAttrib const 0 8832 22 ShadeModelAttrib const 22 ShadeModelAttrib const 0 0 3785 0 0 0 0 0 0 0 0 0 0

4118 21 StencilAttrib const * 0 8576 21 StencilAttrib const * 21 StencilAttrib const * 0 0 4119 0 0 0 0 0 0 0 0 0 0

4119 19 StencilAttrib const 0 8832 19 StencilAttrib const 19 StencilAttrib const 0 0 3787 0 0 0 0 0 0 0 0 0 0

4120 8 Shader * 0 8576 8 Shader * 8 Shader * 0 0 3771 0 0 0 0 0 0 0 0 0 0

0
178
4121 3 pos 0 2 3579 1931 0 0 0 0 0 0 0 19 TransformState::pos 70
// Force interrogate to make a copy as a temporary solution for #1625.

4122 3 hpr 0 2 3581 1932 0 0 0 0 0 0 0 19 TransformState::hpr 0

4123 4 quat 0 2 3583 1933 0 0 0 0 0 0 0 20 TransformState::quat 0

4124 9 norm_quat 0 2 3583 1934 0 0 0 0 0 0 0 25 TransformState::norm_quat 0

4125 5 scale 0 2 3581 1935 0 0 0 0 0 0 0 21 TransformState::scale 0

4126 5 shear 0 2 3581 1937 0 0 0 0 0 0 0 21 TransformState::shear 0

4127 3 mat 0 2 3585 1938 0 0 0 0 0 0 0 19 TransformState::mat 0

4128 4 slot 0 2 3590 2008 0 0 0 0 0 0 0 18 RenderAttrib::slot 0

4129 4 mode 0 2 3594 2012 0 0 0 0 0 0 0 22 RenderModeAttrib::mode 0

4130 9 thickness 0 2 3595 2013 0 0 0 0 0 0 0 27 RenderModeAttrib::thickness 0

4131 11 perspective 0 2 3597 2014 0 0 0 0 0 0 0 29 RenderModeAttrib::perspective 0

4132 15 wireframe_color 0 2 3598 2015 0 0 0 0 0 0 0 33 RenderModeAttrib::wireframe_color 0

4133 10 class_slot 0 2 3590 2017 0 0 0 0 0 0 0 28 RenderModeAttrib::class_slot 0

4134 10 class_slot 0 2 3590 2032 0 0 0 0 0 0 0 27 TexMatrixAttrib::class_slot 0

4135 7 attribs 0 138 3604 2050 0 2049 0 0 0 0 0 20 RenderState::attribs 0

4136 15 reference_alpha 0 2 3595 2087 0 0 0 0 0 0 0 32 AlphaTestAttrib::reference_alpha 0

4137 4 mode 0 2 3591 2088 0 0 0 0 0 0 0 21 AlphaTestAttrib::mode 0

4138 10 class_slot 0 2 3590 2089 0 0 0 0 0 0 0 27 AlphaTestAttrib::class_slot 0

4139 4 mode 0 2 3609 2094 0 0 0 0 0 0 0 21 AntialiasAttrib::mode 0

4140 9 mode_type 0 2 3609 2095 0 0 0 0 0 0 0 26 AntialiasAttrib::mode_type 0

4141 12 mode_quality 0 2 3609 2096 0 0 0 0 0 0 0 29 AntialiasAttrib::mode_quality 0

4142 10 class_slot 0 2 3590 2097 0 0 0 0 0 0 0 27 AntialiasAttrib::class_slot 0

4143 5 state 0 6 3615 2168 2167 0 0 0 0 0 0 16 PandaNode::state 0

4144 7 effects 0 6 3616 2171 2170 0 0 0 0 0 0 18 PandaNode::effects 0

4145 9 transform 0 6 3617 2174 2173 0 0 0 0 0 0 20 PandaNode::transform 0

4146 14 prev_transform 0 2 3617 2177 0 0 0 0 0 0 0 25 PandaNode::prev_transform 0

4147 4 tags 0 686 3618 2182 2181 2183 0 2184 2185 0 2186 15 PandaNode::tags 0

4148 11 python_tags 0 2 3620 2188 0 0 0 0 0 0 0 22 PandaNode::python_tags 0

4149 11 overall_bit 0 2 3624 2204 0 0 0 0 0 0 0 22 PandaNode::overall_bit 0

4150 15 all_camera_mask 0 2 3624 2205 0 0 0 0 0 0 0 26 PandaNode::all_camera_mask 0

4151 14 overall_hidden 0 6 3597 2206 2207 0 0 0 0 0 0 25 PandaNode::overall_hidden 0

4152 17 draw_control_mask 0 2 3624 2209 0 0 0 0 0 0 0 28 PandaNode::draw_control_mask 0

4153 14 draw_show_mask 0 2 3624 2210 0 0 0 0 0 0 0 25 PandaNode::draw_show_mask 0

4154 17 into_collide_mask 0 6 3627 2214 2213 0 0 0 0 0 0 28 PandaNode::into_collide_mask 0

4155 18 legal_collide_mask 0 2 3627 2215 0 0 0 0 0 0 0 29 PandaNode::legal_collide_mask 0

4156 11 bounds_type 0 6 3628 2225 2224 0 0 0 0 0 0 22 PandaNode::bounds_type 0

4157 15 nested_vertices 0 2 3590 2230 0 0 0 0 0 0 0 26 PandaNode::nested_vertices 0

4158 15 internal_bounds 0 2 3630 2231 0 0 0 0 0 0 0 26 PandaNode::internal_bounds 0

4159 17 internal_vertices 0 2 3590 2232 0 0 0 0 0 0 0 28 PandaNode::internal_vertices 0

4160 12 bounds_stale 0 2 3597 2235 0 0 0 0 0 0 0 23 PandaNode::bounds_stale 0

4161 5 final 0 6 3597 2237 2236 0 0 0 0 0 0 16 PandaNode::final 0

4162 8 children 0 2 3632 2254 0 0 0 0 0 0 0 19 PandaNode::children 0

4163 7 stashed 0 2 3633 2151 0 0 0 0 0 0 0 18 PandaNode::stashed 0

4164 7 parents 0 2 3634 2255 0 0 0 0 0 0 0 18 PandaNode::parents 0

4165 4 mode 0 2 3636 2259 0 0 0 0 0 0 0 24 TransparencyAttrib::mode 0

4166 10 class_slot 0 2 3590 2260 0 0 0 0 0 0 0 30 TransparencyAttrib::class_slot 0

4167 9 operation 0 2 3638 2266 0 0 0 0 0 0 0 24 LogicOpAttrib::operation 0

4168 10 class_slot 0 2 3590 2267 0 0 0 0 0 0 0 25 LogicOpAttrib::class_slot 0

4169 5 nodes 0 66 3647 2360 0 0 0 0 2359 0 0 15 NodePath::nodes 0

4170 9 ancestors 0 66 3645 2361 0 0 0 0 2359 0 0 19 NodePath::ancestors 0

4171 10 error_type 0 2 3646 2362 0 0 0 0 0 0 0 20 NodePath::error_type 0

4172 8 children 0 2 3648 2371 0 0 0 0 0 0 0 18 NodePath::children 0

4173 16 stashed_children 0 2 3648 2374 0 0 0 0 0 0 0 26 NodePath::stashed_children 0

4174 6 parent 0 10 3645 2418 0 2417 0 0 0 0 0 16 NodePath::parent 0

4175 4 sort 0 2 3590 2419 0 0 0 0 0 0 0 14 NodePath::sort 0

4176 8 net_tags 0 138 3618 2717 0 2718 0 0 0 0 0 18 NodePath::net_tags 0

4177 4 tags 0 2 3620 2720 0 0 0 0 0 0 0 14 NodePath::tags 0

4178 11 python_tags 0 2 3620 2721 0 0 0 0 0 0 0 21 NodePath::python_tags 0

4179 4 name 0 6 3618 2733 2732 0 0 0 0 0 0 14 NodePath::name 0

4180 6 volume 0 10 3595 2759 0 2758 0 0 0 0 0 25 AudioVolumeAttrib::volume 0

4181 10 class_slot 0 2 3590 2761 0 0 0 0 0 0 0 29 AudioVolumeAttrib::class_slot 0

4182 7 outputs 0 2 3590 2766 0 0 0 0 0 0 0 26 AuxBitplaneAttrib::outputs 0

4183 10 class_slot 0 2 3590 2767 0 0 0 0 0 0 0 29 AuxBitplaneAttrib::class_slot 0

4184 12 file_version 0 2 3620 2800 0 0 0 0 0 0 0 21 BamFile::file_version 0

4185 11 file_endian 0 2 3657 2794 0 0 0 0 0 0 0 20 BamFile::file_endian 0

4186 20 file_stdfloat_double 0 2 3597 2795 0 0 0 0 0 0 0 29 BamFile::file_stdfloat_double 0

4187 6 reader 0 2 3658 2798 0 0 0 0 0 0 0 15 BamFile::reader 0

4188 6 writer 0 2 3660 2799 0 0 0 0 0 0 0 15 BamFile::writer 0

4189 6 active 0 6 3597 2845 2844 0 0 0 0 0 0 14 Camera::active 0

4190 5 scene 0 6 3666 2847 2846 0 0 0 0 0 0 13 Camera::scene 0

4191 15 display_regions 0 66 3667 2849 0 0 0 0 2848 0 0 23 Camera::display_regions 0

4192 11 camera_mask 0 6 3624 2851 2850 0 0 0 0 0 0 19 Camera::camera_mask 0

4193 11 cull_center 0 6 3666 2853 2852 0 0 0 0 0 0 19 Camera::cull_center 0

4194 11 cull_bounds 0 6 3669 2855 2854 0 0 0 0 0 0 19 Camera::cull_bounds 0

4195 10 lod_center 0 6 3666 2857 2856 0 0 0 0 0 0 18 Camera::lod_center 0

4196 13 initial_state 0 6 3615 2859 2858 0 0 0 0 0 0 21 Camera::initial_state 0

4197 13 tag_state_key 0 6 3670 2861 2860 0 0 0 0 0 0 21 Camera::tag_state_key 0

4198 9 lod_scale 0 6 3595 2863 2862 0 0 0 0 0 0 17 Camera::lod_scale 0

4199 10 tag_states 0 174 3615 2868 2864 2867 0 2865 0 0 0 18 Camera::tag_states 0

4200 14 aux_scene_data 0 174 3671 2871 2869 2871 0 2870 0 0 0 22 Camera::aux_scene_data 0

4201 5 plane 0 6 3674 2877 2876 0 0 0 0 0 0 16 PlaneNode::plane 0

4202 9 viz_scale 0 6 3595 2879 2878 0 0 0 0 0 0 20 PlaneNode::viz_scale 0

4203 8 priority 0 6 3590 2881 2880 0 0 0 0 0 0 19 PlaneNode::priority 0

4204 11 clip_effect 0 6 3590 2883 2882 0 0 0 0 0 0 22 PlaneNode::clip_effect 0

4205 10 class_slot 0 2 3590 2908 0 0 0 0 0 0 0 27 ClipPlaneAttrib::class_slot 0

4206 10 color_type 0 2 3680 2915 0 0 0 0 0 0 0 23 ColorAttrib::color_type 0

4207 5 color 0 2 3598 2916 0 0 0 0 0 0 0 18 ColorAttrib::color 0

4208 10 class_slot 0 2 3590 2917 0 0 0 0 0 0 0 23 ColorAttrib::class_slot 0

4209 8 rgb_mode 0 2 3682 2923 0 0 0 0 0 0 0 26 ColorBlendAttrib::rgb_mode 0

4210 13 rgb_operand_a 0 2 3683 2924 0 0 0 0 0 0 0 31 ColorBlendAttrib::rgb_operand_a 0

4211 13 rgb_operand_b 0 2 3683 2925 0 0 0 0 0 0 0 31 ColorBlendAttrib::rgb_operand_b 0

4212 10 alpha_mode 0 2 3682 2926 0 0 0 0 0 0 0 28 ColorBlendAttrib::alpha_mode 0

4213 15 alpha_operand_a 0 2 3683 2927 0 0 0 0 0 0 0 33 ColorBlendAttrib::alpha_operand_a 0

4214 15 alpha_operand_b 0 2 3683 2928 0 0 0 0 0 0 0 33 ColorBlendAttrib::alpha_operand_b 0

4215 5 color 0 2 3599 2929 0 0 0 0 0 0 0 23 ColorBlendAttrib::color 0

4216 10 class_slot 0 2 3590 2932 0 0 0 0 0 0 0 28 ColorBlendAttrib::class_slot 0

4217 5 scale 0 10 3685 2944 0 2941 0 0 0 0 0 23 ColorScaleAttrib::scale 0

4218 10 class_slot 0 2 3590 2946 0 0 0 0 0 0 0 28 ColorScaleAttrib::class_slot 0

4219 8 channels 0 2 3689 2951 0 0 0 0 0 0 0 26 ColorWriteAttrib::channels 0

4220 10 class_slot 0 2 3590 2952 0 0 0 0 0 0 0 28 ColorWriteAttrib::class_slot 0

4221 20 default_collide_mask 0 2 3627 2980 0 0 0 0 0 0 0 30 GeomNode::default_collide_mask 0

4222 8 bin_name 0 2 3670 2984 0 0 0 0 0 0 0 23 CullBinAttrib::bin_name 0

4223 10 draw_order 0 2 3590 2985 0 0 0 0 0 0 0 25 CullBinAttrib::draw_order 0

4224 10 class_slot 0 2 3590 2986 0 0 0 0 0 0 0 25 CullBinAttrib::class_slot 0

4225 4 mode 0 2 3698 3010 0 0 0 0 0 0 0 20 CullFaceAttrib::mode 0

4226 7 reverse 0 2 3597 3011 0 0 0 0 0 0 0 23 CullFaceAttrib::reverse 0

4227 14 effective_mode 0 2 3698 3012 0 0 0 0 0 0 0 30 CullFaceAttrib::effective_mode 0

4228 10 class_slot 0 2 3590 3013 0 0 0 0 0 0 0 26 CullFaceAttrib::class_slot 0

4229 5 valid 0 2 3597 3017 0 0 0 0 0 0 0 22 WorkingNodePath::valid 0

4230 9 node_path 0 2 3645 3018 0 0 0 0 0 0 0 26 WorkingNodePath::node_path 0

4231 9 node_path 0 2 3645 3027 0 0 0 0 0 0 0 28 CullTraverserData::node_path 0

4232 4 mode 0 6 3703 3061 3062 0 0 0 0 0 0 9 Fog::mode 0

4233 5 color 0 6 3598 3063 3064 0 0 0 0 0 0 10 Fog::color 0

4234 18 linear_onset_point 0 6 3704 3066 3067 0 0 0 0 0 0 23 Fog::linear_onset_point 0

4235 19 linear_opaque_point 0 6 3704 3068 3069 0 0 0 0 0 0 24 Fog::linear_opaque_point 0

4236 11 exp_density 0 6 3595 3071 3072 0 0 0 0 0 0 16 Fog::exp_density 0

4237 3 fog 0 2 3706 3078 0 0 0 0 0 0 0 14 FogAttrib::fog 0

4238 10 class_slot 0 2 3590 3079 0 0 0 0 0 0 0 21 FogAttrib::class_slot 0

4239 4 mode 0 2 3711 3118 0 0 0 0 0 0 0 25 RescaleNormalAttrib::mode 0

4240 10 class_slot 0 2 3590 3119 0 0 0 0 0 0 0 31 RescaleNormalAttrib::class_slot 0

4241 6 offset 0 2 3590 3135 0 0 0 0 0 0 0 25 DepthOffsetAttrib::offset 0

4242 9 min_value 0 2 3595 3136 0 0 0 0 0 0 0 28 DepthOffsetAttrib::min_value 0

4243 9 max_value 0 2 3595 3137 0 0 0 0 0 0 0 28 DepthOffsetAttrib::max_value 0

4244 10 class_slot 0 2 3590 3138 0 0 0 0 0 0 0 29 DepthOffsetAttrib::class_slot 0

4245 4 mode 0 2 3591 3143 0 0 0 0 0 0 0 21 DepthTestAttrib::mode 0

4246 10 class_slot 0 2 3590 3144 0 0 0 0 0 0 0 27 DepthTestAttrib::class_slot 0

4247 4 mode 0 2 3718 3149 0 0 0 0 0 0 0 22 DepthWriteAttrib::mode 0

4248 10 class_slot 0 2 3590 3150 0 0 0 0 0 0 0 28 DepthWriteAttrib::class_slot 0

4249 5 color 0 6 3598 3156 3157 0 0 0 0 0 0 12 Light::color 0

4250 17 color_temperature 0 6 3595 3159 3160 0 0 0 0 0 0 24 Light::color_temperature 0

4251 8 priority 0 6 3590 3165 3164 0 0 0 0 0 0 15 Light::priority 0

4252 9 on_lights 0 66 3645 3179 0 0 0 0 3177 0 0 22 LightAttrib::on_lights 0

4253 10 off_lights 0 66 3645 3183 0 0 0 0 3182 0 0 23 LightAttrib::off_lights 0

4254 10 class_slot 0 2 3590 3195 0 0 0 0 0 0 0 23 LightAttrib::class_slot 0

4255 4 mode 0 2 3723 3204 0 0 0 0 0 0 0 21 LightRampAttrib::mode 0

4256 10 class_slot 0 2 3590 3207 0 0 0 0 0 0 0 27 LightRampAttrib::class_slot 0

4257 5 types 0 66 3729 3253 0 0 0 0 3252 0 0 29 LoaderFileTypeRegistry::types 0

4258 8 material 0 2 3731 3263 0 0 0 0 0 0 0 24 MaterialAttrib::material 0

4259 10 class_slot 0 2 3590 3264 0 0 0 0 0 0 0 26 MaterialAttrib::class_slot 0

4260 4 orig 0 2 3647 3268 0 0 0 0 0 0 0 25 ModelFlattenRequest::orig 0

4261 8 filename 0 2 3736 3274 0 0 0 0 0 0 0 26 ModelLoadRequest::filename 0

4262 7 options 0 2 3738 3275 0 0 0 0 0 0 0 25 ModelLoadRequest::options 0

4263 6 loader 0 2 3740 3276 0 0 0 0 0 0 0 24 ModelLoadRequest::loader 0

4264 15 model_ref_count 0 2 3590 3290 0 0 0 0 0 0 0 26 ModelRoot::model_ref_count 0

4265 8 fullpath 0 6 3736 3291 3292 0 0 0 0 0 0 19 ModelRoot::fullpath 0

4266 9 timestamp 0 6 3744 3293 3294 0 0 0 0 0 0 20 ModelRoot::timestamp 0

4267 9 reference 0 6 3747 3297 3298 0 0 0 0 0 0 20 ModelRoot::reference 0

4268 8 filename 0 2 3736 3313 0 0 0 0 0 0 0 26 ModelSaveRequest::filename 0

4269 7 options 0 2 3738 3314 0 0 0 0 0 0 0 25 ModelSaveRequest::options 0

4270 4 node 0 2 3647 3315 0 0 0 0 0 0 0 22 ModelSaveRequest::node 0

4271 6 loader 0 2 3740 3316 0 0 0 0 0 0 0 24 ModelSaveRequest::loader 0

4272 9 on_stages 0 66 3751 3328 0 0 0 0 3327 0 0 24 TextureAttrib::on_stages 0

4273 8 textures 0 650 3753 3333 0 3332 0 0 3327 0 3328 23 TextureAttrib::textures 0

4274 8 samplers 0 650 3755 3334 0 3332 0 0 3327 0 3328 23 TextureAttrib::samplers 0

4275 10 off_stages 0 66 3751 3338 0 0 0 0 3337 0 0 25 TextureAttrib::off_stages 0

4276 10 class_slot 0 2 3590 3348 0 0 0 0 0 0 0 25 TextureAttrib::class_slot 0

4277 10 class_slot 0 2 3590 3361 0 0 0 0 0 0 0 24 TexGenAttrib::class_slot 0

4278 12 double_sided 0 6 3597 3365 3364 0 0 0 0 0 0 26 OccluderNode::double_sided 0

4279 12 min_coverage 0 6 3595 3367 3366 0 0 0 0 0 0 26 OccluderNode::min_coverage 0

4280 8 vertices 0 70 3704 3370 3371 0 0 0 3369 0 0 22 OccluderNode::vertices 0

4281 6 shader 0 2 3769 3457 0 0 0 0 0 0 0 20 ShaderAttrib::shader 0

4282 14 instance_count 0 2 3590 3438 0 0 0 0 0 0 0 28 ShaderAttrib::instance_count 0

4283 10 class_slot 0 2 3590 3466 0 0 0 0 0 0 0 24 ShaderAttrib::class_slot 0

4284 16 into_portal_mask 0 6 3783 3523 3521 0 0 0 0 0 0 28 PortalNode::into_portal_mask 0

4285 16 from_portal_mask 0 6 3783 3522 3520 0 0 0 0 0 0 28 PortalNode::from_portal_mask 0

4286 11 portal_geom 0 6 3597 3525 3524 0 0 0 0 0 0 23 PortalNode::portal_geom 0

4287 8 vertices 0 66 3704 3529 0 0 0 0 3528 0 0 20 PortalNode::vertices 0

4288 7 cell_in 0 6 3645 3531 3530 0 0 0 0 0 0 19 PortalNode::cell_in 0

4289 8 cell_out 0 6 3645 3533 3532 0 0 0 0 0 0 20 PortalNode::cell_out 0

4290 10 clip_plane 0 6 3597 3535 3534 0 0 0 0 0 0 22 PortalNode::clip_plane 0

4291 7 visible 0 6 3597 3537 3536 0 0 0 0 0 0 19 PortalNode::visible 0

4292 9 max_depth 0 6 3590 3539 3538 0 0 0 0 0 0 21 PortalNode::max_depth 0

4293 4 open 0 6 3597 3541 3540 0 0 0 0 0 0 16 PortalNode::open 0

4294 5 frame 0 2 3685 3547 0 0 0 0 0 0 0 20 ScissorAttrib::frame 0

4295 10 class_slot 0 2 3590 3548 0 0 0 0 0 0 0 25 ScissorAttrib::class_slot 0

4296 4 mode 0 2 3786 3553 0 0 0 0 0 0 0 22 ShadeModelAttrib::mode 0

4297 10 class_slot 0 2 3590 3554 0 0 0 0 0 0 0 28 ShadeModelAttrib::class_slot 0

4298 10 class_slot 0 2 3590 3564 0 0 0 0 0 0 0 25 StencilAttrib::class_slot 0

30
4299 10 get_stages 0 2026 2027 27 TexMatrixAttrib::get_stages 0

4300 11 get_parents 0 2137 2138 22 PandaNode::get_parents 0

4301 12 get_children 0 2140 2141 23 PandaNode::get_children 0

4302 11 get_stashed 0 2150 2151 22 PandaNode::get_stashed 0

4303 9 get_names 0 2296 2297 33 InternalNameCollection::get_names 0

4304 18 get_texture_stages 0 2334 2335 42 TextureStageCollection::get_texture_stages 0

4305 9 get_nodes 0 2359 2360 19 NodePath::get_nodes 0

4306 13 get_ancestors 0 2359 2361 23 NodePath::get_ancestors 0

4307 9 get_paths 0 2386 2387 29 NodePathCollection::get_paths 0

4308 9 get_nodes 0 2743 2744 29 AttribNodeRegistry::get_nodes 0

4309 19 get_display_regions 0 2848 2849 27 Camera::get_display_regions 0

4310 13 get_on_planes 0 2895 2896 30 ClipPlaneAttrib::get_on_planes 0

4311 14 get_off_planes 0 2898 2899 31 ClipPlaneAttrib::get_off_planes 0

4312 9 get_geoms 0 2965 2966 19 GeomNode::get_geoms 0

4313 12 modify_geoms 0 2965 2967 22 GeomNode::modify_geoms 0

4314 15 get_geom_states 0 2965 2968 25 GeomNode::get_geom_states 0

4315 8 get_bins 0 2991 2992 24 CullBinManager::get_bins 0

4316 13 get_on_lights 0 3177 3179 26 LightAttrib::get_on_lights 0

4317 14 get_off_lights 0 3182 3183 27 LightAttrib::get_off_lights 0

4318 9 get_files 0 3218 3219 26 Loader::Results::get_files 0

4319 14 get_file_types 0 3218 3220 31 Loader::Results::get_file_types 0

4320 9 get_types 0 3252 3253 33 LoaderFileTypeRegistry::get_types 0

4321 13 get_on_stages 0 3327 3328 28 TextureAttrib::get_on_stages 0

4322 16 get_on_ff_stages 0 3329 3330 31 TextureAttrib::get_on_ff_stages 0

4323 14 get_off_stages 0 3337 3338 29 TextureAttrib::get_off_stages 0

4324 12 get_vertices 0 3369 3370 26 OccluderNode::get_vertices 0

4325 16 get_on_occluders 0 3374 3375 32 OccluderEffect::get_on_occluders 0

4326 10 get_points 0 3487 3488 25 ScissorEffect::get_points 0

4327 9 get_nodes 0 3487 3489 24 ScissorEffect::get_nodes 0

4328 12 get_vertices 0 3528 3529 24 PortalNode::get_vertices 0

