def __init__(self, pos1, pos2): pos1 = np.array(pos1) pos2 = np.array(pos2) if 0 in (pos1 - pos2): n = normalize(pos1 - pos2) self.normal = np.array([1, 1, 1]) - np.divide(n, n, where=n != 0) self.max = np.maximum(pos1, pos2) self.min = np.minimum(pos1, pos2) else: raise ParameterException( "Points not in the same axis-aligned plane.")
def get_collision_tangent(self): vel_relative = self.get_relative_velocity() return vect.normalize(vel_relative - self.get_normal_velocity())
def get_collision_tangent(self): return vect.normalize(self.p.vel - self.get_normal_velocity())
def get_collision_normal(self): return vect.normalize(self.p2.pos - self.p1.pos)
def get_collision_normal(self): return vect.normalize( np.dot(self.p.pos - self.wall.max, self.wall.normal) * self.wall.normal)