Euphoria
plane.cc
Go to the documentation of this file.
1 #include "base/plane.h"
2 
3 namespace eu
4 {
5  Plane::Plane(const unit3f& n, float d)
6  : normal(n)
7  , distance(d)
8  {}
9 
10 
11  Plane
12  Plane::from_normal_and_point(const unit3f& normal, const vec3f& point)
13  {
14  return {normal, -normal.dot(point)};
15  }
16 
17 
18  Plane
19  Plane::from_points(const vec3f& p0, const vec3f& p1, const vec3f& p2)
20  {
21  return from_normal_and_point((p1-p0).cross(p2-p0).get_normalized(), p0);
22  }
23 }
Definition: assert.h:90
Definition: plane.h:8
static Plane from_points(const vec3f &p0, const vec3f &p1, const vec3f &p2)
Definition: plane.cc:19
unit3f normal
Definition: plane.h:9
Plane(const unit3f &n, float d)
Definition: plane.cc:5
static Plane from_normal_and_point(const unit3f &normal, const vec3f &point)
Definition: plane.cc:12
Definition: vec3.h:48
float dot(const vec3f &rhs) const
Definition: vec3.cc:276