Exemple #1
0
        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));
        }