IProjectionIntersector Class Reference

IProjectionIntersector Class Referenceabstract

#include <IProjectionMod.h>

Class Description

Description
provides an interface to the Projection Intersector which provides ray-tracing tools intended for use by the plug-ins.
+ Inheritance diagram for IProjectionIntersector:

Public Types

enum  { FINDCLOSEST_CAGED =1, FINDCLOSEST_IGNOREBACKFACING =2 }
 

Public Member Functions

 IProjectionIntersector ()
 
virtual ~IProjectionIntersector ()
 
virtual void DeleteThis ()
 
virtual BOOL InitRoot (MNMesh *root, MNMesh *cage, Matrix3 &objectToWorldTM)=0
 
virtual BOOL InitRoot (ObjectWrapper &root, ObjectWrapper &cage, Matrix3 &objectToWorldTM)=0
 
virtual BOOL RootValid ()=0
 
virtual BOOL InitLeaf (MNMesh *leaf, Matrix3 &objectToWorldTM)=0
 
virtual BOOL InitLeaf (ObjectWrapper &leaf, Matrix3 &objectToWorldTM)=0
 
virtual BOOL LeafValid ()=0
 
virtual void Free ()=0
 
virtual BOOL RootClosestFace (Ray &pointAndNormal, int flags, float &dist, DWORD &rootFaceIndex, Tab< float > &rootFaceBary)=0
 
virtual BOOL LeafIntersectRay (Ray &ray, float &dist, DWORD &leafFaceIndex, Tab< float > &leafFaceBary)=0
 
virtual BOOL LeafIntersectRay (DWORD rootFaceIndex, Point3 &rootFaceBary, float &dist, DWORD &leafFaceIndex, Tab< float > &leafFaceBary)=0
 

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...
 

Member Enumeration Documentation

anonymous enum
Enumerator
FINDCLOSEST_CAGED 
FINDCLOSEST_IGNOREBACKFACING 

Constructor & Destructor Documentation

502 {}
virtual ~IProjectionIntersector ( )
inlinevirtual
503 {}

Member Function Documentation

virtual void DeleteThis ( )
inlinevirtual
504 {}
virtual BOOL InitRoot ( MNMesh root,
MNMesh cage,
Matrix3 objectToWorldTM 
)
pure virtual
Parameters
root- The root is normally the object on which the projection modifier is applied.
cage- The cage is optional, it may be NULL or empty; if supplied, the cage must have the same topology as the root.
objectToWorldTM- The object to world transform matrix.
virtual BOOL InitRoot ( ObjectWrapper root,
ObjectWrapper cage,
Matrix3 objectToWorldTM 
)
pure virtual
Parameters
root- The root is normally the object on which the projection modifier is applied.
cage- The cage is optional, it may be NULL or empty; if supplied, the cage must have the same topology as the root.
objectToWorldTM- The object to world transform matrix.
virtual BOOL RootValid ( )
pure virtual
Returns
true if initialized, false when freed
virtual BOOL InitLeaf ( MNMesh leaf,
Matrix3 objectToWorldTM 
)
pure virtual
Parameters
leaf- A leaf is normally one of the objects targeted by the projection modifier.
objectToWorldTM- The object to world transform matrix.
virtual BOOL InitLeaf ( ObjectWrapper leaf,
Matrix3 objectToWorldTM 
)
pure virtual
Parameters
leaf- A leaf is normally one of the objects targeted by the projection modifier.
objectToWorldTM- The object to world transform matrix.
virtual BOOL LeafValid ( )
pure virtual
Returns
true if initialized, false when freed
virtual void Free ( )
pure virtual
Remarks
releases memory allocated by the Init functions
virtual BOOL RootClosestFace ( Ray pointAndNormal,
int  flags,
float &  dist,
DWORD &  rootFaceIndex,
Tab< float > &  rootFaceBary 
)
pure virtual
Remarks
Given a point in root object space, and a normal for the point (optional - may be zero), find the closest face, and barycentric coordinates of the point as projected onto the face
Precondition
Root functions: Require the root be initialized first
virtual BOOL LeafIntersectRay ( Ray ray,
float &  dist,
DWORD &  leafFaceIndex,
Tab< float > &  leafFaceBary 
)
pure virtual
Remarks
Find an intersection on a leaf, given a ray
Precondition
Require a leaf be initialized first
virtual BOOL LeafIntersectRay ( DWORD  rootFaceIndex,
Point3 rootFaceBary,
float &  dist,
DWORD &  leafFaceIndex,
Tab< float > &  leafFaceBary 
)
pure virtual
Remarks
Find an intersection on a leaf, given a point on the root mesh
Precondition
Require that BOTH the root and a leaf are initialized