3ds Max C++ API Reference
MNQuadChamferParameters Class Reference

This class is used to provide parameters to the Universal Quad Chamfer interface in IMNMeshUtilities16. More...

#include <MNQuadChamferParameters.h>

+ Inheritance diagram for MNQuadChamferParameters:

Public Member Functions

 MNQuadChamferParameters (float amount, int segments, float tension, MN_QCHAM_TYPE resultType, DWORD flag)
 Constructor for operation as original version (3ds Max 2015) More...
 
 MNQuadChamferParameters (float amount, int segments, float tension, DWORD optionFlags, MN_QCHAM_TYPE resultType, DWORD flag, int version)
 Constructor for operation as Phoenix (Max 2016) version. More...
 
 MNQuadChamferParameters (float amount, float minAmount, float maxAmount, int segments, float tension, float depth, float insetAmount, int insetSegments, float insetOffset, float miterEndBias, DWORD optionFlags, MN_QCHAM_TYPE resultType, DWORD flag, int version)
 Constructor for operation as 3ds Max 2020 or later. More...
 
 MNQuadChamferParameters (const MNQuadChamferParameters &from)
 Copy constructor. More...
 
unsigned int GetVersion () const
 
float GetAmount () const
 
float GetMinVarAmount () const
 
float GetMaxVarAmount () const
 
int GetSegments () const
 
float GetTension () const
 
float GetDepth () const
 
float GetInsetAmount () const
 
int GetInsetSegments () const
 
float GetInsetOffset () const
 
float GetMiterEndBias () const
 
DWORD GetOptionFlags () const
 
MN_QCHAM_TYPE GetResultType () const
 
DWORD GetFlag () const
 

Protected Attributes

unsigned int m_version
 The Quad Chamfer version to use (See Quad Chamfer Version Values) More...
 
float m_amount
 The chamfer amount for non-weighted chamfers. More...
 
float m_minVarAmount
 The chamfer amount for crease == 0.0. More...
 
float m_maxVarAmount
 The chamfer amount for crease == 1.0. More...
 
int m_segments
 The number of segments in the chamfers. More...
 
float m_tension
 The tension of the chamfer (0 = no tension, 0.5 = rounded, 1.0 = linear) More...
 
float m_depth
 The depth of the chamfer (-1 = concave, 0.0 = linear, 1.0 = convex) More...
 
float m_insetAmount
 The amount of the inset, if in use. More...
 
int m_insetSegments
 The number of inset segments. More...
 
float m_insetOffset
 The inset offset. More...
 
float m_miterEndBias
 Biasing for transition along unchamfered edge connecting to a chamfered edge. More...
 
DWORD m_optionFlags
 Chamfer options (See Quad Chamfer Result Options) More...
 
MN_QCHAM_TYPE m_resultType
 Chamfer result options (See MN_QCHAM_TYPE) More...
 
DWORD m_flag
 The MN_XXX flag that indicates edges to chamfer (See GeneralMNMeshComponentFlags) More...
 

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

Detailed Description

This class is used to provide parameters to the Universal Quad Chamfer interface in IMNMeshUtilities16.

The parameter set includes all applicable parameters for Quad Chamfer operations and allows for specifying version numbers (See Quad Chamfer Version Values). In this way the IMNMeshUtilities16 interface can be used for any Quad Chamfer operations now and into the future – Various constructors are provided for ease of use, and as parameters are added in the future, constructors will be added to access that functionality.

Constructor & Destructor Documentation

◆ MNQuadChamferParameters() [1/4]

MNQuadChamferParameters ( float  amount,
int  segments,
float  tension,
MN_QCHAM_TYPE  resultType,
DWORD  flag 
)
inline

Constructor for operation as original version (3ds Max 2015)

Parameters
amountThe chamfer amount
segmentsThe number of segments in the chamfers
tensionThe tension of the chamfer (0 = no tension, 0.5 = rounded, 1.0 = linear)
resultTypeChamfer result options (See MN_QCHAM_TYPE)
flagThe MN_XXX flag that indicates edges to chamfer (See GeneralMNMeshComponentFlags)
69  :
71  m_amount(amount),
72  m_minVarAmount(0.0f),
73  m_maxVarAmount(0.0f),
74  m_segments(segments),
75  m_tension(tension),
76  m_depth(0.0f),
77  m_insetAmount(0.0f),
78  m_insetSegments(0),
79  m_insetOffset(0.0f),
80  m_miterEndBias(0.5f),
82  m_resultType(resultType),
83  m_flag(flag) {}
float m_maxVarAmount
The chamfer amount for crease == 1.0.
Definition: MNQuadChamferParameters.h:40
float m_miterEndBias
Biasing for transition along unchamfered edge connecting to a chamfered edge.
Definition: MNQuadChamferParameters.h:54
int m_insetSegments
The number of inset segments.
Definition: MNQuadChamferParameters.h:50
int m_segments
The number of segments in the chamfers.
Definition: MNQuadChamferParameters.h:42
float m_minVarAmount
The chamfer amount for crease == 0.0.
Definition: MNQuadChamferParameters.h:38
DWORD m_optionFlags
Chamfer options (See Quad Chamfer Result Options)
Definition: MNQuadChamferParameters.h:56
float m_insetOffset
The inset offset.
Definition: MNQuadChamferParameters.h:52
DWORD m_flag
The MN_XXX flag that indicates edges to chamfer (See GeneralMNMeshComponentFlags)
Definition: MNQuadChamferParameters.h:60
MN_QCHAM_TYPE m_resultType
Chamfer result options (See MN_QCHAM_TYPE)
Definition: MNQuadChamferParameters.h:58
float m_amount
The chamfer amount for non-weighted chamfers.
Definition: MNQuadChamferParameters.h:36
float m_depth
The depth of the chamfer (-1 = concave, 0.0 = linear, 1.0 = convex)
Definition: MNQuadChamferParameters.h:46
float m_tension
The tension of the chamfer (0 = no tension, 0.5 = rounded, 1.0 = linear)
Definition: MNQuadChamferParameters.h:44
unsigned int m_version
The Quad Chamfer version to use (See Quad Chamfer Version Values)
Definition: MNQuadChamferParameters.h:34
float m_insetAmount
The amount of the inset, if in use.
Definition: MNQuadChamferParameters.h:48
#define QCHAM_OPTION_ELWOOD_DEFAULTS
Elwood (Max 2015) defaults.
Definition: mnmesh.h:134
#define QCHAM_VERSION_ELWOOD
Elwood (3ds Max 2015)
Definition: mnmesh.h:152

◆ MNQuadChamferParameters() [2/4]

MNQuadChamferParameters ( float  amount,
int  segments,
float  tension,
DWORD  optionFlags,
MN_QCHAM_TYPE  resultType,
DWORD  flag,
int  version 
)
inline

Constructor for operation as Phoenix (Max 2016) version.

(If QCHAM_OPTION_VARIABLE_EDGE_WEIGHTS option is used, the chamfers will vary from 0.0 at Crease == 0.0 to "amount" at Crease == 1.0.)

Parameters
amountThe chamfer amount
segmentsThe number of segments in the chamfers
tensionThe tension of the chamfer (0 = no tension, 0.5 = rounded, 1.0 = linear)
optionFlagsChamfer options (See Quad Chamfer Result Options)
resultTypeChamfer result options (See MN_QCHAM_TYPE)
flagThe MN_XXX flag that indicates edges to chamfer (See GeneralMNMeshComponentFlags)
versionThe Quad Chamfer version to use (See Quad Chamfer Version Values)
96  :
97  m_version(version),
98  m_amount(amount),
99  m_minVarAmount(0.0f),
100  m_maxVarAmount(amount),
101  m_segments(segments),
102  m_tension(tension),
103  m_depth(0.0f),
104  m_insetAmount(0.0f),
105  m_insetSegments(0),
106  m_insetOffset(0.0f),
107  m_miterEndBias(0.5f),
108  m_optionFlags(optionFlags),
109  m_resultType(resultType),
110  m_flag(flag) {}

◆ MNQuadChamferParameters() [3/4]

MNQuadChamferParameters ( float  amount,
float  minAmount,
float  maxAmount,
int  segments,
float  tension,
float  depth,
float  insetAmount,
int  insetSegments,
float  insetOffset,
float  miterEndBias,
DWORD  optionFlags,
MN_QCHAM_TYPE  resultType,
DWORD  flag,
int  version 
)
inline

Constructor for operation as 3ds Max 2020 or later.

Parameters
amountThe chamfer amount
minAmountWhen QCHAM_OPTION_VARIABLE_EDGE_WEIGHTS option is used, the chamfer amount at Crease == 0.0
maxAmountWhen QCHAM_OPTION_VARIABLE_EDGE_WEIGHTS option is used, the chamfer amount at Crease == 1.0
segmentsThe number of segments in the chamfers
tensionThe tension of the chamfer (0 = no tension, 0.5 = rounded, 1.0 = linear)
depthThe depth of the chamfer (-1.0 = concave, 0.0 = linear, 1.0 = convex)
insetAmountThe inset amount
insetSegmentsThe number of segments for the inset
insetOffsetThe inset offset amount
miterEndBiasThe miter end bias amount
optionFlagsChamfer options (See Quad Chamfer Result Options)
resultTypeChamfer result options (See MN_QCHAM_TYPE)
flagThe MN_XXX flag that indicates edges to chamfer (See GeneralMNMeshComponentFlags)
versionThe Quad Chamfer version to use (See Quad Chamfer Version Values)
128  :
129  m_version(version),
130  m_amount(amount),
131  m_minVarAmount(minAmount),
132  m_maxVarAmount(maxAmount),
133  m_segments(segments),
134  m_tension(tension),
135  m_depth(depth),
136  m_insetAmount(insetAmount),
137  m_insetSegments(insetSegments),
138  m_insetOffset(insetOffset),
139  m_miterEndBias(miterEndBias),
140  m_optionFlags(optionFlags),
141  m_resultType(resultType),
142  m_flag(flag) {}

◆ MNQuadChamferParameters() [4/4]

Copy constructor.

145  :
146  m_version(from.m_version),
147  m_amount(from.m_amount),
150  m_segments(from.m_segments),
151  m_tension(from.m_tension),
152  m_depth(from.m_depth),
159  m_flag(from.m_flag)
160  {
161  }

Member Function Documentation

◆ GetVersion()

unsigned int GetVersion ( ) const
inline
163 { return m_version; }

◆ GetAmount()

float GetAmount ( ) const
inline
164 { return m_amount; }

◆ GetMinVarAmount()

float GetMinVarAmount ( ) const
inline
165 { return m_minVarAmount; }

◆ GetMaxVarAmount()

float GetMaxVarAmount ( ) const
inline
166 { return m_maxVarAmount; }

◆ GetSegments()

int GetSegments ( ) const
inline
167 { return m_segments; }

◆ GetTension()

float GetTension ( ) const
inline
168 { return m_tension; }

◆ GetDepth()

float GetDepth ( ) const
inline
169 { return m_depth; }

◆ GetInsetAmount()

float GetInsetAmount ( ) const
inline
170 { return m_insetAmount; }

◆ GetInsetSegments()

int GetInsetSegments ( ) const
inline
171 { return m_insetSegments; }

◆ GetInsetOffset()

float GetInsetOffset ( ) const
inline
172 { return m_insetOffset; }

◆ GetMiterEndBias()

float GetMiterEndBias ( ) const
inline
173 { return m_miterEndBias; }

◆ GetOptionFlags()

DWORD GetOptionFlags ( ) const
inline
174 { return m_optionFlags; }

◆ GetResultType()

MN_QCHAM_TYPE GetResultType ( ) const
inline
175 { return m_resultType; }

◆ GetFlag()

DWORD GetFlag ( ) const
inline
176 { return m_flag; }

Member Data Documentation

◆ m_version

unsigned int m_version
protected

The Quad Chamfer version to use (See Quad Chamfer Version Values)

◆ m_amount

float m_amount
protected

The chamfer amount for non-weighted chamfers.

◆ m_minVarAmount

float m_minVarAmount
protected

The chamfer amount for crease == 0.0.

◆ m_maxVarAmount

float m_maxVarAmount
protected

The chamfer amount for crease == 1.0.

◆ m_segments

int m_segments
protected

The number of segments in the chamfers.

◆ m_tension

float m_tension
protected

The tension of the chamfer (0 = no tension, 0.5 = rounded, 1.0 = linear)

◆ m_depth

float m_depth
protected

The depth of the chamfer (-1 = concave, 0.0 = linear, 1.0 = convex)

◆ m_insetAmount

float m_insetAmount
protected

The amount of the inset, if in use.

◆ m_insetSegments

int m_insetSegments
protected

The number of inset segments.

◆ m_insetOffset

float m_insetOffset
protected

The inset offset.

◆ m_miterEndBias

float m_miterEndBias
protected

Biasing for transition along unchamfered edge connecting to a chamfered edge.

◆ m_optionFlags

DWORD m_optionFlags
protected

Chamfer options (See Quad Chamfer Result Options)

◆ m_resultType

MN_QCHAM_TYPE m_resultType
protected

Chamfer result options (See MN_QCHAM_TYPE)

◆ m_flag

DWORD m_flag
protected

The MN_XXX flag that indicates edges to chamfer (See GeneralMNMeshComponentFlags)