#include "SALOME_InteractiveObject.hxx"
#include "SMESH_ActorUtils.h"
+#include "VTKViewer_ViewFrame.h"
+#include "VTKViewer_RenderWindow.h"
+
+#include <vtkRenderer.h>
+
using namespace std;
myActor->SetInfinitive(true);
myActor->SetMapper( myMapper );
- static float anOpacity = 0.75;
-
vtkProperty* aProp = vtkProperty::New();
float anRGB[3];
anRGB[0] = SMESH::GetFloat("SMESH:SettingsFillColorRed", 0)/255.;
SMESHGUI_ClippingDlg::~SMESHGUI_ClippingDlg()
{
// no need to delete child widgets, Qt does it all for us
- //cout<<"SMESHGUI_ClippingDlg::~SMESHGUI_ClippingDlg\n";
std::for_each(myPlanes.begin(),myPlanes.end(),TSetVisiblity(false));
- SMESH::GetCurrentVtkView()->Repaint();
+ SMESH::RenderViewFrame(SMESH::GetCurrentVtkView());
}
-//=======================================================================
-// function : ClickOnApply()
-// purpose :
-//=======================================================================
void SMESHGUI_ClippingDlg::ClickOnApply()
{
if (!myActor)
if ( SMESHGUI::GetSMESHGUI()->GetActiveStudy()->getActiveStudyFrame()->getTypeView() == VIEW_VTK ) {
QAD_WaitCursor wc;
- vtkImplicitBoolean* aBoolean = myActor->GetPlaneContainer();
- vtkImplicitFunctionCollection* aCollection = aBoolean->GetFunction();
- aCollection->RemoveAllItems();
- aBoolean->Modified(); // VTK bug
- aCollection->InitTraversal();
-
+ myActor->RemoveAllClippingPlanes();
+
SMESH::TPlanes::iterator anIter = myPlanes.begin();
for (;anIter != myPlanes.end();anIter++){
OrientedPlane* anOrientedPlane = OrientedPlane::New();
anOrientedPlane->ShallowCopy(anIter->GetPointer());
- aCollection->AddItem(anOrientedPlane);
+ myActor->AddClippingPlane(anOrientedPlane);
anOrientedPlane->Delete();
}
-
- myActor->SetVisibility(myActor->GetVisibility());
-
- SMESH::GetCurrentVtkView()->Repaint();
+
+ SMESH::RenderViewFrame(SMESH::GetCurrentVtkView());
}
}
Handle(SALOME_InteractiveObject) IOS = mySelection->firstIObject();
myActor = SMESH::FindActorByEntry(IOS->getEntry());
if ( myActor ){
- vtkImplicitBoolean* aBoolean = myActor->GetPlaneContainer();
- vtkImplicitFunctionCollection* aCollection = aBoolean->GetFunction();
- aCollection->InitTraversal();
std::for_each(myPlanes.begin(),myPlanes.end(),TSetVisiblity(false));
myPlanes.clear();
- while(vtkImplicitFunction* aFunction = aCollection->GetNextItem()){
- if(OrientedPlane* aPlane = OrientedPlane::SafeDownCast(aFunction)){
- OrientedPlane* anOrientedPlane = OrientedPlane::New(SMESH::GetActiveStudy());
- SMESH::TVTKPlane aTVTKPlane(anOrientedPlane);
- anOrientedPlane->Delete();
- aTVTKPlane->ShallowCopy(aPlane);
- myPlanes.push_back(aTVTKPlane);
+
+ vtkIdType anId = 0, anEnd = myActor->GetNumberOfClippingPlanes();
+ for(; anId < anEnd; anId++){
+ if(vtkImplicitFunction* aFunction = myActor->GetClippingPlane(anId)){
+ if(OrientedPlane* aPlane = OrientedPlane::SafeDownCast(aFunction)){
+ OrientedPlane* anOrientedPlane = OrientedPlane::New(SMESH::GetActiveStudy());
+ SMESH::TVTKPlane aTVTKPlane(anOrientedPlane);
+ anOrientedPlane->Delete();
+ aTVTKPlane->ShallowCopy(aPlane);
+ myPlanes.push_back(aTVTKPlane);
+ }
}
}
+
std::for_each(myPlanes.begin(),myPlanes.end(),
TSetVisiblity(PreviewCheckBox->isChecked()));
}
}
}
Sinchronize();
- SMESH::GetCurrentVtkView()->Repaint();
+ SMESH::RenderViewFrame(SMESH::GetCurrentVtkView());
}
// Orientation
SMESH::Orientation anOrientation = aPlane->GetOrientation();
- // Distance and Rotations
- float aDistance;
+ // Rotations
double aRot[2] = {aPlane->myAngle[0], aPlane->myAngle[1]};
// Set plane parameters in the dialog
ClickOnApply();
Sinchronize();
- SMESH::GetCurrentVtkView()->Repaint();
+ SMESH::RenderViewFrame(SMESH::GetCurrentVtkView());
}
// function : SetCurrentPlaneParam
// purpose :
//=======================================================================
-void SMESHGUI_ClippingDlg::SetCurrentPlaneParam()
+void
+SMESHGUI_ClippingDlg::
+SetCurrentPlaneParam()
{
if(myPlanes.empty() || myIsSelectPlane)
return;
myActor->SetPlaneParam(aNormal, getDistance(), aPlane);
- float* anOrig = aPlane->GetOrigin();
vtkDataSet* aDataSet = myActor->GetInput();
float *aPnt = aDataSet->GetCenter();
if(AutoApplyCheckBox->isChecked())
ClickOnApply();
- SMESH::GetCurrentVtkView()->Repaint();
+ SMESH::RenderViewFrame(SMESH::GetCurrentVtkView());
}
void SMESHGUI_ClippingDlg::OnPreviewToggle(bool theIsToggled){
std::for_each(myPlanes.begin(),myPlanes.end(),TSetVisiblity(theIsToggled));
- SMESH::GetCurrentVtkView()->Repaint();
+ SMESH::RenderViewFrame(SMESH::GetCurrentVtkView());
}