TIN.cpp
Go to the documentation of this file.
1 /* Copyright (C) 2008 National Institute For Space Research (INPE) - Brazil.
2 
3  This file is part of the TerraLib - a Framework for building GIS enabled applications.
4 
5  TerraLib is free software: you can redistribute it and/or modify
6  it under the terms of the GNU Lesser General Public License as published by
7  the Free Software Foundation, either version 3 of the License,
8  or (at your option) any later version.
9 
10  TerraLib is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public License
16  along with TerraLib. See COPYING. If not, write to
17  TerraLib Team at <terralib-team@terralib.org>.
18  */
19 
20 /*!
21  \file terralib/geometry/TIN.cpp
22 
23  \brief TIN (triangulated irregular network) is a PolyhedralSurface consisting only of Triangle patches.
24 */
25 
26 // TerraLib
27 #include "Polygon.h"
28 #include "TIN.h"
29 
30 const std::string te::gm::TIN::sm_typeName("Tin");
31 
32 te::gm::TIN::TIN(std::size_t nPolygons, GeomType t, int srid, Envelope* mbr)
33  : PolyhedralSurface(nPolygons, t, srid, mbr)
34 {
35 }
36 
37 te::gm::TIN::TIN(const TIN& rhs)
38 
39  = default;
40 
41 te::gm::TIN& te::gm::TIN::operator=(const TIN& rhs) = default;
42 
43 const std::string& te::gm::TIN::getGeometryType() const throw()
44 {
45  return sm_typeName;
46 }
47 
48 
50 {
51  assert((i < m_polygons.size()) && (m_polygons[i] == nullptr));
52  delete m_polygons[i];
53  m_polygons[i] = g;
54 }
55 
57 {
58  m_polygons.push_back(g);
59 }
60 
PolyhedralSurface is a contiguous collection of polygons, which share common boundary segments...
GeomType
Each enumerated type is compatible with a Well-known Binary (WKB) type code.
TIN(std::size_t nPolygons, GeomType t, int srid=0, Envelope *mbr=0)
It initializes the TIN with the specified spatial reference system id and envelope.
Definition: TIN.cpp:32
const std::string & getGeometryType() const
It returns the name of the instantiable subtype of Geometry of which this geometric object is an inst...
Definition: TIN.cpp:43
static const std::string sm_typeName
Geometry type name for TIN.
Definition: TIN.h:133
TIN (triangulated irregular network) is a PolyhedralSurface consisting only of Triangle patches...
Definition: TIN.h:50
An Envelope defines a 2D rectangular region.
void add(te::gm::Polygon *g)
It adds the triangle into the TIN.
Definition: TIN.cpp:56
TIN (triangulated irregular network) is a PolyhedralSurface consisting only of Triangle patches...
Polygon is a subclass of CurvePolygon whose rings are defined by linear rings.
TIN & operator=(const TIN &rhs)
Assignment operator.
Polygon is a subclass of CurvePolygon whose rings are defined by linear rings.
Definition: Polygon.h:50
std::vector< Polygon * > m_polygons
An array with the polygon list.
void setGeometryN(std::size_t i, te::gm::Polygon *g)
It sets the n-th triangle in this TIN.
Definition: TIN.cpp:49