32 const std::pair<Vector3D, Vector3D>& lineA,
33 const std::pair<Vector3D, Vector3D>& lineB) {
34 std::ofstream ostream;
35 ostream.open(name +
".obj");
37 objH.
line(lineA.first, lineA.second);
38 objH.
line(lineB.first, lineB.second);
51 double phiAvg,
double hX,
double hY) {
53 auto sectorBounds = std::make_shared<RectangleBounds>(hX, hY);
59 helperRotation.col(0) = helperColX;
60 helperRotation.col(1) = helperColY;
61 helperRotation.col(2) = helperColZ;
65 auto sectorTransformM = std::make_shared<Transform3D>(helperTransform);
66 sectorTransformM->prerotate(
AngleAxis3D(phiAvg - phiSec, helperColX));
68 auto sectorTransformP = std::make_shared<Transform3D>(helperTransform);
69 sectorTransformP->prerotate(
AngleAxis3D(phiAvg + phiSec, helperColX));
72 Surface::makeShared<PlaneSurface>(sectorTransformM, sectorBounds);
75 Surface::makeShared<PlaneSurface>(sectorTransformP, sectorBounds);
77 std::ofstream ostream;
78 ostream.open(name +
".obj");
80 sectorPlaneM->polyhedronRepresentation(
GeometryContext(), 1).draw(objH);
81 sectorPlaneP->polyhedronRepresentation(
GeometryContext(), 1).draw(objH);
90 static void writeObj(
const std::vector<IdentifiedPolyderon>& iphs) {
91 for (
const auto& iph : iphs) {
92 std::ofstream ostream;
93 ostream.open(std::get<std::string>(iph) +
".obj");
95 std::get<Polyhedron>(iph).draw(objH, std::get<bool>(iph));
107 std::ofstream ostream;
108 ostream.open(name + std::string(
".obj"));