X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=common%2FclitkCommon.cxx;h=c71bd5078fbf5598e7982eb81287204c1c26c694;hb=08f7de414957e92b25ca5b299007e941b610d3a8;hp=785b0fd2c021ad087dd500a68ba0d03a60481b65;hpb=1b6c27b984f38e6a16edb99c78e513d85b53ea00;p=clitk.git diff --git a/common/clitkCommon.cxx b/common/clitkCommon.cxx index 785b0fd..c71bd50 100644 --- a/common/clitkCommon.cxx +++ b/common/clitkCommon.cxx @@ -19,6 +19,14 @@ #ifndef CLITKCOMMON_CXX #define CLITKCOMMON_CXX +#include + +#ifdef _WIN32 + #define _USE_MATH_DEFINES + #include + const double M_PI = std::acos(-1.0); +#endif + // clitk include #include "clitkCommon.h" @@ -69,6 +77,24 @@ std::string clitk::GetExtension(const std::string& filename) } //// //------------------------------------------------------------------ + +//------------------------------------------------------------------ +// Return filename splitting in 1 or 2 parts : directory name (if exists) & filename +std::vector clitk::SplitFilename(const std::string& filename) +{ + std::vector dirname; + std::string path = itksys::SystemTools::GetFilenamePath(filename); + std::vector pathComponents; + itksys::SystemTools::SplitPath(filename.c_str(), pathComponents); + std::string fileName = pathComponents.back(); + if (path != "") + dirname.push_back(path); + dirname.push_back(fileName); + return( dirname ); +} //// +//------------------------------------------------------------------ + + //------------------------------------------------------------------ // Display progression void clitk::VerboseInProgress(const int nb, const int current, const int percentage) @@ -104,6 +130,15 @@ float clitk::PixelTypeDownCast(const double & x) } //------------------------------------------------------------------ +//------------------------------------------------------------------ +// Convert a pixel type without casting +template<> +double clitk::PixelTypeDownCast(const double & x) +{ + return x; +} +//------------------------------------------------------------------ + //------------------------------------------------------------------ double clitk::rad2deg(const double anglerad) { @@ -243,7 +278,7 @@ double clitk::ComputeEuclideanDistanceFromPointToPlane(const itk::ContinuousInde // Open a file for reading void clitk::openFileForReading(std::ifstream & is, const std::string & filename) { - is.open(filename.c_str(), std::ios::in); + is.open(filename.c_str(), std::ios::in | std::ios::binary); if ( is.fail() ) { clitkExceptionMacro("Could not open file for reading: " << filename << ". Error is : <"