Exemplo n.º 1
0
def make_battery(world, position=(0, 0, 0)):
    mass = Mass()
    mass.setBox(battery_density, 70, 25, 35)
    body = Body(world)
    body.setMass(mass)
    body.setPosition(position)
    return body
Exemplo n.º 2
0
def make_servo(world, position=(0, 0, 0)):
    mass = Mass()
    mass.setBox(servo_density, 40, 20, 35)
    body = Body(world)
    body.setMass(mass)
    body.setPosition(position)
    return body
Exemplo n.º 3
0
def make_lower_leg(world):
    lower_leg_mass = Mass()
    lower_leg_mass.setBox(body_density, 30, 100, 5)
    lower_leg = Body(world)
    lower_leg.setMass(lower_leg_mass)
    servo = make_servo(world)
    fix(world, lower_leg, servo)
    return lower_leg
Exemplo n.º 4
0
 def __init__(self, world, pos, size, mass):
     self.world = world
     self.pos = pos
     # Create a body inside the world
     self.body = Body(world)
     M = Mass()
     M.setSphere(2500.0, size)
     M.mass = mass
     self.body.setMass(M)
     self.body.setPosition(pos)
     # draw body
     self.rbody = sphere(pos=pos, radius=size)
Exemplo n.º 5
0
def make_body(world):
    mass = Mass()
    mass.setBox(body_density, 240, 27, 150)
    body = Body(world)
    body.setMass(mass)
    fix(world, body, make_battery(world, (0, 27 / 2, -(150 / 2 - 35 / 2))))
    fix(world, body, make_battery(world, (0, 27 / 2, 150 / 2 - 35 / 2)))
    fix(world, body, make_servo(world, (240 / 2 - 30, 0, 150 / 2)))
    fix(world, body, make_servo(world, (240 / 2 - 30, 0, -150 / 2)))
    fix(world, body, make_servo(world, (-(240 / 2 - 30), 0, 150 / 2)))
    fix(world, body, make_servo(world, (-(240 / 2 - 30), 0, -150 / 2)))
    return body
Exemplo n.º 6
0
    def __init__(self, gui):
        self.gui = gui

        self.vDHistory = []
        self.bPHistory = []

        self.th = TimeHelper()

        self.w = World()
        self.w.setGravity((0.0, 0.0, 0.0))
        self.b = Body(self.w)
        self.b.setPosition((0.0, 0.0, 0.0))

        self.lt = self.th.getTimestamp(microsec=True)
        self.lastVal = None
Exemplo n.º 7
0
 def __init__(self, world, space, pos, size, mass, color=(0.7, 0.7, 0.7)):
     self.world = world
     self.pos = pos
     # Create a body inside the world
     self.body = Body(world)
     M = Mass()
     M.setSphere(2500, size)
     M.mass = mass
     self.body.setMass(M)
     self.body.setPosition(pos)
     if space:
         # setect colisions
         self.geom = GeomSphere(space, size)
         self.geom.setBody(self.body)
     # draw body
     self.rbody = sphere(pos=pos, radius=size, color=color)
Exemplo n.º 8
0
    def addToODE(self, simulator, x0, y0, z0):
        world = simulator.getWorld()
        morphology = self.morphology

        self.bodies = {}

        for part in morphology.getParts():
            self.bodies[part] = Body(world)

        for part in self.bodies:
            self.bodies[part].setMass(morphology.getWeight(part))

        #on commence par le bas !
        self.bodies['mollet_d'].setPosition(
            morphology.getLength('largeur') / 2, 0,
            morphology.getLength('mollet') / 2)
        self.bodies['mollet_g'].setPosition(
            -morphology.getLength('largeur') / 2, 0,
            morphology.getLength('mollet') / 2)

        self.bodies['cuisse_d'].setPosition(
            morphology.getLength('largeur') / 2, 0,
            morphology.getLength('mollet') +
            morphology.getLength('cuisse') / 2)
        self.bodies['cuisse_g'].setPosition(
            -morphology.getLength('largeur') / 2, 0,
            morphology.getLength('mollet') +
            morphology.getLength('cuisse') / 2)

        self.bodies['tronc_bassin_bas'].setPosition(
            0, 0,
            morphology.getLength('mollet') + morphology.getLength('cuisse') +
            morphology.getLength('tronc_bassin_bas') / 2)
        self.bodies['tronc_bassin_haut'].setPosition(
            0, 0,
            morphology.getLength('mollet') + morphology.getLength('cuisse') +
            morphology.getLength('tronc_bassin_bas') +
            morphology.getLength('tronc_bassin_haut') / 2)
Exemplo n.º 9
0
def make_upper_leg(world):
    upper_leg_mass = Mass()
    upper_leg_mass.setBox(body_density, 30, 100, 5)
    upper_leg = Body(world)
    upper_leg.setMass(upper_leg_mass)
    return upper_leg
Exemplo n.º 10
0
 def __init__(self, scene):
     self.scene = scene
     self.body = Body(scene.world)
     self.scene.on_update(self.update)