Пример #1
0
        protected internal override void GenerateMatrix()
        {
            if (BasePath.PointCount == 0)
            {
                return;
            }

            _matrixPath.Reset();
            _matrixPath.AddPath(BasePath, true);
            _path.Reset();
            _path.AddPath(BasePath, true);

            Calculation.CalcMatrix(this, ref _baseMatrix, ref _rotatePointPos);
            //成组时,叠加矩阵
            if (GroupParant != null && GroupParant.Matrix != null)
            {
                _groupMatrix.Reset();
                _groupMatrix.Multiply(_baseMatrix);
                _groupMatrix.Multiply(GroupParant.Matrix, MatrixOrder.Append);
            }

            _matrixPath.Transform(_baseMatrix);
            _path.Transform(Matrix);
        }