Remove cellmap class

This commit is contained in:
Trygve 2024-05-07 22:25:13 +02:00
parent 264c0341ed
commit f857f7e951
3 changed files with 8 additions and 43 deletions

View File

@ -1,20 +0,0 @@
#include <cstdint>
#include <gdal/ogr_spatialref.h>
#include <ogr_spatialref.h>
#include "contour_creator.hh"
CellMap::CellMap(int width, int height, uint8_t* cells, OGRSpatialReference reference_system, double* geotransform)
{
this->width = width;
this->height = height;
this->cells = cells;
this->reference_system = reference_system;
this->geotransform = geotransform;
}
int CellMap::get_cell(int x, int y)
{
// all the cells are in an array of ints from left to right, top to bottom
int offset = ((this->width * y) + x);
return *(this->cells + offset);
}

View File

@ -22,26 +22,11 @@ class HeightMap
delete[] data; delete[] data;
delete[] geotransform; delete[] geotransform;
} }
const char* filepath; const char* filepath; //!< Where the heightmap was read from
float get_pixel(int x,int y); float get_pixel(int x,int y);
void blur(float standard_deviation); void blur(float standard_deviation);
void statistics(); void statistics(); //!< Print statistical information about the heightmap
void calculate_steepness(const char*); void calculate_steepness(const char*); //!< Output a raster file with the steepness of each pixel
};
/**
@brief stores the cells from marching squars for one elevation level
*/
class CellMap
{
public:
uint8_t* cells; //!< pointer to the first cell in the array. uint8_t is a 8 bit unsigned integer
double* geotransform; //!< Six double buffer for storing the affine transformations
int width; //!< width of image in cells
int height; //!< height of image in cells
OGRSpatialReference reference_system;
CellMap(int width, int height, uint8_t* cells, OGRSpatialReference reference_system, double* geotransform);
int get_cell(int x,int y);
}; };
class Point class Point
@ -49,8 +34,8 @@ class Point
public: public:
int x; int x;
int y; int y;
int mscase; uint8_t mscase; //!< The case outputted by the algorithm. A number between 0 and 15
bool allocated = false; bool allocated = false; //!< Used when sorting the points to see if it has been sorted
Point(int x, int y, int mscase){ Point(int x, int y, int mscase){
this -> x = x; this -> x = x;
this -> y = y; this -> y = y;

View File

@ -250,8 +250,8 @@ void write_output_file(std::vector<std::vector<Point>> all_points, const char *f
if ((points[k].x - points[k-1].x) < 0) if ((points[k].x - points[k-1].x) < 0)
left_to_right = false; left_to_right = false;
bool top_to_bottom = true; bool top_to_bottom = true;
if ((points[k].y - points[k-1].y) <= 0) if ((points[k].y - points[k-1].y) < 0)
left_to_right = false; top_to_bottom = false;
@ -261,7 +261,7 @@ void write_output_file(std::vector<std::vector<Point>> all_points, const char *f
auto [x1, y1, x2, y2] = marching_squares_lookup(points[k].mscase); auto [x1, y1, x2, y2] = marching_squares_lookup(points[k].mscase);
if (left_to_right or !top_to_bottom) if (left_to_right or top_to_bottom)
{ {
geometry->setPoint(geometry->getNumPoints(),x + (x1/4) ,y + (y1/4)); geometry->setPoint(geometry->getNumPoints(),x + (x1/4) ,y + (y1/4));
geometry->setPoint(geometry->getNumPoints(),x + (x2/4) ,y + (y2/4)); geometry->setPoint(geometry->getNumPoints(),x + (x2/4) ,y + (y2/4));