diff --git a/apps/OpenSpace/ext/sgct b/apps/OpenSpace/ext/sgct index 8d672fd0a7..2c774af032 160000 --- a/apps/OpenSpace/ext/sgct +++ b/apps/OpenSpace/ext/sgct @@ -1 +1 @@ -Subproject commit 8d672fd0a7c7ef0e6c48e1d43bacbddce1f0a10d +Subproject commit 2c774af03285e57d0bdaf9f7ca60c71bb0c144bf diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/debris_volume.asset b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/debris_volume.asset index 509a68cc1a..5e140320a8 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/debris_volume.asset +++ b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/debris_volume.asset @@ -7,7 +7,7 @@ local assetHelper = asset.require('util/asset_helper') local transforms = asset.require("scene/solarsystem/planets/earth/transforms") -local earthRadius = 6371000 +local earthRadius = 2 * 10946320; local volume = { Identifier = "DebrisVolume", diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/debris_volume1.asset b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/debris_volume1.asset new file mode 100644 index 0000000000..52b892f4e3 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/debris_volume1.asset @@ -0,0 +1,38 @@ +-- This asset requires OpenSpace to be built with the OPENSPACE_MODULE_VOLUME enabled + +-- Before using this asset, +-- the volume data itself needs to be generated, +-- using the task 'data/tasks/volume/debristasks/generate_debris_volume.task' + +local assetHelper = asset.require('util/asset_helper') +local transforms = asset.require("scene/solarsystem/planets/earth/transforms") + +local earthRadius = 2 * 9762650; + +local volume = { + Identifier = "DebrisVolume1", + Parent = transforms.EarthInertial.Identifier, + Renderable = { + Type = "RenderableTimeVaryingVolume", + SourceDirectory = asset.localResource("generated1"), + TransferFunction = asset.localResource("transferfunction.txt"), + StepSize = 0.01, + MinValue = 0, + MaxValue = 1, + GridType = "Cartesian", + SecondsBefore = 50*365*24*60*60, + SecondsAfter = 50*365*24*60*60 + }, + GUI = { + Path = "/Volumes" + }, + Transform = { + Scale = { + Type = "StaticScale", + Scale = earthRadius -- do not multiply this. That will not show real representation. + } + } +} + +local objects = { volume } +assetHelper.registerSceneGraphNodes(asset, objects) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/debris_volume2.asset b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/debris_volume2.asset new file mode 100644 index 0000000000..e18126b16d --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/debris_volume2.asset @@ -0,0 +1,38 @@ +-- This asset requires OpenSpace to be built with the OPENSPACE_MODULE_VOLUME enabled + +-- Before using this asset, +-- the volume data itself needs to be generated, +-- using the task 'data/tasks/volume/debristasks/generate_debris_volume.task' + +local assetHelper = asset.require('util/asset_helper') +local transforms = asset.require("scene/solarsystem/planets/earth/transforms") + +local earthRadius = 2 * 8540390; + +local volume = { + Identifier = "DebrisVolume2", + Parent = transforms.EarthInertial.Identifier, + Renderable = { + Type = "RenderableTimeVaryingVolume", + SourceDirectory = asset.localResource("generated2"), + TransferFunction = asset.localResource("transferfunction.txt"), + StepSize = 0.01, + MinValue = 0, + MaxValue = 1, + GridType = "Cartesian", + SecondsBefore = 50*365*24*60*60, + SecondsAfter = 50*365*24*60*60 + }, + GUI = { + Path = "/Volumes" + }, + Transform = { + Scale = { + Type = "StaticScale", + Scale = earthRadius -- do not multiply this. That will not show real representation. + } + } +} + +local objects = { volume } +assetHelper.registerSceneGraphNodes(asset, objects) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/debris_volume3.asset b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/debris_volume3.asset new file mode 100644 index 0000000000..665ecb1ad6 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/debris_volume3.asset @@ -0,0 +1,38 @@ +-- This asset requires OpenSpace to be built with the OPENSPACE_MODULE_VOLUME enabled + +-- Before using this asset, +-- the volume data itself needs to be generated, +-- using the task 'data/tasks/volume/debristasks/generate_debris_volume.task' + +local assetHelper = asset.require('util/asset_helper') +local transforms = asset.require("scene/solarsystem/planets/earth/transforms") + +local earthRadius = 2 * 7847140; + +local volume = { + Identifier = "DebrisVolume3", + Parent = transforms.EarthInertial.Identifier, + Renderable = { + Type = "RenderableTimeVaryingVolume", + SourceDirectory = asset.localResource("generated3"), + TransferFunction = asset.localResource("transferfunction.txt"), + StepSize = 0.01, + MinValue = 0, + MaxValue = 1, + GridType = "Cartesian", + SecondsBefore = 50*365*24*60*60, + SecondsAfter = 50*365*24*60*60 + }, + GUI = { + Path = "/Volumes" + }, + Transform = { + Scale = { + Type = "StaticScale", + Scale = earthRadius -- do not multiply this. That will not show real representation. + } + } +} + +local objects = { volume } +assetHelper.registerSceneGraphNodes(asset, objects) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/debris_volume4.asset b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/debris_volume4.asset new file mode 100644 index 0000000000..ae6fe02433 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/debris_volume4.asset @@ -0,0 +1,38 @@ +-- This asset requires OpenSpace to be built with the OPENSPACE_MODULE_VOLUME enabled + +-- Before using this asset, +-- the volume data itself needs to be generated, +-- using the task 'data/tasks/volume/debristasks/generate_debris_volume.task' + +local assetHelper = asset.require('util/asset_helper') +local transforms = asset.require("scene/solarsystem/planets/earth/transforms") + +local earthRadius = 2 * 8035460; + +local volume = { + Identifier = "DebrisVolume4", + Parent = transforms.EarthInertial.Identifier, + Renderable = { + Type = "RenderableTimeVaryingVolume", + SourceDirectory = asset.localResource("generated4"), + TransferFunction = asset.localResource("transferfunction.txt"), + StepSize = 0.01, + MinValue = 0, + MaxValue = 1, + GridType = "Cartesian", + SecondsBefore = 50*365*24*60*60, + SecondsAfter = 50*365*24*60*60 + }, + GUI = { + Path = "/Volumes" + }, + Transform = { + Scale = { + Type = "StaticScale", + Scale = earthRadius -- do not multiply this. That will not show real representation. + } + } +} + +local objects = { volume } +assetHelper.registerSceneGraphNodes(asset, objects) diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated/singleDebris.dictionary b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated/singleDebris.dictionary index bd78345bf6..2d4e260eb3 100644 --- a/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated/singleDebris.dictionary +++ b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated/singleDebris.dictionary @@ -1 +1 @@ -return {Dimensions={3.200000E1,3.200000E1,3.200000E1},GridType="Cartesian",LowerDomainBound={-0.500000E0,-0.500000E0,-0.500000E0},MaxValue=3.000000E0,MinValue=0,Time="2018-05-04T00:00:00.000",UpperDomainBound={0.500000E0,0.500000E0,0.500000E0}} \ No newline at end of file +return {Dimensions={1.600000E1,1.600000E1,1.600000E1},GridType="Cartesian",LowerDomainBound={-0.500000E0,-0.500000E0,-0.500000E0},MaxValue=1.000000E0,MinValue=0,Time="2018-05-04T00:00:00.000",UpperDomainBound={0.500000E0,0.500000E0,0.500000E0}} \ No newline at end of file diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated/singleDebris.rawvolume b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated/singleDebris.rawvolume index 87978a6890..75046d1c90 100644 Binary files a/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated/singleDebris.rawvolume and b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated/singleDebris.rawvolume differ diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated1/singleDebris.dictionary b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated1/singleDebris.dictionary new file mode 100644 index 0000000000..f823fac9b9 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated1/singleDebris.dictionary @@ -0,0 +1 @@ +return {Dimensions={1.600000E1,1.600000E1,1.600000E1},GridType="Cartesian",LowerDomainBound={-0.500000E0,-0.500000E0,-0.500000E0},MaxValue=3.500000E1,MinValue=0,Time="2018-05-04T00:00:00.000",UpperDomainBound={0.500000E0,0.500000E0,0.500000E0}} \ No newline at end of file diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated1/singleDebris.rawvolume b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated1/singleDebris.rawvolume new file mode 100644 index 0000000000..979fb119b9 Binary files /dev/null and b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated1/singleDebris.rawvolume differ diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated2/singleDebris.dictionary b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated2/singleDebris.dictionary new file mode 100644 index 0000000000..a86ece2985 --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated2/singleDebris.dictionary @@ -0,0 +1 @@ +return {Dimensions={1.600000E1,1.600000E1,1.600000E1},GridType="Cartesian",LowerDomainBound={-0.500000E0,-0.500000E0,-0.500000E0},MaxValue=4.000000E0,MinValue=0,Time="2018-05-04T00:00:00.000",UpperDomainBound={0.500000E0,0.500000E0,0.500000E0}} \ No newline at end of file diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated2/singleDebris.rawvolume b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated2/singleDebris.rawvolume new file mode 100644 index 0000000000..49a533bf3f Binary files /dev/null and b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated2/singleDebris.rawvolume differ diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated3/singleDebris.dictionary b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated3/singleDebris.dictionary new file mode 100644 index 0000000000..259c91c78f --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated3/singleDebris.dictionary @@ -0,0 +1 @@ +return {Dimensions={1.600000E1,1.600000E1,1.600000E1},GridType="Cartesian",LowerDomainBound={-0.500000E0,-0.500000E0,-0.500000E0},MaxValue=8.000000E0,MinValue=0,Time="2018-05-04T00:00:00.000",UpperDomainBound={0.500000E0,0.500000E0,0.500000E0}} \ No newline at end of file diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated3/singleDebris.rawvolume b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated3/singleDebris.rawvolume new file mode 100644 index 0000000000..096b4f235f Binary files /dev/null and b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated3/singleDebris.rawvolume differ diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated4/singleDebris.dictionary b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated4/singleDebris.dictionary new file mode 100644 index 0000000000..68bd92e52d --- /dev/null +++ b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated4/singleDebris.dictionary @@ -0,0 +1 @@ +return {Dimensions={1.600000E1,1.600000E1,1.600000E1},GridType="Cartesian",LowerDomainBound={-0.500000E0,-0.500000E0,-0.500000E0},MaxValue=1.100000E1,MinValue=0,Time="2018-05-04T00:00:00.000",UpperDomainBound={0.500000E0,0.500000E0,0.500000E0}} \ No newline at end of file diff --git a/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated4/singleDebris.rawvolume b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated4/singleDebris.rawvolume new file mode 100644 index 0000000000..e5bee14a33 Binary files /dev/null and b/data/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated4/singleDebris.rawvolume differ diff --git a/data/tasks/volume/debristasks/generate_single_debris_volume.task b/data/tasks/volume/debristasks/generate_single_debris_volume.task index a2999bb698..d1c43cd6bd 100644 --- a/data/tasks/volume/debristasks/generate_single_debris_volume.task +++ b/data/tasks/volume/debristasks/generate_single_debris_volume.task @@ -1,10 +1,12 @@ return {{ Type = "GenerateDebrisVolumeTask", - Dimensions = {32, 32, 32}, + Dimensions = {16, 16, 16}, LowerDomainBound = {-0.5, -0.5, -0.5}, UpperDomainBound = {0.5, 0.5, 0.5}, - InputPath = "D:/Openspace/sync/url/satellite_tle_data_IndianASATtestDebris(10018654073589624780)/files/2019-006.txt", + InputPath = "C:/Users/Jonathan/Documents/exjobb/OpenSpace/sync/url/satellite_tle_data_BreezeMBreakup(18391204735368316775)/files/2012-044.txt", StartTime = "2018-05-04T00:00:00", RawVolumeOutput = "${DATA}/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated/singleDebris.rawvolume", DictionaryOutput = "${DATA}/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated/singleDebris.dictionary" }} + +-- C:\Users\Jonathan\Documents\exjobb\OpenSpace\sync\url\satellite_tle_data_BreezeMBreakup(18391204735368316775)\files \ No newline at end of file diff --git a/data/tasks/volume/debristasks/generate_single_debris_volume1.task b/data/tasks/volume/debristasks/generate_single_debris_volume1.task new file mode 100644 index 0000000000..dd0efe6b0c --- /dev/null +++ b/data/tasks/volume/debristasks/generate_single_debris_volume1.task @@ -0,0 +1,12 @@ +return {{ + Type = "GenerateDebrisVolumeTask", + Dimensions = {16, 16, 16}, + LowerDomainBound = {-0.5, -0.5, -0.5}, + UpperDomainBound = {0.5, 0.5, 0.5}, + InputPath = "C:/Users/Jonathan/Documents/exjobb/OpenSpace/sync/url/satellite_tle_data_FengyunDebris(17139759358359376863)/files/1999-025.txt", + StartTime = "2018-05-04T00:00:00", + RawVolumeOutput = "${DATA}/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated1/singleDebris.rawvolume", + DictionaryOutput = "${DATA}/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated1/singleDebris.dictionary" +}} + +-- C:\Users\Jonathan\Documents\exjobb\OpenSpace\sync\url\satellite_tle_data_BreezeMBreakup(18391204735368316775)\files \ No newline at end of file diff --git a/data/tasks/volume/debristasks/generate_single_debris_volume2.task b/data/tasks/volume/debristasks/generate_single_debris_volume2.task new file mode 100644 index 0000000000..8e2cb16ac4 --- /dev/null +++ b/data/tasks/volume/debristasks/generate_single_debris_volume2.task @@ -0,0 +1,12 @@ +return {{ + Type = "GenerateDebrisVolumeTask", + Dimensions = {16, 16, 16}, + LowerDomainBound = {-0.5, -0.5, -0.5}, + UpperDomainBound = {0.5, 0.5, 0.5}, + InputPath = "C:/Users/Jonathan/Documents/exjobb/OpenSpace/sync/url/satellite_tle_data_IndianASATtestDebris(10018654073589624780)/files/2019-006.txt", + StartTime = "2018-05-04T00:00:00", + RawVolumeOutput = "${DATA}/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated2/singleDebris.rawvolume", + DictionaryOutput = "${DATA}/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated2/singleDebris.dictionary" +}} + +-- C:\Users\Jonathan\Documents\exjobb\OpenSpace\sync\url\satellite_tle_data_BreezeMBreakup(18391204735368316775)\files \ No newline at end of file diff --git a/data/tasks/volume/debristasks/generate_single_debris_volume3.task b/data/tasks/volume/debristasks/generate_single_debris_volume3.task new file mode 100644 index 0000000000..a139dfb59a --- /dev/null +++ b/data/tasks/volume/debristasks/generate_single_debris_volume3.task @@ -0,0 +1,12 @@ +return {{ + Type = "GenerateDebrisVolumeTask", + Dimensions = {16, 16, 16}, + LowerDomainBound = {-0.5, -0.5, -0.5}, + UpperDomainBound = {0.5, 0.5, 0.5}, + InputPath = "C:/Users/Jonathan/Documents/exjobb/OpenSpace/sync/url/satellite_tle_data_Iridium33Debris(10708435089634408069)/files/iridium-33-debris.txt", + StartTime = "2018-05-04T00:00:00", + RawVolumeOutput = "${DATA}/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated3/singleDebris.rawvolume", + DictionaryOutput = "${DATA}/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated3/singleDebris.dictionary" +}} + +-- C:\Users\Jonathan\Documents\exjobb\OpenSpace\sync\url\satellite_tle_data_BreezeMBreakup(18391204735368316775)\files \ No newline at end of file diff --git a/data/tasks/volume/debristasks/generate_single_debris_volume4.task b/data/tasks/volume/debristasks/generate_single_debris_volume4.task new file mode 100644 index 0000000000..289b6b1c86 --- /dev/null +++ b/data/tasks/volume/debristasks/generate_single_debris_volume4.task @@ -0,0 +1,12 @@ +return {{ + Type = "GenerateDebrisVolumeTask", + Dimensions = {16, 16, 16}, + LowerDomainBound = {-0.5, -0.5, -0.5}, + UpperDomainBound = {0.5, 0.5, 0.5}, + InputPath = "C:/Users/Jonathan/Documents/exjobb/OpenSpace/sync/url/satellite_tle_data_Kosmos2251Debris(14362705017065532804)/files/cosmos-2251-debris.txt", + StartTime = "2018-05-04T00:00:00", + RawVolumeOutput = "${DATA}/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated4/singleDebris.rawvolume", + DictionaryOutput = "${DATA}/assets/scene/solarsystem/planets/earth/satellites/debris/volume/generated4/singleDebris.dictionary" +}} + +-- C:\Users\Jonathan\Documents\exjobb\OpenSpace\sync\url\satellite_tle_data_BreezeMBreakup(18391204735368316775)\files \ No newline at end of file diff --git a/ext/ghoul b/ext/ghoul index 9045871f1e..5600165bb3 160000 --- a/ext/ghoul +++ b/ext/ghoul @@ -1 +1 @@ -Subproject commit 9045871f1e9a387708e8235c3bb809da7d860e6f +Subproject commit 5600165bb3a2e009161d56f6dbf760fcf79e4e87 diff --git a/modules/space/tasks/generatedebrisvolumetask.cpp b/modules/space/tasks/generatedebrisvolumetask.cpp index 02886dacf9..725246f901 100644 --- a/modules/space/tasks/generatedebrisvolumetask.cpp +++ b/modules/space/tasks/generatedebrisvolumetask.cpp @@ -22,7 +22,6 @@ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ #include -#include #include #include @@ -395,9 +394,9 @@ std::vector generatePositions(int numberOfPositions) { std::vector positions; float radius = 700000; // meter - int degreeStep = static_cast(360 / numberOfPositions); + float degreeStep = 360 / numberOfPositions; - for(int i=0 ; i<= 360 ; i += degreeStep){ + for(int i=0 ; i<= 360 ; i == degreeStep){ glm::dvec3 singlePosition = glm::dvec3(radius* sin(i), radius*cos(i), 0.0); positions.push_back(singlePosition); } @@ -433,9 +432,10 @@ int getIndexFromPosition(glm::dvec3 position, glm::uvec3 dim, float maxApogee){ ,position.y + maxApogee ,position.z + maxApogee); - glm::uvec3 coordinateIndex = glm::uvec3(static_cast(newPosition.x * dim.x / (2*(maxApogee + epsilon))), - static_cast(newPosition.y * dim.y / (2 * (maxApogee + epsilon))), - static_cast(newPosition.z * dim.z / (2 * (maxApogee + epsilon)))); + glm::uvec3 coordinateIndex = glm::uvec3(static_cast(newPosition.x * dim.x / (2 * (maxApogee + epsilon))), + static_cast(newPosition.y * dim.y / (2 * (maxApogee + epsilon))), + static_cast(newPosition.z * dim.z / (2 * (maxApogee + epsilon)))); + return coordinateIndex.z * (dim.x * dim.y) + coordinateIndex.y * dim.x + coordinateIndex.x; } @@ -499,6 +499,7 @@ void GenerateDebrisVolumeTask::perform(const Task::ProgressCallback& progressCal const int size = _dimensions.x *_dimensions.y *_dimensions.z; int *densityArrayp = new int[size](); float maxApogee = getMaxApogee(_TLEDataVector); + LINFO(fmt::format("maxApp: {} ", maxApogee)); //densityArrayp = mapDensityToVoxels(densityArrayp, generatedPositions, _dimensions, maxApogee); densityArrayp = mapDensityToVoxels(densityArrayp, startPositionBuffer, _dimensions, maxApogee); @@ -516,6 +517,11 @@ void GenerateDebrisVolumeTask::perform(const Task::ProgressCallback& progressCal // glm::vec3(cell) / glm::vec3(_dimensions) * domainSize; float value = getDensityAt(cell, densityArrayp, rawVolume); // (coord) //LINFO(fmt::format("EachVoxel: {} ", value)); + // if((cell.x + cell.y + cell.z) % 8 == 0) + // value = 1; + // else + // value = 0; + rawVolume.set(cell, value); minVal = std::min(minVal, value); @@ -584,12 +590,6 @@ documentation::Documentation GenerateDebrisVolumeTask::documentation() { Optional::No, "Input path to the TLE-data", }, - { - KeyStartTime, - new StringAnnotationVerifier("A valid timestamp"), - Optional::No, - "First timestep of volume", - }, { KeyRawVolumeOutput, new StringAnnotationVerifier("A valid filepath"),