| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| #ifndef RS_INFORMATION_H |
| #define RS_INFORMATION_H |
|
|
| #include "rs.h" |
|
|
| class RS_Ellipse; |
| class RS_Entity; |
| class RS_EntityContainer; |
| class RS_Vector; |
| class RS_VectorSolutions; |
| class RS_Arc; |
| class RS_Circle; |
| class RS_Line; |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| class RS_Information { |
| public: |
| RS_Information(RS_EntityContainer& entityContainer); |
|
|
| static bool isDimension(RS2::EntityType type); |
| static bool isTrimmable(RS_Entity* e); |
| static bool isTrimmable(RS_Entity* e1, RS_Entity* e2); |
|
|
| RS_Vector getNearestEndpoint(const RS_Vector& point, |
| double* dist = nullptr) const; |
| RS_Vector getNearestPointOnEntity(const RS_Vector& point, |
| bool onEntity=true, |
| double* dist = nullptr, |
| RS_Entity** entity=nullptr) const; |
| RS_Entity* getNearestEntity(const RS_Vector& point, |
| double* dist = nullptr, |
| RS2::ResolveLevel level=RS2::ResolveAll) const; |
|
|
|
|
| static RS_VectorSolutions getIntersection(RS_Entity const* e1, |
| RS_Entity const* e2, |
| bool onEntities = false); |
|
|
| static RS_VectorSolutions getIntersectionLineLine(const RS_Entity* e1, |
| const RS_Entity* e2); |
|
|
| static RS_VectorSolutions getIntersectionLineArc(const RS_Entity* line, |
| const RS_Entity* arc); |
|
|
| static RS_VectorSolutions getIntersectionArcArc(RS_Entity const* e1, |
| RS_Entity const* e2); |
|
|
| static RS_VectorSolutions getIntersectionEllipseEllipse( |
| RS_Ellipse const* e1, |
| RS_Ellipse const* e2); |
| static RS_VectorSolutions getIntersectionArcEllipse(RS_Arc* e1, |
| RS_Ellipse* e2); |
| static RS_VectorSolutions getIntersectionCircleEllipse(RS_Circle* e1, |
| RS_Ellipse* e2); |
| |
| static RS_VectorSolutions getIntersectionEllipseLine(RS_Line* line, |
| RS_Ellipse* ellipse); |
| |
| |
| |
| |
| |
| static RS_VectorSolutions createQuadrilateral(const RS_EntityContainer& container); |
|
|
| static bool isPointInsideContour(const RS_Vector& point, |
| RS_EntityContainer* contour, |
| bool* onContour=nullptr); |
| |
| private: |
| RS_EntityContainer* container = nullptr; |
| }; |
|
|
|
|
|
|
| #endif |
|
|