2 offset.hh -- part of GNU LilyPond
4 (c) 1996,97 Han-Wen Nienhuys
12 #include "arithmetic-operator.hh"
16 Offset complex_multiply (Offset, Offset);
17 Offset complex_exp (Offset);
21 should change to Complex
25 Real coordinate_a_[NO_AXES];
27 Real &operator[](Axis i) {
28 return coordinate_a_[i];
30 Real operator[](Axis i) const{
31 return coordinate_a_[i];
34 Offset& operator+=(Offset o) {
35 (*this)[X_AXIS] += o[X_AXIS];
36 (*this)[Y_AXIS] += o[Y_AXIS];
39 Offset operator - () const {
42 o[X_AXIS] = - o[X_AXIS];
43 o[Y_AXIS] = - o[Y_AXIS];
46 Offset& operator-=(Offset o) {
47 (*this)[X_AXIS] -= o[X_AXIS];
48 (*this)[Y_AXIS] -= o[Y_AXIS];
53 Offset &scale (Offset o) {
54 (*this)[X_AXIS] *= o[X_AXIS];
55 (*this)[Y_AXIS] *= o[Y_AXIS];
59 Offset &operator *=(Real a) {
66 Offset (Real ix , Real iy) {
67 coordinate_a_[X_AXIS] =ix;
68 coordinate_a_[Y_AXIS] =iy;
71 coordinate_a_[X_AXIS]=
72 coordinate_a_[Y_AXIS]=
81 Offset operator *=(Offset z2) {
82 *this = complex_multiply (*this,z2);
88 IMPLEMENT_ARITHMETIC_OPERATOR(Offset, +);
89 IMPLEMENT_ARITHMETIC_OPERATOR(Offset, -);
90 IMPLEMENT_ARITHMETIC_OPERATOR(Offset, *);
93 operator* (Real o1, Offset o2)
100 operator* (Offset o1, Real o2)