public void Draw(DetectionResult markerResult, Vector3 position) { if (!isTaken()) { if (getType() == ChessPiece.Piece.KNIGHT) { if (getPlayer() == ChessPiece.Color.BLACK) { ModelDrawer.Draw(markerResult, mModel, (int)position.X, (int)position.Y, .2, -1.5707f); //rotated by -90 degress } else { ModelDrawer.Draw(markerResult, mModel, (int)position.X, (int)position.Y, .2, 1.5707f); //rotated by 90 degress } } else if (getType() == ChessPiece.Piece.BISHOP) { if (getPlayer() == ChessPiece.Color.BLACK) { ModelDrawer.Draw(markerResult, mModel, (int)position.X, (int)position.Y, .2, -3.1414f); //rotated by -90 degress } else { ModelDrawer.Draw(markerResult, mModel, (int)position.X, (int)position.Y, .2, 0.0f); //rotated by 90 degress } } else { ModelDrawer.Draw(markerResult, mModel, (int)position.X, (int)position.Y, 0.2); } } }
public void DrawAtLocation(DetectionResult markerResult, Vector2 positionToDrawAt) { if (!isTaken()) { if (getType() == ChessPiece.Piece.KNIGHT) { if (getPlayer() == ChessPiece.Color.BLACK) { ModelDrawer.Draw(markerResult, mModel, positionToDrawAt.X, positionToDrawAt.Y, .2, -1.5707f, true); //rotated by -90 degress } else { ModelDrawer.Draw(markerResult, mModel, positionToDrawAt.X, positionToDrawAt.Y, .2, 1.5707f, true); //rotated by 90 degress } } else if (getType() == ChessPiece.Piece.BISHOP) { if (getPlayer() == ChessPiece.Color.BLACK) { ModelDrawer.Draw(markerResult, mModel, positionToDrawAt.X, positionToDrawAt.Y, .2, -3.1414f, true); //rotated by -90 degress } else { ModelDrawer.Draw(markerResult, mModel, positionToDrawAt.X, positionToDrawAt.Y, .2, 0.0f, true); //rotated by 90 degress } } else { ModelDrawer.Draw(markerResult, mModel, positionToDrawAt.X, positionToDrawAt.Y, 0.2, 0.0f, true); } } }
/// <summary> /// Method the draws out model /// </summary> /// <param name="graphics"></param> public void Draw() { if (mBoardMarker != null) //Only draw the model if the marker is found { for (int i = 0; i < 8; ++i) { for (int j = 0; j < 8; ++j) { ModelDrawer.Draw(mBoardMarker, selectModel(i, j), i, j, 0); } } } }
public void Draw() { if (mDetectionResult != null) { if ((mBoardMarker != null)) { Microsoft.Xna.Framework.Matrix boardMat = mBoardMarker.Transformation.ToXnaMatrix(), selectorMat = mDetectionResult.Transformation.ToXnaMatrix(), boardMat_inv; boardMat_inv = Microsoft.Xna.Framework.Matrix.Invert(boardMat); Vector3 position = new Vector3(0, 0, 0); Vector3 direction = new Vector3(0, -1, -1); position = Vector3.Transform(position, selectorMat * boardMat_inv); //direction = Vector3.Transform(direction, selectorMat * boardMat_inv); position = position / 31; //direction = direction / 31; //System.Diagnostics.Debug.WriteLine(position); Vector3 boardCoord = (position + direction * position.Z) + new Vector3(8.5f, 8.5f, 0); int x = (int)(boardCoord.X < 5 ? (4 - boardCoord.X) * -1 : boardCoord.X - 4), y = (int)(boardCoord.Y < 5 ? (4 - boardCoord.Y) * -1 : boardCoord.Y - 4); if ((x >= 0) && (x <= 7) && (y >= 0) && (y <= 7)) { // Selection is on board if (mPosition != new Vector2(x, y)) { // Selection has changed selectedSince = DateTime.Now; mPosition.X = x; mPosition.Y = y; mSelected = false; } else { // Selection has been held DateTime time = DateTime.Now; long elapsedTicks = time.Ticks - selectedSince.Ticks; TimeSpan elapsedSpan = new TimeSpan(elapsedTicks); if (elapsedSpan.TotalSeconds > 2.0) { // Selection has been held 1 second //mSelected = true; selectedSince = DateTime.Now; GameState state = GameState.getInstance(); state.setSelected(mPosition); } } } direction = direction * 15; ModelDrawer.DrawLine(mBoardMarker, position, position + direction); ModelDrawer.Draw(mBoardMarker, ModelSelector.getModel(ModelSelector.Pieces.RED_SQUARE), x, y, 0.2); } } }