tge/lib/maxsdk70/include/IBlobMesh.h
2017-04-17 06:17:10 -06:00

64 lines
1.5 KiB
C++
Executable File

#ifndef __IBMESH__H
#define __IBMESH__H
#include "iFnPub.h"
//***************************************************************
//Function Publishing System stuff
//****************************************************************
#define BLOBMESH_INTERFACE Interface_ID(0xDE17A66a, 0x8A41E45d)
enum { blobmesh_addnode, blobmesh_removenode,
blobmesh_addpfnode, blobmesh_removepfnode,
blobmesh_pickmode, blobmesh_addmode,
blobmesh_addpfmode
};
class IBlobMesh : public FPMixinInterface
{
public:
//Function Publishing System
//Function Map For Mixin Interface
//*************************************************
BEGIN_FUNCTION_MAP
VFN_1(blobmesh_addnode, fnAddNode, TYPE_INODE);
VFN_1(blobmesh_removenode, fnRemoveNode, TYPE_INODE);
VFN_1(blobmesh_addpfnode, fnAddPFNode, TYPE_INODE);
VFN_1(blobmesh_removepfnode, fnRemovePFNode, TYPE_INODE);
VFN_0(blobmesh_pickmode, fnPickMode);
VFN_0(blobmesh_addmode, fnAddMode);
VFN_0(blobmesh_addpfmode, fnAddPFMode);
END_FUNCTION_MAP
FPInterfaceDesc* GetDesc(); // <-- must implement
//note functions that start with fn are to be used with maxscript since these expect 1 based indices
virtual void fnAddNode(INode *node)=0;
virtual void fnRemoveNode(INode *node)=0;
virtual void fnAddPFNode(INode *node)=0;
virtual void fnRemovePFNode(INode *node)=0;
virtual void fnPickMode() = 0;
virtual void fnAddMode() = 0;
virtual void fnAddPFMode() = 0;
};
#endif