geos::precision::CommonBitsOp Class Reference

Provides versions of Geometry spatial functions which use common bit removal to reduce the likelihood of robustness problems. More...

`#include <CommonBitsOp.h>`

## Public Member Functions

| CommonBitsOp ()
| Creates a new instance of class, which reshifts result Geometry.
| CommonBitsOp (bool nReturnToOriginalPrecision)
| Creates a new instance of class, specifying whether the result `geom::Geometry`s should be reshifted.
std::unique_ptr< geom::Geometry > | intersection (const geom::Geometry *geom0, const geom::Geometry *geom1)
| Computes the set-theoretic intersection of two Geometry, using enhanced precision.
std::unique_ptr< geom::Geometry > | Union (const geom::Geometry *geom0, const geom::Geometry *geom1)
| Computes the set-theoretic union of two Geometry, using enhanced precision.
std::unique_ptr< geom::Geometry > | difference (const geom::Geometry *geom0, const geom::Geometry *geom1)
| Computes the set-theoretic difference of two Geometry, using enhanced precision.
std::unique_ptr< geom::Geometry > | symDifference (const geom::Geometry *geom0, const geom::Geometry *geom1)
| Computes the set-theoretic symmetric difference of two geometries, using enhanced precision.
std::unique_ptr< geom::Geometry > | buffer (const geom::Geometry *geom0, double distance)
| Computes the buffer a geometry, using enhanced precision.
std::unique_ptr< geom::Geometry > | computeResultPrecision (std::unique_ptr< geom::Geometry > result)
| If required, returning the result to the original precision if required.

## Detailed Description

Provides versions of Geometry spatial functions which use common bit removal to reduce the likelihood of robustness problems.

In the current implementation no rounding is performed on the reshifted result geometry, which means that it is possible that the returned Geometry is invalid. Client classes should check the validity of the returned result themselves.

## Constructor & Destructor Documentation

## CommonBitsOp()

geos::precision::CommonBitsOp::CommonBitsOp | ( | bool | nReturnToOriginalPrecision | ) |

Creates a new instance of class, specifying whether the result `geom::Geometry`s should be reshifted.

Parameters

  nReturnToOriginalPrecision |

## Member Function Documentation

## buffer()

std::unique_ptr< geom::Geometry > geos::precision::CommonBitsOp::buffer | ( | const geom::Geometry * | geom0,
|  | double | distance )

Computes the buffer a geometry, using enhanced precision.

Parameters

  geom0 | the Geometry to buffer
  distance | the buffer distance

Returns
  the Geometry representing the buffer of the input Geometry.

## computeResultPrecision()

std::unique_ptr< geom::Geometry > geos::precision::CommonBitsOp::computeResultPrecision | ( | std::unique_ptr< geom::Geometry > | result | ) |

If required, returning the result to the original precision if required.

In this current implementation, no rounding is performed on the reshifted result geometry, which means that it is possible that the returned Geometry is invalid.

Parameters

  result | the result Geometry to modify

Returns
  the result Geometry with the required precision

## difference()

std::unique_ptr< geom::Geometry > geos::precision::CommonBitsOp::difference | ( | const geom::Geometry * | geom0,
|  | const geom::Geometry * | geom1 )

Computes the set-theoretic difference of two Geometry, using enhanced precision.

Parameters

  geom0 | the first Geometry
  geom1 | the second Geometry, to be subtracted from the first

Returns
  the Geometry representing the set-theoretic difference of the input Geometries.

## intersection()

std::unique_ptr< geom::Geometry > geos::precision::CommonBitsOp::intersection | ( | const geom::Geometry * | geom0,
|  | const geom::Geometry * | geom1 )

Computes the set-theoretic intersection of two Geometry, using enhanced precision.

Parameters

  geom0 | the first Geometry
  geom1 | the second Geometry

Returns
  the Geometry representing the set-theoretic intersection of the input Geometries.

## symDifference()

std::unique_ptr< geom::Geometry > geos::precision::CommonBitsOp::symDifference | ( | const geom::Geometry * | geom0,
|  | const geom::Geometry * | geom1 )

Computes the set-theoretic symmetric difference of two geometries, using enhanced precision.

Parameters

  geom0 | the first Geometry
  geom1 | the second Geometry

Returns
  the Geometry representing the set-theoretic symmetric difference of the input Geometries.

## Union()

std::unique_ptr< geom::Geometry > geos::precision::CommonBitsOp::Union | ( | const geom::Geometry * | geom0,
|  | const geom::Geometry * | geom1 )

Computes the set-theoretic union of two Geometry, using enhanced precision.

Parameters

  geom0 | the first Geometry
  geom1 | the second Geometry

Returns
  the Geometry representing the set-theoretic union of the input Geometries.

The documentation for this class was generated from the following file:

- CommonBitsOp.h