QStringList HYDROData_CalculationCase::DumpToPython( MapOfTreatedObjects& theTreatedObjects ) const
{
QStringList aResList = dumpObjectCreation( theTreatedObjects );
- QString aCalculName = GetName();
+
+ QString aCalculName = GetObjPyName();
HYDROData_SequenceOfObjects aGeomObjects = GetGeometryObjects();
HYDROData_SequenceOfObjects::Iterator anIter( aGeomObjects );
{
Handle(HYDROData_Object) aRefGeomObj =
Handle(HYDROData_Object)::DownCast( anIter.Value() );
- if ( !aRefGeomObj.IsNull() )
- setPythonReferenceObject( theTreatedObjects, aResList, aRefGeomObj, "AddGeometryObject" );
+ setPythonReferenceObject( theTreatedObjects, aResList, aRefGeomObj, "AddGeometryObject" );
}
aResList << QString( "" );
- aResList << QString( "%1.SplitGeometryObjects();" ).arg( aCalculName );
+ QString aGroupName = HYDROData_Tool::GenerateNameForPython( theTreatedObjects, "case_geom_group" );
+
+ HYDROData_SequenceOfObjects aGeomGroups = GetGeometryGroups();
+ anIter.Init( aGeomGroups );
+ for ( ; anIter.More(); anIter.Next() )
+ {
+ Handle(HYDROData_ShapesGroup) aGeomGroup =
+ Handle(HYDROData_ShapesGroup)::DownCast( anIter.Value() );
+ if ( aGeomGroup.IsNull() )
+ continue;
+
+ Handle(HYDROData_Object) aFatherGeom =
+ Handle(HYDROData_Object)::DownCast( aGeomGroup->GetFatherObject() );
+ if ( aFatherGeom.IsNull() )
+ continue;
+
+ int aGroupId = aFatherGeom->GetGroupId( aGeomGroup );
+ aResList << QString( "%1 = %2.GetGroup( %3 );" )
+ .arg( aGroupName ).arg( aFatherGeom->GetObjPyName() ).arg( aGroupId );
+
+ aResList << QString( "%1.AddGeometryGroup( %2 );" ).arg( aCalculName ).arg( aGroupName );
+ }
+ aResList << QString( "" );
+
+ Handle(HYDROData_PolylineXY) aBoundaryPolyline = GetBoundaryPolyline();
+ setPythonReferenceObject( theTreatedObjects, aResList, aBoundaryPolyline, "SetBoundaryPolyline" );
+ aResList << QString( "" );
+
+ aResList << QString( "%1.Update();" ).arg( aCalculName );
aResList << QString( "" );
// Now we restore the regions and zones order
continue;
QString aRegionName = aRegion->GetName();
- // TODO
+
+ HYDROData_SequenceOfObjects aZones = aRegion->GetZones();
+ HYDROData_SequenceOfObjects::Iterator aZonesIter( aZones );
+ for ( ; aZonesIter.More(); aZonesIter.Next() )
+ {
+ Handle(HYDROData_Zone) aRegZone =
+ Handle(HYDROData_Zone)::DownCast( aZonesIter.Value() );
+ if ( aRegZone.IsNull() )
+ continue;
+
+ // TODO
+ }
}
+ aResList << QString( "" );
return aResList;
}
BRepTopAdaptor_FClass2d aClassifier( aZoneFace, Precision::Confusion() );
TopAbs_State State = aClassifier.Perform( gp_Pnt2d(thePoint), Standard_False );
if (State == TopAbs_OUT)
- aRes = POINT_OUT;
+ aRes = POINT_OUT;
else if(State == TopAbs_IN)
aRes = POINT_IN;
else if(State == TopAbs_ON)
- aRes = POINT_ON;
+ aRes = POINT_ON;
return aRes;
}
{
aSewing.Add( aShape );
#ifdef DEB_CALCULATION
- TCollection_AsciiString aName = aNam + ++i + ".brep";
- BRepTools::Write(aShape ,aName.ToCString());
+ TCollection_AsciiString aName = aNam + ++i + ".brep";
+ BRepTools::Write(aShape ,aName.ToCString());
#endif
}
else
{
#ifdef DEB_CALCULATION
- int j = 1;
+ int j = 1;
#endif
TopExp_Explorer anExp( aShape, TopAbs_FACE );
- for (; anExp.More(); anExp.Next() ) {
+ for (; anExp.More(); anExp.Next() ) {
aSewing.Add( anExp.Current() );
#ifdef DEB_CALCULATION
TCollection_AsciiString aName = aNam + i + "_" + ++j + ".brep";
- BRepTools::Write(anExp.Current() ,aName.ToCString());
+ BRepTools::Write(anExp.Current() ,aName.ToCString());
#endif
- }
+ }
}
} // faces iterator
NCollection_Sequence<int> aGroupIndexes;
for( int i = 1, n = aGroupDef.Shapes.Length(); i <= n; i++ )
- {
+ {
const TopoDS_Shape& aShape = aGroupDef.Shapes.Value( i );
#ifdef DEB_CALCULATION
cout << "\nOld shape(" << i << ") = " << aShape.TShape() <<endl;
continue;
#ifdef DEB_CALCULATION
- const TopLoc_Location& aL1 = aShape.Location();
- const TopLoc_Location& aL2 = aModifiedShape.Location();
- cout << "\nNew shape(" << i << ") = " << aModifiedShape.TShape() << " Location is Equal = " << aL1.IsEqual(aL2)<<endl;
+ const TopLoc_Location& aL1 = aShape.Location();
+ const TopLoc_Location& aL2 = aModifiedShape.Location();
+ cout << "\nNew shape(" << i << ") = " << aModifiedShape.TShape() << " Location is Equal = " << aL1.IsEqual(aL2)<<endl;
#endif
- // Workaround for TopTools_IndexedMapOfShape::FindIndex()
- /*for ( int anIndex = 1; anIndex <= aMapOfSubShapes.Extent(); anIndex++ )
- {
- if ( aModifiedShape.IsPartner( aMapOfSubShapes.FindKey( anIndex ) ) )
+ int anIndex = aMapOfSubShapes.FindIndex(aModifiedShape);
+ if ( anIndex > 0 ) {
+ aGroupIndexes.Append( anIndex );
+ } else {
+#ifdef DEB_CALCULATION
+ TCollection_AsciiString aNam("Lost_");
+ if(!aMapOfSubShapes.Contains(aModifiedShape)) {
+ for ( int anIndex = 1; anIndex <= aMapOfSubShapes.Extent(); anIndex++ )
{
- aGroupIndexes.Append( anIndex );
- break;
+ const TopoDS_Shape& aS = aMapOfSubShapes.FindKey( anIndex );
+ if ( aModifiedShape.IsPartner( aS ) )
+ {
+ cout <<"\nIndex in Map = " << anIndex << "TShape = " << aS.TShape() <<endl;
+ TCollection_AsciiString aName = aNam + i + "_" + anIndex + ".brep";
+ BRepTools::Write(aS ,aName.ToCString());
+ break;
+ }
+ }
}
- }
- */
- int anIndex = aMapOfSubShapes.FindIndex(aModifiedShape);
- if(anIndex > 0) {
- aGroupIndexes.Append( anIndex );
- //break;
- } else {
-#ifdef DEB_CALCULATION
- TCollection_AsciiString aNam("Lost_");
- if(!aMapOfSubShapes.Contains(aModifiedShape)) {
- for ( int anIndex = 1; anIndex <= aMapOfSubShapes.Extent(); anIndex++ )
- {
- const TopoDS_Shape& aS = aMapOfSubShapes.FindKey( anIndex );
- if ( aModifiedShape.IsPartner( aS ) )
- {
- cout <<"\nIndex in Map = " << anIndex << "TShape = " << aS.TShape() <<endl;
- TCollection_AsciiString aName = aNam + i + "_" + anIndex + ".brep";
- BRepTools::Write(aS ,aName.ToCString());
- break;
- }
- }
- }
#endif
- }
- }
+ }
+ }
if ( !aGroupIndexes.IsEmpty() )
aGroupsData.Bind( aGroupDef.Name, aGroupIndexes );
}