Files
PhotonMF/plane.hpp

38 lines
676 B
C++
Raw Normal View History

2016-12-26 17:43:57 -04:00
#pragma once
#ifndef PLANE_HPP
#define PLANE_HPP
#include <glm/glm.hpp>
#include "figure.hpp"
using glm::vec3;
using glm::normalize;
class Plane : public Figure {
public:
vec3 m_point;
vec3 m_normal;
2016-12-27 19:22:34 -04:00
Plane(): m_point(vec3(0.0f)), m_normal(0.0f, 0.0f, 1.0f) {
rho = 0.0f;
}
2016-12-26 17:43:57 -04:00
2016-12-27 19:22:34 -04:00
Plane(float x, float y, float z, float nx, float ny, float nz): m_point(vec3(x, y, z)), m_normal(normalize(vec3(nx, ny, nz))) {
rho = 0.0f;
}
2016-12-26 17:43:57 -04:00
2016-12-27 19:22:34 -04:00
Plane(vec3 _p, vec3 _n): m_point(_p), m_normal(normalize(_n)) {
rho = 0.0f;
}
2016-12-26 17:43:57 -04:00
virtual ~Plane() { }
2016-12-26 19:14:21 -04:00
virtual bool intersect(Ray & r, float & t) const;
virtual vec3 normal_at_int(Ray & r, float & t) const;
2016-12-26 17:43:57 -04:00
};
#endif