5 #include <PyScenePartWrapper.h>
6 #include <PyAABBWrapper.h>
7 #include <PythonDVec3.h>
8 #include <PyDoubleVector.h>
9 #include <PyVertexWrapper.h>
39 double getIncidenceAngle(
40 double ox,
double oy,
double oz,
41 double dx,
double dy,
double dz,
42 double px,
double py,
double pz
44 glm::dvec3 origin(ox, oy, oz);
45 glm::dvec3 direction(dx, dy, dz);
46 glm::dvec3 intersectionPoint(px, py, pz);
54 double ox,
double oy,
double oz,
55 double dx,
double dy,
double dz
57 glm::dvec3 origin(ox, oy, oz);
58 glm::dvec3 direction(dx, dy, dz);
61 double getRayIntersectionDistance(
62 double ox,
double oy,
double oz,
63 double dx,
double dy,
double dz
65 glm::dvec3 origin(ox, oy, oz);
66 glm::dvec3 direction(dx, dy, dz);
72 void update(){prim->
update();}
Class representing a material specification.
Definition: Material.h:12
Abstract class defining the common behavior for all primitives.
Definition: Primitive.h:24
virtual void update()=0
Necessary primitive updates after modification.
virtual glm::dvec3 getCentroid()=0
Obtain the primitive centroid.
virtual double getIncidenceAngle_rad(const glm::dvec3 &rayOrigin, const glm::dvec3 &rayDir, const glm::dvec3 &intersectionPoint)=0
Obtain the incidence angle in radians.
std::shared_ptr< ScenePart > part
Shared pointer to the scene part the primitive belongs to.
Definition: Primitive.h:57
virtual std::vector< double > getRayIntersection(const glm::dvec3 &rayOrigin, const glm::dvec3 &rayDir)=0
Obtain the intersection point between primitive and given ray.
virtual AABB * getAABB()=0
Obtain the axis aligned bounding box containing the primitive.
std::shared_ptr< Material > material
Shared pointer to the material defining certain properties such as reflectance, specularity,...
Definition: Primitive.h:63
virtual Vertex * getVertices()=0
Obtain basic vertices for the primitive.
virtual double getRayIntersectionDistance(const glm::dvec3 &rayOrigin, const glm::dvec3 &rayDir)=0
Obtain the intersection distance between primitive and given ray.
virtual size_t getNumVertices()
Obtain the number of vertices returned by the getVertices function.
Definition: Primitive.h:131
Wrapper for AABB class.
Definition: PyAABBWrapper.h:16
Wrapper for std::vector<double> class.
Definition: PyDoubleVector.h:17
Wrapper for Primitive class.
Definition: PyPrimitiveWrapper.h:20
Wrapper for ScenePart class.
Definition: PyScenePartWrapper.h:18
Wrapper for Vertex class.
Definition: PyVertexWrapper.h:17
Wrapper to communicate glm::dvec3 with python.
Definition: PythonDVec3.h:16