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

106 lines
3.3 KiB
C++
Executable File

/*! \file IPFActionListSet.h
\brief Interface for PF ActionList Set
It's a set of ActionLists. PF System implements the
interface to keep track of all initial ActionLists.
Part of public SDK
*/
/**********************************************************************
*<
CREATED BY: Oleg Bayborodin
HISTORY: created 11-09-01
*> Copyright (c) 2001, All Rights Reserved.
**********************************************************************/
#ifndef _IPFACTIONLISTSET_H_
#define _IPFACTIONLISTSET_H_
#include "Max.h"
#include "PFExport.h"
PFExport Object* GetPFObject(Object* obj);
// interface ID
#define PFACTIONLISTSET_INTERFACE Interface_ID(0x7216b6f, 0x634253c5)
#define GetPFActionListSetInterface(obj) ((IPFActionListSet*)((GetPFObject(obj))->GetInterface(PFACTIONLISTSET_INTERFACE)))
class IPFActionListSet : public FPMixinInterface
{
public:
// function IDs
enum { kGetNumActionLists, kGetActionList, kAppendActionList,
kInsertActionList, kRemoveActionList, kHasActionList,
kIsActionList
};
// Function Map for Function Publish System
//***********************************
BEGIN_FUNCTION_MAP
FN_0( kGetNumActionLists, TYPE_INT, NumActionLists );
FN_1( kGetActionList, TYPE_INODE, GetActionList, TYPE_INDEX);
FN_1( kAppendActionList, TYPE_bool, AppendActionList, TYPE_INODE);
FN_2( kInsertActionList, TYPE_bool, InsertActionList, TYPE_INODE, TYPE_INDEX);
FN_1( kRemoveActionList, TYPE_bool, RemoveActionList, TYPE_INDEX);
FN_2( kHasActionList, TYPE_bool, HasActionList, TYPE_INODE, TYPE_INDEX_BR);
FN_1( kIsActionList, TYPE_bool, IsActionList, TYPE_INODE);
END_FUNCTION_MAP
// must implement GetDescByID method !
FPInterfaceDesc* GetDesc() { return GetDescByID(PFACTIONLISTSET_INTERFACE); }
//End of Function Publishing system code
//***********************************
/** @defgroup IPFActionListSet IPFActionListSet.h
* @{
*/
/*! \fn virtual int NumActionLists() const = 0;
* \brief
*/
virtual int NumActionLists() const = 0;
/*! \fn virtual INode* GetActionList(int index) const = 0;
* \brief
*/
virtual INode* GetActionList(int index) const = 0;
/*! \fn virtual bool AppendActionList(INode* alist) = 0;
* \brief
*/
virtual bool AppendActionList(INode* alist) = 0;
/*! \fn virtual bool InsertActionList(INode* alist, int indexAt) = 0;
* \brief
*/
virtual bool InsertActionList(INode* alist, int indexAt) = 0;
/*! \fn virtual bool RemoveActionList(int index) = 0;
* \brief
*/
virtual bool RemoveActionList(int index) = 0;
/*! \fn virtual bool HasActionList(INode* alist, int& index) const = 0;
* \brief
*/
virtual bool HasActionList(INode* alist, int& index) const = 0;
/*! \fn PFExport static bool IsActionList(INode* alist);
* \brief
*/
PFExport static bool IsActionList(INode* alist);
};
inline IPFActionListSet* PFActionListSetInterface(Object* obj) {
return ((obj == NULL) ? NULL : GetPFActionListSetInterface(obj));
};
inline IPFActionListSet* PFActionListSetInterface(INode* node) {
return ((node == NULL) ? NULL : PFActionListSetInterface(node->GetObjectRef()));
};
#endif // _IPFACTIONLISTSET_H_