22{
24 return;
25
29
30
31
32
33 std::vector<float> top_vertices;
35 std::vector<float> bottom_vertices;
37
38 const Vec3 top_apex = { 0.0f, 0.0f, 0.5f };
39 const Vec3 top_apex_normal = { 0.0f, 0.0f, 1.0f };
40 const Vec3 bottom_apex = { 0.0f, 0.0f, -0.5f };
41 const Vec3 bottom_apex_normal = { 0.0f, 0.0f, -1.0f };
43 const float curr_angle = float(i) *
step;
44 const float next_angle = float(i + 1) *
step;
45 const Vec3 curr_pos = { 0.5f * std::cos(curr_angle), 0.5f * std::sin(curr_angle), 0.0f };
46 const Vec3 next_pos = { 0.5f * std::cos(next_angle), 0.5f * std::sin(next_angle), 0.0f };
49
50 add_vertex(top_apex, top_apex_normal, top_vertices);
53
54 add_vertex(bottom_apex, bottom_apex_normal, bottom_vertices);
55 add_vertex(next_pos, next_norm, bottom_vertices);
56 add_vertex(curr_pos, curr_norm, bottom_vertices);
57 }
58
61
62 const size_t vertex_stride = 6 * sizeof(float);
63 const size_t position_offset = 0;
64 const size_t normal_offset = 3 * sizeof(float);
65
66 int curr_vertex_array;
68 int curr_array_buffer;
70
80
90
93}
#define glsafe(cmd)
Definition OpenGLUtils.hpp:25
unsigned int m_bottom_vbo_id
Definition OptionTemplate.hpp:47
unsigned int m_top_vbo_id
Definition OptionTemplate.hpp:45
size_t m_size_in_bytes_gpu
Definition OptionTemplate.hpp:51
unsigned int m_bottom_vao_id
Definition OptionTemplate.hpp:46
uint8_t m_resolution
Definition OptionTemplate.hpp:39
unsigned int m_top_vao_id
Definition OptionTemplate.hpp:44
uint8_t m_vertices_count
Definition OptionTemplate.hpp:40
#define glGenBuffers
Definition gl.h:3769
#define glBindBuffer
Definition gl.h:3267
#define glBindVertexArray
Definition gl.h:3307
#define GL_ARRAY_BUFFER_BINDING
Definition gl.h:239
#define GL_FLOAT
Definition gl.h:660
#define glEnableVertexAttribArray
Definition gl.h:3673
#define glGetIntegerv
Definition gl.h:3873
#define GL_ARRAY_BUFFER
Definition gl.h:238
#define glGenVertexArrays
Definition gl.h:3791
#define glVertexAttribPointer
Definition gl.h:5315
#define glBufferData
Definition gl.h:3339
#define GL_STATIC_DRAW
Definition gl.h:1633
#define GL_FALSE
Definition gl.h:648
#define GL_VERTEX_ARRAY_BINDING
Definition gl.h:1989
Vec3 normalize(const Vec3 &v)
Definition Utils.cpp:32
std::array< float, 3 > Vec3
Definition Types.hpp:40
static constexpr float PI
Definition Types.hpp:17
void add_vertex(const Vec3 &position, const Vec3 &normal, std::vector< float > &vertices)
Definition Utils.cpp:15
void step(Coord &crd, const Dir d, const long n=1)
Definition MarchingSquares.hpp:213