private void CalculateBlocks()
 {
     var leftTop = new Vector2( this._location.X - this._width / 2.0f, this._location.Y - this._heigth / 2.0f );
     var rightTop = leftTop + new Vector2( this._width, 0 );
     var rightBottom = leftTop + new Vector2( this._width, this._heigth );
     var leftBottom = leftTop + new Vector2( 0, this._heigth );
     this._blockses = new[]
                          {
                              new VertexPositionTexture( leftTop.ToVector3(), this._quadrangle.LeftTop ),
                              new VertexPositionTexture( rightTop.ToVector3(), this._quadrangle.RightTop ),
                              new VertexPositionTexture( rightBottom.ToVector3(), this._quadrangle.RightBottom ),
                              new VertexPositionTexture( leftBottom.ToVector3(), this._quadrangle.LeftBottom )
                          };
 }
        public void Translate( IControl control, Vector2 translationVector )
        {
            if ( translationVector.Equal( Vector2.Zero, Constans.Epsilon ) )
            {
                return;
            }

            var translationMatrix = Matrix.CreateTranslation( translationVector.ToVector3() );
            if ( this._selectedControls.Contains( control ) )
            {
                this._selectedControls.ForEach( s => s.TranslateWithoutNotification( translationMatrix ) );
                this._selectedControls.ForEach( s => s.Invalidate() );
            }
            else
            {
                control.Translate( translationMatrix );
            }
        }
 /// <summary>
 /// Before an object is rendered, call this method with the object coordinates in the world.
 /// It updates the World matrix accordingly.
 /// </summary>
 /// <param name="position">Position of the object (in the world)</param>
 public void SetObjectPosition(Vector2 position)
 {
     World = Matrix.CreateTranslation(position.ToVector3());
 }