1 module prova.collision.pointcollider;
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 PointCollider : Collider2D
12 {
13   ///
14   this()
15   {
16     super(Shape.POINT);
17   }
18 
19   ///
20   override Vector2 getSize()
21   {
22     return Vector2(1, 1);
23   }
24 
25   ///
26   override bool intersects(RectCollider collider)
27   {
28     return pointIntersectsRect(this, collider);
29   }
30 
31   ///
32   override bool intersects(CircleCollider collider)
33   {
34     return pointIntersectsCircle(this, collider);
35   }
36 
37   ///
38   override bool intersects(PointCollider collider)
39   {
40     return pointIntersectsPoint(this, collider);
41   }
42 
43   alias intersects = Collider2D.intersects;
44 
45   ///
46   override Vector2 resolve(PointCollider collider)
47   {
48     return resolvePointPoint(this, collider);
49   }
50 
51   ///
52   override Vector2 resolve(CircleCollider collider)
53   {
54     return resolvePointCircle(this, collider);
55   }
56 
57   ///
58   override Vector2 resolve(RectCollider collider)
59   {
60     return resolvePointRect(this, collider);
61   }
62 
63   alias resolve = Collider2D.resolve;
64 }