2016-07-12 17:40:45 +00:00
|
|
|
#pragma once
|
2014-09-15 10:32:27 +00:00
|
|
|
|
2020-03-24 22:03:54 +00:00
|
|
|
#include "core_global.h"
|
2014-09-15 10:32:27 +00:00
|
|
|
|
|
|
|
namespace paysages {
|
|
|
|
namespace definition {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Internal storage class to hold data for a PaintedGrid.
|
|
|
|
*/
|
2015-11-09 21:30:46 +00:00
|
|
|
class PaintedGridData {
|
2014-09-15 10:32:27 +00:00
|
|
|
friend class PaintedGrid;
|
|
|
|
|
2015-11-09 21:30:46 +00:00
|
|
|
public:
|
2014-09-15 10:32:27 +00:00
|
|
|
PaintedGridData();
|
|
|
|
~PaintedGridData();
|
|
|
|
|
|
|
|
void copy(PaintedGridData *destination) const;
|
|
|
|
void save(PackStream *stream) const;
|
|
|
|
void load(PackStream *stream);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Clear all stored data.
|
|
|
|
*/
|
|
|
|
void clear();
|
|
|
|
|
2015-11-09 21:30:46 +00:00
|
|
|
inline bool hasData() const {
|
|
|
|
return rows_count > 0;
|
|
|
|
}
|
2015-09-20 23:36:03 +00:00
|
|
|
|
2015-11-09 21:30:46 +00:00
|
|
|
private:
|
|
|
|
typedef struct {
|
2014-09-15 10:32:27 +00:00
|
|
|
int xstart;
|
|
|
|
int xend;
|
2015-11-09 21:30:46 +00:00
|
|
|
double *height;
|
2014-09-15 10:32:27 +00:00
|
|
|
} HeightMapPixelGroup;
|
|
|
|
|
2015-11-09 21:30:46 +00:00
|
|
|
typedef struct {
|
2014-09-15 10:32:27 +00:00
|
|
|
int y;
|
|
|
|
int pixel_groups_count;
|
2015-11-09 21:30:46 +00:00
|
|
|
HeightMapPixelGroup *pixel_groups;
|
2014-09-15 10:32:27 +00:00
|
|
|
} HeightMapRow;
|
|
|
|
|
|
|
|
int memsize;
|
|
|
|
int rows_count;
|
2015-11-09 21:30:46 +00:00
|
|
|
HeightMapRow *rows;
|
2014-09-15 10:32:27 +00:00
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|