// Author : Anthony Geay (CEA/DEN)
#include "InterpolationOptions.hxx"
+#include "InterpKernelGeo2DPrecision.hxx"
#include "InterpKernelException.hxx"
#include <sstream>
const double INTERP_KERNEL::InterpolationOptions::DFT_MAX_DIST_3DSURF_INTERSECT=-1.;
+const double INTERP_KERNEL::InterpolationOptions::DFT_MIN_DOT_BTW_3DSURF_INTERSECT=-1.;
+
const char INTERP_KERNEL::InterpolationOptions::PRECISION_STR[]="Precision";
+const char INTERP_KERNEL::InterpolationOptions::ARC_DETECTION_PRECISION_STR[]="ArcDetectionPrecision";
+
const char INTERP_KERNEL::InterpolationOptions::MEDIANE_PLANE_STR[]="MedianPlane";
const char INTERP_KERNEL::InterpolationOptions::BOUNDING_BOX_ADJ_STR[]="BoundingBoxAdjustment";
const char INTERP_KERNEL::InterpolationOptions::MAX_DISTANCE_3DSURF_INSECT_STR[]="MaxDistance3DSurfIntersect";
+const char INTERP_KERNEL::InterpolationOptions::MIN_DOT_BTW_3DSURF_INSECT_STR[]="MinDotBetween3DSurfIntersect";
+
const char INTERP_KERNEL::InterpolationOptions::PRINT_LEV_STR[]="PrintLevel";
const char INTERP_KERNEL::InterpolationOptions::DO_ROTATE_STR[]="DoRotate";
_bounding_box_adjustment=DFT_SURF3D_ADJ_EPS;
_bounding_box_adjustment_abs=0.;
_max_distance_for_3Dsurf_intersect=DFT_MAX_DIST_3DSURF_INTERSECT;
+ _min_dot_btw_3Dsurf_intersect=DFT_MIN_DOT_BTW_3DSURF_INTERSECT;
_orientation=0;
_measure_abs=true;
_splitting_policy=PLANAR_FACE_5;
}
+double INTERP_KERNEL::InterpolationOptions::getArcDetectionPrecision() const
+{
+ return INTERP_KERNEL::QUADRATIC_PLANAR::_arc_detection_precision;
+}
+
+void INTERP_KERNEL::InterpolationOptions::setArcDetectionPrecision(double p)
+{
+ INTERP_KERNEL::QUADRATIC_PLANAR::_arc_detection_precision=p;
+}
+
std::string INTERP_KERNEL::InterpolationOptions::getIntersectionTypeRepr() const
{
if(_intersection_type==INTERP_KERNEL::Triangulation)
setPrecision(value);
return true;
}
+ if(key==ARC_DETECTION_PRECISION_STR)
+ {
+ setArcDetectionPrecision(value);
+ return true;
+ }
else if(key==MEDIANE_PLANE_STR)
{
setMedianPlane(value);
setMaxDistance3DSurfIntersect(value);
return true;
}
+ else if(key==MIN_DOT_BTW_3DSURF_INSECT_STR)
+ {
+ setMinDotBtwPlane3DSurfIntersect(value);
+ return true;
+ }
else
return false;
}
oss << "Print level : " << _print_level << std::endl;
oss << "Intersection type : " << getIntersectionTypeRepr() << std::endl;
oss << "Precision : " << _precision << std::endl;
+ oss << "Arc Detection Precision : " << getArcDetectionPrecision() << std::endl;
oss << "Median plane : " << _median_plane << std::endl;
oss << "Do Rotate status : " << std::boolalpha << _do_rotate << std::endl;
oss << "Bounding box adj : " << _bounding_box_adjustment << std::endl;
oss << "Bounding box adj abs : " << _bounding_box_adjustment_abs << std::endl;
oss << "Max distance for 3DSurf intersect : " << _max_distance_for_3Dsurf_intersect << std::endl;
+ oss << "Min dot between plane for 3DSurf intersect : " << _min_dot_btw_3Dsurf_intersect << std::endl;
oss << "Orientation : " << _orientation << std::endl;
oss << "Measure abs : " << _measure_abs << std::endl;
oss << "Splitting policy : " << getSplittingPolicyRepr() << std::endl;