INodeExposure Class Reference

INodeExposure Class Referenceabstract

#include <INodeExposure.h>

Class Description

class INodeExposure: public FPMixinInterface

Description:
This class is only available in release 5 or later.

This interface provides the ability for a node to define whether it is visible in any of max's dialog boxes. This interface will be extended and used by more of 3ds Max's core utilities, but currently ONLY TrackView and the Select Object/HideObject dialog box use this interface. By default this interface is not available through the default nodes, it needs to be added.

To get a pointer to this interface from a node the following code can be used.
This will add a new INodeExposure interface to the node if it is not present. The next time you use this technique it will only return the interface and not create another new interface.

Data Members:
enum {

kSelectObjects, kSchematicView, kMaxscript,

kMerge, kMergeAnimation, kReplace,

kKeyEditor, kCurveEditor, kRangeEditor,

};

This enum provides access to the different supported UI elements. It is used with various methods of the class to get/set the UI flags.
+ Inheritance diagram for INodeExposure:

Public Types

enum  {
  kSelectObjects, kSchematicView, kMaxscript, kMerge,
  kMergeAnimation, kReplace, kKeyEditor, kCurveEditor,
  kRangeEditor, kUI_num
}
 
enum  FuncID { kIsExposed, kSetExposedInAll, kSetExposed, kBakeExposure }
 
- Public Types inherited from BaseInterface
enum  LifetimeType { noRelease, immediateRelease, wantsRelease, serverControlled }
 

Public Member Functions

virtual bool IsExposed (int ui) const =0
 
virtual void SetExposed (bool state)=0
 
virtual void SetExposed (bool state, int ui)=0
 
bool IsExposedInSelectObjects () const
 
bool IsExposedInSchematicView () const
 
bool IsExposedInMaxscript () const
 
bool IsExposedInMerge () const
 
bool IsExposedInMergeAnimation () const
 
bool IsExposedInReplace () const
 
bool IsExposedInTrackView () const
 
bool IsExposedInKeyEditor () const
 
bool IsExposedInCurveEditor () const
 
bool IsExposedInRangeEditor () const
 
void SetExposedInSelectObjects (bool state)
 
void SetExposedInSchematicView (bool state)
 
void SetExposedInMaxscript (bool state)
 
void SetExposedInMerge (bool state)
 
void SetExposedInMergeAnimation (bool state)
 
void SetExposedInReplace (bool state)
 
void SetExposedInTrackView (bool state)
 
void SetExposedInKeyEditor (bool state)
 
void SetExposedInCurveEditor (bool state)
 
void SetExposedInRangeEditor (bool state)
 
virtual IOResult Save (ISave *) const =0
 
virtual IOResult Load (ILoad *)=0
 
virtual void Copy (INodeExposure *)=0
 
virtual void BakeExposure ()=0
 
virtual bool IsExposureBaked ()=0
 
virtual const voidObjectOf (void *) const =0
 
virtual voidObjectOf (void *)=0
 
FPInterfaceDescGetDesc ()
 
 FN_1 (kIsExposed, TYPE_bool, IsExposed, TYPE_INT)
 
 VFN_1 (kSetExposedInAll, SetExposed, TYPE_bool)
 
 VFN_2 (kSetExposed, SetExposed, TYPE_bool, TYPE_INT)
 
 VFN_0 (kBakeExposure, BakeExposure)
 
- Public Member Functions inherited from FPMixinInterface
 FPMixinInterface ()
 
virtual LifetimeType LifetimeControl ()
 
virtual CoreExport bool RegisterNotifyCallback (InterfaceNotifyCallback *incb)
 
virtual void UnRegisterNotifyCallback (InterfaceNotifyCallback *incb)
 
CoreExport ~FPMixinInterface ()
 
virtual BaseInterfaceGetInterface (Interface_ID id)
 
virtual FPInterfaceDescGetDescByID (Interface_ID id)
 
virtual Interface_ID GetID ()
 
- Public Member Functions inherited from FPInterface
virtual CoreExport FPStatus Invoke (FunctionID fid, TimeValue t=0, FPParams *params=NULL)
 
virtual FPStatus Invoke (FunctionID fid, FPParams *params)
 
virtual CoreExport FPStatus Invoke (FunctionID fid, TimeValue t, FPValue &result, FPParams *params=NULL)
 
virtual FPStatus Invoke (FunctionID fid, FPValue &result, FPParams *params=NULL)
 
virtual CoreExport FunctionID FindFn (const MCHAR *name)
 
virtual CoreExport BOOL IsEnabled (FunctionID actionID)
 
virtual CoreExport BOOL IsChecked (FunctionID actionID)
 
virtual CoreExport BOOL IsVisible (FunctionID actionID)
 
virtual CoreExport FunctionID GetIsEnabled (FunctionID actionID)
 
virtual CoreExport FunctionID GetIsChecked (FunctionID actionID)
 
virtual CoreExport FunctionID GetIsVisible (FunctionID actionID)
 
virtual ActionTableGetActionTable ()
 
virtual void EnableActions (BOOL onOff)
 
- Public Member Functions inherited from BaseInterface
virtual UtilExport ~BaseInterface ()
 Destructor. More...
 
virtual BaseInterfaceAcquireInterface ()
 
virtual void ReleaseInterface ()
 
virtual void DeleteInterface ()
 
virtual BaseInterfaceCloneInterface (void *remapDir=NULL)
 
- Public Member Functions inherited from InterfaceServer
virtual UtilExport ~InterfaceServer ()
 Destructor. More...
 

Static Public Member Functions

static INodeExposureGetINodeExposure (INode &n)
 
static INodeExposureAppendINodeExposure (INode &n)
 
- 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...
 

Additional Inherited Members

- Static Public Attributes inherited from FPInterface
static CoreExport FPInterfaceDesc nullInterface
 
- Protected Member Functions inherited from FPMixinInterface
 FPMixinInterface (const FPMixinInterface &rhs)
 
FPMixinInterfaceoperator= (const FPMixinInterface &rhs)
 
- Protected Member Functions inherited from FPInterface
virtual FPStatus _dispatch_fn (FunctionID fid, TimeValue t, FPValue &result, FPParams *p)
 
- Protected Attributes inherited from FPMixinInterface
Tab< InterfaceNotifyCallback * > * interfaceNotifyCBs
 

Member Enumeration Documentation

anonymous enum
Enumerator
kSelectObjects 
kSchematicView 
kMaxscript 
kMerge 
kMergeAnimation 
kReplace 
kKeyEditor 
kCurveEditor 
kRangeEditor 
kUI_num 
54  {
57  kKeyEditor, kCurveEditor, kRangeEditor, // three components for TrackView editors
58  kUI_num // always last in the enum
59  };
Definition: INodeExposure.h:56
Definition: INodeExposure.h:57
Definition: INodeExposure.h:56
Definition: INodeExposure.h:57
Definition: INodeExposure.h:56
Definition: INodeExposure.h:55
Definition: INodeExposure.h:57
Definition: INodeExposure.h:55
Definition: INodeExposure.h:55
Definition: INodeExposure.h:58
enum FuncID
Enumerator
kIsExposed 
kSetExposedInAll 
kSetExposed 
kBakeExposure 
171  {
173  };
Definition: INodeExposure.h:172
Definition: INodeExposure.h:172
Definition: INodeExposure.h:172
Definition: INodeExposure.h:172

Member Function Documentation

static INodeExposure* GetINodeExposure ( INode n)
inlinestatic
62  {
63  return static_cast<INodeExposure*>(n.GetInterface(NODEEXPOSURE_INTERFACE)); }
class INodeExposure: public FPMixinInterface
Definition: INodeExposure.h:51
BaseInterface * GetInterface(Interface_ID id)
Definition: inode.h:1671
#define NODEEXPOSURE_INTERFACE
Definition: INodeExposure.h:21
static INodeExposure* AppendINodeExposure ( INode n)
inlinestatic
65  {
class INodeExposure: public FPMixinInterface
Definition: INodeExposure.h:51
#define NODEEXPOSURE_INTERFACE_TOAPPEND
Definition: INodeExposure.h:22
BaseInterface * GetInterface(Interface_ID id)
Definition: inode.h:1671
virtual bool IsExposed ( int  ui) const
pure virtual
Remarks
This will return the exposure state of the UI element being queried

Parameters:
int ui

The UI flag to query. This should be a value from the UI enum - See data members section

virtual void SetExposed ( bool  state)
pure virtual
Remarks
This will set the state of all the UI elements to the state passed into the method

Parameters:
bool state

The state to set the nodes UI exposure

virtual void SetExposed ( bool  state,
int  ui 
)
pure virtual
Remarks
This will set the state of the individual UI element to the state passed into the method

Parameters:
bool state

The state to set the nodes UI exposure

int ui

The UI element to set
bool IsExposedInSelectObjects ( ) const
inline
Remarks
This will return true if it is visible in Selected Objects/HideObjects Dialog box otherwise false

187 {
188  return IsExposed(kSelectObjects);
189 }
virtual bool IsExposed(int ui) const =0
Definition: INodeExposure.h:55
bool IsExposedInSchematicView ( ) const
inline
192 {
193  return IsExposed(kSchematicView);
194 }
virtual bool IsExposed(int ui) const =0
Definition: INodeExposure.h:55
bool IsExposedInMaxscript ( ) const
inline
197 {
198  return IsExposed(kMaxscript);
199 }
virtual bool IsExposed(int ui) const =0
Definition: INodeExposure.h:55
bool IsExposedInMerge ( ) const
inline
202 {
203  return IsExposed(kMerge);
204 }
Definition: INodeExposure.h:56
virtual bool IsExposed(int ui) const =0
bool IsExposedInMergeAnimation ( ) const
inline
207 {
208  return IsExposed(kMergeAnimation);
209 }
Definition: INodeExposure.h:56
virtual bool IsExposed(int ui) const =0
bool IsExposedInReplace ( ) const
inline
212 {
213  return IsExposed(kReplace);
214 }
virtual bool IsExposed(int ui) const =0
Definition: INodeExposure.h:56
bool IsExposedInTrackView ( ) const
inline
Remarks
This will return true if it is visible in TrackView or false if it is not. This will return TRUE is the node is exposed in ANY of the TrackView states, kKeyEditor, kCurveEditor and kRangeEditor. It will return FALSE if ALL are set to false.

217 {
219 }
Definition: INodeExposure.h:57
Definition: INodeExposure.h:57
virtual bool IsExposed(int ui) const =0
Definition: INodeExposure.h:57
bool IsExposedInKeyEditor ( ) const
inline
Remarks
Specifies whether the node is visible in the Key Editor of TrackView
222 {
223  return IsExposed(kKeyEditor);
224 }
Definition: INodeExposure.h:57
virtual bool IsExposed(int ui) const =0
bool IsExposedInCurveEditor ( ) const
inline
Remarks
Specifies whether the node is visible in the Function Curve Editor of Track View
227 {
228  return IsExposed(kCurveEditor);
229 }
virtual bool IsExposed(int ui) const =0
Definition: INodeExposure.h:57
bool IsExposedInRangeEditor ( ) const
inline
Remarks
Specifies whether the node is visible in the Key Range Editor of Track View
232 {
233  return IsExposed(kRangeEditor);
234 }
Definition: INodeExposure.h:57
virtual bool IsExposed(int ui) const =0
void SetExposedInSelectObjects ( bool  state)
inline
Remarks
This will set the flag for the exposure in Selected Objects/HideObjects dialog box

Parameters:
bool state

The value to set the flag

237 {
238  SetExposed(state, kSelectObjects);
239 }
Definition: INodeExposure.h:55
virtual void SetExposed(bool state)=0
void SetExposedInSchematicView ( bool  state)
inline
242 {
243  SetExposed(state, kSchematicView);
244 }
Definition: INodeExposure.h:55
virtual void SetExposed(bool state)=0
void SetExposedInMaxscript ( bool  state)
inline
247 {
248  SetExposed(state, kMaxscript);
249 }
virtual void SetExposed(bool state)=0
Definition: INodeExposure.h:55
void SetExposedInMerge ( bool  state)
inline
252 {
253  SetExposed(state, kMerge);
254 }
Definition: INodeExposure.h:56
virtual void SetExposed(bool state)=0
void SetExposedInMergeAnimation ( bool  state)
inline
257 {
258  SetExposed(state, kMergeAnimation);
259 }
Definition: INodeExposure.h:56
virtual void SetExposed(bool state)=0
void SetExposedInReplace ( bool  state)
inline
262 {
263  SetExposed(state, kReplace);
264 }
Definition: INodeExposure.h:56
virtual void SetExposed(bool state)=0
void SetExposedInTrackView ( bool  state)
inline
Remarks
This allows the state of the TrackView exposure flag to be set by the user. This will set the flag for all three TrackView flags. See comment in IsExposedInTrackView().

267 {
268  SetExposed(state, kKeyEditor);
269  SetExposed(state, kCurveEditor);
270  SetExposed(state, kRangeEditor);
271 }
Definition: INodeExposure.h:57
Definition: INodeExposure.h:57
Definition: INodeExposure.h:57
virtual void SetExposed(bool state)=0
void SetExposedInKeyEditor ( bool  state)
inline
Remarks
This allows the state of the Key Editor of Trackview exposure flag to be set by the user.

274 {
275  SetExposed(state, kKeyEditor);
276 }
Definition: INodeExposure.h:57
virtual void SetExposed(bool state)=0
void SetExposedInCurveEditor ( bool  state)
inline
Remarks
This allows the state of the Function Curve Editor of Track view exposure flag to be set by the user.

279 {
280  SetExposed(state, kCurveEditor);
281 }
Definition: INodeExposure.h:57
virtual void SetExposed(bool state)=0
void SetExposedInRangeEditor ( bool  state)
inline
Remarks
This allows the state of the Key Range Editor of Track view exposure flag to be set by the user.
284 {
285  SetExposed(state, kRangeEditor);
286 }
Definition: INodeExposure.h:57
virtual void SetExposed(bool state)=0
virtual IOResult Save ( ISave ) const
pure virtual
virtual IOResult Load ( ILoad )
pure virtual
virtual void Copy ( INodeExposure )
pure virtual
virtual void BakeExposure ( )
pure virtual
virtual bool IsExposureBaked ( )
pure virtual
virtual const void* ObjectOf ( void ) const
pure virtual
virtual void* ObjectOf ( void )
pure virtual
FPInterfaceDesc* GetDesc ( )
inlinevirtual
Remarks
Returns a pointer to the class which contains the interface metadata.

Implements FPInterface.

virtual FPInterfaceDesc * GetDescByID(Interface_ID id)
Definition: ifnpub.h:613
#define NODEEXPOSURE_INTERFACE
Definition: INodeExposure.h:21
FN_1 ( kIsExposed  ,
TYPE_bool  ,
IsExposed  ,
TYPE_INT   
)
VFN_1 ( kSetExposedInAll  ,
SetExposed  ,
TYPE_bool   
)
VFN_2 ( kSetExposed  ,
SetExposed  ,
TYPE_bool  ,
TYPE_INT   
)
VFN_0 ( kBakeExposure  ,
BakeExposure   
)