CAnimationBaseObject Class
The base class for all animation objects.
Syntax
class CAnimationBaseObject : public CObject;
Members
Public Constructors
Name | Description |
---|---|
CAnimationBaseObject::CAnimationBaseObject | Overloaded. Constructs an animation object. |
CAnimationBaseObject::~CAnimationBaseObject | The destructor. Called when an animation object is being destroyed. |
Public Methods
Name | Description |
---|---|
CAnimationBaseObject::ApplyTransitions | Adds transitions to storyboard with encapsulated animation variable. |
CAnimationBaseObject::ClearTransitions | Removes all related transitions. |
CAnimationBaseObject::ContainsVariable | Determines whether an animation object contains a particular animation variable. |
CAnimationBaseObject::CreateTransitions | Creates transitions associated with an animation object. |
CAnimationBaseObject::DetachFromController | Detaches an animation object from parent animation controller. |
CAnimationBaseObject::EnableIntegerValueChangedEvent | Sets up Integer Value Changed event handler. |
CAnimationBaseObject::EnableValueChangedEvent | Sets up Value Changed event handler. |
CAnimationBaseObject::GetAutodestroyTransitions | Tells whether related transition are destroyed automatically. |
CAnimationBaseObject::GetGroupID | Returns current Group ID. |
CAnimationBaseObject::GetObjectID | Returns current Object ID. |
CAnimationBaseObject::GetUserData | Returns user-defined data. |
CAnimationBaseObject::SetAutodestroyTransitions | Sets a flag to automatically destroy transitions. |
CAnimationBaseObject::SetID | Sets new IDs. |
CAnimationBaseObject::SetUserData | Sets user-defined data. |
Protected Methods
Name | Description |
---|---|
CAnimationBaseObject::GetAnimationVariableList | Collects pointers to contained animation variables. |
CAnimationBaseObject::SetParentAnimationObjects | Establishes relationship between animation variables, contained in an animation object, and their container. |
Protected Data Members
Name | Description |
---|---|
CAnimationBaseObject::m_bAutodestroyTransitions | Specifies whether related transitions should be automatically destroyed. |
CAnimationBaseObject::m_dwUserData | Stores user-defined data. |
CAnimationBaseObject::m_nGroupID | Specifies the Group ID of the animation object. |
CAnimationBaseObject::m_nObjectID | Specifies the Object ID of the animation object. |
CAnimationBaseObject::m_pParentController | A pointer to the parent animation controller. |
Remarks
This class implements basic methods for all animation objects. An animation object can represent a value, point, size, rectangle, or color in an application, as well as any custom entity. Animation objects are stored in animation groups (see CAnimationGroup). Each group can be animated separately and can be treated as an analog of storyboard. An animation object encapsulates one or more animation variables (see CAnimationVariable), depending on its logical representation. For example, CAnimationRect contains four animation variables - one variable for each side of rectangle. Each animation object class exposes overloaded AddTransition method, which should be used to apply transitions to encapsulated animation variables. An animation object can be identified by Object ID (optionally) and by Group ID. A Group ID is necessary in order to place an animation object to correct group, but if a Group ID is not specified, an object is placed in the default group with ID 0. If you call SetID with different GroupID, an animation object will be moved to another group (a new group is created if necessary).
Inheritance Hierarchy
CAnimationBaseObject
Requirements
Header: afxanimationcontroller.h
CAnimationBaseObject::~CAnimationBaseObject
The destructor. Called when an animation object is being destroyed.
virtual ~CAnimationBaseObject();
CAnimationBaseObject::ApplyTransitions
Adds transitions to storyboard with encapsulated animation variable.
virtual BOOL ApplyTransitions(
IUIAnimationStoryboard* pStoryboard,
BOOL bDependOnKeyframes);
Parameters
pStoryboard
A pointer to a storyboard.
bDependOnKeyframes
When FALSE, this method adds only those transitions that do not depend on keyframes.
Return Value
TRUE if transitions were added successfully.
Remarks
Adds related transitions, that have been added with AddTransition (overloaded methods in derived classes), to storyboard.
CAnimationBaseObject::CAnimationBaseObject
Constructs an animation object.
CAnimationBaseObject();
CAnimationBaseObject(
UINT32 nGroupID,
UINT32 nObjectID = (UINT32)-1,
DWORD dwUserData = 0);
Parameters
nGroupID
Specifies Group ID.
nObjectID
Specifies Object ID.
dwUserData
User-defined data, which can be associated with animation object and retrieved later at runtime.
Remarks
Constructs an animation objects and assigns default Object ID (0) and Group ID (0).
CAnimationBaseObject::ClearTransitions
Removes all related transitions.
virtual void ClearTransitions(BOOL bAutodestroy);
Parameters
bAutodestroy
Specifies whether to destroy transition objects automatically, or just remove them from the related list.
Remarks
Removes all related transitions and destroys them if bAutodestroy or m_bAutodestroyTransitions flag is TRUE. Transitions should be destroyed automatically only if they are not allocated on the stack. If the above flags are FALSE, transitions are just removed from the internal list of related transitions.
CAnimationBaseObject::ContainsVariable
Determines whether an animation object contains a particular animation variable.
virtual BOOL ContainsVariable(IUIAnimationVariable* pVariable);
Parameters
pVariable
A pointer to animation variable.
Return Value
TRUE if the animation variable is contained in the animation object; otherwise FALSE.
Remarks
This method can be used to determine whether an animation variable specified by pVariable is contained within an animation object. An animation object, depending on its type, may contain several animation variables. For example, CAnimationColor contains three variables, one for each color component (red, green, and blue). When a value of animation variable has changed, Windows Animation API sends ValueChanged or IntegerValueChanged events (if enabled), and the parameter of this event is a pointer to interface IUIAnimationVariable of animation variable. This method helps to obtain a pointer to animation from a pointer to contained COM object.
CAnimationBaseObject::CreateTransitions
Creates transitions associated with an animation object.
BOOL CreateTransitions();
Return Value
TRUE if transitions were created successfully; otherwise FALSE.
Remarks
Loops over list of animation variables encapsulated in a derived animation object and creates transitions associated with each animation variable.
CAnimationBaseObject::DetachFromController
Detaches an animation object from parent animation controller.
void DetachFromController();
Remarks
This method is used internally.
CAnimationBaseObject::EnableIntegerValueChangedEvent
Sets up Integer Value Changed event handler.
virtual void EnableIntegerValueChangedEvent(
CAnimationController* pController,
BOOL bEnable);
Parameters
pController
A pointer to a parent controller.
bEnable
Specifies whether to enable, or disable Integer Value Changed event.
Remarks
If the Integer Value Changed event handler is enabled, you can handle this event in CAnimationController::OnAnimationIntegerValueChanged method, which should be overridden in a CAnimationController-derived class. This method is called every time the animation integer value has changed.
CAnimationBaseObject::EnableValueChangedEvent
Sets up Value Changed event handler.
virtual void EnableValueChangedEvent(
CAnimationController* pController,
BOOL bEnable);
Parameters
pController
A pointer to a parent controller.
bEnable
Specifies whether to enable, or disable Value Changed event.
Remarks
If the Value Changed event handler is enabled, you can handle this event in CAnimationController::OnAnimationValueChanged method, which should be overridden in a CAnimationController-derived class. This method is called every time the animation value has changed.
CAnimationBaseObject::GetAnimationVariableList
Collects pointers to contained animation variables.
virtual void GetAnimationVariableList(
CList<CAnimationVariable*,
CAnimationVariable*>& list) = 0;
Parameters
list
A list that must be filled with animation variables contained in an animation object.
Remarks
This pure virtual method must be overridden in a derived class. An animation object, depending on its type, contains one or more animation variables. For example, CAnimationPoint contains two variables, for X and Y coordinates respectively. The base class CAnimationBaseObject implements some generic methods, which act on a list of animation variables: ApplyTransitions, ClearTransitions, EnableValueChangedEvent, EnableIntegerValueChangedEvent. These methods call GetAnimationVariableList, which is filled in a derived class with actual animation variables contained in a particular animation object, then loop over the list and perform necessary actions. If you create a custom animation object, you must add to list all animation variables contained in that object.
CAnimationBaseObject::GetAutodestroyTransitions
Tells whether related transition are destroyed automatically.
BOOL GetAutodestroyTransitions() const;
Return Value
If TRUE, related transitions are destroyed automatically; if FALSE, transition objects should be deallocated by calling application.
Remarks
By default this flag is TRUE. Set this flag only if you allocated transition on the stack and/or transitions should be deallocated by the calling application.
CAnimationBaseObject::GetGroupID
Returns current Group ID.
UINT32 GetGroupID() const;
Return Value
Current Group ID.
Remarks
Use this method to retrieve Group ID. It's 0 if Group ID has not been set explicitly in constructor or with SetID.
CAnimationBaseObject::GetObjectID
Returns current Object ID.
UINT32 GetObjectID() const;
Return Value
Current Object ID.
Remarks
Use this method to retrieve Object ID. It's 0 if Object ID has not been set explicitly in constructor or with SetID.
CAnimationBaseObject::GetUserData
Returns user-defined data.
DWORD GetUserData() const;
Return Value
A value of custom data.
Remarks
Call this method to retrieve the custom data at runtime. The returned value will be 0 if it was not explicitly initialized in constructor or with SetUserData.
CAnimationBaseObject::m_bAutodestroyTransitions
Specifies whether related transitions should be automatically destroyed.
BOOL m_bAutodestroyTransitions;
CAnimationBaseObject::m_dwUserData
Stores user-defined data.
DWORD m_dwUserData;
CAnimationBaseObject::m_nGroupID
Specifies the Group ID of the animation object.
UINT32 m_nGroupID;
CAnimationBaseObject::m_nObjectID
Specifies the Object ID of the animation object.
UINT32 m_nObjectID;
CAnimationBaseObject::m_pParentController
A pointer to the parent animation controller.
CAnimationController* m_pParentController;
CAnimationBaseObject::SetAutodestroyTransitions
Sets a flag to automatically destroy transitions.
void SetAutodestroyTransitions(BOOL bValue);
Parameters
bValue
Specifies the auto destroy flag.
Remarks
Set this flag only if you allocated transition objects using operator new. If for some reason transition objects are allocated on the stack, the auto destroy flag should be FALSE. By default this flag is TRUE.
CAnimationBaseObject::SetID
Sets new IDs.
void SetID(
UINT32 nObjectID,
UINT32 nGroupID = 0);
Parameters
nObjectID
Specifies new Object ID.
nGroupID
Specifies new Group ID.
Remarks
Allows you to change Object ID and Group ID. If the new Group ID differs from the current ID, an animation object is moved to another group (a new group will be created, if necessary).
CAnimationBaseObject::SetParentAnimationObjects
Establishes relationship between animation variables, contained in an animation object, and their container.
virtual void SetParentAnimationObjects();
Remarks
This helper can be used to establish a relationship between animation variables contained in an animation object, and their container. It loops over animation variables and sets a back pointer to a parent animation object to each animation variable. In the current implementation, the actual relationship is established in CAnimationBaseObject::ApplyTransitions, therefore back pointers are not set until you call CAnimationGroup::Animate. Knowing the relationship may be helpful when you processing events and need to get a parent animation object from CAnimationVariable. Use CAnimationVariable::GetParentAnimationObject.
CAnimationBaseObject::SetUserData
Sets user-defined data.
void SetUserData (DWORD dwUserData);
Parameters
dwUserData
Specifies the custom data.
Remarks
Use this method to associate a custom data with an animation object. This data may be retrieved later at runtime by GetUserData.