SparrowRenderer/src/parametricmesh.h

43 lines
843 B
C++

#ifndef PARAMETRIC_MESH_H
#define PARAMETRIC_MESH_H
#include "meshbuilder.h"
class Sphere : public MeshBuilder
{
private:
class Edge{
public:
int b;
int vertex;
Edge* next;
Edge(int myB = -1, int myVertex = -1) :
b(myB),
vertex(myVertex),
next(NULL)
{}
~Edge(){ if(next != NULL) delete(next); }
};
Edge* edges;
float radius;
int getEdge(int a, int b);
void createVertex(float u, float v);
void subdivide();
public:
Sphere(Material* mat, int n = 0, float myRadius = 1.f);
};
class GridMesh : public MeshBuilder
{
public:
GridMesh(Material* mat, int width, int height, bool alternate = true);
private:
int getVertexId(int i, int j, int height);
};
// TODO TextMesh (with glyph map)
#endif // PARAMETRIC_MESH_H