Class to generate TIN. More...
#include <TINGeneration.h>
Public Member Functions | |
| bool | BuildTriangle (int32_t id, te::gm::LinearRing *lr, double *val, int32_t *right, int32_t *left, te::mnt::Ntype *type, double zmin, double zmax, bool &first, KD_TREE &nodetree, te::sam::rtree::Index< std::size_t > &linetree) |
| double | getMax () |
| double | getMin () |
| bool | LoadTin (te::da::DataSourcePtr &inDsrc, std::string &inDsetName, double zmin=std::numeric_limits< double >::min(), double zmax=std::numeric_limits< double >::max()) |
| Method used to load a triangular network (TIN) More... | |
| bool | LoadTinQGIS (te::da::DataSourcePtr &inDsrc, std::string &inDsetName, double zmin, double zmax) |
| Method used to load a triangular network (TIN) generated by QGIS. More... | |
| bool | run () |
| Generate TIN \ return true or false. More... | |
| bool | SaveTin (te::da::DataSourcePtr &outDsrc, std::string &outDsetName) |
| void | setBreakLine (te::da::DataSourcePtr inDsrc, std::string inDsetName, std::unique_ptr< te::da::DataSetType > inDsetType, double tol) |
| It sets the BreakLine Datasource that is being used to generate TIN. More... | |
| void | setEnvelope (te::gm::Envelope &env) |
| void | setInput (te::da::DataSourcePtr inDsrc, std::string inDsetName, std::unique_ptr< te::da::DataSetType > inDsetType, InputType type) |
| It sets the Datasource that is being used to generate TIN. More... | |
| void | setMaxdist (double maxdist) |
| void | setMethod (int method) |
| void | setMinedgesize (double minedgesize) |
| void | setOutput (te::da::DataSourcePtr outDsrc, std::string dsname) |
| It sets the Datasource that is being used to save TIN. More... | |
| void | setParams (const double &tolerance, const double &maxdist, const double &minedgesize, const std::string &atrz_iso, const std::string &atrz_pt) |
| It sets the parameters to generate TIN. More... | |
| void | setSRID (int srid) |
| void | setTolerance (double tolerance) |
| TINGeneration () | |
| Default constructor. More... | |
| ~TINGeneration () | |
Protected Member Functions | |
| bool | borderUp () |
| bool | BreakNodeClosestPoints (int32_t nid, int32_t *rClstNids, int32_t *lClstNids) |
| Method that searches the Break node closest points. More... | |
| bool | BreakNodeFirstDeriv () |
| Method that calculates the first derivatives in the nodes of a given break triangle. More... | |
| bool | BreakNodeSecondDeriv () |
| Method that calculates the second derivative at all triangulation break nodes. More... | |
| bool | BreakTriangleSecondDeriv () |
| Method that calculates the second derivatives in the nodes of a given break triangle. More... | |
| te::gm::Point | CalcNodeFirstDeriv (int32_t nodeId, int32_t clstNodes[CLNODES]) |
| Method that calculates the first derivative in a given node. More... | |
| TinNode | CalcNodeSecondDeriv (int32_t nodeId, int32_t clstNIds[CLNODES]) |
| Method that calculates the second derivative in a given node. More... | |
| bool | CalcTriangleSecondDeriv (std::vector< int32_t > &triangles, std::vector< te::gm::Point > &fderiv) |
| Method that calculates the second derivatives in a node of a given triangle. More... | |
| bool | CalcZvalueAkima (int32_t triid, te::gm::Point &pt1, te::gm::Point &pt2) |
| Method that evaluates Z values for pt1 and pt2 using the Akima polynomium fitted in a triangle. More... | |
| bool | CheckLines (int32_t trid) |
| Method that check the lines in a triangulation. More... | |
| bool | CheckTopology () |
| Method that check the topology in a triangulation. More... | |
| bool | ContainsPoint (int32_t triangId, te::gm::Point &pt) |
| Method that verifies if a triangle contains a given point. More... | |
| bool | CreateDelaunay () |
| Method that creates a Delaunay triangulation. More... | |
| bool | CreateInitialTriangles (size_t nsamples) |
| bool | CreateMinAngleTriangulation () |
| Method used to create a Triangulation using the Minimum Angle Method. More... | |
| bool | DefineAkimaCoeficients (int32_t triid, double *coef) |
| Method that defines the coefficients of the Akima polynomium fitted in a given triangle. More... | |
| bool | DefineAkimaCoeficients (int32_t triid, int32_t *nodesid, te::gm::Point *p3d, double *coef) |
| Method that defines the coefficients of the Akima polynomium fitted in a given triangle. More... | |
| bool | DefineInterLinesColumns (int32_t *nodesid, int32_t &flin, int32_t &llin, int32_t &fcol, int32_t &lcol) |
| Method that calculates the lines and the columns intercepted by a triangle. More... | |
| bool | DeleteNode (int32_t node) |
| Method used to delete a node in a TIN (Triangular Irregular Network) More... | |
| int32_t | DuplicateTriangle (int32_t t, short n, int32_t v, int32_t *testLines) |
| Method used to duplicate a triangle in a TIN (Triangular Irregular Network) More... | |
| bool | DupNeighTriangle (int32_t tv, int32_t an0, short, int32_t v, int32_t *testLines) |
| Method used to duplicate a neighbour triangle in a TIN (Triangular Irregular Network) More... | |
| int32_t | ExchangePolygon (int32_t triangId, int32_t newPolyId, unsigned short edge) |
| Method that exchanges polygon. More... | |
| bool | FillGridValue (int32_t triid, int32_t flin, int32_t llin, int32_t fcol, int32_t lcol, double zvalue) |
| Method that fills the grid locations, inside a triangle, with a zvalue. More... | |
| bool | FindInterPoints (te::gm::Point &pf, te::gm::Point &pn, std::vector< te::gm::Point > &p3d, std::vector< bool > &fixed) |
| Method fint the point that intersects two triangles containing points pf and pn. More... | |
| std::vector< int32_t > | FindLine (int32_t nid) |
| Method that find a line containing a specific node. More... | |
| int32_t | FindLine (int32_t fnid, int32_t snid) |
| Method that find a line given two nodes identification. More... | |
| int32_t | FindTriangle (te::gm::Point &ptr1) |
| Method that finds a triangle containing a given point. More... | |
| bool | GenerateDelaunay (int32_t nt, int32_t ntbase, int32_t contr) |
| Method that generates a Delaunay triangulation. More... | |
| te::da::DataSetType * | GetDataSetType (std::string &outDsetName) |
| bool | InsertBreakLines () |
| bool | InsertBreakNodes (te::gm::MultiLineString &breaklines) |
| bool | InsertNode (int32_t nodeid, int type) |
| Method used to insert a node in a TIN (Triangular Irregular Network) More... | |
| bool | InsertNodes (const te::gm::MultiPoint &mpt, const te::gm::MultiLineString &mls) |
| bool | IsBreaklineSegment (int32_t linid) |
| Method that veryfies if the Breakline is a segment. More... | |
| bool | IsIsolineSegment (int32_t linid) |
| Method that veryfies if the Isoline is a segment. More... | |
| bool | IsNeighborOnIsoOrBreakline (int32_t triId, unsigned short nviz) |
| bool | IsolinesConstrained () |
| Method that define the Constrained Isolines. More... | |
| bool | LoadTin () |
| Method used to load a triangular network (TIN) More... | |
| bool | ModifyBoundTriangles () |
| Method that modifies the bounds of Triangles. More... | |
| te::gm::Geometry * | neigh_union (te::gm::Geometry *tri_union, int32_t tri, std::vector< int32_t > &used_tri_all, std::map< int32_t, te::gm::Polygon > &pol_tri) |
| bool | NeighborsId (int32_t triangId, int32_t *neighsId) |
| int32_t | NextNode (int32_t nodeId) |
| Method that finds out which is the next node. More... | |
| bool | NodeClosestPoints (int32_t nid, int32_t *clstNids, bool useBrNode=true) |
| Method that searches the closest points of a specific node. More... | |
| bool | NodeDerivatives () |
| Method that calculates the first and second derivatives in the nodes of a given triangle. More... | |
| bool | NodeExchange (int32_t oldNode, int32_t newNode) |
| Method used to exchange two nodes in a TIN (Triangular Irregular Network) More... | |
| bool | NodeFirstDeriv () |
| Method that calculates the first derivatives in the nodes of a given triangle. More... | |
| int32_t | NodeId (int32_t triangId, short vertex) |
| Method that reads the identification number of the nodes of a given triangle. More... | |
| bool | NodeLines (int32_t v, std::vector< int32_t > &linids) |
| Method that includes a node in the tin line list. More... | |
| bool | NodeNodes (int32_t v, std::vector< int32_t > &nodids) |
| Method that includes a node in the tin node list. More... | |
| bool | NodeOppositeLines (int32_t v, std::vector< int32_t > &linids) |
| Method that find the oposite lines of a specific node. More... | |
| bool | NodeSecondDeriv () |
| Method that calculates the second derivative at all triangulation nodes. More... | |
| bool | NodesId (int32_t triangId, int32_t *nodeIds) |
| Method that reads the identification number of the nodes of a given triangle. More... | |
| int32_t | NodeTriangle (int32_t v) |
| Method that search a node in a triangulation. More... | |
| bool | NodeTriangles (int32_t v, std::vector< int32_t > &triangles) |
| Method that includes a node in a triangle list. More... | |
| bool | NodeTriangles (int32_t nodeid, std::vector< int32_t > &rightri, std::vector< int32_t > &leftri) |
| Method that find the triangle list sharing a given node. More... | |
| bool | OnIsolineSegment (int32_t linid, te::gm::Point &pt3d, bool &fixed) |
| Method that checks if a point 3D is on the isoline segment. More... | |
| int32_t | OppositeEdge (int32_t triangId, int32_t nodeId) |
| Method that reads the identification number of the opposite edge of a given node. More... | |
| int32_t | OppositeNode (int32_t triangId, int32_t linId) |
| Method that reads the identification number of the opposite node of a given edge. More... | |
| bool | OrderLines () |
| Method that order lines. More... | |
| int32_t | PreviousNode (int32_t nodeId) |
| Method that finds out which is the previous node. More... | |
| size_t | ReadBreakLines (te::gm::MultiPoint &mpt, te::gm::MultiLineString &isolines, std::string &geostype) |
| bool | ReallocateVectors (size_t nSize) |
| Method that reallocates Vectors. More... | |
| bool | ReCreateDelaunay () |
| Method that recreates a Delaunay triangulation. More... | |
| bool | ReGenerateDelaunay (int32_t nt, int32_t ntbase, int32_t contr) |
| Method that regenerates a Delaunay triangulation. More... | |
| bool | RegeneratewithNewPoints (std::vector< te::gm::Point > &p3dl, std::vector< bool > &fixed) |
| bool | SaveTin () |
| bool | TestAngleBetweenNormals (int32_t triId, short nviz) |
| Method used to test the angle between two normals. More... | |
| bool | TestDelaunay (int32_t tri1Id, int32_t tri2Id, int32_t tri3Id) |
| Method used to test if the triangulation follows the Delaunay rule. More... | |
| bool | TestDelaunay (int32_t tri1Id, int32_t tri2Id, int32_t tri3Id, int32_t tri4Id) |
| Method used to test if the triangulation follows the Delaunay rule. More... | |
| bool | TestDelaunay (int32_t linId) |
| Method used to test if the triangulation follows the Delaunay rule. More... | |
| bool | TestDelaunay (int32_t triId, short nviz) |
| Method used to test if the triangulation follows the Delaunay rule. More... | |
| bool | TestFlatTriangles () |
| Method that test if has flat triangles and regenerate them. More... | |
| bool | TestIsolines (int iter) |
| Method that test the Isolines. More... | |
| bool | TriangleFirstDeriv () |
| Method that calculates the first derivatives in the nodes of a given triangle. More... | |
| bool | TrianglePoints (int32_t triangId, te::gm::Point *vertex) |
| Method that reads the vertex (points) of a given triangle. More... | |
| bool | TriangleSecondDeriv () |
| Method that calculates the second derivatives in the nodes of a given triangle. More... | |
| bool | TwoNewTriangles (int32_t t, int32_t nodeId, int32_t *testLines) |
| Method used to create two new triangles in a TIN (Triangular Irregular Network) More... | |
| bool | UpdateTriangles (int32_t t, int32_t tv, int32_t ai) |
| Method used to Update Triangles of a given triangulation. More... | |
Protected Attributes | |
| std::string | m_atrZ_point |
| std::string | m_atrZ_sample |
| te::gm::Envelope | m_env |
| Attribute used to restrict the area to generate the samples. More... | |
| int32_t | m_fbnode |
| First break node number. More... | |
| std::string | m_inDsetName_break |
| std::string | m_inDsetName_point |
| std::string | m_inDsetName_sample |
| std::unique_ptr< te::da::DataSetType > | m_inDsetType_break |
| std::unique_ptr< te::da::DataSetType > | m_inDsetType_point |
| std::unique_ptr< te::da::DataSetType > | m_inDsetType_sample |
| te::da::DataSourcePtr | m_inDsrc_break |
| te::da::DataSourcePtr | m_inDsrc_point |
| te::da::DataSourcePtr | m_inDsrc_sample |
| std::vector< TinLine > | m_line |
| Triangulation lines vector. More... | |
| size_t | m_linesize |
| Triangulation lines vector size. More... | |
| int32_t | m_lline |
| Triangulation last line number. More... | |
| int32_t | m_lnode |
| Triangulation last node number. More... | |
| int32_t | m_ltriang |
| Triangulation last triangle number. More... | |
| double | m_max |
| double | m_maxdist |
| Triangulation lines simplification maximum distance. More... | |
| int | m_method |
| Triangulation method Delanay or Smaller Angle. More... | |
| double | m_min |
| double | m_minedgesize |
| Triangulation edges minimum size. More... | |
| std::vector< te::gm::Point > | m_nblfderiv |
| std::vector< TinNode > | m_nblsderiv |
| std::vector< te::gm::Point > | m_nbrfderiv |
| std::vector< TinNode > | m_nbrsderiv |
| std::vector< te::gm::Point > | m_nfderiv |
| double | m_nodatavalue |
| std::vector< TinNode > | m_node |
| Triangulation nodes vector. More... | |
| size_t | m_nodesize |
| Triangulation nodes vector size. More... | |
| std::vector< TinNode > | m_nsderiv |
| std::string | m_outDsetName |
| te::da::DataSourcePtr | m_outDsrc |
| double | m_resx |
| double | m_resy |
| te::rst::Raster * | m_rst |
| int | m_srid |
| Attribute with spatial reference information. More... | |
| std::vector< te::gm::Point > | m_tfderiv |
| double | m_tolerance |
| Triangulation lines simplification tolerance. More... | |
| double | m_tolerance_break |
| Triangulation breaklines simplification tolerance. More... | |
| std::vector< TinTriang > | m_triang |
| Triangulation triangles vector. More... | |
| size_t | m_triangsize |
| Triangulation triangles vector size. More... | |
| std::vector< TinNode > | m_tsderiv |
Class to generate TIN.
Definition at line 37 of file TINGeneration.h.
| te::mnt::TINGeneration::TINGeneration | ( | ) |
Default constructor.
Definition at line 27 of file TINGeneration.cpp.
References m_atrZ_point, m_atrZ_sample, m_inDsetName_point, m_inDsetName_sample, m_maxdist, m_minedgesize, te::mnt::Tin::m_srid, m_tolerance, and ~TINGeneration().
|
default |
Referenced by TINGeneration().
|
protected |
Definition at line 2854 of file TINGeneration.cpp.
References te::mnt::Box, te::mnt::Deletedline, te::mnt::Tin::m_line, te::mnt::Tin::m_node, te::mnt::Tin::m_triang, and te::mnt::Tin::NodeLines().
|
protectedinherited |
Method that searches the Break node closest points.
| nid | is the node identification number |
| rClstNids | is a pointer to a list of right node identificators |
| lClstNids | is a pointer to a list of left node identificators |
Definition at line 2547 of file Tin.cpp.
References CLNODES, te::mnt::TinLine::getLeftPolygon(), te::mnt::TinLine::getNodeFrom(), te::mnt::TinLine::getNodeTo(), and te::mnt::TinLine::getRightPolygon().
|
protectedinherited |
Method that calculates the first derivatives in the nodes of a given break triangle.
|
protectedinherited |
Method that calculates the second derivative at all triangulation break nodes.
Definition at line 2768 of file Tin.cpp.
References te::mnt::Breaklinenormal, CLNODES, te::mnt::Deletednode, te::mnt::TinLine::getType(), te::mnt::TinNode::getX(), te::mnt::TinNode::getY(), and te::mnt::TinNode::getZ().
|
protectedinherited |
Method that calculates the second derivatives in the nodes of a given break triangle.
Definition at line 2417 of file Tin.cpp.
References te::mnt::Breaklinefirst, te::mnt::Breaklinelast, te::mnt::Deletednode, te::mnt::TinLine::getType(), te::common::TaskProgress::isActive(), te::common::TaskProgress::pulse(), and te::common::TaskProgress::UNDEFINED.
|
inherited |
Definition at line 1427 of file Tin.cpp.
References te::mnt::Breaklinefirst, te::gm::Geometry::getMBR(), te::mnt::TinLine::getNodeFrom(), te::mnt::TinLine::getNodeTo(), te::gm::LineString::getPointN(), te::mnt::TinNode::getType(), te::gm::Coord2D::getX(), te::gm::Coord2D::getY(), te::mnt::TinNode::Init(), te::sam::rtree::Index< DATATYPE, MAXNODES, MINNODES >::insert(), te::sam::kdtree::Index< KdTreeNode >::insert(), te::mnt::Normalline, p, te::sam::rtree::Index< DATATYPE, MAXNODES, MINNODES >::search(), te::sam::kdtree::Index< KdTreeNode >::search(), and te::mnt::TinLine::TinLine().
|
protectedinherited |
Method that calculates the first derivative in a given node.
| nodeid | is the node identification number |
| clstNodes | is the vector of a list of nodes) |
Definition at line 2132 of file Tin.cpp.
References CLNODES, te::gm::Point::getX(), te::gm::Point::getY(), te::gm::Point::getZ(), te::gm::PointZType, te::gm::Point::setX(), te::gm::Point::setY(), te::gm::Point::setZ(), and te::mnt::triangleNormalVector().
|
protectedinherited |
Method that calculates the second derivative in a given node.
| nodeid | is the node identification number |
| clstNIds | is the vector of a list of nodes identification |
Definition at line 2206 of file Tin.cpp.
References te::mnt::Breaklinenormal, CLNODES, te::mnt::Deletednode, te::mnt::TinLine::getType(), te::gm::Point::getX(), te::gm::Point::getY(), te::gm::Point::getZ(), te::common::TaskProgress::isActive(), te::gm::PointZType, te::common::TaskProgress::pulse(), te::gm::Point::setX(), te::mnt::TinNode::setX(), te::gm::Point::setY(), te::mnt::TinNode::setY(), te::gm::Point::setZ(), te::mnt::TinNode::setZ(), te::mnt::triangleNormalVector(), and te::common::TaskProgress::UNDEFINED.
|
protectedinherited |
Method that calculates the second derivatives in a node of a given triangle.
| triangles | is a pointer to a list of triangle identificators (SIDList object) |
| fderiv | is a pointer to a Point object representing the first derivative in x and y directions |
Definition at line 2672 of file Tin.cpp.
References te::mnt::TinLine::getType(), te::mnt::Last, te::gm::PointZType, te::mnt::Sample, and te::mnt::triangleNormalVector().
|
protectedinherited |
Method that evaluates Z values for pt1 and pt2 using the Akima polynomium fitted in a triangle.
| triid | is the triangle identificator number |
| pt1 | is a pointer to a Point3d object |
| pt2 | is a pointer to a Point3d object |
Definition at line 2933 of file Tin.cpp.
References te::gm::Point::getX(), te::gm::Point::getY(), and te::gm::Point::setZ().
Referenced by FindInterPoints(), and TestFlatTriangles().
|
protectedinherited |
Method that check the lines in a triangulation.
Definition at line 2886 of file Tin.cpp.
References b, d, te::mnt::TinLine::getLeftPolygon(), te::mnt::TinLine::getNodeFrom(), te::mnt::TinLine::getNodeTo(), te::mnt::TinLine::getRightPolygon(), and te::mnt::TinLine::SwapPolygon().
|
protectedinherited |
Method that check the topology in a triangulation.
Definition at line 2873 of file Tin.cpp.
Referenced by RegeneratewithNewPoints().
|
protectedinherited |
Method that verifies if a triangle contains a given point.
| triangId | is the triangle identification number |
| pt | is a pointer to a te::gm::PointZ object |
Definition at line 461 of file Tin.cpp.
References te::gm::Point::getX(), te::gm::Point::getY(), and te::gm::PointZType.
Referenced by te::mnt::TINCalculateGrid::FillGridLinear(), and te::mnt::TINCalculateGrid::FillGridQuintic().
|
protected |
Method that creates a Delaunay triangulation.
Definition at line 1359 of file TINGeneration.cpp.
References GenerateDelaunay(), te::common::TaskProgress::isActive(), te::mnt::Tin::m_ltriang, te::common::TaskProgress::pulse(), and te::common::TaskProgress::UNDEFINED.
Referenced by run().
|
protected |
Create the two initial triangles, based on box.
Definition at line 139 of file TINGeneration.cpp.
References te::mnt::Box, te::gm::Envelope::getLowerLeftX(), te::gm::Envelope::getLowerLeftY(), te::gm::Envelope::getUpperRightX(), te::gm::Envelope::getUpperRightY(), te::mnt::Tin::m_env, te::mnt::Tin::m_line, te::mnt::Tin::m_linesize, te::mnt::Tin::m_lline, te::mnt::Tin::m_lnode, te::mnt::Tin::m_ltriang, te::mnt::Tin::m_nodatavalue, te::mnt::Tin::m_node, te::mnt::Tin::m_nodesize, te::mnt::Tin::m_triang, te::mnt::Tin::m_triangsize, te::gm::PointZType, pt1, pt2, pt3, and te::gm::Point::setZ().
Referenced by run().
|
protected |
Method used to create a Triangulation using the Minimum Angle Method.
Definition at line 1763 of file TINGeneration.cpp.
References te::common::TaskProgress::isActive(), te::mnt::Tin::m_ltriang, te::mnt::Tin::NeighborsId(), te::common::TaskProgress::pulse(), TestAngleBetweenNormals(), and te::common::TaskProgress::UNDEFINED.
Referenced by run().
|
protectedinherited |
Method that defines the coefficients of the Akima polynomium fitted in a given triangle.
| triid | is the triangle identification number |
| coef | is a pointer to a double vector containing the polynomium coefficients |
Definition at line 2991 of file Tin.cpp.
References te::gm::PointZType, te::gm::Point::setX(), te::gm::Point::setY(), and te::gm::Point::setZ().
Referenced by te::mnt::TINCalculateGrid::run().
|
protectedinherited |
Method that defines the coefficients of the Akima polynomium fitted in a given triangle.
| triid | is the triangle identification number |
| nodesid | is the list of triangle nodes identification |
| p3d | is a pointer to a Point3d object |
| coef | is a pointer to a double vector containing the polynomium coefficients |
Definition at line 3012 of file Tin.cpp.
References b, d, te::mnt::TinLine::getLeftPolygon(), te::mnt::TinLine::getNodeFrom(), te::mnt::TinLine::getNodeTo(), te::mnt::TinLine::getRightPolygon(), te::gm::Point::getX(), te::gm::Point::getY(), and te::gm::Point::getZ().
|
protectedinherited |
Method that calculates the lines and the columns intercepted by a triangle.
| grid | is a pointer to a grid object that will be created |
| nodesid | is a vector with nodes identification of the current triangle |
| flin | and llin are the first and the last lines (rows) of the grid |
| fcol | and lcol are the first and the last columns of the grid |
Definition at line 3279 of file Tin.cpp.
References te::gm::Coord2D::getX(), te::gm::Point::getX(), te::gm::Coord2D::getY(), te::gm::Point::getY(), te::mnt::Max(), te::mnt::Min(), and te::rst::Round().
Referenced by te::mnt::Slope::run(), and te::mnt::TINCalculateGrid::run().
|
protected |
Method used to delete a node in a TIN (Triangular Irregular Network)
| node | is the node identification number |
Definition at line 569 of file TINGeneration.cpp.
References te::mnt::Box, te::mnt::Breaklinefirst, te::mnt::Breaklinelast, te::mnt::Breaklinenormal, te::mnt::Deletednode, te::mnt::First, te::mnt::Last, te::mnt::Tin::m_lnode, te::mnt::Tin::m_node, te::mnt::Tin::NextNode(), te::mnt::Normalnode, te::mnt::Tin::PreviousNode(), and te::mnt::Sample.
Referenced by InsertNode().
|
protected |
Method used to duplicate a triangle in a TIN (Triangular Irregular Network)
| t | is a triangle identification number |
| n | is the node identification number |
| v | is a vertex identification number |
| testLines | is a pointer to a vector with number of lines to be tested |
Definition at line 750 of file TINGeneration.cpp.
References ExchangePolygon(), te::mnt::Tin::m_line, te::mnt::Tin::m_linesize, te::mnt::Tin::m_lline, te::mnt::Tin::m_ltriang, te::mnt::Tin::m_node, te::mnt::Tin::m_triang, te::mnt::Tin::m_triangsize, and te::mnt::Tin::NodeId().
Referenced by InsertNode().
|
protected |
Method used to duplicate a neighbour triangle in a TIN (Triangular Irregular Network)
| tv | is a triangle identification number |
| an0 | is an edge identification number |
| v | is a vertex identification number |
| testLines | is a pointer to a vector with number of lines to be tested |
Definition at line 832 of file TINGeneration.cpp.
References ExchangePolygon(), te::mnt::Tin::m_line, te::mnt::Tin::m_linesize, te::mnt::Tin::m_lline, te::mnt::Tin::m_ltriang, te::mnt::Tin::m_triang, and te::mnt::Tin::m_triangsize.
Referenced by InsertNode().
|
protected |
Method that exchanges polygon.
| triangId | is the triangle identification number |
| newPolyId | is the new Polygon identification number |
| edge | is the edge number of the triangle |
Definition at line 1252 of file TINGeneration.cpp.
References te::mnt::Tin::m_line, te::mnt::Tin::m_linesize, and te::mnt::Tin::m_triang.
Referenced by DuplicateTriangle(), DupNeighTriangle(), and TwoNewTriangles().
|
protectedinherited |
Method that fills the grid locations, inside a triangle, with a zvalue.
| triid | is the triangle identification number |
| flin | and llin are the first and the last lines (rows) of the grid |
| fcol | and lcol are the first and the last columns of the grid |
| zvalue | is the z value to be stored in the grid inside the triangle region |
Definition at line 3256 of file Tin.cpp.
References te::gm::Coord2D::getX(), te::gm::Coord2D::getY(), te::gm::PointZType, te::gm::Point::setX(), and te::gm::Point::setY().
Referenced by te::mnt::Slope::run(), and te::mnt::TINCalculateGrid::run().
|
protected |
Method fint the point that intersects two triangles containing points pf and pn.
| pf | is a pointer to the first point |
| pn | is a pointer to the last point |
| p3d | is a pointer to a list of Point3d objects |
Definition at line 2025 of file TINGeneration.cpp.
References te::mnt::Tin::CalcZvalueAkima(), te::mnt::Equal(), te::mnt::Tin::FindTriangle(), te::gm::Point::getX(), te::gm::Point::getY(), IsIsolineSegment(), te::mnt::Tin::m_line, m_minedgesize, te::mnt::Tin::m_nodatavalue, te::mnt::Tin::m_node, m_tolerance, te::mnt::Tin::m_triang, te::mnt::Tin::NeighborsId(), OnIsolineSegment(), te::mnt::onSameSide(), te::mnt::pointToSegmentDistance(), te::gm::PointZType, pt1, pt2, te::mnt::segInterPoint(), te::gm::Point::setX(), te::gm::Point::setY(), and te::gm::Point::setZ().
Referenced by InsertBreakNodes().
|
protectedinherited |
Method that find a line containing a specific node.
| nid | is the node identification number |
Definition at line 641 of file Tin.cpp.
References te::mnt::TinLine::getNodeFrom(), and te::mnt::TinLine::getNodeTo().
Referenced by OrderLines().
|
protectedinherited |
Method that find a line given two nodes identification.
| fnid | is the first node identification number |
| snid | is the second node identification number |
Definition at line 724 of file Tin.cpp.
References te::mnt::TinLine::getNodeFrom(), and te::mnt::TinLine::getNodeTo().
|
protectedinherited |
Method that finds a triangle containing a given point.
| ptr1 | is a pointer to a Point object |
Definition at line 190 of file Tin.cpp.
References te::mnt::TinLine::getLeftPolygon(), te::mnt::TinLine::getNodeFrom(), te::mnt::TinLine::getNodeTo(), te::mnt::TinLine::getRightPolygon(), te::gm::Point::getX(), te::gm::Point::getY(), te::mnt::pointToSegmentDistance(), and te::mnt::segIntersect().
Referenced by FindInterPoints(), and InsertNode().
|
protected |
Method that generates a Delaunay triangulation.
| nt | is the triangle number |
| ntbase | is the base triangle number |
| contr | is a counter |
Definition at line 1386 of file TINGeneration.cpp.
References te::mnt::Tin::m_ltriang, te::mnt::Tin::NeighborsId(), and TestDelaunay().
Referenced by CreateDelaunay().
|
protectedinherited |
Definition at line 1296 of file Tin.cpp.
References te::da::PrimaryKey::add(), te::da::DataSetType::add(), te::dt::DOUBLE_TYPE, te::dt::INT32_TYPE, te::gm::MultiPolygonZType, te::dt::SimpleProperty::setAutoNumber(), te::da::DataSetType::setPrimaryKey(), and te::gm::GeometryProperty::setSRID().
|
inlineinherited |
Definition at line 307 of file Tin.h.
References CLNODES, te::da::GetDataSetType(), pt1, and pt2.
Referenced by te::mnt::MNTGenerationDialog::onOkPushButtonClicked().
|
inlineinherited |
Definition at line 306 of file Tin.h.
Referenced by te::mnt::MNTGenerationDialog::onOkPushButtonClicked().
|
protected |
Definition at line 2013 of file TINGeneration.cpp.
References InsertBreakNodes(), te::mnt::Tin::m_srid, te::gm::MultiLineStringZType, te::gm::MultiPointZType, and ReadBreakLines().
Referenced by run().
|
protected |
Definition at line 1954 of file TINGeneration.cpp.
References FindInterPoints(), te::gm::GeometryCollection::getGeometryN(), te::gm::LineString::getNPoints(), te::gm::GeometryCollection::getNumGeometries(), te::gm::LineString::getPointN(), te::mnt::Tin::m_nsderiv, te::mnt::Tin::NodeDerivatives(), te::gm::PointZType, te::common::TaskProgress::pulse(), RegeneratewithNewPoints(), te::gm::Point::setX(), te::gm::Point::setY(), te::gm::Point::setZ(), and te::common::TaskProgress::UNDEFINED.
Referenced by InsertBreakLines().
Method used to insert a node in a TIN (Triangular Irregular Network)
| nodeId | is the node identification number |
| type | is the node type (0 - if Delaunay) |
Definition at line 348 of file TINGeneration.cpp.
References te::gm::Envelope::contains(), DeleteNode(), DuplicateTriangle(), DupNeighTriangle(), te::mnt::Tin::FindTriangle(), te::gm::Geometry::getMBR(), te::gm::Point::getX(), te::gm::Point::getY(), te::gm::Point::getZ(), te::mnt::Tin::m_env, te::mnt::Tin::m_ltriang, m_minedgesize, te::mnt::Tin::m_node, te::mnt::Tin::m_triang, te::mnt::Tin::m_triangsize, te::mnt::Tin::NeighborsId(), NodeExchange(), te::mnt::Tin::NodesId(), te::mnt::Tin::OppositeNode(), te::mnt::pointToSegmentDistance(), te::gm::PointZType, te::gm::Point::setZ(), TestDelaunay(), te::mnt::Tin::TrianglePoints(), and TwoNewTriangles().
Referenced by InsertNodes(), RegeneratewithNewPoints(), and TestIsolines().
|
protected |
Convert samples to nodes and insert them in Tin. If farther than a tolerance from the closest point.
Definition at line 255 of file TINGeneration.cpp.
References te::sam::kdtree::Index< KdTreeNode >::clear(), te::mnt::Deletednode, te::mnt::First, te::gm::GeometryCollection::getGeometryN(), te::gm::LineString::getNPoints(), te::gm::GeometryCollection::getNumGeometries(), te::gm::LineString::getPointN(), te::sam::kdtree::Index< KdTreeNode >::insert(), InsertNode(), te::common::TaskProgress::isActive(), te::mnt::Last, te::mnt::Tin::m_fbnode, te::mnt::Tin::m_lnode, te::mnt::Tin::m_node, te::mnt::Tin::m_nodesize, te::mnt::Normalnode, p, te::gm::PointZType, te::common::TaskProgress::pulse(), te::mnt::Sample, te::sam::kdtree::Index< KdTreeNode >::search(), te::gm::Point::setZ(), and te::common::TaskProgress::UNDEFINED.
Referenced by run().
|
protected |
Method that veryfies if the Breakline is a segment.
| linid | is the line identification number |
Definition at line 1306 of file TINGeneration.cpp.
References te::mnt::Breaklinefirst, te::mnt::Breaklinelast, te::mnt::Breaklinenormal, te::mnt::Tin::m_line, te::mnt::Tin::m_node, te::mnt::Tin::NextNode(), and te::mnt::Sample.
Referenced by IsNeighborOnIsoOrBreakline().
|
protected |
Method that veryfies if the Isoline is a segment.
| linid | is the line identification number |
Definition at line 1267 of file TINGeneration.cpp.
References te::mnt::First, te::mnt::Last, te::mnt::Tin::m_line, te::mnt::Tin::m_node, te::mnt::Tin::NextNode(), and te::mnt::Sample.
Referenced by FindInterPoints(), IsNeighborOnIsoOrBreakline(), and OnIsolineSegment().
|
protected |
Definition at line 1346 of file TINGeneration.cpp.
References IsBreaklineSegment(), IsIsolineSegment(), and te::mnt::Tin::m_triang.
Referenced by ReGenerateDelaunay(), and TestDelaunay().
|
protected |
Method that define the Constrained Isolines.
Definition at line 1508 of file TINGeneration.cpp.
References TestIsolines().
Referenced by run().
|
protected |
Method used to load a triangular network (TIN)
|
inherited |
Method used to load a triangular network (TIN)
Definition at line 1624 of file Tin.cpp.
References te::dt::GEOMETRY_TYPE, te::da::GetFirstPropertyPos(), te::gm::GeometryCollection::getGeometryN(), te::gm::CurvePolygon::getRingN(), te::common::TaskProgress::isActive(), te::common::TaskProgress::pulse(), and te::common::TaskProgress::UNDEFINED.
Referenced by te::mnt::TINCreateIsolines::run(), te::mnt::Slope::run(), and te::mnt::TINCalculateGrid::run().
|
inherited |
Method used to load a triangular network (TIN) generated by QGIS.
Definition at line 1540 of file Tin.cpp.
References te::dt::GEOMETRY_TYPE, te::da::GetFirstGeomProperty(), te::da::GetFirstPropertyPos(), te::gm::GeometryCollection::getGeometryN(), te::gm::GeometryCollection::getNumGeometries(), te::gm::CurvePolygon::getRingN(), te::gm::LineString::getZ(), te::gm::MultiPolygonType, te::mnt::Normalnode, te::gm::PolygonType, TE_TR, and te::common::Exception::what().
|
protected |
Method that modifies the bounds of Triangles.
Definition at line 1423 of file TINGeneration.cpp.
References te::mnt::Box, te::mnt::Deletednode, te::mnt::Tin::m_line, te::mnt::Tin::m_nodatavalue, te::mnt::Tin::m_node, te::mnt::Tin::m_triang, te::mnt::Tin::NeighborsId(), te::mnt::Tin::NodeLines(), te::mnt::Sample, and UpdateTriangles().
Referenced by run().
|
protected |
Definition at line 2754 of file TINGeneration.cpp.
References te::gm::LinearRing::clone(), te::gm::LineStringZType, te::mnt::Tin::m_srid, te::mnt::Tin::NeighborsId(), te::gm::PointZType, te::gm::PolygonZType, te::gm::CurvePolygon::setRingN(), te::gm::LineString::setX(), te::gm::LineString::setY(), te::gm::LineString::setZ(), te::mnt::Tin::TrianglePoints(), and te::gm::Geometry::Union().
|
protectedinherited |
Definition at line 950 of file Tin.cpp.
References te::mnt::TinLine::getLeftPolygon(), and te::mnt::TinLine::getRightPolygon().
Referenced by CreateMinAngleTriangulation(), FindInterPoints(), GenerateDelaunay(), InsertNode(), ModifyBoundTriangles(), neigh_union(), ReGenerateDelaunay(), te::mnt::TINCalculateGrid::run(), TestAngleBetweenNormals(), TestDelaunay(), and TestFlatTriangles().
|
protectedinherited |
Method that finds out which is the next node.
| nodeId | is the node identification number |
Definition at line 999 of file Tin.cpp.
References te::mnt::Deletednode, and te::mnt::TinLine::getType().
Referenced by DeleteNode(), IsBreaklineSegment(), IsIsolineSegment(), OrderLines(), and TestIsolines().
|
protectedinherited |
Method that searches the closest points of a specific node.
| nid | is the node identification number |
| clstNids | is a pointer to a list of closest node identificators |
| useBrNode | is the break nodeidentification |
Definition at line 2073 of file Tin.cpp.
References CLNODES, te::mnt::TinLine::getNodeFrom(), and te::mnt::TinLine::getNodeTo().
|
protectedinherited |
Method that calculates the first and second derivatives in the nodes of a given triangle.
Definition at line 1743 of file Tin.cpp.
Referenced by InsertBreakNodes(), te::mnt::Slope::run(), te::mnt::TINCalculateGrid::run(), and TestFlatTriangles().
|
protected |
Method used to exchange two nodes in a TIN (Triangular Irregular Network)
| oldNnode | is the old node identification number |
| newNnode | is the new node identification number |
Definition at line 663 of file TINGeneration.cpp.
References te::mnt::Tin::m_line, te::mnt::Tin::m_node, and te::mnt::Tin::NodeLines().
Referenced by InsertNode().
|
protectedinherited |
Method that calculates the first derivatives in the nodes of a given triangle.
Definition at line 1983 of file Tin.cpp.
References CLNODES, te::mnt::Deletednode, te::mnt::TinLine::getType(), te::common::TaskProgress::isActive(), te::gm::PointZType, te::common::TaskProgress::pulse(), te::gm::Point::setX(), te::gm::Point::setY(), te::gm::Point::setZ(), and te::common::TaskProgress::UNDEFINED.
|
protectedinherited |
Method that reads the identification number of the nodes of a given triangle.
| triangId | is the triangle identification number |
| vertex | is the number of the vertex to be considered |
Definition at line 903 of file Tin.cpp.
Referenced by DuplicateTriangle(), TestIsolines(), and TwoNewTriangles().
|
protectedinherited |
Method that includes a node in the tin line list.
| v | is the node identificator number |
| linids | is a pointer to a list of line identificators |
Definition at line 810 of file Tin.cpp.
References te::mnt::TinLine::getLeftPolygon(), te::mnt::TinLine::getNodeFrom(), te::mnt::TinLine::getNodeTo(), te::mnt::TinLine::getRightPolygon(), and td.
Referenced by borderUp(), ModifyBoundTriangles(), and NodeExchange().
|
protectedinherited |
Method that includes a node in the tin node list.
| v | is the node identification number |
| nodids | is a pointer to a list of node identificators |
Definition at line 1038 of file Tin.cpp.
References te::mnt::TinLine::getLeftPolygon(), te::mnt::TinLine::getNodeFrom(), te::mnt::TinLine::getNodeTo(), te::mnt::TinLine::getRightPolygon(), and td.
|
protectedinherited |
Method that find the oposite lines of a specific node.
| v | is the node identification number |
| linids | is pointer to a list of line identificators |
Definition at line 492 of file Tin.cpp.
References te::mnt::TinLine::getLeftPolygon(), te::mnt::TinLine::getNodeFrom(), te::mnt::TinLine::getNodeTo(), te::mnt::TinLine::getRightPolygon(), and td.
Referenced by TestIsolines().
|
protectedinherited |
Method that calculates the second derivative at all triangulation nodes.
Definition at line 2027 of file Tin.cpp.
References CLNODES, te::mnt::Deletednode, te::mnt::TinLine::getType(), te::mnt::TinNode::getX(), te::mnt::TinNode::getY(), te::mnt::TinNode::getZ(), te::mnt::TinNode::Init(), te::common::TaskProgress::isActive(), te::common::TaskProgress::pulse(), and te::common::TaskProgress::UNDEFINED.
|
protectedinherited |
Method that reads the identification number of the nodes of a given triangle.
| triangId | is the triangle identification number |
| nodesIds | is a pointer to a list of node identification numbers |
Definition at line 913 of file Tin.cpp.
References te::mnt::TinLine::getNodeFrom(), and te::mnt::TinLine::getNodeTo().
Referenced by InsertNode(), te::mnt::TINCreateIsolines::run(), te::mnt::Slope::run(), te::mnt::TINCalculateGrid::run(), and UpdateTriangles().
|
protectedinherited |
Method that search a node in a triangulation.
| v | is the node identification number |
Definition at line 1140 of file Tin.cpp.
References te::mnt::TinLine::getLeftPolygon(), te::mnt::TinLine::getRightPolygon(), and td.
|
protectedinherited |
Method that includes a node in a triangle list.
| v | is the node identification number |
| triangles | is pointer to a vetor of triangles |
Definition at line 1159 of file Tin.cpp.
References te::mnt::TinLine::getLeftPolygon(), te::mnt::TinLine::getNodeFrom(), te::mnt::TinLine::getNodeTo(), te::mnt::TinLine::getRightPolygon(), and td.
|
protectedinherited |
Method that find the triangle list sharing a given node.
| nodeid | is the node identification number |
| rightri | is a pointer to the triangles at right side |
| lefttri | is a pointer to the triangles at left side |
Definition at line 2460 of file Tin.cpp.
References te::mnt::TinLine::getLeftPolygon(), te::mnt::TinLine::getNodeFrom(), te::mnt::TinLine::getNodeTo(), and te::mnt::TinLine::getRightPolygon().
|
protected |
Method that checks if a point 3D is on the isoline segment.
| linid | is the line identification number |
| pt3d | is a pointer to a list of Point3D objects |
Definition at line 2486 of file TINGeneration.cpp.
References IsIsolineSegment(), te::mnt::Tin::m_line, m_minedgesize, te::mnt::Tin::m_node, te::mnt::onSegment(), pt1, pt2, and te::gm::Point::setZ().
Referenced by FindInterPoints().
|
protectedinherited |
Method that reads the identification number of the opposite edge of a given node.
| triangId | is the triangle identification number |
| nodeId | is the node identification number |
Definition at line 619 of file Tin.cpp.
References te::mnt::TinLine::getNodeFrom(), and te::mnt::TinLine::getNodeTo().
|
protectedinherited |
Method that reads the identification number of the opposite node of a given edge.
| triangId | is the triangle identification number |
| linId | is the line identification number |
Definition at line 975 of file Tin.cpp.
References te::mnt::TinLine::getNodeFrom(), and te::mnt::TinLine::getNodeTo().
Referenced by InsertNode(), TestAngleBetweenNormals(), TestDelaunay(), TestIsolines(), and UpdateTriangles().
|
protected |
Method that order lines.
Definition at line 2504 of file TINGeneration.cpp.
References te::mnt::Breaklinefirst, te::mnt::Breaklinelast, te::mnt::Deletednode, te::mnt::Tin::FindLine(), te::mnt::Tin::m_fbnode, te::mnt::Tin::m_line, te::mnt::Tin::m_node, te::mnt::Tin::m_triang, te::mnt::Tin::NextNode(), and te::mnt::Sample.
Referenced by RegeneratewithNewPoints().
|
protectedinherited |
Method that finds out which is the previous node.
| nodeId | is the node identification number |
Definition at line 1018 of file Tin.cpp.
References te::mnt::Deletednode, and te::mnt::TinLine::getType().
Referenced by DeleteNode(), and RegeneratewithNewPoints().
|
protected |
Definition at line 1896 of file TINGeneration.cpp.
References te::gm::GeometryCollection::add(), te::dt::GEOMETRY_TYPE, te::da::GetFirstPropertyPos(), te::gm::GeometryCollection::getGeometryN(), te::gm::GeometryCollection::getNumGeometries(), te::gm::Geometry::getSRID(), te::gm::LineString::getX(), te::gm::LineString::getY(), te::gm::LineStringType, m_inDsetName_break, m_inDsrc_break, m_maxdist, m_tolerance, m_tolerance_break, te::mnt::pointListSimplify(), te::mnt::Tin::setEnvelope(), te::gm::LineString::setPoint(), te::gm::LineString::setSRID(), and te::gm::LineString::size().
Referenced by InsertBreakLines().
|
protectedinherited |
Method that reallocates Vectors.
| nSize | is the vector size |
Definition at line 1267 of file Tin.cpp.
References te::mnt::TinLine::TinLine().
Referenced by RegeneratewithNewPoints(), and TestIsolines().
|
protected |
Method that recreates a Delaunay triangulation.
Definition at line 2620 of file TINGeneration.cpp.
References te::common::TaskProgress::isActive(), te::mnt::Tin::m_ltriang, te::common::TaskProgress::pulse(), ReGenerateDelaunay(), and te::common::TaskProgress::UNDEFINED.
Referenced by RegeneratewithNewPoints().
|
protected |
Method that regenerates a Delaunay triangulation.
| nt | is the triangle number |
| ntbase | is the base triangle number |
| contr | is a counter |
Definition at line 2647 of file TINGeneration.cpp.
References IsNeighborOnIsoOrBreakline(), te::mnt::Tin::m_ltriang, te::mnt::Tin::NeighborsId(), and TestDelaunay().
Referenced by ReCreateDelaunay().
|
protected |
Definition at line 2794 of file TINGeneration.cpp.
References te::mnt::Breaklinelast, te::mnt::Breaklinenormal, te::mnt::Tin::CheckTopology(), te::gm::Point::getX(), InsertNode(), te::mnt::Last, te::mnt::Tin::m_fbnode, te::mnt::Tin::m_lnode, te::mnt::Tin::m_nodatavalue, te::mnt::Tin::m_node, te::mnt::Tin::m_nodesize, te::mnt::Tin::m_nsderiv, m_tolerance, OrderLines(), te::mnt::point3dListFilter(), te::mnt::Tin::PreviousNode(), te::mnt::Tin::ReallocateVectors(), ReCreateDelaunay(), and te::mnt::Sample.
Referenced by InsertBreakNodes(), and TestFlatTriangles().
| bool te::mnt::TINGeneration::run | ( | ) |
Generate TIN \ return true or false.
Definition at line 86 of file TINGeneration.cpp.
References te::mnt::AccumulatedDistance, CreateDelaunay(), CreateInitialTriangles(), CreateMinAngleTriangulation(), te::gm::GeometryCollection::getNumGeometries(), InsertBreakLines(), InsertNodes(), IsolinesConstrained(), m_atrZ_point, m_atrZ_sample, m_inDsetName_point, m_inDsetName_sample, m_inDsrc_break, m_inDsrc_point, m_inDsrc_sample, m_maxdist, m_method, te::mnt::Tin::m_srid, m_tolerance, ModifyBoundTriangles(), te::gm::MultiLineStringZType, te::gm::MultiPointZType, te::mnt::ReadPoints(), te::mnt::ReadSamples(), SaveTin(), and te::mnt::Tin::setEnvelope().
Referenced by GenerateTIN(), and te::mnt::TINGenerationDialog::onOkPushButtonClicked().
|
protected |
Definition at line 134 of file TINGeneration.cpp.
References m_outDsetName, m_outDsrc, and te::mnt::Tin::SaveTin().
Referenced by run().
|
inherited |
Definition at line 1344 of file Tin.cpp.
References te::da::GetDataSetType(), te::mnt::TinLine::getLeftPolygon(), te::mnt::TinLine::getRightPolygon(), te::mnt::TinLine::getType(), te::gm::Point::getZ(), te::common::TaskProgress::isActive(), te::gm::LineStringZType, p, te::gm::PointZType, te::gm::PolygonZType, te::common::TaskProgress::pulse(), te::vp::Save(), te::mem::DataSetItem::setDouble(), te::mem::DataSetItem::setGeometry(), te::mem::DataSetItem::setInt32(), and te::common::TaskProgress::UNDEFINED.
Referenced by SaveTin().
| void te::mnt::TINGeneration::setBreakLine | ( | te::da::DataSourcePtr | inDsrc, |
| std::string | inDsetName, | ||
| std::unique_ptr< te::da::DataSetType > | inDsetType, | ||
| double | tol | ||
| ) |
It sets the BreakLine Datasource that is being used to generate TIN.
| inDsrc | The datasource contains breaklines. |
| inDsetName | |
| inDsetType | |
| tol | breaklines simplification tolerance in meters. |
Definition at line 59 of file TINGeneration.cpp.
References m_inDsetName_break, m_inDsetType_break, m_inDsrc_break, and m_tolerance_break.
Referenced by te::mnt::TINGenerationDialog::onOkPushButtonClicked().
|
inherited |
Function used to set the envelope parameter
Definition at line 182 of file Tin.cpp.
Referenced by ReadBreakLines(), and run().
| void te::mnt::TINGeneration::setInput | ( | te::da::DataSourcePtr | inDsrc, |
| std::string | inDsetName, | ||
| std::unique_ptr< te::da::DataSetType > | inDsetType, | ||
| InputType | type | ||
| ) |
It sets the Datasource that is being used to generate TIN.
| inDsrc | The datasource being used. |
| inDsetName | datasource name |
| inDsetType | input DataSetType |
| type | Input type: Sample or Isoline |
Definition at line 41 of file TINGeneration.cpp.
References te::mnt::Isolines, m_inDsetName_point, m_inDsetName_sample, m_inDsetType_point, m_inDsetType_sample, m_inDsrc_point, and m_inDsrc_sample.
Referenced by GenerateTIN(), and te::mnt::TINGenerationDialog::onOkPushButtonClicked().
|
inline |
Function used to set Triangulation lines simplification maximum distance
Definition at line 96 of file TINGeneration.h.
Referenced by setParams().
|
inline |
Function used to set Triangulation method Delanay or Smaller Angle
Definition at line 102 of file TINGeneration.h.
Referenced by te::mnt::TINGenerationDialog::onOkPushButtonClicked().
|
inline |
Function used to set Triangulation edges minimum size
Definition at line 99 of file TINGeneration.h.
Referenced by setParams().
| void te::mnt::TINGeneration::setOutput | ( | te::da::DataSourcePtr | outDsrc, |
| std::string | dsname | ||
| ) |
It sets the Datasource that is being used to save TIN.
| inDsrc | The output datasource. |
| dsname |
Definition at line 67 of file TINGeneration.cpp.
References m_outDsetName, and m_outDsrc.
Referenced by GenerateTIN(), and te::mnt::TINGenerationDialog::onOkPushButtonClicked().
| void te::mnt::TINGeneration::setParams | ( | const double & | tolerance, |
| const double & | maxdist, | ||
| const double & | minedgesize, | ||
| const std::string & | atrz_iso, | ||
| const std::string & | atrz_pt | ||
| ) |
It sets the parameters to generate TIN.
| tolerance | lines simplification tolerance in meters. |
| maxdist | lines simplification maximum distance in meters. |
| minedgesize | edges minimum size in meters. |
| atrz_iso | isolines attribute contains Z value. |
| atrz_pt | samples attribute contains Z value. |
Definition at line 73 of file TINGeneration.cpp.
References m_atrZ_point, m_atrZ_sample, setMaxdist(), setMinedgesize(), and setTolerance().
Referenced by GenerateTIN(), and te::mnt::TINGenerationDialog::onOkPushButtonClicked().
|
inherited |
Function used to set the Spatial Reference System ID
Definition at line 177 of file Tin.cpp.
Referenced by GenerateIso(), GenerateTIN(), te::mnt::CreateIsolinesDialog::onOkPushButtonClicked(), te::mnt::TINGenerationDialog::onOkPushButtonClicked(), te::mnt::MNTGenerationDialog::onOkPushButtonClicked(), and TINCalculateGrid().
|
inline |
Function used to set Triangulation lines simplification tolerance
Definition at line 93 of file TINGeneration.h.
Referenced by setParams().
|
protected |
Method used to test the angle between two normals.
| triId | is the triangle identification number |
| nviz | is the number of the neighbour triangle |
Definition at line 1797 of file TINGeneration.cpp.
References te::mnt::Tin::m_line, te::mnt::Tin::m_linesize, te::mnt::Tin::m_nodatavalue, te::mnt::Tin::m_node, te::mnt::Tin::m_triang, te::mnt::Tin::NeighborsId(), te::mnt::normalizeVector(), te::mnt::Tin::OppositeNode(), te::gm::PointZType, te::gm::Point::setX(), te::gm::Point::setY(), te::gm::Point::setZ(), te::mnt::triangleNormalVector(), te::mnt::Tin::TrianglePoints(), and UpdateTriangles().
Referenced by CreateMinAngleTriangulation().
|
protected |
Method used to test if the triangulation follows the Delaunay rule.
| tri1Id | is the identification number of the first triangle |
| tri2Id | is the identification number of the second triangle |
| tri3Id | is the identification number of the third triangle |
Definition at line 895 of file TINGeneration.cpp.
References IsNeighborOnIsoOrBreakline(), and te::mnt::Tin::NeighborsId().
Referenced by GenerateDelaunay(), InsertNode(), ReGenerateDelaunay(), and TestDelaunay().
|
protected |
Method used to test if the triangulation follows the Delaunay rule.
| tri1Id | is the identification number of the first triangle |
| tri2Id | is the identification number of the second triangle |
| tri3Id | is the identification number of the third triangle |
| tri4Id | is the identification number of the fourth triangle |
Definition at line 937 of file TINGeneration.cpp.
References IsNeighborOnIsoOrBreakline(), te::mnt::Tin::NeighborsId(), and TestDelaunay().
|
protected |
Method used to test if the triangulation follows the Delaunay rule.
| linId | is the identification number of a line |
Definition at line 989 of file TINGeneration.cpp.
References te::mnt::Tin::m_line, te::mnt::Tin::m_triang, and TestDelaunay().
|
protected |
Method used to test if the triangulation follows the Delaunay rule.
| triId | is a triangle identification number |
| nviz | is the number of the neighbor of the triangle triId |
Definition at line 1012 of file TINGeneration.cpp.
References te::mnt::findCenter(), te::gm::Point::getX(), te::gm::Point::getY(), te::mnt::Tin::m_linesize, te::mnt::Tin::m_node, te::mnt::Tin::m_nodesize, te::mnt::Tin::m_triang, te::mnt::Tin::NeighborsId(), te::mnt::Tin::OppositeNode(), te::gm::PointZType, te::gm::Point::setX(), te::gm::Point::setY(), te::mnt::Tin::TrianglePoints(), and UpdateTriangles().
|
protected |
Method that test if has flat triangles and regenerate them.
Definition at line 2684 of file TINGeneration.cpp.
References te::mnt::Tin::CalcZvalueAkima(), te::mnt::Tin::m_nsderiv, te::mnt::Tin::m_triangsize, te::mnt::Tin::NeighborsId(), te::mnt::Tin::NodeDerivatives(), te::gm::PointZType, RegeneratewithNewPoints(), te::gm::Point::setX(), te::gm::Point::setY(), and te::mnt::Tin::TrianglePoints().
Method that test the Isolines.
Definition at line 1519 of file TINGeneration.cpp.
References te::mnt::Deletednode, te::mnt::First, te::mnt::TinNode::getNPoint(), te::mnt::TinNode::getType(), te::gm::Point::getX(), te::gm::Point::getY(), InsertNode(), te::common::TaskProgress::isActive(), te::mnt::Last, te::mnt::Tin::m_line, te::mnt::Tin::m_linesize, te::mnt::Tin::m_lnode, te::mnt::Tin::m_node, te::mnt::Tin::m_nodesize, te::mnt::Tin::m_triang, te::mnt::Tin::NextNode(), te::mnt::Tin::NodeId(), te::mnt::Tin::NodeOppositeLines(), te::mnt::Normalnode, te::mnt::Tin::OppositeNode(), te::gm::PointZType, pt1, te::common::TaskProgress::pulse(), te::mnt::Tin::ReallocateVectors(), te::mnt::Sample, te::mnt::segInterPoint(), te::mnt::TinNode::setNPoint(), te::mnt::TinNode::setType(), te::mnt::TinNode::setX(), te::mnt::TinNode::setY(), te::mnt::TinNode::setZ(), te::common::TaskProgress::UNDEFINED, and UpdateTriangles().
Referenced by IsolinesConstrained().
|
protectedinherited |
Method that calculates the first derivatives in the nodes of a given triangle.
Definition at line 1780 of file Tin.cpp.
References te::gm::Point::getX(), te::gm::Point::getY(), te::common::TaskProgress::isActive(), te::gm::PointZType, te::common::TaskProgress::pulse(), te::gm::Point::setX(), te::gm::Point::setY(), te::gm::Point::setZ(), te::mnt::triangleNormalVector(), and te::common::TaskProgress::UNDEFINED.
|
protectedinherited |
Method that reads the vertex (points) of a given triangle.
| triangId | is the triangle identification number |
| vertex | is a pointer to a list of Point object, the triangle vertices |
Definition at line 400 of file Tin.cpp.
References te::mnt::TinLine::getNodeFrom(), te::mnt::TinLine::getNodeTo(), te::gm::Point::setX(), te::gm::Point::setY(), and te::gm::Point::setZ().
Referenced by InsertNode(), neigh_union(), TestAngleBetweenNormals(), TestDelaunay(), and TestFlatTriangles().
|
protectedinherited |
Method that calculates the second derivatives in the nodes of a given triangle.
Definition at line 1867 of file Tin.cpp.
References te::gm::Point::getZ(), te::common::TaskProgress::isActive(), te::gm::PointZType, te::common::TaskProgress::pulse(), te::gm::Point::setX(), te::gm::Point::setY(), te::gm::Point::setZ(), te::mnt::triangleNormalVector(), and te::common::TaskProgress::UNDEFINED.
|
protected |
Method used to create two new triangles in a TIN (Triangular Irregular Network)
| t | is a triangle identification number |
| nodeId | is a node identification number |
| testLines | is a pointer to a vector with number of lines to be tested |
Definition at line 684 of file TINGeneration.cpp.
References ExchangePolygon(), te::mnt::Tin::m_line, te::mnt::Tin::m_lline, te::mnt::Tin::m_ltriang, te::mnt::Tin::m_node, te::mnt::Tin::m_triang, te::mnt::Tin::m_triangsize, and te::mnt::Tin::NodeId().
Referenced by InsertNode().
|
protected |
Method used to Update Triangles of a given triangulation.
| t | is a triangle identification number |
| tv | is a triangle identification number |
| ai | is a side number of a triangle |
Definition at line 1095 of file TINGeneration.cpp.
References te::mnt::Tin::m_line, te::mnt::Tin::m_node, te::mnt::Tin::m_triang, te::mnt::Tin::NodesId(), te::mnt::Tin::OppositeNode(), and te::mnt::segIntersect().
Referenced by ModifyBoundTriangles(), TestAngleBetweenNormals(), TestDelaunay(), and TestIsolines().
|
protected |
Definition at line 363 of file TINGeneration.h.
Referenced by run(), setParams(), and TINGeneration().
|
protected |
Definition at line 362 of file TINGeneration.h.
Referenced by run(), setParams(), and TINGeneration().
|
protectedinherited |
Attribute used to restrict the area to generate the samples.
Definition at line 598 of file Tin.h.
Referenced by CreateInitialTriangles(), InsertNode(), te::mnt::Slope::run(), and te::mnt::TINCalculateGrid::run().
|
protectedinherited |
First break node number.
Definition at line 617 of file Tin.h.
Referenced by InsertNodes(), OrderLines(), RegeneratewithNewPoints(), and te::mnt::TINCalculateGrid::run().
|
protected |
Definition at line 356 of file TINGeneration.h.
Referenced by ReadBreakLines(), and setBreakLine().
|
protected |
Definition at line 352 of file TINGeneration.h.
Referenced by run(), setInput(), and TINGeneration().
|
protected |
Definition at line 348 of file TINGeneration.h.
Referenced by run(), setInput(), and TINGeneration().
|
protected |
Definition at line 357 of file TINGeneration.h.
Referenced by setBreakLine().
|
protected |
Definition at line 353 of file TINGeneration.h.
Referenced by setInput().
|
protected |
Definition at line 349 of file TINGeneration.h.
Referenced by setInput().
|
protected |
Definition at line 355 of file TINGeneration.h.
Referenced by ReadBreakLines(), run(), and setBreakLine().
|
protected |
Definition at line 351 of file TINGeneration.h.
Referenced by run(), and setInput().
|
protected |
Definition at line 347 of file TINGeneration.h.
Referenced by run(), and setInput().
|
protectedinherited |
Triangulation lines vector.
Definition at line 604 of file Tin.h.
Referenced by borderUp(), CreateInitialTriangles(), DuplicateTriangle(), DupNeighTriangle(), ExchangePolygon(), FindInterPoints(), IsBreaklineSegment(), IsIsolineSegment(), ModifyBoundTriangles(), NodeExchange(), OnIsolineSegment(), OrderLines(), TestAngleBetweenNormals(), TestDelaunay(), TestIsolines(), TwoNewTriangles(), and UpdateTriangles().
|
protectedinherited |
Triangulation lines vector size.
Definition at line 600 of file Tin.h.
Referenced by CreateInitialTriangles(), DuplicateTriangle(), DupNeighTriangle(), ExchangePolygon(), TestAngleBetweenNormals(), TestDelaunay(), and TestIsolines().
|
protectedinherited |
Triangulation last line number.
Definition at line 620 of file Tin.h.
Referenced by CreateInitialTriangles(), DuplicateTriangle(), DupNeighTriangle(), and TwoNewTriangles().
|
protectedinherited |
Triangulation last node number.
Definition at line 618 of file Tin.h.
Referenced by CreateInitialTriangles(), DeleteNode(), InsertNodes(), RegeneratewithNewPoints(), and TestIsolines().
|
protectedinherited |
Triangulation last triangle number.
Definition at line 619 of file Tin.h.
Referenced by CreateDelaunay(), CreateInitialTriangles(), CreateMinAngleTriangulation(), DuplicateTriangle(), DupNeighTriangle(), GenerateDelaunay(), InsertNode(), ReCreateDelaunay(), ReGenerateDelaunay(), te::mnt::Slope::run(), and TwoNewTriangles().
|
protected |
Triangulation lines simplification maximum distance.
Definition at line 369 of file TINGeneration.h.
Referenced by ReadBreakLines(), run(), and TINGeneration().
|
protected |
Triangulation method Delanay or Smaller Angle.
Definition at line 374 of file TINGeneration.h.
Referenced by run().
|
protected |
Triangulation edges minimum size.
Definition at line 370 of file TINGeneration.h.
Referenced by FindInterPoints(), InsertNode(), OnIsolineSegment(), and TINGeneration().
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
Definition at line 622 of file Tin.h.
Referenced by CreateInitialTriangles(), FindInterPoints(), ModifyBoundTriangles(), RegeneratewithNewPoints(), te::mnt::Slope::run(), te::mnt::TINCalculateGrid::run(), TestAngleBetweenNormals(), and te::mnt::Slope::TriangleGradient().
|
protectedinherited |
Triangulation nodes vector.
Definition at line 606 of file Tin.h.
Referenced by borderUp(), CreateInitialTriangles(), DeleteNode(), DuplicateTriangle(), FindInterPoints(), InsertNode(), InsertNodes(), IsBreaklineSegment(), IsIsolineSegment(), ModifyBoundTriangles(), NodeExchange(), OnIsolineSegment(), OrderLines(), RegeneratewithNewPoints(), te::mnt::TINCreateIsolines::run(), te::mnt::Slope::run(), te::mnt::TINCalculateGrid::run(), TestAngleBetweenNormals(), TestDelaunay(), TestIsolines(), te::mnt::Slope::TriangleGradient(), TwoNewTriangles(), and UpdateTriangles().
|
protectedinherited |
Triangulation nodes vector size.
Definition at line 602 of file Tin.h.
Referenced by CreateInitialTriangles(), InsertNodes(), RegeneratewithNewPoints(), TestDelaunay(), and TestIsolines().
|
protectedinherited |
Definition at line 613 of file Tin.h.
Referenced by InsertBreakNodes(), RegeneratewithNewPoints(), te::mnt::TINCalculateGrid::run(), and TestFlatTriangles().
|
protected |
Definition at line 360 of file TINGeneration.h.
Referenced by SaveTin(), and setOutput().
|
protected |
Definition at line 359 of file TINGeneration.h.
Referenced by SaveTin(), and setOutput().
|
protectedinherited |
Definition at line 627 of file Tin.h.
Referenced by te::mnt::Slope::run(), te::mnt::TINCalculateGrid::run(), te::mnt::Slope::setParams(), and te::mnt::TINCalculateGrid::setParams().
|
protectedinherited |
Definition at line 627 of file Tin.h.
Referenced by te::mnt::Slope::run(), te::mnt::TINCalculateGrid::run(), te::mnt::Slope::setParams(), and te::mnt::TINCalculateGrid::setParams().
|
protectedinherited |
Definition at line 626 of file Tin.h.
Referenced by te::mnt::TINCalculateGrid::FillGridLinear(), te::mnt::TINCalculateGrid::FillGridQuintic(), te::mnt::Slope::run(), te::mnt::TINCalculateGrid::run(), and te::mnt::TINCalculateGrid::~TINCalculateGrid().
|
protectedinherited |
Attribute with spatial reference information.
Definition at line 596 of file Tin.h.
Referenced by InsertBreakLines(), neigh_union(), te::mnt::TINCreateIsolines::run(), te::mnt::Slope::run(), te::mnt::TINCalculateGrid::run(), run(), te::mnt::Slope::setParams(), and TINGeneration().
|
protectedinherited |
|
protected |
Triangulation lines simplification tolerance.
Definition at line 368 of file TINGeneration.h.
Referenced by FindInterPoints(), ReadBreakLines(), RegeneratewithNewPoints(), run(), and TINGeneration().
|
protected |
Triangulation breaklines simplification tolerance.
Definition at line 372 of file TINGeneration.h.
Referenced by ReadBreakLines(), and setBreakLine().
|
protectedinherited |
Triangulation triangles vector.
Definition at line 605 of file Tin.h.
Referenced by borderUp(), CreateInitialTriangles(), DuplicateTriangle(), DupNeighTriangle(), ExchangePolygon(), FindInterPoints(), InsertNode(), IsNeighborOnIsoOrBreakline(), ModifyBoundTriangles(), OrderLines(), te::mnt::TINCreateIsolines::run(), te::mnt::TINCalculateGrid::run(), TestAngleBetweenNormals(), TestDelaunay(), TestIsolines(), TwoNewTriangles(), and UpdateTriangles().
|
protectedinherited |
Triangulation triangles vector size.
Definition at line 601 of file Tin.h.
Referenced by CreateInitialTriangles(), DuplicateTriangle(), DupNeighTriangle(), InsertNode(), TestFlatTriangles(), and TwoNewTriangles().
|
protectedinherited |