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; }
81 std::vector< te::gm::LineString* >
m_lsOut;
125 std::string inRasterName,
126 std::unique_ptr<te::da::DataSetType> inDsetType);
130 void setParams(std::vector<double> &nval, std::vector<double> &gval,
double vmax,
double vmin,
double dummy,
bool hasDummy);
134 bool run(std::unique_ptr<te::rst::Raster> raster);
136 static bool generateSegments(std::unique_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);
144 static void firstCaseSpecial(
double quota,
double& lineSupLeft,
double& lineSupRigth,
double& lineInfLeft,
double& lineInfRigth);
146 static void segments(
int idQuota, std::unique_ptr<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::unique_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);
std::vector< te::gm::LineString * > m_vecSegments
std::vector< te::gm::LineString * > m_lsOut
ConnectLinesParams()
Default constructor.
~ConnectLinesParams()
Virtual destructor.
std::unique_ptr< te::rst::Raster > m_rasterPtr
~GenerateSegmentsParams()
Virtual destructor.
std::vector< double > m_nvals
GenerateSegmentsParams()
Default constructor.
std::vector< std::vector< te::gm::LineString * > > m_vecSegments
LineString is a curve with linear interpolation between points.
te::da::DataSourcePtr m_outDsrc
static bool generateSegmentsThreaded(GenerateSegmentsParams *params)
te::da::DataSourcePtr m_inRasterDsrc
std::vector< RasterBlockSize > calculateBlocks(unsigned int numRows, unsigned int numThreads)
static bool connectLines(std::vector< te::gm::LineString * > vec, int srid, std::vector< te::gm::LineString * > &lsOut)
static void firstCaseSpecial(double quota, double &lineSupLeft, double &lineSupRigth, double &lineInfLeft, double &lineInfRigth)
std::unique_ptr< te::da::DataSetType > m_inRasterDsType
void rstMemoryBlock(std::unique_ptr< te::rst::Raster > raster, std::vector< RasterBlockSize > vecBlocks, std::vector< GenerateSegmentsParams * > &vecGenerateParams)
void setInput(te::da::DataSourcePtr inRasterDsrc, std::string inRasterName, std::unique_ptr< te::da::DataSetType > inDsetType)
bool connectLines1(std::vector< te::gm::LineString * > vecSegments, double scale, std::vector< te::gm::LineString * > &lsOut)
std::unique_ptr< te::rst::Raster > getPrepareRaster()
std::string m_outDsetName
std::vector< double > m_guidevalues
std::string m_inRasterName
void setOutput(te::da::DataSourcePtr outDsrc, std::string dsname)
bool run(std::unique_ptr< te::rst::Raster > raster)
static bool connectLinesThreaded(ConnectLinesParams *params)
void setParams(std::vector< double > &nval, std::vector< double > &gval, double vmax, double vmin, double dummy, bool hasDummy)
static void segments(int idQuota, std::unique_ptr< te::gm::LineString > line, double quota, double ylg_sup, double xlg_ant, double xlg_pos, double ylg_inf, double &lineSupLeft, double &lineSupRigth, double &lineInfLeft, double &lineInfRigth, std::vector< std::vector< te::gm::LineString * > > &vecSegments)
CreateIsolines()
Default constructor.
bool connectLines(std::vector< te::gm::LineString * > vecSegments, std::vector< te::gm::LineString * > &lsOut)
~CreateIsolines()
Virtual destructor.
static bool generateSegments(std::unique_ptr< te::rst::Raster > raster, std::vector< double > nvals, std::vector< std::vector< te::gm::LineString * > > &vecSegments)
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)
std::vector< double > m_values
boost::shared_ptr< DataSource > DataSourcePtr
#define TEMNTEXPORT
You can use this macro in order to export/import classes and functions from this module.
Proxy configuration file for TerraView (see terraview_config.h).