Panda3D
|
Stores the total set of VertexTransforms that the vertices in a particular GeomVertexData object might depend on. More...
#include "transformTable.h"
Classes | |
class | CData |
Public Member Functions | |
TransformTable (const TransformTable ©) | |
int | add_transform (const VertexTransform *transform) |
Adds a new transform to the table and returns the index number of the new transform. | |
virtual int | complete_pointers (TypedWritable **plist, BamReader *manager) |
Receives an array of pointers, one for each time manager->read_pointer() was called in fillin(). | |
virtual TypeHandle | force_init_type () |
UpdateSeq | get_modified (Thread *current_thread) const |
Returns a sequence number that's guaranteed to change at least when any VertexTransforms in the table change. | |
int | get_num_transforms () const |
Returns the number of transforms in the table. | |
const VertexTransform * | get_transform (int n) const |
Returns the nth transform in the table. | |
virtual TypeHandle | get_type () const |
bool | is_registered () const |
Returns true if this table has been registered. | |
MAKE_SEQ (get_transforms, get_num_transforms, get_transform) | |
void | operator= (const TransformTable ©) |
void | remove_transform (int n) |
Removes the nth transform. | |
void | set_transform (int n, const VertexTransform *transform) |
Replaces the nth transform. | |
void | write (ostream &out) const |
virtual void | write_datagram (BamWriter *manager, Datagram &dg) |
Writes the contents of this object to the datagram for shipping out to a Bam file. | |
Static Public Member Functions | |
static | CPT (TransformTable) register_table(const TransformTable *table) |
static TypeHandle | get_class_type () |
static void | init_type () |
static void | register_with_read_factory () |
Tells the BamReader how to create objects of type TransformTable. | |
Protected Member Functions | |
void | fillin (DatagramIterator &scan, BamReader *manager) |
This internal function is called by make_from_bam to read in all of the relevant data from the BamFile for the new TransformTable. | |
Static Protected Member Functions | |
static TypedWritable * | make_from_bam (const FactoryParams ¶ms) |
This function is called by the BamReader's factory when a new object of type TransformTable is encountered in the Bam file. | |
Friends | |
class | VertexTransform |
Stores the total set of VertexTransforms that the vertices in a particular GeomVertexData object might depend on.
This structure is used for a GeomVertexData set up to compute its dynamic vertices on the graphics card. See TransformBlendTable for one set up to compute its dynamic vertices on the CPU.
Definition at line 42 of file transformTable.h.
int TransformTable::add_transform | ( | const VertexTransform * | transform | ) |
Adds a new transform to the table and returns the index number of the new transform.
Only valid for unregistered tables.
This does not automatically uniquify the pointer; if the transform is already present in the table, it will be added twice.
Definition at line 105 of file transformTable.cxx.
int TransformTable::complete_pointers | ( | TypedWritable ** | p_list, |
BamReader * | manager | ||
) | [virtual] |
Receives an array of pointers, one for each time manager->read_pointer() was called in fillin().
Returns the number of pointers processed.
Reimplemented from TypedWritable.
Definition at line 199 of file transformTable.cxx.
void TransformTable::fillin | ( | DatagramIterator & | scan, |
BamReader * | manager | ||
) | [protected, virtual] |
This internal function is called by make_from_bam to read in all of the relevant data from the BamFile for the new TransformTable.
Reimplemented from TypedWritable.
Definition at line 239 of file transformTable.cxx.
References DatagramIterator::get_uint16(), BamReader::read_cdata(), and BamReader::read_pointer().
Returns a sequence number that's guaranteed to change at least when any VertexTransforms in the table change.
(However, this is only true for a registered table. An unregistered table may or may not reflect an update here when a VertexTransform changes.)
Definition at line 92 of file transformTable.I.
int TransformTable::get_num_transforms | ( | ) | const [inline] |
Returns the number of transforms in the table.
Definition at line 66 of file transformTable.I.
Referenced by DXGraphicsStateGuardian9::begin_draw_primitives(), and DXGraphicsStateGuardian8::begin_draw_primitives().
const VertexTransform * TransformTable::get_transform | ( | int | n | ) | const [inline] |
Returns the nth transform in the table.
Definition at line 76 of file transformTable.I.
Referenced by DXGraphicsStateGuardian9::begin_draw_primitives(), and DXGraphicsStateGuardian8::begin_draw_primitives().
bool TransformTable::is_registered | ( | ) | const [inline] |
Returns true if this table has been registered.
Once it has been registered, the set of transforms in a TransformTable may not be further modified; but it must be registered before it can be assigned to a Geom.
Definition at line 26 of file transformTable.I.
Referenced by GeomVertexData::set_transform_table().
TypedWritable * TransformTable::make_from_bam | ( | const FactoryParams & | params | ) | [static, protected] |
This function is called by the BamReader's factory when a new object of type TransformTable is encountered in the Bam file.
It should create the TransformTable and extract its information from the file.
Definition at line 220 of file transformTable.cxx.
Referenced by register_with_read_factory().
void TransformTable::register_with_read_factory | ( | ) | [static] |
Tells the BamReader how to create objects of type TransformTable.
Definition at line 167 of file transformTable.cxx.
References BamReader::get_factory(), make_from_bam(), and Factory< Type >::register_factory().
void TransformTable::remove_transform | ( | int | n | ) |
Removes the nth transform.
Only valid for unregistered tables.
Definition at line 87 of file transformTable.cxx.
void TransformTable::set_transform | ( | int | n, |
const VertexTransform * | transform | ||
) |
Replaces the nth transform.
Only valid for unregistered tables.
Definition at line 74 of file transformTable.cxx.
Writes the contents of this object to the datagram for shipping out to a Bam file.
Reimplemented from TypedWritable.
Definition at line 178 of file transformTable.cxx.
References Datagram::add_uint16(), BamWriter::write_cdata(), and BamWriter::write_pointer().