10 #ifndef __TERRALIB_MNT_INTERNAL_TINGENERATION_H
11 #define __TERRALIB_MNT_INTERNAL_TINGENERATION_H
17 #include "../../dataaccess/dataset/DataSet.h"
18 #include "../../dataaccess/dataset/DataSetType.h"
19 #include "../../dataaccess/datasource/DataSource.h"
21 #include "../../geometry/MultiLineString.h"
22 #include "../../geometry/MultiPoint.h"
23 #include "../../geometry/PointZ.h"
59 std::string inDsetName,
60 std::auto_ptr<te::da::DataSetType> inDsetType,
70 void setBreakLine(
te::da::DataSourcePtr inDsrc, std::string inDsetName, std::auto_ptr<te::da::DataSetType> inDsetType,
double tol);
87 void setParams(
const double& tolerance,
88 const double &maxdist,
89 const double &minedgesize,
90 const std::string &atrz_iso,
const std::string &atrz_pt);
96 void setMaxdist(
double maxdist) { m_maxdist = maxdist; };
106 bool CreateInitialTriangles(
size_t nsamples);
120 bool InsertNode(int32_t nodeid,
int type);
127 bool DeleteNode(int32_t node);
135 bool NodeExchange(int32_t oldNode, int32_t newNode);
144 bool TwoNewTriangles(int32_t t, int32_t nodeId, int32_t* testLines);
154 int32_t DuplicateTriangle(int32_t t,
short n, int32_t v, int32_t* testLines);
164 bool DupNeighTriangle(int32_t tv, int32_t an0,
short, int32_t v, int32_t *testLines);
174 bool TestDelaunay(int32_t tri1Id, int32_t tri2Id, int32_t tri3Id);
183 bool TestDelaunay(int32_t tri1Id, int32_t tri2Id, int32_t tri3Id, int32_t tri4Id);
190 bool TestDelaunay(int32_t linId);
198 bool TestDelaunay(int32_t triId,
short nviz);
207 bool UpdateTriangles(int32_t t, int32_t tv, int32_t ai);
217 int32_t ExchangePolygon(int32_t triangId, int32_t newPolyId,
unsigned short edge);
224 bool IsIsolineSegment(int32_t linid);
231 bool IsBreaklineSegment(int32_t linid);
233 bool IsNeighborOnIsoOrBreakline(int32_t triId,
unsigned short nviz);
239 bool CreateDelaunay();
248 bool GenerateDelaunay(int32_t nt, int32_t ntbase, int32_t contr);
254 bool ModifyBoundTriangles();
260 bool IsolinesConstrained();
266 bool TestIsolines(
int iter);
279 bool CreateMinAngleTriangulation();
287 bool TestAngleBetweenNormals(int32_t triId,
short nviz);
293 bool InsertBreakLines();
310 bool OnIsolineSegment(int32_t linid,
te::gm::PointZ &pt3d,
bool &fixed);
322 bool ReCreateDelaunay();
332 bool ReGenerateDelaunay(int32_t nt, int32_t ntbase, int32_t contr);
337 bool TestFlatTriangles();
339 bool RegeneratewithNewPoints(std::vector<te::gm::PointZ> &p3dl, std::vector<bool> &fixed);
void setTolerance(double tolerance)
boost::shared_ptr< DataSource > DataSourcePtr
#define TEMNTEXPORT
You can use this macro in order to export/import classes and functions from this module.
std::string m_atrZ_sample
te::da::DataSourcePtr m_outDsrc
std::string m_inDsetName_point
double m_tolerance
Triangulation lines simplification tolerance.
MultiPoint is a GeometryCollection whose elements are restricted to points.
A point with z-coordinate value.
double m_tolerance_break
Triangulation breaklines simplification tolerance.
std::string m_inDsetName_sample
te::da::DataSourcePtr m_inDsrc_point
std::auto_ptr< te::da::DataSetType > m_inDsetType_point
void setMethod(int method)
Geometry is the root class of the geometries hierarchy, it follows OGC and ISO standards.
void setMaxdist(double maxdist)
MultiLineString is a MultiCurve whose elements are LineStrings.
int m_method
Triangulation method Delanay or Smaller Angle.
Class to define TIN strutures.
std::auto_ptr< te::da::DataSetType > m_inDsetType_sample
te::da::DataSourcePtr m_inDsrc_break
te::da::DataSourcePtr m_inDsrc_sample
std::auto_ptr< te::da::DataSetType > m_inDsetType_break
double m_maxdist
Triangulation lines simplification maximum distance.
std::string m_outDsetName
std::string m_inDsetName_break
void setMinedgesize(double minedgesize)
This file contains a class to define a TIN. Adapted from SPRING.
double m_minedgesize
Triangulation edges minimum size.