| @@ 200-213 (lines=14) @@ | ||
| 197 | else: |
|
| 198 | simplex.remove(b) |
|
| 199 | self.direction = acd |
|
| 200 | elif(abd.isInSameDirection(aO)): |
|
| 201 | if(vector.cross(abd, ab).isInSameDirection(aO)): |
|
| 202 | simplex.remove(b) |
|
| 203 | simplex.remove(d) |
|
| 204 | self.direction = vector.cross(vector.cross(ab, aO), ab) |
|
| 205 | elif(vector.cross(ab, abd).isInSameDirection(aO)): |
|
| 206 | simplex.remove(b) |
|
| 207 | simplex.remove(c) |
|
| 208 | self.direction = vector.cross(vector.cross(ad, aO), ad) |
|
| 209 | else: |
|
| 210 | simplex.remove(c) |
|
| 211 | self.direction = abd |
|
| 212 | else: |
|
| 213 | return True |
|
| 214 | return False |
|
| 215 | ||
| 216 | ||
| @@ 142-154 (lines=13) @@ | ||
| 139 | simplex.remove(c) |
|
| 140 | self.direction = aO |
|
| 141 | else: |
|
| 142 | if (abNormal.isInSameDirection(aO)): |
|
| 143 | if(ab.isInSameDirection(aO)): |
|
| 144 | simplex.remove(c) |
|
| 145 | self.direction = vector.cross(vector.cross(ab, aO), ab) |
|
| 146 | else: |
|
| 147 | simplex.remove(b) |
|
| 148 | simplex.remove(c) |
|
| 149 | self.direction = aO |
|
| 150 | else: |
|
| 151 | if(abc.isInSameDirection(aO)): |
|
| 152 | self.direction = vector.cross(vector.cross(abc, aO), abc) |
|
| 153 | else: |
|
| 154 | self.direction = vector.cross(vector.cross(-abc, aO), -abc) |
|
| 155 | return False |
|
| 156 | ||
| 157 | def processTetrehedron(self, simplex): |
|
| @@ 189-199 (lines=11) @@ | ||
| 186 | simplex.remove(d) |
|
| 187 | self.direction = abc |
|
| 188 | elif (acd.isInSameDirection(aO)): |
|
| 189 | if (vector.cross(acd, ad).isInSameDirection(aO)): |
|
| 190 | simplex.remove(b) |
|
| 191 | simplex.remove(c) |
|
| 192 | self.direction = vector.cross(vector.cross(ad, aO), ad) |
|
| 193 | elif(vector.cross(ac, acd).isInSameDirection(aO)): |
|
| 194 | simplex.remove(b) |
|
| 195 | simplex.remove(d) |
|
| 196 | self.direction = vector.cross(vector.cross(ac, aO), ac) |
|
| 197 | else: |
|
| 198 | simplex.remove(b) |
|
| 199 | self.direction = acd |
|
| 200 | elif(abd.isInSameDirection(aO)): |
|
| 201 | if(vector.cross(abd, ab).isInSameDirection(aO)): |
|
| 202 | simplex.remove(b) |
|
| @@ 177-187 (lines=11) @@ | ||
| 174 | aO = -a |
|
| 175 | ||
| 176 | if (abc.isInSameDirection(aO)): |
|
| 177 | if (vector.cross(abc, ac).isInSameDirection(aO)): |
|
| 178 | simplex.remove(b) |
|
| 179 | simplex.remove(d) |
|
| 180 | self.direction = vector.cross(vector.cross(ac, aO), ac) |
|
| 181 | elif(vector.cross(ab, abc).isInSameDirection(aO)): |
|
| 182 | simplex.remove(c) |
|
| 183 | simplex.remove(d) |
|
| 184 | self.direction = vector.cross(vector.cross(ab, aO), ab) |
|
| 185 | else: |
|
| 186 | simplex.remove(d) |
|
| 187 | self.direction = abc |
|
| 188 | elif (acd.isInSameDirection(aO)): |
|
| 189 | if (vector.cross(acd, ad).isInSameDirection(aO)): |
|
| 190 | simplex.remove(b) |
|