From ee0b2357e2a7d3c3d7415be934d9d8715dafb0f5 Mon Sep 17 00:00:00 2001 From: vsr Date: Thu, 18 Nov 2010 11:05:40 +0000 Subject: [PATCH] 0020870: EDF 1410 VISU: Anomaly in the Gauss point representation --- src/PIPELINE/VISU_ColoredPL.cxx | 9 +++++++++ src/PIPELINE/VISU_ColoredPL.hxx | 5 +++++ src/VISU_I/VISU_ColoredPrs3dCache_i.cc | 11 +++++++++++ 3 files changed, 25 insertions(+) diff --git a/src/PIPELINE/VISU_ColoredPL.cxx b/src/PIPELINE/VISU_ColoredPL.cxx index a14d401e..ec81c1fd 100644 --- a/src/PIPELINE/VISU_ColoredPL.cxx +++ b/src/PIPELINE/VISU_ColoredPL.cxx @@ -517,3 +517,12 @@ VISU_ColoredPL GetSourceRange( aRange ); SetScalarRange( aRange ); } + +//---------------------------------------------------------------------------- +void +VISU_ColoredPL +::UpdateMapperLookupTable() +{ + //rnv: This method update pointer to the myMapperTable in the MapperHolder + GetMapperHolder()->SetLookupTable(GetMapperTable()); +} diff --git a/src/PIPELINE/VISU_ColoredPL.hxx b/src/PIPELINE/VISU_ColoredPL.hxx index e5771969..a43c157e 100644 --- a/src/PIPELINE/VISU_ColoredPL.hxx +++ b/src/PIPELINE/VISU_ColoredPL.hxx @@ -141,6 +141,11 @@ public: void SetSourceRange(); + virtual + void + UpdateMapperLookupTable(); + + protected: //---------------------------------------------------------------------------- VISU_ColoredPL(); diff --git a/src/VISU_I/VISU_ColoredPrs3dCache_i.cc b/src/VISU_I/VISU_ColoredPrs3dCache_i.cc index 82ae9dfd..58357017 100644 --- a/src/VISU_I/VISU_ColoredPrs3dCache_i.cc +++ b/src/VISU_I/VISU_ColoredPrs3dCache_i.cc @@ -39,6 +39,7 @@ #include "VISU_Actor.h" #include "VISU_PipeLine.hxx" +#include "VISU_GaussPointsPL.hxx" #include "SALOME_Event.h" @@ -673,6 +674,16 @@ VISU::ColoredPrs3dCache_i aPrs3d->SameAs(thePrs); + // rnv: fix for the 20870: EDF 1410 VISU: Anomaly in the Gauss point representation. + // special case for the "Gauss Points" presentation, + // update the LookupTable in the mapper, after assign properties of the presentation + // using SameAs(...) method. + VISU::GaussPoints_i* gPoints = dynamic_cast( aPrs3d.get() ); + if(gPoints) { + ProcessVoidEvent(new TVoidMemFunEvent + (gPoints->GetSpecificPL(), &VISU_GaussPointsPL::UpdateMapperLookupTable)); + } + // special case for deformed shape VISU::DeformedShapeAndScalarMap_i* dShape = dynamic_cast( aPrs3d.get() ); -- 2.39.2