| Total Complexity | 14 |
| Total Lines | 46 |
| Duplicated Lines | 0 % |
| Changes | 1 | ||
| Bugs | 0 | Features | 0 |
| 1 | class cModel(object): |
||
| 2 | |||
| 3 | def __init__(self, obj): |
||
| 4 | # The following need to be "overwritten" by |
||
| 5 | # by the object class.. ie. rectangle or circle in case of 2D |
||
| 6 | self.object = obj |
||
| 7 | self.type = obj.getType() |
||
| 8 | self.cmodel = obj.getCollisionData() |
||
| 9 | |||
| 10 | def intersect(self, cother): |
||
| 11 | '''Check interesection between two colliders''' |
||
| 12 | if self.type == "AABB" and cother.getType() == "AABB": |
||
| 13 | # The following interesection test is for a AABBB |
||
| 14 | # The AABB has only 4 edges to check against |
||
| 15 | # This intersection function will be called by physics engine via physics object |
||
| 16 | # It returns a collisiondata object |
||
| 17 | # It will contains, direction, distance and state |
||
| 18 | for i in range(4): |
||
| 19 | for j in range(4): |
||
| 20 | ctemp = self.cmodel[i].IntersectAABB(cother.getCModel()[j]) |
||
| 21 | if ctemp.getState(): |
||
| 22 | print('Collision:', 'Dist:', ctemp.getDistance(), 'Dir:', ctemp.getDirection().vector) |
||
| 23 | else: |
||
| 24 | return NotImplemented |
||
| 25 | |||
| 26 | def translate(self, translation): |
||
| 27 | # This function is best called before interesction is used |
||
| 28 | # For now it takes in a vector of any size but it will only use X and Y |
||
| 29 | # If there is not translation then it doesn't make any sense to even update the matrix |
||
| 30 | if (translation.vector[0] != 0.0 and translation.vector[1] != 0.0): |
||
| 31 | self.object.translate(translation.vector[0], translation.vector[1]) |
||
| 32 | self.object.update() |
||
| 33 | |||
| 34 | self.cmodel = self.object.getCollisionData() |
||
| 35 | |||
| 36 | def getCenter(self): |
||
| 37 | return self.object.getCenter() |
||
| 38 | |||
| 39 | def getModel(self): |
||
| 40 | return self.object |
||
| 41 | |||
| 42 | def getCModel(self): |
||
| 43 | return self.cmodel |
||
| 44 | |||
| 45 | def getType(self): |
||
| 46 | return self.type |
||
| 47 |