PrecisionReducerCoordinateOperation.h

00001 /**********************************************************************
00002  *
00003  * GEOS - Geometry Engine Open Source
00004  * http://geos.osgeo.org
00005  *
00006  * Copyright (C) 2012 Sandro Santilli <strk@keybit.net>
00007  *
00008  * This is free software; you can redistribute and/or modify it under
00009  * the terms of the GNU Lesser General Public Licence as published
00010  * by the Free Software Foundation. 
00011  * See the COPYING file for more information.
00012  *
00013  ***********************************************************************
00014  *
00015  * Last port: precision/PrecisionreducerCoordinateOperation.java r591 (JTS-1.12)
00016  *
00017  **********************************************************************/
00018 
00019 #ifndef GEOS_PRECISION_PRECISIONREDUCERCOORDINATEOPERATION_H
00020 #define GEOS_PRECISION_PRECISIONREDUCERCOORDINATEOPERATION_H
00021 
00022 #include <geos/geom/util/CoordinateOperation.h>
00023 
00024 // Forward declarations
00025 namespace geos {
00026   namespace geom { 
00027     class PrecisionModel;
00028     class CoordinateSequence;
00029     class Geometry;
00030   }
00031 }
00032 
00033 namespace geos {
00034 namespace precision { // geos.precision
00035 
00036 class PrecisionReducerCoordinateOperation :
00037                 public geom::util::CoordinateOperation
00038 {
00039 using CoordinateOperation::edit;
00040 private:
00041 
00042         const geom::PrecisionModel& targetPM;
00043 
00044         bool removeCollapsed;
00045 
00046     PrecisionReducerCoordinateOperation(PrecisionReducerCoordinateOperation const&); /*= delete*/
00047     PrecisionReducerCoordinateOperation& operator=(PrecisionReducerCoordinateOperation const&); /*= delete*/
00048 
00049 public:
00050 
00051         PrecisionReducerCoordinateOperation( const geom::PrecisionModel& pm,
00052                                        bool doRemoveCollapsed )
00053       :
00054       targetPM(pm),
00055       removeCollapsed(doRemoveCollapsed)
00056   {}
00057 
00059   //
00061         geom::CoordinateSequence* edit(const geom::CoordinateSequence *coordinates,
00062                                  const geom::Geometry *geom);
00063 };
00064 
00065 } // namespace geos.precision
00066 } // namespace geos
00067 
00068 #endif // GEOS_PRECISION_PRECISIONREDUCERCOORDINATEOPERATION_H
00069 

Generated on 15 May 2014 for GEOS by  doxygen 1.4.7