Пример #1
0
        public void PerformOperation(MapObject mo)
        {
            var box       = mo.BoundingBox;
            var offset    = box.Start.Snap(_gridSpacing) - box.Start;
            var transform = new UnitTranslate(offset);

            mo.Transform(transform, _transformFlags);
        }
Пример #2
0
        public void PerformOperation(MapObject mo)
        {
            var current   = Extractor(mo.BoundingBox);
            var target    = Extractor(_alignBox);
            var value     = target - current;
            var translate = Creator(value);
            var transform = new UnitTranslate(translate);

            mo.Transform(transform, _transformFlags);
        }
Пример #3
0
        public void Transform()
        {
            if (_document.Selection.IsEmpty() || _document.Selection.InFaceSelection)
            {
                return;
            }
            var box = _document.Selection.GetSelectionBoundingBox();

            using (var td = new TransformDialog(box))
            {
                if (td.ShowDialog() != DialogResult.OK)
                {
                    return;
                }

                var value = td.TransformValue;
                IUnitTransformation transform = null;
                switch (td.TransformType)
                {
                case TransformType.Rotate:
                    var mov = Matrix.Translation(-box.Center);                                 // Move to zero
                    var rot = Matrix.Rotation(Quaternion.EulerAngles(value * DMath.PI / 180)); // Do rotation
                    var fin = Matrix.Translation(box.Center);                                  // Move to final origin
                    transform = new UnitMatrixMult(fin * rot * mov);
                    break;

                case TransformType.Translate:
                    transform = new UnitTranslate(value);
                    break;

                case TransformType.Scale:
                    transform = new UnitScale(value, box.Center);
                    break;
                }

                if (transform == null)
                {
                    return;
                }

                var selected = _document.Selection.GetSelectedParents();
                _document.PerformAction("Transform selection", new Edit(selected, new TransformEditOperation(transform, _document.Map.GetTransformFlags())));
            }
        }