GEOS  3.9.1dev
Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
geos::noding::ScaledNoder Class Reference

Wraps a Noder and transforms its input into the integer domain. More...

#include <ScaledNoder.h>

Inheritance diagram for geos::noding::ScaledNoder:
[legend]
Collaboration diagram for geos::noding::ScaledNoder:
[legend]

Public Member Functions

bool isIntegerPrecision ()
 
 ScaledNoder (Noder &n, double nScaleFactor, double nOffsetX=0.0, double nOffsetY=0.0)
 
 ~ScaledNoder () override
 
std::vector< SegmentString * > * getNodedSubstrings () const override
 Returns a collection of fully noded SegmentStrings. The SegmentStrings have the same context as their parent. More...
 
void computeNodes (std::vector< SegmentString * > *inputSegStr) override
 Computes the noding for a collection of SegmentStrings. More...
 
void filter_ro (const geom::Coordinate *c)
 
void filter_rw (geom::Coordinate *c) const
 
- Public Member Functions inherited from geos::noding::Noder
virtual ~Noder ()
 

Private Member Functions

void rescale (std::vector< SegmentString * > &segStrings) const
 
void scale (std::vector< SegmentString * > &segStrings) const
 
 ScaledNoder (const ScaledNoder &other)=delete
 
ScaledNoderoperator= (const ScaledNoder &rhs)=delete
 

Private Attributes

Nodernoder
 
double scaleFactor
 
double offsetX
 
double offsetY
 
bool isScaled
 
std::vector< geom::CoordinateSequence * > newCoordSeq
 

Friends

class ScaledNoder::Scaler
 
class ScaledNoder::ReScaler
 

Additional Inherited Members

- Protected Member Functions inherited from geos::noding::Noder
 Noder ()
 

Detailed Description

Wraps a Noder and transforms its input into the integer domain.

This is intended for use with Snap-Rounding noders, which typically are only intended to work in the integer domain. Offsets can be provided to increase the number of digits of available precision.

Definition at line 61 of file ScaledNoder.h.

Constructor & Destructor Documentation

geos::noding::ScaledNoder::ScaledNoder ( Noder n,
double  nScaleFactor,
double  nOffsetX = 0.0,
double  nOffsetY = 0.0 
)
inline

Definition at line 71 of file ScaledNoder.h.

geos::noding::ScaledNoder::~ScaledNoder ( )
override
geos::noding::ScaledNoder::ScaledNoder ( const ScaledNoder other)
privatedelete

Member Function Documentation

void geos::noding::ScaledNoder::computeNodes ( std::vector< SegmentString * > *  segStrings)
overridevirtual

Computes the noding for a collection of SegmentStrings.

Some Noders may add all these nodes to the input SegmentStrings; others may only add some or none at all.

Parameters
segStringsa collection of SegmentStrings to node The caller remains responsible for releasing the memory associated with the container and its elements.

Implements geos::noding::Noder.

void geos::noding::ScaledNoder::filter_ro ( const geom::Coordinate c)
inline

Definition at line 90 of file ScaledNoder.h.

References geos::ignore_unused_variable_warning().

Here is the call graph for this function:

void geos::noding::ScaledNoder::filter_rw ( geom::Coordinate c) const
std::vector<SegmentString*>* geos::noding::ScaledNoder::getNodedSubstrings ( ) const
overridevirtual

Returns a collection of fully noded SegmentStrings. The SegmentStrings have the same context as their parent.

Returns
a newly allocated std::vector of newly allocated SegmentStrings (copies of input, if needs be). Caller is responsible to delete container and elements.

Implements geos::noding::Noder.

bool geos::noding::ScaledNoder::isIntegerPrecision ( )
inline

Definition at line 66 of file ScaledNoder.h.

ScaledNoder& geos::noding::ScaledNoder::operator= ( const ScaledNoder rhs)
privatedelete
void geos::noding::ScaledNoder::rescale ( std::vector< SegmentString * > &  segStrings) const
private
void geos::noding::ScaledNoder::scale ( std::vector< SegmentString * > &  segStrings) const
private

Friends And Related Function Documentation

friend class ScaledNoder::ReScaler
friend

Definition at line 120 of file ScaledNoder.h.

friend class ScaledNoder::Scaler
friend

Definition at line 116 of file ScaledNoder.h.

Member Data Documentation

bool geos::noding::ScaledNoder::isScaled
private

Definition at line 108 of file ScaledNoder.h.

std::vector<geom::CoordinateSequence*> geos::noding::ScaledNoder::newCoordSeq
mutableprivate

Definition at line 122 of file ScaledNoder.h.

Noder& geos::noding::ScaledNoder::noder
private

Definition at line 100 of file ScaledNoder.h.

double geos::noding::ScaledNoder::offsetX
private

Definition at line 104 of file ScaledNoder.h.

double geos::noding::ScaledNoder::offsetY
private

Definition at line 106 of file ScaledNoder.h.

double geos::noding::ScaledNoder::scaleFactor
private

Definition at line 102 of file ScaledNoder.h.


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