#include <BOPAlgo_BuilderShape.hxx>
#include <BOPAlgo_PaveFiller.hxx>
+//#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());
+#endif
//
aIt.Initialize(aS1);
for (; aIt.More(); aIt.Next()) {
//=======================================================================
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;
}