public static gpTrsf GetRotateTrsf(Point3D rotateAngle)
        {
            var angle       = DegreesToRadians(rotateAngle.X);
            var rotateXTrsf = GetRotateXTrsf(angle);

            angle = DegreesToRadians(rotateAngle.Y);
            var rotateYTrsf = GetRotateYTrsf(angle);

            angle = DegreesToRadians(rotateAngle.Z);
            var rotateZTrsf = GetRotateZTrsf(angle);

            var rotateTrsf = new gpTrsf();

            rotateTrsf.Multiply(rotateZTrsf);
            rotateTrsf.Multiply(rotateYTrsf);
            rotateTrsf.Multiply(rotateXTrsf);
            return(rotateTrsf);
        }
        public static gpTrsf ConvertToGlobalTransformation(gpTrsf currentAxisSystem,
                                                           gpTrsf currentTransformation)
        {
            var transformedCoordinates = new gpTrsf();

            transformedCoordinates = currentAxisSystem;
            transformedCoordinates.Multiply(currentTransformation);
            transformedCoordinates.SetValues(
                1, 0, 0, transformedCoordinates.Value(1, 4),
                0, 1, 0, transformedCoordinates.Value(2, 4),
                0, 0, 1, transformedCoordinates.Value(3, 4),
                _angularPrecision, _distancePrecision
                );
            return(transformedCoordinates);
        }
        private gpTrsf ExtractNodeTransform()
        {
            if (Shape == null)
            {
                return(null);
            }
            gpTrsf transform;
            var    transformInter = Parent.Get <TransformationInterpreter>();
            var    baseTransform  = new gpTrsf();

            if (transformInter != null)
            {
                transform = transformInter.CurrTransform;
                baseTransform.Multiply(transform);
            }
            transform = baseTransform;

            return(transform);
        }
 private void ApplyMatrix(gpTrsf matrix)
 {
     _currTransform.Multiply(matrix);
 }