23#ifndef VCL_ALGORITHMS_CORE_CREATE_H
24#define VCL_ALGORITHMS_CORE_CREATE_H
26#include "polygon/create.h"
41template<
typename ScalarType =
float, std::
integral U
intType = u
int16_t>
42std::pair<std::vector<vcl::Point3<ScalarType>>, std::vector<UintType>>
43createTrackBall(ScalarType scale = 1.0, uint pointsPerCircle = 64)
48 std::vector<UintType>
edges;
53 vertices.reserve(pointsPerCircle * 3);
57 for (uint i = 0; i < circle.size(); ++i) {
58 const auto& p = circle.point(i);
59 vertices.push_back(PointType(0, p.x(), p.y()));
60 edges.push_back(i + first);
61 edges.push_back((i + 1) % circle.size() + first);
65 first = circle.size();
66 for (uint i = 0; i < circle.size(); ++i) {
67 const auto& p = circle.point(i);
68 vertices.push_back(PointType(p.x(), 0, p.y()));
69 edges.push_back(i + first);
70 edges.push_back((i + 1) % circle.size() + first);
74 first = 2 * circle.size();
75 for (uint i = 0; i < circle.size(); ++i) {
76 const auto& p = circle.point(i);
77 vertices.push_back(PointType(p.x(), p.y(), 0));
78 edges.push_back(i + first);
79 edges.push_back((i + 1) % circle.size() + first);
82 return std::make_pair(std::move(vertices), std::move(edges));
A class representing a line segment in n-dimensional space. The class is parameterized by a PointConc...
Definition segment.h:43
constexpr detail::EdgesView edges
A view that allows to iterate overt the Edge elements of an object.
Definition edge.h:52
constexpr detail::VerticesView vertices
A view that allows to iterate over the Vertex elements of an object.
Definition vertex.h:60