QStringList anEntryList;
HYDROData_SequenceOfObjects aSeq = HYDROGUI_Tool::GetGeometryObjects( module() );
getNamesAndEntries( aSeq, aList, anEntryList );
+
+ QStringList List1;
+ QStringList EList1;
+
+ //add intersection polylines
+ AddInterPolylinesToList(aList, anEntryList);
+
aPanel->setAllGeomObjects( aList, anEntryList );
// Get all polylines
{
aPolylineObj = Handle(HYDROData_PolylineXY)::DownCast( anIter.Current() );
- if ( !aPolylineObj.IsNull() && aPolylineObj->IsClosed() )
+ if ( !aPolylineObj.IsNull() && aPolylineObj->IsClosed(false) )
{
- // Check the polyline shape
- TopoDS_Shape aPolylineShape = aPolylineObj->GetShape();
- if ( !aPolylineShape.IsNull() && aPolylineShape.ShapeType() == TopAbs_WIRE ) {
+// // Check the polyline shape
+// TopoDS_Shape aPolylineShape = aPolylineObj->GetShape();
+// if ( !aPolylineShape.IsNull() && aPolylineShape.ShapeType() == TopAbs_WIRE ) {
aPolylineName = aPolylineObj->GetName();
if ( !aPolylineName.isEmpty() )
{
aList.append( aPolylineName );
anEntryList.append( HYDROGUI_DataObject::dataObjectEntry( aPolylineObj ) );
}
- }
+// }
}
}
aPanel->setPolylineNames( aList, anEntryList );
aPanel->setBoundary( aPolylineName );
}
- aSeq = myEditedObject->GetGeometryObjects();
+ aSeq = myEditedObject->GetGeometryObjects();
+ HYDROData_SequenceOfObjects anInterPolyList = myEditedObject->GetInterPolyObjects();
+ aSeq.Append(anInterPolyList);
+
getNamesAndEntries( aSeq, aList, anEntryList );
aPanel->includeGeomObjects( aList );
createPreview( false );
}
+void HYDROGUI_CalculationOp::AddInterPolylinesToList(QStringList& theList, QStringList& theEntryList)
+{
+ HYDROData_Iterator anIter( doc(), KIND_POLYLINEXY );
+ Handle(HYDROData_PolylineXY) aPolylineObj;
+ QString aPolylineName;
+ for ( ; anIter.More(); anIter.Next() )
+ {
+ aPolylineObj = Handle(HYDROData_PolylineXY)::DownCast( anIter.Current() );
+ if ( !aPolylineObj.IsNull())
+ {
+ aPolylineName = aPolylineObj->GetName();
+ if ( !aPolylineName.isEmpty() && !theList.contains(aPolylineName) )
+ {
+ theList.append( aPolylineName );
+ theEntryList.append(HYDROGUI_DataObject::dataObjectEntry( aPolylineObj ));
+ }
+ }
+ }
+}
+
void HYDROGUI_CalculationOp::getNamesAndEntries( const HYDROData_SequenceOfObjects& theSeq,
QStringList& theNames, QStringList& theEntries ) const
{
anAddedList.append( anObject->GetName() );
}
+ for (int i = 0; i < aSelectedList.length(); i++)
+ {
+ Handle(HYDROData_PolylineXY) aPoly = Handle(HYDROData_PolylineXY)::DownCast(
+ HYDROGUI_Tool::FindObjectByName( module(), aSelectedList.at( i ) ) );
+ if ( aPoly.IsNull() )
+ continue;
+
+ if ( myEditedObject->AddInterPoly( aPoly ) )
+ anAddedList.append( aPoly->GetName() );
+ }
+
if ( !anAddedList.isEmpty() )
{
aPanel->includeGeomObjects( anAddedList );
myEditedObject->RemoveGeometryObject( anObject );
}
+ for (int i = 0; i < aSelectedList.length(); i++)
+ {
+ Handle(HYDROData_PolylineXY) aPoly = Handle(HYDROData_PolylineXY)::DownCast(
+ HYDROGUI_Tool::FindObjectByName( module(), aSelectedList.at(i) ) );
+ if ( aPoly.IsNull() )
+ continue;
+
+ setObjectVisibility( aPoly, false );
+ myEditedObject->RemoveInterPolyObject ( aPoly );
+ }
+
module()->update( UF_OCCViewer );
aPanel->excludeGeomObjects( aSelectedList );
}
else if ( !theLandCoverMap && myShowGeomObjects )
{
HYDROData_SequenceOfObjects aSeqGO = myEditedObject->GetGeometryObjects();
+ HYDROData_SequenceOfObjects aSeqP = myEditedObject->GetInterPolyObjects();
aSeq.Append( aSeqGO );
+ aSeq.Append( aSeqP );
}
Handle(HYDROData_Entity) anEntity;
}
// Get a boundary polyline if any
- aSeq.Append( myEditedObject->GetBoundaryPolyline() );
+ if (Handle(HYDROData_PolylineXY) aBPoly = myEditedObject->GetBoundaryPolyline())
+ aSeq.Append( aBPoly );
module()->removeViewShapes( HYDROGUI_Module::VMR_PreviewCaseZones );
HYDROData_SequenceOfObjects::Iterator anIter( aSeq );
for ( ; anIter.More(); anIter.Next() )
{
- setObjectVisibility( anIter.Value(), true );
+ const Handle(HYDROData_Entity)& ent = anIter.Value();
+ if (!ent.IsNull())
+ setObjectVisibility( ent, true );
}
//Process the draw events for viewer
QApplication::processEvents( QEventLoop::ExcludeUserInputEvents );
- if ( OCCViewer_ViewWindow* vw = (OCCViewer_ViewWindow*)myPreviewViewManager->getActiveView() )
- vw->onTopView();
}
module()->update( UF_OCCViewer | UF_FitAll );
+
+ if ( OCCViewer_ViewWindow* vw = (OCCViewer_ViewWindow*)myPreviewViewManager->getActiveView() )
+ vw->onTopView();
}
}
HYDROData_SequenceOfObjects anObjs = myEditedObject->GetGeometryObjects();
for( int anIndex = 1, aLength = anObjs.Length(); anIndex <= aLength; anIndex++ )
{
- Handle_HYDROData_Object anObj = Handle_HYDROData_Object::DownCast( anObjs.Value( anIndex ) );
+ Handle(HYDROData_Object) anObj = Handle(HYDROData_Object)::DownCast( anObjs.Value( anIndex ) );
HYDROData_SequenceOfObjects aGroups = anObj->GetGroups();
for( int aGIndex = 1, aGLength = aGroups.Length(); aGIndex <= aGLength; aGIndex++ )
{
- Handle_HYDROData_ShapesGroup aGroup = Handle_HYDROData_ShapesGroup::DownCast( aGroups.Value( aGIndex ) );
+ Handle(HYDROData_ShapesGroup) aGroup = Handle(HYDROData_ShapesGroup)::DownCast( aGroups.Value( aGIndex ) );
aGroupsNames.append( aGroup->GetName() );
}
}