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

Inheritance diagram of GeomEnums

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.

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.

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.

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

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
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
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.

GeomEnums(void) = default
GeomEnums(GeomEnums const&) = default