mirror of
https://gitlab.com/Trygve/contour-creator.git
synced 2024-11-25 00:20:18 +00:00
Error handling
This commit is contained in:
parent
bd9d6e35d0
commit
3ff718376e
@ -1,25 +1,27 @@
|
||||
#include <stdexcept>
|
||||
#include <stdfloat>
|
||||
|
||||
#include <gdal/gdal.h>
|
||||
#include "gdal/gdal_priv.h"
|
||||
#include <iostream>
|
||||
|
||||
#include <stdfloat>
|
||||
#include <gdal/gdal_frmts.h>
|
||||
|
||||
#include "HeightMap.hh"
|
||||
|
||||
HeightMap::HeightMap(const char* filepath)
|
||||
{
|
||||
// Open the file with some gdal nonsense:
|
||||
// Open the file with gdal:
|
||||
const GDALAccess eAccess = GA_ReadOnly;
|
||||
GDALDatasetUniquePtr file;
|
||||
GDALAllRegister();
|
||||
GDALRegister_GTiff();
|
||||
file = GDALDatasetUniquePtr(GDALDataset::FromHandle(GDALOpen( filepath, eAccess )));
|
||||
if( !file )
|
||||
{
|
||||
std::cout << "Could not open tiff file!"; // handle error
|
||||
throw std::runtime_error("Could not open tif file!");
|
||||
}
|
||||
|
||||
// The heigthmap only has one band
|
||||
auto band = file->GetBands()[0];
|
||||
|
||||
// write the attrributes
|
||||
this->width = band->GetXSize();
|
||||
this->height = band->GetYSize();
|
||||
@ -27,10 +29,10 @@ HeightMap::HeightMap(const char* filepath)
|
||||
this->max = band-> GetMaximum();
|
||||
|
||||
this->data = (float *) CPLMalloc(sizeof(float)*width*height);
|
||||
band->RasterIO( GF_Read, 0, 0, width, height,
|
||||
CPLErr error = band->RasterIO( GF_Read, 0, 0, width, height,
|
||||
this->data, width, height, GDT_Float32,
|
||||
0, 0 );
|
||||
|
||||
if (error) { throw std::runtime_error("Could not read tif file!"); }
|
||||
band->FlushCache();
|
||||
}
|
||||
float HeightMap::get_pixel(int x, int y)
|
||||
|
Loading…
Reference in New Issue
Block a user