You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1022 B
37 lines
1022 B
|
2 weeks ago
|
#include <iostream>
|
||
|
|
#include <mesh_algorithm.hpp>
|
||
|
|
|
||
|
|
int main() {
|
||
|
|
// 8 vertices: unit cube
|
||
|
|
vector3d verts[8] = {
|
||
|
|
{0,0,0}, {1,0,0}, {1,1,0}, {0,1,0},
|
||
|
|
{0,0,1}, {1,0,1}, {1,1,1}, {0,1,1}
|
||
|
|
};
|
||
|
|
|
||
|
|
// 6 faces, each with 4 vertices (counter-clockwise order when viewed from outside)
|
||
|
|
uint32_t face_data[] = {
|
||
|
|
0,1,2,3, // bottom face
|
||
|
|
7,6,5,4, // top face (note CCW when seen from outside)
|
||
|
|
0,4,5,1, // front face
|
||
|
|
1,5,6,2, // right face
|
||
|
|
3,2,6,7, // back face
|
||
|
|
0,3,7,4 // left face
|
||
|
|
};
|
||
|
|
|
||
|
|
uint32_t vertex_counts[6] = {4, 4, 4, 4, 4, 4};
|
||
|
|
|
||
|
|
polymesh_t mesh;
|
||
|
|
mesh.vertices = verts;
|
||
|
|
mesh.faces = face_data;
|
||
|
|
mesh.vertex_counts = vertex_counts;
|
||
|
|
mesh.num_vertices = 8;
|
||
|
|
mesh.num_faces = 6;
|
||
|
|
|
||
|
|
double area = compute_surface_area(&mesh);
|
||
|
|
double volume = compute_volume(&mesh);
|
||
|
|
|
||
|
|
std::cout << "area: " << area << std::endl; // expected: 6
|
||
|
|
std::cout << "volume: " << volume << std::endl; // expected: 1
|
||
|
|
|
||
|
|
return 0;
|
||
|
|
}
|