Merge branch 'feature/globebrowsing' of github.com:OpenSpace/OpenSpace-Development into feature/globebrowsing

This commit is contained in:
Erik Broberg
2016-06-30 18:39:16 -04:00
243 changed files with 3664 additions and 4187 deletions

18
.gitignore vendored
View File

@@ -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

View File

@@ -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 >() );

View File

@@ -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" />

View File

@@ -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>

View 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>

View 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",
}
}

View File

@@ -0,0 +1,5 @@
return {
FileRequest = {
{ Identifier = "earth_textures", Destination = "textures", Version = 2 }
},
}

View 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},
-- },
-- }
}

View File

@@ -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",
}
}

View File

@@ -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,
-- },
}
},

View File

@@ -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",
},

View 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",
}
}

View File

@@ -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

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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 = {

View File

@@ -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 = {

View File

@@ -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 = {

View File

@@ -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",

View File

@@ -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 = {

View File

@@ -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}
},
}
}

View 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"
}
}

Binary file not shown.

View File

@@ -0,0 +1,5 @@
return {
TorrentFiles = {
{ File = "milkyway.torrent", Destination = "." }
}
}

View 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"
}
}

View File

@@ -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

View File

@@ -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__

View File

@@ -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;

View 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__

View File

@@ -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;

View File

@@ -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

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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

View File

@@ -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);

View File

@@ -54,7 +54,7 @@ public:
static Renderable* createFromDictionary(const ghoul::Dictionary& dictionary);
// constructors & destructor
Renderable();
Renderable();
Renderable(const ghoul::Dictionary& dictionary);
virtual ~Renderable();

View File

@@ -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,

View File

@@ -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__

View File

@@ -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

View File

@@ -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.

View File

@@ -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);

View File

@@ -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);

View File

@@ -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

View File

@@ -27,6 +27,7 @@
#include <vector>
#include <ghoul/opengl/ghoul_gl.h>
#include <sgct.h>
#include <stdint.h>

View File

@@ -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

View File

@@ -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})

View File

@@ -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;

View File

@@ -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;

View File

@@ -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

View File

@@ -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__

View File

@@ -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;

View File

@@ -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 {

View File

@@ -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__

View File

@@ -1,4 +1,3 @@
set (DEFAULT_MODULE ON)
set (OPENSPACE_DEPENDENCIES
volume
)

View File

@@ -25,6 +25,8 @@
#ifndef __GALAXYRAYCASTER_H__
#define __GALAXYRAYCASTER_H__
#include <memory>
#include <ghoul/glm.h>
#include <string>
#include <vector>

View File

@@ -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 ()

View File

@@ -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);
}
}
}

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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.

View File

@@ -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,

View File

@@ -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

View File

@@ -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

View File

@@ -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.

View File

@@ -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

View File

@@ -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.

View File

@@ -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

View File

@@ -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.

View File

@@ -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.

View File

@@ -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

View File

@@ -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.

View File

@@ -1,4 +1,4 @@
/* $Id$ */
/* $Id: cpl_sha256.h 31777 2015-11-26 14:14:41Z rouault $ */
/* The MIT License

View File

@@ -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().

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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.

View File

@@ -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.

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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.

View File

@@ -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