25 std::shared_ptr<const LineBounds> lbounds)
29 const std::shared_ptr<const LineBounds>& lbounds,
52 std::vector<Vector3D> vertices;
53 std::vector<Polyhedron::FaceType> faces;
54 std::vector<Polyhedron::FaceType> triangularMesh;
62 std::vector<int> sides = {-1, 1};
63 for (
auto& side : sides) {
64 for (
size_t iseg = 0; iseg < phiSegs.size() - 1; ++iseg) {
65 int addon = (iseg == phiSegs.size() - 2) ? 1 : 0;
68 vertices, {r, r}, phiSegs[iseg], phiSegs[iseg + 1], lseg, addon,
74 faces = facesMesh.first;
75 triangularMesh = facesMesh.second;
78 size_t bvertices = vertices.size();
82 vertices.push_back(ctransform * left);
83 vertices.push_back(ctransform * right);
84 faces.push_back({bvertices, bvertices + 1});
85 vertices.push_back(ctransform *
Vector3D(0., 0., 0.));
86 triangularMesh.push_back({bvertices, bvertices + 2, bvertices + 1});
88 return Polyhedron(vertices, faces, triangularMesh,
false);