mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-27 10:51:13 +00:00
taxonomy string formatting
This commit is contained in:
@@ -398,3 +398,13 @@ ifcopenshell::geometry::taxonomy::collection * ifcopenshell::geometry::flatten(c
|
|||||||
});
|
});
|
||||||
return flat;
|
return flat;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const std::string& ifcopenshell::geometry::taxonomy::kind_to_string(kinds k) {
|
||||||
|
using namespace std::string_literals;
|
||||||
|
|
||||||
|
static std::string values[] = {
|
||||||
|
"matrix4"s, "point3"s, "direction3"s, "line"s, "circle"s, "ellipse"s, "bspline_curve"s, "offset_curve"s, "plane"s, "cylinder"s, "bspline_surface"s, "edge"s, "loop"s, "face"s, "shell"s, "solid"s, "loft"s, "extrusion"s, "revolve"s, "surface_curve_sweep"s, "node"s, "collection"s, "boolean_result"s
|
||||||
|
};
|
||||||
|
|
||||||
|
return values[k];
|
||||||
|
}
|
||||||
@@ -29,6 +29,8 @@ public:
|
|||||||
|
|
||||||
enum kinds { MATRIX4, POINT3, DIRECTION3, LINE, CIRCLE, ELLIPSE, BSPLINE_CURVE, OFFSET_CURVE, PLANE, CYLINDER, BSPLINE_SURFACE, EDGE, LOOP, FACE, SHELL, SOLID, LOFT, EXTRUSION, REVOLVE, SURFACE_CURVE_SWEEP, NODE, COLLECTION, BOOLEAN_RESULT, COLOUR, STYLE };
|
enum kinds { MATRIX4, POINT3, DIRECTION3, LINE, CIRCLE, ELLIPSE, BSPLINE_CURVE, OFFSET_CURVE, PLANE, CYLINDER, BSPLINE_SURFACE, EDGE, LOOP, FACE, SHELL, SOLID, LOFT, EXTRUSION, REVOLVE, SURFACE_CURVE_SWEEP, NODE, COLLECTION, BOOLEAN_RESULT, COLOUR, STYLE };
|
||||||
|
|
||||||
|
const std::string& kind_to_string(kinds k);
|
||||||
|
|
||||||
struct item {
|
struct item {
|
||||||
const IfcUtil::IfcBaseInterface* instance;
|
const IfcUtil::IfcBaseInterface* instance;
|
||||||
|
|
||||||
@@ -453,7 +455,7 @@ struct collection : public geom_item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void print(std::ostream& o, int indent = 0) const {
|
void print(std::ostream& o, int indent = 0) const {
|
||||||
o << std::string(indent, ' ') << "collection" << std::endl;
|
o << std::string(indent, ' ') << kind_to_string(kind()) << std::endl;
|
||||||
if (!matrix.is_identity()) {
|
if (!matrix.is_identity()) {
|
||||||
matrix.print(o, indent + 4);
|
matrix.print(o, indent + 4);
|
||||||
}
|
}
|
||||||
@@ -620,6 +622,12 @@ struct boolean_result : public collection {
|
|||||||
virtual item* clone() const { return new boolean_result(*this); }
|
virtual item* clone() const { return new boolean_result(*this); }
|
||||||
virtual kinds kind() const { return BOOLEAN_RESULT; }
|
virtual kinds kind() const { return BOOLEAN_RESULT; }
|
||||||
operation_t operation;
|
operation_t operation;
|
||||||
|
|
||||||
|
static const std::string& operation_str(operation_t op) {
|
||||||
|
using namespace std::string_literals;
|
||||||
|
static std::string s[] = { "union"s, "subtraction"s, "intersection"s };
|
||||||
|
return s[(size_t)op];
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
namespace impl {
|
namespace impl {
|
||||||
|
|||||||
Reference in New Issue
Block a user