3ds Max C++ API Reference
|
#include <C:/adskgit/3dsmax/3dsmax/3dswin/src/maxsdk/include/CreaseSetContainer.h>
Public Member Functions | |
virtual ReferenceTarget * | GetCreaseSetContainerReferenceTarget ()=0 |
virtual int | GetNumberOfCreaseSets ()=0 |
virtual MSTR | GetCreaseContainerName (int setIndex)=0 |
virtual bool | CanSetCreaseContainerName (int setIndex) |
virtual void | SetCreaseContainerName (int setIndex, const MCHAR *name) |
virtual MSTR | GetCreaseName (int setIndex)=0 |
virtual bool | CanSetCreaseName (int setIndex) |
virtual void | SetCreaseName (int setIndex, const MCHAR *name) |
virtual int | GetCreaseType (int setIndex)=0 |
virtual int | GetCreaseEntityCount (int setIndex)=0 |
virtual float | GetCreaseValue (int setIndex, TimeValue t, Interval &valid)=0 |
virtual bool | CanSetCreaseValue (int setIndex) |
virtual void | SetCreaseValue (int setIndex, TimeValue t, float value) |
virtual const Color & | GetCreaseColor (int setIndex)=0 |
virtual bool | CanSetCreaseColor (int setIndex) |
virtual void | SetCreaseColor (int setIndex, const Color &color) |
virtual void | GetNodeList (INodeTab &nodeList)=0 |
virtual void | GetNodeList (int setIndex, INodeTab &nodeList)=0 |
virtual Interval | GetCreaseSetContainerValidity (TimeValue t) |
virtual bool | CanSetCreaseColorVisibility (int setIndex) |
virtual bool | GetCreaseColorVisibility (int setIndex) |
virtual void | SetCreaseColorVisibility (int setIndex, bool state) |
Public Member Functions inherited from BaseInterface | |
virtual UtilExport | ~BaseInterface () |
Destructor. | |
UtilExport BaseInterface * | GetInterface (Interface_ID id) override |
virtual UtilExport Interface_ID | GetID () |
virtual LifetimeType | LifetimeControl () |
virtual bool | RegisterNotifyCallback (InterfaceNotifyCallback *incb) |
virtual void | UnRegisterNotifyCallback (InterfaceNotifyCallback *incb) |
virtual BaseInterface * | AcquireInterface () |
virtual void | ReleaseInterface () |
virtual void | DeleteInterface () |
virtual BaseInterface * | CloneInterface (void *remapDir=nullptr) |
Public Member Functions inherited from InterfaceServer | |
virtual UtilExport | ~InterfaceServer () |
Destructor. | |
template<class InterfaceType> | |
InterfaceType * | GetTypedInterface () |
Additional Inherited Members | |
Public Types inherited from BaseInterface | |
enum | LifetimeType { noRelease , immediateRelease , wantsRelease , serverControlled } |
Static Public Member Functions inherited from MaxHeapOperators | |
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. | |
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. | |
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. | |
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. | |
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. | |
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. | |
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. | |
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. | |
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. | |
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. | |
static UtilExport void * | operator new[] (size_t size, int block_type, const char *filename, int line) |
New operator used to allocate arrays of objects. | |
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. | |
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. | |
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. | |
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 void * | operator 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 void * | aligned_malloc (size_t size, size_t alignment) |
Allocates memory on a specified alignment boundary. | |
static UtilExport void * | aligned_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. |
In 3ds Max, subdivision surface creasing is set up around the concept of "Crease Sets" – Groups of edges or vertices which share common crease values. Establishing groups which share common crease values makes it easier for users to manage them and control creasing of various parts of their geometry in unison.
The Crease Explorer allows users to view all Crease Sets in all objects and manipulate them. For convenience in managing them, a hierarchy is created in which each Crease Set resides in a "Crease Set Container", which may contain any number of Crease Sets. A Crease Set Container can be anything in Max which defines a Crease Set. Presently, this includes the CreaseSet and Crease modifiers, as well as the SubdivBox primitive.
Any plugin which defines Crease Sets should derive from CreaseSetContainer, implement all methods of the CreaseSetContainer class and register each instance with the Crease Set Manager using the CreaseSetManager::RegisterCreaseSetContainer method. This will allow the system to access the Crease Sets it contains and display them in the Crease Explorer for the user to examine and/or alter.
When an instance of a CreaseSetContainer is destroyed or removed from the scene, it should unregister itself by calling CreaseSetManager::UnregisterCreaseSetContainer.
When Crease Sets are created or destroyed in a CreaseSetContainer, the CreaseSetContainer should notify the CreaseSetManager via CreaseSetManager::NotifyStructureChanged so that the Crease Explorer, if active, may update to reflect the change.
Any time an existing Crease Set changes in any way, the CreaseSetContainer should notify the CreaseSetManager via CreaseSetManager::NotifyComponentChanged.
A CreaseSetContainer exposes the number of Crease Sets it contains (see CreaseSetContainer::GetNumberOfCreaseSets). Each Crease Set may be queried for its name, as well as its container's name (see CreaseSetContainer::GetCreaseName and CreaseSetContainer::GetCreaseContainerName). Usually, all Crease Sets within a CreaseSetContainer will share the same container name (for example, a CreaseSet modifier in Max returns its name whenever any of the Crease Sets it contains are queried for their container's name), but this is up to the CreaseSetContainer. The Crease Set Manager, which itself is a specialized CreaseSetContainer, wraps all CreaseSetContainers in the system and will return the proper CreaseSetContainer name for any Crease Set in the scene.
For an example of how to implement a CreaseSetContainer, see the SubdivBox plugin in MaxSDK/Objects/PolyObjects/
|
pure virtual |
Implemented in CreaseSetManager.
|
pure virtual |
Implemented in CreaseSetManager.
setIndex | - Index of the crease set |
Implemented in CreaseSetManager.
|
inlinevirtual |
setIndex | - Index of the crease set |
Reimplemented in CreaseSetManager.
setIndex | - Index of the crease set |
name | - Pointer to new name string |
Reimplemented in CreaseSetManager.
setIndex | - Index of the crease set |
Implemented in CreaseSetManager.
|
inlinevirtual |
setIndex | - Index of the crease set |
Reimplemented in CreaseSetManager.
setIndex | - Index of the crease set |
name | - Pointer to new name string |
Reimplemented in CreaseSetManager.
setIndex | - Index of the crease set |
Implemented in CreaseSetManager.
setIndex | - Index of the crease set |
Implemented in CreaseSetManager.
setIndex | - Index of the crease set |
t | - The time at which to sample |
valid | - The interval into which the validity of the evaluated parameters is intersected. |
Implemented in CreaseSetManager.
|
inlinevirtual |
setIndex | - Index of the crease set |
Reimplemented in CreaseSetManager.
setIndex | - Index of the crease set |
t | - The time at which to set the crease value |
value | - The crease value to set |
Reimplemented in CreaseSetManager.
|
pure virtual |
setIndex | - Index of the crease set |
Implemented in CreaseSetManager.
|
inlinevirtual |
setIndex | - Index of the crease set |
Reimplemented in CreaseSetManager.
setIndex | - Index of the crease set |
color | - The color to set |
Reimplemented in CreaseSetManager.
nodeList | - An INodeTab that will receive the list of nodes |
Implemented in CreaseSetManager.
setIndex | - Index of the crease set |
nodeList | - An INodeTab that will receive the list of nodes |
Implemented in CreaseSetManager.
t | - The time at which to sample the validity |
Reimplemented in CreaseSetManager.
|
inlinevirtual |
setIndex | - Index of the crease set |
Reimplemented in CreaseSetManager.
|
inlinevirtual |
setIndex | - Index of the crease set |
Reimplemented in CreaseSetManager.
setIndex | - Index of the crease set |
state | - The visibility state for the set (true = visible) |
Reimplemented in CreaseSetManager.