Panda3D
Classes | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Friends

TransformTable Class Reference

Stores the total set of VertexTransforms that the vertices in a particular GeomVertexData object might depend on. More...

#include "transformTable.h"

Inheritance diagram for TransformTable:
TypedWritableReferenceCount TypedWritable ReferenceCount TypedObject MemoryBase MemoryBase

List of all members.

Classes

class  CData

Public Member Functions

 TransformTable (const TransformTable &copy)
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 VertexTransformget_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 &copy)
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 TypedWritablemake_from_bam (const FactoryParams &params)
 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

Detailed Description

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.


Member Function Documentation

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().

UpdateSeq TransformTable::get_modified ( Thread current_thread) const [inline]

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.

void TransformTable::write_datagram ( BamWriter manager,
Datagram dg 
) [virtual]

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().


The documentation for this class was generated from the following files:
 All Classes Functions Variables Enumerations