geolib2
Ray.h
Go to the documentation of this file.
1 #ifndef GEOLIB_RAY_H_
2 #define GEOLIB_RAY_H_
3 
4 #include "datatypes.h"
5 
6 #include <array>
7 
8 namespace geo {
9 
10 class Ray {
11 
12 public:
13 
14  Ray(const Vector3 &o, const Vector3 &d) ;
15 
16  const Vector3& getOrigin() const { return origin_; }
17 
18  const Vector3& getDirection() const { return direction_; }
19 
20  const Vector3& getInvDirection() const { return inv_direction_; }
21 
22  double getLength() const { return length_; }
23 
24  const std::array<int, 3>& getSign() const { return sign_; }
25 
26  void setLength(const double length) { length_ = length; }
27 
28 protected:
29 
31 
33 
35 
36  double length_; // When the length is zero, the ray is infinite
37 
39 
40  void calculateInvDirection();
41 
42 };
43 
44 }
45 
46 #endif
geo::Ray::getSign
const std::array< int, 3 > & getSign() const
Definition: Ray.h:24
geo::Ray::setLength
void setLength(const double length)
Definition: Ray.h:26
geo::Ray::direction_
Vector3 direction_
Definition: Ray.h:32
geo::Ray::origin_
Vector3 origin_
Definition: Ray.h:30
geo::Ray::getOrigin
const Vector3 & getOrigin() const
Definition: Ray.h:16
geo
Definition: Box.h:6
datatypes.h
geo::Ray::calculateInvDirection
void calculateInvDirection()
Definition: Ray.cpp:14
geo::Ray::sign_
std::array< int, 3 > sign_
Definition: Ray.h:38
array
geo::Ray
Definition: Ray.h:10
geo::Ray::inv_direction_
Vector3 inv_direction_
Definition: Ray.h:34
geo::Vector3
Definition: matrix.h:12
geo::Ray::getDirection
const Vector3 & getDirection() const
Definition: Ray.h:18
geo::Ray::getInvDirection
const Vector3 & getInvDirection() const
Definition: Ray.h:20
geo::Ray::length_
double length_
Definition: Ray.h:36
geo::Ray::Ray
Ray(const Vector3 &o, const Vector3 &d)
Definition: Ray.cpp:5
geo::Ray::getLength
double getLength() const
Definition: Ray.h:22