Esempio n. 1
0
        virtual public bool DoneTransformation(bool bEmitChange)
        {
            curChange.parentAfter      = GetLocalFrame(CoordSpace.SceneCoords);
            curChange.parentScaleAfter = GetLocalScale();

            // discard this transformation if nothing happened
            if (curChange.parentBefore.EpsilonEqual(curChange.parentAfter, MathUtil.ZeroTolerancef) &&
                curChange.parentScaleBefore.EpsilonEqual(curChange.parentScaleAfter, MathUtil.ZeroTolerancef))
            {
                return(false);
            }

            if (target.IsTemporary)
            {
                curChange.after      = new List <Frame3f>();
                curChange.scaleAfter = new List <Vector3f>();
                foreach (SceneObject so in curChange.childSOs)
                {
                    curChange.after.Add(so.GetLocalFrame(CoordSpace.SceneCoords));
                    curChange.scaleAfter.Add(UnityUtil.GetFreeLocalScale(so.RootGameObject));
                }
            }

            if (bEmitChange)
            {
                target.GetScene().History.PushChange(curChange, true);
            }
            curChange = null;
            return(true);
        }
 virtual public bool DoneTransformation()
 {
     curChange.parentAfter      = GetLocalFrame(CoordSpace.SceneCoords);
     curChange.parentScaleAfter = GetLocalScale();
     if (target.IsTemporary)
     {
         curChange.after      = new List <Frame3f>();
         curChange.scaleAfter = new List <Vector3f>();
         foreach (TransformableSO so in curChange.childSOs)
         {
             curChange.after.Add(so.GetLocalFrame(CoordSpace.SceneCoords));
             curChange.scaleAfter.Add(UnityUtil.GetFreeLocalScale(so.RootGameObject));
         }
     }
     target.GetScene().History.PushChange(curChange, true);
     curChange = null;
     return(true);
 }
        virtual public void BeginTransformation()
        {
            curChange                   = new TransformGizmoChange();
            curChange.parentSO          = new WeakReference(Target);
            curChange.parentBefore      = GetLocalFrame(CoordSpace.SceneCoords);
            curChange.parentScaleBefore = GetLocalScale();

            if (target.IsTemporary)
            {
                curChange.childSOs = new List <TransformableSO>();
                SceneUtil.FindAllPersistentTransformableChildren(target, curChange.childSOs);
                curChange.before      = new List <Frame3f>();
                curChange.scaleBefore = new List <Vector3f>();
                foreach (TransformableSO so in curChange.childSOs)
                {
                    curChange.before.Add(so.GetLocalFrame(CoordSpace.SceneCoords));
                    curChange.scaleBefore.Add(UnityUtil.GetFreeLocalScale(so.RootGameObject));
                }
            }
        }