Base: extend ShapeHintsItem to allow to set vertex ordering and shape type

This commit is contained in:
wmayer
2023-11-08 20:06:54 +01:00
committed by wwmayer
parent 0d221c0969
commit ba95a534d5
2 changed files with 80 additions and 3 deletions

View File

@@ -89,6 +89,30 @@ std::string DrawStyle::patternAsString() const
return str.str();
}
const char* VertexOrdering::toString() const
{
switch (ordering) {
case Ordering::UnknownOrdering:
return "UNKNOWN_ORDERING";
case Ordering::Clockwise:
return "CLOCKWISE";
case Ordering::CounterClockwise:
return "COUNTERCLOCKWISE";
}
return "UNKNOWN_ORDERING";
}
const char* ShapeType::toString() const
{
switch (type) {
case Type::UnknownShapeType:
return "UNKNOWN_SHAPE_TYPE";
case Type::Convex:
return "SOLID";
}
return "UNKNOWN_SHAPE_TYPE";
}
const char* BindingElement::bindingAsString() const
{
switch (value) {
@@ -631,10 +655,23 @@ ShapeHintsItem::ShapeHintsItem(float creaseAngle) : creaseAngle(creaseAngle)
}
void ShapeHintsItem::setVertexOrdering(VertexOrdering::Ordering value)
{
vertexOrdering.ordering = value;
}
void ShapeHintsItem::setShapeType(ShapeType::Type value)
{
shapeType.type = value;
}
void ShapeHintsItem::write(InventorOutput& out) const
{
out.write() << "ShapeHints {\n";
out.write() << " creaseAngle " << creaseAngle << '\n';
out.write() << " vertexOrdering " << vertexOrdering.toString() << '\n';
out.write() << " shapeType " << shapeType.toString() << '\n';
out.write() << "}\n";
}
@@ -915,11 +952,16 @@ void TransformItem::write(InventorOutput& out) const
InventorBuilder::InventorBuilder(std::ostream& output)
: result(output)
{
result << "#Inventor V2.1 ascii \n\n";
addHeader();
}
InventorBuilder:: ~InventorBuilder() = default;
void InventorBuilder::addHeader()
{
result << "#Inventor V2.1 ascii \n\n";
}
void InventorBuilder::increaseIndent()
{
indent.increaseIndent();