def start(): # initialize oculus rift avango.oculus.initOVR() # create scene Scene = scene.create() # create and launch viewer viewer = SimpleViewer() viewer.SceneGraph.value = Scene gpMat = viewer.green_pointer.MatrixOut.value bpMat = viewer.blue_pointer.MatrixOut # create loader for geometries loader = avango.gua.nodes.GeometryLoader() monkey_node = loader.create_geometry_from_file('monkey', 'data/objects/sphere.obj', 'White', avango.gua.LoaderFlags.DEFAULTS) monkey_node.Transform.value = avango.gua.make_scale_mat(0.2, 0.2, 0.2) m_transform = avango.gua.nodes.TransformNode(Name = 'm1') m_transform.Transform.value = avango.gua.make_trans_mat(0, 0, 0) m_transform.Children.value.append(monkey_node) Scene.Root.value.Children.value.append(m_transform) m_transform.Transform.connect_from(viewer.blue_pointer.MatrixOut) monkey2_node = loader.create_geometry_from_file('monkey2', 'data/objects/sphere.obj', 'White', avango.gua.LoaderFlags.DEFAULTS) monkey2_node.Transform.value = avango.gua.make_scale_mat(0.2, 0.2, 0.2) m2_transform = avango.gua.nodes.TransformNode(Name = 'm2') m2_transform.Transform.value = avango.gua.make_trans_mat(0, 0, 0) m2_transform.Children.value.append(monkey2_node) Scene.Root.value.Children.value.append(m2_transform) m2_transform.Transform.connect_from(viewer.green_pointer.MatrixOut) viewer.run(locals(), globals())
(tip 20)\n\ -> Using field connections to describe dependency graphs.\n\ (tips 21 to 26)\n\n\ This shall be it as a first glimpse on \033[92mguacamole\033[0m.\n\ I put all the code of this little tutorial in a seperate example \n\ directory called 'tutorial_result'. Copy this directory and start \n\ writing your own, spicy \033[92mguacamole\033[0m application! \n\n\ Of course, there are alot of other things to\n\ learn and to experiment with!\n\n\ Anyhow, thank you for taking this little course\n\ and have fun fooling around with \033[92mguacamole\033[0m!\n", } current_tip = -1 tip_count = len(tips) viewer = SimpleViewer() timed_rotate = TimedRotate() def add_sample_monkey(graph): loader = avango.gua.nodes.TriMeshLoader() monkey = loader.create_geometry_from_file("monkey", "data/objects/monkey.obj", "data/materials/Stones.gmd", avango.gua.LoaderFlags.DEFAULTS) monkey.Transform.value = avango.gua.make_trans_mat( 2, 1, 0) * avango.gua.make_rot_mat( 90, 0, 1, 0) * avango.gua.make_scale_mat(0.5, 0.5, 0.5) graph.Root.value.Children.value.append(monkey)
def start(): # initialize oculus rift avango.oculus.initOVR() # initialize materials avango.gua.load_shading_models_from("data/materials") avango.gua.load_materials_from("data/materials") # create loader for geometries loader = avango.gua.nodes.TriMeshLoader() # create scenegraph graph = avango.gua.nodes.SceneGraph( Name = 'scenegraph' ) # create big monkey monkey_node = loader.create_geometry_from_file('monkey', 'data/objects/monkey.obj', 'Stones', avango.gua.LoaderFlags.DEFAULTS) graph.Root.value.Children.value.append(monkey_node) # create lamp lamp_node = avango.gua.nodes.SpotLightNode( Name = 'lamp', EnableShadows = True, EnableGodrays = True, Transform = avango.gua.make_trans_mat(0, 3, 0) * \ avango.gua.make_rot_mat(-90, 1, 0, 0) * \ avango.gua.make_scale_mat(55, 55, 30) ) graph.Root.value.Children.value.append(lamp_node) # create floor plane_node = loader.create_geometry_from_file('floor', 'data/objects/plane.obj', 'Tiles', avango.gua.LoaderFlags.DEFAULTS) plane_node.Transform.value = avango.gua.make_trans_mat(0, -2, 0) * avango.gua.make_scale_mat(5, 1, 5) graph.Root.value.Children.value.append(plane_node) # create little monkey monkey = loader.create_geometry_from_file("monkey", "data/objects/monkey.obj", "Stones", avango.gua.LoaderFlags.DEFAULTS) monkey.Transform.value = avango.gua.make_trans_mat(2, 0, 0) * avango.gua.make_rot_mat(90, 0, 1, 0) * avango.gua.make_scale_mat(0.5, 0.5, 0.5) graph.Root.value.Children.value.append(monkey) # create teapot group tea_move_node = avango.gua.nodes.TransformNode( Name = 'tea_move', Transform = avango.gua.make_trans_mat(0, -1.85, 0) ) tea_rot_node = avango.gua.nodes.TransformNode( Name = 'tea_rot' ) graph.Root.value.Children.value.append(tea_move_node) tea_move_node.Children.value.append(tea_rot_node) pot1 = loader.create_geometry_from_file('pot1', 'data/objects/teapot.obj', 'Shiny', avango.gua.LoaderFlags.DEFAULTS) pot2 = loader.create_geometry_from_file('pot2', 'data/objects/teapot.obj', 'Shiny', avango.gua.LoaderFlags.DEFAULTS) pot3 = loader.create_geometry_from_file('pot3', 'data/objects/teapot.obj', 'Shiny', avango.gua.LoaderFlags.DEFAULTS) tea_rot_node.Children.value = [pot1, pot2, pot3] pot1.Transform.value = avango.gua.make_trans_mat(2, 0, 0) * avango.gua.make_scale_mat(0.2, 0.2, 0.2) pot2.Transform.value = avango.gua.make_trans_mat(0, 0, 2) * avango.gua.make_scale_mat(0.2, 0.2, 0.2) pot3.Transform.value = avango.gua.make_trans_mat(-2, 0, 0) * avango.gua.make_scale_mat(0.2, 0.2, 0.2) timed_rotate = TimedRotate( RotationSpeed = 50.0 ) timer = avango.nodes.TimeSensor() timed_rotate.TimeIn.connect_from(timer.Time) monkey_node.Transform.connect_from(timed_rotate.MatrixOut) tea_rot_node.Transform.connect_from(timed_rotate.MatrixOut) # create and launch viewer viewer = SimpleViewer() viewer.SceneGraph.value = graph viewer.run(locals(), globals())