/*public*/ Geometry* CommonBitsOp::difference( const Geometry* geom0, const Geometry* geom1) { auto_ptr<Geometry> rgeom0; auto_ptr<Geometry> rgeom1; removeCommonBits(geom0, geom1, rgeom0, rgeom1); return computeResultPrecision(rgeom0->difference(rgeom1.get())); }
/** * Computes the set-theoretic symmetric difference of two geometries, * using enhanced precision. * @param geom0 the first Geometry * @param geom1 the second Geometry * @return the Geometry* representing the set-theoretic symmetric difference of the input Geometries. */ Geometry* CommonBitsOp::symDifference(Geometry* geom0, Geometry* geom1){ vector<Geometry*> *geom=removeCommonBits(geom0, geom1); return computeResultPrecision(((*geom)[0])->symDifference((*geom)[1])); }
/** * Computes the set-theoretic intersection of two {@link Geometry}s, using enhanced precision. * @param geom0 the first Geometry * @param geom1 the second Geometry * @return the Geometry representing the set-theoretic intersection of the input Geometries. */ Geometry* CommonBitsOp::intersection(Geometry* geom0, Geometry* geom1){ vector<Geometry*> *geom=removeCommonBits(geom0, geom1); return computeResultPrecision(((*geom)[0])->intersection((*geom)[1])); }
/** * Computes the buffer a geometry, * using enhanced precision. * @param geom0 the Geometry* to buffer * @param distance the buffer distance * @return the Geometry* representing the buffer of the input Geometry. */ Geometry* CommonBitsOp::buffer(Geometry* geom0, double distance){ Geometry *geom=removeCommonBits(geom0); return computeResultPrecision(geom->buffer(distance)); }
/*public*/ Geometry* CommonBitsOp::buffer(const Geometry* geom0, double distance) { auto_ptr<Geometry> rgeom0(removeCommonBits(geom0)); return computeResultPrecision(rgeom0->buffer(distance)); }