RayTracer 1.0
Ray tracing is a technique used to generate realistic digital images by simulating the inverse path of light. Our goal is to create a program able to generate an image from a file describing the scene.
 
Loading...
Searching...
No Matches
RayTracer::IPrimitive Class Referenceabstract

#include <IPrimitive.hpp>

Inheritance diagram for RayTracer::IPrimitive:
RayTracer::Cone RayTracer::Cylinder RayTracer::Plane RayTracer::Sphere

Public Member Functions

virtual ~IPrimitive ()=default
 
virtual void translate (const Math::Vector3D &v)=0
 
virtual void rotate (const Math::Vector3D &axis, double angleDegrees)=0
 
virtual std::shared_ptr< IMaterialgetMaterial () const =0
 
virtual bool intersect (const Ray &ray, double &t, Math::Point3D &hitPoint, Math::Vector3D &normal) const =0
 
Color getBaseColor () const
 

Detailed Description

Definition at line 17 of file IPrimitive.hpp.

Constructor & Destructor Documentation

◆ ~IPrimitive()

virtual RayTracer::IPrimitive::~IPrimitive ( )
virtualdefault

Member Function Documentation

◆ getBaseColor()

Color RayTracer::IPrimitive::getBaseColor ( ) const
inline

Definition at line 25 of file IPrimitive.hpp.

25 {
26 return getMaterial()->getBaseColor();
27 }
virtual std::shared_ptr< IMaterial > getMaterial() const =0

References getMaterial().

◆ getMaterial()

virtual std::shared_ptr< IMaterial > RayTracer::IPrimitive::getMaterial ( ) const
pure virtual

◆ intersect()

virtual bool RayTracer::IPrimitive::intersect ( const Ray & ray,
double & t,
Math::Point3D & hitPoint,
Math::Vector3D & normal ) const
pure virtual

◆ rotate()

virtual void RayTracer::IPrimitive::rotate ( const Math::Vector3D & axis,
double angleDegrees )
pure virtual

◆ translate()

virtual void RayTracer::IPrimitive::translate ( const Math::Vector3D & v)
pure virtual

The documentation for this class was generated from the following file: