Ray Tracer Common Project
Image rendering program based on the ray tracing technique.
plan.hpp
1 
15 #pragma once
16 
17 #include "geometry.hpp"
18 
19 namespace rt{
20 
24 class Plan : public Geometry{
25 public:
31  Plan(const vector & pos, const vector & normal);
32 
36  virtual void update();
37 
42  const vector & normal() const;
47  const vector & tangent() const;
48 
53  virtual vector uv(const element &) const;
54 
60  virtual std::vector<rt::hit> hits(const euclidian & e) const;
61 
62 private:
63  vector _normal;
64  vector _tan;
65  matrix _base;
66 
67  vector _global_normal;
68  vector _global_tan;
69 };
70 
71 }
virtual vector uv(const element &) const
UV-map a surface element on the plan.
Definition: plan.cpp:72
Definition: bitmap.cpp:4
virtual void update()
Update plan coordinates.
Definition: plan.cpp:26
3D vector
Definition: vector.hpp:28
Geometric entity.
Definition: geometry.hpp:39
Geometric surface element unit.
Definition: element.hpp:43
4x4 matrix
Definition: matrix.hpp:33
virtual std::vector< rt::hit > hits(const euclidian &e) const
Compute hits between the plan and an euclidian.
Definition: plan.cpp:32
Localised vector class.
Definition: euclidian.hpp:27
const vector & normal() const
The normal of the plan.
Definition: plan.cpp:64
const vector & tangent() const
A tangent of the plan.
Definition: plan.cpp:68
Plan(const vector &pos, const vector &normal)
Make a new plan.
Definition: plan.cpp:9
Geometric plan.
Definition: plan.hpp:24