public MovementDirectionEnum ImageRectangleHitSideBoundaries(ImageObjectShapeModel rectangleShape1, ImageObjectShapeModel rectangleShape2) { //Castle Limits var objA_x = rectangleShape1.LocationX; var objA_y = rectangleShape1.LocationY; var objA_x1 = objA_x + rectangleShape1.Width; var objA_y1 = objA_y + rectangleShape1.Height; var objB_x = rectangleShape2.LocationX; var objB_y = rectangleShape2.LocationY; var objB_x1 = objB_x + rectangleShape2.Width; var objB_y1 = objB_y + rectangleShape2.Height; var limitHit = MovementDirectionEnum.MovementClear_NoBoundariesReached; //Image hitting RIGHT Limit if ( objA_x < objB_x && objB_x < objB_x1 && objB_x1 >= objA_x1 && objA_y < objB_y && objB_y < objB_y1 && objB_y1 < objA_y1 ) { limitHit = MovementDirectionEnum.MovingRight; } //Image hitting TOP Limit if ( objA_x < objB_x && objB_x < objB_x1 && objB_x1 < objA_x1 && objA_y >= objB_y && objB_y < objB_y1 && objB_y1 < objA_y1 ) { limitHit = MovementDirectionEnum.MovingUp; } //Image hitting LEFT Limit if ( objA_x >= objB_x && objB_x < objB_x1 && objB_x1 < objA_x1 && objA_y < objB_y && objB_y < objB_y1 && objB_y1 < objA_y1 ) { limitHit = MovementDirectionEnum.MovingLeft; } //Image hitting BOTTOM Limit if ( objA_x < objB_x && objB_x < objB_x1 && objB_x1 < objA_x1 && objA_y < objB_y && objB_y < objB_y1 && objB_y1 >= objA_y1 ) { limitHit = MovementDirectionEnum.MovingDown; } return(limitHit); }
public ImageObjectShapeModel GetCanvasLocationAndDimensionsOuterLimits() { ImageObjectShapeModel imageObjectShape = new ImageObjectShapeModel() { LocationX = 30, LocationY = 20, Width = 1260, Height = 510, }; return(imageObjectShape); }
public ImageObjectShapeModel GetCanvasLocationAndDimensionsInnerLimits() { ImageObjectShapeModel imageObjectShape = new ImageObjectShapeModel() { LocationX = -195, LocationY = -70, Width = 995, Height = 340, }; return(imageObjectShape); }
public bool ImagesRectangleShapeCollisionDetected(ImageObjectShapeModel image1RectangleShape, ImageObjectShapeModel image2RectangleShape) { var objA_x = image1RectangleShape.LocationX; var objA_y = image1RectangleShape.LocationY; var objA_x1 = objA_x + image1RectangleShape.Width; var objA_y1 = objA_y - image1RectangleShape.Height; var objB_x = image2RectangleShape.LocationX; var objB_y = image2RectangleShape.LocationY; var objB_x1 = objB_x + image2RectangleShape.Width; var objB_y1 = objB_y - image2RectangleShape.Height; var ManualComparissonCase1 = false; var ManualComparissonCase2 = false; var ManualComparissonCase3 = false; var ManualComparissonCase4 = false; if ( ((objA_x <= objB_x && objB_x <= objA_x1 && objA_x1 <= objB_x1) && (objB_y >= objA_y && objA_y >= objA_y1 && objA_y1 >= objB_y1)) || ((objB_x <= objA_x && objA_x <= objA_x1 && objA_x1 <= objB_x1) && (objA_y >= objB_y && objB_y >= objA_y1 && objA_y1 >= objB_y1)) || ((objB_x <= objA_x && objA_x <= objB_x1 && objB_x1 <= objA_x1) && (objB_y >= objA_y && objA_y >= objA_y1 && objA_y1 >= objB_y1)) || ((objB_x <= objA_x && objA_x <= objA_x1 && objA_x1 <= objB_x1) && (objB_y >= objA_y && objA_y >= objB_y1 && objB_y1 >= objA_y1)) ) { ManualComparissonCase1 = true; } if ( ((objA_x <= objB_x && objB_x <= objA_x1 && objA_x1 <= objB_x1) && (objA_y >= objB_y && objB_y >= objB_y1 && objB_y1 >= objA_y1)) || ((objA_x <= objB_x && objB_x <= objB_x1 && objB_x1 <= objA_x1) && (objA_y >= objB_y && objB_y >= objA_y1 && objA_y1 >= objB_y1)) || ((objB_x <= objA_x && objA_x <= objB_x1 && objB_x1 <= objA_x1) && (objA_y >= objB_y && objB_y >= objB_y1 && objB_y1 >= objA_y1)) || ((objA_x <= objB_x && objB_x <= objB_x1 && objB_x1 <= objA_x1) && (objB_y >= objA_y && objA_y >= objB_y1 && objB_y1 >= objA_y1)) ) { ManualComparissonCase2 = true; } if ( ((objB_x <= objA_x && objA_x <= objA_x1 && objA_x1 <= objB_x1) && (objB_y >= objA_y && objA_y >= objA_y1 && objA_y1 >= objB_y1)) || ((objA_x <= objB_x && objB_x <= objB_x1 && objB_x1 <= objA_x1) && (objA_y >= objB_y && objB_y >= objB_y1 && objB_y1 >= objA_y1)) ) { ManualComparissonCase3 = true; } if ( ((objA_x <= objB_x && objB_x <= objA_x1 && objA_x1 <= objB_x1) && (objB_y >= objA_y && objA_y >= objB_y1 && objB_y1 >= objA_y1)) || ((objA_x <= objB_x && objB_x <= objA_x1 && objA_x1 <= objB_x1) && (objA_y >= objB_y && objB_y >= objA_y1 && objA_y1 >= objB_y1)) || ((objB_x <= objA_x && objA_x <= objB_x1 && objB_x1 <= objA_x1) && (objB_y >= objA_y && objA_y >= objB_y1 && objB_y1 >= objA_y1)) || ((objB_x <= objA_x && objA_x <= objB_x1 && objB_x1 <= objA_x1) && (objA_y >= objB_y && objB_y >= objA_y1 && objA_y1 >= objB_y1)) ) { ManualComparissonCase4 = true; } var rectangle1 = new Rect(image1RectangleShape.LocationX, image1RectangleShape.LocationY, image1RectangleShape.Width, image1RectangleShape.Height); var rectangle2 = new Rect(image2RectangleShape.LocationX, image2RectangleShape.LocationY, image2RectangleShape.Width, image2RectangleShape.Height); rectangle1.Intersect(rectangle2); var syntheticComparisson = false; if (rectangle1 != Rect.Empty) { syntheticComparisson = true; } if ( ManualComparissonCase1 == true || ManualComparissonCase2 == true || ManualComparissonCase3 == true || ManualComparissonCase4 == true || syntheticComparisson == true ) { return(true); } return(false); }