Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Shapes/ShapeOps_impl.hpp

    rc6f395 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   virtual LineSegmentSet getLineIntersections(const Line&);
    23 protected:
    24   virtual Vector translateIn(const Vector &point)=0;
    25   virtual Vector translateOutPos(const Vector &point)=0;
    26   virtual Vector translateOutNormal(const Vector &point)=0;
    27   Shape::impl_ptr getArg();
    28 private:
    29   Shape::impl_ptr arg;
    30 };
    31 
    32 class Resize_impl :  public ShapeOpsBase_impl
     15class Resize_impl :  public Shape_impl
    3316{
    3417public:
    3518  Resize_impl(const Shape::impl_ptr&,double);
    3619  virtual ~Resize_impl();
    37 protected:
    38   virtual Vector translateIn(const Vector &point);
    39   virtual Vector translateOutPos(const Vector &point);
    40   virtual Vector translateOutNormal(const Vector &point);
    41   virtual std::string toString();
     20  virtual bool isInside(const Vector& point);
    4221private:
     22  Shape::impl_ptr arg;
    4323  double size;
    4424};
    4525
    46 class Translate_impl :  public ShapeOpsBase_impl
     26class Translate_impl :  public Shape_impl
    4727{
    4828public:
    4929  Translate_impl(const Shape::impl_ptr&, const Vector&);
    5030  virtual ~Translate_impl();
    51 protected:
    52   virtual Vector translateIn(const Vector &point);
    53   virtual Vector translateOutPos(const Vector &point);
    54   virtual Vector translateOutNormal(const Vector &point);
    55   virtual std::string toString();
     31  virtual bool isInside(const Vector& point);
    5632private:
     33  Shape::impl_ptr arg;
    5734  Vector offset;
    5835};
    5936
    60 class Stretch_impl : public ShapeOpsBase_impl
     37class Stretch_impl : public Shape_impl
    6138{
    6239public:
    6340  Stretch_impl(const Shape::impl_ptr&, const Vector&);
    6441  virtual ~Stretch_impl();
    65 protected:
    66   virtual Vector translateIn(const Vector &point);
    67   virtual Vector translateOutPos(const Vector &point);
    68   virtual Vector translateOutNormal(const Vector &point);
    69   virtual std::string toString();
     42  virtual bool isInside(const Vector& point);
    7043private:
     44  Shape::impl_ptr arg;
    7145  Vector factors;
    7246  Vector reciFactors;
    7347};
    7448
    75 class Transform_impl : public ShapeOpsBase_impl
     49class Transform_impl : public Shape_impl
    7650{
    7751public:
    7852  Transform_impl(const Shape::impl_ptr&, const Matrix&);
    7953  virtual ~Transform_impl();
    80 protected:
    81   virtual Vector translateIn(const Vector &point);
    82   virtual Vector translateOutPos(const Vector &point);
    83   virtual Vector translateOutNormal(const Vector &point);
    84   virtual std::string toString();
     54  virtual bool isInside(const Vector& point);
    8555private:
     56  Shape::impl_ptr arg;
    8657  Matrix transformation;
    8758  Matrix transformationInv;
Note: See TracChangeset for help on using the changeset viewer.