Panda3D
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions

EggTable Class Reference

This corresponds to a. More...

#include "eggTable.h"

Inheritance diagram for EggTable:
EggGroupNode EggNode EggNamedObject EggObject Namable TypedReferenceCount MemoryBase TypedObject ReferenceCount MemoryBase MemoryBase

List of all members.

Public Types

enum  TableType { TT_invalid, TT_table, TT_bundle }

Public Member Functions

 EggTable (const string &name="")
 EggTable (const EggTable &copy)
virtual TypeHandle force_init_type ()
TableType get_table_type () const
virtual TypeHandle get_type () const
bool has_transform () const
 Returns true if the table contains a transform description, false otherwise.
EggTableoperator= (const EggTable &copy)
void set_table_type (TableType type)
virtual void write (ostream &out, int indent_level) const
 Writes the table and all of its children to the indicated output stream in Egg format.

Static Public Member Functions

static TypeHandle get_class_type ()
static void init_type ()
 This function is declared non-inline to work around a compiler bug in g++ 2.96.
static TableType string_table_type (const string &string)
 Returns the TableType value associated with the given string representation, or TT_invalid if the string does not match any known TableType value.

Protected Member Functions

virtual void r_transform (const LMatrix4d &mat, const LMatrix4d &inv, CoordinateSystem to_cs)
 This is called from within the egg code by transform().

Detailed Description

This corresponds to a.

a <Bundle> entry. As such, it doesn't actually contain a table of numbers, but it may be a parent to an EggSAnimData or an EggXfmAnimData, which do. It may also be a parent to another

<Bundle>, establishing a hierarchy of tables.

Definition at line 31 of file eggTable.h.


Member Function Documentation

bool EggTable::has_transform ( ) const

Returns true if the table contains a transform description, false otherwise.

Definition at line 29 of file eggTable.cxx.

References EggNode::is_anim_matrix().

Referenced by r_transform().

static void EggTable::init_type ( ) [inline, static]

This function is declared non-inline to work around a compiler bug in g++ 2.96.

Making it inline seems to cause problems in the optimizer.

Reimplemented from EggGroupNode.

Definition at line 64 of file eggTable.h.

References EggGroupNode::init_type().

void EggTable::r_transform ( const LMatrix4d mat,
const LMatrix4d inv,
CoordinateSystem  to_cs 
) [protected, virtual]

This is called from within the egg code by transform().

It applies a transformation matrix to the current node in some sensible way, then continues down the tree.

The first matrix is the transformation to apply; the second is its inverse. The third parameter is the coordinate system we are changing to, or CS_default if we are not changing coordinate systems.

Reimplemented from EggGroupNode.

Definition at line 103 of file eggTable.cxx.

References has_transform(), EggNode::is_anim_matrix(), EggNode::r_transform(), and LMatrix4d::set_row().

EggTable::TableType EggTable::string_table_type ( const string &  string) [static]

Returns the TableType value associated with the given string representation, or TT_invalid if the string does not match any known TableType value.

Definition at line 79 of file eggTable.cxx.

void EggTable::write ( ostream &  out,
int  indent_level 
) const [virtual]

Writes the table and all of its children to the indicated output stream in Egg format.

Reimplemented from EggGroupNode.

Definition at line 49 of file eggTable.cxx.

References EggNamedObject::write_header().


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