+// 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 <HYDROData_Transform.h>
#include <math.h>
#include <BOPAlgo_BuilderShape.hxx>
#include <BOPAlgo_PaveFiller.hxx>
-#define DEB_SPLIT_TO_ZONES_CHECK_PARTITION 1
+//#define DEB_SPLIT_TO_ZONES_CHECK_PARTITION 1
#ifdef DEB_SPLIT_TO_ZONES_CHECK_PARTITION
#include <BRepTools.hxx>
#include <TCollection_AsciiString.hxx>
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 :
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 ||
//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;
+ }
}
}
//=======================================================================
//
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());
//=======================================================================
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;
}
//
//=======================================================================
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;
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;
{
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;
}