Compare commits
6 Commits
vue-hack
...
worldwind-
Author | SHA1 | Date | |
---|---|---|---|
0d7ea627e2 | |||
b6290eb6a1 | |||
1b2d3ff427 | |||
44f1ccdb1a | |||
1dbcdb618b | |||
dabe4e700c |
198
collada_models/duck/duck.dae
Normal file
BIN
collada_models/duck/duckCM.png
Normal file
After Width: | Height: | Size: 32 KiB |
BIN
images/BMNG_world.topo.bathy.200405.3.2048x1024.jpg
Normal file
After Width: | Height: | Size: 305 KiB |
487
images/TectonicPlates.json
Normal file
BIN
images/crosshair.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
images/dnb_land_ocean_ice_2012.png
Normal file
After Width: | Height: | Size: 1.5 MiB |
BIN
images/notched-compass.png
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
images/powered-by-bing.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
images/pushpins/castshadow-black.png
Executable file
After Width: | Height: | Size: 4.8 KiB |
BIN
images/pushpins/castshadow-blue.png
Executable file
After Width: | Height: | Size: 5.9 KiB |
BIN
images/pushpins/castshadow-brown.png
Executable file
After Width: | Height: | Size: 5.8 KiB |
BIN
images/pushpins/castshadow-gray.png
Executable file
After Width: | Height: | Size: 5.7 KiB |
BIN
images/pushpins/castshadow-green.png
Executable file
After Width: | Height: | Size: 5.9 KiB |
BIN
images/pushpins/castshadow-orange.png
Executable file
After Width: | Height: | Size: 5.9 KiB |
BIN
images/pushpins/castshadow-purple.png
Executable file
After Width: | Height: | Size: 6.0 KiB |
BIN
images/pushpins/castshadow-red.png
Executable file
After Width: | Height: | Size: 5.9 KiB |
BIN
images/pushpins/castshadow-teal.png
Executable file
After Width: | Height: | Size: 6.1 KiB |
BIN
images/pushpins/castshadow-white.png
Executable file
After Width: | Height: | Size: 6.1 KiB |
BIN
images/pushpins/plain-black.png
Executable file
After Width: | Height: | Size: 4.0 KiB |
BIN
images/pushpins/plain-blue.png
Executable file
After Width: | Height: | Size: 5.2 KiB |
BIN
images/pushpins/plain-brown.png
Executable file
After Width: | Height: | Size: 5.1 KiB |
BIN
images/pushpins/plain-gray.png
Executable file
After Width: | Height: | Size: 4.9 KiB |
BIN
images/pushpins/plain-green.png
Executable file
After Width: | Height: | Size: 5.2 KiB |
BIN
images/pushpins/plain-orange.png
Executable file
After Width: | Height: | Size: 5.2 KiB |
BIN
images/pushpins/plain-purple.png
Executable file
After Width: | Height: | Size: 5.2 KiB |
BIN
images/pushpins/plain-red.png
Executable file
After Width: | Height: | Size: 5.2 KiB |
BIN
images/pushpins/plain-teal.png
Executable file
After Width: | Height: | Size: 5.3 KiB |
BIN
images/pushpins/plain-white.png
Executable file
After Width: | Height: | Size: 5.3 KiB |
BIN
images/pushpins/plain-yellow.png
Executable file
After Width: | Height: | Size: 5.2 KiB |
BIN
images/pushpins/push-pin-red.png
Normal file
After Width: | Height: | Size: 5.0 KiB |
BIN
images/pushpins/push-pin-yellow-32.png
Normal file
After Width: | Height: | Size: 3.7 KiB |
BIN
images/pushpins/push-pin-yellow.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
1
images/stars.json
Normal file
BIN
images/sunTexture.png
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
images/view/view-elevation-down-32x32.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
images/view/view-elevation-up-32x32.png
Normal file
After Width: | Height: | Size: 4.5 KiB |
BIN
images/view/view-fov-narrow-32x32.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
images/view/view-fov-wide-32x32.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
images/view/view-heading-left-32x32.png
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
images/view/view-heading-right-32x32.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
images/view/view-look-64x64.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
BIN
images/view/view-pan-64x64.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
images/view/view-pitch-down-32x32.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
images/view/view-pitch-up-32x32.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
images/view/view-zoom-in-32x32.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
images/view/view-zoom-out-32x32.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
images/white-dot.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
@ -69,6 +69,8 @@
|
||||
]
|
||||
}));
|
||||
openmct.install(openmct.plugins.SummaryWidget());
|
||||
openmct.install(openmct.plugins.BarGraph());
|
||||
|
||||
openmct.time.clock('local', {start: -THIRTY_MINUTES, end: 0});
|
||||
openmct.time.timeSystem('utc');
|
||||
openmct.start();
|
||||
@ -80,6 +82,8 @@
|
||||
<link rel="icon" type="image/png" href="platform/commonUI/general/res/images/favicons/favicon-96x96.png" sizes="96x96">
|
||||
<link rel="icon" type="image/png" href="platform/commonUI/general/res/images/favicons/favicon-16x16.png" sizes="16x16">
|
||||
<link rel="shortcut icon" href="platform/commonUI/general/res/images/favicons/favicon.ico">
|
||||
|
||||
<link rel="stylesheet" href="src/plugins/barGraph/res/styles/barGraph.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="l-splash-holder s-splash-holder">
|
||||
|
@ -49,7 +49,8 @@ requirejs.config({
|
||||
"d3-format": "node_modules/d3-format/build/d3-format.min",
|
||||
"d3-interpolate": "node_modules/d3-interpolate/build/d3-interpolate.min",
|
||||
"d3-time": "node_modules/d3-time/build/d3-time.min",
|
||||
"d3-time-format": "node_modules/d3-time-format/build/d3-time-format.min"
|
||||
"d3-time-format": "node_modules/d3-time-format/build/d3-time-format.min",
|
||||
"worldwind": "node_modules/@nasaworldwind/worldwind/build/dist/worldwind.min"
|
||||
},
|
||||
"shim": {
|
||||
"angular": {
|
||||
|
@ -3,6 +3,7 @@
|
||||
"version": "0.14.0-SNAPSHOT",
|
||||
"description": "The Open MCT core platform",
|
||||
"dependencies": {
|
||||
"@nasaworldwind/worldwind": "^0.9.0",
|
||||
"d3-array": "1.2.x",
|
||||
"d3-axis": "1.0.x",
|
||||
"d3-collection": "1.0.x",
|
||||
@ -14,7 +15,9 @@
|
||||
"d3-time": "1.0.x",
|
||||
"d3-time-format": "2.1.x",
|
||||
"express": "^4.13.1",
|
||||
"install": "^0.12.1",
|
||||
"minimist": "^1.1.1",
|
||||
"npm": "^6.1.0",
|
||||
"request": "^2.69.0",
|
||||
"vue": "^2.5.6"
|
||||
},
|
||||
|
73
src/plugins/barGraph/plugin.js
Normal file
@ -0,0 +1,73 @@
|
||||
define([
|
||||
"vue",
|
||||
"./src/BarGraphController",
|
||||
"./src/BarGraphCompositionPolicy"
|
||||
], function (
|
||||
Vue,
|
||||
BarGraphController,
|
||||
CompositionPolicy
|
||||
) {
|
||||
var installed = false;
|
||||
|
||||
function BarGraphPlugin() {
|
||||
return function install(openmct) {
|
||||
if (installed) {
|
||||
return;
|
||||
}
|
||||
|
||||
installed = true;
|
||||
|
||||
openmct.legacyRegistry.register('example/worldwind', {
|
||||
name: 'Example WorldWind View for OpenMCT',
|
||||
extensions: {
|
||||
types: [
|
||||
{
|
||||
key: "example/worldwind",
|
||||
name: "Example WorldWind",
|
||||
cssClass: "icon-session",
|
||||
description: "example plugin",
|
||||
features: "creation",
|
||||
contains: [
|
||||
{
|
||||
has: "telemetry"
|
||||
}
|
||||
],
|
||||
model: {
|
||||
composition: []
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
});
|
||||
|
||||
openmct.legacyRegistry.enable('example/worldwind');
|
||||
|
||||
openmct.objectViews.addProvider({
|
||||
key: 'bargraph-view',
|
||||
name: 'Bar Graph View',
|
||||
cssClass: 'icon-autoflow-tabular',
|
||||
needs: ['telemetry'],
|
||||
editable: true,
|
||||
canView: function (domainObject) {
|
||||
return domainObject.type === "example/worldwind";
|
||||
},
|
||||
view: function (domainObject) {
|
||||
var controller = new BarGraphController(openmct, domainObject);
|
||||
|
||||
return {
|
||||
show: controller.show,
|
||||
destroy: controller.destroy
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
openmct.legacyExtension('policies', {
|
||||
category: 'composition',
|
||||
implementation: CompositionPolicy,
|
||||
depends: ['openmct']
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
return BarGraphPlugin;
|
||||
});
|
3
src/plugins/barGraph/res/templates/barGraph.html
Normal file
@ -0,0 +1,3 @@
|
||||
<div class="example-plugin" style="margin-top: 5%;">
|
||||
<canvas id="canvasOne" style="width: 100%; height:100%;"></canvas>
|
||||
</div>
|
44
src/plugins/barGraph/src/BarGraphCompositionPolicy.js
Normal file
@ -0,0 +1,44 @@
|
||||
/*****************************************************************************
|
||||
* Open MCT, Copyright (c) 2014-2018, United States Government
|
||||
* as represented by the Administrator of the National Aeronautics and Space
|
||||
* Administration. All rights reserved.
|
||||
*
|
||||
* Open MCT is licensed under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
* http://www.apache.org/licenses/LICENSE-2.0.
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
* Open MCT includes source code licensed under additional open source
|
||||
* licenses. See the Open Source Licenses file (LICENSES.md) included with
|
||||
* this source code distribution or the Licensing information page available
|
||||
* at runtime from the About dialog for additional information.
|
||||
*****************************************************************************/
|
||||
|
||||
define(
|
||||
[],
|
||||
function () {
|
||||
|
||||
function BarGraphCompositionPolicy(openmct) {
|
||||
this.openmct = openmct;
|
||||
}
|
||||
|
||||
BarGraphCompositionPolicy.prototype.allow = function (parent, child) {
|
||||
var parentType = parent.getCapability('type');
|
||||
var newStyleChild = child.useCapability('adapter');
|
||||
|
||||
if (parentType.instanceOf('example/bargraph') && !this.openmct.telemetry.isTelemetryObject(newStyleChild)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
};
|
||||
|
||||
return BarGraphCompositionPolicy;
|
||||
}
|
||||
);
|
132
src/plugins/barGraph/src/BarGraphController.js
Normal file
@ -0,0 +1,132 @@
|
||||
define([
|
||||
'vue',
|
||||
'text!../res/templates/barGraph.html',
|
||||
'worldwind'
|
||||
], function (
|
||||
Vue,
|
||||
BarGraphView,
|
||||
WorldWind
|
||||
) {
|
||||
function BarGraphController(openmct, domainObject) {
|
||||
this.openmct = openmct;
|
||||
this.domainObject = domainObject;
|
||||
this.telemetryObjects = [];
|
||||
|
||||
this.show = this.show.bind(this);
|
||||
this.destroy = this.destroy.bind(this);
|
||||
|
||||
var barGraphVue = Vue.extend({
|
||||
template: BarGraphView,
|
||||
data: function () {
|
||||
return {
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
this.barGraphVue = new barGraphVue();
|
||||
}
|
||||
|
||||
BarGraphController.prototype.show = function (container) {
|
||||
this.barGraphVue.$mount(container);
|
||||
this.startWorldWind();
|
||||
};
|
||||
|
||||
BarGraphController.prototype.startWorldWind = function () {
|
||||
// Create a WorldWindow for the canvas.
|
||||
var wwd = new WorldWind.WorldWindow("canvasOne");
|
||||
|
||||
var layers = [
|
||||
// Imagery layers.
|
||||
{layer: new WorldWind.BMNGLayer(), enabled: true},
|
||||
{layer: new WorldWind.BMNGLandsatLayer(), enabled: false},
|
||||
{layer: new WorldWind.BingAerialLayer(null), enabled: false},
|
||||
{layer: new WorldWind.BingAerialWithLabelsLayer(null), enabled: true},
|
||||
{layer: new WorldWind.BingRoadsLayer(null), enabled: false},
|
||||
{layer: new WorldWind.OpenStreetMapImageLayer(null), enabled: false},
|
||||
// WorldWindow UI layers.
|
||||
{layer: new WorldWind.CoordinatesDisplayLayer(wwd), enabled: true},
|
||||
{layer: new WorldWind.ViewControlsLayer(wwd), enabled: true}
|
||||
];
|
||||
|
||||
for (var l = 0; l < layers.length; l++) {
|
||||
layers[l].layer.enabled = layers[l].enabled;
|
||||
wwd.addLayer(layers[l].layer);
|
||||
}
|
||||
|
||||
// Create renderable layer to hold the Collada model.
|
||||
var modelLayer = new WorldWind.RenderableLayer("Duck");
|
||||
wwd.addLayer(modelLayer);
|
||||
|
||||
// Define a position for locating the model.
|
||||
var position = new WorldWind.Position(37.419682, -122.063738, 1000e3);
|
||||
// Create a Collada loader and direct it to the desired directory and .dae file.
|
||||
var colladaLoader = new WorldWind.ColladaLoader(position);
|
||||
colladaLoader.init({dirPath: '../../../collada_models/duck/'});
|
||||
colladaLoader.load('duck.dae', function (scene) {
|
||||
scene.scale = 1000;
|
||||
modelLayer.addRenderable(scene); // Add the Collada model to the renderable layer within a callback.
|
||||
});
|
||||
|
||||
var long = 0;
|
||||
var lat = 0;
|
||||
|
||||
function generateLongLat() {
|
||||
long += 0.25;
|
||||
lat += 0.25;
|
||||
|
||||
return {long: long, lat: lat};
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Create the path's positions.
|
||||
var pathPositions = [];
|
||||
pathPositions.push(new WorldWind.Position(0, 0, 1000e3));
|
||||
|
||||
wwd.goTo(new WorldWind.Position(0,0, 20000e3));
|
||||
|
||||
window.setInterval(function () {
|
||||
var pos = generateLongLat();
|
||||
|
||||
pathPositions.push(new WorldWind.Position(pos.long, pos.lat, 1000e3));
|
||||
|
||||
// Create the path.
|
||||
var path = new WorldWind.Path(pathPositions, null);
|
||||
path.altitudeMode = WorldWind.ABSOLUTE; // The path's altitude stays relative to the terrain's altitude.
|
||||
path.followTerrain = true;
|
||||
path.extrude = true; // Make it a curtain.
|
||||
path.useSurfaceShapeFor2D = true; // Use a surface shape in 2D mode.
|
||||
|
||||
// Create and assign the path's attributes.
|
||||
var pathAttributes = new WorldWind.ShapeAttributes(null);
|
||||
pathAttributes.outlineColor = WorldWind.Color.GREEN;
|
||||
pathAttributes.interiorColor = new WorldWind.Color(192, 192, 192, 0.5);
|
||||
pathAttributes.drawVerticals = path.extrude; //Draw verticals only when extruding.
|
||||
path.attributes = pathAttributes;
|
||||
|
||||
// Create and assign the path's highlight attributes.
|
||||
var highlightAttributes = new WorldWind.ShapeAttributes(pathAttributes);
|
||||
highlightAttributes.outlineColor = WorldWind.Color.RED;
|
||||
highlightAttributes.interiorColor = new WorldWind.Color(1, 1, 1, 0.5);
|
||||
path.highlightAttributes = highlightAttributes;
|
||||
|
||||
// Add the path to a layer and the layer to the WorldWindow's layer list.
|
||||
var pathsLayer = new WorldWind.RenderableLayer();
|
||||
pathsLayer.displayName = "Paths";
|
||||
pathsLayer.addRenderable(path);
|
||||
wwd.addLayer(pathsLayer);
|
||||
|
||||
wwd.redraw();
|
||||
}, 1000);
|
||||
};
|
||||
|
||||
BarGraphController.prototype.destroy = function (container) {
|
||||
this.barGraphVue.$destroy(true);
|
||||
};
|
||||
|
||||
/*
|
||||
private
|
||||
*/
|
||||
|
||||
return BarGraphController;
|
||||
});
|
@ -32,7 +32,8 @@ define([
|
||||
'./URLIndicatorPlugin/URLIndicatorPlugin',
|
||||
'./telemetryMean/plugin',
|
||||
'./plot/plugin',
|
||||
'./staticRootPlugin/plugin'
|
||||
'./staticRootPlugin/plugin',
|
||||
'./barGraph/plugin'
|
||||
], function (
|
||||
_,
|
||||
UTCTimeSystem,
|
||||
@ -45,7 +46,8 @@ define([
|
||||
URLIndicatorPlugin,
|
||||
TelemetryMean,
|
||||
PlotPlugin,
|
||||
StaticRootPlugin
|
||||
StaticRootPlugin,
|
||||
BarGraph
|
||||
) {
|
||||
var bundleMap = {
|
||||
CouchDB: 'platform/persistence/couch',
|
||||
@ -138,5 +140,7 @@ define([
|
||||
plugins.TelemetryMean = TelemetryMean;
|
||||
plugins.URLIndicatorPlugin = URLIndicatorPlugin;
|
||||
|
||||
plugins.BarGraph = BarGraph;
|
||||
|
||||
return plugins;
|
||||
});
|
||||
|
BIN
uhfsat_dae/uhf bump.bmp
Executable file
After Width: | Height: | Size: 12 MiB |
BIN
uhfsat_dae/uhf map.bmp
Executable file
After Width: | Height: | Size: 12 MiB |