Browse Source

Port Interaction examples;

bjorn 2 năm trước cách đây
mục cha
commit
176d405869

+ 5 - 5
examples/Interaction/Dragging/main.lua

@@ -35,12 +35,12 @@ function lovr.update(dt)
   end
 end
 
-function lovr.draw()
-  lovr.graphics.setColor(drag.active and 0x80ee80 or 0xee8080)
-  lovr.graphics.cube('line', box.position, box.size)
+function lovr.draw(pass)
+  pass:setColor(drag.active and 0x80ee80 or 0xee8080)
+  pass:cube(box.position, box.size, quat(), 'line')
 
   for i, hand in ipairs(lovr.headset.getHands()) do
-    lovr.graphics.setColor(0xffffff)
-    lovr.graphics.cube('fill', mat4(lovr.headset.getPose(hand)):scale(.01))
+    pass:setColor(0xffffff)
+    pass:cube(mat4(lovr.headset.getPose(hand)):scale(.01))
   end
 end

+ 3 - 3
examples/Interaction/Dragging_with_Rotation/main.lua

@@ -19,11 +19,11 @@ function lovr.update(dt)
   end
 end
 
-function lovr.draw()
-  lovr.graphics.box('line', boxMatrix)
+function lovr.draw(pass)
+  pass:box(boxMatrix, 'line')
 
   for i, hand in ipairs(lovr.headset.getHands()) do
     local x, y, z = lovr.headset.getPosition(hand)
-    lovr.graphics.sphere(x, y, z, .01)
+    pass:sphere(x, y, z, .01)
   end
 end

+ 2 - 2
examples/Interaction/Hand_Tracking/main.lua

@@ -1,7 +1,7 @@
-function lovr.draw()
+function lovr.draw(pass)
   for _, hand in ipairs({ 'left', 'right' }) do
     for _, joint in ipairs(lovr.headset.getSkeleton(hand) or {}) do
-      lovr.graphics.points(unpack(joint, 1, 3))
+      pass:points(unpack(joint, 1, 3))
     end
   end
 end

+ 11 - 11
examples/Interaction/Physics_Pointer/main.lua

@@ -26,8 +26,8 @@ function lovr.update(dt)
 
   world:update(dt)
 
-  local ox, oy, oz = lovr.headset.getPosition('hand/right')
-  local dx, dy, dz = quat(lovr.headset.getOrientation('hand/right')):direction():mul(50):unpack()
+  local ox, oy, oz = lovr.headset.getPosition('hand/right/point')
+  local dx, dy, dz = quat(lovr.headset.getOrientation('hand/right/point')):direction():mul(50):unpack()
   local closest = math.huge
   world:raycast(ox, oy, oz, ox + dx, oy + dy, oz + dz, function(shape, x, y, z)
     local distance = vec3(x, y, z):distance(vec3(ox, oy, oz))
@@ -39,22 +39,22 @@ function lovr.update(dt)
   end)
 end
 
-function lovr.draw()
+function lovr.draw(pass)
   -- Boxes
   for i, box in ipairs(boxes) do
-    lovr.graphics.setColor(box == selectedBox and green or red)
-    lovr.graphics.cube('fill', vec3(box:getPosition()), .28, quat(box:getOrientation()))
+    pass:setColor(box == selectedBox and green or red)
+    pass:cube(vec3(box:getPosition()), .28, quat(box:getOrientation()))
   end
 
   -- Dot
   if selectedBox then
-    lovr.graphics.setColor(0, 0, 1)
-    lovr.graphics.sphere(hitpoint, .01)
+    pass:setColor(0, 0, 1)
+    pass:sphere(hitpoint, .01)
   end
 
   -- Laser pointer
-  local hand = vec3(lovr.headset.getPosition('hand/right'))
-  local direction = quat(lovr.headset.getOrientation('hand/right')):direction()
-  lovr.graphics.setColor(1, 1, 1)
-  lovr.graphics.line(hand, selectedBox and hitpoint or (hand + direction * 50))
+  local hand = vec3(lovr.headset.getPosition('hand/right/point'))
+  local direction = quat(lovr.headset.getOrientation('hand/right/point')):direction()
+  pass:setColor(1, 1, 1)
+  pass:line(hand, selectedBox and hitpoint or (hand + direction * 50))
 end