fart/shapes/Shape.h

30 lines
569 B
C++

#ifndef SHAPE_H
#define SHAPE_H SHAPE_H
#include "util/Solver.h"
#include "util/Ray.h"
#include "util/Vector.h"
#include "util/Transform.h"
class Shape
{
public:
virtual Solver::Result intersect(const Ray & ray) = 0;
virtual Vector getNormalAt(const Vector & pt) = 0;
void setTransform(Transform & t)
{
m_transform = t;
m_inverse = t.getInverse();
}
Transform & getTransform() { return m_transform; }
protected:
Transform m_transform;
Transform m_inverse;
};
#endif