/* * ShapeOps_impl.hpp * * Created on: Jun 18, 2010 * Author: crueger */ #ifndef SHAPEOPS_IMPL_HPP_ #define SHAPEOPS_IMPL_HPP_ #include "Shapes/Shape_impl.hpp" #include "vector.hpp" #include "Matrix.hpp" class Resize_impl : public Shape_impl { public: Resize_impl(const Shape::impl_ptr&,double); virtual ~Resize_impl(); virtual bool isInside(const Vector& point); private: Shape::impl_ptr arg; double size; }; class Translate_impl : public Shape_impl { public: Translate_impl(const Shape::impl_ptr&, const Vector&); virtual ~Translate_impl(); virtual bool isInside(const Vector& point); private: Shape::impl_ptr arg; Vector offset; }; class Stretch_impl : public Shape_impl { public: Stretch_impl(const Shape::impl_ptr&, const Vector&); virtual ~Stretch_impl(); virtual bool isInside(const Vector& point); private: Shape::impl_ptr arg; Vector factors; Vector reciFactors; }; class Transform_impl : public Shape_impl { public: Transform_impl(const Shape::impl_ptr&, const Matrix&); virtual ~Transform_impl(); virtual bool isInside(const Vector& point); private: Shape::impl_ptr arg; Matrix transformation; Matrix transformationInv; }; #endif /* SHAPEOPS_IMPL_HPP_ */