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