home *** CD-ROM | disk | FTP | other *** search
/ Hackers Magazine 57 / CdHackersMagazineNr57.iso / Software / Multimedia / k3d-setup-0.7.11.0.exe / include / k3d / k3dsdk / geometric_operations.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-11-07  |  2.1 KB  |  58 lines

  1. #ifndef K3DSDK_GEOMETRIC_OPERATIONS_H
  2. #define K3DSDK_GEOMETRIC_OPERATIONS_H
  3.  
  4. // K-3D
  5. // Copyright (c) 1995-2006, Timothy M. Shead
  6. //
  7. // Contact: tshead@k-3d.com
  8. //
  9. // This library is free software; you can redistribute it and/or
  10. // modify it under the terms of the GNU General Public
  11. // License as published by the Free Software Foundation; either
  12. // version 2 of the License, or (at your option) any later version.
  13. //
  14. // This library is distributed in the hope that it will be useful,
  15. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  17. // General Public License for more details.
  18. //
  19. // You should have received a copy of the GNU General Public
  20. // License along with this library; if not, write to the Free Software
  21. // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  22.  
  23. /** \file
  24.     \brief 2D geometry routines
  25.     \author Tim Shead (tshead@k-3d.com)
  26. */
  27.  
  28. namespace k3d
  29. {
  30.  
  31. class line2;
  32. class line3;
  33. class plane;
  34. class point2;
  35. class point3;
  36. class vector3;
  37.  
  38. /// Returns the (minimum) distance between a point and a line in two dimensions
  39. const double distance(const point2& Point, const line2& Line);
  40. /// Calculates the intersection of a plane with a line, returns false if the line and plane are parallel
  41. bool intersect(const plane& Plane, const line3& Line, point3& Intersection);
  42.  
  43. /** Find the point at which two infinite lines intersect. The algorithm generates a plane from one of the lines and finds the intersection point between this plane and the other line.
  44.     \param P1 A point that lies on the first line
  45.     \param T1 Direction vector for the first line
  46.     \param P2 A point that lies on the second line
  47.     \param T2 Direction vector for the second line
  48.     \param Result Returns the intersection between the two lines
  49.     \result Returns true iff the lines intersect, false if they are parallel
  50.     \note Code originally from Aqsis, http://www.aqsis.com
  51. */
  52. bool intersect_lines(const point3& P1, const vector3& T1, const point3& P2, const vector3& T2, point3& Result);
  53.  
  54. } // namespace k3d
  55.  
  56. #endif // !K3DSDK_GEOMETRIC_OPERATIONS_H
  57.  
  58.