EggGroup¶
-
class
EggGroup
¶ Bases:
EggGroupNode
,EggRenderMode
,EggTransform
The main glue of the egg hierarchy, this corresponds to the <Group>, <Instance>, and <Joint> type nodes.
Inheritance diagram
-
enum
BillboardType
¶ -
enumerator
BT_none
= 0¶ The bits here must correspond to those in Flags, below.
-
enumerator
BT_axis
= 32¶
-
enumerator
BT_point_camera_relative
= 64¶
-
enumerator
BT_point_world_relative
= 128¶
-
enumerator
-
enum
BlendMode
¶ These correspond to
ColorBlendAttrib::Mode
(but not numerically).-
enumerator
BM_unspecified
= 0¶
-
enumerator
BM_none
= 1¶
-
enumerator
BM_add
= 2¶
-
enumerator
BM_subtract
= 3¶
-
enumerator
BM_inv_subtract
= 4¶
-
enumerator
BM_min
= 5¶
-
enumerator
BM_max
= 6¶
-
enumerator
-
enum
BlendOperand
¶ These correspond to
ColorBlendAttrib::Operand
(but not numerically).-
enumerator
BO_unspecified
= 0¶
-
enumerator
BO_zero
= 1¶
-
enumerator
BO_one
= 2¶
-
enumerator
BO_incoming_color
= 3¶
-
enumerator
BO_one_minus_incoming_color
= 4¶
-
enumerator
BO_fbuffer_color
= 5¶
-
enumerator
BO_one_minus_fbuffer_color
= 6¶
-
enumerator
BO_incoming_alpha
= 7¶
-
enumerator
BO_one_minus_incoming_alpha
= 8¶
-
enumerator
BO_fbuffer_alpha
= 9¶
-
enumerator
BO_one_minus_fbuffer_alpha
= 10¶
-
enumerator
BO_constant_color
= 11¶
-
enumerator
BO_one_minus_constant_color
= 12¶
-
enumerator
BO_constant_alpha
= 13¶
-
enumerator
BO_one_minus_constant_alpha
= 14¶
-
enumerator
BO_incoming_color_saturate
= 15¶
-
enumerator
BO_color_scale
= 16¶
-
enumerator
BO_one_minus_color_scale
= 17¶
-
enumerator
BO_alpha_scale
= 18¶
-
enumerator
BO_one_minus_alpha_scale
= 19¶
-
enumerator
-
enum
CollideFlags
¶ -
enumerator
CF_none
= 0¶ The bits here must correspond to those in Flags, below, and they must fit within F_collide_flags.
-
enumerator
CF_descend
= 1048576¶
-
enumerator
CF_event
= 2097152¶
-
enumerator
CF_keep
= 4194304¶
-
enumerator
CF_solid
= 8388608¶
-
enumerator
CF_center
= 16777216¶
-
enumerator
CF_turnstile
= 33554432¶
-
enumerator
CF_level
= 67108864¶
-
enumerator
CF_intangible
= 134217728¶
-
enumerator
-
enum
CollisionSolidType
¶ -
enumerator
CST_none
= 0¶ The bits here must correspond to those in Flags, below, and they must fit within F_cs_type.
-
enumerator
CST_plane
= 65536¶
-
enumerator
CST_polygon
= 131072¶
-
enumerator
CST_polyset
= 196608¶
-
enumerator
CST_sphere
= 262144¶
-
enumerator
CST_tube
= 327680¶
-
enumerator
CST_inv_sphere
= 393216¶
-
enumerator
CST_box
= 458752¶
-
enumerator
CST_floor_mesh
= 524288¶
-
enumerator
-
enum
DCSType
¶ -
enumerator
DC_unspecified
= 0¶ The bits here must correspond to those in Flags2, below.
-
enumerator
DC_none
= 16¶
-
enumerator
DC_local
= 32¶
-
enumerator
DC_net
= 48¶
-
enumerator
DC_no_touch
= 64¶
-
enumerator
DC_default
= 80¶
-
enumerator
-
enum
DartType
¶ -
enumerator
DT_none
= 0¶ The bits here must correspond to those in Flags, below.
-
enumerator
DT_structured
= 268435456¶
-
enumerator
DT_sync
= 536870912¶
-
enumerator
DT_nosync
= 805306368¶
-
enumerator
DT_default
= 1073741824¶
-
enumerator
-
enum
GroupType
¶ These bits are all stored somewhere in _flags.
-
enumerator
GT_invalid
= -1¶ The bits here must correspond to those in Flags, below.
-
enumerator
GT_group
= 0¶
-
enumerator
GT_instance
= 1¶
-
enumerator
GT_joint
= 2¶
-
enumerator
-
explicit
EggGroup
(std::string const &name = "")¶
-
void
add_group_ref
(EggGroup *group)¶ Adds a new <Ref> entry to the group. This declares an internal reference to another node, and is used to implement scene-graph instancing; it is only valid if the group_type is GT_instance.
-
void
add_object_type
(std::string const &object_type)¶
-
void
clear_billboard_center
(void)¶
-
void
clear_blend_color
(void)¶ Removes the blend color specification.
-
void
clear_collide_mask
(void)¶
-
void
clear_collision_name
(void)¶
-
void
clear_default_pose
(void)¶ Removes the initial pose transform. See
set_default_pose()
.
-
void
clear_from_collide_mask
(void)¶
-
void
clear_group_refs
(void)¶ Removes all of the <Ref> entries within this group. See
add_group_ref()
.
-
void
clear_indexed_flag
(void)¶
-
void
clear_into_collide_mask
(void)¶
-
void
clear_lod
(void)¶
-
void
clear_object_types
(void)¶
-
void
clear_tag
(std::string const &key)¶ Removes the value defined for this key on this particular node. After a call to clear_tag(),
has_tag()
will return false for the indicated key.
-
virtual EggRenderMode *
determine_alpha_mode
(void)¶ Walks back up the hierarchy, looking for an
EggGroup
orEggPrimitive
or some such object at this level or above this group that has an alpha_mode other than AM_unspecified. Returns a validEggRenderMode
pointer if one is found, or NULL otherwise.
-
virtual EggRenderMode *
determine_bin
(void)¶ Walks back up the hierarchy, looking for an
EggGroup
orEggPrimitive
or some such object at this level or above this group that has a bin specified. Returns a validEggRenderMode
pointer if one is found, or NULL otherwise.
-
virtual bool
determine_decal
(void)¶ Walks back up the hierarchy, looking for an
EggGroup
at this level or above that has the “decal” flag set. Returns the value of the decal flag if it is found, or false if it is not.In other words, returns true if the “decal” flag is in effect for the indicated node, false otherwise.
-
virtual EggRenderMode *
determine_depth_offset
(void)¶ Walks back up the hierarchy, looking for an
EggGroup
orEggPrimitive
or some such object at this level or above this group that has a depth_offset specified. Returns a validEggRenderMode
pointer if one is found, or NULL otherwise.
-
virtual EggRenderMode *
determine_depth_test_mode
(void)¶ Walks back up the hierarchy, looking for an
EggGroup
orEggPrimitive
or some such object at this level or above this group that has a depth_test_mode other than DTM_unspecified. Returns a validEggRenderMode
pointer if one is found, or NULL otherwise.
-
virtual EggRenderMode *
determine_depth_write_mode
(void)¶ Walks back up the hierarchy, looking for an
EggGroup
orEggPrimitive
or some such object at this level or above this group that has a depth_write_mode other than DWM_unspecified. Returns a validEggRenderMode
pointer if one is found, or NULL otherwise.
-
virtual EggRenderMode *
determine_draw_order
(void)¶ Walks back up the hierarchy, looking for an
EggGroup
orEggPrimitive
or some such object at this level or above this group that has a draw_order specified. Returns a validEggRenderMode
pointer if one is found, or NULL otherwise.
-
virtual bool
determine_indexed
(void)¶ Walks back up the hierarchy, looking for an
EggGroup
at this level or above that has the “indexed” scalar set. Returns the value of the indexed scalar if it is found, or false if it is not.In other words, returns true if the “indexed” flag is in effect for the indicated node, false otherwise.
-
virtual EggRenderMode *
determine_visibility_mode
(void)¶ Walks back up the hierarchy, looking for an
EggGroup
orEggPrimitive
or some such object at this level or above this group that has a visibility_mode other than VM_unspecified. Returns a validEggRenderMode
pointer if one is found, or NULL otherwise.
-
BillboardType
get_billboard_type
(void) const¶
-
LColor const &
get_blend_color
(void) const¶ Returns the blend color if one has been specified, or (0, 0, 0, 0) if one has not.
-
BlendOperand
get_blend_operand_a
(void) const¶
-
BlendOperand
get_blend_operand_b
(void) const¶
-
static TypeHandle
get_class_type
(void)¶
-
CollideFlags
get_collide_flags
(void) const¶
-
CollideMask
get_collide_mask
(void) const¶
-
std::string const &
get_collision_name
(void) const¶
-
CollisionSolidType
get_cs_type
(void) const¶
-
bool
get_decal_flag
(void) const¶
-
EggTransform const &
get_default_pose
(void) const¶ Returns a read-only accessor to the initial pose transform. This is the <DefaultPose> entry for a Joint, and defines only the initial transform pose for the unanimated joint; it has nothing to do with the group’s <Transform> entry, which defines the (eventual) space of the group’s vertices.
-
bool
get_direct_flag
(void) const¶
-
CollideMask
get_from_collide_mask
(void) const¶
-
EggGroup *
get_group_ref
(int n) const¶ Returns the nth <Ref> entry within this group. See
add_group_ref()
.
-
bool
get_indexed_flag
(void) const¶
-
CollideMask
get_into_collide_mask
(void) const¶
-
EggSwitchCondition const &
get_lod
(void) const¶
-
bool
get_model_flag
(void) const¶
-
bool
get_nofog_flag
(void) const¶
-
int
get_num_group_refs
(void) const¶ Returns the number of <Ref> entries within this group. See
add_group_ref()
.
-
int
get_num_object_types
(void) const¶
-
std::string
get_object_type
(int index) const¶
-
bool
get_occluder_flag
(void) const¶
-
bool
get_polylight_flag
(void) const¶
-
bool
get_portal_flag
(void) const¶
-
double
get_scroll_r
(void) const¶
-
double
get_scroll_u
(void) const¶
-
double
get_scroll_v
(void) const¶
-
double
get_scroll_w
(void) const¶
-
bool
get_switch_flag
(void) const¶
-
double
get_switch_fps
(void) const¶
-
std::string
get_tag
(std::string const &key) const¶ Retrieves the user-defined value that was previously set on this node for the particular key, if any. If no value has been previously set, returns the empty string.
-
bool
get_texlist_flag
(void) const¶
-
double
get_vertex_membership
(EggVertex const *vert) const¶ Returns the amount of membership of the indicated vertex in this group. If the vertex is not reffed by the group, returns 0.
-
bool
has_billboard_center
(void) const¶
-
bool
has_blend_color
(void) const¶ Returns true if the blend color has been specified, false otherwise.
-
bool
has_collide_mask
(void) const¶
-
bool
has_collision_name
(void) const¶
-
bool
has_dcs_type
(void) const¶ Returns true if the specified DCS type is not DC_none and not DC_unspecified.
-
bool
has_from_collide_mask
(void) const¶
-
bool
has_indexed_flag
(void) const¶
-
bool
has_into_collide_mask
(void) const¶
-
bool
has_lod
(void) const¶
-
bool
has_object_type
(std::string const &object_type) const¶ Returns true if the indicated object type has been added to the group, or false otherwise.
-
bool
has_scrolling_uvs
(void)¶
-
bool
has_tag
(std::string const &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
(void) const¶ Returns true if this group is an instance type node; i.e. it begins the root of a local coordinate space. This is not related to instancing (multiple copies of a node in a scene graph).
This also includes the case of the node including a billboard flag without an explicit center, which implicitly makes the node behave like an instance.
-
virtual bool
is_joint
(void) const¶ Returns true if this particular node represents a <Joint> entry or not. This is a handy thing to know since Joints are sorted to the end of their sibling list when writing an egg file. See EggGroupNode::write().
-
EggTransform &
modify_default_pose
(void)¶ Returns a writable accessor to the initial pose transform. This is the <DefaultPose> entry for a Joint, and defines only the initial transform pose for the unanimated joint; it has nothing to do with the group’s <Transform> entry, which defines the (eventual) space of the group’s vertices.
-
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. If the vertex is already being referenced, increases the membership amount by the indicated amount.
-
void
remove_group_ref
(int n)¶ Removes the nth <Ref> entry within this group. See
add_group_ref()
.
-
bool
remove_object_type
(std::string const &object_type)¶ Removes the first instance of the indicated object type from the group if it is present. Returns true if the object type was found and removed, false otherwise.
-
void
set_billboard_center
(LPoint3d const &billboard_center)¶ Sets the point around which the billboard will rotate, if this node contains a billboard specification.
If a billboard type is given but no billboard_center is specified, then the group node is treated as an <Instance>, and the billboard rotates around the origin. If, however, a billboard_center is specified, then the group node is not treated as an <Instance>, and the billboard rotates around the specified point.
The point is in the same coordinate system as the vertices of this node: usually global, but possibly local if there is an <Instance> somewhere above. Specifically, this is the coordinate system defined by get_vertex_frame().
-
void
set_billboard_type
(EggGroup::BillboardType type)¶
-
void
set_blend_operand_a
(EggGroup::BlendOperand blend_operand_a)¶
-
void
set_blend_operand_b
(EggGroup::BlendOperand blend_operand_b)¶
-
void
set_collide_flags
(int flags)¶
-
void
set_collide_mask
(CollideMask mask)¶
-
void
set_collision_name
(std::string const &collision_name)¶
-
void
set_cs_type
(EggGroup::CollisionSolidType type)¶
-
void
set_decal_flag
(bool flag)¶
-
void
set_default_pose
(EggTransform const &transform)¶ Replaces the initial pose transform. This is the <DefaultPose> entry for a Joint, and defines only the initial transform pose for the unanimated joint; it has nothing to do with the group’s <Transform> entry, which defines the (eventual) space of the group’s vertices.
-
void
set_direct_flag
(bool flag)¶
-
void
set_from_collide_mask
(CollideMask mask)¶
-
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
(EggSwitchCondition const &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
(double const r_speed)¶
-
void
set_scroll_u
(double const u_speed)¶
-
void
set_scroll_v
(double const v_speed)¶
-
void
set_scroll_w
(double const w_speed)¶
-
void
set_switch_flag
(bool flag)¶
-
void
set_switch_fps
(double fps)¶
-
void
set_tag
(std::string const &key, std::string const &value)¶ Associates a user-defined value with a user-defined key which is stored on the node. This value has no meaning to Panda; but it is stored indefinitely on the node until it is requested again. This value will be copied to the
PandaNode
that is created for this particularEggGroup
if the egg file is loaded as a scene.Each unique key stores a different string value. There is no effective limit on the number of different keys that may be stored or on the length of any one key’s value.
-
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. If a given vertex was previously shared by both groups, the relative memberships will be summed.
-
static BillboardType
string_billboard_type
(std::string const &strval)¶ Returns the
BillboardType
value associated with the given string representation, or BT_none if the string does not match any knownBillboardType
value.
-
static BlendMode
string_blend_mode
(std::string const &strval)¶ Returns the
BlendMode
value associated with the given string representation, or BM_none if the string does not match any knownBlendMode
.
-
static BlendOperand
string_blend_operand
(std::string const &strval)¶ Returns the
BlendOperand
value associated with the given string representation, or BO_none if the string does not match any knownBlendOperand
.
-
static CollideFlags
string_collide_flags
(std::string const &strval)¶ Returns the
CollideFlags
value associated with the given string representation, or CF_none if the string does not match any knownCollideFlags
value. This only recognizes a single keyword; it does not attempt to parse a string of keywords.
-
static CollisionSolidType
string_cs_type
(std::string const &strval)¶ Returns the
CollisionSolidType
value associated with the given string representation, or CST_none if the string does not match any knownCollisionSolidType
value.
-
static DartType
string_dart_type
(std::string const &strval)¶ Returns the
DartType
value associated with the given string representation, or DT_none if the string does not match any knownDartType
value.
-
static DCSType
string_dcs_type
(std::string const &strval)¶ Returns the
DCSType
value associated with the given string representation, or DC_unspecified if the string does not match any knownDCSType
value.
-
static GroupType
string_group_type
(std::string const &strval)¶ Returns the
GroupType
value associated with the given string representation, or GT_invalid if the string does not match any knownGroupType
value.
-
void
test_vref_integrity
(void) const¶
-
void
unref_all_vertices
(void)¶ Removes all vertices from the reference list.
-
void
unref_vertex
(EggVertex *vert)¶ Removes the vertex from the set of those referenced by the group. Does nothing if the vertex is not already reffed.
-
virtual void
write
(std::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
(std::ostream &out, int indent_level) const¶ Writes just the <Billboard> entry and related fields to the indicated ostream.
-
void
write_collide_flags
(std::ostream &out, int indent_level) const¶ Writes just the <Collide> entry and related fields to the indicated ostream.
-
void
write_decal_flags
(std::ostream &out, int indent_level) const¶ Writes the flags related to decaling, if any.
-
void
write_model_flags
(std::ostream &out, int indent_level) const¶ Writes the <Model> flag and related flags to the indicated ostream.
-
void
write_object_types
(std::ostream &out, int indent_level) const¶ Writes just the <ObjectTypes> entries, if any, to the indicated ostream.
-
void
write_render_mode
(std::ostream &out, int indent_level) const¶ Writes the flags inherited from
EggRenderMode
and similar flags that control obscure render effects.
-
void
write_switch_flags
(std::ostream &out, int indent_level) const¶ Writes the <Switch> flag and related flags to the indicated ostream.
Writes just the <Tag> entries, if any, to the indicated ostream.
-
enum