]> SALOME platform Git repositories - modules/visu.git/commitdiff
Salome HOME
To fix a regression - segmentation does not work
authorapo <apo@opencascade.com>
Tue, 29 Nov 2005 13:20:49 +0000 (13:20 +0000)
committerapo <apo@opencascade.com>
Tue, 29 Nov 2005 13:20:49 +0000 (13:20 +0000)
src/PIPELINE/VISU_SphereWidget.cxx
src/PIPELINE/VISU_SphereWidget.hxx
src/PIPELINE/VISU_WidgetCtrl.cxx
src/PIPELINE/VISU_WidgetCtrl.hxx

index f242513cde68e71a58dbcaacadf18e98acd452c5..3ecbf95b70d29f876e1a8c3e0a2afd2bd206208f 100755 (executable)
@@ -18,6 +18,7 @@
 #include <vtkSphereSource.h>
 #include <vtkPoints.h>
 #include <vtkSphere.h>
+#include <vtkImplicitSum.h>
 #include <vtkImplicitFunction.h>
 
 vtkCxxRevisionMacro(VISU_SphereWidget, "$Revision$");
@@ -26,10 +27,7 @@ vtkStandardNewMacro(VISU_SphereWidget);
 // function:
 // purpose:
 //====================================================================
-VISU_SphereWidget::VISU_SphereWidget()
-:
-  VISU_ImplicitFunctionWidget()
-{
+VISU_SphereWidget::VISU_SphereWidget(){
   int i, j;
   //
   myState = VISU_SphereWidget::Start;
@@ -80,7 +78,11 @@ VISU_SphereWidget::VISU_SphereWidget()
   mySelectedSphereProperty = NULL;
   CreateDefaultProperties();
   myRmin=1.e-7;
+
   mySphere=vtkSphere::New();
+  myImplicitSum=vtkImplicitSum::New();
+  myImplicitSum->AddFunction(mySphere,-1.0);
+  
 }
 //====================================================================
 // function: ~
@@ -107,6 +109,7 @@ VISU_SphereWidget::~VISU_SphereWidget()
     mySelectedSphereProperty->Delete();
   }
   mySphere->Delete();
+  myImplicitSum->Delete();
 }
 //====================================================================
 // function: SetThetaResolution
@@ -253,7 +256,7 @@ vtkProperty*  VISU_SphereWidget::GetSelectedSphereProperty ()
 //====================================================================
 vtkImplicitFunction* VISU_SphereWidget::ImplicitFunction()
 {
-  return mySphere;
+  return myImplicitSum;
 }
 //====================================================================
 // function: SetEnabled
index 7373e4be2b988ccd50c9538c746b901b8bf026d1..80cdcd3c6ffcd80d9a10cc96f2092567a12c2192 100755 (executable)
@@ -3,6 +3,8 @@
 
 #include "VISU_ImplicitFunctionWidget.hxx"
 
+class VISU_UnScaledActor;
+
 class vtkActor;
 class vtkPolyDataMapper;
 class vtkPoints;
@@ -11,8 +13,8 @@ class vtkSphereSource;
 class vtkSphere;
 class vtkCellPicker;
 class vtkProperty;
-class VISU_UnScaledActor;
 class vtkSphere;
+class vtkImplicitSum;
 class vtkImplicitFunction;
 //
 class VISU_SphereWidget : public VISU_ImplicitFunctionWidget
@@ -120,7 +122,8 @@ protected:
   vtkProperty *mySphereProperty;
   vtkProperty *mySelectedSphereProperty;
   float myRmin;
-  vtkSphere   *mySphere;
+  vtkSphere *mySphere;
+  vtkImplicitSum* myImplicitSum;
 private:
   VISU_SphereWidget(const VISU_SphereWidget&);  //Not implemented
   void operator=(const VISU_SphereWidget&);  //Not implemented
index 3e94497b8c68d4844a493ad523d781f10df051b0..89ffa75f433dc32e4a9a71a157d9d800b9dd32c1 100644 (file)
@@ -36,7 +36,6 @@
 //
 #include <vtkObject.h>
 #include <vtkImplicitFunction.h>
-#include <vtkImplicitSum.h>
 #include <vtkRenderWindowInteractor.h>
 #include <vtkObjectFactory.h>
 #include <vtkCallbackCommand.h>
@@ -53,7 +52,6 @@ VISU_WidgetCtrl::VISU_WidgetCtrl()
 {
   myDummyWidget=NULL;
   myDisableAll=0;
-  myImplicitSum=vtkImplicitSum::New();
   myNbWidgets=2;
   myActiveIndex=-1;// 0 - PlanesWidget; 1 - SphereWidget
   myPriority=0.;
@@ -86,9 +84,6 @@ VISU_WidgetCtrl::VISU_WidgetCtrl()
     myWidgets[i]->AddObserver(vtkCommand::InteractionEvent,
                              myEventCallbackCommand,
                              myPriority);
-    //
-    vtkImplicitFunction *pIF=myWidgets[i]->ImplicitFunction();
-    myImplicitSum->AddFunction(pIF, 0.);
   }
 }
 //==================================================================
@@ -106,7 +101,6 @@ VISU_WidgetCtrl::~VISU_WidgetCtrl()
   }
   //
   myEventCallbackCommand->Delete();
-  myImplicitSum->Delete();
 }
 //==================================================================
 // function: GetEnabled 
@@ -326,19 +320,6 @@ float VISU_WidgetCtrl::GetPlaceFactor()
 //==================================================================
 vtkImplicitFunction* VISU_WidgetCtrl::ImplicitFunction()
 {
-  int i;
-  float aWeight;
-  vtkImplicitFunction *pIF;
-  //
-  for (int i=0; i<myNbWidgets; ++i) {
-    pIF=myWidgets[i]->ImplicitFunction();
-    aWeight=(i==myActiveIndex)? 1. : 0.;
-    if (i==myActiveIndex && i==1){
-      aWeight=-1.;
-    }
-    myImplicitSum->SetFunctionWeight(pIF, aWeight);
-  }
-  //return myImplicitSum;
   return this;
 }
 
index 98a6a667e053643020a9c2ca17595766ca009b30..8737b5dc0206f59b2eae79f960b97f2749475087 100644 (file)
@@ -37,7 +37,6 @@ class vtkObject;
 class vtkRenderWindowInteractor;
 class vtkCommand;
 class vtkCallbackCommand;
-class vtkImplicitSum;
 
 class VISU_PlanesWidget;
 class VISU_SphereWidget;
@@ -107,7 +106,6 @@ protected:
   int myCounter;
   int myDisableAll;
   float myPriority;
-  vtkImplicitSum* myImplicitSum;
   VISU_ImplicitFunctionWidget *myWidgets[2];
   VISU_ImplicitFunctionWidget *myDummyWidget;
   VISU_PlanesWidget *myPlanesWidget;