/* Copyright 2003-2007 ROBLOX Corporation, All Rights Reserved */ #pragma once #include "V8Tree/Instance.h" #include "V8DataModel/Pose.h" namespace RBX { extern const char *const sKeyframe; class Keyframe : public DescribedCreatable { private: typedef DescribedCreatable Super; protected: float time; public: Keyframe(); float getTime() const { return time; } void setTime(float value); shared_ptr getPoses(); void addPose(shared_ptr); void removePose(shared_ptr); void invalidate(); protected: /*override*/ bool askAddChild(const Instance* instance) const { return Instance::fastDynamicCast(instance) != NULL; } /*override*/ void onChildAdded(Instance* child) { invalidate(); } /*override*/ void onChildRemoved(Instance* child) { invalidate(); } /*override*/ void verifySetAncestor(const Instance* const newParent, const Instance* const instanceGettingNewParent) const; }; } // namespace