From: szy Date: Thu, 12 Dec 2013 11:26:33 +0000 (+0000) Subject: 12.12.2013. GetPointClassification() implemented. X-Git-Tag: BR_hydro_v_0_5~19 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=b224bc7bf6b9a68e79dfaab0ded899bc72f9c2e3;p=modules%2Fhydro.git 12.12.2013. GetPointClassification() implemented. --- diff --git a/src/HYDROData/HYDROData_CalculationCase.cxx b/src/HYDROData/HYDROData_CalculationCase.cxx index 5d910ddc..b8439721 100644 --- a/src/HYDROData/HYDROData_CalculationCase.cxx +++ b/src/HYDROData/HYDROData_CalculationCase.cxx @@ -20,7 +20,8 @@ #include #include #include - +#include +#include #define CALCULATION_REGIONS_PREF GetName() + "_Reg" #define CALCULATION_ZONES_PREF GetName() + "_Zone" @@ -620,7 +621,6 @@ Handle(HYDROData_Zone) HYDROData_CalculationCase::GetZoneFromPoint( const gp_XY& return aResZone; } - HYDROData_CalculationCase::PointClassification HYDROData_CalculationCase::GetPointClassification( const gp_XY& thePoint, const Handle(HYDROData_Zone)& theZone ) const @@ -637,6 +637,13 @@ HYDROData_CalculationCase::PointClassification HYDROData_CalculationCase::GetPoi // POINT_OUT - point is out of zone face // POINT_IN - point is inside of zone face // POINT_ON - point is on the edge of zone face - + BRepTopAdaptor_FClass2d aClassifier( aZoneFace, Precision::Confusion() ); + TopAbs_State State = aClassifier.Perform( gp_Pnt2d(thePoint), Standard_False ); + if (State == TopAbs_OUT) + aRes = POINT_OUT; + else if(State == TopAbs_IN) + aRes = POINT_IN; + else if(State == TopAbs_ON) + aRes = POINT_ON; return aRes; }