added everything
This commit is contained in:
68
lib/maxsdk70/include/iBlockRef.h
Executable file
68
lib/maxsdk70/include/iBlockRef.h
Executable file
@@ -0,0 +1,68 @@
|
||||
/**********************************************************************
|
||||
|
||||
FILE: IBlockRef.h
|
||||
|
||||
DESCRIPTION: Public intefaces that defines the concept of block references
|
||||
|
||||
CREATED BY: Attila Szabo, Discreet
|
||||
|
||||
HISTORY: - created Aug 06, 2002
|
||||
|
||||
*> Copyright (c) 1998-2002, All Rights Reserved.
|
||||
**********************************************************************/
|
||||
|
||||
#ifndef _IBLOCKREF_H_
|
||||
#define _IBLOCKREF_H_
|
||||
|
||||
#include "iFnPub.h"
|
||||
#include "maxtypes.h"
|
||||
|
||||
|
||||
// "Block" is a generic term for one or more objects that are combined
|
||||
// to create a single object. A set of combined objects stored in a block
|
||||
// table are called block definitions while a block reference is the object
|
||||
// that references a block definition and is inserted in the scene.
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// class IBlockRefComponent
|
||||
//
|
||||
// This interface models a component of a block reference
|
||||
//________________________________________________________________________
|
||||
class IBlockRefComponent : public FPMixinInterface
|
||||
{
|
||||
public:
|
||||
// --- Operations on block components
|
||||
virtual const TCHAR* GetName() const = 0;
|
||||
|
||||
// --- Block management
|
||||
virtual bool Add(IBlockRefComponent* component) = 0;
|
||||
virtual bool Remove(IBlockRefComponent* component) = 0;
|
||||
virtual unsigned long NumComponents() const = 0;
|
||||
virtual unsigned long GetComponents(Tab<IBlockRefComponent*>& components) const = 0;
|
||||
virtual void ExpandSelection(Tab<INode*>& nodesToSelect) const = 0;
|
||||
// Returns true if an instance of this block component needs a selection
|
||||
// box displayed around it when selected. Otherwise returns false
|
||||
virtual bool IsSelectionBoxNeeded() const = 0;
|
||||
|
||||
// --- Block data I/O
|
||||
virtual IOResult Save(ISave* isave) const = 0;
|
||||
virtual IOResult Load(ILoad* iload) = 0;
|
||||
};
|
||||
|
||||
|
||||
// Interface ID
|
||||
#define BLOCKREF_COMPONENT_INTERFACE Interface_ID(0x7f1f2104, 0x7ab7322b)
|
||||
#define ADD_BLOCKREF_COMPONENT_INTERFACE Interface_ID(0x4c794c3a, 0x3a693dbb)
|
||||
#define REMOVE_BLOCKREF_COMPONENT_INTERFACE Interface_ID(0x379c7c13, 0x47a32e07)
|
||||
|
||||
// Utilities:
|
||||
// Client code has to make nodes either block components.
|
||||
// This is accomplished by calling IBlockMgr::MakeBlockRefComponent on a node instance.
|
||||
|
||||
inline IBlockRefComponent* GetBlockRefComponent(INode& n)
|
||||
{
|
||||
return static_cast<IBlockRefComponent*>(n.GetInterface(BLOCKREF_COMPONENT_INTERFACE));
|
||||
}
|
||||
|
||||
|
||||
#endif //_IBLOCKREF_H_
|
||||
Reference in New Issue
Block a user