- See also
- Class PatchMesh, Class TVPatch, Patches and Faces.
- Description:
- A PatchMesh is made up of a series of Patch objects derived from this class. This is similar to the way faces relate to a mesh. All methods of this class are implemented by the system.
- Data Members:
- int type;
The patch type. One of the following values:
PATCH_UNDEF
Undefined.
PATCH_TRI
Triangular patch.
PATCH_QUAD
Quadrilateral patch.
int v[4];
A patch can have three or four vertices based on the type. The corner vertices on a patch are referred to as a, b, c, (and if it's a quad patch d). These are ordered a, b, c, d going counter-clockwise around the patch.
int vec[8];
A patch can have six or eight vector points. The vectors are referred to as follows: ab is the vector coming out of vertex a towards b. ba is the one coming out of b towards a. bc is the vector coming out of b towards c. cb is the one coming out of c towards b, and so on.
int interior[4];
A patch can have three or four interior vertices.
Point3 aux[9];
This is used internally for triangular patches only (degree 4 control points).
int edge[4];
Pointers into the edge list. There can be three or four depending on the patch type.
DWORD smGroup;
The smoothing group. This defaults to 1. All patches are smoothed in a PatchMesh.
DWORD flags;
Patch Flags
The following value may be set.
PATCH_AUTO
Interior vertices are computed automatically if this flag is set (and normally it is set). An example of when this flag would not be set is if you were creating a primitive using patches that needed to make special interior control points to create the shape. In this case you'd clear this flag and then put whatever values you needed into the vec array.
PATCH_HIDDEN
The patch is hidden.
PATCH_LINEARMAPPING
This option is available in release 4.0 and later only.
The patch is using the old linear mapping scheme.
PATCH_USE_CRUVED_MAPPING_ON_VERTEX_COLOR
This option is available in release 4.0 and later only.
The patch is using the new curved mapping for vertex colors also.
int aux1;
This data member is available in release 3.0 and later only.
This is used to track topology changes during editing (Edit Patch).
int aux2;
This data member is available in release 3.0 and later only.
This is used to track topology changes during editing (PatchMesh).
|
CoreExport | Patch () |
|
CoreExport | Patch (int type) |
|
CoreExport | Patch (Patch &fromPatch) |
|
CoreExport | ~Patch () |
|
CoreExport void | Init () |
|
CoreExport void | setVerts (int *vrt) |
|
void | setVerts (int a, int b, int c) |
|
void | setVerts (int a, int b, int c, int d) |
|
void | setVecs (int ab, int ba, int bc, int cb, int ca, int ac) |
|
void | setVecs (int ab, int ba, int bc, int cb, int cd, int dc, int da, int ad) |
|
void | setInteriors (int a, int b, int c) |
|
void | setInteriors (int a, int b, int c, int d) |
|
int | getVert (int index) |
|
int * | getAllVerts (void) |
|
MtlID | getMatID () |
|
void | setMatID (MtlID id) |
|
Point3 | getUVW (int index) const |
|
Point2 | getUV (int index) const |
|
bool | getVertUVW (int vert, Point3 &uvw) const |
|
bool | getVertUV (int vert, Point2 &uv) const |
|
Point3 | BicubicSurface (PatchMesh *pMesh, const float *uu, const float *vv) |
|
CoreExport Point3 | interp (PatchMesh *pMesh, float centerU, float centerV, float centerW) |
|
CoreExport Point3 | interp (PatchMesh *pMesh, float fU, float fV) |
|
CoreExport Point3 | WUTangent (PatchMesh *pMesh, float fU, float fV, float fW) |
|
CoreExport Point3 | UVTangent (PatchMesh *pMesh, float fU, float fV, float fW) |
|
CoreExport Point3 | VWTangent (PatchMesh *pMesh, float fU, float fV, float fW) |
|
CoreExport Point3 | UTangent (PatchMesh *pMesh, float fU, float fV) |
|
CoreExport Point3 | VTangent (PatchMesh *pMesh, float fU, float fV) |
|
CoreExport Point3 | Normal (PatchMesh *pMesh, float fU, float fV, float fW) |
|
CoreExport Point3 | Normal (PatchMesh *pMesh, float fU, float fV) |
|
CoreExport void | ComputeAux (PatchMesh *pMesh, int index) |
|
CoreExport void | ComputeAux (PatchMesh *pMesh) |
|
CoreExport void | computeInteriors (PatchMesh *pMesh) |
|
CoreExport void | SetType (int iType, BOOL init=FALSE) |
|
CoreExport Patch & | operator= (Patch &from) |
|
CoreExport void | SetAuto (BOOL sw=TRUE) |
|
BOOL | IsAuto () |
|
CoreExport void | SetHidden (BOOL sw=TRUE) |
|
BOOL | IsHidden () |
|
int | WhichEdge (int v1, int v2) |
|
int | WhichVert (int index) |
|
CoreExport void | Dump () |
|
CoreExport IOResult | Save (ISave *isave) |
|
CoreExport IOResult | Load (ILoad *iload) |
|
virtual UtilExport BaseInterface * | GetInterface (Interface_ID id) |
|
virtual UtilExport int | NumInterfaces () const |
|
virtual UtilExport BaseInterface * | GetInterfaceAt (int i) const |
|
virtual UtilExport | ~BaseInterfaceServer () |
|
virtual UtilExport | ~InterfaceServer () |
| Destructor. More...
|
|
|
static UtilExport void * | operator new (size_t size) |
| Standard new operator used to allocate objects If there is insufficient memory, an exception will be thrown. More...
|
|
static UtilExport void * | operator 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 void * | operator 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 void * | operator 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 void * | operator 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 void * | operator 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 void * | operator 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 void * | operator 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 void * | operator 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 void * | operator 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 void * | operator new[] (size_t size, int block_type, const char *filename, int line) |
| New operator used to allocate arrays of objects. More...
|
|
static UtilExport void * | operator 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 void * | operator 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 void * | operator 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 void * | operator 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 void * | aligned_malloc (size_t size, size_t alignment) |
| Allocates memory on a specified alignment boundary. More...
|
|
static UtilExport void * | aligned_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...
|
|
Tab< BaseInterface * > | interfaces |
|