diff --git a/src/Mod/Points/App/AppPointsPy.cpp b/src/Mod/Points/App/AppPointsPy.cpp index 941ad3ada2..57c1b9050c 100644 --- a/src/Mod/Points/App/AppPointsPy.cpp +++ b/src/Mod/Points/App/AppPointsPy.cpp @@ -88,7 +88,12 @@ private: reader.reset(new AscReader); } else if (file.hasExtension("e57")) { - reader.reset(new E57Reader); + Base::Reference hGrp = App::GetApplication().GetUserParameter() + .GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/Points/E57"); + bool useColor = hGrp->GetBool("UseColor", true); + bool checkState = hGrp->GetBool("CheckInvalidState", true); + float minDistance = hGrp->GetFloat("MinDistance", -1.); + reader.reset(new E57Reader(useColor, checkState, minDistance)); } else if (file.hasExtension("ply")) { reader.reset(new PlyReader); @@ -203,7 +208,12 @@ private: reader.reset(new AscReader); } else if (file.hasExtension("e57")) { - reader.reset(new E57Reader); + Base::Reference hGrp = App::GetApplication().GetUserParameter() + .GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/Points/E57"); + bool useColor = hGrp->GetBool("UseColor", true); + bool checkState = hGrp->GetBool("CheckInvalidState", true); + float minDistance = hGrp->GetFloat("MinDistance", -1.); + reader.reset(new E57Reader(useColor, checkState, minDistance)); } else if (file.hasExtension("ply")) { reader.reset(new PlyReader); diff --git a/src/Mod/Points/App/PointsAlgos.cpp b/src/Mod/Points/App/PointsAlgos.cpp index 6cedffb590..8dcf67fab8 100644 --- a/src/Mod/Points/App/PointsAlgos.cpp +++ b/src/Mod/Points/App/PointsAlgos.cpp @@ -47,7 +47,6 @@ #include #include -#include using namespace Points; @@ -1306,8 +1305,11 @@ void PcdReader::readBinary(bool transpose, // ---------------------------------------------------------------------------- -E57Reader::E57Reader() +E57Reader::E57Reader(const bool& Color, const bool& State, const float& Distance) { + useColor = Color; + checkState = State; + minDistance = Distance; } E57Reader::~E57Reader() @@ -1317,13 +1319,6 @@ E57Reader::~E57Reader() void E57Reader::read(const std::string& filename) { try { - // get settings - Base::Reference hGrp = App::GetApplication().GetUserParameter() - .GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("Mod/Points/E57"); - bool useColor = hGrp->GetBool("UseColor", true); - bool checkState = hGrp->GetBool("CheckInvalidState", true); - float minDistance = hGrp->GetFloat("MinDistance", -1.); - // read file e57::ImageFile imfi(filename, "r"); e57::StructureNode root = imfi.root(); diff --git a/src/Mod/Points/App/PointsAlgos.h b/src/Mod/Points/App/PointsAlgos.h index e3814012ae..d657dd9d9f 100644 --- a/src/Mod/Points/App/PointsAlgos.h +++ b/src/Mod/Points/App/PointsAlgos.h @@ -118,9 +118,12 @@ private: class E57Reader : public Reader { public: - E57Reader(); + E57Reader(const bool& Color, const bool& State, const float& Distance); ~E57Reader(); void read(const std::string& filename); +protected: + bool useColor, checkState; + float minDistance; }; class Writer