Public Types | Public Member Functions | Static Public Member Functions

IXRefCtrl Class Reference

Search for all occurrences

Detailed Description

Interface implemented by the XRef controller.

The XRef controller is a wrapper that allows the user to retrieve a pointer to the "source controller".

#include <iXrefCtrl.h>

Inheritance diagram for IXRefCtrl:
Inheritance graph
[legend]

List of all members.

Public Types

enum   { kfpGetSourceCtrl, kfpResetOffsetTM }

Public Member Functions

virtual Control GetSourceCtrl (bool resolveNestedXRef=false) const =0
  Retrieves the source controller, i.e., the actual controller behind the XRef.
virtual FPInterfaceDesc GetIXRefCtrlDesc ()=0
  Returns the function publishing descriptor for the XRef Controller.
virtual void  ResetOffsetTM ()=0
  If the XRefCtrl is not nested, set its offset matrix back to identity, and if it is resolved, i.e., it has a Source controller, set this one's transformation matrix accordingly.
virtual Interface_ID  GetID ()
virtual FPInterfaceDesc GetDesc ()
BEGIN_FUNCTION_MAP  FN_1 (kfpGetSourceCtrl, TYPE_CONTROL, GetSourceCtrl, TYPE_bool)
  VFN_0 (kfpResetOffsetTM, ResetOffsetTM)

Static Public Member Functions

static bool  Is_IXRefCtrl (Animatable &animatable)
  Determines whether it is safe to cast an Animatable to an IXRefCtrl.
static IXRefCtrl GetInterface (InterfaceServer &is)
  Retrieves the IXRefCtrl interface from a scene entity.

Member Enumeration Documentation

anonymous enum

Member Function Documentation

bool Is_IXRefCtrl ( Animatable animatable ) [inline, static]

Determines whether it is safe to cast an Animatable to an IXRefCtrl.

Parameters:
[in] animatable - The animatable to test.
Returns:
true if the specified animatable can be safely cast to IXRefCtrl, false otherwise.
{
    return ((animatable.SuperClassID() == CTRL_MATRIX3_CLASS_ID) &&
            (animatable.ClassID() == XREFCTRL_CLASS_ID));
}
IXRefCtrl * GetInterface ( InterfaceServer is ) [inline, static]

Retrieves the IXRefCtrl interface from a scene entity.

Parameters:
is - Reference to scene entity
Returns:
- Pointer to the IXRefCtrl interface of the scene entity or NULL if it's not an xref controller
{
    return static_cast<IXRefCtrl*>(is.GetInterface(IID_XREF_CTRL));
}
virtual Control* GetSourceCtrl ( bool  resolveNestedXRef = false ) const [pure virtual]

Retrieves the source controller, i.e., the actual controller behind the XRef.

Parameters:
resolveNestedXRef - When set to true, the method will recursively resolve any nested XRef controllers, guaranteeing that the one being returned is NOT an XRef controller. When set to false, the source is returned directly without attempting to resolve nesting.
Returns:
The source controller, or NULL if the XRef is unresolved.
virtual FPInterfaceDesc* GetIXRefCtrlDesc ( ) [pure virtual]

Returns the function publishing descriptor for the XRef Controller.

This method is needed in order to avoid multiple inheritance problems.

Returns:
The function publishing descriptor for the XRef Controller.
virtual void ResetOffsetTM ( ) [pure virtual]

If the XRefCtrl is not nested, set its offset matrix back to identity, and if it is resolved, i.e., it has a Source controller, set this one's transformation matrix accordingly.

virtual Interface_ID GetID ( ) [inline, virtual]
Remarks:
This method overrides GetID() in those interfaces that do not publish metadata but instead have a unique Interface_ID for quick internal identification in implementation code that might be shared by a bunch of mixin interfaces.
Returns:
The Interface_ID.
Default Implementation:
{ return GetDesc()->ID; }

Reimplemented from FPMixinInterface.

{return IID_XREF_CTRL;}
virtual FPInterfaceDesc* GetDesc ( ) [inline, virtual]
Remarks:
Returns a pointer to the class which contains the interface metadata.

Implements FPInterface.

{return GetIXRefCtrlDesc();}
BEGIN_FUNCTION_MAP FN_1 ( kfpGetSourceCtrl  ,
TYPE_CONTROL  ,
GetSourceCtrl  ,
TYPE_bool   
)
VFN_0 ( kfpResetOffsetTM  ,
ResetOffsetTM   
)

IXRefCtrl IXRefCtrl IXRefCtrl IXRefCtrl IXRefCtrl IXRefCtrl IXRefCtrl IXRefCtrl IXRefCtrl IXRefCtrl
IXRefCtrl IXRefCtrl IXRefCtrl IXRefCtrl IXRefCtrl IXRefCtrl IXRefCtrl IXRefCtrl IXRefCtrl IXRefCtrl