1. German Larrain
  2. ars

Commits

German Larrain  committed dfc84b4

simulator.physics: new methods in Body to get the center of gravity and the inertia tensor matrix. New test module for the code in the physics module.

  • Participants
  • Parent commits 975d278
  • Branches dev

Comments (0)

Files changed (2)

File ars/model/simulator/physics.py

View file
 	def get_mass(self):
 		return self._inner_object.getMass().mass
 	
+	def get_center_of_gravity(self):
+		return self._inner_object.getMass().c
+	
+	def get_inertia_tensor(self):
+		return self._inner_object.getMass().I
+	
 	def set_position(self, pos):
 		self._inner_object.setPosition(pos)
 	

File tests/physics.py

View file
+
+# Created on 2012.03.09
+#
+# @author: german
+
+from ars.app import Program
+
+class BodyTest1(Program):
+	def create_sim_objects(self):
+		self.sim.add_sphere(0.5, (1,10,1), density=1) # radius, center, density
+
+class BodyTest2(Program):
+	def create_sim_objects(self):
+		self.sim.add_cylinder(length=1.0, radius=1.0, center=(10,10,25), mass=4.67)
+
+def run_body_test():
+	sim_program = BodyTest1()
+	sim_program.start()
+	body = sim_program.sim.get_object("sphere").get_body()
+	print(body.get_mass())
+	print(body.get_position())
+	print(body.get_center_of_gravity())
+	print(body.get_inertia_tensor())
+	
+	sim_program = BodyTest2()
+	sim_program.start()
+	body = sim_program.sim.get_object("cylinder").get_body()
+	print(body.get_mass())
+	print(body.get_position())
+	print(body.get_center_of_gravity())
+	print(body.get_inertia_tensor())
+
+if __name__ == '__main__':
+	run_body_test()