]> Shamusworld >> Repos - architektonas/blobdiff - src/base/rs_solid.h
Refactoring: Moved RS_GraphicView to GraphicView.
[architektonas] / src / base / rs_solid.h
index ab7a543a9b41911e23beb7ab814b3f923a689964..d2f8761a020c36a131d685f9e35724f55d72f2b1 100644 (file)
@@ -9,57 +9,53 @@
  */
 class RS_SolidData
 {
-public:
-    /**
-     * Default constructor. Leaves the data object uninitialized.
-     */
-    RS_SolidData() {
-        for (int i=0; i<4; ++i) {
-            corner[i] = Vector(false);
-        }
-    }
-
-    /**
-     * Constructor for a solid with 3 corners.
-     */
-    RS_SolidData(const Vector& corner1,
-                 const Vector& corner2,
-                 const Vector& corner3) {
-
-        corner[0] = corner1;
-        corner[1] = corner2;
-        corner[2] = corner3;
-        corner[3] = Vector(false);
-    }
-
-    /**
-     * Constructor for a solid with 4 corners.
-     */
-    RS_SolidData(const Vector& corner1,
-                 const Vector& corner2,
-                 const Vector& corner3,
-                 const Vector& corner4) {
-
-        corner[0] = corner1;
-        corner[1] = corner2;
-        corner[2] = corner3;
-        corner[3] = corner4;
-    }
-
-    friend class RS_Solid;
-
-    friend std::ostream& operator << (std::ostream& os,
-                                      const RS_SolidData& pd) {
-        os << "(";
-        for (int i=0; i<4; i++) {
-            os << pd.corner[i];
-        }
-        os << ")";
-        return os;
-    }
-
-private:
-    Vector corner[4];
+       public:
+               /**
+                * Default constructor. Leaves the data object uninitialized.
+                */
+               RS_SolidData()
+               {
+                       for(int i=0; i<4; ++i)
+                               corner[i] = Vector(false);
+               }
+
+               /**
+                * Constructor for a solid with 3 corners.
+                */
+               RS_SolidData(const Vector & corner1, const Vector & corner2, const Vector & corner3)
+               {
+                       corner[0] = corner1;
+                       corner[1] = corner2;
+                       corner[2] = corner3;
+                       corner[3] = Vector(false);
+               }
+
+               /**
+                * Constructor for a solid with 4 corners.
+                */
+               RS_SolidData(const Vector & corner1, const Vector & corner2, const Vector & corner3, const Vector & corner4)
+               {
+                       corner[0] = corner1;
+                       corner[1] = corner2;
+                       corner[2] = corner3;
+                       corner[3] = corner4;
+               }
+
+               friend class RS_Solid;
+
+               friend std::ostream & operator<<(std::ostream & os, const RS_SolidData & pd)
+               {
+                       os << "(";
+
+                       for(int i=0; i<4; i++)
+                               os << pd.corner[i];
+
+                       os << ")";
+                       return os;
+               }
+
+       private:
+               Vector corner[4];
 };
 
 /**
@@ -69,75 +65,39 @@ private:
  */
 class RS_Solid: public RS_AtomicEntity
 {
-public:
-    RS_Solid(RS_EntityContainer* parent,
-             const RS_SolidData& d);
-
-    virtual RS_Entity* clone() {
-        RS_Solid* s = new RS_Solid(*this);
-        s->initId();
-        return s;
-    }
-
-    /**        @return RS_ENTITY_POINT */
-    virtual RS2::EntityType rtti() const {
-        return RS2::EntitySolid;
-    }
-
-    /**
-        * @return Start point of the entity.
-        */
-    virtual Vector getStartpoint() const {
-        return Vector(false);
-    }
-    /**
-        * @return End point of the entity.
-        */
-    virtual Vector getEndpoint() const {
-        return Vector(false);
-    }
-
-
-    /** @return Copy of data that defines the point. */
-    RS_SolidData getData() const {
-        return data;
-    }
-
-    /** @return true if this is a triangle. */
-    bool isTriangle() {
-        return !data.corner[3].valid;
-    }
-
-    Vector getCorner(int num);
-
-    void shapeArrow(const Vector & point, double angle, double arrowSize);
-
-    virtual Vector getNearestEndpoint(const Vector & coord, double * dist = NULL);
-    virtual Vector getNearestPointOnEntity(const Vector & coord,
-            bool onEntity = true, double * dist = NULL, RS_Entity ** entity = NULL);
-    virtual Vector getNearestCenter(const Vector & coord, double * dist = NULL);
-    virtual Vector getNearestMiddle(const Vector & coord, double * dist = NULL);
-    virtual Vector getNearestDist(double distance, const Vector & coord, double * dist = NULL);
-
-    virtual double getDistanceToPoint(const Vector & coord, RS_Entity ** entity = NULL,
-               RS2::ResolveLevel level = RS2::ResolveNone, double solidDist = RS_MAXDOUBLE);
-
-    virtual void move(Vector offset);
-    virtual void rotate(Vector center, double angle);
-    virtual void scale(Vector center, Vector factor);
-    virtual void mirror(Vector axisPoint1, Vector axisPoint2);
-
-//    virtual void draw(RS_Painter* painter, RS_GraphicView* view, double patternOffset=0.0);
-    virtual void draw(PaintInterface * painter, RS_GraphicView * view, double patternOffset = 0.0);
-
-    friend std::ostream & operator<<(std::ostream & os, const RS_Solid & p);
-
-    /** Recalculates the borders of this entity. */
-    virtual void calculateBorders ();
-
-protected:
-    RS_SolidData data;
-    //Vector point;
+       public:
+               RS_Solid(RS_EntityContainer * parent, const RS_SolidData & d);
+
+               virtual RS_Entity * clone();
+               virtual RS2::EntityType rtti() const;
+               virtual Vector getStartpoint() const;
+               virtual Vector getEndpoint() const;
+               RS_SolidData getData() const;
+               bool isTriangle();
+               Vector getCorner(int num);
+               void shapeArrow(const Vector & point, double angle, double arrowSize);
+
+               virtual Vector getNearestEndpoint(const Vector & coord, double * dist = NULL);
+               virtual Vector getNearestPointOnEntity(const Vector & coord, bool onEntity = true,
+                       double * dist = NULL, RS_Entity ** entity = NULL);
+               virtual Vector getNearestCenter(const Vector & coord, double * dist = NULL);
+               virtual Vector getNearestMiddle(const Vector & coord, double * dist = NULL);
+               virtual Vector getNearestDist(double distance, const Vector & coord, double * dist = NULL);
+               virtual double getDistanceToPoint(const Vector & coord, RS_Entity ** entity = NULL,
+                       RS2::ResolveLevel level = RS2::ResolveNone, double solidDist = RS_MAXDOUBLE);
+               virtual void move(Vector offset);
+               virtual void rotate(Vector center, double angle);
+               virtual void scale(Vector center, Vector factor);
+               virtual void mirror(Vector axisPoint1, Vector axisPoint2);
+               virtual void draw(PaintInterface * painter, GraphicView * view, double patternOffset = 0.0);
+
+               friend std::ostream & operator<<(std::ostream & os, const RS_Solid & p);
+
+               /** Recalculates the borders of this entity. */
+               virtual void calculateBorders ();
+
+       protected:
+               RS_SolidData data;
 };
 
 #endif