mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-01-20 11:10:23 -06:00
Merge branch 'master' into project/b612-asteroid-uncertainty
This commit is contained in:
@@ -50,7 +50,7 @@ private:
|
||||
void updateSaveButton();
|
||||
|
||||
void save();
|
||||
void reject();
|
||||
void reject() override;
|
||||
|
||||
QLineEdit* _configuration = nullptr;
|
||||
QCheckBox* _rememberLastConfiguration = nullptr;
|
||||
|
||||
@@ -401,8 +401,8 @@ QWidget* LauncherWindow::createCentralWidget() {
|
||||
connect(
|
||||
&dialog,
|
||||
&SettingsDialog::saveSettings,
|
||||
[](Settings settings) {
|
||||
saveSettings(settings, findSettings());
|
||||
[](Settings s) {
|
||||
saveSettings(s, findSettings());
|
||||
}
|
||||
);
|
||||
|
||||
@@ -588,10 +588,17 @@ bool handleConfigurationFile(QComboBox& box, const std::filesystem::directory_en
|
||||
|
||||
// Add tooltip
|
||||
if (isJson) {
|
||||
sgct::config::Meta meta = sgct::readMeta(p.path().string(), true);
|
||||
if (!meta.description.empty()) {
|
||||
std::string tooltipDescription;
|
||||
try {
|
||||
sgct::config::Meta meta = sgct::readMeta(p.path().string());
|
||||
tooltipDescription = meta.description;
|
||||
}
|
||||
catch (const sgct::Error&) {
|
||||
tooltipDescription = "(no description available)";
|
||||
}
|
||||
if (!tooltipDescription.empty()) {
|
||||
QString toolTip = QString::fromStdString(
|
||||
fmt::format("<p>{}</p>", meta.description)
|
||||
fmt::format("<p>{}</p>", tooltipDescription)
|
||||
);
|
||||
box.setItemData(box.count() - 1, toolTip, Qt::ToolTipRole);
|
||||
}
|
||||
|
||||
@@ -142,7 +142,7 @@ void SgctEdit::setupStateOfUiOnFirstWindow(size_t nWindows) {
|
||||
bool firstWindowGuiIsEnabled = (nWindows > 1);
|
||||
int graphicsSelectionForFirstWindow = 0;
|
||||
int nGuiRenderTagsFound = 0;
|
||||
_settingsWidget->nWindowsDisplayedChanged(nWindows);
|
||||
_settingsWidget->nWindowsDisplayedChanged(static_cast<int>(nWindows));
|
||||
|
||||
for (size_t i = 0; i < nWindows; ++i) {
|
||||
sgct::config::Window& w = _cluster.nodes.front().windows[i];
|
||||
@@ -185,7 +185,7 @@ void SgctEdit::setupStateOfUiOnFirstWindow(size_t nWindows) {
|
||||
// Call these again in order to ensure that GUI is configured correctly based on
|
||||
// the values read from the config file
|
||||
_settingsWidget->setEnableShowUiOnFirstWindowCheckbox(true);
|
||||
_settingsWidget->nWindowsDisplayedChanged(nWindows);
|
||||
_settingsWidget->nWindowsDisplayedChanged(static_cast<int>(nWindows));
|
||||
}
|
||||
_settingsWidget->setGraphicsSelectionForShowUiOnFirstWindow(
|
||||
graphicsSelectionForFirstWindow
|
||||
|
||||
Submodule apps/OpenSpace/ext/sgct updated: e2e1b99a2d...cd588a8090
@@ -1415,9 +1415,12 @@ int main(int argc, char* argv[]) {
|
||||
|
||||
LDEBUG("Creating SGCT Engine");
|
||||
std::vector<std::string> arg(argv + 1, argv + argc);
|
||||
LDEBUG("Parsing commandline arguments");
|
||||
sgct::Configuration config = parseArguments(arg);
|
||||
LDEBUG("Loading cluster information");
|
||||
config::Cluster cluster = loadCluster(absPath(windowConfiguration).string());
|
||||
|
||||
LDEBUG("Setting callbacks");
|
||||
Engine::Callbacks callbacks;
|
||||
callbacks.initOpenGL = mainInitFunc;
|
||||
callbacks.preSync = mainPreSyncFunc;
|
||||
|
||||
101
data/assets/examples/pointclouds/data/dummydata.csv
Normal file
101
data/assets/examples/pointclouds/data/dummydata.csv
Normal file
@@ -0,0 +1,101 @@
|
||||
x,y,z,a,b,normaldist_withMissing,number_withNan
|
||||
13428000,26239000,45870000,-3.226548224,33.95773276,-0.357778948,29
|
||||
14727000,45282000,10832000,45.05941924,-106.0395917,,29
|
||||
24999000,28370000,19911000,-70.58906931,154.1851656,-0.167961782,Nan
|
||||
26539000,36165000,39582000,-13.3663358,71.79484733,0.113536778,9
|
||||
49056000,24775000,14626000,21.42870979,-115.6088304,0.125551095,37
|
||||
43965000,21472000,18760000,65.07055022,-56.36880466,0.172981386,18
|
||||
15661000,28429000,16965000,76.15826514,125.3163407,,40
|
||||
25046000,36006000,49453000,-22.31710915,137.4486786,0.447921314,28
|
||||
13797000,34811000,18825000,-79.40300933,74.05580595,-0.02379786,12
|
||||
13879000,14824000,41472000,-30.93548431,-8.755047834,-0.041777813,50
|
||||
11481000,20480000,25925000,75.51244012,178.1377926,-0.044396255,0
|
||||
45032000,16606000,23537000,37.38766828,175.5064508,-0.449674816,13
|
||||
14395000,34940000,21968000,-31.6863061,-116.6587323,-0.09741961,30
|
||||
15945000,21478000,29536000,-53.01226701,59.18196347,0.304142338,30
|
||||
13458000,19017000,18542000,8.72692265,80.65872957,,45
|
||||
45302000,15732000,34369000,-85.57061714,124.6890481,-0.364449145,20
|
||||
15559000,36269000,18160000,-4.975784243,-156.8789425,-0.012893853,22
|
||||
16552000,14570000,39763000,-39.2579671,75.22960824,-0.281792015,Nan
|
||||
11353000,13410000,38311000,8.610608538,-36.43103437,-0.196021206,9
|
||||
12383000,49302000,33539000,69.26506588,-109.0830926,-0.147483079,34
|
||||
44302000,21387000,23434000,16.14574541,78.81171702,0.115624185,5
|
||||
43107000,14206000,24728000,37.57233254,142.6103028,,Nan
|
||||
49320000,43878000,24240000,-39.10527498,149.2751575,-0.086246397,29
|
||||
37519000,40514000,16409000,-24.14434437,157.2871976,-0.071946303,12
|
||||
37202000,40122000,42551000,-79.88824934,-124.089513,0.375414362,31
|
||||
12783000,11757000,25348000,-11.83866388,118.2423568,-0.243289139,Nan
|
||||
39621000,30560000,15929000,75.8365484,-95.18288548,-0.399996182,37
|
||||
10937000,15183000,21413000,-32.40573,-157.8337361,-0.202310776,39
|
||||
39411000,12532000,44006000,34.67409469,-83.29512212,,Nan
|
||||
47905000,25552000,28902000,36.19437814,52.25734185,,32
|
||||
28426000,45268000,27886000,-70.843469,-63.7321218,0.112287307,45
|
||||
15026000,45897000,23911000,-89.01161062,10.16376248,-0.00400866,Nan
|
||||
24625000,14844000,12837000,88.91663258,169.8003753,-0.151728888,5
|
||||
46304000,21144000,24421000,-41.58069299,59.63971512,-0.371030712,48
|
||||
29558000,10724000,27312000,9.663492403,-71.18121738,0.344402457,Nan
|
||||
49636000,27202000,24626000,59.46440387,-92.91431055,0.26256468,31
|
||||
38603000,23794000,41040000,70.45128929,-67.84861911,-0.184920666,48
|
||||
37336000,21742000,40982000,-15.69131418,134.6754731,0.078786176,15
|
||||
35128000,38725000,25244000,2.279345664,34.91612867,0.091098807,44
|
||||
30419000,33591000,39512000,-56.16030331,133.9105282,-0.590693487,8
|
||||
18665000,11189000,45438000,-45.68302316,-85.35524485,0.046936859,26
|
||||
15442000,36392000,16074000,81.4389588,-56.70945587,0.038804669,5
|
||||
43378000,27900000,38748000,-74.35249265,-133.1884413,0.429053963,17
|
||||
44424000,19982000,13528000,-81.19709235,49.49364675,0.115926289,47
|
||||
42733000,15383000,28933000,75.17020088,-11.11330632,0.127627239,32
|
||||
40144000,46822000,29588000,-81.25577073,-135.8002245,0.346061193,33
|
||||
16927000,38232000,43931000,-80.97022269,157.7565432,-0.096039391,39
|
||||
38910000,36030000,38003000,-37.79005665,-1.5474944,0.107402594,11
|
||||
48340000,38510000,39290000,21.94846638,-112.6129615,0.230803493,3
|
||||
17258000,45665000,27152000,80.73726495,-31.33714033,-0.079079307,10
|
||||
48363000,39701000,11905000,11.83766221,-69.99777106,-0.002514692,3
|
||||
27660000,29370000,26029000,8.179457229,147.7719143,-0.006520509,31
|
||||
47106000,30527000,17038000,73.00898959,9.988869939,0.797492967,5
|
||||
10471000,37521000,35398000,57.46145065,-29.5045034,-0.261313809,39
|
||||
27774000,44082000,40036000,78.47974779,-4.998179635,0.437739286,24
|
||||
46887000,20413000,36649000,51.11098102,-136.3276432,0.237434245,41
|
||||
10093000,46706000,19187000,-58.41750426,-157.9933447,0.275586609,45
|
||||
49093000,36514000,38499000,-55.41355694,150.177605,0.576467955,21
|
||||
48945000,49826000,23225000,-63.91174083,-177.7191007,0.475443991,Nan
|
||||
26852000,28926000,32243000,-77.854481,116.9006581,,1
|
||||
34219000,34787000,30801000,-62.32990484,23.24232366,0.089523916,40
|
||||
31075000,30369000,36898000,-77.78314619,38.69526825,-0.046423443,7
|
||||
28135000,21412000,25552000,-7.411565773,-88.65122734,0.258690016,Nan
|
||||
13347000,15980000,43094000,74.71054756,-37.32614369,,7
|
||||
26928000,31159000,16653000,-32.74503199,146.7695347,0.576290488,34
|
||||
12364000,14374000,43646000,28.70641859,-92.35199713,-0.059531367,16
|
||||
38991000,49388000,48534000,56.70658222,8.014973542,-0.173400177,30
|
||||
17180000,14935000,11680000,-45.39957586,102.5726701,0.16285705,1
|
||||
27666000,29337000,44778000,89.4063742,-79.68068618,0.044140443,41
|
||||
13660000,11108000,37986000,57.03349279,7.98684928,0.066242706,24
|
||||
36910000,10252000,41657000,-9.906961203,21.79114496,-0.378241692,6
|
||||
21785000,20095000,14903000,77.49612237,-84.68789002,-0.071118836,16
|
||||
33363000,42124000,39814000,-64.47776113,-30.79591997,0.371115832,35
|
||||
42758000,48892000,44762000,42.39782697,-32.55868099,-0.146011285,1
|
||||
16590000,22098000,28515000,-36.90992927,-55.27481385,-0.203981239,27
|
||||
26448000,45475000,33361000,64.22197115,146.6687002,-0.026210913,1
|
||||
41182000,23927000,25075000,-81.55929754,137.9213773,0.042229126,10
|
||||
49801000,15636000,39883000,-89.22857667,159.9681504,0.035529624,15
|
||||
32725000,13037000,49874000,-55.17873101,61.01413612,0.519438664,43
|
||||
31130000,16471000,41939000,-45.36963748,-156.5100924,0.245045969,22
|
||||
19599000,37119000,26468000,-26.58523044,174.7731562,-0.210527713,22
|
||||
30024000,23097000,14711000,44.31464407,150.7894846,-0.041347399,45
|
||||
39567000,48586000,49391000,1.721781555,156.1687027,,31
|
||||
46249000,28249000,32393000,-13.3221674,-176.0644697,-0.108879159,30
|
||||
12180000,20488000,46288000,36.02858732,30.43526779,-0.099205446,47
|
||||
29659000,40098000,45152000,72.15373455,62.01511311,,46
|
||||
41026000,19309000,15845000,-38.63636224,145.9569745,-0.083266866,32
|
||||
47146000,39852000,26666000,35.2426196,-33.97130609,-0.650089141,7
|
||||
39958000,46945000,11789000,-68.31344333,172.4154216,0.001713968,37
|
||||
25921000,13147000,22257000,-15.89505915,-150.39693,0.165178387,37
|
||||
28892000,28329000,49094000,-58.72206735,-157.3776844,-0.228068143,48
|
||||
29563000,48312000,45703000,86.78718085,179.1386066,-0.146072441,49
|
||||
46127000,46582000,13462000,39.98033674,-164.152123,-0.081830298,17
|
||||
23268000,24051000,48652000,-43.61767649,83.51428751,-0.106824408,45
|
||||
22163000,26901000,28702000,51.04347167,169.7632117,0.052782471,31
|
||||
46968000,17027000,25787000,-73.8664022,2.915300454,-0.028069047,22
|
||||
24148000,44640000,15422000,8.379412685,101.9542853,-0.049339904,14
|
||||
11566000,26486000,11735000,-36.78748293,-129.8960512,,Nan
|
||||
11063000,38883000,16772000,-65.43894139,105.6607872,,7
|
||||
43081000,16718000,45813000,-2.464830259,87.07999887,-0.24057898,40
|
||||
|
100
data/assets/examples/pointclouds/data/dummydata.label
Normal file
100
data/assets/examples/pointclouds/data/dummydata.label
Normal file
@@ -0,0 +1,100 @@
|
||||
13428000 26239000 45870000 id P0 text Point 0
|
||||
14727000 45282000 10832000 id P1 text Point 1
|
||||
24999000 28370000 19911000 id P2 text Point 2
|
||||
26539000 36165000 39582000 id P3 text Point 3
|
||||
49056000 24775000 14626000 id P4 text Point 4
|
||||
43965000 21472000 18760000 id P5 text Point 5
|
||||
15661000 28429000 16965000 id P6 text Point 6
|
||||
25046000 36006000 49453000 id P7 text Point 7
|
||||
13797000 34811000 18825000 id P8 text Point 8
|
||||
13879000 14824000 41472000 id P9 text Point 9
|
||||
11481000 20480000 25925000 id P10 text Point 10
|
||||
45032000 16606000 23537000 id P11 text Point 11
|
||||
14395000 34940000 21968000 id P12 text Point 12
|
||||
15945000 21478000 29536000 id P13 text Point 13
|
||||
13458000 19017000 18542000 id P14 text Point 14
|
||||
45302000 15732000 34369000 id P15 text Point 15
|
||||
15559000 36269000 18160000 id P16 text Point 16
|
||||
16552000 14570000 39763000 id P17 text Point 17
|
||||
11353000 13410000 38311000 id P18 text Point 18
|
||||
12383000 49302000 33539000 id P19 text Point 19
|
||||
44302000 21387000 23434000 id P20 text Point 20
|
||||
43107000 14206000 24728000 id P21 text Point 21
|
||||
49320000 43878000 24240000 id P22 text Point 22
|
||||
37519000 40514000 16409000 id P23 text Point 23
|
||||
37202000 40122000 42551000 id P24 text Point 24
|
||||
12783000 11757000 25348000 id P25 text Point 25
|
||||
39621000 30560000 15929000 id P26 text Point 26
|
||||
10937000 15183000 21413000 id P27 text Point 27
|
||||
39411000 12532000 44006000 id P28 text Point 28
|
||||
47905000 25552000 28902000 id P29 text Point 29
|
||||
28426000 45268000 27886000 id P30 text Point 30
|
||||
15026000 45897000 23911000 id P31 text Point 31
|
||||
24625000 14844000 12837000 id P32 text Point 32
|
||||
46304000 21144000 24421000 id P33 text Point 33
|
||||
29558000 10724000 27312000 id P34 text Point 34
|
||||
49636000 27202000 24626000 id P35 text Point 35
|
||||
38603000 23794000 41040000 id P36 text Point 36
|
||||
37336000 21742000 40982000 id P37 text Point 37
|
||||
35128000 38725000 25244000 id P38 text Point 38
|
||||
30419000 33591000 39512000 id P39 text Point 39
|
||||
18665000 11189000 45438000 id P40 text Point 40
|
||||
15442000 36392000 16074000 id P41 text Point 41
|
||||
43378000 27900000 38748000 id P42 text Point 42
|
||||
44424000 19982000 13528000 id P43 text Point 43
|
||||
42733000 15383000 28933000 id P44 text Point 44
|
||||
40144000 46822000 29588000 id P45 text Point 45
|
||||
16927000 38232000 43931000 id P46 text Point 46
|
||||
38910000 36030000 38003000 id P47 text Point 47
|
||||
48340000 38510000 39290000 id P48 text Point 48
|
||||
17258000 45665000 27152000 id P49 text Point 49
|
||||
48363000 39701000 11905000 id P50 text Point 50
|
||||
27660000 29370000 26029000 id P51 text Point 51
|
||||
47106000 30527000 17038000 id P52 text Point 52
|
||||
10471000 37521000 35398000 id P53 text Point 53
|
||||
27774000 44082000 40036000 id P54 text Point 54
|
||||
46887000 20413000 36649000 id P55 text Point 55
|
||||
10093000 46706000 19187000 id P56 text Point 56
|
||||
49093000 36514000 38499000 id P57 text Point 57
|
||||
48945000 49826000 23225000 id P58 text Point 58
|
||||
26852000 28926000 32243000 id P59 text Point 59
|
||||
34219000 34787000 30801000 id P60 text Point 60
|
||||
31075000 30369000 36898000 id P61 text Point 61
|
||||
28135000 21412000 25552000 id P62 text Point 62
|
||||
13347000 15980000 43094000 id P63 text Point 63
|
||||
26928000 31159000 16653000 id P64 text Point 64
|
||||
12364000 14374000 43646000 id P65 text Point 65
|
||||
38991000 49388000 48534000 id P66 text Point 66
|
||||
17180000 14935000 11680000 id P67 text Point 67
|
||||
27666000 29337000 44778000 id P68 text Point 68
|
||||
13660000 11108000 37986000 id P69 text Point 69
|
||||
36910000 10252000 41657000 id P70 text Point 70
|
||||
21785000 20095000 14903000 id P71 text Point 71
|
||||
33363000 42124000 39814000 id P72 text Point 72
|
||||
42758000 48892000 44762000 id P73 text Point 73
|
||||
16590000 22098000 28515000 id P74 text Point 74
|
||||
26448000 45475000 33361000 id P75 text Point 75
|
||||
41182000 23927000 25075000 id P76 text Point 76
|
||||
49801000 15636000 39883000 id P77 text Point 77
|
||||
32725000 13037000 49874000 id P78 text Point 78
|
||||
31130000 16471000 41939000 id P79 text Point 79
|
||||
19599000 37119000 26468000 id P80 text Point 80
|
||||
30024000 23097000 14711000 id P81 text Point 81
|
||||
39567000 48586000 49391000 id P82 text Point 82
|
||||
46249000 28249000 32393000 id P83 text Point 83
|
||||
12180000 20488000 46288000 id P84 text Point 84
|
||||
29659000 40098000 45152000 id P85 text Point 85
|
||||
41026000 19309000 15845000 id P86 text Point 86
|
||||
47146000 39852000 26666000 id P87 text Point 87
|
||||
39958000 46945000 11789000 id P88 text Point 88
|
||||
25921000 13147000 22257000 id P89 text Point 89
|
||||
28892000 28329000 49094000 id P90 text Point 90
|
||||
29563000 48312000 45703000 id P91 text Point 91
|
||||
46127000 46582000 13462000 id P92 text Point 92
|
||||
23268000 24051000 48652000 id P93 text Point 93
|
||||
22163000 26901000 28702000 id P94 text Point 94
|
||||
46968000 17027000 25787000 id P95 text Point 95
|
||||
24148000 44640000 15422000 id P96 text Point 96
|
||||
11566000 26486000 11735000 id P97 text Point 97
|
||||
11063000 38883000 16772000 id P98 text Point 98
|
||||
43081000 16718000 45813000 id P99 text Point 99
|
||||
236
data/assets/examples/pointclouds/points.asset
Normal file
236
data/assets/examples/pointclouds/points.asset
Normal file
@@ -0,0 +1,236 @@
|
||||
local earthAsset = asset.require("scene/solarsystem/planets/earth/earth")
|
||||
|
||||
|
||||
|
||||
-- Color mapped points close to Earth, with some different settings for color and
|
||||
-- sizing, and a StaticRotation that makes them not overlap
|
||||
|
||||
-- Point cloud with fixed color and default size (fixed)
|
||||
local FixedColor_FixedSize = {
|
||||
Identifier = "ExamplePoints_FixedSize",
|
||||
Parent = earthAsset.Earth.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderablePointCloud",
|
||||
File = asset.resource("data/dummydata.csv"),
|
||||
Coloring = {
|
||||
FixedColor = { 0.0, 0.5, 0.0 }
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Fixed Color / Fixed Size",
|
||||
Path = "/Example/Point Clouds",
|
||||
Description = "Point cloud with a fixed color and fixed sizing"
|
||||
}
|
||||
}
|
||||
|
||||
-- Point cloud with fixed color and size scaling that is limited by a certain size
|
||||
local FixedColor_MaxSize = {
|
||||
Identifier = "ExamplePoints_MaxSize",
|
||||
Parent = earthAsset.Earth.Identifier,
|
||||
Transform = {
|
||||
Rotation = {
|
||||
Type = "StaticRotation",
|
||||
Rotation = { 0, 0, 0.5 * math.pi }
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderablePointCloud",
|
||||
File = asset.resource("data/dummydata.csv"),
|
||||
Coloring = {
|
||||
FixedColor = { 0.0, 1.0, 1.0 }
|
||||
},
|
||||
SizeSettings = {
|
||||
MaxSize = 0.7,
|
||||
EnableMaxSizeControl = true
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Fixed Color / Max Size",
|
||||
Path = "/Example/Point Clouds",
|
||||
Description = "Point cloud with a fixed color and sizing with a given max size"
|
||||
}
|
||||
}
|
||||
|
||||
-- Point cloud with color mapping and fixed point sizing
|
||||
local ColorMapped_FixedSize = {
|
||||
Identifier = "ExamplePoints_ColorMapped",
|
||||
Parent = earthAsset.Earth.Identifier,
|
||||
Transform = {
|
||||
Rotation = {
|
||||
Type = "StaticRotation",
|
||||
Rotation = { 0, 0, -0.5 * math.pi }
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderablePointCloud",
|
||||
File = asset.resource("data/dummydata.csv"),
|
||||
Coloring = {
|
||||
ColorMapping = {
|
||||
File = asset.resource("viridis.cmap")
|
||||
}
|
||||
},
|
||||
SizeSettings = {
|
||||
-- Here we set the exponent for the scale explicitly, to a value that
|
||||
-- gives the points a suitable size based on their world-space coordinates
|
||||
ScaleExponent = 6.5
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Color Mapped",
|
||||
Path = "/Example/Point Clouds",
|
||||
Description = "Color mapped point cloud with fixed sizing"
|
||||
}
|
||||
}
|
||||
|
||||
-- Point cloud with fixed color and size scaling from a selected data column
|
||||
local FixedColor_ScaleBasedOnData = {
|
||||
Identifier = "ExamplePoints_ScaleFromData",
|
||||
Parent = earthAsset.Earth.Identifier,
|
||||
Transform = {
|
||||
Rotation = {
|
||||
Type = "StaticRotation",
|
||||
Rotation = { 0, 0.5 * math.pi, 0 }
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderablePointCloud",
|
||||
File = asset.resource("data/dummydata.csv"),
|
||||
Coloring = {
|
||||
FixedColor = { 0.5, 0.5, 0.0 }
|
||||
},
|
||||
SizeSettings = {
|
||||
-- The options for the columns that the points can be scaled by. The first
|
||||
-- alternative is chosen per default
|
||||
SizeMapping = { "number_withNan", "a" },
|
||||
-- Use a slightly smaller scale than above for the base size of the points
|
||||
-- (will decide the size of the smallest point). That way, the points don't
|
||||
-- become too big when scaled by the data parameter
|
||||
ScaleExponent = 5
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Fixed Color / Size From Data",
|
||||
Path = "/Example/Point Clouds",
|
||||
Description = [[Point cloud with a fixed color and sizing that can be set based on a
|
||||
column in the dataset]]
|
||||
}
|
||||
}
|
||||
|
||||
-- Point cloud with textures. Textured points can also be color mapped, but here it
|
||||
-- is disabled per default
|
||||
local Textured = {
|
||||
Identifier = "ExamplePoints_Textured",
|
||||
Parent = earthAsset.Earth.Identifier,
|
||||
Transform = {
|
||||
Rotation = {
|
||||
Type = "StaticRotation",
|
||||
Rotation = { 0, math.pi, 0 }
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderablePointCloud",
|
||||
File = asset.resource("data/dummydata.csv"),
|
||||
-- The path to the texture file. Here we use openspace.absPath so that we can use
|
||||
-- the ${DATA} token to get the path to a texture in the "OpenSpace/data" folder,
|
||||
-- but for a file at a relative location it would also work to use asset.resource,
|
||||
-- like for the data file above
|
||||
Texture = openspace.absPath("${DATA}/test3.jpg"),
|
||||
-- Disable additive blending, so that points will be rendered with their actual color
|
||||
-- and overlapping points will be sorted by depth. This works best when the points
|
||||
-- have an opacity of 1
|
||||
UseAdditiveBlending = false,
|
||||
Coloring = {
|
||||
ColorMapping = {
|
||||
-- Disable color map per default. When enabled, the texture color will be
|
||||
-- multiplied with the color from the color map
|
||||
Enabled = false,
|
||||
File = asset.resource("viridis.cmap")
|
||||
}
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Textured",
|
||||
Path = "/Example/Point Clouds",
|
||||
Description = "Point cloud with a texture per point"
|
||||
}
|
||||
}
|
||||
|
||||
-- Point cloud with more advanced color mapping and fixed point sizing.
|
||||
-- Here we have predefined a couple of parameters to use for the color mapping.
|
||||
-- Also, missing/NaN values are mapped to a specific color.
|
||||
-- Finally, no additive blending is used for the color, meaning that the color of
|
||||
-- overlapping points will not be mixed/added
|
||||
local ColorMappedAdvanced_NoBlend = {
|
||||
Identifier = "ExamplePoints_ColorMappedNoBlend",
|
||||
Parent = earthAsset.Earth.Identifier,
|
||||
Transform = {
|
||||
Rotation = {
|
||||
Type = "StaticRotation",
|
||||
Rotation = { 0, 0, math.pi }
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderablePointCloud",
|
||||
File = asset.resource("data/dummydata.csv"),
|
||||
UseAdditiveBlending = false, -- Disable additive blending
|
||||
Coloring = {
|
||||
ColorMapping = {
|
||||
File = asset.resource("viridis.cmap"),
|
||||
ParameterOptions = {
|
||||
{ Key = "number_withNan" }, -- no range => compute min and max
|
||||
{ Key = "normaldist_withMissing", Range = { -0.5, 0.5 } }
|
||||
},
|
||||
ShowMissingData = true,
|
||||
NoDataColor = { 0.5, 0.5, 0.5, 1.0 }
|
||||
}
|
||||
},
|
||||
SizeSettings = {
|
||||
ScaleExponent = 6.5
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Color Mapped (Advanced) - No blending",
|
||||
Path = "/Example/Point Clouds",
|
||||
Description = [[Color mapped point cloud without additive blending, with missing
|
||||
values shown in grey, and a limited choice of parameter options to use for
|
||||
the color mapping.]]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
asset.onInitialize(function()
|
||||
openspace.addSceneGraphNode(FixedColor_FixedSize)
|
||||
openspace.addSceneGraphNode(FixedColor_MaxSize)
|
||||
openspace.addSceneGraphNode(FixedColor_ScaleBasedOnData)
|
||||
openspace.addSceneGraphNode(Textured)
|
||||
openspace.addSceneGraphNode(ColorMapped_FixedSize)
|
||||
openspace.addSceneGraphNode(ColorMappedAdvanced_NoBlend)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function()
|
||||
openspace.removeSceneGraphNode(ColorMappedAdvanced_NoBlend)
|
||||
openspace.removeSceneGraphNode(ColorMapped_FixedSize)
|
||||
openspace.removeSceneGraphNode(Textured)
|
||||
openspace.removeSceneGraphNode(FixedColor_ScaleBasedOnData)
|
||||
openspace.removeSceneGraphNode(FixedColor_MaxSize)
|
||||
openspace.removeSceneGraphNode(FixedColor_FixedSize)
|
||||
end)
|
||||
|
||||
asset.export(FixedColor_FixedSize)
|
||||
asset.export(FixedColor_MaxSize)
|
||||
asset.export(FixedColor_ScaleBasedOnData)
|
||||
asset.export(Textured)
|
||||
asset.export(ColorMapped_FixedSize)
|
||||
asset.export(ColorMappedAdvanced_NoBlend)
|
||||
|
||||
|
||||
|
||||
asset.meta = {
|
||||
Name = "Example - Point Clouds",
|
||||
Version = "1.0",
|
||||
Description = [[Examples of point clouds with a few different settings for sizing and
|
||||
coloring]],
|
||||
Author = "OpenSpace Team",
|
||||
URL = "http://openspaceproject.com",
|
||||
License = "MIT license"
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
local earthAsset = asset.require("scene/solarsystem/planets/earth/earth")
|
||||
|
||||
|
||||
|
||||
local Example = {
|
||||
Identifier = "ExamplePoints_ColorMapping",
|
||||
Parent = earthAsset.Earth.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderablePointCloud",
|
||||
File = asset.resource("data/dummydata.csv"),
|
||||
Coloring = {
|
||||
ColorMapping = {
|
||||
File = asset.resource("viridis.cmap"),
|
||||
-- Set the default choice of parameter and value range explicitly. Values
|
||||
-- outside this range will be given special colors
|
||||
Parameter = "normaldist_withMissing",
|
||||
ValueRange = { -0.25, 0.25 },
|
||||
-- Show missing data values, so we can show these in a specific color
|
||||
ShowMissingData = true,
|
||||
-- Color for missing data points
|
||||
NoDataColor = { 1.0, 0.0, 0.0, 1.0 },
|
||||
-- Color for point with values above the given range. If not set, or if
|
||||
-- UseAboveRangeColor is false, the color will be set to the last value
|
||||
-- in the color map (as per default)
|
||||
AboveRangeColor = { 0.0, 1.0, 0.0, 1.0 },
|
||||
-- Color for point with values below the given range. If not set, or if
|
||||
-- UseAboveRangeColor is false, the color will be set to the first value
|
||||
-- in the color map (as per default)
|
||||
BelowRangeColor = { 0.0, 0.0, 1.0, 1.0 },
|
||||
|
||||
-- Some other parameters that can be set are the following (these are all the
|
||||
-- default values):
|
||||
|
||||
-- If true, completely hide all values outside the range
|
||||
HideValuesOutsideRange = false,
|
||||
-- Toggle whether the above range color should be used
|
||||
UseAboveRangeColor = true,
|
||||
-- Toggle whether the below range color should be used
|
||||
UseBelowRangeColor = true
|
||||
}
|
||||
},
|
||||
SizeSettings = {
|
||||
-- Reduce the size of the point a little bit so that they don't overlap so much
|
||||
ScaleFactor = 0.5
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Advanced Color Mapping Settings",
|
||||
Path = "/Example/Point Clouds",
|
||||
Description = [[Example of a point cloud where the range is set explicitly and
|
||||
specific colors are used for values outside the range, as well as for missing
|
||||
data values.]]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
asset.onInitialize(function()
|
||||
openspace.addSceneGraphNode(Example)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function()
|
||||
openspace.removeSceneGraphNode(Example)
|
||||
end)
|
||||
|
||||
asset.export(Example)
|
||||
|
||||
|
||||
|
||||
asset.meta = {
|
||||
Name = "Example - Advanced Color Mapping Settings",
|
||||
Version = "1.0",
|
||||
Description = [[Example of a point cloud where the range is set explicitly and
|
||||
specific colors are used for values outside the range, as well as for missing
|
||||
data values]],
|
||||
Author = "OpenSpace Team",
|
||||
URL = "http://openspaceproject.com",
|
||||
License = "MIT license"
|
||||
}
|
||||
68
data/assets/examples/pointclouds/points_datamapping.asset
Normal file
68
data/assets/examples/pointclouds/points_datamapping.asset
Normal file
@@ -0,0 +1,68 @@
|
||||
local earthAsset = asset.require("scene/solarsystem/planets/earth/earth")
|
||||
|
||||
|
||||
|
||||
local Example = {
|
||||
Identifier = "ExamplePoints_DataMapping",
|
||||
Parent = earthAsset.Earth.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderablePointCloud",
|
||||
File = asset.resource("data/dummydata.csv"),
|
||||
DataMapping = {
|
||||
-- Using the DataMapping, we can specify the X, Y and Z values of the point
|
||||
-- positions to be set by any value in the dataset, without changing the dataset
|
||||
-- used for the rendering
|
||||
X = "a",
|
||||
Y = "b",
|
||||
Z = "a",
|
||||
-- It is also possible to specify a numeric value that corresponds to missing
|
||||
-- values in the dataset. These will be interpreted as NaN values
|
||||
MissingDataValue = 29,
|
||||
-- And some column that we do not want to include in the loading. Here we can for
|
||||
-- example skip the regular position columns
|
||||
ExcludeColumns = { "x", "y", "z" }
|
||||
},
|
||||
-- Interpret values as Parsec rather than meter. The values in the a and b columns
|
||||
-- are much smaller than the x, y and z
|
||||
Unit = "pc",
|
||||
-- To show the values corresponding to missing values, use a color map and show
|
||||
-- missing data values in a specific color
|
||||
Coloring = {
|
||||
ColorMapping = {
|
||||
File = asset.resource("viridis.cmap"),
|
||||
ShowMissingData = true,
|
||||
NoDataColor = { 1.0, 0.0, 0.0, 1.0 }
|
||||
}
|
||||
},
|
||||
},
|
||||
GUI = {
|
||||
Name = "Data Mapping",
|
||||
Path = "/Example/Point Clouds",
|
||||
Description = [[Example of a point cloud where the X, Y and Z position are mapped to
|
||||
other columns in the dataset.]]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
asset.onInitialize(function()
|
||||
openspace.addSceneGraphNode(Example)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function()
|
||||
openspace.removeSceneGraphNode(Example)
|
||||
end)
|
||||
|
||||
asset.export(Example)
|
||||
|
||||
|
||||
|
||||
asset.meta = {
|
||||
Name = "Example - Point Cloud with Custom Data Mapping",
|
||||
Version = "1.0",
|
||||
Description = [[Example of a point cloud where the X, Y and Z position are mapped to
|
||||
other columns in the dataset. The data mapping also includes some settings for
|
||||
missing data values and columns to exclude when loading the dataset]],
|
||||
Author = "OpenSpace Team",
|
||||
URL = "http://openspaceproject.com",
|
||||
License = "MIT license"
|
||||
}
|
||||
88
data/assets/examples/pointclouds/points_fading.asset
Normal file
88
data/assets/examples/pointclouds/points_fading.asset
Normal file
@@ -0,0 +1,88 @@
|
||||
local earthAsset = asset.require("scene/solarsystem/planets/earth/earth")
|
||||
|
||||
|
||||
|
||||
local EarthRadius = 6371000
|
||||
|
||||
local Example = {
|
||||
Identifier = "ExamplePoints_Fading",
|
||||
Parent = earthAsset.Earth.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderablePointCloud",
|
||||
File = asset.resource("data/dummydata.csv"),
|
||||
Coloring = {
|
||||
FixedColor = { 0.0, 0.3, 1.0 }
|
||||
},
|
||||
Fading = {
|
||||
-- Control at what distance the points fade in. The points will be invisible
|
||||
-- when the camera is closer than the first value, and fully visible when the
|
||||
-- camera is further away then the last value. In-between they will linearly
|
||||
-- fade in or out
|
||||
FadeInDistances = { 15.0 * EarthRadius, 35.0 * EarthRadius }
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "PointCloud - Fading",
|
||||
Path = "/Example/Point Clouds",
|
||||
Description = [[Example of a point cloud with distance-based fading (the points
|
||||
are visible when the camera reaches a certain distance away from the origin)]]
|
||||
}
|
||||
}
|
||||
|
||||
local Example_Invert = {
|
||||
Identifier = "ExamplePoints_FadingInverted",
|
||||
Parent = earthAsset.Earth.Identifier,
|
||||
-- Rotate so that the points don't overlap with the previous ones
|
||||
Transform = {
|
||||
Rotation = {
|
||||
Type = "StaticRotation",
|
||||
Rotation = { 0, math.pi, 0 }
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderablePointCloud",
|
||||
File = asset.resource("data/dummydata.csv"),
|
||||
Coloring = {
|
||||
FixedColor = { 1.0, 0.3, 0.0 }
|
||||
},
|
||||
Fading = {
|
||||
-- Use the same fade distances, but invert the fading so that the points are
|
||||
-- visible when the camera is closer to the origin that the first value, and
|
||||
-- invisible when further away than the last value
|
||||
FadeInDistances = { 15.0 * EarthRadius, 35.0 * EarthRadius },
|
||||
Invert = true
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "PointCloud - Fading (Inverted)",
|
||||
Path = "/Example/Point Clouds",
|
||||
Description = [[Example of a point cloud with inverted distance-based fading
|
||||
(the points are visible when the camera is close to the origin, and invisible
|
||||
when further away)]]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
asset.onInitialize(function()
|
||||
openspace.addSceneGraphNode(Example)
|
||||
openspace.addSceneGraphNode(Example_Invert)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function()
|
||||
openspace.removeSceneGraphNode(Example_Invert)
|
||||
openspace.removeSceneGraphNode(Example)
|
||||
end)
|
||||
|
||||
asset.export(Example)
|
||||
asset.export(Example_Invert)
|
||||
|
||||
|
||||
|
||||
asset.meta = {
|
||||
Name = "Example - Point Cloud with Fading",
|
||||
Version = "1.0",
|
||||
Description = [[Example of a point cloud with distance-based fading]],
|
||||
Author = "OpenSpace Team",
|
||||
URL = "http://openspaceproject.com",
|
||||
License = "MIT license"
|
||||
}
|
||||
98
data/assets/examples/pointclouds/points_units_labels.asset
Normal file
98
data/assets/examples/pointclouds/points_units_labels.asset
Normal file
@@ -0,0 +1,98 @@
|
||||
local earthAsset = asset.require("scene/solarsystem/planets/earth/earth")
|
||||
|
||||
-- @TODO The labels are not correctly oriented towards the camera!
|
||||
|
||||
local Example = {
|
||||
Identifier = "ExamplePoints_UnitsAndLabels",
|
||||
Parent = earthAsset.Earth.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderablePointCloud",
|
||||
File = asset.resource("data/dummydata.csv"),
|
||||
Coloring = {
|
||||
FixedColor = { 0.3, 0.8, 0.3 }
|
||||
},
|
||||
DataMapping = {
|
||||
-- When loading labels from a CSV file, we need to provide information about
|
||||
-- which column corresponds to the name to be used for the labels (this is
|
||||
-- not required for SPECK files)
|
||||
Name = "number_withNan"
|
||||
},
|
||||
-- Add a unit to interpret the points to be in kilometers rather than meters
|
||||
Unit = "Km",
|
||||
-- Add some labels. We also need to enable them for them to be visible.
|
||||
-- Since we do not specify a label file (see below), the positions and text of
|
||||
-- of the labels will be set based on the information in the CSV file
|
||||
Labels = {
|
||||
Enabled = true,
|
||||
Size = 7.5
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Units & Labels",
|
||||
Path = "/Example/Point Clouds",
|
||||
Description = [[Example of a point cloud with labels created by specifying a 'Name'
|
||||
column for the dataset. The positions of the labels will exactly match that of the
|
||||
points]]
|
||||
}
|
||||
}
|
||||
|
||||
local Example_LabelFromFile = {
|
||||
Identifier = "ExamplePoints_UnitsAndLabels_File",
|
||||
Parent = earthAsset.Earth.Identifier,
|
||||
-- Rotate to not overlap with the other dataset
|
||||
Transform = {
|
||||
Rotation = {
|
||||
Type = "StaticRotation",
|
||||
Rotation = { 0, 0, -0.5 * math.pi }
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderablePointCloud",
|
||||
File = asset.resource("data/dummydata.csv"),
|
||||
Coloring = {
|
||||
FixedColor = { 0.0, 0.3, 1.0 }
|
||||
},
|
||||
-- Add a unit to interpret the points to be in kilometers rather than meters
|
||||
Unit = "Km",
|
||||
-- Also load a label file with the positions of the label (in this case they are the
|
||||
-- same as in the CSV file, but that is not always the case)
|
||||
Labels = {
|
||||
Enabled = true,
|
||||
File = asset.resource("data/dummydata.label"),
|
||||
Size = 7.5,
|
||||
-- When we add an explicit label file we also have to specify the unit, if it is
|
||||
-- different than meters
|
||||
Unit = "Km"
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Units & Labels (Explicit Label file)",
|
||||
Path = "/Example/Point Clouds",
|
||||
Description = [[Example of a point cloud with labels, created from a label file]]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
asset.onInitialize(function()
|
||||
openspace.addSceneGraphNode(Example)
|
||||
openspace.addSceneGraphNode(Example_LabelFromFile)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function()
|
||||
openspace.removeSceneGraphNode(Example_LabelFromFile)
|
||||
openspace.removeSceneGraphNode(Example)
|
||||
end)
|
||||
|
||||
asset.export(Example)
|
||||
asset.export(Example_LabelFromFile)
|
||||
|
||||
|
||||
asset.meta = {
|
||||
Name = "Example - Point Cloud with Unit and Labels",
|
||||
Version = "1.0",
|
||||
Description = [[Example of point clouds with labels, either set from the data file
|
||||
itself or from a separate .label file]],
|
||||
Author = "OpenSpace Team",
|
||||
URL = "http://openspaceproject.com",
|
||||
License = "MIT license"
|
||||
}
|
||||
45
data/assets/examples/pointclouds/polygon_cloud.asset
Normal file
45
data/assets/examples/pointclouds/polygon_cloud.asset
Normal file
@@ -0,0 +1,45 @@
|
||||
local Example = {
|
||||
Identifier = "ExamplePoints_Polygon",
|
||||
Renderable = {
|
||||
Type = "RenderablePolygonCloud",
|
||||
File = asset.resource("data/dummydata.csv"),
|
||||
Coloring = {
|
||||
FixedColor = { 0.8, 0.0, 0.0 }
|
||||
},
|
||||
-- Specify the number of sides for the polygon. 3 = triangle, 4 = square,
|
||||
-- 5 = pentagon, 6 = hexagon, and so on
|
||||
PolygonSides = 6,
|
||||
-- Scale up the dataset, so that it is interpreted in Kilometers instead of meters,
|
||||
-- for increased visiblity
|
||||
Unit = "Km"
|
||||
},
|
||||
GUI = {
|
||||
Name = "Polygon Cloud",
|
||||
Path = "/Example/Point Clouds",
|
||||
Description = [[Example of a polygon cloud, which is a point cloud where a uniform
|
||||
polygon is used for the shape of the points]]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
asset.onInitialize(function()
|
||||
openspace.addSceneGraphNode(Example)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function()
|
||||
openspace.removeSceneGraphNode(Example)
|
||||
end)
|
||||
|
||||
asset.export(Example)
|
||||
|
||||
|
||||
|
||||
asset.meta = {
|
||||
Name = "Example - Polygon Cloud",
|
||||
Version = "1.0",
|
||||
Description = [[Example of a polygon cloud, which is a point cloud where a uniform
|
||||
polygon is used for the shape of the points]],
|
||||
Author = "OpenSpace Team",
|
||||
URL = "http://openspaceproject.com",
|
||||
License = "MIT license"
|
||||
}
|
||||
258
data/assets/examples/pointclouds/viridis.cmap
Normal file
258
data/assets/examples/pointclouds/viridis.cmap
Normal file
@@ -0,0 +1,258 @@
|
||||
# Viridis Color map
|
||||
256
|
||||
0.267004 0.004874 0.329415 1.000000
|
||||
0.268510 0.009605 0.335427 1.000000
|
||||
0.269944 0.014625 0.341379 1.000000
|
||||
0.271305 0.019942 0.347269 1.000000
|
||||
0.272594 0.025563 0.353093 1.000000
|
||||
0.273809 0.031497 0.358853 1.000000
|
||||
0.274952 0.037752 0.364543 1.000000
|
||||
0.276022 0.044167 0.370164 1.000000
|
||||
0.277018 0.050344 0.375715 1.000000
|
||||
0.277941 0.056324 0.381191 1.000000
|
||||
0.278791 0.062145 0.386592 1.000000
|
||||
0.279566 0.067836 0.391917 1.000000
|
||||
0.280267 0.073417 0.397163 1.000000
|
||||
0.280894 0.078907 0.402329 1.000000
|
||||
0.281446 0.084320 0.407414 1.000000
|
||||
0.281924 0.089666 0.412415 1.000000
|
||||
0.282327 0.094955 0.417331 1.000000
|
||||
0.282656 0.100196 0.422160 1.000000
|
||||
0.282910 0.105393 0.426902 1.000000
|
||||
0.283091 0.110553 0.431554 1.000000
|
||||
0.283197 0.115680 0.436115 1.000000
|
||||
0.283229 0.120777 0.440584 1.000000
|
||||
0.283187 0.125848 0.444960 1.000000
|
||||
0.283072 0.130895 0.449241 1.000000
|
||||
0.282884 0.135920 0.453427 1.000000
|
||||
0.282623 0.140926 0.457517 1.000000
|
||||
0.282290 0.145912 0.461510 1.000000
|
||||
0.281887 0.150881 0.465405 1.000000
|
||||
0.281412 0.155834 0.469201 1.000000
|
||||
0.280868 0.160771 0.472899 1.000000
|
||||
0.280255 0.165693 0.476498 1.000000
|
||||
0.279574 0.170599 0.479997 1.000000
|
||||
0.278826 0.175490 0.483397 1.000000
|
||||
0.278012 0.180367 0.486697 1.000000
|
||||
0.277134 0.185228 0.489898 1.000000
|
||||
0.276194 0.190074 0.493001 1.000000
|
||||
0.275191 0.194905 0.496005 1.000000
|
||||
0.274128 0.199721 0.498911 1.000000
|
||||
0.273006 0.204520 0.501721 1.000000
|
||||
0.271828 0.209303 0.504434 1.000000
|
||||
0.270595 0.214069 0.507052 1.000000
|
||||
0.269308 0.218818 0.509577 1.000000
|
||||
0.267968 0.223549 0.512008 1.000000
|
||||
0.266580 0.228262 0.514349 1.000000
|
||||
0.265145 0.232956 0.516599 1.000000
|
||||
0.263663 0.237631 0.518762 1.000000
|
||||
0.262138 0.242286 0.520837 1.000000
|
||||
0.260571 0.246922 0.522828 1.000000
|
||||
0.258965 0.251537 0.524736 1.000000
|
||||
0.257322 0.256130 0.526563 1.000000
|
||||
0.255645 0.260703 0.528312 1.000000
|
||||
0.253935 0.265254 0.529983 1.000000
|
||||
0.252194 0.269783 0.531579 1.000000
|
||||
0.250425 0.274290 0.533103 1.000000
|
||||
0.248629 0.278775 0.534556 1.000000
|
||||
0.246811 0.283237 0.535941 1.000000
|
||||
0.244972 0.287675 0.537260 1.000000
|
||||
0.243113 0.292092 0.538516 1.000000
|
||||
0.241237 0.296485 0.539709 1.000000
|
||||
0.239346 0.300855 0.540844 1.000000
|
||||
0.237441 0.305202 0.541921 1.000000
|
||||
0.235526 0.309527 0.542944 1.000000
|
||||
0.233603 0.313828 0.543914 1.000000
|
||||
0.231674 0.318106 0.544834 1.000000
|
||||
0.229739 0.322361 0.545706 1.000000
|
||||
0.227802 0.326594 0.546532 1.000000
|
||||
0.225863 0.330805 0.547314 1.000000
|
||||
0.223925 0.334994 0.548053 1.000000
|
||||
0.221989 0.339161 0.548752 1.000000
|
||||
0.220057 0.343307 0.549413 1.000000
|
||||
0.218130 0.347432 0.550038 1.000000
|
||||
0.216210 0.351535 0.550627 1.000000
|
||||
0.214298 0.355619 0.551184 1.000000
|
||||
0.212395 0.359683 0.551710 1.000000
|
||||
0.210503 0.363727 0.552206 1.000000
|
||||
0.208623 0.367752 0.552675 1.000000
|
||||
0.206756 0.371758 0.553117 1.000000
|
||||
0.204903 0.375746 0.553533 1.000000
|
||||
0.203063 0.379716 0.553925 1.000000
|
||||
0.201239 0.383670 0.554294 1.000000
|
||||
0.199430 0.387607 0.554642 1.000000
|
||||
0.197636 0.391528 0.554969 1.000000
|
||||
0.195860 0.395433 0.555276 1.000000
|
||||
0.194100 0.399323 0.555565 1.000000
|
||||
0.192357 0.403199 0.555836 1.000000
|
||||
0.190631 0.407061 0.556089 1.000000
|
||||
0.188923 0.410910 0.556326 1.000000
|
||||
0.187231 0.414746 0.556547 1.000000
|
||||
0.185556 0.418570 0.556753 1.000000
|
||||
0.183898 0.422383 0.556944 1.000000
|
||||
0.182256 0.426184 0.557120 1.000000
|
||||
0.180629 0.429975 0.557282 1.000000
|
||||
0.179019 0.433756 0.557430 1.000000
|
||||
0.177423 0.437527 0.557565 1.000000
|
||||
0.175841 0.441290 0.557685 1.000000
|
||||
0.174274 0.445044 0.557792 1.000000
|
||||
0.172719 0.448791 0.557885 1.000000
|
||||
0.171176 0.452530 0.557965 1.000000
|
||||
0.169646 0.456262 0.558030 1.000000
|
||||
0.168126 0.459988 0.558082 1.000000
|
||||
0.166617 0.463708 0.558119 1.000000
|
||||
0.165117 0.467423 0.558141 1.000000
|
||||
0.163625 0.471133 0.558148 1.000000
|
||||
0.162142 0.474838 0.558140 1.000000
|
||||
0.160665 0.478540 0.558115 1.000000
|
||||
0.159194 0.482237 0.558073 1.000000
|
||||
0.157729 0.485932 0.558013 1.000000
|
||||
0.156270 0.489624 0.557936 1.000000
|
||||
0.154815 0.493313 0.557840 1.000000
|
||||
0.153364 0.497000 0.557724 1.000000
|
||||
0.151918 0.500685 0.557587 1.000000
|
||||
0.150476 0.504369 0.557430 1.000000
|
||||
0.149039 0.508051 0.557250 1.000000
|
||||
0.147607 0.511733 0.557049 1.000000
|
||||
0.146180 0.515413 0.556823 1.000000
|
||||
0.144759 0.519093 0.556572 1.000000
|
||||
0.143343 0.522773 0.556295 1.000000
|
||||
0.141935 0.526453 0.555991 1.000000
|
||||
0.140536 0.530132 0.555659 1.000000
|
||||
0.139147 0.533812 0.555298 1.000000
|
||||
0.137770 0.537492 0.554906 1.000000
|
||||
0.136408 0.541173 0.554483 1.000000
|
||||
0.135066 0.544853 0.554029 1.000000
|
||||
0.133743 0.548535 0.553541 1.000000
|
||||
0.132444 0.552216 0.553018 1.000000
|
||||
0.131172 0.555899 0.552459 1.000000
|
||||
0.129933 0.559582 0.551864 1.000000
|
||||
0.128729 0.563265 0.551229 1.000000
|
||||
0.127568 0.566949 0.550556 1.000000
|
||||
0.126453 0.570633 0.549841 1.000000
|
||||
0.125394 0.574318 0.549086 1.000000
|
||||
0.124395 0.578002 0.548287 1.000000
|
||||
0.123463 0.581687 0.547445 1.000000
|
||||
0.122606 0.585371 0.546557 1.000000
|
||||
0.121831 0.589055 0.545623 1.000000
|
||||
0.121148 0.592739 0.544641 1.000000
|
||||
0.120565 0.596422 0.543611 1.000000
|
||||
0.120092 0.600104 0.542530 1.000000
|
||||
0.119738 0.603785 0.541400 1.000000
|
||||
0.119512 0.607464 0.540218 1.000000
|
||||
0.119423 0.611141 0.538982 1.000000
|
||||
0.119483 0.614817 0.537692 1.000000
|
||||
0.119699 0.618490 0.536347 1.000000
|
||||
0.120081 0.622161 0.534946 1.000000
|
||||
0.120638 0.625828 0.533488 1.000000
|
||||
0.121380 0.629492 0.531973 1.000000
|
||||
0.122312 0.633153 0.530398 1.000000
|
||||
0.123444 0.636809 0.528763 1.000000
|
||||
0.124780 0.640461 0.527068 1.000000
|
||||
0.126326 0.644107 0.525311 1.000000
|
||||
0.128087 0.647749 0.523491 1.000000
|
||||
0.130067 0.651384 0.521608 1.000000
|
||||
0.132268 0.655014 0.519661 1.000000
|
||||
0.134692 0.658636 0.517649 1.000000
|
||||
0.137339 0.662252 0.515571 1.000000
|
||||
0.140210 0.665859 0.513427 1.000000
|
||||
0.143303 0.669459 0.511215 1.000000
|
||||
0.146616 0.673050 0.508936 1.000000
|
||||
0.150148 0.676631 0.506589 1.000000
|
||||
0.153894 0.680203 0.504172 1.000000
|
||||
0.157851 0.683765 0.501686 1.000000
|
||||
0.162016 0.687316 0.499129 1.000000
|
||||
0.166383 0.690856 0.496502 1.000000
|
||||
0.170948 0.694384 0.493803 1.000000
|
||||
0.175707 0.697900 0.491033 1.000000
|
||||
0.180653 0.701402 0.488189 1.000000
|
||||
0.185783 0.704891 0.485273 1.000000
|
||||
0.191090 0.708366 0.482284 1.000000
|
||||
0.196571 0.711827 0.479221 1.000000
|
||||
0.202219 0.715272 0.476084 1.000000
|
||||
0.208030 0.718701 0.472873 1.000000
|
||||
0.214000 0.722114 0.469588 1.000000
|
||||
0.220124 0.725509 0.466226 1.000000
|
||||
0.226397 0.728888 0.462789 1.000000
|
||||
0.232815 0.732247 0.459277 1.000000
|
||||
0.239374 0.735588 0.455688 1.000000
|
||||
0.246070 0.738910 0.452024 1.000000
|
||||
0.252899 0.742211 0.448284 1.000000
|
||||
0.259857 0.745492 0.444467 1.000000
|
||||
0.266941 0.748751 0.440573 1.000000
|
||||
0.274149 0.751988 0.436601 1.000000
|
||||
0.281477 0.755203 0.432552 1.000000
|
||||
0.288921 0.758394 0.428426 1.000000
|
||||
0.296479 0.761561 0.424223 1.000000
|
||||
0.304148 0.764704 0.419943 1.000000
|
||||
0.311925 0.767822 0.415586 1.000000
|
||||
0.319809 0.770914 0.411152 1.000000
|
||||
0.327796 0.773980 0.406640 1.000000
|
||||
0.335885 0.777018 0.402049 1.000000
|
||||
0.344074 0.780029 0.397381 1.000000
|
||||
0.352360 0.783011 0.392636 1.000000
|
||||
0.360741 0.785964 0.387814 1.000000
|
||||
0.369214 0.788888 0.382914 1.000000
|
||||
0.377779 0.791781 0.377939 1.000000
|
||||
0.386433 0.794644 0.372886 1.000000
|
||||
0.395174 0.797475 0.367757 1.000000
|
||||
0.404001 0.800275 0.362552 1.000000
|
||||
0.412913 0.803041 0.357269 1.000000
|
||||
0.421908 0.805774 0.351910 1.000000
|
||||
0.430983 0.808473 0.346476 1.000000
|
||||
0.440137 0.811138 0.340967 1.000000
|
||||
0.449368 0.813768 0.335384 1.000000
|
||||
0.458674 0.816363 0.329727 1.000000
|
||||
0.468053 0.818921 0.323998 1.000000
|
||||
0.477504 0.821444 0.318195 1.000000
|
||||
0.487026 0.823929 0.312321 1.000000
|
||||
0.496615 0.826376 0.306377 1.000000
|
||||
0.506271 0.828786 0.300362 1.000000
|
||||
0.515992 0.831158 0.294279 1.000000
|
||||
0.525776 0.833491 0.288127 1.000000
|
||||
0.535621 0.835785 0.281908 1.000000
|
||||
0.545524 0.838039 0.275626 1.000000
|
||||
0.555484 0.840254 0.269281 1.000000
|
||||
0.565498 0.842430 0.262877 1.000000
|
||||
0.575563 0.844566 0.256415 1.000000
|
||||
0.585678 0.846661 0.249897 1.000000
|
||||
0.595839 0.848717 0.243329 1.000000
|
||||
0.606045 0.850733 0.236712 1.000000
|
||||
0.616293 0.852709 0.230052 1.000000
|
||||
0.626579 0.854645 0.223353 1.000000
|
||||
0.636902 0.856542 0.216620 1.000000
|
||||
0.647257 0.858400 0.209861 1.000000
|
||||
0.657642 0.860219 0.203082 1.000000
|
||||
0.668054 0.861999 0.196293 1.000000
|
||||
0.678489 0.863742 0.189503 1.000000
|
||||
0.688944 0.865448 0.182725 1.000000
|
||||
0.699415 0.867117 0.175971 1.000000
|
||||
0.709898 0.868751 0.169257 1.000000
|
||||
0.720391 0.870350 0.162603 1.000000
|
||||
0.730889 0.871916 0.156029 1.000000
|
||||
0.741388 0.873449 0.149561 1.000000
|
||||
0.751884 0.874951 0.143228 1.000000
|
||||
0.762373 0.876424 0.137064 1.000000
|
||||
0.772852 0.877868 0.131109 1.000000
|
||||
0.783315 0.879285 0.125405 1.000000
|
||||
0.793760 0.880678 0.120005 1.000000
|
||||
0.804182 0.882046 0.114965 1.000000
|
||||
0.814576 0.883393 0.110347 1.000000
|
||||
0.824940 0.884720 0.106217 1.000000
|
||||
0.835270 0.886029 0.102646 1.000000
|
||||
0.845561 0.887322 0.099702 1.000000
|
||||
0.855810 0.888601 0.097452 1.000000
|
||||
0.866013 0.889868 0.095953 1.000000
|
||||
0.876168 0.891125 0.095250 1.000000
|
||||
0.886271 0.892374 0.095374 1.000000
|
||||
0.896320 0.893616 0.096335 1.000000
|
||||
0.906311 0.894855 0.098125 1.000000
|
||||
0.916242 0.896091 0.100717 1.000000
|
||||
0.926106 0.897330 0.104071 1.000000
|
||||
0.935904 0.898570 0.108131 1.000000
|
||||
0.945636 0.899815 0.112838 1.000000
|
||||
0.955300 0.901065 0.118128 1.000000
|
||||
0.964894 0.902323 0.123941 1.000000
|
||||
0.974417 0.903590 0.130215 1.000000
|
||||
0.983868 0.904867 0.136897 1.000000
|
||||
0.993248 0.906157 0.143936 1.000000
|
||||
@@ -9,26 +9,33 @@ local speck = asset.resource({
|
||||
Name = "2dF Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_2dF_speck",
|
||||
Version = 2
|
||||
Version = 3
|
||||
})
|
||||
|
||||
|
||||
local Object = {
|
||||
Identifier = "2dF",
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Type = "RenderablePointCloud",
|
||||
Enabled = false,
|
||||
Color = { 1.0, 1.0, 1.0 },
|
||||
Opacity = 1.0,
|
||||
File = speck .. "2dF.speck",
|
||||
Unit = "Mpc",
|
||||
Texture = textures .. "point3A.png",
|
||||
ColorMap = speck .. "2dF.cmap",
|
||||
ColorOption = { "redshift", "proximity" },
|
||||
ColorRange = { { 0.0, 0.075 }, { 1.0, 25.0 } },
|
||||
ScaleFactor = 520.0,
|
||||
BillboardMinMaxSize = { 0.0, 4.7 },
|
||||
EnablePixelSizeControl = true
|
||||
Coloring = {
|
||||
ColorMapping = {
|
||||
File = speck .. "2dF.cmap",
|
||||
ParameterOptions = {
|
||||
{ Key = "proximity", Range = { 1.0, 25.0 } },
|
||||
{ Key = "redshift", Range = { 0.0, 0.075 } }
|
||||
}
|
||||
}
|
||||
},
|
||||
SizeSettings = {
|
||||
ScaleExponent = 22.6,
|
||||
MaxSize = 0.2,
|
||||
EnableMaxSizeControl = true
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "2dF Galaxies",
|
||||
@@ -64,7 +71,7 @@ asset.export(Object)
|
||||
|
||||
asset.meta = {
|
||||
Name = "2dF Galaxies",
|
||||
Version = "2.1",
|
||||
Version = "3.0",
|
||||
Description = "Digital Universe asset for the The Two-degree Field (2dF) Survey",
|
||||
Author = "Brian Abbott (AMNH), Eric Gawiser (Rutgers U)",
|
||||
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
|
||||
|
||||
@@ -9,28 +9,34 @@ local speck = asset.resource({
|
||||
Name = "2MASS Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_2mass_speck",
|
||||
Version = 1
|
||||
Version = 2
|
||||
})
|
||||
|
||||
|
||||
local Object = {
|
||||
Identifier = "2MASS",
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Type = "RenderablePointCloud",
|
||||
Enabled = false,
|
||||
Color = { 1.0, 0.4, 0.2 },
|
||||
Opacity = 1.0,
|
||||
File = speck .. "2MASS.speck",
|
||||
Unit = "Mpc",
|
||||
Texture = textures .. "point3A.png",
|
||||
ColorMap = speck .. "lss.cmap",
|
||||
ColorOption = { "redshift", "prox5Mpc" },
|
||||
ColorRange = { { 0.0, 0.075 }, { 1.0, 50.0 } },
|
||||
CorrectionSizeEndDistance = 20.6,
|
||||
CorrectionSizeFactor = 15.0,
|
||||
ScaleFactor = 510.78,
|
||||
BillboardMinMaxSize = { 0.0, 11.15 },
|
||||
EnablePixelSizeControl = true
|
||||
Coloring = {
|
||||
FixedColor = { 1.0, 0.4, 0.2 },
|
||||
ColorMapping = {
|
||||
File = speck .. "lss.cmap",
|
||||
ParameterOptions = {
|
||||
{ Key = "prox5Mpc", Range = { 1.0, 50.0 } },
|
||||
{ Key = "redshift", Range = { 0.0, 0.075 } }
|
||||
}
|
||||
}
|
||||
},
|
||||
SizeSettings = {
|
||||
ScaleExponent = 22.2,
|
||||
MaxSize = 0.44,
|
||||
EnableMaxSizeControl = true
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "2MASS Galaxies",
|
||||
@@ -60,7 +66,7 @@ asset.export(Object)
|
||||
|
||||
asset.meta = {
|
||||
Name = "2MASS Galaxies",
|
||||
Version = "1.1",
|
||||
Version = "2.0",
|
||||
Description = "Digital Universe asset for the Two Micron All-Sky Survey (2MASS) survey",
|
||||
Author = "Brian Abbott (AMNH)",
|
||||
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
|
||||
|
||||
@@ -9,26 +9,34 @@ local speck = asset.resource({
|
||||
Name = "6dF Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_6dF_speck",
|
||||
Version = 2
|
||||
Version = 3
|
||||
})
|
||||
|
||||
|
||||
local Object = {
|
||||
Identifier = "6dF",
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Type = "RenderablePointCloud",
|
||||
Enabled = false,
|
||||
Color = { 1.0, 1.0, 0.0 },
|
||||
Opacity = 1.0,
|
||||
File = speck .. "6dF.speck",
|
||||
Unit = "Mpc",
|
||||
Texture = textures .. "point3A.png",
|
||||
ColorMap = speck .. "6dF.cmap",
|
||||
ColorOption = { "redshift", "proximity" },
|
||||
ColorRange = { { 0.0, 0.075 }, { 1.0, 10.0 } },
|
||||
ScaleFactor = 534.0,
|
||||
BillboardMinMaxSize = { 0.0, 9.0 },
|
||||
EnablePixelSizeControl = true
|
||||
Coloring = {
|
||||
FixedColor = { 1.0, 1.0, 0.0 },
|
||||
ColorMapping = {
|
||||
File = speck .. "6dF.cmap",
|
||||
ParameterOptions = {
|
||||
{ Key = "proximity", Range = { 1.0, 10.0 } },
|
||||
{ Key = "redshift", Range = { 0.0, 0.075 } }
|
||||
}
|
||||
}
|
||||
},
|
||||
SizeSettings = {
|
||||
ScaleExponent = 22.5,
|
||||
MaxSize = 0.2,
|
||||
EnableMaxSizeControl = true
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "6dF Galaxies",
|
||||
@@ -62,7 +70,7 @@ asset.export(Object)
|
||||
|
||||
asset.meta = {
|
||||
Name = "6dF Galaxies",
|
||||
Version = "2.1",
|
||||
Version = "3.0",
|
||||
Description = "Digital Universe asset for The Six-degree Field (6dF) Galaxy Survey",
|
||||
Author = "Brian Abbott (AMNH)",
|
||||
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
|
||||
|
||||
@@ -9,7 +9,7 @@ local speck = asset.resource({
|
||||
Name = "Abell Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_abell_speck",
|
||||
Version = 2
|
||||
Version = 3
|
||||
})
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ local TransformMatrix = {
|
||||
local Object = {
|
||||
Identifier = "Abell",
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Type = "RenderablePointCloud",
|
||||
Enabled = false,
|
||||
Labels = {
|
||||
File = speck .. "abell.label",
|
||||
@@ -34,16 +34,20 @@ local Object = {
|
||||
Unit = "Mpc",
|
||||
TransformationMatrix = TransformMatrix
|
||||
},
|
||||
Color = { 1.0, 0.4, 0.2 },
|
||||
Opacity = 1.0,
|
||||
--ColorMap = speck .. "abell.cmap",
|
||||
Coloring = {
|
||||
FixedColor = { 1.0, 0.4, 0.2 },
|
||||
--ColorMap = speck .. "abell.cmap", -- TODO: Decide whether to add
|
||||
},
|
||||
File = speck .. "abell.speck",
|
||||
Texture = textures .. "point3A.png",
|
||||
Unit = "Mpc",
|
||||
TransformationMatrix = TransformMatrix,
|
||||
ScaleFactor = 520.0,
|
||||
BillboardMinMaxSize = { 0.0, 7.0 },
|
||||
EnablePixelSizeControl = true
|
||||
SizeSettings = {
|
||||
ScaleExponent = 22.6,
|
||||
MaxSize = 0.27,
|
||||
EnableMaxSizeControl = true
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Abell Galaxy Clusters",
|
||||
@@ -78,7 +82,7 @@ asset.export(Object)
|
||||
|
||||
asset.meta = {
|
||||
Name = "Abell Galaxy Clusters",
|
||||
Version = "2.1",
|
||||
Version = "3.0",
|
||||
Description = "Digital Universe asset for The Abell catalog",
|
||||
Author = "Stuart Levy (NCSA/UIUC), Brian Abbott (AMNH)",
|
||||
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
|
||||
|
||||
@@ -9,7 +9,7 @@ local speck = asset.resource({
|
||||
local Object = {
|
||||
Identifier = "StarLabelsAlternate",
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Type = "RenderablePointCloud",
|
||||
Enabled = false,
|
||||
Labels = {
|
||||
Enabled = true,
|
||||
@@ -19,7 +19,6 @@ local Object = {
|
||||
MinMaxSize = { 6, 20 },
|
||||
Unit = "pc"
|
||||
},
|
||||
Color = { 1.0, 1.0, 1.0 },
|
||||
Opacity = 0.65,
|
||||
Unit = "pc"
|
||||
},
|
||||
@@ -51,7 +50,7 @@ asset.export(Object)
|
||||
|
||||
asset.meta = {
|
||||
Name = "Stars Labels - Alternate",
|
||||
Version = "1.1",
|
||||
Version = "2.0",
|
||||
Description = "Digital Universe asset for alternate start labels",
|
||||
Author = "Brian Abbott (AMNH)",
|
||||
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
|
||||
|
||||
@@ -16,7 +16,7 @@ local TransformMatrix = {
|
||||
local Object = {
|
||||
Identifier = "GalaxyClusterLabels",
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Type = "RenderablePointCloud",
|
||||
Enabled = false,
|
||||
Labels = {
|
||||
Enabled = true,
|
||||
@@ -27,7 +27,6 @@ local Object = {
|
||||
Unit = "Mpc",
|
||||
TransformationMatrix = TransformMatrix
|
||||
},
|
||||
Color = { 1.0, 1.0, 1.0 },
|
||||
Opacity = 0.65,
|
||||
Unit = "Mpc",
|
||||
TransformationMatrix = TransformMatrix
|
||||
@@ -58,7 +57,7 @@ asset.export(Object)
|
||||
|
||||
asset.meta = {
|
||||
Name = "Galaxy Clusters Labels",
|
||||
Version = "1.1",
|
||||
Version = "2.0",
|
||||
Description = "Digital Universe asset for Galaxy Clusters",
|
||||
Author = "Brian Abbott (AMNH)",
|
||||
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
|
||||
|
||||
@@ -16,7 +16,7 @@ local speck = asset.resource({
|
||||
local DeepSkyObjects = {
|
||||
Identifier = "DeepSkyObjects",
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Type = "RenderablePointCloud",
|
||||
Enabled = false,
|
||||
Labels = {
|
||||
File = speck .. "dso.label",
|
||||
@@ -25,22 +25,19 @@ local DeepSkyObjects = {
|
||||
MinMaxSize = { 16, 20 },
|
||||
Unit = "pc"
|
||||
},
|
||||
Color = { 1.0, 1.0, 0.0 },
|
||||
Opacity = 0.99,
|
||||
ScaleFactor = 500.0,
|
||||
Coloring = {
|
||||
FixedColor = { 1.0, 1.0, 0.0 }
|
||||
},
|
||||
File = speck .. "dso.speck",
|
||||
Texture = textures .. "point3.png",
|
||||
--ColorMap = speck .. "tully.cmap",
|
||||
--ColorMap = speck .. "lss.cmap",
|
||||
--ColorOption = { "proximity" },
|
||||
--ColorOption = { "prox5Mpc" },
|
||||
--ColorRange = { { 1.0, 30.0 } },
|
||||
Unit = "pc",
|
||||
--FadeInDistances = { 0.05, 1.0 }, -- Fade in value in the same unit as "Unit"
|
||||
BillboardMinMaxSize = { 0.0, 8.22 }, -- in pixels
|
||||
--CorrectionSizeEndDistance = 22.0,
|
||||
--CorrectionSizeFactor = 10.45
|
||||
EnablePixelSizeControl = true
|
||||
SizeSettings = {
|
||||
ScaleExponent = 21.7,
|
||||
MaxSize = 0.32,
|
||||
EnableMaxSizeControl = true
|
||||
}
|
||||
},
|
||||
Transform = {
|
||||
Rotation = {
|
||||
@@ -112,7 +109,7 @@ asset.export(DeepSkyObjectsImages)
|
||||
|
||||
asset.meta = {
|
||||
Name = "Deep Sky Objects Images",
|
||||
Version = "1.1",
|
||||
Version = "2.0",
|
||||
Description = "Digital Universe asset for Deep Sky Objects and their Images",
|
||||
Author = "Nate Greenstein, Matt Everhart, Brian Abbott (AMNH)",
|
||||
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
|
||||
|
||||
@@ -9,14 +9,14 @@ local speck = asset.resource({
|
||||
Name = "Brown Dwarf Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_dwarfs_speck",
|
||||
Version = 2
|
||||
Version = 3
|
||||
})
|
||||
|
||||
|
||||
local Object = {
|
||||
Identifier = "Dwarfs",
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Type = "RenderablePointCloud",
|
||||
Enabled = false,
|
||||
Labels = {
|
||||
File = speck .. "dwarfs.label",
|
||||
@@ -25,19 +25,24 @@ local Object = {
|
||||
MinMaxSize = { 10, 20 },
|
||||
Unit = "pc"
|
||||
},
|
||||
Color = { 0.4, 0.0, 0.1 },
|
||||
Opacity = 1.0,
|
||||
File = speck .. "dwarfs.speck",
|
||||
Texture = textures .. "point3.png",
|
||||
Unit = "pc",
|
||||
ColorMap = speck .. "dwarfs.cmap",
|
||||
ColorOption = { "typeindex" },
|
||||
--ColorRange = { { 1.0, 4.0} },
|
||||
ScaleFactor = 372.1,
|
||||
--CorrectionSizeEndDistance = 16.1,
|
||||
--CorrectionSizeFactor = 7.75,
|
||||
BillboardMinMaxSize = { 0.0, 20.0 },
|
||||
EnablePixelSizeControl = true
|
||||
Coloring = {
|
||||
FixedColor = { 0.4, 0.0, 0.1 },
|
||||
ColorMapping = {
|
||||
File = speck .. "dwarfs.cmap",
|
||||
ParameterOptions = {
|
||||
{ Key = "typeindex", Range = { 1.0, 4.0 } }
|
||||
}
|
||||
}
|
||||
},
|
||||
SizeSettings = {
|
||||
ScaleExponent = 16.2,
|
||||
MaxSize = 0.7,
|
||||
EnableMaxSizeControl = true
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Brown Dwarfs",
|
||||
@@ -77,7 +82,7 @@ asset.export(Object)
|
||||
|
||||
asset.meta = {
|
||||
Name = "Brown Dwarfs",
|
||||
Version = "2.1",
|
||||
Version = "3.0",
|
||||
Description = "Digital Universe asset for Brown Dwarfs",
|
||||
Author = "Brian Abbott (AMNH)",
|
||||
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
|
||||
|
||||
@@ -16,7 +16,7 @@ local speck = asset.resource({
|
||||
local Object = {
|
||||
Identifier = "Exoplanets",
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Type = "RenderablePointCloud",
|
||||
Enabled = false,
|
||||
Labels = {
|
||||
File = speck .. "expl.label",
|
||||
@@ -25,16 +25,15 @@ local Object = {
|
||||
MinMaxSize = { 10, 100 },
|
||||
Unit = "pc"
|
||||
},
|
||||
Color = { 1.0, 1.0, 1.0 },
|
||||
Opacity = 1.0,
|
||||
Texture = textures .. "target-blue.png",
|
||||
File = speck .. "expl.speck",
|
||||
Unit = "pc",
|
||||
ScaleFactor = 388.67923,
|
||||
CorrectionSizeEndDistance = 15.23,
|
||||
CorrectionSizeFactor = 13.3,
|
||||
BillboardMinMaxSize = { 0.0, 75.0 },
|
||||
EnablePixelSizeControl = true
|
||||
SizeSettings = {
|
||||
ScaleExponent = 16.9,
|
||||
MaxSize = 2.8,
|
||||
EnableMaxSizeControl = true
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Exoplanets",
|
||||
@@ -64,7 +63,7 @@ asset.export(Object)
|
||||
|
||||
asset.meta = {
|
||||
Name = "Exoplanets",
|
||||
Version = "1.1",
|
||||
Version = "2.0",
|
||||
Description = "Digital Universe asset for Exoplanets",
|
||||
Author = "Brian Abbott (AMNH)",
|
||||
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
|
||||
|
||||
@@ -16,18 +16,20 @@ local speck = asset.resource({
|
||||
local Object = {
|
||||
Identifier = "PlanetaryCandidates",
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Type = "RenderablePointCloud",
|
||||
Enabled = false,
|
||||
Color = { 1.0, 1.0, 0.0 },
|
||||
Opacity = 0.99,
|
||||
ScaleFactor = 410.0,
|
||||
File = speck .. "exoplanet_candidates.speck",
|
||||
Unit = "pc",
|
||||
Texture = textures .. "halo.png",
|
||||
CorrectionSizeEndDistance = 15.86,
|
||||
CorrectionSizeFactor = 8.59,
|
||||
BillboardMinMaxSize = { 0.0, 30.0 },
|
||||
EnablePixelSizeControl = true
|
||||
Coloring = {
|
||||
FixedColor = { 1.0, 1.0, 0.0 }
|
||||
},
|
||||
SizeSettings = {
|
||||
ScaleExponent = 17.8,
|
||||
MaxSize = 1.0,
|
||||
EnableMaxSizeControl = true
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Planetary Candidates",
|
||||
@@ -60,7 +62,7 @@ asset.export(Object)
|
||||
|
||||
asset.meta = {
|
||||
Name = "Planetary Candidates",
|
||||
Version = "2.1",
|
||||
Version = "3.0",
|
||||
Description = "Digital Universe asset for Planetary Candidates",
|
||||
Author = "Brian Abbott, Emily Rice, and Jason No (AMNH)",
|
||||
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
|
||||
|
||||
@@ -16,7 +16,7 @@ local speck = asset.resource({
|
||||
local Object = {
|
||||
Identifier = "GlobularClusters",
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Type = "RenderablePolygonCloud",
|
||||
Enabled = false,
|
||||
Labels = {
|
||||
File = speck .. "gc.label",
|
||||
@@ -25,15 +25,18 @@ local Object = {
|
||||
MinMaxSize = { 4, 20 },
|
||||
Unit = "pc"
|
||||
},
|
||||
Color = { 0.8, 0.8, 0.0 },
|
||||
Coloring = {
|
||||
FixedColor = { 0.8, 0.8, 0.0 }
|
||||
},
|
||||
Opacity = 0.4,
|
||||
File = speck .. "gc.speck",
|
||||
Texture = textures .. "point4.png",
|
||||
PolygonSides = 5,
|
||||
Unit = "pc",
|
||||
ScaleFactor = 431.0,
|
||||
BillboardMinMaxSize = { 0.0, 500.0 },
|
||||
EnablePixelSizeControl = true
|
||||
SizeSettings = {
|
||||
ScaleExponent = 18.9,
|
||||
MaxSize = 13.0,
|
||||
EnableMaxSizeControl = true
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Globular Clusters",
|
||||
@@ -69,7 +72,7 @@ asset.export(Object)
|
||||
|
||||
asset.meta = {
|
||||
Name = "Globular Clusters",
|
||||
Version = "2.1",
|
||||
Version = "3.0",
|
||||
Description = [[Census: 157 globular clusters. DU Version 2.6. Globular star clusters
|
||||
are gravitationally bound groups of 100,000 to 1 million stars. They are compact,
|
||||
spherical "balls" of stars with very high stellar densities in their centers (stars
|
||||
|
||||
@@ -126,7 +126,7 @@ local EclipticSphereLabels = {
|
||||
Identifier = "EclipticSphereLabels",
|
||||
Parent = transforms.SolarSystemBarycenter.Name,
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Type = "RenderablePointCloud",
|
||||
Enabled = false,
|
||||
Labels = {
|
||||
Enabled = true,
|
||||
@@ -137,7 +137,6 @@ local EclipticSphereLabels = {
|
||||
Unit = "pc",
|
||||
TransformationMatrix = EclipticTransformationMatrix
|
||||
},
|
||||
Color = { 1.0, 1.0, 1.0 },
|
||||
Opacity = 0.65,
|
||||
Unit = "pc",
|
||||
TransformationMatrix = EclipticTransformationMatrix
|
||||
@@ -178,7 +177,7 @@ local EquatorialSphereLabels = {
|
||||
Identifier = "EquatorialSphereLabels",
|
||||
Parent = transforms.SolarSystemBarycenter.Name,
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Type = "RenderablePointCloud",
|
||||
Enabled = false,
|
||||
Labels = {
|
||||
Enabled = true,
|
||||
@@ -189,7 +188,6 @@ local EquatorialSphereLabels = {
|
||||
Unit = "pc",
|
||||
TransformationMatrix = EquatorialTransformationMatrix
|
||||
},
|
||||
Color = { 1.0, 1.0, 1.0 },
|
||||
Opacity = 0.65,
|
||||
Unit = "pc",
|
||||
TransformationMatrix = EquatorialTransformationMatrix
|
||||
@@ -226,7 +224,7 @@ local GalacticSphereLabels = {
|
||||
Identifier = "GalacticSphereLabels",
|
||||
Parent = transforms.SolarSystemBarycenter.Name,
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Type = "RenderablePointCloud",
|
||||
Enabled = false,
|
||||
Labels = {
|
||||
Enabled = true,
|
||||
@@ -236,7 +234,6 @@ local GalacticSphereLabels = {
|
||||
MinMaxSize = { 1, 100 },
|
||||
Unit = "pc"
|
||||
},
|
||||
Color = { 1.0, 1.0, 1.0 },
|
||||
Opacity = 0.65,
|
||||
Unit = "pc"
|
||||
},
|
||||
@@ -699,7 +696,7 @@ asset.export(Plane20Gly)
|
||||
|
||||
asset.meta = {
|
||||
Name = "Grids",
|
||||
Version = "2.1",
|
||||
Version = "3.0",
|
||||
Description = [[Various grids for showing size reference. Included: 10,000 light year
|
||||
grid, 10 light year grid, 20 billion light year grid, 10 million light year grid,
|
||||
100 light year grid, 100 million light year grid, Ecliptic Coordinate Sphere
|
||||
|
||||
@@ -16,7 +16,7 @@ local TransformMatrix = {
|
||||
local Object = {
|
||||
Identifier = "NearbyGalaxyGroups",
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Type = "RenderablePointCloud",
|
||||
Enabled = false,
|
||||
Labels = {
|
||||
Enabled = true,
|
||||
@@ -27,9 +27,7 @@ local Object = {
|
||||
Unit = "Mpc",
|
||||
TransformationMatrix = TransformMatrix
|
||||
},
|
||||
Color = { 1.0, 1.0, 1.0 },
|
||||
Opacity = 0.65,
|
||||
--ScaleFactor = 10.0,
|
||||
Unit = "Mpc",
|
||||
TransformationMatrix = TransformMatrix
|
||||
},
|
||||
@@ -58,7 +56,7 @@ asset.export(Object)
|
||||
|
||||
asset.meta = {
|
||||
Name = "Galaxy Group Labels",
|
||||
Version = "1.1",
|
||||
Version = "2.0",
|
||||
Author = "Brian Abbott (AMNH)",
|
||||
Description = "Digital Universe asset for Galaxy Groups",
|
||||
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
|
||||
|
||||
@@ -16,7 +16,7 @@ local speck = asset.resource({
|
||||
local Object = {
|
||||
Identifier = "HIIRegions",
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Type = "RenderablePolygonCloud",
|
||||
Enabled = false,
|
||||
Labels = {
|
||||
File = speck .. "h2.label",
|
||||
@@ -25,15 +25,18 @@ local Object = {
|
||||
MinMaxSize = { 4, 20 },
|
||||
Unit = "pc"
|
||||
},
|
||||
Color = { 0.0, 0.5, 1.0 },
|
||||
Coloring = {
|
||||
FixedColor = { 0.0, 0.5, 1.0 }
|
||||
},
|
||||
Opacity = 0.70,
|
||||
File = speck .. "h2.speck",
|
||||
Texture = textures .. "point4.png",
|
||||
PolygonSides = 6,
|
||||
Unit = "pc",
|
||||
ScaleFactor = 420.0,
|
||||
BillboardMinMaxSize = { 0.0, 300.0 },
|
||||
EnablePixelSizeControl = false
|
||||
SizeSettings = {
|
||||
ScaleExponent = 18.24,
|
||||
MaxSize = 8.0,
|
||||
EnableMaxSizeControl = true
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "HII Regions",
|
||||
@@ -67,7 +70,7 @@ asset.export(Object)
|
||||
|
||||
asset.meta = {
|
||||
Name = "HII Regions",
|
||||
Version = "1.1",
|
||||
Version = "2.0",
|
||||
Description = "Digital Universe asset for HII Regions",
|
||||
Author = "Carter Emmart, Brian Abbott (AMNH)",
|
||||
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
|
||||
|
||||
@@ -23,19 +23,24 @@ local ColorMap = asset.resource({
|
||||
local Object = {
|
||||
Identifier = "HubbleDeepField",
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Type = "RenderablePointCloud",
|
||||
Enabled = false,
|
||||
Color = { 1.0, 1.0, 1.0 },
|
||||
Opacity = 1.0,
|
||||
File = HUDFSpeck .. "hudf.speck",
|
||||
Texture = circle .. "circle.png",
|
||||
ColorMap = ColorMap .. "hudf.cmap",
|
||||
ColorOption = { "redshift", "proximity" },
|
||||
ColorRange = { { 0.0, 0.075 }, { 1.0, 25.0 } },
|
||||
Coloring = {
|
||||
ColorMapping = {
|
||||
File = ColorMap .. "hudf.cmap",
|
||||
ParameterOptions = {
|
||||
{ Key = "proximity", Range = { 1.0, 25.0 } },
|
||||
{ Key = "redshift", Range = { 0.0, 0.075 } }
|
||||
}
|
||||
}
|
||||
},
|
||||
Unit = "Mpc",
|
||||
ScaleFactor = 505.0,
|
||||
BillboardMaxSize = 4.7,
|
||||
EnablePixelSizeControl = true
|
||||
SizeSettings = {
|
||||
ScaleExponent = 21.9
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Hubble Deep Field",
|
||||
@@ -62,7 +67,7 @@ asset.export(Object)
|
||||
|
||||
asset.meta = {
|
||||
Name = "Hubble Ultra Deep Field",
|
||||
Version = "1.2",
|
||||
Version = "2.0",
|
||||
Description = "Hubble Ultra Deep Field galaxy survey",
|
||||
Author = "Frank Summers (STScI), Brian Abbott (AMNH)",
|
||||
URL = "http://www.haydenplanetarium.org/universe",
|
||||
|
||||
@@ -16,7 +16,7 @@ local speck = asset.resource({
|
||||
local Object = {
|
||||
Identifier = "LocalDwarfGalaxies",
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Type = "RenderablePolygonCloud",
|
||||
Enabled = false,
|
||||
Labels = {
|
||||
File = speck .. "localgroup.label",
|
||||
@@ -25,17 +25,29 @@ local Object = {
|
||||
MinMaxSize = { 7, 20 },
|
||||
Unit = "Mpc"
|
||||
},
|
||||
Color = { 0.5, 1.0, 0.2 },
|
||||
ColorMap = speck .. "localgroup.cmap",
|
||||
ColorOption = { "association" },
|
||||
Coloring = {
|
||||
FixedColor = { 0.0, 1.0, 0.0 },
|
||||
-- @TODO: This one wasn't actually properly used before the point cloud update.
|
||||
-- All points were mapped to green. Decide if we want it around.
|
||||
-- @TODO: Also, the cmap is currently not applied correctly, due to speck file
|
||||
-- not being read properly (it inlcudes more information than just datavar-s).
|
||||
-- This should be adressed. (2023-12-13, emmbr)
|
||||
ColorMapping = {
|
||||
File = speck .. "localgroup.cmap",
|
||||
ParameterOptions = {
|
||||
{ Key = "association" }
|
||||
}
|
||||
}
|
||||
},
|
||||
Opacity = 0.3,
|
||||
File = speck .. "localgroup.speck",
|
||||
Texture = textures .. "point4.png",
|
||||
PolygonSides = 12,
|
||||
Unit = "Mpc",
|
||||
ScaleFactor = 465.0,
|
||||
BillboardMinMaxSize = { 0.0, 20.0 },
|
||||
EnablePixelSizeControl = true
|
||||
SizeSettings = {
|
||||
ScaleExponent = 20.2,
|
||||
MaxSize = 0.7,
|
||||
EnableMaxSizeControl = true
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Local Group",
|
||||
@@ -69,7 +81,7 @@ asset.export(Object)
|
||||
|
||||
asset.meta = {
|
||||
Name = "Local Group",
|
||||
Version = "2.1",
|
||||
Version = "3.0",
|
||||
Description = "Digital Universe asset for the Local Goup",
|
||||
Author = "Brian Abbott (AMNH)",
|
||||
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
|
||||
|
||||
@@ -16,7 +16,7 @@ local TransformMatrix = {
|
||||
local HomeLabel = {
|
||||
Identifier = "HomeLabel",
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Type = "RenderablePointCloud",
|
||||
Enabled = false,
|
||||
Labels = {
|
||||
Enabled = true,
|
||||
@@ -26,15 +26,7 @@ local HomeLabel = {
|
||||
MinMaxSize = { 16, 20 },
|
||||
Unit = "Mpc",
|
||||
TransformationMatrix = TransformMatrix
|
||||
},
|
||||
Color = { 1.0, 0.4, 0.2 },
|
||||
Opacity = 0.99,
|
||||
ScaleFactor = 500.0,
|
||||
Unit = "Mpc",
|
||||
TransformationMatrix = TransformMatrix,
|
||||
FadeInDistances = { 0.05, 1.0 },
|
||||
BillboardMinMaxSize = { 0.0, 8.22 },
|
||||
EnablePixelSizeControl = true
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Home Label",
|
||||
@@ -58,7 +50,7 @@ asset.export(HomeLabel)
|
||||
|
||||
asset.meta = {
|
||||
Name = "Home Label",
|
||||
Version = "1.1",
|
||||
Version = "2.0",
|
||||
Description = "Label for the Milky Way titled 'Home', sided for the galactic level",
|
||||
Author = "OpenSpace Team",
|
||||
URL = "http://openspaceproject.com",
|
||||
|
||||
@@ -9,14 +9,14 @@ local speck = asset.resource({
|
||||
Name = "OB Associations Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_obassociations_speck",
|
||||
Version = 3
|
||||
Version = 4
|
||||
})
|
||||
|
||||
|
||||
local Object = {
|
||||
Identifier = "OBAssociations",
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Type = "RenderablePolygonCloud",
|
||||
Enabled = false,
|
||||
Labels = {
|
||||
File = speck .. "ob.label",
|
||||
@@ -25,19 +25,25 @@ local Object = {
|
||||
MinMaxSize = { 4, 25 },
|
||||
Unit = "pc"
|
||||
},
|
||||
Color = { 1.0, 1.0, 1.0 },
|
||||
ColorMap = speck .. "ob.cmap",
|
||||
ColorOption = { "arm" },
|
||||
SizeOption = { "diameter" },
|
||||
ExactColorMap = true,
|
||||
Coloring = {
|
||||
ColorMapping = {
|
||||
File = speck .. "ob.cmap",
|
||||
ParameterOptions = {
|
||||
{ Key = "arm" }
|
||||
}
|
||||
}
|
||||
},
|
||||
Opacity = 0.7,
|
||||
File = speck .. "ob.speck",
|
||||
Unit = "pc",
|
||||
Texture = textures .. "point4.png",
|
||||
PolygonSides = 7,
|
||||
ScaleFactor = 390.0,
|
||||
BillboardMinMaxSize = { 0.0, 450.0 },
|
||||
EnablePixelSizeControl = true
|
||||
SizeSettings = {
|
||||
SizeMapping = { "diameter" },
|
||||
ScaleExponent = 16.9,
|
||||
MaxSize = 17,
|
||||
EnableMaxSizeControl = true
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "OB Associations",
|
||||
@@ -71,7 +77,7 @@ asset.export(Object)
|
||||
|
||||
asset.meta = {
|
||||
Name = "OB Associations",
|
||||
Version = "2.1",
|
||||
Version = "3.0",
|
||||
Description = "Digital Universe asset for OB Associations",
|
||||
Author = "Brian Abbott (AMNH)",
|
||||
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
|
||||
|
||||
@@ -16,7 +16,7 @@ local speck = asset.resource({
|
||||
local Object = {
|
||||
Identifier = "OpenStarClusters",
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Type = "RenderablePolygonCloud",
|
||||
Enabled = false,
|
||||
Labels = {
|
||||
File = speck .. "oc.label",
|
||||
@@ -25,15 +25,18 @@ local Object = {
|
||||
MinMaxSize = { 4, 30 },
|
||||
Unit = "pc"
|
||||
},
|
||||
Color = { 0.1, 0.8, 0.4 },
|
||||
Coloring = {
|
||||
FixedColor = { 0.1, 0.8, 0.4 }
|
||||
},
|
||||
Opacity = 0.5,
|
||||
File = speck .. "oc.speck",
|
||||
Unit = "pc",
|
||||
Texture = textures .. "point4.png",
|
||||
PolygonSides = 12,
|
||||
ScaleFactor = 405.75,
|
||||
BillboardMinMaxSize = { 0.0, 604.0 },
|
||||
EnablePixelSizeControl = true
|
||||
SizeSettings = {
|
||||
ScaleExponent = 17.6,
|
||||
MaxSize = 23.0,
|
||||
EnableMaxSizeControl = true
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Open Star Clusters",
|
||||
@@ -68,7 +71,7 @@ asset.export(Object)
|
||||
|
||||
asset.meta = {
|
||||
Name = "Open Star Clusters",
|
||||
Version = "2.1",
|
||||
Version = "3.0",
|
||||
Description = "Digital Universe asset for Open Star Clusters",
|
||||
Author = "Brian Abbott (AMNH)",
|
||||
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
|
||||
|
||||
@@ -16,7 +16,7 @@ local speck = asset.resource({
|
||||
local Object = {
|
||||
Identifier = "PlanetaryNebulae",
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Type = "RenderablePolygonCloud",
|
||||
Enabled = false,
|
||||
Labels = {
|
||||
File = speck .. "pn.label",
|
||||
@@ -25,15 +25,18 @@ local Object = {
|
||||
MinMaxSize = { 4, 25 },
|
||||
Unit = "pc"
|
||||
},
|
||||
Color = { 0.4, 0.4, 0.9 },
|
||||
Coloring = {
|
||||
FixedColor = { 0.4, 0.4, 0.9 }
|
||||
},
|
||||
Opacity = 0.65,
|
||||
File = speck .. "pn.speck",
|
||||
Texture = textures .. "point4.png",
|
||||
PolygonSides = 3,
|
||||
Unit = "pc",
|
||||
ScaleFactor = 425.0,
|
||||
BillboardMinMaxSize = { 0.0, 500.0 },
|
||||
EnablePixelSizeControl = true
|
||||
SizeSettings = {
|
||||
ScaleExponent = 18.46,
|
||||
MaxSize = 19.0,
|
||||
EnableMaxSizeControl = true
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Planetary Nebulae",
|
||||
@@ -64,7 +67,7 @@ asset.export(Object)
|
||||
|
||||
asset.meta = {
|
||||
Name = "Planetary Nebulae",
|
||||
Version = "2.1",
|
||||
Version = "3.0",
|
||||
Description = "Digital Universe asset for Planetary Nebulae",
|
||||
Author = "Brian Abbott (AMNH)",
|
||||
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
|
||||
|
||||
@@ -16,7 +16,7 @@ local speck = asset.resource({
|
||||
local Object = {
|
||||
Identifier = "Pulsars",
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Type = "RenderablePolygonCloud",
|
||||
Enabled = false,
|
||||
Labels = {
|
||||
File = speck .. "pulsar.label",
|
||||
@@ -25,15 +25,18 @@ local Object = {
|
||||
MinMaxSize = { 4, 20 },
|
||||
Unit = "pc"
|
||||
},
|
||||
Color = { 0.7, 0.0, 0.0 },
|
||||
Coloring = {
|
||||
FixedColor = { 0.7, 0.0, 0.0 }
|
||||
},
|
||||
Opacity = 1.0,
|
||||
File = speck .. "pulsar.speck",
|
||||
Texture = textures .. "point4.png",
|
||||
PolygonSides = 4,
|
||||
Unit = "pc",
|
||||
ScaleFactor = 424.0,
|
||||
BillboardMinMaxSize = { 0.0, 500.0 },
|
||||
EnablePixelSizeControl = false
|
||||
SizeSettings = {
|
||||
ScaleExponent = 18.4,
|
||||
MaxSize = 19.0,
|
||||
EnableMaxSizeControl = true
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Pulsars",
|
||||
@@ -68,7 +71,7 @@ asset.export(Object)
|
||||
|
||||
asset.meta = {
|
||||
Name = "Pulsars",
|
||||
Version = "2.1",
|
||||
Version = "3.0",
|
||||
Description = "Digital Universe asset for Pulsars",
|
||||
Author = "Brian Abbott (AMNH)",
|
||||
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
|
||||
|
||||
@@ -23,21 +23,32 @@ local colormaps = asset.resource({
|
||||
local Object = {
|
||||
Identifier = "Quasars",
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Type = "RenderablePointCloud",
|
||||
Enabled = true,
|
||||
Color = { 1.0, 0.4, 0.2 },
|
||||
Opacity = 0.95,
|
||||
File = speck .. "quasars.speck",
|
||||
Texture = textures .. "point3A.png",
|
||||
Unit = "Mpc",
|
||||
ScaleFactor = 540.9,
|
||||
FadeInDistances = { 1000.0, 10000.0 }, -- Fade in value in the same unit as "Unit"
|
||||
BillboardMinMaxSize = { 0.0, 11.1 },
|
||||
EnablePixelSizeControl = true,
|
||||
ColorMap = colormaps .. "viridis.cmap",
|
||||
ColorOption = { "redshift", "Tlookback", "distMpc" },
|
||||
ColorRange = { { 0.102, 7.085 }, { 1.4, 13.0 }, { 440.5, 8852.099609 } },
|
||||
UseColorMap = false
|
||||
Fading = {
|
||||
FadeInDistances = { 1000.0, 10000.0 } -- Fade in value in the same unit as "Unit"
|
||||
},
|
||||
Coloring = {
|
||||
FixedColor = { 1.0, 0.4, 0.2 },
|
||||
ColorMapping = {
|
||||
Enabled = false,
|
||||
File = colormaps .. "viridis.cmap",
|
||||
ParameterOptions = {
|
||||
{ Key = "distMpc", Range = { 440.5, 8852.099609 } },
|
||||
{ Key = "redshift", Range = { 0.102, 7.085 } },
|
||||
{ Key = "Tlookback", Range = { 1.4, 13.0 } }
|
||||
}
|
||||
}
|
||||
},
|
||||
SizeSettings = {
|
||||
ScaleExponent = 23.5,
|
||||
MaxSize = 0.3,
|
||||
EnableMaxSizeControl = true
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Quasars",
|
||||
@@ -68,7 +79,7 @@ asset.export(Object)
|
||||
|
||||
asset.meta = {
|
||||
Name = "Quasars",
|
||||
Version = "2.1",
|
||||
Version = "3.0",
|
||||
Description = "Digital Universe asset for Quasars",
|
||||
Author = "Brian Abbott (AMNH)",
|
||||
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
|
||||
|
||||
@@ -9,31 +9,37 @@ local speck = asset.resource({
|
||||
Name = "Sloan Digital Sky Survey Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_sloandss_speck",
|
||||
Version = 2
|
||||
Version = 3
|
||||
})
|
||||
|
||||
|
||||
local Object = {
|
||||
Identifier = "SloanDigitalSkySurvey",
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Type = "RenderablePointCloud",
|
||||
Enabled = true,
|
||||
Color = { 0.8, 0.8, 1.0 },
|
||||
Opacity = 0.8,
|
||||
ScaleFactor = 520.0,
|
||||
File = speck .. "SDSSgals.speck",
|
||||
ColorMap = speck .. "SDSSgals.cmap",
|
||||
ColorOption = { "redshift", "proximity" },
|
||||
ColorRange = { { 0.0, 0.075 }, { 1.0, 50.0 } },
|
||||
Coloring = {
|
||||
FixedColor = { 0.8, 0.8, 1.0 },
|
||||
ColorMapping = {
|
||||
File = speck .. "SDSSgals.cmap",
|
||||
ParameterOptions = {
|
||||
{ Key = "proximity", Range = { 1.0, 50.0 } },
|
||||
{ Key = "redshift", Range = { 0.0, 0.075 } }
|
||||
}
|
||||
}
|
||||
},
|
||||
Texture = textures .. "point3A.png",
|
||||
Unit = "Mpc",
|
||||
FadeInDistances = { 220.0, 650.0 }, -- Fade in value in the same unit as "Unit"
|
||||
BillboardMinMaxSize = { 0.0, 5.5 },
|
||||
CorrectionSizeEndDistance = 20.65,
|
||||
CorrectionSizeFactor = 10.41,
|
||||
TextSize = 14.8,
|
||||
TextMinMaxSize = { 10, 50 },
|
||||
EnablePixelSizeControl = true
|
||||
Fading = {
|
||||
FadeInDistances = { 220.0, 650.0 } -- Fade in value in the same unit as "Unit"
|
||||
},
|
||||
SizeSettings = {
|
||||
ScaleExponent = 22.6,
|
||||
MaxSize = 0.15,
|
||||
EnableMaxSizeControl = true
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Sloan Digital Sky Survey",
|
||||
@@ -71,7 +77,7 @@ asset.export(Object)
|
||||
|
||||
asset.meta = {
|
||||
Name = "Sloan Digital Sky Survey",
|
||||
Version = "2.1",
|
||||
Version = "3.0",
|
||||
Description = "Digital Universe asset for The Sloan Digital Sky Survey (SDSS)",
|
||||
Author = "Brian Abbott (AMNH)",
|
||||
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
|
||||
|
||||
@@ -9,7 +9,7 @@ local speck = asset.resource({
|
||||
local Object = {
|
||||
Identifier = "StarsLabels",
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Type = "RenderablePointCloud",
|
||||
Enabled = false,
|
||||
Labels = {
|
||||
Enabled = true,
|
||||
@@ -19,7 +19,6 @@ local Object = {
|
||||
MinMaxSize = { 6, 50 },
|
||||
Unit = "pc"
|
||||
},
|
||||
Color = { 1.0, 1.0, 1.0 },
|
||||
Opacity = 0.65,
|
||||
Unit = "pc"
|
||||
},
|
||||
@@ -45,7 +44,7 @@ asset.export(Object)
|
||||
|
||||
asset.meta = {
|
||||
Name = "Star Labels",
|
||||
Version = "2.1",
|
||||
Version = "3.0",
|
||||
Description = "Digital Universe asset for labels of the stars",
|
||||
Author = "Brian Abbott (AMNH)",
|
||||
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
|
||||
|
||||
@@ -16,7 +16,7 @@ local speck = asset.resource({
|
||||
local Object = {
|
||||
Identifier = "GalaxySuperclusters",
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Type = "RenderablePointCloud",
|
||||
Enabled = false,
|
||||
Labels = {
|
||||
Enabled = true,
|
||||
@@ -27,14 +27,15 @@ local Object = {
|
||||
Unit = "Mpc"
|
||||
},
|
||||
DrawElements = false,
|
||||
Color = { 1.0, 1.0, 1.0 },
|
||||
Opacity = 0.65,
|
||||
File = speck .. "superclust.speck",
|
||||
Texture = textures .. "point3A.png",
|
||||
Unit = "Mpc",
|
||||
ScaleFactor = 531.0,
|
||||
-- BillboardMinMaxSize = { 0.0, 7.2 },
|
||||
EnablePixelSizeControl = true
|
||||
SizeSettings = {
|
||||
ScaleExponent = 23.1,
|
||||
MaxSize = 0.2,
|
||||
EnableMaxSizeControl = true
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Galaxy Superclusters",
|
||||
@@ -63,7 +64,7 @@ asset.export(Object)
|
||||
|
||||
asset.meta = {
|
||||
Name = "Galaxy Superclusters",
|
||||
Version = "2.1",
|
||||
Version = "3.0",
|
||||
Description = "Digital Universe asset for Galaxy Superclusters",
|
||||
Author = "Brian Abbott (AMNH)",
|
||||
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
|
||||
|
||||
@@ -16,7 +16,7 @@ local speck = asset.resource({
|
||||
local Object = {
|
||||
Identifier = "SupernovaRemnants",
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Type = "RenderablePolygonCloud",
|
||||
Enabled = false,
|
||||
Labels = {
|
||||
File = speck .. "snr.label",
|
||||
@@ -25,17 +25,18 @@ local Object = {
|
||||
MinMaxSize = { 4, 100 },
|
||||
Unit = "pc"
|
||||
},
|
||||
Color = { 1.0, 0.5, 0.0 },
|
||||
Coloring = {
|
||||
FixedColor = { 1.0, 0.5, 0.0 }
|
||||
},
|
||||
Opacity = 0.32,
|
||||
File = speck .. "snr.speck",
|
||||
Texture = textures .. "point4.png",
|
||||
PolygonSides = 7,
|
||||
Unit = "pc",
|
||||
ScaleFactor = 424.0,
|
||||
--CorrectionSizeEndDistance = 17.5,
|
||||
--CorrectionSizeFactor = 13.96,
|
||||
BillboardMinMaxSize = { 0.0, 500.0 },
|
||||
EnablePixelSizeControl = true
|
||||
SizeSettings = {
|
||||
ScaleExponent = 18.4,
|
||||
MaxSize = 19.0,
|
||||
EnableMaxSizeControl = true
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Supernova Remnants",
|
||||
@@ -62,7 +63,7 @@ asset.export(Object)
|
||||
|
||||
asset.meta = {
|
||||
Name = "Supernova Remnants",
|
||||
Version = "2.1",
|
||||
Version = "3.0",
|
||||
Description = "Digital Universe asset for Supernova Remnants",
|
||||
Author = "Brian Abbott (AMNH)",
|
||||
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
|
||||
|
||||
@@ -9,7 +9,7 @@ local speck = asset.resource({
|
||||
Name = "Tully Speck Files",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "digitaluniverse_tully_speck",
|
||||
Version = 2
|
||||
Version = 3
|
||||
})
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ local TransformMatrix = {
|
||||
local TullyGalaxies = {
|
||||
Identifier = "TullyGalaxies",
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Type = "RenderablePointCloud",
|
||||
Enabled = true,
|
||||
Labels = {
|
||||
File = speck .. "tully.label",
|
||||
@@ -33,23 +33,28 @@ local TullyGalaxies = {
|
||||
Unit = "Mpc",
|
||||
TransformationMatrix = TransformMatrix
|
||||
},
|
||||
Color = { 1.0, 0.4, 0.2 },
|
||||
Opacity = 0.99,
|
||||
ScaleFactor = 504.0,
|
||||
File = speck .. "tully.speck",
|
||||
Texture = textures .. "point3A.png",
|
||||
--ColorMap = speck .. "tully.cmap",
|
||||
ColorMap = speck .. "lss.cmap",
|
||||
--ColorOption = { "proximity" },
|
||||
ColorOption = { "prox5Mpc" },
|
||||
ColorRange = { { 1.0, 30.0 } },
|
||||
Coloring = {
|
||||
FixedColor = { 1.0, 0.4, 0.2 },
|
||||
ColorMapping = {
|
||||
File = speck .. "lss.cmap",
|
||||
ParameterOptions = {
|
||||
{ Key = "prox5Mpc", Range = { 1.0, 30.0 } }
|
||||
}
|
||||
}
|
||||
},
|
||||
Unit = "Mpc",
|
||||
TransformationMatrix = TransformMatrix,
|
||||
FadeInDistances = { 0.001, 1.0 }, -- Fade in value in the same unit as "Unit"
|
||||
BillboardMinMaxSize = { 0.0, 7.0 }, -- in pixels
|
||||
--CorrectionSizeEndDistance = 22.0,
|
||||
--CorrectionSizeFactor = 10.45
|
||||
EnablePixelSizeControl = true
|
||||
Fading = {
|
||||
FadeInDistances = { 0.001, 1.0 } -- Fade in value in the same unit as "Unit"
|
||||
},
|
||||
SizeSettings = {
|
||||
ScaleExponent = 21.9,
|
||||
MaxSize = 0.3,
|
||||
EnableMaxSizeControl = true
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "Tully Galaxies",
|
||||
@@ -125,7 +130,7 @@ asset.export(TullyGalaxiesImages)
|
||||
|
||||
asset.meta = {
|
||||
Name = "Tully Galaxies",
|
||||
Version = "3.1",
|
||||
Version = "4.0",
|
||||
Description = [[Digital Universe asset for Tully Galaxies, including point cloud and
|
||||
images]],
|
||||
Author = "Stuart Levy (NCSA/UIUC), Brian Abbott (AMNH)",
|
||||
|
||||
@@ -9,7 +9,7 @@ local speck = asset.resource({
|
||||
local Object = {
|
||||
Identifier = "Voids",
|
||||
Renderable = {
|
||||
Type = "RenderableBillboardsCloud",
|
||||
Type = "RenderablePointCloud",
|
||||
Enabled = false,
|
||||
Labels = {
|
||||
Enabled = true,
|
||||
@@ -20,7 +20,6 @@ local Object = {
|
||||
Unit = "Mpc"
|
||||
},
|
||||
DrawElements = false,
|
||||
Color = { 1.0, 1.0, 1.0 },
|
||||
Opacity = 0.65,
|
||||
Unit = "Mpc"
|
||||
},
|
||||
@@ -55,7 +54,7 @@ asset.export(Object)
|
||||
|
||||
asset.meta = {
|
||||
Name = "Voids",
|
||||
Version = "2.1",
|
||||
Version = "3.0",
|
||||
Author = "Brian Abbott (AMNH)",
|
||||
Description = "Digital Universe asset for Cosmic voids",
|
||||
URL = "https://www.amnh.org/research/hayden-planetarium/digital-universe",
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
asset.require("./model")
|
||||
asset.require("./trails")
|
||||
asset.require("./mission")
|
||||
asset.require("./fov")
|
||||
|
||||
|
||||
|
||||
asset.meta = {
|
||||
Name = "BepiColombo",
|
||||
Version = "1.0",
|
||||
Description =
|
||||
"This asset includes all of the other assets for the BepiColombo mission.",
|
||||
Author = "OpenSpace Team",
|
||||
URL = "http://openspaceproject.com",
|
||||
License = "MIT license"
|
||||
}
|
||||
10
data/assets/scene/solarsystem/missions/bepicolombo/fov.asset
Normal file
10
data/assets/scene/solarsystem/missions/bepicolombo/fov.asset
Normal file
@@ -0,0 +1,10 @@
|
||||
asset.require("./fov/bela")
|
||||
asset.require("./fov/hga")
|
||||
asset.require("./fov/mertis")
|
||||
asset.require("./fov/mgns")
|
||||
asset.require("./fov/mixs")
|
||||
asset.require("./fov/phebus")
|
||||
asset.require("./fov/serena")
|
||||
asset.require("./fov/sibbiosys")
|
||||
asset.require("./fov/sixs")
|
||||
asset.require("./fov/startracker")
|
||||
@@ -0,0 +1,108 @@
|
||||
local transforms = asset.require("../model")
|
||||
local kernels = asset.require("../kernels")
|
||||
|
||||
|
||||
|
||||
local BelaReceiver = {
|
||||
Identifier = "BepiColomboMPO_BelaReceiver",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.BelaReceiver,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_BELA_RX",
|
||||
Method = "CIRCLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO BELA Receiver",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local BelaTransmitterMain = {
|
||||
Identifier = "BepiColomboMPO_BelaTransmitterMain",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.BelaTransmitterMain,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_BELA_TX_MAIN",
|
||||
Method = "CIRCLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO BELA Transmitter Main",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local BelaTransmitterRed = {
|
||||
Identifier = "BepiColomboMPO_BelaTransmitterRed",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.BelaTransmitterRed,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_BELA_TX_RED",
|
||||
Method = "CIRCLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO BELA Transmitter Main",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
asset.onInitialize(function()
|
||||
-- Circle shapes are currently not supported
|
||||
-- openspace.addSceneGraphNode(BelaReceiver)
|
||||
-- openspace.addSceneGraphNode(BelaTransmitterMain)
|
||||
-- openspace.addSceneGraphNode(BelaTransmitterRed)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function()
|
||||
-- openspace.removeSceneGraphNode(BelaTransmitterRed)
|
||||
-- openspace.removeSceneGraphNode(BelaTransmitterMain)
|
||||
-- openspace.removeSceneGraphNode(BelaReceiver)
|
||||
end)
|
||||
|
||||
|
||||
|
||||
asset.meta = {
|
||||
Name = "BELA",
|
||||
Version = "1.0",
|
||||
Description = [[
|
||||
BELA for the first time will return a digitized laser reflection signal (only in a
|
||||
dedicated instrument mode in order to keep the overall data volume moderate). This
|
||||
will allow characterizing the surface roughness with unprecedented detail and
|
||||
accuracy. BELA's albedo measurement capability will be particularly important for
|
||||
permanently shaded craters where ice is suspected to be found. Here, BELA can observe
|
||||
with its laser where most other remote sensing instruments will fail to obtain a
|
||||
signal. In its normal operational mode, BELA employs a modified digital filter
|
||||
matching algorithms for return pulse detection, while other similar instruments
|
||||
(MOLA, MLA) use analog filter matching. The digital filters can be exchanged at any
|
||||
time by telecommand and/or parameter upload.
|
||||
]],
|
||||
Author = "OpenSpace Team",
|
||||
URL = "http://openspaceproject.com",
|
||||
License = "MIT license"
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
local transforms = asset.require("../model")
|
||||
local kernels = asset.require("../kernels")
|
||||
|
||||
|
||||
|
||||
local HGA = {
|
||||
Identifier = "BepiColomboMPO_HGA",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.HGA,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_HGA",
|
||||
Method = "CIRCLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO HGA",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
asset.onInitialize(function()
|
||||
-- Circle shapes are currently not supported
|
||||
-- openspace.addSceneGraphNode(HGA)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function()
|
||||
-- openspace.removeSceneGraphNode(HGA)
|
||||
end)
|
||||
|
||||
|
||||
|
||||
asset.meta = {
|
||||
Name = "HGA",
|
||||
Version = "1.0",
|
||||
Description = "Shows the field-view for the High Gain Antenna of the MPO spacecraft.",
|
||||
Author = "OpenSpace Team",
|
||||
URL = "http://openspaceproject.com",
|
||||
License = "MIT license"
|
||||
}
|
||||
@@ -0,0 +1,104 @@
|
||||
local transforms = asset.require("../model")
|
||||
local kernels = asset.require("../kernels")
|
||||
|
||||
|
||||
|
||||
local MertisTis = {
|
||||
Identifier = "BepiColomboMPO_MertisTis",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.MertisTis,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_MERTIS_TIS",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO MERTIS TIS",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local MertisTisPlanet = {
|
||||
Identifier = "BepiColomboMPO_MertisTisPlanet",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.MertisTisPlanet,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_MERTIS_TIS_PLANET",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO MERTIS TIS Planet",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local MertisTisSpace = {
|
||||
Identifier = "BepiColomboMPO_MertisTisSpace",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.MertisTisSpace,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_MERTIS_TIS_SPACE",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO MERTIS TIS Space",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
asset.onInitialize(function()
|
||||
openspace.addSceneGraphNode(MertisTis)
|
||||
openspace.addSceneGraphNode(MertisTisPlanet)
|
||||
openspace.addSceneGraphNode(MertisTisSpace)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function()
|
||||
openspace.removeSceneGraphNode(MertisTisSpace)
|
||||
openspace.removeSceneGraphNode(MertisTisPlanet)
|
||||
openspace.removeSceneGraphNode(MertisTis)
|
||||
end)
|
||||
|
||||
|
||||
|
||||
asset.meta = {
|
||||
Name = "MERTIS",
|
||||
Version = "1.0",
|
||||
Description = [[
|
||||
The Mercury Radiometer and Thermal Infrared Spectrometer (MERTIS) is an innovative
|
||||
instrument for studying the surface composition and mineralogy of planet Mercury.
|
||||
MERTIS combines an uncooled grating push broom IR-spectrometer (TIS) with a radiometer
|
||||
(TIR), which will operate in the wavelength region of 7-14 and 7-40 um, respectively.
|
||||
The spatial resolution of the MERTIS observations will be about 500 m globally and
|
||||
better than 500 m for approximately 5-10 percent of the surface.
|
||||
]],
|
||||
Author = "OpenSpace Team",
|
||||
URL = "http://openspaceproject.com",
|
||||
License = "MIT license"
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
local transforms = asset.require("../model")
|
||||
local kernels = asset.require("../kernels")
|
||||
|
||||
|
||||
|
||||
local MGNS = {
|
||||
Identifier = "BepiColomboMPO_MGNS",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.MGNS,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_MGNS",
|
||||
Method = "CIRCLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO MGNS",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
asset.onInitialize(function()
|
||||
-- Circle shapes are currently not supported
|
||||
-- openspace.addSceneGraphNode(MGNS)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function()
|
||||
-- openspace.removeSceneGraphNode(MGNS)
|
||||
end)
|
||||
|
||||
|
||||
|
||||
asset.meta = {
|
||||
Name = "MGNS",
|
||||
Version = "1.0",
|
||||
Description = [[
|
||||
The Mercury Gamma-ray and Neutron Spectrometer (MGNS) on board BepiColombo Mercury
|
||||
Planet Orbiter is designed to observe and study the gamma-ray and neutron emissions of
|
||||
Mercury. The MGNS is a multifunctional scientific instrument, comprising one gamma-ray
|
||||
spectrometer and four neutron detectors. The sensor unit of the gamma-ray spectrometer
|
||||
consists of one 3 by 3 inches high energy resolution inorganic scintillator crystal,
|
||||
i.e. CeBr3, whereas the sensor unit of the neutron detectors consists of three 3He
|
||||
gas-filled tubes and one stilbene organic scintillator crystal with plastic
|
||||
scintillator as its anticoincidence shield.
|
||||
]],
|
||||
Author = "OpenSpace Team",
|
||||
URL = "http://openspaceproject.com",
|
||||
License = "MIT license"
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
local transforms = asset.require("../model")
|
||||
local kernels = asset.require("../kernels")
|
||||
|
||||
|
||||
|
||||
local MIXS_C = {
|
||||
Identifier = "BepiColomboMPO_MIXS-C",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.MIXS_C,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_MIXS-C",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO MIXS-C",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local MIXS_T = {
|
||||
Identifier = "BepiColomboMPO_MIXS-T",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.MIXS_T,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_MIXS-T",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO MIXS-T",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
asset.onInitialize(function()
|
||||
openspace.addSceneGraphNode(MIXS_C)
|
||||
openspace.addSceneGraphNode(MIXS_T)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function()
|
||||
openspace.removeSceneGraphNode(MIXS_T)
|
||||
openspace.removeSceneGraphNode(MIXS_C)
|
||||
end)
|
||||
|
||||
|
||||
|
||||
asset.meta = {
|
||||
Name = "MIXS",
|
||||
Version = "1.0",
|
||||
Description = [[
|
||||
The MIXS instrument contains two parallel telescopes, designed to map the X-ray
|
||||
emission from Mercury at two angular resolutions. The narrow-field telescope (MIXS-T)
|
||||
uses a grazing incidence optic with a 1 degree field-of-view (FOV) and an imaging
|
||||
detector with 64 x 64 pixels. The wide-field telescope (MIXS-C) uses a collimator to
|
||||
define a FOV of ~10 degrees Full Width at Zero Maximum (FWZM). Its detector is
|
||||
identical to MIXS-T, but as the collimator has no imaging capability, the pixels are
|
||||
aggregated into a single output. The optical axes are aligned with the nadir-pointing
|
||||
axis of the spacecraft.
|
||||
]],
|
||||
Author = "OpenSpace Team",
|
||||
URL = "http://openspaceproject.com",
|
||||
License = "MIT license"
|
||||
}
|
||||
@@ -0,0 +1,137 @@
|
||||
local transforms = asset.require("../model")
|
||||
local kernels = asset.require("../kernels")
|
||||
|
||||
|
||||
|
||||
local PhebusSlit75 = {
|
||||
Identifier = "BepiColomboMPO_PhebusSlit75",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.PhebusSlit75,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_PHEBUS_SLIT_75",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Phebus Slit 75",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local PhebusSlit100 = {
|
||||
Identifier = "BepiColomboMPO_PhebusSlit100",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.PhebusSlit100,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_PHEBUS_SLIT_100",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Phebus Slit 100",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local Phebus75 = {
|
||||
Identifier = "BepiColomboMPO_Phebus75",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.Phebus75,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_PHEBUS_75",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Phebus 75",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local Phebus100 = {
|
||||
Identifier = "BepiColomboMPO_Phebus100",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.Phebus100,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_PHEBUS_100",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Phebus 100",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
asset.onInitialize(function()
|
||||
openspace.addSceneGraphNode(PhebusSlit75)
|
||||
openspace.addSceneGraphNode(PhebusSlit100)
|
||||
openspace.addSceneGraphNode(Phebus75)
|
||||
openspace.addSceneGraphNode(Phebus100)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function()
|
||||
openspace.removeSceneGraphNode(Phebus100)
|
||||
openspace.removeSceneGraphNode(Phebus75)
|
||||
openspace.removeSceneGraphNode(PhebusSlit100)
|
||||
openspace.removeSceneGraphNode(PhebusSlit75)
|
||||
end)
|
||||
|
||||
|
||||
|
||||
asset.meta = {
|
||||
Name = "Phebus",
|
||||
Version = "1.0",
|
||||
Description = [[
|
||||
The PHEBUS instrument is a UV spectrometer covering the spectral range going from
|
||||
50 nm to 315 nm with two additional narrow bands in the visible around 404 nm (K line)
|
||||
and 422 nm (Ca line). Photons from the source (exosphere of Mercury) are collected by
|
||||
a SiC primary mirror installed inside a one-degree of freedom rotating mechanism
|
||||
(360 degrees). The primary mirror focuses the photons on a slit. Spectrometric
|
||||
information is obtained by the use of two gratings sharing the same pupil. Photons
|
||||
going through the slit are scattered according to their wavelength onto two separate
|
||||
intensified cross-delay anode detectors. One detector (labelled EUV) covers the
|
||||
55-155 nm wavelength range. The second one (labelled FUV) covers the 145-315nm
|
||||
wavelength range. The two intensifiers based on Micro-Channel Plates use high voltages
|
||||
at values around 3600-5000 V. The two visible narrow spectral bands are obtained by
|
||||
two prisms on the side of the FUV detector that feed two identical Photo-Multiplier
|
||||
Tubes. The high voltage level that is necessary for these PMT is around 1000 V. They
|
||||
are called NUV Ca and NUV K detectors.
|
||||
]],
|
||||
Author = "OpenSpace Team",
|
||||
URL = "http://openspaceproject.com",
|
||||
License = "MIT license"
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
local transforms = asset.require("../model")
|
||||
local kernels = asset.require("../kernels")
|
||||
|
||||
|
||||
|
||||
local SerenaElena = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElena,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA",
|
||||
Method = "POLYGON",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
asset.onInitialize(function()
|
||||
openspace.addSceneGraphNode(SerenaElena)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function()
|
||||
openspace.removeSceneGraphNode(SerenaElena)
|
||||
end)
|
||||
|
||||
|
||||
|
||||
asset.meta = {
|
||||
Name = "Serena",
|
||||
Version = "1.0",
|
||||
Description = [[
|
||||
The Search for Exospheric Refilling and Emitted Natural Abundances (SERENA) is a
|
||||
single instrument composed by 4 units devoted to the detection of neutral and ionized
|
||||
particles in the Hermean environment. It addresses some of the main scientific
|
||||
objectives of the BepiColombo mission: composition, origin and dynamics of Mercury's
|
||||
exosphere and polar deposits; and structure and dynamics of Mercury's magnetosphere.
|
||||
Each unit is able to operate individually and to achieve its specific scientific
|
||||
objectives. In addition, the opportunity to operate sensors simultaneously greatly
|
||||
improves the success of scientific objectives and allows for additional objectives.
|
||||
]],
|
||||
Author = "OpenSpace Team",
|
||||
URL = "http://openspaceproject.com",
|
||||
License = "MIT license"
|
||||
}
|
||||
@@ -0,0 +1,832 @@
|
||||
local transforms = asset.require("../model")
|
||||
local kernels = asset.require("../kernels")
|
||||
|
||||
|
||||
|
||||
local SerenaElenaAN01 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN01",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN01,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_01",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN01",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN02 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN02",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN02,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_02",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN02",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN03 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN03",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN03,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_03",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN03",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN04 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN04",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN04,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_04",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN04",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN05 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN05",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN05,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_05",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN05",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN06 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN06",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN06,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_06",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN06",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN07 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN07",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN07,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_07",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN07",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN08 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN08",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN08,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_08",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN08",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN09 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN09",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN09,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_09",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN09",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN10 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN10",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN10,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_10",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN10",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN11 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN11",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN11,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_11",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN11",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN12 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN12",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN12,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_12",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN12",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN13 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN13",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN13,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_13",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN13",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN14 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN14",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN14,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_14",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN14",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN15 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN15",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN15,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_15",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN15",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN16 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN16",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN16,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_16",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN16",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN17 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN17",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN17,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_17",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN17",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN18 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN18",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN18,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_18",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN18",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN19 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN19",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN19,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_19",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN19",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN20 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN20",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN20,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_20",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN20",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN21 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN21",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN21,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_21",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN21",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN22 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN22",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN22,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_22",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN22",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN23 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN23",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN23,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_23",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN23",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN24 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN24",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN24,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_24",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN24",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN25 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN25",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN25,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_25",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN25",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN26 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN26",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN26,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_26",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN26",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN27 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN27",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN27,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_27",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN27",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN28 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN28",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN28,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_28",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN28",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN29 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN29",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN29,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_29",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN29",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN30 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN30",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN30,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_30",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN30",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN31 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN31",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN31,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_31",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN31",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SerenaElenaAN32 = {
|
||||
Identifier = "BepiColomboMPO_SerenaElena_AN32",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SerenaElenaAN32,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SERENA_ELENA_AN_32",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Serena Elena AN32",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
asset.onInitialize(function()
|
||||
openspace.addSceneGraphNode(SerenaElenaAN01)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN02)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN03)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN04)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN05)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN06)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN07)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN08)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN09)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN10)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN11)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN12)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN13)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN14)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN15)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN16)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN17)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN18)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN19)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN20)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN21)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN22)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN23)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN24)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN25)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN26)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN27)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN28)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN29)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN30)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN31)
|
||||
openspace.addSceneGraphNode(SerenaElenaAN32)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function()
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN32)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN31)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN30)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN29)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN28)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN27)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN26)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN25)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN24)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN23)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN22)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN21)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN20)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN19)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN18)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN17)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN16)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN15)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN14)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN13)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN12)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN11)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN10)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN09)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN08)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN07)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN06)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN05)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN04)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN03)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN02)
|
||||
openspace.removeSceneGraphNode(SerenaElenaAN01)
|
||||
end)
|
||||
|
||||
|
||||
|
||||
asset.meta = {
|
||||
Name = "Serena Anodes",
|
||||
Version = "1.0",
|
||||
Description = [[
|
||||
The Search for Exospheric Refilling and Emitted Natural Abundances (SERENA) is a
|
||||
single instrument composed by 4 units devoted to the detection of neutral and ionized
|
||||
particles in the Hermean environment. It addresses some of the main scientific
|
||||
objectives of the BepiColombo mission: composition, origin and dynamics of Mercury's
|
||||
exosphere and polar deposits; and structure and dynamics of Mercury's magnetosphere.
|
||||
Each unit is able to operate individually and to achieve its specific scientific
|
||||
objectives. In addition, the opportunity to operate sensors simultaneously greatly
|
||||
improves the success of scientific objectives and allows for additional objectives.
|
||||
]],
|
||||
Author = "OpenSpace Team",
|
||||
URL = "http://openspaceproject.com",
|
||||
License = "MIT license"
|
||||
}
|
||||
@@ -0,0 +1,378 @@
|
||||
local transforms = asset.require("../model")
|
||||
local kernels = asset.require("../kernels")
|
||||
|
||||
|
||||
|
||||
local SimbioSys_HRIC_FPA = {
|
||||
Identifier = "BepiColomboMPO_SIMBIOSYS_HRIC_FPA",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SymbioSysHricFpa,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SIMBIO-SYS_HRIC_FPA",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Simbio-Sys HRIC FPA",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SimbioSys_HRIC_F550 = {
|
||||
Identifier = "BepiColomboMPO_SIMBIOSYS_HRIC_F550",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SymbioSysHricF550,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SIMBIO-SYS_HRIC_F550",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Simbio-Sys HRIC F550",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SimbioSys_HRIC_FPAN = {
|
||||
Identifier = "BepiColomboMPO_SIMBIOSYS_HRIC_FPAN",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SymbioSysHricFpan,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SIMBIO-SYS_HRIC_FPAN",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Simbio-Sys HRIC FPAN",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SimbioSys_HRIC_F750 = {
|
||||
Identifier = "BepiColomboMPO_SIMBIOSYS_HRIC_F750",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SymbioSysHricF750,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SIMBIO-SYS_HRIC_F750",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Simbio-Sys HRIC F750",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SimbioSys_HRIC_F880 = {
|
||||
Identifier = "BepiColomboMPO_SIMBIOSYS_HRIC_F880",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SymbioSysHricF880,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SIMBIO-SYS_HRIC_F880",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Simbio-Sys HRIC F880",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SimbioSys_STC_L = {
|
||||
Identifier = "BepiColomboMPO_SIMBIOSYS_STC_L",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SymbioSysSTCL,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SIMBIO-SYS_STC-L",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Simbio-Sys STC L",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SimbioSys_STC_H = {
|
||||
Identifier = "BepiColomboMPO_SIMBIOSYS_STC_H",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SymbioSysSTCH,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SIMBIO-SYS_STC-H",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Simbio-Sys STC H",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SimbioSys_STC_L_F920 = {
|
||||
Identifier = "BepiColomboMPO_SIMBIOSYS_STC_L_F920",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SymbioSysSTCLF920,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SIMBIO-SYS_STC-L_F920",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Simbio-Sys STC L F920",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SimbioSys_STC_L_F550 = {
|
||||
Identifier = "BepiColomboMPO_SIMBIOSYS_STC_L_F550",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SymbioSysSTCLF550,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SIMBIO-SYS_STC-L_F550",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Simbio-Sys STC L F550",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SimbioSys_STC_L_P700 = {
|
||||
Identifier = "BepiColomboMPO_SIMBIOSYS_STC_L_P700",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SymbioSysSTCLP700,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SIMBIO-SYS_STC-L_P700",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Simbio-Sys STC L P700",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SimbioSys_STC_H_P700 = {
|
||||
Identifier = "BepiColomboMPO_SIMBIOSYS_STC_H_P700",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SymbioSysSTCHP700,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SIMBIO-SYS_STC-H_P700",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Simbio-Sys STC H P700",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SimbioSys_STC_H_F420 = {
|
||||
Identifier = "BepiColomboMPO_SIMBIOSYS_STC_H_F420",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SymbioSysSTCHF420,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SIMBIO-SYS_STC-H_F420",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Simbio-Sys STC H F420",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SimbioSys_STC_H_F750 = {
|
||||
Identifier = "BepiColomboMPO_SIMBIOSYS_STC_H_F750",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SymbioSysSTCHF750,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SIMBIO-SYS_STC-H_F750",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Simbio-Sys STC H F750",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SimbioSys_VIHI = {
|
||||
Identifier = "BepiColomboMPO_SIMBIOSYS_VIHI",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.SymbioSysVIHI,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SIMBIO-SYS_VIHI",
|
||||
Method = "RECTANGLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Simbio-Sys VIHI",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
asset.onInitialize(function()
|
||||
openspace.addSceneGraphNode(SimbioSys_HRIC_FPA)
|
||||
openspace.addSceneGraphNode(SimbioSys_HRIC_F550)
|
||||
openspace.addSceneGraphNode(SimbioSys_HRIC_FPAN)
|
||||
openspace.addSceneGraphNode(SimbioSys_HRIC_F750)
|
||||
openspace.addSceneGraphNode(SimbioSys_HRIC_F880)
|
||||
openspace.addSceneGraphNode(SimbioSys_STC_L)
|
||||
openspace.addSceneGraphNode(SimbioSys_STC_H)
|
||||
openspace.addSceneGraphNode(SimbioSys_STC_L_F920)
|
||||
openspace.addSceneGraphNode(SimbioSys_STC_L_F550)
|
||||
openspace.addSceneGraphNode(SimbioSys_STC_L_P700)
|
||||
openspace.addSceneGraphNode(SimbioSys_STC_H_P700)
|
||||
openspace.addSceneGraphNode(SimbioSys_STC_H_F420)
|
||||
openspace.addSceneGraphNode(SimbioSys_STC_H_F750)
|
||||
openspace.addSceneGraphNode(SimbioSys_VIHI)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function()
|
||||
openspace.removeSceneGraphNode(SimbioSys_VIHI)
|
||||
openspace.removeSceneGraphNode(SimbioSys_STC_H_F750)
|
||||
openspace.removeSceneGraphNode(SimbioSys_STC_H_F420)
|
||||
openspace.removeSceneGraphNode(SimbioSys_STC_H_P700)
|
||||
openspace.removeSceneGraphNode(SimbioSys_STC_L_P700)
|
||||
openspace.removeSceneGraphNode(SimbioSys_STC_L_F550)
|
||||
openspace.removeSceneGraphNode(SimbioSys_STC_L_F920)
|
||||
openspace.removeSceneGraphNode(SimbioSys_STC_H)
|
||||
openspace.removeSceneGraphNode(SimbioSys_STC_L)
|
||||
openspace.removeSceneGraphNode(SimbioSys_HRIC_F880)
|
||||
openspace.removeSceneGraphNode(SimbioSys_HRIC_F750)
|
||||
openspace.removeSceneGraphNode(SimbioSys_HRIC_FPAN)
|
||||
openspace.removeSceneGraphNode(SimbioSys_HRIC_F550)
|
||||
openspace.removeSceneGraphNode(SimbioSys_HRIC_FPA)
|
||||
end)
|
||||
|
||||
|
||||
|
||||
asset.meta = {
|
||||
Name = "SYMBIO-SYS",
|
||||
Version = "1.0",
|
||||
Description = [[
|
||||
SIMBIO-SYS has been conceived to be integrated on the BepiColombo MPO pointing in the
|
||||
nadir direction in order to perform the remote sensing of the Mercury surface during
|
||||
the satellite orbits. The SIMBIO-SYS instrument architecture is based on 3 different
|
||||
channels composing the instrument front-end with a common main electronics and power
|
||||
supply.
|
||||
]],
|
||||
Author = "OpenSpace Team",
|
||||
URL = "http://openspaceproject.com",
|
||||
License = "MIT license"
|
||||
}
|
||||
@@ -0,0 +1,104 @@
|
||||
local transforms = asset.require("../model")
|
||||
local kernels = asset.require("../kernels")
|
||||
|
||||
|
||||
|
||||
local SixsX1 = {
|
||||
Identifier = "BepiColomboMPO_SixsX1",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.Sixs_X1,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SIXS-X-1",
|
||||
Method = "ELLIPSE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Sixs X1",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SixsX2 = {
|
||||
Identifier = "BepiColomboMPO_SixsX2",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.Sixs_X2,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SIXS-X-2",
|
||||
Method = "ELLIPSE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Sixs X2",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local SixsX3 = {
|
||||
Identifier = "BepiColomboMPO_SixsX3",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.Sixs_X3,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_SIXS-X-3",
|
||||
Method = "ELLIPSE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Sixs X3",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
asset.onInitialize(function()
|
||||
-- Circle shapes are currently not supported
|
||||
-- openspace.addSceneGraphNode(SixsX1)
|
||||
-- openspace.addSceneGraphNode(SixsX2)
|
||||
-- openspace.addSceneGraphNode(SixsX3)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function()
|
||||
-- openspace.removeSceneGraphNode(SixsX3)
|
||||
-- openspace.removeSceneGraphNode(SixsX2)
|
||||
-- openspace.removeSceneGraphNode(SixsX1)
|
||||
end)
|
||||
|
||||
|
||||
|
||||
asset.meta = {
|
||||
Name = "Sixs",
|
||||
Version = "1.0",
|
||||
Description = [[
|
||||
The scientific investigation performed by the Solar Intensity X-ray and particle
|
||||
Spectrometer (SIXS) is the determination of solar impact on the Hermean surface in the
|
||||
form of direct X-rays and energetic particles, which induce observable X-ray emission
|
||||
via interaction with the surface of the planet. Particles of concern here are highly
|
||||
energetic solar protons and electrons.
|
||||
]],
|
||||
Author = "OpenSpace Team",
|
||||
URL = "http://openspaceproject.com",
|
||||
License = "MIT license"
|
||||
}
|
||||
@@ -0,0 +1,107 @@
|
||||
local transforms = asset.require("../model")
|
||||
local kernels = asset.require("../kernels")
|
||||
|
||||
|
||||
|
||||
local StarTracker1 = {
|
||||
Identifier = "BepiColomboMPO_StarTracker1",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.StarTracker1,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_STR-1",
|
||||
Method = "CIRCLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Star Tracker 1",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local StarTracker2 = {
|
||||
Identifier = "BepiColomboMPO_StarTracker2",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.StarTracker2,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_STR-2",
|
||||
Method = "CIRCLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Star Tracker 2",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
local StarTracker3 = {
|
||||
Identifier = "BepiColomboMPO_StarTracker3",
|
||||
Parent = transforms.BepiColombo.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableFov",
|
||||
Body = kernels.ID.MPO,
|
||||
Frame = kernels.Frame.StarTracker3,
|
||||
RGB = { 0.8, 0.7, 0.7 },
|
||||
Instrument = {
|
||||
Name = "MPO_STR-3",
|
||||
Method = "CIRCLE",
|
||||
Aberration = "NONE"
|
||||
},
|
||||
AlwaysDrawFov = true,
|
||||
PotentialTargets = { "MERCURY", "EARTH", "VENUS" },
|
||||
FrameConversions = {}
|
||||
},
|
||||
GUI = {
|
||||
Name = "MPO Star Tracker 3",
|
||||
Path = "/Solar System/Missions/BepiColombo/Instruments",
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
asset.onInitialize(function()
|
||||
-- Circle shapes are currently not supported
|
||||
-- openspace.addSceneGraphNode(StarTracker1)
|
||||
-- openspace.addSceneGraphNode(StarTracker2)
|
||||
-- openspace.addSceneGraphNode(StarTracker3)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function()
|
||||
-- openspace.removeSceneGraphNode(StarTracker1)
|
||||
-- openspace.removeSceneGraphNode(StarTracker2)
|
||||
-- openspace.removeSceneGraphNode(StarTracker3)
|
||||
end)
|
||||
|
||||
|
||||
|
||||
asset.meta = {
|
||||
Name = "Star Tracker",
|
||||
Version = "1.0",
|
||||
Description = [[
|
||||
From a functional point of view, the Autonomous Star Trackers can be seen as a video
|
||||
camera plus an image processing unit that, starting from an image of the sky, extracts
|
||||
the attitude information for the AOCS, measured with respect to the J2000 inertial
|
||||
reference system.
|
||||
|
||||
The STR can track up to 15 stars simultaneously and consists of a Single box that
|
||||
contains the optical head, the main electronics and a baffle which is thermally
|
||||
decoupled from the box.
|
||||
]],
|
||||
Author = "OpenSpace Team",
|
||||
URL = "http://openspaceproject.com",
|
||||
License = "MIT license"
|
||||
}
|
||||
303
data/assets/scene/solarsystem/missions/bepicolombo/kernels.asset
Normal file
303
data/assets/scene/solarsystem/missions/bepicolombo/kernels.asset
Normal file
@@ -0,0 +1,303 @@
|
||||
local kernels = asset.resource({
|
||||
Name = "BepiColombo Kernels",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "bepicolombo_kernels",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
|
||||
local BepiColomboKernels = {
|
||||
-- Kernel list based on bc_ops_v413_20240112_001.tm
|
||||
kernels .. "bc_mpo_magboom_default_s20191107_v01.bc",
|
||||
kernels .. "bc_mpo_hga_scm_20181020_20190101_s20201020_v02.bc",
|
||||
kernels .. "bc_mpo_hga_scm_20190101_20200101_s20230309_v01.bc",
|
||||
kernels .. "bc_mpo_hga_scm_20200101_20210101_s20230309_v01.bc",
|
||||
kernels .. "bc_mpo_hga_scm_20210101_20220101_s20230309_v01.bc",
|
||||
kernels .. "bc_mpo_hga_scm_20220101_20230101_s20221229_v01.bc",
|
||||
kernels .. "bc_mpo_hga_scm_20230101_20240101_s20240104_v01.bc",
|
||||
kernels .. "bc_mpo_hga_scm_20240101_20240111_s20240110_v01.bc",
|
||||
kernels .. "bc_mpo_mga_scm_20181020_20190101_s20200109_v02.bc",
|
||||
kernels .. "bc_mpo_mga_scm_20190101_20200101_s20230309_v01.bc",
|
||||
kernels .. "bc_mpo_mga_scm_20200101_20210101_s20230309_v01.bc",
|
||||
kernels .. "bc_mpo_mga_scm_20210101_20220101_s20230309_v01.bc",
|
||||
kernels .. "bc_mpo_mga_scm_20220101_20230101_s20221229_v01.bc",
|
||||
kernels .. "bc_mpo_mga_scm_20230101_20240101_s20240104_v01.bc",
|
||||
kernels .. "bc_mpo_mga_scm_20240101_20240111_s20240110_v01.bc",
|
||||
kernels .. "bc_mpo_sa_scm_20181020_20190101_s20211202_v01.bc",
|
||||
kernels .. "bc_mpo_sa_scm_20190101_20200101_s20230309_v01.bc",
|
||||
kernels .. "bc_mpo_sa_scm_20200101_20210101_s20230309_v01.bc",
|
||||
kernels .. "bc_mpo_sa_scm_20210101_20220101_s20230309_v01.bc",
|
||||
kernels .. "bc_mpo_sa_scm_20220101_20230101_s20221229_v01.bc",
|
||||
kernels .. "bc_mpo_sa_scm_20230101_20240101_s20240104_v01.bc",
|
||||
kernels .. "bc_mpo_sa_scm_20240101_20240111_s20240110_v01.bc",
|
||||
kernels .. "bc_mtm_sa_scm_20181020_20190101_s20200109_v02.bc",
|
||||
kernels .. "bc_mtm_sa_scm_20190101_20200101_s20230309_v01.bc",
|
||||
kernels .. "bc_mtm_sa_scm_20200101_20210101_s20230309_v01.bc",
|
||||
kernels .. "bc_mtm_sa_scm_20210101_20220101_s20230309_v01.bc",
|
||||
kernels .. "bc_mtm_sa_scm_20220101_20230101_s20221229_v01.bc",
|
||||
kernels .. "bc_mtm_sa_scm_20230101_20240101_s20240104_v01.bc",
|
||||
kernels .. "bc_mtm_sa_scm_20240101_20240111_s20240110_v01.bc",
|
||||
kernels .. "bc_mmo_sc_scp_20180317_20251220_f20170228_v02.bc",
|
||||
kernels .. "bc_mmo_sc_slt_50038_20251220_20280305_f20170228_v02.bc",
|
||||
kernels .. "bc_mtm_sc_scp_20180317_20251219_f20181121_v02.bc",
|
||||
kernels .. "bc_mtm_sep_scp_20181019_20251205_f20181127_v02.bc",
|
||||
kernels .. "bc_mpo_sc_prelaunch_f20181121_v01.bc",
|
||||
kernels .. "bc_mpo_sc_fcp_00160_20181020_20240216_f20181127_v01.bc",
|
||||
kernels .. "bc_mpo_sc_scc_20181019_20190101_s20230309_v01.bc",
|
||||
kernels .. "bc_mpo_sc_scc_20190101_20200101_s20230309_v01.bc",
|
||||
kernels .. "bc_mpo_sc_scc_20200101_20210101_s20230309_v01.bc",
|
||||
kernels .. "bc_mpo_sc_scc_20210101_20220101_s20230309_v01.bc",
|
||||
kernels .. "bc_mpo_sc_scc_20220101_20230101_s20221229_v01.bc",
|
||||
kernels .. "bc_mpo_sc_scc_20230101_20240101_s20240104_v01.bc",
|
||||
kernels .. "bc_mpo_sc_scc_20240101_20240111_s20240110_v01.bc",
|
||||
kernels .. "bc_mpo_sc_scm_20181020_20190101_s20230309_v01.bc",
|
||||
kernels .. "bc_mpo_sc_scm_20190101_20200101_s20230309_v01.bc",
|
||||
kernels .. "bc_mpo_sc_scm_20200101_20210101_s20210618_v01.bc",
|
||||
kernels .. "bc_mpo_sc_scm_20210101_20220101_s20230309_v01.bc",
|
||||
kernels .. "bc_mpo_sc_scm_20220101_20230101_s20230309_v01.bc",
|
||||
kernels .. "bc_mpo_sc_scm_20230101_20240101_s20240104_v01.bc",
|
||||
kernels .. "bc_mpo_sc_scm_20240101_20240111_s20240110_v01.bc",
|
||||
kernels .. "bc_mpo_v34.tf",
|
||||
kernels .. "bc_mtm_v12.tf",
|
||||
kernels .. "bc_mmo_v13.tf",
|
||||
kernels .. "bc_ops_v01.tf",
|
||||
kernels .. "bc_sci_v12.tf",
|
||||
kernels .. "bc_dsk_surfaces_v03.tf",
|
||||
kernels .. "rssd0004.tf",
|
||||
kernels .. "earth_topo_201023.tf",
|
||||
kernels .. "earthstns_jaxa_20230905.tf",
|
||||
kernels .. "earthfixeditrf93.tf",
|
||||
kernels .. "estrack_v04.tf",
|
||||
kernels .. "bc_mmo_sc_bus_v02.bds",
|
||||
kernels .. "bc_mpo_sc_bus_v02.bds",
|
||||
kernels .. "bc_mpo_sc_hga_v02.bds",
|
||||
kernels .. "bc_mpo_sc_mga_v02.bds",
|
||||
kernels .. "bc_mpo_sc_mosif_v02.bds",
|
||||
kernels .. "bc_mpo_sc_sa_v02.bds",
|
||||
kernels .. "bc_mtm_sc_bus_v02.bds",
|
||||
kernels .. "bc_mtm_sc_samx_v02.bds",
|
||||
kernels .. "bc_mtm_sc_sapx_v02.bds",
|
||||
kernels .. "mercury_m002_mes_v02.bds",
|
||||
|
||||
kernels .. "bc_mpo_bela_v09.ti",
|
||||
kernels .. "bc_mpo_mertis_v08.ti",
|
||||
kernels .. "bc_mpo_mgns_v02.ti",
|
||||
kernels .. "bc_mpo_mixs_v06.ti",
|
||||
kernels .. "bc_mpo_phebus_v06.ti",
|
||||
kernels .. "bc_mpo_serena_v08.ti",
|
||||
kernels .. "bc_mpo_simbio-sys_v10.ti",
|
||||
kernels .. "bc_mpo_sixs_v08.ti",
|
||||
kernels .. "bc_mpo_str_v02.ti",
|
||||
kernels .. "bc_mpo_aux_v01.ti",
|
||||
kernels .. "bc_mtm_mcam_v05.ti",
|
||||
kernels .. "bc_mmo_mppe_v04.ti",
|
||||
kernels .. "bc_mmo_msasi_v03.ti",
|
||||
kernels .. "bc_mmo_ssas_v01.ti",
|
||||
|
||||
kernels .. "de403_masses.tpc",
|
||||
kernels .. "gm_de431.tpc",
|
||||
kernels .. "pck00011_bc_v00.tpc",
|
||||
|
||||
kernels .. "earth_070425_370426_predict.bpc",
|
||||
kernels .. "earth_000101_240403_240109.bpc",
|
||||
|
||||
kernels .. "bc_mpo_step_20240110.tsc",
|
||||
kernels .. "bc_mpo_fict_20181127.tsc",
|
||||
kernels .. "bc_mmo_fict_20170228.tsc",
|
||||
|
||||
kernels .. "de432s.bsp",
|
||||
kernels .. "earthstns_itrf93_201023.bsp",
|
||||
kernels .. "earthstns_jaxa_20230905.bsp",
|
||||
kernels .. "estrack_v04.bsp",
|
||||
kernels .. "bc_sci_v02.bsp",
|
||||
kernels .. "bc_mmo_struct_v01.bsp",
|
||||
kernels .. "bc_mmo_scp_20181019_20251220_v02.bsp",
|
||||
kernels .. "bc_mtm_struct_v06.bsp",
|
||||
kernels .. "bc_mtm_scp_20181019_20251219_v03.bsp",
|
||||
kernels .. "bc_mpo_cog_v03.bsp",
|
||||
kernels .. "bc_mpo_cog_00160_20181118_20240201_v01.bsp",
|
||||
kernels .. "bc_mpo_struct_v09.bsp",
|
||||
kernels .. "bc_mpo_schulte_vector_v01.bsp",
|
||||
kernels .. "bc_mpo_prelaunch_v01.bsp",
|
||||
kernels .. "bc_mpo_fcp_00160_20181020_20260328_v01.bsp"
|
||||
|
||||
|
||||
-- kernels .. "bc_mpo_step_20240110.tsc",
|
||||
--
|
||||
-- kernels .. "de432s.bsp",
|
||||
-- kernels .. "bc_mpo_fcp_00160_20181020_20260328_v01.bsp",
|
||||
-- kernels .. "bc_mmo_struct_v01.bsp",
|
||||
-- kernels .. "bc_mtm_struct_v06.bsp",
|
||||
-- kernels .. "bc_mpo_struct_v09.bsp",
|
||||
--
|
||||
-- kernels .. "bc_mmo_mppe_v04.ti",
|
||||
-- kernels .. "bc_mmo_msasi_v03.ti",
|
||||
-- kernels .. "bc_mmo_ssas_v01.ti",
|
||||
-- kernels .. "bc_mpo_aux_v01.ti",
|
||||
-- kernels .. "bc_mpo_bela_v09.ti",
|
||||
-- kernels .. "bc_mpo_mertis_v08.ti",
|
||||
-- kernels .. "bc_mpo_mgns_v02.ti",
|
||||
-- kernels .. "bc_mpo_mixs_v06.ti",
|
||||
-- kernels .. "bc_mpo_phebus_v06.ti",
|
||||
-- kernels .. "bc_mpo_serena_v08.ti",
|
||||
-- kernels .. "bc_mpo_simbio-sys_v10.ti",
|
||||
-- kernels .. "bc_mpo_sixs_v08.ti",
|
||||
-- kernels .. "bc_mpo_str_v02.ti",
|
||||
-- kernels .. "bc_mtm_mcam_v05.ti",
|
||||
--
|
||||
-- kernels .. "bc_sci_v12.tf",
|
||||
-- kernels .. "bc_mmo_v13.tf",
|
||||
-- kernels .. "bc_mpo_v34.tf",
|
||||
-- kernels .. "bc_mtm_v12.tf",
|
||||
-- kernels .. "bc_ops_v01.tf",
|
||||
--
|
||||
-- kernels .. "bc_mpo_sc_fcp_00160_20181020_20240216_f20181127_v01.bc",
|
||||
-- -- kernels .. "bc_mpo_sc_scm_20240101_20240111_s20240110_v01.bc",
|
||||
-- -- kernels .. "bc_mpo_sc_scm_20230101_20240101_s20240104_v01.bc",
|
||||
-- -- kernels .. "bc_mpo_sc_scm_20220101_20230101_s20230309_v01.bc",
|
||||
-- -- kernels .. "bc_mpo_sc_scm_20210101_20220101_s20230309_v01.bc",
|
||||
-- -- kernels .. "bc_mpo_sc_scm_20200101_20210101_s20210618_v01.bc",
|
||||
-- -- kernels .. "bc_mpo_sc_scm_20190101_20200101_s20230309_v01.bc",
|
||||
-- -- kernels .. "bc_mpo_sc_scm_20181020_20190101_s20230309_v01.bc",
|
||||
--
|
||||
-- kernels .. "bc_mpo_sc_scc_20240101_20240111_s20240110_v01.bc",
|
||||
-- kernels .. "bc_mpo_sc_scc_20230101_20240101_s20240104_v01.bc",
|
||||
-- kernels .. "bc_mpo_sc_scc_20220101_20230101_s20221229_v01.bc",
|
||||
-- kernels .. "bc_mpo_sc_scc_20210101_20220101_s20230309_v01.bc",
|
||||
-- kernels .. "bc_mpo_sc_scc_20200101_20210101_s20230309_v01.bc",
|
||||
-- kernels .. "bc_mpo_sc_scc_20190101_20200101_s20230309_v01.bc",
|
||||
-- kernels .. "bc_mpo_sc_scc_20181019_20190101_s20230309_v01.bc",
|
||||
--
|
||||
-- kernels .. "bc_mpo_hga_scm_20240101_20240111_s20240110_v01.bc",
|
||||
-- kernels .. "bc_mpo_hga_scm_20181020_20190101_s20201020_v02.bc",
|
||||
-- kernels .. "bc_mpo_hga_scm_20190101_20200101_s20230309_v01.bc",
|
||||
-- kernels .. "bc_mpo_hga_scm_20200101_20210101_s20230309_v01.bc",
|
||||
-- kernels .. "bc_mpo_hga_scm_20210101_20220101_s20230309_v01.bc",
|
||||
-- kernels .. "bc_mpo_hga_scm_20220101_20230101_s20221229_v01.bc",
|
||||
-- kernels .. "bc_mpo_hga_scm_20230101_20240101_s20240104_v01.bc",
|
||||
-- kernels .. "bc_mpo_magboom_default_s20191107_v01.bc",
|
||||
-- kernels .. "bc_mpo_mertis_zero_s20191107_v02.bc",
|
||||
-- kernels .. "bc_mpo_mga_scm_20181020_20190101_s20200109_v02.bc",
|
||||
-- kernels .. "bc_mpo_mga_scm_20190101_20200101_s20230309_v01.bc",
|
||||
-- kernels .. "bc_mpo_mga_scm_20200101_20210101_s20230309_v01.bc",
|
||||
-- kernels .. "bc_mpo_mga_scm_20210101_20220101_s20230309_v01.bc",
|
||||
-- kernels .. "bc_mpo_mga_scm_20220101_20230101_s20221229_v01.bc",
|
||||
-- kernels .. "bc_mpo_mga_scm_20230101_20240101_s20240104_v01.bc",
|
||||
-- kernels .. "bc_mpo_mga_scm_20240101_20240111_s20240110_v01.bc",
|
||||
-- kernels .. "bc_mpo_mga_zero_s20191107_v02.bc",
|
||||
-- kernels .. "bc_mpo_phebus_zero_s20210408_v02.bc",
|
||||
-- kernels .. "bc_mpo_sa_scm_20181020_20190101_s20211202_v01.bc",
|
||||
-- kernels .. "bc_mpo_sa_scm_20190101_20200101_s20230309_v01.bc",
|
||||
-- kernels .. "bc_mpo_sa_scm_20200101_20210101_s20230309_v01.bc",
|
||||
-- kernels .. "bc_mpo_sa_scm_20210101_20220101_s20230309_v01.bc",
|
||||
-- kernels .. "bc_mpo_sa_scm_20220101_20230101_s20221229_v01.bc",
|
||||
-- kernels .. "bc_mpo_sa_scm_20230101_20240101_s20240104_v01.bc",
|
||||
-- kernels .. "bc_mpo_sa_scm_20240101_20240111_s20240110_v01.bc",
|
||||
-- kernels .. "bc_mpo_sa_zero_s20191107_v02.bc",
|
||||
-- kernels .. "bc_mpo_sa_zero_s20191107_v02.bc",
|
||||
-- kernels .. "bc_mpo_serena_zero_s20191207_v02.bc"
|
||||
}
|
||||
|
||||
local ID = {
|
||||
MPO = "-121"
|
||||
}
|
||||
|
||||
local Frame = {
|
||||
MPO = "MPO_SPACECRAFT",
|
||||
|
||||
HGA = "MPO_HGA",
|
||||
BelaReceiver = "MPO_BELA_RX",
|
||||
BelaTransmitterMain = "MPO_BELA_TX_MAIN",
|
||||
BelaTransmitterRed = "MPO_BELA_TX_RED",
|
||||
MertisTis = "MPO_MERTIS_TIS",
|
||||
MertisTisPlanet = "MPO_MERTIS_TIS_PLANET",
|
||||
MertisTisSpace = "MPO_MERTIS_TIS_SPACE",
|
||||
MGNS = "MPO_MGNS",
|
||||
MIXS_C = "MPO_MIXS-C",
|
||||
MIXS_T = "MPO_MIXS-T",
|
||||
PhebusSlit75 = "MPO_PHEBUS_SLIT_75",
|
||||
PhebusSlit100 = "MPO_PHEBUS_SLIT_100",
|
||||
Phebus75 = "MPO_PHEBUS_75",
|
||||
Phebus100 = "MPO_PHEBUS_100",
|
||||
SerenaElena = "MPO_SERENA_ELENA",
|
||||
SerenaElenaAN01 = "MPO_SERENA_ELENA_AN_01",
|
||||
SerenaElenaAN02 = "MPO_SERENA_ELENA_AN_02",
|
||||
SerenaElenaAN03 = "MPO_SERENA_ELENA_AN_03",
|
||||
SerenaElenaAN04 = "MPO_SERENA_ELENA_AN_04",
|
||||
SerenaElenaAN05 = "MPO_SERENA_ELENA_AN_05",
|
||||
SerenaElenaAN06 = "MPO_SERENA_ELENA_AN_06",
|
||||
SerenaElenaAN07 = "MPO_SERENA_ELENA_AN_07",
|
||||
SerenaElenaAN08 = "MPO_SERENA_ELENA_AN_08",
|
||||
SerenaElenaAN09 = "MPO_SERENA_ELENA_AN_09",
|
||||
SerenaElenaAN10 = "MPO_SERENA_ELENA_AN_10",
|
||||
SerenaElenaAN11 = "MPO_SERENA_ELENA_AN_11",
|
||||
SerenaElenaAN12 = "MPO_SERENA_ELENA_AN_12",
|
||||
SerenaElenaAN13 = "MPO_SERENA_ELENA_AN_13",
|
||||
SerenaElenaAN14 = "MPO_SERENA_ELENA_AN_14",
|
||||
SerenaElenaAN15 = "MPO_SERENA_ELENA_AN_15",
|
||||
SerenaElenaAN16 = "MPO_SERENA_ELENA_AN_16",
|
||||
SerenaElenaAN17 = "MPO_SERENA_ELENA_AN_17",
|
||||
SerenaElenaAN18 = "MPO_SERENA_ELENA_AN_18",
|
||||
SerenaElenaAN19 = "MPO_SERENA_ELENA_AN_19",
|
||||
SerenaElenaAN20 = "MPO_SERENA_ELENA_AN_20",
|
||||
SerenaElenaAN21 = "MPO_SERENA_ELENA_AN_21",
|
||||
SerenaElenaAN22 = "MPO_SERENA_ELENA_AN_22",
|
||||
SerenaElenaAN23 = "MPO_SERENA_ELENA_AN_23",
|
||||
SerenaElenaAN24 = "MPO_SERENA_ELENA_AN_24",
|
||||
SerenaElenaAN25 = "MPO_SERENA_ELENA_AN_25",
|
||||
SerenaElenaAN26 = "MPO_SERENA_ELENA_AN_26",
|
||||
SerenaElenaAN27 = "MPO_SERENA_ELENA_AN_27",
|
||||
SerenaElenaAN28 = "MPO_SERENA_ELENA_AN_28",
|
||||
SerenaElenaAN29 = "MPO_SERENA_ELENA_AN_29",
|
||||
SerenaElenaAN30 = "MPO_SERENA_ELENA_AN_30",
|
||||
SerenaElenaAN31 = "MPO_SERENA_ELENA_AN_31",
|
||||
SerenaElenaAN32 = "MPO_SERENA_ELENA_AN_32",
|
||||
SymbioSysHricFpa = "MPO_SIMBIO-SYS_HRIC_FPA",
|
||||
SymbioSysHricF550 = "MPO_SIMBIO-SYS_HRIC_F550",
|
||||
SymbioSysHricFpan = "MPO_SIMBIO-SYS_HRIC_FPAN",
|
||||
SymbioSysHricF750 = "MPO_SIMBIO-SYS_HRIC_F750",
|
||||
SymbioSysHricF880 = "MPO_SIMBIO-SYS_HRIC_F880",
|
||||
SymbioSysSTCL = "MPO_SIMBIO-SYS_STC-L",
|
||||
SymbioSysSTCH = "MPO_SIMBIO-SYS_STC-H",
|
||||
SymbioSysSTCLF920 = "MPO_SIMBIO-SYS_STC-L_F920",
|
||||
SymbioSysSTCLF550 = "MPO_SIMBIO-SYS_STC-L_F550",
|
||||
SymbioSysSTCLP700 = "MPO_SIMBIO-SYS_STC-L_P700",
|
||||
SymbioSysSTCHP700 = "MPO_SIMBIO-SYS_STC-H_P700",
|
||||
SymbioSysSTCHF420 = "MPO_SIMBIO-SYS_STC-H_F420",
|
||||
SymbioSysSTCHF750 = "MPO_SIMBIO-SYS_STC-H_F750",
|
||||
SymbioSysVIHI = "MPO_SIMBIO-SYS_VIHI",
|
||||
Sixs_X1 = "MPO_SIXS-X-1",
|
||||
Sixs_X2 = "MPO_SIXS-X-2",
|
||||
Sixs_X3 = "MPO_SIXS-X-3",
|
||||
StarTracker1 = "MPO_STR-1",
|
||||
StarTracker2 = "MPO_STR-2",
|
||||
StarTracker3 = "MPO_STR-3",
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
asset.onInitialize(function()
|
||||
openspace.spice.loadKernel(BepiColomboKernels)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function()
|
||||
openspace.spice.unloadKernel(BepiColomboKernels)
|
||||
end)
|
||||
|
||||
asset.export("ID", ID)
|
||||
asset.export("Frame", Frame)
|
||||
|
||||
|
||||
|
||||
asset.meta = {
|
||||
Name = "BepiColombo Kernels",
|
||||
Version = "1.0",
|
||||
Description = "This asset contains the SPICE kernels for the BepiColombo mission.",
|
||||
Author = "OpenSpace Team",
|
||||
URL = "http://openspaceproject.com",
|
||||
License = "MIT license"
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
local Mission = {
|
||||
Name = "BepiColombo",
|
||||
Image = "https://scifleet.esa.int/downloads/bepi_mcs/bepicolombo.png",
|
||||
Description = [[BepiColombo is Europe's first mission to Mercury. It will launch in October 2018 on a journey to the smallest and least explored terrestrial planet in our Solar System. Arriving at Mercury in December 2025, it will endure temperatures in excess of 350°C and gather data during a 1 year nominal mission. The mission comprises two spacecraft: 1. Mercury Planetary Orbiter (MPO), 2. Mercury Magnetospheric Orbiter (MMO). BepiColombo is a joint mission between ESA and the Japan Aerospace Exploration Agency (JAXA), executed under ESA leadership.]],
|
||||
TimeRange = {
|
||||
Start = "2018 OCT 20 01:45:00",
|
||||
End = "2028 MAY 01 12:00:00" -- Preliminary time
|
||||
},
|
||||
Milestones = {
|
||||
{
|
||||
Name = "Launch",
|
||||
Date = "2018 OCT 20 01:45:00"
|
||||
},
|
||||
{
|
||||
Name = "Earth flyby",
|
||||
Date = "2020 APR 10 04:25"
|
||||
},
|
||||
{
|
||||
Name = "First Venus flyby",
|
||||
Date = "2020 OCT 15 03:58:00"
|
||||
},
|
||||
{
|
||||
Name = "Second Venus flyby",
|
||||
Date = "2021 AUG 10 13:51:00"
|
||||
},
|
||||
{
|
||||
Name = "First Mercury flyby",
|
||||
Date = "2021 OCT 01 23:34:41"
|
||||
},
|
||||
{
|
||||
Name = "Second Mercury flyby",
|
||||
Date = "2022 JUN 23 09:44:00"
|
||||
},
|
||||
{
|
||||
Name = "Third Mercury flyby",
|
||||
Date = "2023 JUN 19 19:34:00"
|
||||
},
|
||||
{
|
||||
Name = "Fourth Mercury flyby",
|
||||
Date = "2024 SEP 05 12:00:00" -- Preliminary time
|
||||
},
|
||||
{
|
||||
Name = "Fifth Mercury flyby",
|
||||
Date = "2024 DEC 02 12:00:00" -- Preliminary time
|
||||
},
|
||||
{
|
||||
Name = "Sixth Mercury flyby",
|
||||
Date = "2025 JAN 09 12:00:00" -- Preliminary time
|
||||
},
|
||||
{
|
||||
Name = "Mercury orbit insertion",
|
||||
Date = "2025 DEC 05 12:00:00" -- Preliminary time
|
||||
},
|
||||
{
|
||||
Name = "MPO in final science orbit",
|
||||
Date = "2026 MAR 14 12:00:00" -- Preliminary time
|
||||
},
|
||||
{
|
||||
Name = "End of nominal mission",
|
||||
Date = "2027 MAY 01 12:00:00" -- Preliminary time
|
||||
},
|
||||
{
|
||||
Name = "End of extended mission",
|
||||
Date = "2028 MAY 01 12:00:00" -- Preliminary time
|
||||
}
|
||||
},
|
||||
Phases = {}
|
||||
}
|
||||
|
||||
|
||||
asset.onInitialize(function()
|
||||
openspace.loadMission(Mission)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function()
|
||||
openspace.unloadMission(Mission.Name)
|
||||
end)
|
||||
|
||||
|
||||
|
||||
asset.meta = {
|
||||
Name = "BepiColombo Mission",
|
||||
Version = "1.0",
|
||||
Description = "This asset contains the mission profile information for the BepiColombo mission. The data in this file has been taken from https://www.esa.int/Science_Exploration/Space_Science/BepiColombo/BepiColombo_factsheet",
|
||||
Author = "OpenSpace Team",
|
||||
URL = "http://openspaceproject.com",
|
||||
License = "MIT license"
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
local transform = asset.require("scene/solarsystem/sun/transforms")
|
||||
local sun = asset.require("scene/solarsystem/sun/sun")
|
||||
local kernels = asset.require("./kernels")
|
||||
local coreKernels = asset.require("spice/core")
|
||||
|
||||
|
||||
|
||||
local modelFolder = asset.resource({
|
||||
Name = "BepiColombo Model",
|
||||
Type = "HttpSynchronization",
|
||||
Identifier = "bepicolombo_models",
|
||||
Version = 1
|
||||
})
|
||||
|
||||
|
||||
local BepiColombo = {
|
||||
Identifier = "BepiColombo",
|
||||
Parent = transform.SolarSystemBarycenter.Identifier,
|
||||
Transform = {
|
||||
Translation = {
|
||||
Type = "SpiceTranslation",
|
||||
Target = kernels.ID.MPO,
|
||||
Observer = coreKernels.ID.SolarSystemBarycenter
|
||||
},
|
||||
Rotation = {
|
||||
Type = "SpiceRotation",
|
||||
SourceFrame = kernels.Frame.MPO,
|
||||
DestinationFrame = coreKernels.Frame.Galactic
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
Name = "BepiColombo",
|
||||
Path = "/Solar System/Missions/BepiColombo"
|
||||
}
|
||||
}
|
||||
|
||||
local Model = {
|
||||
Identifier = "BepiColomboModel",
|
||||
Parent = BepiColombo.Identifier,
|
||||
Transform = {
|
||||
Translation = {
|
||||
Type = "StaticTranslation",
|
||||
Position = { 0.0, -0.275, 0.0 }
|
||||
}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableModel",
|
||||
GeometryFile = modelFolder .. "bepi_mcs.fbx",
|
||||
ModelScale = 0.00075, -- The number has been determined by eyeballing it
|
||||
LightSources = {
|
||||
sun.LightSource
|
||||
},
|
||||
PerformShading = true,
|
||||
AmbientIntensity = 0.075
|
||||
},
|
||||
GUI = {
|
||||
Name = "BepiColombo Model",
|
||||
Path = "/Solar System/Missions/BepiColombo"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
asset.onInitialize(function()
|
||||
openspace.addSceneGraphNode(BepiColombo)
|
||||
openspace.addSceneGraphNode(Model)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function()
|
||||
openspace.removeSceneGraphNode(Model)
|
||||
openspace.removeSceneGraphNode(BepiColombo)
|
||||
end)
|
||||
|
||||
asset.export(BepiColombo)
|
||||
|
||||
|
||||
|
||||
asset.meta = {
|
||||
Name = "BepiColombo Model",
|
||||
Version = "1.0",
|
||||
Description = "This asset contains the model of the BepiColombo spacecraft. The model is retrieved from https://s2e2.cosmos.esa.int/bitbucket/projects/SPICE_KERNELS/repos/bepicolombo",
|
||||
Author = "OpenSpace Team",
|
||||
URL = "http://openspaceproject.com",
|
||||
License = "MIT license"
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
local kernels = asset.require("./kernels")
|
||||
local mercury = asset.require("scene/solarsystem/planets/mercury/transforms")
|
||||
local solarsystem = asset.require("scene/solarsystem/sun/transforms")
|
||||
local coreKernels = asset.require("spice/core")
|
||||
|
||||
|
||||
|
||||
local BepiColomboTrailSun = {
|
||||
Identifier = "BepiColomboTrailSun",
|
||||
Parent = solarsystem.SolarSystemBarycenter.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableTrailTrajectory",
|
||||
Translation = {
|
||||
Type = "SpiceTranslation",
|
||||
Target = kernels.ID.MPO,
|
||||
Observer = coreKernels.ID.SolarSystemBarycenter
|
||||
},
|
||||
Color = { 0.70, 0.50, 0.20 },
|
||||
StartTime = "2018 OCT 20 01:45:00",
|
||||
EndTime = "2028 MAY 01 12:00:00",
|
||||
SampleInterval = 60000
|
||||
},
|
||||
GUI = {
|
||||
Name = "BepiColombo Trail (Sun)",
|
||||
Path = "/Solar System/Missions/BepiColombo"
|
||||
}
|
||||
}
|
||||
|
||||
local BepiColomboTrailMercury = {
|
||||
Identifier = "BepiColomboTrailMercury",
|
||||
Parent = mercury.MercuryBarycenter.Identifier,
|
||||
Renderable = {
|
||||
Type = "RenderableTrailTrajectory",
|
||||
Translation = {
|
||||
Type = "SpiceTranslation",
|
||||
Target = kernels.ID.MPO,
|
||||
Observer = coreKernels.ID.Mercury
|
||||
},
|
||||
Color = { 0.625, 0.255, 0.45 },
|
||||
StartTime = "2025 DEC 05 12:00:00",
|
||||
EndTime = "2028 MAY 01 12:00:00",
|
||||
SampleInterval = 600
|
||||
},
|
||||
GUI = {
|
||||
Name = "BepiColombo Trail (Mercury)",
|
||||
Path = "/Solar System/Missions/BepiColombo"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
asset.onInitialize(function()
|
||||
openspace.addSceneGraphNode(BepiColomboTrailSun)
|
||||
openspace.addSceneGraphNode(BepiColomboTrailMercury)
|
||||
end)
|
||||
|
||||
asset.onDeinitialize(function()
|
||||
openspace.removeSceneGraphNode(BepiColomboTrailMercury)
|
||||
openspace.removeSceneGraphNode(BepiColomboTrailSun)
|
||||
end)
|
||||
|
||||
asset.export(BepiColomboTrailSun)
|
||||
asset.export(BepiColomboTrailMercury)
|
||||
|
||||
|
||||
|
||||
asset.meta = {
|
||||
Name = "BepiColombo Trails",
|
||||
Version = "1.0",
|
||||
Description = "This asset contains the trails for the BepiColombo spacecraft relative to the Sun and Mercury.",
|
||||
Author = "OpenSpace Team",
|
||||
URL = "http://openspaceproject.com",
|
||||
License = "MIT license"
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
local sun = asset.require("scene/solarsystem/sun/sun")
|
||||
local sunTransforms = asset.require("scene/solarsystem/sun/transforms")
|
||||
local coreKernels = asset.require("spice/core")
|
||||
|
||||
|
||||
|
||||
@@ -57,7 +58,7 @@ local Voyager2 = {
|
||||
Rotation = {
|
||||
Type = "SpiceRotation",
|
||||
SourceFrame = "VG2_SC_BUS",
|
||||
DestinationFrame = "GALACTIC"
|
||||
DestinationFrame = coreKernels.Frame.Galactic
|
||||
}
|
||||
},
|
||||
GUI = {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
local transform = asset.require("scene/solarsystem/planets/earth/transforms")
|
||||
local sun = asset.require("scene/solarsystem/sun/sun")
|
||||
local spice = asset.require("./spice")
|
||||
local kernels = asset.require("./kernels")
|
||||
local coreKernels = asset.require("spice/core")
|
||||
|
||||
|
||||
|
||||
@@ -23,8 +24,8 @@ local Euclid = {
|
||||
Transform = {
|
||||
Translation = {
|
||||
Type = "SpiceTranslation",
|
||||
Target = spice.ID.Euclid,
|
||||
Observer = "EARTH BARYCENTER"
|
||||
Target = kernels.ID.Euclid,
|
||||
Observer = coreKernels.ID.EarthBarycenter
|
||||
},
|
||||
Rotation = {
|
||||
Type = "FixedRotation",
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
local spice = asset.require("./spice")
|
||||
local kernels = asset.require("./kernels")
|
||||
local earth = asset.require("scene/solarsystem/planets/earth/transforms")
|
||||
local solarsystem = asset.require("scene/solarsystem/sun/transforms")
|
||||
local transforms = asset.require("scene/solarsystem/planets/earth/lagrange_points/l2")
|
||||
local coreKernels = asset.require("spice/core")
|
||||
|
||||
|
||||
local StartTime = "2023 JUL 01 15:53:08.239"
|
||||
@@ -14,8 +15,8 @@ local EuclidTrailSun = {
|
||||
Type = "RenderableTrailTrajectory",
|
||||
Translation = {
|
||||
Type = "SpiceTranslation",
|
||||
Target = spice.ID.Euclid,
|
||||
Observer = "SSB"
|
||||
Target = kernels.ID.Euclid,
|
||||
Observer = coreKernels.ID.SolarSystemBarycenter
|
||||
},
|
||||
Color = { 0.70, 0.50, 0.20 },
|
||||
StartTime = StartTime,
|
||||
@@ -35,8 +36,8 @@ local EuclidTrailEarth = {
|
||||
Type = "RenderableTrailTrajectory",
|
||||
Translation = {
|
||||
Type = "SpiceTranslation",
|
||||
Target = spice.ID.Euclid,
|
||||
Observer = "EARTH BARYCENTER"
|
||||
Target = kernels.ID.Euclid,
|
||||
Observer = coreKernels.ID.EarthBarycenter
|
||||
},
|
||||
Color = { 0.325, 0.65, 0.55 },
|
||||
StartTime = StartTime,
|
||||
@@ -61,9 +62,9 @@ local EuclidTrailOrbit = {
|
||||
Type = "RenderableTrailOrbit",
|
||||
Translation = {
|
||||
Type = "SpiceTranslation",
|
||||
Target = spice.ID.Euclid,
|
||||
Observer = 392, -- L2
|
||||
Frame = "GALACTIC"
|
||||
Target = kernels.ID.Euclid,
|
||||
Observer = l2.ID.L2,
|
||||
Frame = coreKernels.Frame.Galactic
|
||||
},
|
||||
Color = { 0.863, 0.0, 0.902 },
|
||||
Period = 182.621099, -- About 6 months
|
||||
@@ -88,9 +89,9 @@ local EuclidTrailCoRevOrbit = {
|
||||
Type = "RenderableTrailOrbit",
|
||||
Translation = {
|
||||
Type = "SpiceTranslation",
|
||||
Target = spice.ID.Euclid,
|
||||
Observer = 392, -- L2
|
||||
Frame = "L2_COREV"
|
||||
Target = kernels.ID.Euclid,
|
||||
Observer = l2.ID.L2,
|
||||
Frame = l2.Frame.L2Corevolving
|
||||
},
|
||||
Color = { 0.863, 0.0, 0.902 },
|
||||
Period = 182.621099, -- About 6 months
|
||||
|
||||
@@ -91,7 +91,7 @@ local JWSTTrailOrbit = {
|
||||
Type = "SpiceTranslation",
|
||||
Target = kernels.ID.JWST,
|
||||
Observer = transforms.ID.L2,
|
||||
Frame = "GALACTIC"
|
||||
Frame = coreKernels.Frame.Galactic
|
||||
},
|
||||
Color = { 0.863, 0.0, 0.902 },
|
||||
Period = 182.621099, -- About 6 months
|
||||
|
||||
@@ -4,7 +4,7 @@ local guiCustomization = asset.require("customization/gui")
|
||||
|
||||
|
||||
-- Select which commit hashes to use for the frontend and backend
|
||||
local frontendHash = "17af9032d000a9865a00afe88eff88a822167eea"
|
||||
local frontendHash = "95683e59c7fa1891e7db7b83e4eeea15f9da11f1"
|
||||
|
||||
local frontend = asset.resource({
|
||||
Identifier = "WebGuiFrontend",
|
||||
|
||||
183
data/profiles/bepicolombo.profile
Normal file
183
data/profiles/bepicolombo.profile
Normal file
@@ -0,0 +1,183 @@
|
||||
{
|
||||
"assets": [
|
||||
"base",
|
||||
"base_keybindings",
|
||||
"scene/solarsystem/missions/bepicolombo/bepicolombo",
|
||||
"scene/solarsystem/planets/earth/earth"
|
||||
],
|
||||
"camera": {
|
||||
"altitude": 17000000.0,
|
||||
"anchor": "Earth",
|
||||
"latitude": 58.5877,
|
||||
"longitude": 16.1924,
|
||||
"type": "goToGeo"
|
||||
},
|
||||
"delta_times": [
|
||||
1.0,
|
||||
5.0,
|
||||
30.0,
|
||||
60.0,
|
||||
300.0,
|
||||
1800.0,
|
||||
3600.0,
|
||||
43200.0,
|
||||
86400.0,
|
||||
604800.0,
|
||||
1209600.0,
|
||||
2592000.0,
|
||||
5184000.0,
|
||||
7776000.0,
|
||||
15552000.0,
|
||||
31536000.0,
|
||||
63072000.0,
|
||||
157680000.0,
|
||||
315360000.0,
|
||||
630720000.0
|
||||
],
|
||||
"mark_nodes": [
|
||||
"BepiColombo",
|
||||
"Mercury",
|
||||
"Earth",
|
||||
"Venus",
|
||||
"Sun"
|
||||
],
|
||||
"meta": {
|
||||
"author": "OpenSpace Team",
|
||||
"description": "Default OpenSpace Profile. Adds Earth satellites not contained in other profiles",
|
||||
"license": "MIT License",
|
||||
"name": "Default",
|
||||
"url": "https://www.openspaceproject.com",
|
||||
"version": "1.0"
|
||||
},
|
||||
"properties": [
|
||||
{
|
||||
"name": "Scene.BepiColomboMPO_MertisTis.Renderable.Enabled",
|
||||
"type": "setPropertyValueSingle",
|
||||
"value": "false"
|
||||
},
|
||||
{
|
||||
"name": "Scene.BepiColomboMPO_MertisTisPlanet.Renderable.Enabled",
|
||||
"type": "setPropertyValueSingle",
|
||||
"value": "false"
|
||||
},
|
||||
{
|
||||
"name": "Scene.BepiColomboMPO_MertisTisSpace.Renderable.Enabled",
|
||||
"type": "setPropertyValueSingle",
|
||||
"value": "false"
|
||||
},
|
||||
{
|
||||
"name": "Scene.BepiColomboMPO_Phebus100.Renderable.Enabled",
|
||||
"type": "setPropertyValueSingle",
|
||||
"value": "false"
|
||||
},
|
||||
{
|
||||
"name": "Scene.BepiColomboMPO_Phebus75.Renderable.Enabled",
|
||||
"type": "setPropertyValueSingle",
|
||||
"value": "false"
|
||||
},
|
||||
{
|
||||
"name": "Scene.BepiColomboMPO_PhebusSlit100.Renderable.Enabled",
|
||||
"type": "setPropertyValueSingle",
|
||||
"value": "false"
|
||||
},
|
||||
{
|
||||
"name": "Scene.BepiColomboMPO_PhebusSlit75.Renderable.Enabled",
|
||||
"type": "setPropertyValueSingle",
|
||||
"value": "false"
|
||||
},
|
||||
{
|
||||
"name": "Scene.BepiColomboMPO_SerenaElena.Renderable.Enabled",
|
||||
"type": "setPropertyValueSingle",
|
||||
"value": "false"
|
||||
},
|
||||
{
|
||||
"name": "Scene.BepiColomboMPO_SIMBIOSYS_HRIC_F550.Renderable.Enabled",
|
||||
"type": "setPropertyValueSingle",
|
||||
"value": "false"
|
||||
},
|
||||
{
|
||||
"name": "Scene.BepiColomboMPO_SIMBIOSYS_HRIC_F750.Renderable.Enabled",
|
||||
"type": "setPropertyValueSingle",
|
||||
"value": "false"
|
||||
},
|
||||
{
|
||||
"name": "Scene.BepiColomboMPO_SIMBIOSYS_HRIC_F880.Renderable.Enabled",
|
||||
"type": "setPropertyValueSingle",
|
||||
"value": "false"
|
||||
},
|
||||
{
|
||||
"name": "Scene.BepiColomboMPO_SIMBIOSYS_HRIC_FPA.Renderable.Enabled",
|
||||
"type": "setPropertyValueSingle",
|
||||
"value": "false"
|
||||
},
|
||||
{
|
||||
"name": "Scene.BepiColomboMPO_SIMBIOSYS_HRIC_FPAN.Renderable.Enabled",
|
||||
"type": "setPropertyValueSingle",
|
||||
"value": "false"
|
||||
},
|
||||
{
|
||||
"name": "Scene.BepiColomboMPO_SIMBIOSYS_STC_H.Renderable.Enabled",
|
||||
"type": "setPropertyValueSingle",
|
||||
"value": "false"
|
||||
},
|
||||
{
|
||||
"name": "Scene.BepiColomboMPO_SIMBIOSYS_STC_H_F420.Renderable.Enabled",
|
||||
"type": "setPropertyValueSingle",
|
||||
"value": "false"
|
||||
},
|
||||
{
|
||||
"name": "Scene.BepiColomboMPO_SIMBIOSYS_STC_H_F750.Renderable.Enabled",
|
||||
"type": "setPropertyValueSingle",
|
||||
"value": "false"
|
||||
},
|
||||
{
|
||||
"name": "Scene.BepiColomboMPO_SIMBIOSYS_STC_H_P700.Renderable.Enabled",
|
||||
"type": "setPropertyValueSingle",
|
||||
"value": "false"
|
||||
},
|
||||
{
|
||||
"name": "Scene.BepiColomboMPO_SIMBIOSYS_STC_L.Renderable.Enabled",
|
||||
"type": "setPropertyValueSingle",
|
||||
"value": "false"
|
||||
},
|
||||
{
|
||||
"name": "Scene.BepiColomboMPO_SIMBIOSYS_STC_L_F550.Renderable.Enabled",
|
||||
"type": "setPropertyValueSingle",
|
||||
"value": "false"
|
||||
},
|
||||
{
|
||||
"name": "Scene.BepiColomboMPO_SIMBIOSYS_STC_L_F920.Renderable.Enabled",
|
||||
"type": "setPropertyValueSingle",
|
||||
"value": "false"
|
||||
},
|
||||
{
|
||||
"name": "Scene.BepiColomboMPO_SIMBIOSYS_STC_L_P700.Renderable.Enabled",
|
||||
"type": "setPropertyValueSingle",
|
||||
"value": "false"
|
||||
},
|
||||
{
|
||||
"name": "Scene.BepiColomboMPO_SIMBIOSYS_VIHI.Renderable.Enabled",
|
||||
"type": "setPropertyValueSingle",
|
||||
"value": "false"
|
||||
},
|
||||
{
|
||||
"name": "Scene.BepiColomboMPO_MIXS-C.Renderable.Enabled",
|
||||
"type": "setPropertyValueSingle",
|
||||
"value": "false"
|
||||
},
|
||||
{
|
||||
"name": "Scene.BepiColomboMPO_MIXS-T.Renderable.Enabled",
|
||||
"type": "setPropertyValueSingle",
|
||||
"value": "false"
|
||||
}
|
||||
],
|
||||
"time": {
|
||||
"is_paused": false,
|
||||
"type": "relative",
|
||||
"value": "-1d"
|
||||
},
|
||||
"version": {
|
||||
"major": 1,
|
||||
"minor": 3
|
||||
}
|
||||
}
|
||||
Submodule ext/ghoul updated: 82f83b40fd...ba6aece1de
@@ -22,26 +22,18 @@
|
||||
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
|
||||
****************************************************************************************/
|
||||
|
||||
#include "fragment.glsl"
|
||||
#ifndef __OPENSPACE_CORE___CSVLOADER___H__
|
||||
#define __OPENSPACE_CORE___CSVLOADER___H__
|
||||
|
||||
in float vs_screenSpaceDepth;
|
||||
#include <openspace/data/dataloader.h>
|
||||
#include <filesystem>
|
||||
#include <optional>
|
||||
|
||||
uniform vec3 color;
|
||||
uniform float alphaValue;
|
||||
uniform sampler2D spriteTexture;
|
||||
namespace openspace::dataloader::csv {
|
||||
|
||||
Dataset loadCsvFile(std::filesystem::path path,
|
||||
std::optional<DataMapping> specs = std::nullopt);
|
||||
|
||||
Fragment getFragment() {
|
||||
Fragment frag;
|
||||
} // namespace openspace::dataloader
|
||||
|
||||
if (alphaValue == 0.0) {
|
||||
discard;
|
||||
}
|
||||
|
||||
frag.color = texture(spriteTexture, gl_PointCoord) * vec4(color, alphaValue);
|
||||
//frag.depth = gs_screenSpaceDepth;
|
||||
frag.depth = vs_screenSpaceDepth;
|
||||
frag.blend = BLEND_MODE_ADDITIVE;
|
||||
|
||||
return frag;
|
||||
}
|
||||
#endif // __OPENSPACE_CORE___CSVLOADER___H__
|
||||
@@ -22,20 +22,28 @@
|
||||
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
|
||||
****************************************************************************************/
|
||||
|
||||
#ifndef __OPENSPACE_MODULE_SPACE___SPECKLOADER___H__
|
||||
#define __OPENSPACE_MODULE_SPACE___SPECKLOADER___H__
|
||||
#ifndef __OPENSPACE_CORE___DATALOADER___H__
|
||||
#define __OPENSPACE_CORE___DATALOADER___H__
|
||||
|
||||
#include <openspace/data/datamapping.h>
|
||||
#include <ghoul/glm.h>
|
||||
#include <ghoul/misc/boolean.h>
|
||||
#include <ghoul/misc/csvreader.h>
|
||||
#include <filesystem>
|
||||
#include <optional>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
namespace openspace::speck {
|
||||
|
||||
BooleanType(SkipAllZeroLines);
|
||||
namespace openspace::dataloader {
|
||||
|
||||
/**
|
||||
* A dataset representing objects with positions and various other data columns.
|
||||
* Based on the SPECK format originally used for the digital universe datasets.
|
||||
* Mostly used for point-data.
|
||||
*
|
||||
* The read data files may also have associated texture values to be used for the
|
||||
* points.
|
||||
*/
|
||||
struct Dataset {
|
||||
struct Variable {
|
||||
int index = -1;
|
||||
@@ -59,8 +67,14 @@ struct Dataset {
|
||||
};
|
||||
std::vector<Entry> entries;
|
||||
|
||||
/// This variable can be used to get an understanding of the world scale size of
|
||||
/// the dataset
|
||||
float maxPositionComponent = 0.f;
|
||||
|
||||
int index(std::string_view variableName) const;
|
||||
bool normalizeVariable(std::string_view variableName);
|
||||
glm::vec2 findValueRange(int variableIndex) const;
|
||||
glm::vec2 findValueRange(std::string_view variableName) const;
|
||||
};
|
||||
|
||||
struct Labelset {
|
||||
@@ -76,49 +90,50 @@ struct Labelset {
|
||||
};
|
||||
|
||||
struct ColorMap {
|
||||
std::optional<glm::vec4> belowRangeColor;
|
||||
std::optional<glm::vec4> aboveRangeColor;
|
||||
std::optional<glm::vec4> nanColor;
|
||||
std::vector<glm::vec4> entries;
|
||||
};
|
||||
|
||||
namespace data {
|
||||
|
||||
Dataset loadFile(std::filesystem::path path,
|
||||
SkipAllZeroLines skipAllZeroLines = SkipAllZeroLines::Yes);
|
||||
std::optional<DataMapping> specs = std::nullopt);
|
||||
|
||||
std::optional<Dataset> loadCachedFile(std::filesystem::path path);
|
||||
void saveCachedFile(const Dataset& dataset, std::filesystem::path path);
|
||||
|
||||
Dataset loadFileWithCache(std::filesystem::path speckPath,
|
||||
SkipAllZeroLines skipAllZeroLines = SkipAllZeroLines::Yes);
|
||||
Dataset loadFileWithCache(std::filesystem::path path,
|
||||
std::optional<DataMapping> specs = std::nullopt);
|
||||
|
||||
} // namespace data
|
||||
|
||||
namespace label {
|
||||
|
||||
Labelset loadFile(std::filesystem::path path,
|
||||
SkipAllZeroLines skipAllZeroLines = SkipAllZeroLines::Yes);
|
||||
std::optional<DataMapping> specs = std::nullopt);
|
||||
|
||||
std::optional<Labelset> loadCachedFile(std::filesystem::path path);
|
||||
void saveCachedFile(const Labelset& labelset, std::filesystem::path path);
|
||||
|
||||
Labelset loadFileWithCache(std::filesystem::path speckPath,
|
||||
SkipAllZeroLines skipAllZeroLines = SkipAllZeroLines::Yes);
|
||||
Labelset loadFileWithCache(std::filesystem::path path);
|
||||
|
||||
Labelset loadFromDataset(const dataloader::Dataset& dataset);
|
||||
} // namespace label
|
||||
|
||||
namespace color {
|
||||
|
||||
ColorMap loadFile(std::filesystem::path path,
|
||||
SkipAllZeroLines skipAllZeroLines = SkipAllZeroLines::Yes);
|
||||
std::optional<DataMapping> specs = std::nullopt);
|
||||
|
||||
std::optional<ColorMap> loadCachedFile(std::filesystem::path path);
|
||||
void saveCachedFile(const ColorMap& colorMap, std::filesystem::path path);
|
||||
|
||||
ColorMap loadFileWithCache(std::filesystem::path path,
|
||||
SkipAllZeroLines skipAllZeroLines = SkipAllZeroLines::Yes);
|
||||
ColorMap loadFileWithCache(std::filesystem::path path);
|
||||
|
||||
} // namespace color
|
||||
|
||||
} // namespace openspace::dataloader
|
||||
|
||||
} // namespace openspace::speck
|
||||
|
||||
#endif // __OPENSPACE_MODULE_SPACE___SPECKLOADER___H__
|
||||
#endif // __OPENSPACE_CORE___DATALOADER___H__
|
||||
77
include/openspace/data/datamapping.h
Normal file
77
include/openspace/data/datamapping.h
Normal file
@@ -0,0 +1,77 @@
|
||||
/*****************************************************************************************
|
||||
* *
|
||||
* OpenSpace *
|
||||
* *
|
||||
* Copyright (c) 2014-2023 *
|
||||
* *
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of this *
|
||||
* software and associated documentation files (the "Software"), to deal in the Software *
|
||||
* without restriction, including without limitation the rights to use, copy, modify, *
|
||||
* merge, publish, distribute, sublicense, and/or sell copies of the Software, and to *
|
||||
* permit persons to whom the Software is furnished to do so, subject to the following *
|
||||
* conditions: *
|
||||
* *
|
||||
* The above copyright notice and this permission notice shall be included in all copies *
|
||||
* or substantial portions of the Software. *
|
||||
* *
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, *
|
||||
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A *
|
||||
* PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT *
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF *
|
||||
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE *
|
||||
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
|
||||
****************************************************************************************/
|
||||
|
||||
#ifndef __OPENSPACE_CORE___DATAMAPPING___H__
|
||||
#define __OPENSPACE_CORE___DATAMAPPING___H__
|
||||
|
||||
#include <optional>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
namespace openspace::documentation { struct Documentation; }
|
||||
namespace ghoul { class Dictionary; }
|
||||
|
||||
namespace openspace::dataloader {
|
||||
|
||||
struct DataMapping {
|
||||
static DataMapping createFromDictionary(const ghoul::Dictionary& dictionary);
|
||||
static documentation::Documentation Documentation();
|
||||
|
||||
bool hasExcludeColumns() const;
|
||||
bool isExcludeColumn(std::string_view column) const;
|
||||
|
||||
std::optional<std::string> xColumnName;
|
||||
std::optional<std::string> yColumnName;
|
||||
std::optional<std::string> zColumnName;
|
||||
std::optional<std::string> nameColumn;
|
||||
|
||||
std::optional<float> missingDataValue;
|
||||
|
||||
bool isCaseSensitive = false;
|
||||
|
||||
std::vector<std::string> excludeColumns;
|
||||
|
||||
// OBS! When new parameters are added they should be included in the generateHash
|
||||
// function
|
||||
};
|
||||
|
||||
/**
|
||||
* Generate a string based on the data mapping, that can be used to uniquely
|
||||
* identify the dataset.
|
||||
*/
|
||||
std::string generateHashString(const DataMapping& dm);
|
||||
|
||||
bool isPositionColumn(const std::string& c, const std::optional<DataMapping>& mapping);
|
||||
|
||||
bool isColumnX(const std::string& c, const std::optional<DataMapping>& mapping);
|
||||
|
||||
bool isColumnY(const std::string& c, const std::optional<DataMapping>& mapping);
|
||||
|
||||
bool isColumnZ(const std::string& c, const std::optional<DataMapping>& mapping);
|
||||
|
||||
bool isNameColumn(const std::string& c, const std::optional<DataMapping>& mapping);
|
||||
|
||||
} // namespace openspace::dataloader
|
||||
|
||||
#endif // __OPENSPACE_CORE___DATAMAPPING___H__
|
||||
@@ -22,29 +22,22 @@
|
||||
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
|
||||
****************************************************************************************/
|
||||
|
||||
#version __CONTEXT__
|
||||
#ifndef __OPENSPACE_CORE___SPECKLOADER___H__
|
||||
#define __OPENSPACE_CORE___SPECKLOADER___H__
|
||||
|
||||
#include "PowerScaling/powerScaling_vs.hglsl"
|
||||
#include <openspace/data/dataloader.h>
|
||||
#include <filesystem>
|
||||
#include <optional>
|
||||
|
||||
in dvec4 in_position;
|
||||
in dvec4 in_colormap;
|
||||
namespace openspace::dataloader::speck {
|
||||
|
||||
out float vs_screenSpaceDepth;
|
||||
out float vs_scaleFactor;
|
||||
out vec4 colorMap;
|
||||
Dataset loadSpeckFile(std::filesystem::path path,
|
||||
std::optional<DataMapping> specs = std::nullopt);
|
||||
|
||||
uniform dmat4 modelViewProjectionTransform;
|
||||
uniform float scaleFactor;
|
||||
Labelset loadLabelFile(std::filesystem::path path);
|
||||
|
||||
ColorMap loadCmapFile(std::filesystem::path path);
|
||||
|
||||
void main() {
|
||||
vec4 positionClipSpace = vec4(modelViewProjectionTransform * in_position);
|
||||
vec4 positionScreenSpace = vec4(z_normalization(positionClipSpace));
|
||||
} // namespace openspace::dataloader::speck
|
||||
|
||||
vs_screenSpaceDepth = positionScreenSpace.w;
|
||||
vs_scaleFactor = scaleFactor;
|
||||
colorMap = vec4(in_colormap);
|
||||
|
||||
gl_PointSize = scaleFactor;
|
||||
gl_Position = positionScreenSpace;
|
||||
}
|
||||
#endif // __OPENSPACE_CORE___SPECKLOADER___H__
|
||||
@@ -78,6 +78,7 @@ struct Configuration {
|
||||
Logging logging;
|
||||
|
||||
std::string scriptLog;
|
||||
int scriptLogRotation = 3;
|
||||
|
||||
struct DocumentationInfo {
|
||||
std::string path;
|
||||
|
||||
@@ -594,6 +594,7 @@ public:
|
||||
protected:
|
||||
properties::BoolProperty _renderPlaybackInformation;
|
||||
properties::BoolProperty _ignoreRecordedScale;
|
||||
properties::BoolProperty _addModelMatrixinAscii;
|
||||
|
||||
enum class RecordedType {
|
||||
Camera = 0,
|
||||
|
||||
@@ -181,9 +181,9 @@ private:
|
||||
Camera* _camera = nullptr;
|
||||
std::function<void()> _playbackEndCallback;
|
||||
|
||||
static constexpr double InteractionHystersis = 0.0125;
|
||||
bool _inAnchorApproachSphere = false;
|
||||
bool _inAnchorReachSphere = false;
|
||||
const SceneGraphNode* _lastAnchor = nullptr;
|
||||
|
||||
OrbitalNavigator _orbitalNavigator;
|
||||
KeyframeNavigator _keyframeNavigator;
|
||||
|
||||
@@ -53,7 +53,7 @@ public:
|
||||
};
|
||||
|
||||
Path(Waypoint start, Waypoint end, Type type,
|
||||
std::optional<double> duration = std::nullopt);
|
||||
std::optional<float> duration = std::nullopt);
|
||||
|
||||
Waypoint startPoint() const;
|
||||
Waypoint endPoint() const;
|
||||
@@ -63,6 +63,21 @@ public:
|
||||
*/
|
||||
double pathLength() const;
|
||||
|
||||
/**
|
||||
* Return the remaining distance to traverse, in meters.
|
||||
*/
|
||||
double remainingDistance() const;
|
||||
|
||||
/**
|
||||
* Estimate a value for the remaining time to reach the target, based on the
|
||||
* currently progressed time and the estimation for how long the path will
|
||||
* take to traverse. Note that the computation is not exact.
|
||||
*
|
||||
* \param speedScale The speed scale factor that may affect how fast the camera moves
|
||||
* \return The estimated remaining time
|
||||
*/
|
||||
float estimatedRemainingTime(float speedScale) const;
|
||||
|
||||
/**
|
||||
* Return a vector of positions corresponding to the control points of the path's
|
||||
* spline curve.
|
||||
@@ -170,11 +185,12 @@ private:
|
||||
|
||||
std::unique_ptr<PathCurve> _curve;
|
||||
|
||||
double _speedFactorFromDuration = 1.0;
|
||||
float _speedFactorFromDuration = 1.f;
|
||||
float _expectedDuration = 0.f;
|
||||
|
||||
// Playback variables
|
||||
double _traveledDistance = 0.0; // Meters
|
||||
double _progressedTime = 0.0; // Time since playback started (seconds)
|
||||
float _progressedTime = 0.f; // Time since playback started (seconds)
|
||||
bool _shouldQuit = false;
|
||||
CameraPose _prevPose;
|
||||
};
|
||||
|
||||
@@ -64,6 +64,9 @@ public:
|
||||
bool hasCurrentPath() const;
|
||||
bool hasFinished() const;
|
||||
bool isPlayingPath() const;
|
||||
bool isPaused() const;
|
||||
|
||||
float estimatedRemainingTimeInPath() const;
|
||||
|
||||
void updateCamera(double deltaTime);
|
||||
void createPath(const ghoul::Dictionary& dictionary);
|
||||
@@ -102,7 +105,7 @@ private:
|
||||
*/
|
||||
void findRelevantNodes();
|
||||
|
||||
void removeRollRotation(CameraPose& pose, double deltaTime);
|
||||
void removeRollRotation(CameraPose& pose);
|
||||
|
||||
std::unique_ptr<Path> _currentPath = nullptr;
|
||||
bool _isPlaying = false;
|
||||
|
||||
@@ -47,6 +47,7 @@ public:
|
||||
glm::dquat rotation() const;
|
||||
SceneGraphNode* node() const;
|
||||
std::string nodeIdentifier() const;
|
||||
std::optional<std::string> aimIdentifier() const;
|
||||
double validBoundingSphere() const;
|
||||
|
||||
private:
|
||||
@@ -54,6 +55,11 @@ private:
|
||||
std::string _nodeIdentifier;
|
||||
// To be able to handle nodes with faulty bounding spheres
|
||||
double _validBoundingSphere = 0.0;
|
||||
|
||||
// Keep track of if there was an aim node, specified in for example the
|
||||
// navigation state used to create this waypoint. It may be required in
|
||||
// certain situations
|
||||
std::optional<std::string> _aimNodeIdentifier;
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
117
include/openspace/rendering/colormappingcomponent.h
Normal file
117
include/openspace/rendering/colormappingcomponent.h
Normal file
@@ -0,0 +1,117 @@
|
||||
/*****************************************************************************************
|
||||
* *
|
||||
* OpenSpace *
|
||||
* *
|
||||
* Copyright (c) 2014-2023 *
|
||||
* *
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of this *
|
||||
* software and associated documentation files (the "Software"), to deal in the Software *
|
||||
* without restriction, including without limitation the rights to use, copy, modify, *
|
||||
* merge, publish, distribute, sublicense, and/or sell copies of the Software, and to *
|
||||
* permit persons to whom the Software is furnished to do so, subject to the following *
|
||||
* conditions: *
|
||||
* *
|
||||
* The above copyright notice and this permission notice shall be included in all copies *
|
||||
* or substantial portions of the Software. *
|
||||
* *
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, *
|
||||
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A *
|
||||
* PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT *
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF *
|
||||
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE *
|
||||
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
|
||||
****************************************************************************************/
|
||||
|
||||
#ifndef __OPENSPACE_MODULE_BASE___COLORMAPCOMPONENT___H__
|
||||
#define __OPENSPACE_MODULE_BASE___COLORMAPCOMPONENT___H__
|
||||
|
||||
#include <openspace/properties/propertyowner.h>
|
||||
|
||||
#include <openspace/data/dataloader.h>
|
||||
#include <openspace/properties/optionproperty.h>
|
||||
#include <openspace/properties/stringproperty.h>
|
||||
#include <openspace/properties/triggerproperty.h>
|
||||
#include <openspace/properties/scalar/boolproperty.h>
|
||||
#include <openspace/properties/vector/vec2property.h>
|
||||
#include <openspace/properties/vector/vec4property.h>
|
||||
#include <ghoul/opengl/texture.h>
|
||||
|
||||
namespace openspace {
|
||||
|
||||
namespace documentation { struct Documentation; }
|
||||
|
||||
/**
|
||||
* This is a component that can be used to consistently hold parameters and properties
|
||||
* for controlling color mapping in different types of renderables. This includes things
|
||||
* like the color map file itself (converted to a texture), colors to use for missing
|
||||
* values and the available data columns and value ranges.
|
||||
*
|
||||
* @TODO Also provide a small shader snippet that can be included in fragment shaders
|
||||
* that use this color mapping. As well as a set of uniforms? Now every
|
||||
* renderable needs to handle this separately. (emmbr, 2023-10-13)
|
||||
*/
|
||||
class ColorMappingComponent : public properties::PropertyOwner {
|
||||
public:
|
||||
ColorMappingComponent();
|
||||
explicit ColorMappingComponent(const ghoul::Dictionary& dictionary);
|
||||
~ColorMappingComponent() override = default;
|
||||
|
||||
ghoul::opengl::Texture* texture() const;
|
||||
|
||||
/**
|
||||
* Initialize the color map information (ranges, etc.) based on the input dataset.
|
||||
*
|
||||
* \param dataset The *loaded* input dataset
|
||||
*/
|
||||
void initialize(const dataloader::Dataset& dataset);
|
||||
|
||||
/**
|
||||
* Initialize a 1D texture based on the entries in the color map file.
|
||||
*/
|
||||
void initializeTexture();
|
||||
|
||||
static documentation::Documentation Documentation();
|
||||
|
||||
glm::vec4 colorFromColorMap(float value) const;
|
||||
|
||||
properties::BoolProperty enabled;
|
||||
properties::OptionProperty dataColumn;
|
||||
properties::StringProperty colorMapFile;
|
||||
properties::Vec2Property valueRange;
|
||||
properties::TriggerProperty setRangeFromData;
|
||||
|
||||
properties::BoolProperty hideOutsideRange;
|
||||
properties::BoolProperty useNanColor;
|
||||
properties::Vec4Property nanColor;
|
||||
|
||||
properties::BoolProperty useAboveRangeColor;
|
||||
properties::Vec4Property aboveRangeColor;
|
||||
|
||||
properties::BoolProperty useBelowRangeColor;
|
||||
properties::Vec4Property belowRangeColor;
|
||||
|
||||
private:
|
||||
/**
|
||||
* Fill parameter options list and range data based on the dataset and provided
|
||||
* information.
|
||||
*/
|
||||
void initializeParameterData(const dataloader::Dataset& dataset);
|
||||
|
||||
// One item per color parameter option
|
||||
std::vector<glm::vec2> _colorRangeData;
|
||||
|
||||
std::unique_ptr<ghoul::opengl::Texture> _texture;
|
||||
|
||||
dataloader::ColorMap _colorMap;
|
||||
|
||||
std::optional<std::string> _providedParameter;
|
||||
std::optional<glm::vec2> _providedRange;
|
||||
|
||||
bool _hasNanColorInAsset = false;
|
||||
bool _hasBelowRangeColorInAsset = false;
|
||||
bool _hasAboveRangeColorInAsset = false;
|
||||
};
|
||||
|
||||
} // namespace openspace
|
||||
|
||||
#endif // __OPENSPACE_MODULE_BASE___COLORMAPCOMPONENT___H__
|
||||
@@ -22,13 +22,13 @@
|
||||
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
|
||||
****************************************************************************************/
|
||||
|
||||
#ifndef __OPENSPACE_MODULE_SPACE___LABELSCOMPONENT___H__
|
||||
#define __OPENSPACE_MODULE_SPACE___LABELSCOMPONENT___H__
|
||||
#ifndef __OPENSPACE_CORE___LABELSCOMPONENT___H__
|
||||
#define __OPENSPACE_CORE___LABELSCOMPONENT___H__
|
||||
|
||||
#include <openspace/properties/propertyowner.h>
|
||||
#include <openspace/rendering/fadeable.h>
|
||||
|
||||
#include <modules/space/speckloader.h>
|
||||
#include <openspace/data/dataloader.h>
|
||||
#include <openspace/properties/scalar/boolproperty.h>
|
||||
#include <openspace/properties/scalar/floatproperty.h>
|
||||
#include <openspace/properties/vector/ivec2property.h>
|
||||
@@ -47,10 +47,24 @@ namespace documentation { struct Documentation; }
|
||||
class LabelsComponent : public properties::PropertyOwner, public Fadeable {
|
||||
public:
|
||||
explicit LabelsComponent(const ghoul::Dictionary& dictionary);
|
||||
|
||||
/**
|
||||
* Create a labels component from an already loaded dataset. That dataset should have
|
||||
* a comment per point to be used for the labels.
|
||||
*
|
||||
* \param dictionary A dictionary with the other information used for constructing
|
||||
* the dataset
|
||||
* \param dataset The dataset to create the labelset from, including xyz position and
|
||||
* a string to be used for the text.
|
||||
* \param unit The unit to use when interpreting the point information in the dataset
|
||||
*/
|
||||
explicit LabelsComponent(const ghoul::Dictionary& dictionary,
|
||||
const dataloader::Dataset& dataset, DistanceUnit unit);
|
||||
|
||||
~LabelsComponent() override = default;
|
||||
|
||||
speck::Labelset& labelSet();
|
||||
const speck::Labelset& labelSet() const;
|
||||
dataloader::Labelset& labelSet();
|
||||
const dataloader::Labelset& labelSet() const;
|
||||
|
||||
void initialize();
|
||||
|
||||
@@ -68,13 +82,16 @@ public:
|
||||
private:
|
||||
std::filesystem::path _labelFile;
|
||||
DistanceUnit _unit = DistanceUnit::Parsec;
|
||||
speck::Labelset _labelset;
|
||||
dataloader::Labelset _labelset;
|
||||
|
||||
bool _useCache = true;
|
||||
|
||||
std::shared_ptr<ghoul::fontrendering::Font> _font = nullptr;
|
||||
|
||||
glm::dmat4 _transformationMatrix = glm::dmat4(1.0);
|
||||
|
||||
// Properties
|
||||
bool _createdFromDataset = false;
|
||||
|
||||
properties::BoolProperty _enabled;
|
||||
properties::Vec3Property _color;
|
||||
properties::FloatProperty _size;
|
||||
@@ -85,4 +102,4 @@ private:
|
||||
|
||||
} // namespace openspace
|
||||
|
||||
#endif // __OPENSPACE_MODULE_SPACE___LABELSCOMPONENT___H__
|
||||
#endif // __OPENSPACE_CORE___LABELSCOMPONENT___H__
|
||||
@@ -213,24 +213,6 @@ public:
|
||||
*/
|
||||
void updateInterpolations();
|
||||
|
||||
/**
|
||||
* Adds the provided \p time as an interesting time to this scene. The same time can
|
||||
* be added multiple times.
|
||||
*
|
||||
* \param time The time that should be added
|
||||
*
|
||||
* \pre \p time.time must not be empty
|
||||
* \pre \p time.name must not be empty
|
||||
*/
|
||||
void addInterestingTime(InterestingTime time);
|
||||
|
||||
/**
|
||||
* Returns the list of all interesting times that are defined for this scene.
|
||||
*
|
||||
* \return The list of all interesting times that are defined for this scene
|
||||
*/
|
||||
const std::vector<InterestingTime>& interestingTimes() const;
|
||||
|
||||
/**
|
||||
* Returns the Lua library that contains all Lua functions available to change the
|
||||
* scene graph.
|
||||
@@ -334,7 +316,6 @@ private:
|
||||
SceneGraphNode _rootDummy;
|
||||
std::unique_ptr<SceneInitializer> _initializer;
|
||||
std::string _profilePropertyName;
|
||||
std::vector<InterestingTime> _interestingTimes;
|
||||
bool _valueIsTable = false;
|
||||
|
||||
std::mutex _programUpdateLock;
|
||||
|
||||
@@ -157,20 +157,16 @@ DistanceUnitNamesPlural = {
|
||||
};
|
||||
|
||||
constexpr bool isValidDistanceUnitName(std::string_view name) {
|
||||
int i = 0;
|
||||
for (std::string_view val : DistanceUnitNamesSingular) {
|
||||
if (val == name) {
|
||||
return true;
|
||||
}
|
||||
++i;
|
||||
}
|
||||
|
||||
i = 0;
|
||||
for (std::string_view val : DistanceUnitNamesPlural) {
|
||||
if (val == name) {
|
||||
return true;
|
||||
}
|
||||
++i;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -232,6 +232,14 @@ public:
|
||||
*/
|
||||
void unloadKernel(KernelHandle kernelId);
|
||||
|
||||
/**
|
||||
* Returns a list of all loaded kernels in the kernel pool that have been loaded
|
||||
* through the SpiceManager. The kernels are reported in order of their loading.
|
||||
*
|
||||
* \return The list of all loaded kernels that have been loaded through this manager
|
||||
*/
|
||||
std::vector<std::string> loadedKernels() const;
|
||||
|
||||
/**
|
||||
* Unloads a SPICE kernel identified by the \p filePath which was used in the
|
||||
* loading call to #loadKernel. The unloading is done by calling the `unload_c`
|
||||
|
||||
@@ -100,20 +100,16 @@ TimeUnitNamesPlural = {
|
||||
};
|
||||
|
||||
constexpr bool isValidTimeUnitName(std::string_view name) {
|
||||
int i = 0;
|
||||
for (std::string_view val : TimeUnitNamesSingular) {
|
||||
if (val == name) {
|
||||
return true;
|
||||
}
|
||||
++i;
|
||||
}
|
||||
|
||||
i = 0;
|
||||
for (std::string_view val : TimeUnitNamesPlural) {
|
||||
if (val == name) {
|
||||
return true;
|
||||
}
|
||||
++i;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -44,6 +44,8 @@ set(HEADER_FILES
|
||||
rendering/grids/renderablegrid.h
|
||||
rendering/grids/renderableradialgrid.h
|
||||
rendering/grids/renderablesphericalgrid.h
|
||||
rendering/pointcloud/renderablepointcloud.h
|
||||
rendering/pointcloud/renderablepolygoncloud.h
|
||||
rendering/renderablecartesianaxes.h
|
||||
rendering/renderabledisc.h
|
||||
rendering/renderablelabel.h
|
||||
@@ -104,6 +106,8 @@ set(SOURCE_FILES
|
||||
rendering/grids/renderablegrid.cpp
|
||||
rendering/grids/renderableradialgrid.cpp
|
||||
rendering/grids/renderablesphericalgrid.cpp
|
||||
rendering/pointcloud/renderablepointcloud.cpp
|
||||
rendering/pointcloud/renderablepolygoncloud.cpp
|
||||
rendering/renderablecartesianaxes.cpp
|
||||
rendering/renderabledisc.cpp
|
||||
rendering/renderablelabel.cpp
|
||||
@@ -150,6 +154,9 @@ set(SHADER_FILES
|
||||
shaders/arrow_vs.glsl
|
||||
shaders/axes_fs.glsl
|
||||
shaders/axes_vs.glsl
|
||||
shaders/billboardpoint_fs.glsl
|
||||
shaders/billboardpoint_gs.glsl
|
||||
shaders/billboardpoint_vs.glsl
|
||||
shaders/disc_fs.glsl
|
||||
shaders/disc_vs.glsl
|
||||
shaders/grid_vs.glsl
|
||||
@@ -162,6 +169,9 @@ set(SHADER_FILES
|
||||
shaders/model_vs.glsl
|
||||
shaders/plane_fs.glsl
|
||||
shaders/plane_vs.glsl
|
||||
shaders/polygon_fs.glsl
|
||||
shaders/polygon_gs.glsl
|
||||
shaders/polygon_vs.glsl
|
||||
shaders/prism_fs.glsl
|
||||
shaders/prism_vs.glsl
|
||||
shaders/renderabletrail_fs.glsl
|
||||
|
||||
@@ -43,6 +43,8 @@
|
||||
#include <modules/base/rendering/grids/renderablegrid.h>
|
||||
#include <modules/base/rendering/grids/renderableradialgrid.h>
|
||||
#include <modules/base/rendering/grids/renderablesphericalgrid.h>
|
||||
#include <modules/base/rendering/pointcloud/renderablepointcloud.h>
|
||||
#include <modules/base/rendering/pointcloud/renderablepolygoncloud.h>
|
||||
#include <modules/base/rendering/renderablecartesianaxes.h>
|
||||
#include <modules/base/rendering/renderabledisc.h>
|
||||
#include <modules/base/rendering/renderablelabel.h>
|
||||
@@ -145,6 +147,8 @@ void BaseModule::internalInitialize(const ghoul::Dictionary&) {
|
||||
fRenderable->registerClass<RenderablePlaneTimeVaryingImage>(
|
||||
"RenderablePlaneTimeVaryingImage"
|
||||
);
|
||||
fRenderable->registerClass<RenderablePointCloud>("RenderablePointCloud");
|
||||
fRenderable->registerClass<RenderablePolygonCloud>("RenderablePolygonCloud");
|
||||
fRenderable->registerClass<RenderablePrism>("RenderablePrism");
|
||||
fRenderable->registerClass<RenderableTimeVaryingSphere>(
|
||||
"RenderableTimeVaryingSphere"
|
||||
@@ -232,6 +236,8 @@ std::vector<documentation::Documentation> BaseModule::documentations() const {
|
||||
RenderablePlaneImageLocal::Documentation(),
|
||||
RenderablePlaneImageOnline::Documentation(),
|
||||
RenderablePlaneTimeVaryingImage::Documentation(),
|
||||
RenderablePointCloud::Documentation(),
|
||||
RenderablePolygonCloud::Documentation(),
|
||||
RenderablePrism::Documentation(),
|
||||
RenderableRadialGrid::Documentation(),
|
||||
RenderableSphere::Documentation(),
|
||||
|
||||
@@ -76,7 +76,7 @@ namespace {
|
||||
|
||||
// [[codegen::verbatim(LabelsInfo.description)]]
|
||||
std::optional<ghoul::Dictionary> labels
|
||||
[[codegen::reference("space_labelscomponent")]];
|
||||
[[codegen::reference("labelscomponent")]];
|
||||
};
|
||||
#include "renderableboxgrid_codegen.cpp"
|
||||
} // namespace
|
||||
@@ -124,7 +124,6 @@ bool RenderableBoxGrid::isReady() const {
|
||||
void RenderableBoxGrid::initialize() {
|
||||
if (_hasLabels) {
|
||||
_labels->initialize();
|
||||
_labels->loadLabels();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -27,9 +27,9 @@
|
||||
|
||||
#include <openspace/rendering/renderable.h>
|
||||
|
||||
#include <modules/space/labelscomponent.h>
|
||||
#include <openspace/properties/scalar/floatproperty.h>
|
||||
#include <openspace/properties/vector/vec3property.h>
|
||||
#include <openspace/rendering/labelscomponent.h>
|
||||
#include <ghoul/opengl/ghoul_gl.h>
|
||||
|
||||
namespace ghoul::opengl {
|
||||
|
||||
@@ -122,7 +122,7 @@ namespace {
|
||||
|
||||
// [[codegen::verbatim(LabelsInfo.description)]]
|
||||
std::optional<ghoul::Dictionary> labels
|
||||
[[codegen::reference("space_labelscomponent")]];
|
||||
[[codegen::reference("labelscomponent")]];
|
||||
};
|
||||
#include "renderablegrid_codegen.cpp"
|
||||
} // namespace
|
||||
@@ -192,7 +192,6 @@ bool RenderableGrid::isReady() const {
|
||||
void RenderableGrid::initialize() {
|
||||
if (_hasLabels) {
|
||||
_labels->initialize();
|
||||
_labels->loadLabels();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -27,12 +27,12 @@
|
||||
|
||||
#include <openspace/rendering/renderable.h>
|
||||
|
||||
#include <modules/space/labelscomponent.h>
|
||||
#include <openspace/properties/stringproperty.h>
|
||||
#include <openspace/properties/vector/ivec2property.h>
|
||||
#include <openspace/properties/scalar/floatproperty.h>
|
||||
#include <openspace/properties/vector/vec2property.h>
|
||||
#include <openspace/properties/vector/vec3property.h>
|
||||
#include <openspace/rendering/labelscomponent.h>
|
||||
#include <ghoul/opengl/ghoul_gl.h>
|
||||
|
||||
namespace ghoul::opengl { class ProgramObject; }
|
||||
|
||||
@@ -104,7 +104,7 @@ namespace {
|
||||
|
||||
// [[codegen::verbatim(LabelsInfo.description)]]
|
||||
std::optional<ghoul::Dictionary> labels
|
||||
[[codegen::reference("space_labelscomponent")]];
|
||||
[[codegen::reference("labelscomponent")]];
|
||||
};
|
||||
#include "renderableradialgrid_codegen.cpp"
|
||||
} // namespace
|
||||
@@ -169,7 +169,6 @@ bool RenderableRadialGrid::isReady() const {
|
||||
void RenderableRadialGrid::initialize() {
|
||||
if (_hasLabels) {
|
||||
_labels->initialize();
|
||||
_labels->loadLabels();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -27,13 +27,13 @@
|
||||
|
||||
#include <openspace/rendering/renderable.h>
|
||||
|
||||
#include <modules/space/labelscomponent.h>
|
||||
#include <openspace/properties/scalar/floatproperty.h>
|
||||
#include <openspace/properties/scalar/intproperty.h>
|
||||
#include <openspace/properties/vector/ivec2property.h>
|
||||
#include <openspace/properties/vector/vec2property.h>
|
||||
#include <openspace/properties/vector/vec3property.h>
|
||||
#include <openspace/rendering/helper.h>
|
||||
#include <openspace/rendering/labelscomponent.h>
|
||||
#include <ghoul/opengl/ghoul_gl.h>
|
||||
|
||||
namespace ghoul::opengl { class ProgramObject; }
|
||||
|
||||
@@ -79,7 +79,7 @@ namespace {
|
||||
|
||||
// [[codegen::verbatim(LabelsInfo.description)]]
|
||||
std::optional<ghoul::Dictionary> labels
|
||||
[[codegen::reference("space_labelscomponent")]];
|
||||
[[codegen::reference("labelscomponent")]];
|
||||
};
|
||||
#include "renderablesphericalgrid_codegen.cpp"
|
||||
} // namespace
|
||||
@@ -136,7 +136,6 @@ bool RenderableSphericalGrid::isReady() const {
|
||||
void RenderableSphericalGrid::initialize() {
|
||||
if (_hasLabels) {
|
||||
_labels->initialize();
|
||||
_labels->loadLabels();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -27,10 +27,10 @@
|
||||
|
||||
#include <openspace/rendering/renderable.h>
|
||||
|
||||
#include <modules/space/labelscomponent.h>
|
||||
#include <openspace/properties/scalar/floatproperty.h>
|
||||
#include <openspace/properties/scalar/intproperty.h>
|
||||
#include <openspace/properties/vector/vec3property.h>
|
||||
#include <openspace/rendering/labelscomponent.h>
|
||||
#include <ghoul/opengl/ghoul_gl.h>
|
||||
|
||||
namespace ghoul::opengl { class ProgramObject; }
|
||||
|
||||
1058
modules/base/rendering/pointcloud/renderablepointcloud.cpp
Normal file
1058
modules/base/rendering/pointcloud/renderablepointcloud.cpp
Normal file
File diff suppressed because it is too large
Load Diff
@@ -22,27 +22,27 @@
|
||||
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
|
||||
****************************************************************************************/
|
||||
|
||||
#ifndef __OPENSPACE_MODULE_DIGITALUNIVERSE___RENDERABLEBILLBOARDSCLOUD___H__
|
||||
#define __OPENSPACE_MODULE_DIGITALUNIVERSE___RENDERABLEBILLBOARDSCLOUD___H__
|
||||
#ifndef __OPENSPACE_MODULE_BASE___RENDERABLEPOINTCLOUD___H__
|
||||
#define __OPENSPACE_MODULE_BASE___RENDERABLEPOINTCLOUD___H__
|
||||
|
||||
#include <openspace/rendering/renderable.h>
|
||||
|
||||
#include <modules/space/labelscomponent.h>
|
||||
#include <openspace/properties/optionproperty.h>
|
||||
#include <openspace/properties/stringproperty.h>
|
||||
#include <openspace/properties/triggerproperty.h>
|
||||
#include <openspace/properties/scalar/boolproperty.h>
|
||||
#include <openspace/properties/scalar/floatproperty.h>
|
||||
#include <openspace/properties/scalar/uintproperty.h>
|
||||
#include <openspace/properties/vector/ivec2property.h>
|
||||
#include <openspace/properties/vector/vec2property.h>
|
||||
#include <openspace/properties/vector/vec3property.h>
|
||||
#include <openspace/rendering/colormappingcomponent.h>
|
||||
#include <openspace/rendering/labelscomponent.h>
|
||||
#include <openspace/util/distanceconversion.h>
|
||||
#include <ghoul/opengl/ghoul_gl.h>
|
||||
#include <ghoul/opengl/uniformcache.h>
|
||||
#include <functional>
|
||||
#include <unordered_map>
|
||||
|
||||
namespace ghoul::filesystem { class File; }
|
||||
namespace ghoul::opengl {
|
||||
class ProgramObject;
|
||||
class Texture;
|
||||
@@ -52,10 +52,15 @@ namespace openspace {
|
||||
|
||||
namespace documentation { struct Documentation; }
|
||||
|
||||
class RenderableBillboardsCloud : public Renderable {
|
||||
/**
|
||||
* This class describes a point cloud renderable that can be used to draw billboraded
|
||||
* points based on a data file with 3D positions. Alternatively the points can also
|
||||
* be colored and sized based on a separate column in the data file.
|
||||
*/
|
||||
class RenderablePointCloud : public Renderable {
|
||||
public:
|
||||
explicit RenderableBillboardsCloud(const ghoul::Dictionary& dictionary);
|
||||
~RenderableBillboardsCloud() override = default;
|
||||
explicit RenderablePointCloud(const ghoul::Dictionary& dictionary);
|
||||
~RenderablePointCloud() override = default;
|
||||
|
||||
void initialize() override;
|
||||
void initializeGL() override;
|
||||
@@ -68,88 +73,104 @@ public:
|
||||
|
||||
static documentation::Documentation Documentation();
|
||||
|
||||
private:
|
||||
protected:
|
||||
int nAttributesPerPoint() const;
|
||||
void updateBufferData();
|
||||
void updateSpriteTexture();
|
||||
|
||||
/// Find the index of the currently chosen color parameter in the dataset
|
||||
int currentColorParameterIndex() const;
|
||||
/// Find the index of the currently chosen size parameter in the dataset
|
||||
int currentSizeParameterIndex() const;
|
||||
|
||||
std::vector<float> createDataSlice();
|
||||
void createPolygonTexture();
|
||||
void renderToTexture(GLuint textureToRenderTo, GLuint textureWidth,
|
||||
GLuint textureHeight);
|
||||
void loadPolygonGeometryForRendering();
|
||||
void renderPolygonGeometry(GLuint vao);
|
||||
|
||||
virtual void bindTextureForRendering() const;
|
||||
|
||||
float computeDistanceFadeValue(const RenderData& data) const;
|
||||
|
||||
void renderBillboards(const RenderData& data, const glm::dmat4& modelMatrix,
|
||||
const glm::dvec3& orthoRight, const glm::dvec3& orthoUp, float fadeInVariable);
|
||||
|
||||
bool _hasSpeckFile = false;
|
||||
bool _dataIsDirty = true;
|
||||
bool _hasSpriteTexture = false;
|
||||
bool _spriteTextureIsDirty = true;
|
||||
|
||||
bool _hasSpriteTexture = false;
|
||||
bool _hasDataFile = false;
|
||||
bool _hasColorMapFile = false;
|
||||
bool _isColorMapExact = false;
|
||||
bool _hasDatavarSize = false;
|
||||
bool _hasPolygon = false;
|
||||
bool _hasLabels = false;
|
||||
|
||||
int _polygonSides = 0;
|
||||
struct SizeSettings : properties::PropertyOwner {
|
||||
explicit SizeSettings(const ghoul::Dictionary& dictionary);
|
||||
|
||||
GLuint _pTexture = 0;
|
||||
struct SizeMapping : properties::PropertyOwner {
|
||||
SizeMapping();
|
||||
properties::BoolProperty enabled;
|
||||
properties::OptionProperty parameterOption;
|
||||
};
|
||||
SizeMapping sizeMapping;
|
||||
|
||||
properties::FloatProperty _scaleFactor;
|
||||
properties::BoolProperty _useColorMap;
|
||||
properties::Vec3Property _pointColor;
|
||||
properties::FloatProperty scaleExponent;
|
||||
properties::FloatProperty scaleFactor;
|
||||
|
||||
properties::BoolProperty useMaxSizeControl;
|
||||
properties::FloatProperty maxAngularSize;
|
||||
};
|
||||
SizeSettings _sizeSettings;
|
||||
|
||||
struct ColorSettings : properties::PropertyOwner {
|
||||
explicit ColorSettings(const ghoul::Dictionary& dictionary);
|
||||
properties::Vec3Property pointColor;
|
||||
std::unique_ptr<ColorMappingComponent> colorMapping;
|
||||
};
|
||||
ColorSettings _colorSettings;
|
||||
|
||||
struct Fading : properties::PropertyOwner {
|
||||
explicit Fading(const ghoul::Dictionary& dictionary);
|
||||
properties::Vec2Property fadeInDistances;
|
||||
properties::BoolProperty enabled;
|
||||
properties::BoolProperty invert;
|
||||
};
|
||||
Fading _fading;
|
||||
|
||||
properties::BoolProperty _useSpriteTexture;
|
||||
properties::StringProperty _spriteTexturePath;
|
||||
|
||||
properties::BoolProperty _useAdditiveBlending;
|
||||
|
||||
properties::BoolProperty _drawElements;
|
||||
properties::BoolProperty _pixelSizeControl;
|
||||
properties::OptionProperty _colorOption;
|
||||
properties::Vec2Property _optionColorRangeData;
|
||||
properties::OptionProperty _datavarSizeOption;
|
||||
properties::Vec2Property _fadeInDistances;
|
||||
properties::BoolProperty _disableFadeInDistance;
|
||||
properties::Vec2Property _billboardMinMaxSize;
|
||||
properties::FloatProperty _correctionSizeEndDistance;
|
||||
properties::FloatProperty _correctionSizeFactor;
|
||||
properties::BoolProperty _useLinearFiltering;
|
||||
properties::TriggerProperty _setRangeFromData;
|
||||
properties::OptionProperty _renderOption;
|
||||
|
||||
ghoul::opengl::Texture* _polygonTexture = nullptr;
|
||||
properties::UIntProperty _nDataPoints;
|
||||
|
||||
ghoul::opengl::Texture* _spriteTexture = nullptr;
|
||||
ghoul::opengl::ProgramObject* _program = nullptr;
|
||||
ghoul::opengl::ProgramObject* _renderToPolygonProgram = nullptr;
|
||||
|
||||
UniformCache(
|
||||
cameraViewProjectionMatrix, modelMatrix, cameraPos, cameraLookup, renderOption,
|
||||
minBillboardSize, maxBillboardSize, correctionSizeEndDistance,
|
||||
correctionSizeFactor, color, alphaValue, scaleFactor, up, right, fadeInValue,
|
||||
screenSize, spriteTexture, hasColormap, useColormap, enabledRectSizeControl,
|
||||
hasDvarScaling
|
||||
cameraViewMatrix, projectionMatrix, modelMatrix, cameraPos, cameraLookup,
|
||||
renderOption, maxAngularSize, color, opacity, scaleExponent, scaleFactor, up,
|
||||
right, fadeInValue, hasSpriteTexture, spriteTexture, useColormap, colorMapTexture,
|
||||
cmapRangeMin, cmapRangeMax, nanColor, useNanColor, hideOutsideRange,
|
||||
enableMaxSizeControl, aboveRangeColor, useAboveRangeColor, belowRangeColor,
|
||||
useBelowRangeColor, hasDvarScaling
|
||||
) _uniformCache;
|
||||
|
||||
std::string _speckFile;
|
||||
std::string _colorMapFile;
|
||||
std::string _colorOptionString;
|
||||
std::string _datavarSizeOptionString;
|
||||
std::string _dataFile;
|
||||
|
||||
DistanceUnit _unit = DistanceUnit::Parsec;
|
||||
|
||||
speck::Dataset _dataset;
|
||||
speck::ColorMap _colorMap;
|
||||
dataloader::Dataset _dataset;
|
||||
dataloader::DataMapping _dataMapping;
|
||||
|
||||
// Everything related to the labels is handled by LabelsComponent
|
||||
std::unique_ptr<LabelsComponent> _labels;
|
||||
|
||||
std::vector<glm::vec2> _colorRangeData;
|
||||
std::unordered_map<int, std::string> _optionConversionMap;
|
||||
std::unordered_map<int, std::string> _optionConversionSizeMap;
|
||||
|
||||
glm::dmat4 _transformationMatrix = glm::dmat4(1.0);
|
||||
|
||||
GLuint _vao = 0;
|
||||
GLuint _vbo = 0;
|
||||
|
||||
// For polygons
|
||||
GLuint _polygonVao = 0;
|
||||
GLuint _polygonVbo = 0;
|
||||
};
|
||||
|
||||
} // namespace openspace
|
||||
|
||||
#endif // __OPENSPACE_MODULE_DIGITALUNIVERSE___RENDERABLEBILLBOARDSCLOUD___H__
|
||||
#endif // __OPENSPACE_MODULE_BASE___RENDERABLEPOINTCLOUD___H__
|
||||
193
modules/base/rendering/pointcloud/renderablepolygoncloud.cpp
Normal file
193
modules/base/rendering/pointcloud/renderablepolygoncloud.cpp
Normal file
@@ -0,0 +1,193 @@
|
||||
/*****************************************************************************************
|
||||
* *
|
||||
* OpenSpace *
|
||||
* *
|
||||
* Copyright (c) 2014-2023 *
|
||||
* *
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of this *
|
||||
* software and associated documentation files (the "Software"), to deal in the Software *
|
||||
* without restriction, including without limitation the rights to use, copy, modify, *
|
||||
* merge, publish, distribute, sublicense, and/or sell copies of the Software, and to *
|
||||
* permit persons to whom the Software is furnished to do so, subject to the following *
|
||||
* conditions: *
|
||||
* *
|
||||
* The above copyright notice and this permission notice shall be included in all copies *
|
||||
* or substantial portions of the Software. *
|
||||
* *
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, *
|
||||
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A *
|
||||
* PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT *
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF *
|
||||
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE *
|
||||
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
|
||||
****************************************************************************************/
|
||||
|
||||
#include <modules/base/rendering/pointcloud/renderablepolygoncloud.h>
|
||||
|
||||
#include <openspace/documentation/documentation.h>
|
||||
#include <ghoul/filesystem/filesystem.h>
|
||||
#include <ghoul/glm.h>
|
||||
#include <ghoul/logging/logmanager.h>
|
||||
#include <ghoul/opengl/programobject.h>
|
||||
#include <ghoul/opengl/texture.h>
|
||||
#include <optional>
|
||||
|
||||
namespace {
|
||||
constexpr std::string_view _loggerCat = "RenderablePolygonCloud";
|
||||
|
||||
// A RenderablePolygonCloud is a RenderablePointCloud where the shape of the points
|
||||
// is a uniform polygon with a given number of sides instead of a texture. For
|
||||
// instance, PolygonSides = 5 results in the points being rendered as pentagons.
|
||||
// Note that while this renderable inherits the texture property from
|
||||
// RenderablePointCloud, any added texture value will be ignored in favor of the
|
||||
// polygon shape.
|
||||
//
|
||||
// See documentation of RenderablePointCloud for details on the other parts of the
|
||||
// point cloud rendering.
|
||||
struct [[codegen::Dictionary(RenderablePolygonCloud)]] Parameters {
|
||||
// The number of sides for the polygon used to represent each point. Default is
|
||||
// 3, i.e. to use triangles
|
||||
std::optional<int> polygonSides [[codegen::greaterequal(3)]];
|
||||
};
|
||||
|
||||
#include "renderablepolygoncloud_codegen.cpp"
|
||||
} // namespace
|
||||
|
||||
namespace openspace {
|
||||
|
||||
documentation::Documentation RenderablePolygonCloud::Documentation() {
|
||||
return codegen::doc<Parameters>(
|
||||
"base_renderablepolygoncloud",
|
||||
RenderablePointCloud::Documentation()
|
||||
);
|
||||
}
|
||||
|
||||
RenderablePolygonCloud::RenderablePolygonCloud(const ghoul::Dictionary& dictionary)
|
||||
: RenderablePointCloud(dictionary)
|
||||
{
|
||||
const Parameters p = codegen::bake<Parameters>(dictionary);
|
||||
|
||||
_nPolygonSides = p.polygonSides.value_or(_nPolygonSides);
|
||||
|
||||
// The texture to use for the rendering will be generated in initializeGl. Make sure
|
||||
// we use it in the rnedering
|
||||
_hasSpriteTexture = true;
|
||||
}
|
||||
|
||||
void RenderablePolygonCloud::initializeGL() {
|
||||
ZoneScoped;
|
||||
|
||||
RenderablePointCloud::initializeGL();
|
||||
createPolygonTexture();
|
||||
}
|
||||
|
||||
void RenderablePolygonCloud::deinitializeGL() {
|
||||
glDeleteBuffers(1, &_polygonVbo);
|
||||
_polygonVbo = 0;
|
||||
glDeleteVertexArrays(1, &_polygonVao);
|
||||
_polygonVao = 0;
|
||||
|
||||
glDeleteTextures(1, &_pTexture);
|
||||
|
||||
RenderablePointCloud::deinitializeGL();
|
||||
}
|
||||
|
||||
void RenderablePolygonCloud::bindTextureForRendering() const {
|
||||
glBindTexture(GL_TEXTURE_2D, _pTexture);
|
||||
}
|
||||
|
||||
void RenderablePolygonCloud::createPolygonTexture() {
|
||||
ZoneScoped;
|
||||
|
||||
LDEBUG("Creating Polygon Texture");
|
||||
constexpr gl::GLsizei TexSize = 512;
|
||||
|
||||
glGenTextures(1, &_pTexture);
|
||||
glBindTexture(GL_TEXTURE_2D, _pTexture);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
||||
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
||||
// Stopped using a buffer object for GL_PIXEL_UNPACK_BUFFER
|
||||
glBindBuffer(GL_PIXEL_UNPACK_BUFFER, 0);
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, TexSize, TexSize, 0, GL_RGBA, GL_BYTE, nullptr);
|
||||
|
||||
renderToTexture(_pTexture, TexSize, TexSize);
|
||||
}
|
||||
|
||||
void RenderablePolygonCloud::renderToTexture(GLuint textureToRenderTo,
|
||||
GLuint textureWidth, GLuint textureHeight)
|
||||
{
|
||||
LDEBUG("Rendering to Texture");
|
||||
|
||||
// Saves initial Application's OpenGL State
|
||||
GLint defaultFBO;
|
||||
GLint viewport[4];
|
||||
glGetIntegerv(GL_FRAMEBUFFER_BINDING, &defaultFBO);
|
||||
glGetIntegerv(GL_VIEWPORT, viewport);
|
||||
|
||||
GLuint textureFBO;
|
||||
glGenFramebuffers(1, &textureFBO);
|
||||
glBindFramebuffer(GL_FRAMEBUFFER, textureFBO);
|
||||
GLenum drawBuffers[1] = { GL_COLOR_ATTACHMENT0 };
|
||||
glDrawBuffers(1, drawBuffers);
|
||||
|
||||
glFramebufferTexture(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, textureToRenderTo, 0);
|
||||
|
||||
glViewport(viewport[0], viewport[1], textureWidth, textureHeight);
|
||||
|
||||
if (_polygonVao == 0) {
|
||||
glGenVertexArrays(1, &_polygonVao);
|
||||
}
|
||||
if (_polygonVbo == 0) {
|
||||
glGenBuffers(1, &_polygonVbo);
|
||||
}
|
||||
|
||||
glBindVertexArray(_polygonVao);
|
||||
glBindBuffer(GL_ARRAY_BUFFER, _polygonVbo);
|
||||
|
||||
constexpr std::array<GLfloat, 4> VertexData = {
|
||||
// x y z w
|
||||
0.f, 0.f, 0.f, 1.f,
|
||||
};
|
||||
|
||||
glBufferData(GL_ARRAY_BUFFER, sizeof(VertexData), VertexData.data(), GL_STATIC_DRAW);
|
||||
glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, 4 * sizeof(GLfloat), nullptr);
|
||||
glEnableVertexAttribArray(0);
|
||||
glBindVertexArray(0);
|
||||
|
||||
renderPolygonGeometry(_polygonVao);
|
||||
|
||||
// Restores Applications' OpenGL State
|
||||
glBindFramebuffer(GL_FRAMEBUFFER, defaultFBO);
|
||||
glViewport(viewport[0], viewport[1], viewport[2], viewport[3]);
|
||||
|
||||
glDeleteBuffers(1, &_polygonVbo);
|
||||
glDeleteVertexArrays(1, &_polygonVao);
|
||||
glDeleteFramebuffers(1, &textureFBO);
|
||||
}
|
||||
|
||||
void RenderablePolygonCloud::renderPolygonGeometry(GLuint vao) {
|
||||
std::unique_ptr<ghoul::opengl::ProgramObject> program =
|
||||
ghoul::opengl::ProgramObject::Build(
|
||||
"RenderablePointCloud_Polygon",
|
||||
absPath("${MODULE_BASE}/shaders/polygon_vs.glsl"),
|
||||
absPath("${MODULE_BASE}/shaders/polygon_fs.glsl"),
|
||||
absPath("${MODULE_BASE}/shaders/polygon_gs.glsl")
|
||||
);
|
||||
|
||||
program->activate();
|
||||
constexpr glm::vec4 Black = glm::vec4(0.f, 0.f, 0.f, 0.f);
|
||||
glClearBufferfv(GL_COLOR, 0, glm::value_ptr(Black));
|
||||
|
||||
program->setUniform("sides", _nPolygonSides);
|
||||
program->setUniform("polygonColor", _colorSettings.pointColor);
|
||||
|
||||
glBindVertexArray(vao);
|
||||
glDrawArrays(GL_POINTS, 0, 1);
|
||||
glBindVertexArray(0);
|
||||
|
||||
program->deactivate();
|
||||
}
|
||||
|
||||
} // namespace openspace
|
||||
70
modules/base/rendering/pointcloud/renderablepolygoncloud.h
Normal file
70
modules/base/rendering/pointcloud/renderablepolygoncloud.h
Normal file
@@ -0,0 +1,70 @@
|
||||
/*****************************************************************************************
|
||||
* *
|
||||
* OpenSpace *
|
||||
* *
|
||||
* Copyright (c) 2014-2023 *
|
||||
* *
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of this *
|
||||
* software and associated documentation files (the "Software"), to deal in the Software *
|
||||
* without restriction, including without limitation the rights to use, copy, modify, *
|
||||
* merge, publish, distribute, sublicense, and/or sell copies of the Software, and to *
|
||||
* permit persons to whom the Software is furnished to do so, subject to the following *
|
||||
* conditions: *
|
||||
* *
|
||||
* The above copyright notice and this permission notice shall be included in all copies *
|
||||
* or substantial portions of the Software. *
|
||||
* *
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, *
|
||||
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A *
|
||||
* PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT *
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF *
|
||||
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE *
|
||||
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
|
||||
****************************************************************************************/
|
||||
|
||||
#ifndef __OPENSPACE_MODULE_BASE___RENDERABLEPOLYGONCLOUD___H__
|
||||
#define __OPENSPACE_MODULE_BASE___RENDERABLEPOLYGONCLOUD___H__
|
||||
|
||||
#include <modules/base/rendering/pointcloud/renderablepointcloud.h>
|
||||
|
||||
#include <ghoul/opengl/ghoul_gl.h>
|
||||
|
||||
namespace ghoul::opengl { class Texture; }
|
||||
|
||||
namespace openspace {
|
||||
|
||||
namespace documentation { struct Documentation; }
|
||||
|
||||
/**
|
||||
* A billboarded point cloud, but with dynamically created uniform polygon shapes instead
|
||||
* of a custom texture. Overwrites the sprite set in parent class, RenderablePointCloud
|
||||
*/
|
||||
class RenderablePolygonCloud : public RenderablePointCloud {
|
||||
public:
|
||||
explicit RenderablePolygonCloud(const ghoul::Dictionary& dictionary);
|
||||
~RenderablePolygonCloud() override = default;
|
||||
|
||||
void initializeGL() override;
|
||||
void deinitializeGL() override;
|
||||
|
||||
static documentation::Documentation Documentation();
|
||||
|
||||
private:
|
||||
void createPolygonTexture();
|
||||
void renderToTexture(GLuint textureToRenderTo, GLuint textureWidth,
|
||||
GLuint textureHeight);
|
||||
void renderPolygonGeometry(GLuint vao);
|
||||
|
||||
void bindTextureForRendering() const override;
|
||||
|
||||
int _nPolygonSides = 3;
|
||||
|
||||
GLuint _pTexture = 0;
|
||||
|
||||
GLuint _polygonVao = 0;
|
||||
GLuint _polygonVbo = 0;
|
||||
};
|
||||
|
||||
} // namespace openspace
|
||||
|
||||
#endif // __OPENSPACE_MODULE_BASE___RENDERABLEPOLYGONCLOUD___H__
|
||||
@@ -61,6 +61,18 @@ namespace {
|
||||
openspace::properties::Property::Visibility::NoviceUser
|
||||
};
|
||||
|
||||
// The RenderableCartesianAxes can be used to render the local Cartesian coordinate
|
||||
// system, or reference frame, of another scene graph node. The colors of the axes
|
||||
// can be customized but are per default set to Red, Green and Blue, for the X-, Y-
|
||||
// and Z-axis, respectively.
|
||||
//
|
||||
// To add the axes, create a scene graph node with the RenderableCartesianAxes
|
||||
// renderable and add it as a child to the other scene graph node, i.e. specify the
|
||||
// other node as the Parent of the node with this renderable. Also, the axes have to
|
||||
// be scaled to match the parent object for the axes to be visible in the scene, for
|
||||
// example using a StaticScale.
|
||||
//
|
||||
// See example asset (@TODO: link to asset file).
|
||||
struct [[codegen::Dictionary(RenderableCartesianAxes)]] Parameters {
|
||||
// [[codegen::verbatim(XColorInfo.description)]]
|
||||
std::optional<glm::vec3> xColor [[codegen::color()]];
|
||||
@@ -70,7 +82,6 @@ namespace {
|
||||
|
||||
// [[codegen::verbatim(ZColorInfo.description)]]
|
||||
std::optional<glm::vec3> zColor [[codegen::color()]];
|
||||
|
||||
};
|
||||
#include "renderablecartesianaxes_codegen.cpp"
|
||||
} // namespace
|
||||
|
||||
@@ -593,7 +593,7 @@ void RenderableModel::initializeGL() {
|
||||
}
|
||||
|
||||
// Set animation settings
|
||||
_geometry->setTimeScale(_animationTimeScale);
|
||||
_geometry->setTimeScale(static_cast<float>(_animationTimeScale));
|
||||
}
|
||||
|
||||
// Initialize shaders
|
||||
|
||||
115
modules/base/shaders/billboardpoint_fs.glsl
Normal file
115
modules/base/shaders/billboardpoint_fs.glsl
Normal file
@@ -0,0 +1,115 @@
|
||||
/*****************************************************************************************
|
||||
* *
|
||||
* OpenSpace *
|
||||
* *
|
||||
* Copyright (c) 2014-2023 *
|
||||
* *
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of this *
|
||||
* software and associated documentation files (the "Software"), to deal in the Software *
|
||||
* without restriction, including without limitation the rights to use, copy, modify, *
|
||||
* merge, publish, distribute, sublicense, and/or sell copies of the Software, and to *
|
||||
* permit persons to whom the Software is furnished to do so, subject to the following *
|
||||
* conditions: *
|
||||
* *
|
||||
* The above copyright notice and this permission notice shall be included in all copies *
|
||||
* or substantial portions of the Software. *
|
||||
* *
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, *
|
||||
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A *
|
||||
* PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT *
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF *
|
||||
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE *
|
||||
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
|
||||
****************************************************************************************/
|
||||
|
||||
#include "fragment.glsl"
|
||||
|
||||
flat in float gs_colorParameter;
|
||||
flat in float vs_screenSpaceDepth;
|
||||
flat in vec4 vs_positionViewSpace;
|
||||
in vec2 texCoord;
|
||||
|
||||
uniform float opacity;
|
||||
uniform vec3 color;
|
||||
|
||||
uniform vec4 nanColor = vec4(0.5);
|
||||
uniform bool useNanColor = true;
|
||||
|
||||
uniform vec4 aboveRangeColor;
|
||||
uniform bool useAboveRangeColor;
|
||||
|
||||
uniform vec4 belowRangeColor;
|
||||
uniform bool useBelowRangeColor;
|
||||
|
||||
uniform bool hasSpriteTexture;
|
||||
uniform sampler2D spriteTexture;
|
||||
|
||||
uniform bool useColorMap;
|
||||
uniform sampler1D colorMapTexture;
|
||||
uniform float cmapRangeMin;
|
||||
uniform float cmapRangeMax;
|
||||
uniform bool hideOutsideRange;
|
||||
|
||||
uniform float fadeInValue;
|
||||
|
||||
vec4 sampleColorMap(float dataValue) {
|
||||
if (useNanColor && isnan(dataValue)) {
|
||||
return nanColor;
|
||||
}
|
||||
|
||||
bool isOutside = dataValue < cmapRangeMin || dataValue > cmapRangeMax;
|
||||
if (isnan(dataValue) || (hideOutsideRange && isOutside)) {
|
||||
discard;
|
||||
}
|
||||
|
||||
if (useBelowRangeColor && dataValue < cmapRangeMin) {
|
||||
return belowRangeColor;
|
||||
}
|
||||
|
||||
if (useAboveRangeColor && dataValue > cmapRangeMax) {
|
||||
return aboveRangeColor;
|
||||
}
|
||||
|
||||
float t = (dataValue - cmapRangeMin) / (cmapRangeMax - cmapRangeMin);
|
||||
t = clamp(t, 0.0, 1.0);
|
||||
return texture(colorMapTexture, t);
|
||||
}
|
||||
|
||||
Fragment getFragment() {
|
||||
if (fadeInValue == 0.0 || opacity == 0.0) {
|
||||
discard;
|
||||
}
|
||||
|
||||
if (!hasSpriteTexture) {
|
||||
// Moving the origin to the center
|
||||
vec2 st = (texCoord - vec2(0.5)) * 2.0;
|
||||
if (length(st) > 1.0) {
|
||||
discard;
|
||||
}
|
||||
}
|
||||
|
||||
vec4 fullColor = vec4(1.0);
|
||||
if (hasSpriteTexture) {
|
||||
fullColor = texture(spriteTexture, texCoord);
|
||||
}
|
||||
|
||||
if (useColorMap) {
|
||||
fullColor *= sampleColorMap(gs_colorParameter);
|
||||
}
|
||||
else {
|
||||
fullColor.rgb *= color;
|
||||
}
|
||||
|
||||
fullColor.a *= opacity * fadeInValue;
|
||||
if (fullColor.a < 0.01) {
|
||||
discard;
|
||||
}
|
||||
|
||||
Fragment frag;
|
||||
frag.color = fullColor;
|
||||
frag.depth = vs_screenSpaceDepth;
|
||||
frag.gPosition = vs_positionViewSpace;
|
||||
frag.gNormal = vec4(0.0, 0.0, 0.0, 1.0);
|
||||
|
||||
return frag;
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user