source: molecuilder/src/Plane.hpp@ cb2b9a

Last change on this file since cb2b9a was aab470, checked in by Tillmann Crueger <crueger@…>, 16 years ago

Added exception specifiers to plane class

  • 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(Vector &point);
55 virtual Vector getClosestPoint(Vector &point);
56 virtual bool isContained(Vector &point);
57
58
59private:
60 vec_ptr normalVector;
61 double offset;
62};
63
64#endif /* PLANE_HPP_ */
Note: See TracBrowser for help on using the repository browser.