mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-03-16 10:31:05 -05:00
Merge branch 'feature/globebrowsing' of github.com:OpenSpace/OpenSpace-Development into feature/globebrowsing
This commit is contained in:
18
.gitignore
vendored
18
.gitignore
vendored
@@ -132,3 +132,21 @@ data/scene/milkyway-eso/textures/eso0932a_blend.png
|
||||
data/scene/stars-denver/denver_colorbv.cmap
|
||||
data/scene/stars-denver/speck/stars.speck
|
||||
data/scene/stars-denver/textures/halo.png
|
||||
data/scene/newhorizons/pluto/pluto/full_images/
|
||||
data/scene/rosetta/67P/rosettaimages/
|
||||
data/spice/RosettaKernels_New/
|
||||
data/scene/newhorizons/pluto/charon/utcEvents.txt
|
||||
data/scene/rosetta/67P/obj/67P_HD_2015-05-09.obj
|
||||
data/scene/rosetta/67P/obj/may9_map.jpg
|
||||
data/scene/rosetta/67P/textures/may9_map.jpg
|
||||
data/scene/newhorizons/pluto/charon/textures/cpdem-Mcolor2-MLorriCA-lr-5_ZMfs-cyl.jpg
|
||||
data/scene/newhorizons/pluto/charon/textures/cpmap_cyl_HR_0e.jpg
|
||||
data/scene/volumetricmilkyway/milkyway/
|
||||
ScriptLog.txt
|
||||
data/scene/atmosphereearth/textures/ToastMapOfEarth.jpg
|
||||
data/scene/atmosphereearth/textures/earth_bluemarble.jpg
|
||||
data/scene/atmosphereearth/textures/earth_bluemarble_height.jpg
|
||||
data/scene/atmosphereearth/textures/earth_clouds.jpg
|
||||
data/scene/atmosphereearth/textures/earth_night.jpg
|
||||
data/scene/atmosphereearth/textures/earth_reflectance.png
|
||||
data/scene/atmosphereearth/textures/marker.png
|
||||
|
||||
@@ -191,6 +191,7 @@ void MainWindow::initialize() {
|
||||
|
||||
ghoul::logging::LogManager::initialize(ghoul::logging::LogManager::LogLevel::Debug);
|
||||
LogMgr.addLog( std::make_unique< ghoul::logging::ConsoleLog >() );
|
||||
// TODO: This can crash the system in cases where the logfile can't be created ---abock
|
||||
LogMgr.addLog( std::make_unique< ghoul::logging::HTMLLog >("LauncherLog.html", ghoul::logging::HTMLLog::Append::No) );
|
||||
LogMgr.addLog( std::make_unique< QLog >() );
|
||||
|
||||
|
||||
@@ -6,14 +6,7 @@
|
||||
<Node address="localhost" port="20401">
|
||||
<Window fullScreen="false" fxaa="false" numberOfSamples="8" name="OpenSpace">
|
||||
<Stereo type="none" />
|
||||
<!-- <Res x="4096" y="2304" /> -->
|
||||
<!-- <Res x="1920" y="1080" /> -->
|
||||
|
||||
<!-- 16:9 aspect ratio -->
|
||||
<Size x="1280" y="720" />
|
||||
<!-- <Size x="960" y="540" /> -->
|
||||
<!-- <Size x="640" y="360" /> -->
|
||||
<!--<Size x="640" y="310" />-->
|
||||
<Pos x="50" y="50" />
|
||||
<Viewport>
|
||||
<Pos x="0.0" y="0.0" />
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
<?xml version="1.0" ?>
|
||||
<Cluster masterAddress="localhost">
|
||||
<!-- <Scene>
|
||||
<Orientation yaw="0.0" pitch="-27.0" roll="0.0" />
|
||||
<Offset x="0.0" y="0.0" z="0.0" />
|
||||
<Scale value="1.0" />
|
||||
</Scene> -->
|
||||
<Node address="localhost" port="20401">
|
||||
<Window fullScreen="false" numberOfSamples="8" name="OpenSpace">
|
||||
<Stereo type="none" />
|
||||
@@ -20,7 +25,7 @@
|
||||
<Viewport name="fisheye">
|
||||
<Pos x="0.0" y="0.0" />
|
||||
<Size x="1.0" y="1.0" />
|
||||
<FisheyeProjection fov="180" quality="1k" tilt="27.0">
|
||||
<FisheyeProjection fov="180" quality="1k" tilt="27.0">
|
||||
<Background r="0.1" g="0.1" b="0.1" a="1.0" />
|
||||
</FisheyeProjection>
|
||||
</Viewport>
|
||||
|
||||
37
config/sgct/single_gui.xml
Normal file
37
config/sgct/single_gui.xml
Normal file
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" ?>
|
||||
<Cluster masterAddress="localhost" externalControlPort="20500">
|
||||
<Settings>
|
||||
<Display swapInterval="0" />
|
||||
</Settings>
|
||||
<Node address="localhost" port="20401">
|
||||
<Window fullScreen="false" fxaa="false" numberOfSamples="8" name="OpenSpace">
|
||||
<Stereo type="none" />
|
||||
<Size x="1280" y="720" />
|
||||
<Pos x="50" y="50" />
|
||||
<Viewport>
|
||||
<Pos x="0.0" y="0.0" />
|
||||
<Size x="1.0" y="1.0" />
|
||||
<PlanarProjection>
|
||||
<FOV down="16.875" left="30.0" right="30.0" up="16.875" />
|
||||
<Orientation heading="0.0" pitch="0.0" roll="0.0" />
|
||||
</PlanarProjection>
|
||||
</Viewport>
|
||||
</Window>
|
||||
<Window fullScreen="false" fxaa="false" numberOfSamples="8" name="GUI">
|
||||
<Stereo type="none" />
|
||||
<Size x="1280" y="720" />
|
||||
<Pos x="50" y="50" />
|
||||
<Viewport>
|
||||
<Pos x="0.0" y="0.0" />
|
||||
<Size x="1.0" y="1.0" />
|
||||
<PlanarProjection>
|
||||
<FOV down="16.875" left="30.0" right="30.0" up="16.875" />
|
||||
<Orientation heading="0.0" pitch="0.0" roll="0.0" />
|
||||
</PlanarProjection>
|
||||
</Viewport>
|
||||
</Window>
|
||||
</Node>
|
||||
<User eyeSeparation="0.065">
|
||||
<Pos x="0.0" y="0.0" z="0.0" />
|
||||
</User>
|
||||
</Cluster>
|
||||
51
data/scene/atmosphereearth.scene
Normal file
51
data/scene/atmosphereearth.scene
Normal file
@@ -0,0 +1,51 @@
|
||||
function preInitialization()
|
||||
--[[
|
||||
The scripts in this function are executed after the scene is loaded but before the
|
||||
scene elements have been initialized, thus they should be used to set the time at
|
||||
which the scene should start and other settings that might determine initialization
|
||||
critical objects.
|
||||
]]--
|
||||
|
||||
openspace.time.setTime(openspace.time.currentWallTime())
|
||||
dofile(openspace.absPath('${SCRIPTS}/bind_keys.lua'))
|
||||
end
|
||||
|
||||
function postInitialization()
|
||||
--[[
|
||||
The scripts in this function are executed after all objects in the scene have been
|
||||
created and initialized, but before the first render call. This is the place to set
|
||||
graphical settings for the renderables.
|
||||
]]--
|
||||
openspace.printInfo("Setting default values")
|
||||
openspace.setPropertyValue("Sun.renderable.enabled", false)
|
||||
openspace.setPropertyValue("SunMarker.renderable.enabled", true)
|
||||
openspace.setPropertyValue("EarthMarker.renderable.enabled", true)
|
||||
openspace.setPropertyValue("Constellation Bounds.renderable.enabled", false)
|
||||
|
||||
openspace.setPropertyValue("MilkyWay.renderable.transparency", 0.55)
|
||||
openspace.setPropertyValue("MilkyWay.renderable.segments", 50)
|
||||
|
||||
openspace.printInfo("Done setting default values")
|
||||
|
||||
if openspace.modules.isLoaded("ISWA") then
|
||||
openspace.iswa.addCdfFiles("${OPENSPACE_DATA}/cdflist.json");
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
return {
|
||||
ScenePath = ".",
|
||||
CommonFolder = "common",
|
||||
Camera = {
|
||||
Focus = "Earth",
|
||||
Position = {1, 0, 0, 2},
|
||||
},
|
||||
Modules = {
|
||||
"sun",
|
||||
"earth",
|
||||
"stars",
|
||||
--"stars-denver",
|
||||
"milkyway",
|
||||
-- "milkyway-eso",
|
||||
}
|
||||
}
|
||||
5
data/scene/atmosphereearth/atmosphereearth.data
Normal file
5
data/scene/atmosphereearth/atmosphereearth.data
Normal file
@@ -0,0 +1,5 @@
|
||||
return {
|
||||
FileRequest = {
|
||||
{ Identifier = "earth_textures", Destination = "textures", Version = 2 }
|
||||
},
|
||||
}
|
||||
159
data/scene/atmosphereearth/atmosphereearth.mod
Normal file
159
data/scene/atmosphereearth/atmosphereearth.mod
Normal file
@@ -0,0 +1,159 @@
|
||||
return {
|
||||
-- Earth barycenter module
|
||||
{
|
||||
Name = "EarthBarycenter",
|
||||
Parent = "SolarSystemBarycenter",
|
||||
Static = true,
|
||||
Ephemeris = {
|
||||
Type = "Spice",
|
||||
Body = "EARTH BARYCENTER",
|
||||
Reference = "ECLIPJ2000",
|
||||
Observer = "SUN",
|
||||
Kernels = {
|
||||
"${OPENSPACE_DATA}/spice/de430_1850-2150.bsp"
|
||||
}
|
||||
},
|
||||
},
|
||||
-- Earth module
|
||||
{
|
||||
Name = "Earth",
|
||||
Parent = "EarthBarycenter",
|
||||
Renderable = {
|
||||
Type = "RenderablePlanet",
|
||||
Frame = "IAU_EARTH",
|
||||
Body = "EARTH",
|
||||
Geometry = {
|
||||
Type = "SimpleSphere",
|
||||
Radius = { 6.371, 6 },
|
||||
Segments = 100
|
||||
},
|
||||
Shadow_Group = {
|
||||
Source1 = {
|
||||
Name = "Sun",
|
||||
-- All radius in meters
|
||||
Radius = {696.3, 6}
|
||||
},
|
||||
--Source2 = { Name = "Monolith", Radius = {0.01, 6} },
|
||||
Caster1 = {
|
||||
Name = "Moon",
|
||||
-- All radius in meters
|
||||
Radius = {1.737, 6}
|
||||
},
|
||||
--Caster2 = { Name = "Independency Day Ship", Radius = {0.0, 0.0} }
|
||||
},
|
||||
Textures = {
|
||||
Type = "simple",
|
||||
Color = "textures/earth_bluemarble.jpg",
|
||||
Night = "textures/earth_night.jpg",
|
||||
--Height = "textures/earth_bluemarble_height.jpg",
|
||||
-- Depth = "textures/earth_depth.png",
|
||||
Reflectance = "textures/earth_reflectance.png",
|
||||
Clouds = "textures/earth_clouds.jpg"
|
||||
},
|
||||
Atmosphere = {
|
||||
-- Atmosphere radius in Km
|
||||
AtmoshereRadius = 6420,
|
||||
--AtmoshereRadius = 6390,
|
||||
--PlanetRadius = 6371,
|
||||
PlanetRadius = 6360,
|
||||
PlanetAverageGroundReflectance = 0.1,
|
||||
Rayleigh = {
|
||||
Coefficients = {
|
||||
-- Wavelengths are given in 10^-9m
|
||||
Wavelengths = {680, 550, 440},
|
||||
-- Reflection coefficients are given in km^-1
|
||||
Scattering = {5.8e-3, 1.35e-2, 3.31e-2},
|
||||
-- In Rayleigh scattering, the coefficients of absorption and scattering are the same.
|
||||
},
|
||||
-- Thichkness of atmosphere if its density were uniform, in Km
|
||||
H_R = 8.0,
|
||||
},
|
||||
-- Default
|
||||
Mie = {
|
||||
Coefficients = {
|
||||
-- Reflection coefficients are given in km^-1
|
||||
Scattering = {4e-3, 4e-3, 4e-3},
|
||||
--Scattering = {2e-5, 2e-5, 2e-5},
|
||||
-- Extinction coefficients are a fraction of the Scattering coefficients
|
||||
Extinction = {4e-3/0.9, 4e-3/0.9, 4e-3/0.9}
|
||||
-- Height scale (atmosphere thickness for constant density) in Km
|
||||
},
|
||||
H_M = 1.2,
|
||||
-- Mie Phase Function Value (G e [-1.0, 1.0]. If G = 1.0, Mie phase function = Rayleigh Phase Function)
|
||||
G = 1.0,
|
||||
},
|
||||
-- Clear Sky
|
||||
-- Mie = {
|
||||
-- Coefficients = {
|
||||
-- Scattering = {20e-3, 20e-3, 20e-3},
|
||||
-- Extinction = 1.0/0.9,
|
||||
-- }
|
||||
-- H_M = 1.2,
|
||||
-- G = 0.76,
|
||||
-- },
|
||||
-- Cloudy
|
||||
-- Mie = {
|
||||
-- Coefficients = {
|
||||
-- Scattering = {3e-3, 3e-3, 3e-3},
|
||||
-- Extinction = 1.0/0.9,
|
||||
-- }
|
||||
-- H_M = 3.0,
|
||||
-- G = 0.65,
|
||||
-- },
|
||||
}
|
||||
},
|
||||
|
||||
GuiName = "/Solar/Planets/Earth"
|
||||
},
|
||||
-- EarthTrail module
|
||||
{
|
||||
Name = "EarthTrail",
|
||||
Parent = "SolarSystemBarycenter",
|
||||
Renderable = {
|
||||
Type = "RenderableTrail",
|
||||
Body = "EARTH",
|
||||
Frame = "GALACTIC",
|
||||
Observer = "SUN",
|
||||
RGB = { 0.5, 0.8, 1.0},
|
||||
TropicalOrbitPeriod = 365.242,
|
||||
EarthOrbitRatio = 1,
|
||||
DayLength = 24
|
||||
},
|
||||
GuiName = "/Solar/EarthTrail"
|
||||
},
|
||||
{
|
||||
Name = "EarthMarker",
|
||||
Parent = "Earth",
|
||||
Renderable = {
|
||||
Type = "RenderablePlane",
|
||||
Size = {3.0, 11.0},
|
||||
Origin = "Center",
|
||||
Billboard = true,
|
||||
Texture = "textures/marker.png"
|
||||
},
|
||||
Ephemeris = {
|
||||
Type = "Static",
|
||||
Position = {0, 0, 0, 5}
|
||||
}
|
||||
}
|
||||
-- Plane
|
||||
-- {
|
||||
-- Name = "EarthPlane",
|
||||
-- Parent = "Earth",
|
||||
-- Renderable = {
|
||||
-- Type = "RenderablePlane",
|
||||
-- Billboard = true,
|
||||
-- Size = { 6.371, 6 },
|
||||
-- Texture = "textures/graph.jpg",
|
||||
-- Atmosphere = {
|
||||
-- Type = "Nishita", -- for example, values missing etc etc
|
||||
-- MieFactor = 1.0,
|
||||
-- MieColor = {1.0, 1.0, 1.0}
|
||||
-- }
|
||||
-- },
|
||||
-- Ephemeris = {
|
||||
-- Type = "Static",
|
||||
-- Position = { 6.371*2, 0, 0, 6},
|
||||
-- },
|
||||
-- }
|
||||
}
|
||||
@@ -6,7 +6,8 @@ function preInitialization()
|
||||
critical objects.
|
||||
]]--
|
||||
|
||||
openspace.time.setTime(openspace.time.currentWallTime())
|
||||
--openspace.time.setTime(openspace.time.currentWallTime())
|
||||
openspace.time.setTime('2015-03-15T11:00:00.00')
|
||||
dofile(openspace.absPath('${SCRIPTS}/bind_keys.lua'))
|
||||
end
|
||||
|
||||
@@ -17,18 +18,31 @@ function postInitialization()
|
||||
graphical settings for the renderables.
|
||||
]]--
|
||||
openspace.printInfo("Setting default values")
|
||||
openspace.setPropertyValue("Sun.renderable.enabled", false)
|
||||
openspace.setPropertyValue("SunMarker.renderable.enabled", true)
|
||||
openspace.setPropertyValue("EarthMarker.renderable.enabled", true)
|
||||
openspace.setPropertyValue("Sun.renderable.enab`led", true)
|
||||
openspace.setPropertyValue("SunGlare.renderable.enabled", false)
|
||||
openspace.setPropertyValue("SunMarker.renderable.enabled", false)
|
||||
openspace.setPropertyValue("EarthMarker.renderable.enabled", false)
|
||||
openspace.setPropertyValue("Constellation Bounds.renderable.enabled", false)
|
||||
|
||||
openspace.setPropertyValue("MilkyWay.renderable.transparency", 0.55)
|
||||
openspace.setPropertyValue("MilkyWay.renderable.segments", 50)
|
||||
|
||||
openspace.resetCameraDirection()
|
||||
|
||||
openspace.printInfo("Done setting default values")
|
||||
|
||||
if openspace.modules.isLoaded("ISWA") then
|
||||
|
||||
openspace.iswa.addCdfFiles("${OPENSPACE_DATA}/cdflist.json");
|
||||
|
||||
--openspace.iswa.addCygnet(7);
|
||||
|
||||
--openspace.iswa.addCygnet(-4,"Data","Gm");
|
||||
--openspace.iswa.addCygnet(-5,"Data","Gm");
|
||||
--openspace.iswa.addCygnet(-6,"Data","Gm");
|
||||
--openspace.iswa.addCygnet(-7,"Data","Gm");
|
||||
--openspace.iswa.addCygnet(-8,"Data","Gm");
|
||||
--openspace.iswa.addCygnet(-9,"Data","Gm");
|
||||
end
|
||||
end
|
||||
|
||||
@@ -54,7 +68,7 @@ return {
|
||||
"stars",
|
||||
--"stars-denver",
|
||||
"milkyway",
|
||||
-- "milkyway-eso",
|
||||
--"milkyway-eso",
|
||||
"constellationbounds",
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,20 +27,6 @@ return {
|
||||
Radius = { 6.371, 6 },
|
||||
Segments = 100
|
||||
},
|
||||
Shadow_Group = {
|
||||
Source1 = {
|
||||
Name = "Sun",
|
||||
-- All radius in meters
|
||||
Radius = {696.3, 6}
|
||||
},
|
||||
--Source2 = { Name = "Monolith", Radius = {0.01, 6} },
|
||||
Caster1 = {
|
||||
Name = "Moon",
|
||||
-- All radius in meters
|
||||
Radius = {1.737, 6}
|
||||
},
|
||||
--Caster2 = { Name = "Independency Day Ship", Radius = {0.0, 0.0} }
|
||||
},
|
||||
Textures = {
|
||||
Type = "simple",
|
||||
Color = "textures/earth_bluemarble.jpg",
|
||||
@@ -49,57 +35,6 @@ return {
|
||||
-- Depth = "textures/earth_depth.png",
|
||||
Reflectance = "textures/earth_reflectance.png",
|
||||
Clouds = "textures/earth_clouds.jpg"
|
||||
},
|
||||
Atmosphere = {
|
||||
-- Atmosphere radius in Km
|
||||
AtmoshereRadius = 6420,
|
||||
--AtmoshereRadius = 6390,
|
||||
--PlanetRadius = 6371,
|
||||
PlanetRadius = 6360,
|
||||
PlanetAverageGroundReflectance = 0.1,
|
||||
Rayleigh = {
|
||||
Coefficients = {
|
||||
-- Wavelengths are given in 10^-9m
|
||||
Wavelengths = {680, 550, 440},
|
||||
-- Reflection coefficients are given in km^-1
|
||||
Scattering = {5.8e-3, 1.35e-2, 3.31e-2},
|
||||
-- In Rayleigh scattering, the coefficients of absorption and scattering are the same.
|
||||
},
|
||||
-- Thichkness of atmosphere if its density were uniform, in Km
|
||||
H_R = 8.0,
|
||||
},
|
||||
-- Default
|
||||
Mie = {
|
||||
Coefficients = {
|
||||
-- Reflection coefficients are given in km^-1
|
||||
Scattering = {4e-3, 4e-3, 4e-3},
|
||||
--Scattering = {2e-5, 2e-5, 2e-5},
|
||||
-- Extinction coefficients are a fraction of the Scattering coefficients
|
||||
Extinction = {4e-3/0.9, 4e-3/0.9, 4e-3/0.9}
|
||||
-- Height scale (atmosphere thickness for constant density) in Km
|
||||
},
|
||||
H_M = 1.2,
|
||||
-- Mie Phase Function Value (G e [-1.0, 1.0]. If G = 1.0, Mie phase function = Rayleigh Phase Function)
|
||||
G = 1.0,
|
||||
},
|
||||
-- Clear Sky
|
||||
-- Mie = {
|
||||
-- Coefficients = {
|
||||
-- Scattering = {20e-3, 20e-3, 20e-3},
|
||||
-- Extinction = 1.0/0.9,
|
||||
-- }
|
||||
-- H_M = 1.2,
|
||||
-- G = 0.76,
|
||||
-- },
|
||||
-- Cloudy
|
||||
-- Mie = {
|
||||
-- Coefficients = {
|
||||
-- Scattering = {3e-3, 3e-3, 3e-3},
|
||||
-- Extinction = 1.0/0.9,
|
||||
-- }
|
||||
-- H_M = 3.0,
|
||||
-- G = 0.65,
|
||||
-- },
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
@@ -9,12 +9,13 @@ return {
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableMultiresVolume",
|
||||
ReferenceFrame = "HEEQ",
|
||||
Translation = {0, 0, 0},
|
||||
Rotation = {2.1, 0, 0},
|
||||
Scaling = {1.1, 1.1, 1.1},
|
||||
ScalingExponent = 13,
|
||||
Source = "tsp/enlil_nh_128_128_16.tsp",
|
||||
ErrorHistogramsSource = "tsp/enlil_nh_128_128_16.errorHistograms",
|
||||
ErrorHistogramsSource = "tsp/enlil_nh_128_128_16_50.errorHistograms",
|
||||
TransferFunction = "transferfunctions/fire.txt",
|
||||
BrickSelector = "tf",
|
||||
},
|
||||
|
||||
56
data/scene/fieldlines.scene
Normal file
56
data/scene/fieldlines.scene
Normal file
@@ -0,0 +1,56 @@
|
||||
function preInitialization()
|
||||
--[[
|
||||
The scripts in this function are executed after the scene is loaded but before the
|
||||
scene elements have been initialized, thus they should be used to set the time at
|
||||
which the scene should start and other settings that might determine initialization
|
||||
critical objects.
|
||||
]]--
|
||||
|
||||
openspace.time.setTime("2015 JAN 01 12:00:00.000")
|
||||
dofile(openspace.absPath('${SCRIPTS}/bind_keys.lua'))
|
||||
end
|
||||
|
||||
function postInitialization()
|
||||
--[[
|
||||
The scripts in this function are executed after all objects in the scene have been
|
||||
created and initialized, but before the first render call. This is the place to set
|
||||
graphical settings for the renderables.
|
||||
]]--
|
||||
openspace.printInfo("Setting default values")
|
||||
openspace.setPropertyValue("Sun.renderable.enabled", false)
|
||||
openspace.setPropertyValue("SunMarker.renderable.enabled", false)
|
||||
openspace.setPropertyValue("EarthMarker.renderable.enabled", false)
|
||||
openspace.setPropertyValue("Constellation Bounds.renderable.enabled", false)
|
||||
|
||||
openspace.setPropertyValue("MilkyWay.renderable.transparency", 0.55)
|
||||
openspace.setPropertyValue("MilkyWay.renderable.segments", 50)
|
||||
|
||||
openspace.printInfo("Done setting default values")
|
||||
end
|
||||
|
||||
|
||||
return {
|
||||
ScenePath = ".",
|
||||
CommonFolder = "common",
|
||||
Camera = {
|
||||
Focus = "Earth",
|
||||
Position = {1, 0, 0, 5},
|
||||
},
|
||||
Modules = {
|
||||
"sun",
|
||||
"mercury",
|
||||
"venus",
|
||||
"earth",
|
||||
"mars",
|
||||
"jupiter",
|
||||
"saturn",
|
||||
"uranus",
|
||||
"neptune",
|
||||
"stars",
|
||||
"fieldlines",
|
||||
-- "stars-denver",
|
||||
"milkyway",
|
||||
-- "milkyway-eso",
|
||||
"constellationbounds",
|
||||
}
|
||||
}
|
||||
@@ -19,6 +19,8 @@ function postInitialization()
|
||||
openspace.setPropertyValue("MilkyWay.renderable.transparency", 0.55)
|
||||
openspace.setPropertyValue("MilkyWay.renderable.segments", 50)
|
||||
|
||||
openspace.resetCameraDirection()
|
||||
|
||||
openspace.printInfo("Done setting default values")
|
||||
end
|
||||
|
||||
|
||||
@@ -16,11 +16,6 @@ return {
|
||||
Type = "simple",
|
||||
Color = "textures/callisto.jpg",
|
||||
},
|
||||
Atmosphere = {
|
||||
Type = "Nishita", -- for example, values missing etc etc
|
||||
MieFactor = 1.0,
|
||||
MieColor = {1.0, 1.0, 1.0}
|
||||
}
|
||||
},
|
||||
Ephemeris = {
|
||||
Type = "Spice",
|
||||
|
||||
@@ -16,11 +16,6 @@ return {
|
||||
Type = "simple",
|
||||
Color = "textures/europa.jpg",
|
||||
},
|
||||
Atmosphere = {
|
||||
Type = "Nishita", -- for example, values missing etc etc
|
||||
MieFactor = 1.0,
|
||||
MieColor = {1.0, 1.0, 1.0}
|
||||
}
|
||||
},
|
||||
Ephemeris = {
|
||||
Type = "Spice",
|
||||
|
||||
@@ -16,11 +16,6 @@ return {
|
||||
Type = "simple",
|
||||
Color = "textures/ganymede.jpg",
|
||||
},
|
||||
Atmosphere = {
|
||||
Type = "Nishita", -- for example, values missing etc etc
|
||||
MieFactor = 1.0,
|
||||
MieColor = {1.0, 1.0, 1.0}
|
||||
}
|
||||
},
|
||||
Ephemeris = {
|
||||
Type = "Spice",
|
||||
|
||||
@@ -16,11 +16,6 @@ return {
|
||||
Type = "simple",
|
||||
Color = "textures/io.jpg",
|
||||
},
|
||||
Atmosphere = {
|
||||
Type = "Nishita", -- for example, values missing etc etc
|
||||
MieFactor = 1.0,
|
||||
MieColor = {1.0, 1.0, 1.0}
|
||||
}
|
||||
},
|
||||
Ephemeris = {
|
||||
Type = "Spice",
|
||||
|
||||
@@ -30,11 +30,6 @@ return {
|
||||
Type = "simple",
|
||||
Color = "textures/jupiter.jpg",
|
||||
},
|
||||
Atmosphere = {
|
||||
Type = "Nishita", -- for example, values missing etc etc
|
||||
MieFactor = 1.0,
|
||||
MieColor = {1.0, 1.0, 1.0}
|
||||
}
|
||||
},
|
||||
Ephemeris = {
|
||||
Type = "Static" -- jupiter is at its barycenter
|
||||
|
||||
@@ -18,11 +18,6 @@ return {
|
||||
Project = "textures/defaultProj.png",
|
||||
Sequencing = "true",
|
||||
},
|
||||
Atmosphere = {
|
||||
Type = "Nishita", -- for example, values missing etc etc
|
||||
MieFactor = 1.0,
|
||||
MieColor = {1.0, 1.0, 1.0}
|
||||
},
|
||||
Projection = {
|
||||
Observer = "NEW HORIZONS",
|
||||
Target = "CALLISTO",
|
||||
|
||||
@@ -18,11 +18,6 @@ return {
|
||||
Project = "textures/defaultProj.png",
|
||||
Sequencing = "true",
|
||||
},
|
||||
Atmosphere = {
|
||||
Type = "Nishita", -- for example, values missing etc etc
|
||||
MieFactor = 1.0,
|
||||
MieColor = {1.0, 1.0, 1.0}
|
||||
},
|
||||
Projection = {
|
||||
Observer = "NEW HORIZONS",
|
||||
Target = "EUROPA",
|
||||
|
||||
@@ -18,11 +18,6 @@ return {
|
||||
Project = "textures/defaultProj.png",
|
||||
Sequencing = "true",
|
||||
},
|
||||
Atmosphere = {
|
||||
Type = "Nishita", -- for example, values missing etc etc
|
||||
MieFactor = 1.0,
|
||||
MieColor = {1.0, 1.0, 1.0}
|
||||
},
|
||||
Projection = {
|
||||
Observer = "NEW HORIZONS",
|
||||
Target = "GANYMEDE",
|
||||
|
||||
@@ -18,11 +18,6 @@ return {
|
||||
Project = "textures/defaultProj.png",
|
||||
Sequencing = "true",
|
||||
},
|
||||
Atmosphere = {
|
||||
Type = "Nishita", -- for example, values missing etc etc
|
||||
MieFactor = 1.0,
|
||||
MieColor = {1.0, 1.0, 1.0}
|
||||
},
|
||||
Projection = {
|
||||
Observer = "NEW HORIZONS",
|
||||
Target = "IO",
|
||||
|
||||
@@ -32,11 +32,6 @@ return {
|
||||
Project = "textures/lorriTest1.jpg",
|
||||
Sequencing = "true",
|
||||
},
|
||||
Atmosphere = {
|
||||
Type = "Nishita", -- for example, values missing etc etc
|
||||
MieFactor = 1.0,
|
||||
MieColor = {1.0, 1.0, 1.0}
|
||||
},
|
||||
Projection = {
|
||||
--Sequence = "F:/JupiterFullSequence",
|
||||
Sequence = "${OPENSPACE_DATA}/scene/newhorizons/jupiter/jupiter/ProjectionsOfInterest",
|
||||
|
||||
@@ -25,11 +25,6 @@ return {
|
||||
Textures = {
|
||||
Type = "simple",
|
||||
Color = "textures/gray.jpg",
|
||||
},
|
||||
Atmosphere = {
|
||||
Type = "Nishita", -- for example, values missing etc etc
|
||||
MieFactor = 1.0,
|
||||
MieColor = {1.0, 1.0, 1.0}
|
||||
}
|
||||
},
|
||||
Ephemeris = {
|
||||
|
||||
@@ -25,11 +25,6 @@ return {
|
||||
Textures = {
|
||||
Type = "simple",
|
||||
Color = "textures/gray.jpg",
|
||||
},
|
||||
Atmosphere = {
|
||||
Type = "Nishita", -- for example, values missing etc etc
|
||||
MieFactor = 1.0,
|
||||
MieColor = {1.0, 1.0, 1.0}
|
||||
}
|
||||
},
|
||||
Ephemeris = {
|
||||
|
||||
@@ -25,11 +25,6 @@ return {
|
||||
Textures = {
|
||||
Type = "simple",
|
||||
Color = "textures/gray.jpg",
|
||||
},
|
||||
Atmosphere = {
|
||||
Type = "Nishita", -- for example, values missing etc etc
|
||||
MieFactor = 1.0,
|
||||
MieColor = {1.0, 1.0, 1.0}
|
||||
}
|
||||
},
|
||||
Ephemeris = {
|
||||
|
||||
@@ -50,7 +50,7 @@ return {
|
||||
Sequencing = "true"
|
||||
},
|
||||
Projection = {
|
||||
Sequence = "${OPENSPACE_DATA}/scene/newhorizons/pluto/pluto/full_images",
|
||||
Sequence = "${OPENSPACE_DATA}/scene/newhorizons/pluto/pluto/images",
|
||||
EventFile = "${OPENSPACE_DATA}/scene/newhorizons/pluto/pluto/assets/core_v9h_obs_getmets_v8_time_fix_nofrcd_mld.txt",
|
||||
SequenceType = "hybrid",
|
||||
Observer = "NEW HORIZONS",
|
||||
|
||||
@@ -25,11 +25,6 @@ return {
|
||||
Textures = {
|
||||
Type = "simple",
|
||||
Color = "textures/gray.jpg",
|
||||
},
|
||||
Atmosphere = {
|
||||
Type = "Nishita", -- for example, values missing etc etc
|
||||
MieFactor = 1.0,
|
||||
MieColor = {1.0, 1.0, 1.0}
|
||||
}
|
||||
},
|
||||
Ephemeris = {
|
||||
|
||||
@@ -216,24 +216,5 @@ return {
|
||||
Type = "Static",
|
||||
Position = {0, 0, 0, 1}
|
||||
},
|
||||
},
|
||||
-- NAVCAM FoV square
|
||||
{
|
||||
Name = "FovImagePlane",
|
||||
Parent = "Rosetta",
|
||||
Renderable = {
|
||||
Type = "RenderablePlaneProjection",
|
||||
Frame = "67P/C-G_CK",
|
||||
DefaultTarget = "CHURYUMOV-GERASIMENKO",
|
||||
Spacecraft = "ROSETTA",
|
||||
Instrument = "ROS_NAVCAM-A",
|
||||
Moving = true,
|
||||
Texture = "textures/squarefov.png",
|
||||
},
|
||||
Ephemeris = {
|
||||
Type = "Static",
|
||||
Position = {0, 0, 0, 1}
|
||||
},
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
42
data/scene/volumetricmilkyway.scene
Normal file
42
data/scene/volumetricmilkyway.scene
Normal file
@@ -0,0 +1,42 @@
|
||||
function preInitialization()
|
||||
--[[
|
||||
The scripts in this function are executed after the scene is loaded but before the
|
||||
scene elements have been initialized, thus they should be used to set the time at
|
||||
which the scene should start and other settings that might determine initialization
|
||||
critical objects.
|
||||
]]--
|
||||
|
||||
openspace.time.setTime(openspace.time.currentWallTime())
|
||||
dofile(openspace.absPath('${SCRIPTS}/bind_keys.lua'))
|
||||
end
|
||||
|
||||
function postInitialization()
|
||||
--[[
|
||||
The scripts in this function are executed after all objects in the scene have been
|
||||
created and initialized, but before the first render call. This is the place to set
|
||||
graphical settings for the renderables.
|
||||
]]--
|
||||
openspace.printInfo("Setting default values")
|
||||
openspace.setPropertyValue("Sun.renderable.enabled", false)
|
||||
openspace.setPropertyValue("SunMarker.renderable.enabled", true)
|
||||
-- openspace.setPropertyValue("EarthMarker.renderable.enabled", true)
|
||||
-- openspace.setPropertyValue("Constellation Bounds.renderable.enabled", false)
|
||||
|
||||
-- openspace.setPropertyValue("MilkyWay.renderable.transparency", 0.55)
|
||||
-- openspace.setPropertyValue("MilkyWay.renderable.segments", 50)
|
||||
|
||||
openspace.printInfo("Done setting default values")
|
||||
end
|
||||
|
||||
|
||||
return {
|
||||
ScenePath = ".",
|
||||
CommonFolder = "common",
|
||||
Camera = {
|
||||
Focus = "Volumetric Milky Way",
|
||||
Position = {1, 0, 0, 5},
|
||||
},
|
||||
Modules = {
|
||||
"volumetricmilkyway"
|
||||
}
|
||||
}
|
||||
BIN
data/scene/volumetricmilkyway/milkyway.torrent
Normal file
BIN
data/scene/volumetricmilkyway/milkyway.torrent
Normal file
Binary file not shown.
5
data/scene/volumetricmilkyway/volumetricmilkyway.data
Normal file
5
data/scene/volumetricmilkyway/volumetricmilkyway.data
Normal file
@@ -0,0 +1,5 @@
|
||||
return {
|
||||
TorrentFiles = {
|
||||
{ File = "milkyway.torrent", Destination = "." }
|
||||
}
|
||||
}
|
||||
26
data/scene/volumetricmilkyway/volumetricmilkyway.mod
Normal file
26
data/scene/volumetricmilkyway/volumetricmilkyway.mod
Normal file
@@ -0,0 +1,26 @@
|
||||
local kiloparsec = 3.086 * 10^19;
|
||||
|
||||
return {
|
||||
{
|
||||
Name = "Volumetric Milky Way",
|
||||
Parent = "Root",
|
||||
Ephemeris = {
|
||||
Type = "Static",
|
||||
Position = {0, 0, 0, 0}
|
||||
},
|
||||
Renderable = {
|
||||
Type = "RenderableGalaxy",
|
||||
Translation = {0, 0, 0},
|
||||
Volume = {
|
||||
Filename = "${OPENSPACE_DATA}/scene/volumetricmilkyway/milkyway/milkyway_512_512_64_RGBA32F.volume",
|
||||
Dimensions = {512, 512, 64},
|
||||
Size = {50 * kiloparsec, 50 * kiloparsec, 12.5 * kiloparsec},
|
||||
},
|
||||
Points = {
|
||||
Filename = "${OPENSPACE_DATA}/scene/volumetricmilkyway/milkyway/milkyway_points.binary",
|
||||
Scaling = {kiloparsec, kiloparsec, kiloparsec}
|
||||
}
|
||||
},
|
||||
GuiName = "/VolumetricMilkyWay"
|
||||
}
|
||||
}
|
||||
Submodule ext/ghoul updated: 5cde645215...027ce0d585
@@ -53,6 +53,10 @@ public:
|
||||
static const std::string KeyLuaDocumentationType;
|
||||
/// The key that stores the save location of the Lua documentation
|
||||
static const std::string KeyLuaDocumentationFile;
|
||||
/// The key that stores the type of scripting log that should be stored
|
||||
static const std::string KeyScriptLogType;
|
||||
/// The key that stores the save location of the scripting log
|
||||
static const std::string KeyScriptLogFile;
|
||||
/// The key that stores the type of Property documentation that should be stored
|
||||
static const std::string KeyPropertyDocumentationType;
|
||||
/// The key that stores the save location of the Property documentation
|
||||
|
||||
@@ -25,8 +25,6 @@
|
||||
#ifndef __DOWNLOADMANAGER_H__
|
||||
#define __DOWNLOADMANAGER_H__
|
||||
|
||||
#include <ghoul/designpattern/singleton.h>
|
||||
|
||||
#include <ghoul/filesystem/file.h>
|
||||
#include <ghoul/filesystem/directory.h>
|
||||
|
||||
@@ -39,7 +37,7 @@
|
||||
namespace openspace {
|
||||
|
||||
// Multithreaded
|
||||
class DownloadManager : public ghoul::Singleton<DownloadManager> {
|
||||
class DownloadManager {
|
||||
public:
|
||||
struct FileFuture {
|
||||
// Since the FileFuture object will be used from multiple threads, we have to be
|
||||
@@ -119,8 +117,6 @@ private:
|
||||
bool _useMultithreadedDownload;
|
||||
};
|
||||
|
||||
#define DlManager (openspace::DownloadManager::ref())
|
||||
|
||||
} // namespace openspace
|
||||
|
||||
#endif // __DOWNLOADMANAGER_H__
|
||||
|
||||
@@ -43,6 +43,7 @@ namespace fontrendering { class FontManager; }
|
||||
namespace openspace {
|
||||
|
||||
class ConfigurationManager;
|
||||
class DownloadManager;
|
||||
class LuaConsole;
|
||||
class NetworkEngine;
|
||||
class GUI;
|
||||
@@ -50,6 +51,7 @@ class RenderEngine;
|
||||
class SyncBuffer;
|
||||
class ModuleEngine;
|
||||
class WindowWrapper;
|
||||
class SettingsEngine;
|
||||
|
||||
namespace interaction { class InteractionHandler; }
|
||||
namespace gui { class GUI; }
|
||||
@@ -83,6 +85,7 @@ public:
|
||||
properties::PropertyOwner& globalPropertyOwner();
|
||||
WindowWrapper& windowWrapper();
|
||||
ghoul::fontrendering::FontManager& fontManager();
|
||||
DownloadManager& downloadManager();
|
||||
|
||||
#ifdef OPENSPACE_MODULE_ONSCREENGUI_ENABLED
|
||||
gui::GUI& gui();
|
||||
@@ -130,13 +133,15 @@ private:
|
||||
std::unique_ptr<ghoul::cmdparser::CommandlineParser> _commandlineParser;
|
||||
std::unique_ptr<LuaConsole> _console;
|
||||
std::unique_ptr<ModuleEngine> _moduleEngine;
|
||||
std::unique_ptr<SettingsEngine> _settingsEngine;
|
||||
std::unique_ptr<DownloadManager> _downloadManager;
|
||||
#ifdef OPENSPACE_MODULE_ONSCREENGUI_ENABLED
|
||||
std::unique_ptr<gui::GUI> _gui;
|
||||
#endif
|
||||
std::unique_ptr<network::ParallelConnection> _parallelConnection;
|
||||
std::unique_ptr<WindowWrapper> _windowWrapper;
|
||||
std::unique_ptr<ghoul::fontrendering::FontManager> _fontManager;
|
||||
|
||||
|
||||
// Others
|
||||
std::unique_ptr<properties::PropertyOwner> _globalPropertyNamespace;
|
||||
std::unique_ptr<SyncBuffer> _syncBuffer;
|
||||
|
||||
44
include/openspace/engine/settingsengine.h
Normal file
44
include/openspace/engine/settingsengine.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/*****************************************************************************************
|
||||
* *
|
||||
* OpenSpace *
|
||||
* *
|
||||
* Copyright (c) 2014-2016 *
|
||||
* *
|
||||
* 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 __SETTINGSENGINE_H__
|
||||
#define __SETTINGSENGINE_H__
|
||||
|
||||
#include <openspace/properties/propertyowner.h>
|
||||
#include <openspace/properties/scalarproperty.h>
|
||||
|
||||
namespace openspace {
|
||||
|
||||
class SettingsEngine : public properties::PropertyOwner {
|
||||
public:
|
||||
SettingsEngine();
|
||||
|
||||
private:
|
||||
properties::FloatProperty _eyeSeparation;
|
||||
};
|
||||
|
||||
} // namespace openspace
|
||||
|
||||
|
||||
#endif //#ifndef __SETTINGSENGINE_H__
|
||||
@@ -49,9 +49,13 @@ public:
|
||||
int currentNumberOfAaSamples() const override;
|
||||
|
||||
bool isRegularRendering() const override;
|
||||
bool hasGuiWindow() const override;
|
||||
bool isGuiWindow() const override;
|
||||
|
||||
glm::mat4 viewProjectionMatrix() const override;
|
||||
glm::mat4 modelMatrix() const override;
|
||||
void setNearFarClippingPlane(float near, float far) override;
|
||||
void setEyeSeparationDistance(float distance) override;
|
||||
|
||||
glm::ivec4 viewportPixelCoordinates() const override;
|
||||
|
||||
|
||||
@@ -125,12 +125,35 @@ public:
|
||||
*/
|
||||
virtual bool isRegularRendering() const;
|
||||
|
||||
/**
|
||||
* Returns <code>true</code> if there is a dedicated GUI window. In these cases, the
|
||||
* GUI elements will not be drawn on the non-GUI windows but only on the dedicated
|
||||
* windows.
|
||||
* \return Whether there are dedicated GUI windows
|
||||
*/
|
||||
virtual bool hasGuiWindow() const;
|
||||
|
||||
/**
|
||||
* Returns <code>true</code> if the current rendering window is a GUI-only window. In
|
||||
* these cases, the regular rendering is suppressed, but input is still possible in
|
||||
* the window
|
||||
* \return Whether the current rendering window is GUI-only
|
||||
*/
|
||||
virtual bool isGuiWindow() const;
|
||||
|
||||
/**
|
||||
* Returns the currently employed view-projection matrix. On default, this method will
|
||||
* return the identity matrix.
|
||||
* \return The currently employed view-projection matrix
|
||||
*/
|
||||
virtual glm::mat4 viewProjectionMatrix() const;
|
||||
|
||||
/**
|
||||
* Returns the currently employed model matrix. On default, this method will return
|
||||
* the identity matrix.
|
||||
* \return The currently employed model matrix
|
||||
*/
|
||||
virtual glm::mat4 modelMatrix() const;
|
||||
|
||||
/**
|
||||
* Sets the near and far clipping planes of the rendering window. This method defaults
|
||||
@@ -140,6 +163,12 @@ public:
|
||||
*/
|
||||
virtual void setNearFarClippingPlane(float near, float far);
|
||||
|
||||
/**
|
||||
* Sets the stereo eye separation distance for the render engine.
|
||||
* \param distance The distance between eyes for stereo rendering.
|
||||
*/
|
||||
virtual void setEyeSeparationDistance(float distance);
|
||||
|
||||
/**
|
||||
* Returns the location and size of the current viewport (<code>x</code>,
|
||||
* <code>width</code>, <code>y</code>, and <code>height</code>). If there is only a
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
|
||||
|
||||
#include <list>
|
||||
#include <modules/globebrowsing/globes/renderableglobe.h>
|
||||
|
||||
#include <mutex>
|
||||
|
||||
@@ -147,8 +148,6 @@ private:
|
||||
|
||||
#else // USE_OLD_INTERACTIONHANDLER
|
||||
|
||||
|
||||
|
||||
class InteractionHandler : public properties::PropertyOwner
|
||||
{
|
||||
public:
|
||||
@@ -158,14 +157,12 @@ public:
|
||||
// Mutators
|
||||
void setFocusNode(SceneGraphNode* node);
|
||||
void setCamera(Camera* camera);
|
||||
void resetCameraDirection();
|
||||
|
||||
// Interaction mode setters
|
||||
void setCameraStateFromDictionary(const ghoul::Dictionary& cameraDict);
|
||||
void setInteractionModeToOrbital();
|
||||
void setInteractionModeToGlobeBrowsing();
|
||||
void setInteractionFriction(double friction);
|
||||
void setInteractionSensitivity(double sensitivity);
|
||||
void setInteractionFollowScaleFactor(double scaleFactor);
|
||||
|
||||
void resetKeyBindings();
|
||||
|
||||
@@ -221,6 +218,13 @@ private:
|
||||
// Properties
|
||||
properties::StringProperty _origin;
|
||||
properties::StringProperty _coordinateSystem;
|
||||
|
||||
properties::FloatProperty _rotationalFriction;
|
||||
properties::FloatProperty _horizontalFriction;
|
||||
properties::FloatProperty _verticalFriction;
|
||||
|
||||
properties::FloatProperty _sensitivity;
|
||||
properties::FloatProperty _rapidness;
|
||||
};
|
||||
|
||||
#endif // USE_OLD_INTERACTIONHANDLER
|
||||
|
||||
@@ -116,7 +116,7 @@ protected:
|
||||
}
|
||||
void decelerate(double dt) {
|
||||
_currentValue = _currentValue + (- _currentValue) *
|
||||
min(_friction * dt, 1.0); // less or equal to 1.0 keeps it stable
|
||||
min(_scaleFactor * _friction * dt, 1.0); // less or equal to 1.0 keeps it stable
|
||||
}
|
||||
void setHard(T value) {
|
||||
_targetValue = value;
|
||||
@@ -184,7 +184,9 @@ public:
|
||||
*/
|
||||
MouseStates(double sensitivity, double velocityScaleFactor);
|
||||
void updateMouseStatesFromInput(const InputState& inputState, double deltaTime);
|
||||
void setFriction(double friction);
|
||||
void setRotationalFriction(double friction);
|
||||
void setHorizontalFriction(double friction);
|
||||
void setVerticalFriction(double friction);
|
||||
void setSensitivity(double sensitivity);
|
||||
void setVelocityScaleFactor(double scaleFactor);
|
||||
private:
|
||||
|
||||
@@ -47,8 +47,8 @@
|
||||
#ifndef WIN32_LEAN_AND_MEAN
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#endif
|
||||
#include <windows.h>
|
||||
#include <winsock2.h>
|
||||
#include <windows.h>
|
||||
#include <ws2tcpip.h>
|
||||
#endif
|
||||
|
||||
|
||||
@@ -25,8 +25,10 @@
|
||||
#ifndef __PERFORMANCEMANAGER_H__
|
||||
#define __PERFORMANCEMANAGER_H__
|
||||
|
||||
#include <chrono>
|
||||
#include <ghoul/misc/sharedmemory.h>
|
||||
|
||||
#include <map>
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
|
||||
namespace ghoul {
|
||||
@@ -58,7 +60,7 @@ private:
|
||||
|
||||
std::map<std::string, size_t> individualPerformanceLocations;
|
||||
|
||||
ghoul::SharedMemory* _performanceMemory;
|
||||
std::unique_ptr<ghoul::SharedMemory> _performanceMemory;
|
||||
};
|
||||
|
||||
} // namespace performance
|
||||
|
||||
@@ -48,9 +48,9 @@ namespace properties {
|
||||
template <> \
|
||||
TYPE PropertyDelegate<NumericalProperty<TYPE>>::defaultMaximumValue<TYPE>(); \
|
||||
\
|
||||
template <> \
|
||||
template <> \
|
||||
TYPE PropertyDelegate<NumericalProperty<TYPE>>::defaultSteppingValue<TYPE>(); \
|
||||
template <> \
|
||||
template <> \
|
||||
TYPE PropertyDelegate<NumericalProperty<TYPE>>::defaultSteppingValue<TYPE>(); \
|
||||
\
|
||||
template <> \
|
||||
template <> \
|
||||
@@ -133,12 +133,12 @@ namespace properties {
|
||||
return DEFAULT_MAX_VALUE; \
|
||||
} \
|
||||
\
|
||||
template <> \
|
||||
template <> \
|
||||
template <> \
|
||||
template <> \
|
||||
TYPE PropertyDelegate<NumericalProperty<TYPE>>::defaultSteppingValue<TYPE>() \
|
||||
{ \
|
||||
{ \
|
||||
return DEFAULT_STEPPING; \
|
||||
} \
|
||||
} \
|
||||
\
|
||||
template <> \
|
||||
template <> \
|
||||
@@ -283,16 +283,20 @@ template <typename T>
|
||||
bool NumericalProperty<T>::setLuaValue(lua_State* state)
|
||||
{
|
||||
bool success = false;
|
||||
T value = PropertyDelegate<NumericalProperty<T>>::template fromLuaValue<T>(state, success);
|
||||
T value = PropertyDelegate<NumericalProperty<T>>::template fromLuaValue<T>(
|
||||
state, success
|
||||
);
|
||||
if (success)
|
||||
TemplateProperty<T>::setValue(value);
|
||||
TemplateProperty<T>::setValue(std::move(value));
|
||||
return success;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
bool NumericalProperty<T>::getLuaValue(lua_State* state) const
|
||||
{
|
||||
bool success = PropertyDelegate<NumericalProperty<T>>::template toLuaValue<T>(state, TemplateProperty<T>::_value);
|
||||
bool success = PropertyDelegate<NumericalProperty<T>>::template toLuaValue<T>(
|
||||
state, TemplateProperty<T>::_value
|
||||
);
|
||||
return success;
|
||||
}
|
||||
|
||||
@@ -303,16 +307,20 @@ int NumericalProperty<T>::typeLua() const {
|
||||
|
||||
template <typename T>
|
||||
bool NumericalProperty<T>::getStringValue(std::string& value) const {
|
||||
bool success = PropertyDelegate<NumericalProperty<T>>::template toString<T>(value, TemplateProperty<T>::_value);
|
||||
bool success = PropertyDelegate<NumericalProperty<T>>::template toString<T>(
|
||||
value, TemplateProperty<T>::_value
|
||||
);
|
||||
return success;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
bool NumericalProperty<T>::setStringValue(std::string value) {
|
||||
bool success = false;
|
||||
T thisValue = PropertyDelegate<NumericalProperty<T>>::template fromString<T>(value, success);
|
||||
T thisValue = PropertyDelegate<NumericalProperty<T>>::template fromString<T>(
|
||||
value, success
|
||||
);
|
||||
if (success)
|
||||
TemplateProperty<T>::set(ghoul::any(thisValue));
|
||||
TemplateProperty<T>::set(ghoul::any(std::move(thisValue)));
|
||||
return success;
|
||||
}
|
||||
|
||||
|
||||
@@ -262,6 +262,12 @@ public:
|
||||
*/
|
||||
void setVisible(bool state);
|
||||
|
||||
/**
|
||||
* Returns whether this Property is visible or not.
|
||||
* \return Whether this Property is visible or hidden
|
||||
*/
|
||||
bool isVisible() const;
|
||||
|
||||
/**
|
||||
* This method determines if this Property should be read-only in external
|
||||
* applications. This setting is only a hint and does not need to be followed by GUI
|
||||
|
||||
@@ -82,7 +82,7 @@ public:
|
||||
* include Propertys owned by other sub-owners.
|
||||
* \return A list of all Propertys directly owned by this PropertyOwner
|
||||
*/
|
||||
const std::vector<Property*>& properties() const;
|
||||
std::vector<Property*> properties() const;
|
||||
|
||||
/**
|
||||
* Returns a list of all Propertys directly or indirectly owned by this PropertyOwner.
|
||||
@@ -123,7 +123,7 @@ public:
|
||||
* this PropertyOwner.
|
||||
* \return A list of all sub-owners this PropertyOwner has
|
||||
*/
|
||||
const std::vector<PropertyOwner*>& propertySubOwners() const;
|
||||
std::vector<PropertyOwner*> propertySubOwners() const;
|
||||
|
||||
/**
|
||||
* This method returns the direct sub-owner of this PropertyOwner with the provided
|
||||
@@ -160,7 +160,7 @@ public:
|
||||
* \return The human readable name for the Propertys identified by
|
||||
* <code>groupID</code>
|
||||
*/
|
||||
const std::string& propertyGroupName(const std::string& groupID) const;
|
||||
std::string propertyGroupName(const std::string& groupID) const;
|
||||
|
||||
/**
|
||||
* Assigns the Property <code>prop</code> to this PropertyOwner. This method will
|
||||
|
||||
@@ -32,7 +32,7 @@ namespace properties {
|
||||
|
||||
REGISTER_TEMPLATEPROPERTY_HEADER(BoolProperty, bool);
|
||||
REGISTER_NUMERICALPROPERTY_HEADER(CharProperty, char);
|
||||
REGISTER_NUMERICALPROPERTY_HEADER(WCharProperty, wchar_t);
|
||||
//REGISTER_NUMERICALPROPERTY_HEADER(WCharProperty, wchar_t);
|
||||
REGISTER_NUMERICALPROPERTY_HEADER(SignedCharProperty, signed char);
|
||||
REGISTER_NUMERICALPROPERTY_HEADER(UCharProperty, unsigned char);
|
||||
REGISTER_NUMERICALPROPERTY_HEADER(ShortProperty, short);
|
||||
|
||||
@@ -54,7 +54,7 @@ public:
|
||||
static Renderable* createFromDictionary(const ghoul::Dictionary& dictionary);
|
||||
|
||||
// constructors & destructor
|
||||
Renderable();
|
||||
Renderable();
|
||||
Renderable(const ghoul::Dictionary& dictionary);
|
||||
virtual ~Renderable();
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@ public:
|
||||
bool initializeGL();
|
||||
void postSynchronizationPreDraw();
|
||||
void preSynchronization();
|
||||
void render(const glm::mat4 &projectionMatrix, const glm::mat4 &viewMatrix);
|
||||
void render(const glm::mat4& projectionMatrix, const glm::mat4& viewMatrix, bool showGui);
|
||||
void postDraw();
|
||||
|
||||
void takeScreenshot();
|
||||
@@ -114,6 +114,7 @@ public:
|
||||
void unregisterScreenSpaceRenderable(std::shared_ptr<ScreenSpaceRenderable> s);
|
||||
void unregisterScreenSpaceRenderable(std::string name);
|
||||
std::shared_ptr<ScreenSpaceRenderable> screenSpaceRenderable(std::string name);
|
||||
std::vector<ScreenSpaceRenderable*> screenSpaceRenderables() const;
|
||||
|
||||
std::unique_ptr<ghoul::opengl::ProgramObject> buildRenderProgram(
|
||||
std::string name,
|
||||
|
||||
@@ -24,38 +24,33 @@
|
||||
|
||||
#ifndef __SCREENSPACERENDERABLE_H__
|
||||
#define __SCREENSPACERENDERABLE_H__
|
||||
#include <ghoul/opengl/programobject.h>
|
||||
#include <openspace/engine/wrapper/windowwrapper.h>
|
||||
#include <openspace/properties/propertyowner.h>
|
||||
#include <openspace/properties/vectorproperty.h>
|
||||
#include <openspace/properties/scalarproperty.h>
|
||||
#include <openspace/properties/stringproperty.h>
|
||||
#include <openspace/properties/triggerproperty.h>
|
||||
#include <ghoul/opengl/texture.h>
|
||||
#include <modules/onscreengui/include/gui.h>
|
||||
#include <openspace/rendering/renderengine.h>
|
||||
#include <openspace/engine/openspaceengine.h>
|
||||
#include <ghoul/opengl/textureunit.h>
|
||||
#include <openspace/util/camera.h>
|
||||
|
||||
#ifdef WIN32
|
||||
#define _USE_MATH_DEFINES
|
||||
#include <math.h>
|
||||
#endif
|
||||
#include <openspace/properties/propertyowner.h>
|
||||
|
||||
#include <openspace/properties/scalarproperty.h>
|
||||
#include <openspace/properties/triggerproperty.h>
|
||||
#include <openspace/properties/vectorproperty.h>
|
||||
|
||||
#include <ghoul/opengl/programobject.h>
|
||||
#include <ghoul/opengl/texture.h>
|
||||
#include <ghoul/opengl/textureunit.h>
|
||||
|
||||
namespace openspace {
|
||||
|
||||
/**
|
||||
* @brief The base class for screen scape images and screen space framebuffers
|
||||
* @details This base class handles general functionality specific to planes that
|
||||
* are rendered infront of the camera. It implements protected methods and properties for converting
|
||||
* the planes from spherical to euclidean coordinates and back. It also specifies the interface
|
||||
* that it's children needs to implement.
|
||||
* The base class for screen space images and screen space framebuffers.
|
||||
* This base class handles general functionality specific to planes that are rendered in
|
||||
* front of the camera. It implements protected methods and properties for converting
|
||||
* the planes from Spherical to Euclidean coordinates and back. It also specifies the
|
||||
* interface that its children need to implement.
|
||||
*/
|
||||
class ScreenSpaceRenderable : public properties::PropertyOwner {
|
||||
public:
|
||||
static ScreenSpaceRenderable* createFromDictionary(const ghoul::Dictionary& dictionary);
|
||||
static ScreenSpaceRenderable* createFromDictionary(
|
||||
const ghoul::Dictionary& dictionary);
|
||||
|
||||
ScreenSpaceRenderable(const ghoul::Dictionary& dictionary);
|
||||
~ScreenSpaceRenderable();
|
||||
virtual ~ScreenSpaceRenderable();
|
||||
|
||||
virtual void render() = 0;
|
||||
virtual bool initialize() = 0;
|
||||
@@ -64,33 +59,29 @@ public:
|
||||
virtual bool isReady() const = 0;
|
||||
bool isEnabled() const;
|
||||
|
||||
glm::vec2 euclideanPosition() const {return _euclideanPosition.value();};
|
||||
glm::vec2 sphericalPosition() const {return _sphericalPosition.value();};
|
||||
float depth() const {return _depth.value();};
|
||||
glm::vec3 euclideanPosition() const;
|
||||
glm::vec3 sphericalPosition() const;
|
||||
float depth() const;
|
||||
|
||||
protected:
|
||||
void createPlane();
|
||||
void useEuclideanCoordinates(bool b);
|
||||
|
||||
/**
|
||||
* @brief Converts vec2 polar coordinates to euclidean
|
||||
*
|
||||
* @param polar the coordinates theta and phi
|
||||
* @param radius the radius position value of the plane
|
||||
*
|
||||
* @return glm::vec2 with the x and y position value of the plane
|
||||
* Converts Spherical coordinates to Euclidean.
|
||||
* \param spherical The coordinates theta and phi
|
||||
* \param radius The radius position value of the plane
|
||||
* \return The x and y position value of the plane
|
||||
*/
|
||||
glm::vec2 toEuclidean(glm::vec2 polar, float radius);
|
||||
glm::vec2 toEuclidean(const glm::vec2& spherical, float radius);
|
||||
|
||||
/**
|
||||
* @brief Converts vec2 euclidean coordinates to sperical
|
||||
*
|
||||
* @param euclidean the coordinates x and y
|
||||
* @return glm::vec2 with the spherical coordinates theta and phi.
|
||||
* Converts Euclidean coordinates to Spherical.
|
||||
* \param euclidean The coordinates x and y
|
||||
* \return The spherical coordinates theta and phi.
|
||||
*/
|
||||
glm::vec2 toSpherical(glm::vec2 euclidean);
|
||||
void registerProperties();
|
||||
void unregisterProperties();
|
||||
glm::vec2 toSpherical(const glm::vec2& euclidean);
|
||||
|
||||
|
||||
void createShaders();
|
||||
glm::mat4 scaleMatrix();
|
||||
@@ -109,18 +100,15 @@ protected:
|
||||
|
||||
GLuint _quad;
|
||||
GLuint _vertexPositionBuffer;
|
||||
const std::string _rendererPath;
|
||||
ghoul::Dictionary _rendererData;
|
||||
const std::string _vertexPath;
|
||||
const std::string _fragmentPath;
|
||||
std::unique_ptr<ghoul::opengl::Texture> _texture;
|
||||
std::unique_ptr<ghoul::opengl::ProgramObject> _shader;
|
||||
|
||||
bool _useEuclideanCoordinates;
|
||||
const float _planeDepth = -2.0;
|
||||
glm::vec2 _originalViewportSize;
|
||||
|
||||
float _radius;
|
||||
};
|
||||
|
||||
} // namespace openspace
|
||||
#endif // __SCREENSPACERENDERABLE_H__
|
||||
|
||||
#endif // __SCREENSPACERENDERABLE_H__
|
||||
|
||||
@@ -102,6 +102,8 @@ public:
|
||||
|
||||
bool writeDocumentation(const std::string& filename, const std::string& type) const;
|
||||
|
||||
bool writeLog(const std::string& script);
|
||||
|
||||
void serialize(SyncBuffer* syncBuffer);
|
||||
|
||||
void deserialize(SyncBuffer* syncBuffer);
|
||||
@@ -111,7 +113,9 @@ public:
|
||||
void preSynchronization();
|
||||
|
||||
void queueScript(const std::string &script);
|
||||
|
||||
|
||||
void setLogFile(const std::string& filename, const std::string& type);
|
||||
|
||||
std::vector<std::string> cachedScripts();
|
||||
|
||||
std::vector<std::string> allLuaFunctions() const;
|
||||
@@ -122,6 +126,7 @@ public:
|
||||
void cacheScript(const std::string &library, const std::string &function, const std::string &script);
|
||||
|
||||
private:
|
||||
|
||||
bool registerLuaLibrary(lua_State* state, const LuaLibrary& library);
|
||||
void addLibraryFunctions(lua_State* state, const LuaLibrary& library, bool replace);
|
||||
|
||||
@@ -142,6 +147,14 @@ private:
|
||||
//parallel variables
|
||||
std::map<std::string, std::map<std::string, std::string>> _cachedScripts;
|
||||
std::mutex _cachedScriptsMutex;
|
||||
|
||||
//logging variables
|
||||
bool _logFileExists = false;
|
||||
bool _logScripts = true;
|
||||
std::string _logType;
|
||||
std::string _logFilename;
|
||||
|
||||
|
||||
};
|
||||
|
||||
} // namespace scripting
|
||||
|
||||
@@ -38,9 +38,9 @@
|
||||
#include <glm/gtc/type_ptr.hpp>
|
||||
#include <glm/gtc/quaternion.hpp>
|
||||
|
||||
#include <iostream>
|
||||
|
||||
namespace openspace {
|
||||
class SyncBuffer;
|
||||
|
||||
/**
|
||||
This class still needs some more love. Suggested improvements:
|
||||
- Remove psc from the camera class interface.
|
||||
|
||||
@@ -71,7 +71,7 @@ public:
|
||||
float equalize (float);
|
||||
float entropy();
|
||||
|
||||
float highestBinValue(bool equalized);
|
||||
float highestBinValue(bool equalized, int overBins=0);
|
||||
float binWidth();
|
||||
|
||||
void changeRange(float minValue, float maxValue);
|
||||
|
||||
@@ -68,6 +68,8 @@ enum class KeyAction : int {
|
||||
Repeat = 2
|
||||
};
|
||||
|
||||
bool hasKeyAction(KeyAction lhs, KeyAction rhs);
|
||||
|
||||
KeyAction operator|(KeyAction lhs, KeyAction rhs);
|
||||
KeyAction operator|=(KeyAction& lhs, KeyAction rhs);
|
||||
|
||||
@@ -79,6 +81,8 @@ enum class KeyModifier : int {
|
||||
Super = 0x0008
|
||||
};
|
||||
|
||||
bool hasKeyModifier(KeyModifier lhs, KeyModifier rhs);
|
||||
|
||||
KeyModifier operator|(KeyModifier lhs, KeyModifier rhs);
|
||||
KeyModifier operator|=(KeyModifier& lhs, KeyModifier rhs);
|
||||
|
||||
|
||||
@@ -42,9 +42,9 @@ public:
|
||||
PowerScaledScalar(float f1, float f2);
|
||||
static PowerScaledScalar CreatePSS(double d1);
|
||||
|
||||
const glm::vec2& vec2() const;
|
||||
float lengthf() const;
|
||||
double lengthd() const;
|
||||
const glm::vec2& vec2() const;
|
||||
float lengthf() const;
|
||||
double lengthd() const;
|
||||
|
||||
|
||||
// operator overloading
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
|
||||
#include <vector>
|
||||
#include <ghoul/opengl/ghoul_gl.h>
|
||||
|
||||
#include <sgct.h>
|
||||
#include <stdint.h>
|
||||
|
||||
|
||||
@@ -50,6 +50,8 @@ public:
|
||||
glm::dmat3 frameTransformationMatrix(std::string from, std::string to, double ephemerisTime) const;
|
||||
|
||||
private:
|
||||
glm::dmat3 kameleonTransformationMatrix(std::string from, std::string to, double ephemerisTime) const;
|
||||
|
||||
#ifdef OPENSPACE_MODULE_KAMELEON_ENABLED
|
||||
std::shared_ptr<ccmc::Kameleon> _kameleon;
|
||||
#endif
|
||||
|
||||
@@ -89,8 +89,8 @@ set(SHADER_FILES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/shaders/star_fs.glsl
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/shaders/star_ge.glsl
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/shaders/star_vs.glsl
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/shaders/screnspace_fs.glsl
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/shaders/screnspace_vs.glsl
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/shaders/screenspace_fs.glsl
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/shaders/screenspace_vs.glsl
|
||||
)
|
||||
source_group("Shader Files" FILES ${SHADER_FILES})
|
||||
|
||||
|
||||
@@ -196,7 +196,7 @@ void RenderablePlane::render(const RenderData& data) {
|
||||
SceneGraphNode* textureNode = OsEng.renderEngine().scene()->sceneGraphNode(_nodeName)->parent();
|
||||
if (textureNode != nullptr){
|
||||
RenderablePlanetProjection* t = static_cast<RenderablePlanetProjection*>(textureNode->renderable());
|
||||
_texture = std::unique_ptr<ghoul::opengl::Texture>(t->baseTexture());
|
||||
_texture = std::unique_ptr<ghoul::opengl::Texture>(&(t->baseTexture()));
|
||||
float h = _texture->height();
|
||||
float w = _texture->width();
|
||||
float scale = h / w;
|
||||
|
||||
@@ -21,15 +21,16 @@
|
||||
* 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/screenspaceframebuffer.h>
|
||||
#include <openspace/engine/openspaceengine.h>
|
||||
#include <openspace/rendering/renderengine.h>
|
||||
#include <modules/onscreengui/include/gui.h>
|
||||
#include <openspace/util/camera.h>
|
||||
|
||||
#include <openspace/rendering/renderer.h>
|
||||
#include <openspace/rendering/abufferrenderer.h>
|
||||
#include <openspace/rendering/framebufferrenderer.h>
|
||||
#include <openspace/engine/wrapper/windowwrapper.h>
|
||||
|
||||
namespace openspace {
|
||||
ScreenSpaceFramebuffer::ScreenSpaceFramebuffer(const ghoul::Dictionary& dictionary)
|
||||
@@ -39,11 +40,9 @@ ScreenSpaceFramebuffer::ScreenSpaceFramebuffer(const ghoul::Dictionary& dictiona
|
||||
{
|
||||
_id = id();
|
||||
setName("ScreenSpaceFramebuffer" + std::to_string(_id));
|
||||
registerProperties();
|
||||
|
||||
glm::vec2 resolution = OsEng.windowWrapper().currentWindowResolution();
|
||||
addProperty(_size);
|
||||
OsEng.gui()._screenSpaceProperty.registerProperty(&_size);
|
||||
_size.set(glm::vec4(0, 0, resolution.x,resolution.y));
|
||||
|
||||
_scale.setValue(1.0f);
|
||||
@@ -62,8 +61,6 @@ bool ScreenSpaceFramebuffer::initialize(){
|
||||
}
|
||||
|
||||
bool ScreenSpaceFramebuffer::deinitialize(){
|
||||
unregisterProperties();
|
||||
|
||||
glDeleteVertexArrays(1, &_quad);
|
||||
_quad = 0;
|
||||
|
||||
|
||||
@@ -1,74 +1,76 @@
|
||||
/*****************************************************************************************
|
||||
* *
|
||||
* OpenSpace *
|
||||
* *
|
||||
* Copyright (c) 2014-2016 *
|
||||
* *
|
||||
* 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. *
|
||||
****************************************************************************************/
|
||||
* *
|
||||
* OpenSpace *
|
||||
* *
|
||||
* Copyright (c) 2014-2016 *
|
||||
* *
|
||||
* 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/screenspaceimage.h>
|
||||
|
||||
#include <openspace/engine/openspaceengine.h>
|
||||
#include <openspace/engine/wrapper/windowwrapper.h>
|
||||
#include <openspace/rendering/renderengine.h>
|
||||
|
||||
#include <ghoul/io/texture/texturereader.h>
|
||||
#include <ghoul/filesystem/filesystem>
|
||||
|
||||
namespace {
|
||||
const std::string _loggerCat = "ScreenSpaceImage";
|
||||
|
||||
const std::string KeyName = "Name";
|
||||
const std::string KeyTexturePath = "TexturePath";
|
||||
const std::string KeyUrl = "URL";
|
||||
}
|
||||
|
||||
namespace openspace {
|
||||
|
||||
ScreenSpaceImage::ScreenSpaceImage(const ghoul::Dictionary& dictionary)
|
||||
:ScreenSpaceRenderable(dictionary)
|
||||
,_texturePath("texturePath", "Texture path", "")
|
||||
,_downloadImage(false)
|
||||
: ScreenSpaceRenderable(dictionary)
|
||||
, _texturePath("texturePath", "Texture path", "")
|
||||
, _downloadImage(false)
|
||||
{
|
||||
std::string name;
|
||||
if(dictionary.getValue("Name", name)){
|
||||
if (dictionary.getValue(KeyName, name)) {
|
||||
setName(name);
|
||||
}else{
|
||||
_id = id();
|
||||
setName("ScreenSpaceImage" + std::to_string(_id));
|
||||
} else {
|
||||
static int id = 0;
|
||||
setName("ScreenSpaceImage " + std::to_string(id));
|
||||
++id;
|
||||
}
|
||||
|
||||
addProperty(_texturePath);
|
||||
registerProperties();
|
||||
|
||||
std::string texturePath;
|
||||
bool texturesucces = (dictionary.getValue("TexturePath", texturePath));
|
||||
if(texturesucces){
|
||||
_texturePath.set(texturePath);
|
||||
OsEng.gui()._screenSpaceProperty.registerProperty(&_texturePath);
|
||||
if (dictionary.getValue(KeyTexturePath, texturePath)) {
|
||||
_texturePath = texturePath;
|
||||
_texturePath.onChange([this](){ loadTexture(); });
|
||||
}
|
||||
|
||||
bool urlsucces = dictionary.getValue("URL", _url);
|
||||
if(urlsucces){
|
||||
_downloadImage =true;
|
||||
if (dictionary.getValue(KeyUrl, _url)) {
|
||||
_downloadImage = true;
|
||||
}
|
||||
|
||||
//screenspaceCygnet does not have url or texturePath
|
||||
// if(!texturesucces && !urlsucces){
|
||||
// LERROR("Must specify TexturePath or URL");
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
ScreenSpaceImage::~ScreenSpaceImage(){}
|
||||
ScreenSpaceImage::~ScreenSpaceImage() {}
|
||||
|
||||
bool ScreenSpaceImage::initialize(){
|
||||
bool ScreenSpaceImage::initialize() {
|
||||
_originalViewportSize = OsEng.windowWrapper().currentWindowResolution();
|
||||
|
||||
createPlane();
|
||||
@@ -78,8 +80,7 @@ bool ScreenSpaceImage::initialize(){
|
||||
return isReady();
|
||||
}
|
||||
|
||||
bool ScreenSpaceImage::deinitialize(){
|
||||
unregisterProperties();
|
||||
bool ScreenSpaceImage::deinitialize() {
|
||||
|
||||
glDeleteVertexArrays(1, &_quad);
|
||||
_quad = 0;
|
||||
@@ -90,47 +91,32 @@ bool ScreenSpaceImage::deinitialize(){
|
||||
_texturePath = "";
|
||||
_texture = nullptr;
|
||||
|
||||
RenderEngine& renderEngine = OsEng.renderEngine();
|
||||
if (_shader) {
|
||||
renderEngine.removeRenderProgram(_shader);
|
||||
OsEng.renderEngine().removeRenderProgram(_shader);
|
||||
_shader = nullptr;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void ScreenSpaceImage::render(){
|
||||
if(!isReady()) return;
|
||||
if(!_enabled) return;
|
||||
|
||||
glm::mat4 rotation = rotationMatrix();
|
||||
glm::mat4 translation = translationMatrix();
|
||||
glm::mat4 scale = scaleMatrix();
|
||||
glm::mat4 modelTransform = rotation*translation*scale;
|
||||
|
||||
draw(modelTransform);
|
||||
void ScreenSpaceImage::render() {
|
||||
draw(rotationMatrix() * translationMatrix() * scaleMatrix());
|
||||
}
|
||||
|
||||
|
||||
void ScreenSpaceImage::update(){
|
||||
if(_downloadImage && _futureImage.valid() && DownloadManager::futureReady(_futureImage)){
|
||||
void ScreenSpaceImage::update() {
|
||||
bool futureReady = DownloadManager::futureReady(_futureImage);
|
||||
if (_downloadImage && _futureImage.valid() && futureReady) {
|
||||
loadTexture();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool ScreenSpaceImage::isReady() const{
|
||||
bool ready = true;
|
||||
if (!_shader)
|
||||
ready &= false;
|
||||
if(!_texture)
|
||||
ready &= false;
|
||||
return ready;
|
||||
bool ScreenSpaceImage::isReady() const {
|
||||
return _shader && _texture;
|
||||
}
|
||||
|
||||
void ScreenSpaceImage::loadTexture() {
|
||||
std::unique_ptr<ghoul::opengl::Texture> texture = nullptr;
|
||||
if(!_downloadImage)
|
||||
if (!_downloadImage)
|
||||
texture = std::move(loadFromDisk());
|
||||
else
|
||||
texture = std::move(loadFromMemory());
|
||||
@@ -146,56 +132,54 @@ void ScreenSpaceImage::loadTexture() {
|
||||
}
|
||||
}
|
||||
|
||||
void ScreenSpaceImage::updateTexture(){
|
||||
if(!_downloadImage){
|
||||
void ScreenSpaceImage::updateTexture() {
|
||||
if (!_downloadImage) {
|
||||
loadTexture();
|
||||
} else {
|
||||
if(_futureImage.valid())
|
||||
if (_futureImage.valid())
|
||||
return;
|
||||
|
||||
std::future<DownloadManager::MemoryFile> future = downloadImageToMemory(_url);
|
||||
if(future.valid()){
|
||||
if (future.valid()) {
|
||||
_futureImage = std::move(future);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
std::unique_ptr<ghoul::opengl::Texture> ScreenSpaceImage::loadFromDisk(){
|
||||
std::unique_ptr<ghoul::opengl::Texture> ScreenSpaceImage::loadFromDisk() {
|
||||
if (_texturePath.value() != "")
|
||||
return (ghoul::io::TextureReader::ref().loadTexture(absPath(_texturePath.value())));
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
std::unique_ptr<ghoul::opengl::Texture> ScreenSpaceImage::loadFromMemory(){
|
||||
|
||||
if(_futureImage.valid() && DownloadManager::futureReady(_futureImage) ){
|
||||
std::unique_ptr<ghoul::opengl::Texture> ScreenSpaceImage::loadFromMemory() {
|
||||
if (_futureImage.valid() && DownloadManager::futureReady(_futureImage)) {
|
||||
DownloadManager::MemoryFile imageFile = _futureImage.get();
|
||||
|
||||
if(imageFile.corrupted)
|
||||
if (imageFile.corrupted)
|
||||
return nullptr;
|
||||
|
||||
return (ghoul::io::TextureReader::ref().loadTexture(
|
||||
(void*) imageFile.buffer,
|
||||
reinterpret_cast<void*>(imageFile.buffer),
|
||||
imageFile.size,
|
||||
imageFile.format));
|
||||
imageFile.format)
|
||||
);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
std::future<DownloadManager::MemoryFile> ScreenSpaceImage::downloadImageToMemory(std::string url){
|
||||
return std::move( DlManager.fetchFile(
|
||||
url,
|
||||
[url](const DownloadManager::MemoryFile& file){
|
||||
LDEBUG("Download to memory finished for screen space image");
|
||||
},
|
||||
[url](const std::string& err){
|
||||
LDEBUG("Download to memory failer for screen space image: " +err);
|
||||
}
|
||||
) );
|
||||
std::future<DownloadManager::MemoryFile> ScreenSpaceImage::downloadImageToMemory(
|
||||
std::string url)
|
||||
{
|
||||
return std::move(OsEng.downloadManager().fetchFile(
|
||||
url,
|
||||
[url](const DownloadManager::MemoryFile& file) {
|
||||
LDEBUG("Download to memory finished for screen space image");
|
||||
},
|
||||
[url](const std::string& err) {
|
||||
LDEBUG("Download to memory failer for screen space image: " +err);
|
||||
}
|
||||
));
|
||||
}
|
||||
|
||||
int ScreenSpaceImage::id(){
|
||||
static int id = 0;
|
||||
return id++;
|
||||
}
|
||||
}
|
||||
} // namespace openspace
|
||||
|
||||
@@ -21,55 +21,46 @@
|
||||
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE *
|
||||
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
|
||||
****************************************************************************************/
|
||||
|
||||
#ifndef __SCREENSPACEIMAGE_H__
|
||||
#define __SCREENSPACEIMAGE_H__
|
||||
|
||||
#include <openspace/rendering/screenspacerenderable.h>
|
||||
#include <ghoul/opengl/texture.h>
|
||||
#include <openspace/engine/downloadmanager.h>
|
||||
|
||||
#include <openspace/engine/downloadmanager.h>
|
||||
#include <openspace/properties/stringproperty.h>
|
||||
|
||||
#include <ghoul/opengl/texture.h>
|
||||
|
||||
namespace openspace {
|
||||
/**
|
||||
* @brief Creates a textured plane rendered in screenspace
|
||||
* @details The plane gets the same ratio as the texture. Implements
|
||||
* the interface that ScreenSpaceImage speciefies.
|
||||
*
|
||||
* @param texturePath Path to the image that should be used as texture
|
||||
*/
|
||||
class ScreenSpaceImage : public ScreenSpaceRenderable {
|
||||
|
||||
class ScreenSpaceImage : public ScreenSpaceRenderable {
|
||||
public:
|
||||
ScreenSpaceImage(std::string texturePath);
|
||||
ScreenSpaceImage(const ghoul::Dictionary& dictionary);
|
||||
~ScreenSpaceImage();
|
||||
|
||||
bool initialize() override;
|
||||
bool deinitialize() override;
|
||||
void render() override;
|
||||
virtual void update() override;
|
||||
void update() override;
|
||||
bool isReady() const override;
|
||||
|
||||
protected:
|
||||
void loadTexture();
|
||||
void updateTexture();
|
||||
|
||||
std::string _url;
|
||||
bool _downloadImage;
|
||||
std::future<DownloadManager::MemoryFile> _futureImage;
|
||||
|
||||
void loadTexture();
|
||||
void updateTexture();
|
||||
private:
|
||||
|
||||
static int id();
|
||||
std::future<DownloadManager::MemoryFile> downloadImageToMemory(std::string url);
|
||||
std::unique_ptr<ghoul::opengl::Texture> loadFromDisk();
|
||||
std::unique_ptr<ghoul::opengl::Texture> loadFromMemory();
|
||||
|
||||
properties::StringProperty _texturePath;
|
||||
//std::string _memorybuffer;
|
||||
|
||||
|
||||
int _id;
|
||||
};
|
||||
|
||||
} //namespace openspace
|
||||
#endif //__SCREENSPACEIMAGE_H__
|
||||
|
||||
#endif //__SCREENSPACEIMAGE_H__
|
||||
|
||||
@@ -39,7 +39,7 @@ Fragment getFragment(){
|
||||
|
||||
// power scale coordinates for depth. w value is set to 1.0.
|
||||
float depth = (1.0 + log(abs(OcclusionDepth) + 1/pow(k, 1.0))/log(k)) / 27.0;
|
||||
frag.color = texture(texture1, vec2(vs_st.s, 1-vs_st.t));
|
||||
frag.color = texture(texture1, vec2(vs_st.s, vs_st.t));
|
||||
frag.color.a = (frag.color.a != 0.0f) ? Alpha : frag.color.a;
|
||||
if(frag.color.a == 0.0f){
|
||||
discard;
|
||||
@@ -41,33 +41,37 @@ namespace {
|
||||
|
||||
namespace openspace {
|
||||
|
||||
std::shared_ptr<DebugRenderer> DebugRenderer::_reference = nullptr;
|
||||
|
||||
DebugRenderer* DebugRenderer::_reference = nullptr;
|
||||
|
||||
DebugRenderer::DebugRenderer() {
|
||||
_programObject = std::shared_ptr<ProgramObject>(OsEng.renderEngine().buildRenderProgram(
|
||||
_programObject = OsEng.renderEngine().buildRenderProgram(
|
||||
"BasicDebugShader",
|
||||
"${MODULE_DEBUGGING}/rendering/debugshader_vs.glsl",
|
||||
"${MODULE_DEBUGGING}/rendering/debugshader_fs.glsl"
|
||||
));
|
||||
);
|
||||
}
|
||||
|
||||
DebugRenderer::DebugRenderer(std::shared_ptr<ProgramObject> programObject)
|
||||
: _programObject(programObject)
|
||||
DebugRenderer::DebugRenderer(std::unique_ptr<ProgramObject> programObject)
|
||||
: _programObject(std::move(programObject))
|
||||
{
|
||||
// nothing to do
|
||||
}
|
||||
|
||||
std::shared_ptr<DebugRenderer> DebugRenderer::ref() {
|
||||
DebugRenderer::~DebugRenderer()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
const DebugRenderer& DebugRenderer::ref() {
|
||||
if (_reference == nullptr) {
|
||||
try {
|
||||
_reference = std::make_shared<DebugRenderer>();
|
||||
_reference = new DebugRenderer();
|
||||
}
|
||||
catch (const ShaderObject::ShaderCompileError& e) {
|
||||
LERROR(e.what());
|
||||
}
|
||||
}
|
||||
return _reference;
|
||||
return *_reference;
|
||||
}
|
||||
|
||||
void DebugRenderer::renderVertices(const Vertices& clippingSpacePoints, GLenum mode, RGBA rgba) const {
|
||||
@@ -163,17 +167,17 @@ namespace openspace {
|
||||
lineVertices.push_back(V[1]); lineVertices.push_back(V[3]);
|
||||
lineVertices.push_back(V[4]); lineVertices.push_back(V[6]);
|
||||
lineVertices.push_back(V[5]); lineVertices.push_back(V[7]);
|
||||
DebugRenderer::ref()->renderVertices(lineVertices, GL_LINES, rgba);
|
||||
DebugRenderer::ref().renderVertices(lineVertices, GL_LINES, rgba);
|
||||
}
|
||||
|
||||
void DebugRenderer::renderNiceBox(const Vertices& clippingSpaceBoxCorners, RGBA rgba) const {
|
||||
renderBoxFaces(clippingSpaceBoxCorners, rgba);
|
||||
|
||||
glLineWidth(4.0f);
|
||||
DebugRenderer::ref()->renderBoxEdges(clippingSpaceBoxCorners, rgba);
|
||||
DebugRenderer::ref().renderBoxEdges(clippingSpaceBoxCorners, rgba);
|
||||
|
||||
glPointSize(10.0f);
|
||||
DebugRenderer::ref()->renderVertices(clippingSpaceBoxCorners, GL_POINTS, rgba);
|
||||
DebugRenderer::ref().renderVertices(clippingSpaceBoxCorners, GL_POINTS, rgba);
|
||||
}
|
||||
|
||||
void DebugRenderer::renderCameraFrustum(const RenderData& data, const Camera& otherCamera, RGBA rgba) const {
|
||||
|
||||
@@ -43,7 +43,6 @@
|
||||
namespace openspace {
|
||||
using namespace ghoul::opengl;
|
||||
|
||||
|
||||
/**
|
||||
A helper class for quick rendering of vertices IN clipping space.
|
||||
|
||||
@@ -54,11 +53,9 @@ namespace openspace {
|
||||
*/
|
||||
class DebugRenderer {
|
||||
public:
|
||||
|
||||
typedef std::vector<glm::vec4> Vertices;
|
||||
typedef glm::vec4 RGBA;
|
||||
|
||||
|
||||
/**
|
||||
* Consider using ref() before creating a new default instance!
|
||||
*/
|
||||
@@ -67,15 +64,13 @@ namespace openspace {
|
||||
/**
|
||||
* Instantiate a new DebugRenderer with a custom shader program
|
||||
*/
|
||||
DebugRenderer(std::shared_ptr<ProgramObject> programObject);
|
||||
DebugRenderer(std::unique_ptr<ProgramObject> programObject);
|
||||
~DebugRenderer();
|
||||
|
||||
/**
|
||||
* Access the static reference
|
||||
*/
|
||||
static std::shared_ptr<DebugRenderer> ref();
|
||||
|
||||
|
||||
|
||||
static const DebugRenderer& ref();
|
||||
|
||||
/**
|
||||
* Render the vector of clipping space points in the specified mode and color.
|
||||
@@ -127,8 +122,6 @@ namespace openspace {
|
||||
*/
|
||||
void renderNiceBox(const Vertices& clippingSpaceBoxCorners, RGBA rgba = { 1, 0, 0, 0.3 }) const;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Input arguments:
|
||||
* 1. const RenderData& data: defines position and camera that we will see the
|
||||
@@ -143,7 +136,6 @@ namespace openspace {
|
||||
*/
|
||||
void renderAABB2(const AABB2& screenSpaceAABB, RGBA rgba = { 1, 1, 1, 0.3 }) const;
|
||||
|
||||
|
||||
/**
|
||||
* Takes a AABB3 in screen space and returns vertices representing the corner points
|
||||
* of the AABB. The ordering of the corner points is compatible with the box rendering
|
||||
@@ -151,17 +143,13 @@ namespace openspace {
|
||||
*/
|
||||
const Vertices verticesFor(const AABB3& screenSpaceAABB) const;
|
||||
|
||||
|
||||
protected:
|
||||
std::unique_ptr<ProgramObject> _programObject;
|
||||
|
||||
std::shared_ptr<ProgramObject> _programObject;
|
||||
static std::shared_ptr<DebugRenderer> _reference;
|
||||
// A raw pointer for the reason that it should not be deleted by the static
|
||||
// destructor and the normal destructor. This class has ownership
|
||||
static DebugRenderer* _reference;
|
||||
};
|
||||
|
||||
|
||||
} // namespace openspace
|
||||
|
||||
|
||||
|
||||
#endif // __DEBUG_RENDERER_H__
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
set (DEFAULT_MODULE ON)
|
||||
set (OPENSPACE_DEPENDENCIES
|
||||
volume
|
||||
)
|
||||
@@ -25,6 +25,8 @@
|
||||
#ifndef __GALAXYRAYCASTER_H__
|
||||
#define __GALAXYRAYCASTER_H__
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include <ghoul/glm.h>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
@@ -138,13 +138,28 @@ create_new_module(
|
||||
${HEADER_FILES} ${SOURCE_FILES} ${SHADER_FILES}
|
||||
)
|
||||
|
||||
target_include_directories(
|
||||
openspace-module-globebrowsing
|
||||
SYSTEM PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/ext/gdal/include
|
||||
)
|
||||
if (WIN32)
|
||||
target_include_directories(
|
||||
openspace-module-globebrowsing
|
||||
SYSTEM PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/ext/gdal/include
|
||||
)
|
||||
|
||||
target_link_libraries(
|
||||
openspace-module-globebrowsing
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/ext/gdal/lib/gdal_i.lib
|
||||
)
|
||||
target_link_libraries(
|
||||
openspace-module-globebrowsing
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/ext/gdal/lib/gdal_i.lib
|
||||
)
|
||||
else (WIN32)
|
||||
find_package(GDAL REQUIRED)
|
||||
|
||||
target_include_directories(
|
||||
openspace-module-globebrowsing
|
||||
SYSTEM PUBLIC
|
||||
${GDAL_INCLUDE}
|
||||
)
|
||||
|
||||
target_link_libraries(
|
||||
openspace-module-globebrowsing
|
||||
${GDAL_LIBRARY}
|
||||
)
|
||||
endif ()
|
||||
|
||||
@@ -202,7 +202,7 @@ namespace openspace {
|
||||
|
||||
|
||||
if (_savedCamera != nullptr) {
|
||||
DebugRenderer::ref()->renderCameraFrustum(data, *_savedCamera);
|
||||
DebugRenderer::ref().renderCameraFrustum(data, *_savedCamera);
|
||||
}
|
||||
|
||||
|
||||
@@ -234,12 +234,12 @@ namespace openspace {
|
||||
vec4 color = vec4(colorBits & 1, colorBits & 2, colorBits & 4, 0.3);
|
||||
|
||||
if (debugOptions.showChunkBounds) {
|
||||
DebugRenderer::ref()->renderNiceBox(clippingSpaceCorners, color);
|
||||
DebugRenderer::ref().renderNiceBox(clippingSpaceCorners, color);
|
||||
}
|
||||
|
||||
if (debugOptions.showChunkAABB) {
|
||||
auto& screenSpacePoints = DebugRenderer::ref()->verticesFor(screenSpaceBounds);
|
||||
DebugRenderer::ref()->renderNiceBox(screenSpacePoints, color);
|
||||
auto& screenSpacePoints = DebugRenderer::ref().verticesFor(screenSpaceBounds);
|
||||
DebugRenderer::ref().renderNiceBox(screenSpacePoints, color);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,7 +37,6 @@
|
||||
#include <openspace/properties/stringproperty.h>
|
||||
#include <openspace/util/updatestructures.h>
|
||||
|
||||
|
||||
#include <modules/globebrowsing/geometry/ellipsoid.h>
|
||||
|
||||
#include <modules/globebrowsing/chunk/chunknode.h>
|
||||
@@ -149,7 +148,6 @@ namespace openspace {
|
||||
std::shared_ptr<Camera> _savedCamera;
|
||||
|
||||
std::shared_ptr<TileProviderManager> _tileProviderManager;
|
||||
|
||||
};
|
||||
|
||||
} // namespace openspace
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**********************************************************************
|
||||
* $Id$
|
||||
* $Id: cpl_atomic_ops.h 33666 2016-03-07 05:21:07Z goatbar $
|
||||
*
|
||||
* Name: cpl_atomic_ops.h
|
||||
* Project: CPL - Common Portability Library
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**********************************************************************
|
||||
* $Id$
|
||||
* $Id: cpl_aws.h 33758 2016-03-21 09:06:22Z rouault $
|
||||
*
|
||||
* Name: cpl_aws.h
|
||||
* Project: CPL - Common Portability Library
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/******************************************************************************
|
||||
* $Id$
|
||||
* $Id: cpl_conv.h 33666 2016-03-07 05:21:07Z goatbar $
|
||||
*
|
||||
* Project: CPL - Common Portability Library
|
||||
* Purpose: Convenience functions declarations.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/******************************************************************************
|
||||
* $Id$
|
||||
* $Id: cpl_csv.h 33844 2016-04-01 08:42:13Z rouault $
|
||||
*
|
||||
* Project: Common Portability Library
|
||||
* Purpose: Functions for reading and scanning CSV (comma separated,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**********************************************************************
|
||||
* $Id$
|
||||
* $Id: cpl_error.h 33842 2016-04-01 08:37:32Z rouault $
|
||||
*
|
||||
* Name: cpl_error.h
|
||||
* Project: CPL - Common Portability Library
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**********************************************************************
|
||||
* $Id$
|
||||
* $Id: cpl_hash_set.h 33666 2016-03-07 05:21:07Z goatbar $
|
||||
*
|
||||
* Name: cpl_hash_set.h
|
||||
* Project: CPL - Common Portability Library
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/******************************************************************************
|
||||
* $Id$
|
||||
* $Id: cpl_http.h 33666 2016-03-07 05:21:07Z goatbar $
|
||||
*
|
||||
* Project: Common Portability Library
|
||||
* Purpose: Function wrapper for libcurl HTTP access.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**********************************************************************
|
||||
* $Id$
|
||||
* $Id: cpl_list.h 33671 2016-03-07 18:39:06Z goatbar $
|
||||
*
|
||||
* Name: cpl_list.h
|
||||
* Project: CPL - Common Portability Library
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**********************************************************************
|
||||
* $Id$
|
||||
* $Id: cpl_minixml.h 33666 2016-03-07 05:21:07Z goatbar $
|
||||
*
|
||||
* Project: CPL - Common Portability Library
|
||||
* Purpose: Declarations for MiniXML Handler.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/******************************************************************************
|
||||
* $Id$
|
||||
* $Id: cpl_minizip_zip.h 31826 2015-11-29 15:39:57Z goatbar $
|
||||
*
|
||||
* Project: CPL - Common Portability Library
|
||||
* Author: Frank Warmerdam, warmerdam@pobox.com
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**********************************************************************
|
||||
* $Id$
|
||||
* $Id: cpl_multiproc.h 33817 2016-03-30 17:35:37Z rouault $
|
||||
*
|
||||
* Project: CPL - Common Portability Library
|
||||
* Purpose: CPL Multi-Threading, and process handling portability functions.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/******************************************************************************
|
||||
* $Id$
|
||||
* $Id: cpl_odbc.h 33666 2016-03-07 05:21:07Z goatbar $
|
||||
*
|
||||
* Project: OGR ODBC Driver
|
||||
* Purpose: Declarations for ODBC Access Cover API.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/******************************************************************************
|
||||
* $Id$
|
||||
* $Id: cpl_port.h 33907 2016-04-07 00:37:06Z goatbar $
|
||||
*
|
||||
* Project: CPL - Common Portability Library
|
||||
* Author: Frank Warmerdam, warmerdam@pobox.com
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**********************************************************************
|
||||
* $Id$
|
||||
* $Id: cpl_quad_tree.h 33666 2016-03-07 05:21:07Z goatbar $
|
||||
*
|
||||
* Project: CPL - Common Portability Library
|
||||
* Purpose: Implementation of quadtree building and searching functions.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* $Id$ */
|
||||
/* $Id: cpl_sha256.h 31777 2015-11-26 14:14:41Z rouault $ */
|
||||
|
||||
/* The MIT License
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**********************************************************************
|
||||
* $Id$
|
||||
* $Id: cpl_spawn.h 31287 2015-11-01 18:29:27Z goatbar $
|
||||
*
|
||||
* Project: CPL - Common Portability Library
|
||||
* Purpose: Implement CPLSystem().
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**********************************************************************
|
||||
* $Id$
|
||||
* $Id: cpl_string.h 33788 2016-03-26 00:45:58Z goatbar $
|
||||
*
|
||||
* Name: cpl_string.h
|
||||
* Project: CPL - Common Portability Library
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**********************************************************************
|
||||
* $Id$
|
||||
* $Id: cpl_time.h 33783 2016-03-24 13:45:22Z goatbar $
|
||||
*
|
||||
* Name: cpl_time.h
|
||||
* Project: CPL - Common Portability Library
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**********************************************************************
|
||||
* $Id$
|
||||
* $Id: cpl_virtualmem.h 33666 2016-03-07 05:21:07Z goatbar $
|
||||
*
|
||||
* Name: cpl_virtualmem.h
|
||||
* Project: CPL - Common Portability Library
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/******************************************************************************
|
||||
* $Id$
|
||||
* $Id: cpl_vsi.h 33758 2016-03-21 09:06:22Z rouault $
|
||||
*
|
||||
* Project: CPL - Common Portability Library
|
||||
* Author: Frank Warmerdam, warmerdam@pobox.com
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/******************************************************************************
|
||||
* $Id$
|
||||
* $Id: cpl_vsi_error.h 33758 2016-03-21 09:06:22Z rouault $
|
||||
*
|
||||
* Project: VSI Virtual File System
|
||||
* Purpose: Implement an error system for reporting file system errors.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/******************************************************************************
|
||||
* $Id$
|
||||
* $Id: cpl_vsi_virtual.h 33759 2016-03-21 09:33:06Z rouault $
|
||||
*
|
||||
* Project: VSI Virtual File System
|
||||
* Purpose: Declarations for classes related to the virtual filesystem.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/******************************************************************************
|
||||
* $Id$
|
||||
* $Id: cpl_vsil_curl_priv.h 31749 2015-11-25 02:32:55Z goatbar $
|
||||
*
|
||||
* Project: CPL - Common Portability Library
|
||||
* Purpose: Private API for VSICurl
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**********************************************************************
|
||||
* $Id$
|
||||
* $Id: cpl_worker_thread_pool.h 33666 2016-03-07 05:21:07Z goatbar $
|
||||
*
|
||||
* Project: CPL - Common Portability Library
|
||||
* Purpose: CPL worker thread pool
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/******************************************************************************
|
||||
* $Id$
|
||||
* $Id: cplkeywordparser.h 33666 2016-03-07 05:21:07Z goatbar $
|
||||
*
|
||||
* Project: Common Portability Library
|
||||
* Purpose: Implementation of CPLKeywordParser - a class for parsing
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/******************************************************************************
|
||||
* $Id$
|
||||
* $Id: gdal.h 33852 2016-04-01 23:27:53Z goatbar $
|
||||
*
|
||||
* Project: GDAL Core
|
||||
* Purpose: GDAL Core C/Public declarations.
|
||||
@@ -1102,9 +1102,9 @@ CPLVirtualMem CPL_DLL* GDALGetVirtualMemAuto( GDALRasterBandH hBand,
|
||||
|
||||
typedef enum
|
||||
{
|
||||
/*! TileAndTransform Interleaved by Pixel: tile (0,0) with internal band interleaved by pixel organization, tile (1, 0), ... */
|
||||
/*! Tile Interleaved by Pixel: tile (0,0) with internal band interleaved by pixel organization, tile (1, 0), ... */
|
||||
GTO_TIP,
|
||||
/*! Band Interleaved by TileAndTransform : tile (0,0) of first band, tile (0,0) of second band, ... tile (1,0) of first band, tile (1,0) of second band, ... */
|
||||
/*! Band Interleaved by Tile : tile (0,0) of first band, tile (0,0) of second band, ... tile (1,0) of first band, tile (1,0) of second band, ... */
|
||||
GTO_BIT,
|
||||
/*! Band SeQuential : all the tiles of first band, all the tiles of following band... */
|
||||
GTO_BSQ
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/******************************************************************************
|
||||
* $Id$
|
||||
* $Id: gdal_alg.h 33715 2016-03-13 08:52:06Z goatbar $
|
||||
*
|
||||
* Project: GDAL Image Processing Algorithms
|
||||
* Purpose: Prototypes, and definitions for various GDAL based algorithms.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/******************************************************************************
|
||||
* $Id$
|
||||
* $Id: gdal_alg_priv.h 33757 2016-03-20 20:22:33Z goatbar $
|
||||
*
|
||||
* Project: GDAL Image Processing Algorithms
|
||||
* Purpose: Prototypes and definitions for various GDAL based algorithms:
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user