VISU_ScalarMapPL::Update();
}
-
-static void SearchRange(vtkContourFilter* theContourFilter,
- int theNbParts,
- float theDelta,
- float theRange[2])
-{
- float aRange = theRange[0] - theDelta;
- do{
- theContourFilter->GenerateValues(theNbParts,theRange);
- theContourFilter->Update();
- static float EPS = 1.0E-3, INCREMENT = 3.0;
- theRange[0] -= EPS*theDelta;
- theDelta *= INCREMENT;
- if(aRange > theRange[0]) break;
- }while(!theContourFilter->GetOutput()->GetNumberOfPoints());
-}
-
-
void VISU_IsoSurfacesPL::SetMapScale(float theMapScale){
VISU_ScalarMapPL::SetMapScale(theMapScale);
- float aDelta = GetMax()-GetMin();
- float aRange[2] = {GetMax() - theMapScale*aDelta, GetMax()};
+ float aRange[2] = {GetMax() - theMapScale*(GetMax()-GetMin()), GetMax()};
float aNewRange[2] = {aRange[0], aRange[1]};
- ::SearchRange(myContourFilter,GetNbParts(),aDelta,aNewRange);
- //myContourFilter->GenerateValues(GetNbParts(),aNewRange);
if(GetScaling() == VTK_SCALE_LOG10)
VISU_LookupTable::ComputeLogRange(aRange,aNewRange);
+ myContourFilter->GenerateValues(GetNbParts(),aNewRange);
Modified();
}