def main(): # Instantiate manager manager = ModelManager() # Create box models manager.add_model('cube1', vertices=BOX['vertices'], faces=BOX['faces']) manager.add_model('cube2', vertices=BOX['vertices'], faces=BOX['faces']) manager.add_model('cube3', vertices=BOX['vertices'], faces=BOX['faces']) manager.add_model('cube4', vertices=BOX['vertices'], faces=BOX['faces']) manager.add_model('cube5', vertices=BOX['vertices'], faces=BOX['faces']) # Recolour cubes manager.set_colour('cube1', (255, 255, 255)) manager.set_colour('cube2', (0, 255, 0)) manager.set_colour('cube3', (255, 0, 0)) manager.set_colour('cube4', (0, 0, 255)) manager.set_colour('cube5', (255, 255, 0)) # Scale the cubes manager.scale('cube1', 10) manager.scale('cube3', 0.5) manager.scale('cube4', 2) # Add motion to the models (box1 is stationary) manager.add_motion('cube2', positions=cube2_position) manager.add_motion('cube3', positions=cube3_position) manager.add_motion('cube4', positions=cube4_position) manager.add_motion('cube5', positions=cube5_position) # Create scene scene = Scene() scene.set_screen_size(800, 800) scene.set_viewpoint((0, -30, -30)) scene.set_rotation((np.pi / 3, 0)) scene.set_title('Orbit Example') # Add manager to scene scene.add_manager(manager) # Run scene scene.run()
def main(): # Instantiate manager manager = ModelManager() # Load paddle model from STL data_dir = Path(__file__).absolute().parent.joinpath('data') manager.add_model('paddle', stl_file=data_dir.joinpath('paddle.stl')) # Re-define local coordinate system of paddle manager.change_local_basis('paddle', ((1, 0, 0), (0, 0, -1), (0, 1, 0))) # Get motion data from a csv data = get_data(data_dir.joinpath('paddle.csv'), headersize=1) # Convert to correct data types times = [datetime.strptime(t, '%Y-%m-%d %H:%M:%S.%f') for t in data[0]] times = [(t - times[0]).total_seconds() for t in times] yaw = [float(v) for v in data[1]] pitch = [float(v) for v in data[2]] roll = [float(v) for v in data[3]] orientations = [(yaw[i] / 180 * np.pi, -pitch[i] / 180 * np.pi, -roll[i] / 180 * np.pi) for i in range(len(yaw))] # Add motion to the model manager.add_motion('paddle', times=times, orientations=orientations) # Create scene scene = Scene() scene.set_screen_size(800, 800) scene.set_viewpoint((0, 0, -5)) scene.set_title('Paddle Example') # Add manager to scene scene.add_manager(manager) # Run scene scene.run(duration=60)