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
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
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
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)
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
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
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)
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)
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
def __init__(self, scene): self.scene = scene self.body = Body(scene.world) self.scene.on_update(self.update)