3ds Max C++ API Reference
IFaceDataChannel Class Referenceabstract

#include <idatachannel.h>

+ Inheritance diagram for IFaceDataChannel:

Public Member Functions

virtual BOOL FacesCreated (ULONG at, ULONG num)=0
 
virtual BOOL FacesClonedAndAppended (BitArray &set)=0
 
virtual BOOL FacesDeleted (BitArray &set)=0
 
virtual BOOL FacesDeleted (ULONG from, ULONG num)=0
 
virtual void AllFacesDeleted ()=0
 
virtual BOOL FaceCopied (ULONG from, ULONG to)=0
 
virtual BOOL FaceInterpolated (ULONG numSrc, ULONG *srcFaces, float *coeff, ULONG targetFace)=0
 
virtual IFaceDataChannelCreateChannel ()=0
 
virtual IFaceDataChannelCloneChannel ()=0
 
virtual BOOL AppendChannel (const IFaceDataChannel *fromChan)=0
 
- Public Member Functions inherited from IDataChannel
virtual Class_ID DataChannelID () const =0
 
virtual ULONG Count () const
 
virtual void DeleteThis ()=0
 
- Public Member Functions inherited from InterfaceServer
virtual UtilExport ~InterfaceServer ()
 Destructor. More...
 
virtual UtilExport BaseInterfaceGetInterface (Interface_ID id)
 
template<class InterfaceType >
InterfaceType * GetTypedInterface ()
 

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

See also
Class IDataChannel, Class IFaceDataChannelsEnumCallBack , Class IFaceDataMgr

Description:
This class represents the face-data channel interface and as such is an abstraction of a collection of data objects that is associated with faces of 3ds Max objects. 3ds Max objects that have face-data channels call the methods of this interface when those faces change in some way. The data channels can then react to the changes to the faces. You can use the macro GetFaceDataChannelInterface(obj) to obtain a pointer to this interface.

Currently in version 4.0 only Meshes support face-data channels.

Member Function Documentation

◆ FacesCreated()

virtual BOOL FacesCreated ( ULONG  at,
ULONG  num 
)
pure virtual
Remarks
This method is called when num new faces are created at the index at in the object's list of faces.
Parameters:
ULONG at

The index in the object's array of faces where the new faces are inserted.

ULONG num

The number of new faces which are created.
Returns
TRUE if successful, otherwise FALSE.

◆ FacesClonedAndAppended()

virtual BOOL FacesClonedAndAppended ( BitArray set)
pure virtual
Remarks
This method is called when the owner object has cloned some of its faces and appended these to its list of faces. The bits in the set array correspond to the cloned faces.
Parameters:
BitArray& set

The array of bits. Note that this array has as many bits as there are faces in the owner object.
Returns
TRUE if successful, otherwise FALSE.

◆ FacesDeleted() [1/2]

virtual BOOL FacesDeleted ( BitArray set)
pure virtual
Remarks
This method is called when faces were deleted in the owner object. The bits in the set array correspond to the deleted faces.
Parameters:
BitArray& set

The array of bits. Note that this array has as many bits as there are faces in the owner object.
Returns
TRUE if successful, otherwise FALSE.

◆ FacesDeleted() [2/2]

virtual BOOL FacesDeleted ( ULONG  from,
ULONG  num 
)
pure virtual
Remarks
This method is called when faces were deleted in the owner object. This method allows for a more efficient deletion of a range of data objects than the previous BitArray based one.
Parameters:
ULONG from

The index in the object's array of faces. Faces starting at this index were deleted.

ULONG num

The number of faces that were deleted.
Returns
TRUE if successful, otherwise FALSE.

◆ AllFacesDeleted()

virtual void AllFacesDeleted ( )
pure virtual
Remarks
This method is called when all faces in the owner object are deleted

◆ FaceCopied()

virtual BOOL FaceCopied ( ULONG  from,
ULONG  to 
)
pure virtual
Remarks
This method is called when a face has been copied from index from in the owner object's array of faces to the face at index to.
Parameters:
ULONG from

The index of the source face.

ULONG to

The index of the destination face.
Returns
TRUE if successful, otherwise FALSE.

◆ FaceInterpolated()

virtual BOOL FaceInterpolated ( ULONG  numSrc,
ULONG *  srcFaces,
float *  coeff,
ULONG  targetFace 
)
pure virtual
Remarks
This method is called when a new face has been created in the owner object based on data interpolated from other faces.
Parameters:
ULONG numSrc

The number of faces used in the interpolation.

ULONG* srcFaces

The array of numSrc face indices into the owner object's face array. These faces were used when creating the new face.

float* coeff

The array of numSrc coefficients used in the interpolation.

ULONG targetFac

The index in the owner object's array of faces of the newly created face.
Returns
TRUE if successful, otherwise FALSE.

◆ CreateChannel()

virtual IFaceDataChannel* CreateChannel ( )
pure virtual
Remarks
This method will allocate an empty data-channel.

◆ CloneChannel()

virtual IFaceDataChannel* CloneChannel ( )
pure virtual
Remarks
The data-channel needs to allocate a new instance of itself and fill it with copies of all data items it stores. Note: This method makes it more efficient to clone the whole data-channel.

◆ AppendChannel()

virtual BOOL AppendChannel ( const IFaceDataChannel fromChan)
pure virtual
Remarks
The data-channel needs to append the data objects in the fromChan to itself.
Parameters:
const IFaceDataChannel* fromChan

The channel containing the data objects to append.
Returns
TRUE if successful, otherwise FALSE.