/usr/include/synfig-1.0/synfig/distance.h is in libsynfig-dev 1.0.2-1+b6.
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 | /* === S Y N F I G ========================================================= */
/*! \file distance.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_DISTANCE_H
#define __SYNFIG_DISTANCE_H
/* === H E A D E R S ======================================================= */
#include "real.h"
#include "string.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 RendDesc;
class Distance
{
public:
typedef Real value_type;
enum System
{
SYSTEM_UNITS, //!<
SYSTEM_PIXELS, //!<
SYSTEM_POINTS, //!<
SYSTEM_INCHES, //!<
SYSTEM_METERS, //!<
SYSTEM_MILLIMETERS, //!<
SYSTEM_CENTIMETERS, //!<
SYSTEM_END //!< \internal
};
class BadSystem { };
private:
value_type value_;
System system_;
public:
Distance(): value_(), system_() { }
Distance(const value_type& value, System system):value_(value),system_(system) { }
explicit Distance(const synfig::String& string);
operator Real()const { return value_; }
Distance& operator=(const Real& rhs) { value_=rhs; return *this; }
Distance& operator=(const synfig::String& rhs);
synfig::String get_string(int digits=4)const;
const System& get_system()const { return system_; }
const Real& get()const { return value_; }
Real get(System system, const RendDesc& rend_desc)const;
void convert(System system, const RendDesc& rend_desc);
Real meters()const;
Real meters(const RendDesc& rend_desc)const;
Real units(const RendDesc& rend_desc)const;
static Real meters_to_system(Real x, System target_system);
static System ident_system(const synfig::String& str);
static synfig::String system_name(System system);
static synfig::String system_local_name(System system);
const Distance& operator+=(const Distance &rhs) { value_+=meters_to_system(rhs.meters(),system_); return *this; }
const Distance& operator-=(const Distance &rhs) { value_-=meters_to_system(rhs.meters(),system_); return *this; }
const Distance& operator+=(const float &rhs) { value_+=rhs; return *this; }
const Distance& operator-=(const float &rhs) { value_-=rhs; return *this; }
const Distance& operator*=(const float &rhs) { value_*=rhs; return *this; }
const Distance& operator/=(const float &rhs) { value_/=rhs; return *this; }
/*
template<typename U> const Time& operator+=(const U &rhs) { value_+=rhs; return *this; }
template<typename U> const Time& operator-=(const U &rhs) { value_-=rhs; return *this; }
template<typename U> const Time& operator*=(const U &rhs) { value_*=rhs; return *this; }
template<typename U> const Time& operator/=(const U &rhs) { value_/=rhs; return *this; }
template<typename U> Time operator+(const U &rhs)const { return value_+rhs; }
template<typename U> Time operator-(const U &rhs)const { return value_-rhs; }
template<typename U> Time operator*(const U &rhs)const { return value_*rhs; }
template<typename U> Time operator/(const U &rhs)const { return value_/rhs; }
Time operator-()const { return -value_; }
*/
}; // END of class Distance
}; // END of namespace synfig
/* === E N D =============================================================== */
#endif
|