IRfMeshModifierSet Interface Reference

Inherits IRsObject.

List of all members.

Public Member Functions

HRESULT Attach ([in] IRsNode *pNode)
HRESULT Detach ()
HRESULT GetEditableShapeNodeSafe ([out, retval] IRsNode **ppMeshModNode)
HRESULT BackTraceFilterNode ([in] const IID &iid,[out, retval] IRsNode **ppFoundNode)
HRESULT InsertFilterNode ([in] IRsNode *pFilterNode)
HRESULT RemoveFilterNode ([in] IRsNode *pFilterNode)
HRESULT ConvertToEditableMesh ([out] IRsNode **ppNode)
HRESULT CheckMeshChainEditable ()
HRESULT CheckProceduralMesh ()
HRESULT GetInputMeshSafe (IRsNode **ppMeshModNode)
HRESULT GetEditableShape (IRsNode **ppMeshModNode)
HRESULT CheckTopologyModifiers (IRsNode *pModifierNode)
HRESULT CollapseModifiersPipeline (IRsNode *pModifierNode)
HRESULT GetEditableMeshes (IRsObjectList *pSelection, IRsObjectList **ppEditableMeshes)
HRESULT GetEditedSubObjects (IRsObjectList **ppEditableMeshes)
HRESULT ActivateEditMode (RtBool bAddIdStreams, IRcUndoRedoGroup *pUndoRedo)
HRESULT DeactivateEditMode (IRcUndoRedoGroup *pUndoRedo)
HRESULT ShowHiddenGeometry (IRdMeshSelection **ppHiddenGeometry)
HRESULT HideGeometry (IRdMeshSelection *pHiddenGeometry)
HRESULT SetGeometryIdentificationStreams (IRcUndoRedoGroup *spUndoRedo)
HRESULT AddGeometryIdentificationStreams (IRcUndoRedoGroup *spUndoRedo)
HRESULT RemoveGeometryIdentificationStreams (IRcUndoRedoGroup *spUndoRedo)
HRESULT UpdateGeometryIdentification (IRcUndoRedoGroup *spUndoRedo)
HRESULT GetModifiersPipelineFlags (IRsNode *pFirstNode, RtMeshModifierFlags *pFlags)
HRESULT GetHighlightMesh (IRdMatrixf *pMatrix, IRdMeshSelection *pSelection, IRdMesh *pMesh, IRdMesh **ppMesh)
HRESULT ReplaceFilterNode ([in] GUID *gSourceNode,[in] IRsNode *pFilterNode)
HRESULT GetConvertibleMeshes ([in] IRsObjectList *pListIn,[out, retval] IRsObjectList **ppListOut)
HRESULT EnumMeshNodes ([in] VARIANT *pVt,[out, retval] IRsObjectList **ppMeshList)
HRESULT GetEditableSubobjects (IRsObjectList **ppEditableMeshes)


Detailed Description

Mesh modifiers set contains helper functions for handling editable meshes.

Member Function Documentation

HRESULT IRfMeshModifierSet::Attach ( [in] IRsNode pNode  ) 

Attach node to this fn set

Parameters:
pNode [in] Mesh node

HRESULT IRfMeshModifierSet::Detach (  ) 

Detach previously attached node

HRESULT IRfMeshModifierSet::GetEditableShapeNodeSafe ( [out, retval] IRsNode **  ppMeshModNode  ) 

GetEditableShapeNodeSafe

Search for mesh pipeline editable shape node. Method works inside and outside edit mode.

Returns:
ppMeshModNode [out,retval] Editable shape node

HRESULT IRfMeshModifierSet::BackTraceFilterNode ( [in] const IID &  iid,
[out, retval] IRsNode **  ppFoundNode 
)

BackTraceFilterNode

Search for specified mesh modifier in editable mesh pipeline. Method works inside and outside edit mode.

Parameters:
iid [in] Required mesh modifier GUID
Returns:
ppFoundNode [our,retval] Mesh modifier node (if found)

HRESULT IRfMeshModifierSet::InsertFilterNode ( [in] IRsNode pFilterNode  ) 

InsertFilterNode

Insert mesh modifier to editable mesh pipeline.

  • Filter node position is dependent on node priority.
Parameters:
pFilterNode [in] Mesh modifier node to insert

HRESULT IRfMeshModifierSet::RemoveFilterNode ( [in] IRsNode pFilterNode  ) 

RemoveFilterNode

Remove mesh modifier node from editable mesh pipeline.

Parameters:
pFilterNode [in] Mesh modifier node to remove (must present in mesh pipeline).

HRESULT IRfMeshModifierSet::ConvertToEditableMesh ( [out] IRsNode **  ppNode  ) 

Convert attached mesh to editable.

Parameters:
ppNode [out] Editable shape node.

HRESULT IRfMeshModifierSet::CheckMeshChainEditable (  ) 

CheckMeshChainEditable

Check, if mesh chain starts with editable mesh node.

Returns:
S_OK if attached mesh is editable.

HRESULT IRfMeshModifierSet::CheckProceduralMesh (  ) 

CheckProceduralMesh

Check if mesh is proceduraly generated.

Returns:
S_OK if attached mesh is procedural.

HRESULT IRfMeshModifierSet::GetInputMeshSafe ( IRsNode **  ppMeshModNode  ) 

GetInputMeshSafe

Search for mesh pipeline input mesh node; editable or not.

Returns:
ppMeshModNode [out, retval] mesh input shape node.

HRESULT IRfMeshModifierSet::GetEditableShape ( IRsNode **  ppMeshModNode  ) 

GetEditableShape

Get editable shape node when in point edit mode. Outside PE this function fails.

Returns:
ppMeshModNode [out, retval] Editable shape node

HRESULT IRfMeshModifierSet::CheckTopologyModifiers ( IRsNode pModifierNode  ) 

CheckTopologyModifiers

Check, if mesh modifiers before provided node are topology operations or not.

Parameters:
pModifierNode [in] Start node for topology operations checking

HRESULT IRfMeshModifierSet::CollapseModifiersPipeline ( IRsNode pModifierNode  ) 

CollapseModifiersPipeline

Collapse modifiers before provided modifier and add editable shape instead of it.

Parameters:
pModifierNode [in] Start node for mesh collapsing.

HRESULT IRfMeshModifierSet::GetEditableMeshes ( IRsObjectList pSelection,
IRsObjectList **  ppEditableMeshes 
)

GetEditableMeshes

Convert selection to list of editable meshes. Function traverses hierarchy and collects all meshes that can be edited.

Parameters:
pSelection [in] List of objects (hierarchy roots)
ppEditableMeshes [out, retval] List of editable objects found inside provided objects

HRESULT IRfMeshModifierSet::GetEditedSubObjects ( IRsObjectList **  ppEditableMeshes  ) 

GetEditedSubObjects

Get list of meshes that are being edited in current PE session.

Parameters:
ppEditableMeshes [out, retval] List of edited subobjects.

HRESULT IRfMeshModifierSet::ActivateEditMode ( RtBool  bAddIdStreams,
IRcUndoRedoGroup pUndoRedo 
)

ActivateEditMode

Activate edit mode for attached node.

Parameters:
bAddIdStreams [in] Set to true to add geometry identification streams to mesh pipeline.
pUndoRedo [in] Activation undo/redo commands collector.

HRESULT IRfMeshModifierSet::DeactivateEditMode ( IRcUndoRedoGroup pUndoRedo  ) 

DeactivateEditMode

Deactivate edit mode for attached node.

Parameters:
pUndoRedo [in] Undo/redo container for storing event commands.

HRESULT IRfMeshModifierSet::ShowHiddenGeometry ( IRdMeshSelection **  ppHiddenGeometry  ) 

ShowHiddenGeometry

Show all hidden geometry and add it to editable mesh pipeline.

Parameters:
ppHiddenGeometry [out, regval] Filled with selection containing hidden geometry.

HRESULT IRfMeshModifierSet::HideGeometry ( IRdMeshSelection pHiddenGeometry  ) 

HideGeometry

Hide geometry and remove it from editable mesh pipeline. Geometry to hide is defined by selection.

Parameters:
pHiddenGeometry [in] Geometry to hide.

HRESULT IRfMeshModifierSet::SetGeometryIdentificationStreams ( IRcUndoRedoGroup spUndoRedo  ) 

SetGeometryIdentificationStreams

Add geometry identification streams to mesh pipeline if they are not present.

  • If geometry identification is present but there are some degenerated unwrapped triangles, geometry ID stream is updated using UpdateGeometryIdentification.
  • In case that ID stream is present, S_FALSE is returned and caller should not remove ID stream afterwards.
Remarks:
Note, that mesh cannot have hidden parts during ID stream manipulations.
  • Mesh modifiers pipeline is notified that geometry identification stream has been added.
  • Undo/redo events are stored into spUndoRedo collector.
Parameters:
spUndoRedo [in] Collector to store undo/redo commands for adding ID stream.

HRESULT IRfMeshModifierSet::AddGeometryIdentificationStreams ( IRcUndoRedoGroup spUndoRedo  ) 

AddGeometryIdentificationStreams

Add geometry identification streams to mesh pipeline if they are not present.

  • In case that ID stream is present, S_FALSE is returned and caller should not remove ID stream afterwards.
  • Method performs unhidding and hiding of mesh if some parts are hidden.
Parameters:
spUndoRedo [in] Collector to store undo/redo commands for adding ID stream.

HRESULT IRfMeshModifierSet::RemoveGeometryIdentificationStreams ( IRcUndoRedoGroup spUndoRedo  ) 

RemoveGeometryIdentificationStreams

Remove geometry identification streams from mesh pipeline.

Remarks:
Note, that mesh cannot have hidden parts during ID stream manipulations.
  • Mesh modifiers pipeline is notified that geometry identification stream has been removed.
  • Undo/redo events are stored into spUndoRedo collector.
Parameters:
spUndoRedo [in] Collector to store undo/redo commands for removing ID stream.

HRESULT IRfMeshModifierSet::UpdateGeometryIdentification ( IRcUndoRedoGroup spUndoRedo  ) 

UpdateGeometryIdentification

Check if geometry identification stream contains degenerated triangles.

  • If yes, unwrap is recalculated with mesh editor pipeline notified about this event.
  • Mesh must be in edit mode and annot have hidden parts.
Parameters:
spUndoRedo [in] Undo/redo container for handling undo/redo.

HRESULT IRfMeshModifierSet::GetModifiersPipelineFlags ( IRsNode pFirstNode,
RtMeshModifierFlags *  pFlags 
)

GetModifiersPipelineFlags

Return mesh modifier flags.

Parameters:
pFirstNode [in] Node that starts pipeline.
  • NULL will return flags of whole pipeline.
pFlags [out, retval] Filled with union of mesh modifier flags.

HRESULT IRfMeshModifierSet::GetHighlightMesh ( IRdMatrixf pMatrix,
IRdMeshSelection pSelection,
IRdMesh pMesh,
IRdMesh **  ppMesh 
)

GetHighlightMesh

Calculate highlight mesh for specified selection.

  • Node need not be in an editable state.
Parameters:
pMatrix [in] Local->world space transform matrix.
pMesh [in] Mesh with selection streams injected.
pSelection [in] Selection.
ppMesh [out, retval] Calculated highlight mesh.

HRESULT IRfMeshModifierSet::ReplaceFilterNode ( [in] GUID *  gSourceNode,
[in] IRsNode pFilterNode 
)

ReplaceFilterNode

Replace mesh modifier node by provided node.

  • Priority is ignored.
Parameters:
gSourceNode [in] Class ID of node that is to be replaced.
pFilterNode [in] Node that will be inserted instead of source node.
Returns:
S_OK if succeeded, source node found and new node added.
  • Otherwise pFilterNode is not added into graph.

HRESULT IRfMeshModifierSet::GetConvertibleMeshes ( [in] IRsObjectList pListIn,
[out, retval] IRsObjectList **  ppListOut 
)

GetConvertibleMeshes

Remove from list of meshes objects that are not editable:

  • For example light is not editable if another mesh is present, but if it is stand alone it is editable.
  • Function shows warnings if conversion must be performed or object is not genuine mesh.
Parameters:
pListIn [in] List of objects to check.
Returns:
ppListOut [out,retval] Filtered list of objects that user agrees to be edited.

S_OK if succeeded and user accepts conversion.

HRESULT IRfMeshModifierSet::EnumMeshNodes ( [in] VARIANT *  pVt,
[out, retval] IRsObjectList **  ppMeshList 
)

EnumMeshNodes

Enumerates editable mesh nodes with of specified selection.

Parameters:
pVt [in] List of object nodes separated with ';', specify "" for current selection.
Returns:
ppMeshList [out,retval] List of mesh objects

HRESULT IRfMeshModifierSet::GetEditableSubobjects ( IRsObjectList **  ppEditableMeshes  ) 

GetEditableSubobjects

Get editable subobjests for currently attached node.

Parameters:
ppEditableMeshes [out, retval] List filled with the list of editable subobjects.


Generated on Wed May 20 21:32:10 2009 for trueSpace7.6 SDK by  doxygen 1.5.5