EggGroup
from panda3d.egg import EggGroup
- class EggGroup
Bases:
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 BT_none = 0
-
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 BM_unspecified = 0
-
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 BO_unspecified = 0
-
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 CF_none = 0
-
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 CST_none = 0
-
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 DC_unspecified = 0
-
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 DT_none = 0
-
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 GT_invalid = -1
- class TagData
Bases:
alias of
map_string_string
- class VertexRef
Bases:
alias of
map_PT_EggVertex_double
- __init__(name: str)
- add_group_ref(group: EggGroup)
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.
- property billboard_center LPoint3d
Getter Setter
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()
.
- property billboard_type BillboardType
- property blend_color LColor
- Getter
Returns the blend color if one has been specified, or (0, 0, 0, 0) if one has not.
Setter
- property blend_mode BlendMode
- property blend_operand_a BlendOperand
- property blend_operand_b BlendOperand
- clear_billboard_center()
- clear_blend_color()
Removes the blend color specification.
- clear_collide_mask()
- clear_collision_name()
- clear_default_pose()
Removes the initial pose transform. See
set_default_pose()
.
- clear_from_collide_mask()
- clear_group_refs()
Removes all of the <Ref> entries within this group. See
add_group_ref()
.
- clear_indexed_flag()
- clear_into_collide_mask()
- clear_lod()
- clear_object_types()
- clear_tag(key: str)
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.
- property collide_flags CollideFlags
- property collide_mask CollideMask
- property collision_name string
- property cs_type CollisionSolidType
- property dart_type DartType
- property dcs_type DCSType
- property default_pose EggTransform
- Getter
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.
- Setter
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.
- determine_alpha_mode() EggRenderMode
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.
- determine_bin() EggRenderMode
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.
- determine_decal() bool
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.
- determine_depth_offset() EggRenderMode
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.
- determine_depth_test_mode() EggRenderMode
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.
- determine_depth_write_mode() EggRenderMode
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.
- determine_draw_order() EggRenderMode
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.
- determine_indexed() bool
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.
- determine_visibility_mode() EggRenderMode
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.
- property from_collide_mask CollideMask
- get_billboard_center() panda3d.core.LPoint3d
- get_billboard_type() BillboardType
- get_blend_color() panda3d.core.LColor
Returns the blend color if one has been specified, or (0, 0, 0, 0) if one has not.
- get_blend_mode() BlendMode
- get_blend_operand_a() BlendOperand
- get_blend_operand_b() BlendOperand
- static get_class_type() panda3d.core.TypeHandle
- get_collide_flags() CollideFlags
- get_collide_mask() panda3d.core.CollideMask
- get_cs_type() CollisionSolidType
- get_dart_type() DartType
- get_dcs_type() DCSType
- get_default_pose() EggTransform
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.
- get_from_collide_mask() panda3d.core.CollideMask
- get_group_ref(n: int) EggGroup
Returns the nth <Ref> entry within this group. See
add_group_ref()
.
- get_group_type() GroupType
- get_into_collide_mask() panda3d.core.CollideMask
- get_lod() EggSwitchCondition
- get_num_group_refs() int
Returns the number of <Ref> entries within this group. See
add_group_ref()
.
- get_tag(key: str) str
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.
- get_vertex_membership(vert: EggVertex) float
Returns the amount of membership of the indicated vertex in this group. If the vertex is not reffed by the group, returns 0.
- property group_type GroupType
- has_object_type(object_type: str) bool
Returns true if the indicated object type has been added to the group, or false otherwise.
- has_tag(key: str) bool
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.
- property indexed_flag bool
Getter Setter
If this flag is true, geometry at this node and below will be generated as indexed geometry.
- property into_collide_mask CollideMask
- is_instance_type() bool
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.
- is_joint() bool
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()
.
- property lod EggSwitchCondition
- modify_default_pose() EggTransform
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.
- ref_vertex(vert: EggVertex, membership: float)
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.
- remove_group_ref(n: int)
Removes the nth <Ref> entry within this group. See
add_group_ref()
.
- remove_object_type(object_type: str) bool
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.
- set_billboard_center(billboard_center: panda3d.core.LPoint3d)
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()
.
- set_billboard_type(type: BillboardType)
- set_blend_color(blend_color: panda3d.core.LColor)
- set_blend_mode(blend_mode: BlendMode)
- set_blend_operand_a(blend_operand_a: BlendOperand)
- set_blend_operand_b(blend_operand_b: BlendOperand)
- set_collide_mask(mask: panda3d.core.CollideMask)
- set_cs_type(type: CollisionSolidType)
- set_dart_type(type: DartType)
- set_dcs_type(type: DCSType)
- set_default_pose(transform: EggTransform)
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.
- set_from_collide_mask(mask: panda3d.core.CollideMask)
- set_group_type(type: GroupType)
- set_indexed_flag(flag: bool)
If this flag is true, geometry at this node and below will be generated as indexed geometry.
- set_into_collide_mask(mask: panda3d.core.CollideMask)
- set_lod(lod: EggSwitchCondition)
- set_tag(key: str, value: str)
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.
- set_vertex_membership(vert: EggVertex, membership: float)
Explicitly sets the net membership of the indicated vertex in this group to the given value.
- steal_vrefs(other: EggGroup)
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 string_billboard_type(strval: str) BillboardType
Returns the
BillboardType
value associated with the given string representation, or BT_none if the string does not match any knownBillboardType
value.
- static string_blend_mode(strval: str) BlendMode
Returns the
BlendMode
value associated with the given string representation, or BM_none if the string does not match any knownBlendMode
.
- static string_blend_operand(strval: str) BlendOperand
Returns the
BlendOperand
value associated with the given string representation, or BO_none if the string does not match any knownBlendOperand
.
- static string_collide_flags(strval: str) CollideFlags
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 string_cs_type(strval: str) CollisionSolidType
Returns the
CollisionSolidType
value associated with the given string representation, or CST_none if the string does not match any knownCollisionSolidType
value.
- static string_dart_type(strval: str) DartType
Returns the
DartType
value associated with the given string representation, or DT_none if the string does not match any knownDartType
value.
- static string_dcs_type(strval: str) DCSType
Returns the
DCSType
value associated with the given string representation, or DC_unspecified if the string does not match any knownDCSType
value.
- static string_group_type(strval: str) GroupType
Returns the
GroupType
value associated with the given string representation, or GT_invalid if the string does not match any knownGroupType
value.
- test_vref_integrity()
- unref_all_vertices()
Removes all vertices from the reference list.
- unref_vertex(vert: EggVertex)
Removes the vertex from the set of those referenced by the group. Does nothing if the vertex is not already reffed.
- write(out: panda3d.core.ostream, indent_level: int)
Writes the group and all of its children to the indicated output stream in Egg format.
- write_billboard_flags(out: panda3d.core.ostream, indent_level: int)
Writes just the <Billboard> entry and related fields to the indicated ostream.
- write_collide_flags(out: panda3d.core.ostream, indent_level: int)
Writes just the <Collide> entry and related fields to the indicated ostream.
- write_decal_flags(out: panda3d.core.ostream, indent_level: int)
Writes the flags related to decaling, if any.
- write_model_flags(out: panda3d.core.ostream, indent_level: int)
Writes the <Model> flag and related flags to the indicated ostream.
- write_object_types(out: panda3d.core.ostream, indent_level: int)
Writes just the <ObjectTypes> entries, if any, to the indicated ostream.
- write_render_mode(out: panda3d.core.ostream, indent_level: int)
Writes the flags inherited from
EggRenderMode
and similar flags that control obscure render effects.
- write_switch_flags(out: panda3d.core.ostream, indent_level: int)
Writes the <Switch> flag and related flags to the indicated ostream.
- write_tags(out: panda3d.core.ostream, indent_level: int)
Writes just the <Tag> entries, if any, to the indicated ostream.
-
enum BillboardType