public static Tensor Sample(this ITensorField field, Vector2 position) { Contract.Requires(field != null); Tensor result; field.Sample(ref position, out result); return(result); }
public static IEigenField Create(ITensorField baseField, Vector2 min, Vector2 max, uint resolution) { var major = new Vector2[resolution + 1, resolution + 1]; Parallel.For(0, resolution + 1, i => Parallel.For(0, resolution + 1, j => { var p = new Vector2(i / (float)resolution, j / (float)resolution) + (min / new Vector2(resolution, resolution)); Tensor t; baseField.Sample(ref p, out t); Vector2 majEigen, minEigen; t.EigenVectors(out majEigen, out minEigen); major[i, j] = majEigen; }) ); return(new ResampleAndRescale(major, min, max)); }