예제 #1
0
        /// <summary>
        /// Инициализирует новый экземпляр класса <see cref="ParametricCurves{T}"/> из массива объектов <see cref="ParametricCurveDistanceCompiler{T}"/>.
        /// </summary>
        /// <param name="compilers">Массив компилированных кривых.</param>
        public ParametricCurves(ParametricCurveDistanceCompiler <T>[] compilers)
        {
            var compilersCopy = new ParametricCurveDistanceCompiler <T> [compilers.Length];

            compilers.CopyTo(compilersCopy, 0);
            Compilers = compilersCopy;
        }
예제 #2
0
        /// <summary>
        /// Инициализирует новый экземпляр класса <see cref="ParametricCurves{T}"/> из коллекции объектов <see cref="ParametricCurveDistanceCompiler{T}"/>.
        /// </summary>
        /// <param name="compilers">Коллекция компилированных кривых.</param>
        public ParametricCurves(ICollection <ParametricCurveDistanceCompiler <T> > compilers)
        {
            var compilersCopy = new ParametricCurveDistanceCompiler <T> [compilers.Count];

            compilers.CopyTo(compilersCopy, 0);
            Compilers = compilersCopy;
        }
예제 #3
0
        private void InitFromArray(Point3D[] points)
        {
            _points = points;

            Compilers = new ParametricCurveDistanceCompiler <BezierCurve> [_points.Length / 3];
            for (var i = 1; i < _points.Length; i += 3)
            {
                var bezier = new BezierCurve(_points[i - 1], _points[i], _points[i + 1], _points[i + 2]);
                Compilers[i / 3] = new ParametricCurveDistanceCompiler <BezierCurve>(bezier);
            }
        }