#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();
void VTKViewer_InteractorStyleSALOME::setPreselectionProp(const double& theRed, const double& theGreen,
const double& theBlue, const int& theWidth)
{
+ if ( myPreSelectionActor->GetProperty() == 0 )
+ return;
myPreSelectionActor->GetProperty()->SetColor(theRed, theGreen, theBlue);
myPreSelectionActor->GetProperty()->SetLineWidth(theWidth);
myPreSelectionActor->GetProperty()->SetPointSize(theWidth);
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);
}
rect = rect.normalize();
if (State == VTK_INTERACTOR_STYLE_CAMERA_FIT) {
// making fit rect opeation
- int w, h, x, y;
+ int w, h;
m_Interactor->GetSize(w, h);
int x1, y1, x2, y2;
x1 = rect.left();
// vtkCamera *cam = this->CurrentRenderer->GetActiveCamera();
QRect rect(myPoint, myOtherPoint);
rect = rect.normalize();
- int w, h, x, y;
+ int w, h;
m_Interactor->GetSize(w, h);
int x1, y1, x2, y2;
x1 = rect.left();
SALOME_Actor* SActor = SALOME_Actor::SafeDownCast(aPicker->GetActor());
+ if (SActor && myPreSelectionActor){
+ float aPos[3];
+ SActor->GetPosition(aPos);
+ myPreSelectionActor->SetPosition(aPos);
+ }
+
if (vtkCellPicker* picker = vtkCellPicker::SafeDownCast(aPicker)) {
int aVtkId = picker->GetCellId();
if ( aVtkId >= 0 ) {
}
}
}
- else if ( vtkPicker* picker = vtkPicker::SafeDownCast(aPicker) ) {
+ else if ( vtkPicker::SafeDownCast(aPicker) ) {
if ( SActor ) {
if ( myPreViewActor != SActor ) {
if ( myPreViewActor != NULL ) {
return IsFilterPresent( theId ) ? myFilters[ theId ] : Handle(VTKViewer_Filter)();
}
+void VTKViewer_InteractorStyleSALOME::IncrementalPan( const int incrX, const int incrY )
+{
+ this->PanXY( incrX, incrY, 0, 0 );
+}
+
+void VTKViewer_InteractorStyleSALOME::IncrementalZoom( const int incr )
+{
+ this->DollyXY( incr, incr );
+}
+
+void VTKViewer_InteractorStyleSALOME::IncrementalRotate( const int incrX, const int incrY )
+{
+ this->RotateXY( incrX, -incrY );
+}