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