+// 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
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
#include "HYDROGUI_ImagePrs.h"
#include <Prs3d_Root.hxx>
#include <TColgp_Array1OfPnt.hxx>
IMPLEMENT_STANDARD_TYPE(HYDROGUI_ImagePrs)
-IMPLEMENT_STANDARD_SUPERTYPE_ARRAY()
- STANDARD_TYPE(AIS_InteractiveObject),
- STANDARD_TYPE(SelectMgr_SelectableObject),
- STANDARD_TYPE(PrsMgr_PresentableObject),
- STANDARD_TYPE(MMgt_TShared),
- STANDARD_TYPE(Standard_Transient),
-IMPLEMENT_STANDARD_SUPERTYPE_ARRAY_END()
-IMPLEMENT_STANDARD_TYPE_END(HYDROGUI_ImagePrs)
-
-IMPLEMENT_DOWNCAST(HYDROGUI_ImagePrs,Standard_Transient)
-IMPLEMENT_STANDARD_RTTI(HYDROGUI_ImagePrs)
-
-HYDROGUI_ImagePrs::HYDROGUI_ImagePrs()
+ IMPLEMENT_STANDARD_SUPERTYPE_ARRAY()
+ STANDARD_TYPE(AIS_InteractiveObject),
+ STANDARD_TYPE(SelectMgr_SelectableObject),
+ STANDARD_TYPE(PrsMgr_PresentableObject),
+ STANDARD_TYPE(MMgt_TShared),
+ STANDARD_TYPE(Standard_Transient),
+ IMPLEMENT_STANDARD_SUPERTYPE_ARRAY_END()
+ IMPLEMENT_STANDARD_TYPE_END(HYDROGUI_ImagePrs)
+
+ IMPLEMENT_DOWNCAST(HYDROGUI_ImagePrs,Standard_Transient)
+ IMPLEMENT_STANDARD_RTTI(HYDROGUI_ImagePrs)
+
+ HYDROGUI_ImagePrs::HYDROGUI_ImagePrs()
: AIS_InteractiveObject()
{
}
for ( int i = 0; i < myContour.size(); i++ )
aPoints.SetValue( aPoints.Lower() + i, convert( myContour[i] ) );
- Handle(Select3D_SensitiveFace) aSensitiveFace = new Select3D_SensitiveFace( anOwner, aPoints );
+ Handle(Select3D_SensitiveFace) aSensitiveFace = new Select3D_SensitiveFace( anOwner, aPoints, Select3D_TOS_INTERIOR );
theSelection->Add( aSensitiveFace );
}
}
-void HYDROGUI_ImagePrs::HilightSelected( const Handle(PrsMgr_PresentationManager3d)& aPrsMgr, const SelectMgr_SequenceOfOwner& )
-{
- Handle(Prs3d_Presentation) aPrs = GetSelectPresentation( aPrsMgr );
- if ( aPrs.IsNull() )
- return;
-
- Handle(Graphic3d_Group) aGroup = Prs3d_Root::CurrentGroup( aPrs );
-
- Handle(Graphic3d_AspectLine3d) aLineAspect =
- new Graphic3d_AspectLine3d( Quantity_NOC_WHITE, Aspect_TOL_SOLID, 1.0 );
-
- aGroup->SetGroupPrimitivesAspect( aLineAspect );
-
- Handle(Graphic3d_ArrayOfPolylines) aSegments = new Graphic3d_ArrayOfPolylines( 5 );
- aSegments->AddVertex( convert( myContour[0] ) );
- aSegments->AddVertex( convert( myContour[1] ) );
- aSegments->AddVertex( convert( myContour[2] ) );
- aSegments->AddVertex( convert( myContour[3] ) );
- aSegments->AddVertex( convert( myContour[0] ) );
-
- aGroup->AddPrimitiveArray( aSegments );
-}
-
-void HYDROGUI_ImagePrs::ClearSelected()
-{
- Handle(Prs3d_Presentation) aSelectionPrs = GetSelectPresentation( 0 );
- if ( !aSelectionPrs.IsNull() )
- aSelectionPrs->Clear();
-}
-
void HYDROGUI_ImagePrs::Compute( const Handle(PrsMgr_PresentationManager3d)&,
const Handle(Prs3d_Presentation)& aPrs,
- const Standard_Integer theMode )
+ const Standard_Integer aMode )
{
- aPrs->Clear();
- Handle(Graphic3d_Group) aGroup = Prs3d_Root::CurrentGroup( aPrs );
+ aPrs->Clear();
+ Handle(Graphic3d_Group) aGroup = Prs3d_Root::CurrentGroup( aPrs );
if ( aMode == 0 )
{
- Handle(Graphic3d_AspectLine3d) aLineAspect =
- new Graphic3d_AspectLine3d( Quantity_NOC_WHITE, Aspect_TOL_SOLID, 1.0 );
-
- aGroup->SetGroupPrimitivesAspect( aLineAspect );
-
Handle(Graphic3d_ArrayOfPolylines) aSegments = new Graphic3d_ArrayOfPolylines( 5 );
aSegments->AddVertex( convert( myContour[0] ) );
aSegments->AddVertex( convert( myContour[1] ) );
aGroup->AddPrimitiveArray( aSegments );
}
- else if ( aMode == 3 )
+ else
{
Graphic3d_MaterialAspect aMat( Graphic3d_NOM_PLASTIC );
Handle(Graphic3d_AspectFillArea3d) aFillAspect =
- new Graphic3d_AspectFillArea3d( Aspect_IS_SOLID, Quantity_NOC_WHITE, Quantity_NOC_BLACK, Aspect_TOL_SOLID, 1.0, aMat, aMat );
+ new Graphic3d_AspectFillArea3d( Aspect_IS_SOLID, Quantity_NOC_WHITE, Quantity_NOC_BLACK, Aspect_TOL_SOLID, 1.0, aMat, aMat );
Handle(Graphic3d_TextureMap) aTex = new Graphic3d_Texture2Dmanual( myImage );
aTex->DisableModulate();