IRfReferencedMaterials Interface Reference

Inherits IUnknown.

List of all members.

Public Member Functions

HRESULT GetGlobalMaterialsEncapsulator ([out] IRnEncapsulator **ppEnc)
HRESULT CreateGlobalMaterialsEncapsulator ([out] IRnEncapsulator **ppEnc)
HRESULT GetObjectMaterialsEncapsulator ([in] IRsNode *pNode,[out] IRnEncapsulator **ppEnc)
HRESULT CreateObjectMaterialsEncapsulator ([in] IRsNode *pNode,[out] IRnEncapsulator **ppEnc)
HRESULT SetMaterialId ([in] IRsNode *pMaterialNode,[in] GUID gId)
HRESULT GetMaterialId ([in] IRsNode *pMaterialNode,[out] GUID *gId)
HRESULT UpdateMaterialLinks ([in] IRsNode *pMaterialNode)
HRESULT GetReferencedMaterialNode ([in] IRnMaterialReference *pRefMat,[out] IRsNode **ppSharedMaterialNode)
HRESULT ReplaceMaterialReferences ([in] GUID *pId,[in] IRsNode *pObjectRoot,[in] IRsNode *pSharedMaterialNode)
HRESULT LocateMaterialNode ([in] GUID *pId,[in] IRnEncapsulator *pEncaps,[out] IRsNode **ppMaterial)
HRESULT RemoveUnusedMaterials ([in] IRnEncapsulator *pMatEnc)
HRESULT GetMaterialReferencesCount ([in] IRsNode *pNode,[out] RtUlong *pdwNum)
HRESULT CleanupSharedMaterialEncapsulator (IRnEncapsulator *pMatEnc)


Detailed Description

Referenced materials management and helper function set.

Member Function Documentation

HRESULT IRfReferencedMaterials::GetGlobalMaterialsEncapsulator ( [out] IRnEncapsulator **  ppEnc  ) 

Return global (scene) shared materials encapsulator.

  • If none is present, E_FAIL is returned.
Parameters:
ppEnc [out] Filled with global material encapsulator (if present).
Returns:
S_OK if succeeded.

HRESULT IRfReferencedMaterials::CreateGlobalMaterialsEncapsulator ( [out] IRnEncapsulator **  ppEnc  ) 

Return global (scene) shared materials encapsulator.

  • If none is present, it is created.
Parameters:
ppEnc [out] Filled with global material encapsulator (if present).
Returns:
S_OK if material encapsulator created, S_FALSE if already existed.

HRESULT IRfReferencedMaterials::GetObjectMaterialsEncapsulator ( [in] IRsNode pNode,
[out] IRnEncapsulator **  ppEnc 
)

Return object shared materials encapsulator.

  • If none is present, E_FAIL is returned.
Parameters:
pNode [in] Node for which shared material encapsulator is requested.
ppEnc [out] Filled with material encapsulator (if present).
Returns:
S_OK if succeeded.

HRESULT IRfReferencedMaterials::CreateObjectMaterialsEncapsulator ( [in] IRsNode pNode,
[out] IRnEncapsulator **  ppEnc 
)

CreateObjectMaterialsEncapsulator creates material instancing encapsulator inside specified node.

Parameters:
pNode [in] Node for which object material instancing encapsulator should be created
ppEnc [out] Filled with material encapsulator
Returns:
S_OK if material encapsulator created, S_FALSE if already exists.

HRESULT IRfReferencedMaterials::SetMaterialId ( [in] IRsNode pMaterialNode,
[in] GUID  gId 
)

Set material ID to shared material.

  • Material ID is stored in global hidden connector (CON_MATERIAL_SHARED_ID).
  • Material ID is used for identification when re-linking shared materials with material reference nodes.
Parameters:
pMaterialNode [in] Material encapsulator node.
gId [in] ID to set.
Returns:
S_OK if succeeded.

HRESULT IRfReferencedMaterials::GetMaterialId ( [in] IRsNode pMaterialNode,
[out] GUID *  gId 
)

Get material ID to shared material.

Parameters:
pMaterialNode [in] Material encapsulator node.
gId [out] ID to set.
Returns:
S_OK if succeeded.

HRESULT IRfReferencedMaterials::UpdateMaterialLinks ( [in] IRsNode pMaterialNode  ) 

Update missing material references based on material IDs.

Parameters:
pMaterialNode [in] Material node (any node exporting CON_MATERIAL_CHUNK connector).
Returns:
S_OK if succeeded.

HRESULT IRfReferencedMaterials::GetReferencedMaterialNode ( [in] IRnMaterialReference pRefMat,
[out] IRsNode **  ppSharedMaterialNode 
)

Return shared material node referenced by material reference.

  • If reference material link is missing, function fails.
Parameters:
pRefMat [in] Referenced material.
ppSharedMaterialNode [out] Filled with shared material node.
Returns:
S_OK if succeeded.

HRESULT IRfReferencedMaterials::ReplaceMaterialReferences ( [in] GUID *  pId,
[in] IRsNode pObjectRoot,
[in] IRsNode pSharedMaterialNode 
)

Relink referenced materials identified by id with provided material.

Parameters:
pId [in] Material ID to relink.
pObjectRoot [in] Object root of sub-object to scan.
pSharedMaterialNode [in] Material node to link to.
Returns:
S_OK if succeeded.

HRESULT IRfReferencedMaterials::LocateMaterialNode ( [in] GUID *  pId,
[in] IRnEncapsulator pEncaps,
[out] IRsNode **  ppMaterial 
)

Locate material with specified ID inside defined encapsulator.

Parameters:
pId [in] Material ID to find.
pEncaps [in] Encapsulator to search.
ppMaterial [out] Material node with specified ID if found.
Returns:
S_OK if succeeded.

HRESULT IRfReferencedMaterials::RemoveUnusedMaterials ( [in] IRnEncapsulator pMatEnc  ) 

Search referenced material encapsulator and remove unused materials.

Parameters:
pMatEnc [in] Encapsulator to scan.
Returns:
S_OK if succeeded.

HRESULT IRfReferencedMaterials::GetMaterialReferencesCount ( [in] IRsNode pNode,
[out] RtUlong *  pdwNum 
)

Get number of references for specified material.

Parameters:
pNode [in] Material.
pdwNum [out] Number of references.
Returns:
S_OK if succeeded.

HRESULT IRfReferencedMaterials::CleanupSharedMaterialEncapsulator ( IRnEncapsulator pMatEnc  ) 

Remove referenced materials encapsulator if it is not required anymore (empty).

Parameters:
pMatEnc [in] Material encapsulator.
Returns:
S_OK if succeeded.


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