8#include <opencv2/core.hpp>
35 Cone(
int radius = 2,
int height = 5,
int recursion = 5,
bool closed =
true)
37 std::vector<cv::Vec3d> circle_list;
41 for (
double l = 0.0; l < 2 * M_PI; l += (M_PI / 4)) {
42 c_point[0] = radius * cos(l);
43 c_point[1] = radius * sin(l);
45 circle_list.push_back(c_point);
49 while (r != recursion) {
50 std::vector<cv::Vec3d> loop_list;
51 loop_list = circle_list;
54 double theta_inc = (2 * M_PI) / ((r + 2) * 8);
56 for (
int p_id = 0; p_id < ((r + 2) * 8); p_id++) {
59 c_point[0] = radius * cos(theta);
61 c_point[1] = radius * sin(theta);
63 circle_list.push_back(c_point);
79 for (
auto& point : circle_list) {
86 std::size_t v_id = (closed) ? 2 : 1;
87 for (; v_id <
points_.size(); ++v_id) {
90 if (v_id ==
points_.size() - 1) {
Base class for shape generators.
std::vector< SimpleMesh::Vertex > points_
void addVertex_(double x, double y, double z)
Add a new vertex to the shape.
void addCell_(int v1, int v2, int v3)
Add a new triangular face to the mesh from vertex IDs.
Shape and mesh primitives.