20 double radius,
double halez)
24 std::shared_ptr<const LineBounds> lbounds)
28 const std::shared_ptr<const LineBounds>& lbounds,
51 std::vector<Vector3D> vertices;
52 std::vector<Polyhedron::FaceType> faces;
53 std::vector<Polyhedron::FaceType> triangularMesh;
61 std::vector<int> sides = {-1, 1};
62 for (
auto& side : sides) {
63 for (
size_t iseg = 0; iseg < phiSegs.size() - 1; ++iseg) {
64 int addon = (iseg == phiSegs.size() - 2) ? 1 : 0;
67 vertices, {
r, r}, phiSegs[iseg], phiSegs[iseg + 1], lseg, addon,
73 faces = facesMesh.first;
74 triangularMesh = facesMesh.second;
77 size_t bvertices = vertices.size();
81 vertices.push_back(ctransform *
left);
82 vertices.push_back(ctransform *
right);
83 faces.push_back({bvertices, bvertices + 1});
84 vertices.push_back(ctransform *
Vector3D(0., 0., 0.));
85 triangularMesh.push_back({bvertices, bvertices + 2, bvertices + 1});
87 return Polyhedron(vertices, faces, triangularMesh);