X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FOBJECT%2FGEOM_Actor.h;h=b8c38bd9e0de3050c9332efa2d78fbd46f54a1a8;hb=b6f0965afb72083a5234f9b4fb0b233adaaf8d9d;hp=d773b6cf6b090fd89d622a7af34c49ce05a0d67a;hpb=465e84c52edb243fa36d581abc659b1c97156c64;p=modules%2Fgeom.git diff --git a/src/OBJECT/GEOM_Actor.h b/src/OBJECT/GEOM_Actor.h index d773b6cf6..b8c38bd9e 100644 --- a/src/OBJECT/GEOM_Actor.h +++ b/src/OBJECT/GEOM_Actor.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2022 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -6,7 +6,7 @@ // 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. +// 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 @@ -51,6 +51,7 @@ class GEOM_ShadingFace; typedef GEOM_SmartPtr PSFaceSource; class vtkRenderer; +class vtkTextActor; class vtkAppendPolyData; typedef GEOM_SmartPtr PAppendFilter; @@ -58,15 +59,15 @@ typedef GEOM_SmartPtr PAppendFilter; class GEOM_OBJECT_EXPORT GEOM_Actor: public SALOME_Actor { public: - vtkTypeMacro(GEOM_Actor,SALOME_Actor); + vtkTypeMacro(GEOM_Actor,SALOME_Actor) static GEOM_Actor* New(); void SetShape(const TopoDS_Shape& theShape, - float theDeflection, - bool theIsVector = false); + double theDeflection, + bool theIsVector = false); - void SetDeflection(float theDeflection); - float GetDeflection() const{ return myDeflection;} + void SetDeflection(double theDeflection); + double GetDeflection() const{ return myDeflection;} void AddToRender(vtkRenderer* theRenderer); void RemoveFromRender(vtkRenderer* theRenderer); @@ -89,10 +90,10 @@ public: vtkProperty* GetShadingProperty(); vtkProperty* GetIsolatedEdgeProperty(); vtkProperty* GetVertexProperty(); + vtkProperty* GetStandaloneVertexProperty(); vtkProperty* GetSharedEdgeProperty(); vtkProperty* GetFaceEdgeProperty(); - void setDeflection(double adef); virtual void setDisplayMode(int thenewmode); // Description: @@ -107,7 +108,6 @@ public: const TopoDS_Shape& getTopo(); void setInputShape(const TopoDS_Shape& ashape, double adef1, int imode, bool isVector = false); - double getDeflection(); double isVector(); // SubShape @@ -121,24 +121,26 @@ public: void ShallowCopy(vtkProp *prop); // Opacity - void SetOpacity(vtkFloatingPointType opa); - vtkFloatingPointType GetOpacity(); + void SetOpacity(double opa); + double GetOpacity(); // Color (same to all sub-actors/display modes) - void SetColor(vtkFloatingPointType r, vtkFloatingPointType g, vtkFloatingPointType b); - void GetColor(vtkFloatingPointType& r, vtkFloatingPointType& g, vtkFloatingPointType& b); + void SetColor(double r, double g, double b); + void GetColor(double& r, double& g, double& b); // Color of points - void SetPointColor(vtkFloatingPointType r, vtkFloatingPointType g, vtkFloatingPointType b); + void SetPointColor(double r, double g, double b); // Color of standalone edges, wires, vectors - void SetIsolatedEdgeColor(vtkFloatingPointType r, vtkFloatingPointType g, vtkFloatingPointType b); + void SetIsolatedEdgeColor(double r, double g, double b); // Color of shared edges - void SetSharedEdgeColor(vtkFloatingPointType r, vtkFloatingPointType g, vtkFloatingPointType b); + void SetSharedEdgeColor(double r, double g, double b); // Color of free edges - void SetFreeEdgeColor(vtkFloatingPointType r, vtkFloatingPointType g, vtkFloatingPointType b); + void SetFreeEdgeColor(double r, double g, double b); // Color of edges in shading+edges display mode - void SetEdgesInShadingColor(vtkFloatingPointType r, vtkFloatingPointType g, vtkFloatingPointType b); + void SetEdgesInShadingColor(double r, double g, double b); // Color of iso-lines - void SetIsosColor(vtkFloatingPointType r, vtkFloatingPointType g, vtkFloatingPointType b); + void SetIsosColor(double r, double g, double b); + // Color of labels + void SetLabelColor(double r, double g, double b); // Material @@ -201,39 +203,58 @@ public: virtual bool GetVectorMode(); - - void - StoreIsoNumbers(); + //! Vertices mode management + virtual void - RestoreIsoNumbers(); - + SetVerticesMode(const bool theMode); + + virtual + bool + GetVerticesMode(); + + //! Name mode management + virtual void - ResetIsoNumbers(); + SetNameMode(const bool theMode); + + virtual + bool + GetNameMode(); + + virtual + void + SetTransform(VTKViewer_Transform* theTransform); + protected: void SetModified(); void GetMatrix(vtkCamera* theCam, vtkMatrix4x4 *result); + void SetShapeName(); GEOM_Actor(); ~GEOM_Actor(); private: TopoDS_Shape myShape; - int myNbIsos[2]; bool isOnlyVertex; - float myDeflection; + double myDeflection; bool myIsForced; // EDisplayMode myDisplayMode; bool myIsSelected; bool myVectorMode; + bool myVerticesMode; + bool myNameMode; PDeviceActor myVertexActor; PVertexSource myVertexSource; + PDeviceActor myStandaloneVertexActor; + PVertexSource myStandaloneVertexSource; + PDeviceActor myIsolatedEdgeActor; PEdgeSource myIsolatedEdgeSource; @@ -250,6 +271,9 @@ private: PSFaceSource myShadingFaceSource; PDeviceActor myHighlightActor; + + vtkTextActor* myTextActor; + vtkSmartPointer myHighlightProp; vtkSmartPointer myPreHighlightProp; vtkSmartPointer myShadingFaceProp; @@ -263,11 +287,11 @@ private: GEOM_Actor(const GEOM_Actor&); void operator=(const GEOM_Actor&); - vtkFloatingPointType myEdgesInWireframeColor[3]; - vtkFloatingPointType myEdgesInShadingColor[3]; - vtkFloatingPointType myIsolatedEdgeColor[3]; - vtkFloatingPointType mySharedEdgeColor[3]; - vtkFloatingPointType myOneFaceEdgeColor[3]; + double myEdgesInWireframeColor[3]; + double myEdgesInShadingColor[3]; + double myIsolatedEdgeColor[3]; + double mySharedEdgeColor[3]; + double myOneFaceEdgeColor[3]; }; #endif //GEOM_ACTOR_H