Fovia C++ In-Process API
Public Member Functions

IVertexCallList Struct Reference

Inheritance diagram for IVertexCallList:
IRoot

List of all members.

Public Member Functions

virtual signed int AskInterface (const BGUID *piid, IRoot **ppr)=0
virtual signed int CleanMesh (h_boolean bDoClean, MESH_PROPS *pMeshProps)=0
virtual signed int ColorizeFromVolumeData (IRenderEngine *pEngine, h_float64 offset, h_boolean bVRColor=true)=0
virtual signed int ConvertToIndexBuffer ()=0
virtual signed int DecRef ()=0
virtual signed int GetChangedFlag (h_boolean *pbChanged)=0
virtual signed int GetColors (COLOR_RGBA **arrColors)=0
virtual signed int GetCullMode (ENUM_CULL_MODE *pCullMode)=0
virtual signed int GetFlags (ENUM_VERTEX_CALL_LIST_FLAGS *flags)=0
virtual signed int GetIndices (h_uint32 **arrIndices)=0
virtual signed int GetLineWidth (h_float32 *width)=0
virtual signed int GetNormals (VECTOR3D **arrNormals)=0
virtual signed int GetNumIndices (h_uint32 *numIndices)=0
virtual signed int GetNumVertices (h_uint32 *num)=0
virtual signed int GetShadingEnabled (h_uint8 **arrShadingEnabled)=0
virtual signed int GetTextureCoords (VECTOR2F **arrTextureCoords)=0
virtual signed int GetTextureLighting (h_boolean *pbLighting)=0
virtual signed int GetTextureMap (ITextureMap **pTextureMap)=0
virtual signed int GetTextureMap (IRenderEngine **pEngineMap)=0
virtual signed int GetTransform (MATRIX44D *transform)=0
virtual signed int GetType (ENUM_VCL_TYPE *type)=0
virtual signed int GetVertices (VECTOR3D **arrVertices)=0
virtual signed int IncRef ()=0
virtual signed int Optimize (h_boolean bCleanIslands, h_float64 islandPercentage, h_boolean bDecimate, h_float64 decimatePercentage, h_boolean bSmoothBefore, h_boolean bSmoothAfter, h_float64 smoothParam, h_boolean bFlip)=0
virtual signed int SetChangedFlag (h_boolean bChanged)=0
virtual signed int SetCullMode (ENUM_CULL_MODE cullMode)=0
virtual signed int SetFlags (ENUM_VERTEX_CALL_LIST_FLAGS flags)=0
virtual signed int SetLineWidth (h_float32 width)=0
virtual signed int SetNumIndices (h_uint32 numIndices)=0
virtual signed int SetNumVertices (h_uint32 num)=0
virtual signed int SetTextureLighting (h_boolean bLighting)=0
virtual signed int SetTextureMap (ITextureMap *pTextureMap)=0
virtual signed int SetTextureMap (IRenderEngine *pEngineMap)=0
virtual signed int SetTransform (MATRIX44D *transform)=0
virtual signed int SetType (ENUM_VCL_TYPE type)=0

Detailed Description

The IVertexCallList represents a polygonal object in memory. One or more of these may be applied to a render engine to display polygons interfacing with the volume.


Member Function Documentation

virtual signed int IVertexCallList::AskInterface ( const BGUID piid,
IRoot **  ppr 
) [pure virtual]

Queries this object to see if the interface piid is supported and returns the result in ppr.

Parameters:
piidThe BGUID of the requested interface.
pprThe address of an IRoot pointer which will receive the new interface.
Returns:
S_OK if the interface is supported. E_FAIL if it is not.

Implements IRoot.

virtual signed int IVertexCallList::CleanMesh ( h_boolean  bDoClean,
MESH_PROPS pMeshProps 
) [pure virtual]

Converts a mesh to a manifold representation for compatibility with a 3D printer. A manifold mesh has no holes, border edges, inverted triangles, or intersecting and interior polygons. Not all meshes can be cleaned in a single operation. Prior application of parameters in the Optimize function may be necessary to successfully clean a mesh.

Parameters:
bDoCleanIf true the mesh will be cleaned, if false, the mesh will only be analyzed, with results returned in the MESH_PROPS structure.
pMeshPropsThe address of a MESH_PROPS structure that returns the number of mesh flaws after the cleanup operation is run. All fields in the MESH_PROPS structure should be zero after a successful cleanup pass.
virtual signed int IVertexCallList::ColorizeFromVolumeData ( IRenderEngine pEngine,
h_float64  offset,
h_boolean  bVRColor = true 
) [pure virtual]

Colorizes a mesh by performing a volume rendering operation at each vertex in the mesh.

Parameters:
pEngineThe rendering engine that will perform the rendering operation.
offsetThis paramater is not currently supported.
virtual signed int IVertexCallList::ConvertToIndexBuffer ( ) [pure virtual]

Converts a mesh from an vertex buffer represtentation to an index buffer representation. This operation can result in a large reduction in the number of vertices needed to define the mesh. This will also reduce the amount of memory required to store the mesh data.

Returns:
S_OK if the conversion was successfull, E_UNEXPECTED if the mesh is already in index buffer format.
virtual signed int IVertexCallList::DecRef ( ) [pure virtual]

Decreases the reference count on this object by 1. If the reference count reaches 0, the object is deallocated.

Implements IRoot.

virtual signed int IVertexCallList::GetColors ( COLOR_RGBA **  arrColors) [pure virtual]

Supplies the location in memory of the colors for this list. If the number of vertices is 0, *arrColors will be set to NULL.

virtual signed int IVertexCallList::GetCullMode ( ENUM_CULL_MODE pCullMode) [pure virtual]

Gets the backface culling mode.

virtual signed int IVertexCallList::GetFlags ( ENUM_VERTEX_CALL_LIST_FLAGS flags) [pure virtual]

Gets the flags for this call list.

virtual signed int IVertexCallList::GetIndices ( h_uint32 **  arrIndices) [pure virtual]

Gets the index buffer for this call list. If the number of indices is set to 0, *arrIndices will be set to NULL.

virtual signed int IVertexCallList::GetLineWidth ( h_float32 *  width) [pure virtual]

Gets the line width

virtual signed int IVertexCallList::GetNormals ( VECTOR3D **  arrNormals) [pure virtual]

Supplies the location in memory of the normals for this list. If the number of vertices is 0, *arrNormals will be set to NULL.

virtual signed int IVertexCallList::GetNumIndices ( h_uint32 *  numIndices) [pure virtual]

Gets the number of vertices in this call list. If this is 0, then every three vertices will constitute a triangle.

virtual signed int IVertexCallList::GetNumVertices ( h_uint32 *  num) [pure virtual]

Gets the number of vertices in this call list.

virtual signed int IVertexCallList::GetShadingEnabled ( h_uint8 **  arrShadingEnabled) [pure virtual]

Supplies the location in memory of the shading state for this list. If the number of vertices is 0, *arrShadingEnabled will be set to NULL.

virtual signed int IVertexCallList::GetTextureCoords ( VECTOR2F **  arrTextureCoords) [pure virtual]

Supplies the location in memory of the texture coordinates for this list. If the number of vertices is 0, *arrTextureCoords will be set to NULL.

virtual signed int IVertexCallList::GetTextureLighting ( h_boolean *  pbLighting) [pure virtual]

Gets the texture lighting state for this call list.

Parameters:
pbLightingThe address of an h_boolean object that recieves the true/false lighting state.
virtual signed int IVertexCallList::GetTextureMap ( ITextureMap **  pTextureMap) [pure virtual]

Gets the ITextureMap object associated with this IVertexCallList

virtual signed int IVertexCallList::GetTextureMap ( IRenderEngine **  pEngineMap) [pure virtual]

Gets the IRenderEngine texture mapping object associated with this IVertexCallList

virtual signed int IVertexCallList::GetTransform ( MATRIX44D transform) [pure virtual]

Gets the transformation matrix.

virtual signed int IVertexCallList::GetType ( ENUM_VCL_TYPE type) [pure virtual]

Gets the type of this call list.

virtual signed int IVertexCallList::GetVertices ( VECTOR3D **  arrVertices) [pure virtual]

Supplies the location in memory of the vertices for this list. If the number of vertices is 0, *arrVertices will be set to NULL.

virtual signed int IVertexCallList::IncRef ( ) [pure virtual]

Increases the reference count on this object by 1. You do not need to call this after an object is first created. It is 1 by default.

Implements IRoot.

virtual signed int IVertexCallList::Optimize ( h_boolean  bCleanIslands,
h_float64  islandPercentage,
h_boolean  bDecimate,
h_float64  decimatePercentage,
h_boolean  bSmoothBefore,
h_boolean  bSmoothAfter,
h_float64  smoothParam,
h_boolean  bFlip 
) [pure virtual]

Performs various cleanup operations on a mesh. These are the available cleanup operations. Remove islands: removed disconneted sets of trianges, preserving only the largest sets. Decimate: reduces the number of polygons in a mesh. Smoothen: smooths a mesh by softening edges between polygons. Flip orientation: flips the orientation of polygons in the mesh by reversing the vertex winding order.

Parameters:
bCleanIslandsBoolean value that determings if the connected set reduction operation is run.
islandPercentageA value between 0 and 100 that sets the connected set size threshold. For example, if a mesh has 100 polygons and islandPercentage is set to 10, then all sets containing 10 or fewer polygons are deleted.
bDecimateBoolean value that determings if the decimate operation is run.
decimatePercentageA value between 0 and 100 that determines the percentage of polygons that will be removed. For example, if set to 75, then 75 percent of the polygons will be removed.
bSmoothBeforeBoolean value that determines if the smoothing operation is run before the decimate operation.
bSmoothAfterBoolean value that determines if the smoothing operation is run after the decimate operation.
smoothParamA value between 0 and 1 that determines how aggressively the mesh is smoothed. Higher values equate to more smoothing.
bFlipBoolean value that determines if the polygon flip operation is applied.
virtual signed int IVertexCallList::SetCullMode ( ENUM_CULL_MODE  cullMode) [pure virtual]

Sets the backface culling mode.

virtual signed int IVertexCallList::SetFlags ( ENUM_VERTEX_CALL_LIST_FLAGS  flags) [pure virtual]

Sets the flags for this call list.

virtual signed int IVertexCallList::SetLineWidth ( h_float32  width) [pure virtual]

If the type of this call list is VCL_TYPE_LINES, then this will set the width of those lines in patient coordinates.

virtual signed int IVertexCallList::SetNumIndices ( h_uint32  numIndices) [pure virtual]

Sets the number of indices to be used for this call list. These indices may be used to define triangles in the vertex list. For example, if the number of indices was 6 and the list contained { 0, 3, 2, 5, 3, 0 } then the call list would have two triangles. The first would be connecting vertices 0,3, and 2. The second would connect verties 5, 3, and 0.

If the number of indices is 0, then the vertices are interpreted as being a triangle for every three points. In other words, 0, 1, and 2 would be the first triangle and 3,4,5 would be the second and so on.

If numIndices is greater than 0, the memory for the index buffer is allocated at this time. If numIndices is 0, then any memory used for any previous index buffer is freed.

virtual signed int IVertexCallList::SetNumVertices ( h_uint32  num) [pure virtual]

Sets the number of vertices this call list contains. This function will allocate all the memory necessary to hold these vertices, their normals, colors, and shading state.

virtual signed int IVertexCallList::SetTextureLighting ( h_boolean  bLighting) [pure virtual]

Turns lighting on/off for texture mapped objects. Default is off. Generally, lighting should be on for mesh objects like implants and surgical guides. Lighting should be off for render-to-texture objects like VOI slices.

Parameters:
bLightingIf true lighting is turned on, if false lighting is off.
virtual signed int IVertexCallList::SetTextureMap ( ITextureMap pTextureMap) [pure virtual]

Attaches a texture map object to an IVertexCallList for rendering. Texture map coordinates must be assigned to the IVertexCallList object for the texture to render correctly.

virtual signed int IVertexCallList::SetTextureMap ( IRenderEngine pEngineMap) [pure virtual]

Attaches a render engine object to an IVertexCallList for texture map rendering. Texture map coordinates must be assigned to the IVertexCallList object for the texture to render correctly.

virtual signed int IVertexCallList::SetTransform ( MATRIX44D transform) [pure virtual]

Sets a 4x4 matrix for each of the vertices to be multiplied by before being displayed.

virtual signed int IVertexCallList::SetType ( ENUM_VCL_TYPE  type) [pure virtual]

Sets the type of this call list (polygons, lines...etc).