-// SVTK OBJECT : interactive object for SVTK visualization
+// Copyright (C) 2007-2012 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.
+//
+// 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 <vector>
class VTKViewer_Transform;
class VTKViewer_TransformFilter;
-class VTKViewer_PassThroughFilter;
class VTKViewer_GeometryFilter;
class vtkCell;
class vtkDataSet;
class vtkShrinkFilter;
-class vtkDataSetMapper;
-
-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 vtkFeatureEdges;
+class VTKViewer_DataSetMapper;
+class vtkPassThroughFilter;
+#ifdef WIN32
+#pragma warning ( disable:4251 )
+#endif
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
+ vtkFloatingPointType
+ GetFeatureEdgesAngle();
+
+ virtual
+ void
+ SetFeatureEdgesAngle(vtkFloatingPointType 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
SetShaded(bool theShaded);
//@}
+ /** @name For marker management purpose */
+ void
+ SetMarkerEnabled( bool );
+
+ void
+ SetMarkerStd( VTK::MarkerType, VTK::MarkerScale );
+
+ void
+ SetMarkerTexture( int, VTK::MarkerTexture );
+
+ VTK::MarkerType
+ GetMarkerType();
+
+ VTK::MarkerScale
+ GetMarkerScale();
+
+ int
+ GetMarkerTexture();
+ //@}
+
virtual
void
Render(vtkRenderer *, vtkMapper *);
+ VTKViewer_DataSetMapper* GetDataSetMapper();
+
+ //----------------------------------------------------------------------------
+ //! Setting for displaying quadratic elements
+ virtual void SetQuadraticArcMode(bool theFlag);
+ virtual bool GetQuadraticArcMode();
+
+ virtual void SetQuadraticArcAngle(vtkFloatingPointType theMaxAngle);
+ virtual vtkFloatingPointType GetQuadraticArcAngle();
+
+ virtual
+ void
+ SetCoincident3DAllowed(bool theIsFeatureEdgesAllowed);
+
+ virtual
+ bool
+ IsCoincident3DAllowed() const;
+
+
protected:
- SVTK::Representation::Type myRepresentation;
+ VTKViewer::Representation::Type myRepresentation;
vtkProperty *myProperty;
bool myIsShaded;
VTKViewer_GeometryFilter *myGeomFilter;
VTKViewer_TransformFilter *myTransformFilter;
- std::vector<VTKViewer_PassThroughFilter*> myPassFilter;
+ std::vector<vtkPassThroughFilter*> myPassFilter;
vtkShrinkFilter* myShrinkFilter;
- vtkDataSetMapper* myMapper;
+ vtkFeatureEdges* myFeatureEdges;
+ VTKViewer_DataSetMapper* myMapper;
bool myIsShrinkable;
bool myIsShrunk;
+ bool myIsFeatureEdgesAllowed;
+ bool myIsFeatureEdgesEnabled;
+
bool myIsResolveCoincidentTopology;
vtkFloatingPointType myPolygonOffsetFactor;
vtkFloatingPointType myPolygonOffsetUnits;
void SetPolygonOffsetParameters(vtkFloatingPointType factor,
- vtkFloatingPointType units);
+ vtkFloatingPointType units);
void GetPolygonOffsetParameters(vtkFloatingPointType& factor,
- vtkFloatingPointType& units);
+ vtkFloatingPointType& units);
SVTK_DeviceActor();
~SVTK_DeviceActor();
};
+#ifdef WIN32
+#pragma warning ( default:4251 )
+#endif
#endif //SVTK_DEVICE_ACTOR_H