Helios++
Helios software for LiDAR simulations
GeoTiffFileLoader.h
1 #pragma once
2 
3 
4 #include "AbstractGeometryFilter.h"
5 #include <ogr_spatialref.h>
6 #include <gdal_priv.h>
7 
15 
16 public:
17  // *** ATTRIBUTES *** //
18  // ******************** //
22  std::shared_ptr<OGRSpatialReference> sourceCRS;
26  OGRLayer *layer = nullptr;
30  GDALRasterBand *raster = nullptr;
34  OGREnvelope *env = nullptr;
46  double minx;
50  double miny;
54  double width;
58  double height;
64  double pixelWidth;
70  double pixelHeight;
78  Vertex ***vertices = nullptr;
79 
80 
81  // *** CONSTRUCTION / DESTRUCTION *** //
82  // ************************************ //
88 
89  // *** R U N *** //
90  // *************** //
94  ScenePart* run();
95 
96  // *** METHODS *** //
97  // ***************** //
102  void obtainCRS(GDALDataset *tiff);
107  void obtainLayer(GDALDataset *tiff);
112  void obtainRaster(GDALDataset *tiff);
117  void obtainEnvelope(GDALDataset *tiff);
124  void fillVertices();
130  void releaseVertices();
134  void buildTriangles();
135 
136  const double eps = 0.0000001;
137 
138 };
int rasterHeight
Number of elements per raster along y axis.
Definition: GeoTiffFileLoader.h:42
double miny
Minimum value for y coordinate (starting point)
Definition: GeoTiffFileLoader.h:50
Loader for tiff files.
Definition: GeoTiffFileLoader.h:14
Vertex *** vertices
Vertices from tiff. Obtain using the fillVertices function and release using releaseVertices function...
Definition: GeoTiffFileLoader.h:78
GDALRasterBand * raster
Tiff raster.
Definition: GeoTiffFileLoader.h:30
OGREnvelope * env
Tiff envelope.
Definition: GeoTiffFileLoader.h:34
void obtainRaster(GDALDataset *tiff)
Obtain raster from tiff.
Definition: GeoTiffFileLoader.cpp:88
void obtainEnvelope(GDALDataset *tiff)
Obtain envelope from tiff.
Definition: GeoTiffFileLoader.cpp:94
void obtainLayer(GDALDataset *tiff)
Obtain layer from tiff.
Definition: GeoTiffFileLoader.cpp:84
double pixelWidth
Width divided by rasterWidth.
Definition: GeoTiffFileLoader.h:64
ScenePart * run()
Definition: GeoTiffFileLoader.cpp:13
double width
Length of x axis.
Definition: GeoTiffFileLoader.h:54
void obtainCRS(GDALDataset *tiff)
Obtain coordinate reference system.
Definition: GeoTiffFileLoader.cpp:66
double minx
Minimum value for x coordinate (starting point)
Definition: GeoTiffFileLoader.h:46
int rasterWidth
Number of elements per raster along x axis.
Definition: GeoTiffFileLoader.h:38
GeoTiffFileLoader()
Base constructor for tiff files loader.
Definition: GeoTiffFileLoader.h:87
std::shared_ptr< OGRSpatialReference > sourceCRS
Source coordinate reference system.
Definition: GeoTiffFileLoader.h:22
double height
Length of y axis.
Definition: GeoTiffFileLoader.h:58
void buildTriangles()
Build triangles from vertices.
Definition: GeoTiffFileLoader.cpp:227
void fillVertices()
Fill vertices with raster data. These vertices must be released with function releaseVertices.
Definition: GeoTiffFileLoader.cpp:166
double pixelHeight
Height divided by rasterHeight.
Definition: GeoTiffFileLoader.h:70
void releaseVertices()
Release vertices previously obtained through fillVertices function.
Definition: GeoTiffFileLoader.cpp:217
Class representing a scene part.
Definition: ScenePart.h:16
OGRLayer * layer
Tiff layer.
Definition: GeoTiffFileLoader.h:26
Abstract class defining asset loading filters common behavior.
Definition: AbstractGeometryFilter.h:18
Class representing a vertex.
Definition: Vertex.h:14