82 lines
No EOL
2.5 KiB
C++
82 lines
No EOL
2.5 KiB
C++
#include "simple-shapes.hpp"
|
|
#include "object.hpp"
|
|
#include <math.h>
|
|
|
|
/*gameobject velage::makeSphere(GLuint resolution, shader *render_shader) {
|
|
OpMesh mesh;
|
|
|
|
OpMesh::VertexHandle vhandle[8];
|
|
|
|
vhandle[0] = mesh.add_vertex(OpMesh::Point(-1, -1, 1));
|
|
vhandle[1] = mesh.add_vertex(OpMesh::Point(1, -1, 1));
|
|
vhandle[2] = mesh.add_vertex(OpMesh::Point(1, 1, 1));
|
|
vhandle[3] = mesh.add_vertex(OpMesh::Point(-1, 1, 1));
|
|
vhandle[4] = mesh.add_vertex(OpMesh::Point(-1, -1, -1));
|
|
vhandle[5] = mesh.add_vertex(OpMesh::Point(1, -1, -1));
|
|
vhandle[6] = mesh.add_vertex(OpMesh::Point(1, 1, -1));
|
|
vhandle[7] = mesh.add_vertex(OpMesh::Point(-1, 1, -1));
|
|
|
|
std::vector<OpMesh::VertexHandle> face_vhandles;
|
|
face_vhandles.clear();
|
|
face_vhandles.push_back(vhandle[0]);
|
|
face_vhandles.push_back(vhandle[1]);
|
|
face_vhandles.push_back(vhandle[2]);
|
|
face_vhandles.push_back(vhandle[3]);
|
|
mesh.add_face(face_vhandles);
|
|
|
|
face_vhandles.clear();
|
|
face_vhandles.push_back(vhandle[7]);
|
|
face_vhandles.push_back(vhandle[6]);
|
|
face_vhandles.push_back(vhandle[5]);
|
|
face_vhandles.push_back(vhandle[4]);
|
|
mesh.add_face(face_vhandles);
|
|
face_vhandles.clear();
|
|
face_vhandles.push_back(vhandle[1]);
|
|
face_vhandles.push_back(vhandle[0]);
|
|
face_vhandles.push_back(vhandle[4]);
|
|
face_vhandles.push_back(vhandle[5]);
|
|
mesh.add_face(face_vhandles);
|
|
face_vhandles.clear();
|
|
face_vhandles.push_back(vhandle[2]);
|
|
face_vhandles.push_back(vhandle[1]);
|
|
face_vhandles.push_back(vhandle[5]);
|
|
face_vhandles.push_back(vhandle[6]);
|
|
mesh.add_face(face_vhandles);
|
|
face_vhandles.clear();
|
|
face_vhandles.push_back(vhandle[3]);
|
|
face_vhandles.push_back(vhandle[2]);
|
|
face_vhandles.push_back(vhandle[6]);
|
|
|
|
face_vhandles.push_back(vhandle[7]);
|
|
mesh.add_face(face_vhandles);
|
|
face_vhandles.clear();
|
|
face_vhandles.push_back(vhandle[0]);
|
|
face_vhandles.push_back(vhandle[3]);
|
|
face_vhandles.push_back(vhandle[7]);
|
|
face_vhandles.push_back(vhandle[4]);
|
|
mesh.add_face(face_vhandles);
|
|
|
|
gameobject go(render_shader);
|
|
std::vector<GLfloat> vertices;
|
|
|
|
//std::vector<point> normals;
|
|
|
|
for (auto face : mesh.faces()) {
|
|
for (auto vertex : mesh.fv_range(face)) {
|
|
OpMesh::Point point = mesh.point(vertex);
|
|
//OpMesh::Point normal = mesh.normal(face);
|
|
|
|
GLfloat *a=point.data();
|
|
vertices.push_back(a[0]);
|
|
vertices.push_back(a[1]);
|
|
vertices.push_back(a[2]);
|
|
//normals.push_back(normal);
|
|
}
|
|
}
|
|
|
|
go.genVbo(vertices.data(), vertices.size());
|
|
//go.genEbo(GLuint *elements, GLuint size)
|
|
|
|
return go;
|
|
|
|
}*/ |