This is what I have. Don't know if this is what you are looking for though.
terrain.cpp
#include "ATerrain.h"
using namespace Leadwerks;
ATerrain::ATerrain()
{
width = 100;
tileWidth = 1;
defaultColor = Vec4(0.4,0.6,1,1);
terrainModel = Model::Create();
terrainSurface = terrainModel->AddSurface();
CreateVertices();
CreateTriangles();
terrainSurface->Update();
terrainSurface->UpdateAABB();
terrainSurface->FlipNormals();
}
int ATerrain::VectorToIndex(Vec3 vector)
{
return (vector.z*width)+vector.x;
}
void ATerrain::CreateVertices()
{
int tw = tileWidth;
for (int i = 0; i < width; i++)
{
for (int j = 0; j < width; j++)
{
Vec3 indexVector = Vec3(j*tw, 0*tw, i*tw);
terrainSurface->AddVertex(indexVector);
terrainSurface->SetVertexColor(VectorToIndex(indexVector), defaultColor);
terrainSurface->SetVertexNormal(VectorToIndex(indexVector), Vec3(0,1,0));
}
}
}
void ATerrain::CreateTriangles()
{
for (int i = 0; i < width-1; i++)
{
for (int j = 0; j < width-1; j++)
{
int oriIndex = VectorToIndex(Vec3(i,0,j));
terrainSurface->AddTriangle(oriIndex+width, oriIndex, oriIndex+1);
terrainSurface->AddTriangle(oriIndex+width, oriIndex+1, oriIndex+width+1);
}
}
}
ATerrain::~ATerrain(void)
{
}