From 73334fbe0f1901935f47ee6f6aea4e1555afc9b4 Mon Sep 17 00:00:00 2001 From: enk Date: Tue, 24 Oct 2006 11:36:02 +0000 Subject: [PATCH] modification of dependences tree --- idl/VISU_Gen.idl | 76 +++++++++---------- src/PIPELINE/VISU_CutLinesPL.cxx | 2 +- src/PIPELINE/VISU_CutPlanesPL.cxx | 6 +- src/PIPELINE/VISU_CutPlanesPL.hxx | 6 +- src/PIPELINE/VISU_DeformedShapePL.cxx | 9 ++- src/PIPELINE/VISU_DeformedShapePL.hxx | 8 +- src/PIPELINE/VISU_IsoSurfacesPL.cxx | 10 +-- src/PIPELINE/VISU_IsoSurfacesPL.hxx | 8 +- src/PIPELINE/VISU_Plot3DPL.cxx | 8 +- src/PIPELINE/VISU_Plot3DPL.hxx | 7 +- .../VISU_ScalarMapOnDeformedShapePL.cxx | 8 +- .../VISU_ScalarMapOnDeformedShapePL.hxx | 8 +- src/PIPELINE/VISU_StreamLinesPL.cxx | 4 +- src/VISU_I/VISU_CutLines_i.cc | 12 +-- src/VISU_I/VISU_CutLines_i.hh | 6 +- src/VISU_I/VISU_CutPlanes_i.cc | 12 +-- src/VISU_I/VISU_CutPlanes_i.hh | 6 +- src/VISU_I/VISU_DeformedShape_i.cc | 14 ++-- src/VISU_I/VISU_DeformedShape_i.hh | 6 +- src/VISU_I/VISU_IsoSurfaces_i.cc | 12 +-- src/VISU_I/VISU_IsoSurfaces_i.hh | 6 +- src/VISU_I/VISU_Plot3D_i.cc | 12 +-- src/VISU_I/VISU_Plot3D_i.hh | 6 +- src/VISU_I/VISU_ScalarMapOnDeformedShape_i.cc | 5 +- src/VISU_I/VISU_ScalarMapOnDeformedShape_i.hh | 6 +- src/VISU_I/VISU_StreamLines_i.cc | 4 +- src/VISU_I/VISU_Vectors_i.cc | 2 + 27 files changed, 145 insertions(+), 124 deletions(-) diff --git a/idl/VISU_Gen.idl b/idl/VISU_Gen.idl index 999f3115..903ee96b 100644 --- a/idl/VISU_Gen.idl +++ b/idl/VISU_Gen.idl @@ -539,6 +539,38 @@ module VISU { Orientation GetBarOrientation(); }; + /*! \brief Presentation merger interface + * + * Presentation parameters of the prsmerger shape presentation. + */ + interface PrsMerger : ScalarMap { + + void SetMeshOnGroup(in string theMeshName, + in string theGroupName); + + long AddMeshOnGroup(in string theMeshName, + in string theGroupName); + + void RemoveGeometryById(in long theId); + + string_array getGroupNames(); + + void SetFamilyOnEntity(in string theMeshName, + in Entity theEntity, + in string theFamilyName); + + void SetMeshOnEntity(in string theMeshName, + in Entity theEntity); + + void SetScalarMap(in string theMeshName, + in Entity theEntity, + in string theFieldName, + in long theStampsNum); + + long GetMeshGeometryPlace(in long theId); + + }; + //------------------------------------------------------- /*! \brief Gauss Points presentation interface * @@ -552,7 +584,7 @@ module VISU { * * Presentation parameters of the deformed shape presentation. */ - interface DeformedShape : ScalarMap { + interface DeformedShape : PrsMerger { /*! * Sets the scale of the presentatable object. * \param theScale Double value defining the scale of this presentable object. @@ -587,44 +619,12 @@ module VISU { }; - /*! \brief Presentation merger interface - * - * Presentation parameters of the prsmerger shape presentation. - */ - interface PrsMerger : ScalarMap { - - void SetMeshOnGroup(in string theMeshName, - in string theGroupName); - - long AddMeshOnGroup(in string theMeshName, - in string theGroupName); - - void RemoveGeometryById(in long theId); - - string_array getGroupNames(); - - void SetFamilyOnEntity(in string theMeshName, - in Entity theEntity, - in string theFamilyName); - - void SetMeshOnEntity(in string theMeshName, - in Entity theEntity); - - void SetScalarMap(in string theMeshName, - in Entity theEntity, - in string theFieldName, - in long theStampsNum); - - long GetMeshGeometryPlace(in long theId); - - }; - //------------------------------------------------------- /*! \brief Scalar Map on Deformed shape presentation interface * * Presentation parameters of the scalar map on deformed shape presentation. */ - interface ScalarMapOnDeformedShape : ScalarMap { + interface ScalarMapOnDeformedShape : PrsMerger { /*! * Sets the source ranges of pipeline @@ -690,7 +690,7 @@ module VISU { * consists of deforming initial planar mesh according to values assigned to the mesh elements. * If mesh not planar but volumic one, it is possible to generate intermediate planar mesh. */ - interface Plot3D : ScalarMap { + interface Plot3D : PrsMerger { /*! * This enumeration contains a set of elements defining * the type of orientation in 3D space of the cutting plane. @@ -788,7 +788,7 @@ module VISU { * consists of cutting your initial mesh by a definite number of planes. As the * result you will see these planes which will be cutted by the borders of the mesh. */ - interface CutPlanes : ScalarMap { + interface CutPlanes : PrsMerger { /*! * This enumeration contains a set of elements defining the type of orientation in 3D space * of the cut planes. @@ -890,7 +890,7 @@ module VISU { * operation is a regular array of lines in space, belonging to the same plane * and having the same orientation. They are located inside or on the mesh. */ - interface CutLines : ScalarMap { + interface CutLines : PrsMerger { /*! * Sets the type of orientation in 3D space of the base plane of a cut lines presentation. * \param theOrientation The orientation of the base plane in 3D space. @@ -1102,7 +1102,7 @@ module VISU { * values on the cells and on the basis of them constructs * isobaric surfaces, which form this presentation. */ - interface IsoSurfaces : ScalarMap { + interface IsoSurfaces : PrsMerger { /*! * Sets the number of isometric surfaces. * \param theNb A long value defining the number of isometric surfaces diff --git a/src/PIPELINE/VISU_CutLinesPL.cxx b/src/PIPELINE/VISU_CutLinesPL.cxx index a7561e48..3da0ca4a 100644 --- a/src/PIPELINE/VISU_CutLinesPL.cxx +++ b/src/PIPELINE/VISU_CutLinesPL.cxx @@ -151,7 +151,7 @@ VISU_CutLinesPL CorrectPnt(myBasePnt,aBaseBounds); - VISU_ScalarMapPL::Update(); + VISU_PrsMergerPL::Update(); } diff --git a/src/PIPELINE/VISU_CutPlanesPL.cxx b/src/PIPELINE/VISU_CutPlanesPL.cxx index c1780194..91a2f649 100644 --- a/src/PIPELINE/VISU_CutPlanesPL.cxx +++ b/src/PIPELINE/VISU_CutPlanesPL.cxx @@ -74,14 +74,14 @@ VISU_CutPlanesPL for (int i = 0, iend = GetNbParts(); i < iend; i++) if(!aPipeLine->IsPartDefault(i)) SetPartPosition(i, aPipeLine->GetPartPosition(i)); } - VISU_ScalarMapPL::ShallowCopy(thePipeLine); + Superclass::ShallowCopy(thePipeLine); } void VISU_CutPlanesPL ::Init() { - VISU_ScalarMapPL::Init(); + Superclass::Init(); SetNbParts(10); myBasePlane[0] = YZ; @@ -110,7 +110,7 @@ VISU_CutPlanesPL CutWithPlanes(myAppendPolyData,aDataSet,myNbParts,aDir,aBounds, myPartPosition,myPartCondition,myDisplacement[0]); - VISU_ScalarMapPL::Update(); + Superclass::Update(); } void diff --git a/src/PIPELINE/VISU_CutPlanesPL.hxx b/src/PIPELINE/VISU_CutPlanesPL.hxx index cea06cb2..671a5330 100644 --- a/src/PIPELINE/VISU_CutPlanesPL.hxx +++ b/src/PIPELINE/VISU_CutPlanesPL.hxx @@ -27,18 +27,18 @@ #ifndef VISU_CutPlanesPL_HeaderFile #define VISU_CutPlanesPL_HeaderFile -#include "VISU_ScalarMapPL.hxx" +#include "VISU_PrsMergerPL.hxx" #include class vtkAppendPolyData; -class VISU_CutPlanesPL : public VISU_ScalarMapPL{ +class VISU_CutPlanesPL : public VISU_PrsMergerPL{ protected: VISU_CutPlanesPL(); VISU_CutPlanesPL(const VISU_CutPlanesPL&); public: - vtkTypeMacro(VISU_CutPlanesPL,VISU_ScalarMapPL); + vtkTypeMacro(VISU_CutPlanesPL,VISU_PrsMergerPL); static VISU_CutPlanesPL* New(); virtual diff --git a/src/PIPELINE/VISU_DeformedShapePL.cxx b/src/PIPELINE/VISU_DeformedShapePL.cxx index 43314db9..0a69dc9b 100644 --- a/src/PIPELINE/VISU_DeformedShapePL.cxx +++ b/src/PIPELINE/VISU_DeformedShapePL.cxx @@ -57,7 +57,7 @@ VISU_DeformedShapePL if(VISU_DeformedShapePL *aPipeLine = dynamic_cast(thePipeLine)){ SetScale(aPipeLine->GetScale()); } - VISU_ScalarMapPL::ShallowCopy(thePipeLine); + TSupperClass::ShallowCopy(thePipeLine); } vtkFloatingPointType @@ -103,11 +103,12 @@ void VISU_DeformedShapePL ::Init() { - VISU_ScalarMapPL::Init(); + TSupperClass::Init(); vtkFloatingPointType aScalarRange[2]; GetSourceRange(aScalarRange); vtkDataSet* aDataSet = GetInput2(); + //vtkDataSet* aDataSet = GetScalars()->GetInput(); vtkFloatingPointType aScaleFactor = VISU_DeformedShapePL::GetScaleFactor( aDataSet ); static double EPS = 1.0 / VTK_LARGE_FLOAT; @@ -129,14 +130,14 @@ void VISU_DeformedShapePL ::Update() { - VISU_ScalarMapPL::Update(); + TSupperClass::Update(); } void VISU_DeformedShapePL ::SetMapScale(vtkFloatingPointType theMapScale) { - VISU_ScalarMapPL::SetMapScale(theMapScale); + TSupperClass::SetMapScale(theMapScale); myWarpVector->SetScaleFactor(myScaleFactor*theMapScale); Modified(); diff --git a/src/PIPELINE/VISU_DeformedShapePL.hxx b/src/PIPELINE/VISU_DeformedShapePL.hxx index 96c3d0eb..4cb3aa8b 100644 --- a/src/PIPELINE/VISU_DeformedShapePL.hxx +++ b/src/PIPELINE/VISU_DeformedShapePL.hxx @@ -27,14 +27,16 @@ #ifndef VISU_DeformedShapePL_HeaderFile #define VISU_DeformedShapePL_HeaderFile -#include "VISU_ScalarMapPL.hxx" +#include "VISU_PrsMergerPL.hxx" class vtkCellDataToPointData; class SALOME_Transform; class vtkWarpVector; -class VISU_DeformedShapePL : public VISU_ScalarMapPL +class VISU_DeformedShapePL : public VISU_PrsMergerPL { + typedef VISU_PrsMergerPL TSupperClass; + protected: VISU_DeformedShapePL(); VISU_DeformedShapePL(const VISU_DeformedShapePL&); @@ -43,7 +45,7 @@ protected: ~VISU_DeformedShapePL(); public: - vtkTypeMacro(VISU_DeformedShapePL,VISU_ScalarMapPL); + vtkTypeMacro(VISU_DeformedShapePL,TSupperClass); static VISU_DeformedShapePL* diff --git a/src/PIPELINE/VISU_IsoSurfacesPL.cxx b/src/PIPELINE/VISU_IsoSurfacesPL.cxx index 2d0be6cc..c8b9eaea 100644 --- a/src/PIPELINE/VISU_IsoSurfacesPL.cxx +++ b/src/PIPELINE/VISU_IsoSurfacesPL.cxx @@ -60,7 +60,7 @@ VISU_IsoSurfacesPL vtkFloatingPointType aRange[2] = {aPipeLine->GetMin(), aPipeLine->GetMax()}; SetRange(aRange); } - VISU_ScalarMapPL::ShallowCopy(thePipeLine); + TSupperClass::ShallowCopy(thePipeLine); } int @@ -82,7 +82,7 @@ void VISU_IsoSurfacesPL ::SetScaling(int theScaling) { - VISU_ScalarMapPL::SetScaling(theScaling); + TSupperClass::SetScaling(theScaling); SetRange(myRange); } void @@ -118,7 +118,7 @@ void VISU_IsoSurfacesPL ::Init() { - VISU_ScalarMapPL::Init(); + TSupperClass::Init(); SetNbParts(10); vtkFloatingPointType aScalarRange[2]; @@ -139,14 +139,14 @@ void VISU_IsoSurfacesPL ::Update() { - VISU_ScalarMapPL::Update(); + TSupperClass::Update(); } void VISU_IsoSurfacesPL ::SetMapScale(vtkFloatingPointType theMapScale) { - VISU_ScalarMapPL::SetMapScale(theMapScale); + TSupperClass::SetMapScale(theMapScale); vtkFloatingPointType aRange[2] = {GetMax() - theMapScale*(GetMax()-GetMin()), GetMax()}; vtkFloatingPointType aNewRange[2] = {aRange[0], aRange[1]}; diff --git a/src/PIPELINE/VISU_IsoSurfacesPL.hxx b/src/PIPELINE/VISU_IsoSurfacesPL.hxx index 2049a761..bd29bbb9 100644 --- a/src/PIPELINE/VISU_IsoSurfacesPL.hxx +++ b/src/PIPELINE/VISU_IsoSurfacesPL.hxx @@ -27,13 +27,15 @@ #ifndef VISU_IsoSurfacesPL_HeaderFile #define VISU_IsoSurfacesPL_HeaderFile -#include "VISU_ScalarMapPL.hxx" +#include "VISU_PrsMergerPL.hxx" class vtkContourFilter; class vtkCellDataToPointData; -class VISU_IsoSurfacesPL : public VISU_ScalarMapPL +class VISU_IsoSurfacesPL : public VISU_PrsMergerPL { + typedef VISU_ScalarMapPL TSupperClass; + protected: VISU_IsoSurfacesPL(); VISU_IsoSurfacesPL(const VISU_IsoSurfacesPL&); @@ -42,7 +44,7 @@ protected: ~VISU_IsoSurfacesPL(); public: - vtkTypeMacro(VISU_IsoSurfacesPL,VISU_ScalarMapPL); + vtkTypeMacro(VISU_IsoSurfacesPL,TSupperClass); static VISU_IsoSurfacesPL* diff --git a/src/PIPELINE/VISU_Plot3DPL.cxx b/src/PIPELINE/VISU_Plot3DPL.cxx index 2b87e56f..e5de36c4 100644 --- a/src/PIPELINE/VISU_Plot3DPL.cxx +++ b/src/PIPELINE/VISU_Plot3DPL.cxx @@ -77,7 +77,7 @@ ShallowCopy(VISU_PipeLine *thePipeLine) SetContourPrs( aPipeLine->GetIsContourPrs() ); SetNumberOfContours( aPipeLine->GetNumberOfContours() ); } - VISU_ScalarMapPL::ShallowCopy(thePipeLine); + TSupperClass::ShallowCopy(thePipeLine); } VISU_CutPlanesPL::PlaneOrientation @@ -133,7 +133,7 @@ void VISU_Plot3DPL:: Init() { - VISU_ScalarMapPL::Init(); + TSupperClass::Init(); myOrientation = GetOrientation(GetInput2()); SetScaleFactor(GetScaleFactor(GetInput2())); @@ -213,7 +213,7 @@ Update() myWarpScalar->SetNormal(aPlaneNormal); - VISU_ScalarMapPL::Update(); + TSupperClass::Update(); } void @@ -388,7 +388,7 @@ void VISU_Plot3DPL::GetMinMaxPosition( vtkFloatingPointType& minPos, void VISU_Plot3DPL::SetMapScale(vtkFloatingPointType theMapScale) { - VISU_ScalarMapPL::SetMapScale(theMapScale); + TSupperClass::SetMapScale(theMapScale); if ( myIsContour ) { vtkFloatingPointType aRange[2]; diff --git a/src/PIPELINE/VISU_Plot3DPL.hxx b/src/PIPELINE/VISU_Plot3DPL.hxx index cb237fa7..59012133 100644 --- a/src/PIPELINE/VISU_Plot3DPL.hxx +++ b/src/PIPELINE/VISU_Plot3DPL.hxx @@ -27,7 +27,7 @@ #ifndef VISU_Plot3DPL_HeaderFile #define VISU_Plot3DPL_HeaderFile -#include "VISU_ScalarMapPL.hxx" +#include "VISU_PrsMergerPL.hxx" #include "VISU_CutPlanesPL.hxx" class vtkWarpScalar; @@ -35,13 +35,14 @@ class vtkContourFilter; class vtkGeometryFilter; class vtkCellDataToPointData; -class VISU_Plot3DPL : public VISU_ScalarMapPL{ +class VISU_Plot3DPL : public VISU_PrsMergerPL{ + typedef VISU_ScalarMapPL TSupperClass; protected: VISU_Plot3DPL(); VISU_Plot3DPL(const VISU_Plot3DPL&); public: - vtkTypeMacro(VISU_Plot3DPL,VISU_ScalarMapPL); + vtkTypeMacro(VISU_Plot3DPL,TSupperClass); static VISU_Plot3DPL* New(); virtual ~VISU_Plot3DPL(); diff --git a/src/PIPELINE/VISU_ScalarMapOnDeformedShapePL.cxx b/src/PIPELINE/VISU_ScalarMapOnDeformedShapePL.cxx index 16759ec6..41dd9936 100644 --- a/src/PIPELINE/VISU_ScalarMapOnDeformedShapePL.cxx +++ b/src/PIPELINE/VISU_ScalarMapOnDeformedShapePL.cxx @@ -84,7 +84,7 @@ void VISU_ScalarMapOnDeformedShapePL ::Init() { - if (GetScalars() == NULL) SetScalars(GetInput2()); + if (GetScalarsUnstructuredGrid() == NULL) SetScalars(GetInput2()); Superclass::Init(); @@ -173,7 +173,7 @@ VISU_ScalarMapOnDeformedShapePL VISU_ScalarMapOnDeformedShapePL *aPipeLine = dynamic_cast(thePipeLine); if(aPipeLine){ SetScale(aPipeLine->GetScale()); - SetScalars(aPipeLine->GetScalars()); + SetScalars(aPipeLine->GetScalarsUnstructuredGrid()); vtkFloatingPointType aRange[2]; aPipeLine->GetSourceRange(aRange); SetScalarRange(aRange); @@ -190,7 +190,7 @@ VISU_ScalarMapOnDeformedShapePL ::SetScalars(vtkDataSet *theScalars) { myScalars = theScalars; - vtkUnstructuredGrid* aScalars = GetScalars(); + vtkUnstructuredGrid* aScalars = GetScalarsUnstructuredGrid(); vtkCellData *aInCellData = GetInput()->GetCellData(); if(aScalars->GetPointData()->GetScalars()) @@ -215,7 +215,7 @@ VISU_ScalarMapOnDeformedShapePL */ vtkUnstructuredGrid* VISU_ScalarMapOnDeformedShapePL -::GetScalars() +::GetScalarsUnstructuredGrid() { return myScalars.GetPointer(); } diff --git a/src/PIPELINE/VISU_ScalarMapOnDeformedShapePL.hxx b/src/PIPELINE/VISU_ScalarMapOnDeformedShapePL.hxx index 66553b30..7e537df6 100644 --- a/src/PIPELINE/VISU_ScalarMapOnDeformedShapePL.hxx +++ b/src/PIPELINE/VISU_ScalarMapOnDeformedShapePL.hxx @@ -27,7 +27,7 @@ #ifndef VISU_ScalarMapOnDeformedShapePL_HeaderFile #define VISU_ScalarMapOnDeformedShapePL_HeaderFile -#include "VISU_ScalarMapPL.hxx" +#include "VISU_PrsMergerPL.hxx" class vtkMergeFilter; class vtkWarpVector; @@ -35,7 +35,7 @@ class vtkUnstructuredGrid; class vtkCellDataToPointData; class vtkPointDataToCellData; -class VISU_ScalarMapOnDeformedShapePL : public VISU_ScalarMapPL +class VISU_ScalarMapOnDeformedShapePL : public VISU_PrsMergerPL { protected: VISU_ScalarMapOnDeformedShapePL(); @@ -44,7 +44,7 @@ protected: VISU_ScalarMapOnDeformedShapePL(const VISU_ScalarMapOnDeformedShapePL&); public: - vtkTypeMacro(VISU_ScalarMapOnDeformedShapePL,VISU_ScalarMapPL); + vtkTypeMacro(VISU_ScalarMapOnDeformedShapePL,VISU_PrsMergerPL); static VISU_ScalarMapOnDeformedShapePL* New(); @@ -59,7 +59,7 @@ public: virtual void GetSourceRange(vtkFloatingPointType theRange[2]); virtual void SetScalars(vtkDataSet *theScalars); - virtual vtkUnstructuredGrid* GetScalars(); + virtual vtkUnstructuredGrid* GetScalarsUnstructuredGrid(); public: //! Redefined method for initialization of the pipeline. diff --git a/src/PIPELINE/VISU_StreamLinesPL.cxx b/src/PIPELINE/VISU_StreamLinesPL.cxx index b1f7471c..cea287a7 100644 --- a/src/PIPELINE/VISU_StreamLinesPL.cxx +++ b/src/PIPELINE/VISU_StreamLinesPL.cxx @@ -494,7 +494,7 @@ void VISU_StreamLinesPL ::Init() { - VISU_ScalarMapPL::Init(); + VISU_PrsMergerPL::Init(); vtkPointSet* aDataSet = myExtractor->GetOutput(); vtkFloatingPointType anIntStep = GetBaseIntegrationStep(aDataSet); vtkFloatingPointType aPropagationTime = GetBasePropagationTime(aDataSet); @@ -519,7 +519,7 @@ void VISU_StreamLinesPL ::Update() { - VISU_ScalarMapPL::Update(); + VISU_PrsMergerPL::Update(); } void diff --git a/src/VISU_I/VISU_CutLines_i.cc b/src/VISU_I/VISU_CutLines_i.cc index a44b5216..5115bbb8 100644 --- a/src/VISU_I/VISU_CutLines_i.cc +++ b/src/VISU_I/VISU_CutLines_i.cc @@ -50,7 +50,7 @@ static int MYDEBUG = 0; int VISU::CutLines_i::IsPossible(Result_i* theResult, const char* theMeshName, VISU::Entity theEntity, const char* theFieldName, int theIteration, int isMemoryCheck) { - return VISU::ScalarMap_i::IsPossible(theResult,theMeshName,theEntity,theFieldName,theIteration,isMemoryCheck); + return TSuperClass::IsPossible(theResult,theMeshName,theEntity,theFieldName,theIteration,isMemoryCheck); } int VISU::CutLines_i::myNbPresent = 0; @@ -67,6 +67,7 @@ CutLines_i(Result_i* theResult, Prs3d_i(theResult,theAddToStudy), ColoredPrs3d_i(theResult,theAddToStudy), ScalarMap_i(theResult,theAddToStudy), + TSuperClass(theResult,theAddToStudy), myCutLinesPL(NULL) {} @@ -78,6 +79,7 @@ CutLines_i(Result_i* theResult, Prs3d_i(theResult,theSObject), ColoredPrs3d_i(theResult,theSObject), ScalarMap_i(theResult,theSObject), + TSuperClass(theResult,theSObject), myCutLinesPL(NULL) { } @@ -93,7 +95,7 @@ void VISU::CutLines_i::CopyCurvesInverted(const TCurvesInv& theCurves){ VISU::Storable* VISU::CutLines_i::Create(const char* theMeshName, VISU::Entity theEntity, const char* theFieldName, int theIteration) { - return ScalarMap_i::Create(theMeshName,theEntity,theFieldName,theIteration); + return TSuperClass::Create(theMeshName,theEntity,theFieldName,theIteration); } @@ -140,7 +142,7 @@ VISU::Storable* VISU::CutLines_i::Restore(const Storable::TRestoringMap& theMap) void VISU::CutLines_i::ToStream(std::ostringstream& theStr){ - ScalarMap_i::ToStream(theStr); + TSuperClass::ToStream(theStr); int aNbLines = GetNbLines(); @@ -304,14 +306,14 @@ void VISU::CutLines_i::DoHook(){ if(!myPipeLine) myPipeLine = VISU_CutLinesPL::New(); myCutLinesPL = dynamic_cast(myPipeLine); - ScalarMap_i::DoHook(); + TSuperClass::DoHook(); } VISU_Actor* VISU::CutLines_i ::CreateActor(const Handle(SALOME_InteractiveObject)& theIO) { - if(VISU_Actor* anActor = ScalarMap_i::CreateActor(theIO)){ + if(VISU_Actor* anActor = TSuperClass::CreateActor(theIO)){ anActor->SetVTKMapping(true); SUIT_ResourceMgr* aResourceMgr = VISU::GetResourceMgr(); int aDispMode = aResourceMgr->integerValue("VISU" , "cut_lines_represent", 2); diff --git a/src/VISU_I/VISU_CutLines_i.hh b/src/VISU_I/VISU_CutLines_i.hh index 6464d210..2c56f044 100644 --- a/src/VISU_I/VISU_CutLines_i.hh +++ b/src/VISU_I/VISU_CutLines_i.hh @@ -27,20 +27,20 @@ #ifndef VISU_CutLines_i_HeaderFile #define VISU_CutLines_i_HeaderFile -#include "VISU_ScalarMap_i.hh" +#include "VISU_PrsMerger_i.hh" class VISU_CutLinesPL; namespace VISU{ class CutLines_i : public virtual POA_VISU::CutLines, - public virtual ScalarMap_i + public virtual PrsMerger_i { static int myNbPresent; CutLines_i(); CutLines_i(const CutLines_i&); public: - typedef ScalarMap_i TSuperClass; + typedef PrsMerger_i TSuperClass; explicit CutLines_i(Result_i* theResult, diff --git a/src/VISU_I/VISU_CutPlanes_i.cc b/src/VISU_I/VISU_CutPlanes_i.cc index c4b952e5..21afcb42 100644 --- a/src/VISU_I/VISU_CutPlanes_i.cc +++ b/src/VISU_I/VISU_CutPlanes_i.cc @@ -43,7 +43,7 @@ static int MYDEBUG = 0; int VISU::CutPlanes_i::IsPossible(Result_i* theResult, const char* theMeshName, VISU::Entity theEntity, const char* theFieldName, int theIteration, int isMemoryCheck) { - return VISU::ScalarMap_i::IsPossible(theResult,theMeshName,theEntity,theFieldName,theIteration,isMemoryCheck); + return TSuperClass::IsPossible(theResult,theMeshName,theEntity,theFieldName,theIteration,isMemoryCheck); } @@ -62,6 +62,7 @@ CutPlanes_i(Result_i* theResult, Prs3d_i(theResult,theAddToStudy), ColoredPrs3d_i(theResult,theAddToStudy), ScalarMap_i(theResult,theAddToStudy), + TSuperClass(theResult,theAddToStudy), myCutPlanesPL(NULL) {} @@ -73,6 +74,7 @@ CutPlanes_i(Result_i* theResult, Prs3d_i(theResult,theSObject), ColoredPrs3d_i(theResult,theSObject), ScalarMap_i(theResult,theSObject), + TSuperClass(theResult,theSObject), myCutPlanesPL(NULL) { } @@ -81,7 +83,7 @@ CutPlanes_i(Result_i* theResult, VISU::Storable* VISU::CutPlanes_i::Create(const char* theMeshName, VISU::Entity theEntity, const char* theFieldName, int theIteration) { - return ScalarMap_i::Create(theMeshName,theEntity,theFieldName,theIteration); + return TSuperClass::Create(theMeshName,theEntity,theFieldName,theIteration); } @@ -105,7 +107,7 @@ VISU::Storable* VISU::CutPlanes_i::Restore(const Storable::TRestoringMap& theMap void VISU::CutPlanes_i::ToStream(std::ostringstream& theStr){ - ScalarMap_i::ToStream(theStr); + TSuperClass::ToStream(theStr); Storable::DataToStream( theStr, "myNbPlanes", int(GetNbPlanes())); Storable::DataToStream( theStr, "myDisplacement", GetDisplacement()); @@ -182,14 +184,14 @@ void VISU::CutPlanes_i::DoHook(){ if(!myPipeLine) myPipeLine = VISU_CutPlanesPL::New(); myCutPlanesPL = dynamic_cast(myPipeLine); - ScalarMap_i::DoHook(); + TSuperClass::DoHook(); } VISU_Actor* VISU::CutPlanes_i ::CreateActor(const Handle(SALOME_InteractiveObject)& theIO) { - if(VISU_Actor* anActor = ScalarMap_i::CreateActor(theIO)){ + if(VISU_Actor* anActor = TSuperClass::CreateActor(theIO)){ anActor->SetVTKMapping(true); SUIT_ResourceMgr* aResourceMgr = VISU::GetResourceMgr(); int aDispMode = aResourceMgr->integerValue("VISU" , "cut_planes_represent", 1); diff --git a/src/VISU_I/VISU_CutPlanes_i.hh b/src/VISU_I/VISU_CutPlanes_i.hh index de65dbb7..e4a86664 100644 --- a/src/VISU_I/VISU_CutPlanes_i.hh +++ b/src/VISU_I/VISU_CutPlanes_i.hh @@ -27,20 +27,20 @@ #ifndef VISU_CutPlanes_i_HeaderFile #define VISU_CutPlanes_i_HeaderFile -#include "VISU_ScalarMap_i.hh" +#include "VISU_PrsMerger_i.hh" class VISU_CutPlanesPL; namespace VISU{ class CutPlanes_i : public virtual POA_VISU::CutPlanes, - public virtual ScalarMap_i + public virtual PrsMerger_i { static int myNbPresent; CutPlanes_i(); CutPlanes_i(const CutPlanes_i&); public: - typedef ScalarMap_i TSuperClass; + typedef PrsMerger_i TSuperClass; explicit CutPlanes_i(Result_i* theResult, diff --git a/src/VISU_I/VISU_DeformedShape_i.cc b/src/VISU_I/VISU_DeformedShape_i.cc index 8c2920dc..ec2a1750 100644 --- a/src/VISU_I/VISU_DeformedShape_i.cc +++ b/src/VISU_I/VISU_DeformedShape_i.cc @@ -49,7 +49,7 @@ int VISU::DeformedShape_i::IsPossible(Result_i* theResult, const char* theMeshNa const char* theFieldName, int theIteration, int isMemoryCheck) { try{ - if(!VISU::ScalarMap_i::IsPossible(theResult,theMeshName,theEntity,theFieldName,theIteration,isMemoryCheck)) return 0; + if(!TSuperClass::IsPossible(theResult,theMeshName,theEntity,theFieldName,theIteration,isMemoryCheck)) return 0; const VISU::PField aField = theResult->GetInput()->GetField(theMeshName,(VISU::TEntity)theEntity,theFieldName); return aField->myNbComp > 1; }catch(std::exception& exc){ @@ -74,6 +74,7 @@ DeformedShape_i(Result_i* theResult, Prs3d_i(theResult,theAddToStudy), ColoredPrs3d_i(theResult,theAddToStudy), ScalarMap_i(theResult,theAddToStudy), + TSuperClass(theResult,theAddToStudy), myDeformedShapePL(NULL) { if(MYDEBUG) MESSAGE("DeformedShape_i::DeformedShape_i"); @@ -87,6 +88,7 @@ DeformedShape_i(Result_i* theResult, Prs3d_i(theResult,theSObject), ColoredPrs3d_i(theResult,theSObject), ScalarMap_i(theResult,theSObject), + TSuperClass(theResult,theSObject), myDeformedShapePL(NULL) { if(MYDEBUG) MESSAGE("DeformedShape_i::DeformedShape_i"); @@ -110,7 +112,7 @@ VISU::Storable* VISU::DeformedShape_i::Create(const char* theMeshName, VISU::Ent { myIsColored = false; myColor.R = myColor.G = myColor.B = 0.5; - return ScalarMap_i::Create(theMeshName,theEntity,theFieldName,theIteration); + return TSuperClass::Create(theMeshName,theEntity,theFieldName,theIteration); } @@ -129,7 +131,7 @@ VISU::Storable* VISU::DeformedShape_i::Restore(const Storable::TRestoringMap& th void VISU::DeformedShape_i::ToStream(std::ostringstream& theStr){ - ScalarMap_i::ToStream(theStr); + TSuperClass::ToStream(theStr); Storable::DataToStream( theStr, "myFactor", GetScale() ); @@ -158,7 +160,7 @@ void VISU::DeformedShape_i::DoHook(){ myDeformedShapePL = dynamic_cast(myPipeLine); myPipeLine->GetMapper()->SetScalarVisibility(IsColored()); - ScalarMap_i::DoHook(); + TSuperClass::DoHook(); } @@ -171,7 +173,7 @@ VISU_Actor* VISU::DeformedShape_i ::CreateActor(const Handle(SALOME_InteractiveObject)& theIO, bool toSupressShrinking) { - VISU_Actor* anActor = VISU::ScalarMap_i::CreateActor(theIO, true); + VISU_Actor* anActor = TSuperClass::CreateActor(theIO, true); anActor->SetVTKMapping(false); SUIT_ResourceMgr* aResourceMgr = VISU::GetResourceMgr(); int aDispMode = aResourceMgr->integerValue("VISU", "deformed_shape_represent", 1); @@ -199,6 +201,6 @@ void VISU::DeformedShape_i::UpdateActor(VISU_Actor* theActor) { myPipeLine->GetMapper()->SetScalarVisibility(0); anActor->GetProperty()->SetColor(myColor.R,myColor.G,myColor.B); } - VISU::ScalarMap_i::UpdateActor(theActor); + TSuperClass::UpdateActor(theActor); } } diff --git a/src/VISU_I/VISU_DeformedShape_i.hh b/src/VISU_I/VISU_DeformedShape_i.hh index 42854699..5cbaee01 100644 --- a/src/VISU_I/VISU_DeformedShape_i.hh +++ b/src/VISU_I/VISU_DeformedShape_i.hh @@ -27,20 +27,20 @@ #ifndef VISU_DeformedShape_i_HeaderFile #define VISU_DeformedShape_i_HeaderFile -#include "VISU_ScalarMap_i.hh" +#include "VISU_PrsMerger_i.hh" class VISU_DeformedShapePL; namespace VISU{ class DeformedShape_i : public virtual POA_VISU::DeformedShape, - public virtual ScalarMap_i + public virtual PrsMerger_i { static int myNbPresent; DeformedShape_i(); DeformedShape_i(const DeformedShape_i&); public: - typedef ScalarMap_i TSuperClass; + typedef PrsMerger_i TSuperClass; explicit DeformedShape_i(Result_i* theResult, diff --git a/src/VISU_I/VISU_IsoSurfaces_i.cc b/src/VISU_I/VISU_IsoSurfaces_i.cc index 0f0077bc..9b7cf0bf 100644 --- a/src/VISU_I/VISU_IsoSurfaces_i.cc +++ b/src/VISU_I/VISU_IsoSurfaces_i.cc @@ -43,7 +43,7 @@ static int MYDEBUG = 0; int VISU::IsoSurfaces_i::IsPossible(Result_i* theResult, const char* theMeshName, VISU::Entity theEntity, const char* theFieldName, int theIteration, int isMemoryCheck) { - return VISU::ScalarMap_i::IsPossible(theResult,theMeshName,theEntity,theFieldName,theIteration,isMemoryCheck); + return TSuperClass::IsPossible(theResult,theMeshName,theEntity,theFieldName,theIteration,isMemoryCheck); } int VISU::IsoSurfaces_i::myNbPresent = 0; @@ -60,6 +60,7 @@ IsoSurfaces_i(Result_i* theResult, Prs3d_i(theResult,theAddToStudy), ColoredPrs3d_i(theResult,theAddToStudy), ScalarMap_i(theResult,theAddToStudy), + TSuperClass(theResult,theAddToStudy), myIsoSurfacesPL(NULL) {} @@ -71,6 +72,7 @@ IsoSurfaces_i(Result_i* theResult, Prs3d_i(theResult,theSObject), ColoredPrs3d_i(theResult,theSObject), ScalarMap_i(theResult,theSObject), + TSuperClass(theResult,theSObject), myIsoSurfacesPL(NULL) { } @@ -79,7 +81,7 @@ IsoSurfaces_i(Result_i* theResult, VISU::Storable* VISU::IsoSurfaces_i::Create(const char* theMeshName, VISU::Entity theEntity, const char* theFieldName, int theIteration) { - return ScalarMap_i::Create(theMeshName,theEntity,theFieldName,theIteration); + return TSuperClass::Create(theMeshName,theEntity,theFieldName,theIteration); } @@ -96,7 +98,7 @@ VISU::Storable* VISU::IsoSurfaces_i::Restore(const Storable::TRestoringMap& theM } void VISU::IsoSurfaces_i::ToStream(std::ostringstream& theStr){ - ScalarMap_i::ToStream(theStr); + TSuperClass::ToStream(theStr); Storable::DataToStream( theStr, "myNbSurface", int(GetNbSurfaces()) ); Storable::DataToStream( theStr, "myRange[0]", GetSubMin() ); @@ -135,7 +137,7 @@ void VISU::IsoSurfaces_i::DoHook(){ if(!myPipeLine) myPipeLine = VISU_IsoSurfacesPL::New(); myIsoSurfacesPL = dynamic_cast(myPipeLine); - ScalarMap_i::DoHook(); + TSuperClass::DoHook(); } @@ -143,7 +145,7 @@ VISU_Actor* VISU::IsoSurfaces_i ::CreateActor(const Handle(SALOME_InteractiveObject)& theIO) { - if(VISU_Actor* anActor = ScalarMap_i::CreateActor(theIO)){ + if(VISU_Actor* anActor = TSuperClass::CreateActor(theIO)){ anActor->SetVTKMapping(true); SUIT_ResourceMgr* aResourceMgr = VISU::GetResourceMgr(); int aDispMode = aResourceMgr->integerValue("VISU" , "iso_surfaces_represent", 2); diff --git a/src/VISU_I/VISU_IsoSurfaces_i.hh b/src/VISU_I/VISU_IsoSurfaces_i.hh index 56db9093..a71601d6 100644 --- a/src/VISU_I/VISU_IsoSurfaces_i.hh +++ b/src/VISU_I/VISU_IsoSurfaces_i.hh @@ -27,20 +27,20 @@ #ifndef VISU_IsoSurfaces_i_HeaderFile #define VISU_IsoSurfaces_i_HeaderFile -#include "VISU_ScalarMap_i.hh" +#include "VISU_PrsMerger_i.hh" class VISU_IsoSurfacesPL; namespace VISU{ class IsoSurfaces_i : public virtual POA_VISU::IsoSurfaces, - public virtual ScalarMap_i + public virtual PrsMerger_i { static int myNbPresent; IsoSurfaces_i(); IsoSurfaces_i(const IsoSurfaces_i&); public: - typedef ScalarMap_i TSuperClass; + typedef PrsMerger_i TSuperClass; explicit IsoSurfaces_i(Result_i* theResult, diff --git a/src/VISU_I/VISU_Plot3D_i.cc b/src/VISU_I/VISU_Plot3D_i.cc index d86ca318..fbd7b5d3 100644 --- a/src/VISU_I/VISU_Plot3D_i.cc +++ b/src/VISU_I/VISU_Plot3D_i.cc @@ -40,7 +40,7 @@ static int MYDEBUG = 0; int VISU::Plot3D_i::IsPossible(Result_i* theResult, const char* theMeshName, VISU::Entity theEntity, const char* theFieldName, int theIteration, int isMemoryCheck) { - return VISU::ScalarMap_i::IsPossible + return TSuperClass::IsPossible (theResult,theMeshName,theEntity,theFieldName,theIteration,isMemoryCheck); } @@ -57,6 +57,7 @@ VISU::Plot3D_i Prs3d_i(theResult,theAddToStudy), ColoredPrs3d_i(theResult,theAddToStudy), ScalarMap_i(theResult,theAddToStudy), + TSuperClass(theResult,theAddToStudy), myPlot3DPL(NULL) {} @@ -67,13 +68,14 @@ VISU::Plot3D_i Prs3d_i(theResult,theSObject), ColoredPrs3d_i(theResult,theSObject), ScalarMap_i(theResult,theSObject), + TSuperClass(theResult,theSObject), myPlot3DPL(NULL) {} VISU::Storable* VISU::Plot3D_i::Create (const char* theMeshName, VISU::Entity theEntity, const char* theFieldName, int theIteration) { - return ScalarMap_i::Create(theMeshName,theEntity,theFieldName,theIteration); + return TSuperClass::Create(theMeshName,theEntity,theFieldName,theIteration); } VISU::Storable* VISU::Plot3D_i::Restore (const Storable::TRestoringMap& theMap) @@ -94,7 +96,7 @@ VISU::Storable* VISU::Plot3D_i::Restore (const Storable::TRestoringMap& theMap) void VISU::Plot3D_i::ToStream (std::ostringstream& theStr) { - ScalarMap_i::ToStream(theStr); + TSuperClass::ToStream(theStr); Storable::DataToStream(theStr, "myBasePlane", int(GetOrientationType())); Storable::DataToStream(theStr, "aRot[0]", GetRotateX()); @@ -183,14 +185,14 @@ void VISU::Plot3D_i::DoHook() if (!myPipeLine) myPipeLine = VISU_Plot3DPL::New(); myPlot3DPL = dynamic_cast(myPipeLine); - ScalarMap_i::DoHook(); + TSuperClass::DoHook(); } VISU_Actor* VISU::Plot3D_i ::CreateActor(const Handle(SALOME_InteractiveObject)& theIO) { - if(VISU_Actor* anActor = ScalarMap_i::CreateActor(theIO)){ + if(VISU_Actor* anActor = TSuperClass::CreateActor(theIO)){ anActor->SetVTKMapping(true); SUIT_ResourceMgr* aResourceMgr = VISU::GetResourceMgr(); int aDispMode = aResourceMgr->integerValue("VISU", "plot3d_represent", 2); diff --git a/src/VISU_I/VISU_Plot3D_i.hh b/src/VISU_I/VISU_Plot3D_i.hh index d509b545..066a05f2 100644 --- a/src/VISU_I/VISU_Plot3D_i.hh +++ b/src/VISU_I/VISU_Plot3D_i.hh @@ -21,20 +21,20 @@ #ifndef VISU_Plot3D_i_HeaderFile #define VISU_Plot3D_i_HeaderFile -#include "VISU_ScalarMap_i.hh" +#include "VISU_PrsMerger_i.hh" class VISU_Plot3DPL; namespace VISU { class Plot3D_i : public virtual POA_VISU::Plot3D, - public virtual ScalarMap_i + public virtual PrsMerger_i { static int myNbPresent; Plot3D_i(); Plot3D_i(const Plot3D_i&); public: - typedef ScalarMap_i TSuperClass; + typedef PrsMerger_i TSuperClass; explicit Plot3D_i (Result_i* theResult, bool theAddToStudy = true); diff --git a/src/VISU_I/VISU_ScalarMapOnDeformedShape_i.cc b/src/VISU_I/VISU_ScalarMapOnDeformedShape_i.cc index 487268f8..12a430e1 100644 --- a/src/VISU_I/VISU_ScalarMapOnDeformedShape_i.cc +++ b/src/VISU_I/VISU_ScalarMapOnDeformedShape_i.cc @@ -26,7 +26,6 @@ #include "VISU_ScalarMapOnDeformedShapePL.hxx" #include "VISU_Result_i.hh" -#include "VISU_ScalarMap_i.hh" #include "VISU_ScalarMapOnDeformedShape_i.hh" #include "VISU_Convertor.hxx" #include "VISU_ScalarMapAct.h" @@ -53,7 +52,7 @@ int VISU::ScalarMapOnDeformedShape_i::IsPossible(Result_i* theResult, const char { bool aResult = false; try{ - aResult = VISU::ScalarMap_i::IsPossible(theResult,theMeshName,theEntity,theFieldName,theIteration,false); + aResult = TSuperClass::IsPossible(theResult,theMeshName,theEntity,theFieldName,theIteration,false); if(isMemoryCheck && aResult){ const VISU::PField aField = theResult->GetInput()->GetField(theMeshName,(VISU::TEntity)theEntity,theFieldName); if(aField->myNbComp <= 1) @@ -84,6 +83,7 @@ ScalarMapOnDeformedShape_i(Result_i* theResult, Prs3d_i(theResult,theAddToStudy), ColoredPrs3d_i(theResult,theAddToStudy), ScalarMap_i(theResult,theAddToStudy), + TSuperClass(theResult,theAddToStudy), myScalarMapOnDeformedShapePL(NULL), myScalarIteration(1) { @@ -96,6 +96,7 @@ ScalarMapOnDeformedShape_i(Result_i* theResult, Prs3d_i(theResult,theSObject), ColoredPrs3d_i(theResult,theSObject), ScalarMap_i(theResult,theSObject), + TSuperClass(theResult,theSObject), myScalarMapOnDeformedShapePL(NULL), myScalarIteration(1) { diff --git a/src/VISU_I/VISU_ScalarMapOnDeformedShape_i.hh b/src/VISU_I/VISU_ScalarMapOnDeformedShape_i.hh index f14c1606..4f47b250 100644 --- a/src/VISU_I/VISU_ScalarMapOnDeformedShape_i.hh +++ b/src/VISU_I/VISU_ScalarMapOnDeformedShape_i.hh @@ -27,7 +27,7 @@ #ifndef VISU_ScalarMapOnDeformedShape_i_HeaderFile #define VISU_ScalarMapOnDeformedShape_i_HeaderFile -#include "VISU_ScalarMap_i.hh" +#include "VISU_PrsMerger_i.hh" class VISU_ScalarMapOnDeformedShapePL; @@ -35,7 +35,7 @@ namespace VISU{ //! Class of Scalar Map on Deformed Shape presentation. class ScalarMapOnDeformedShape_i : public virtual POA_VISU::ScalarMapOnDeformedShape, - public virtual ScalarMap_i + public virtual PrsMerger_i { static int myNbPresent; ScalarMapOnDeformedShape_i(); @@ -43,7 +43,7 @@ namespace VISU{ public: - typedef ScalarMap_i TSuperClass; + typedef PrsMerger_i TSuperClass; explicit ScalarMapOnDeformedShape_i(Result_i* theResult, diff --git a/src/VISU_I/VISU_StreamLines_i.cc b/src/VISU_I/VISU_StreamLines_i.cc index 7aa8273b..d7be64f8 100644 --- a/src/VISU_I/VISU_StreamLines_i.cc +++ b/src/VISU_I/VISU_StreamLines_i.cc @@ -50,7 +50,7 @@ int VISU::StreamLines_i::IsPossible(Result_i* theResult, const char* theMeshName const char* theFieldName, int theIteration, int isMemoryCheck) { try{ - if(!VISU::ScalarMap_i::IsPossible(theResult,theMeshName,theEntity,theFieldName,theIteration,false)) + if(!TSuperClass::IsPossible(theResult,theMeshName,theEntity,theFieldName,theIteration,false)) return 0; VISU::PIDMapper anIDMapper = @@ -83,6 +83,7 @@ StreamLines_i(Result_i* theResult, Prs3d_i(theResult,theAddToStudy), ColoredPrs3d_i(theResult,theAddToStudy), ScalarMap_i(theResult,theAddToStudy), + PrsMerger_i(theResult,theAddToStudy), DeformedShape_i(theResult,theAddToStudy), myStreamLinesPL(NULL), myAppendFilter(vtkAppendFilter::New()) @@ -97,6 +98,7 @@ StreamLines_i(Result_i* theResult, Prs3d_i(theResult,theSObject), ColoredPrs3d_i(theResult,theSObject), ScalarMap_i(theResult,theSObject), + PrsMerger_i(theResult,theSObject), DeformedShape_i(theResult,theSObject), myStreamLinesPL(NULL), myAppendFilter(vtkAppendFilter::New()) diff --git a/src/VISU_I/VISU_Vectors_i.cc b/src/VISU_I/VISU_Vectors_i.cc index c8bd8a59..99fc94dd 100644 --- a/src/VISU_I/VISU_Vectors_i.cc +++ b/src/VISU_I/VISU_Vectors_i.cc @@ -82,6 +82,7 @@ Vectors_i(Result_i* theResult, Prs3d_i(theResult,theAddToStudy), ColoredPrs3d_i(theResult,theAddToStudy), ScalarMap_i(theResult,theAddToStudy), + PrsMerger_i(theResult,theAddToStudy), DeformedShape_i(theResult,theAddToStudy), myVectorsPL(NULL) { @@ -95,6 +96,7 @@ Vectors_i(Result_i* theResult, Prs3d_i(theResult,theSObject), ColoredPrs3d_i(theResult,theSObject), ScalarMap_i(theResult,theSObject), + PrsMerger_i(theResult,theSObject), DeformedShape_i(theResult,theSObject), myVectorsPL(NULL) { -- 2.39.2