add normalization bypass for nodal scalars

This commit is contained in:
Matt Larsen 2020-04-23 12:56:46 -07:00
parent 4c0a3858b2
commit 6fe4684102

@ -307,18 +307,30 @@ public:
private:
Precision MinScalar;
Precision invDeltaScalar;
bool Normalize;
public:
VTKM_CONT
NodalScalar(const vtkm::Float32& minScalar, const vtkm::Float32& maxScalar)
: MinScalar(minScalar)
{
//Make sure the we don't divide by zero on
//something like an iso-surface
if (maxScalar - MinScalar != 0.f)
invDeltaScalar = 1.f / (maxScalar - MinScalar);
Normalize = true;
if (minScalar > maxScalar)
{
// support the scalar renderer
Normalize = false;
MinScalar = 0;
invDeltaScalar = 1;
}
else
invDeltaScalar = 1.f / minScalar;
{
//Make sure the we don't divide by zero on
//something like an iso-surface
if (maxScalar - MinScalar != 0.f)
invDeltaScalar = 1.f / (maxScalar - MinScalar);
else
invDeltaScalar = 1.f / minScalar;
}
}
typedef void ControlSignature(FieldIn, FieldOut, WholeArrayIn, WholeArrayIn);
@ -338,8 +350,10 @@ public:
//Todo: one normalization
scalar = Precision(scalars.Get(indices[0]));
//normalize
scalar = (scalar - MinScalar) * invDeltaScalar;
if (Normalize)
{
scalar = (scalar - MinScalar) * invDeltaScalar;
}
}
}; //class LerpScalar