1 module prova.collision.rectcollider; 2 3 import prova.collision, 4 prova.collision.intersects, 5 prova.collision.resolve, 6 prova.core, 7 prova.graphics, 8 prova.math; 9 10 /// 11 class RectCollider : Collider2D 12 { 13 /// 14 float width; 15 /// 16 float height; 17 18 /// 19 this(float width, float height) 20 { 21 super(Shape.RECTANGLE); 22 this.width = width; 23 this.height = height; 24 } 25 26 /// 27 override Vector2 getSize() 28 { 29 return Vector2(width, height); 30 } 31 32 /// 33 override bool intersects(RectCollider collider) 34 { 35 return rectIntersectsRect(this, collider); 36 } 37 38 /// 39 override bool intersects(CircleCollider collider) 40 { 41 return circleIntersectsRect(collider, this); 42 } 43 44 /// 45 override bool intersects(PointCollider collider) 46 { 47 return pointIntersectsRect(collider, this); 48 } 49 50 alias intersects = Collider2D.intersects; 51 52 /// 53 override Vector2 resolve(PointCollider collider) 54 { 55 return -resolvePointRect(collider, this); 56 } 57 58 /// 59 override Vector2 resolve(CircleCollider collider) 60 { 61 return -resolveCircleRect(collider, this); 62 } 63 64 /// 65 override Vector2 resolve(RectCollider collider) 66 { 67 return resolveRectRect(this, collider); 68 } 69 70 alias resolve = Collider2D.resolve; 71 }