#include <V3d_DirectionalLight.hxx>
#include <V3d_AmbientLight.hxx>
+#include <Basics_OCCTVersion.hxx>
+
/*!
Get data for supported background modes: gradient types, identifiers and supported image formats
*/
myIsRelative(true),
myTopLayerId( 0 ),
myTrihedronSize(100),
- myClippingDlg (NULL),
- myIsUseLocalSelection(false)
+#if OCC_VERSION_LARGE <= 0x07030000
+ myIsUseLocalSelection(false),
+#endif
+ myClippingDlg (NULL)
{
// init CasCade viewers
myV3dViewer = OCCViewer_VService::CreateViewer( TCollection_ExtendedString("Viewer3d").ToExtString() );
bool aHasShift = (theEvent->modifiers() & Qt::ShiftModifier);
if (!aHasShift) {
- myAISContext->ClearCurrents( false );
+ myAISContext->ClearSelected( false );
emit deselection();
}
switch ( theEvent->key() ) {
case Qt::Key_S:
if (!aHasShift) {
- myAISContext->ClearCurrents( false );
+ myAISContext->ClearSelected( false );
emit deselection();
}
break;
case Qt::Key_N:
if ( isPreselectionEnabled() ) {
+#if OCC_VERSION_LARGE <= 0x07030000
if ( useLocalSelection() )
+#endif
getAISContext()->HilightNextDetected( aView->getViewPort()->getView() );
}
break;
case Qt::Key_P:
if ( isPreselectionEnabled() ) {
- if ( getAISContext()->HasOpenedContext() )
+#if OCC_VERSION_LARGE <= 0x07030000
+ if ( useLocalSelection() )
+#endif
getAISContext()->HilightPreviousDetected( aView->getViewPort()->getView() );
}
break;
Graphic3d_MaterialAspect aMaterialAspect = Graphic3d_MaterialAspect();
aMaterialAspect.SetColor( Quantity_Color( theColor.redF(), theColor.greenF(),
theColor.blueF(), Quantity_TOC_RGB ) );
-
+#if OCC_VERSION_LARGE <= 0x07030000
for( int i = 1; i <= myInternalClipPlanes.Size(); i++ )
myInternalClipPlanes.Value(i)->SetCappingMaterial( aMaterialAspect );
-
+#else
+ for ( Graphic3d_SequenceOfHClipPlane::Iterator aPlaneIt ( myInternalClipPlanes ); aPlaneIt.More(); aPlaneIt.Next() )
+ aPlaneIt.Value()->SetCappingMaterial( aMaterialAspect );
+#endif
update();
}
Handle(Graphic3d_Texture2Dmanual) aTexture =
initClippingTexture( myDefaultTextureUsed, myClippingTexture,
myTextureModulated, myClippingTextureScale );
-
+#if OCC_VERSION_LARGE <= 0x07030000
for( int i = 1; i <= myInternalClipPlanes.Size(); i++ )
myInternalClipPlanes.Value(i)->SetCappingTexture( aTexture );
+#else
+ for ( Graphic3d_SequenceOfHClipPlane::Iterator aPlaneIt ( myInternalClipPlanes ); aPlaneIt.More(); aPlaneIt.Next() )
+ aPlaneIt.Value()->SetCappingTexture( aTexture );
+#endif
update();
}
bool OCCViewer_Viewer::highlight( const Handle(AIS_InteractiveObject)& obj,
bool hilight, bool update )
{
- bool isInLocal = myAISContext->HasOpenedContext();
- if( !obj.IsNull() )
- if( !isInLocal )
- {
- if ( hilight && !myAISContext->IsSelected( obj ) )
- myAISContext->AddOrRemoveCurrentObject( obj, false );
- else if ( !hilight && myAISContext->IsSelected( obj ) )
- myAISContext->AddOrRemoveCurrentObject( obj, false );
- }
+ if( !obj.IsNull() ) {
+#if OCC_VERSION_LARGE <= 0x07030000
+ if( !myAISContext->HasOpenedContext() )
+ {
+#endif
+ if ( hilight && !myAISContext->IsSelected( obj ) )
+ myAISContext->AddOrRemoveSelected( obj, false );
+ else if ( !hilight && myAISContext->IsSelected( obj ) )
+ myAISContext->AddOrRemoveSelected( obj, false );
+#if OCC_VERSION_LARGE <= 0x07030000
+ }
+#endif
+ }
if ( update )
myV3dViewer->Redraw();
-
+
return false;
}
*/
bool OCCViewer_Viewer::unHighlightAll( bool updateviewer, bool unselect )
{
+#if OCC_VERSION_LARGE <= 0x07030000
if ( myAISContext->HasOpenedContext() ) {
+#endif
if ( unselect ) {
myAISContext->ClearSelected( updateviewer );
} else {
myAISContext->UnhilightSelected( updateviewer );
}
- } else {
- if ( unselect ) {
- myAISContext->ClearCurrents( updateviewer );
- } else {
- myAISContext->UnhilightCurrents( updateviewer );
- }
+#if OCC_VERSION_LARGE <= 0x07030000
}
-
+#endif
return false;
}
return new OCCViewer_ViewWindow(0, this);
}
+#if OCC_VERSION_LARGE <= 0x07030000
/*!
Sets using local selection state
\param theIsUseLocalSelection - state
{
if (myIsUseLocalSelection)
return true;
-
Handle(AIS_InteractiveContext) ic = getAISContext();
return !ic.IsNull() && ic->HasOpenedContext();
}
+#endif
// obsolete
QColor OCCViewer_Viewer::backgroundColor( int theViewId ) const
#include <AIS_ListOfInteractive.hxx>
#include <Graphic3d_SequenceOfHClipPlane.hxx>
+#include <Basics_OCCTVersion.hxx>
+
class QKeyEvent;
class QMouseEvent;
virtual OCCViewer_ViewWindow* createSubWindow();
+#if OCC_VERSION_LARGE <= 0x07030000
void setUseLocalSelection(bool theIsUseLocalSelection);
bool useLocalSelection() const;
+#endif
public:
Handle(V3d_Viewer) getViewer3d() const { return myV3dViewer;}
QString myClippingTexture;
bool myTextureModulated;
double myClippingTextureScale;
+#if OCC_VERSION_LARGE <= 0x07030000
bool myIsUseLocalSelection;
+#endif
};
#ifdef WIN32
#include <Graphic3d_ClipPlane.hxx>
#include <OpenGl_GraphicDriver.hxx>
#include <OpenGLUtils_FrameBuffer.h>
-
+#include <Basics_OCCTVersion.hxx>
#include <Graphic3d_MapIteratorOfMapOfStructure.hxx>
#include <Graphic3d_MapOfStructure.hxx>
#include <Graphic3d_Structure.hxx>
+#if OCC_VERSION_LARGE <= 0x07030000
#include <Graphic3d_ExportFormat.hxx>
+#endif
#include <Graphic3d_StereoMode.hxx>
#include <Graphic3d_RenderingParams.hxx>
#include <Graphic3d_BndBox3d.hxx>
if ( aEvent->modifiers().testFlag(Qt::ControlModifier) ) {
Handle(AIS_InteractiveContext) ic = myModel->getAISContext();
- if ( isPreselectionEnabled() && myModel->useLocalSelection() ) {
+ if ( isPreselectionEnabled()
+#if OCC_VERSION_LARGE <= 0x07030000
+ && myModel->useLocalSelection()
+#endif
+ ) {
if ( aEvent->delta() > 0 ) {
ic->HilightNextDetected( myViewPort->getView() );
} else {
}
if ( ic->NbSelected() == 0 ) myCurrPointType = myPrevPointType;
if ( mySetRotationPointDlg ) mySetRotationPointDlg->toggleChange();
+#if OCC_VERSION_LARGE <= 0x07030000
ic->CloseAllContexts( Standard_True );
+#else
+ ic->Deactivate();
+ ic->Activate(0);
+#endif
myOperation = NOTHING;
myViewPort->setCursor( myCursor );
myCursorIsHand = false;
if ( myRotationPointSelection )
{
Handle(AIS_InteractiveContext) ic = myModel->getAISContext();
+#if OCC_VERSION_LARGE <= 0x07030000
ic->CloseAllContexts( Standard_True );
+#else
+ ic->Deactivate();
+ ic->Activate(0);
+#endif
myOperation = NOTHING;
myViewPort->setCursor( myCursor );
myCursorIsHand = false;
if ( myRotationPointSelection )
{
Handle(AIS_InteractiveContext) ic = myModel->getAISContext();
+#if OCC_VERSION_LARGE < 0x07030000
ic->CloseAllContexts( Standard_True );
+#else
+ ic->Deactivate();
+ ic->Activate(0);
+#endif
myOperation = NOTHING;
myViewPort->setCursor( myCursor );
myCursorIsHand = false;
// activate selection ------>
Handle(AIS_InteractiveContext) ic = myModel->getAISContext();
-
+#if OCC_VERSION_LARGE <= 0x07030000
ic->OpenLocalContext();
+#else
+ ic->Deactivate();
+#endif
AIS_ListOfInteractive aList;
ic->DisplayedObjects( aList );
bool res = false;
QApplication::setOverrideCursor( Qt::WaitCursor );
+ // OCCT version > 7.3.0 is not support export to PS and EPS
+#if OCC_VERSION_LARGE <= 0x07030000
Handle(Graphic3d_CView) a3dView = myViewPort->getView()->View();
if (format == "PS") {
res = a3dView->Export(strdup(qUtf8Printable(fileName)), Graphic3d_EF_EnhPostScript);
aCaps->ffpEnable = prev;
}
- else {
+ else {
+#endif
res = myViewPort->getView()->Dump( fileName.toStdString().c_str() );
+#if OCC_VERSION_LARGE <= 0x07030000
}
+#endif
QApplication::restoreOverrideCursor();
return res;
QString OCCViewer_ViewWindow::filter() const
{
+#if OCC_VERSION_LARGE <= 0x07030000
return tr( "OCC_IMAGE_FILES" );
+#else
+ QString formats = tr( "OCC_IMAGE_FILES" );
+ return formats.remove(" *.eps *.ps");
+#endif
}
bool SOCC_Viewer::highlight( const Handle(SALOME_InteractiveObject)& obj,
bool hilight, bool upd )
{
+#if OCC_VERSION_LARGE <= 0x07030000
bool isInLocal = getAISContext()->HasOpenedContext();
+#endif
//SUIT_Study* ActiveStudy = SUIT_Application::getDesktop()->getActiveStudy();
//SALOME_Selection* Sel = SALOME_Selection::Selection( ActiveStudy->getSelection() );
if ( !anObj.IsNull() && anObj->hasEntry() && anObj->isSame( obj ) )
{
+#if OCC_VERSION_LARGE <= 0x07030000
if ( !isInLocal )
+#endif
OCCViewer_Viewer::highlight( ite.Value(), hilight, false );
// highlight sub-shapes only when local selection is active
+#if OCC_VERSION_LARGE <= 0x07030000
else
{
/*if ( ite.Value()->IsKind( STANDARD_TYPE( SALOME_AISShape ) ) )
aSh->highlightSubShapes( MapIndex, highlight );
}*/
}
+#endif
break;
}
}
// Open local context if there is no one
bool allObjects = thePrs == 0 || thePrs->IsNull();
+#if OCC_VERSION_LARGE <= 0x07030000
if ( !ic->HasOpenedContext() ) {
ic->ClearCurrents( false );
ic->OpenLocalContext( Standard_False, Standard_True, Standard_True );
}
+#else
+ ic->Deactivate();
+#endif
AIS_ListOfInteractive anObjs;
// Get objects to be activated
Handle(AIS_InteractiveContext) ic = getAISContext();
if ( !ic.IsNull() )
{
+#if OCC_VERSION_LARGE <= 0x07030000
ic->CloseAllContexts( false );
+#else
+ ic->Deactivate();
+ ic->Activate( 0 );
+#endif
if ( update )
ic->CurrentViewer()->Redraw();
}