#include "VTKViewer_ViewFrame.h"
#include "VTKViewer_Utilities.h"
-#include "VTKViewer_Trihedron.h"
#include "VTKViewer_RectPicker.h"
#include "VTKViewer_CellRectPicker.h"
#include "VTKViewer_Actor.h"
#include "SALOME_Selection.h"
#include "SALOME_ListIteratorOfListIO.hxx"
-#include "SALOME_CubeAxesActor2D.h"
#include <vtkObjectFactory.h>
#include <vtkMath.h>
VTKViewer_InteractorStyleSALOME::VTKViewer_InteractorStyleSALOME()
{
- m_Trihedron = 0;
- m_CubeAxes = 0;
this->MotionFactor = 10.0;
this->State = VTK_INTERACTOR_STYLE_CAMERA_NONE;
this->RadianToDegree = 180.0 / vtkMath::Pi();
myGUIWindow = theWindow;
}
-//----------------------------------------------------------------------------
-void VTKViewer_InteractorStyleSALOME::setTriedron(VTKViewer_Trihedron* theTrihedron){
- m_Trihedron = theTrihedron;
-}
-
-void VTKViewer_InteractorStyleSALOME::setCubeAxes(SALOME_CubeAxesActor2D* theCubeAxes){
- m_CubeAxes = theCubeAxes;
-}
-
//----------------------------------------------------------------------------
void VTKViewer_InteractorStyleSALOME::RotateXY(int dx, int dy)
{
}
-//----------------------------------------------------------------------------
-void VTKViewer_InteractorStyleSALOME::ViewFitAll() {
- int aTriedronWasVisible = false;
- int aCubeAxesWasVisible = false;
- if(m_Trihedron){
- aTriedronWasVisible = m_Trihedron->GetVisibility() == VTKViewer_Trihedron::eOn;
- if(aTriedronWasVisible) m_Trihedron->VisibilityOff();
- }
- if(m_CubeAxes){
- aCubeAxesWasVisible = m_CubeAxes->GetVisibility();
- if(aCubeAxesWasVisible) m_CubeAxes->VisibilityOff();
- }
-
- if(m_Trihedron->GetVisibleActorCount(CurrentRenderer)){
- m_Trihedron->VisibilityOff();
- m_CubeAxes->VisibilityOff();
- ::ResetCamera(CurrentRenderer);
- }else{
- m_Trihedron->SetVisibility(VTKViewer_Trihedron::eOnlyLineOn);
- m_CubeAxes->SetVisibility(2);
- ::ResetCamera(CurrentRenderer,true);
- }
- if(aTriedronWasVisible) m_Trihedron->VisibilityOn();
- else m_Trihedron->VisibilityOff();
- if(aCubeAxesWasVisible) m_CubeAxes->VisibilityOn();
- else m_CubeAxes->VisibilityOff();
- ::ResetCameraClippingRange(CurrentRenderer);
-}
-
-
//----------------------------------------------------------------------------
// starts Global Panning operation (e.g. through menu command)
void VTKViewer_InteractorStyleSALOME::startGlobalPan()
vtkCamera *cam = this->CurrentRenderer->GetActiveCamera();
myScale = cam->GetParallelScale();
- ViewFitAll();
+ if (m_ViewFrame) m_ViewFrame->onViewFitAll();
if (myGUIWindow) myGUIWindow->update();
void setViewFrame(VTKViewer_ViewFrame* theViewFrame);
void setGUIWindow(QWidget* theWindow);
- void setTriedron(VTKViewer_Trihedron* theTrihedron);
- void setCubeAxes(SALOME_CubeAxesActor2D* theCubeAxes);
-
void setPreselectionProp(const double& theRed = 0, const double& theGreen = 1,
const double& theBlue = 1, const int& theWidth = 5);
void OnSelectionModeChanged();
- void ViewFitAll();
-
void SetFilter( const Handle(VTKViewer_Filter)& );
Handle(VTKViewer_Filter) GetFilter( const int );
bool IsFilterPresent( const int );
VTKViewer_RenderWindowInteractor* m_Interactor;
VTKViewer_ViewFrame* m_ViewFrame;
- VTKViewer_Trihedron* m_Trihedron;
- SALOME_CubeAxesActor2D* m_CubeAxes;
QWidget* myGUIWindow;
std::map<int, Handle(VTKViewer_Filter)> myFilters;