예제 #1
0
 private void FlipElements(BasisComponent basisComponent)
 {
     if (this.ObjectSet.RepresentativeSceneNode == null)
     {
         return;
     }
     using (SceneEditTransaction editTransaction = this.ObjectSet.RepresentativeSceneNode.ViewModel.CreateEditTransaction(StringTable.UndoUnitTransformPaneReflect))
     {
         this.ApplyRelativeTransformToElements((IEnumerable)this.ObjectSet.Objects, this.TransformProperty.Reference, (IApplyRelativeTransform) new ReflectTransform(basisComponent));
         editTransaction.Commit();
     }
 }
예제 #2
0
        protected void FlipElements(BasisComponent basisComponent, string description)
        {
            SceneElementSelectionSet elementSelectionSet = this.SceneViewModel.ElementSelectionSet;
            PropertyReference        propertyReference   = (PropertyReference)null;

            foreach (SceneElement sceneElement in elementSelectionSet.Selection)
            {
                if (sceneElement is BaseFrameworkElement || sceneElement is StyleNode)
                {
                    propertyReference = new PropertyReference((ReferenceStep)sceneElement.ProjectContext.ResolveProperty(Base2DElement.RenderTransformProperty));
                    break;
                }
                if (sceneElement is Base3DElement)
                {
                    propertyReference = new PropertyReference((ReferenceStep)sceneElement.ProjectContext.ResolveProperty((sceneElement as Base3DElement).TransformPropertyId));
                    break;
                }
            }
            if (propertyReference == null)
            {
                return;
            }
            using (SceneEditTransaction editTransaction = this.SceneViewModel.CreateEditTransaction(description))
            {
                foreach (SceneElement sceneElement in elementSelectionSet.Selection)
                {
                    object             computedValueAsWpf = sceneElement.GetComputedValueAsWpf(propertyReference);
                    object             obj = new ReflectTransform(basisComponent).ApplyRelativeTransform(computedValueAsWpf);
                    CanonicalTransform canonicalTransform = obj as CanonicalTransform;
                    if (canonicalTransform != (CanonicalTransform)null)
                    {
                        sceneElement.SetValue(propertyReference, canonicalTransform.GetPlatformTransform(sceneElement.Platform.GeometryHelper));
                        if (sceneElement.IsSet(Base2DElement.RenderTransformOriginProperty) == PropertyState.Unset)
                        {
                            sceneElement.SetValueAsWpf(Base2DElement.RenderTransformOriginProperty, (object)new Point(0.5, 0.5));
                        }
                    }
                    else
                    {
                        CanonicalTransform3D canonicalTransform3D = obj as CanonicalTransform3D;
                        if (canonicalTransform3D != (CanonicalTransform3D)null)
                        {
                            sceneElement.SetValue(propertyReference, (object)canonicalTransform3D.ToTransform());
                        }
                    }
                }
                editTransaction.Commit();
            }
        }
예제 #3
0
 public static bool ShowFunction(string userID, BasisComponent _func, params object[] paramList)
 {
     return(false);
 }
예제 #4
0
 public ReflectTransform(BasisComponent basisComponent)
 {
     this.basisComponent = basisComponent;
 }