/*private*/ void BufferOp::bufferFixedPrecision(const PrecisionModel& fixedPM) { PrecisionModel pm(1.0); // fixed as well snapround::MCIndexSnapRounder inoder(pm); ScaledNoder noder(inoder, fixedPM.getScale()); BufferBuilder bufBuilder(bufParams); bufBuilder.setWorkingPrecisionModel(&fixedPM); bufBuilder.setNoder(&noder); // this may throw an exception, if robustness errors are encountered resultGeometry=bufBuilder.buffer(argGeom, distance); }
void object::test<1> () { std::string wkt0("LINESTRING(99739.70596 -2239218.0625,99739.85604 -2239218.21258,99739.85605 -2239218.21258, 99739.85605 -2239218.21258,99739.86851 -2239218.21258,99739.86851 -2239218.20012, 99739.86851 -2239218.20012,99739.86851 -2239218.04, 99739.95848 -2239218.11015,99739.86851 -2239218.20012, 99739.86851 -2239218.20012,99739.85605 -2239218.21258, 99739.85605 -2239218.21258,99739.80901 -2239218.25961, 99739.80901 -2239218.25961,99739.68863 -2239218.38, 99739.86204 -2239218.31264,99739.80901 -2239218.25961, 99739.80901 -2239218.25961,99739.66841 -2239218.11901)"); SegStrVct nodable; getSegmentStrings(wkt0, nodable); ensure_equals(nodable.size(), 1u); PrecisionModel pm(1e-5); MCIndexSnapRounder noder(pm); ensure_equals(nodable.size(), 1u); noder.computeNodes(&nodable); std::unique_ptr<SegStrVct> noded(noder.getNodedSubstrings()); ensure_equals("1e-5", noded->size(), 178u); freeSegmentStrings(*noded); freeSegmentStrings(nodable); }