Exemple #1
0
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())
Exemple #2
0
     (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)

Exemple #3
0
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())