]> SALOME platform Git repositories - modules/visu.git/commitdiff
Salome HOME
Issue 0019818: EDF 703 SMESH VISU : Display Mesh Groups names in viewer (as a caption)
authorouv <ouv@opencascade.com>
Wed, 27 May 2009 07:23:16 +0000 (07:23 +0000)
committerouv <ouv@opencascade.com>
Wed, 27 May 2009 07:23:16 +0000 (07:23 +0000)
src/OBJECT/VISU_Actor.cxx
src/OBJECT/VISU_Actor.h
src/OBJECT/VISU_GaussPtsAct.cxx
src/OBJECT/VISU_GaussPtsAct.h
src/OBJECT/VISU_GaussPtsDeviceActor.cxx
src/OBJECT/VISU_GaussPtsDeviceActor.h
src/VISUGUI/VisuGUI.cxx
src/VISU_I/VISU_Mesh_i.cc
src/VISU_I/VISU_ScalarMap_i.cc

index 339499ad2a5c2a012585f30c4cb77299c0390747..c9b52260e6386427e306bef171247a52b0262521 100644 (file)
@@ -33,6 +33,7 @@
 
 #include "SVTK_Event.h"
 
+#include "VTKViewer_FramedTextActor.h"
 #include "VTKViewer_ShrinkFilter.h"
 #include "VTKViewer_GeometryFilter.h"
 #include "VISU_ActorFactory.h"
@@ -108,7 +109,7 @@ VISU_Actor
   myShrinkFilter(VTKViewer_ShrinkFilter::New()),
   myAnnotationMapper(vtkTextMapper::New()),
   myAnnotationActor(vtkTextActor::New()),
-  myTextActor(VISU_FramedTextActor::New()),
+  myTextActor(VTKViewer_FramedTextActor::New()),
   myIsFeatureEdgesAllowed(false),
   myIsFeatureEdgesEnabled(false),
   myFeatureEdges(vtkFeatureEdges::New()),
index 78c6631a60bdcd30606b5fe4bec86d5d3e3d5791..65920a789d582a5938b2e0641075dcf5078af2aa 100644 (file)
@@ -56,7 +56,7 @@ class vtkLabeledDataMapper;
 class vtkMaskPoints;
 class vtkActor2D;
 
-class VISU_FramedTextActor;
+class VTKViewer_FramedTextActor;
 
 namespace SVTK
 {
@@ -375,7 +375,7 @@ class VISU_OBJECT_EXPORT VISU_Actor : public VISU_ActorBase
   vtkSmartPointer<vtkTextMapper> myAnnotationMapper;
   vtkSmartPointer<vtkTextActor>  myAnnotationActor;
 
-  vtkSmartPointer<VISU_FramedTextActor> myTextActor;
+  vtkSmartPointer<VTKViewer_FramedTextActor> myTextActor;
 
   vtkSmartPointer<vtkFeatureEdges> myFeatureEdges;
   bool myIsFeatureEdgesAllowed;
index 5dd12bbdf541dbec68dbe0927eef1342ec388b4e..2fc5545668bdf9d854ab1a2e1b8570f8cd7a66f5 100644 (file)
@@ -38,6 +38,7 @@
 
 #include "VISU_Event.h" 
 #include "SVTK_Actor.h"
+#include "VTKViewer_FramedTextActor.h"
 #include <SALOME_ExtractPolyDataGeometry.h>
 
 #include <vtkCamera.h>
index 891f391b9c7097a604a113f30dffe7fa23bbbd1e..6e255ab0985270cc14312cb2bc972d5a44a82764 100644 (file)
@@ -50,7 +50,6 @@ class vtkInteractorStyle;
 
 class VISU_GaussPtsDeviceActor;
 class VISU_CursorPyramid;
-class VISU_FramedTextActor;
 
 class vtkUnstructuredGrid;
 class vtkPolyDataMapper;
index 2ea81b7f64dfea3a00c032c145484306ac9dd568..1828a55cb44ba2971dcd15ca9d26aea8f44466db 100644 (file)
@@ -547,294 +547,3 @@ VISU_CursorPyramid
   mySources[5]->SetCenter(0.0, 0.0, -aDisplacement);
 }
 
-
-//----------------------------------------------------------------------------
-#include <vtkViewport.h>
-#include <vtkWindow.h>
-#include <vtkProp.h>
-#include <vtkPolyData.h>
-#include <vtkPolyDataMapper2D.h>
-#include <vtkActor2D.h>
-#include <vtkTimeStamp.h>
-#include <vtkTextProperty.h>
-#include <vtkTextActor.h>
-#include <vtkTextMapper.h>
-#include <vtkPoints.h>
-#include <vtkCellArray.h>
-#include <vtkProperty2D.h>
-//==================================================================
-vtkCxxRevisionMacro(VISU_FramedTextActor, "$Revision$");
-vtkStandardNewMacro(VISU_FramedTextActor);
-
-//==================================================================
-// function : VISU_FramedTextActor
-// purpose  :
-//==================================================================
-VISU_FramedTextActor::VISU_FramedTextActor()
-{
-  PositionCoordinate->SetCoordinateSystemToNormalizedViewport();
-
-  myTransparency=0.;
-  myBar = vtkPolyData::New();
-  myBarMapper = vtkPolyDataMapper2D::New();
-  myBarMapper->SetInput(myBar);
-  myBarActor = vtkActor2D::New();
-  myBarActor->SetMapper(myBarMapper);
-  myBarActor->GetProperty()->SetOpacity(1.-myTransparency);  
-  myBarActor->GetProperty()->SetColor(.5, .5, .5); 
-  //
-  myTextProperty = vtkTextProperty::New();
-  myTextProperty->SetFontSize(12);
-  myTextProperty->SetBold(0);
-  myTextProperty->SetItalic(0);
-  myTextProperty->SetShadow(1);
-  myTextProperty->SetFontFamilyToArial();
-  //
-  myTextMapper=vtkTextMapper::New();
-  myTextMapper->SetInput("");
-  myTextMapper->GetTextProperty()->ShallowCopy(myTextProperty);
-  myTextActor=vtkActor2D::New();
-  myTextActor->SetMapper(myTextMapper);
-  //
-  myBarActor->SetVisibility(1);
-  myTextActor->SetVisibility(1);
-  myBarActor->SetPickable(0);
-  myTextActor->SetPickable(0);
-  //----------------------------------------------------------
-  myModePosition=0;// 0 -centered below the point
-                   // 1 -top left corner of the 3D view window
-  //
-  for(int i=0; i<4; i++) {
-    myWorldPoint[i] = 0.;
-  }
-  myDistance=10.;
-  //
-}
-//==================================================================
-// function : ~
-// purpose  :
-//==================================================================
-VISU_FramedTextActor::~VISU_FramedTextActor()
-{
-  myTextActor->Delete();
-  myTextMapper->Delete();
-  myTextProperty->Delete();
-  myBarActor->Delete();
-  myBarMapper->Delete();
-  myBar->Delete();
-}
-//==================================================================
-// function : SetVisibility
-// purpose  :
-//==================================================================
-void VISU_FramedTextActor::SetVisibility (int theVisibility)
-{
-  myBarActor->SetVisibility(theVisibility);
-  myTextActor->SetVisibility(theVisibility);
-}
-//==================================================================
-// function : GetVisibility
-// purpose  :
-//==================================================================
-int VISU_FramedTextActor::GetVisibility() 
-{
-  return myBarActor->GetVisibility();
-}
-//==================================================================
-// function : SetPickable
-// purpose  :
-//==================================================================
-void VISU_FramedTextActor::SetPickable (int thePickability) 
-{
-  myBarActor->SetPickable(thePickability);
-  myTextActor->SetPickable(thePickability);
-}
-//==================================================================
-// function : GetPickable
-// purpose  :
-//==================================================================
-int VISU_FramedTextActor::GetPickable()
-{
-  return myBarActor->GetPickable();
-}
-//==================================================================
-// function : SetTransparency
-// purpose  :
-//==================================================================
-void VISU_FramedTextActor::SetTransparency(const vtkFloatingPointType theTransparency)
-{
-  if (theTransparency>=0.  && theTransparency<=1.){
-    myTransparency=theTransparency;
-    myBarActor->GetProperty()->SetOpacity(1.-myTransparency);  
-    Modified();
-  }
-}
-//==================================================================
-// function : GetTransparency
-// purpose  :
-//==================================================================
-vtkFloatingPointType VISU_FramedTextActor::GetTransparency()const
-{
-  return myTransparency;
-}
-//==================================================================
-// function : SetText
-// purpose  :
-//==================================================================
-void VISU_FramedTextActor::SetText(const char* theText)
-{
-  myTextMapper->SetInput(theText); 
-  Modified();
-}
-//==================================================================
-// function : GetText
-// purpose  :
-//==================================================================
-char* VISU_FramedTextActor::GetText()
-{
-  return myTextMapper->GetInput();
-}
-//==================================================================
-// function : SetModePosition
-// purpose  :
-//==================================================================
-void VISU_FramedTextActor::SetModePosition(const int theMode)
-{
-  myModePosition=theMode;
-  Modified();
-}
-//==================================================================
-// function : GetModePosition
-// purpose  :
-//==================================================================
-int VISU_FramedTextActor::GetModePosition()const
-{
-  return myModePosition;
-}
-//==================================================================
-// function : SetWorldPoint
-// purpose  :
-//==================================================================
-void VISU_FramedTextActor::SetWorldPoint(const vtkFloatingPointType theWorldPoint[4])
-{
-  for(int i = 0; i<4; ++i) {
-    myWorldPoint[i] = theWorldPoint[i];
-  } 
-  Modified();
-}
-//==================================================================
-// function : GetWorldPoint
-// purpose  :
-//==================================================================
-const vtkFloatingPointType* VISU_FramedTextActor::GetWorldPoint()const 
-{
-  return myWorldPoint;
-}
-//==================================================================
-// function : SetDistance
-// purpose  :
-//==================================================================
-void VISU_FramedTextActor::SetDistance(const vtkFloatingPointType theDistance)
-{
-  myDistance=theDistance;
-}
-//==================================================================
-// function : GetDistance
-// purpose  :
-//==================================================================
-vtkFloatingPointType VISU_FramedTextActor::GetDistance()const
-{
-  return myDistance;
-}
-//==================================================================
-// function : ReleaseGraphicsResources
-// purpose  :
-//==================================================================
-void VISU_FramedTextActor::ReleaseGraphicsResources(vtkWindow *win)
-{
-  myTextActor->ReleaseGraphicsResources(win);
-  myBarActor->ReleaseGraphicsResources(win);
-}
-//==================================================================
-// function : RenderOverlay
-// purpose  :
-//==================================================================
-int VISU_FramedTextActor::RenderOverlay(vtkViewport *viewport)
-{
-  int renderedSomething = 0;
-  myBarActor->RenderOverlay(viewport);
-  renderedSomething +=myTextActor->RenderOverlay(viewport);
-  return renderedSomething;
-}
-//==================================================================
-// function : RenderOpaqueGeometry
-// purpose  :
-//==================================================================
-int 
-VISU_FramedTextActor
-::RenderOpaqueGeometry(vtkViewport *theViewport)
-{
-  int anIsRenderedSomething = 0;
-  int* aViewportSize = theViewport->GetSize();
-  if(aViewportSize[0] == 1 || aViewportSize[1] == 1)
-    return anIsRenderedSomething;
-
-  myBar->Initialize();
-
-  int aNbPoints = 4;
-  vtkPoints *aPoints = vtkPoints::New();
-  aPoints->SetNumberOfPoints(aNbPoints);
-  myBar->SetPoints(aPoints);
-  aPoints->Delete();
-
-  vtkCellArray *aPolys = vtkCellArray::New();
-  aPolys->Allocate(aPolys->EstimateSize(1,4));
-  vtkIdType aPointsIds[4] = {0, 1, 3, 2};
-  aPolys->InsertNextCell(4,aPointsIds);
-  myBar->SetPolys(aPolys);
-  aPolys->Delete(); 
-
-  int aTextSize[2]; 
-  myTextMapper->GetSize(theViewport, aTextSize);
-  int aBarWidth = aTextSize[0];
-  int aBarHeight = aTextSize[1];
-
-  if (myModePosition==0) {
-    theViewport->SetWorldPoint(myWorldPoint);
-    theViewport->WorldToDisplay();
-
-    vtkFloatingPointType aSelectionPoint[3];
-    theViewport->GetDisplayPoint(aSelectionPoint);
-    vtkFloatingPointType u = aSelectionPoint[0];
-    vtkFloatingPointType v = aSelectionPoint[1] - myDistance;
-    theViewport->ViewportToNormalizedViewport(u, v);
-    PositionCoordinate->SetValue(u, v);
-    //
-    myTextProperty->SetJustificationToCentered();
-    myTextProperty->SetVerticalJustificationToTop();
-    //
-    aBarWidth /= 2;
-    aPoints->SetPoint(0, -aBarWidth,         0.0, 0.0);
-    aPoints->SetPoint(1, -aBarWidth, -aBarHeight, 0.0);
-    aPoints->SetPoint(2,  aBarWidth,         0.0, 0.0);
-    aPoints->SetPoint(3,  aBarWidth, -aBarHeight, 0.0);
-  }
-  else {//if (myModePosition==1) {
-    PositionCoordinate->SetValue(0.0, 1.0);
-    myTextProperty->SetJustificationToLeft();
-    myTextProperty->SetVerticalJustificationToTop();  
-    //
-    aPoints->SetPoint(0,        0.0,         0.0, 0.0);
-    aPoints->SetPoint(1,        0.0, -aBarHeight, 0.0);
-    aPoints->SetPoint(2,  aBarWidth,         0.0, 0.0);
-    aPoints->SetPoint(3,  aBarWidth, -aBarHeight, 0.0);
-  }
-  //
-  myTextMapper->GetTextProperty()->ShallowCopy(myTextProperty);
-  myBarActor ->GetPositionCoordinate()->SetReferenceCoordinate(PositionCoordinate);
-  myTextActor->GetPositionCoordinate()->SetReferenceCoordinate(PositionCoordinate);
-  //
-  myBuildTime.Modified();
-  //
-  return anIsRenderedSomething;
-}
index d519780c2b57a964e403b7af5d8d89570ed146f3..f01bdee25654cdf1db412ca3666f37005a68495c 100644 (file)
@@ -233,76 +233,4 @@ protected:
 };
 
 
-//==================================================================
-// class VISU_FramedTextActor
-//
-#include <vtkActor2D.h>
-//
-class vtkViewport;
-class vtkProp;
-class vtkWindow;
-class vtkPolyData;
-class vtkPolyDataMapper2D;
-class vtkActor2D;
-class vtkTimeStamp;
-class vtkTextProperty;
-class vtkTextMapper;
-
-class VISU_FramedTextActor : public vtkActor2D
-{
-public:
-  // vtks
-  vtkTypeRevisionMacro(VISU_FramedTextActor,vtkActor2D);
-  static VISU_FramedTextActor *New();
-  //
-  virtual int  RenderOpaqueGeometry(vtkViewport* viewport);
-  virtual int  RenderTranslucentGeometry(vtkViewport*) { return 0; };
-  virtual int  RenderOverlay(vtkViewport* viewport);
-  virtual void ReleaseGraphicsResources(vtkWindow *);
-  virtual void SetVisibility (int );
-  virtual int  GetVisibility() ;
-  virtual void SetPickable (int ) ;
-  virtual int GetPickable();
-  //
-  // selectors
-  void SetText(const char* theText);
-  char* GetText();
-  //
-  void SetModePosition(const int theMode);
-  int  GetModePosition()const;
-  //
-  void SetWorldPoint(const vtkFloatingPointType theWorldPoint[4]);
-  const vtkFloatingPointType* GetWorldPoint()const;
-  //
-  void  SetDistance(const vtkFloatingPointType theDistance);
-  vtkFloatingPointType GetDistance()const;
-  //
-  void  SetTransparency(const vtkFloatingPointType theTransparency);
-  vtkFloatingPointType GetTransparency()const;
-  //
-protected:
-  VISU_FramedTextActor();
-  ~VISU_FramedTextActor();
-
-protected:
-  vtkPolyData         *myBar;
-  vtkPolyDataMapper2D *myBarMapper;
-  vtkActor2D          *myBarActor;
-  //
-  vtkTextProperty *myTextProperty;
-  vtkTextMapper   *myTextMapper;
-  vtkActor2D      *myTextActor;
-  //
-  vtkTimeStamp  myBuildTime;
-  //
-  int   myModePosition;
-  vtkFloatingPointType myWorldPoint[4];
-  vtkFloatingPointType myDistance;
-  vtkFloatingPointType myTransparency;
-  
-private:
- VISU_FramedTextActor(const VISU_FramedTextActor&);  // Not implemented.
-  void operator=(const VISU_FramedTextActor&);  // Not implemented.
-};
-
 #endif //VISU_GAUSS_PTS_DEVICE_ACTOR_H
index 6334fd811d307268c98047f56b6694dceb0eb470..03cff4e0e1263c2a58f816fddb9b0589908a40b3 100644 (file)
@@ -3050,7 +3050,7 @@ VisuGUI
   // rename command
   QString aCurveAll = "'VISU::TTABLE' 'VISU::TCURVE' 'VISU::TCONTAINER' 'VISU::POINTMAP3D'";
 
-  aRule = "selcount=1 and ($type in {'VISU::TVIEW3D' 'VISU::TMESH' 'VISU::TPOINTMAP3D' " + aCurveAll + " " + aPrsAll + "})";
+  aRule = "selcount=1 and ($type in {'VISU::TVIEW3D' 'VISU::TPOINTMAP3D' " + aCurveAll + " " + aPrsAll + "})";
   mgr->setRule( action( VISU_RENAME ), aRule );
 
   // copy presentation command
index c29834317a04fec316c4ca726c527fdf775112f0..f07f2208a85416d2134916e2db0afcb203ac3917 100644 (file)
@@ -535,6 +535,12 @@ VISU::Mesh_i
                                   aResourceMgr->booleanValue("VISU", "show_non_manifold_edges", false) );
     anActor->SetFeatureEdgesColoring( aResourceMgr->booleanValue("VISU", "feature_edges_coloring", false) );
 
+    if (myType == VISU::TGROUP )
+    {
+      anActor->SetIsDisplayNameActor( true );
+      anActor->SetNameActorText( GetSubMeshName().c_str() );
+    }
+
     UpdateActor(anActor);
   }catch (...) {
     anActor->Delete();
index 5322effeacd46ddede8c8bb1c3df7995a7846786..87a4760bd1f0be3a50c27c79633be3ee73403f64 100644 (file)
@@ -513,6 +513,20 @@ VISU::ScalarMap_i
       GetValLblFontColor( anRGB[ 0 ], anRGB[ 1 ], anRGB[ 2 ] );
       aProp->SetColor( anRGB[ 0 ], anRGB[ 1 ], anRGB[ 2 ] );
     }
+
+    bool isOnGroups = myGroupNames.size() > 0;
+    if ( isOnGroups )
+    {
+      QStringList aList;
+      TGroupNames::const_iterator anIter = myGroupNames.begin();
+      for ( ; anIter != myGroupNames.end(); anIter++ )
+      {
+       const std::string aGroupName = *anIter;
+       aList << QString( aGroupName.c_str() );
+      }
+      anActor->SetNameActorText( aList.join( "\n" ).toLatin1().constData() );
+    }
+    anActor->SetIsDisplayNameActor( isOnGroups );
   }
   TSuperClass::UpdateActor(theActor);
 }