diff --git a/src/Mod/Points/App/PointsAlgos.cpp b/src/Mod/Points/App/PointsAlgos.cpp index 3f92776e42..126ade2a7e 100644 --- a/src/Mod/Points/App/PointsAlgos.cpp +++ b/src/Mod/Points/App/PointsAlgos.cpp @@ -213,19 +213,25 @@ void AscReader::read(const std::string& filename) namespace Points { class Converter { public: - virtual ~Converter() { - } - virtual std::string toString(float) const = 0; + Converter() = default; + virtual ~Converter() = default; + virtual std::string toString(double) const = 0; virtual double toDouble(Base::InputStream&) const = 0; virtual int getSizeOf() const = 0; + +private: + Converter(const Converter&) = delete; + Converter(Converter&&) = delete; + Converter& operator= (const Converter&) = delete; + Converter& operator= (Converter&&) = delete; }; template class ConverterT : public Converter { public: - virtual std::string toString(float f) const { + virtual std::string toString(double f) const { T c = static_cast(f); std::ostringstream oss; - oss.precision(6); + oss.precision(7); oss.setf(std::ostringstream::showpoint); oss << c; return oss.str(); @@ -1818,7 +1824,7 @@ void PcdWriter::write(const std::string& filename) std::size_t numPoints = points.size(); const std::vector& pts = points.getBasicPoints(); - Eigen::MatrixXf data(numPoints, fields.size()); + Eigen::MatrixXd data(numPoints, fields.size()); if (placement.isIdentity()) { for (std::size_t i=0; i