From: apo Date: Tue, 29 Nov 2005 12:08:38 +0000 (+0000) Subject: To restore previous integration X-Git-Tag: TG-D5-38-2003_D2005-20-12~104 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=7f3d4cec5623294415b9a1a256a92cae436039be;p=modules%2Fvisu.git To restore previous integration --- diff --git a/src/PIPELINE/VISU_ImplicitFunctionWidget.h b/src/PIPELINE/VISU_ImplicitFunctionWidget.h deleted file mode 100644 index 4930989d..00000000 --- a/src/PIPELINE/VISU_ImplicitFunctionWidget.h +++ /dev/null @@ -1,313 +0,0 @@ -// SALOME VTKViewer : build VTK viewer into Salome desktop -// -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : VISU_ImplicitFunctionWidget.h -// Author : Peter KURNEV -// Module : SALOME -// $Header$ - -#ifndef __VISU_ImplicitFunctionWidget_h -#define __VISU_ImplicitFunctionWidget_h - -#include - -class vtkActor; -class vtkPolyDataMapper; -class vtkCellPicker; -class vtkConeSource; -class vtkLineSource; -class vtkSphereSource; -class vtkPlane; -class vtkCutter; -class vtkProperty; -class vtkImageData; -class vtkOutlineFilter; -class vtkFeatureEdges; -class vtkPolyData; -class vtkTransform; -class vtkImplicitBoolean; -class vtkImplicitFunction; -class VISU_UnScaledActor; -class vtkDataSet; - -class VISU_ImplicitFunctionWidget : public vtkPolyDataSourceWidget -{ -public: - // Description: - // Instantiate the object. - static VISU_ImplicitFunctionWidget *New(); - - vtkTypeRevisionMacro(VISU_ImplicitFunctionWidget,vtkPolyDataSourceWidget); - void PrintSelf(ostream& os, vtkIndent indent); - - void SetDistance (const float theDistance); - float Distance()const; - - vtkGetMacro(InitialLength,float); - vtkImplicitFunction* ImplicitFunction(); - - // Description: - // Methods that satisfy the superclass' API. - virtual void SetEnabled(int); - virtual void PlaceWidget(float bounds[6]); - int IsEnabled(); - - // Description: - // Get the origin of the plane. - void SetOrigin(float x, float y, float z); - void SetOrigin(float x[3]); - float* GetOrigin(); - void GetOrigin(float xyz[3]); - - // Description: - // Get the normal to the plane. - void SetNormal(float x, float y, float z); - void SetNormal(float x[3]); - float* GetNormal(); - void GetNormal(float xyz[3]); - - // Description: - // Force the plane widget to be aligned with one of the x-y-z axes. - // If one axis is set on, the other two will be set off. - // Remember that when the state changes, a ModifiedEvent is invoked. - // This can be used to snap the plane to the axes if it is orginally - // not aligned. - void SetNormalToXAxis(int); - vtkGetMacro(NormalToXAxis,int); - vtkBooleanMacro(NormalToXAxis,int); - void SetNormalToYAxis(int); - vtkGetMacro(NormalToYAxis,int); - vtkBooleanMacro(NormalToYAxis,int); - void SetNormalToZAxis(int); - vtkGetMacro(NormalToZAxis,int); - vtkBooleanMacro(NormalToZAxis,int); - - // Description: - // Turn on/off tubing of the wire outline of the plane. The tube thickens - // the line by wrapping with a vtkTubeFilter. - //vtkSetMacro(Tubing,int); - //vtkGetMacro(Tubing,int); - //vtkBooleanMacro(Tubing,int); - - // Description: - // Enable/disable the drawing of the plane. In some cases the plane - // interferes with the object that it is operating on (i.e., the - // plane interferes with the cut surface it produces producing - // z-buffer artifacts.) - void SetDrawPlane(int plane); - int GetDrawPlane(){ - return myDrawPlane; - } - - // Description: - // Turn on/off the ability to translate the bounding box by grabbing it - // with the left mouse button. - vtkSetMacro(OutlineTranslation,int); - vtkGetMacro(OutlineTranslation,int); - vtkBooleanMacro(OutlineTranslation,int); - - // Description: - // Grab the polydata that defines the plane. The polydata contains a single - // polygon that is clipped by the bounding box. - void GetPolyData(vtkPolyData *pd); - - // Description: - // Satisfies superclass API. This returns a pointer to the underlying - // PolyData (which represents the plane). - vtkPolyDataSource* GetPolyDataSource(); - - // Description: - // Get the implicit function for the plane. The user must provide the - // instance of the class vtkPlane. Note that vtkPlane is a subclass of - // vtkImplicitFunction, meaning that it can be used by a variety of filters - // to perform clipping, cutting, and selection of data. - void GetPlane(vtkPlane *plane); - - // Description: - // Satisfies the superclass API. This will change the state of the widget - // to match changes that have been made to the underlying PolyDataSource - void UpdatePlacement(void); - - // Description: - // Get the properties on the normal (line and cone). - vtkGetObjectMacro(NormalProperty,vtkProperty); - vtkGetObjectMacro(SelectedNormalProperty,vtkProperty); - - // Description: - // Get the plane properties. The properties of the plane when selected - // and unselected can be manipulated. - vtkGetObjectMacro(PlaneProperty,vtkProperty); - vtkGetObjectMacro(SelectedPlaneProperty,vtkProperty); - - // Description: - // Get the property of the outline. - vtkGetObjectMacro(OutlineProperty,vtkProperty); - vtkGetObjectMacro(SelectedOutlineProperty,vtkProperty); - - // Description: - // Get the property of the intersection edges. (This property also - // applies to the edges when tubed.) - vtkGetObjectMacro(EdgesProperty,vtkProperty); - - void InitialPlaceWidget(float bds[6]); - -protected: - VISU_ImplicitFunctionWidget(); - ~VISU_ImplicitFunctionWidget(); - -//BTX - manage the state of the widget - int State; - enum WidgetState - { - Start=0, - MovingPlane, - MovingOutline, - MovingOrigin, - Scaling, - Pushing, - Rotating, - Outside, - ChangeDistance - }; -//ETX - - //handles the events - static void ProcessEvents(vtkObject* object, unsigned long event, - void* clientdata, void* calldata); - - // ProcessEvents() dispatches to these methods. - void OnLeftButtonDown(); - void OnLeftButtonUp(); - void OnMiddleButtonDown(); - void OnMiddleButtonUp(); - void OnRightButtonDown(); - void OnRightButtonUp(); - void OnMouseMove(); - // - // Methods to manipulate the plane - void ConstrainOrigin(float x[3]); - void Rotate(int X, int Y, double *p1, double *p2, double *vpn); - void TranslatePlane(double *p1, double *p2); - void TranslateOutline(double *p1, double *p2); - void TranslateOrigin(double *p1, double *p2); - void Push(double *p1, double *p2); - void Scale(double *p1, double *p2, int X, int Y); - void PushDistance(double *p1, double *p2); - - void CreateDefaultProperties(); - - void GeneratePlane(); - virtual void SizeHandles(); - void HighlightPlane(int highlight); - void HighlightNormal(int highlight); - void HighlightOutline(int highlight); - void UpdateRepresentation(); - void SetOriginInternal(float x[3]); - - // Controlling ivars - int NormalToXAxis; - int NormalToYAxis; - int NormalToZAxis; - - - // Flags to handle mouse events - bool HandleMoveEvent; - bool HandleLeftButtonEvent; - bool HandleMiddleButtonEvent; - bool HandleRightButtonEvent; - // The actual plane which is being manipulated - vtkPlane *myPlane1; - vtkPlane *myPlane2; - - float myDistance; - vtkImplicitBoolean *myImplicitFunction; - - // The bounding box is represented by a single voxel image data - vtkImageData *myBox; - vtkOutlineFilter *myOutline; - vtkPolyDataMapper *myOutlineMapper; - vtkActor *myOutlineActor; - - int OutlineTranslation; //whether the outline can be moved - - // The cut plane is produced with a vtkCutter - vtkCutter *myCutter1; - vtkPolyDataMapper *myCutMapper1; - vtkActor *myCutActor1; - - vtkCutter *myCutter2; - vtkPolyDataMapper *myCutMapper2; - vtkActor *myCutActor2; - - vtkFeatureEdges *myEdges2; - vtkPolyDataMapper *myEdgesMapper2; - vtkActor *myEdgesActor2; - - int myDrawPlane; - - vtkFeatureEdges *myEdges1; - vtkPolyDataMapper *myEdgesMapper1; - vtkActor *myEdgesActor1; - - // The + normal cone - vtkConeSource *ConeSource; - vtkPolyDataMapper *ConeMapper; - VISU_UnScaledActor *ConeActor; - // The + normal line - vtkLineSource *LineSource; - vtkPolyDataMapper *LineMapper; - vtkActor *LineActor; - // The - normal cone - vtkConeSource *ConeSource2; - vtkPolyDataMapper *ConeMapper2; - VISU_UnScaledActor *ConeActor2; - // The - normal line - vtkLineSource *LineSource2; - vtkPolyDataMapper *LineMapper2; - vtkActor *LineActor2; - // The origin positioning handle - vtkSphereSource *Sphere; - vtkPolyDataMapper *SphereMapper; - VISU_UnScaledActor *SphereActor; - - // Do the picking - vtkCellPicker *Picker; - - // Transform the normal (used for rotation) - vtkTransform *Transform; - // Properties used to control the appearance of selected objects and - // the manipulator in general. - vtkProperty *NormalProperty; - vtkProperty *SelectedNormalProperty; - vtkProperty *PlaneProperty; - vtkProperty *SelectedPlaneProperty; - vtkProperty *OutlineProperty; - vtkProperty *SelectedOutlineProperty; - vtkProperty *EdgesProperty; - -private: - VISU_ImplicitFunctionWidget(const VISU_ImplicitFunctionWidget&); //Not implemented - void operator=(const VISU_ImplicitFunctionWidget&); //Not implemented -}; - -#endif