Vector3 MapPoint01(float u, float v)
{
Vector2 uv = new Vector2(u, v);
if (mappingCache.ContainsKey(uv))
{
return(mappingCache[uv]);
}
varU.value = uMin + (uMax - uMin) * u;
varV.value = vMin + (vMax - vMin) * v;
float z = (float)expZ.Evaluate();
if (float.IsNaN(z))
{
z = 0f;
}
if (float.IsNegativeInfinity(z))
{
z = float.MinValue;
}
if (float.IsPositiveInfinity(z))
{
z = float.MaxValue;
}
Vector3 result = new Vector3(uMin + (uMax - uMin) * u, z, vMin + (vMax - vMin) * v);
ClampToBound(ref result);
//mappingCache[uv] = new Vector3(uMin + (uMax - uMin) * u, z, vMin + (vMax - vMin) * v);
mappingCache[uv] = result;
return(mappingCache[uv]);
}