From 6f6e8fde1f70692406ba70e3380d7149cabfdc52 Mon Sep 17 00:00:00 2001 From: ageay Date: Tue, 25 Aug 2009 14:59:46 +0000 Subject: [PATCH] *** empty log message *** --- src/INTERP_KERNEL/InterpolationOptions.cxx | 134 +++++++++++++++++++++ src/INTERP_KERNEL/InterpolationOptions.hxx | 23 ++++ 2 files changed, 157 insertions(+) diff --git a/src/INTERP_KERNEL/InterpolationOptions.cxx b/src/INTERP_KERNEL/InterpolationOptions.cxx index a23422564..6bbb520b6 100644 --- a/src/INTERP_KERNEL/InterpolationOptions.cxx +++ b/src/INTERP_KERNEL/InterpolationOptions.cxx @@ -23,3 +23,137 @@ const double INTERP_KERNEL::InterpolationOptions::DFT_MEDIAN_PLANE=0.5; const double INTERP_KERNEL::InterpolationOptions::DFT_SURF3D_ADJ_EPS=1.e-4; const double INTERP_KERNEL::InterpolationOptions::DFT_MAX_DIST_3DSURF_INTERSECT=-1.; + +const char INTERP_KERNEL::InterpolationOptions::PRECISION_STR[]="Precision"; + +const char INTERP_KERNEL::InterpolationOptions::MEDIANE_PLANE_STR[]="MedianPlane"; + +const char INTERP_KERNEL::InterpolationOptions::BOUNDING_BOX_ADJ_STR[]="BoundingBoxAdjustment"; + +const char INTERP_KERNEL::InterpolationOptions::BOUNDING_BOX_ADJ_ABS_STR[]="BoundingBoxAdjustmentAbs"; + +const char INTERP_KERNEL::InterpolationOptions::MAX_DISTANCE_3DSURF_INSECT_STR[]="MaxDistance3DSurfIntersect"; + +const char INTERP_KERNEL::InterpolationOptions::PRINT_LEV_STR[]="PrintLevel"; + +const char INTERP_KERNEL::InterpolationOptions::DO_ROTATE_STR[]="DoRotate"; + +const char INTERP_KERNEL::InterpolationOptions::ORIENTATION_STR[]="Orientation"; + +const char INTERP_KERNEL::InterpolationOptions::INTERSEC_TYPE_STR[]="IntersectionType"; + +const char INTERP_KERNEL::InterpolationOptions::SPLITTING_POLICY_STR[]="SplittingPolicy"; + +const char INTERP_KERNEL::InterpolationOptions::TRIANGULATION_INTERSECT2D_STR[]="Triangulation"; + +const char INTERP_KERNEL::InterpolationOptions::CONVEX_INTERSECT2D_STR[]="Convex"; + +const char INTERP_KERNEL::InterpolationOptions::GEOMETRIC_INTERSECT2D_STR[]="Geometric2D"; + +const char INTERP_KERNEL::InterpolationOptions::PLANAR_SPLIT_FACE_5_STR[]="PLANAR_FACE_5"; + +const char INTERP_KERNEL::InterpolationOptions::PLANAR_SPLIT_FACE_6_STR[]="PLANAR_FACE_6"; + +const char INTERP_KERNEL::InterpolationOptions::GENERAL_SPLIT_24_STR[]="GENERAL_24"; + +const char INTERP_KERNEL::InterpolationOptions::GENERAL_SPLIT_48_STR[]="GENERAL_48"; + +bool INTERP_KERNEL::InterpolationOptions::setOptionDouble(const std::string& key, double value) +{ + if(key==PRECISION_STR) + { + setPrecision(value); + return true; + } + else if(key==MEDIANE_PLANE_STR) + { + setMedianPlane(value); + return true; + } + else if(key==BOUNDING_BOX_ADJ_STR) + { + setBoundingBoxAdjustment(value); + return true; + } + else if(key==BOUNDING_BOX_ADJ_ABS_STR) + { + setBoundingBoxAdjustmentAbs(value); + return true; + } + else if(key==MAX_DISTANCE_3DSURF_INSECT_STR) + { + setMaxDistance3DSurfIntersect(value); + return true; + } + else + return false; +} + +bool INTERP_KERNEL::InterpolationOptions::setOptionInt(const std::string& key, int value) +{ + if(key==PRINT_LEV_STR) + { + setPrintLevel(value); + return true; + } + else if(key==DO_ROTATE_STR) + { + setDoRotate(value); + return true; + } + else if(key==ORIENTATION_STR) + { + setOrientation(value); + return true; + } + else + return false; +} + +bool INTERP_KERNEL::InterpolationOptions::setOptionString(const std::string& key, std::string& value) +{ + if(key==INTERSEC_TYPE_STR) + { + if(value==TRIANGULATION_INTERSECT2D_STR) + { + setIntersectionType(INTERP_KERNEL::Triangulation); + return true; + } + else if(value==CONVEX_INTERSECT2D_STR) + { + setIntersectionType(INTERP_KERNEL::Convex); + return true; + } + else if(value==GEOMETRIC_INTERSECT2D_STR) + { + setIntersectionType(INTERP_KERNEL::Geometric2D); + return true; + } + } + else if(key==SPLITTING_POLICY_STR) + { + if(value==PLANAR_SPLIT_FACE_5_STR) + { + setSplittingPolicy(INTERP_KERNEL::PLANAR_FACE_5); + return true; + } + else if(value==PLANAR_SPLIT_FACE_6_STR) + { + setSplittingPolicy(INTERP_KERNEL::PLANAR_FACE_6); + return true; + } + else if(value==GENERAL_SPLIT_24_STR) + { + setSplittingPolicy(INTERP_KERNEL::GENERAL_24); + return true; + } + else if(value==GENERAL_SPLIT_48_STR) + { + setSplittingPolicy(INTERP_KERNEL::GENERAL_48); + return true; + } + else + return false; + } + return false; +} diff --git a/src/INTERP_KERNEL/InterpolationOptions.hxx b/src/INTERP_KERNEL/InterpolationOptions.hxx index 3aa5e1cbc..bfc843508 100644 --- a/src/INTERP_KERNEL/InterpolationOptions.hxx +++ b/src/INTERP_KERNEL/InterpolationOptions.hxx @@ -21,6 +21,8 @@ #include "INTERPKERNELDefines.hxx" +#include + namespace INTERP_KERNEL { typedef enum { Triangulation, Convex, Geometric2D } IntersectionType; @@ -90,10 +92,31 @@ namespace INTERP_KERNEL _orientation=0; _splitting_policy=GENERAL_48; } + bool setOptionDouble(const std::string& key, double value); + bool setOptionInt(const std::string& key, int value); + bool setOptionString(const std::string& key, std::string& value); private: static const double DFT_MEDIAN_PLANE; static const double DFT_SURF3D_ADJ_EPS; static const double DFT_MAX_DIST_3DSURF_INTERSECT; + public: + static const char PRECISION_STR[]; + static const char MEDIANE_PLANE_STR[]; + static const char BOUNDING_BOX_ADJ_STR[]; + static const char BOUNDING_BOX_ADJ_ABS_STR[]; + static const char MAX_DISTANCE_3DSURF_INSECT_STR[]; + static const char PRINT_LEV_STR[]; + static const char DO_ROTATE_STR[]; + static const char ORIENTATION_STR[]; + static const char INTERSEC_TYPE_STR[]; + static const char SPLITTING_POLICY_STR[]; + static const char TRIANGULATION_INTERSECT2D_STR[]; + static const char CONVEX_INTERSECT2D_STR[]; + static const char GEOMETRIC_INTERSECT2D_STR[]; + static const char PLANAR_SPLIT_FACE_5_STR[]; + static const char PLANAR_SPLIT_FACE_6_STR[]; + static const char GENERAL_SPLIT_24_STR[]; + static const char GENERAL_SPLIT_48_STR[]; }; } -- 2.39.2