diff --git a/genlib/p2dpoly.h b/genlib/p2dpoly.h index 38c3716d..e1b84338 100644 --- a/genlib/p2dpoly.h +++ b/genlib/p2dpoly.h @@ -33,17 +33,17 @@ enum { NOAXIS = -1, XAXIS = 0, YAXIS = 1 }; class Point2f; -bool approxeq(const Point2f &p1, const Point2f &p2, double tolerance = 0.0); +bool approxeq(const Point2f &p1, const Point2f &p2, double tolerance = 1e-9); class QtRegion; -bool intersect_region(const QtRegion &a, const QtRegion &b, double tolerance = 0.0); -bool overlap_x(const QtRegion &a, const QtRegion &b, double tolerance = 0.0); -bool overlap_y(const QtRegion &a, const QtRegion &b, double tolerance = 0.0); +bool intersect_region(const QtRegion &a, const QtRegion &b, double tolerance = 1e-9); +bool overlap_x(const QtRegion &a, const QtRegion &b, double tolerance = 1e-9); +bool overlap_y(const QtRegion &a, const QtRegion &b, double tolerance = 1e-9); class Line; -bool intersect_line(const Line &a, const Line &b, double tolerance = 0.0); -bool intersect_line_no_touch(const Line &a, const Line &b, double tolerance = 0.0); -int intersect_line_distinguish(const Line &a, const Line &b, double tolerance = 0.0); -int intersect_line_b(const Line &a, const Line &b, double tolerance = 0.0); -Point2f intersection_point(const Line &a, const Line &b, double tolerance = 0.0); +bool intersect_line(const Line &a, const Line &b, double tolerance = 1e-9); +bool intersect_line_no_touch(const Line &a, const Line &b, double tolerance = 1e-9); +int intersect_line_distinguish(const Line &a, const Line &b, double tolerance = 1e-9); +int intersect_line_b(const Line &a, const Line &b, double tolerance = 1e-9); +Point2f intersection_point(const Line &a, const Line &b, double tolerance = 1e-9); // NaN on Intel: // Quick mod - TV @@ -109,7 +109,7 @@ class Point2f { friend Point2f pointfromangle(double angle); // a couple of useful tests bool intriangle(const Point2f &p1, const Point2f &p2, const Point2f &p3); - bool insegment(const Point2f &key, const Point2f &p2, const Point2f &p3, double tolerance = 0.0); + bool insegment(const Point2f &key, const Point2f &p2, const Point2f &p3, double tolerance = 1e-9); // for OS transformation (note: accurate only to 5 metres according to OS) Point2f longlat2os(const Point2f &p); diff --git a/salalib/shapemap.h b/salalib/shapemap.h index 01847716..5bce75d4 100644 --- a/salalib/shapemap.h +++ b/salalib/shapemap.h @@ -399,8 +399,8 @@ class ShapeMap : public PixelBase { bool pointInPoly(const Point2f &p, int shaperef) const; // retrieve lists of polys point intersects: std::vector pointInPolyList(const Point2f &p) const; - std::vector lineInPolyList(const Line &li, size_t lineref = -1, double tolerance = 0.0) const; - std::vector polyInPolyList(int polyref, double tolerance = 0.0) const; + std::vector lineInPolyList(const Line &li, size_t lineref = -1, double tolerance = 1e-9) const; + std::vector polyInPolyList(int polyref, double tolerance = 1e-9) const; std::vector shapeInPolyList(const SalaShape &shape); // helper to make actual test of point in shape: int testPointInPoly(const Point2f &p, const ShapeRef &shape) const; diff --git a/salalib/spacepix.h b/salalib/spacepix.h index 807f7dff..015bfba1 100644 --- a/salalib/spacepix.h +++ b/salalib/spacepix.h @@ -131,8 +131,8 @@ class SpacePixel : public PixelBase { virtual bool findNextLine(bool &) const; virtual const Line &getNextLine() const; // - bool intersect(const Line &l, double tolerance = 0.0); - bool intersect_exclude(const Line &l, double tolerance = 0.0); + bool intersect(const Line &l, double tolerance = 1e-9); + bool intersect_exclude(const Line &l, double tolerance = 1e-9); void cutLine(Line &l, short dir);