source: 2013/30/MiskaK/MW2(My Warfare 2)/Paranneltu Jypeli/BoundingRectangle.cs @ 4507

Revision 4507, 1.9 KB checked in by anlakane, 6 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using Jypeli;
6
7namespace Jypeli
8{
9    public struct BoundingRectangle
10    {
11        public double X;
12        public double Y;
13        public double Width;
14        public double Height;
15
16        public double Left { get { return X - Width / 2; } }
17        public double Right { get { return X + Width / 2; } }
18        public double Bottom { get { return Y - Height / 2; } }
19        public double Top { get { return Y + Height / 2; } }
20
21        public Vector Position
22        {
23            get { return new Vector( X, Y ); }
24            set { X = value.X; Y = value.Y; }
25        }
26
27        public Vector Size
28        {
29            get { return new Vector( Width, Height ); }
30            set { Width = value.X; Height = value.Y; }
31        }
32
33        public Vector TopLeft
34        {
35            get { return new Vector( X - Width / 2, Y + Height / 2 ); }
36        }
37
38        public Vector BottomRight
39        {
40            get { return new Vector( X + Width / 2, Y - Height / 2 ); }
41        }
42
43        public double DiagonalLength
44        {
45            get { return Math.Sqrt( Width * Width + Height * Height ); }
46        }
47
48        public BoundingRectangle(double x, double y, double w, double h)
49        {
50            X = x;
51            Y = y;
52            Width = w;
53            Height = h;
54        }
55
56        public BoundingRectangle( Vector topLeft, Vector bottomRight )
57        {
58            Width = bottomRight.X - topLeft.X;
59            Height = topLeft.Y - bottomRight.Y;
60            X = topLeft.X + Width / 2;
61            Y = bottomRight.Y + Height / 2;
62        }
63
64        public bool IsInside( Vector point )
65        {
66            return point.X >= Left && point.X <= Right && point.Y >= Bottom && point.Y <= Top;
67        }
68    }
69}
Note: See TracBrowser for help on using the repository browser.