X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSVTK%2FSVTK_DeviceActor.h;h=d9471c8c9b85952f861a9a91c0b34407eceee4c5;hb=259ecb356eb789678497db6b655cc3e377a67cce;hp=47fc3e12d1e7e1f847d719b6569a4fe7953cf0b0;hpb=f830c97c748d8f8a6a7eccc8e3a58e19066a1181;p=modules%2Fgui.git diff --git a/src/SVTK/SVTK_DeviceActor.h b/src/SVTK/SVTK_DeviceActor.h index 47fc3e12d..d9471c8c9 100644 --- a/src/SVTK/SVTK_DeviceActor.h +++ b/src/SVTK/SVTK_DeviceActor.h @@ -1,36 +1,36 @@ -// SVTK OBJECT : interactive object for SVTK visualization +// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE // -// 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.salome-platform.org/ or email : webmaster.salome@opencascade.com +// Copyright (C) 2003-2007 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, or (at your option) any later version. // +// 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.salome-platform.org/ or email : webmaster.salome@opencascade.com // + +// SVTK OBJECT : interactive object for SVTK visualization // File : SVTK_DeviceActor.h // Author : -// Module : -// $Header$ #ifndef SVTK_DEVICE_ACTOR_H #define SVTK_DEVICE_ACTOR_H #include "SVTK.h" #include "VTKViewer.h" +#include "VTKViewer_Actor.h" +#include "VTKViewer_MarkerDef.h" #include @@ -44,20 +44,10 @@ class VTKViewer_GeometryFilter; class vtkCell; class vtkDataSet; class vtkShrinkFilter; -class vtkDataSetMapper; +class vtkFeatureEdges; +class VTKViewer_DataSetMapper; class vtkPassThroughFilter; - -namespace SVTK -{ - namespace Representation - { - typedef int Type; - const Type Points = VTK_POINTS; - const Type Wireframe = VTK_WIREFRAME; - const Type Surface = VTK_SURFACE; - const Type Insideframe = Surface + 1; - } -} +class vtkAlgorithmOutput; #ifdef WIN32 #pragma warning ( disable:4251 ) @@ -90,7 +80,12 @@ class SVTK_EXPORT SVTK_DeviceActor: public vtkLODActor //! Allows to set initial #vtkDataSet virtual void - SetInput(vtkDataSet* theDataSet); + SetInputData(vtkDataSet* theDataSet); + + //! Allows to set initial #vtkAlgorithmOutput + virtual + void + SetInputConnection(vtkAlgorithmOutput* theAlgorithmOutput); /** @name For selection mapping purpose */ //@{ @@ -99,7 +94,7 @@ class SVTK_EXPORT SVTK_DeviceActor: public vtkLODActor GetNodeObjId(int theVtkID); virtual - vtkFloatingPointType* + double* GetNodeCoord(int theObjID); virtual @@ -122,12 +117,12 @@ class SVTK_EXPORT SVTK_DeviceActor: public vtkLODActor /** @name For shrink mamnagement purpose */ //@{ - vtkFloatingPointType + double GetShrinkFactor(); virtual void - SetShrinkFactor(vtkFloatingPointType value); + SetShrinkFactor(double value); virtual void @@ -148,20 +143,68 @@ class SVTK_EXPORT SVTK_DeviceActor: public vtkLODActor UnShrink(); //@} + /** @name For feature edges management purpose */ + //@{ + virtual + bool + IsFeatureEdgesAllowed(); + + virtual + void + SetFeatureEdgesAllowed(bool theIsFeatureEdgesAllowed); + + virtual + bool + IsFeatureEdgesEnabled(); + + virtual + void + SetFeatureEdgesEnabled(bool theIsFeatureEdgesEnabled); + + virtual + double + GetFeatureEdgesAngle(); + + virtual + void + SetFeatureEdgesAngle(double theAngle); + + virtual + void + GetFeatureEdgesFlags(bool& theIsFeatureEdges, + bool& theIsBoundaryEdges, + bool& theIsManifoldEdges, + bool& theIsNonManifoldEdges); + virtual + void + SetFeatureEdgesFlags(bool theIsFeatureEdges, + bool theIsBoundaryEdges, + bool theIsManifoldEdges, + bool theIsNonManifoldEdges); + + virtual + bool + GetFeatureEdgesColoring(); + + virtual + void + SetFeatureEdgesColoring(bool theIsColoring); + //@} + /** @name For representation mamnagement purpose */ virtual void - SetRepresentation(SVTK::Representation::Type theMode); + SetRepresentation(VTKViewer::Representation::Type theMode); - SVTK::Representation::Type + VTKViewer::Representation::Type GetRepresentation(); virtual - vtkFloatingPointType + double GetDefaultPointSize(); virtual - vtkFloatingPointType + double GetDefaultLineWidth(); bool @@ -171,14 +214,62 @@ class SVTK_EXPORT SVTK_DeviceActor: public vtkLODActor SetShaded(bool theShaded); //@} + /** @name For ball marker management purpose */ + void + SetBallEnabled( bool ); + + /** @name For marker management purpose */ + void + SetMarkerEnabled( bool ); + + void + SetBallScale( double ); + + void + SetMarkerStd( VTK::MarkerType, VTK::MarkerScale ); + + void + SetMarkerTexture( int, VTK::MarkerTexture ); + + VTK::MarkerType + GetMarkerType(); + + VTK::MarkerScale + GetMarkerScale(); + + int + GetMarkerTexture(); + //@} + virtual void Render(vtkRenderer *, vtkMapper *); - vtkDataSetMapper* GetDataSetMapper(); + VTKViewer_DataSetMapper* GetDataSetMapper(); + + //---------------------------------------------------------------------------- + //! Setting for displaying quadratic elements + virtual void SetQuadraticArcMode(bool theFlag); + virtual bool GetQuadraticArcMode(); + + virtual void SetQuadraticArcAngle(double theMaxAngle); + virtual double GetQuadraticArcAngle(); + + virtual + void + SetCoincident3DAllowed(bool theIsFeatureEdgesAllowed); + + virtual + bool + IsCoincident3DAllowed() const; + + void + SetResolveCoincidentTopology(bool theIsResolve); + + protected: - SVTK::Representation::Type myRepresentation; + VTKViewer::Representation::Type myRepresentation; vtkProperty *myProperty; bool myIsShaded; @@ -190,19 +281,23 @@ class SVTK_EXPORT SVTK_DeviceActor: public vtkLODActor VTKViewer_TransformFilter *myTransformFilter; std::vector myPassFilter; vtkShrinkFilter* myShrinkFilter; - vtkDataSetMapper* myMapper; + vtkFeatureEdges* myFeatureEdges; + VTKViewer_DataSetMapper* myMapper; bool myIsShrinkable; bool myIsShrunk; + bool myIsFeatureEdgesAllowed; + bool myIsFeatureEdgesEnabled; + bool myIsResolveCoincidentTopology; - vtkFloatingPointType myPolygonOffsetFactor; - vtkFloatingPointType myPolygonOffsetUnits; + double myPolygonOffsetFactor; + double myPolygonOffsetUnits; - void SetPolygonOffsetParameters(vtkFloatingPointType factor, - vtkFloatingPointType units); - void GetPolygonOffsetParameters(vtkFloatingPointType& factor, - vtkFloatingPointType& units); + void SetPolygonOffsetParameters(double factor, + double units); + void GetPolygonOffsetParameters(double& factor, + double& units); SVTK_DeviceActor(); ~SVTK_DeviceActor();