X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROData%2FHYDROData_Transform.cxx;h=391482b5fc51a7fb6d7cd8eb8a93f83cd7b97126;hb=27b1abdc88719c5bce7a8d2f49612cd155e80d21;hp=a4a2f12223900461c57f20b64497151a87eb3cb8;hpb=b4100f7bda1606e214941fd08309898082ab73e9;p=modules%2Fhydro.git diff --git a/src/HYDROData/HYDROData_Transform.cxx b/src/HYDROData/HYDROData_Transform.cxx index a4a2f122..391482b5 100644 --- a/src/HYDROData/HYDROData_Transform.cxx +++ b/src/HYDROData/HYDROData_Transform.cxx @@ -1,3 +1,21 @@ +// Copyright (C) 2014-2015 EDF-R&D +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// + #include #include @@ -20,6 +38,19 @@ #include #include +//#define DEB_SPLIT_TO_ZONES_CHECK_PARTITION 1 +#ifdef DEB_SPLIT_TO_ZONES_CHECK_PARTITION +#include +#include +static TCollection_AsciiString fileNameAfter("AfterTranslation"); +#endif + +void HYDROData_Transform::SetFileName(const TCollection_AsciiString& theNameAfter) +{ +#ifdef DEB_SPLIT_TO_ZONES_CHECK_PARTITION + fileNameAfter = theNameAfter; +#endif +} //======================================================================= //function : HYDROData_Transform //purpose : @@ -190,7 +221,7 @@ void HYDROData_Transform::Detect() aXc=0.5*(aXmin+aXmax); aYc=0.5*(aYmin+aYmax); aZc=0.5*(aZmin+aZmax); - printf(" aVc : { %lf %lf %lf }\n", aXc, aYc, aZc); + //printf(" aVc : { %lf %lf %lf }\n", aXc, aYc, aZc); // myToTransform=Standard_False; if (fabs(aXc)>myTreshold || @@ -223,18 +254,21 @@ void HYDROData_Transform::ComputeTrsf() //purpose : //======================================================================= void HYDROData_Transform::Transform1() -{ - Standard_Boolean bIsDone; - // +{ myErrorStatus=0; // - myTransform1=new BRepBuilderAPI_Transform(myTrsf1); - // - myTransform1->Perform(myArgument); - bIsDone=myTransform1->IsDone(); - if (!bIsDone) { - myErrorStatus=11; - return; + if (myToTransform) {//pkv ft + Standard_Boolean bIsDone; + // + myErrorStatus=0; + // + myTransform1=new BRepBuilderAPI_Transform(myTrsf1); + // + myTransform1->Perform(myArgument); + bIsDone=myTransform1->IsDone(); + if (!bIsDone) { + myErrorStatus=11; + } } } //======================================================================= @@ -250,7 +284,16 @@ void HYDROData_Transform::BuildFuse() // myErrorStatus=0; // - const TopoDS_Shape& aS1=myTransform1->Shape(); + //modified by NIZNHY-PKV Wed Jan 15 13:24:48 2014f + const TopoDS_Shape& aS1= + (myToTransform)? myTransform1->Shape() : myArgument; + //const TopoDS_Shape& aS1=()Transform1->Shape(); + //modified by NIZNHY-PKV Wed Jan 15 13:24:52 2014t + +#ifdef DEB_SPLIT_TO_ZONES_CHECK_PARTITION + TCollection_AsciiString aNameBefore = fileNameAfter + ".brep"; + BRepTools::Write(aS1, aNameBefore.ToCString()); +#endif // aIt.Initialize(aS1); for (; aIt.More(); aIt.Next()) { @@ -288,24 +331,27 @@ void HYDROData_Transform::BuildFuse() //======================================================================= void HYDROData_Transform::Transform2() { - Standard_Boolean bIsDone; - // myErrorStatus=0; // const TopoDS_Shape& aR1=myBuilder->Shape(); // - myTransform2=new BRepBuilderAPI_Transform(myTrsf2); - // - myTransform2->Perform(aR1); - bIsDone=myTransform2->IsDone(); - if (!bIsDone) { - myErrorStatus=12; - return; + myShape=aR1; //pkv ft + if (myToTransform) { //pkv ft + Standard_Boolean bIsDone; + // + myTransform2=new BRepBuilderAPI_Transform(myTrsf2); + // + myTransform2->Perform(aR1); + bIsDone=myTransform2->IsDone(); + if (!bIsDone) { + myErrorStatus=12; + return; + } + // + const TopoDS_Shape& aR2=myTransform2->Shape(); + // + myShape=aR2; } - // - const TopoDS_Shape& aR2=myTransform2->Shape(); - // - myShape=aR2; } // //======================================================================= @@ -321,16 +367,34 @@ const TopTools_ListOfShape& HYDROData_Transform::Modified pHistShapes=(TopTools_ListOfShape*)&myHistShapes; pHistShapes->Clear(); // - const TopTools_ListOfShape& aLS1=myTransform1->Modified(aS); - const TopoDS_Shape& aS1=aLS1.First(); - // - const TopTools_ListOfShape& aLS1B=myBuilder->Modified(aS1); - aItLS.Initialize(aLS1B); - for (; aItLS.More(); aItLS.Next()) { - const TopoDS_Shape& aS1B=aItLS.Value(); - const TopTools_ListOfShape& aLS2B=myTransform2->Modified(aS1B); - const TopoDS_Shape& aS2B=aLS2B.First(); - pHistShapes->Append(aS2B); + if (myToTransform) { //pkv ft + const TopTools_ListOfShape& aLS1=myTransform1->Modified(aS); + const TopoDS_Shape& aS1=aLS1.First(); + // + const TopTools_ListOfShape& aLS1B=myBuilder->Modified(aS1); + // + if (aLS1B.IsEmpty()) { //pkv ft + const TopTools_ListOfShape& aLS2B=myTransform2->Modified(aS1); + const TopoDS_Shape& aS2B=aLS2B.First(); + pHistShapes->Append(aS2B); + } + else { + aItLS.Initialize(aLS1B); + for (; aItLS.More(); aItLS.Next()) { + const TopoDS_Shape& aS1B=aItLS.Value(); + const TopTools_ListOfShape& aLS2B=myTransform2->Modified(aS1B); + const TopoDS_Shape& aS2B=aLS2B.First(); + pHistShapes->Append(aS2B); + } + } + } + else { + const TopTools_ListOfShape& aLS1B=myBuilder->Modified(aS); + aItLS.Initialize(aLS1B); + for (; aItLS.More(); aItLS.Next()) { + const TopoDS_Shape& aS1B=aItLS.Value(); + pHistShapes->Append(aS1B); + } } // return myHistShapes; @@ -348,16 +412,33 @@ const TopTools_ListOfShape& HYDROData_Transform::Generated pHistShapes=(TopTools_ListOfShape*)&myHistShapes; pHistShapes->Clear(); // - const TopTools_ListOfShape& aLS1=myTransform1->Modified(aS); - const TopoDS_Shape& aS1=aLS1.First(); - // - const TopTools_ListOfShape& aLS1B=myBuilder->Generated(aS1); - aItLS.Initialize(aLS1B); - for (; aItLS.More(); aItLS.Next()) { - const TopoDS_Shape& aS1B=aItLS.Value(); - const TopTools_ListOfShape& aLS2B=myTransform2->Modified(aS1B); - const TopoDS_Shape& aS2B=aLS2B.First(); - pHistShapes->Append(aS2B); + if (myToTransform) { //pkv ft + const TopTools_ListOfShape& aLS1=myTransform1->Modified(aS); + const TopoDS_Shape& aS1=aLS1.First(); + // + const TopTools_ListOfShape& aLS1B=myBuilder->Generated(aS1); + if (aLS1B.IsEmpty()) { //pkv ft + const TopTools_ListOfShape& aLS2B=myTransform2->Modified(aS1); + const TopoDS_Shape& aS2B=aLS2B.First(); + pHistShapes->Append(aS2B); + } + else { + aItLS.Initialize(aLS1B); + for (; aItLS.More(); aItLS.Next()) { + const TopoDS_Shape& aS1B=aItLS.Value(); + const TopTools_ListOfShape& aLS2B=myTransform2->Modified(aS1B); + const TopoDS_Shape& aS2B=aLS2B.First(); + pHistShapes->Append(aS2B); + } + } + } + else { + const TopTools_ListOfShape& aLS1B=myBuilder->Generated(aS); + aItLS.Initialize(aLS1B); + for (; aItLS.More(); aItLS.Next()) { + const TopoDS_Shape& aS1B=aItLS.Value(); + pHistShapes->Append(aS1B); + } } // return myHistShapes; @@ -370,10 +451,15 @@ Standard_Boolean HYDROData_Transform::IsDeleted(const TopoDS_Shape& aS) { Standard_Boolean bIsDeleted; // - const TopTools_ListOfShape& aLS1=myTransform1->Modified(aS); - const TopoDS_Shape& aS1=aLS1.First(); - // - bIsDeleted=myBuilder->IsDeleted(aS1); + if (myToTransform) { //pkv ft + const TopTools_ListOfShape& aLS1=myTransform1->Modified(aS); + const TopoDS_Shape& aS1=aLS1.First(); + // + bIsDeleted=myBuilder->IsDeleted(aS1); + } + else { + bIsDeleted=myBuilder->IsDeleted(aS); + } // return bIsDeleted; }