}
void VISU_DeformedShapePL::ShallowCopy(VISU_PipeLine *thePipeLine){
- VISU_ScalarMapPL::ShallowCopy(thePipeLine);
if(VISU_DeformedShapePL *aPipeLine = dynamic_cast<VISU_DeformedShapePL*>(thePipeLine)){
SetScale(aPipeLine->GetScale());
}
+ VISU_ScalarMapPL::ShallowCopy(thePipeLine);
}
float VISU_DeformedShapePL::GetScaleFactor(vtkDataSet* theDataSet){
void VISU_DeformedShapePL::SetScale(float theScale) {
- if(myScaleFactor == theScale) return;
+ myWarpVector->SetScaleFactor(theScale);
myScaleFactor = theScale;
- myWarpVector->SetScaleFactor(myScaleFactor);
Modified();
}
float VISU_DeformedShapePL::GetScale() {
- return myWarpVector->GetScaleFactor();
+ return myScaleFactor;
}
void VISU_DeformedShapePL::Init(){
VISU_ScalarMapPL::Init();
float aScalarRange[2];
GetSourceRange(aScalarRange);
- SetScale(GetScaleFactor(GetInput2())/aScalarRange[1]);
+
+ vtkDataSet* aDataSet = GetInput2();
+ float aScaleFactor = VISU_DeformedShapePL::GetScaleFactor( aDataSet );
+
+ static double EPS = 1.0 / VTK_LARGE_FLOAT;
+ if(fabs(aScalarRange[1]) > EPS)
+ SetScale(aScaleFactor / aScalarRange[1]);
+ else
+ SetScale(0.0);
}
VISU_ScalarMapPL::THook* VISU_DeformedShapePL::DoHook(){