I3DShModifier Struct Reference
[Shell Interfaces]

Inheritance diagram for I3DShModifier:
IMCUnknown

List of all members.

Public Member Functions

virtual MCCOMErr MCCOMAPI Apply (I3DShTreeElement *tree)=0
virtual MicroTick MCCOMAPI GetMaxTimeWithoutComputation (I3DShTreeElement *tree)=0
virtual boolean MCCOMAPI IsIKTerminator (boolean &outExcludeFromChain) const =0
virtual void MCCOMAPI SetBoundingBox (const TBBox3D &bbox)=0
virtual void MCCOMAPI DeformPoint (const TVector3 &point, TVector3 &result)=0
virtual void MCCOMAPI DeformVertex3D (const TVertex3D &vertex, TVertex3D &result)=0
virtual void MCCOMAPI DeformFacetMesh (real lod, FacetMesh *in, FacetMesh **outMesh)=0
virtual void MCCOMAPI DeformBBox (const TBBox3D &in, TBBox3D &out)=0
virtual void MCCOMAPI GetNeededLOD (const real outputLOD, real &neededLod)=0
virtual void MCCOMAPI GetDeformerInfo (real lod, TDeformInfo &deformInfo)=0

Detailed Description

I3DShModifier is the shell interface of a modifier.

There are two interfaces to access a modifier: The shell interface (I3DShModifier) and the external interface (I3DExModifier) . You can get one from the other using QueryInterface.

Whenever it is possible you should use the Shell interface (I3DShModifier) to access the component because the Shell will make sure that the parameter map of the external component is valid. This is especially important if the component is animated. For more information on components see the Overview of the SDK.

See also:
I3DExModifier

Member Function Documentation

virtual MCCOMErr MCCOMAPI I3DShModifier::Apply ( I3DShTreeElement tree  )  [pure virtual]

Gives access to all the parameters of the tree the modifier is on. To implement a behavior, just change the transforms.

Parameters:
tree The tree to which the modifier is applied
virtual void MCCOMAPI I3DShModifier::DeformBBox ( const TBBox3D in,
TBBox3D out 
) [pure virtual]

Returns an approximation of how the modifier affects a given zone of space contained in the box in, and returns the box that encompass the deformed space in out.

Parameters:
in The bounding box before deformation (in local coordinates)
out The bounding box after deformation (in local coordinates)
Returns:
MC_S_OK if it is implemented, MC_E_NOTIMPL if not.
virtual void MCCOMAPI I3DShModifier::DeformFacetMesh ( real  lod,
FacetMesh in,
FacetMesh **  outMesh 
) [pure virtual]

Deforms or creates 3D facets. Given the original facet mesh of a primitive, it produces a (new) deformed mesh. You can modify whatever you want on the mesh: you can add or remove vertices, normals, facets, or change their position.

But you should NOT modify the in mesh. You need to create a new mesh and return it in outMesh (yet you can clone in to outMesh and then change outMesh).

If the parameters of your deformer won't deform the mesh, you can have outMesh reference in thus:

 TMCCountedGetHelper<FacetMesh> result(outMesh); result= in;
Parameters:
lod Level of detail (LOD) of the output mesh (0 is the best quality)
in The facet mesh that needs to be deformed.
outMesh The mesh after deformation
Returns:
MC_S_OK if it is implemented, MC_E_NOTIMPL if not.
virtual void MCCOMAPI I3DShModifier::DeformPoint ( const TVector3 point,
TVector3 result 
) [pure virtual]

Computes result of the deformation of a given point (in local coordinates). DeformPoint is called by the shell if you do not implement DeformFacetMesh or DeformVertex3D (the shell will automatically subdivide the facet mesh to achieve a smooth deformation).

Parameters:
point The point that needs to be moved
result The position of the point after deformation.
virtual void MCCOMAPI I3DShModifier::DeformVertex3D ( const TVertex3D vertex,
TVertex3D result 
) [pure virtual]

Computes the result of the deformation of a given vertex (in local coordinates). DeformVertex3D called by the 3D Shell if you do not implement DeformFacetMesh (the shell will automatically subdivide the facet mesh to achieve a smooth deformation).

Parameters:
vertex The vertex that needs to be moved
result The vertex after deformation.
Returns:
MC_S_OK if it is implemented, MC_E_NOTIMPL if not.
virtual void MCCOMAPI I3DShModifier::GetDeformerInfo ( real  lod,
TDeformInfo deformInfo 
) [pure virtual]

Returns information about the modifier. If you implement only DeformPoint or DeformVertex3D and not DeformFacetMesh, use this function to give the shell some directions to guide the facet mesh subdivision process.

Parameters:
lod The level of detail
deformInfo The deformer information.
virtual MicroTick MCCOMAPI I3DShModifier::GetMaxTimeWithoutComputation ( I3DShTreeElement tree  )  [pure virtual]

Tells the shell how much cached data the behavior has (starting at zero).

Parameters:
tree The tree to which the modifier is applied
virtual void MCCOMAPI I3DShModifier::GetNeededLOD ( const real  outputLOD,
real neededLod 
) [pure virtual]

Returns the level of detail the modifier needs to produce a result at the precision outputLOD.

Parameters:
outputLOD The desired output precision
neededLod The necessary input precision to get that result.
virtual boolean MCCOMAPI I3DShModifier::IsIKTerminator ( boolean outExcludeFromChain  )  const [pure virtual]

Returns true if the modifier is an IK Terminator.

Parameters:
outExcludeFromChain Tells if the tree should be excluded from the chain.
virtual void MCCOMAPI I3DShModifier::SetBoundingBox ( const TBBox3D bbox  )  [pure virtual]

Is called by the 3D Shell to tell the 3D deformation modifier in which boundaries the 3D data to deform is going to be. This is the bounding box of the facet mesh before the deformation is applied.

Parameters:
bbox The Bounding Box

The documentation for this struct was generated from the following file:
Generated on Mon Apr 26 22:47:40 2010 for Carrara SDK Doc by  doxygen 1.6.3