diff --git a/blocking/inc/gmds/blocking/CurvedBlocking.h b/blocking/inc/gmds/blocking/CurvedBlocking.h index 05eb7bf5e..6a028e382 100644 --- a/blocking/inc/gmds/blocking/CurvedBlocking.h +++ b/blocking/inc/gmds/blocking/CurvedBlocking.h @@ -649,12 +649,6 @@ class LIB_GMDS_BLOCKING_API CurvedBlocking */ void capt_element(const int AnIdElement, const int ADim); - /**\brief return the parameters for do the cut_sheet - * @param[in] pointId A point id - * @return return the parameters for the cut, we get the edge (first) and the parameter included in ]0,1[(second) - */ - std::pair get_cut_info(int pointId); - /**\brief return if a cut is possible * @param[in] pointId A point id * @param[in] AllEdges all the edges of the blocking diff --git a/blocking/src/CurvedBlocking.cpp b/blocking/src/CurvedBlocking.cpp index 7f8d853b0..238f87452 100644 --- a/blocking/src/CurvedBlocking.cpp +++ b/blocking/src/CurvedBlocking.cpp @@ -1,6 +1,8 @@ /*----------------------------------------------------------------------------*/ #include "gmds/blocking/CurvedBlocking.h" /*----------------------------------------------------------------------------*/ +#include +/*----------------------------------------------------------------------------*/ using namespace gmds; using namespace gmds::blocking; /*----------------------------------------------------------------------------*/ @@ -1000,7 +1002,7 @@ CurvedBlocking::capt_element(const int AnIdElement, const int ADim) { if(ADim == 0){ - auto paramCut = get_cut_info(AnIdElement); + auto paramCut = get_cut_info(m_geom_model->getPoint(AnIdElement)->point()); cut_sheet(paramCut.first,paramCut.second); } else{ @@ -1045,31 +1047,6 @@ CurvedBlocking::check_cut_possible(int pointId, std::vector -CurvedBlocking::get_cut_info(int pointId) -{ - std::pair paramCut; - - //============================================ - auto noCaptPoint0 = m_geom_model->getPoint(pointId); - gmds::math::Point p(noCaptPoint0->X(),noCaptPoint0->Y(),noCaptPoint0->Z()); - - auto listEdgesPara = get_all_sheet_edge_sets(); - std::vector listEdgesSplitable; - unsigned int distMini = 1000; - for(auto edges : listEdgesPara){ - auto projInfo = get_projection_info(p,edges); - for(int i =0; i< projInfo.size();i++){ - if(projInfo[i].second<1 && projInfo[i].second>0 && projInfo[i].first CurvedBlocking::get_cut_info(gmds::math::Point APoint) { @@ -1081,19 +1058,17 @@ CurvedBlocking::get_cut_info(gmds::math::Point APoint) //============================================ auto listEdgesPara = get_all_sheet_edge_sets(); - std::vector listEdgesSplitable; - unsigned int distMini = 1000; + double distMini = std::numeric_limits::max(); for(auto edges : listEdgesPara){ auto projInfo = get_projection_info(APoint,edges); for(int i =0; i< projInfo.size();i++){ if(projInfo[i].second<1 && projInfo[i].second>0 && projInfo[i].first > dist_coord; for (auto e: AEdges) { std::vector end_points = get_nodes_of_edge(e); - math::Point end0 = end_points[0]->info().point; - math::Point end1 = end_points[1]->info().point; + math::Point end0; + math::Point end1; + if( end_points[0]->info().topo_id < end_points[1]->info().topo_id) { + end0 = end_points[0]->info().point; + end1 = end_points[1]->info().point; + } + else{ + end0 = end_points[1]->info().point; + end1 = end_points[0]->info().point; + } math::Vector3d v1 = end1 - end0; math::Vector3d v2 = AP - end0; double coord = 0.0;