Example #1
0
        /// <summary>
        /// Called when this transform's parent changes.
        /// </summary>
        /// <param name="newParent">The new parent. May be null.</param>
        private void SetParent(Transform newParent)
        {
            var oldParent = _parent;

            if (oldParent != null)
            {
                oldParent._children.Remove(this);
                oldParent.TransformChanged        -= OnParentTransformChanged;
                oldParent.PositionManuallyChanged -= OnParentPositionChanged;
                oldParent.RotationManuallyChanged -= OnParentRotationChanged;
            }

            _parent = newParent;
            if (newParent != null)
            {
                newParent._children.Add(this);
                newParent.TransformChanged        += OnParentTransformChanged;
                newParent.PositionManuallyChanged += OnParentPositionChanged;
                newParent.RotationManuallyChanged += OnParentRotationChanged;
            }

            ParentChanged?.Invoke(this, oldParent, _parent);

            TransformChanged?.Invoke(this);
            OnPositionChanged();
        }
Example #2
0
        public void SetTransformInternal(float zoom, float xTranslation, float yTranslation)
        {
            bool transformChanged = false;

            if (_zoom != zoom)
            {
                _zoom            = zoom;
                transformChanged = true;
            }

            if (_translation.X != xTranslation || _translation.Y != xTranslation)
            {
                _translation     = new PointF(xTranslation, yTranslation);
                transformChanged = true;
            }

            if (transformChanged)
            {
                UpdateMatrices();
                TransformChanged.Raise(this, EventArgs.Empty);
                if (AdaptedControl != null)
                {
                    AdaptedControl.Invalidate();
                }
            }
        }
Example #3
0
 private void Update()
 {
     if (lastPos != transform.position || lastRot != transform.rotation || lastScale != transform.localScale)
     {
         DoCacheTransformData();
         TransformChanged?.Invoke();
     }
 }
Example #4
0
    /// <summary>
    /// Translates the handles position over the Y axis
    /// </summary>
    public void TranslateY(float pTranslation)
    {
        Vector3 pos = transform.position;

        pos.y += pTranslation;
        transform.position = pos;

        TransformChanged?.Invoke(this, new TransformChangedEventArgs(new Vector3(0, pTranslation, 0)));
    }
        public void UnityEvent_OnTransformChanged()
        {
            if (TransformChanged == null)
            {
                return;
            }

            TransformChanged.Invoke(transform);
        }
Example #6
0
        /// <summary>
        /// Used for updating the transform of a weapon
        /// </summary>
        /// <param name="slot">The weapon slot being manipulated</param>
        /// <param name="vec">The new transform vector</param>
        /// <param name="tc">Whether position or rotation are being updated</param>
        public void UpdateWeaponTransform(int slot, Vector3 vec, TransformChanged tc)
        {
            if (tc == TransformChanged.position)
            {
                Stats_Weapons.Positions[slot] = vec;
            }

            else
            {
                Stats_Weapons.Rotations[slot] = vec;
            }
        }
Example #7
0
        /// <summary>
        /// Sets the transform.
        /// </summary>
        /// <param name="newScale">The new scale.</param>
        /// <param name="newOffset">The new offset.</param>
        protected void SetTransform(double newScale, double newOffset)
        {
            // ReSharper disable CompareOfFloatsByEqualityOperator
            if (newScale == Scale && newOffset == Offset)
            {
                return;
            }
            // ReSharper restore CompareOfFloatsByEqualityOperator

            Scale  = newScale;
            Offset = newOffset;
            TransformChanged?.Invoke(this, new EventArgs());
        }
Example #8
0
        /// <summary>
        /// Sets the transform to scale and translate. The scale is applied first, so that subscribers
        /// to the TransformChanged event can change the translation constraint.</summary>
        /// <param name="xScale">X scale</param>
        /// <param name="yScale">Y scale</param>
        /// <param name="xTranslation">X translation</param>
        /// <param name="yTranslation">Y translation</param>
        public void SetTransform(float xScale, float yScale, float xTranslation, float yTranslation)
        {
            if (m_settingTransform)
            {
                return;
            }
            try
            {
                m_settingTransform = true;

                bool    transformChanged = false;
                float[] m = m_transform.Elements;

                PointF scale = EnforceConstraints ? this.ConstrainScale(new PointF(xScale, yScale)) : new PointF(xScale, yScale);
                if (m[0] != scale.X || m[3] != scale.Y)
                {
                    m_transform = new Matrix(scale.X, 0, 0, scale.Y, m_transform.OffsetX, m_transform.OffsetY);
                    OnTransformChanged(EventArgs.Empty);
                    TransformChanged.Raise(this, EventArgs.Empty);
                    transformChanged = true;
                }

                PointF translation = EnforceConstraints ? this.ConstrainTranslation(new PointF(xTranslation, yTranslation)) : new PointF(xTranslation, yTranslation);
                if (m[4] != translation.X || m[5] != translation.Y)
                {
                    m_transform = new Matrix(scale.X, 0, 0, scale.Y, translation.X, translation.Y);
                    OnTransformChanged(EventArgs.Empty);
                    TransformChanged.Raise(this, EventArgs.Empty);
                    transformChanged = true;
                }

                if (transformChanged)
                {
                    var d2dCtrl = AdaptedControl as D2dAdaptableControl;
                    if (d2dCtrl != null)
                    {
                        d2dCtrl.DrawD2d();
                    }
                    else if (AdaptedControl != null)
                    {
                        AdaptedControl.Invalidate();
                    }
                }
            }
            finally
            {
                m_settingTransform = false;
            }
        }
Example #9
0
 private void OnPositionChanged()
 {
     PositionChanged?.Invoke(Position);
     TransformChanged?.Invoke(this);
 }
Example #10
0
 private void OnParentTransformChanged(Transform obj)
 {
     TransformChanged?.Invoke(this);
 }
Example #11
0
 private void OnScalechanged()
 {
     ScaleChanged?.Invoke(Scale);
     TransformChanged?.Invoke(this);
 }
Example #12
0
 private void OnRotationChanged()
 {
     RotationChanged?.Invoke(Rotation);
     TransformChanged?.Invoke(this);
 }
 private void UpdateTransitionedTransform(TransitionSpeed transitionSpeed)
 {
     _diagramSpaceToScreenSpaceTransform = CreateTransformToScreenSpace();
     Transform = new TransitionedTransform(_diagramSpaceToScreenSpaceTransform, transitionSpeed);
     TransformChanged?.Invoke(Transform);
 }
Example #14
0
 private void RaiseTransformChanged()
 {
     TransformChanged?.Invoke(this, EventArgs.Empty);
 }