Salome HOME
projects
/
modules
/
hydro.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
refs #550: fix crash when myObject is NULL
[modules/hydro.git]
/
src
/
HYDROGUI
/
HYDROGUI_Shape.cxx
diff --git
a/src/HYDROGUI/HYDROGUI_Shape.cxx
b/src/HYDROGUI/HYDROGUI_Shape.cxx
index 08900fbe1f320597af4ecc652aa135732ea981e2..60962d74b4c78ad4418c94c0adfa31cfce3f8b1c 100644
(file)
--- a/
src/HYDROGUI/HYDROGUI_Shape.cxx
+++ b/
src/HYDROGUI/HYDROGUI_Shape.cxx
@@
-1,8
+1,4
@@
-// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
-//
-// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
+// 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
// 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
@@
-33,6
+29,7
@@
#include <HYDROData_ShapesGroup.h>
#include <HYDROData_Stream.h>
#include <HYDROData_Zone.h>
#include <HYDROData_ShapesGroup.h>
#include <HYDROData_Stream.h>
#include <HYDROData_Zone.h>
+#include <HYDROGUI_Polyline.h>
#include <AIS_Shape.hxx>
#include <BRep_Builder.hxx>
#include <AIS_Shape.hxx>
#include <BRep_Builder.hxx>
@@
-447,7
+444,7
@@
QColor HYDROGUI_Shape::getFillingColor() const
void HYDROGUI_Shape::setBorderColor( const QColor& theColor,
const bool theToDisplay,
const bool theIsUpdateViewer )
void HYDROGUI_Shape::setBorderColor( const QColor& theColor,
const bool theToDisplay,
const bool theIsUpdateViewer )
-{
+{
myBorderColor = theColor;
updateShape( theToDisplay, theIsUpdateViewer );
}
myBorderColor = theColor;
updateShape( theToDisplay, theIsUpdateViewer );
}
@@
-479,10
+476,16
@@
void HYDROGUI_Shape::setZLayer( const int theZLayer )
Handle_AIS_InteractiveObject HYDROGUI_Shape::createShape() const
{
Handle_AIS_InteractiveObject HYDROGUI_Shape::createShape() const
{
- if( myTopoShape.IsNull() )
+ if( myTopoShape.IsNull() )
{
return Handle_AIS_InteractiveObject();
return Handle_AIS_InteractiveObject();
- else
+ }
+
+ TopAbs_ShapeEnum aShapeType = myTopoShape.ShapeType();
+ if ( aShapeType==TopAbs_EDGE || aShapeType==TopAbs_WIRE ) {
+ return new HYDROGUI_Polyline( myTopoShape );
+ } else {
return new AIS_Shape( myTopoShape );
return new AIS_Shape( myTopoShape );
+ }
}
void HYDROGUI_Shape::buildShape()
}
void HYDROGUI_Shape::buildShape()
@@
-505,7
+508,7
@@
void HYDROGUI_Shape::buildShape()
myShape->SetDisplayMode( (AIS_DisplayMode)myDisplayMode );
// Init default params for shape
myShape->SetDisplayMode( (AIS_DisplayMode)myDisplayMode );
// Init default params for shape
- const Handle(
AIS
_Drawer)& anAttributes = myShape->Attributes();
+ const Handle(
Prs3d
_Drawer)& anAttributes = myShape->Attributes();
if ( !anAttributes.IsNull() )
{
Handle(Prs3d_IsoAspect) anIsoAspect = anAttributes->UIsoAspect();
if ( !anAttributes.IsNull() )
{
Handle(Prs3d_IsoAspect) anIsoAspect = anAttributes->UIsoAspect();
@@
-546,7
+549,7
@@
void HYDROGUI_Shape::updateShape( const bool theToDisplay,
if ( myShape.IsNull() )
return;
if ( myShape.IsNull() )
return;
- const Handle(
AIS
_Drawer)& anAttributes = myShape->Attributes();
+ const Handle(
Prs3d
_Drawer)& anAttributes = myShape->Attributes();
if ( !anAttributes.IsNull() )
{
if ( myDisplayMode == AIS_Shaded )
if ( !anAttributes.IsNull() )
{
if ( myDisplayMode == AIS_Shaded )
@@
-585,7
+588,9
@@
void HYDROGUI_Shape::displayShape( const bool theIsUpdateViewer )
if ( myZLayer >= 0 )
myContext->SetZLayer( myShape, myZLayer );
if ( myZLayer >= 0 )
myContext->SetZLayer( myShape, myZLayer );
- myContext->UpdateCurrentViewer();
+ if ( theIsUpdateViewer ) {
+ myContext->UpdateCurrentViewer();
+ }
}
QColor HYDROGUI_Shape::getActiveColor() const
}
QColor HYDROGUI_Shape::getActiveColor() const
@@
-603,7
+608,7
@@
void HYDROGUI_Shape::colorShapeBorder( const QColor& theColor )
if ( myShape.IsNull() )
return;
if ( myShape.IsNull() )
return;
- const Handle(
AIS
_Drawer)& anAttributes = myShape->Attributes();
+ const Handle(
Prs3d
_Drawer)& anAttributes = myShape->Attributes();
if ( anAttributes.IsNull() )
return;
if ( anAttributes.IsNull() )
return;