Panda3D
Public Types | Public Member Functions | 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 ShaderBuffer

Public Types

enum  AnimationType { AT_none = 0, AT_panda = 1, AT_hardware = 2 }
 
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
}
 
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, GR_render_mode_wireframe = 262144, GR_render_mode_point = 524288, GR_adjacency = 1048576
}
 
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,
  NT_int8 = 8, NT_int16 = 9, NT_int32 = 10, NT_packed_ufloat = 11
}
 
enum  PrimitiveType {
  PT_none = 0, PT_polygons = 1, PT_lines = 2, PT_points = 3,
  PT_patches = 4
}
 
enum  ShadeModel { SM_uniform = 0, SM_smooth = 1, SM_flat_first_vertex = 2, SM_flat_last_vertex = 3 }
 
enum  UsageHint {
  UH_client = 0, UH_stream = 1, UH_dynamic = 2, UH_static = 3,
  UH_unspecified = 4
}
 

Public Member Functions

 __init__ ()
 
 __init__ (const GeomEnums)
 

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

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

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.

GR_render_mode_wireframe 

If a particular non-fill polygon mode is used.

GR_render_mode_point 
GR_adjacency 

The primitive has adjacency information.

◆ NumericType

Enumerator
NT_uint8 

An integer 0..255.

NT_uint16 

An integer 0..65535.

NT_uint32 

An integer 0..4294967295.

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.

NT_int8 

An integer -128..127.

NT_int16 

An integer -32768..32767.

NT_int32 

An integer -2147483648..2147483647.

NT_packed_ufloat 

Three 10/11-bit float components packed in a uint32.

◆ PrimitiveType

Enumerator
PT_none 
PT_polygons 
PT_lines 
PT_points 
PT_patches 

◆ ShadeModel

enum ShadeModel
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 colorsnormals 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 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.

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.

Member Function Documentation

◆ __init__() [1/2]

__init__ ( )

◆ __init__() [2/2]

__init__ ( const  GeomEnums)