Skip to content

Commit

Permalink
Add ocean current visualisation using OSCAR data
Browse files Browse the repository at this point in the history
  • Loading branch information
mcschroeder committed Sep 18, 2018
1 parent 266fded commit 103f859
Show file tree
Hide file tree
Showing 32 changed files with 1,346 additions and 9 deletions.
53 changes: 53 additions & 0 deletions Licenses/make_acknowledgements.pl
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#!/usr/bin/perl -w

use strict;

my $plistout = "$ENV{SRCROOT}/$ENV{PRODUCT_NAME}/Settings.bundle/Acknowledgements.plist";

open(my $plistfh, '>', $plistout) or die $!;

print $plistfh <<'EOD';
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>StringsTable</key>
<string>Acknowledgements</string>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>Type</key>
<string>PSGroupSpecifier</string>
<key>FooterText</key>
<string>Portions of this software may utilize the following copyrighted material, the use of which is hereby acknowledged:</string>
</dict>
EOD
for my $i (sort glob("*.license"))
{
my $value=`cat $i`;
$value =~ s/\r//g;
$value =~ s/\n/\r/g;
$value =~ s/[ \t]+\r/\r/g;
$value =~ s/&/\&amp;/g;
$value =~ s/\"/\&quot;/g;
$value =~ s/</\&lt;/g;
$value =~ s/>/\&gt;/g;

my $name = substr($i, 0, -8);

print $plistfh <<"EOD";
<dict>
<key>Type</key>
<string>PSGroupSpecifier</string>
<key>FooterText</key>
<string>$name\r$value</string>
</dict>
EOD
}

print $plistfh <<'EOD';
</array>
</dict>
</plist>
EOD
close($plistfh);
7 changes: 7 additions & 0 deletions Licenses/webgl-wind.license
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
ISC License

Copyright (c) 2016, Mapbox

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1 change: 1 addition & 0 deletions OceanCurrents/oscar_vel9472.nc/metadata.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"lonMax":260,"uMax":2.8299601078033447,"dataset":"oscar_vel9472.nc","lonMin":104.66666412353516,"width":467,"time":9472,"uMin":-3.5211789608001709,"vMax":2.7663810253143311,"latMax":-57,"vMin":-2.6193342208862305,"height":288,"latMin":38.666667938232422}
Binary file added OceanCurrents/oscar_vel9472.nc/texture.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
103 changes: 101 additions & 2 deletions OceaniAR.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,22 @@
3361AE1921510D260016F70E /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 3361AE1B21510D260016F70E /* Localizable.strings */; };
3361AE2321510E6D0016F70E /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 3361AE2521510E6D0016F70E /* InfoPlist.strings */; };
3361AE27215110F20016F70E /* VuforiaDataSets in Resources */ = {isa = PBXBuildFile; fileRef = 3361AE26215110F20016F70E /* VuforiaDataSets */; };
3361AE2A215114880016F70E /* WeatherMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3361AE29215114880016F70E /* WeatherMap.swift */; };
3361AE332151152C0016F70E /* ParticleScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3361AE2B2151152C0016F70E /* ParticleScreen.swift */; };
3361AE342151152C0016F70E /* ColorRamp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3361AE2C2151152C0016F70E /* ColorRamp.swift */; };
3361AE352151152C0016F70E /* ParticleState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3361AE2D2151152C0016F70E /* ParticleState.swift */; };
3361AE362151152C0016F70E /* Array+Double.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3361AE2E2151152C0016F70E /* Array+Double.swift */; };
3361AE372151152C0016F70E /* SimplePlane.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3361AE2F2151152C0016F70E /* SimplePlane.swift */; };
3361AE382151152C0016F70E /* OceanCurrents+OSCAR.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3361AE302151152C0016F70E /* OceanCurrents+OSCAR.swift */; };
3361AE392151152C0016F70E /* OceanCurrents.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3361AE312151152C0016F70E /* OceanCurrents.swift */; };
3361AE3A2151152C0016F70E /* OpenGL+Extra.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3361AE322151152C0016F70E /* OpenGL+Extra.swift */; };
3361AE3C215115640016F70E /* GLKMatrix+Array.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3361AE3B215115640016F70E /* GLKMatrix+Array.swift */; };
3361AE3E215116050016F70E /* ShaderCompiler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3361AE3D215116050016F70E /* ShaderCompiler.swift */; };
3361AE4021512CC60016F70E /* OceanCurrents in Resources */ = {isa = PBXBuildFile; fileRef = 3361AE3F21512CC60016F70E /* OceanCurrents */; };
3361AE4221512CF00016F70E /* Shaders in Resources */ = {isa = PBXBuildFile; fileRef = 3361AE4121512CEF0016F70E /* Shaders */; };
3361AE4421512D860016F70E /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3361AE4321512D850016F70E /* OpenGLES.framework */; };
3361AE48215137090016F70E /* DataDecoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3361AE46215137090016F70E /* DataDecoder.swift */; };
3361AE49215137090016F70E /* OSCAR.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3361AE47215137090016F70E /* OSCAR.swift */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
Expand Down Expand Up @@ -59,13 +75,30 @@
3361AE2021510E2F0016F70E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = en; path = en.lproj/Info.plist; sourceTree = "<group>"; };
3361AE2421510E6D0016F70E /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = "<group>"; };
3361AE26215110F20016F70E /* VuforiaDataSets */ = {isa = PBXFileReference; lastKnownFileType = folder; path = VuforiaDataSets; sourceTree = "<group>"; };
3361AE29215114880016F70E /* WeatherMap.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WeatherMap.swift; sourceTree = "<group>"; };
3361AE2B2151152C0016F70E /* ParticleScreen.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ParticleScreen.swift; sourceTree = "<group>"; };
3361AE2C2151152C0016F70E /* ColorRamp.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ColorRamp.swift; sourceTree = "<group>"; };
3361AE2D2151152C0016F70E /* ParticleState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ParticleState.swift; sourceTree = "<group>"; };
3361AE2E2151152C0016F70E /* Array+Double.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Array+Double.swift"; sourceTree = "<group>"; };
3361AE2F2151152C0016F70E /* SimplePlane.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SimplePlane.swift; sourceTree = "<group>"; };
3361AE302151152C0016F70E /* OceanCurrents+OSCAR.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "OceanCurrents+OSCAR.swift"; sourceTree = "<group>"; };
3361AE312151152C0016F70E /* OceanCurrents.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OceanCurrents.swift; sourceTree = "<group>"; };
3361AE322151152C0016F70E /* OpenGL+Extra.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "OpenGL+Extra.swift"; sourceTree = "<group>"; };
3361AE3B215115640016F70E /* GLKMatrix+Array.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "GLKMatrix+Array.swift"; sourceTree = "<group>"; };
3361AE3D215116050016F70E /* ShaderCompiler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShaderCompiler.swift; sourceTree = "<group>"; };
3361AE3F21512CC60016F70E /* OceanCurrents */ = {isa = PBXFileReference; lastKnownFileType = folder; path = OceanCurrents; sourceTree = "<group>"; };
3361AE4121512CEF0016F70E /* Shaders */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Shaders; sourceTree = "<group>"; };
3361AE4321512D850016F70E /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
3361AE46215137090016F70E /* DataDecoder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DataDecoder.swift; sourceTree = "<group>"; };
3361AE47215137090016F70E /* OSCAR.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OSCAR.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
3361ADDC215105550016F70E /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
3361AE4421512D860016F70E /* OpenGLES.framework in Frameworks */,
3361AE12215109BB0016F70E /* CoreMedia.framework in Frameworks */,
3361AE0E215109830016F70E /* AVKit.framework in Frameworks */,
3361AE0C2151097A0016F70E /* AVFoundation.framework in Frameworks */,
Expand All @@ -83,6 +116,8 @@
children = (
3361ADE1215105550016F70E /* OceaniAR */,
3361AE26215110F20016F70E /* VuforiaDataSets */,
3361AE3F21512CC60016F70E /* OceanCurrents */,
3361AE4121512CEF0016F70E /* Shaders */,
3361ADE0215105550016F70E /* Products */,
3361AE042151095C0016F70E /* Frameworks */,
);
Expand All @@ -99,10 +134,12 @@
3361ADE1215105550016F70E /* OceaniAR */ = {
isa = PBXGroup;
children = (
3361AE1321510B190016F70E /* ARViewController.swift */,
3361ADF7215107DB0016F70E /* Vuforia */,
3361ADE2215105550016F70E /* AppDelegate.swift */,
3361ADE4215105550016F70E /* ViewController.swift */,
3361AE1321510B190016F70E /* ARViewController.swift */,
3361ADF7215107DB0016F70E /* Vuforia */,
3361AE45215136CE0016F70E /* OSCAR */,
3361AE28215114730016F70E /* WeatherMap */,
3361ADE6215105550016F70E /* Main.storyboard */,
3361ADE9215105580016F70E /* Assets.xcassets */,
3361ADEB215105580016F70E /* LaunchScreen.storyboard */,
Expand Down Expand Up @@ -133,6 +170,7 @@
3361AE042151095C0016F70E /* Frameworks */ = {
isa = PBXGroup;
children = (
3361AE4321512D850016F70E /* OpenGLES.framework */,
3361AE11215109BB0016F70E /* CoreMedia.framework */,
3361AE0D215109830016F70E /* AVKit.framework */,
3361AE0B2151097A0016F70E /* AVFoundation.framework */,
Expand All @@ -143,13 +181,41 @@
name = Frameworks;
sourceTree = "<group>";
};
3361AE28215114730016F70E /* WeatherMap */ = {
isa = PBXGroup;
children = (
3361AE29215114880016F70E /* WeatherMap.swift */,
3361AE2F2151152C0016F70E /* SimplePlane.swift */,
3361AE2B2151152C0016F70E /* ParticleScreen.swift */,
3361AE2D2151152C0016F70E /* ParticleState.swift */,
3361AE312151152C0016F70E /* OceanCurrents.swift */,
3361AE302151152C0016F70E /* OceanCurrents+OSCAR.swift */,
3361AE2C2151152C0016F70E /* ColorRamp.swift */,
3361AE322151152C0016F70E /* OpenGL+Extra.swift */,
3361AE3D215116050016F70E /* ShaderCompiler.swift */,
3361AE2E2151152C0016F70E /* Array+Double.swift */,
3361AE3B215115640016F70E /* GLKMatrix+Array.swift */,
);
path = WeatherMap;
sourceTree = "<group>";
};
3361AE45215136CE0016F70E /* OSCAR */ = {
isa = PBXGroup;
children = (
3361AE47215137090016F70E /* OSCAR.swift */,
3361AE46215137090016F70E /* DataDecoder.swift */,
);
path = OSCAR;
sourceTree = "<group>";
};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
3361ADDE215105550016F70E /* OceaniAR */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3361ADF1215105580016F70E /* Build configuration list for PBXNativeTarget "OceaniAR" */;
buildPhases = (
3361AE4A2151380D0016F70E /* Run Script - Make Acknowledgements */,
3361ADDB215105550016F70E /* Sources */,
3361ADDC215105550016F70E /* Frameworks */,
3361ADDD215105550016F70E /* Resources */,
Expand Down Expand Up @@ -204,7 +270,9 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
3361AE4221512CF00016F70E /* Shaders in Resources */,
3361AE27215110F20016F70E /* VuforiaDataSets in Resources */,
3361AE4021512CC60016F70E /* OceanCurrents in Resources */,
3361AE1921510D260016F70E /* Localizable.strings in Resources */,
3361AE2321510E6D0016F70E /* InfoPlist.strings in Resources */,
3361ADF6215107090016F70E /* Settings.bundle in Resources */,
Expand Down Expand Up @@ -235,19 +303,50 @@
shellPath = /bin/sh;
shellScript = "\"${PROJECT_DIR}/versioner.sh\"\n";
};
3361AE4A2151380D0016F70E /* Run Script - Make Acknowledgements */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
);
name = "Run Script - Make Acknowledgements";
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "cd ${PROJECT_DIR}/Licenses/\n${PROJECT_DIR}/Licenses/make_acknowledgements.pl\n";
};
/* End PBXShellScriptBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
3361ADDB215105550016F70E /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
3361AE342151152C0016F70E /* ColorRamp.swift in Sources */,
3361AE49215137090016F70E /* OSCAR.swift in Sources */,
3361ADFB2151080A0016F70E /* ARView.mm in Sources */,
3361AE392151152C0016F70E /* OceanCurrents.swift in Sources */,
3361AE372151152C0016F70E /* SimplePlane.swift in Sources */,
3361AE2A215114880016F70E /* WeatherMap.swift in Sources */,
3361ADE5215105550016F70E /* ViewController.swift in Sources */,
3361AE382151152C0016F70E /* OceanCurrents+OSCAR.swift in Sources */,
3361AE332151152C0016F70E /* ParticleScreen.swift in Sources */,
3361ADE3215105550016F70E /* AppDelegate.swift in Sources */,
3361AE3E215116050016F70E /* ShaderCompiler.swift in Sources */,
3361AE362151152C0016F70E /* Array+Double.swift in Sources */,
3361AE1421510B190016F70E /* ARViewController.swift in Sources */,
3361AE48215137090016F70E /* DataDecoder.swift in Sources */,
3361AE03215109030016F70E /* VuforiaImageTarget.mm in Sources */,
3361AE3A2151152C0016F70E /* OpenGL+Extra.swift in Sources */,
3361AE3C215115640016F70E /* GLKMatrix+Array.swift in Sources */,
3361AE02215109030016F70E /* VuforiaDataSet.mm in Sources */,
3361AE352151152C0016F70E /* ParticleState.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<Bucket
type = "1"
version = "2.0">
</Bucket>
2 changes: 1 addition & 1 deletion OceaniAR/ARViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ open class ARViewController: UIViewController, ARViewDelegate {

}

open func arView(_ arView: ARView, renderTarget name: String, withModelviewMatrix matrix: GLKMatrix4, atDistance distance: GLfloat, date: Date) {
open func arView(_ arView: ARView, renderTarget name: String, withModelviewMatrix matrix: GLKMatrix4, atDistance distance: GLfloat, size: CGSize, date: Date) {

}

Expand Down
Loading

0 comments on commit 103f859

Please sign in to comment.