Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Shapes/ShapeOps_impl.hpp

    rcfda65 r5e588b5  
    1313#include "Matrix.hpp"
    1414
    15 class ShapeOpsBase_impl : public Shape_impl{
    16 public:
    17   ShapeOpsBase_impl(const Shape::impl_ptr&);
    18   virtual ~ShapeOpsBase_impl();
    19   virtual bool isInside(const Vector &point);
    20   virtual bool isOnSurface(const Vector &point);
    21   virtual Vector getNormal(const Vector &point) throw (NotOnSurfaceException);
    22 protected:
    23   virtual Vector translateIn(const Vector &point)=0;
    24   virtual Vector translateOutPos(const Vector &point)=0;
    25   virtual Vector translateOutNormal(const Vector &point)=0;
    26   Shape::impl_ptr getArg();
    27 private:
    28   Shape::impl_ptr arg;
    29 };
    30 
    31 class Resize_impl :  public ShapeOpsBase_impl
     15class Resize_impl :  public Shape_impl
    3216{
    3317public:
    3418  Resize_impl(const Shape::impl_ptr&,double);
    3519  virtual ~Resize_impl();
    36 protected:
    37   virtual Vector translateIn(const Vector &point);
    38   virtual Vector translateOutPos(const Vector &point);
    39   virtual Vector translateOutNormal(const Vector &point);
    40   virtual std::string toString();
     20  virtual bool isInside(const Vector& point);
    4121private:
     22  Shape::impl_ptr arg;
    4223  double size;
    4324};
    4425
    45 class Translate_impl :  public ShapeOpsBase_impl
     26class Translate_impl :  public Shape_impl
    4627{
    4728public:
    4829  Translate_impl(const Shape::impl_ptr&, const Vector&);
    4930  virtual ~Translate_impl();
    50 protected:
    51   virtual Vector translateIn(const Vector &point);
    52   virtual Vector translateOutPos(const Vector &point);
    53   virtual Vector translateOutNormal(const Vector &point);
    54   virtual std::string toString();
     31  virtual bool isInside(const Vector& point);
    5532private:
     33  Shape::impl_ptr arg;
    5634  Vector offset;
    5735};
    5836
    59 class Stretch_impl : public ShapeOpsBase_impl
     37class Stretch_impl : public Shape_impl
    6038{
    6139public:
    6240  Stretch_impl(const Shape::impl_ptr&, const Vector&);
    6341  virtual ~Stretch_impl();
    64 protected:
    65   virtual Vector translateIn(const Vector &point);
    66   virtual Vector translateOutPos(const Vector &point);
    67   virtual Vector translateOutNormal(const Vector &point);
    68   virtual std::string toString();
     42  virtual bool isInside(const Vector& point);
    6943private:
     44  Shape::impl_ptr arg;
    7045  Vector factors;
    7146  Vector reciFactors;
    7247};
    7348
    74 class Transform_impl : public ShapeOpsBase_impl
     49class Transform_impl : public Shape_impl
    7550{
    7651public:
    7752  Transform_impl(const Shape::impl_ptr&, const Matrix&);
    7853  virtual ~Transform_impl();
    79 protected:
    80   virtual Vector translateIn(const Vector &point);
    81   virtual Vector translateOutPos(const Vector &point);
    82   virtual Vector translateOutNormal(const Vector &point);
    83   virtual std::string toString();
     54  virtual bool isInside(const Vector& point);
    8455private:
     56  Shape::impl_ptr arg;
    8557  Matrix transformation;
    8658  Matrix transformationInv;
Note: See TracChangeset for help on using the changeset viewer.