private void ApplyHandleChange(float xChange, float yChange) { float xChangeMultiplier; float yChangeMultiplier; float scaleXMultiplier; float scaleYMultiplier; GetChangeAndScaleMultipliers(out xChangeMultiplier, out yChangeMultiplier, out scaleXMultiplier, out scaleYMultiplier); IStaticPositionable positionable = SelectedObject as IStaticPositionable; PositionedObject positionedObject = SelectedObject as PositionedObject; if (positionedObject != null && positionedObject.Parent != null && positionedObject.IgnoreParentPosition == false) { positionedObject.RelativeX += xChangeMultiplier * xChange; positionedObject.RelativeY += yChangeMultiplier * yChange; } else { positionable.X += xChangeMultiplier * xChange; positionable.Y += yChangeMultiplier * yChange; } ApplyScale(xChange, yChange, scaleXMultiplier, scaleYMultiplier); }
private void UpdatePosition() { if (mHighlightedObject is IStaticPositionable) { IStaticPositionable positionable = mHighlightedObject as IStaticPositionable; mHighlightRectangle.X = positionable.X; mHighlightRectangle.Y = positionable.Y; mHighlightRectangle.Z = positionable.Z; } }
bool GetIsCursorOverGrabbedObject() { Cursor cursor = GuiManager.Cursor; if (mSelectedObject is IClickable) { return(((IClickable)mSelectedObject).HasCursorOver(GuiManager.Cursor)); } else if (mSelectedObject is Circle) { return(cursor.IsOn3D(mSelectedObject as Circle)); } else if (mSelectedObject is Polygon) { return(cursor.IsOn3D(mSelectedObject as Polygon)); } else if (mSelectedObject is AxisAlignedRectangle) { return(cursor.IsOn3D(mSelectedObject as AxisAlignedRectangle)); } else if (mSelectedObject is Text) { return(cursor.IsOn3D(mSelectedObject as Text)); } else if (mSelectedObject is Sprite) { return(cursor.IsOn3D(mSelectedObject as Sprite)); } else if (mSelectedObject is SpriteFrame) { return(cursor.IsOn3D(mSelectedObject as SpriteFrame)); } else if (mSelectedObject is IScalable && mSelectedObject is IStaticPositionable) { float cursorWorldX = cursor.WorldXAt(0); float cursorWorldY = cursor.WorldYAt(0); IStaticPositionable positionable = SelectedObject as IStaticPositionable; IScalable scalable = SelectedObject as IScalable; return(cursorWorldX > positionable.X - scalable.ScaleX && cursorWorldX < positionable.X + scalable.ScaleX && cursorWorldY > positionable.Y - scalable.ScaleY && cursorWorldY < positionable.Y + scalable.ScaleY); } return(false); }