Go to the documentation of this file.
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();
A container for geometry primitives.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This is our own Panda specialization on the default STL vector.
This defines the actual numeric vertex data stored in a Geom, in the structure defined by a particula...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This is our own Panda specialization on the default STL map.
void register_type(TypeHandle &type_handle, const std::string &name)
This inline function is just a convenient way to call TypeRegistry::register_type(),...
Encodes a string name in a hash table, mapping it to a pointer.
Represents a texture object, which is typically a single 2-d image but may also represent a 1-d or 3-...
This represents a unique collection of RenderAttrib objects that correspond to a particular renderabl...
TypeHandle is the identifier used to differentiate C++ class types.
A node that holds Geom objects, renderable pieces of geometry.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This class records a set of integers, where each integer is either present or not present in the set.
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.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
Applies a transform matrix to UV's before they are rendered.
Defines the properties of a named stage of the multitexture pipeline.
Objects of this class are used to convert vertex data from a Geom into a format suitable for passing ...