mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-05-08 04:20:14 -05:00
81 lines
2.6 KiB
Plaintext
81 lines
2.6 KiB
Plaintext
local assetHelper = asset.require('util/asset_helper')
|
|
|
|
local getBookmarks = function (guiPath, bookmarkfile)
|
|
local genBookmarks = {};
|
|
local notFirstLine = false;
|
|
local PARSEC_CONSTANT = 3.0856776E16;
|
|
for line in io.lines(openspace.absPath(bookmarkfile)) do
|
|
if (notFirstLine) then
|
|
local matchstring = "(.-),(.-),(.-),(.-),(.-),(.-),(.-),(.-),(.-),(.-),(.-)$"
|
|
local group, name, globe, lat, lon, altitude, x, y, z, scale, linewitdh = line:match(matchstring)
|
|
|
|
scale = (scale == '' and 75000 or scale)
|
|
linewitdh = (linewitdh == '' and 2.0 or tonumber(linewitdh))
|
|
group = (group == "" and globe or group)
|
|
|
|
local parent = (globe == "" and 'Root' or globe)
|
|
|
|
local sgn = {
|
|
Identifier = guiPath .. "-" .. name,
|
|
Parent = parent,
|
|
Transform = {
|
|
Translation = {
|
|
},
|
|
Scale = {
|
|
Type = "StaticScale",
|
|
Scale = tonumber(scale);
|
|
}
|
|
},
|
|
Renderable = {
|
|
Type = "RenderableSphericalGrid",
|
|
Enabled = false,
|
|
GridColor = { 0.3, 0.84, 1.0, 0.3},
|
|
LineWidth = linewitdh,
|
|
GridMatrix = { -0.05487554, 0.4941095, -0.8676661 , 0.0,
|
|
-0.9938214 , -0.1109906, -0.0003515167, 0.0,
|
|
-0.09647644, 0.8622859, 0.4971472 , 0.0,
|
|
0.0 , 0.0 , 0.0 , 1.0 }
|
|
},
|
|
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);
|
|
else
|
|
notFirstLine = true
|
|
end
|
|
end
|
|
return genBookmarks
|
|
end
|
|
|
|
asset.export("getBookmarks", getBookmarks)
|
|
|