Imported Upstream version 1.22.4
[platform/upstream/groff.git] / src / preproc / pic / position.h
1 // -*- C++ -*-
2 /* Copyright (C) 1989-2018 Free Software Foundation, Inc.
3      Written by James Clark (jjc@jclark.com)
4
5 This file is part of groff.
6
7 groff is free software; you can redistribute it and/or modify it under
8 the terms of the GNU General Public License as published by the Free
9 Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 groff is distributed in the hope that it will be useful, but WITHOUT ANY
13 WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15 for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program.  If not, see <http://www.gnu.org/licenses/>. */
19
20 struct place;
21 struct position {
22   double x;
23   double y;
24   position(double, double );
25   position();
26   position(const place &);
27   position &operator+=(const position &);
28   position &operator-=(const position &);
29   position &operator*=(double);
30   position &operator/=(double);
31 };
32
33 position operator-(const position &);
34 position operator+(const position &, const position &);
35 position operator-(const position &, const position &);
36 position operator/(const position &, double);
37 position operator*(const position &, double);
38 // dot product
39 double operator*(const position &, const position &);
40 int operator==(const position &, const position &);
41 int operator!=(const position &, const position &);
42
43 double hypot(const position &a);
44
45 typedef position distance;
46