Panda3D
Public Types | List of all members
GeomEnums Class Reference

This class exists just to provide scoping for the various enumerated types used by Geom, GeomVertexData, GeomVertexArrayData, GeomPrimitive, and other related classes. More...

Inheritance diagram for GeomEnums:
Geom GeomPrimitive GeomVertexAnimationSpec GeomVertexArrayData GeomVertexArrayDataHandle GeomVertexArrayFormat GeomVertexColumn GeomVertexData GeomVertexFormat GeomVertexReader GeomVertexWriter

Public Types

enum  AnimationType { AT_none = 0, AT_panda = 1, AT_hardware = 2 }
 The type of animation data that is represented by a particular GeomVertexFormat. More...
 
enum  Contents {
  C_other = 0, C_point = 1, C_clip_point = 2, C_vector = 3,
  C_texcoord = 4, C_color = 5, C_index = 6, C_morph_delta = 7,
  C_matrix = 8, C_normal = 9
}
 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. More...
 
enum  GeomRendering {
  GR_indexed_point = 1, GR_indexed_other = 65536, GR_indexed_bits = 65537, GR_point = 2,
  GR_point_uniform_size = 4, GR_per_point_size = 8, GR_point_perspective = 16, GR_point_aspect_ratio = 32,
  GR_point_scale = 64, GR_point_rotate = 128, GR_point_sprite = 256, GR_point_sprite_tex_matrix = 512,
  GR_point_bits = 1022, GR_triangle_strip = 1024, GR_triangle_fan = 2048, GR_line_strip = 4096,
  GR_composite_bits = 7168, GR_strip_cut_index = 131072, GR_flat_first_vertex = 8192, GR_flat_last_vertex = 16384,
  GR_shade_model_bits = 24576
}
 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. More...
 
enum  NumericType {
  NT_uint8 = 0, NT_uint16 = 1, NT_uint32 = 2, NT_packed_dcba = 3,
  NT_packed_dabc = 4, NT_float32 = 5, NT_float64 = 6, NT_stdfloat = 7
}
 The numeric type determines what physical representation is used to encode a numeric value within the vertex data. More...
 
enum  PrimitiveType {
  PT_none = 0, PT_polygons = 1, PT_lines = 2, PT_points = 3,
  PT_patches = 4
}
 The primitive type represents the core primitive type of a particular GeomPrimitive. It's used for determining what kind of antialiasing should be enabled. More...
 
enum  ShadeModel { SM_uniform = 0, SM_smooth = 1, SM_flat_first_vertex = 2, SM_flat_last_vertex = 3 }
 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. More...
 
enum  UsageHint {
  UH_client = 0, UH_stream = 1, UH_dynamic = 2, UH_static = 3,
  UH_unspecified = 4
}
 

Detailed Description

This class exists just to provide scoping for the various enumerated types used by Geom, GeomVertexData, GeomVertexArrayData, GeomPrimitive, and other related classes.

Member Enumeration Documentation

◆ AnimationType

The type of animation data that is represented by a particular GeomVertexFormat.

Enumerator
AT_none 

No vertex animation.

AT_panda 

Vertex animation calculated on the CPU by Panda.

AT_hardware 

Hardware-accelerated animation on the graphics card.

◆ Contents

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 

Arbitrary meaning, leave it alone.

C_point 

A point in 3-space or 4-space.

C_clip_point 

A point pre-transformed into clip coordinates.

C_vector 

A surface tangent or binormal (see C_normal for normals)

C_texcoord 

A texture coordinate.

C_color 

3- or 4-component color, ordered R, G, B, [A]

C_index 

An index value into some other table.

C_morph_delta 

A delta from some base value, defining a blend shape.

C_matrix 

A transformation matrix. This is typically three or four columns, but we pretend it's only one for convenience.

C_normal 

A special version of C_vector that should be used for normal vectors, which are scaled differently from other vectors.

◆ 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 

If there are indexed points.

GR_indexed_other 

If there is indexed geometry of any other type.

GR_indexed_bits 

The union of all of the indexed attributes.

GR_point 

If there are any points at all.

GR_point_uniform_size 

If the points are all the same size, other than 1 pixel.

GR_per_point_size 

If the points have a per-vertex size designation.

GR_point_perspective 

If the points' size is specified in camera units rather than screen pixels.

GR_point_aspect_ratio 

If the points have a non-square aspect ratio.

GR_point_scale 

If the points are under a scale transform, uniform or non-uniform.

GR_point_rotate 

If the points are rotated off the orthonormal axis.

GR_point_sprite 

If the points require texture coordinates interpolated across their face, to render textures as sprites.

GR_point_sprite_tex_matrix 

If there is a texture matrix applied to the sprite's generated texture coordinates.

GR_point_bits 

The union of all the above point attributes, except GR_indexed_point.

GR_triangle_strip 

If there are any of these composite types.

GR_triangle_fan 
GR_line_strip 
GR_composite_bits 

The union of all of the above composite types.

GR_strip_cut_index 

If strip-cut indices are used to restart a composite primitive.

GR_flat_first_vertex 

If the shade model requires a particular vertex for flat shading.

GR_flat_last_vertex 
GR_shade_model_bits 

The union of the above shade model types.

◆ NumericType

The numeric type determines what physical representation is used to encode a numeric value within the vertex data.

Enumerator
NT_uint8 

An integer 0..255.

NT_uint16 

An integer 0..65535.

NT_uint32 

An integer 0..4294967296.

NT_packed_dcba 

DirectX style, four byte values packed in a uint32.

NT_packed_dabc 

DirectX packed color order (ARGB)

NT_float32 

A single-precision float.

NT_float64 

A double-precision float.

NT_stdfloat 

Either single- or double-precision, according to vertices-float64.

◆ 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 
PT_polygons 
PT_lines 
PT_points 
PT_patches 

◆ ShadeModel

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 

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.

SM_smooth 

SM_smooth: vertices within a single face have different colors/normals that should be smoothed across the face. This primitive should be rendered with SmoothModelAttrib::M_smooth.

SM_flat_first_vertex 

SM_flat_(first,last)_vertex: each face within the primitive might have a different color/normal than the other faces, but across a particular face there is only one color/normal. Each face's color/normal is taken from the (first, last) vertex of the face. This primitive should be rendered with SmoothModelAttrib::M_flat.

SM_flat_last_vertex 

◆ UsageHint

enum UsageHint
Enumerator
UH_client 

UH_client: don't attempt to upload the data; always keep it on the client.

UH_stream 

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.

UH_dynamic 

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.

UH_static 

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

UH_unspecified 

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.