14#ifndef SCENEGRAPHANALYZER_H
15#define SCENEGRAPHANALYZER_H
37class EXPCL_PANDA_PGRAPHNODES SceneGraphAnalyzer {
40 ~SceneGraphAnalyzer();
55 void write(std::ostream &out,
int indent_level = 0)
const;
57 INLINE
int get_num_nodes()
const;
58 INLINE
int get_num_instances()
const;
59 INLINE
int get_num_transforms()
const;
60 INLINE
int get_num_nodes_with_attribs()
const;
61 INLINE
int get_num_lod_nodes()
const;
62 INLINE
int get_num_geom_nodes()
const;
63 INLINE
int get_num_geoms()
const;
64 INLINE
int get_num_geom_vertex_datas()
const;
65 INLINE
int get_num_geom_vertex_formats()
const;
66 INLINE
size_t get_vertex_data_size()
const;
68 INLINE
int get_num_vertices()
const;
69 INLINE
int get_num_normals()
const;
70 INLINE
int get_num_colors()
const;
71 INLINE
int get_num_texcoords()
const;
72 INLINE
int get_num_tris()
const;
73 INLINE
int get_num_lines()
const;
74 INLINE
int get_num_points()
const;
75 INLINE
int get_num_patches()
const;
77 INLINE
int get_num_individual_tris()
const;
78 INLINE
int get_num_tristrips()
const;
79 INLINE
int get_num_triangles_in_strips()
const;
80 INLINE
int get_num_trifans()
const;
81 INLINE
int get_num_triangles_in_fans()
const;
82 INLINE
int get_num_vertices_in_patches()
const;
84 INLINE
size_t get_texture_bytes()
const;
86 INLINE
int get_num_long_normals()
const;
87 INLINE
int get_num_short_normals()
const;
88 INLINE PN_stdfloat get_total_normal_length()
const;
91 void collect_statistics(
PandaNode *node,
bool under_instance);
92 void collect_statistics(
GeomNode *geom_node);
93 void collect_statistics(
const Geom *geom);
94 void collect_statistics(
Texture *texture);
103 typedef pmap<PandaNode *, int> Nodes;
107 typedef pmap<const GeomVertexData *, int, IndirectCompareTo<GeomVertexData> > UniqueVDatas;
108 typedef pmap<const GeomVertexArrayData *, int, IndirectCompareTo<GeomVertexArrayData> > UniqueVADatas;
109 typedef pmap<Texture *, int> Textures;
117 VADatas _prim_vadatas;
118 UniqueVDatas _unique_vdatas;
119 UniqueVADatas _unique_vadatas;
120 UniqueVADatas _unique_prim_vadatas;
127 int _num_nodes_with_attribs;
131 int _num_geom_vertex_datas;
132 int _num_geom_vertex_formats;
133 size_t _vertex_data_size;
134 size_t _prim_data_size;
137 int _num_vertices_64;
146 int _num_individual_tris;
148 int _num_triangles_in_strips;
150 int _num_triangles_in_fans;
151 int _num_vertices_in_patches;
153 size_t _texture_bytes;
155 int _num_long_normals;
156 int _num_short_normals;
157 PN_stdfloat _total_normal_length;
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
A dynamic array with an unlimited number of bits.
A node that holds Geom objects, renderable pieces of geometry.
This is the data for one array of a GeomVertexData structure.
This defines the actual numeric vertex data stored in a Geom, in the structure defined by a particula...
A container for geometry primitives.
A basic node of the scene graph or data graph.
LodMode get_lod_mode(LodMode lod_mode) const
Returns the mode in which LODNodes are analyzed.
void add_node(PandaNode *node)
Adds a new node to the set of data for analysis.
void write(std::ostream &out, int indent_level=0) const
Describes all the data collected.
void clear()
Resets all of the data in the analyzer in preparation for a new run.
void set_lod_mode(LodMode lod_mode)
Specifies the mode in which LODNodes are analyzed.
Represents a texture object, which is typically a single 2-d image but may also represent a 1-d or 3-...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.