3ds Max C++ API Reference
|
These are classes and enums to support the Data Channel Modifier. More...
Classes | |
class | IDataChannelEngine |
This is a black box engine that takes some input and outputs some data. More... | |
class | IInputData |
Descripes an input entry which consists of an type description and pointer to the data. More... | |
class | IOutputData |
Descripes an output entry which consists of an type description and pointer to the data Also lets the engine tell the modifier what channel it supports Other data that the engine needs to store per instance can also be stored here since the output data is stored on the modifier local data for modifiers. More... | |
These are classes and enums to support the Data Channel Modifier.
The Data Channel Modifier can be extened by adding additional Engines. This is done by having a plugin derive from IDataChannelEngine and using the SuperClassID DATACHANNELENGINE_SUPER_CLASS_ID. Any plugins that do that will appear in the Data Channel modifiers drop down list.
An IDataChannelEngine is just a black box solution that takes an MNMesh and then outputs an array that describes the mesh. For instance a Curvature engine would compute the curvature at each vertex and then return an array of floats one for each geometric vertex that describe the curvature.
The Data Channel modifier allows the vertex, edge and face channels to be modified. NOTE channels here just represent an array of data that describes part of a mesh and is not related to channels that flow up the stack. Vertex data is a bit tricky since some channels need face information and some do not. For instance the Vertex Selection channel implicitly is attached to the geometry face index so you cannot change that while something like a map channel has an explicit face channel attached to it.
The Map Channel modifier allows you to copy different face index channels around but not edit them directly.
enum InputDataType |
A list of the input data types to be passed into the engine.
This will be extended as add more exposure to different types in different spaces.
Enumerator | |
---|---|
kType_INode | |
kType_MNMesh | this entry will be pointer to the inode that owns the geometry in the stack |
kType_Stack_Input | this entry will be pointer to the MNMesh in the stack |
enum OutputDataType |
TBD A custom blind data type for any data that is not covered in OutputDataTypes.
A list of the output data to be passed fomr the engine. This will be extended as add more exposure to different types in different spaces.
Enumerator | |
---|---|
kType_Int | |
kType_Float | int passed as pointer an int |
kType_Point3 | float passed as pointer an float |
kType_Matrix3 | Point3 passed as pointer an point3. |
kType_IntArray | Matrix3 passed as pointer an Matrix3. |
kType_FloatArray | array of ints passed as pointer to MaxSDK::Array |
kType_Point3Array | array of floats passed as pointer to MaxSDK::Array |
kType_Matrix3Array | array of Point3's passed as pointer to MaxSDK::Array |
enum ChannelType |
A list of all all the MNMesh channel types you can write to.
Enumerator | |
---|---|
kChannel_Vertex | |
kChannel_Edge | Vertex channel which can include the position, normals, selection etc. |
kChannel_Face | Edge channel which can include the selection, crease etc. |
kChannel_NoChannelAssigned | Face chanel which can include matids, smoothing groups etx. |
kChannel_DoesNotCare | Means that this data does not use a channel and should be returned if there is no output. |
enum VertexOutputChannel |
List of vertex channels you can write to.
enum EdgeOutputChannel |
List of edge channels you can write to.
Enumerator | |
---|---|
kOutputChannel_EdgeSelection | |
kOutputChannel_EdgeCreaseWeight | Edge selection data. |
kOutputChannel_EData | Edge crease weight data. |
enum FaceOutputChannel |
List of face channels you can write to.
Enumerator | |
---|---|
kOutputChannel_FaceSelection | |
kOutputChannel_MatID | Face selection channel. |
kOutputChannel_SmoothGroup | Material ID channel. |
kOutputChannel_FData | Smoothing Group ID channel. |
enum IndexChannel |
Vertex channels are bit tricky since they are tied to a face index channel this enumerates the different channels.
enum EngineTypes |
These are enums that describe the engine type.There are 3 an Input, Operand and Output.
An Input Engine just creates data that is sent to the stack. An Operand takes data flowing thru the stack and modifies it and then puts it back on the stack An Output takes the data and pushes it back to the mesh