/*private*/ void BufferOp::bufferFixedPrecision(const PrecisionModel& fixedPM) { PrecisionModel pm(1.0); // fixed as well #if 0 /* FIXME: MCIndexSnapRounder seems to be still bogus */ snapround::MCIndexSnapRounder inoder(pm); #else algorithm::LineIntersector li(&fixedPM); IntersectionAdder ia(li); MCIndexNoder inoder(&ia); #endif 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); }
/*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); }