Base Limit Controller Interface.
ILimitControl provides access to the limit controller methods. A limit controller is used to restrict the range of values produced by other controllers.
The controller whose range of value is being restricted is called the limited controller. Its presence is optional.
This interface can be used to gain access to the limit controller's enable state and limited controller, and to set the upper or lower limits of the controller.
Limit controllers can be disabled, in which case they just let the limited controller pass through.
#include <ILimitCtrl.h>
Public Types |
|
enum | { is_enabled, set_enabled, get_limited_control, set_limited_control, set_upper_limit, set_lower_limit } |
Public Member Functions |
|
BEGIN_FUNCTION_MAP | FN_0 (is_enabled, TYPE_bool, IsEnabled) |
VFN_1 (set_enabled, SetEnabled, TYPE_bool) | |
FN_0 (get_limited_control, TYPE_CONTROL, GetLimitedControl) | |
VFN_1 (set_limited_control, SetLimitedControl, TYPE_CONTROL) | |
END_FUNCTION_MAP FPInterfaceDesc * | GetDesc () |
virtual void | SetUpperLimit (const TimeValue &in_t, void *in_val)=0 |
Set the upper limit of the controller at a
given time. |
|
virtual void | SetLowerLimit (const TimeValue &in_t, void *in_val)=0 |
Set the lower limit of the controller at a
given time. |
|
Accessors for the Enable state of the
limit controller
|
|
virtual bool | IsEnabled () const =0 |
virtual void | SetEnabled (bool in_enabled)=0 |
Accessors for the limited controller of
the limit controller
|
|
virtual Control * | GetLimitedControl () const =0 |
virtual void | SetLimitedControl (Control *in_limitedCtrl)=0 |
Static Public Member Functions |
|
static ILimitControl * | GetBaseLimitInterface (Animatable *anim) |
If the Animatable supports the ILimitControl interface,
returns a pointer to it. |
anonymous enum |
BEGIN_FUNCTION_MAP FN_0 | ( | is_enabled | , |
TYPE_bool | , | ||
IsEnabled | |||
) |
VFN_1 | ( | set_enabled | , |
SetEnabled | , | ||
TYPE_bool | |||
) |
FN_0 | ( | get_limited_control | , |
TYPE_CONTROL | , | ||
GetLimitedControl | |||
) |
VFN_1 | ( | set_limited_control | , |
SetLimitedControl | , | ||
TYPE_CONTROL | |||
) |
END_FUNCTION_MAP FPInterfaceDesc* GetDesc | ( | ) | [virtual] |
Implements FPInterface.
virtual bool IsEnabled | ( | ) | const [pure virtual] |
virtual void SetEnabled | ( | bool | in_enabled | ) | [pure virtual] |
virtual Control* GetLimitedControl | ( | ) | const [pure virtual] |
virtual void SetLimitedControl | ( | Control * | in_limitedCtrl | ) | [pure virtual] |
virtual void SetUpperLimit | ( | const TimeValue & | in_t, |
void * | in_val | ||
) | [pure virtual] |
Set the upper limit of the controller at a given time.
[in] | in_t | - time for which the upper limit is to be set |
[in] | in_val | - pointer to a variable of type according to the limit controller type |
virtual void SetLowerLimit | ( | const TimeValue & | in_t, |
void * | in_val | ||
) | [pure virtual] |
Set the lower limit of the controller at a given time.
[in] | in_t | - time for which the lower limit is to be set |
[in] | in_val | - pointer to a variable of type according to the limit controller type |
static ILimitControl* GetBaseLimitInterface | ( | Animatable * | anim | ) | [inline, static] |
If the Animatable supports the ILimitControl interface, returns a pointer to it.
[in] | anim | - Animatable to be tested for support of the ILimitControl interface |
{ return anim? static_cast<ILimitControl*>(anim->GetInterface(IID_LIMIT_CONTROL)): NULL;}