26 std::shared_ptr<const LineBounds> lbounds)
30 const std::shared_ptr<const LineBounds>& lbounds,
54 std::vector<Polyhedron::FaceType> faces;
55 std::vector<Polyhedron::FaceType> triangularMesh;
63 std::vector<int> sides = {-1, 1};
64 for (
auto& side : sides) {
65 for (
size_t iseg = 0; iseg < phiSegs.size() - 1; ++iseg) {
66 int addon = (iseg == phiSegs.size() - 2) ? 1 : 0;
69 vertices, {
r, r}, phiSegs[iseg], phiSegs[iseg + 1], lseg, addon,
75 faces = facesMesh.first;
76 triangularMesh = facesMesh.second;
79 size_t bvertices = vertices.size();
83 vertices.push_back(ctransform *
left);
84 vertices.push_back(ctransform * right);
85 faces.push_back({bvertices, bvertices + 1});
86 vertices.push_back(ctransform *
Vector3(0., 0., 0.));
87 triangularMesh.push_back({bvertices, bvertices + 2, bvertices + 1});
89 return Polyhedron(vertices, faces, triangularMesh,
false);