Commit 9a44d9c9 authored by Gene Payne's avatar Gene Payne Committed by Alexander Bock
Browse files

Modified SGCT configuration commands to allow aspect ratio tracked keyword in...

Modified SGCT configuration commands to allow aspect ratio tracked keyword in openspace config file (#560)
parent d64a0df5
No related merge requests found
Showing with 44 additions and 21 deletions
+44 -21
......@@ -7,13 +7,13 @@ return {
-- occurs in a single window, a fisheye projection, or a dome cluster system
-- A regular 1280x720 window
SGCTConfig = sgct.config.single{},
SGCTConfig = sgct.config.single{tracked=true},
-- A regular 1920x1080 window
-- SGCTConfig = sgct.config.single{1920, 1080},
-- SGCTConfig = sgct.config.single{1920, 1080, tracked=true},
-- A windowed 1920x1080 fullscreen
-- SGCTConfig = sgct.config.single{1920, 1080, border=false, windowPos={0,0}, shared=true, name="WV_OBS_SPOUT1"},
-- SGCTConfig = sgct.config.single{1920, 1080, border=false, windowPos={0,0}, shared=true, name="WV_OBS_SPOUT1", tracked=true},
-- A 1k fisheye rendering
-- SGCTConfig = sgct.config.fisheye{1024, 1024},
......@@ -22,7 +22,7 @@ return {
-- SGCTConfig = sgct.config.fisheye{1024, 1024, res={4096, 4096}, quality="2k", tilt=27},
-- Streaming OpenSpace via Spout to OBS
-- SGCTConfig = sgct.config.single{2560, 1440, shared=true, name="WV_OBS_SPOUT1"},
-- SGCTConfig = sgct.config.single{2560, 1440, shared=true, name="WV_OBS_SPOUT1", tracked=true},
-- SGCTConfig = "${CONFIG}/spout_output.xml",
......
......@@ -94,10 +94,10 @@ function sgct.config.cube(arg) end
##########################################################################################
]]--
function generateSingleViewportFOV(down, up, left, right)
function generateSingleViewportFOV(down, up, left, right, tracked)
return
[[
<Viewport>
<Viewport ]]..tracked..[[>
<Pos x="0.0" y="0.0" />
<Size x="1.0" y="1.0" />
<PlanarProjection>
......@@ -110,10 +110,10 @@ end
function generateSingleViewport(lowerLeft, upperLeft, upperRight)
function generateSingleViewport(lowerLeft, upperLeft, upperRight, tracked)
return
[[
<Viewport>
<Viewport ]]..tracked..[[>
<Pos x="0.0" y="0.0" />
<Size x="1.0" y="1.0" />
<Projectionplane>
......@@ -127,7 +127,7 @@ end
function generateFisheyeViewport(fov, quality, tilt, background, crop, offset)
function generateFisheyeViewport(fov, quality, tilt, background, crop, offset, trackedSpecifier)
local b = [[
<Background
r="]]..background["r"]..[["
......@@ -161,7 +161,7 @@ function generateFisheyeViewport(fov, quality, tilt, background, crop, offset)
end
return [[
<Viewport name="fisheye">
<Viewport name="fisheye" ]]..trackedSpecifier..[[>
<Pos x="0.0" y="0.0" />
<Size x="1.0" y="1.0" />
<FisheyeProjection fov="]]..fov..[[" quality="]]..quality..[[" tilt="]]..tilt..[[">
......@@ -679,14 +679,20 @@ function sgct.config.single(arg)
arg["fov"] = { down = 16.875, up = 16.875, left = 30.0, right = 30.0 }
end
end
if (arg["tracked"] ~= nil and arg["tracked"] == true) then
trackedSpecifier = "tracked=\"true\""
else
trackedSpecifier = "tracked=\"false\""
end
arg["viewport"] = generateSingleViewportFOV(
arg["fov"]["down"],
arg["fov"]["up"],
arg["fov"]["left"],
arg["fov"]["right"]
arg["fov"]["right"],
trackedSpecifier
)
return sgct.makeConfig(generateSingleWindowConfig(arg))
end
......@@ -766,13 +772,20 @@ function sgct.config.fisheye(arg)
arg["background"] = { r = 0.1, g = 0.1, b = 0.1, a = 1.0 }
end
if (arg["tracked"] ~= nil and arg["tracked"] == true) then
trackedSpecifier = "tracked=\"true\""
else
trackedSpecifier = "tracked=\"false\""
end
arg["viewport"] = generateFisheyeViewport(
arg["fov"],
arg["quality"],
arg["tilt"],
arg["background"],
arg["crop"],
arg["offset"]
arg["offset"],
trackedSpecifier
)
return sgct.makeConfig(generateSingleWindowConfig(arg))
......@@ -781,7 +794,7 @@ end
function sgct.config.cube(arg)
function getCubeWindow(location, res, size)
function getCubeWindow(location, res, size, trackedSpecifier)
local pos
local lowerLeft
local upperLeft
......@@ -826,14 +839,14 @@ function sgct.config.cube(arg)
arg["windowSize"] = size
arg["windowPos"] = pos
arg["res"] = { res, res }
arg["viewport"] = generateSingleViewport(lowerLeft, upperLeft, upperRight)
arg["viewport"] = generateSingleViewport(lowerLeft, upperLeft, upperRight, trackedSpecifier)
return generateWindow(arg)
end
function getControlWindow(down, up, left, right)
function getControlWindow(down, up, left, right, trackedSpecifier)
arg = {}
arg["viewport"] = generateSingleViewportFOV(down, up, left, right)
arg["viewport"] = generateSingleViewportFOV(down, up, left, right, trackedSpecifier)
return generateWindow(arg)
end
......@@ -843,9 +856,19 @@ function sgct.config.cube(arg)
arg["scene"] = generateScene(arg)
arg["settings"] = generateSettings(arg)
arg["window"] = getControlWindow(16.875, 16.875, 30.0, 30.0) .. getCubeWindow('front', res, size) .. getCubeWindow('back', res, size) ..
getCubeWindow('left', res, size) .. getCubeWindow('right', res, size) ..
getCubeWindow('up', res, size) .. getCubeWindow('down', res, size)
if (arg["tracked"] ~= nil and arg["tracked"] == true) then
trackedSpecifier = "tracked=\"true\""
else
trackedSpecifier = "tracked=\"false\""
end
arg["window"] = getControlWindow(16.875, 16.875, 30.0, 30.0, trackedSpecifier) ..
getCubeWindow('front', res, size, trackedSpecifier) ..
getCubeWindow('back', res, size, trackedSpecifier) ..
getCubeWindow('left', res, size, trackedSpecifier) ..
getCubeWindow('right', res, size, trackedSpecifier) ..
getCubeWindow('up', res, size, trackedSpecifier) ..
getCubeWindow('down', res, size, trackedSpecifier)
arg["user"] = generateUser(arg)
arg["capture"] = generateCapture(arg)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment