return;
}
-void HYDROData_ShapeFile::Parse(SHPHandle theHandle, ShapeType theType)
+bool HYDROData_ShapeFile::Parse(SHPHandle theHandle, ShapeType theType)
{
int aShapeType;
mySHPObjects.clear();
{
for (int i = 0; i < theHandle->nRecords; i++)
mySHPObjects.push_back(SHPReadObject(theHandle, i));
+ return true;
}
+ else
+ return false;
}
void HYDROData_ShapeFile::ReadSHPPolygon(SHPObject* anObj, int i, TopoDS_Face& F)
{
Free();
myHSHP = SHPOpen( theFileName.toAscii().data(), "rb" );
- Parse(myHSHP, HYDROData_ShapeFile::ShapeType_Polygon);
+ if (!Parse(myHSHP, HYDROData_ShapeFile::ShapeType_Polygon))
+ return false;
for (size_t i = 0; i < mySHPObjects.size(); i++)
thePolygonsList.append("polygon_" + QString::number(i + 1));
QFileInfo aFileInfo(theFileName);
QString aBaseFileName = aFileInfo.baseName();
- Parse(aHSHP, HYDROData_ShapeFile::ShapeType_Polyline);
+ if (!Parse(aHSHP, HYDROData_ShapeFile::ShapeType_Polyline))
+ return false;
bool aStat = false;
if (aHSHP->nShapeType == 3 || aHSHP->nShapeType == 23)
{
TopTools_SequenceOfShape aFaces;
HYDROData_ShapeFile anImporter;
- if (!anImporter.ImportLandCovers(aFileName, aPolygonsList, aFaces))
+ if (anImporter.ImportLandCovers(aFileName, aPolygonsList, aFaces))
{
- SUIT_MessageBox::warning( module()->getApp()->desktop(), tr( "IMPORT_LANDCOVER" ), "Cannot import land cover;\nThe shape type is not polygon" );
- abort();
- }
+ aPanel->setPolygonNames(aPolygonsList);
- aPanel->setPolygonNames(aPolygonsList);
-
- SalomeApp_Study* aStudy = dynamic_cast<SalomeApp_Study*>( module()->getApp()->activeStudy() );
- if ( !aStudy ) {
- return;
- }
+ SalomeApp_Study* aStudy = dynamic_cast<SalomeApp_Study*>( module()->getApp()->activeStudy() );
+ if ( !aStudy ) {
+ return;
+ }
- erasePreview();
+ erasePreview();
- Handle(AIS_InteractiveContext) aCtx = NULL;
+ Handle(AIS_InteractiveContext) aCtx = NULL;
- LightApp_Application* anApp = module()->getApp();
- if ( !getPreviewManager() )
- setPreviewManager( ::qobject_cast<OCCViewer_ViewManager*>( anApp->getViewManager( OCCViewer_Viewer::Type(), true ) ) );
- OCCViewer_ViewManager* aViewManager = getPreviewManager();
+ LightApp_Application* anApp = module()->getApp();
+ if ( !getPreviewManager() )
+ setPreviewManager( ::qobject_cast<OCCViewer_ViewManager*>( anApp->getViewManager( OCCViewer_Viewer::Type(), true ) ) );
+ OCCViewer_ViewManager* aViewManager = getPreviewManager();
- if ( aViewManager )
- {
- if ( OCCViewer_Viewer* aViewer = aViewManager->getOCCViewer() )
+ if ( aViewManager )
{
- aCtx = aViewer->getAISContext();
- connect( aViewer, SIGNAL( selectionChanged() ), this, SLOT( onViewerSelectionChanged() ) );
+ if ( OCCViewer_Viewer* aViewer = aViewManager->getOCCViewer() )
+ {
+ aCtx = aViewer->getAISContext();
+ connect( aViewer, SIGNAL( selectionChanged() ), this, SLOT( onViewerSelectionChanged() ) );
+ }
}
- }
-
-
- QApplication::restoreOverrideCursor();
-
- Handle(HYDROData_LandCover) aLC = Handle(HYDROData_LandCover)::DownCast( doc()->CreateObject( KIND_LAND_COVER ) );
- for ( int i = 1; i <= aFaces.Length(); i++ )
- {
- TopoDS_Face aFace = TopoDS::Face(aFaces.Value( i ));
- aLC->setShape( aFace );
-
- if ( aViewManager && !aCtx.IsNull() )
+ Handle(HYDROData_LandCover) aLC = Handle(HYDROData_LandCover)::DownCast( doc()->CreateObject( KIND_LAND_COVER ) );
+ for ( int i = 1; i <= aFaces.Length(); i++ )
{
- HYDROGUI_Shape* aShape = new HYDROGUI_Shape( aCtx, NULL, getPreviewZLayer() );
+ TopoDS_Face aFace = TopoDS::Face(aFaces.Value( i ));
+
+ aLC->setShape( aFace );
+
+ if ( aViewManager && !aCtx.IsNull() )
+ {
+ HYDROGUI_Shape* aShape = new HYDROGUI_Shape( aCtx, NULL, getPreviewZLayer() );
+
+ aShape->setFillingColor( HYDROData_LandCover::DefaultFillingColor(), false, false );
+ aShape->setBorderColor( HYDROData_LandCover::DefaultBorderColor(), false, false );
+ if( !aFace.IsNull() )
+ aShape->setShape( aLC->GetShape() );
+ myPolygonName2PrsShape.insert( "polygon_" + QString::number(i), aShape);
+ }
+ }
+ aLC->Remove();
- aShape->setFillingColor( HYDROData_LandCover::DefaultFillingColor(), false, false );
- aShape->setBorderColor( HYDROData_LandCover::DefaultBorderColor(), false, false );
- if( !aFace.IsNull() )
- aShape->setShape( aLC->GetShape() );
- myPolygonName2PrsShape.insert( "polygon_" + QString::number(i), aShape);
+ if ( !aCtx.IsNull() )
+ {
+ UpdateZLayersOfHilightPresentationsOfDisplayedObjects( aCtx, Graphic3d_ZLayerId_TopOSD );
+ aCtx->UpdateCurrentViewer();
}
+
+ QApplication::restoreOverrideCursor();
+ commitDocOperation();
}
- aLC->Remove();
-
- if ( !aCtx.IsNull() ) {
- UpdateZLayersOfHilightPresentationsOfDisplayedObjects( aCtx, Graphic3d_ZLayerId_TopOSD );
- aCtx->UpdateCurrentViewer();
+ else
+ {
+ SUIT_MessageBox::warning( module()->getApp()->desktop(), tr( "IMPORT_LANDCOVER" ), "Cannot import land cover;\nThe shape type is not polygon" );
+
+ QApplication::restoreOverrideCursor();
+ abort();
}
-
- commitDocOperation();
-
anImporter.Free();
}