stuff-from-scratch/src/geometry/Grid.h

57 lines
978 B
C
Raw Normal View History

2022-05-15 13:58:31 +00:00
#pragma once
#include "Rectangle.h"
#include <vector>
class Grid
{
public:
Grid(const Rectangle& bounds)
: mBounds(bounds)
{
mValues = std::vector<double>(mNumX*mNumY, 0.0);
}
Rectangle GetBounds() const
{
return mBounds;
}
double GetXSpacing() const
{
return mBounds.GetWidth()/double(mNumX);
}
double GetYSpacing() const
{
return mBounds.GetHeight()/double(mNumY);
}
std::vector<double> GetValues() const
{
return mValues;
}
void ResetBounds(const Rectangle& bounds)
{
mBounds = bounds;
mValues = std::vector<double>(mNumX*mNumY, 0.0);
}
void SetValues(const std::vector<std::size_t>& indices, double value)
{
for (auto index : indices)
{
mValues[index] = value;
}
}
private:
Rectangle mBounds;
std::vector<double> mValues;
unsigned mNumX{5};
unsigned mNumY{5};
};