source: molecuilder/src/Plane.hpp@ 4eee8f

Last change on this file since 4eee8f was f70c2a, checked in by Tillmann Crueger <crueger@…>, 15 years ago

Added const correctness to plane class and simplified interface

  • Property mode set to 100644
File size: 1.5 KB
Line 
1/*
2 * Plane.hpp
3 *
4 * Created on: Apr 7, 2010
5 * Author: crueger
6 */
7
8#ifndef PLANE_HPP_
9#define PLANE_HPP_
10
11#include <memory>
12#include <vector>
13#include "Space.hpp"
14#include "Exceptions/LinearDependenceException.hpp"
15#include "Exceptions/ZeroVectorException.hpp"
16
17class Vector;
18
19class Plane : public Space
20{
21 typedef std::auto_ptr<Vector> vec_ptr;
22public:
23 Plane(const Vector &y1, const Vector &y2, const Vector &y3) throw(LinearDependenceException);
24 Plane(const Vector &y1, const Vector &y2, double _offset) throw(LinearDependenceException);
25 Plane(const Vector &_normalVector, double _offset=0) throw(ZeroVectorException);
26 Plane(const Vector &_normalVector, const Vector &_offsetVector) throw(ZeroVectorException);
27 virtual ~Plane();
28
29 // Accessor Functions
30 /**
31 * returns normal Vector for a plane
32 */
33 Vector getNormal();
34 /**
35 * returns the distance of the plane from the origin
36 */
37 double getOffset();
38 /**
39 * returns a vector that points on the plane.
40 * Same as getOffset()*getNormal();
41 */
42 Vector getOffsetVector();
43
44 /**
45 * returns three seperate points on this plane
46 */
47 std::vector<Vector> getPointsOnPlane();
48
49 // some calculations
50 Vector GetIntersection(const Vector &Origin, const Vector &LineVector);
51
52 /****** Methods inherited from Space ***********/
53
54 virtual double distance(const Vector &point) const;
55 virtual Vector getClosestPoint(const Vector &point) const;
56
57private:
58 vec_ptr normalVector;
59 double offset;
60};
61
62#endif /* PLANE_HPP_ */
Note: See TracBrowser for help on using the repository browser.