28 #ifndef __TERRALIB_MNT_INTERNAL_CREATEISOLINES_H
29 #define __TERRALIB_MNT_INTERNAL_CREATEISOLINES_H
35 #include "../../../../src/terralib/dataaccess.h"
36 #include "../../../../src/terralib/dataaccess/datasource/DataSourceFactory.h"
37 #include "../../../../src/terralib/memory/DataSet.h"
38 #include "../../../../src/terralib/common/Holder.h"
39 #include "../../../../src/terralib/statistics/core/Enums.h"
49 namespace da {
class DataSetType; }
50 namespace gm {
class Geometry; }
51 namespace mem {
class DataSet; }
125 std::string inRasterName,
126 std::auto_ptr<te::da::DataSetType> inDsetType);
128 std::auto_ptr<te::rst::Raster> getPrepareRaster();
130 void setParams(std::vector<double> &nval, std::vector<double> &gval,
double vmax,
double vmin,
double dummy,
bool hasDummy);
134 bool run(std::auto_ptr<te::rst::Raster> raster);
136 static bool generateSegments(std::auto_ptr<te::rst::Raster> raster, std::vector<double> nvals, std::vector< std::vector<te::gm::LineString*> >& vecSegments);
138 static bool connectLines(std::vector<te::gm::LineString*> vec,
int srid, std::vector<te::gm::LineString*>& lsOut);
140 static void interpolacao(
int direction,
te::gm::LineString* line,
double quota,
double coord,
double c_inf,
double c_sup,
double z_inf,
double z_sup);
144 static void firstCaseSpecial(
double quota,
double& lineSupLeft,
double& lineSupRigth,
double& lineInfLeft,
double& lineInfRigth);
146 static void segments(
int idQuota,
te::gm::LineString* line,
double quota,
double ylg_sup,
double xlg_ant,
double xlg_pos,
double ylg_inf,
147 double& lineSupLeft,
double& lineSupRigth,
double& lineInfLeft,
double& lineInfRigth, std::vector< std::vector<te::gm::LineString*> >& vecSegments);
151 std::vector<RasterBlockSize> calculateBlocks(
unsigned int numRows,
unsigned int numThreads);
153 void rstMemoryBlock(std::auto_ptr<te::rst::Raster> raster, std::vector<RasterBlockSize> vecBlocks, std::vector<GenerateSegmentsParams*>& vecGenerateParams);
155 bool connectLines1(std::vector<te::gm::LineString*> vecSegments,
double scale, std::vector<te::gm::LineString*>& lsOut);
156 bool connectLines(std::vector<te::gm::LineString*> vecSegments, std::vector<te::gm::LineString*>& lsOut);
182 #endif //__TERRALIB_MNT_INTERNAL_CREATEISOLINES_H
std::string m_inRasterName
std::vector< double > m_guidevalues
~GenerateSegmentsParams()
Virtual destructor.
ConnectLinesParams()
Default constructor.
boost::shared_ptr< DataSource > DataSourcePtr
std::vector< te::gm::LineString * > m_vecSegments
A class that models the description of a dataset.
#define TEMNTEXPORT
You can use this macro in order to export/import classes and functions from this module.
std::vector< double > m_values
te::da::DataSourcePtr m_inRasterDsrc
std::vector< std::vector< te::gm::LineString * > > m_vecSegments
LineString is a curve with linear interpolation between points.
std::vector< te::gm::LineString * > m_lsOut
A dataset is the unit of information manipulated by the data access module of TerraLib.
std::string m_outDsetName
GenerateSegmentsParams()
Default constructor.
te::da::DataSourcePtr m_outDsrc
std::auto_ptr< te::rst::Raster > m_rasterPtr
std::vector< double > m_nvals
~ConnectLinesParams()
Virtual destructor.
std::auto_ptr< te::da::DataSetType > m_inRasterDsType