gtsam_points
Loading...
Searching...
No Matches
cube.hpp
Go to the documentation of this file.
1#ifndef GLK_PRIMITIVES_CUBE_HPP
2#define GLK_PRIMITIVES_CUBE_HPP
3
4#include <map>
5#include <vector>
6#include <Eigen/Core>
7
8namespace glk {
9
10class Cube {
11public:
12 Cube() {
13 // 6 ------ 7 X
14 // /| /| |
15 // 4 ------ 5 | 0 --- Z
16 // | | | | /
17 // | 2 -----| 3 Y
18 // |/ |/
19 // 0 ------ 1
20 std::vector<Eigen::Vector3f> vertices = {
21 Eigen::Vector3f(-0.5f, -0.5f, -0.5f), // 0
22 Eigen::Vector3f(-0.5f, -0.5f, 0.5f), // 1
23 Eigen::Vector3f(-0.5f, 0.5f, -0.5f), // 2
24 Eigen::Vector3f(-0.5f, 0.5f, 0.5f), // 3
25 Eigen::Vector3f(0.5f, -0.5f, -0.5f), // 4
26 Eigen::Vector3f(0.5f, -0.5f, 0.5f), // 5
27 Eigen::Vector3f(0.5f, 0.5f, -0.5f), // 6
28 Eigen::Vector3f(0.5f, 0.5f, 0.5f), // 7
29 };
30
31 std::vector<Eigen::Vector3f> normals(vertices.size());
32 for (int i = 0; i < vertices.size(); i++) {
33 normals[i] = vertices[i].normalized();
34 }
35
36 std::vector<int> indices = {0, 1, 2, 1, 3, 2, 1, 5, 3, 3, 5, 7, 0, 4, 1, 1, 4, 5, 3, 6, 2, 3, 7, 6, 0, 2, 4, 2, 6, 4, 4, 6, 5, 5, 6, 7};
37
38 this->vertices.swap(vertices);
39 this->indices.swap(indices);
40 }
41
42public:
43 std::vector<Eigen::Vector3f> vertices;
44 std::vector<Eigen::Vector3f> normals;
45 std::vector<int> indices;
46};
47
48} // namespace glk
49
50#endif
Definition cube.hpp:10
Cube()
Definition cube.hpp:12
std::vector< int > indices
Definition cube.hpp:45
std::vector< Eigen::Vector3f > vertices
Definition cube.hpp:43
std::vector< Eigen::Vector3f > normals
Definition cube.hpp:44
Definition async_buffer_copy.hpp:6
std::enable_if_t< needs_aligned_allocator< T >::value, std::shared_ptr< T > > make_shared(Args &&... args)
Definition make_shared.hpp:20