Public Member Functions | Static Public Attributes | Protected Member Functions

FPInterface Class Reference

This reference page is linked to from the following overview topics: General Best Practices, The Function Publishing API, Mixin Interfaces, Passing FPInterfaces as Parameters and Results, The FPInterface Class Hierarchy, Parameter Validation, Property Accessors, Added Base Types, Using FPInterface::Invoke().


Search for all occurrences

Detailed Description

See also:
Class BaseInterface, Class ClassDesc, Class FPInterfaceDesc, Class Interface_ID, Class ActionTable, FPStatus values, Function Publishing System.

Description:
This class is available in release 4.0 and later only.

The Function Publishing system makes use of this class. Functions are published in one or more Interfaces by a plug-in. Each interface is represented by an instance of a class derived from this base class.

Note that the Function Publishing class hierarchy is as follows:

FPInterface: This is the base class for all interfaces, the prime client type for using interfaces.

FPInterfaceDesc: This is the class which contains interface metadata.

FPStaticInterface: This is the class to use as the base class for defining static or core virtual interface classes.

FPMixinInterface: This is for use as the base class for defining object-based mixin interface classes, in this case you also use FPInterfaceDesc for mixin interface descriptors.

#include <ifnpub.h>

Inheritance diagram for FPInterface:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual BaseInterface GetInterface (Interface_ID id)
virtual FPInterfaceDesc GetDesc ()=0
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 (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 ActionTable GetActionTable ()
virtual void  EnableActions (BOOL onOff)

Static Public Attributes

static CoreExport FPInterfaceDesc  nullInterface

Protected Member Functions

virtual FPStatus  _dispatch_fn (FunctionID fid, TimeValue t, FPValue &result, FPParams *p)

Member Function Documentation

virtual FPStatus _dispatch_fn ( FunctionID  fid,
TimeValue  t,
FPValue result,
FPParams p 
) [inline, protected, virtual]
virtual BaseInterface* GetInterface ( Interface_ID  id ) [inline, virtual]
Remarks:
Returns a pointer to the interface whose ID is specified.
Parameters:
Interface_ID id

The ID of the interface to return.
Default Implementation:
{ return NULL; }

Reimplemented from BaseInterface.

Reimplemented in ActionItem, ActionItemStandin, ActionTable, FPInterfaceDesc, FPMixinInterface, IMaterialBrowserEntryInfo, INode, ITreeView, SimpleManipulator, ITrackBar, Interface, and AssetUser.

                                    { 
                                        if (id == FPINTERFACE_ID) return this; 
                                        else if (id == FPINTERFACEDESC_ID) return (BaseInterface*)GetDesc();
                                        else return BaseInterface::GetInterface(id); 
                                    }
virtual FPInterfaceDesc* GetDesc ( ) [pure virtual]
Remarks:
Returns a pointer to the class which contains the interface metadata.

Implemented in ActionItem, ActionTable, IBlobMesh, IBrowser, IContainerObject, IEditNormalsMod, EPoly, EPolyMod, FPInterfaceDesc, ILagMod, ILayerControl, ILimitControl, IMaterialBrowserEntryInfo, IMorphByBone, INode, INodeExposure, INodeMonitor, INodeTransformMonitor, IBaseWireControl, IParticleObjectExt, IPointCache, IPointCacheWSM, IParticleCache, IRefTargMonitorClass, ISkinPose, IMeshDeformPWMod, IPatchDeformPWMod, IJiggle, IRotWindup, IPathPosition, IPosConstPosition, IOrientConstRotation, ILookAtConstRotation, ILinkCtrl, IListControl, ISplineIKControl, IAnimTrack, ITreeViewUI, ITreeViewOps, IUnwrapMod, IUnwrapMod2, IUnwrapMod3, IUnwrapMod4, IViewportShaderManager, Plane, GizmoShape, ISimpleManipulator, ITrackBar, RealWorldMapSizeInterface, IScanRenderer2, CheckAbortCallback, BitmapTex, XMLAnimTreeEntry, XMLAnimTreeEntryList, NodeAndAnims, AssetUser, IScriptCtrl, IVisualMSForm, IVisualMSItem, IVisualMSCallback, IChannelContainer, IMXSParticleContainer, IParticleChannel, IParticleChannelAmountR, IParticleChannelAmountW, IParticleChannelAngAxisR, IParticleChannelAngAxisW, IParticleChannelBoolR, IParticleChannelBoolW, IParticleChannelExt, IParticleChannelFloatR, IParticleChannelFloatW, IParticleChannelIDR, IParticleChannelIDW, IParticleChannelINodeR, IParticleChannelINodeW, IParticleChannelIntR, IParticleChannelIntW, IParticleChannelMapR, IParticleChannelMapW, IParticleChannelMatrix3R, IParticleChannelMatrix3W, IParticleChannelMeshR, IParticleChannelMeshW, IParticleChannelMeshMapR, IParticleChannelMeshMapW, IParticleChannelNewR, IParticleChannelNewW, IParticleChannelPoint3R, IParticleChannelPoint3W, IParticleChannelPTVR, IParticleChannelPTVW, IParticleChannelQuatR, IParticleChannelQuatW, IParticleChannelTabTVFaceR, IParticleChannelTabTVFaceW, IParticleChannelTabUVVertR, IParticleChannelTabUVVertW, IParticleChannelTrueFalseIterator, IParticleChannelVoidR, IParticleChannelVoidW, IParticleGroup, IPFAction, IPFActionList, IPFActionListPool, IPFActionListSet, IPFActionState, IPFArrow, IPFIntegrator, IPFOperator, IPFRender, IPFSystem, IPFSystemPool, IPFTest, IPFViewport, IPViewItem, IPViewItemCreator, IPViewManager, IXRefAtmospheric, IXRefCtrl, IXRefItem, IXRefMaterial, IXRefObject8, IObjXRefRecord, and IXRefProxy.

virtual CoreExport FPStatus Invoke ( FunctionID  fid,
TimeValue  t = 0,
FPParams params = NULL 
) [virtual]
Remarks:
Parameters:
FunctionID fid

The function ID of the function to invoke.

TimeValue t=0

The timevalue at which to invoke the function.

FPParams* params=NULL

The FPParams to pass.
Returns:
The FPStatus. See FPStatus values for details
virtual FPStatus Invoke ( FunctionID  fid,
FPParams params 
) [inline, virtual]
Remarks:
This method will invoke the specified function.
Parameters:
FunctionID fid

The function ID of the function to invoke.

FPParams* params

The FPParams to pass.
Returns:
The FPStatus. See FPStatus values for details
{ return Invoke(fid, 0, params); }
virtual CoreExport FPStatus Invoke ( FunctionID  fid,
TimeValue  t,
FPValue result,
FPParams params = NULL 
) [virtual]
Remarks:
This method will invoke the specified function.
Parameters:
FunctionID fid

The function ID of the function to invoke.

TimeValue t

The timevalue at which to invoke the function.

FPValue& result

A reference to the resulting FPValue.

FPParams* params=NULL

The FPParams to pass.
Returns:
The FPStatus. See FPStatus values for details
virtual FPStatus Invoke ( FunctionID  fid,
FPValue result,
FPParams params = NULL 
) [inline, virtual]
Remarks:
This method will invoke the specified function.
Parameters:
FunctionID fid

The function ID of the function to invoke.

FPValue& result

A reference to the resulting FPValue.

FPParams* params=NULL

The FPParams to pass.
Returns:
The FPStatus. See FPStatus values for details
{ return Invoke(fid, 0, result, params); }
virtual CoreExport FunctionID FindFn ( MCHAR *  name ) [virtual]
Remarks:
This method returns a function ID based on the name of the function specified.
Parameters:
MCHAR* name

The name of the function to retrieve the Function ID for.
virtual CoreExport BOOL IsEnabled ( FunctionID  actionID ) [virtual]
Remarks:
This method allows you to check whether a specific action function is enabled, in which case the method will return TRUE. If the action function is not enabled FALSE will be returned.
Parameters:
FunctionID actionID

The function ID of the action you wish to check the enabled state for.
virtual CoreExport BOOL IsChecked ( FunctionID  actionID ) [virtual]
Remarks:
This method allows you to check whether a specific action function is checked, in which case the method will return TRUE. If the action function is not checked FALSE will be returned.
Parameters:
FunctionID actionID

The function ID of the action you wish to check the checked state for.
virtual CoreExport BOOL IsVisible ( FunctionID  actionID ) [virtual]
Remarks:
This method allows you to check whether a specific action function is visible, in which case the method will return TRUE. If the action function is not visible FALSE will be returned.
Parameters:
FunctionID actionID

The function ID of the action you wish to check the visibility state for.
virtual CoreExport FunctionID GetIsEnabled ( FunctionID  actionID ) [virtual]
Remarks:
This method will return the isEnabled ID for the specified action function.
Parameters:
FunctionID actionID

The function ID of the action you wish to get the isEnabled ID for.
virtual CoreExport FunctionID GetIsChecked ( FunctionID  actionID ) [virtual]
Remarks:
This method will return the isChecked ID for the specified action function.
Parameters:
FunctionID actionID

The function ID of the action you wish to get the isChecked ID for.
virtual CoreExport FunctionID GetIsVisible ( FunctionID  actionID ) [virtual]
Remarks:
This method will return the isVisible ID for the specified action function.
Parameters:
FunctionID actionID

The function ID of the action you wish to get the isVisible ID for.
virtual ActionTable* GetActionTable ( ) [inline, virtual]
Remarks:
This method returns a pointer to the ActionTable.
Default Implementation:
{ return NULL; }

Reimplemented in FPInterfaceDesc.

{ return NULL; }
virtual void EnableActions ( BOOL  onOff ) [inline, virtual]
Remarks:
This method allows you to enable or disable the entire set of actions in the interface You might want to use this method if the actions are only to be active during certain periods in the running of 3ds Max. Usually, this control is achieved via ActionTable contexts.
Parameters:
BOOL onOff

TRUE to enable actions, FALSE to disable them.
Default Implementation:
{ }

Reimplemented in FPInterfaceDesc.

{ UNUSED_PARAM(onOff); }

Member Data Documentation

CoreExport FPInterfaceDesc nullInterface [static]

FPInterface FPInterface FPInterface FPInterface FPInterface FPInterface FPInterface FPInterface FPInterface FPInterface
FPInterface FPInterface FPInterface FPInterface FPInterface FPInterface FPInterface FPInterface FPInterface FPInterface