Exemple #1
0
    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)
Exemple #2
0
 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)
Exemple #3
0
 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)
Exemple #4
0
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.])
Exemple #5
0
 def test_length(self):
     result = vector3.length([1., 1., 1.])
     np.testing.assert_almost_equal(result, 1.73205, decimal=5)
Exemple #6
0
 def test_length(self):
     result = vector3.length([1.,1.,1.])
     np.testing.assert_almost_equal(result, 1.73205, decimal=5)