├── .gitignore
├── LICENSE
├── MFAPIHandler
├── MFAPIHandler.ipynb
├── README.md
└── requirements.txt
├── README.md
└── Stinuum Web
├── ConnectFunction.js
├── LICENSE
├── app.js
├── data
├── CesiumAir
│ ├── 0_Cesium_Air.png
│ ├── 1_Cesium_Air_Prop.png
│ ├── Cesium_Air.dae
│ ├── Cesium_Air.glb
│ └── Cesium_Air.gltf
├── CesiumMilkTruck
│ ├── CesiumMilkTruck-kmc.glb
│ ├── CesiumMilkTruck-kmc.gltf
│ ├── CesiumMilkTruck.dae
│ ├── CesiumMilkTruck.glb
│ ├── CesiumMilkTruck.gltf
│ └── CesiumMilkTruck.png
├── MF-JSON Prism
│ ├── MovingGeometryCollection
│ │ ├── mfjson_GeometryCollection.json
│ │ └── mfjson_GeometryCollection_Sample.json
│ ├── MovingLineString
│ │ ├── mfjson_linestring_typhoon_CubicSample.json
│ │ ├── mfjson_linestring_typhoon_DiscreteSample.json
│ │ ├── mfjson_linestring_typhoon_LinearSample.json
│ │ ├── mfjson_linestring_typhoon_QuadraticSample.json
│ │ └── mfjson_linestring_typhoon_StepSample.json
│ ├── MovingPoint
│ │ ├── mfjson_prism_CubicSample.json
│ │ ├── mfjson_prism_CubicSample_with_image.json
│ │ ├── mfjson_prism_DiscreteSample.json
│ │ ├── mfjson_prism_LinearSample.json
│ │ ├── mfjson_prism_QuadraticSample.json
│ │ └── mfjson_prism_StepSample.json
│ ├── MovingPointCloud
│ │ └── mfjson_pointcloud_tweets_DiscreteSample.json
│ ├── MovingPolygon
│ │ ├── mfjson_polygon_double_typhoon.json
│ │ ├── mfjson_polygon_multiple_typhoon.json
│ │ ├── mfjson_polygon_typhoon_CubicSample.json
│ │ ├── mfjson_polygon_typhoon_DiscreteSample.json
│ │ ├── mfjson_polygon_typhoon_LinearSample.json
│ │ ├── mfjson_polygon_typhoon_QuadraticSample.json
│ │ └── mfjson_polygon_typhoon_StepSample.json
│ └── PracticeDataSet
│ │ ├── mfjson_point_car_with_image.json
│ │ ├── mfjson_point_for_mf_api_server.json
│ │ ├── mfjson_point_from_mobilitytwin.json
│ │ └── mfjson_polygon_multiple_typhoon.json
└── MF-JSON Trajectory
│ ├── Feature
│ ├── 201901.en-trajectory.json
│ ├── 201902.en-trajectory.json
│ ├── 201903.en-trajectory.json
│ ├── 201904.en-trajectory.json
│ ├── 201905.en-trajectory.json
│ ├── 201906.en-trajectory.json
│ ├── 201907.en-trajectory.json
│ ├── 201908.en-trajectory.json
│ ├── 201909.en-trajectory.json
│ └── 201910.en-trajectory.json
│ └── FeatureCollection
│ └── 201901_03.en-trajectory.json
├── documents
└── image
│ ├── AnimationWidget.gif
│ ├── AnimationWidget2.gif
│ ├── Graph1.png
│ ├── Graph2.png
│ ├── Graph3.png
│ ├── Image.png
│ ├── Layers1.png
│ ├── Layers2.png
│ ├── MFCollection.png
│ ├── Main.png
│ ├── Rader.png
│ ├── SceneModePicker1.png
│ ├── SceneModePicker2.png
│ ├── Server-1.png
│ ├── Server-2.png
│ ├── Server-3.png
│ ├── Server-4.png
│ ├── Server-5.png
│ ├── Server.png
│ ├── ServerLogin.png
│ ├── Slice.png
│ ├── StinuumWeb.png
│ ├── Text.png
│ ├── Upload.png
│ ├── Wiki_README.md
│ ├── get.png
│ ├── get2.png
│ ├── get3.png
│ ├── get4.png
│ └── get5.png
├── img
├── settings.svg
├── skill (6).svg
├── skill.svg
└── skill5.svg
├── package-lock.json
├── package.json
├── routes
└── login.js
├── src
├── css
│ ├── bs.css
│ ├── demo_style copy.css
│ ├── demo_style.css
│ ├── mfjson.css
│ └── style_test.css
├── documentation
│ ├── ConnectFunction.md
│ ├── DirectionRadar.md
│ ├── GeometryViewer.md
│ ├── Imagemarking.md
│ ├── MFCollection.md
│ ├── MFPair.md
│ ├── MovementDrawing.md
│ ├── PathDrawing.md
│ ├── PropertyGraph.md
│ ├── QueryProcessor.md
│ ├── SRSTranslator.md
│ ├── TemporalMap.md
│ └── image
│ │ ├── AnimationWidget.gif
│ │ ├── AnimationWidget2.gif
│ │ ├── Graph1.png
│ │ ├── Graph2.png
│ │ ├── Graph3.png
│ │ ├── Image.png
│ │ ├── Layers1.png
│ │ ├── Layers2.png
│ │ ├── MFCollection.png
│ │ ├── Main.png
│ │ ├── Rader.png
│ │ ├── SceneModePicker1.png
│ │ ├── SceneModePicker2.png
│ │ ├── Server.png
│ │ ├── ServerLogin.png
│ │ ├── Slice.png
│ │ ├── StinuumWeb.png
│ │ ├── Text.png
│ │ ├── Upload.png
│ │ ├── ddd.md
│ │ ├── get.png
│ │ ├── get2.png
│ │ ├── get3.png
│ │ ├── get4.png
│ │ └── get5.png
└── js
│ ├── mf-cesium
│ ├── .Rhistory
│ ├── DivListMaker.js
│ ├── FeatureBuffer.js
│ ├── Fileio.js
│ ├── List.js
│ ├── Local.js
│ ├── Print.js
│ ├── SRSTranslator.js
│ ├── ServerAuth.js
│ ├── ServerConnector.js
│ ├── ViewProperties.js
│ ├── analysis.js
│ ├── d3-timelines.js
│ ├── data_crs.csv
│ ├── data_symbol.csv
│ ├── lib
│ │ ├── addon
│ │ │ ├── comment
│ │ │ │ ├── comment.js
│ │ │ │ └── continuecomment.js
│ │ │ ├── dialog
│ │ │ │ ├── dialog.css
│ │ │ │ └── dialog.js
│ │ │ ├── display
│ │ │ │ ├── autorefresh.js
│ │ │ │ ├── fullscreen.css
│ │ │ │ ├── fullscreen.js
│ │ │ │ ├── panel.js
│ │ │ │ ├── placeholder.js
│ │ │ │ └── rulers.js
│ │ │ ├── edit
│ │ │ │ ├── closebrackets.js
│ │ │ │ ├── closetag.js
│ │ │ │ ├── continuelist.js
│ │ │ │ ├── matchbrackets.js
│ │ │ │ ├── matchtags.js
│ │ │ │ └── trailingspace.js
│ │ │ ├── fold
│ │ │ │ ├── brace-fold.js
│ │ │ │ ├── comment-fold.js
│ │ │ │ ├── foldcode.js
│ │ │ │ ├── foldgutter.css
│ │ │ │ ├── foldgutter.js
│ │ │ │ ├── indent-fold.js
│ │ │ │ ├── markdown-fold.js
│ │ │ │ └── xml-fold.js
│ │ │ ├── hint
│ │ │ │ ├── anyword-hint.js
│ │ │ │ ├── css-hint.js
│ │ │ │ ├── html-hint.js
│ │ │ │ ├── javascript-hint.js
│ │ │ │ ├── show-hint.css
│ │ │ │ ├── show-hint.js
│ │ │ │ ├── sql-hint.js
│ │ │ │ └── xml-hint.js
│ │ │ ├── lint
│ │ │ │ ├── coffeescript-lint.js
│ │ │ │ ├── css-lint.js
│ │ │ │ ├── html-lint.js
│ │ │ │ ├── javascript-lint.js
│ │ │ │ ├── json-lint.js
│ │ │ │ ├── lint.css
│ │ │ │ ├── lint.js
│ │ │ │ └── yaml-lint.js
│ │ │ ├── merge
│ │ │ │ ├── merge.css
│ │ │ │ └── merge.js
│ │ │ ├── mode
│ │ │ │ ├── loadmode.js
│ │ │ │ ├── multiplex.js
│ │ │ │ ├── multiplex_test.js
│ │ │ │ ├── overlay.js
│ │ │ │ └── simple.js
│ │ │ ├── runmode
│ │ │ │ ├── colorize.js
│ │ │ │ ├── runmode-standalone.js
│ │ │ │ ├── runmode.js
│ │ │ │ └── runmode.node.js
│ │ │ ├── scroll
│ │ │ │ ├── annotatescrollbar.js
│ │ │ │ ├── scrollpastend.js
│ │ │ │ ├── simplescrollbars.css
│ │ │ │ └── simplescrollbars.js
│ │ │ ├── search
│ │ │ │ ├── jump-to-line.js
│ │ │ │ ├── match-highlighter.js
│ │ │ │ ├── matchesonscrollbar.css
│ │ │ │ ├── matchesonscrollbar.js
│ │ │ │ ├── search.js
│ │ │ │ └── searchcursor.js
│ │ │ ├── selection
│ │ │ │ ├── active-line.js
│ │ │ │ ├── mark-selection.js
│ │ │ │ └── selection-pointer.js
│ │ │ ├── tern
│ │ │ │ ├── tern.css
│ │ │ │ ├── tern.js
│ │ │ │ └── worker.js
│ │ │ └── wrap
│ │ │ │ └── hardwrap.js
│ │ ├── bootstrap.css.map
│ │ ├── bootstrap.min.css
│ │ ├── bootstrap.min.css.map
│ │ ├── bootstrap.min.js
│ │ ├── codemirror copy.css
│ │ ├── codemirror.css
│ │ ├── codemirror.js
│ │ ├── codemirror2.css
│ │ ├── eclipse.css
│ │ ├── javascript.js
│ │ └── mode
│ │ │ ├── htmlembedded
│ │ │ ├── htmlembedded.js
│ │ │ └── index.html
│ │ │ ├── htmlmixed
│ │ │ ├── htmlmixed.js
│ │ │ └── index.html
│ │ │ ├── http
│ │ │ ├── http.js
│ │ │ └── index.html
│ │ │ ├── javascript
│ │ │ ├── index.html
│ │ │ ├── javascript.js
│ │ │ ├── json-ld.html
│ │ │ ├── test.js
│ │ │ └── typescript.html
│ │ │ ├── jsx
│ │ │ ├── index.html
│ │ │ ├── jsx.js
│ │ │ └── test.js
│ │ │ ├── python
│ │ │ ├── index.html
│ │ │ ├── python.js
│ │ │ └── test.js
│ │ │ └── xml
│ │ │ ├── index.html
│ │ │ ├── test.js
│ │ │ └── xml.js
│ ├── proj4js-2.6.0
│ │ ├── .gitignore
│ │ ├── .jshintrc
│ │ ├── .npmignore
│ │ ├── .travis.yml
│ │ ├── AUTHORS
│ │ ├── Gruntfile.js
│ │ ├── LICENSE.md
│ │ ├── PUBLISHING.md
│ │ ├── README.md
│ │ ├── REFERENCES.md
│ │ ├── bower.json
│ │ ├── changelog.md
│ │ ├── component.json
│ │ ├── package.json
│ │ ├── publish.sh
│ │ └── test
│ │ │ ├── amd.html
│ │ │ ├── opt.html
│ │ │ ├── package.json.js
│ │ │ ├── test.js
│ │ │ └── testData.js
│ └── runServer.py
│ ├── movie.js
│ ├── stinuum.js
│ └── temp
│ ├── .Rhistory
│ ├── Image_marking.js
│ ├── direction_radar.js
│ ├── geometry_viewer.js
│ ├── makeJS.bat
│ ├── mf_collection.js
│ ├── model.js
│ ├── movement_draw.js
│ ├── occurrence_map.js
│ ├── path_drawing.js
│ ├── property_graph.js
│ ├── query_processor.js
│ ├── sh_makeJS.sh
│ ├── super.js
│ ├── temporal_map.js
│ ├── uml.mdj
│ └── utility.js
├── system.json
└── views
├── dataSelect.ejs
└── demo.ejs
/.gitignore:
--------------------------------------------------------------------------------
1 | /Stinuum Web/node_modules/
2 | /Stinuum Web/src/js.zip
3 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 AIST AIRC
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/MFAPIHandler/README.md:
--------------------------------------------------------------------------------
1 | # MovingFeature API Handler(MFAPIHandler)
2 | > This program is an example Python program that uses the MF-API to upload MovingFeature data.
3 | > There is an example of registering MovingFeatureCollection in the "main()" function of MFAPIHandler.py program and uploading MovingFeature data.
4 |
5 | ## Dependency
6 | * [![Python3][python-shield]][python-url]
7 |
8 |
9 | ## Install Method
10 | 1. [Install Python][python-url]
11 | 2. Install python library
12 | ```shell
13 | cd mf-cesium/MFAPIHandler
14 | pip install -r requirements.txt
15 | ```
16 |
17 | [python-shield]: https://img.shields.io/badge/Python_v3.10-3776AB?style=flat&logo=python&logoColor=white
18 | [python-url]: https://www.python.org/
19 | [github-shield]: https://img.shields.io/badge/MF_API-181717?style=flat&logo=github&logoColor=white
20 | [mf-server-url]: https://opengeospatial.github.io/ogcapi-movingfeatures/openapi/openapi-movingfeatures-1.html
--------------------------------------------------------------------------------
/MFAPIHandler/requirements.txt:
--------------------------------------------------------------------------------
1 | anyio==4.1.0
2 | appnope==0.1.3
3 | argon2-cffi==23.1.0
4 | argon2-cffi-bindings==21.2.0
5 | arrow==1.3.0
6 | asttokens==2.4.1
7 | async-lru==2.0.4
8 | attrs==23.1.0
9 | Babel==2.13.1
10 | beautifulsoup4==4.12.2
11 | bleach==6.1.0
12 | bs4==0.0.1
13 | certifi==2023.11.17
14 | cffi==1.16.0
15 | charset-normalizer==3.3.2
16 | click==8.1.7
17 | comm==0.2.0
18 | debugpy==1.8.0
19 | decorator==5.1.1
20 | defusedxml==0.7.1
21 | exceptiongroup==1.2.0
22 | executing==2.0.1
23 | fastjsonschema==2.19.0
24 | fqdn==1.5.1
25 | idna==3.6
26 | ipykernel==6.26.0
27 | ipython==8.18.0
28 | ipywidgets==8.1.1
29 | isoduration==20.11.0
30 | jedi==0.19.1
31 | Jinja2==3.1.2
32 | json5==0.9.14
33 | jsonpointer==2.4
34 | jsonschema==4.20.0
35 | jsonschema-specifications==2023.11.1
36 | jupyter==1.0.0
37 | jupyter-console==6.6.3
38 | jupyter-events==0.9.0
39 | jupyter-lsp==2.2.0
40 | jupyter_client==8.6.0
41 | jupyter_core==5.5.0
42 | jupyter_server==2.10.1
43 | jupyter_server_terminals==0.4.4
44 | jupyterlab==4.0.9
45 | jupyterlab-widgets==3.0.9
46 | jupyterlab_pygments==0.3.0
47 | jupyterlab_server==2.25.2
48 | MarkupSafe==2.1.3
49 | matplotlib-inline==0.1.6
50 | mistune==3.0.2
51 | munch==4.0.0
52 | nbclient==0.9.0
53 | nbconvert==7.11.0
54 | nbformat==5.9.2
55 | nest-asyncio==1.5.8
56 | notebook==7.0.6
57 | notebook_shim==0.2.3
58 | overrides==7.4.0
59 | packaging==23.2
60 | pandocfilters==1.5.0
61 | parso==0.8.3
62 | pexpect==4.9.0
63 | platformdirs==4.0.0
64 | prometheus-client==0.19.0
65 | prompt-toolkit==3.0.41
66 | psutil==5.9.6
67 | ptyprocess==0.7.0
68 | pure-eval==0.2.2
69 | pycparser==2.21
70 | Pygments==2.17.2
71 | python-dateutil==2.8.2
72 | python-json-logger==2.0.7
73 | PyYAML==6.0.1
74 | pyzmq==25.1.1
75 | qtconsole==5.5.1
76 | QtPy==2.4.1
77 | referencing==0.31.0
78 | requests==2.31.0
79 | rfc3339-validator==0.1.4
80 | rfc3986-validator==0.1.1
81 | rpds-py==0.13.1
82 | Send2Trash==1.8.2
83 | six==1.16.0
84 | sniffio==1.3.0
85 | soupsieve==2.5
86 | stack-data==0.6.3
87 | terminado==0.18.0
88 | tinycss2==1.2.1
89 | tomli==2.0.1
90 | tornado==6.3.3
91 | traitlets==5.13.0
92 | types-python-dateutil==2.8.19.14
93 | typing_extensions==4.8.0
94 | uri-template==1.3.0
95 | urllib3==2.1.0
96 | wcwidth==0.2.12
97 | webcolors==1.13
98 | webencodings==0.5.1
99 | websocket-client==1.6.4
100 | widgetsnbextension==4.0.9
101 |
--------------------------------------------------------------------------------
/Stinuum Web/ConnectFunction.js:
--------------------------------------------------------------------------------
1 | // const request = require('request')
2 | const FormData = require('form-data');
3 | // const request2 = require('request-promise-native');
4 | const querystring = require('querystring');
5 | const request = require('request')
6 | // const fetch = require('node-fetch')
7 | // const needle = require('needle')
8 | const axios = require('axios')
9 | // const http = require('http')
10 | const express = require('express');
11 | const fs = require('fs');
12 | let token;
13 | let session_id;
14 | let access_token;
15 | let ServerOn = false;
16 |
17 | function ConnectFunction () {
18 | // this.token;
19 | // this.session_id;
20 | this.ServerOn2 = false;
21 | this.__cookies = ""
22 | }
23 |
24 |
25 | ConnectFunction.prototype.GET = async function (address, parameters, res){
26 |
27 | let options = {
28 | url: address,
29 | method: 'GET',
30 | qs: parameters,
31 | headers: {
32 | 'Content-Type': 'application/json',
33 | 'Accept': 'application/json',
34 | }
35 | }
36 | request(options, function(err,response,body){
37 |
38 | if(response != undefined){
39 | if (response.statusCode == 200 || response.statusCode == 202){
40 |
41 | res.json({ok: true, data: JSON.parse(response.body)});
42 |
43 | }else{
44 | // console.log(tempdata)
45 | // console.log(response.body)
46 | res.json({ok: false});
47 |
48 | }
49 | }else{
50 | res.json({ok: false});
51 | }
52 |
53 | });
54 | }
55 |
56 |
57 | ConnectFunction.prototype.POST = function (address, parameters, res){
58 |
59 | let options = {
60 | url: address,
61 | method: 'POST',
62 | data: parameters,
63 | headers: {
64 | 'Content-Type': 'application/geo+json',
65 | 'Accept': '*/*',
66 | }
67 | }
68 | request(options, function(err,response,body){
69 | // var tempdata = JSON.parse(response.body)
70 |
71 | if(response != undefined){
72 | if (response.statusCode == 200 || response.statusCode == 202){
73 |
74 | res.json({ok: true, data: JSON.parse(response.body)});
75 |
76 | }else{
77 | // console.log(tempdata)
78 | // console.log(response.body)
79 | res.json({ok: false});
80 |
81 | }
82 | }else{
83 | res.json({ok: false});
84 | }
85 | });
86 | }
87 |
88 | ConnectFunction.prototype.callback = function(callbackValue){
89 | return callbackValue
90 | }
91 | module.exports = new ConnectFunction()
92 |
--------------------------------------------------------------------------------
/Stinuum Web/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 AIST AIRC
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Stinuum Web/data/CesiumAir/0_Cesium_Air.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/data/CesiumAir/0_Cesium_Air.png
--------------------------------------------------------------------------------
/Stinuum Web/data/CesiumAir/1_Cesium_Air_Prop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/data/CesiumAir/1_Cesium_Air_Prop.png
--------------------------------------------------------------------------------
/Stinuum Web/data/CesiumAir/Cesium_Air.glb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/data/CesiumAir/Cesium_Air.glb
--------------------------------------------------------------------------------
/Stinuum Web/data/CesiumMilkTruck/CesiumMilkTruck-kmc.glb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/data/CesiumMilkTruck/CesiumMilkTruck-kmc.glb
--------------------------------------------------------------------------------
/Stinuum Web/data/CesiumMilkTruck/CesiumMilkTruck.glb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/data/CesiumMilkTruck/CesiumMilkTruck.glb
--------------------------------------------------------------------------------
/Stinuum Web/data/CesiumMilkTruck/CesiumMilkTruck.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/data/CesiumMilkTruck/CesiumMilkTruck.png
--------------------------------------------------------------------------------
/Stinuum Web/data/MF-JSON Trajectory/Feature/201901.en-trajectory.json:
--------------------------------------------------------------------------------
1 | {
2 | "type" : "Feature",
3 | "id" : "typhoon_1",
4 | "geometry" : {
5 | "type" : "LineString",
6 | "coordinates" : [ [ 111.9, 7.6 ], [ 111.3, 7.3 ], [ 111.1, 7.0 ], [ 110.7, 6.6 ], [ 110.2, 6.3 ], [ 109.9, 6.0 ], [ 109.5, 5.8 ], [ 108.6, 5.9 ], [ 108.0, 6.2 ], [ 107.0, 6.3 ], [ 105.8, 6.0 ], [ 105.0, 5.8 ], [ 104.1, 6.1 ], [ 103.4, 6.8 ], [ 102.5, 7.5 ], [ 101.5, 7.9 ], [ 100.8, 8.1 ], [ 100.1, 8.2 ], [ 99.4, 8.4 ] ]
7 | },
8 | "properties" : {
9 | "datetimes" : [ "2018-12-31T06:00:00Z", "2018-12-31T12:00:00Z", "2018-12-31T18:00:00Z", "2019-01-01T00:00:00Z", "2019-01-01T06:00:00Z", "2019-01-01T12:00:00Z", "2019-01-01T18:00:00Z", "2019-01-02T00:00:00Z", "2019-01-02T06:00:00Z", "2019-01-02T12:00:00Z", "2019-01-02T18:00:00Z", "2019-01-03T00:00:00Z", "2019-01-03T06:00:00Z", "2019-01-03T12:00:00Z", "2019-01-03T18:00:00Z", "2019-01-04T00:00:00Z", "2019-01-04T06:00:00Z", "2019-01-04T12:00:00Z", "2019-01-04T18:00:00Z" ],
10 | "pressure" : [ 1004.0, 1004.0, 1004.0, 1004.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 1000.0, 998.0, 996.0, 996.0, 996.0, 1000.0 ],
11 | "wind" : [ 0.0, 0.0, 0.0, 0.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 40.0, 45.0, 45.0, 45.0, 40.0 ],
12 | "class" : [ 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0 ]
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Stinuum Web/data/MF-JSON Trajectory/Feature/201902.en-trajectory.json:
--------------------------------------------------------------------------------
1 | {
2 | "type" : "Feature",
3 | "id": "typhoon_2",
4 | "geometry" : {
5 | "type" : "LineString",
6 | "coordinates" : [ [ 162.5, 4.7 ], [ 161.2, 4.8 ], [ 159.8, 5.2 ], [ 158.4, 4.9 ], [ 156.6, 4.5 ], [ 155.5, 4.5 ], [ 154.6, 4.7 ], [ 153.8, 4.7 ], [ 152.6, 5.0 ], [ 151.6, 5.7 ], [ 150.5, 6.1 ], [ 149.6, 6.4 ], [ 148.7, 6.9 ], [ 147.9, 7.5 ], [ 146.8, 8.2 ], [ 146.2, 9.2 ], [ 145.0, 9.9 ], [ 144.0, 10.1 ], [ 143.7, 10.6 ], [ 143.3, 11.4 ], [ 142.8, 12.0 ], [ 142.4, 12.4 ], [ 142.1, 12.7 ], [ 141.7, 12.9 ], [ 141.2, 13.1 ], [ 140.7, 13.1 ], [ 140.4, 13.4 ], [ 140.2, 13.8 ], [ 140.1, 14.2 ], [ 139.9, 14.6 ], [ 139.9, 14.9 ], [ 139.9, 15.2 ], [ 140.1, 15.4 ], [ 140.1, 15.7 ], [ 140.0, 16.0 ], [ 139.8, 16.4 ], [ 139.0, 16.5 ], [ 137.7, 16.7 ], [ 136.7, 17.2 ], [ 135.6, 17.6 ], [ 135.0, 18.2 ], [ 134.6, 18.6 ], [ 134.4, 19.1 ], [ 134.2, 19.4 ], [ 134.0, 19.7 ], [ 134.0, 19.6 ], [ 133.9, 19.4 ], [ 133.1, 18.9 ] ]
7 | },
8 | "properties" : {
9 | "datetimes" : [ "2019-02-18T12:00:00Z", "2019-02-18T18:00:00Z", "2019-02-19T00:00:00Z", "2019-02-19T06:00:00Z", "2019-02-19T12:00:00Z", "2019-02-19T18:00:00Z", "2019-02-20T00:00:00Z", "2019-02-20T06:00:00Z", "2019-02-20T12:00:00Z", "2019-02-20T18:00:00Z", "2019-02-21T00:00:00Z", "2019-02-21T06:00:00Z", "2019-02-21T12:00:00Z", "2019-02-21T18:00:00Z", "2019-02-22T00:00:00Z", "2019-02-22T06:00:00Z", "2019-02-22T12:00:00Z", "2019-02-22T18:00:00Z", "2019-02-23T00:00:00Z", "2019-02-23T06:00:00Z", "2019-02-23T12:00:00Z", "2019-02-23T18:00:00Z", "2019-02-24T00:00:00Z", "2019-02-24T06:00:00Z", "2019-02-24T12:00:00Z", "2019-02-24T18:00:00Z", "2019-02-25T00:00:00Z", "2019-02-25T06:00:00Z", "2019-02-25T12:00:00Z", "2019-02-25T18:00:00Z", "2019-02-26T00:00:00Z", "2019-02-26T06:00:00Z", "2019-02-26T12:00:00Z", "2019-02-26T18:00:00Z", "2019-02-27T00:00:00Z", "2019-02-27T06:00:00Z", "2019-02-27T12:00:00Z", "2019-02-27T18:00:00Z", "2019-02-28T00:00:00Z", "2019-02-28T06:00:00Z", "2019-02-28T12:00:00Z", "2019-02-28T18:00:00Z", "2019-03-01T00:00:00Z", "2019-03-01T06:00:00Z", "2019-03-01T12:00:00Z", "2019-03-01T18:00:00Z", "2019-03-02T00:00:00Z", "2019-03-02T06:00:00Z" ],
10 | "pressure" : [ 1006.0, 1004.0, 1006.0, 1004.0, 1004.0, 1000.0, 994.0, 992.0, 985.0, 980.0, 975.0, 960.0, 960.0, 960.0, 960.0, 960.0, 960.0, 960.0, 955.0, 940.0, 920.0, 920.0, 920.0, 940.0, 940.0, 940.0, 935.0, 935.0, 935.0, 935.0, 950.0, 940.0, 950.0, 955.0, 965.0, 970.0, 980.0, 990.0, 996.0, 1004.0, 1010.0, 1010.0, 1012.0, 1010.0, 1012.0, 1010.0, 1010.0 ],
11 | "wind" : [ 0.0, 0.0, 0.0, 0.0, 0.0, 35.0, 45.0, 50.0, 60.0, 65.0, 70.0, 80.0, 80.0, 80.0, 80.0, 80.0, 80.0, 80.0, 85.0, 95.0, 105.0, 105.0, 105.0, 95.0, 95.0, 95.0, 100.0, 100.0, 100.0, 100.0, 90.0, 95.0, 85.0, 80.0, 70.0, 65.0, 55.0, 50.0, 40.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ],
12 | "class" : [ 2.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 4.0, 4.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 4.0, 4.0, 3.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ]
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/Stinuum Web/data/MF-JSON Trajectory/Feature/201903.en-trajectory.json:
--------------------------------------------------------------------------------
1 | {
2 | "type" : "Feature",
3 | "id": "typhoon_3",
4 | "geometry" : {
5 | "type" : "LineString",
6 | "coordinates" : [ [ 127.7, 17.9 ], [ 127.8, 18.4 ], [ 127.9, 18.9 ], [ 128.0, 19.4 ], [ 128.1, 19.8 ], [ 128.2, 20.5 ], [ 128.4, 21.4 ], [ 128.8, 22.9 ], [ 129.5, 24.8 ], [ 130.0, 26.4 ], [ 130.4, 28.4 ], [ 132.0, 30.8 ], [ 134.7, 32.6 ], [ 137.6, 34.1 ], [ 141.6, 35.2 ], [ 147.0, 36.0 ], [ 151.0, 37.0 ], [ 154.3, 38.0 ], [ 156.3, 39.0 ], [ 158.5, 39.8 ], [ 160.1, 41.0 ], [ 160.8, 42.2 ], [ 161.6, 43.8 ], [ 163.3, 44.3 ], [ 165.5, 45.0 ], [ 168.2, 46.1 ], [ 169.9, 47.4 ], [ 172.2, 49.3 ], [ 174.3, 51.3 ], [ 176.7, 53.6 ], [ 178.7, 57.2 ], [ 179.5, 59.5 ], [ 182.0, 61.1 ] ]
7 | },
8 | "properties" : {
9 | "datetimes" : [ "2019-06-24T12:00:00Z", "2019-06-24T18:00:00Z", "2019-06-25T00:00:00Z", "2019-06-25T06:00:00Z", "2019-06-25T12:00:00Z", "2019-06-25T18:00:00Z", "2019-06-26T00:00:00Z", "2019-06-26T06:00:00Z", "2019-06-26T12:00:00Z", "2019-06-26T18:00:00Z", "2019-06-27T00:00:00Z", "2019-06-27T06:00:00Z", "2019-06-27T12:00:00Z", "2019-06-27T18:00:00Z", "2019-06-28T00:00:00Z", "2019-06-28T06:00:00Z", "2019-06-28T12:00:00Z", "2019-06-28T18:00:00Z", "2019-06-29T00:00:00Z", "2019-06-29T06:00:00Z", "2019-06-29T12:00:00Z", "2019-06-29T18:00:00Z", "2019-06-30T00:00:00Z", "2019-06-30T06:00:00Z", "2019-06-30T12:00:00Z", "2019-06-30T18:00:00Z", "2019-07-01T00:00:00Z", "2019-07-01T06:00:00Z", "2019-07-01T12:00:00Z", "2019-07-01T18:00:00Z", "2019-07-02T00:00:00Z", "2019-07-02T06:00:00Z", "2019-07-02T12:00:00Z" ],
10 | "pressure" : [ 1008.0, 1006.0, 1006.0, 1006.0, 1006.0, 1006.0, 1004.0, 1004.0, 1004.0, 1004.0, 1002.0, 1000.0, 998.0, 996.0, 994.0, 992.0, 992.0, 994.0, 994.0, 998.0, 1002.0, 1004.0, 1004.0, 1004.0, 1004.0, 1004.0, 1004.0, 1004.0, 1002.0, 1002.0, 1002.0, 1002.0 ],
11 | "wind" : [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 35.0, 40.0, 40.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ],
12 | "class" : [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 ]
13 | }
14 | }
--------------------------------------------------------------------------------
/Stinuum Web/data/MF-JSON Trajectory/Feature/201904.en-trajectory.json:
--------------------------------------------------------------------------------
1 | {
2 | "type" : "Feature",
3 | "id": "typhoon_4",
4 | "geometry" : {
5 | "type" : "LineString",
6 | "coordinates" : [ [ 114.0, 18.0 ], [ 113.3, 18.5 ], [ 112.4, 18.8 ], [ 111.5, 18.9 ], [ 110.6, 19.2 ], [ 109.5, 19.4 ], [ 108.4, 19.5 ], [ 107.3, 19.9 ], [ 106.7, 20.3 ], [ 106.2, 20.8 ], [ 105.4, 21.6 ], [ 104.5, 22.3 ], [ 103.8, 23.1 ] ]
7 | },
8 | "properties" : {
9 | "datetimes" : [ "2019-07-01T18:00:00Z", "2019-07-02T00:00:00Z", "2019-07-02T06:00:00Z", "2019-07-02T12:00:00Z", "2019-07-02T18:00:00Z", "2019-07-03T00:00:00Z", "2019-07-03T06:00:00Z", "2019-07-03T12:00:00Z", "2019-07-03T18:00:00Z", "2019-07-04T00:00:00Z", "2019-07-04T06:00:00Z", "2019-07-04T12:00:00Z", "2019-07-04T18:00:00Z" ],
10 | "pressure" : [ 998.0, 998.0, 994.0, 994.0, 994.0, 994.0, 992.0, 992.0, 994.0, 994.0, 998.0, 1000.0 ],
11 | "wind" : [ 0.0, 0.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 0.0, 0.0 ],
12 | "class" : [ 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 2.0, 2.0 ]
13 | }
14 | }
--------------------------------------------------------------------------------
/Stinuum Web/data/MF-JSON Trajectory/Feature/201905.en-trajectory.json:
--------------------------------------------------------------------------------
1 | {
2 | "type" : "Feature",
3 | "id": "typhoon_5",
4 | "geometry" : {
5 | "type" : "LineString",
6 | "coordinates" : [ [ 136.7, 12.6 ], [ 135.3, 13.3 ], [ 134.3, 14.0 ], [ 133.2, 15.0 ], [ 132.1, 15.6 ], [ 131.2, 16.4 ], [ 129.5, 16.9 ], [ 127.5, 17.0 ], [ 126.0, 17.0 ], [ 124.9, 17.1 ], [ 123.9, 17.2 ], [ 123.4, 17.3 ], [ 123.5, 18.1 ], [ 123.7, 19.0 ], [ 124.1, 20.5 ], [ 124.1, 21.9 ], [ 124.1, 23.6 ], [ 124.1, 25.7 ], [ 124.0, 26.5 ], [ 124.0, 27.8 ], [ 124.0, 29.0 ], [ 124.2, 30.3 ], [ 124.7, 31.8 ], [ 125.2, 33.1 ], [ 125.5, 34.2 ], [ 125.7, 34.8 ], [ 126.3, 35.7 ], [ 127.2, 36.6 ], [ 128.5, 37.9 ], [ 129.6, 39.0 ], [ 130.4, 40.2 ], [ 131.4, 41.1 ], [ 131.9, 41.4 ], [ 132.1, 41.7 ], [ 132.9, 42.0 ], [ 134.4, 42.3 ], [ 135.7, 42.6 ], [ 137.1, 43.1 ] ]
7 | },
8 | "properties" : {
9 | "datetimes" : [ "2019-07-14T00:00:00Z", "2019-07-14T06:00:00Z", "2019-07-14T12:00:00Z", "2019-07-14T18:00:00Z", "2019-07-15T00:00:00Z", "2019-07-15T06:00:00Z", "2019-07-15T12:00:00Z", "2019-07-15T18:00:00Z", "2019-07-16T00:00:00Z", "2019-07-16T06:00:00Z", "2019-07-16T12:00:00Z", "2019-07-16T18:00:00Z", "2019-07-17T00:00:00Z", "2019-07-17T06:00:00Z", "2019-07-17T12:00:00Z", "2019-07-17T18:00:00Z", "2019-07-18T00:00:00Z", "2019-07-18T06:00:00Z", "2019-07-18T12:00:00Z", "2019-07-18T18:00:00Z", "2019-07-19T00:00:00Z", "2019-07-19T06:00:00Z", "2019-07-19T12:00:00Z", "2019-07-19T18:00:00Z", "2019-07-20T00:00:00Z", "2019-07-20T06:00:00Z", "2019-07-20T12:00:00Z", "2019-07-20T18:00:00Z", "2019-07-21T00:00:00Z", "2019-07-21T06:00:00Z", "2019-07-21T12:00:00Z", "2019-07-21T18:00:00Z", "2019-07-22T00:00:00Z", "2019-07-22T06:00:00Z", "2019-07-22T12:00:00Z", "2019-07-22T18:00:00Z", "2019-07-23T00:00:00Z", "2019-07-23T06:00:00Z" ],
10 | "pressure" : [ 1004.0, 1004.0, 1004.0, 1002.0, 1002.0, 1000.0, 1000.0, 998.0, 998.0, 994.0, 994.0, 994.0, 994.0, 994.0, 992.0, 992.0, 990.0, 990.0, 990.0, 985.0, 985.0, 985.0, 985.0, 985.0, 985.0, 990.0, 994.0, 996.0, 998.0, 998.0, 998.0, 996.0, 996.0, 998.0, 1000.0, 1000.0, 1002.0 ],
11 | "wind" : [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 40.0, 40.0, 40.0, 45.0, 45.0, 45.0, 45.0, 40.0, 40.0, 40.0, 35.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ],
12 | "class" : [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 2.0, 2.0, 2.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 ]
13 | }
14 | }
--------------------------------------------------------------------------------
/Stinuum Web/data/MF-JSON Trajectory/Feature/201906.en-trajectory.json:
--------------------------------------------------------------------------------
1 | {
2 | "type" : "Feature",
3 | "id": "typhoon_6",
4 | "geometry" : {
5 | "type" : "LineString",
6 | "coordinates" : [ [ 137.0, 23.0 ], [ 137.5, 23.5 ], [ 137.8, 24.3 ], [ 137.8, 25.3 ], [ 137.7, 26.3 ], [ 137.5, 26.5 ], [ 137.5, 27.5 ], [ 137.3, 28.5 ], [ 137.1, 29.7 ], [ 136.2, 30.9 ], [ 135.8, 32.0 ], [ 135.9, 33.4 ], [ 136.3, 34.1 ], [ 136.4, 34.7 ], [ 136.7, 35.6 ], [ 138.3, 36.0 ], [ 139.8, 36.6 ], [ 142.0, 36.9 ], [ 143.7, 37.6 ], [ 145.7, 38.2 ], [ 147.7, 38.7 ], [ 149.8, 39.3 ], [ 151.6, 39.8 ], [ 152.9, 40.5 ] ]
7 | },
8 | "properties" : {
9 | "datetimes" : [ "2019-07-24T00:00:00Z", "2019-07-24T06:00:00Z", "2019-07-24T12:00:00Z", "2019-07-24T18:00:00Z", "2019-07-25T00:00:00Z", "2019-07-25T06:00:00Z", "2019-07-25T12:00:00Z", "2019-07-25T18:00:00Z", "2019-07-26T00:00:00Z", "2019-07-26T06:00:00Z", "2019-07-26T12:00:00Z", "2019-07-26T18:00:00Z", "2019-07-26T22:00:00Z", "2019-07-27T00:00:00Z", "2019-07-27T06:00:00Z", "2019-07-27T12:00:00Z", "2019-07-27T18:00:00Z", "2019-07-28T00:00:00Z", "2019-07-28T06:00:00Z", "2019-07-28T12:00:00Z", "2019-07-28T18:00:00Z", "2019-07-29T00:00:00Z", "2019-07-29T06:00:00Z", "2019-07-29T12:00:00Z" ],
10 | "pressure" : [ 1008.0, 1006.0, 1006.0, 1006.0, 1006.0, 1004.0, 1006.0, 1002.0, 1000.0, 1000.0, 1000.0, 998.0, 1000.0, 1000.0, 1004.0, 1008.0, 1008.0, 1010.0, 1010.0, 1010.0, 1010.0, 1010.0, 1008.0 ],
11 | "wind" : [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ],
12 | "class" : [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 2.0, 2.0, 2.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 ]
13 | }
14 | }
--------------------------------------------------------------------------------
/Stinuum Web/data/MF-JSON Trajectory/Feature/201907.en-trajectory.json:
--------------------------------------------------------------------------------
1 | {
2 | "type" : "Feature",
3 | "id": "typhoon_7",
4 | "geometry" : {
5 | "type" : "LineString",
6 | "coordinates" : [ [ 116.0, 17.1 ], [ 115.4, 17.6 ], [ 114.8, 18.0 ], [ 114.2, 18.4 ], [ 113.7, 18.8 ], [ 112.9, 19.2 ], [ 112.2, 19.5 ], [ 111.4, 20.1 ], [ 110.8, 20.4 ], [ 110.5, 21.0 ], [ 110.2, 21.4 ], [ 109.4, 21.2 ], [ 109.1, 21.2 ], [ 109.0, 21.1 ], [ 108.2, 21.6 ], [ 107.3, 21.5 ], [ 106.5, 21.2 ], [ 106.2, 20.8 ], [ 105.4, 20.2 ], [ 104.4, 19.7 ], [ 102.8, 20.7 ], [ 102.1, 20.5 ] ]
7 | },
8 | "properties" : {
9 | "datetimes" : [ "2019-07-30T00:00:00Z", "2019-07-30T06:00:00Z", "2019-07-30T12:00:00Z", "2019-07-30T18:00:00Z", "2019-07-31T00:00:00Z", "2019-07-31T06:00:00Z", "2019-07-31T12:00:00Z", "2019-07-31T18:00:00Z", "2019-08-01T00:00:00Z", "2019-08-01T06:00:00Z", "2019-08-01T12:00:00Z", "2019-08-01T18:00:00Z", "2019-08-02T00:00:00Z", "2019-08-02T06:00:00Z", "2019-08-02T12:00:00Z", "2019-08-02T18:00:00Z", "2019-08-03T00:00:00Z", "2019-08-03T06:00:00Z", "2019-08-03T12:00:00Z", "2019-08-03T18:00:00Z", "2019-08-04T00:00:00Z", "2019-08-04T06:00:00Z" ],
10 | "pressure" : [ 1002.0, 998.0, 996.0, 994.0, 994.0, 992.0, 992.0, 990.0, 990.0, 990.0, 990.0, 990.0, 990.0, 985.0, 990.0, 992.0, 992.0, 992.0, 994.0, 996.0, 998.0 ],
11 | "wind" : [ 0.0, 0.0, 0.0, 35.0, 35.0, 35.0, 35.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 45.0, 40.0, 35.0, 35.0, 35.0, 0.0, 0.0, 0.0 ],
12 | "class" : [ 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 2.0, 2.0, 2.0 ]
13 | }
14 | }
--------------------------------------------------------------------------------
/Stinuum Web/data/MF-JSON Trajectory/Feature/201908.en-trajectory.json:
--------------------------------------------------------------------------------
1 | {
2 | "type" : "Feature",
3 | "id": "typhoon_8",
4 | "geometry" : {
5 | "type" : "LineString",
6 | "coordinates" : [ [ 154.7, 17.4 ], [ 154.4, 18.1 ], [ 154.1, 18.7 ], [ 153.5, 19.5 ], [ 152.9, 20.3 ], [ 152.1, 21.3 ], [ 151.2, 22.3 ], [ 150.0, 23.3 ], [ 148.6, 24.3 ], [ 147.4, 25.1 ], [ 146.1, 25.9 ], [ 145.3, 26.3 ], [ 144.6, 26.7 ], [ 143.9, 27.1 ], [ 143.1, 27.6 ], [ 142.3, 28.1 ], [ 141.4, 28.6 ], [ 140.1, 29.2 ], [ 138.2, 29.9 ], [ 136.2, 30.4 ], [ 134.6, 30.8 ], [ 133.8, 31.0 ], [ 133.0, 31.2 ], [ 132.4, 31.4 ], [ 131.9, 31.8 ], [ 131.5, 31.9 ], [ 131.3, 32.1 ], [ 130.6, 32.8 ], [ 130.0, 33.4 ], [ 129.8, 34.0 ], [ 129.5, 35.1 ], [ 128.8, 36.7 ], [ 129.0, 37.9 ], [ 129.2, 38.7 ], [ 129.7, 39.6 ], [ 130.9, 40.8 ], [ 132.7, 41.5 ], [ 135.3, 42.5 ], [ 137.1, 42.8 ], [ 139.5, 43.0 ], [ 142.0, 42.9 ], [ 145.5, 41.9 ], [ 148.7, 41.0 ], [ 152.0, 40.6 ], [ 155.5, 40.3 ], [ 159.2, 40.0 ], [ 163.1, 40.2 ], [ 167.1, 41.0 ], [ 170.1, 41.5 ], [ 172.2, 42.5 ] ]
7 | },
8 | "properties" : {
9 | "datetimes" : [ "2019-08-01T00:00:00Z", "2019-08-01T06:00:00Z", "2019-08-01T12:00:00Z", "2019-08-01T18:00:00Z", "2019-08-02T00:00:00Z", "2019-08-02T06:00:00Z", "2019-08-02T12:00:00Z", "2019-08-02T18:00:00Z", "2019-08-03T00:00:00Z", "2019-08-03T06:00:00Z", "2019-08-03T12:00:00Z", "2019-08-03T15:00:00Z", "2019-08-03T18:00:00Z", "2019-08-03T21:00:00Z", "2019-08-04T00:00:00Z", "2019-08-04T03:00:00Z", "2019-08-04T06:00:00Z", "2019-08-04T12:00:00Z", "2019-08-04T18:00:00Z", "2019-08-05T00:00:00Z", "2019-08-05T06:00:00Z", "2019-08-05T09:00:00Z", "2019-08-05T12:00:00Z", "2019-08-05T15:00:00Z", "2019-08-05T18:00:00Z", "2019-08-05T20:00:00Z", "2019-08-05T21:00:00Z", "2019-08-06T00:00:00Z", "2019-08-06T03:00:00Z", "2019-08-06T06:00:00Z", "2019-08-06T12:00:00Z", "2019-08-06T18:00:00Z", "2019-08-07T00:00:00Z", "2019-08-07T06:00:00Z", "2019-08-07T12:00:00Z", "2019-08-07T18:00:00Z", "2019-08-08T00:00:00Z", "2019-08-08T06:00:00Z", "2019-08-08T12:00:00Z", "2019-08-08T18:00:00Z", "2019-08-09T00:00:00Z", "2019-08-09T06:00:00Z", "2019-08-09T12:00:00Z", "2019-08-09T18:00:00Z", "2019-08-10T00:00:00Z", "2019-08-10T06:00:00Z", "2019-08-10T12:00:00Z", "2019-08-10T18:00:00Z", "2019-08-11T00:00:00Z", "2019-08-11T06:00:00Z" ],
10 | "pressure" : [ 1002.0, 1002.0, 1002.0, 1000.0, 1000.0, 1000.0, 998.0, 998.0, 998.0, 996.0, 996.0, 996.0, 992.0, 990.0, 990.0, 990.0, 990.0, 985.0, 980.0, 980.0, 980.0, 975.0, 970.0, 970.0, 970.0, 970.0, 975.0, 992.0, 996.0, 998.0, 1000.0, 1000.0, 1000.0, 1002.0, 1002.0, 1000.0, 1000.0, 1000.0, 1000.0, 996.0, 1000.0, 1002.0, 1002.0, 1004.0, 1006.0, 1006.0, 1006.0, 1006.0, 1006.0 ],
11 | "wind" : [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 35.0, 35.0, 35.0, 40.0, 40.0, 40.0, 45.0, 50.0, 50.0, 50.0, 50.0, 55.0, 60.0, 60.0, 60.0, 65.0, 70.0, 70.0, 70.0, 70.0, 65.0, 45.0, 40.0, 35.0, 35.0, 35.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ],
12 | "class" : [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 3.0, 3.0, 3.0, 3.0, 3.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0, 6.0 ]
13 | }
14 | }
--------------------------------------------------------------------------------
/Stinuum Web/data/MF-JSON Trajectory/Feature/201909.en-trajectory.json:
--------------------------------------------------------------------------------
1 | {
2 | "type" : "Feature",
3 | "id": "typhoon_9",
4 | "geometry" : {
5 | "type" : "LineString",
6 | "coordinates" : [ [ 134.3, 14.5 ], [ 133.8, 14.4 ], [ 133.3, 14.3 ], [ 132.8, 14.3 ], [ 132.3, 14.5 ], [ 131.9, 15.0 ], [ 131.5, 15.7 ], [ 131.0, 16.3 ], [ 130.6, 16.9 ], [ 130.2, 17.5 ], [ 130.1, 17.7 ], [ 130.0, 17.9 ], [ 129.9, 18.0 ], [ 129.8, 18.2 ], [ 129.5, 18.5 ], [ 129.3, 18.8 ], [ 129.0, 19.2 ], [ 128.7, 19.5 ], [ 128.4, 19.9 ], [ 128.1, 20.4 ], [ 127.6, 21.0 ], [ 127.0, 21.6 ], [ 126.5, 22.1 ], [ 126.2, 22.4 ], [ 126.0, 22.7 ], [ 125.7, 23.2 ], [ 125.4, 23.6 ], [ 125.2, 24.0 ], [ 125.0, 24.3 ], [ 124.8, 24.9 ], [ 124.5, 25.5 ], [ 124.0, 26.0 ], [ 123.4, 26.4 ], [ 122.5, 27.1 ], [ 122.0, 27.5 ], [ 121.3, 28.2 ], [ 120.7, 29.1 ], [ 120.4, 29.9 ], [ 120.4, 30.8 ], [ 120.3, 32.3 ], [ 120.1, 33.6 ], [ 120.0, 35.0 ], [ 120.0, 35.9 ], [ 120.1, 37.1 ], [ 119.6, 37.8 ], [ 119.5, 37.9 ], [ 119.6, 36.9 ], [ 120.0, 37.0 ], [ 120.0, 37.2 ], [ 120.5, 38.1 ], [ 120.9, 38.6 ], [ 121.1, 38.9 ], [ 121.4, 38.8 ], [ 121.5, 38.8 ], [ 121.7, 38.6 ], [ 121.9, 38.4 ] ]
7 | },
8 | "properties" : {
9 | "datetimes" : [ "2019-08-02T06:00:00Z", "2019-08-02T12:00:00Z", "2019-08-02T18:00:00Z", "2019-08-03T00:00:00Z", "2019-08-03T06:00:00Z", "2019-08-03T12:00:00Z", "2019-08-03T18:00:00Z", "2019-08-04T00:00:00Z", "2019-08-04T06:00:00Z", "2019-08-04T12:00:00Z", "2019-08-04T18:00:00Z", "2019-08-05T00:00:00Z", "2019-08-05T06:00:00Z", "2019-08-05T12:00:00Z", "2019-08-05T18:00:00Z", "2019-08-06T00:00:00Z", "2019-08-06T06:00:00Z", "2019-08-06T12:00:00Z", "2019-08-06T18:00:00Z", "2019-08-07T00:00:00Z", "2019-08-07T06:00:00Z", "2019-08-07T12:00:00Z", "2019-08-07T18:00:00Z", "2019-08-07T21:00:00Z", "2019-08-08T00:00:00Z", "2019-08-08T03:00:00Z", "2019-08-08T06:00:00Z", "2019-08-08T09:00:00Z", "2019-08-08T12:00:00Z", "2019-08-08T15:00:00Z", "2019-08-08T18:00:00Z", "2019-08-08T21:00:00Z", "2019-08-09T00:00:00Z", "2019-08-09T06:00:00Z", "2019-08-09T12:00:00Z", "2019-08-09T18:00:00Z", "2019-08-10T00:00:00Z", "2019-08-10T06:00:00Z", "2019-08-10T12:00:00Z", "2019-08-10T18:00:00Z", "2019-08-11T00:00:00Z", "2019-08-11T06:00:00Z", "2019-08-11T12:00:00Z", "2019-08-11T18:00:00Z", "2019-08-12T00:00:00Z", "2019-08-12T06:00:00Z", "2019-08-12T12:00:00Z", "2019-08-12T18:00:00Z", "2019-08-13T00:00:00Z", "2019-08-13T06:00:00Z", "2019-08-13T12:00:00Z", "2019-08-13T18:00:00Z", "2019-08-14T00:00:00Z", "2019-08-14T06:00:00Z", "2019-08-14T12:00:00Z", "2019-08-14T18:00:00Z" ],
10 | "pressure" : [ 1002.0, 1002.0, 1000.0, 1000.0, 1000.0, 1000.0, 998.0, 998.0, 994.0, 994.0, 994.0, 994.0, 990.0, 990.0, 985.0, 985.0, 980.0, 975.0, 970.0, 960.0, 950.0, 940.0, 935.0, 935.0, 935.0, 935.0, 930.0, 930.0, 925.0, 925.0, 935.0, 935.0, 940.0, 940.0, 940.0, 950.0, 970.0, 975.0, 980.0, 980.0, 980.0, 980.0, 980.0, 980.0, 985.0, 985.0, 990.0, 992.0, 996.0, 996.0, 998.0, 998.0, 1000.0, 1000.0, 998.0 ],
11 | "wind" : [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 35.0, 40.0, 40.0, 40.0, 45.0, 45.0, 50.0, 50.0, 55.0, 65.0, 70.0, 75.0, 80.0, 90.0, 95.0, 95.0, 95.0, 95.0, 100.0, 100.0, 105.0, 105.0, 95.0, 95.0, 90.0, 90.0, 90.0, 85.0, 60.0, 50.0, 45.0, 45.0, 45.0, 45.0, 45.0, 40.0, 35.0, 35.0, 35.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ],
12 | "class" : [ 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 4.0, 4.0, 4.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 4.0, 4.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 2.0, 2.0, 2.0, 2.0, 2.0, 6.0, 6.0, 6.0 ]
13 | }
14 | }
--------------------------------------------------------------------------------
/Stinuum Web/data/MF-JSON Trajectory/Feature/201910.en-trajectory.json:
--------------------------------------------------------------------------------
1 | {
2 | "type" : "Feature",
3 | "id": "typhoon_10",
4 | "geometry" : {
5 | "type" : "LineString",
6 | "coordinates" : [ [ 147.7, 15.6 ], [ 146.5, 16.1 ], [ 145.2, 16.8 ], [ 144.0, 17.5 ], [ 143.4, 18.0 ], [ 142.8, 18.5 ], [ 142.4, 18.9 ], [ 142.1, 19.7 ], [ 141.9, 20.5 ], [ 141.4, 21.1 ], [ 141.0, 21.5 ], [ 140.8, 21.7 ], [ 140.5, 21.9 ], [ 140.6, 22.1 ], [ 140.7, 22.1 ], [ 141.0, 22.0 ], [ 141.1, 22.0 ], [ 141.3, 22.0 ], [ 141.4, 22.2 ], [ 141.4, 22.3 ], [ 141.3, 22.7 ], [ 141.0, 22.9 ], [ 140.7, 22.8 ], [ 140.5, 22.7 ], [ 140.3, 23.1 ], [ 139.8, 23.6 ], [ 139.2, 24.0 ], [ 138.5, 24.2 ], [ 138.0, 24.7 ], [ 137.7, 25.0 ], [ 137.1, 25.9 ], [ 136.4, 26.8 ], [ 135.2, 27.4 ], [ 134.7, 27.6 ], [ 134.3, 28.1 ], [ 133.5, 28.3 ], [ 133.4, 28.4 ], [ 133.2, 28.8 ], [ 133.1, 29.1 ], [ 133.1, 29.6 ], [ 133.0, 30.1 ], [ 132.9, 30.6 ], [ 132.7, 30.8 ], [ 132.6, 31.7 ], [ 132.6, 32.2 ], [ 132.4, 32.7 ], [ 132.3, 33.4 ], [ 132.3, 33.6 ], [ 132.6, 34.3 ], [ 133.0, 35.3 ], [ 133.1, 36.2 ], [ 133.5, 38.0 ], [ 134.3, 39.9 ], [ 135.6, 40.9 ], [ 138.0, 43.0 ], [ 138.5, 43.7 ], [ 140.1, 44.4 ], [ 140.5, 44.7 ], [ 141.0, 45.1 ] ]
7 | },
8 | "properties" : {
9 | "datetimes" : [ "2019-08-05T00:00:00Z", "2019-08-05T06:00:00Z", "2019-08-05T12:00:00Z", "2019-08-05T18:00:00Z", "2019-08-06T00:00:00Z", "2019-08-06T06:00:00Z", "2019-08-06T12:00:00Z", "2019-08-06T18:00:00Z", "2019-08-07T00:00:00Z", "2019-08-07T06:00:00Z", "2019-08-07T12:00:00Z", "2019-08-07T18:00:00Z", "2019-08-08T00:00:00Z", "2019-08-08T06:00:00Z", "2019-08-08T12:00:00Z", "2019-08-08T18:00:00Z", "2019-08-09T00:00:00Z", "2019-08-09T06:00:00Z", "2019-08-09T12:00:00Z", "2019-08-09T18:00:00Z", "2019-08-10T00:00:00Z", "2019-08-10T06:00:00Z", "2019-08-10T12:00:00Z", "2019-08-10T18:00:00Z", "2019-08-11T00:00:00Z", "2019-08-11T06:00:00Z", "2019-08-11T12:00:00Z", "2019-08-11T18:00:00Z", "2019-08-12T00:00:00Z", "2019-08-12T06:00:00Z", "2019-08-12T12:00:00Z", "2019-08-12T18:00:00Z", "2019-08-13T00:00:00Z", "2019-08-13T06:00:00Z", "2019-08-13T12:00:00Z", "2019-08-13T18:00:00Z", "2019-08-13T21:00:00Z", "2019-08-14T00:00:00Z", "2019-08-14T03:00:00Z", "2019-08-14T06:00:00Z", "2019-08-14T09:00:00Z", "2019-08-14T12:00:00Z", "2019-08-14T15:00:00Z", "2019-08-14T18:00:00Z", "2019-08-14T21:00:00Z", "2019-08-15T00:00:00Z", "2019-08-15T02:00:00Z", "2019-08-15T03:00:00Z", "2019-08-15T06:00:00Z", "2019-08-15T09:00:00Z", "2019-08-15T12:00:00Z", "2019-08-15T18:00:00Z", "2019-08-16T00:00:00Z", "2019-08-16T06:00:00Z", "2019-08-16T12:00:00Z", "2019-08-16T18:00:00Z", "2019-08-17T00:00:00Z", "2019-08-17T06:00:00Z", "2019-08-17T12:00:00Z" ],
10 | "pressure" : [ 1004.0, 1000.0, 1000.0, 1000.0, 1000.0, 998.0, 996.0, 992.0, 990.0, 990.0, 980.0, 975.0, 970.0, 965.0, 965.0, 965.0, 965.0, 965.0, 965.0, 965.0, 965.0, 965.0, 965.0, 965.0, 965.0, 965.0, 965.0, 965.0, 965.0, 970.0, 970.0, 970.0, 970.0, 970.0, 970.0, 965.0, 965.0, 965.0, 965.0, 965.0, 965.0, 965.0, 965.0, 970.0, 975.0, 975.0, 975.0, 975.0, 978.0, 978.0, 980.0, 980.0, 980.0, 980.0, 984.0, 986.0, 990.0, 994.0 ],
11 | "wind" : [ 0.0, 0.0, 0.0, 0.0, 0.0, 35.0, 40.0, 45.0, 50.0, 50.0, 60.0, 65.0, 70.0, 75.0, 75.0, 75.0, 75.0, 75.0, 75.0, 70.0, 70.0, 65.0, 65.0, 65.0, 65.0, 65.0, 60.0, 60.0, 60.0, 50.0, 50.0, 50.0, 50.0, 50.0, 50.0, 55.0, 55.0, 55.0, 55.0, 55.0, 55.0, 55.0, 55.0, 55.0, 55.0, 50.0, 50.0, 50.0, 45.0, 45.0, 45.0, 45.0, 45.0, 45.0, 0.0, 0.0, 0.0, 0.0 ],
12 | "class" : [ 2.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 4.0, 4.0, 4.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 6.0, 6.0, 6.0, 6.0 ]
13 | }
14 | }
--------------------------------------------------------------------------------
/Stinuum Web/documents/image/AnimationWidget.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/AnimationWidget.gif
--------------------------------------------------------------------------------
/Stinuum Web/documents/image/AnimationWidget2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/AnimationWidget2.gif
--------------------------------------------------------------------------------
/Stinuum Web/documents/image/Graph1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Graph1.png
--------------------------------------------------------------------------------
/Stinuum Web/documents/image/Graph2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Graph2.png
--------------------------------------------------------------------------------
/Stinuum Web/documents/image/Graph3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Graph3.png
--------------------------------------------------------------------------------
/Stinuum Web/documents/image/Image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Image.png
--------------------------------------------------------------------------------
/Stinuum Web/documents/image/Layers1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Layers1.png
--------------------------------------------------------------------------------
/Stinuum Web/documents/image/Layers2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Layers2.png
--------------------------------------------------------------------------------
/Stinuum Web/documents/image/MFCollection.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/MFCollection.png
--------------------------------------------------------------------------------
/Stinuum Web/documents/image/Main.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Main.png
--------------------------------------------------------------------------------
/Stinuum Web/documents/image/Rader.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Rader.png
--------------------------------------------------------------------------------
/Stinuum Web/documents/image/SceneModePicker1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/SceneModePicker1.png
--------------------------------------------------------------------------------
/Stinuum Web/documents/image/SceneModePicker2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/SceneModePicker2.png
--------------------------------------------------------------------------------
/Stinuum Web/documents/image/Server-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Server-1.png
--------------------------------------------------------------------------------
/Stinuum Web/documents/image/Server-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Server-2.png
--------------------------------------------------------------------------------
/Stinuum Web/documents/image/Server-3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Server-3.png
--------------------------------------------------------------------------------
/Stinuum Web/documents/image/Server-4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Server-4.png
--------------------------------------------------------------------------------
/Stinuum Web/documents/image/Server-5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Server-5.png
--------------------------------------------------------------------------------
/Stinuum Web/documents/image/Server.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Server.png
--------------------------------------------------------------------------------
/Stinuum Web/documents/image/ServerLogin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/ServerLogin.png
--------------------------------------------------------------------------------
/Stinuum Web/documents/image/Slice.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Slice.png
--------------------------------------------------------------------------------
/Stinuum Web/documents/image/StinuumWeb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/StinuumWeb.png
--------------------------------------------------------------------------------
/Stinuum Web/documents/image/Text.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Text.png
--------------------------------------------------------------------------------
/Stinuum Web/documents/image/Upload.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/Upload.png
--------------------------------------------------------------------------------
/Stinuum Web/documents/image/get.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/get.png
--------------------------------------------------------------------------------
/Stinuum Web/documents/image/get2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/get2.png
--------------------------------------------------------------------------------
/Stinuum Web/documents/image/get3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/get3.png
--------------------------------------------------------------------------------
/Stinuum Web/documents/image/get4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/get4.png
--------------------------------------------------------------------------------
/Stinuum Web/documents/image/get5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/documents/image/get5.png
--------------------------------------------------------------------------------
/Stinuum Web/img/skill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Stinuum Web/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "stinuum-dev",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "author": "",
10 | "license": "ISC",
11 | "dependencies": {
12 | "axios": "^1.4.0",
13 | "cesium": "1.73",
14 | "ejs": "^3.1.9",
15 | "express": "^4.18.2",
16 | "request": "^2.88.2"
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Stinuum Web/routes/login.js:
--------------------------------------------------------------------------------
1 | // var express = require('express');
2 | // var router = express.Router();
3 | // var serverCon = require('../ConnectFunction');
4 | //
5 | //
6 | // router.get('/', function(req, res, next) {
7 | // res.render('login', { title: 'Express' });
8 | // });
9 | // router.post("/login", function(req, res){
10 | // console.log(req)
11 | // if(req.body.check==0){
12 | // let parameters = {
13 | // id: req.body.token
14 | // }
15 | // serverCon.GET(req.body.address, parameters, res)
16 | // }else{
17 | // serverCon.ServerLogin(req.body.address, req.body.name ,req.body.password, res)
18 | // }
19 | // });
20 | // router.get('/main', function(req, res, next) {
21 | // res.render('demo', {});
22 | // });
23 | // router.get('/dataSelect', function(req, res, next) {
24 | // res.render('dataSelect', { title: 'Express' });
25 | // });
26 | // router.post("/datalist", function(req, res){
27 | // let parameters = {
28 | // limit: req.body.count,
29 | // token: req.body.token,
30 | // session_id: req.body.session_id
31 | // }
32 | // serverCon.GET(req.body.address, parameters, res)
33 | // });
34 | // router.post("/eachFeature", function(req, res){
35 | // console.log("eachFeature")
36 | // console.log(req.body)
37 | // let parameters = {
38 | // token: req.body.token,
39 | // session_id: req.body.session_id
40 | // }
41 | // if (req.body.type == undefined){
42 | // var address = req.body.address+"/"+req.body.title+"//featureKeys"
43 | // serverCon.GET(address, parameters, res)
44 | // }
45 | // else{
46 | // if (req.body.type == "-1"){
47 | // console.log("Get featureValue")
48 | // serverCon.GET(req.body.address, parameters, res)
49 | // }
50 | // else if (req.body.type == "0"){
51 | // console.log("Get TemporalGeometry")
52 | // console.log(Array.isArray(req.body.time))
53 | // if (Array.isArray(req.body.time) && req.body.time.length == 2){
54 | // parameters['time'] = req.body.time[0] + ',' + req.body.time[1]
55 | // }else{
56 | // parameters['time'] = req.body.time
57 | // }
58 | // parameters['limit']= req.body.limit
59 | // serverCon.GET(req.body.address, parameters, res)
60 | // }
61 | // else if (req.body.type == "1"){
62 | // console.log("Get TemporalProperties")
63 | // console.log(Array.isArray(req.body.time))
64 | // // parameters['name'] = req.body.name
65 | // if (Array.isArray(req.body.time) && req.body.time.length == 2){
66 | // parameters['time'] = req.body.time[0] + ',' + req.body.time[1]
67 | // }else{
68 | // parameters['time'] = req.body.time
69 | // }
70 | // parameters['limit']= req.body.limit
71 | // serverCon.GET(req.body.address, parameters, res)
72 | // }
73 | // }
74 | // });
75 | // module.exports = router;
76 |
--------------------------------------------------------------------------------
/Stinuum Web/src/css/bs.css:
--------------------------------------------------------------------------------
1 |
2 | .list-title{
3 | font-size : 140%;
4 | padding: 10px;
5 | background-color: #787878;
6 | border-color: black;
7 | border: 1px;
8 | text-align: center;
9 | z-index: 2;
10 | color: #fff;
11 | border-top-left-radius: 4px;
12 | border-top-right-radius: 4px;
13 | white-space: pre-wrap;
14 | text-decoration: none;
15 | position: relative;
16 | display: block;
17 | }
18 | /*
19 | .layer-list-item : last-child{
20 | margin-bottom: 0;
21 | border-bottom-right-radius: 4px;
22 | border-bottom-left-radius: 4px;
23 | }
24 |
25 | .layer-list-item : first-child{
26 | border-top-left-radius: 4px;
27 | border-top-right-radius: 4px;
28 | }
29 |
30 | .layer-list-item{
31 | padding: 6px;
32 | white-space: pre-wrap;
33 | color: white;
34 | text-decoration: none;
35 | background-color: rgba(0, 0, 0, 0);
36 | border-width: 0px;
37 | position: relative;
38 | display: block;
39 | margin-bottom: -1px;
40 | }
41 | */
42 | .axis text {
43 | font-family: sans-serif;
44 | font-size: small;
45 |
46 | }
47 | .text{
48 | font-size : small;
49 | }
50 | .slider-handle{
51 | background-color: black;
52 | }
53 | .slider.slider-vertical{
54 | height : 70%
55 | }
56 | /*
57 | .input-group {
58 | margin-left: auto;
59 | margin-right: auto;
60 | display: inline-block;
61 | }
62 | */
63 | input[type=checkbox], input[type=radio] {
64 | margin-right: 5px;
65 | }
66 |
67 | /*
68 | .list-group-item.active:hover {
69 | background-color: #787878;
70 | }
71 | */
72 |
73 |
74 | .property-list{
75 | padding: 5px;
76 | color: #FFFFFF;
77 | white-space: pre-wrap;
78 | color: white;
79 | text-decoration: none;
80 | background-color: rgba(0, 0, 0, 0);
81 | border-width: 0px;
82 | }
83 |
84 |
85 | a {
86 | color: white;
87 | text-decoration: none;
88 |
89 | }
90 |
91 | a:hover {
92 | color: white;
93 | text-decoration: none;
94 | }
95 |
96 | .list-group {
97 | padding: 0px;
98 | white-space: pre-wrap;
99 | color: white;
100 | border-width: 0px;
101 | }
102 |
103 | .cesium-viewer-toolbar {
104 | z-index: 30;
105 | }
106 |
107 | .cesium-svgPath-svg.cesium-sceneModePicker-slide-svg {
108 | z-index: 30;
109 | }
110 |
111 | .cesium-svgPath-svg {
112 | z-index: 30;
113 | }
114 |
115 | .list-group-item.active {
116 | background-color: #787878;
117 | border-color: black;
118 | border: 1px;
119 | text-align: center;
120 | cursor:default;
121 | }
122 |
123 | .axis text {
124 | fill: white;
125 | }
126 |
127 | .axis line {
128 | stroke: white;
129 | }
130 |
131 | .axis path {
132 | stroke: white;
133 | }
134 |
135 | .wrapper {
136 | margin: 0 auto;
137 | }
138 |
139 | .column {
140 | float: left;
141 | width: 30%;
142 | }
143 |
144 |
145 | .left_toolbar_div {
146 | border-radius: 4px;
147 | border: 1px solid;
148 | box-shadow: 0 1px 1px rgba(0,0,0,.05);
149 | }
150 |
151 |
152 | * {
153 | padding: 0;
154 | margin: 0;
155 | }
156 |
157 | body {
158 | font: 16px/1 sans-serif;
159 | }
160 |
161 | .panel>.list-group .list-group-item {
162 | border-width: 0px;
163 | }
164 |
165 | .list-group-item.active.list-title {
166 | font-size: 20px;
167 | padding: 10px;
168 | }
169 |
170 | .context-menu {
171 | border : 1px solid rgb(255,255,255);
172 | color : white;
173 | text-align: center;
174 | font-size:100%;
175 | width : 100%;
176 | line-height: 100%;
177 | padding : 5px;
178 | cursor: pointer;
179 | }
180 |
--------------------------------------------------------------------------------
/Stinuum Web/src/css/demo_style copy.css:
--------------------------------------------------------------------------------
1 | .axis path,
2 | .axis line {
3 | fill: none;
4 | stroke: black;
5 | shape-rendering: crispEdges;
6 | }
7 | .axis text {
8 | font-family: sans-serif;
9 | font-size: 10px;
10 | }
11 | .timeline-label {
12 | font-family: sans-serif;
13 | font-size: 12px;
14 | }
15 | #timeline2 .axis {
16 | transform: translate(0px,40px);
17 | -ms-transform: translate(0px,40px); /* IE 9 */
18 | -webkit-transform: translate(0px,40px); /* Safari and Chrome */
19 | -o-transform: translate(0px,40px); /* Opera */
20 | -moz-transform: translate(0px,40px); /* Firefox */
21 | }
22 |
23 | .coloredDiv {
24 | height:20px; width:20px; float:left;
25 | }
--------------------------------------------------------------------------------
/Stinuum Web/src/css/mfjson.css:
--------------------------------------------------------------------------------
1 | .mfjson {
2 | position: absolute;
3 | z-index: 3;
4 | bottom: 0;
5 | top: 40px;
6 | right: 0;
7 | height: 90%;
8 | width: 40%;
9 | min-width: 400px;
10 | box-sizing: border-box;
11 | background-color: #fff;
12 | transition: all 200ms;
13 | -webkit-transition: all 200ms;
14 | box-shadow: rgba(0,0,0,0.1) -2px 0px 0px;
15 | }
16 | .top .buttons {
17 | margin-left: 28px;
18 | height: 40px;
19 | }
20 | .top .buttons button {
21 | padding: 10px 15px;
22 | font-weight: normal;
23 | height: 40px;
24 | border: 0;
25 | vertical-align: top;
26 |
27 | }
28 |
29 | #editor {
30 |
31 | z-index: 3;
32 | width: 100%;
33 | height: 100%;
34 | }
35 |
36 |
--------------------------------------------------------------------------------
/Stinuum Web/src/css/style_test.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | }
4 |
5 | .cesium {
6 | position: absolute;
7 | left: 0;
8 | top: 0;
9 | right: 0;
10 | bottom: 0;
11 | }
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/ConnectFunction.md:
--------------------------------------------------------------------------------
1 | # ConnectFunction.js
2 |
3 | It is the Module to connect between Nodejs and Server.
4 |
5 | ```js
6 | const serverConnect = require('./ConnectFunction');
7 | serverConnect.ServerLogin(address, name, password, res);
8 | serverConnect.GET(address, parameters, res);
9 | serverConnect.POST(address, parameters, res);
10 | ```
11 |
12 | ## Methods
13 |
14 | * __ServerLogin(address, name, password, res)__
15 |
16 | Log-in the Server using the address, name and password
17 |
18 | | Name | Type | Default | Description |
19 | | ---------- | :--------- | :---------- | :---------- |
20 | | address | String || Address to login the server |
21 | | name | String || Username |
22 | | password | String || Password |
23 | | res | Object || response object of nodejs |
24 |
25 | Example:
26 | ```js
27 | ...
28 | const serverConnect = require('./ConnectFunction');
29 | app.post("/YourPage", function(request, response){
30 | serverConnect.ServerLogin(request.body.address, request.body.name, request.body.password, response)
31 | });
32 | ```
33 |
34 |
35 |
36 | * __GET(address, parameters, res)__
37 |
38 | Get the data using the address and parameters from the server
39 |
40 | | Name | Type | Default | Description |
41 | | ---------- | :--------- | :---------- | :---------- |
42 | | address | String || Address to get the data |
43 | | parameters | Object || Data is required by the server |
44 | | res | Object ||response object of nodejs |
45 |
46 | Example:
47 | ```js
48 | ...
49 | const serverConnect = require('./ConnectFunction');
50 | app.post("/YourPage", function(request, response){
51 | serverConnect.GET(request.body.address, parameters, response)
52 | });
53 | ```
54 |
55 |
56 |
57 | * __POST(address, parameters, res)__
58 |
59 | Post the data using address and parameters into the server
60 |
61 | | Name | Type | Default | Description |
62 | | ---------- | :--------- | :---------- | :---------- |
63 | | address | String || Address to get the data |
64 | | parameters | Object || Data is required by the server |
65 | | res | Object ||response object of nodejs |
66 |
67 | Example:
68 | ```js
69 | ...
70 | const serverConnect = require('./ConnectFunction');
71 | app.post("/YourPage", function(request, response){
72 | serverConnect.POST(request.body.address, parameters, response)
73 | });
74 | ```
75 |
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/DirectionRadar.md:
--------------------------------------------------------------------------------
1 | # Stinuum.DirectionRadar
2 |
3 | ```js
4 | var stinuum = new Stinuum(viewer);
5 | console.log(stinuum.directionRadar);
6 | ```
7 |
8 | ## Members
9 |
10 | There is no member that user can access.
11 |
12 | ## Methods
13 |
14 | * `static` ___drawBackRadar(canvasID)___
15 |
16 | Before drawing radar calculated, method draws background radar made by green dashed line.
17 |
18 | | Name | Type | Default | Description |
19 | | ---------- | :--------- | :---------- | :---------- |
20 | | canvasID | String | | Id of `canvas` tag. |
21 |
22 | Example :
23 |
24 | ```js
25 |
26 | ...
27 | Stinuum.DirectionRadar.drawBackRadar('radar');
28 | ```
29 |
30 |
31 |
32 |
33 | * __show(canvasID)__
34 |
35 | Calculate direction information of features in [Stinuum.mfCollection](https://github.com/aistairc/mf-cesium/blob/master/reference/MFCollection.md) and show radar to canvas. Browser should support canvas in order to draw DirectionRadar.
36 |
37 | | Name | Type | Default | Description |
38 | | ---------- | :--------- | :---------- | :---------- |
39 | | canvasID | String | | Id of `canvas` tag. |
40 |
41 |
42 | Example :
43 |
44 | ```js
45 |
46 | ...
47 | stinuum.directionRadar.show('radar');
48 | ```
49 |
50 |
51 |
52 |
53 | * __remove(canvasID)__
54 |
55 | hide Radar.
56 |
57 | | Name | Type | Default | Description |
58 | | ---------- | :--------- | :---------- | :---------- |
59 | | canvasID | String | | Id of `canvas` tag. |
60 |
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/GeometryViewer.md:
--------------------------------------------------------------------------------
1 | # Stinuum.GeometryViewer
2 |
3 | It visualizes features not in __hiddenFeatures__ only in __Stinuum.mfCollection.features__.
4 |
5 | ```js
6 | var stinuum = new Stinuum(viewer);
7 | console.log(stinuum.geometryViewer);
8 | ```
9 |
10 | ## Members
11 |
12 | There is no member that user can access.
13 |
14 | ## Methods
15 |
16 | * __update()__
17 |
18 | If there is any feature in __Stinuum.mfCollection.features__, then visualize them.
19 |
20 |
21 |
22 | * __clear()__
23 |
24 | Clear Cesium.Viewer, but __features__ of MFCollection is not changed. It means this method just clear viewer temporaly.
25 |
26 |
27 |
28 | * __clickMovingFeature(id)__
29 |
30 | Make highlight of certain feature such as mouse click.
31 |
32 | Example :
33 |
34 | ```js
35 | var handler = new Cesium.ScreenSpaceEventHandler(this.viewer.scene.canvas);
36 | handler.setInputAction(function(movement) {
37 | var pick = scene.pick(movement.position);
38 | if (Cesium.defined(pick)) {
39 | if(pick.primitive.id !== undefined){
40 | stinuum.geometryViewer.clickMovingFeature(pick.primitive.id);
41 | }
42 | }
43 | }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
44 | ```
45 | * __animate()__
46 |
47 | If there is any feature in __Stinuum.mfCollection.features__, then visualize them.
48 |
49 |
50 |
51 |
52 | * __drawZaxis()__
53 |
54 | If map is Space-time 3D map, creating a 3D graph using Minimum and Maximum times(z-axis) of MovingFeautres, x and y coordinates of map
55 |
56 |
57 |
58 | * __drawZaxisLabel()__
59 |
60 | Add a time label at a point where the time axis is divided by five part
61 |
62 |
63 |
64 | * __adjustCameraView()__
65 |
66 | If map changes, camera view changes about the type of map
67 |
68 |
69 |
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/Imagemarking.md:
--------------------------------------------------------------------------------
1 | # Stinuum.Imagemarking
2 |
3 | Showing images according to the ParametricValues data in temporalProperties of MF-JSON.
4 |
5 | ```js
6 | var stinuum = new Stinuum(viewer);
7 | console.log(stinuum.Imagemarking);
8 | ```
9 |
10 | ## Members
11 |
12 | There is no member that user can access.
13 |
14 | ## Methods
15 |
16 | * __remove(canvasID)__
17 |
18 | Remove the image viewer using __canvasID__
19 |
20 | Example :
21 | ```js
22 | stinuum.Imagemarking.remove(canvasID);
23 | ```
24 |
25 |
26 |
27 | * __show_img(pro_type_arr, image)__
28 |
29 | Get the temporalProperties value using the pro_type_arr
30 |
31 | | Name | Type | Default | Description |
32 | | ---------- | :--------- | :---------- | :---------- |
33 | | pro_type_arr | Array | | Array of ParameticValues that is selected by user |
34 | | image | String || Id of `canvas` tag|
35 |
36 |
37 |
38 | * __checkType(imageValue)__
39 |
40 | Check whether image value is address or Base64
41 |
42 | | Name | Type | Default | Description |
43 | | ---------- | :--------- | :---------- | :---------- |
44 | | imageValue | String | | Data of Image |
45 |
46 |
47 |
48 | * __onTick(current_time)__
49 |
50 | Obtain the image upload time by comparing Cesium browser time and canvas time
51 |
52 | | Name | Type | Default | Description |
53 | | ---------- | :--------- | :---------- | :---------- |
54 | | current_time | Date | | Current time of Cesium browser |
55 |
56 |
57 |
58 | * __showImage(image_div)__
59 |
60 | The image exposure time is determined according to the interpolation value of the ParameticValue
61 | ( Only __"Discrete"__ and __"Step"__ can be used among Interpolation values )
62 |
63 | | Name | Type | Default | Description |
64 | | ---------- | :--------- | :---------- | :---------- |
65 | | image_div | String | | Data of `canvas` tag |
66 |
67 |
68 |
69 | * __draw_image(ctx, src, width, height)__
70 |
71 | Upload the image to fit the size of the canvas
72 |
73 | | Name | Type | Default | Description |
74 | | ---------- | :--------- | :---------- | :---------- |
75 | | ctx | String | | Data of getContext('2d') from `canvas` tag |
76 | | src | String | | Value of Image |
77 | | width | Number | | Width size of canvas |
78 | | height | Number | | Height size of canvas |
79 |
80 |
81 |
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/MFPair.md:
--------------------------------------------------------------------------------
1 | # Stinuum.MFPair
2 |
3 | ```js
4 | new Stinuum.MFPair(id, feature);
5 | ```
6 |
7 | ## Members
8 |
9 | * __id__ : String
10 | Identifier of one Moving Feature. This must be unique value.
11 |
12 |
13 | * __feature__ : Moving Feature JSON object
14 |
15 |
16 |
17 | ## Methods
18 |
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/MovementDrawing.md:
--------------------------------------------------------------------------------
1 |
2 | # Stinuum.MovementDrawing
3 |
4 | Make the MovingObject using the czml format and temporalGeometry data of MovingFeature.
5 |
6 | ```js
7 | var moving = new Stinuum.MovementDrawing(stinuum)
8 | ```
9 | ## Members
10 |
11 | There is no member that user can access.
12 |
13 | ## Methods
14 |
15 | ```js
16 | var options = {
17 | "temporalGeometry": feature.temporalGeometry,
18 | "number": countNumber,
19 | "id": feaure.name
20 | }
21 | ```
22 |
23 | * __moveMovingPoint(options)__
24 |
25 | Make the czml format using temporalGeometry data of MovingFeature that type is MovingPoint
26 |
27 | | Name | Type | Default | Description |
28 | | ---------- | :--------- | :---------- | :---------- |
29 | | options | Object | | temporalGeometry data and id of MovingFeature |
30 |
31 |
32 |
33 |
34 | * __moveMovingPointCloud(options)__
35 |
36 | Make the czml format using temporalGeometry data of MovingFeature that type is MovingPointCloud
37 |
38 | | Name | Type | Default | Description |
39 | | ---------- | :--------- | :---------- | :---------- |
40 | | options | Object | | temporalGeometry data and id of MovingFeature |
41 |
42 |
43 |
44 |
45 | * __moveMovingLineString(options)__
46 |
47 | Make the czml format using temporalGeometry data of MovingFeature that type is MovingLineString
48 |
49 | | Name | Type | Default | Description |
50 | | ---------- | :--------- | :---------- | :---------- |
51 | | options | Object | | temporalGeometry data and id of MovingFeature |
52 |
53 |
54 |
55 |
56 | * __moveMovingPolygon(options)__
57 |
58 | Make the czml format using temporalGeometry data of MovingFeature that type is MovingPolygon
59 |
60 | | Name | Type | Default | Description |
61 | | ---------- | :--------- | :---------- | :---------- |
62 | | options | Object | | temporalGeometry data and id of MovingFeature |
63 |
64 |
65 |
66 |
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/PathDrawing.md:
--------------------------------------------------------------------------------
1 |
2 | # Stinuum.PathDrawing
3 |
4 | Draw the path of MovingFeatures using the temporalGeometry data
5 |
6 | ```js
7 | var drawing = new Stinuum.PathDrawing(stinuum)
8 | ```
9 | ## Members
10 |
11 | There is no member that user can access.
12 |
13 | ## Methods
14 |
15 | ```js
16 | var options = {
17 | "temporalGeometry": feature.temporalGeometry,
18 | "id": feature.name
19 | }
20 | ```
21 | * __drawPathMovingPoint(options)__
22 |
23 | Draw the path of MovingPoint using temporalGeometry data
24 | If interpolation is Discrete or Step, using __drawMovingPoint(options)__.
25 |
26 | | Name | Type | Default | Description |
27 | | ---------- | :--------- | :---------- | :---------- |
28 | | options | Object | | temporalGeometry data and feature name |
29 |
30 |
31 |
32 | * __drawPathMovingPointCloud(options)__
33 |
34 | Draw the path of MovingPointCloud using temporalGeometry data
35 | If interpolation is Discrete or Step, using __drawMovingPointCloud(options)__.
36 |
37 | | Name | Type | Default | Description |
38 | | ---------- | :--------- | :---------- | :---------- |
39 | | options | Object | | temporalGeometry data and feature name |
40 |
41 |
42 |
43 | * __drawPathMovingLineString(options)__
44 |
45 | Draw the path of MovingLineString using temporalGeometry data
46 | If interpolation is Discrete or Step, using __drawMovingLineString(options)__.
47 |
48 | | Name | Type | Default | Description |
49 | | ---------- | :--------- | :---------- | :---------- |
50 | | options | Object | | temporalGeometry data and feature name |
51 |
52 |
53 |
54 | * __drawPathMovingPolygon(options)__
55 |
56 | Draw the path of MovingPolygon temporalGeometry data
57 | If interpolation is Discrete or Step, using __drawMovingPolygon(options)__.
58 |
59 | | Name | Type | Default | Description |
60 | | ---------- | :--------- | :---------- | :---------- |
61 | | options | Object | | temporalGeometry data and feature name |
62 |
63 |
64 |
65 | * __drawMovingPoint(options)__
66 |
67 | If the MovingFeatures type is MovingPoint and intrepolation is Discrete or Step, draw the each point using temporalGeometry data
68 |
69 | | Name | Type | Default | Description |
70 | | ---------- | :--------- | :---------- | :---------- |
71 | | options | Object | | temporalGeometry data and feature name |
72 |
73 |
74 |
75 | * __drawMovingPointCloud(options)__
76 |
77 | If the MovingFeatures type is MovingPointCloud and intrepolation is Discrete or Step, draw the each point using temporalGeometry
78 |
79 | | Name | Type | Default | Description |
80 | | ---------- | :--------- | :---------- | :---------- |
81 | | options | Object | | temporalGeometry data and feature name |
82 |
83 |
84 |
85 | * __drawMovingLineString(options)__
86 |
87 | If the MovingFeatures type is MovingLineString and intrepolation is Discrete or Step, draw the each line using temporalGeometry data
88 |
89 | | Name | Type | Default | Description |
90 | | ---------- | :--------- | :---------- | :---------- |
91 | | options | Object | | temporalGeometry data and feature name |
92 |
93 |
94 |
95 | * __drawMovingPolygon(options)__
96 |
97 | If the MovingFeatures type is MovingPolygon and intrepolation is Discrete or Step, draw the each polygon using temporalGeometry data
98 |
99 | | Name | Type | Default | Description |
100 | | ---------- | :--------- | :---------- | :---------- |
101 | | options | Object | | temporalGeometry data and feature name |
102 |
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/PropertyGraph.md:
--------------------------------------------------------------------------------
1 | # Stinuum.PropertyGraph
2 |
3 | Showing graphs according to the ParametricValues data in temporalProperties of MF-JSON.
4 |
5 | ```js
6 | var stinuum = new Stinuum(viewer);
7 | console.log(stinuum.propertyGraph);
8 | ```
9 |
10 | ## Members
11 |
12 | There is no member that user can access.
13 |
14 | ## Methods
15 |
16 | * __show(propertyName, divID)__
17 |
18 | Find the ParametricValues using propertyName in the temporalProperties and make the graph using __showPropertyArray(propertyName, array, div_id)__
19 |
20 | | Name | Type | Default | Description |
21 | | ---------- | :--------- | :---------- | :---------- |
22 | | propertyName | Array | | Name of ParametricValues |
23 | | div_id | String | | Id of `div` tag. |
24 |
25 | Example :
26 | ```js
27 | stinuum.propertyGraph.show(name, "graph");
28 | ```
29 |
30 |
31 |
32 | * __showPropertyArray(propertyName, array, div_id)__
33 |
34 | Make the graph using data of each ParametricValues of temporalProperties data
35 |
36 | | Name | Type | Default | Description |
37 | | ---------- | :--------- | :---------- | :---------- |
38 | | propertyName | Array | | Name of ParametricValues |
39 | | array | Array | | Object of ParametricValues |
40 | | div_id | String | | Id of `div` tag. |
41 |
42 | Example:
43 | ```js
44 | stinuum.propertyGraph.showPropertyArray(propertyName, array, 'graph');
45 | ```
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/QueryProcessor.md:
--------------------------------------------------------------------------------
1 | # Stinuum.QueryProcessor
2 |
3 | Make the new data of MovingFeatures using the data that is made by user
4 |
5 | ```js
6 | var stinuum = new Stinuum(viewer);
7 | console.log(stinuum.queryPorcessor);
8 | ```
9 | ## Members
10 |
11 | There is no member that user can access.
12 |
13 | ## Methods
14 |
15 |
16 | * __queryByTime(start, end)__
17 |
18 | Find features that is included in start and end times
19 |
20 | | Name | Type | Default | Description |
21 | | ---------- | :--------- | :---------- | :---------- |
22 | | start | Date | | start times or minimum time |
23 | | end | Date | | end times or maximum time |
24 |
25 |
26 |
27 | * __sliceFeatureByTime(feature, start, end)__
28 |
29 | Make the new data of features that is included in start and end times
30 |
31 | | Name | Type | Default | Description |
32 | | ---------- | :--------- | :---------- | :---------- |
33 | | feature | Array | | Array of features that is included in the start and end |
34 | | start | Date | | start times or minimum time |
35 | | end | Date | | end times or maximum time |
36 |
37 |
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/SRSTranslator.md:
--------------------------------------------------------------------------------
1 | # SRSTranslator
2 |
3 | Converts the coordinates value of MovingFeature to WGS84 format according to each coordinate system conversion formula defined in [EPSG.io](https://epsg.io/)
4 |
5 | ## Members
6 |
7 | * __projections__
8 |
9 | An object with coordinate system name and transformation expression as key and value respectively
10 |
11 |
12 | * __transformations__
13 |
14 | An object that stores the current coordinate system and coordinate system values to convert
15 |
16 |
17 |
18 | ## Methods
19 |
20 | * __addProjection(name, projection)__
21 |
22 | Add the coordinate system and transformation formula to __projections__
23 |
24 | | Name | Type | Default | Description |
25 | | ---------- | :--------- | :---------- | :---------- |
26 | | name | String | | Name of CRS |
27 | | projection | String | | Projection value of CRS |
28 |
29 |
30 |
31 | * __forward(coords, projectionFrom, projectionTo)__
32 |
33 | Convert the coordinate values of the existing coordinate system to the WGS84 coordinate system.
34 |
35 | | Name | Type | Default | Description |
36 | | ---------- | :--------- | :---------- | :---------- |
37 | | coords | String | | Coordinate value to be converted |
38 | | projectionFrom | String | | Conventional coordinate system |
39 | | projectionTo | String | | Transformed coordinate system |
40 |
41 |
42 |
43 | * __getTransformation(projectionFrom, projectionTo)__
44 |
45 | Get the coordinate system transformation formula.
46 |
47 | | Name | Type | Default | Description |
48 | | ---------- | :--------- | :---------- | :---------- |
49 | | projectionFrom | String | | Conventional coordinate system |
50 | | projectionTo | String | | Transformed coordinate system |
51 |
52 |
53 | * __getProjection(name)__
54 |
55 | Get the projection value by the coordinate system name.
56 |
57 | | Name | Type | Default | Description |
58 | | ---------- | :--------- | :---------- | :---------- |
59 | | name | String | | Name of CRS |
60 |
61 |
62 |
63 | * __searchProjecion(name)__
64 |
65 | Search the Projection value using CRS value from the __projections__.
66 |
67 | | Name | Type | Default | Description |
68 | | ---------- | :--------- | :---------- | :---------- |
69 | | name | String | | Name of CRS |
70 |
71 |
72 |
73 | * __crsCheck(crs)__
74 |
75 | Search the Projection value using CRS value defined in MF-JSON.
76 |
77 | | Name | Type | Default | Description |
78 | | ---------- | :--------- | :---------- | :---------- |
79 | | crs | Object | | Value of CRS in MF-JSON|
80 |
81 | * __getDefaultDefinitions()__
82 |
83 | Define the name and projection of the coordinate system to be used by default.
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/TemporalMap.md:
--------------------------------------------------------------------------------
1 | # Stinuum.TemporalMap
2 |
3 | ```js
4 | var stinuum = new Stinuum(viewer);
5 | console.log(stinuum.temporalMap);
6 | ```
7 |
8 | ## Members
9 |
10 | There is no member that user can access.
11 |
12 | ## Methods
13 |
14 | * __show(id, propertyName)__
15 |
16 | If Moving Feature whose id is in the features, then show TemporalMap of Moving Feature.
17 |
18 | Example:
19 | ```js
20 | var id = "mf_001";
21 | var name = "speed";
22 |
23 | stinuum.temporalMap.show(id, name);
24 | ```
25 |
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/image/AnimationWidget.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/AnimationWidget.gif
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/image/AnimationWidget2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/AnimationWidget2.gif
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/image/Graph1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/Graph1.png
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/image/Graph2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/Graph2.png
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/image/Graph3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/Graph3.png
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/image/Image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/Image.png
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/image/Layers1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/Layers1.png
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/image/Layers2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/Layers2.png
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/image/MFCollection.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/MFCollection.png
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/image/Main.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/Main.png
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/image/Rader.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/Rader.png
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/image/SceneModePicker1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/SceneModePicker1.png
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/image/SceneModePicker2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/SceneModePicker2.png
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/image/Server.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/Server.png
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/image/ServerLogin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/ServerLogin.png
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/image/Slice.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/Slice.png
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/image/StinuumWeb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/StinuumWeb.png
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/image/Text.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/Text.png
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/image/Upload.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/Upload.png
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/image/get.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/get.png
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/image/get2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/get2.png
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/image/get3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/get3.png
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/image/get4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/get4.png
--------------------------------------------------------------------------------
/Stinuum Web/src/documentation/image/get5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/documentation/image/get5.png
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/.Rhistory:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/js/mf-cesium/.Rhistory
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/Fileio.js:
--------------------------------------------------------------------------------
1 | function printFileUploadButton(){
2 | var button = document.getElementById("uploadButton");
3 | var input = document.createElement('button');
4 | input.id = "files";
5 | input.className = "btn btn-default upload";
6 | input.multiple = "multiple";
7 | input.name = "files[]";
8 |
9 | var t = document.createTextNode("UPLOAD");
10 | input.appendChild(t);
11 |
12 | button.appendChild(input);
13 |
14 | document.getElementById('files').addEventListener('click', getLocalFile, false);
15 | }
16 |
17 | function printPathServerButton(){
18 | var button = document.getElementById("serverButton");
19 | var input = document.createElement('button');
20 | input.id = "server";
21 | input.className = "btn btn-default upload";
22 | input.multiple = "multiple";
23 | input.name = "server[]";
24 |
25 | var t = document.createTextNode("SERVER");
26 | input.appendChild(t);
27 |
28 | button.appendChild(input)
29 | document.getElementById('server').addEventListener('click', () => {
30 | location.href="/dataSelect";
31 | });
32 | }
33 |
34 | function getLocalFile(){
35 | var dropZone = document.getElementById('drop_zone');
36 | dropZone.style.visibility = 'visible';
37 | document.getElementById('drop_zone_bg').style.visibility = 'visible';
38 | dropZone.addEventListener('dragover', handleDragOver, false);
39 | dropZone.addEventListener('drop', handleFileSelect, false);
40 |
41 | cleanGraphDIV();
42 | }
43 |
44 | function closeDrop(){
45 | var dropZone = document.getElementById('drop_zone');
46 | dropZone.style.visibility = 'hidden';
47 | document.getElementById('drop_zone_bg').style.visibility = 'hidden';
48 |
49 | }
50 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/data_crs.csv:
--------------------------------------------------------------------------------
1 | GEOGCS["WGS 84",
2 | DATUM["WGS_1984",
3 | SPHEROID["WGS 84",6378137,298.257223563,
4 | AUTHORITY["EPSG","7030"]],
5 | AUTHORITY["EPSG","6326"]],
6 | PRIMEM["Greenwich",0,
7 | AUTHORITY["EPSG","8901"]],
8 | UNIT["degree",0.0174532925199433,
9 | AUTHORITY["EPSG","9122"]],
10 | AUTHORITY["EPSG","4326"]]
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/dialog/dialog.css:
--------------------------------------------------------------------------------
1 | .CodeMirror-dialog {
2 | position: absolute;
3 | left: 0; right: 0;
4 | background: inherit;
5 | z-index: 15;
6 | padding: .1em .8em;
7 | overflow: hidden;
8 | color: inherit;
9 | }
10 |
11 | .CodeMirror-dialog-top {
12 | border-bottom: 1px solid #eee;
13 | top: 0;
14 | }
15 |
16 | .CodeMirror-dialog-bottom {
17 | border-top: 1px solid #eee;
18 | bottom: 0;
19 | }
20 |
21 | .CodeMirror-dialog input {
22 | border: none;
23 | outline: none;
24 | background: transparent;
25 | width: 20em;
26 | color: inherit;
27 | font-family: monospace;
28 | }
29 |
30 | .CodeMirror-dialog button {
31 | font-size: 70%;
32 | }
33 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/display/autorefresh.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"))
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror"], mod)
9 | else // Plain browser env
10 | mod(CodeMirror)
11 | })(function(CodeMirror) {
12 | "use strict"
13 |
14 | CodeMirror.defineOption("autoRefresh", false, function(cm, val) {
15 | if (cm.state.autoRefresh) {
16 | stopListening(cm, cm.state.autoRefresh)
17 | cm.state.autoRefresh = null
18 | }
19 | if (val && cm.display.wrapper.offsetHeight == 0)
20 | startListening(cm, cm.state.autoRefresh = {delay: val.delay || 250})
21 | })
22 |
23 | function startListening(cm, state) {
24 | function check() {
25 | if (cm.display.wrapper.offsetHeight) {
26 | stopListening(cm, state)
27 | if (cm.display.lastWrapHeight != cm.display.wrapper.clientHeight)
28 | cm.refresh()
29 | } else {
30 | state.timeout = setTimeout(check, state.delay)
31 | }
32 | }
33 | state.timeout = setTimeout(check, state.delay)
34 | state.hurry = function() {
35 | clearTimeout(state.timeout)
36 | state.timeout = setTimeout(check, 50)
37 | }
38 | CodeMirror.on(window, "mouseup", state.hurry)
39 | CodeMirror.on(window, "keyup", state.hurry)
40 | }
41 |
42 | function stopListening(_cm, state) {
43 | clearTimeout(state.timeout)
44 | CodeMirror.off(window, "mouseup", state.hurry)
45 | CodeMirror.off(window, "keyup", state.hurry)
46 | }
47 | });
48 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/display/fullscreen.css:
--------------------------------------------------------------------------------
1 | .CodeMirror-fullscreen {
2 | position: fixed;
3 | top: 0; left: 0; right: 0; bottom: 0;
4 | height: auto;
5 | z-index: 9;
6 | }
7 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/display/fullscreen.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"));
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror"], mod);
9 | else // Plain browser env
10 | mod(CodeMirror);
11 | })(function(CodeMirror) {
12 | "use strict";
13 |
14 | CodeMirror.defineOption("fullScreen", false, function(cm, val, old) {
15 | if (old == CodeMirror.Init) old = false;
16 | if (!old == !val) return;
17 | if (val) setFullscreen(cm);
18 | else setNormal(cm);
19 | });
20 |
21 | function setFullscreen(cm) {
22 | var wrap = cm.getWrapperElement();
23 | cm.state.fullScreenRestore = {scrollTop: window.pageYOffset, scrollLeft: window.pageXOffset,
24 | width: wrap.style.width, height: wrap.style.height};
25 | wrap.style.width = "";
26 | wrap.style.height = "auto";
27 | wrap.className += " CodeMirror-fullscreen";
28 | document.documentElement.style.overflow = "hidden";
29 | cm.refresh();
30 | }
31 |
32 | function setNormal(cm) {
33 | var wrap = cm.getWrapperElement();
34 | wrap.className = wrap.className.replace(/\s*CodeMirror-fullscreen\b/, "");
35 | document.documentElement.style.overflow = "";
36 | var info = cm.state.fullScreenRestore;
37 | wrap.style.width = info.width; wrap.style.height = info.height;
38 | window.scrollTo(info.scrollLeft, info.scrollTop);
39 | cm.refresh();
40 | }
41 | });
42 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/display/placeholder.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"));
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror"], mod);
9 | else // Plain browser env
10 | mod(CodeMirror);
11 | })(function(CodeMirror) {
12 | CodeMirror.defineOption("placeholder", "", function(cm, val, old) {
13 | var prev = old && old != CodeMirror.Init;
14 | if (val && !prev) {
15 | cm.on("blur", onBlur);
16 | cm.on("change", onChange);
17 | cm.on("swapDoc", onChange);
18 | onChange(cm);
19 | } else if (!val && prev) {
20 | cm.off("blur", onBlur);
21 | cm.off("change", onChange);
22 | cm.off("swapDoc", onChange);
23 | clearPlaceholder(cm);
24 | var wrapper = cm.getWrapperElement();
25 | wrapper.className = wrapper.className.replace(" CodeMirror-empty", "");
26 | }
27 |
28 | if (val && !cm.hasFocus()) onBlur(cm);
29 | });
30 |
31 | function clearPlaceholder(cm) {
32 | if (cm.state.placeholder) {
33 | cm.state.placeholder.parentNode.removeChild(cm.state.placeholder);
34 | cm.state.placeholder = null;
35 | }
36 | }
37 | function setPlaceholder(cm) {
38 | clearPlaceholder(cm);
39 | var elt = cm.state.placeholder = document.createElement("pre");
40 | elt.style.cssText = "height: 0; overflow: visible";
41 | elt.style.direction = cm.getOption("direction");
42 | elt.className = "CodeMirror-placeholder CodeMirror-line-like";
43 | var placeHolder = cm.getOption("placeholder")
44 | if (typeof placeHolder == "string") placeHolder = document.createTextNode(placeHolder)
45 | elt.appendChild(placeHolder)
46 | cm.display.lineSpace.insertBefore(elt, cm.display.lineSpace.firstChild);
47 | }
48 |
49 | function onBlur(cm) {
50 | if (isEmpty(cm)) setPlaceholder(cm);
51 | }
52 | function onChange(cm) {
53 | var wrapper = cm.getWrapperElement(), empty = isEmpty(cm);
54 | wrapper.className = wrapper.className.replace(" CodeMirror-empty", "") + (empty ? " CodeMirror-empty" : "");
55 |
56 | if (empty) setPlaceholder(cm);
57 | else clearPlaceholder(cm);
58 | }
59 |
60 | function isEmpty(cm) {
61 | return (cm.lineCount() === 1) && (cm.getLine(0) === "");
62 | }
63 | });
64 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/display/rulers.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"));
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror"], mod);
9 | else // Plain browser env
10 | mod(CodeMirror);
11 | })(function(CodeMirror) {
12 | "use strict";
13 |
14 | CodeMirror.defineOption("rulers", false, function(cm, val) {
15 | if (cm.state.rulerDiv) {
16 | cm.state.rulerDiv.parentElement.removeChild(cm.state.rulerDiv)
17 | cm.state.rulerDiv = null
18 | cm.off("refresh", drawRulers)
19 | }
20 | if (val && val.length) {
21 | cm.state.rulerDiv = cm.display.lineSpace.parentElement.insertBefore(document.createElement("div"), cm.display.lineSpace)
22 | cm.state.rulerDiv.className = "CodeMirror-rulers"
23 | drawRulers(cm)
24 | cm.on("refresh", drawRulers)
25 | }
26 | });
27 |
28 | function drawRulers(cm) {
29 | cm.state.rulerDiv.textContent = ""
30 | var val = cm.getOption("rulers");
31 | var cw = cm.defaultCharWidth();
32 | var left = cm.charCoords(CodeMirror.Pos(cm.firstLine(), 0), "div").left;
33 | cm.state.rulerDiv.style.minHeight = (cm.display.scroller.offsetHeight + 30) + "px";
34 | for (var i = 0; i < val.length; i++) {
35 | var elt = document.createElement("div");
36 | elt.className = "CodeMirror-ruler";
37 | var col, conf = val[i];
38 | if (typeof conf == "number") {
39 | col = conf;
40 | } else {
41 | col = conf.column;
42 | if (conf.className) elt.className += " " + conf.className;
43 | if (conf.color) elt.style.borderColor = conf.color;
44 | if (conf.lineStyle) elt.style.borderLeftStyle = conf.lineStyle;
45 | if (conf.width) elt.style.borderLeftWidth = conf.width;
46 | }
47 | elt.style.left = (left + col * cw) + "px";
48 | cm.state.rulerDiv.appendChild(elt)
49 | }
50 | }
51 | });
52 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/edit/matchtags.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"), require("../fold/xml-fold"));
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror", "../fold/xml-fold"], mod);
9 | else // Plain browser env
10 | mod(CodeMirror);
11 | })(function(CodeMirror) {
12 | "use strict";
13 |
14 | CodeMirror.defineOption("matchTags", false, function(cm, val, old) {
15 | if (old && old != CodeMirror.Init) {
16 | cm.off("cursorActivity", doMatchTags);
17 | cm.off("viewportChange", maybeUpdateMatch);
18 | clear(cm);
19 | }
20 | if (val) {
21 | cm.state.matchBothTags = typeof val == "object" && val.bothTags;
22 | cm.on("cursorActivity", doMatchTags);
23 | cm.on("viewportChange", maybeUpdateMatch);
24 | doMatchTags(cm);
25 | }
26 | });
27 |
28 | function clear(cm) {
29 | if (cm.state.tagHit) cm.state.tagHit.clear();
30 | if (cm.state.tagOther) cm.state.tagOther.clear();
31 | cm.state.tagHit = cm.state.tagOther = null;
32 | }
33 |
34 | function doMatchTags(cm) {
35 | cm.state.failedTagMatch = false;
36 | cm.operation(function() {
37 | clear(cm);
38 | if (cm.somethingSelected()) return;
39 | var cur = cm.getCursor(), range = cm.getViewport();
40 | range.from = Math.min(range.from, cur.line); range.to = Math.max(cur.line + 1, range.to);
41 | var match = CodeMirror.findMatchingTag(cm, cur, range);
42 | if (!match) return;
43 | if (cm.state.matchBothTags) {
44 | var hit = match.at == "open" ? match.open : match.close;
45 | if (hit) cm.state.tagHit = cm.markText(hit.from, hit.to, {className: "CodeMirror-matchingtag"});
46 | }
47 | var other = match.at == "close" ? match.open : match.close;
48 | if (other)
49 | cm.state.tagOther = cm.markText(other.from, other.to, {className: "CodeMirror-matchingtag"});
50 | else
51 | cm.state.failedTagMatch = true;
52 | });
53 | }
54 |
55 | function maybeUpdateMatch(cm) {
56 | if (cm.state.failedTagMatch) doMatchTags(cm);
57 | }
58 |
59 | CodeMirror.commands.toMatchingTag = function(cm) {
60 | var found = CodeMirror.findMatchingTag(cm, cm.getCursor());
61 | if (found) {
62 | var other = found.at == "close" ? found.open : found.close;
63 | if (other) cm.extendSelection(other.to, other.from);
64 | }
65 | };
66 | });
67 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/edit/trailingspace.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"));
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror"], mod);
9 | else // Plain browser env
10 | mod(CodeMirror);
11 | })(function(CodeMirror) {
12 | CodeMirror.defineOption("showTrailingSpace", false, function(cm, val, prev) {
13 | if (prev == CodeMirror.Init) prev = false;
14 | if (prev && !val)
15 | cm.removeOverlay("trailingspace");
16 | else if (!prev && val)
17 | cm.addOverlay({
18 | token: function(stream) {
19 | for (var l = stream.string.length, i = l; i && /\s/.test(stream.string.charAt(i - 1)); --i) {}
20 | if (i > stream.pos) { stream.pos = i; return null; }
21 | stream.pos = l;
22 | return "trailingspace";
23 | },
24 | name: "trailingspace"
25 | });
26 | });
27 | });
28 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/fold/comment-fold.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"));
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror"], mod);
9 | else // Plain browser env
10 | mod(CodeMirror);
11 | })(function(CodeMirror) {
12 | "use strict";
13 |
14 | CodeMirror.registerGlobalHelper("fold", "comment", function(mode) {
15 | return mode.blockCommentStart && mode.blockCommentEnd;
16 | }, function(cm, start) {
17 | var mode = cm.getModeAt(start), startToken = mode.blockCommentStart, endToken = mode.blockCommentEnd;
18 | if (!startToken || !endToken) return;
19 | var line = start.line, lineText = cm.getLine(line);
20 |
21 | var startCh;
22 | for (var at = start.ch, pass = 0;;) {
23 | var found = at <= 0 ? -1 : lineText.lastIndexOf(startToken, at - 1);
24 | if (found == -1) {
25 | if (pass == 1) return;
26 | pass = 1;
27 | at = lineText.length;
28 | continue;
29 | }
30 | if (pass == 1 && found < start.ch) return;
31 | if (/comment/.test(cm.getTokenTypeAt(CodeMirror.Pos(line, found + 1))) &&
32 | (found == 0 || lineText.slice(found - endToken.length, found) == endToken ||
33 | !/comment/.test(cm.getTokenTypeAt(CodeMirror.Pos(line, found))))) {
34 | startCh = found + startToken.length;
35 | break;
36 | }
37 | at = found - 1;
38 | }
39 |
40 | var depth = 1, lastLine = cm.lastLine(), end, endCh;
41 | outer: for (var i = line; i <= lastLine; ++i) {
42 | var text = cm.getLine(i), pos = i == line ? startCh : 0;
43 | for (;;) {
44 | var nextOpen = text.indexOf(startToken, pos), nextClose = text.indexOf(endToken, pos);
45 | if (nextOpen < 0) nextOpen = text.length;
46 | if (nextClose < 0) nextClose = text.length;
47 | pos = Math.min(nextOpen, nextClose);
48 | if (pos == text.length) break;
49 | if (pos == nextOpen) ++depth;
50 | else if (!--depth) { end = i; endCh = pos; break outer; }
51 | ++pos;
52 | }
53 | }
54 | if (end == null || line == end && endCh == startCh) return;
55 | return {from: CodeMirror.Pos(line, startCh),
56 | to: CodeMirror.Pos(end, endCh)};
57 | });
58 |
59 | });
60 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/fold/foldgutter.css:
--------------------------------------------------------------------------------
1 | .CodeMirror-foldmarker {
2 | color: blue;
3 | text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px;
4 | font-family: arial;
5 | line-height: .3;
6 | cursor: pointer;
7 | }
8 | .CodeMirror-foldgutter {
9 | width: .7em;
10 | }
11 | .CodeMirror-foldgutter-open,
12 | .CodeMirror-foldgutter-folded {
13 | cursor: pointer;
14 | }
15 | .CodeMirror-foldgutter-open:after {
16 | content: "\25BE";
17 | }
18 | .CodeMirror-foldgutter-folded:after {
19 | content: "\25B8";
20 | }
21 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/fold/indent-fold.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"));
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror"], mod);
9 | else // Plain browser env
10 | mod(CodeMirror);
11 | })(function(CodeMirror) {
12 | "use strict";
13 |
14 | function lineIndent(cm, lineNo) {
15 | var text = cm.getLine(lineNo)
16 | var spaceTo = text.search(/\S/)
17 | if (spaceTo == -1 || /\bcomment\b/.test(cm.getTokenTypeAt(CodeMirror.Pos(lineNo, spaceTo + 1))))
18 | return -1
19 | return CodeMirror.countColumn(text, null, cm.getOption("tabSize"))
20 | }
21 |
22 | CodeMirror.registerHelper("fold", "indent", function(cm, start) {
23 | var myIndent = lineIndent(cm, start.line)
24 | if (myIndent < 0) return
25 | var lastLineInFold = null
26 |
27 | // Go through lines until we find a line that definitely doesn't belong in
28 | // the block we're folding, or to the end.
29 | for (var i = start.line + 1, end = cm.lastLine(); i <= end; ++i) {
30 | var indent = lineIndent(cm, i)
31 | if (indent == -1) {
32 | } else if (indent > myIndent) {
33 | // Lines with a greater indent are considered part of the block.
34 | lastLineInFold = i;
35 | } else {
36 | // If this line has non-space, non-comment content, and is
37 | // indented less or equal to the start line, it is the start of
38 | // another block.
39 | break;
40 | }
41 | }
42 | if (lastLineInFold) return {
43 | from: CodeMirror.Pos(start.line, cm.getLine(start.line).length),
44 | to: CodeMirror.Pos(lastLineInFold, cm.getLine(lastLineInFold).length)
45 | };
46 | });
47 |
48 | });
49 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/fold/markdown-fold.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"));
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror"], mod);
9 | else // Plain browser env
10 | mod(CodeMirror);
11 | })(function(CodeMirror) {
12 | "use strict";
13 |
14 | CodeMirror.registerHelper("fold", "markdown", function(cm, start) {
15 | var maxDepth = 100;
16 |
17 | function isHeader(lineNo) {
18 | var tokentype = cm.getTokenTypeAt(CodeMirror.Pos(lineNo, 0));
19 | return tokentype && /\bheader\b/.test(tokentype);
20 | }
21 |
22 | function headerLevel(lineNo, line, nextLine) {
23 | var match = line && line.match(/^#+/);
24 | if (match && isHeader(lineNo)) return match[0].length;
25 | match = nextLine && nextLine.match(/^[=\-]+\s*$/);
26 | if (match && isHeader(lineNo + 1)) return nextLine[0] == "=" ? 1 : 2;
27 | return maxDepth;
28 | }
29 |
30 | var firstLine = cm.getLine(start.line), nextLine = cm.getLine(start.line + 1);
31 | var level = headerLevel(start.line, firstLine, nextLine);
32 | if (level === maxDepth) return undefined;
33 |
34 | var lastLineNo = cm.lastLine();
35 | var end = start.line, nextNextLine = cm.getLine(end + 2);
36 | while (end < lastLineNo) {
37 | if (headerLevel(end + 1, nextLine, nextNextLine) <= level) break;
38 | ++end;
39 | nextLine = nextNextLine;
40 | nextNextLine = cm.getLine(end + 2);
41 | }
42 |
43 | return {
44 | from: CodeMirror.Pos(start.line, firstLine.length),
45 | to: CodeMirror.Pos(end, cm.getLine(end).length)
46 | };
47 | });
48 |
49 | });
50 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/hint/anyword-hint.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"));
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror"], mod);
9 | else // Plain browser env
10 | mod(CodeMirror);
11 | })(function(CodeMirror) {
12 | "use strict";
13 |
14 | var WORD = /[\w$]+/, RANGE = 500;
15 |
16 | CodeMirror.registerHelper("hint", "anyword", function(editor, options) {
17 | var word = options && options.word || WORD;
18 | var range = options && options.range || RANGE;
19 | var cur = editor.getCursor(), curLine = editor.getLine(cur.line);
20 | var end = cur.ch, start = end;
21 | while (start && word.test(curLine.charAt(start - 1))) --start;
22 | var curWord = start != end && curLine.slice(start, end);
23 |
24 | var list = options && options.list || [], seen = {};
25 | var re = new RegExp(word.source, "g");
26 | for (var dir = -1; dir <= 1; dir += 2) {
27 | var line = cur.line, endLine = Math.min(Math.max(line + dir * range, editor.firstLine()), editor.lastLine()) + dir;
28 | for (; line != endLine; line += dir) {
29 | var text = editor.getLine(line), m;
30 | while (m = re.exec(text)) {
31 | if (line == cur.line && m[0] === curWord) continue;
32 | if ((!curWord || m[0].lastIndexOf(curWord, 0) == 0) && !Object.prototype.hasOwnProperty.call(seen, m[0])) {
33 | seen[m[0]] = true;
34 | list.push(m[0]);
35 | }
36 | }
37 | }
38 | }
39 | return {list: list, from: CodeMirror.Pos(cur.line, start), to: CodeMirror.Pos(cur.line, end)};
40 | });
41 | });
42 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/hint/css-hint.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"), require("../../mode/css/css"));
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror", "../../mode/css/css"], mod);
9 | else // Plain browser env
10 | mod(CodeMirror);
11 | })(function(CodeMirror) {
12 | "use strict";
13 |
14 | var pseudoClasses = {"active":1, "after":1, "before":1, "checked":1, "default":1,
15 | "disabled":1, "empty":1, "enabled":1, "first-child":1, "first-letter":1,
16 | "first-line":1, "first-of-type":1, "focus":1, "hover":1, "in-range":1,
17 | "indeterminate":1, "invalid":1, "lang":1, "last-child":1, "last-of-type":1,
18 | "link":1, "not":1, "nth-child":1, "nth-last-child":1, "nth-last-of-type":1,
19 | "nth-of-type":1, "only-of-type":1, "only-child":1, "optional":1, "out-of-range":1,
20 | "placeholder":1, "read-only":1, "read-write":1, "required":1, "root":1,
21 | "selection":1, "target":1, "valid":1, "visited":1
22 | };
23 |
24 | CodeMirror.registerHelper("hint", "css", function(cm) {
25 | var cur = cm.getCursor(), token = cm.getTokenAt(cur);
26 | var inner = CodeMirror.innerMode(cm.getMode(), token.state);
27 | if (inner.mode.name != "css") return;
28 |
29 | if (token.type == "keyword" && "!important".indexOf(token.string) == 0)
30 | return {list: ["!important"], from: CodeMirror.Pos(cur.line, token.start),
31 | to: CodeMirror.Pos(cur.line, token.end)};
32 |
33 | var start = token.start, end = cur.ch, word = token.string.slice(0, end - start);
34 | if (/[^\w$_-]/.test(word)) {
35 | word = ""; start = end = cur.ch;
36 | }
37 |
38 | var spec = CodeMirror.resolveMode("text/css");
39 |
40 | var result = [];
41 | function add(keywords) {
42 | for (var name in keywords)
43 | if (!word || name.lastIndexOf(word, 0) == 0)
44 | result.push(name);
45 | }
46 |
47 | var st = inner.state.state;
48 | if (st == "pseudo" || token.type == "variable-3") {
49 | add(pseudoClasses);
50 | } else if (st == "block" || st == "maybeprop") {
51 | add(spec.propertyKeywords);
52 | } else if (st == "prop" || st == "parens" || st == "at" || st == "params") {
53 | add(spec.valueKeywords);
54 | add(spec.colorKeywords);
55 | } else if (st == "media" || st == "media_parens") {
56 | add(spec.mediaTypes);
57 | add(spec.mediaFeatures);
58 | }
59 |
60 | if (result.length) return {
61 | list: result,
62 | from: CodeMirror.Pos(cur.line, start),
63 | to: CodeMirror.Pos(cur.line, end)
64 | };
65 | });
66 | });
67 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/hint/show-hint.css:
--------------------------------------------------------------------------------
1 | .CodeMirror-hints {
2 | position: absolute;
3 | z-index: 10;
4 | overflow: hidden;
5 | list-style: none;
6 |
7 | margin: 0;
8 | padding: 2px;
9 |
10 | -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
11 | -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
12 | box-shadow: 2px 3px 5px rgba(0,0,0,.2);
13 | border-radius: 3px;
14 | border: 1px solid silver;
15 |
16 | background: white;
17 | font-size: 90%;
18 | font-family: monospace;
19 |
20 | max-height: 20em;
21 | overflow-y: auto;
22 | }
23 |
24 | .CodeMirror-hint {
25 | margin: 0;
26 | padding: 0 4px;
27 | border-radius: 2px;
28 | white-space: pre;
29 | color: black;
30 | cursor: pointer;
31 | }
32 |
33 | li.CodeMirror-hint-active {
34 | background: #08f;
35 | color: white;
36 | }
37 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/lint/coffeescript-lint.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | // Depends on coffeelint.js from http://www.coffeelint.org/js/coffeelint.js
5 |
6 | // declare global: coffeelint
7 |
8 | (function(mod) {
9 | if (typeof exports == "object" && typeof module == "object") // CommonJS
10 | mod(require("../../lib/codemirror"));
11 | else if (typeof define == "function" && define.amd) // AMD
12 | define(["../../lib/codemirror"], mod);
13 | else // Plain browser env
14 | mod(CodeMirror);
15 | })(function(CodeMirror) {
16 | "use strict";
17 |
18 | CodeMirror.registerHelper("lint", "coffeescript", function(text) {
19 | var found = [];
20 | if (!window.coffeelint) {
21 | if (window.console) {
22 | window.console.error("Error: window.coffeelint not defined, CodeMirror CoffeeScript linting cannot run.");
23 | }
24 | return found;
25 | }
26 | var parseError = function(err) {
27 | var loc = err.lineNumber;
28 | found.push({from: CodeMirror.Pos(loc-1, 0),
29 | to: CodeMirror.Pos(loc, 0),
30 | severity: err.level,
31 | message: err.message});
32 | };
33 | try {
34 | var res = coffeelint.lint(text);
35 | for(var i = 0; i < res.length; i++) {
36 | parseError(res[i]);
37 | }
38 | } catch(e) {
39 | found.push({from: CodeMirror.Pos(e.location.first_line, 0),
40 | to: CodeMirror.Pos(e.location.last_line, e.location.last_column),
41 | severity: 'error',
42 | message: e.message});
43 | }
44 | return found;
45 | });
46 |
47 | });
48 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/lint/css-lint.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | // Depends on csslint.js from https://github.com/stubbornella/csslint
5 |
6 | // declare global: CSSLint
7 |
8 | (function(mod) {
9 | if (typeof exports == "object" && typeof module == "object") // CommonJS
10 | mod(require("../../lib/codemirror"));
11 | else if (typeof define == "function" && define.amd) // AMD
12 | define(["../../lib/codemirror"], mod);
13 | else // Plain browser env
14 | mod(CodeMirror);
15 | })(function(CodeMirror) {
16 | "use strict";
17 |
18 | CodeMirror.registerHelper("lint", "css", function(text, options) {
19 | var found = [];
20 | if (!window.CSSLint) {
21 | if (window.console) {
22 | window.console.error("Error: window.CSSLint not defined, CodeMirror CSS linting cannot run.");
23 | }
24 | return found;
25 | }
26 | var results = CSSLint.verify(text, options), messages = results.messages, message = null;
27 | for ( var i = 0; i < messages.length; i++) {
28 | message = messages[i];
29 | var startLine = message.line -1, endLine = message.line -1, startCol = message.col -1, endCol = message.col;
30 | found.push({
31 | from: CodeMirror.Pos(startLine, startCol),
32 | to: CodeMirror.Pos(endLine, endCol),
33 | message: message.message,
34 | severity : message.type
35 | });
36 | }
37 | return found;
38 | });
39 |
40 | });
41 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/lint/html-lint.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | // Depends on htmlhint.js from http://htmlhint.com/js/htmlhint.js
5 |
6 | // declare global: HTMLHint
7 |
8 | (function(mod) {
9 | if (typeof exports == "object" && typeof module == "object") // CommonJS
10 | mod(require("../../lib/codemirror"), require("htmlhint"));
11 | else if (typeof define == "function" && define.amd) // AMD
12 | define(["../../lib/codemirror", "htmlhint"], mod);
13 | else // Plain browser env
14 | mod(CodeMirror, window.HTMLHint);
15 | })(function(CodeMirror, HTMLHint) {
16 | "use strict";
17 |
18 | var defaultRules = {
19 | "tagname-lowercase": true,
20 | "attr-lowercase": true,
21 | "attr-value-double-quotes": true,
22 | "doctype-first": false,
23 | "tag-pair": true,
24 | "spec-char-escape": true,
25 | "id-unique": true,
26 | "src-not-empty": true,
27 | "attr-no-duplication": true
28 | };
29 |
30 | CodeMirror.registerHelper("lint", "html", function(text, options) {
31 | var found = [];
32 | if (HTMLHint && !HTMLHint.verify) {
33 | if(typeof HTMLHint.default !== 'undefined') {
34 | HTMLHint = HTMLHint.default;
35 | } else {
36 | HTMLHint = HTMLHint.HTMLHint;
37 | }
38 | }
39 | if (!HTMLHint) HTMLHint = window.HTMLHint;
40 | if (!HTMLHint) {
41 | if (window.console) {
42 | window.console.error("Error: HTMLHint not found, not defined on window, or not available through define/require, CodeMirror HTML linting cannot run.");
43 | }
44 | return found;
45 | }
46 | var messages = HTMLHint.verify(text, options && options.rules || defaultRules);
47 | for (var i = 0; i < messages.length; i++) {
48 | var message = messages[i];
49 | var startLine = message.line - 1, endLine = message.line - 1, startCol = message.col - 1, endCol = message.col;
50 | found.push({
51 | from: CodeMirror.Pos(startLine, startCol),
52 | to: CodeMirror.Pos(endLine, endCol),
53 | message: message.message,
54 | severity : message.type
55 | });
56 | }
57 | return found;
58 | });
59 | });
60 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/lint/javascript-lint.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"));
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror"], mod);
9 | else // Plain browser env
10 | mod(CodeMirror);
11 | })(function(CodeMirror) {
12 | "use strict";
13 | // declare global: JSHINT
14 |
15 | function validator(text, options) {
16 | if (!window.JSHINT) {
17 | if (window.console) {
18 | window.console.error("Error: window.JSHINT not defined, CodeMirror JavaScript linting cannot run.");
19 | }
20 | return [];
21 | }
22 | if (!options.indent) // JSHint error.character actually is a column index, this fixes underlining on lines using tabs for indentation
23 | options.indent = 1; // JSHint default value is 4
24 | JSHINT(text, options, options.globals);
25 | var errors = JSHINT.data().errors, result = [];
26 | if (errors) parseErrors(errors, result);
27 | return result;
28 | }
29 |
30 | CodeMirror.registerHelper("lint", "javascript", validator);
31 |
32 | function parseErrors(errors, output) {
33 | for ( var i = 0; i < errors.length; i++) {
34 | var error = errors[i];
35 | if (error) {
36 | if (error.line <= 0) {
37 | if (window.console) {
38 | window.console.warn("Cannot display JSHint error (invalid line " + error.line + ")", error);
39 | }
40 | continue;
41 | }
42 |
43 | var start = error.character - 1, end = start + 1;
44 | if (error.evidence) {
45 | var index = error.evidence.substring(start).search(/.\b/);
46 | if (index > -1) {
47 | end += index;
48 | }
49 | }
50 |
51 | // Convert to format expected by validation service
52 | var hint = {
53 | message: error.reason,
54 | severity: error.code ? (error.code.startsWith('W') ? "warning" : "error") : "error",
55 | from: CodeMirror.Pos(error.line - 1, start),
56 | to: CodeMirror.Pos(error.line - 1, end)
57 | };
58 |
59 | output.push(hint);
60 | }
61 | }
62 | }
63 | });
64 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/lint/json-lint.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | // Depends on jsonlint.js from https://github.com/zaach/jsonlint
5 |
6 | // declare global: jsonlint
7 |
8 | (function(mod) {
9 | if (typeof exports == "object" && typeof module == "object") // CommonJS
10 | mod(require("../../lib/codemirror"));
11 | else if (typeof define == "function" && define.amd) // AMD
12 | define(["../../lib/codemirror"], mod);
13 | else // Plain browser env
14 | mod(CodeMirror);
15 | })(function(CodeMirror) {
16 | "use strict";
17 |
18 | CodeMirror.registerHelper("lint", "json", function(text) {
19 | var found = [];
20 | if (!window.jsonlint) {
21 | if (window.console) {
22 | window.console.error("Error: window.jsonlint not defined, CodeMirror JSON linting cannot run.");
23 | }
24 | return found;
25 | }
26 | // for jsonlint's web dist jsonlint is exported as an object with a single property parser, of which parseError
27 | // is a subproperty
28 | var jsonlint = window.jsonlint.parser || window.jsonlint
29 | jsonlint.parseError = function(str, hash) {
30 | var loc = hash.loc;
31 | found.push({from: CodeMirror.Pos(loc.first_line - 1, loc.first_column),
32 | to: CodeMirror.Pos(loc.last_line - 1, loc.last_column),
33 | message: str});
34 | };
35 | try { jsonlint.parse(text); }
36 | catch(e) {}
37 | return found;
38 | });
39 |
40 | });
41 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/lint/lint.css:
--------------------------------------------------------------------------------
1 | /* The lint marker gutter */
2 | .CodeMirror-lint-markers {
3 | width: 16px;
4 | }
5 |
6 | .CodeMirror-lint-tooltip {
7 | background-color: #ffd;
8 | border: 1px solid black;
9 | border-radius: 4px 4px 4px 4px;
10 | color: black;
11 | font-family: monospace;
12 | font-size: 10pt;
13 | overflow: hidden;
14 | padding: 2px 5px;
15 | position: fixed;
16 | white-space: pre;
17 | white-space: pre-wrap;
18 | z-index: 100;
19 | max-width: 600px;
20 | opacity: 0;
21 | transition: opacity .4s;
22 | -moz-transition: opacity .4s;
23 | -webkit-transition: opacity .4s;
24 | -o-transition: opacity .4s;
25 | -ms-transition: opacity .4s;
26 | }
27 |
28 | .CodeMirror-lint-mark-error, .CodeMirror-lint-mark-warning {
29 | background-position: left bottom;
30 | background-repeat: repeat-x;
31 | }
32 |
33 | .CodeMirror-lint-mark-error {
34 | background-image:
35 | url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg==")
36 | ;
37 | }
38 |
39 | .CodeMirror-lint-mark-warning {
40 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII=");
41 | }
42 |
43 | .CodeMirror-lint-marker-error, .CodeMirror-lint-marker-warning {
44 | background-position: center center;
45 | background-repeat: no-repeat;
46 | cursor: pointer;
47 | display: inline-block;
48 | height: 16px;
49 | width: 16px;
50 | vertical-align: middle;
51 | position: relative;
52 | }
53 |
54 | .CodeMirror-lint-message-error, .CodeMirror-lint-message-warning {
55 | padding-left: 18px;
56 | background-position: top left;
57 | background-repeat: no-repeat;
58 | }
59 |
60 | .CodeMirror-lint-marker-error, .CodeMirror-lint-message-error {
61 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII=");
62 | }
63 |
64 | .CodeMirror-lint-marker-warning, .CodeMirror-lint-message-warning {
65 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII=");
66 | }
67 |
68 | .CodeMirror-lint-marker-multiple {
69 | background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC");
70 | background-repeat: no-repeat;
71 | background-position: right bottom;
72 | width: 100%; height: 100%;
73 | }
74 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/lint/yaml-lint.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"));
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror"], mod);
9 | else // Plain browser env
10 | mod(CodeMirror);
11 | })(function(CodeMirror) {
12 | "use strict";
13 |
14 | // Depends on js-yaml.js from https://github.com/nodeca/js-yaml
15 |
16 | // declare global: jsyaml
17 |
18 | CodeMirror.registerHelper("lint", "yaml", function(text) {
19 | var found = [];
20 | if (!window.jsyaml) {
21 | if (window.console) {
22 | window.console.error("Error: window.jsyaml not defined, CodeMirror YAML linting cannot run.");
23 | }
24 | return found;
25 | }
26 | try { jsyaml.loadAll(text); }
27 | catch(e) {
28 | var loc = e.mark,
29 | // js-yaml YAMLException doesn't always provide an accurate lineno
30 | // e.g., when there are multiple yaml docs
31 | // ---
32 | // ---
33 | // foo:bar
34 | from = loc ? CodeMirror.Pos(loc.line, loc.column) : CodeMirror.Pos(0, 0),
35 | to = from;
36 | found.push({ from: from, to: to, message: e.message });
37 | }
38 | return found;
39 | });
40 |
41 | });
42 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/merge/merge.css:
--------------------------------------------------------------------------------
1 | .CodeMirror-merge {
2 | position: relative;
3 | border: 1px solid #ddd;
4 | white-space: pre;
5 | }
6 |
7 | .CodeMirror-merge, .CodeMirror-merge .CodeMirror {
8 | height: 350px;
9 | }
10 |
11 | .CodeMirror-merge-2pane .CodeMirror-merge-pane { width: 47%; }
12 | .CodeMirror-merge-2pane .CodeMirror-merge-gap { width: 6%; }
13 | .CodeMirror-merge-3pane .CodeMirror-merge-pane { width: 31%; }
14 | .CodeMirror-merge-3pane .CodeMirror-merge-gap { width: 3.5%; }
15 |
16 | .CodeMirror-merge-pane {
17 | display: inline-block;
18 | white-space: normal;
19 | vertical-align: top;
20 | }
21 | .CodeMirror-merge-pane-rightmost {
22 | position: absolute;
23 | right: 0px;
24 | z-index: 1;
25 | }
26 |
27 | .CodeMirror-merge-gap {
28 | z-index: 2;
29 | display: inline-block;
30 | height: 100%;
31 | -moz-box-sizing: border-box;
32 | box-sizing: border-box;
33 | overflow: hidden;
34 | border-left: 1px solid #ddd;
35 | border-right: 1px solid #ddd;
36 | position: relative;
37 | background: #f8f8f8;
38 | }
39 |
40 | .CodeMirror-merge-scrolllock-wrap {
41 | position: absolute;
42 | bottom: 0; left: 50%;
43 | }
44 | .CodeMirror-merge-scrolllock {
45 | position: relative;
46 | left: -50%;
47 | cursor: pointer;
48 | color: #555;
49 | line-height: 1;
50 | }
51 | .CodeMirror-merge-scrolllock:after {
52 | content: "\21db\00a0\00a0\21da";
53 | }
54 | .CodeMirror-merge-scrolllock.CodeMirror-merge-scrolllock-enabled:after {
55 | content: "\21db\21da";
56 | }
57 |
58 | .CodeMirror-merge-copybuttons-left, .CodeMirror-merge-copybuttons-right {
59 | position: absolute;
60 | left: 0; top: 0;
61 | right: 0; bottom: 0;
62 | line-height: 1;
63 | }
64 |
65 | .CodeMirror-merge-copy {
66 | position: absolute;
67 | cursor: pointer;
68 | color: #44c;
69 | z-index: 3;
70 | }
71 |
72 | .CodeMirror-merge-copy-reverse {
73 | position: absolute;
74 | cursor: pointer;
75 | color: #44c;
76 | }
77 |
78 | .CodeMirror-merge-copybuttons-left .CodeMirror-merge-copy { left: 2px; }
79 | .CodeMirror-merge-copybuttons-right .CodeMirror-merge-copy { right: 2px; }
80 |
81 | .CodeMirror-merge-r-inserted, .CodeMirror-merge-l-inserted {
82 | background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAGUlEQVQI12MwuCXy3+CWyH8GBgYGJgYkAABZbAQ9ELXurwAAAABJRU5ErkJggg==);
83 | background-position: bottom left;
84 | background-repeat: repeat-x;
85 | }
86 |
87 | .CodeMirror-merge-r-deleted, .CodeMirror-merge-l-deleted {
88 | background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAACCAYAAACddGYaAAAAGUlEQVQI12M4Kyb2/6yY2H8GBgYGJgYkAABURgPz6Ks7wQAAAABJRU5ErkJggg==);
89 | background-position: bottom left;
90 | background-repeat: repeat-x;
91 | }
92 |
93 | .CodeMirror-merge-r-chunk { background: #ffffe0; }
94 | .CodeMirror-merge-r-chunk-start { border-top: 1px solid #ee8; }
95 | .CodeMirror-merge-r-chunk-end { border-bottom: 1px solid #ee8; }
96 | .CodeMirror-merge-r-connect { fill: #ffffe0; stroke: #ee8; stroke-width: 1px; }
97 |
98 | .CodeMirror-merge-l-chunk { background: #eef; }
99 | .CodeMirror-merge-l-chunk-start { border-top: 1px solid #88e; }
100 | .CodeMirror-merge-l-chunk-end { border-bottom: 1px solid #88e; }
101 | .CodeMirror-merge-l-connect { fill: #eef; stroke: #88e; stroke-width: 1px; }
102 |
103 | .CodeMirror-merge-l-chunk.CodeMirror-merge-r-chunk { background: #dfd; }
104 | .CodeMirror-merge-l-chunk-start.CodeMirror-merge-r-chunk-start { border-top: 1px solid #4e4; }
105 | .CodeMirror-merge-l-chunk-end.CodeMirror-merge-r-chunk-end { border-bottom: 1px solid #4e4; }
106 |
107 | .CodeMirror-merge-collapsed-widget:before {
108 | content: "(...)";
109 | }
110 | .CodeMirror-merge-collapsed-widget {
111 | cursor: pointer;
112 | color: #88b;
113 | background: #eef;
114 | border: 1px solid #ddf;
115 | font-size: 90%;
116 | padding: 0 3px;
117 | border-radius: 4px;
118 | }
119 | .CodeMirror-merge-collapsed-line .CodeMirror-gutter-elt { display: none; }
120 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/mode/loadmode.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"), "cjs");
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror"], function(CM) { mod(CM, "amd"); });
9 | else // Plain browser env
10 | mod(CodeMirror, "plain");
11 | })(function(CodeMirror, env) {
12 | if (!CodeMirror.modeURL) CodeMirror.modeURL = "../mode/%N/%N.js";
13 |
14 | var loading = {};
15 | function splitCallback(cont, n) {
16 | var countDown = n;
17 | return function() { if (--countDown == 0) cont(); };
18 | }
19 | function ensureDeps(mode, cont) {
20 | var deps = CodeMirror.modes[mode].dependencies;
21 | if (!deps) return cont();
22 | var missing = [];
23 | for (var i = 0; i < deps.length; ++i) {
24 | if (!CodeMirror.modes.hasOwnProperty(deps[i]))
25 | missing.push(deps[i]);
26 | }
27 | if (!missing.length) return cont();
28 | var split = splitCallback(cont, missing.length);
29 | for (var i = 0; i < missing.length; ++i)
30 | CodeMirror.requireMode(missing[i], split);
31 | }
32 |
33 | CodeMirror.requireMode = function(mode, cont) {
34 | if (typeof mode != "string") mode = mode.name;
35 | if (CodeMirror.modes.hasOwnProperty(mode)) return ensureDeps(mode, cont);
36 | if (loading.hasOwnProperty(mode)) return loading[mode].push(cont);
37 |
38 | var file = CodeMirror.modeURL.replace(/%N/g, mode);
39 | if (env == "plain") {
40 | var script = document.createElement("script");
41 | script.src = file;
42 | var others = document.getElementsByTagName("script")[0];
43 | var list = loading[mode] = [cont];
44 | CodeMirror.on(script, "load", function() {
45 | ensureDeps(mode, function() {
46 | for (var i = 0; i < list.length; ++i) list[i]();
47 | });
48 | });
49 | others.parentNode.insertBefore(script, others);
50 | } else if (env == "cjs") {
51 | require(file);
52 | cont();
53 | } else if (env == "amd") {
54 | requirejs([file], cont);
55 | }
56 | };
57 |
58 | CodeMirror.autoLoadMode = function(instance, mode) {
59 | if (!CodeMirror.modes.hasOwnProperty(mode))
60 | CodeMirror.requireMode(mode, function() {
61 | instance.setOption("mode", instance.getOption("mode"));
62 | });
63 | };
64 | });
65 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/mode/multiplex_test.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | (function() {
5 | CodeMirror.defineMode("markdown_with_stex", function(){
6 | var inner = CodeMirror.getMode({}, "stex");
7 | var outer = CodeMirror.getMode({}, "markdown");
8 |
9 | var innerOptions = {
10 | open: '$',
11 | close: '$',
12 | mode: inner,
13 | delimStyle: 'delim',
14 | innerStyle: 'inner'
15 | };
16 |
17 | return CodeMirror.multiplexingMode(outer, innerOptions);
18 | });
19 |
20 | var mode = CodeMirror.getMode({}, "markdown_with_stex");
21 |
22 | function MT(name) {
23 | test.mode(
24 | name,
25 | mode,
26 | Array.prototype.slice.call(arguments, 1),
27 | 'multiplexing');
28 | }
29 |
30 | MT(
31 | "stexInsideMarkdown",
32 | "[strong **Equation:**] [delim&delim-open $][inner&tag \\pi][delim&delim-close $]");
33 | })();
34 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/mode/overlay.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | // Utility function that allows modes to be combined. The mode given
5 | // as the base argument takes care of most of the normal mode
6 | // functionality, but a second (typically simple) mode is used, which
7 | // can override the style of text. Both modes get to parse all of the
8 | // text, but when both assign a non-null style to a piece of code, the
9 | // overlay wins, unless the combine argument was true and not overridden,
10 | // or state.overlay.combineTokens was true, in which case the styles are
11 | // combined.
12 |
13 | (function(mod) {
14 | if (typeof exports == "object" && typeof module == "object") // CommonJS
15 | mod(require("../../lib/codemirror"));
16 | else if (typeof define == "function" && define.amd) // AMD
17 | define(["../../lib/codemirror"], mod);
18 | else // Plain browser env
19 | mod(CodeMirror);
20 | })(function(CodeMirror) {
21 | "use strict";
22 |
23 | CodeMirror.overlayMode = function(base, overlay, combine) {
24 | return {
25 | startState: function() {
26 | return {
27 | base: CodeMirror.startState(base),
28 | overlay: CodeMirror.startState(overlay),
29 | basePos: 0, baseCur: null,
30 | overlayPos: 0, overlayCur: null,
31 | streamSeen: null
32 | };
33 | },
34 | copyState: function(state) {
35 | return {
36 | base: CodeMirror.copyState(base, state.base),
37 | overlay: CodeMirror.copyState(overlay, state.overlay),
38 | basePos: state.basePos, baseCur: null,
39 | overlayPos: state.overlayPos, overlayCur: null
40 | };
41 | },
42 |
43 | token: function(stream, state) {
44 | if (stream != state.streamSeen ||
45 | Math.min(state.basePos, state.overlayPos) < stream.start) {
46 | state.streamSeen = stream;
47 | state.basePos = state.overlayPos = stream.start;
48 | }
49 |
50 | if (stream.start == state.basePos) {
51 | state.baseCur = base.token(stream, state.base);
52 | state.basePos = stream.pos;
53 | }
54 | if (stream.start == state.overlayPos) {
55 | stream.pos = stream.start;
56 | state.overlayCur = overlay.token(stream, state.overlay);
57 | state.overlayPos = stream.pos;
58 | }
59 | stream.pos = Math.min(state.basePos, state.overlayPos);
60 |
61 | // state.overlay.combineTokens always takes precedence over combine,
62 | // unless set to null
63 | if (state.overlayCur == null) return state.baseCur;
64 | else if (state.baseCur != null &&
65 | state.overlay.combineTokens ||
66 | combine && state.overlay.combineTokens == null)
67 | return state.baseCur + " " + state.overlayCur;
68 | else return state.overlayCur;
69 | },
70 |
71 | indent: base.indent && function(state, textAfter, line) {
72 | return base.indent(state.base, textAfter, line);
73 | },
74 | electricChars: base.electricChars,
75 |
76 | innerMode: function(state) { return {state: state.base, mode: base}; },
77 |
78 | blankLine: function(state) {
79 | var baseToken, overlayToken;
80 | if (base.blankLine) baseToken = base.blankLine(state.base);
81 | if (overlay.blankLine) overlayToken = overlay.blankLine(state.overlay);
82 |
83 | return overlayToken == null ?
84 | baseToken :
85 | (combine && baseToken != null ? baseToken + " " + overlayToken : overlayToken);
86 | }
87 | };
88 | };
89 |
90 | });
91 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/runmode/colorize.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"), require("./runmode"));
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror", "./runmode"], mod);
9 | else // Plain browser env
10 | mod(CodeMirror);
11 | })(function(CodeMirror) {
12 | "use strict";
13 |
14 | var isBlock = /^(p|li|div|h\\d|pre|blockquote|td)$/;
15 |
16 | function textContent(node, out) {
17 | if (node.nodeType == 3) return out.push(node.nodeValue);
18 | for (var ch = node.firstChild; ch; ch = ch.nextSibling) {
19 | textContent(ch, out);
20 | if (isBlock.test(node.nodeType)) out.push("\n");
21 | }
22 | }
23 |
24 | CodeMirror.colorize = function(collection, defaultMode) {
25 | if (!collection) collection = document.body.getElementsByTagName("pre");
26 |
27 | for (var i = 0; i < collection.length; ++i) {
28 | var node = collection[i];
29 | var mode = node.getAttribute("data-lang") || defaultMode;
30 | if (!mode) continue;
31 |
32 | var text = [];
33 | textContent(node, text);
34 | node.innerHTML = "";
35 | CodeMirror.runMode(text.join(""), mode, node);
36 |
37 | node.className += " cm-s-default";
38 | }
39 | };
40 | });
41 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/runmode/runmode.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"));
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror"], mod);
9 | else // Plain browser env
10 | mod(CodeMirror);
11 | })(function(CodeMirror) {
12 | "use strict";
13 |
14 | CodeMirror.runMode = function(string, modespec, callback, options) {
15 | var mode = CodeMirror.getMode(CodeMirror.defaults, modespec);
16 | var ie = /MSIE \d/.test(navigator.userAgent);
17 | var ie_lt9 = ie && (document.documentMode == null || document.documentMode < 9);
18 |
19 | if (callback.appendChild) {
20 | var tabSize = (options && options.tabSize) || CodeMirror.defaults.tabSize;
21 | var node = callback, col = 0;
22 | node.innerHTML = "";
23 | callback = function(text, style) {
24 | if (text == "\n") {
25 | // Emitting LF or CRLF on IE8 or earlier results in an incorrect display.
26 | // Emitting a carriage return makes everything ok.
27 | node.appendChild(document.createTextNode(ie_lt9 ? '\r' : text));
28 | col = 0;
29 | return;
30 | }
31 | var content = "";
32 | // replace tabs
33 | for (var pos = 0;;) {
34 | var idx = text.indexOf("\t", pos);
35 | if (idx == -1) {
36 | content += text.slice(pos);
37 | col += text.length - pos;
38 | break;
39 | } else {
40 | col += idx - pos;
41 | content += text.slice(pos, idx);
42 | var size = tabSize - col % tabSize;
43 | col += size;
44 | for (var i = 0; i < size; ++i) content += " ";
45 | pos = idx + 1;
46 | }
47 | }
48 |
49 | if (style) {
50 | var sp = node.appendChild(document.createElement("span"));
51 | sp.className = "cm-" + style.replace(/ +/g, " cm-");
52 | sp.appendChild(document.createTextNode(content));
53 | } else {
54 | node.appendChild(document.createTextNode(content));
55 | }
56 | };
57 | }
58 |
59 | var lines = CodeMirror.splitLines(string), state = (options && options.state) || CodeMirror.startState(mode);
60 | for (var i = 0, e = lines.length; i < e; ++i) {
61 | if (i) callback("\n");
62 | var stream = new CodeMirror.StringStream(lines[i]);
63 | if (!stream.string && mode.blankLine) mode.blankLine(state);
64 | while (!stream.eol()) {
65 | var style = mode.token(stream, state);
66 | callback(stream.current(), style, i, stream.start, state);
67 | stream.start = stream.pos;
68 | }
69 | }
70 | };
71 |
72 | });
73 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/scroll/scrollpastend.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"));
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror"], mod);
9 | else // Plain browser env
10 | mod(CodeMirror);
11 | })(function(CodeMirror) {
12 | "use strict";
13 |
14 | CodeMirror.defineOption("scrollPastEnd", false, function(cm, val, old) {
15 | if (old && old != CodeMirror.Init) {
16 | cm.off("change", onChange);
17 | cm.off("refresh", updateBottomMargin);
18 | cm.display.lineSpace.parentNode.style.paddingBottom = "";
19 | cm.state.scrollPastEndPadding = null;
20 | }
21 | if (val) {
22 | cm.on("change", onChange);
23 | cm.on("refresh", updateBottomMargin);
24 | updateBottomMargin(cm);
25 | }
26 | });
27 |
28 | function onChange(cm, change) {
29 | if (CodeMirror.changeEnd(change).line == cm.lastLine())
30 | updateBottomMargin(cm);
31 | }
32 |
33 | function updateBottomMargin(cm) {
34 | var padding = "";
35 | if (cm.lineCount() > 1) {
36 | var totalH = cm.display.scroller.clientHeight - 30,
37 | lastLineH = cm.getLineHandle(cm.lastLine()).height;
38 | padding = (totalH - lastLineH) + "px";
39 | }
40 | if (cm.state.scrollPastEndPadding != padding) {
41 | cm.state.scrollPastEndPadding = padding;
42 | cm.display.lineSpace.parentNode.style.paddingBottom = padding;
43 | cm.off("refresh", updateBottomMargin);
44 | cm.setSize();
45 | cm.on("refresh", updateBottomMargin);
46 | }
47 | }
48 | });
49 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/scroll/simplescrollbars.css:
--------------------------------------------------------------------------------
1 | .CodeMirror-simplescroll-horizontal div, .CodeMirror-simplescroll-vertical div {
2 | position: absolute;
3 | background: #ccc;
4 | -moz-box-sizing: border-box;
5 | box-sizing: border-box;
6 | border: 1px solid #bbb;
7 | border-radius: 2px;
8 | }
9 |
10 | .CodeMirror-simplescroll-horizontal, .CodeMirror-simplescroll-vertical {
11 | position: absolute;
12 | z-index: 6;
13 | background: #eee;
14 | }
15 |
16 | .CodeMirror-simplescroll-horizontal {
17 | bottom: 0; left: 0;
18 | height: 8px;
19 | }
20 | .CodeMirror-simplescroll-horizontal div {
21 | bottom: 0;
22 | height: 100%;
23 | }
24 |
25 | .CodeMirror-simplescroll-vertical {
26 | right: 0; top: 0;
27 | width: 8px;
28 | }
29 | .CodeMirror-simplescroll-vertical div {
30 | right: 0;
31 | width: 100%;
32 | }
33 |
34 |
35 | .CodeMirror-overlayscroll .CodeMirror-scrollbar-filler, .CodeMirror-overlayscroll .CodeMirror-gutter-filler {
36 | display: none;
37 | }
38 |
39 | .CodeMirror-overlayscroll-horizontal div, .CodeMirror-overlayscroll-vertical div {
40 | position: absolute;
41 | background: #bcd;
42 | border-radius: 3px;
43 | }
44 |
45 | .CodeMirror-overlayscroll-horizontal, .CodeMirror-overlayscroll-vertical {
46 | position: absolute;
47 | z-index: 6;
48 | }
49 |
50 | .CodeMirror-overlayscroll-horizontal {
51 | bottom: 0; left: 0;
52 | height: 6px;
53 | }
54 | .CodeMirror-overlayscroll-horizontal div {
55 | bottom: 0;
56 | height: 100%;
57 | }
58 |
59 | .CodeMirror-overlayscroll-vertical {
60 | right: 0; top: 0;
61 | width: 6px;
62 | }
63 | .CodeMirror-overlayscroll-vertical div {
64 | right: 0;
65 | width: 100%;
66 | }
67 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/search/jump-to-line.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | // Defines jumpToLine command. Uses dialog.js if present.
5 |
6 | (function(mod) {
7 | if (typeof exports == "object" && typeof module == "object") // CommonJS
8 | mod(require("../../lib/codemirror"), require("../dialog/dialog"));
9 | else if (typeof define == "function" && define.amd) // AMD
10 | define(["../../lib/codemirror", "../dialog/dialog"], mod);
11 | else // Plain browser env
12 | mod(CodeMirror);
13 | })(function(CodeMirror) {
14 | "use strict";
15 |
16 | function dialog(cm, text, shortText, deflt, f) {
17 | if (cm.openDialog) cm.openDialog(text, f, {value: deflt, selectValueOnOpen: true});
18 | else f(prompt(shortText, deflt));
19 | }
20 |
21 | function getJumpDialog(cm) {
22 | return cm.phrase("Jump to line:") + ' ' + cm.phrase("(Use line:column or scroll% syntax)") + ' ';
23 | }
24 |
25 | function interpretLine(cm, string) {
26 | var num = Number(string)
27 | if (/^[-+]/.test(string)) return cm.getCursor().line + num
28 | else return num - 1
29 | }
30 |
31 | CodeMirror.commands.jumpToLine = function(cm) {
32 | var cur = cm.getCursor();
33 | dialog(cm, getJumpDialog(cm), cm.phrase("Jump to line:"), (cur.line + 1) + ":" + cur.ch, function(posStr) {
34 | if (!posStr) return;
35 |
36 | var match;
37 | if (match = /^\s*([\+\-]?\d+)\s*\:\s*(\d+)\s*$/.exec(posStr)) {
38 | cm.setCursor(interpretLine(cm, match[1]), Number(match[2]))
39 | } else if (match = /^\s*([\+\-]?\d+(\.\d+)?)\%\s*/.exec(posStr)) {
40 | var line = Math.round(cm.lineCount() * Number(match[1]) / 100);
41 | if (/^[-+]/.test(match[1])) line = cur.line + line + 1;
42 | cm.setCursor(line - 1, cur.ch);
43 | } else if (match = /^\s*\:?\s*([\+\-]?\d+)\s*/.exec(posStr)) {
44 | cm.setCursor(interpretLine(cm, match[1]), cur.ch);
45 | }
46 | });
47 | };
48 |
49 | CodeMirror.keyMap["default"]["Alt-G"] = "jumpToLine";
50 | });
51 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/search/matchesonscrollbar.css:
--------------------------------------------------------------------------------
1 | .CodeMirror-search-match {
2 | background: gold;
3 | border-top: 1px solid orange;
4 | border-bottom: 1px solid orange;
5 | -moz-box-sizing: border-box;
6 | box-sizing: border-box;
7 | opacity: .5;
8 | }
9 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/search/matchesonscrollbar.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"), require("./searchcursor"), require("../scroll/annotatescrollbar"));
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror", "./searchcursor", "../scroll/annotatescrollbar"], mod);
9 | else // Plain browser env
10 | mod(CodeMirror);
11 | })(function(CodeMirror) {
12 | "use strict";
13 |
14 | CodeMirror.defineExtension("showMatchesOnScrollbar", function(query, caseFold, options) {
15 | if (typeof options == "string") options = {className: options};
16 | if (!options) options = {};
17 | return new SearchAnnotation(this, query, caseFold, options);
18 | });
19 |
20 | function SearchAnnotation(cm, query, caseFold, options) {
21 | this.cm = cm;
22 | this.options = options;
23 | var annotateOptions = {listenForChanges: false};
24 | for (var prop in options) annotateOptions[prop] = options[prop];
25 | if (!annotateOptions.className) annotateOptions.className = "CodeMirror-search-match";
26 | this.annotation = cm.annotateScrollbar(annotateOptions);
27 | this.query = query;
28 | this.caseFold = caseFold;
29 | this.gap = {from: cm.firstLine(), to: cm.lastLine() + 1};
30 | this.matches = [];
31 | this.update = null;
32 |
33 | this.findMatches();
34 | this.annotation.update(this.matches);
35 |
36 | var self = this;
37 | cm.on("change", this.changeHandler = function(_cm, change) { self.onChange(change); });
38 | }
39 |
40 | var MAX_MATCHES = 1000;
41 |
42 | SearchAnnotation.prototype.findMatches = function() {
43 | if (!this.gap) return;
44 | for (var i = 0; i < this.matches.length; i++) {
45 | var match = this.matches[i];
46 | if (match.from.line >= this.gap.to) break;
47 | if (match.to.line >= this.gap.from) this.matches.splice(i--, 1);
48 | }
49 | var cursor = this.cm.getSearchCursor(this.query, CodeMirror.Pos(this.gap.from, 0), {caseFold: this.caseFold, multiline: this.options.multiline});
50 | var maxMatches = this.options && this.options.maxMatches || MAX_MATCHES;
51 | while (cursor.findNext()) {
52 | var match = {from: cursor.from(), to: cursor.to()};
53 | if (match.from.line >= this.gap.to) break;
54 | this.matches.splice(i++, 0, match);
55 | if (this.matches.length > maxMatches) break;
56 | }
57 | this.gap = null;
58 | };
59 |
60 | function offsetLine(line, changeStart, sizeChange) {
61 | if (line <= changeStart) return line;
62 | return Math.max(changeStart, line + sizeChange);
63 | }
64 |
65 | SearchAnnotation.prototype.onChange = function(change) {
66 | var startLine = change.from.line;
67 | var endLine = CodeMirror.changeEnd(change).line;
68 | var sizeChange = endLine - change.to.line;
69 | if (this.gap) {
70 | this.gap.from = Math.min(offsetLine(this.gap.from, startLine, sizeChange), change.from.line);
71 | this.gap.to = Math.max(offsetLine(this.gap.to, startLine, sizeChange), change.from.line);
72 | } else {
73 | this.gap = {from: change.from.line, to: endLine + 1};
74 | }
75 |
76 | if (sizeChange) for (var i = 0; i < this.matches.length; i++) {
77 | var match = this.matches[i];
78 | var newFrom = offsetLine(match.from.line, startLine, sizeChange);
79 | if (newFrom != match.from.line) match.from = CodeMirror.Pos(newFrom, match.from.ch);
80 | var newTo = offsetLine(match.to.line, startLine, sizeChange);
81 | if (newTo != match.to.line) match.to = CodeMirror.Pos(newTo, match.to.ch);
82 | }
83 | clearTimeout(this.update);
84 | var self = this;
85 | this.update = setTimeout(function() { self.updateAfterChange(); }, 250);
86 | };
87 |
88 | SearchAnnotation.prototype.updateAfterChange = function() {
89 | this.findMatches();
90 | this.annotation.update(this.matches);
91 | };
92 |
93 | SearchAnnotation.prototype.clear = function() {
94 | this.cm.off("change", this.changeHandler);
95 | this.annotation.clear();
96 | };
97 | });
98 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/selection/active-line.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"));
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror"], mod);
9 | else // Plain browser env
10 | mod(CodeMirror);
11 | })(function(CodeMirror) {
12 | "use strict";
13 | var WRAP_CLASS = "CodeMirror-activeline";
14 | var BACK_CLASS = "CodeMirror-activeline-background";
15 | var GUTT_CLASS = "CodeMirror-activeline-gutter";
16 |
17 | CodeMirror.defineOption("styleActiveLine", false, function(cm, val, old) {
18 | var prev = old == CodeMirror.Init ? false : old;
19 | if (val == prev) return
20 | if (prev) {
21 | cm.off("beforeSelectionChange", selectionChange);
22 | clearActiveLines(cm);
23 | delete cm.state.activeLines;
24 | }
25 | if (val) {
26 | cm.state.activeLines = [];
27 | updateActiveLines(cm, cm.listSelections());
28 | cm.on("beforeSelectionChange", selectionChange);
29 | }
30 | });
31 |
32 | function clearActiveLines(cm) {
33 | for (var i = 0; i < cm.state.activeLines.length; i++) {
34 | cm.removeLineClass(cm.state.activeLines[i], "wrap", WRAP_CLASS);
35 | cm.removeLineClass(cm.state.activeLines[i], "background", BACK_CLASS);
36 | cm.removeLineClass(cm.state.activeLines[i], "gutter", GUTT_CLASS);
37 | }
38 | }
39 |
40 | function sameArray(a, b) {
41 | if (a.length != b.length) return false;
42 | for (var i = 0; i < a.length; i++)
43 | if (a[i] != b[i]) return false;
44 | return true;
45 | }
46 |
47 | function updateActiveLines(cm, ranges) {
48 | var active = [];
49 | for (var i = 0; i < ranges.length; i++) {
50 | var range = ranges[i];
51 | var option = cm.getOption("styleActiveLine");
52 | if (typeof option == "object" && option.nonEmpty ? range.anchor.line != range.head.line : !range.empty())
53 | continue
54 | var line = cm.getLineHandleVisualStart(range.head.line);
55 | if (active[active.length - 1] != line) active.push(line);
56 | }
57 | if (sameArray(cm.state.activeLines, active)) return;
58 | cm.operation(function() {
59 | clearActiveLines(cm);
60 | for (var i = 0; i < active.length; i++) {
61 | cm.addLineClass(active[i], "wrap", WRAP_CLASS);
62 | cm.addLineClass(active[i], "background", BACK_CLASS);
63 | cm.addLineClass(active[i], "gutter", GUTT_CLASS);
64 | }
65 | cm.state.activeLines = active;
66 | });
67 | }
68 |
69 | function selectionChange(cm, sel) {
70 | updateActiveLines(cm, sel.ranges);
71 | }
72 | });
73 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/selection/selection-pointer.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"));
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror"], mod);
9 | else // Plain browser env
10 | mod(CodeMirror);
11 | })(function(CodeMirror) {
12 | "use strict";
13 |
14 | CodeMirror.defineOption("selectionPointer", false, function(cm, val) {
15 | var data = cm.state.selectionPointer;
16 | if (data) {
17 | CodeMirror.off(cm.getWrapperElement(), "mousemove", data.mousemove);
18 | CodeMirror.off(cm.getWrapperElement(), "mouseout", data.mouseout);
19 | CodeMirror.off(window, "scroll", data.windowScroll);
20 | cm.off("cursorActivity", reset);
21 | cm.off("scroll", reset);
22 | cm.state.selectionPointer = null;
23 | cm.display.lineDiv.style.cursor = "";
24 | }
25 | if (val) {
26 | data = cm.state.selectionPointer = {
27 | value: typeof val == "string" ? val : "default",
28 | mousemove: function(event) { mousemove(cm, event); },
29 | mouseout: function(event) { mouseout(cm, event); },
30 | windowScroll: function() { reset(cm); },
31 | rects: null,
32 | mouseX: null, mouseY: null,
33 | willUpdate: false
34 | };
35 | CodeMirror.on(cm.getWrapperElement(), "mousemove", data.mousemove);
36 | CodeMirror.on(cm.getWrapperElement(), "mouseout", data.mouseout);
37 | CodeMirror.on(window, "scroll", data.windowScroll);
38 | cm.on("cursorActivity", reset);
39 | cm.on("scroll", reset);
40 | }
41 | });
42 |
43 | function mousemove(cm, event) {
44 | var data = cm.state.selectionPointer;
45 | if (event.buttons == null ? event.which : event.buttons) {
46 | data.mouseX = data.mouseY = null;
47 | } else {
48 | data.mouseX = event.clientX;
49 | data.mouseY = event.clientY;
50 | }
51 | scheduleUpdate(cm);
52 | }
53 |
54 | function mouseout(cm, event) {
55 | if (!cm.getWrapperElement().contains(event.relatedTarget)) {
56 | var data = cm.state.selectionPointer;
57 | data.mouseX = data.mouseY = null;
58 | scheduleUpdate(cm);
59 | }
60 | }
61 |
62 | function reset(cm) {
63 | cm.state.selectionPointer.rects = null;
64 | scheduleUpdate(cm);
65 | }
66 |
67 | function scheduleUpdate(cm) {
68 | if (!cm.state.selectionPointer.willUpdate) {
69 | cm.state.selectionPointer.willUpdate = true;
70 | setTimeout(function() {
71 | update(cm);
72 | cm.state.selectionPointer.willUpdate = false;
73 | }, 50);
74 | }
75 | }
76 |
77 | function update(cm) {
78 | var data = cm.state.selectionPointer;
79 | if (!data) return;
80 | if (data.rects == null && data.mouseX != null) {
81 | data.rects = [];
82 | if (cm.somethingSelected()) {
83 | for (var sel = cm.display.selectionDiv.firstChild; sel; sel = sel.nextSibling)
84 | data.rects.push(sel.getBoundingClientRect());
85 | }
86 | }
87 | var inside = false;
88 | if (data.mouseX != null) for (var i = 0; i < data.rects.length; i++) {
89 | var rect = data.rects[i];
90 | if (rect.left <= data.mouseX && rect.right >= data.mouseX &&
91 | rect.top <= data.mouseY && rect.bottom >= data.mouseY)
92 | inside = true;
93 | }
94 | var cursor = inside ? data.value : "";
95 | if (cm.display.lineDiv.style.cursor != cursor)
96 | cm.display.lineDiv.style.cursor = cursor;
97 | }
98 | });
99 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/tern/tern.css:
--------------------------------------------------------------------------------
1 | .CodeMirror-Tern-completion {
2 | padding-left: 22px;
3 | position: relative;
4 | line-height: 1.5;
5 | }
6 | .CodeMirror-Tern-completion:before {
7 | position: absolute;
8 | left: 2px;
9 | bottom: 2px;
10 | border-radius: 50%;
11 | font-size: 12px;
12 | font-weight: bold;
13 | height: 15px;
14 | width: 15px;
15 | line-height: 16px;
16 | text-align: center;
17 | color: white;
18 | -moz-box-sizing: border-box;
19 | box-sizing: border-box;
20 | }
21 | .CodeMirror-Tern-completion-unknown:before {
22 | content: "?";
23 | background: #4bb;
24 | }
25 | .CodeMirror-Tern-completion-object:before {
26 | content: "O";
27 | background: #77c;
28 | }
29 | .CodeMirror-Tern-completion-fn:before {
30 | content: "F";
31 | background: #7c7;
32 | }
33 | .CodeMirror-Tern-completion-array:before {
34 | content: "A";
35 | background: #c66;
36 | }
37 | .CodeMirror-Tern-completion-number:before {
38 | content: "1";
39 | background: #999;
40 | }
41 | .CodeMirror-Tern-completion-string:before {
42 | content: "S";
43 | background: #999;
44 | }
45 | .CodeMirror-Tern-completion-bool:before {
46 | content: "B";
47 | background: #999;
48 | }
49 |
50 | .CodeMirror-Tern-completion-guess {
51 | color: #999;
52 | }
53 |
54 | .CodeMirror-Tern-tooltip {
55 | border: 1px solid silver;
56 | border-radius: 3px;
57 | color: #444;
58 | padding: 2px 5px;
59 | font-size: 90%;
60 | font-family: monospace;
61 | background-color: white;
62 | white-space: pre-wrap;
63 |
64 | max-width: 40em;
65 | position: absolute;
66 | z-index: 10;
67 | -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
68 | -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
69 | box-shadow: 2px 3px 5px rgba(0,0,0,.2);
70 |
71 | transition: opacity 1s;
72 | -moz-transition: opacity 1s;
73 | -webkit-transition: opacity 1s;
74 | -o-transition: opacity 1s;
75 | -ms-transition: opacity 1s;
76 | }
77 |
78 | .CodeMirror-Tern-hint-doc {
79 | max-width: 25em;
80 | margin-top: -3px;
81 | }
82 |
83 | .CodeMirror-Tern-fname { color: black; }
84 | .CodeMirror-Tern-farg { color: #70a; }
85 | .CodeMirror-Tern-farg-current { text-decoration: underline; }
86 | .CodeMirror-Tern-type { color: #07c; }
87 | .CodeMirror-Tern-fhint-guess { opacity: .7; }
88 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/addon/tern/worker.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | // declare global: tern, server
5 |
6 | var server;
7 |
8 | this.onmessage = function(e) {
9 | var data = e.data;
10 | switch (data.type) {
11 | case "init": return startServer(data.defs, data.plugins, data.scripts);
12 | case "add": return server.addFile(data.name, data.text);
13 | case "del": return server.delFile(data.name);
14 | case "req": return server.request(data.body, function(err, reqData) {
15 | postMessage({id: data.id, body: reqData, err: err && String(err)});
16 | });
17 | case "getFile":
18 | var c = pending[data.id];
19 | delete pending[data.id];
20 | return c(data.err, data.text);
21 | default: throw new Error("Unknown message type: " + data.type);
22 | }
23 | };
24 |
25 | var nextId = 0, pending = {};
26 | function getFile(file, c) {
27 | postMessage({type: "getFile", name: file, id: ++nextId});
28 | pending[nextId] = c;
29 | }
30 |
31 | function startServer(defs, plugins, scripts) {
32 | if (scripts) importScripts.apply(null, scripts);
33 |
34 | server = new tern.Server({
35 | getFile: getFile,
36 | async: true,
37 | defs: defs,
38 | plugins: plugins
39 | });
40 | }
41 |
42 | this.console = {
43 | log: function(v) { postMessage({type: "debug", message: v}); }
44 | };
45 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/eclipse.css:
--------------------------------------------------------------------------------
1 | .cm-s-eclipse span.cm-meta { color: #FF1717; }
2 | .cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; }
3 | .cm-s-eclipse span.cm-atom { color: #219; }
4 | .cm-s-eclipse span.cm-number { color: #164; }
5 | .cm-s-eclipse span.cm-def { color: #00f; }
6 | .cm-s-eclipse span.cm-variable { color: black; }
7 | .cm-s-eclipse span.cm-variable-2 { color: #0000C0; }
8 | .cm-s-eclipse span.cm-variable-3, .cm-s-eclipse span.cm-type { color: #0000C0; }
9 | .cm-s-eclipse span.cm-property { color: black; }
10 | .cm-s-eclipse span.cm-operator { color: black; }
11 | .cm-s-eclipse span.cm-comment { color: #3F7F5F; }
12 | .cm-s-eclipse span.cm-string { color: #2A00FF; }
13 | .cm-s-eclipse span.cm-string-2 { color: #f50; }
14 | .cm-s-eclipse span.cm-qualifier { color: #555; }
15 | .cm-s-eclipse span.cm-builtin { color: #30a; }
16 | .cm-s-eclipse span.cm-bracket { color: #cc7; }
17 | .cm-s-eclipse span.cm-tag { color: #170; }
18 | .cm-s-eclipse span.cm-attribute { color: #00c; }
19 | .cm-s-eclipse span.cm-link { color: #219; }
20 | .cm-s-eclipse span.cm-error { color: #f00; }
21 |
22 | .cm-s-eclipse .CodeMirror-activeline-background { background: #e8f2ff; }
23 | .cm-s-eclipse .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/mode/htmlembedded/htmlembedded.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"),
7 | require("../../addon/mode/multiplex"));
8 | else if (typeof define == "function" && define.amd) // AMD
9 | define(["../../lib/codemirror", "../htmlmixed/htmlmixed",
10 | "../../addon/mode/multiplex"], mod);
11 | else // Plain browser env
12 | mod(CodeMirror);
13 | })(function(CodeMirror) {
14 | "use strict";
15 |
16 | CodeMirror.defineMode("htmlembedded", function(config, parserConfig) {
17 | var closeComment = parserConfig.closeComment || "--%>"
18 | return CodeMirror.multiplexingMode(CodeMirror.getMode(config, "htmlmixed"), {
19 | open: parserConfig.openComment || "<%--",
20 | close: closeComment,
21 | delimStyle: "comment",
22 | mode: {token: function(stream) {
23 | stream.skipTo(closeComment) || stream.skipToEnd()
24 | return "comment"
25 | }}
26 | }, {
27 | open: parserConfig.open || parserConfig.scriptStartRegex || "<%",
28 | close: parserConfig.close || parserConfig.scriptEndRegex || "%>",
29 | mode: CodeMirror.getMode(config, parserConfig.scriptingModeSpec)
30 | });
31 | }, "htmlmixed");
32 |
33 | CodeMirror.defineMIME("application/x-ejs", {name: "htmlembedded", scriptingModeSpec:"javascript"});
34 | CodeMirror.defineMIME("application/x-aspx", {name: "htmlembedded", scriptingModeSpec:"text/x-csharp"});
35 | CodeMirror.defineMIME("application/x-jsp", {name: "htmlembedded", scriptingModeSpec:"text/x-java"});
36 | CodeMirror.defineMIME("application/x-erb", {name: "htmlembedded", scriptingModeSpec:"ruby"});
37 | });
38 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/mode/htmlembedded/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
CodeMirror: Html Embedded Scripts mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
29 |
30 |
31 | Html Embedded Scripts mode
32 |
44 |
45 |
53 |
54 | Mode for html embedded scripts like JSP and ASP.NET. Depends on multiplex and HtmlMixed which in turn depends on
55 | JavaScript, CSS and XML. Other dependencies include those of the scripting language chosen.
56 |
57 | MIME types defined: application/x-aspx
(ASP.NET),
58 | application/x-ejs
(Embedded Javascript), application/x-jsp
(JavaServer Pages)
59 | and application/x-erb
60 |
61 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/mode/htmlmixed/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: HTML mixed mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
29 |
30 |
31 | HTML mixed mode
32 |
33 |
34 |
35 |
36 | Mixed HTML Example
37 |
45 |
46 |
47 | Mixed HTML Example
48 |
53 |
54 |
55 |
56 |
71 |
72 | The HTML mixed mode depends on the XML, JavaScript, and CSS modes.
73 |
74 | It takes an optional mode configuration
75 | option, tags
, which can be used to add custom
76 | behavior for specific tags. When given, it should be an object
77 | mapping tag names (for example script
) to arrays or
78 | three-element arrays. Those inner arrays indicate [attributeName,
79 | valueRegexp, modeSpec ]
80 | specifications. For example, you could use ["type", /^foo$/,
81 | "foo"]
to map the attribute type="foo"
to
82 | the foo
mode. When the first two fields are null
83 | ([null, null, "mode"]
), the given mode is used for
84 | any such tag that doesn't match any of the previously given
85 | attributes. For example:
86 |
87 | var myModeSpec = {
88 | name: "htmlmixed",
89 | tags: {
90 | style: [["type", /^text\/(x-)?scss$/, "text/x-scss"],
91 | [null, null, "css"]],
92 | custom: [[null, null, "customMode"]]
93 | }
94 | }
95 |
96 | MIME types defined: text/html
97 | (redefined, only takes effect if you load this parser after the
98 | XML parser).
99 |
100 |
101 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/mode/http/http.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | (function(mod) {
5 | if (typeof exports == "object" && typeof module == "object") // CommonJS
6 | mod(require("../../lib/codemirror"));
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror"], mod);
9 | else // Plain browser env
10 | mod(CodeMirror);
11 | })(function(CodeMirror) {
12 | "use strict";
13 |
14 | CodeMirror.defineMode("http", function() {
15 | function failFirstLine(stream, state) {
16 | stream.skipToEnd();
17 | state.cur = header;
18 | return "error";
19 | }
20 |
21 | function start(stream, state) {
22 | if (stream.match(/^HTTP\/\d\.\d/)) {
23 | state.cur = responseStatusCode;
24 | return "keyword";
25 | } else if (stream.match(/^[A-Z]+/) && /[ \t]/.test(stream.peek())) {
26 | state.cur = requestPath;
27 | return "keyword";
28 | } else {
29 | return failFirstLine(stream, state);
30 | }
31 | }
32 |
33 | function responseStatusCode(stream, state) {
34 | var code = stream.match(/^\d+/);
35 | if (!code) return failFirstLine(stream, state);
36 |
37 | state.cur = responseStatusText;
38 | var status = Number(code[0]);
39 | if (status >= 100 && status < 200) {
40 | return "positive informational";
41 | } else if (status >= 200 && status < 300) {
42 | return "positive success";
43 | } else if (status >= 300 && status < 400) {
44 | return "positive redirect";
45 | } else if (status >= 400 && status < 500) {
46 | return "negative client-error";
47 | } else if (status >= 500 && status < 600) {
48 | return "negative server-error";
49 | } else {
50 | return "error";
51 | }
52 | }
53 |
54 | function responseStatusText(stream, state) {
55 | stream.skipToEnd();
56 | state.cur = header;
57 | return null;
58 | }
59 |
60 | function requestPath(stream, state) {
61 | stream.eatWhile(/\S/);
62 | state.cur = requestProtocol;
63 | return "string-2";
64 | }
65 |
66 | function requestProtocol(stream, state) {
67 | if (stream.match(/^HTTP\/\d\.\d$/)) {
68 | state.cur = header;
69 | return "keyword";
70 | } else {
71 | return failFirstLine(stream, state);
72 | }
73 | }
74 |
75 | function header(stream) {
76 | if (stream.sol() && !stream.eat(/[ \t]/)) {
77 | if (stream.match(/^.*?:/)) {
78 | return "atom";
79 | } else {
80 | stream.skipToEnd();
81 | return "error";
82 | }
83 | } else {
84 | stream.skipToEnd();
85 | return "string";
86 | }
87 | }
88 |
89 | function body(stream) {
90 | stream.skipToEnd();
91 | return null;
92 | }
93 |
94 | return {
95 | token: function(stream, state) {
96 | var cur = state.cur;
97 | if (cur != header && cur != body && stream.eatSpace()) return null;
98 | return cur(stream, state);
99 | },
100 |
101 | blankLine: function(state) {
102 | state.cur = body;
103 | },
104 |
105 | startState: function() {
106 | return {cur: start};
107 | }
108 | };
109 | });
110 |
111 | CodeMirror.defineMIME("message/http", "http");
112 |
113 | });
114 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/mode/http/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: HTTP mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | HTTP mode
27 |
28 |
29 |
30 | POST /somewhere HTTP/1.1
31 | Host: example.com
32 | If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT
33 | Content-Type: application/x-www-form-urlencoded;
34 | charset=utf-8
35 | User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.11 (KHTML, like Gecko) Ubuntu/12.04 Chromium/20.0.1132.47 Chrome/20.0.1132.47 Safari/536.11
36 |
37 | This is the request body!
38 |
39 |
40 |
43 |
44 | MIME types defined: message/http
.
45 |
46 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/mode/javascript/json-ld.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: JSON-LD mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
27 |
28 |
29 | JSON-LD mode
30 |
31 |
32 |
33 | {
34 | "@context": {
35 | "name": "http://schema.org/name",
36 | "description": "http://schema.org/description",
37 | "image": {
38 | "@id": "http://schema.org/image",
39 | "@type": "@id"
40 | },
41 | "geo": "http://schema.org/geo",
42 | "latitude": {
43 | "@id": "http://schema.org/latitude",
44 | "@type": "xsd:float"
45 | },
46 | "longitude": {
47 | "@id": "http://schema.org/longitude",
48 | "@type": "xsd:float"
49 | },
50 | "xsd": "http://www.w3.org/2001/XMLSchema#"
51 | },
52 | "name": "The Empire State Building",
53 | "description": "The Empire State Building is a 102-story landmark in New York City.",
54 | "image": "http://www.civil.usherbrooke.ca/cours/gci215a/empire-state-building.jpg",
55 | "geo": {
56 | "latitude": "40.75",
57 | "longitude": "73.98"
58 | }
59 | }
60 |
61 |
62 |
70 |
71 | This is a specialization of the JavaScript mode .
72 |
73 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/mode/javascript/typescript.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: TypeScript mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
25 |
26 |
27 | TypeScript mode
28 |
29 |
30 |
31 | class Greeter {
32 | greeting: string;
33 | constructor (message: string) {
34 | this.greeting = message;
35 | }
36 | greet() {
37 | return "Hello, " + this.greeting;
38 | }
39 | }
40 |
41 | var greeter = new Greeter("world");
42 |
43 | var button = document.createElement('button')
44 | button.innerText = "Say Hello"
45 | button.onclick = function() {
46 | alert(greeter.greet())
47 | }
48 |
49 | document.body.appendChild(button)
50 |
51 |
52 |
53 |
60 |
61 | This is a specialization of the JavaScript mode .
62 |
63 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/mode/jsx/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: JSX mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
26 |
27 |
28 | JSX mode
29 |
30 |
76 |
77 |
83 |
84 | JSX Mode for React 's
85 | JavaScript syntax extension.
86 |
87 | MIME types defined: text/jsx
, text/typescript-jsx
.
88 |
89 |
90 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/mode/python/test.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | (function() {
5 | var mode = CodeMirror.getMode({indentUnit: 4},
6 | {name: "python",
7 | version: 3,
8 | singleLineStringErrors: false});
9 | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
10 |
11 | // Error, because "foobarhello" is neither a known type or property, but
12 | // property was expected (after "and"), and it should be in parentheses.
13 | MT("decoratorStartOfLine",
14 | "[meta @dec]",
15 | "[keyword def] [def function]():",
16 | " [keyword pass]");
17 |
18 | MT("decoratorIndented",
19 | "[keyword class] [def Foo]:",
20 | " [meta @dec]",
21 | " [keyword def] [def function]():",
22 | " [keyword pass]");
23 |
24 | MT("matmulWithSpace:", "[variable a] [operator @] [variable b]");
25 | MT("matmulWithoutSpace:", "[variable a][operator @][variable b]");
26 | MT("matmulSpaceBefore:", "[variable a] [operator @][variable b]");
27 | var before_equal_sign = ["+", "-", "*", "/", "=", "!", ">", "<"];
28 | for (var i = 0; i < before_equal_sign.length; ++i) {
29 | var c = before_equal_sign[i]
30 | MT("before_equal_sign_" + c, "[variable a] [operator " + c + "=] [variable b]");
31 | }
32 |
33 | MT("fValidStringPrefix", "[string f'this is a]{[variable formatted]}[string string']");
34 | MT("fValidExpressioninFString", "[string f'expression ]{[number 100][operator *][number 5]}[string string']");
35 | MT("fInvalidFString", "[error f'this is wrong}]");
36 | MT("fNestedFString", "[string f'expression ]{[number 100] [operator +] [string f'inner]{[number 5]}[string ']}[string string']");
37 | MT("uValidStringPrefix", "[string u'this is an unicode string']");
38 |
39 | MT("nestedString", "[string f']{[variable b][[ [string \"c\"] ]]}[string f'] [comment # oops]")
40 |
41 | MT("bracesInFString", "[string f']{[variable x] [operator +] {}}[string !']")
42 |
43 | MT("nestedFString", "[string f']{[variable b][[ [string f\"c\"] ]]}[string f'] [comment # oops]")
44 | })();
45 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/mode/xml/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: XML mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | XML mode
27 |
28 | <html style="color: green">
29 | <!-- this is a comment -->
30 | <head>
31 | <title>HTML Example</title>
32 | </head>
33 | <body>
34 | The indentation tries to be <em>somewhat "do what
35 | I mean"</em>... but might not match your style.
36 | </body>
37 | </html>
38 |
39 |
45 | The XML mode supports these configuration parameters:
46 |
47 | htmlMode (boolean)
48 | This switches the mode to parse HTML instead of XML. This
49 | means attributes do not have to be quoted, and some elements
50 | (such as br
) do not require a closing tag.
51 | matchClosing (boolean)
52 | Controls whether the mode checks that close tags match the
53 | corresponding opening tag, and highlights mismatches as errors.
54 | Defaults to true.
55 | alignCDATA (boolean)
56 | Setting this to true will force the opening tag of CDATA
57 | blocks to not be indented.
58 |
59 |
60 | MIME types defined: application/xml
, text/html
.
61 |
62 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/lib/mode/xml/test.js:
--------------------------------------------------------------------------------
1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others
2 | // Distributed under an MIT license: https://codemirror.net/LICENSE
3 |
4 | (function() {
5 | var mode = CodeMirror.getMode({indentUnit: 2}, "xml"), mname = "xml";
6 | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1), mname); }
7 |
8 | MT("matching",
9 | "[tag&bracket <][tag top][tag&bracket >]",
10 | " text",
11 | " [tag&bracket <][tag inner][tag&bracket />]",
12 | "[tag&bracket ][tag top][tag&bracket >]");
13 |
14 | MT("nonmatching",
15 | "[tag&bracket <][tag top][tag&bracket >]",
16 | " [tag&bracket <][tag inner][tag&bracket />]",
17 | " [tag&bracket ][tag&error tip][tag&bracket&error >]");
18 |
19 | MT("doctype",
20 | "[meta ]",
21 | "[tag&bracket <][tag top][tag&bracket />]");
22 |
23 | MT("cdata",
24 | "[tag&bracket <][tag top][tag&bracket >]",
25 | " [atom ]",
27 | "[tag&bracket ][tag top][tag&bracket >]");
28 |
29 | // HTML tests
30 | mode = CodeMirror.getMode({indentUnit: 2}, "text/html");
31 |
32 | MT("selfclose",
33 | "[tag&bracket <][tag html][tag&bracket >]",
34 | " [tag&bracket <][tag link] [attribute rel]=[string stylesheet] [attribute href]=[string \"/foobar\"][tag&bracket >]",
35 | "[tag&bracket ][tag html][tag&bracket >]");
36 |
37 | MT("list",
38 | "[tag&bracket <][tag ol][tag&bracket >]",
39 | " [tag&bracket <][tag li][tag&bracket >]one",
40 | " [tag&bracket <][tag li][tag&bracket >]two",
41 | "[tag&bracket ][tag ol][tag&bracket >]");
42 |
43 | MT("valueless",
44 | "[tag&bracket <][tag input] [attribute type]=[string checkbox] [attribute checked][tag&bracket />]");
45 |
46 | MT("pThenArticle",
47 | "[tag&bracket <][tag p][tag&bracket >]",
48 | " foo",
49 | "[tag&bracket <][tag article][tag&bracket >]bar");
50 |
51 | })();
52 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/.gitignore:
--------------------------------------------------------------------------------
1 | *~
2 | node_modules
3 | .c9revisions
4 | coverage
5 | projs.js
6 | .DS_STORE
7 | dist
8 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "esversion": 6,
3 | "curly": true,
4 | "eqeqeq": true,
5 | "latedef": "nofunc",
6 | "undef": true,
7 | "unused": true,
8 | "trailing": true,
9 | "indent": 2,
10 | "browser": true,
11 | "node": true
12 | }
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/.npmignore:
--------------------------------------------------------------------------------
1 | *~
2 | .c9revisions
3 | coverage
4 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 |
3 | node_js:
4 | - "10"
5 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/AUTHORS:
--------------------------------------------------------------------------------
1 | Mike Adair
2 | Richard Greenwood
3 | Calvin Metcalf
4 | Richard Marsden (http://www.winwaed.com)
5 | #credit for
6 | #src/projCode/gnom.js
7 | #src/projCode/cea.js
8 | T. Mittan
9 | #credit for
10 | #src/projCode/eqdc.js
11 | #src/projCode/equi.js
12 | #src/projCode/merc.js
13 | #src/projCode/mill.js
14 | #src/projCode/omerc.js
15 | #src/projCode/ortho.js
16 | #src/projCode/poly.js
17 | #src/projCode/poly.js
18 | D. Steinwand
19 | #credit for
20 | #src/projCode/merc.js
21 | #src/projCode/laea.js
22 | #src/projCode/moll.js
23 | S. Nelson
24 | #credit for
25 | #src/projCode/moll.js
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/Gruntfile.js:
--------------------------------------------------------------------------------
1 | var json = require('rollup-plugin-json');
2 | var nodeResolve = require('rollup-plugin-node-resolve');
3 | var replace = require('rollup-plugin-replace');
4 | var pkg = require('./package.json');
5 |
6 | var projs = [
7 | 'tmerc',
8 | 'etmerc',
9 | 'utm',
10 | 'sterea',
11 | 'stere',
12 | 'somerc',
13 | 'omerc',
14 | 'lcc',
15 | 'krovak',
16 | 'cass',
17 | 'laea',
18 | 'aea',
19 | 'gnom',
20 | 'cea',
21 | 'eqc',
22 | 'poly',
23 | 'nzmg',
24 | 'mill',
25 | 'sinu',
26 | 'moll',
27 | 'eqdc',
28 | 'vandg',
29 | 'aeqd',
30 | 'ortho',
31 | 'qsc',
32 | 'robin',
33 | 'geocent'
34 | ];
35 | module.exports = function (grunt) {
36 | grunt.initConfig({
37 | pkg: grunt.file.readJSON('package.json'),
38 | connect: {
39 | server: {
40 | options: {
41 | port: process.env.PORT || 8080,
42 | base: '.'
43 | }
44 | }
45 | },
46 | mocha_phantomjs: {
47 | all: {
48 | options: {
49 | reporter: "dot",
50 | urls: [ //my ide requries process.env.IP and PORT
51 | "http://" + (process.env.IP || "127.0.0.1") + ":" + (process.env.PORT || "8080") + "/test/amd.html",
52 | "http://" + (process.env.IP || "127.0.0.1") + ":" + (process.env.PORT || "8080") + "/test/opt.html"
53 | ]
54 | }
55 | }
56 | },
57 | jshint: {
58 | options: {
59 | jshintrc: "./.jshintrc"
60 | },
61 | all: ['./lib/*.js', './lib/*/*.js']
62 | },
63 | rollup: {
64 | options: {
65 | format: "umd",
66 | moduleName: "proj4",
67 | plugins: [
68 | replace({
69 | __VERSION__: pkg.version
70 | }),
71 | json(),
72 | nodeResolve()
73 | ]
74 | },
75 | files: {
76 | dest: './dist/proj4-src.js',
77 | src: './lib/index.js',
78 | },
79 | },
80 | uglify: {
81 | options: {
82 | report: 'gzip',
83 | mangle:{
84 | reserved: ['proj4','Projection','Point']
85 | },
86 | },
87 | all: {
88 | src: 'dist/proj4-src.js',
89 | dest: 'dist/proj4.js'
90 | }
91 | }
92 | });
93 | grunt.loadNpmTasks('grunt-rollup');
94 | grunt.loadNpmTasks('grunt-contrib-uglify');
95 | grunt.loadNpmTasks('grunt-contrib-jshint');
96 | grunt.loadNpmTasks('grunt-contrib-connect');
97 | grunt.loadNpmTasks('grunt-mocha-phantomjs');
98 | grunt.registerTask('custom',function(){
99 | grunt.task.run('rollup', 'uglify');
100 | var projections = this.args;
101 | if(projections[0]==='default'){
102 | grunt.file.write('./projs.js','export default function(){}');
103 | return;
104 | }
105 | if(projections[0]==='all'){
106 | projections = projs;
107 | }
108 | grunt.file.write('./projs.js',[
109 | projections.map(function(proj) {
110 | return "import " + proj + " from './lib/projections/" + proj + "';";
111 | }).join("\n"),
112 | "export default function(proj4){",
113 | projections.map(function(proj) {
114 | return " proj4.Proj.projections.add(" + proj + ");"
115 | }).join("\n"),
116 | "}"
117 | ].join("\n"));
118 | });
119 | grunt.registerTask('build',function(){
120 | var args = this.args.length?this.args[0].split(','):['default'];
121 | grunt.task.run('jshint', 'custom:'+args.join(':'));
122 | });
123 | grunt.registerTask('default', ['build:all', 'connect','mocha_phantomjs']);
124 | };
125 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/LICENSE.md:
--------------------------------------------------------------------------------
1 | ## Proj4js -- Javascript reprojection library.
2 |
3 | Authors:
4 | - Mike Adair madairATdmsolutions.ca
5 | - Richard Greenwood richATgreenwoodmap.com
6 | - Didier Richard didier.richardATign.fr
7 | - Stephen Irons stephen.ironsATclear.net.nz
8 | - Olivier Terral oterralATgmail.com
9 | - Calvin Metcalf cmetcalfATappgeo.com
10 |
11 | Copyright (c) 2014, Mike Adair, Richard Greenwood, Didier Richard, Stephen Irons, Olivier Terral and Calvin Metcalf
12 |
13 | Permission is hereby granted, free of charge, to any person obtaining a
14 | copy of this software and associated documentation files (the "Software"),
15 | to deal in the Software without restriction, including without limitation
16 | the rights to use, copy, modify, merge, publish, distribute, sublicense,
17 | and/or sell copies of the Software, and to permit persons to whom the
18 | Software is furnished to do so, subject to the following conditions:
19 |
20 | The above copyright notice and this permission notice shall be included
21 | in all copies or substantial portions of the Software.
22 |
23 | _THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24 | OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
26 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
28 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
29 | DEALINGS IN THE SOFTWARE._
30 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/PUBLISHING.md:
--------------------------------------------------------------------------------
1 | Publishing
2 | ===
3 |
4 | Use `tin` to update the version number in the `package.json`, `component.json` & `bower.json`.
5 |
6 | tin -v x.y.z
7 |
8 | Then run the publish script
9 |
10 | ./publish.sh
11 |
12 | afterwards don't forget to update the versions to be a prerelease of the next version, so if you just published 1.1.1 then:
13 |
14 | tin -v 1.1.2-alpha
15 | git add package.json component.json bower.json
16 | git commit -m 'update version to 1.1.2-alpha'
17 | git push origin master
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/REFERENCES.md:
--------------------------------------------------------------------------------
1 | 1. Snyder, John P., "Map Projections--A Working Manual", U.S. Geological Survey
2 | Professional Paper 1395 (Supersedes USGS Bulletin 1532),
3 | United States Government Printing Office, Washington D.C., 1987.
4 | Accessed: 2016-05-09. https://pubs.er.usgs.gov/publication/pp1395
5 | 2. Snyder, John P. and Voxland, Philip M., "An Album of Map Projections",
6 | U.S. Geological Survey Professional Paper 1453 ,
7 | United State Government Printing Office, Washington D.C., 1989.
8 | Accessed: 2016-05-09. https://pubs.er.usgs.gov/publication/pp1453
9 | 3. "Cartographic Projection Procedures for the UNIX Environment-
10 | A User's Manual" by Gerald I. Evenden,
11 | USGS Open File Report 90-284 and Release 4 Interim Reports (2003).
12 | Accessed: 2016-06-09. http://www2.bren.ucsb.edu/~frew/ESM264/private/proj_manual.pdf
13 | 4. Snyder, John P., "Flattening the Earth -
14 | Two Thousand Years of Map Projections", Univ. Chicago Press, 1993
15 | 5. Wolfram Mathworld "Gnomonic Projection"
16 | http://mathworld.wolfram.com/GnomonicProjection.html
17 | Accessed: 12th November 2009
18 | 6. "New Equal-Area Map Projections for Noncircular Regions", John P. Snyder,
19 | The American Cartographer, Vol 15, No. 4, October 1988, pp. 341-355.
20 | 7. Snyder, John P., "Map Projections--A Working Manual", U.S. Geological
21 | Survey Professional Paper 1395 (Supersedes USGS Bulletin 1532), United
22 | State Government Printing Office, Washington D.C., 1987.
23 | Access date 2016-05-09. https://pubs.er.usgs.gov/publication/pp1395
24 | 8. "Software Documentation for GCTP General Cartographic Transformation
25 | Package", U.S. Geological Survey National Mapping Division, May 1982.
26 | 9. Department of Land and Survey Technical Circular 1973/32
27 | http://www.linz.govt.nz/docs/miscellaneous/nz-map-definition.pdf
28 | 10. OSG Technical Report 4.1
29 | http://www.linz.govt.nz/docs/miscellaneous/nzmg.pdf
30 | 11. Formules et constantes pour le Calcul pour la
31 | projection cylindrique conforme à axe oblique et pour la transformation entre
32 | des systèmes de référence.
33 | http://www.swisstopo.admin.ch/internet/swisstopo/fr/home/topics/survey/sys/refsys/switzerland.parsysrelated1.31216.downloadList.77004.DownloadFile.tmp/swissprojectionfr.pdf
34 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "proj4",
3 | "version": "2.6.0",
4 | "description": "Proj4js is a JavaScript library to transform point coordinates from one coordinate system to another, including datum transformations.",
5 | "homepage": "https://github.com/proj4js/proj4js",
6 | "main": "dist/proj4.js",
7 | "keywords": [
8 | "gis",
9 | "projections",
10 | "geospatial",
11 | "transform",
12 | "datum"
13 | ],
14 | "license": "MIT",
15 | "ignore": [
16 | "**/.*",
17 | "node_modules",
18 | "bower_components",
19 | "test",
20 | "tests",
21 | "almond",
22 | "src"
23 | ]
24 | }
25 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/changelog.md:
--------------------------------------------------------------------------------
1 | Change log
2 | ===
3 | - 2.2.1: Documentation fixes and added proj4.defs('name') as an alias for proj4.defs['name'];
4 |
5 | - 2.1.4: dist folder is added back in after accidentally omitting it in 2.1.1
6 |
7 | - 2.1.3: skipped as issues with the dist folder are ironed out.
8 |
9 | - 2.1.2: added sensible defaults for false eastings/northings
10 |
11 | - 2.1.1: tweaks to how we publish it, fixes related to errors with the OSGB36 and Reseau National Belge 1972 datums, we took the first steps towards depreciating the proj4.Point class.
12 |
13 | - 2.1.0: targeted builds for projections are now supported, and internally projection creation is more modular.
14 |
15 | - 2.0.3: mgrs is broken out into it's own module loaded via npm.
16 |
17 | - 2.0.2: module common is broken up into a collection of smaller modules.
18 |
19 | - 2.0.1: fix typo in eqc projection.
20 |
21 | - 2.0.0: we start the change log.
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/component.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "proj4",
3 | "version": "2.6.0",
4 | "description": "Proj4js is a JavaScript library to transform point coordinates from one coordinate system to another, including datum transformations.",
5 | "repo": "proj4js/proj4js",
6 | "keywords": [
7 | "projections",
8 | "proj4",
9 | "transform",
10 | "crs"
11 | ],
12 | "license": "MIT",
13 | "main": "dist/proj4.js",
14 | "scripts": [
15 | "dist/proj4.js"
16 | ]
17 | }
18 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "proj4",
3 | "version": "2.6.0",
4 | "description": "Proj4js is a JavaScript library to transform point coordinates from one coordinate system to another, including datum transformations.",
5 | "main": "dist/proj4-src.js",
6 | "module": "lib/index.js",
7 | "directories": {
8 | "test": "test",
9 | "doc": "docs"
10 | },
11 | "scripts": {
12 | "prepare": "grunt",
13 | "build": "grunt",
14 | "build:tmerc": "grunt build:tmerc",
15 | "test": "npm run build && istanbul test _mocha test/test.js"
16 | },
17 | "repository": {
18 | "type": "git",
19 | "url": "git://github.com/proj4js/proj4js.git"
20 | },
21 | "author": "",
22 | "license": "MIT",
23 | "devDependencies": {
24 | "chai": "~4.1.2",
25 | "curl-amd": "github:cujojs/curl",
26 | "grunt": "^1.0.1",
27 | "grunt-cli": "~1.2.0",
28 | "grunt-contrib-connect": "~1.0.2",
29 | "grunt-contrib-jshint": "~1.1.0",
30 | "grunt-contrib-uglify": "~3.1.0",
31 | "grunt-mocha-phantomjs": "~4.0.0",
32 | "grunt-rollup": "^6.0.0",
33 | "istanbul": "~0.4.5",
34 | "mocha": "~4.0.0",
35 | "rollup": "^0.50.0",
36 | "rollup-plugin-json": "^2.3.0",
37 | "rollup-plugin-node-resolve": "^3.0.0",
38 | "rollup-plugin-replace": "^2.0.0",
39 | "tin": "~0.5.0"
40 | },
41 | "dependencies": {
42 | "mgrs": "1.0.0",
43 | "wkt-parser": "^1.2.0"
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/publish.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # get current version
4 | VERSION=$(npm ls --json=true proj4js | grep version | awk '{ print $2}'| sed -e 's/^"//' -e 's/"$//')
5 |
6 | # Build
7 | git checkout -b build
8 | node_modules/.bin/grunt
9 | git add dist -f
10 | git commit -m "build $VERSION"
11 |
12 | # Tag and push
13 | git tag $VERSION
14 | git push --tags git@github.com:proj4js/proj4js.git $VERSION
15 |
16 | # Publish
17 | npm publish
18 |
19 | # Cleanup
20 | git checkout master
21 | git branch -D build
22 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/test/amd.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Mocha Tests
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
60 |
61 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/test/opt.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Mocha Tests
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
24 |
25 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/proj4js-2.6.0/test/package.json.js:
--------------------------------------------------------------------------------
1 | define({version : "curl is dumb"});
--------------------------------------------------------------------------------
/Stinuum Web/src/js/mf-cesium/runServer.py:
--------------------------------------------------------------------------------
1 |
2 | import requests
3 | class MyApp():
4 | def __init__(self):
5 | self.URL = "https://dpsdev.aaic.hpcc.jp/pntml/csrf"
6 | self.URL2 = "https://dpsdev.aaic.hpcc.jp/pntml/login"
7 | self.URL3 = "https://dpsdev.aaic.hpcc.jp/mf/collections"
8 | self.token = ""
9 | self.cookies = ""
10 | def getCsrt(self):
11 | rg = requests.request('GET', self.URL)
12 | self.token = rg.text
13 | self.cookies = rg.cookies
14 | print(self.token)
15 | # return self.rg_token
16 | # print(rg.headers)
17 | # print(rg_token)
18 | # print(rg.)
19 |
20 | def Login(self):
21 |
22 | rp_headers = {'Content-Type': 'application/x-www-form-urlencoded'}
23 | rp_headers['X-XSRF-TOKEN'] = self.token
24 | rp_headers['Accept'] = '*/*'
25 | # print(rp_headers)
26 | login_data = {'name': 'gsrt4crt', 'password': 'Y]3>F2$//j|4>o2NTT|UB*0u2{Cf7R|HD=8'}
27 | jar = requests.cookies.RequestsCookieJar()
28 | jar.set('XSRF-TOKEN', self.token)
29 | # print(jar)
30 | rp = requests.request('POST', self.URL2, data=login_data, headers=rp_headers, cookies=jar)
31 | self.cookies = rp.cookies.get_dict()
32 |
33 | print(rp.headers)
34 | def getData(self):
35 | rc_cookies = requests.cookies.RequestsCookieJar()
36 | rc_cookies.set('SESSION', self.cookies['SESSION'])
37 | rc_cookies.set('XSRF-TOKEN', self.cookies['XSRF-TOKEN'])
38 | # rc_cookies = {'Cookie': "SESSION="+a['SESSION']+";"+" XSRF-TOKEN="+a['XSRF-TOKEN']}
39 | rc_headers = {'X-XSRF-TOKEN': self.cookies['XSRF-TOKEN']}
40 | rc_headers['Content-Type'] = 'application/json'
41 | rc_headers['Accept'] = 'application/json'
42 | # print(rc_cookies)
43 | # print(rc_headers)
44 | rc = requests.request('GET', self.URL3, headers=rc_headers, cookies=rc_cookies)
45 |
46 | print(rc.json())
47 |
48 | if __name__ == '__main__':
49 | a = MyApp()
50 | a.getCsrt()
51 | a.Login()
52 | a.getData()
--------------------------------------------------------------------------------
/Stinuum Web/src/js/movie.js:
--------------------------------------------------------------------------------
1 | var viewer = new Cesium.Viewer('cesiumContainer', {showRenderLoopErrors : false});
2 |
3 | var videoElement = document.getElementById('trailer');
4 |
5 | var sphere = viewer.entities.add({
6 | position : Cesium.Cartesian3.fromDegrees(-79, 39, 1000),
7 | ellipsoid : {
8 | radii : new Cesium.Cartesian3(1000, 1000, 1000),
9 | material : videoElement
10 | }
11 | });
12 |
13 | viewer.trackedEntity = sphere;
14 |
15 | var synchronizer;
16 | Sandcastle.addToggleButton('Clock synchronization', false, function(checked) {
17 | // By default, the video plays normally and simply shows
18 | // whatever frame the video is currently on.
19 | // We can synchronize the video with the scene clock
20 | // using a VideoSynchronizer.
21 |
22 | if (Cesium.defined(synchronizer)) {
23 | synchronizer = synchronizer.destroy();
24 | videoElement.playbackRate = 1.0;
25 | return;
26 | }
27 |
28 | synchronizer = new Cesium.VideoSynchronizer({
29 | clock : viewer.clock,
30 | element : videoElement
31 | });
32 | });
33 |
34 | // Since it's just an image material, we can modify the number
35 | // of times the video repeats in each direction..
36 | var isRepeating = true;
37 | Sandcastle.addToggleButton('Image Repeat', isRepeating, function(checked) {
38 | isRepeating = checked;
39 | });
40 |
41 | sphere.ellipsoid.material.repeat = new Cesium.CallbackProperty(function(time, result) {
42 | if (!Cesium.defined(result)) {
43 | result = new Cesium.Cartesian2();
44 | }
45 | if (isRepeating) {
46 | result.x = 8;
47 | result.y = 8;
48 | } else {
49 | result.x = 1;
50 | result.y = 1;
51 | }
52 | return result;
53 | }, false);
54 |
55 | // Like Image, the video element doesn't have to be part of the DOM or
56 | // otherwise on the screen to be used as a texture.
57 | Sandcastle.addToggleButton('Video Overlay', false, function(checked) {
58 | if (checked){
59 | videoElement.style.display = '';
60 | } else {
61 | videoElement.style.display = 'none';
62 | }
63 | });
64 |
65 | // Older browsers do not support WebGL video textures,
66 | // put up a friendly error message indicating such.
67 | viewer.scene.renderError.addEventListener(function() {
68 | if(!videoElement.paused){
69 | videoElement.pause();
70 | }
71 | viewer.cesiumWidget.showErrorPanel('This browser does not support cross-origin WebGL video textures.', '', '');
72 | });
73 |
74 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/temp/.Rhistory:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aistairc/mf-cesium/4da16c068240408c71ee159bc4980bdb8fe53bf1/Stinuum Web/src/js/temp/.Rhistory
--------------------------------------------------------------------------------
/Stinuum Web/src/js/temp/makeJS.bat:
--------------------------------------------------------------------------------
1 | copy /b model.js +direction_radar.js +geometry_viewer.js +mf_collection.js +movement_draw.js +occurrence_map.js +path_drawing.js +property_graph.js +query_processor.js +super.js +temporal_map.js +utility.js ..\stinuum.js
2 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/temp/model.js:
--------------------------------------------------------------------------------
1 |
2 | var LOG = console.log;
3 | var ERR = Stinuum.Exception;
4 | var debug_mode = true;
5 | var debug_var = undefined;
6 |
7 | function Stinuum(viewer){
8 | this.cesiumViewer = viewer;
9 | this.mode = 'STATICMAP'; //'STATICMAP' : 2d, 'SPACETIME' : perspective view, and 'ANIMATEDMAP' : 3d globe
10 | this.maxHeight = 30000000;
11 | this.s_query_on = false;
12 |
13 | this.geometryViewer = new Stinuum.GeometryViewer(this);
14 | this.mfCollection = new Stinuum.MFCollection(this);
15 | this.directionRadar = new Stinuum.DirectionRadar(this);
16 | this.temporalMap = new Stinuum.TemporalMap(this);
17 | this.occurrenceMap = new Stinuum.OccurrenceMap(this);
18 | this.propertyGraph = new Stinuum.PropertyGraph(this);
19 | this.queryProcessor = new Stinuum.QueryProcessor(this);
20 | }
21 |
22 | Stinuum.Exception = function(message, data){
23 | this.name = "StinuumException";
24 | this.message = message;
25 | this.data = data;
26 | }
27 |
28 | Stinuum.Exception.prototype.toString = function(){
29 | if (!debug_mode || this.data == undefined)
30 | return this.name + ' : "' + this.message + '"';
31 | else {
32 | return [this.name + ' : "' + this.message + '"', this.data];
33 | }
34 | }
35 |
36 | Stinuum.MFPair = function(id, feature){
37 | this.id = id;
38 | this.feature = feature;
39 | }
40 |
41 | Stinuum.OccurrenceMap = function(stinuum){
42 | this.super = stinuum;
43 | this.max_num = 0;
44 | this.primitive = null;
45 | }
46 |
47 | Stinuum.QueryProcessor = function(stinuum){
48 | this.super = stinuum;
49 | this.result_pairs = [];
50 | }
51 |
52 | Stinuum.MFCollection = function(stinuum){
53 | this.super = stinuum;
54 | this.features = [];
55 | this.wholeFeatures = [];
56 | this.colorCollection = {};
57 | this.min_max = {};
58 | this.whole_min_max = {};
59 | }
60 |
61 |
62 | Stinuum.PathDrawing = function(g_viewer){
63 | this.g_viewer = g_viewer;
64 | this.supersuper = g_viewer.super;
65 | }
66 |
67 | Stinuum.MovementDrawing = function(g_viewer){
68 | this.g_viewer = g_viewer;
69 | this.supersuper = g_viewer.super;
70 | }
71 |
72 | Stinuum.GeometryViewer = function(stinuum){
73 | this.super = stinuum;
74 | this.primitives = {};
75 | this.drawing = new Stinuum.PathDrawing(this);
76 | this.moving = new Stinuum.MovementDrawing(this);
77 | this.projection = null;
78 | this.time_label = [];
79 | this.label_timeout = undefined;
80 | }
81 |
82 | Stinuum.TemporalMap = function(stinuum){
83 | this.super = stinuum;
84 | this.temp_primitive = {};
85 | }
86 |
87 |
88 | Stinuum.DirectionRadar = function(stinuum){
89 | this.super = stinuum;
90 | }
91 |
92 |
93 |
94 | Stinuum.PropertyGraph = function(stinuum){
95 | this.super = stinuum;
96 | this.graph_id;
97 | }
98 |
99 | Stinuum.BoxCoord = function(){
100 | this.minimum = {};
101 | this.maximum = {};
102 | };
103 |
104 | Stinuum.SpatialInfo = function(){
105 | this.west = new Stinuum.DirectionInfo();
106 | this.east = new Stinuum.DirectionInfo();
107 | this.north = new Stinuum.DirectionInfo();
108 | this.south = new Stinuum.DirectionInfo();
109 | }
110 |
111 | Stinuum.DirectionInfo =function(life=0, leng=0){
112 | this.total_life = life;
113 | this.total_length = leng;
114 | this.velocity = [];
115 | this.avg_velocity = 0;
116 | }
117 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/temp/sh_makeJS.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | cat model.js direction_radar.js movement_draw.js geometry_viewer.js occurrence_map.js super.js path_drawing.js temporal_map.js mf_collection.js property_graph.js utility.js query_processor.js > ../stinuum.js
4 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/temp/super.js:
--------------------------------------------------------------------------------
1 | /**
2 | * change mode of stinuum. It is one-to-one correspondence with cesium mode.
3 | * @param {string} [mode]
4 | * ` ``js
5 | * stinuum.changmeMode("SPACETIME");
6 | * ` ``
7 | */
8 |
9 | Stinuum.prototype.changeMode = function(mode){
10 | if (mode == undefined){
11 | if (this.mode == 'STATICMAP' || this.mode == 'ANIMATEDMAP'){
12 | this.mode = 'SPACETIME';
13 | }
14 | else{
15 | this.mode = 'STATICMAP';
16 | }
17 | }
18 | else{
19 | this.mode = mode;
20 | }
21 |
22 | this.geometryViewer.update({
23 | change : true
24 | });
25 |
26 | }
27 |
28 | Stinuum.prototype.getListOfHeight = function(datetimes, min_max_date){
29 | if (min_max_date == undefined){
30 | min_max_date = this.mfCollection.min_max.date;
31 | }
32 | var heights = [];
33 | for(var i = 0 ; i < datetimes.length ; i++){
34 | heights.push(Stinuum.normalizeTime(new Date(datetimes[i]), min_max_date, this.maxHeight));
35 | }
36 | return heights;
37 | }
38 |
39 |
40 | Stinuum.getCenter = function(coordinates, type){
41 | var x=0,y=0;
42 | var length = coordinates.length;
43 | if (type == 'MovingPolygon'){
44 | length -= 1;
45 | }
46 | for (var i = 0 ; i < length ; i++){
47 | x += coordinates[i][0];
48 | y += coordinates[i][1];
49 |
50 | }
51 | x /= length;
52 | y /= length;
53 |
54 | return [x,y];
55 | }
56 |
--------------------------------------------------------------------------------
/Stinuum Web/src/js/temp/temporal_map.js:
--------------------------------------------------------------------------------
1 |
2 | Stinuum.TemporalMap.prototype.show = function(mf_id,propertyName){
3 | var pro_name = propertyName;
4 |
5 | var mf = this.super.mfCollection.getMFPairById(mf_id);
6 | if (mf == -1){
7 | console.log("please add mf first.");
8 | return;
9 | }
10 |
11 | //Only this feature is viewed in graph.
12 | this.super.mfCollection.hideAll(mf_id);
13 |
14 | var property = Stinuum.getPropertyByName(mf.feature, pro_name, mf_id)[0];
15 | if (property == -1){
16 | console.log("that property is not in this moving feature");
17 | return;
18 | }
19 |
20 | if (this.super.geometryViewer.primitives[mf_id] != undefined){
21 | this.super.cesiumViewer.scene.primitives.remove(this.super.geometryViewer.primitives[mf_id]);
22 | this.super.geometryViewer.primitives[mf_id] = undefined;
23 | }
24 |
25 | this.super.mfCollection.min_max = this.super.mfCollection.findMinMaxGeometry([mf]);
26 | var type = mf.feature.temporalGeometry.type;
27 | this.super.geometryViewer.clear();
28 |
29 | if (this.super.mode == 'SPACETIME'){
30 | //this.bounding_sphere = Stinuum.getBoundingSphere(this.min_max, [0, this.max_height] );
31 | this.super.cesiumViewer.scene.primitives.add(this.super.geometryViewer.drawZaxis());
32 | var entities = this.super.geometryViewer.drawZaxisLabel();
33 | for (var i = 0 ; i < entities.values.length ; i ++ ){
34 | this.super.cesiumViewer.entities.add(entities.values[i]);
35 | }
36 | }
37 | else{
38 | // this.bounding_sphere = Stinuum.getBoundingSphere(this.min_max, [0,0] );
39 | }
40 |
41 | var highlight_prim;
42 | if (type == 'MovingPolygon'){
43 | highlight_prim = this.super.cesiumViewer.scene.primitives.add(this.super.geometryViewer.drawing.drawPathMovingPolygon({
44 | temporalGeometry : mf.feature.temporalGeometry,
45 | temporalProperty : property,
46 | id : mf_id
47 | }));
48 | }
49 | else if (type == 'MovingPoint'){
50 | highlight_prim = this.super.cesiumViewer.scene.primitives.add(this.super.geometryViewer.drawing.drawPathMovingPoint({
51 | temporalGeometry : mf.feature.temporalGeometry,
52 | temporalProperty : property,
53 | id : mf_id
54 | }));
55 | }
56 | else if (type == 'MovingLineString'){
57 | highlight_prim = this.super.cesiumViewer.scene.primitives.add(this.super.geometryViewer.drawing.drawPathMovingLineString({
58 | temporalGeometry : mf.feature.temporalGeometry,
59 | temporalProperty : property,
60 | id : mf_id
61 | }));
62 | }
63 | else{
64 | LOG('this type is not implemented.');
65 | }
66 |
67 | this.super.geometryViewer.primitives[mf_id] = highlight_prim;
68 | this.super.geometryViewer.animate({
69 | id : mf_id
70 | });
71 |
72 | return 0;
73 | }
74 |
--------------------------------------------------------------------------------
/Stinuum Web/system.json:
--------------------------------------------------------------------------------
1 | {
2 | "mf_api_server_url": "http://localhost:8085",
3 | "mfc_limit": 10,
4 | "mf_tg_limit": 100,
5 | "mf_tp_limit": 100
6 | }
--------------------------------------------------------------------------------