#include <eggGroup.h>
Inheritance diagram for EggGroup:
Public Types | |
typedef pmap< PT_EggVertex, double > | VertexRef |
enum | GroupType { GT_invalid = -1, GT_group = 0x00000000, GT_instance = 0x00000001, GT_joint = 0x00000002 } |
enum | DartType { DT_none = 0x00000000, DT_sync = 0x00000004, DT_nosync = 0x00000008, DT_default = 0x0000000c } |
enum | DCSType { DC_none = 0x00000000, DC_local = 0x00000010, DC_net = 0x00000020, DC_default = 0x00000030 } |
enum | BillboardType { BT_none = 0x00000000, BT_axis = 0x00000020, BT_point_camera_relative = 0x00000040, BT_point_world_relative = 0x00000080 } |
enum | CollisionSolidType { CST_none = 0x00000000, CST_plane = 0x00010000, CST_polygon = 0x00020000, CST_polyset = 0x00030000, CST_sphere = 0x00040000, CST_inverse_sphere = 0x00050000, CST_geode = 0x00060000 } |
enum | CollideFlags { CF_none = 0x00000000, CF_intangible = 0x00080000, CF_descend = 0x00100000, CF_event = 0x00200000, CF_keep = 0x00400000, CF_solid = 0x00800000, CF_center = 0x01000000, CF_turnstile = 0x02000000 } |
Public Member Functions | |
EggGroup (const string &name="") | |
EggGroup (const EggGroup ©) | |
EggGroup & | operator= (const EggGroup ©) |
~EggGroup () | |
virtual void | write (ostream &out, int indent_level) const |
virtual EggRenderMode * | determine_alpha_mode () |
virtual EggRenderMode * | determine_depth_write_mode () |
virtual EggRenderMode * | determine_depth_test_mode () |
virtual EggRenderMode * | determine_draw_order () |
virtual EggRenderMode * | determine_bin () |
void | set_group_type (GroupType type) |
INLINE GroupType | get_group_type () const |
INLINE bool | is_instance_type () const |
INLINE void | set_billboard_type (BillboardType type) |
INLINE BillboardType | get_billboard_type () const |
INLINE void | set_billboard_center (const LPoint3d &billboard_center) |
INLINE void | clear_billboard_center () |
INLINE bool | has_billboard_center () const |
INLINE const LPoint3d & | get_billboard_center () const |
INLINE void | set_cs_type (CollisionSolidType type) |
INLINE CollisionSolidType | get_cs_type () const |
INLINE void | set_collide_flags (int flags) |
INLINE CollideFlags | get_collide_flags () const |
INLINE void | set_collision_name (const string &collision_name) |
INLINE void | clear_collision_name () |
INLINE bool | has_collision_name () const |
INLINE const string & | get_collision_name () const |
INLINE void | set_dcs_type (DCSType type) |
INLINE DCSType | get_dcs_type () const |
INLINE void | set_dart_type (DartType type) |
INLINE DartType | get_dart_type () const |
INLINE void | set_switch_flag (bool flag) |
INLINE bool | get_switch_flag () const |
INLINE void | set_switch_fps (double fps) |
INLINE double | get_switch_fps () const |
INLINE void | add_object_type (const string &object_type) |
INLINE void | clear_object_types () |
INLINE int | get_num_object_types () const |
INLINE string | get_object_type (int index) const |
bool | has_object_type (const string &object_type) const |
bool | remove_object_type (const string &object_type) |
INLINE void | set_model_flag (bool flag) |
INLINE bool | get_model_flag () const |
INLINE void | set_texlist_flag (bool flag) |
INLINE bool | get_texlist_flag () const |
INLINE void | set_nofog_flag (bool flag) |
INLINE bool | get_nofog_flag () const |
INLINE void | set_decal_flag (bool flag) |
INLINE bool | get_decal_flag () const |
INLINE void | set_direct_flag (bool flag) |
INLINE bool | get_direct_flag () const |
INLINE void | set_collide_mask (CollideMask mask) |
INLINE void | clear_collide_mask () |
INLINE bool | has_collide_mask () const |
INLINE CollideMask | get_collide_mask () const |
INLINE void | set_from_collide_mask (CollideMask mask) |
INLINE void | clear_from_collide_mask () |
INLINE bool | has_from_collide_mask () const |
INLINE CollideMask | get_from_collide_mask () const |
INLINE void | set_into_collide_mask (CollideMask mask) |
INLINE void | clear_into_collide_mask () |
INLINE bool | has_into_collide_mask () const |
INLINE CollideMask | get_into_collide_mask () const |
INLINE void | set_lod (const EggSwitchCondition &lod) |
INLINE void | clear_lod () |
INLINE bool | has_lod () const |
INLINE const EggSwitchCondition & | get_lod () const |
void | ref_vertex (EggVertex *vert, double membership=1.0) |
void | unref_vertex (EggVertex *vert) |
void | unref_all_vertices () |
double | get_vertex_membership (const EggVertex *vert) const |
INLINE VertexRef::const_iterator | vref_begin () const |
INLINE VertexRef::const_iterator | vref_end () const |
INLINE VertexRef::size_type | vref_size () const |
void | test_vref_integrity () const |
virtual TypeHandle | get_type () const |
virtual TypeHandle | force_init_type () |
Static Public Member Functions | |
GroupType | string_group_type (const string &string) |
DartType | string_dart_type (const string &string) |
DCSType | string_dcs_type (const string &string) |
BillboardType | string_billboard_type (const string &string) |
CollisionSolidType | string_cs_type (const string &string) |
CollideFlags | string_collide_flags (const string &string) |
TypeHandle | get_class_type () |
void | init_type () |
Protected Member Functions | |
void | write_vertex_ref (ostream &out, int indent_level) const |
virtual bool | egg_start_parse_body () |
virtual void | adjust_under () |
virtual void | r_transform (const LMatrix4d &mat, const LMatrix4d &inv, CoordinateSystem to_cs) |
virtual void | r_flatten_transforms () |
virtual void | transform_changed () |
Private Types | |
enum | Flags { F_group_type = 0x00000003, F_dart_type = 0x0000000c, F_billboard_type = 0x000000e0, F_switch_flag = 0x00000100, F_model_flag = 0x00000400, F_texlist_flag = 0x00000800, F_nofog_flag = 0x00001000, F_decal_flag = 0x00002000, F_direct_flag = 0x00004000, F_cs_type = 0x00070000, F_collide_flags = 0x03f80000 } |
enum | Flags2 { F2_collide_mask = 0x00000001, F2_from_collide_mask = 0x00000002, F2_into_collide_mask = 0x00000004, F2_billboard_center = 0x00000008, F2_dcs_type = 0x00000030 } |
Private Member Functions | |
PT (EggSwitchCondition) _lod | |
Private Attributes | |
int | _flags |
int | _flags2 |
CollideMask | _collide_mask |
CollideMask | _from_collide_mask |
CollideMask | _into_collide_mask |
LPoint3d | _billboard_center |
vector_string | _object_types |
string | _collision_name |
double | _fps |
VertexRef | _vref |
Static Private Attributes | |
TypeHandle | _type_handle |
|
Definition at line 42 of file eggGroup.h. |
|
Definition at line 66 of file eggGroup.h. |
|
Definition at line 83 of file eggGroup.h. |
|
Definition at line 73 of file eggGroup.h. |
|
Definition at line 52 of file eggGroup.h. |
|
Definition at line 59 of file eggGroup.h. |
|
Definition at line 219 of file eggGroup.h. |
|
Definition at line 233 of file eggGroup.h. |
|
Definition at line 45 of file eggGroup.h. |
|
Definition at line 38 of file eggGroup.cxx. |
|
Definition at line 50 of file eggGroup.cxx. |
|
Definition at line 100 of file eggGroup.cxx. References unref_all_vertices(). |
|
|
|
Reimplemented from EggNode. Definition at line 740 of file eggGroup.cxx. References EggNode::_under_flags, EggNode::get_node_frame(), EggNode::get_node_frame_inv(), EggTransform3d::get_transform(), EggNode::get_vertex_frame(), EggNode::get_vertex_frame_inv(), EggTransform3d::has_transform(), invert, is_instance_type(), EggNode::MatrixFrame, NULL, EggNode::UF_local_coord, EggNode::UF_under_instance, and EggNode::UF_under_transform. |
|
|
|
|
|
|
|
|
|
|
|
|
|
Referenced by EggLoader::expand_object_types(). |
|
Reimplemented from EggNode. Definition at line 307 of file eggGroup.cxx. References EggRenderMode::AM_unspecified, EggNode::determine_alpha_mode(), and EggRenderMode::get_alpha_mode(). |
|
Reimplemented from EggNode. Definition at line 375 of file eggGroup.cxx. References EggNode::determine_bin(), and EggRenderMode::has_bin(). |
|
Reimplemented from EggNode. Definition at line 341 of file eggGroup.cxx. References EggNode::determine_depth_test_mode(), EggRenderMode::DTM_unspecified, and EggRenderMode::get_depth_test_mode(). |
|
Reimplemented from EggNode. Definition at line 324 of file eggGroup.cxx. References EggNode::determine_depth_write_mode(), EggRenderMode::DWM_unspecified, and EggRenderMode::get_depth_write_mode(). |
|
Reimplemented from EggNode. Definition at line 358 of file eggGroup.cxx. References EggNode::determine_draw_order(), and EggRenderMode::has_draw_order(). |
|
Reimplemented from EggNode. Definition at line 724 of file eggGroup.cxx. References egg_start_group_body(). |
|
Reimplemented from EggGroupNode. Reimplemented in EggBin. Definition at line 268 of file eggGroup.h. References EggGroupNode::get_class_type(), and EggGroupNode::init_type(). |
|
Referenced by write(). |
|
Referenced by EggLoader::create_group_arc(), r_flatten_transforms(), and write(). |
|
Reimplemented from EggGroupNode. Reimplemented in EggBin. Definition at line 255 of file eggGroup.h. Referenced by ComputedVerticesMaker::add_vertex_joints(), CharacterMaker::build_joint_hierarchy(), CharacterMaker::determine_primitive_home(), EggLoader::find_collision_geometry(), EggBin::force_init_type(), EggBinner::get_bin_number(), EggGroupUniquifier::get_category(), EggBin::get_type(), EggBin::init_type(), EggBinMaker::make_bins_for_group(), EggLoader::make_collision_solids(), and EggLoader::make_node(). |
|
Referenced by EggLoader::find_collision_geometry(), EggLoader::make_collision_solids(), EggLoader::make_node(), and write(). |
|
Referenced by EggLoader::create_group_arc(), and write(). |
|
Referenced by write(). |
|
Referenced by EggLoader::find_collision_geometry(), EggLoader::make_collision_solids(), EggLoader::make_node(), and write(). |
|
Referenced by ComputedVerticesMaker::add_vertex_joints(), EggBinner::collapse_group(), CharacterMaker::determine_primitive_home(), EggLoader::make_node(), and write(). |
|
Referenced by CharacterMaker::build_joint_hierarchy(), CharacterMaker::determine_primitive_home(), EggLoader::make_node(), and write(). |
|
Referenced by EggLoader::create_group_arc(), and write(). |
|
Referenced by write(). |
|
Referenced by EggLoader::create_group_arc(), and write(). |
|
Referenced by ComputedVerticesMaker::add_vertex_joints(), CharacterMaker::build_joint_hierarchy(), CharacterMaker::determine_primitive_home(), r_flatten_transforms(), set_group_type(), and write(). |
|
Referenced by EggLoader::create_group_arc(), and write(). |
|
Referenced by LODInstance::LODInstance(), EggBinner::sorts_less(), and write(). |
|
Referenced by EggLoader::make_node(), and write(). |
|
Referenced by write(). |
|
Referenced by EggLoader::do_expand_object_type(), EggLoader::expand_object_types(), and EggLoader::make_node(). |
|
Referenced by EggLoader::expand_object_types(). |
|
Referenced by EggLoader::make_node(), and write(). |
|
Referenced by EggLoader::make_node(), and write(). |
|
Referenced by write(). |
|
Reimplemented from EggGroupNode. Reimplemented in EggBin. Definition at line 265 of file eggGroup.h. References EggGroupNode::get_class_type(). |
|
Definition at line 469 of file eggGroup.cxx. References _vref. Referenced by ComputedVerticesMaker::add_vertex_joints(), EggVertex::copy_grefs_from(), and EggVertex::test_gref_integrity(). |
|
Referenced by r_flatten_transforms(), r_transform(), and write(). |
|
Referenced by EggLoader::create_group_arc(), and write(). |
|
Referenced by write(). |
|
Referenced by EggLoader::create_group_arc(), and write(). |
|
Referenced by EggLoader::create_group_arc(), and write(). |
|
Referenced by EggBinner::get_bin_number(), LODInstance::LODInstance(), r_flatten_transforms(), r_transform(), and write(). |
|
Definition at line 129 of file eggGroup.cxx. References _object_types, and cmp_nocase_uh(). |
|
Reimplemented from EggGroupNode. Reimplemented in EggBin. Definition at line 258 of file eggGroup.h. References EggRenderMode::get_class_type(), EggGroupNode::get_class_type(), EggRenderMode::init_type(), EggGroupNode::init_type(), and register_type(). Referenced by EggBin::force_init_type(), init_libegg(), and EggBin::init_type(). |
|
Referenced by adjust_under(). |
|
Definition at line 60 of file eggGroup.cxx. References _collision_name, _flags, _flags2, _fps, EggVertex::_gref, _object_types, _vref, EggRenderMode::operator=(), EggGroupNode::operator=(), EggTransform3d::operator=(), and unref_all_vertices(). |
|
|
|
Reimplemented from EggGroupNode. Definition at line 835 of file eggGroup.cxx. References _billboard_center, BT_none, get_billboard_type(), get_group_type(), EggNode::get_vertex_frame(), GT_group, GT_instance, GT_joint, has_billboard_center(), has_lod(), EggTransform3d::internal_clear_transform(), EggNode::is_local_coord(), EggGroupNode::r_flatten_transforms(), set_billboard_center(), and set_group_type(). |
|
Reimplemented from EggGroupNode. Definition at line 793 of file eggGroup.cxx. References _billboard_center, EggTransform3d::get_transform(), has_billboard_center(), has_lod(), EggTransform3d::internal_set_transform(), EggGroupNode::r_transform(), and EggTransform3d::transform_is_identity(). |
|
Definition at line 391 of file eggGroup.cxx. References EggVertex::_gref, _vref, and unref_vertex(). Referenced by EggVertex::copy_grefs_from(). |
|
Definition at line 148 of file eggGroup.cxx. References _object_types, and cmp_nocase_uh(). |
|
Referenced by r_flatten_transforms(). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Definition at line 110 of file eggGroup.cxx. References _flags, F_group_type, get_group_type(), type, and EggGroupNode::update_under(). Referenced by r_flatten_transforms(). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Definition at line 574 of file eggGroup.cxx. References BT_axis, BT_none, BT_point_camera_relative, BT_point_world_relative, and cmp_nocase_uh(). |
|
Definition at line 624 of file eggGroup.cxx. References CF_center, CF_descend, CF_event, CF_intangible, CF_keep, CF_none, CF_solid, CF_turnstile, and cmp_nocase_uh(). |
|
Definition at line 596 of file eggGroup.cxx. References cmp_nocase_uh(), CST_geode, CST_inverse_sphere, CST_none, CST_plane, CST_polygon, CST_polyset, and CST_sphere. |
|
Definition at line 534 of file eggGroup.cxx. References cmp_nocase_uh(), DT_default, DT_none, DT_nosync, and DT_sync. |
|
Definition at line 554 of file eggGroup.cxx. References cmp_nocase_uh(), DC_default, DC_local, DC_net, and DC_none. |
|
Definition at line 514 of file eggGroup.cxx. References cmp_nocase_uh(), GT_group, GT_instance, GT_invalid, and GT_joint. |
|
Definition at line 489 of file eggGroup.cxx. References EggVertex::has_gref(), ReferenceCount::test_ref_count_integrity(), vref_begin(), and vref_end(). |
|
Reimplemented from EggTransform3d. Definition at line 871 of file eggGroup.cxx. References EggGroupNode::update_under(). |
|
Definition at line 445 of file eggGroup.cxx. References EggVertex::_gref, _vref, and count. Referenced by operator=(), and ~EggGroup(). |
|
Definition at line 427 of file eggGroup.cxx. References EggVertex::_gref, _vref, and count. Referenced by EggVertex::clear_grefs(), and ref_vertex(). |
|
Referenced by test_vref_integrity(). |
|
Referenced by test_vref_integrity(). |
|
|
|
|
Definition at line 654 of file eggGroup.cxx. References _vref, EggVertex::get_index(), EggVertex::get_pool(), indent(), indices, NULL, and write_long_list(). Referenced by write(). |
|
Definition at line 245 of file eggGroup.h. Referenced by r_flatten_transforms(), and r_transform(). |
|
Definition at line 244 of file eggGroup.h. |
|
Definition at line 247 of file eggGroup.h. Referenced by operator=(). |
|
Definition at line 242 of file eggGroup.h. Referenced by EggGroup(), operator=(), and set_group_type(). |
|
Definition at line 243 of file eggGroup.h. Referenced by EggGroup(), and operator=(). |
|
Definition at line 248 of file eggGroup.h. Referenced by EggGroup(), and operator=(). |
|
Definition at line 244 of file eggGroup.h. |
|
Definition at line 244 of file eggGroup.h. |
|
Definition at line 246 of file eggGroup.h. Referenced by has_object_type(), operator=(), remove_object_type(), and write(). |
|
Reimplemented from EggGroupNode. Reimplemented in EggBin. Definition at line 30 of file eggGroup.cxx. |
|
Definition at line 250 of file eggGroup.h. Referenced by get_vertex_membership(), operator=(), ref_vertex(), unref_all_vertices(), unref_vertex(), and write_vertex_ref(). |