From bb1a9d782886ca83a08b0c6bf1780dd373589e95 Mon Sep 17 00:00:00 2001 From: Labauke <37376091+Labauke@users.noreply.github.com> Date: Tue, 19 Dec 2023 15:56:05 +0100 Subject: [PATCH] toString() with precision for vector2d and 3d --- externals/IBKMK/src/IBKMK_Vector2D.cpp | 6 ++++++ externals/IBKMK/src/IBKMK_Vector2D.h | 2 ++ externals/IBKMK/src/IBKMK_Vector3D.cpp | 6 ++++++ externals/IBKMK/src/IBKMK_Vector3D.h | 3 +++ 4 files changed, 17 insertions(+) diff --git a/externals/IBKMK/src/IBKMK_Vector2D.cpp b/externals/IBKMK/src/IBKMK_Vector2D.cpp index 97e6380e5..c82698518 100644 --- a/externals/IBKMK/src/IBKMK_Vector2D.cpp +++ b/externals/IBKMK/src/IBKMK_Vector2D.cpp @@ -49,6 +49,12 @@ std::string Vector2D::toString() const { return strm.str(); } +std::string Vector2D::toString(int precision) const { + std::stringstream strm; + strm << std::setprecision(precision) << m_x << " " << m_y; + return strm.str(); +} + /*! Converts a vector from a string in format "x y z". Throws an exception if parsing of numbers fails. */ Vector2D Vector2D::fromString(const std::string & vecString) { FUNCID(Vector2D::fromString); diff --git a/externals/IBKMK/src/IBKMK_Vector2D.h b/externals/IBKMK/src/IBKMK_Vector2D.h index fab98a336..54ad7a3f1 100644 --- a/externals/IBKMK/src/IBKMK_Vector2D.h +++ b/externals/IBKMK/src/IBKMK_Vector2D.h @@ -148,6 +148,8 @@ class Vector2D : public IBK::point2D { /*! Converts a vector to a string in format "x y z". */ std::string toString() const; + /*! Converts a vector to a string in format "x y z" with given numerical precision */ + std::string toString(int precision) const; /*! Converts a vector from a string in format "x y z". Throws an exception if parsing of numbers fails. */ static Vector2D fromString(const std::string & vecString); diff --git a/externals/IBKMK/src/IBKMK_Vector3D.cpp b/externals/IBKMK/src/IBKMK_Vector3D.cpp index f6032da8f..226e13157 100644 --- a/externals/IBKMK/src/IBKMK_Vector3D.cpp +++ b/externals/IBKMK/src/IBKMK_Vector3D.cpp @@ -49,6 +49,12 @@ std::string Vector3D::toString() const { return strm.str(); } +std::string IBKMK::Vector3D::toString(int precision) const { + std::stringstream strm; + strm << std::setprecision(precision) << m_x << " " << m_y << " " << m_z; + return strm.str(); +} + Vector3D Vector3D::fromString(const std::string & vecString) { FUNCID(Vector3D::fromString); diff --git a/externals/IBKMK/src/IBKMK_Vector3D.h b/externals/IBKMK/src/IBKMK_Vector3D.h index 777c048c5..b5543b26f 100644 --- a/externals/IBKMK/src/IBKMK_Vector3D.h +++ b/externals/IBKMK/src/IBKMK_Vector3D.h @@ -188,6 +188,9 @@ class Vector3D : public IBK::point3D { /*! Converts a vector to a string in format "x y z". */ std::string toString() const; + /*! Converts a vector to a string in format "x y z". */ + std::string toString(int precision) const; + /*! Converts a vector from a string in format "x y z". Throws an exception if parsing of numbers fails. */ static Vector3D fromString(const std::string & vecString); };