/usr/include/synfig-1.0/synfig/keyframe.h is in libsynfig-dev 1.0.2-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 | /* === S Y N F I G ========================================================= */
/*! \file keyframe.h
** \brief Template Header
**
** $Id$
**
** \legal
** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
** Copyright (c) 2012-2013 Konstantin Dmitriev
**
** 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 <ETL/handle>
#include <vector>
#include "string.h"
#include "time.h"
#include "uniqueid.h"
#include "guid.h"
#include "waypoint.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 {
/*! \class Keyframe
** \brief Keyframe is used to record the state of the animation at that point (time_)
*
* A Keyframe can be described, actived or disabled and have an associated Waypoint::Model.
* Common comparison operators can be used for Keyframes operation ==, <, != .
* \see Keyframe::set_description(String x), Keyframe::get_description(), Keyframe::enable(), Keyframe::disable ()
*/
class Keyframe : public UniqueID
{
private:
Time time_;
String desc_;
GUID guid_;
/*! \c true if the keyframe is active, \c false if it is to be skipped (marker)
** \see set_active(), enable(), disable, active()
*/
bool active_;
Waypoint::Model waypoint_model_;
/*! \c true a waypoint model has been affected, \c false when created
** \see apply_model(const Waypoint::Model &x)
*/
bool has_waypoint_model_;
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; }
//! Enables the keframe (Making it \em active)
void enable() { set_active(true); }
//! Disables the keyframe (Making it \em inactive)
/*! When keyframe is disabled, it will be acting as time marker. */
void disable() { set_active(false); }
//! Sets the 'active' flag for the LaKeyframe to the state described by \a x
/*! When keyframe is disabled, it will be acting as time marker. */
void set_active(bool x);
//! Returns the status of the 'active' flag
bool active()const { return active_; }
using UniqueID::operator<;
using UniqueID::operator==;
using UniqueID::operator!=;
using UniqueID::operator=;
bool operator<(const Keyframe &rhs)const { return time_<rhs.time_; }
bool operator<(const Time &rhs)const { return time_<rhs; }
// bool operator==(const Keyframe &rhs)const { return id_==rhs.id_; }
bool operator==(const Time &rhs)const { return time_==rhs; }
// bool operator!=(const Keyframe &rhs)const { return id_!=rhs.id_; }
bool operator!=(const Time &rhs)const { return time_!=rhs; }
const Waypoint::Model &get_waypoint_model()const { return waypoint_model_; }
//! Keep a trace of the associated waypoint Model.
void apply_model(const Waypoint::Model &x);
//! Returns the status of the 'waypoint model' flag
bool has_model() const {return has_waypoint_model_; }
}; // END of class Keyframe
class KeyframeList : public std::vector<Keyframe>
{
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, bool ignore_disabled = true);
//! Finds the keyframe before that point in time
iterator find_prev(const Time &x, bool ignore_disabled = true);
const_iterator find(const Time &x)const;
const_iterator find_next(const Time &x, bool ignore_disabled = true)const;
const_iterator find_prev(const Time &x, bool ignore_disabled = true)const;
void find_prev_next(const Time& time, Time &prev, Time &next, bool ignore_disabled = true)const;
void insert_time(const Time& location, const Time& delta);
void dump()const;
void sync();
};
//typedef std::list<Keyframe> KeyframeList;
}; // END of namespace synfig
/* === E N D =============================================================== */
#endif
|