14 #ifndef SCENEGRAPHREDUCER_H 15 #define SCENEGRAPHREDUCER_H 47 TT_color_scale = 0x004,
48 TT_tex_matrix = 0x008,
49 TT_clip_plane = 0x010,
51 TT_apply_texture_color = 0x040,
55 enum CombineSiblings {
57 CS_within_radius = 0x002,
62 enum CollectVertexData {
73 CVD_transform = 0x004,
79 CVD_avoid_dynamic = 0x008,
83 CVD_one_node_only = 0x010,
93 CVD_usage_hint = 0x040,
97 CVD_animation_type = 0x080,
100 enum MakeNonindexed {
104 MN_composite_only = 0x001,
109 MN_avoid_animated = 0x002,
113 MN_avoid_dynamic = 0x004,
120 INLINE
void set_combine_radius(PN_stdfloat combine_radius);
121 INLINE PN_stdfloat get_combine_radius()
const;
123 INLINE
void apply_attribs(
PandaNode *node,
int attrib_types = ~(TT_clip_plane | TT_cull_face | TT_apply_texture_color));
127 int flatten(
PandaNode *root,
int combine_siblings_bits);
131 int make_compatible_state(
PandaNode *root);
133 INLINE
int make_compatible_format(
PandaNode *root,
int collect_bits = ~0);
136 INLINE
int collect_vertex_data(
PandaNode *root,
int collect_bits = ~0);
137 INLINE
int make_nonindexed(
PandaNode *root,
int nonindexed_bits = ~0);
138 void unify(
PandaNode *root,
bool preserve_order);
139 void remove_unused_vertices(
PandaNode *root);
142 bool check_live_flatten(
PandaNode *node);
149 int combine_siblings_bits);
150 int flatten_siblings(
PandaNode *parent_node,
151 int combine_siblings_bits);
153 bool consider_child(
PandaNode *grandparent_node,
158 bool do_flatten_child(
PandaNode *grandparent_node,
174 int r_collect_vertex_data(
PandaNode *node,
int collect_bits,
176 int r_make_nonindexed(
PandaNode *node,
int collect_bits);
177 void r_unify(
PandaNode *node,
int max_indices,
bool preserve_order);
185 PN_stdfloat _combine_radius;
A basic node of the scene graph or data graph.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
An interface for simplifying ("flattening") scene graphs by eliminating unneeded nodes and collapsing...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
A lightweight class that represents a single element that may be timed and/or counted via stats.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This class is used by the SceneGraphReducer to maintain and accumulate the set of attributes we have ...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
Encodes a string name in a hash table, mapping it to a pointer.
This represents a unique collection of RenderAttrib objects that correspond to a particular renderabl...
This is a base class for the GraphicsStateGuardian class, which is itself a base class for the variou...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.