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); }
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; } }
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); } }
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)); } }
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; }