3ds Max C++ API Reference
TriStrip Class Reference

#include <ihardwareshader.h>

+ Inheritance diagram for TriStrip:

Public Member Functions

void AddVertN (DWORD vtx, DWORD nor)
 
void AddVertNC1 (DWORD vtx, DWORD nor, DWORD col)
 
void AddVertNT1 (DWORD vtx, DWORD nor, DWORD tvtx)
 
void AddVertNC1T1 (DWORD vtx, DWORD nor, DWORD col, DWORD tvtx)
 
void AddVertNT2 (DWORD vtx, DWORD nor, DWORD tvtx1, DWORD tvtx2)
 
void AddVertNC1T2 (DWORD vtx, DWORD nor, DWORD col, DWORD tvtx1, DWORD tvtx2)
 
void AddVertNT3 (DWORD vtx, DWORD nor, DWORD tvtx1, DWORD tvtx2, DWORD tvtx3)
 
void AddVertNC1T3 (DWORD vtx, DWORD nor, DWORD col, DWORD tvtx1, DWORD tvtx2, DWORD tvtx3)
 
void AddVertNT4 (DWORD vtx, DWORD nor, DWORD tvtx1, DWORD tvtx2, DWORD tvtx3, DWORD tvtx4)
 
void AddVertNC1T4 (DWORD vtx, DWORD nor, DWORD col, DWORD tvtx1, DWORD tvtx2, DWORD tvtx3, DWORD tvtx4)
 
void AddVertexCol (int i, DWORD col)
 
void AddVertexUV (int i, DWORD tx)
 

Public Attributes

DWORD rndMode
 
MtlID mID
 
MtlID maxID
 
DWORD smGrp
 
int clrMode
 
int texMode
 
DWTab v
 
DWTab n
 
DWTab c [GFX_MAX_COLORS]
 
DWTab tv [GFX_MAX_TEXTURES]
 

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

Member Function Documentation

◆ AddVertN()

void AddVertN ( DWORD  vtx,
DWORD  nor 
)
inline
58 { v.Append(1, &vtx, (v.Count()>>1)); n.Append(1, &nor, n.Count()/2); }
int Count() const
Retrieves the number of items in the Tab.
Definition: tab.h:219
int Append(int num, T *el, int allocExtra=0)
Appends items at the end of the Tab.
Definition: tab.h:281
DWTab v
Definition: ihardwareshader.h:53
DWTab n
Definition: ihardwareshader.h:54

◆ AddVertNC1()

void AddVertNC1 ( DWORD  vtx,
DWORD  nor,
DWORD  col 
)
inline
59 { v.Append(1, &vtx, (v.Count()>>1)); n.Append(1, &nor, n.Count()/2); c[0].Append(1, &col, c[0].Count()/2); }
DWTab c[GFX_MAX_COLORS]
Definition: ihardwareshader.h:55

◆ AddVertNT1()

void AddVertNT1 ( DWORD  vtx,
DWORD  nor,
DWORD  tvtx 
)
inline
61  {
62  int alloc = (v.Count()>>1)+1;
63  v.Append(1, &vtx, alloc); n.Append(1, &nor, alloc);
64  tv[0].Append(1, &tvtx, alloc);
65  }
DWTab tv[GFX_MAX_TEXTURES]
Definition: ihardwareshader.h:56

◆ AddVertNC1T1()

void AddVertNC1T1 ( DWORD  vtx,
DWORD  nor,
DWORD  col,
DWORD  tvtx 
)
inline
66  {
67  int alloc = (v.Count()>>1)+1;
68  v.Append(1, &vtx, alloc); n.Append(1, &nor, alloc); c[0].Append(1, &col, alloc);
69  tv[0].Append(1, &tvtx, alloc);
70  }

◆ AddVertNT2()

void AddVertNT2 ( DWORD  vtx,
DWORD  nor,
DWORD  tvtx1,
DWORD  tvtx2 
)
inline
71  {
72  int alloc = (v.Count()>>1)+1;
73  v.Append(1, &vtx, alloc); n.Append(1, &nor, alloc);
74  tv[0].Append(1, &tvtx1, alloc); tv[1].Append(1, &tvtx2, alloc);
75  }

◆ AddVertNC1T2()

void AddVertNC1T2 ( DWORD  vtx,
DWORD  nor,
DWORD  col,
DWORD  tvtx1,
DWORD  tvtx2 
)
inline
76  {
77  int alloc = (v.Count()>>1)+1;
78  v.Append(1, &vtx, alloc); n.Append(1, &nor, alloc); c[0].Append(1, &col, alloc);
79  tv[0].Append(1, &tvtx1, alloc); tv[1].Append(1, &tvtx2, alloc);
80  }

◆ AddVertNT3()

void AddVertNT3 ( DWORD  vtx,
DWORD  nor,
DWORD  tvtx1,
DWORD  tvtx2,
DWORD  tvtx3 
)
inline
81  {
82  int alloc = (v.Count()>>1)+1;
83  v.Append(1, &vtx, alloc); n.Append(1, &nor, alloc);
84  tv[0].Append(1, &tvtx1, alloc); tv[1].Append(1, &tvtx2, alloc); tv[2].Append(1, &tvtx3, alloc);
85  }

◆ AddVertNC1T3()

void AddVertNC1T3 ( DWORD  vtx,
DWORD  nor,
DWORD  col,
DWORD  tvtx1,
DWORD  tvtx2,
DWORD  tvtx3 
)
inline
86  {
87  int alloc = (v.Count()>>1)+1;
88  v.Append(1, &vtx, alloc); n.Append(1, &nor, alloc); c[0].Append(1, &col, alloc);
89  tv[0].Append(1, &tvtx1, alloc); tv[1].Append(1, &tvtx2, alloc); tv[2].Append(1, &tvtx3, alloc);
90  }

◆ AddVertNT4()

void AddVertNT4 ( DWORD  vtx,
DWORD  nor,
DWORD  tvtx1,
DWORD  tvtx2,
DWORD  tvtx3,
DWORD  tvtx4 
)
inline
91  {
92  int alloc = (v.Count()>>1)+1;
93  v.Append(1, &vtx, alloc); n.Append(1, &nor, alloc);
94  tv[0].Append(1, &tvtx1, alloc); tv[1].Append(1, &tvtx2, alloc);
95  tv[2].Append(1, &tvtx3, alloc); tv[3].Append(1, &tvtx4, alloc);
96  }

◆ AddVertNC1T4()

void AddVertNC1T4 ( DWORD  vtx,
DWORD  nor,
DWORD  col,
DWORD  tvtx1,
DWORD  tvtx2,
DWORD  tvtx3,
DWORD  tvtx4 
)
inline
97  {
98  int alloc = (v.Count()>>1)+1;
99  v.Append(1, &vtx, alloc); n.Append(1, &nor, alloc); c[0].Append(1, &col, alloc);
100  tv[0].Append(1, &tvtx1, alloc); tv[1].Append(1, &tvtx2, alloc);
101  tv[2].Append(1, &tvtx3, alloc); tv[3].Append(1, &tvtx4, alloc);
102  }

◆ AddVertexCol()

void AddVertexCol ( int  i,
DWORD  col 
)
inline
Remarks
This method adds vertex color data to a vertex. This method is usually used together with AddVertN and AddVertexUV methods to set each vertex's data flexibly.
Parameters
iThe color channel index must be less than GFX_MAX_COLORS.\
colThe vertex color data.
110  {
111  DbgAssert(i >= 0 && i < GFX_MAX_COLORS);
112  c[i].Append(1, &col, (v.Count()>>1)+1);
113  }
#define DbgAssert(expr)
Definition: assert1.h:82
#define GFX_MAX_COLORS
Definition: ihardwareshader.h:33

◆ AddVertexUV()

void AddVertexUV ( int  i,
DWORD  tx 
)
inline
Remarks
This method adds a set of 2d texture coordinate to a vertex. This method is usually used together with AddVertN and AddVertexCol methods to set each vertex's data flexibly.
Parameters
iThe texture coordinate index must be less than GFX_MAX_TEXTURES.\
txThe texture coordinate data.
121  {
122  DbgAssert(i >= 0 && i < GFX_MAX_TEXTURES);
123  tv[i].Append(1, &tx, (v.Count()>>1)+1);
124  }
#define GFX_MAX_TEXTURES
Definition: GraphicsConstants.h:174

Member Data Documentation

◆ rndMode

DWORD rndMode

◆ mID

MtlID mID

◆ maxID

MtlID maxID

◆ smGrp

DWORD smGrp

◆ clrMode

int clrMode

◆ texMode

int texMode

◆ v

DWTab v

◆ n

DWTab n

◆ c

◆ tv