Example #1
0
        public void AddJoint(System.Drawing.Point pt)
        {
            var ptf = ParentViewport.GetLocationRate(true, new System.Drawing.PointF(pt.X, pt.Y));
            var br  = m_BlendedTransInfo.RateLocation;

            AddJoint(ptf.X - br.X, ptf.Y - br.Y);
        }
Example #2
0
        public void SetPosition(BodyOperationPart part, System.Drawing.Point pPosOrBodyOffset)
        {
            System.Drawing.PointF p = pPosOrBodyOffset;
            p = ParentViewport.GetLocationRate(IsBasedOnBackImageElement, pPosOrBodyOffset, part == BodyOperationPart.Body);
            if (part != BodyOperationPart.Body)
            {
                p.X -= m_BaseTrans.Xr;
                p.Y -= m_BaseTrans.Yr;
            }
            switch (part)
            {
            case BodyOperationPart.CornerLU:
                m_CornerVectorR[0].X = p.X; m_CornerVectorR[0].Y = p.Y; break;

            case BodyOperationPart.CornerRU:
                m_CornerVectorR[1].X = p.X; m_CornerVectorR[1].Y = p.Y; break;

            case BodyOperationPart.CornerRD:
                m_CornerVectorR[2].X = p.X; m_CornerVectorR[2].Y = p.Y; break;

            case BodyOperationPart.CornerLD:
                m_CornerVectorR[3].X = p.X; m_CornerVectorR[3].Y = p.Y; break;

            case BodyOperationPart.Body:
            {
                m_BaseTrans.Xr = p.X;
                m_BaseTrans.Yr = p.Y;
            } break;
            }
        }
Example #3
0
        public override BodyOperationPart GetPointBodyOprPart(System.Drawing.Point pt)
        {
            System.Drawing.PointF pos = pt;
            pos = ParentViewport.GetLocationRate(IsBasedOnBackImageElement, pos);
            float radius = 8.0F / ParentViewport.ViewportPtr.Width;

            if (IsInnerEditingMode)
            {
                for (int i = 0; i < 4; ++i)
                {
                    var p = new System.Drawing.PointF(m_Vectors[i].Position.X, m_Vectors[i].Position.Y);
                    p = ParentViewport.GetLocationRate(IsBasedOnBackImageElement, p);
                    double dx   = p.X - pos.X;
                    double dy   = p.Y - pos.Y;
                    double dist = System.Math.Sqrt(dx * dx + dy * dy);
                    if (dist <= radius)
                    {
                        return(VectorBodyOptParts[i]);
                    }
                }
            }
            if (BoundRectRate.Contains(pos))
            {
                return(BodyOperationPart.Body);
            }
            return(BodyOperationPart.Nothing);
        }
 public override void OnBeforeBlendedTransforms()
 {
     if (IsPreviewElement)
     {
         base.OnBeforeBlendedTransforms();
     }
     else
     {
         m_BaseTrans.RateLocation = ParentViewport.GetLocationRate(false, m_CurViewOffset);
         m_BaseTrans.RateSize     = ParentViewport.GetSizeRate(false, m_CurScaledImageSize);
     }
 }
Example #5
0
        public void MoveJoint(int index, System.Drawing.Point offset)
        {
            var ptf = ParentViewport.GetLocationRate(true, new System.Drawing.PointF(offset.X, offset.Y), true);

            if (index >= 0 && index < m_Joints.Count)
            {
                var rp = m_Joints[index].RatePos;
                rp.X += ptf.X;
                rp.Y += ptf.Y;
                m_Joints[index].RatePos = rp;
                m_Curve.SetPosition(index, new Vector3(rp.X, rp.Y, 0));
            }
        }
Example #6
0
 public override void Update(float elapsedTime, ref float curViewportTime)
 {
     base.Update(elapsedTime, ref curViewportTime);
     for (int i = 0; i < 4; ++i)
     {
         var pr     = m_BlendedTransInfo.RateLocation;
         var offset = ParentViewport.GetRateLocation(IsBasedOnBackImageElement,
                                                     new System.Drawing.PointF(pr.X + m_CornerVectorR[i].X, pr.Y + m_CornerVectorR[i].Y));
         m_Vectors[i].Position = new Vector3(offset.X, offset.Y, 0);
         m_Vectors[i].Color    = Color.White;
         var p = ParentViewport.GetLocationRate(true, new System.Drawing.PointF(m_Vectors[i].Position.X, m_Vectors[i].Position.Y));
         m_Vectors[i].TextureCoordinate = new Vector2(p.X, p.Y);
         m_LnVectors[i].Position        = m_Vectors[i].Position;
         m_LnVectors[i].Color           = Color.Yellow;
     }
     m_LnVectors[4].Position = m_Vectors[0].Position;
     m_LnVectors[4].Color    = Color.Yellow;
 }