3ds Max C++ API Reference
Loading...
Searching...
No Matches
MNMeshBorder Class Reference

Hold boundary information for an MNMesh mesh. More...

#include <mnmesh.h>

+ Inheritance diagram for MNMeshBorder:

Public Member Functions

 ~MNMeshBorder ()
 Destructor; frees all reserved memory.
 
DllExport void Clear ()
 Frees all reserved memory and reinitializes the data, producing an empty border.
 
int Num ()
 Returns the number of border loops for the MNMesh analyzed.
 
Tab< int > * Loop (int i)
 Returns a pointer to the i'th border loop.
 
bool LoopTarg (int i)
 Indicates whether border loop i is targeted or not.
 
DllExport void MNDebugPrint (MNMesh *m)
 Uses DebugPrint to print out the MNMesh borders to the Debug Results window in DevStudio.
 

Friends

class MNMesh
 

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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
static UtilExport voidoperator new[] (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate arrays of objects.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
static UtilExport voidoperator new (size_t size, void *placement_ptr)
 Placement new operator.
 
static UtilExport void operator delete (void *ptr, void *placement_ptr)
 Placement delete operator.
 
static UtilExport voidaligned_malloc (size_t size, size_t alignment)
 Allocates memory on a specified alignment boundary.
 
static UtilExport voidaligned_realloc (void *ptr, size_t size, size_t alignment)
 Reallocates memory on a specified alignment boundary.
 
static UtilExport void aligned_free (void *ptr)
 Frees a block of memory that was allocated with aligned_malloc/aligned_realloc.
 

Detailed Description

Hold boundary information for an MNMesh mesh.

The principal data contained is a table of tables of int's, which represent edge lists in the MNMesh. These edge lists form closed loops of one-sided edges: boundaries, or borders, of the mesh. These edges are stored in order such that E(loop(i)[j])->v1 is the same as E(loop(i)[j+1])->v2, E(loop(i)[j+1])->v1 == E(loop(i)[j+2])->v2, and so on. (This is the right-hand, counterclockwise order when looking down on the hole from outside the mesh.)

Most 3ds Max primitives have no borders, but the Patch Grid, when converted to a mesh, is an example of one with a single border All methods of this class are implemented by the system.

See also
Class MNMesh, Template Class Tab, Class BitArray.

Constructor & Destructor Documentation

◆ ~MNMeshBorder()

~MNMeshBorder ( )
inline

Destructor; frees all reserved memory.

There is no Constructor for this class, since both data members have their own, adequate constructors.

5736{ Clear(); }
DllExport void Clear()
Frees all reserved memory and reinitializes the data, producing an empty border.

Member Function Documentation

◆ Clear()

DllExport void Clear ( )

Frees all reserved memory and reinitializes the data, producing an empty border.

◆ Num()

int Num ( )
inline

Returns the number of border loops for the MNMesh analyzed.

5742{ return bdr.Count(); }
int Count() const
Retrieves the number of items in the Tab.
Definition: tab.h:219

◆ Loop()

Tab< int > * Loop ( int  i)
inline

Returns a pointer to the i'th border loop.

5744{ return bdr[i]; }

◆ LoopTarg()

bool LoopTarg ( int  i)
inline

Indicates whether border loop i is targeted or not.

5746{ return ((i>=0) && (i<bdr.Count()) && (btarg[i])); }

◆ MNDebugPrint()

DllExport void MNDebugPrint ( MNMesh m)

Uses DebugPrint to print out the MNMesh borders to the Debug Results window in DevStudio.

This can be useful for tracking down bugs. Be careful not to leave MNDebugPrint calls in your final build; they will slow down your effect to no purpose.

Parameters:
MNMesh *m

The MNMesh to which this MNMeshBorder refers is required to give more details about the border.

Friends And Related Function Documentation

◆ MNMesh

friend class MNMesh
friend