#include "terrain.hpp" #include "std.hpp" #include "terrainrep.hpp" Terrain::Terrain(int size_shift) : rep(new TerrainRep(size_shift)) {} Terrain::~Terrain() { delete rep; } void Terrain::setDetail(int n, bool m) { rep->setDetail(n, m); } void Terrain::setShading(bool t) { rep->setShading(t); } void Terrain::setHeight(int x, int z, float h, bool realtime) { if (x >= 0 && z >= 0 && x <= rep->getSize() && z <= rep->getSize()) rep->setHeight(x, z, h, realtime); } int Terrain::getSize() const { return rep->getSize(); } float Terrain::getHeight(int x, int z) const { return (x >= 0 && z >= 0 && x <= rep->getSize() && z <= rep->getSize()) ? rep->getHeight(x, z) : 0; } bool Terrain::render(const RenderContext& rc) { rep->render(this, rc); return false; } bool Terrain::collide(const Line& line, float radius, Collision* curr_coll, const Transform& tf) { return rep->collide(line, radius, curr_coll, tf); }