14 #ifndef GEOMTRANSFORMER_H 15 #define GEOMTRANSFORMER_H 48 INLINE
int get_max_collect_vertices()
const;
49 INLINE
void set_max_collect_vertices(
int max_collect_vertices);
51 void register_vertices(
Geom *geom,
bool might_have_unused);
52 void register_vertices(
GeomNode *node,
bool might_have_unused);
54 bool transform_vertices(
Geom *geom,
const LMatrix4 &mat);
55 bool transform_vertices(
GeomNode *node,
const LMatrix4 &mat);
62 bool set_color(
Geom *geom,
const LColor &color);
63 bool set_color(
GeomNode *node,
const LColor &color);
65 bool transform_colors(
Geom *geom,
const LVecBase4 &scale);
66 bool transform_colors(
GeomNode *node,
const LVecBase4 &scale);
70 const LColor &base_color,
bool keep_vertex_color);
79 bool make_compatible_state(
GeomNode *node);
81 bool reverse_normals(
Geom *geom);
87 int collect_vertex_data(
Geom *geom,
int collect_bits,
bool format_only);
88 int collect_vertex_data(
GeomNode *node,
int collect_bits,
bool format_only);
89 int finish_collect(
bool format_only);
94 int _max_collect_vertices;
101 class VertexDataAssoc {
103 INLINE VertexDataAssoc();
104 bool _might_have_unused;
113 class NewVertexData {
120 class SourceVertices {
122 INLINE
bool operator < (
const SourceVertices &other)
const;
132 class SourceTexCoords {
134 INLINE
bool operator < (
const SourceTexCoords &other)
const;
147 INLINE
bool operator < (
const SourceColors &other)
const;
162 class SourceTextureColors {
164 INLINE
bool operator < (
const SourceTextureColors &other)
const;
170 bool _keep_vertex_color;
181 INLINE
bool operator < (
const SourceFormat &other)
const;
193 class NewCollectedKey {
195 INLINE
bool operator < (
const NewCollectedKey &other)
const;
199 Geom::UsageHint _usage_hint;
200 Geom::AnimationType _animation_type;
215 class NewCollectedData {
217 ALLOC_DELETED_CHAIN(NewCollectedData);
221 int apply_format_only_changes();
222 int apply_collect_changes();
225 std::string _vdata_name;
226 GeomEnums::UsageHint _usage_hint;
233 void append_vdata(
const GeomVertexData *vdata,
int vertex_offset);
236 typedef vector_int IndexMap;
247 static void init_type() {
248 register_type(_type_handle,
"GeomTransformer::NewCollectedData");
259 class AlreadyCollectedData {
261 NewCollectedData *_ncd;
275 static void init_type() {
276 NewCollectedData::init_type();
This class records a set of integers, where each integer is either present or not present in the set.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This is our own Panda specialization on the default STL map.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
Objects of this class are used to convert vertex data from a Geom into a format suitable for passing ...
Represents a texture object, which is typically a single 2-d image but may also represent a 1-d or 3-...
void register_type(TypeHandle &type_handle, const std::string &name)
This inline function is just a convenient way to call TypeRegistry::register_type(),...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This is our own Panda specialization on the default STL vector.
A lightweight class that represents a single element that may be timed and/or counted via stats.
This defines the actual numeric vertex data stored in a Geom, in the structure defined by a particula...
A container for geometry primitives.
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...
Applies a transform matrix to UV's before they are rendered.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
TypeHandle is the identifier used to differentiate C++ class types.
Defines the properties of a named stage of the multitexture pipeline.
A node that holds Geom objects, renderable pieces of geometry.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.