GeomEnums
-
class GeomEnums
This class exists just to provide scoping for the various enumerated types used by Geom,
GeomVertexData
,GeomVertexArrayData
,GeomPrimitive
, and other related classes.Inheritance diagram
-
enum AnimationType
The type of animation data that is represented by a particular
GeomVertexFormat
.-
enumerator AT_none = 0
No vertex animation.
-
enumerator AT_panda = 1
Vertex animation calculated on the CPU by Panda.
-
enumerator AT_hardware = 2
Hardware-accelerated animation on the graphics card.
-
enumerator AT_none = 0
-
enum Contents
The contents determine the semantic meaning of a numeric value within the vertex data. This is also used to determine what automatic transforms might be applied to the various columns.
-
enumerator C_other = 0
Arbitrary meaning, leave it alone
-
enumerator C_point = 1
A point in 3-space or 4-space
-
enumerator C_clip_point = 2
A point pre-transformed into clip coordinates
-
enumerator C_vector = 3
A surface tangent or binormal (see C_normal for normals)
-
enumerator C_texcoord = 4
A texture coordinate
-
enumerator C_color = 5
3- or 4-component color, ordered R, G, B, [A]
-
enumerator C_index = 6
An index value into some other table
-
enumerator C_morph_delta = 7
A delta from some base value, defining a blend shape
-
enumerator C_matrix = 8
A transformation matrix. This is typically three or four columns, but we pretend it’s only one for convenience.
-
enumerator C_normal = 9
A special version of C_vector that should be used for normal vectors, which are scaled differently from other vectors.
-
enumerator C_other = 0
-
enum GeomRendering
This type specifies a number of bits that are used to represent the rendering requirements of a particular Geom, as well as the rendering capabilities of the GSG. The difference between the two indicates whether the Geom needs to be munged for the GSG.
-
enumerator GR_indexed_point = 1
If there are indexed points.
-
enumerator GR_indexed_other = 65536
If there is indexed geometry of any other type.
-
enumerator GR_indexed_bits = 65537
The union of all of the indexed attributes.
-
enumerator GR_point = 2
If there are any points at all.
-
enumerator GR_point_uniform_size = 4
If the points are all the same size, other than 1 pixel.
-
enumerator GR_per_point_size = 8
If the points have a per-vertex size designation.
-
enumerator GR_point_perspective = 16
If the points’ size is specified in camera units rather than screen pixels.
-
enumerator GR_point_aspect_ratio = 32
If the points have a non-square aspect ratio.
-
enumerator GR_point_scale = 64
If the points are under a scale transform, uniform or non-uniform.
-
enumerator GR_point_rotate = 128
If the points are rotated off the orthonormal axis.
-
enumerator GR_point_sprite = 256
If the points require texture coordinates interpolated across their face, to render textures as sprites.
-
enumerator GR_point_sprite_tex_matrix = 512
If there is a texture matrix applied to the sprite’s generated texture coordinates.
-
enumerator GR_point_bits = 1022
The union of all the above point attributes, except GR_indexed_point.
-
enumerator GR_triangle_strip = 1024
If there are any of these composite types.
-
enumerator GR_triangle_fan = 2048
-
enumerator GR_line_strip = 4096
-
enumerator GR_composite_bits = 7168
The union of all of the above composite types.
-
enumerator GR_strip_cut_index = 131072
If strip-cut indices are used to restart a composite primitive.
-
enumerator GR_flat_first_vertex = 8192
If the shade model requires a particular vertex for flat shading.
-
enumerator GR_flat_last_vertex = 16384
-
enumerator GR_shade_model_bits = 24576
The union of the above shade model types.
-
enumerator GR_render_mode_wireframe = 262144
If a particular non-fill polygon mode is used.
-
enumerator GR_render_mode_point = 524288
-
enumerator GR_adjacency = 1048576
The primitive has adjacency information.
-
enumerator GR_indexed_point = 1
-
enum NumericType
The numeric type determines what physical representation is used to encode a numeric value within the vertex data.
-
enumerator NT_uint8 = 0
An integer 0..255
-
enumerator NT_uint16 = 1
An integer 0..65535
-
enumerator NT_uint32 = 2
An integer 0..4294967295
-
enumerator NT_packed_dcba = 3
DirectX style, four byte values packed in a uint32
-
enumerator NT_packed_dabc = 4
DirectX packed color order (ARGB)
-
enumerator NT_float32 = 5
A single-precision float
-
enumerator NT_float64 = 6
A double-precision float
-
enumerator NT_stdfloat = 7
Either single- or double-precision, according to vertices-float64.
-
enumerator NT_int8 = 8
An integer -128..127
-
enumerator NT_int16 = 9
An integer -32768..32767
-
enumerator NT_int32 = 10
An integer -2147483648..2147483647
-
enumerator NT_packed_ufloat = 11
Three 10/11-bit float components packed in a uint32
-
enumerator NT_uint8 = 0
-
enum PrimitiveType
The primitive type represents the core primitive type of a particular
GeomPrimitive
. It’s used for determining what kind of antialiasing should be enabled.-
enumerator PT_none = 0
-
enumerator PT_polygons = 1
-
enumerator PT_lines = 2
-
enumerator PT_points = 3
-
enumerator PT_patches = 4
-
enumerator PT_none = 0
-
enum ShadeModel
The shade model specifies whether the per-vertex colors and normals indexed by a given primitive truly represent per-vertex colors and normals, or whether they actually represent per-triangle flat-shaded colors and normals.
-
enumerator SM_uniform = 0
SM_uniform: all vertices across all faces have the same colors and normals. It doesn’t really matter which ShadeModelAttrib mode is used to render this primitive.
-
enumerator SM_smooth = 1
SM_smooth: vertices within a single face have different colorsnormals that should be smoothed across the face. This primitive should be rendered with SmoothModelAttrib::M_smooth.
-
enumerator SM_flat_first_vertex = 2
SM_flat_(first,last)_vertex: each face within the primitive might have a different colornormal than the other faces, but across a particular face there is only one colornormal. Each face’s colornormal is taken from the (first, last) vertex of the face. This primitive should be rendered with SmoothModelAttrib::M_flat.
-
enumerator SM_flat_last_vertex = 3
-
enumerator SM_uniform = 0
-
enum UsageHint
-
enumerator UH_client = 0
UH_client: don’t attempt to upload the data; always keep it on the client.
-
enumerator UH_stream = 1
UH_stream: the data will be created once, used to render a few times, and then discarded. This should be used for short-lived temporary objects.
-
enumerator UH_dynamic = 2
UH_dynamic: the data will be repeatedly modified and re-rendered. This is for data that will be modified at runtime, such as animated or soft- skinned vertices.
-
enumerator UH_static = 3
UH_static: the data will be created once, and used to render many times, without modification. This is the most common case, since typically vertex data is not directly animated (this is not related to scene graph animation, e.g. from adjusting transforms on a node).
-
enumerator UH_unspecified = 4
UH_unspecified: the usage is unspecified. This is intended as a “don’t care” option for abstract objects; it should not be applied to any actual geometry to be rendered. You take your chances if a geom actually gets into the scene graph with this set.
-
enumerator UH_client = 0
-
GeomEnums(void) = default
-
enum AnimationType