I3DExAttributesSetControler Struct Reference
[External Interfaces]

Inheritance diagram for I3DExAttributesSetControler:
IMCUnknown TBasicAttributesSetControler

List of all members.

Public Member Functions

virtual boolean MCCOMAPI IsLocalController () const =0
virtual boolean MCCOMAPI ShowControllerOnObjects () const =0
virtual int32 MCCOMAPI GetSubControllerCount ()=0
virtual boolean MCCOMAPI IsSubControllerActive (int32 subControllerIndex)=0
virtual void MCCOMAPI InvalidateAttributesMapping ()=0
virtual void MCCOMAPI ComputeAttributeForRead (TParamHolder &value, int32 paramIndex, int32 subControllerIndex, IAttributeValueHelper *helper, TParamHolder *internalValue)=0
virtual
EComputeAttributeForWriteRetValue
MCCOMAPI 
ComputeAttributeForWrite (TParamHolder &value, int32 paramIndex, int32 subControllerIndex, boolean record, IAttributeCurrentValueHelper *valueHelper, IAttributeValueHelper *helper, TParamHolder *internalValue)=0
virtual void MCCOMAPI AttributeModified (int32 paramIndex)=0
virtual void MCCOMAPI AttributeInvalidated (int32 paramIndex)=0

Detailed Description

There are two interfaces to access a component: The shell interface (I3DShAttributesSetControler) and the external interface (I3DExAttributesSetControler). You can get one from the other using QueryInterface.

WARNING: The animated parameters of this type of component are not validated inside the application. So to get the correct value of one of your animated parameters, you need to call the CheckParamForRead() in your code. Be carefull not to create stack overflow by creating circular dependencies. For instance when your controller is called in ComputeAttributeForRead() for one of the paramater of your PMap and you call the CheckParamForRead() on this parameter, you are creating a circular dependency as you ask for the final value (after applying all controllers) when your are actually computing this final value. If you do this, you will end up with a stack overflow.

See also:
I3DShAttributesSetControler

Member Function Documentation

virtual void MCCOMAPI I3DExAttributesSetControler::AttributeInvalidated ( int32  paramIndex  )  [pure virtual]

Called when an attribute has been invalidated (ie. its value will be check by the next CheckParamForRead().

Parameters:
paramIndex The index of the parameter in the clip.

Implemented in TBasicAttributesSetControler.

virtual void MCCOMAPI I3DExAttributesSetControler::AttributeModified ( int32  paramIndex  )  [pure virtual]

Called when an attribute has been modified.

Parameters:
paramIndex The index of the parameter in the clip.

Implemented in TBasicAttributesSetControler.

virtual void MCCOMAPI I3DExAttributesSetControler::ComputeAttributeForRead ( TParamHolder value,
int32  paramIndex,
int32  subControllerIndex,
IAttributeValueHelper helper,
TParamHolder internalValue 
) [pure virtual]

Called to compute the value of one of the attribute for reading. WARNING: this function is called in SMP.

Parameters:
value Current value of the attribute (this parameter can be modified).
paramIndex The index of the parameter in the attributes set.
subControllerIndex The index of the sub controller to apply.
helper A helper class that allows to get value of other parameters for local controllers or also allows a global controller to apply the local controllers to its internal values.
internalValue Allows the controller to fill this value with the internal value for the controller. This value is used when applying the local controllers to controllers internal values (only for global controllers).
virtual EComputeAttributeForWriteRetValue MCCOMAPI I3DExAttributesSetControler::ComputeAttributeForWrite ( TParamHolder value,
int32  paramIndex,
int32  subControllerIndex,
boolean  record,
IAttributeCurrentValueHelper valueHelper,
IAttributeValueHelper helper,
TParamHolder internalValue 
) [pure virtual]

Called to compute the value of one of the attribute for writing.

Parameters:
value Current value of the attribute (this parameter can be modified).
paramIndex The index of the parameter in the attributes set.
subControllerIndex The index of the sub controller to apply.
record If true the controller can modify its internal data to take the change into account (ie. for a keyframe clip in edition mode it should create a new keyframe in the parameters timeline in the clip) otherwise the controller should not be modified.
valueHelper This object is an helper that allows to get the value of the current parameter before applying the current controller or sub controller (only available for global parameter).
helper A helper class that allows to get value of other parameters for local controllers or also allows a global controller to apply the local controllers to its internal values.
internalValue Allows the controller to fill this value with the internal value for the controller. This value is used when applying the local controllers to controllers internal values (only for global controllers).
Returns:
the status of the parameters.
See also:
EComputeAttributeForWriteRetValue
virtual int32 MCCOMAPI I3DExAttributesSetControler::GetSubControllerCount (  )  [pure virtual]

Returns the number of sub controllers. A controller can contains multiple sub controllers. In that case, the functions ComputeAttributeForRead and ComputeAttributeForWrite will be called multiple times.

Implemented in TBasicAttributesSetControler.

virtual void MCCOMAPI I3DExAttributesSetControler::InvalidateAttributesMapping (  )  [pure virtual]

This function is called when the mapping of the attributes changed. This function is not called everytime something change, but only when a validation is needed (before a call to ComputeAttributeForRead() for instance). You should validate the caches that you need to update during that function. This call is protected in SMP so it is safe to do so. Doing it in ComputeAttributeForRead is not protected.

Implemented in TBasicAttributesSetControler.

virtual boolean MCCOMAPI I3DExAttributesSetControler::IsLocalController (  )  const [pure virtual]

Returns true if the controller is a local controller and false if it is a global controller.

See also:
I3DShAttributesSet
virtual boolean MCCOMAPI I3DExAttributesSetControler::IsSubControllerActive ( int32  subControllerIndex  )  [pure virtual]

Returns true if the given sub controller can modify some parameter value. If not the sub controller will not be called.

Parameters:
subControllerIndex The index of the sub controller.

Implemented in TBasicAttributesSetControler.

virtual boolean MCCOMAPI I3DExAttributesSetControler::ShowControllerOnObjects (  )  const [pure virtual]

Returns true if the controller UI shall be visible on all objects part of the attributes set.

See also:
I3DShAttributesSet

Implemented in TBasicAttributesSetControler.


The documentation for this struct was generated from the following file:
Generated on Mon Apr 26 22:47:36 2010 for Carrara SDK Doc by  doxygen 1.6.3