/contrib/groff/src/preproc/pic/position.h

https://bitbucket.org/freebsd/freebsd-head/ · C++ Header · 47 lines · 22 code · 5 blank · 20 comment · 0 complexity · e971a52fa8c6bf847a546b18f96ae17e MD5 · raw file

  1. // -*- C++ -*-
  2. /* Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc.
  3. Written by James Clark (jjc@jclark.com)
  4. This file is part of groff.
  5. groff is free software; you can redistribute it and/or modify it under
  6. the terms of the GNU General Public License as published by the Free
  7. Software Foundation; either version 2, or (at your option) any later
  8. version.
  9. groff is distributed in the hope that it will be useful, but WITHOUT ANY
  10. WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11. FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
  12. for more details.
  13. You should have received a copy of the GNU General Public License along
  14. with groff; see the file COPYING. If not, write to the Free Software
  15. Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */
  16. struct place;
  17. struct position {
  18. double x;
  19. double y;
  20. position(double, double );
  21. position();
  22. position(const place &);
  23. position &operator+=(const position &);
  24. position &operator-=(const position &);
  25. position &operator*=(double);
  26. position &operator/=(double);
  27. };
  28. position operator-(const position &);
  29. position operator+(const position &, const position &);
  30. position operator-(const position &, const position &);
  31. position operator/(const position &, double);
  32. position operator*(const position &, double);
  33. // dot product
  34. double operator*(const position &, const position &);
  35. int operator==(const position &, const position &);
  36. int operator!=(const position &, const position &);
  37. double hypot(const position &a);
  38. typedef position distance;