Files
OpenSpace/data/assets/util/generate_bookmarks.asset
T
Alexander Bock 705c898ccd Asset File cleanup (#2713)
* Updating all assets to new coding style
* Cleaning up asset files
* Moving default_actions and default_keybindings files
* Changing procedural globes to explicitly specified globes
* Move Spice loading explicitly to the initialize part and also deinitialize
* Removing unused asset files
  * Removing asset_helper
  * Removing scale_model_helper asset
  * Removing script_scheduler_helper
  * Removing testing_keybindings
  * Remove procedural_globe
2023-05-28 17:23:20 +02:00

92 lines
2.3 KiB
Lua

local function loadBookmarks(guiPath, bookmarkfile)
local genBookmarks = {}
local PARSEC_CONSTANT = 3.0856776E16
local extract_first_line = false
local contents = openspace.readCSVFile(openspace.absPath(bookmarkfile), extract_first_line)
for _,v in ipairs(contents) do
local group = v[1]
local name = v[2]
local globe = v[3]
local lat = v[4]
local lon = v[5]
local altitude = v[6]
local x = v[7]
local y = v[8]
local z = v[9]
local scale = v[10]
local linewidth = v[11]
local identifier = string.gsub(guiPath .. "-" .. name, " ", "_")
scale = (scale == "" and 75000 or scale)
linewidth = (linewidth == "" and 2.0 or tonumber(linewidth))
local parent = (globe == "" and "Root" or globe)
local sgn = {
Identifier = identifier,
Parent = parent,
Transform = {
Scale = {
Type = "StaticScale",
Scale = tonumber(scale)
},
Rotation = {
Type = "StaticRotation",
Rotation = {
-0.05487554, 0.4941095, -0.8676661,
-0.9938214 , -0.1109906, -0.0003515167,
-0.09647644, 0.8622859, 0.4971472
}
}
},
Renderable = {
Type = "RenderableSphericalGrid",
Enabled = false,
Opacity = 0.3,
Color = { 0.3, 0.84, 1.0 },
LineWidth = linewidth
},
GUI = {
Name = name,
Path = "/" .. guiPath
}
}
if (group ~= "") then
sgn.GUI.Path = sgn.GUI.Path .. "/" .. group
end
if (globe == "") then
sgn.Transform.Translation = {
Type = "StaticTranslation",
Position = {
tonumber(x) * PARSEC_CONSTANT,
tonumber(y) * PARSEC_CONSTANT,
tonumber(z) * PARSEC_CONSTANT
}
}
else
sgn.Transform.Translation = {
Type = "GlobeTranslation",
Globe = globe,
Latitude = tonumber(lat),
Longitude = tonumber(lon)
}
if (altitude == nil) then
sgn.Transform.Translation.UseHeightMap = true
else
sgn.Transform.Translation.UseHeightMap = false
sgn.Transform.Translation.Altitude = tonumber(altitude)
end
end
table.insert(genBookmarks, sgn)
end
return genBookmarks
end
asset.export("loadBookmarks", loadBookmarks)