![]() |
DI-Guy SDK Documentation
13.8
|
Meshes contain the visual geometry of a DI-Guy character. More...
#include <diguyOsgGraphicsMesh.h>
Public Member Functions | |
| diguyOsgGraphicsMesh (void *internal_data) | |
| virtual void | build () override |
| This function will be called by DI-Guy when it is time for a renderer-specific mesh object to be created. More... | |
| virtual void | unbuild () override |
| This function will be called by DI-Guy when it is time for a renderer-specific mesh object to be destroyed. More... | |
| osg::PrimitiveSet * | get_primitiveSet () |
| int | get_num_drawables () |
| osg::Drawable * | get_drawable (int drawable_index) |
Public Member Functions inherited from diguyGraphicsMesh | |
| int | get_num_switched_graphics_states () const |
| This function returns the number of switched graphics states this mesh has. More... | |
| int | get_is_skinned_mesh () |
| This function returns whether or not the mesh is "skinned". More... | |
| int | get_is_blend_shape () |
| This function returns whether or not the mesh is actually a morph object. More... | |
| void | free_loader_memory () |
| This function frees most memory allocated by the DI-Guy geometry loader for this object. More... | |
| const char * | get_name () |
| Returns the name of the mesh. More... | |
| long | get_uid () |
| All meshes are assigned a unique identifier (uid) This function returns the uid of the mesh. More... | |
| diguyGraphicsState * | get_state (int graphics_state_switch_index=0) |
| This function returns the graphics state with which faces in this mesh should be drawn. More... | |
| const diguyGraphicsState * | get_state (int graphics_state_switch_index=0) const |
| diguyGraphicsShaderProgram * | get_shader_program () |
| This function returns a pointer to the shader program designated for this mesh, if any. More... | |
| diguyGraphicsShaderInstance * | get_shader_instance () |
| If this mesh has a shader program specified (see get_shader_program()), this function returns a pointer to the shader instance object specific to this mesh. More... | |
| diguyGraphicsVertexFormat | get_vertex_format () |
| Returns: vertex format that describes the format of the data returned by the get_vertex_buffer_data() function. More... | |
| int | get_vertex_count () |
| Returns: how many vertices this mesh has. More... | |
| int | get_vertex_buffer_size () |
| Returns: size, in bytes, of the data buffer returned by get_vertex_buffer_data() More... | |
| diguyGraphicsMesh * | get_blend_shape (int index) |
| Returns: Pointer to a blend shape mesh that represents the offsets from this mesh, currently we only have 1 of these which we use to adjust the weight of the character. More... | |
| int | get_num_blend_shapes () |
| Returns: Number of blend shapes associated with this mesh, currently max of 1. More... | |
| float * | get_data_as_blend_shape_verts () |
| this is necessary for the new SSBO based implementation of blend shapes that has a specific layout More... | |
| int | get_blend_shape_vertex_buffer_size () |
| this is necessary for the new SSBO based implementation of blend shapes that has a specific layout More... | |
| void * | get_vertex_buffer_data () |
| This function returns a pointer to the raw vertex buffer data of this mesh. More... | |
| float * | get_first_vertex () |
| This function returns a pointer to vertex position data of the first vertex in the raw vertex buffer data returned by get_vertex_buffer_data(). More... | |
| int | get_vertex_offset () |
| This function returns how many bytes the first vertex position is into the raw vertex buffer data returned by get_vertex_buffer_data(). More... | |
| int | get_vertex_stride () |
| This function returns how many bytes there are between each vertex position in the raw data returned by get_vertex_buffer_data(). More... | |
| float * | get_first_normal () |
| Returns: pointer to normal of first vertex in vertex buffer data; see get_first_vertex() for more information. More... | |
| int | get_normal_offset () |
| Returns: offset in bytes of the first normal in raw vertex buffer data; see get_vertex_offset() for more information. More... | |
| float * | get_first_texture_indices () |
| Returns: pointer to texture indices of first vertex in vertex buffer data. More... | |
| int | get_texture_indices_offset () |
| Returns: offset in bytes of the first texture indices in raw vertex buffer data; see get_vertex_offset() for more information. More... | |
| float * | get_first_link_index () |
| Returns: pointer to link index of first vertex in vertex buffer data, in float form. More... | |
| int | get_link_index_offset () |
| Returns: offset in bytes of the first link index in raw vertex buffer data; see get_vertex_offset() for more information. More... | |
| float * | get_first_link_weight () |
| Returns: pointer to link weight of first vertex in vertex buffer data. More... | |
| int | get_link_weight_offset () |
| Returns: offset in bytes of the first link weight offset in raw vertex buffer data; see get_vertex_offset() for more information. More... | |
| float * | get_first_tangent () |
| Returns a pointer to the UV tangent and flip bit of first vertex in the vertex buffer data. More... | |
| int | get_tangent_offset () |
| Returns: offset in bytes of the first tangent in raw vertex buffer data; see get_vertex_offset() for more information. More... | |
| diguyGraphicsIndexType | get_index_type () |
| Returns: index type used in data returned by the get_index_buffer_data() function. More... | |
| int | get_index_count () |
| This function returns how many indices there are in this mesh. More... | |
| int | get_index_buffer_size () |
| Returns: size, in bytes, of the data buffer returned by get_index_buffer_data() More... | |
| void * | get_index_buffer_data () |
| This function returns a pointer to the raw index buffer data of this mesh. More... | |
| virtual void | draw (diguyDrawCallData *draw_data) |
| This function will be called by DI-Guy when the mesh should be drawn. More... | |
| int | get_bounding_box (float *bbox_min_x, float *bbox_min_y, float *bbox_min_z, float *bbox_max_x, float *bbox_max_y, float *bbox_max_z) |
| int | get_normal_stride () |
| deprecated as of 13.2.0 since we've always laid out data with vnt/vnt/vnt type layouts, strides are always the same. More... | |
| int | get_texture_indices_stride () |
| int | get_tangent_stride () |
| int | get_link_weight_stride () |
| int | get_link_index_stride () |
| int | get_is_deformable () |
| This function returns whether or not the mesh is deformable. More... | |
| bdiGeometryMesh * | get_internal_data () |
Protected Member Functions | |
| void | attach_state_set_to_drawable (int drawable_index) |
| Looks up the state set for the drawable and attaches the state set to the drawable if not already attached. More... | |
Protected Member Functions inherited from diguyGraphicsMesh | |
| diguyGraphicsMesh (void *internal_data) | |
| A protected constructor. More... | |
| virtual | ~diguyGraphicsMesh () |
| A protected destructor. More... | |
Protected Attributes | |
| osg::ref_ptr< osg::PrimitiveSet > | m_primitiveSet |
| std::vector< osg::ref_ptr< osg::Drawable > > | m_drawables |
| std::vector< bool > | m_has_graphics_state_set |
Meshes contain the visual geometry of a DI-Guy character.
They are attached to shapes, and are associated with materials and textures.
The class diguyOsgGraphicsMesh is an example of a diguyGraphicsMesh subclass for a scene graph renderer using the DI-Guy Loader. The example subclass shows how to use the accessors of the diguyGraphicsMesh class and which virtual functions should be overridden for a scene graph renderer such as OSG.
| diguyOsgGraphicsMesh::diguyOsgGraphicsMesh | ( | void * | internal_data | ) |
|
overridevirtual |
This function will be called by DI-Guy when it is time for a renderer-specific mesh object to be created.
All information necessary to build the mesh should be available via the Accessor Functions above when this function is called.
Immediate Mode:
Immediate mode renderers may override this function, to create an object that may be invoked by draw().
Scene Graph:
Scene graph renderers usually do override this function, to create a geometry object that gets associated with a diguyGraphicsState object obtained by calling get_state().
Callable From:
Reimplemented from diguyGraphicsMesh.
|
overridevirtual |
This function will be called by DI-Guy when it is time for a renderer-specific mesh object to be destroyed.
Immediate Mode:
Immediate mode renderers may override this function, to destroy any object that may have been created by build().
Scene Graph:
Scene graph renderers usually do override this function, to destroy any object that may have been created by build().
Callable From:
Reimplemented from diguyGraphicsMesh.
|
inline |
| int diguyOsgGraphicsMesh::get_num_drawables | ( | ) |
| osg::Drawable* diguyOsgGraphicsMesh::get_drawable | ( | int | drawable_index | ) |
|
protected |
Looks up the state set for the drawable and attaches the state set to the drawable if not already attached.
Allows for just in time loading of state sets (specifically textures) associated with the drawable.
|
protected |
|
protected |
|
protected |