X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fvector.h;h=46baff80b1feec4489bc08eb41e7707c24cf1753;hb=9459638ad6797b8139f1e9f0715c96076dbf0890;hp=c46a77379047a74786b04a54b66ecb8edb018553;hpb=cc54c38609ee9745ad678e5e9b9d7d2912be9c95;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/vector.h b/synfig-core/trunk/src/synfig/vector.h index c46a773..46baff8 100644 --- a/synfig-core/trunk/src/synfig/vector.h +++ b/synfig-core/trunk/src/synfig/vector.h @@ -6,6 +6,7 @@ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007 Chris Moore ** ** This package is free software; you can redistribute it and/or ** modify it under the terms of the GNU General Public License as @@ -27,6 +28,7 @@ /* === H E A D E R S ======================================================= */ +#include "angle.h" #include "real.h" #include @@ -71,18 +73,18 @@ private: value_type _x, _y; public: - Vector() { }; + Vector(): _x(0.0), _y(0.0) { }; Vector(const value_type &x, const value_type &y):_x(x),_y(y) { }; bool is_valid()const { return !(isnan(_x) || isnan(_y)); } value_type & operator[](const int& i) - { return (&_x)[i] ; } + { return i?_y:_x; } const value_type & operator[](const int& i) const - { return (&_x)[i] ; } + { return i?_y:_x; } const Vector & operator+=(const Vector &rhs) @@ -169,6 +171,9 @@ public: Vector perp()const { return Vector(_y,-_x); } + Angle angle()const + { return Angle::rad(atan2(_y, _x)); } + bool is_equal_to(const Vector& rhs)const { static const value_type epsilon(0.0000000000001); @@ -271,7 +276,7 @@ public: { return (&a)[i]; } //! Bezier curve intersection function - time_type intersect(const bezier_base &x, time_type near=0.0)const + time_type intersect(const bezier_base &/*x*/, time_type /*near*/=0.0)const { return 0; }