FPInterface Class Reference
 
 
 
FPInterface Class Reference

#include <ifnpub.h>

Inheritance diagram for FPInterface:
BaseInterface InterfaceServer MaxHeapOperators CollisionOps FPInterfaceDesc FPMixinInterface IMaterialBrowserEntryInfo ExposureMaterialControlDesc FPStaticInterface ActionItem ActionTable BitmapTex CheckAbortCallback EPoly EPolyMod ExposureMaterialControl GizmoShape IADTCategory IADTStyle IAnimTrack IAssembly IBaseWireControl IBatchRenderView IBlobMesh IBlockRefComponent IBrowser IChannelContainer IContainerObject IDaylightSystem IDxMaterial IEditNormalsMod IJiggle ILagMod ILayerControl ILayerDisplayProperties ILayerProperties ILimitControl ILinkCtrl IListControl ILookAtConstRotation ILookatControl_Extension ILuminaire IMenu IMenuItem IMeshDeformPWMod IMorphByBone IMXSParticleContainer INode INodeBakeProjProperties INodeBakeProperties INodeDisplayProperties INodeExposure INodeGIProperties INodeLayerProperties INodeMentalRayProperties INodeMonitor INodeShadingProperties INodeTransformMonitor IObjXRefRecord IOrientConstRotation IParticleCache IParticleChannel IParticleChannelAmountR IParticleChannelAmountW IParticleChannelAngAxisR IParticleChannelAngAxisW IParticleChannelBoolR IParticleChannelBoolW IParticleChannelExt IParticleChannelExt2 IParticleChannelFloatR IParticleChannelFloatW IParticleChannelIDR IParticleChannelIDW IParticleChannelINodeHandleR IParticleChannelINodeHandleW IParticleChannelINodeR IParticleChannelINodeW IParticleChannelIntR IParticleChannelIntW IParticleChannelMapR IParticleChannelMapW IParticleChannelMatrix3R IParticleChannelMatrix3W IParticleChannelMeshMapR IParticleChannelMeshMapW IParticleChannelMeshR IParticleChannelMeshW IParticleChannelNewR IParticleChannelNewW IParticleChannelPoint3R IParticleChannelPoint3W IParticleChannelPTVR IParticleChannelPTVW IParticleChannelQuatR IParticleChannelQuatW IParticleChannelTabTVFaceR IParticleChannelTabTVFaceW IParticleChannelTabUVVertR IParticleChannelTabUVVertW IParticleChannelTrueFalseIterator IParticleChannelTrueFalseIterator2 IParticleChannelVoidR IParticleChannelVoidW IParticleGroup IParticleGroupExt IParticleObjectExt IPatchDeformPWMod IPathPosition IPFAction IPFActionExt IPFActionList IPFActionListMaterialHolder IPFActionListPool IPFActionListSet IPFActionState IPFArrow IPFIntegrator IPFOperator IPFOperatorPhysXWorld IPFRender IPFSystem IPFSystemPool IPFTest IPFViewport IPointCache IPointCacheWSM IPosConstPosition IProjectionMod IProjectionMod10 IPViewItem IPViewItemCreator IPViewManager IQuadMenu IRefTargMonitorClass IRenderElementMgr IRotWindup IScanRenderer2 IScriptCtrl ISimpleFaceDataChannel ISimpleManipulator ISkinPose ISplineIKControl ITrackBar ITreeViewOps ITreeViewUI IUnwrapMod IUnwrapMod2 IUnwrapMod3 IUnwrapMod4 IVertexPaint IViewportShaderManager IVisualMSCallback IVisualMSForm IVisualMSItem IXRefAtmospheric IXRefCtrl IXRefItem IXRefMaterial IXRefObject8 IXRefProxy AssetUser IViewportViewSetting NodeAndAnims Plane RadiosityMesh RealWorldMapSizeInterface XMLAnimTreeEntry XMLAnimTreeEntryList

Class Description

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

Description:
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.

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 (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 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, AssetUser, FPInterfaceDesc, FPMixinInterface, IMaterialBrowserEntryInfo, INode, ITreeView, SimpleManipulator, ITrackBar, Interface, PFSimpleAction, PFSimpleActionState, PFSimpleOperator, and PFSimpleTest.

                                                                        { 
                                                                                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, AssetUser, 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, IScriptCtrl, IVisualMSForm, IVisualMSItem, IVisualMSCallback, IChannelContainer, IMXSParticleContainer, IParticleChannel, IParticleChannelAmountR, IParticleChannelAmountW, IParticleChannelAngAxisR, IParticleChannelAngAxisW, IParticleChannelBoolR, IParticleChannelBoolW, IParticleChannelExt, IParticleChannelExt2, IParticleChannelFloatR, IParticleChannelFloatW, IParticleChannelIDR, IParticleChannelIDW, IParticleChannelINodeR, IParticleChannelINodeW, IParticleChannelINodeHandleR, IParticleChannelINodeHandleW, IParticleChannelIntR, IParticleChannelIntW, IParticleChannelMapR, IParticleChannelMapW, IParticleChannelMatrix3R, IParticleChannelMatrix3W, IParticleChannelMeshR, IParticleChannelMeshW, IParticleChannelMeshMapR, IParticleChannelMeshMapW, IParticleChannelNewR, IParticleChannelNewW, IParticleChannelPoint3R, IParticleChannelPoint3W, IParticleChannelPTVR, IParticleChannelPTVW, IParticleChannelQuatR, IParticleChannelQuatW, IParticleChannelTabTVFaceR, IParticleChannelTabTVFaceW, IParticleChannelTabUVVertR, IParticleChannelTabUVVertW, IParticleChannelTrueFalseIterator, IParticleChannelTrueFalseIterator2, IParticleChannelVoidR, IParticleChannelVoidW, IParticleGroup, IParticleGroupExt, IPFAction, IPFActionExt, IPFActionList, IPFActionListMaterialHolder, IPFActionListPool, IPFActionListSet, IPFActionState, IPFArrow, IPFIntegrator, IPFOperator, IPFOperatorPhysXWorld, IPFRender, IPFSystem, IPFSystemPool, IPFTest, IPFViewport, IPViewItem, IPViewItemCreator, IPViewManager, RealWorldMapSizeInterface, IScanRenderer2, CheckAbortCallback, BitmapTex, XMLAnimTreeEntry, XMLAnimTreeEntryList, NodeAndAnims, 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 ( const 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