mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2025-12-31 00:10:44 -06:00
Add the ability to drag-and-drop a video file to add it as a screenspacerenderable (closes #2988)
This commit is contained in:
@@ -22,13 +22,31 @@ filename = filename:gsub("\\", "/")
|
||||
basename = basename:gsub("\\", "/")
|
||||
basename_without_extension = basename:sub(0, #basename - extension:len())
|
||||
|
||||
is_image_file = function(extension)
|
||||
local is_image_file = function(extension)
|
||||
return extension == ".png" or extension == ".jpg" or extension == ".jpeg" or
|
||||
extension == ".tif" or extension == ".tga" or extension == ".bmp" or
|
||||
extension == ".psd" or extension == ".gif" or extension == ".hdr" or
|
||||
extension == ".pic" or extension == ".pnm"
|
||||
end
|
||||
|
||||
local is_video_file = function(extension)
|
||||
return extension == ".mp4" or extension == ".webm" or extension == ".mkv" or
|
||||
extension == ".avi" or extension == ".mov" or extension == ".wmv" or
|
||||
extension == ".mpg" or extension == ".m4v"
|
||||
end
|
||||
|
||||
local is_asset_file = function(extension)
|
||||
return extension == ".asset"
|
||||
end
|
||||
|
||||
local is_recording_file = function(extension)
|
||||
return extension == ".osrec" or extension == ".osrectxt"
|
||||
end
|
||||
|
||||
local is_geojson_file = function(extension)
|
||||
return extension == ".geojson"
|
||||
end
|
||||
|
||||
local ReloadUIScript = [[ if openspace.hasProperty('Modules.CefWebGui.Reload') then openspace.setPropertyValue('Modules.CefWebGui.Reload', nil) end ]]
|
||||
|
||||
if is_image_file(extension) then
|
||||
@@ -38,14 +56,21 @@ if is_image_file(extension) then
|
||||
Type = "ScreenSpaceImageLocal",
|
||||
TexturePath = "]] .. filename .. [["
|
||||
});]] .. ReloadUIScript
|
||||
elseif extension == ".asset" then
|
||||
elseif is_video_file(extension) then
|
||||
return [[
|
||||
openspace.addScreenSpaceRenderable({
|
||||
Identifier = openspace.makeIdentifier("]] .. basename_without_extension .. [["),
|
||||
Type = "ScreenSpaceVideo",
|
||||
Video = "]] .. filename .. [["
|
||||
});]] .. ReloadUIScript
|
||||
elseif is_asset_file(extension) then
|
||||
return [[
|
||||
if openspace.asset.isLoaded("]] .. filename .. [[") ~= true then
|
||||
openspace.printInfo("Adding asset: ']] .. filename .. [[' (drag-and-drop)");
|
||||
end
|
||||
openspace.asset.add("]] .. filename .. '");' .. ReloadUIScript
|
||||
elseif extension == ".osrec" or extension == ".osrectxt" then
|
||||
elseif is_recording_file(extension) then
|
||||
return 'openspace.sessionRecording.startPlayback("' .. filename .. '")'
|
||||
elseif extension == ".geojson" then
|
||||
elseif is_geojson_file(extension) then
|
||||
return 'openspace.globebrowsing.addGeoJsonFromFile("' .. filename .. '")' .. ReloadUIScript
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user