IProjectionMod Class Reference

IProjectionMod Class Referenceabstract

#include <IProjectionMod.h>

Class Description

See also
Class IProjectionModData, Class IProjectionModType
Description:
provides an interface to the Projection Modifier. This interface gives access to the geometry selections, cage settings, validity checks, and projection types.
+ Inheritance diagram for IProjectionMod:

Public Types

enum  { PM_SL_OBJECT, PM_SL_VERT, PM_SL_FACE, PM_SL_ELEM }
 
- Public Types inherited from BaseInterface
enum  LifetimeType { noRelease, immediateRelease, wantsRelease, serverControlled }
 

Public Member Functions

virtual int NumObjects ()=0
 Number of Nodes in geometry selection. More...
 
virtual INodeGetObjectNode (int iIndex)=0
 Get Object Node by Index. More...
 
virtual const MCHARGetObjectName (int iIndex)=0
 Get Object Name by Index. More...
 
virtual int GetObjectSelLevel (int iIndex)=0
 Get Object Selection Level by Index. More...
 
virtual void DeleteObjectNode (int iIndex)=0
 Delete Object by Index. More...
 
virtual int NumGeomSels ()=0
 Number of Geometry Selection. More...
 
virtual const MCHARGetGeomSelName (int iSelIndex)=0
 Get Geometry Selection Name by Index. More...
 
virtual int GetGeomSelSelLevel (int iSelIndex)=0
 Get Geometry Selection Selection Level by Index. More...
 
virtual int NumGeomSelNodes (int iSelIndex)=0
 Get number of nodes in Geometry Selection by Index. More...
 
virtual INodeGetGeomSelNode (int iSelIndex, int iNodeIndex)=0
 Get Node in Geometry Selection by Index. More...
 
virtual void SetGeomSelMapProportion (int iSelIndex, float fProportion)=0
 Get Geometry Selection Map Proportions by Index. More...
 
virtual float GetGeomSelMapProportion (int iSelIndex)=0
 Delete node from Geometry Selection by Index. More...
 
virtual void DeleteGeomSel (int iSelIndex)=0
 Delete Geometry Selection by Index. More...
 
virtual void DeleteGeomSelNode (int iSelIndex, int iNodeIndex)=0
 Delete node from Geometry Selection by Index. More...
 
virtual IProjectionModDataGetProjectionModData (INode *pNode)=0
 Retrieve the IProjectionModData for the specified node. More...
 
virtual bool IsValidObject (INode *pNode)=0
 Is this a valid node for geometry selections. More...
 
virtual bool AddObjectNode (INode *pNode)=0
 Add Object Level Node. More...
 
virtual void DeleteAll ()=0
 Delete all geometry selections. More...
 
virtual void SetGeomSelNodesVisibility (bool bVisible)=0
 Enable/Disable the visibility of the geometry selection nodes. More...
 
virtual bool GetGeomSelNodesVisibility ()=0
 Get the visibility of the geometry selection nodes. More...
 
virtual void UpdateProjectionTypeList ()=0
 Refresh the projection type list. More...
 
virtual void AutoWrapCage ()=0
 Triggers an auto wrap cage. More...
 
virtual void ResetCage ()=0
 Resets the cage. More...
 
virtual void PushCage (float fAmount)=0
 Pushes the cage. More...
 
virtual int fpGetObjectSelMtlIDs (INode *pNode, int iIndex, Tab< int > &mtlIDs)=0
 Get list of material IDs by Object Index. More...
 
virtual int fpGetGeomSelMtlIDs (INode *pNode, int iSelIndex, Tab< int > &mtlIDs)=0
 Get list of material IDs by Object Index. More...
 
virtual float fpGetGeomSelFaceArea (INode *pNode, int iSelIndex)=0
 Get Selected Face surface area by Geometry Selection Index. More...
 
virtual int fpCheckDuplicateMatIDs (INode *pNode, BitArray &bitFaceDups)=0
 Check for duplicate Material IDs within Geometry Selections Duplicate material IDs can create unwanted results with certain Project Mapping settings in RTT. More...
 
virtual int fpCheckDuplicateSels (INode *pNode, BitArray &bitFaceDups)=0
 Check for duplicate face selections within Geometry Selections Duplicate face selections can create unwanted results with certain Project Mapping settings in RTT. More...
 
virtual void fpSelectByMtlID (int iMtlID)=0
 Select by Material ID. More...
 
virtual void fpSelectBySG (int iSG)=0
 Select by Smoothing Group. More...
 
virtual int fpGetNumProjectionTypes ()=0
 Get the number of Projection Types Projection Types are classes that load into the Projection Modifier. More...
 
virtual ReferenceTargetfpGetProjectionType (int iIndex)=0
 Get Projection Type by Index. More...
 
virtual void fpRemoveProjectionType (int iIndex)=0
 Remove Projection Type by Index. More...
 
virtual void fpProject (int iIndex)=0
 Invoke Project command for Projection Type by Index This will invoke the project command for the specified projection type. More...
 
virtual void fpProjectAll ()=0
 Invoke Project command for all Projection Types. More...
 
virtual int fpGetNumRegisteredProjectionTypes ()=0
 Get the number of Registered Projection Types Registered Projection Types are classes that load into the Projection Modifier. More...
 
virtual void fpAddRegisteredProjectionType (int iIndex)=0
 Create an instance of a Registered Projection Type by Index. More...
 
virtual void fpGetRegisteredProjectionTypeClassID (int iIndex, Tab< int > &classid)=0
 Get the Class ID of a specified Registered Projection Type. More...
 
virtual void fpShowAlignment ()=0
 Enable Show Alignment feature. More...
 
virtual void fpClearAlignment ()=0
 Disable/Clear Show Alignment feature. More...
 
- Public Member Functions inherited from FPMixinInterface
 FPMixinInterface ()
 
virtual LifetimeType LifetimeControl ()
 
virtual CoreExport bool RegisterNotifyCallback (InterfaceNotifyCallback *incb)
 
virtual void UnRegisterNotifyCallback (InterfaceNotifyCallback *incb)
 
CoreExport ~FPMixinInterface ()
 
virtual BaseInterfaceGetInterface (Interface_ID id)
 
virtual FPInterfaceDescGetDescByID (Interface_ID id)
 
virtual Interface_ID GetID ()
 
- Public Member Functions inherited from FPInterface
virtual FPInterfaceDescGetDesc ()=0
 
virtual CoreExport FPStatus Invoke (FunctionID fid, TimeValue t=0, FPParams *params=NULL)
 
virtual FPStatus Invoke (FunctionID fid, FPParams *params)
 
virtual CoreExport FPStatus Invoke (FunctionID fid, TimeValue t, FPValue &result, FPParams *params=NULL)
 
virtual FPStatus Invoke (FunctionID fid, FPValue &result, FPParams *params=NULL)
 
virtual CoreExport FunctionID FindFn (const MCHAR *name)
 
virtual CoreExport BOOL IsEnabled (FunctionID actionID)
 
virtual CoreExport BOOL IsChecked (FunctionID actionID)
 
virtual CoreExport BOOL IsVisible (FunctionID actionID)
 
virtual CoreExport FunctionID GetIsEnabled (FunctionID actionID)
 
virtual CoreExport FunctionID GetIsChecked (FunctionID actionID)
 
virtual CoreExport FunctionID GetIsVisible (FunctionID actionID)
 
virtual ActionTableGetActionTable ()
 
virtual void EnableActions (BOOL onOff)
 
- Public Member Functions inherited from BaseInterface
virtual UtilExport ~BaseInterface ()
 Destructor. More...
 
virtual BaseInterfaceAcquireInterface ()
 
virtual void ReleaseInterface ()
 
virtual void DeleteInterface ()
 
virtual BaseInterfaceCloneInterface (void *remapDir=NULL)
 
- Public Member Functions inherited from InterfaceServer
virtual UtilExport ~InterfaceServer ()
 Destructor. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from MaxHeapOperators
static UtilExport voidoperator new (size_t size)
 Standard new operator used to allocate objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e)
 Standard new operator used to allocate objects if there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new (size_t size, const char *filename, int line)
 New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate objects that takes the type of memory, filename and line number where the new was called If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e, const char *filename, int line)
 New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new (size_t size, unsigned long flags)
 New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e, unsigned long flags)
 New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size, const char *filename, int line)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate arrays of objects. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e, const char *filename, int line)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size, unsigned long flags)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e, unsigned long flags)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport void operator delete (void *ptr)
 Standard delete operator used to deallocate an object If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e)
 Standard delete operator used to deallocate an object If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete (void *ptr, const char *filename, int line)
 Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, int block_type, const char *filename, int line)
 Delete operator used to deallocate an object that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e, const char *filename, int line)
 Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete (void *ptr, unsigned long flags)
 Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e, unsigned long flags)
 Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr)
 Standard delete operator used to deallocate an array of objects If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e)
 Standard delete operator used to deallocate an array of objects If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, int block_type, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr, unsigned long flags)
 Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e, unsigned long flags)
 Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, void *placement_ptr)
 Placement new operator. More...
 
static UtilExport void operator delete (void *ptr, void *placement_ptr)
 Placement delete operator. More...
 
static UtilExport voidaligned_malloc (size_t size, size_t alignment)
 Allocates memory on a specified alignment boundary. More...
 
static UtilExport voidaligned_realloc (void *ptr, size_t size, size_t alignment)
 Reallocates memory on a specified alignment boundary. More...
 
static UtilExport void aligned_free (void *ptr)
 Frees a block of memory that was allocated with aligned_malloc/aligned_realloc. More...
 
- Static Public Attributes inherited from FPInterface
static CoreExport FPInterfaceDesc nullInterface
 
- Protected Member Functions inherited from FPMixinInterface
 FPMixinInterface (const FPMixinInterface &rhs)
 
FPMixinInterfaceoperator= (const FPMixinInterface &rhs)
 
- Protected Member Functions inherited from FPInterface
virtual FPStatus _dispatch_fn (FunctionID fid, TimeValue t, FPValue &result, FPParams *p)
 
- Protected Attributes inherited from FPMixinInterface
Tab< InterfaceNotifyCallback * > * interfaceNotifyCBs
 

Member Enumeration Documentation

anonymous enum
Enumerator
PM_SL_OBJECT 
PM_SL_VERT 
PM_SL_FACE 
PM_SL_ELEM 
Definition: IProjectionMod.h:44
Definition: IProjectionMod.h:44
Definition: IProjectionMod.h:44
Definition: IProjectionMod.h:44

Member Function Documentation

virtual int NumObjects ( )
pure virtual

Number of Nodes in geometry selection.

Returns
int number of objects.
virtual INode* GetObjectNode ( int  iIndex)
pure virtual

Get Object Node by Index.

Parameters
iIndex- zero based index into number of objects
virtual const MCHAR* GetObjectName ( int  iIndex)
pure virtual

Get Object Name by Index.

Parameters
iIndex- zero based index into number of objects
virtual int GetObjectSelLevel ( int  iIndex)
pure virtual

Get Object Selection Level by Index.

Parameters
iIndex- zero based index into number of objects
Returns
enum PM_SL_OBJECT, PM_SL_FACE, or PM_SL_ELEM
virtual void DeleteObjectNode ( int  iIndex)
pure virtual

Delete Object by Index.

Parameters
iIndex- zero based index into number of objects
virtual int NumGeomSels ( )
pure virtual

Number of Geometry Selection.

Returns
int number of geometry selections.
virtual const MCHAR* GetGeomSelName ( int  iSelIndex)
pure virtual

Get Geometry Selection Name by Index.

Parameters
iSelIndex- zero based index into number of geometry selections
virtual int GetGeomSelSelLevel ( int  iSelIndex)
pure virtual

Get Geometry Selection Selection Level by Index.

Parameters
[in]iSelIndexzero based index into number of geometry selections
Returns
enum PM_SL_OBJECT, PM_SL_FACE, or PM_SL_ELEM
virtual int NumGeomSelNodes ( int  iSelIndex)
pure virtual

Get number of nodes in Geometry Selection by Index.

Parameters
[in]iSelIndexzero based index into number of geometry selections
Returns
int number of nodes
virtual INode* GetGeomSelNode ( int  iSelIndex,
int  iNodeIndex 
)
pure virtual

Get Node in Geometry Selection by Index.

Parameters
[in]iSelIndexzero based index into number of geometry selections
[in]iNodeIndexzero based index into number of nodes in geometry selections
virtual void SetGeomSelMapProportion ( int  iSelIndex,
float  fProportion 
)
pure virtual

Get Geometry Selection Map Proportions by Index.

Used to offset the proportion this geometry selection will occupy in the generated bake element.

Parameters
[in]iSelIndexZero-based index into number of geometry selections.
[in]fProportionThe proportion adjustment.
Returns
float proportion adjustment
virtual float GetGeomSelMapProportion ( int  iSelIndex)
pure virtual

Delete node from Geometry Selection by Index.

Parameters
[in]iSelIndexzero based index into number of geometry selections
virtual void DeleteGeomSel ( int  iSelIndex)
pure virtual

Delete Geometry Selection by Index.

Parameters
[in]iSelIndexzero based index into number of geometry selections
virtual void DeleteGeomSelNode ( int  iSelIndex,
int  iNodeIndex 
)
pure virtual

Delete node from Geometry Selection by Index.

Parameters
[in]iSelIndexzero based index into number of geometry selections
[in]iNodeIndexzero based index into number of nodes in geometry selections
virtual IProjectionModData* GetProjectionModData ( INode pNode)
pure virtual

Retrieve the IProjectionModData for the specified node.

Access to ModData for selection set and cage information

Parameters
[in]pNodeINode that contains Projection Modifier
virtual bool IsValidObject ( INode pNode)
pure virtual

Is this a valid node for geometry selections.

Parameters
[in]pNodeINode*
Returns
bool true if this is a valid geometry selection object
virtual bool AddObjectNode ( INode pNode)
pure virtual

Add Object Level Node.

Parameters
[in]pNodeINode*
Returns
bool true if node was successfully added
virtual void DeleteAll ( )
pure virtual

Delete all geometry selections.

virtual void SetGeomSelNodesVisibility ( bool  bVisible)
pure virtual

Enable/Disable the visibility of the geometry selection nodes.

Parameters
[in]bVisiblebool true/false
virtual bool GetGeomSelNodesVisibility ( )
pure virtual

Get the visibility of the geometry selection nodes.

If their visibility state varies, the majority state will be returned.

Returns
bool true if the nodes are visible
virtual void UpdateProjectionTypeList ( )
pure virtual

Refresh the projection type list.

virtual void AutoWrapCage ( )
pure virtual

Triggers an auto wrap cage.

This will destroy the current cage and generate a new one based on the current geometry selections.

virtual void ResetCage ( )
pure virtual

Resets the cage.

This will destroy the current cage and return all verts back to their original/zero-offset location.

virtual void PushCage ( float  fAmount)
pure virtual

Pushes the cage.

This will work on the selected verts. If no verts are selected, the entire cage will be affected.

Parameters
[in]fAmountfloat pushes the cage by specified amount.
virtual int fpGetObjectSelMtlIDs ( INode pNode,
int  iIndex,
Tab< int > &  mtlIDs 
)
pure virtual

Get list of material IDs by Object Index.

Parameters
[in]pNodeINode* that contains the projection modifier
[in]iIndexzero based index into number of objects
[out]mtlIDs- Tab< int> array of material IDs
Returns
int number of material IDs
virtual int fpGetGeomSelMtlIDs ( INode pNode,
int  iSelIndex,
Tab< int > &  mtlIDs 
)
pure virtual

Get list of material IDs by Object Index.

Parameters
[in]pNode- INode* that contains the projection modifier.
[in]iSelIndex- Zero-based index into number of objects.
[out]mtlIDs- Tab< int> array of material IDs.
Returns
int number of material IDs
virtual float fpGetGeomSelFaceArea ( INode pNode,
int  iSelIndex 
)
pure virtual

Get Selected Face surface area by Geometry Selection Index.

Parameters
[in]pNodeINode* that contains the projection modifier
[in]iSelIndexzero based index into number of geometry selections
Returns
float surface areas of faces
virtual int fpCheckDuplicateMatIDs ( INode pNode,
BitArray bitFaceDups 
)
pure virtual

Check for duplicate Material IDs within Geometry Selections Duplicate material IDs can create unwanted results with certain Project Mapping settings in RTT.

Parameters
[in]pNodeINode* that contains the projection modifier
[out]bitFaceDups- bitarray of face duplicates
Returns
int Number of faces with duplicates
virtual int fpCheckDuplicateSels ( INode pNode,
BitArray bitFaceDups 
)
pure virtual

Check for duplicate face selections within Geometry Selections Duplicate face selections can create unwanted results with certain Project Mapping settings in RTT.

Parameters
[in]pNodeINode* that contains the projection modifier
[out]bitFaceDups- bitarray of face duplicates
Returns
int Number of faces with duplicates
virtual void fpSelectByMtlID ( int  iMtlID)
pure virtual

Select by Material ID.

Parameters
[in]iMtlIDMaterial ID
virtual void fpSelectBySG ( int  iSG)
pure virtual

Select by Smoothing Group.

Parameters
[in]iSGSmoothing Group
virtual int fpGetNumProjectionTypes ( )
pure virtual

Get the number of Projection Types Projection Types are classes that load into the Projection Modifier.

These plugins can use the geometry selection and cage information to perform projections of any type they wish. Examples would be projecting UVWs, vertex location, material IDs, etc.

Returns
int Number of Projection Types created by user
virtual ReferenceTarget* fpGetProjectionType ( int  iIndex)
pure virtual

Get Projection Type by Index.

Parameters
[in]iIndexzero based index into number of Projection Types
Returns
ReferenceTarget* ReferenceTarget pointer of created Projection Type
virtual void fpRemoveProjectionType ( int  iIndex)
pure virtual

Remove Projection Type by Index.

Parameters
[in]iIndexzero based index into number of Projection Types
virtual void fpProject ( int  iIndex)
pure virtual

Invoke Project command for Projection Type by Index This will invoke the project command for the specified projection type.

Parameters
[in]iIndexzero based index into number of Projection Types
virtual void fpProjectAll ( )
pure virtual

Invoke Project command for all Projection Types.

virtual int fpGetNumRegisteredProjectionTypes ( )
pure virtual

Get the number of Registered Projection Types Registered Projection Types are classes that load into the Projection Modifier.

Instances of these Registered Projection Types are called Projection Types.

Returns
int Number of Registered Projection Types in the system.
virtual void fpAddRegisteredProjectionType ( int  iIndex)
pure virtual

Create an instance of a Registered Projection Type by Index.

Parameters
[in]iIndexzero based index into number of Registered Projection Types
virtual void fpGetRegisteredProjectionTypeClassID ( int  iIndex,
Tab< int > &  classid 
)
pure virtual

Get the Class ID of a specified Registered Projection Type.

Parameters
[in]iIndexzero based index into number of Registered Projection Types
[out]classid- Tab< int> containing the two Class ID values
virtual void fpShowAlignment ( )
pure virtual

Enable Show Alignment feature.

virtual void fpClearAlignment ( )
pure virtual

Disable/Clear Show Alignment feature.