2 offset.cc -- implement Offset
4 source file of the GNU LilyPond music typesetter
6 (c) 1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
21 s
= String("(") + to_str (coordinate_a_
[X_AXIS
]) + ", "
22 + to_str (coordinate_a_
[Y_AXIS
]) + ")";
31 return (fabs (r
) > 1e20
);
35 free bsd fix by John Galbraith
39 complex_multiply (Offset z1
, Offset z2
)
42 if(!isinf_b(z2
[Y_AXIS
]))
44 z
[X_AXIS
] = z1
[X_AXIS
] * z2
[X_AXIS
] - z1
[Y_AXIS
]*z2
[Y_AXIS
];
45 z
[Y_AXIS
] = z1
[X_AXIS
] * z2
[Y_AXIS
] + z1
[Y_AXIS
] * z2
[X_AXIS
];
53 complex_exp (Offset o
)
55 Real s
= sin (o
[Y_AXIS
]);
56 Real c
= cos (o
[Y_AXIS
]);
58 Real r
= exp (o
[X_AXIS
]);
60 return Offset(r
*c
, r
*s
);
66 return atan2 (y (), x());
70 euclidian vector length / complex modulus
73 Offset::length () const
75 return sqrt (sqr (x()) + sqr (y()));
78 Offset::mirror (Axis a
)
80 coordinate_a_
[a
] = - coordinate_a_
[a
];