Public Types | Public Member Functions

IProjectionIntersector Class Reference

Search for all occurrences

Detailed Description

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

#include <IProjectionMod.h>

Inheritance diagram for IProjectionIntersector:
Inheritance graph
[legend]

List of all members.

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

Member Enumeration Documentation

anonymous enum

Constructor & Destructor Documentation

IProjectionIntersector ( ) [inline]
{}
virtual ~IProjectionIntersector ( ) [inline, virtual]
{}

Member Function Documentation

virtual void DeleteThis ( ) [inline, virtual]
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.
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.
virtual BOOL RootValid ( ) [pure virtual]
Returns:
true if initialized, false when free'd
virtual BOOL InitLeaf ( MNMesh leaf,
Matrix3 objectToWorldTM 
) [pure virtual]
Parameters:
leaf - A leaf is normally one of the objects targeted by the projection modifier.
virtual BOOL InitLeaf ( ObjectWrapper leaf,
Matrix3 objectToWorldTM 
) [pure virtual]
Parameters:
leaf - A leaf is normally one of the objects targeted by the projection modifier.
virtual BOOL LeafValid ( ) [pure virtual]
Returns:
true if initialized, false when free'd
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

IProjectionIntersector IProjectionIntersector IProjectionIntersector IProjectionIntersector IProjectionIntersector IProjectionIntersector IProjectionIntersector IProjectionIntersector IProjectionIntersector IProjectionIntersector
IProjectionIntersector IProjectionIntersector IProjectionIntersector IProjectionIntersector IProjectionIntersector IProjectionIntersector IProjectionIntersector IProjectionIntersector IProjectionIntersector IProjectionIntersector