Remove .gitignore do nothing is ignored.
[synfig.git] / synfig-core / trunk / src / synfig / distance.cpp
index c1a7e65..efac8e9 100644 (file)
@@ -1,20 +1,22 @@
-/* === S I N F G =========================================================== */
+/* === S Y N F I G ========================================================= */
 /*!    \file distance.cpp
 **     \brief Template File
 **
-**     $Id: distance.cpp,v 1.1.1.1 2005/01/04 01:23:14 darco Exp $
+**     $Id$
 **
 **     \legal
-**     Copyright (c) 2002 Robert B. Quattlebaum Jr.
+**     Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
+**     Copyright (c) 2008 Chris Moore
 **
-**     This software and associated documentation
-**     are CONFIDENTIAL and PROPRIETARY property of
-**     the above-mentioned copyright holder.
+**     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.
 **
-**     You may not copy, print, publish, or in any
-**     other way distribute this software without
-**     a prior written agreement with
-**     the copyright holder.
+**     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
 */
 /* ========================================================================= */
 
 using namespace std;
 using namespace etl;
-using namespace sinfg;
+using namespace synfig;
 
 /* === M A C R O S ========================================================= */
 
-#define POINTS_PER_INCH        (72.0)
+#define POINTS_PER_INCH                  (72.0)
+#define INCHES_PER_METER         (39.3700787402)
+#define POINTS_PER_METER         (POINTS_PER_INCH*INCHES_PER_METER)
+#define CENTIMETERS_PER_METER (100.0)
+#define MILLIMETERS_PER_METER (1000.0)
 
-/* === G L O B A L S ======================================================= */
+#define METERS_PER_UNIT                  (rend_desc.get_physical_w()/abs(rend_desc.get_tl()[0]-rend_desc.get_br()[0]))
 
-#define METERS_PER_UNIT  (rend_desc.get_physical_w()/abs(rend_desc.get_tl()[0]-rend_desc.get_br()[0]))
+/* === G L O B A L S ======================================================= */
 
 /* === P R O C E D U R E S ================================================= */
 
 /* === M E T H O D S ======================================================= */
 
-Distance::Distance(const sinfg::String& str)
+Distance::Distance(const synfig::String& str)
 {
        (*this)=str;
 /*     int i(0);
        float val;
        int ret(strscanf(str,"%f%n",&val,&i));
-       sinfg::info("Distance::Distance(): ret=%d, val=%f",ret,val);
-       
+       synfig::info("Distance::Distance(): ret=%d, val=%f",ret,val);
+
        if(ret<=0)
        {
                // Error
-               sinfg::error("Distance::Distance(): Bad value \"%s\"",str.c_str());
+               synfig::error("Distance::Distance(): Bad value \"%s\"",str.c_str());
                value_=0;
        }
        else
                value_=val;
-       
-       sinfg::info("Distance::Distance(): system=\"%s\"",String(str.begin()+i,str.end()).c_str());
+
+       synfig::info("Distance::Distance(): system=\"%s\"",String(str.begin()+i,str.end()).c_str());
        system_=ident_system(String(str.begin()+i,str.end()));
 */
 }
 
 Distance&
-Distance::operator=(const sinfg::String& str)
+Distance::operator=(const synfig::String& str)
 {
        int i(0);
        float val;
        int ret(strscanf(str,"%f%n",&val,&i));
-       sinfg::info("Distance::Distance(): ret=%d, val=%f",ret,val);
-       
+       // synfig::info("Distance::Distance(): ret=%d, val=%f",ret,val);
+
        if(ret<=0)
        {
                // Error
-               sinfg::error("Distance::Distance(): Bad value \"%s\"",str.c_str());
+               synfig::error("Distance::Distance(): Bad value \"%s\"",str.c_str());
                return *this;
        }
        else
                value_=val;
 
-       sinfg::String sys(str.begin()+i,str.end());
+       synfig::String sys(str.begin()+i,str.end());
 
        if(sys.size())
                system_=ident_system(sys);
        return *this;
 }
 
-sinfg::String
+synfig::String
 Distance::get_string(int digits)const
 {
        digits=min(9,max(0,digits));
@@ -120,20 +126,20 @@ Distance::get(Distance::System target, const RendDesc& rend_desc)const
                return units(rend_desc);
        if(target==SYSTEM_PIXELS)
                return units(rend_desc)*METERS_PER_UNIT*rend_desc.get_x_res();
-       
-       return meters_to_system(meters(rend_desc),target);      
+
+       return meters_to_system(meters(rend_desc),target);
 }
-       
+
 Real
 Distance::meters()const
 {
        switch(system_)
        {
-               case SYSTEM_INCHES: return value_/39.3700787402;
-               case SYSTEM_POINTS: return value_/POINTS_PER_INCH/39.3700787402;
-               case SYSTEM_METERS: return value_;
-               case SYSTEM_CENTIMETERS: return value_/100.0;
-               case SYSTEM_MILLIMETERS: return value_/1000.0;
+               case SYSTEM_INCHES:              return value_/INCHES_PER_METER;
+               case SYSTEM_POINTS:              return value_/POINTS_PER_METER;
+               case SYSTEM_METERS:              return value_;
+               case SYSTEM_CENTIMETERS: return value_/CENTIMETERS_PER_METER;
+               case SYSTEM_MILLIMETERS: return value_/MILLIMETERS_PER_METER;
                default: throw BadSystem();
        }
 }
@@ -173,27 +179,27 @@ Distance::meters_to_system(Real x,System target_system)
 {
        switch(target_system)
        {
-               case SYSTEM_INCHES: return x*39.3700787402;
-               case SYSTEM_POINTS: return x*39.3700787402*POINTS_PER_INCH;
-               case SYSTEM_METERS: return x;
-               case SYSTEM_CENTIMETERS: return x*100.0;
-               case SYSTEM_MILLIMETERS: return x*1000.0;
+               case SYSTEM_INCHES:              return x*INCHES_PER_METER;
+               case SYSTEM_POINTS:              return x*POINTS_PER_METER;
+               case SYSTEM_METERS:              return x;
+               case SYSTEM_CENTIMETERS: return x*CENTIMETERS_PER_METER;
+               case SYSTEM_MILLIMETERS: return x*MILLIMETERS_PER_METER;
                default: throw BadSystem();
        }
 }
 
 Distance::System // (static)
-Distance::ident_system(const sinfg::String& x)
+Distance::ident_system(const synfig::String& x)
 {
-       sinfg::String str;
+       synfig::String str;
 
        // Make it all upper case, and remove white space
        for(unsigned int i=0;i<x.size();i++)if(x[i]!=' ' && x[i]!='\t')str+=toupper(x[i]);
 
        // If it is plural, make it singular
        if(str[str.size()-1]=='S')
-               str=sinfg::String(str.begin(),str.end()-1);
-       
+               str=synfig::String(str.begin(),str.end()-1);
+
        if(str.empty() || str=="U" || str=="UNIT")
                return SYSTEM_UNITS;
        if(str=="PX" || str=="PIXEL")
@@ -208,13 +214,13 @@ Distance::ident_system(const sinfg::String& x)
                return SYSTEM_CENTIMETERS;
        if(str=="MM" || str=="MILLIMETER")
                return SYSTEM_MILLIMETERS;
-       
-       sinfg::warning("Distance::ident_system(): Unknown distance system \"%s\"",x.c_str());
-       
+
+       synfig::warning("Distance::ident_system(): Unknown distance system \"%s\"",x.c_str());
+
        return SYSTEM_UNITS;
 }
 
-sinfg::String  // (static)
+synfig::String  // (static)
 Distance::system_name(Distance::System system)
 {
        switch(system)
@@ -226,13 +232,13 @@ Distance::system_name(Distance::System system)
                case SYSTEM_METERS:             return "m";
                case SYSTEM_MILLIMETERS:        return "mm";
                case SYSTEM_CENTIMETERS:        return "cm";
-       
+
                default:                                throw BadSystem();
        }
-       return sinfg::String();
+       return synfig::String();
 }
 
-sinfg::String  // (static)
+synfig::String  // (static)
 Distance::system_local_name(Distance::System system)
 {
        switch(system)
@@ -244,8 +250,8 @@ Distance::system_local_name(Distance::System system)
                case SYSTEM_METERS:             return _("Meters");
                case SYSTEM_MILLIMETERS:return _("Millimeters");
                case SYSTEM_CENTIMETERS:return _("Centimeters");
-       
+
                default:                                throw BadSystem();
        }
-       return sinfg::String();
+       return synfig::String();
 }