46 lines
995 B
C
46 lines
995 B
C
|
|
||
|
// VoronoiMap.h
|
||
|
|
||
|
// Declares the cVoronoiMap class that implements a Voronoi algorithm over a noise to produce a map
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
#include "Noise.h"
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
class cVoronoiMap
|
||
|
{
|
||
|
public:
|
||
|
cVoronoiMap(int a_Seed, int a_CellSize = 128);
|
||
|
|
||
|
/// Sets the cell size used for generating the Voronoi seeds
|
||
|
void SetCellSize(int a_CellSize);
|
||
|
|
||
|
/// Returns the value in the cell into which the specified point lies
|
||
|
int GetValueAt(int a_X, int a_Y);
|
||
|
|
||
|
/// Returns the value in the cell into which the specified point lies, and the distance to the nearest Voronoi seed
|
||
|
int GetValueAt(int a_X, int a_Y, int & a_MinDistance);
|
||
|
|
||
|
/// Returns the value in the cell into which the specified point lies, and the distances to the 2 nearest Voronoi seeds
|
||
|
int GetValueAt(int a_X, int a_Y, int & a_MinDistance1, int & a_MinDistance2);
|
||
|
|
||
|
protected:
|
||
|
/// The noise used for generating Voronoi seeds
|
||
|
cNoise m_Noise;
|
||
|
|
||
|
/// Size of the Voronoi cells (avg X/Y distance between the seeds)
|
||
|
int m_CellSize;
|
||
|
} ;
|
||
|
|
||
|
|
||
|
|
||
|
|