def calc_scene_bbox(self) -> None: """Calculate scene bbox""" bbox_min, bbox_max = None, None for node in self.root_nodes: bbox_min, bbox_max = node.calc_global_bbox( matrix44.create_identity(dtype='f4'), bbox_min, bbox_max) self.bbox_min = bbox_min self.bbox_max = bbox_max self.diagonal_size = vector3.length(self.bbox_max - self.bbox_min)
def test_length_batch(self): result = vector3.length([ [1., 1., 1.], [-1., -1., -1.], [0., 2., 7.], ]) expected = [ 1.73205, 1.73205, 7.28011, ] np.testing.assert_almost_equal(result, expected, decimal=5)
def test_length_batch(self): result = vector3.length([ [1.,1.,1.], [-1.,-1.,-1.], [0.,2.,7.], ]) expected = [ 1.73205, 1.73205, 7.28011, ] np.testing.assert_almost_equal(result, expected, decimal=5)
def CheckCollision1(object_1, object_2): # Check collision between game object and ball object AABB-Circle collision, and return tuple center = object_1.pos + pyrr.Vector3([object_1.Radius, object_1.Radius, 0]) aabb_half_extents = pyrr.Vector3( [object_2.size.x / 2, object_2.size.y / 2, 0]) aabb_center = object_2.pos + aabb_half_extents difference = center - aabb_center clamped = clamp(difference, -aabb_half_extents, aabb_half_extents) closest = aabb_center + clamped difference = closest - center # print(length(difference) < object_1.Radius) if length(difference) <= object_1.Radius: return True, VectorDirection(difference), difference # return length(difference) < object_1.Radius else: return False, Direction.UP, pyrr.Vector3([0., 0., 0.])
def test_length(self): result = vector3.length([1., 1., 1.]) np.testing.assert_almost_equal(result, 1.73205, decimal=5)
def test_length(self): result = vector3.length([1.,1.,1.]) np.testing.assert_almost_equal(result, 1.73205, decimal=5)