mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-01-10 15:39:02 +00:00
94 lines
2.0 KiB
C++
94 lines
2.0 KiB
C++
#include <iostream>
|
|
using namespace std;
|
|
|
|
#include "../triangulator.hpp"
|
|
|
|
const int X = 4;
|
|
const int Y = 4;
|
|
|
|
typedef Terrain::Triangulator<short,X,Y> Triangles4x4;
|
|
|
|
int main()
|
|
{
|
|
Triangles4x4 t;
|
|
|
|
cout << "Cell types:\n";
|
|
for(int y=0;y<Y;y++)
|
|
{
|
|
for(int x=0;x<X;x++)
|
|
{
|
|
if(t.cellType(x,y)) cout << "/ ";
|
|
else cout << "\\ ";
|
|
}
|
|
cout << endl;
|
|
}
|
|
cout << endl;
|
|
|
|
cout << "Full index list:\n";
|
|
for(int i=0; i<X*Y*3; i++)
|
|
cout << t.getData()[i] << endl;
|
|
|
|
return 0;
|
|
}
|
|
|
|
/* Code we might add later:
|
|
|
|
// Get the vertex indices belonging to a given triangle
|
|
void getTriangle(int trinum, Index &p1, Index &p2, Index &p3)
|
|
{
|
|
assert(trinum >= 0 && trinum < TriNum);
|
|
trinum *= 3;
|
|
|
|
p1 = array[trinum++];
|
|
p2 = array[trinum++];
|
|
p3 = array[trinum];
|
|
}
|
|
|
|
/*
|
|
Get height interpolation weights for a given grid square. The
|
|
input is the grid square number (x,y) and the relative position
|
|
within that square (xrel,yrel = [0.0..1.0].) The weights are
|
|
returned as three vertex index + weight factor pairs.
|
|
|
|
A more user-friendly version for HeightMap structs is given
|
|
below.
|
|
* /
|
|
void getWeights(int x, int y, float xrel, float yrel,
|
|
Index &p1, float w1,
|
|
Index &p2, float w2,
|
|
Index &p3, float w3)
|
|
{
|
|
// Find cell index
|
|
int index = y*SizeX + x;
|
|
|
|
// First triangle in cell
|
|
index *= 2;
|
|
|
|
// The rest depends on how the cell is triangulated
|
|
if(cellType(x,y))
|
|
{
|
|
}
|
|
else
|
|
{
|
|
// Cell is divided as \ from 0,0 to 1,1
|
|
if(xrel < yrel)
|
|
{
|
|
// Bottom left triangle.
|
|
|
|
// Order is (0,0),(1,1),(0,1).
|
|
getTriangle(index, p1,p2,p3);
|
|
|
|
|
|
}
|
|
else
|
|
{
|
|
// Top right triangle
|
|
|
|
// Order is (0,0),(1,0),(1,1).
|
|
getTriangle(index+1, p1,p2,p3);
|
|
}
|
|
}
|
|
}
|
|
|
|
*/
|