def testRect(self): r1 = Rect([0, 0], [1, 1], vel=[0, 0]) r2 = Rect([0, 0, 0], [1, 1]) r3 = Rect(torch.tensor([0, 0], dtype=DTYPE), [1, 1], vel=torch.tensor([0, 0], dtype=DTYPE)) r4 = Rect(torch.tensor([0, 0, 0], dtype=DTYPE), [1, 1], vel=torch.tensor([1, 1, 1], dtype=DTYPE)) r5 = Rect([0, 0, 0], [1, 1], [0, 0, 0], mass=torch.tensor(1, dtype=DTYPE)) r1.add_no_contact(r2) r2.add_force(Gravity()) r2.apply_forces(1) r3.set_p(r3.p.new_tensor([1, 1, 1])) r4.move(0.1)
def testSlide(self): bodies = [] joints = [] r = Rect([500, 300], [900, 10]) r.v[0] = math.pi / 32 r.move(1) r.v[0] = 0. bodies.append(r) joints.append(TotalConstraint(r)) r = Rect([100, 100], [60, 60]) r.v[0] = -math.pi / 8 * 0 r.move(1) r.v[0] = 0. bodies.append(r) r.add_force(ExternalForce(down_force, multiplier=100)) # r.add_force(ExternalForce(hor_impulse, multiplier=-100)) # c = Circle([100, 150], 30) # bodies.append(c) # c.add_force(ExternalForce(gravity, multiplier=100)) # c = Circle([50, 550], 30) # c.add_force(ExternalForce(rot_impulse, multiplier=1000)) # bodies.append(c) # XXX # c = Circle([875, 100], 30) # bodies.append(c) # c.add_force(ExternalForce(gravity, multiplier=100)) recorder = None # recorder = Recorder(DT, self.screen) world = World(bodies, joints, dt=DT) run_world(world, run_time=TIME, screen=self.screen, recorder=recorder)