X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftags%2Fstable%2Fsrc%2Fsynfig%2Fkeyframe.h;fp=synfig-core%2Ftags%2Fstable%2Fsrc%2Fsynfig%2Fkeyframe.h;h=d8f9bf7d6eb4e91d0fd5e3dfcebba89d34180db2;hb=391f6a3be479646721d8cc78b5ee673db17bd540;hp=0000000000000000000000000000000000000000;hpb=ce9ddb9d0e877117ef8648f901f0c7db9eca3d79;p=synfig.git diff --git a/synfig-core/tags/stable/src/synfig/keyframe.h b/synfig-core/tags/stable/src/synfig/keyframe.h new file mode 100644 index 0000000..d8f9bf7 --- /dev/null +++ b/synfig-core/tags/stable/src/synfig/keyframe.h @@ -0,0 +1,128 @@ +/* === S Y N F I G ========================================================= */ +/*! \file keyframe.h +** \brief Template Header +** +** $Id$ +** +** \legal +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. +** +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** \endlegal +*/ +/* ========================================================================= */ + +/* === S T A R T =========================================================== */ + +#ifndef __SYNFIG_KEYFRAME_H +#define __SYNFIG_KEYFRAME_H + +/* === H E A D E R S ======================================================= */ + +#include +#include +#include "string.h" +#include "time.h" +#include "uniqueid.h" +#include "guid.h" + +/* === M A C R O S ========================================================= */ + +/* === T Y P E D E F S ===================================================== */ + +/* === C L A S S E S & S T R U C T S ======================================= */ + +namespace synfig { + +//! \writeme +class Keyframe : public UniqueID +{ +public: + + Time time_; + String desc_; + GUID guid_; + +public: + + Keyframe(); + + Keyframe(const Time &time); + + ~Keyframe(); + + void set_time(Time x) { time_=x; } + + Time get_time()const { return time_; } + + void set_description(String x) { desc_=x; } + + String get_description()const { return desc_; } + + const GUID& get_guid()const { return guid_; } + void set_guid(const GUID& x) { guid_=x; } + + using UniqueID::operator<; + using UniqueID::operator==; + using UniqueID::operator!=; + using UniqueID::operator=; + + bool operator<(const Keyframe &rhs)const { return time_ +{ + +public: + + iterator add(const Keyframe &x); + + void erase(const UniqueID &x); + + iterator find(const UniqueID &x); + + const_iterator find(const UniqueID &x)const; + + //! Finds the keyframe at an exact point in time + iterator find(const Time &x); + + //! Finds the keyframe after that point in time + iterator find_next(const Time &x); + + //! Finds the keyframe before that point in time + iterator find_prev(const Time &x); + + const_iterator find(const Time &x)const; + const_iterator find_next(const Time &x)const; + const_iterator find_prev(const Time &x)const; + + void find_prev_next(const Time& time, Time &prev, Time &next)const; + + void insert_time(const Time& location, const Time& delta); + + void dump()const; + void sync(); +}; + +//typedef std::list KeyframeList; + +}; // END of namespace synfig + +/* === E N D =============================================================== */ + +#endif