The main glue of the egg hierarchy, this corresponds to the <Group>, <Instance>, and <Joint> type nodes.
More...
Public Types |
| enum | BillboardType { BT_none = 0x00000000,
BT_axis = 0x00000020,
BT_point_camera_relative = 0x00000040,
BT_point_world_relative = 0x00000080
} |
| enum | BlendMode {
BM_unspecified,
BM_none,
BM_add,
BM_subtract,
BM_inv_subtract,
BM_min,
BM_max
} |
| enum | BlendOperand {
BO_unspecified,
BO_zero,
BO_one,
BO_incoming_color,
BO_one_minus_incoming_color,
BO_fbuffer_color,
BO_one_minus_fbuffer_color,
BO_incoming_alpha,
BO_one_minus_incoming_alpha,
BO_fbuffer_alpha,
BO_one_minus_fbuffer_alpha,
BO_constant_color,
BO_one_minus_constant_color,
BO_constant_alpha,
BO_one_minus_constant_alpha,
BO_incoming_color_saturate,
BO_color_scale,
BO_one_minus_color_scale,
BO_alpha_scale,
BO_one_minus_alpha_scale
} |
| enum | CollideFlags {
CF_none = 0x00000000,
CF_descend = 0x00100000,
CF_event = 0x00200000,
CF_keep = 0x00400000,
CF_solid = 0x00800000,
CF_center = 0x01000000,
CF_turnstile = 0x02000000,
CF_level = 0x04000000,
CF_intangible = 0x08000000
} |
| enum | CollisionSolidType {
CST_none = 0x00000000,
CST_plane = 0x00010000,
CST_polygon = 0x00020000,
CST_polyset = 0x00030000,
CST_sphere = 0x00040000,
CST_tube = 0x00050000,
CST_inv_sphere = 0x00060000,
CST_floor_mesh = 0x00080000
} |
| enum | DartType {
DT_none = 0x00000000,
DT_structured = 0x10000000,
DT_sync = 0x20000000,
DT_nosync = 0x30000000,
DT_default = 0x40000000
} |
| enum | DCSType {
DC_unspecified = 0x00000000,
DC_none = 0x00000010,
DC_local = 0x00000020,
DC_net = 0x00000030,
DC_no_touch = 0x00000040,
DC_default = 0x00000050
} |
| enum | GroupType { GT_invalid = -1,
GT_group = 0x00000000,
GT_instance = 0x00000001,
GT_joint = 0x00000002
} |
|
typedef pmap< string, string > | TagData |
typedef pmap< PT_EggVertex,
double > | VertexRef |
Public Member Functions |
|
| EggGroup (const string &name="") |
|
| EggGroup (const EggGroup ©) |
| void | add_group_ref (EggGroup *group) |
| | Adds a new <Ref> entry to the group.
|
|
void | add_object_type (const string &object_type) |
| virtual EggTransform * | as_transform () |
| | Returns this object cross-cast to an EggTransform pointer, if it inherits from EggTransform, or NULL if it does not.
|
|
void | clear_billboard_center () |
| void | clear_blend_color () |
| | Removes the blend color specification.
|
|
void | clear_collide_mask () |
|
void | clear_collision_name () |
| void | clear_default_pose () |
| | Removes the initial pose transform.
|
|
void | clear_from_collide_mask () |
| void | clear_group_refs () |
| | Removes all of the <Ref> entries within this group.
|
|
void | clear_indexed_flag () |
|
void | clear_into_collide_mask () |
|
void | clear_lod () |
|
void | clear_object_types () |
| void | clear_tag (const string &key) |
| | Removes the value defined for this key on this particular node.
|
| virtual EggRenderMode * | determine_alpha_mode () |
| | Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or some such object at this level or above this group that has an alpha_mode other than AM_unspecified.
|
| virtual EggRenderMode * | determine_bin () |
| | Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or some such object at this level or above this group that has a bin specified.
|
| virtual bool | determine_decal () |
| | Walks back up the hierarchy, looking for an EggGroup at this level or above that has the "decal" flag set.
|
| virtual EggRenderMode * | determine_depth_offset () |
| | Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or some such object at this level or above this group that has a depth_offset specified.
|
| virtual EggRenderMode * | determine_depth_test_mode () |
| | Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or some such object at this level or above this group that has a depth_test_mode other than DTM_unspecified.
|
| virtual EggRenderMode * | determine_depth_write_mode () |
| | Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or some such object at this level or above this group that has a depth_write_mode other than DWM_unspecified.
|
| virtual EggRenderMode * | determine_draw_order () |
| | Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or some such object at this level or above this group that has a draw_order specified.
|
| virtual bool | determine_indexed () |
| | Walks back up the hierarchy, looking for an EggGroup at this level or above that has the "indexed" scalar set.
|
| virtual EggRenderMode * | determine_visibility_mode () |
| | Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or some such object at this level or above this group that has a visibility_mode other than VM_unspecified.
|
|
virtual TypeHandle | force_init_type () |
|
const LPoint3d & | get_billboard_center () const |
|
BillboardType | get_billboard_type () const |
| const LColor & | get_blend_color () const |
| | Returns the blend color if one has been specified, or (0, 0, 0, 0) if one has not.
|
|
BlendMode | get_blend_mode () const |
|
BlendOperand | get_blend_operand_a () const |
|
BlendOperand | get_blend_operand_b () const |
|
CollideFlags | get_collide_flags () const |
|
CollideMask | get_collide_mask () const |
|
const string & | get_collision_name () const |
|
CollisionSolidType | get_cs_type () const |
|
DartType | get_dart_type () const |
|
DCSType | get_dcs_type () const |
|
bool | get_decal_flag () const |
| const EggTransform & | get_default_pose () const |
| | Returns a read-only accessor to the initial pose transform.
|
|
bool | get_direct_flag () const |
|
CollideMask | get_from_collide_mask () const |
| EggGroup * | get_group_ref (int n) const |
| | Returns the nth <Ref> entry within this group.
|
|
GroupType | get_group_type () const |
|
bool | get_indexed_flag () const |
|
CollideMask | get_into_collide_mask () const |
|
const EggSwitchCondition & | get_lod () const |
|
bool | get_model_flag () const |
|
bool | get_nofog_flag () const |
| int | get_num_group_refs () const |
| | Returns the number of <Ref> entries within this group.
|
|
int | get_num_object_types () const |
|
string | get_object_type (int index) const |
|
bool | get_occluder_flag () const |
|
bool | get_polylight_flag () const |
|
bool | get_portal_flag () const |
|
double | get_scroll_r () const |
|
double | get_scroll_u () const |
|
double | get_scroll_v () const |
|
bool | get_switch_flag () const |
|
double | get_switch_fps () const |
| string | get_tag (const string &key) const |
| | Retrieves the user-defined value that was previously set on this node for the particular key, if any.
|
|
bool | get_texlist_flag () const |
|
virtual TypeHandle | get_type () const |
| double | get_vertex_membership (const EggVertex *vert) const |
| | Returns the amount of membership of the indicated vertex in this group.
|
|
bool | has_billboard_center () const |
| bool | has_blend_color () const |
| | Returns true if the blend color has been specified, false otherwise.
|
|
bool | has_collide_mask () const |
|
bool | has_collision_name () const |
| bool | has_dcs_type () const |
| | Returns true if the specified DCS type is not DC_none and not DC_unspecified.
|
|
bool | has_from_collide_mask () const |
|
bool | has_indexed_flag () const |
|
bool | has_into_collide_mask () const |
|
bool | has_lod () const |
| bool | has_object_type (const string &object_type) const |
| | Returns true if the indicated object type has been added to the group, or false otherwise.
|
|
bool | has_scrolling_uvs () |
| bool | has_tag (const string &key) const |
| | Returns true if a value has been defined on this node for the particular key (even if that value is the empty string), or false if no value has been set.
|
| bool | is_instance_type () const |
| | Returns true if this group is an instance type node; i.e.
|
| virtual bool | is_joint () const |
| | Returns true if this particular node represents a <Joint> entry or not.
|
|
| MAKE_SEQ (get_group_refs, get_num_group_refs, get_group_ref) |
|
| MAKE_SEQ (get_object_types, get_num_object_types, get_object_type) |
| EggTransform & | modify_default_pose () |
| | Returns a writable accessor to the initial pose transform.
|
|
EggGroup & | operator= (const EggGroup ©) |
| void | ref_vertex (EggVertex *vert, double membership=1.0) |
| | Adds the vertex to the set of those referenced by the group, at the indicated membership level.
|
| void | remove_group_ref (int n) |
| | Removes the nth <Ref> entry within this group.
|
| bool | remove_object_type (const string &object_type) |
| | Removes the first instance of the indicated object type from the group if it is present.
|
| void | set_billboard_center (const LPoint3d &billboard_center) |
| | Sets the point around which the billboard will rotate, if this node contains a billboard specification.
|
|
void | set_billboard_type (BillboardType type) |
|
void | set_blend_color (const LColor &blend_color) |
|
void | set_blend_mode (BlendMode blend_mode) |
|
void | set_blend_operand_a (BlendOperand blend_operand_a) |
|
void | set_blend_operand_b (BlendOperand blend_operand_b) |
|
void | set_collide_flags (int flags) |
|
void | set_collide_mask (CollideMask mask) |
|
void | set_collision_name (const string &collision_name) |
|
void | set_cs_type (CollisionSolidType type) |
|
void | set_dart_type (DartType type) |
|
void | set_dcs_type (DCSType type) |
|
void | set_decal_flag (bool flag) |
| void | set_default_pose (const EggTransform &transform) |
| | Replaces the initial pose transform.
|
|
void | set_direct_flag (bool flag) |
|
void | set_from_collide_mask (CollideMask mask) |
|
void | set_group_type (GroupType type) |
| void | set_indexed_flag (bool flag) |
| | If this flag is true, geometry at this node and below will be generated as indexed geometry.
|
|
void | set_into_collide_mask (CollideMask mask) |
|
void | set_lod (const EggSwitchCondition &lod) |
|
void | set_model_flag (bool flag) |
|
void | set_nofog_flag (bool flag) |
|
void | set_occluder_flag (bool flag) |
|
void | set_polylight_flag (bool flag) |
|
void | set_portal_flag (bool flag) |
|
void | set_scroll_r (const double r_speed) |
|
void | set_scroll_u (const double u_speed) |
|
void | set_scroll_v (const double v_speed) |
|
void | set_switch_flag (bool flag) |
|
void | set_switch_fps (double fps) |
| void | set_tag (const string &key, const string &value) |
| | Associates a user-defined value with a user-defined key which is stored on the node.
|
|
void | set_texlist_flag (bool flag) |
| void | set_vertex_membership (EggVertex *vert, double membership) |
| | Explicitly sets the net membership of the indicated vertex in this group to the given value.
|
| void | steal_vrefs (EggGroup *other) |
| | Moves all of the vertex references from the indicated other group into this one.
|
| TagData::const_iterator | tag_begin () const |
| | Returns an iterator that can, in conjunction with tag_end(), be used to traverse the entire set of tag keys.
|
| TagData::const_iterator | tag_end () const |
| | Returns an iterator that can, in conjunction with tag_begin(), be used to traverse the entire set of tag keys.
|
| TagData::size_type | tag_size () const |
| | Returns the number of elements between tag_begin() and tag_end().
|
|
void | test_vref_integrity () const |
| void | unref_all_vertices () |
| | Removes all vertices from the reference list.
|
| void | unref_vertex (EggVertex *vert) |
| | Removes the vertex from the set of those referenced by the group.
|
| VertexRef::const_iterator | vref_begin () const |
| | Returns an iterator that can, in conjunction with vref_end(), be used to traverse the entire set of referenced vertices.
|
| VertexRef::const_iterator | vref_end () const |
| | Returns an iterator that can, in conjunction with vref_begin(), be used to traverse the entire set of referenced vertices.
|
| VertexRef::size_type | vref_size () const |
| | Returns the number of elements between vref_begin() and vref_end().
|
| virtual void | write (ostream &out, int indent_level) const |
| | Writes the group and all of its children to the indicated output stream in Egg format.
|
| void | write_billboard_flags (ostream &out, int indent_level) const |
| | Writes just the <Billboard> entry and related fields to the indicated ostream.
|
| void | write_collide_flags (ostream &out, int indent_level) const |
| | Writes just the <Collide> entry and related fields to the indicated ostream.
|
| void | write_decal_flags (ostream &out, int indent_level) const |
| | Writes the flags related to decaling, if any.
|
| void | write_model_flags (ostream &out, int indent_level) const |
| | Writes the <Model> flag and related flags to the indicated ostream.
|
| void | write_object_types (ostream &out, int indent_level) const |
| | Writes just the <ObjectTypes> entries, if any, to the indicated ostream.
|
| void | write_render_mode (ostream &out, int indent_level) const |
| | Writes the flags inherited from EggRenderMode and similar flags that control obscure render effects.
|
| void | write_switch_flags (ostream &out, int indent_level) const |
| | Writes the <Switch> flag and related flags to the indicated ostream.
|
| void | write_tags (ostream &out, int indent_level) const |
| | Writes just the <Tag> entries, if any, to the indicated ostream.
|
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 BillboardType | string_billboard_type (const string &strval) |
| | Returns the BillboardType value associated with the given string representation, or BT_none if the string does not match any known BillboardType value.
|
| static BlendMode | string_blend_mode (const string &strval) |
| | Returns the BlendMode value associated with the given string representation, or BM_none if the string does not match any known BlendMode.
|
| static BlendOperand | string_blend_operand (const string &strval) |
| | Returns the BlendOperand value associated with the given string representation, or BO_none if the string does not match any known BlendOperand.
|
| static CollideFlags | string_collide_flags (const string &strval) |
| | Returns the CollideFlags value associated with the given string representation, or CF_none if the string does not match any known CollideFlags value.
|
| static CollisionSolidType | string_cs_type (const string &strval) |
| | Returns the CollisionSolidType value associated with the given string representation, or CST_none if the string does not match any known CollisionSolidType value.
|
| static DartType | string_dart_type (const string &strval) |
| | Returns the DartType value associated with the given string representation, or DT_none if the string does not match any known DartType value.
|
| static DCSType | string_dcs_type (const string &strval) |
| | Returns the DCSType value associated with the given string representation, or DC_unspecified if the string does not match any known DCSType value.
|
| static GroupType | string_group_type (const string &strval) |
| | Returns the GroupType value associated with the given string representation, or GT_invalid if the string does not match any known GroupType value.
|
Protected Member Functions |
| virtual void | adjust_under () |
| | This is called within update_under() after all the various under settings have been inherited directly from the parent node.
|
| virtual bool | egg_start_parse_body () |
| | This function is called within parse_egg().
|
| virtual void | r_flatten_transforms () |
| | The recursive implementation of flatten_transforms().
|
| virtual void | r_transform (const LMatrix4d &mat, const LMatrix4d &inv, CoordinateSystem to_cs) |
| | This is called from within the egg code by transform().
|
| virtual void | transform_changed () |
| | This virtual method is inherited by EggTransform3d; it is called whenever the transform is changed.
|
| void | write_vertex_ref (ostream &out, int indent_level) const |
| | Writes out the vertex ref component of the group body only.
|