diff --git a/src/Base/Builder3D.cpp b/src/Base/Builder3D.cpp index f2d77f8c8f..40c2ac8f55 100644 --- a/src/Base/Builder3D.cpp +++ b/src/Base/Builder3D.cpp @@ -546,6 +546,33 @@ void PolygonOffsetItem::write(InventorOutput& out) const // ----------------------------------------------------------------------------- +Coordinate3Item::Coordinate3Item(const std::vector& points) + : points(points) +{ +} + +void Coordinate3Item::write(InventorOutput& out) const +{ + beginPoint(out); + InventorFieldWriter writer; + writer.write("point", points, out); + endPoint(out); +} + +void Coordinate3Item::beginPoint(InventorOutput& out) const +{ + out.writeLine("Coordinate3 {"); + out.increaseIndent(); +} + +void Coordinate3Item::endPoint(InventorOutput& out) const +{ + out.decreaseIndent(); + out.writeLine("}"); +} + +// ----------------------------------------------------------------------------- + void PointSetItem::write(InventorOutput& out) const { out.writeLine("PointSet { }"); diff --git a/src/Base/Builder3D.h b/src/Base/Builder3D.h index 83587a1101..788271528e 100644 --- a/src/Base/Builder3D.h +++ b/src/Base/Builder3D.h @@ -354,6 +354,21 @@ private: PolygonOffset offset; }; +/*! + * \brief The Coordinate3Item class supports the SoCoordinate3 node. + */ +class BaseExport Coordinate3Item : public NodeItem +{ +public: + Coordinate3Item(const std::vector& points); + void write(InventorOutput& out) const override; + +private: + void beginPoint(InventorOutput& out) const; + void endPoint(InventorOutput& out) const; + std::vector points; +}; + /*! * \brief The PointSetItem class supports the SoPointSet node. */