├── .gitignore ├── .vscode ├── keybindings.json └── settings.json ├── LICENSE ├── PotreeDesktop.bat ├── README.md ├── index.html ├── libs ├── CPotree │ └── filter.exe ├── MeshLine │ ├── LICENSE │ ├── README.md │ └── src │ │ └── THREE.MeshLine.js ├── PotreeConverter │ ├── LICENSE_laszip │ ├── PotreeConverter.exe │ └── laszip.dll ├── PotreeConverter2 │ ├── PotreeConverter.exe │ ├── README.md │ ├── laszip.dll │ └── licenses │ │ ├── license_brotli.txt │ │ ├── license_json.txt │ │ ├── license_laszip.txt │ │ └── license_potree_converter.txt ├── ZoomableSlider │ ├── ZoomableSlider.css │ ├── ZoomableSlider.html │ └── ZoomableSlider.js ├── brotli │ ├── BUILD │ ├── LICENSE │ ├── WORKSPACE │ ├── decode.js │ ├── decode.min.js │ ├── decode_test.js │ └── polyfill.js ├── d3 │ ├── LICENSE │ ├── d3.js │ └── d3.min.js ├── ept │ └── ParseBuffer.js ├── geopackage │ ├── LICENSE │ ├── README.md │ ├── geopackage.js │ └── geopackage.min.js ├── i18next │ └── i18next.js ├── jquery-ui │ ├── AUTHORS.txt │ ├── LICENSE.txt │ ├── images │ │ ├── ui-icons_444444_256x240.png │ │ ├── ui-icons_555555_256x240.png │ │ ├── ui-icons_777620_256x240.png │ │ ├── ui-icons_777777_256x240.png │ │ ├── ui-icons_cc0000_256x240.png │ │ └── ui-icons_ffffff_256x240.png │ ├── index.html │ ├── jquery-ui.css │ ├── jquery-ui.min.css │ ├── jquery-ui.min.js │ ├── jquery-ui.structure.css │ ├── jquery-ui.structure.min.css │ ├── jquery-ui.theme.css │ ├── jquery-ui.theme.min.css │ └── package.json ├── jquery │ ├── jquery-3.1.1.js │ └── jquery-3.1.1.min.js ├── json5-2.1.3 │ ├── LICENSE.md │ ├── README.md │ └── json5.mjs ├── jstree │ ├── LICENSE-MIT │ ├── README.md │ ├── jstree.js │ ├── jstree.min.js │ └── themes │ │ └── mixed │ │ ├── 32px.png │ │ ├── 40px.png │ │ ├── style.css │ │ ├── style.min.css │ │ └── throbber.gif ├── openlayers3 │ ├── LICENSE │ ├── ol-deps.js │ ├── ol.css │ └── ol.js ├── other │ ├── BinaryHeap.js │ ├── dat.gui.min.js │ ├── stats.js │ └── stats.min.js ├── plasio │ ├── LICENSE │ ├── js │ │ └── laslaz.js │ ├── vendor │ │ └── bluebird.js │ └── workers │ │ ├── laz-loader-worker.js │ │ └── laz-perf.js ├── potree │ ├── LICENSE │ ├── lazylibs │ │ ├── geopackage │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── geopackage.js │ │ │ └── geopackage.min.js │ │ └── sql.js │ │ │ ├── AUTHORS │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── sql-wasm.js │ │ │ └── sql-wasm.wasm │ ├── potree.css │ ├── potree.js │ ├── potree.js.map │ ├── profile.html │ ├── resources │ │ ├── LICENSE │ │ ├── icons │ │ │ ├── add.svg │ │ │ ├── angle.png │ │ │ ├── annotation.svg │ │ │ ├── area.svg │ │ │ ├── area_backup.svg │ │ │ ├── arrow_ccw.svg │ │ │ ├── arrow_cw.svg │ │ │ ├── arrow_down.svg │ │ │ ├── arrow_left.svg │ │ │ ├── arrow_right.svg │ │ │ ├── arrow_up.svg │ │ │ ├── assign.svg │ │ │ ├── azimuth.svg │ │ │ ├── back.svg │ │ │ ├── bottom.svg │ │ │ ├── camera_animation.svg │ │ │ ├── circle.svg │ │ │ ├── circled_dot.svg │ │ │ ├── clip-plane-x.svg │ │ │ ├── clip-plane-y.svg │ │ │ ├── clip-plane-z.svg │ │ │ ├── clip-polygon.svg │ │ │ ├── clip-screen.svg │ │ │ ├── clip_volume.svg │ │ │ ├── close.svg │ │ │ ├── cloud.svg │ │ │ ├── copy.svg │ │ │ ├── distance.svg │ │ │ ├── earth_controls.png │ │ │ ├── earth_controls.svg │ │ │ ├── earth_controls_1.png │ │ │ ├── eye.svg │ │ │ ├── eye_2.png │ │ │ ├── eye_2.svg │ │ │ ├── eye_crossed.svg │ │ │ ├── file_csv_2d.svg │ │ │ ├── file_dxf.svg │ │ │ ├── file_dxf_2d.svg │ │ │ ├── file_dxf_3d.svg │ │ │ ├── file_geojson.svg │ │ │ ├── file_las_3d.svg │ │ │ ├── file_potree.svg │ │ │ ├── flip_y_z.png │ │ │ ├── flip_y_z.svg │ │ │ ├── focus.svg │ │ │ ├── fps_controls.png │ │ │ ├── fps_controls.svg │ │ │ ├── front.svg │ │ │ ├── goto.svg │ │ │ ├── gradients_grayscale.png │ │ │ ├── gradients_plasma.png │ │ │ ├── gradients_rainbow.png │ │ │ ├── gradients_spectral.png │ │ │ ├── gradients_yellow_green.png │ │ │ ├── height.svg │ │ │ ├── helicopter_controls.svg │ │ │ ├── image_preview.php │ │ │ ├── index.html │ │ │ ├── left.svg │ │ │ ├── map_icon.png │ │ │ ├── matcap │ │ │ │ ├── basic_1.jpg │ │ │ │ ├── basic_2.jpg │ │ │ │ ├── basic_dark.jpg │ │ │ │ ├── basic_side.jpg │ │ │ │ ├── ceramic_dark.jpg │ │ │ │ ├── ceramic_lightbulb.jpg │ │ │ │ ├── check_normal+y.jpg │ │ │ │ ├── check_rim_dark.jpg │ │ │ │ ├── check_rim_light.jpg │ │ │ │ ├── clay_brown.jpg │ │ │ │ ├── clay_muddy.jpg │ │ │ │ ├── clay_studio.jpg │ │ │ │ ├── contours_1.jpg │ │ │ │ ├── contours_2.jpg │ │ │ │ ├── contours_3.jpg │ │ │ │ ├── jade.jpg │ │ │ │ ├── matcap.jpg │ │ │ │ ├── metal_anisotropic.jpg │ │ │ │ ├── metal_carpaint.jpg │ │ │ │ ├── metal_lead.jpg │ │ │ │ ├── metal_shiny.jpg │ │ │ │ ├── pearl.jpg │ │ │ │ ├── reflection_check_horizontal.jpg │ │ │ │ ├── reflection_check_vertical.jpg │ │ │ │ ├── resin.jpg │ │ │ │ ├── skin.jpg │ │ │ │ └── toon.jpg │ │ │ ├── menu_button.svg │ │ │ ├── menu_icon.svg │ │ │ ├── navigation_cube.svg │ │ │ ├── orbit_controls.svg │ │ │ ├── orthographic-camera.svg │ │ │ ├── perspective-camera.svg │ │ │ ├── picture.svg │ │ │ ├── point.svg │ │ │ ├── profile.png │ │ │ ├── profile.svg │ │ │ ├── remove.svg │ │ │ ├── reset_tools.svg │ │ │ ├── return_number.svg │ │ │ ├── rgb.png │ │ │ ├── rgb.svg │ │ │ ├── rgb_elevation.png │ │ │ ├── right.svg │ │ │ ├── rotate.svg │ │ │ ├── scale.svg │ │ │ ├── sphere.png │ │ │ ├── sphere.svg │ │ │ ├── sphere_distances.svg │ │ │ ├── target.svg │ │ │ ├── top.svg │ │ │ ├── translate.svg │ │ │ ├── triangle.svg │ │ │ ├── volume.svg │ │ │ └── vr_button.svg │ │ ├── images │ │ │ ├── background.jpg │ │ │ ├── child_indices.svg │ │ │ ├── compas.svg │ │ │ ├── loading.jpg │ │ │ ├── vr_controller_help.jpg │ │ │ └── vr_controller_help.svg │ │ ├── lang │ │ │ ├── de │ │ │ │ └── translation.json │ │ │ ├── dev │ │ │ │ ├── ns.common.json │ │ │ │ ├── ns.special.json │ │ │ │ └── translation.json │ │ │ ├── en-US │ │ │ │ ├── ns.common.json │ │ │ │ ├── ns.special.json │ │ │ │ └── translation.json │ │ │ ├── en │ │ │ │ ├── ns.common.json │ │ │ │ ├── ns.special.json │ │ │ │ └── translation.json │ │ │ ├── es │ │ │ │ └── translation.json │ │ │ ├── fr │ │ │ │ └── translation.json │ │ │ ├── it │ │ │ │ └── translation.json │ │ │ ├── jp │ │ │ │ └── translation.json │ │ │ ├── se │ │ │ │ └── translation.json │ │ │ └── zh │ │ │ │ └── translation.json │ │ ├── logo.png │ │ ├── logo.svg │ │ ├── logo_small.png │ │ ├── models │ │ │ ├── stanford_bunny_reduced.mtl │ │ │ ├── stanford_bunny_reduced.obj │ │ │ └── stanford_bunny_reduced.ply │ │ ├── shapefiles │ │ │ ├── south_sorvilier.dbf │ │ │ └── south_sorvilier.shp │ │ └── textures │ │ │ ├── LICENSE │ │ │ ├── brick_pavement.jpg │ │ │ ├── matcap │ │ │ ├── basic_1.jpg │ │ │ ├── basic_2.jpg │ │ │ ├── basic_dark.jpg │ │ │ ├── basic_side.jpg │ │ │ ├── blender_matcap_license.txt │ │ │ ├── ceramic_dark.jpg │ │ │ ├── ceramic_lightbulb.jpg │ │ │ ├── check_normal+y.jpg │ │ │ ├── check_rim_dark.jpg │ │ │ ├── check_rim_light.jpg │ │ │ ├── clay_brown.jpg │ │ │ ├── clay_muddy.jpg │ │ │ ├── clay_studio.jpg │ │ │ ├── contours_1.jpg │ │ │ ├── contours_2.jpg │ │ │ ├── contours_3.jpg │ │ │ ├── jade.jpg │ │ │ ├── matcap.jpg │ │ │ ├── metal_anisotropic.jpg │ │ │ ├── metal_carpaint.jpg │ │ │ ├── metal_lead.jpg │ │ │ ├── metal_shiny.jpg │ │ │ ├── pearl.jpg │ │ │ ├── reflection_check_horizontal.jpg │ │ │ ├── reflection_check_vertical.jpg │ │ │ ├── resin.jpg │ │ │ ├── skin.jpg │ │ │ └── toon.jpg │ │ │ ├── navigation │ │ │ ├── B.png │ │ │ ├── D.png │ │ │ ├── F.png │ │ │ ├── L.png │ │ │ ├── R.png │ │ │ └── U.png │ │ │ ├── rectangle.png │ │ │ ├── skybox │ │ │ ├── nx.jpg │ │ │ ├── ny.jpg │ │ │ ├── nz.jpg │ │ │ ├── px.jpg │ │ │ ├── py.jpg │ │ │ ├── pz.jpg │ │ │ └── skyboxsun25degtest.txt │ │ │ ├── skybox2 │ │ │ ├── README.TXT │ │ │ ├── nx.jpg │ │ │ ├── ny.jpg │ │ │ ├── nz.jpg │ │ │ ├── px.jpg │ │ │ ├── py.jpg │ │ │ └── pz.jpg │ │ │ └── skyboxsun25degtest.txt │ ├── sidebar.html │ └── workers │ │ ├── 2.0 │ │ ├── DecoderWorker.js │ │ └── DecoderWorker_brotli.js │ │ ├── BinaryDecoderWorker.js │ │ ├── EptBinaryDecoderWorker.js │ │ ├── EptLaszipDecoderWorker.js │ │ ├── EptZstandardDecoderWorker.js │ │ ├── LASDecoderWorker.js │ │ └── LASLAZWorker.js ├── proj4 │ ├── LICENSE.md │ ├── README.md │ └── proj4.js ├── shapefile │ └── shapefile.js ├── spectrum │ ├── LICENSE │ ├── README.md │ ├── spectrum.css │ └── spectrum.js ├── sql.js │ ├── AUTHORS │ ├── LICENSE │ ├── README.md │ ├── sql-wasm.js │ └── sql-wasm.wasm ├── three.js │ ├── LICENSE │ ├── README.md │ ├── build │ │ ├── three.js │ │ ├── three.min.js │ │ └── three.module.js │ ├── extra │ │ ├── GLTFLoader.js │ │ ├── VRButton.js │ │ ├── XRControllerModelFactory.js │ │ ├── lines.js │ │ └── lines │ │ │ ├── Line2.js │ │ │ ├── LineGeometry.js │ │ │ ├── LineMaterial.js │ │ │ ├── LineSegments2.js │ │ │ ├── LineSegmentsGeometry.js │ │ │ ├── Wireframe.js │ │ │ └── WireframeGeometry2.js │ ├── libs │ │ ├── chevrotain.module.min.js │ │ ├── dat.gui.module.js │ │ ├── deflate.module.min.js │ │ ├── gunzip.module.min.js │ │ ├── inflate.module.min.js │ │ ├── jszip.module.min.js │ │ ├── meshopt_decoder.module.js │ │ ├── mmdparser.module.js │ │ ├── motion-controllers.module.js │ │ ├── opentype.module.min.js │ │ ├── stats.module.js │ │ ├── tween.module.min.js │ │ └── zstddec.module.js │ ├── lines │ │ ├── Line2.js │ │ ├── LineGeometry.js │ │ ├── LineMaterial.js │ │ ├── LineSegments2.js │ │ ├── LineSegmentsGeometry.js │ │ ├── Wireframe.js │ │ └── WireframeGeometry2.js │ ├── loaders │ │ ├── 3DMLoader.js │ │ ├── 3MFLoader.js │ │ ├── AMFLoader.js │ │ ├── AssimpLoader.js │ │ ├── BVHLoader.js │ │ ├── BasisTextureLoader.js │ │ ├── ColladaLoader.js │ │ ├── DDSLoader.js │ │ ├── DRACOLoader.js │ │ ├── EXRLoader.js │ │ ├── FBXLoader.js │ │ ├── GCodeLoader.js │ │ ├── GLTFLoader.js │ │ ├── HDRCubeTextureLoader.js │ │ ├── KMZLoader.js │ │ ├── KTX2Loader.js │ │ ├── KTXLoader.js │ │ ├── LDrawLoader.js │ │ ├── LUT3dlLoader.js │ │ ├── LUTCubeLoader.js │ │ ├── LWOLoader.js │ │ ├── LottieLoader.js │ │ ├── MD2Loader.js │ │ ├── MDDLoader.js │ │ ├── MMDLoader.js │ │ ├── MTLLoader.js │ │ ├── NRRDLoader.js │ │ ├── NodeMaterialLoader.js │ │ ├── OBJLoader.js │ │ ├── OBJLoader2.js │ │ ├── OBJLoader2Parallel.js │ │ ├── PCDLoader.js │ │ ├── PDBLoader.js │ │ ├── PLYLoader.js │ │ ├── PRWMLoader.js │ │ ├── PVRLoader.js │ │ ├── RGBELoader.js │ │ ├── STLLoader.js │ │ ├── SVGLoader.js │ │ ├── TDSLoader.js │ │ ├── TGALoader.js │ │ ├── TTFLoader.js │ │ ├── TiltLoader.js │ │ ├── VOXLoader.js │ │ ├── VRMLLoader.js │ │ ├── VRMLoader.js │ │ ├── VTKLoader.js │ │ ├── XLoader.js │ │ ├── XYZLoader.js │ │ ├── lwo │ │ │ ├── IFFParser.js │ │ │ ├── LWO2Parser.js │ │ │ └── LWO3Parser.js │ │ └── obj2 │ │ │ ├── OBJLoader2Parser.js │ │ │ ├── bridge │ │ │ └── MtlObjBridge.js │ │ │ ├── shared │ │ │ ├── MaterialHandler.js │ │ │ └── MeshReceiver.js │ │ │ ├── utils │ │ │ └── CodeSerializer.js │ │ │ └── worker │ │ │ ├── main │ │ │ └── WorkerExecutionSupport.js │ │ │ └── parallel │ │ │ ├── OBJLoader2JsmWorker.js │ │ │ └── WorkerRunner.js │ └── webxr │ │ ├── ARButton.js │ │ ├── VRButton.js │ │ ├── XRControllerModelFactory.js │ │ ├── XRHandModelFactory.js │ │ ├── XRHandOculusMeshModel.js │ │ └── XRHandPrimitiveModel.js ├── tween │ ├── LICENSE.txt │ ├── README.txt │ ├── Tween.js │ └── tween.min.js └── zstd-codec │ └── bundle.js ├── main.js ├── package.json └── src ├── desktop.css └── desktop.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | package-lock.json 3 | libs/Cesium -------------------------------------------------------------------------------- /.vscode/keybindings.json: -------------------------------------------------------------------------------- 1 | // Place your key bindings in this file to overwrite the defaults 2 | [ 3 | { 4 | "key": "ctrl+l", 5 | "command": "editor.action.deleteLines", 6 | "when": "editorTextFocus && !editorReadonly" 7 | },{ 8 | "key": "ctrl+shift+i", 9 | "command": "editor.action.toggleRenderWhitespace" 10 | },{ 11 | "key": "ctrl+d", 12 | "command": "editor.action.copyLinesDownAction", 13 | "when": "editorTextFocus" 14 | },{ 15 | "key": "alt+2", 16 | "command": "type", 17 | "args": { 18 | "text": "`" 19 | } 20 | } 21 | ] -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "workbench.editor.enablePreview": false, 3 | "files.associations": { 4 | "*.vs": "cpp", 5 | "*.fs": "cpp" 6 | }, 7 | "files.trimTrailingWhitespace": false, 8 | "editor.fontSize": 28, 9 | "editor.autoIndent": "advanced", 10 | "editor.detectIndentation": false, 11 | "editor.insertSpaces": false, 12 | "editor.minimap.enabled": false, 13 | "editor.autoClosingBrackets": "never", 14 | "editor.formatOnType": false, 15 | "editor.acceptSuggestionOnEnter": "off", 16 | "editor.acceptSuggestionOnCommitCharacter": false, 17 | "editor.mouseWheelZoom": true, 18 | "editor.renderWhitespace": "all", 19 | "editor.autoClosingQuotes": "never", 20 | "editor.autoSurround": "never", 21 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | ============ 3 | == POTREE == 4 | ============ 5 | 6 | http://potree.org 7 | 8 | Copyright (c) 2011-2020, Markus Schütz 9 | All rights reserved. 10 | 11 | Redistribution and use in source and binary forms, with or without 12 | modification, are permitted provided that the following conditions are met: 13 | 14 | 1. Redistributions of source code must retain the above copyright notice, this 15 | list of conditions and the following disclaimer. 16 | 2. Redistributions in binary form must reproduce the above copyright notice, 17 | this list of conditions and the following disclaimer in the documentation 18 | and/or other materials provided with the distribution. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 21 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 22 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 24 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 25 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 26 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 27 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 29 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | 31 | The views and conclusions contained in the software and documentation are those 32 | of the authors and should not be interpreted as representing official policies, 33 | either expressed or implied, of the FreeBSD Project. 34 | -------------------------------------------------------------------------------- /PotreeDesktop.bat: -------------------------------------------------------------------------------- 1 | start ./node_modules/electron/dist/electron.exe ./main -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # About 4 | 5 | A desktop/portable version of the web-based point cloud viewer [Potree](https://github.com/potree/potree), thanks to [Electron](https://electronjs.org/). 6 | 7 | * This version allows you to load [converted point clouds](https://github.com/potree/PotreeConverter) from your hard disc or USB drive. It's also portable so you can put your models together with the viewer on a USB drive and open it wherever you go. 8 | * It's only been tested on windows at the moment. It may not work on other systems or you may only be able to use it on the same Operating System that you've initially built it on. 9 | * Modify index.html to change which point cloud should be loaded by default. 10 | * You can also drag&drop cloud.js files into the window to add point clouds to the scene. 11 | * This desktop version is in a prototype state and as such it may be a bit awkward to use at times. 12 | In order to reset the viewer, you'll have to click "window->reload". 13 | 14 | # LICENSE 15 | 16 | * BSD 2-clause license. (free to use, preservation of copyright notice/attribute when redistributing) 17 | 18 | # Getting Started 19 | 20 | * Install [Node.js](https://nodejs.org/en/) 21 | * Execute PotreeDesktop.bat 22 | * Drag and Drop a las or laz file to convert and load it. 23 | * Drag and Drop a previously converted point cloud to load it. 24 | -------------------------------------------------------------------------------- /libs/CPotree/filter.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/CPotree/filter.exe -------------------------------------------------------------------------------- /libs/MeshLine/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Jaume Sanchez 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 | -------------------------------------------------------------------------------- /libs/PotreeConverter/LICENSE_laszip: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------- 2 | 3 | LICENSE AGREEMENT (for LASzip LiDAR compression): 4 | 5 | LASzip is open-source and is licensed with the standard LGPL version 2.1 6 | (see COPYING.txt) modified by the following static linking exception. 7 | 8 | As a special exception, the copyright holders of this library give you 9 | permission to link this library with independent modules to produce an 10 | executable, regardless of the license terms of these independent modules, 11 | and to copy and distribute the resulting executable under terms of your 12 | choice, provided that you also meet, for each linked independent module, 13 | the terms and conditions of the license of that module. An independent 14 | module is a module which is not derived from or based on this library. 15 | If you modify this library, you may extend this exception to your version 16 | of the library, but you are not obliged to do so. If you do not wish to 17 | do so, delete this exception statement from your version. 18 | 19 | This software is distributed WITHOUT ANY WARRANTY and without even the 20 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 21 | 22 | -------------------------------------------------------------------------- 23 | 24 | PROGRAMMERS: 25 | 26 | martin@rapidlasso.com 27 | 28 | -------------------------------------------------------------------------- 29 | 30 | COPYRIGHT: 31 | 32 | (c) 2007-2015, martin isenburg, rapidlasso - fast tools to catch reality 33 | 34 | -------------------------------------------------------------------------- 35 | -------------------------------------------------------------------------------- /libs/PotreeConverter/PotreeConverter.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/PotreeConverter/PotreeConverter.exe -------------------------------------------------------------------------------- /libs/PotreeConverter/laszip.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/PotreeConverter/laszip.dll -------------------------------------------------------------------------------- /libs/PotreeConverter2/PotreeConverter.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/PotreeConverter2/PotreeConverter.exe -------------------------------------------------------------------------------- /libs/PotreeConverter2/laszip.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/PotreeConverter2/laszip.dll -------------------------------------------------------------------------------- /libs/PotreeConverter2/licenses/license_brotli.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /libs/PotreeConverter2/licenses/license_json.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2013-2020 Niels Lohmann 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. -------------------------------------------------------------------------------- /libs/PotreeConverter2/licenses/license_potree_converter.txt: -------------------------------------------------------------------------------- 1 | 2 | Copyright 2020 Markus Schütz 3 | 4 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 5 | 6 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7 | 8 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 9 | 10 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /libs/ZoomableSlider/ZoomableSlider.css: -------------------------------------------------------------------------------- 1 | 2 | .zs_widget{ 3 | padding: 2px; 4 | height: 30px; 5 | border: 1px solid green; 6 | user-select: none; 7 | } 8 | .zs_core{ 9 | overflow: hidden; 10 | position: relative; 11 | height: 100%; 12 | } 13 | .zs_handle{ 14 | position: absolute; 15 | top: 0px; 16 | bottom: 0px; 17 | border: 1px solid green; 18 | background-color: green; 19 | width: 8px; 20 | user-select: none; 21 | } 22 | .zs_handle:hover{ 23 | background-color: lightgreen; 24 | } 25 | .zs_inside{ 26 | position: absolute; 27 | } 28 | .zs_outside{ 29 | position: absolute !important; 30 | width: 100%; 31 | height: 2px; 32 | background-color: black; 33 | top: 50%; 34 | } 35 | .zs_visible_range_label{ 36 | position: absolute; 37 | bottom: 0px; 38 | } 39 | .zs_visible_range_label_left{ 40 | left: 0px; 41 | } 42 | .zs_visible_range_label_right{ 43 | right: 0px; 44 | } 45 | .zs_chosen_range_label{ 46 | position: absolute; 47 | } 48 | 49 | -------------------------------------------------------------------------------- /libs/ZoomableSlider/ZoomableSlider.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 |
13 | 14 |
15 | 16 | 17 | 18 | 19 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /libs/brotli/BUILD: -------------------------------------------------------------------------------- 1 | package( 2 | default_visibility = ["//visibility:public"], 3 | ) 4 | 5 | licenses(["notice"]) # MIT 6 | 7 | load("@io_bazel_rules_closure//closure:defs.bzl", "closure_js_library") 8 | 9 | # Not a real polyfill. Do NOT use for anything, but tests. 10 | closure_js_library( 11 | name = "polyfill", 12 | srcs = ["polyfill.js"], 13 | suppress = [ 14 | "JSC_INVALID_OPERAND_TYPE", 15 | "JSC_MISSING_JSDOC", 16 | "JSC_STRICT_INEXISTENT_PROPERTY", 17 | "JSC_TYPE_MISMATCH", 18 | "JSC_UNKNOWN_EXPR_TYPE", 19 | ], 20 | ) 21 | 22 | # Do NOT use this artifact; it is for test purposes only. 23 | closure_js_library( 24 | name = "decode", 25 | srcs = ["decode.js"], 26 | suppress = [ 27 | "JSC_DUP_VAR_DECLARATION", 28 | "JSC_USELESS_BLOCK", 29 | ], 30 | deps = [":polyfill"], 31 | ) 32 | 33 | load("@io_bazel_rules_closure//closure:defs.bzl", "closure_js_test") 34 | 35 | closure_js_test( 36 | name = "all_tests", 37 | srcs = ["decode_test.js"], 38 | deps = [ 39 | ":decode", 40 | ":polyfill", 41 | "@io_bazel_rules_closure//closure/library:testing", 42 | ], 43 | ) 44 | -------------------------------------------------------------------------------- /libs/brotli/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /libs/brotli/WORKSPACE: -------------------------------------------------------------------------------- 1 | workspace(name = "org_brotli_js") 2 | 3 | load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") 4 | 5 | git_repository( 6 | name = "io_bazel_rules_closure", 7 | commit = "29ec97e7c85d607ba9e41cab3993fbb13f812c4b", 8 | remote = "https://github.com/bazelbuild/rules_closure.git", 9 | ) 10 | 11 | load("@io_bazel_rules_closure//closure:defs.bzl", "closure_repositories") 12 | closure_repositories() 13 | -------------------------------------------------------------------------------- /libs/brotli/decode_test.js: -------------------------------------------------------------------------------- 1 | goog.require('goog.testing.asserts'); 2 | goog.require('goog.testing.jsunit'); 3 | 4 | /** 5 | * @param {!Int8Array} bytes 6 | * @return {string} 7 | */ 8 | function bytesToString(bytes) { 9 | return String.fromCharCode.apply(null, new Uint16Array(bytes)); 10 | } 11 | 12 | function testMetadata() { 13 | assertEquals("", bytesToString(BrotliDecode(Int8Array.from([1, 11, 0, 42, 3])))); 14 | } 15 | 16 | function testEmpty() { 17 | assertEquals("", bytesToString(BrotliDecode(Int8Array.from([6])))); 18 | assertEquals("", bytesToString(BrotliDecode(Int8Array.from([0x81, 1])))); 19 | } 20 | 21 | function testBaseDictWord() { 22 | var input = Int8Array.from([ 23 | 0x1b, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe3, 0xb4, 0x0d, 0x00, 0x00, 24 | 0x07, 0x5b, 0x26, 0x31, 0x40, 0x02, 0x00, 0xe0, 0x4e, 0x1b, 0x41, 0x02 25 | ]); 26 | /** @type {!Int8Array} */ 27 | var output = BrotliDecode(input); 28 | assertEquals("time", bytesToString(output)); 29 | } 30 | 31 | function testBlockCountMessage() { 32 | var input = Int8Array.from([ 33 | 0x1b, 0x0b, 0x00, 0x11, 0x01, 0x8c, 0xc1, 0xc5, 0x0d, 0x08, 0x00, 0x22, 34 | 0x65, 0xe1, 0xfc, 0xfd, 0x22, 0x2c, 0xc4, 0x00, 0x00, 0x38, 0xd8, 0x32, 35 | 0x89, 0x01, 0x12, 0x00, 0x00, 0x77, 0xda, 0x04, 0x10, 0x42, 0x00, 0x00, 0x00 36 | ]); 37 | /** @type {!Int8Array} */ 38 | var output = BrotliDecode(input); 39 | assertEquals("aabbaaaaabab", bytesToString(output)); 40 | } 41 | 42 | function testCompressedUncompressedShortCompressedSmallWindow() { 43 | var input = Int8Array.from([ 44 | 0x21, 0xf4, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x1c, 0xa7, 0x6d, 0x00, 0x00, 45 | 0x38, 0xd8, 0x32, 0x89, 0x01, 0x12, 0x00, 0x00, 0x77, 0xda, 0x34, 0x7b, 46 | 0xdb, 0x50, 0x80, 0x02, 0x80, 0x62, 0x62, 0x62, 0x62, 0x62, 0x62, 0x31, 47 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x4e, 0xdb, 0x00, 0x00, 0x70, 0xb0, 48 | 0x65, 0x12, 0x03, 0x24, 0x00, 0x00, 0xee, 0xb4, 0x11, 0x24, 0x00 49 | ]); 50 | /** @type {!Int8Array} */ 51 | var output = BrotliDecode(input); 52 | assertEquals( 53 | "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 54 | "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 55 | "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 56 | "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 57 | "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 58 | "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 59 | "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 60 | "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 61 | "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 62 | "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 63 | "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 64 | "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 65 | "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 66 | "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + 67 | "aaaaaaaaaaaaaabbbbbbbbbb", bytesToString(output)); 68 | } 69 | 70 | function testIntactDistanceRingBuffer0() { 71 | var input = Int8Array.from([ 72 | 0x1b, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe3, 0xb4, 0x0d, 0x00, 0x00, 73 | 0x07, 0x5b, 0x26, 0x31, 0x40, 0x02, 0x00, 0xe0, 0x4e, 0x1b, 0xa1, 0x80, 74 | 0x20, 0x00 75 | ]); 76 | /** @type {!Int8Array} */ 77 | var output = BrotliDecode(input); 78 | assertEquals("himselfself", bytesToString(output)); 79 | } 80 | -------------------------------------------------------------------------------- /libs/brotli/polyfill.js: -------------------------------------------------------------------------------- 1 | if (!Int32Array.__proto__.from) { 2 | Object.defineProperty(Int32Array.__proto__, 'from', { 3 | value: function(obj) { 4 | obj = Object(obj); 5 | if (!obj['length']) { 6 | return new this(0); 7 | } 8 | var typed_array = new this(obj.length); 9 | for(var i = 0; i < typed_array.length; i++) { 10 | typed_array[i] = obj[i]; 11 | } 12 | return typed_array; 13 | } 14 | }); 15 | } 16 | 17 | if (!Array.prototype.copyWithin) { 18 | Array.prototype.copyWithin = function(target, start, end) { 19 | var O = Object(this); 20 | var len = O.length >>> 0; 21 | var to = target | 0; 22 | var from = start | 0; 23 | var count = Math.min(Math.min(end | 0, len) - from, len - to); 24 | var direction = 1; 25 | if (from < to && to < (from + count)) { 26 | direction = -1; 27 | from += count - 1; 28 | to += count - 1; 29 | } 30 | while (count > 0) { 31 | O[to] = O[from]; 32 | from += direction; 33 | to += direction; 34 | count--; 35 | } 36 | return O; 37 | }; 38 | } 39 | 40 | if (!Array.prototype.fill) { 41 | Object.defineProperty(Array.prototype, 'fill', { 42 | value: function(value, start, end) { 43 | end = end | 0; 44 | var O = Object(this); 45 | var k = start | 0; 46 | while (k < end) { 47 | O[k] = value; 48 | k++; 49 | } 50 | return O; 51 | } 52 | }); 53 | } 54 | 55 | if (!Int8Array.prototype.copyWithin) { 56 | Int8Array.prototype.copyWithin = Array.prototype.copyWithin; 57 | } 58 | 59 | if (!Int8Array.prototype.fill) { 60 | Int8Array.prototype.fill = Array.prototype.fill; 61 | } 62 | 63 | if (!Int32Array.prototype.fill) { 64 | Int32Array.prototype.fill = Array.prototype.fill; 65 | } 66 | -------------------------------------------------------------------------------- /libs/d3/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2010-2017, Michael Bostock 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | * The name Michael Bostock may not be used to endorse or promote products 15 | derived from this software without specific prior written permission. 16 | 17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | DISCLAIMED. IN NO EVENT SHALL MICHAEL BOSTOCK BE LIABLE FOR ANY DIRECT, 21 | INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 22 | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 24 | OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 25 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 26 | EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | -------------------------------------------------------------------------------- /libs/geopackage/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 National Geospatial-Intelligence Agency 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 | 23 | -------------------------------------------------------------------------------- /libs/i18next/i18next.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/i18next/i18next.js -------------------------------------------------------------------------------- /libs/jquery-ui/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright jQuery Foundation and other contributors, https://jquery.org/ 2 | 3 | This software consists of voluntary contributions made by many 4 | individuals. For exact contribution history, see the revision history 5 | available at https://github.com/jquery/jquery-ui 6 | 7 | The following license applies to all parts of this software except as 8 | documented below: 9 | 10 | ==== 11 | 12 | Permission is hereby granted, free of charge, to any person obtaining 13 | a copy of this software and associated documentation files (the 14 | "Software"), to deal in the Software without restriction, including 15 | without limitation the rights to use, copy, modify, merge, publish, 16 | distribute, sublicense, and/or sell copies of the Software, and to 17 | permit persons to whom the Software is furnished to do so, subject to 18 | the following conditions: 19 | 20 | The above copyright notice and this permission notice shall be 21 | included in all copies or substantial portions of the Software. 22 | 23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 27 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 28 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 29 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 30 | 31 | ==== 32 | 33 | Copyright and related rights for sample code are waived via CC0. Sample 34 | code is defined as all source code contained within the demos directory. 35 | 36 | CC0: http://creativecommons.org/publicdomain/zero/1.0/ 37 | 38 | ==== 39 | 40 | All files located in the node_modules and external directories are 41 | externally maintained libraries used by this software which have their 42 | own licenses; we recommend you read them, as their terms may differ from 43 | the terms above. 44 | -------------------------------------------------------------------------------- /libs/jquery-ui/images/ui-icons_444444_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/jquery-ui/images/ui-icons_444444_256x240.png -------------------------------------------------------------------------------- /libs/jquery-ui/images/ui-icons_555555_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/jquery-ui/images/ui-icons_555555_256x240.png -------------------------------------------------------------------------------- /libs/jquery-ui/images/ui-icons_777620_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/jquery-ui/images/ui-icons_777620_256x240.png -------------------------------------------------------------------------------- /libs/jquery-ui/images/ui-icons_777777_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/jquery-ui/images/ui-icons_777777_256x240.png -------------------------------------------------------------------------------- /libs/jquery-ui/images/ui-icons_cc0000_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/jquery-ui/images/ui-icons_cc0000_256x240.png -------------------------------------------------------------------------------- /libs/jquery-ui/images/ui-icons_ffffff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/jquery-ui/images/ui-icons_ffffff_256x240.png -------------------------------------------------------------------------------- /libs/jquery-ui/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery-ui", 3 | "title": "jQuery UI", 4 | "description": "A curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library.", 5 | "version": "1.12.1", 6 | "homepage": "http://jqueryui.com", 7 | "author": { 8 | "name": "jQuery Foundation and other contributors", 9 | "url": "https://github.com/jquery/jquery-ui/blob/1.12.1/AUTHORS.txt" 10 | }, 11 | "main": "ui/widget.js", 12 | "maintainers": [ 13 | { 14 | "name": "Scott González", 15 | "email": "scott.gonzalez@gmail.com", 16 | "url": "http://scottgonzalez.com" 17 | }, 18 | { 19 | "name": "Jörn Zaefferer", 20 | "email": "joern.zaefferer@gmail.com", 21 | "url": "http://bassistance.de" 22 | }, 23 | { 24 | "name": "Mike Sherov", 25 | "email": "mike.sherov@gmail.com", 26 | "url": "http://mike.sherov.com" 27 | }, 28 | { 29 | "name": "TJ VanToll", 30 | "email": "tj.vantoll@gmail.com", 31 | "url": "http://tjvantoll.com" 32 | }, 33 | { 34 | "name": "Felix Nagel", 35 | "email": "info@felixnagel.com", 36 | "url": "http://www.felixnagel.com" 37 | }, 38 | { 39 | "name": "Alex Schmitz", 40 | "email": "arschmitz@gmail.com", 41 | "url": "https://github.com/arschmitz" 42 | } 43 | ], 44 | "repository": { 45 | "type": "git", 46 | "url": "git://github.com/jquery/jquery-ui.git" 47 | }, 48 | "bugs": "https://bugs.jqueryui.com/", 49 | "license": "MIT", 50 | "scripts": { 51 | "test": "grunt" 52 | }, 53 | "dependencies": {}, 54 | "devDependencies": { 55 | "commitplease": "2.3.0", 56 | "grunt": "0.4.5", 57 | "grunt-bowercopy": "1.2.4", 58 | "grunt-cli": "0.1.13", 59 | "grunt-compare-size": "0.4.0", 60 | "grunt-contrib-concat": "0.5.1", 61 | "grunt-contrib-csslint": "0.5.0", 62 | "grunt-contrib-jshint": "0.12.0", 63 | "grunt-contrib-qunit": "1.0.1", 64 | "grunt-contrib-requirejs": "0.4.4", 65 | "grunt-contrib-uglify": "0.11.1", 66 | "grunt-git-authors": "3.1.0", 67 | "grunt-html": "6.0.0", 68 | "grunt-jscs": "2.1.0", 69 | "load-grunt-tasks": "3.4.0", 70 | "rimraf": "2.5.1", 71 | "testswarm": "1.1.0" 72 | }, 73 | "keywords": [] 74 | } 75 | -------------------------------------------------------------------------------- /libs/json5-2.1.3/LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2012-2018 Aseem Kishore, and [others]. 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 | 23 | [others]: https://github.com/json5/json5/contributors 24 | -------------------------------------------------------------------------------- /libs/jstree/LICENSE-MIT: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014 Ivan Bozhanov 2 | 3 | Permission is hereby granted, free of charge, to any person 4 | obtaining a copy of this software and associated documentation 5 | files (the "Software"), to deal in the Software without 6 | restriction, including without limitation the rights to use, 7 | copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the 9 | Software is furnished to do so, subject to the following 10 | conditions: 11 | 12 | The above copyright notice and this permission notice shall be 13 | included in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 17 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 19 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /libs/jstree/themes/mixed/32px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/jstree/themes/mixed/32px.png -------------------------------------------------------------------------------- /libs/jstree/themes/mixed/40px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/jstree/themes/mixed/40px.png -------------------------------------------------------------------------------- /libs/jstree/themes/mixed/throbber.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/jstree/themes/mixed/throbber.gif -------------------------------------------------------------------------------- /libs/openlayers3/LICENSE: -------------------------------------------------------------------------------- 1 | http://openlayers.org/ 2 | 3 | Code licensed under the 2-Clause BSD. All documentation CC BY 3.0. Thanks to our sponsors. 4 | https://tldrlegal.com/license/bsd-2-clause-license-(freebsd) -------------------------------------------------------------------------------- /libs/openlayers3/ol.css: -------------------------------------------------------------------------------- 1 | .ol-control,.ol-scale-line{position:absolute;padding:2px}.ol-box{box-sizing:border-box;border-radius:2px;border:2px solid #00f}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:#95b9e6;background:rgba(0,60,136,.3);border-radius:4px;bottom:8px;left:8px}.ol-scale-line-inner{border:1px solid #eee;border-top:none;color:#eee;font-size:10px;text-align:center;margin:1px;will-change:contents,width}.ol-overlay-container{will-change:left,right,top,bottom}.ol-unsupported{display:none}.ol-viewport .ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-control{background-color:#eee;background-color:rgba(255,255,255,.4);border-radius:4px}.ol-control:hover{background-color:rgba(255,255,255,.6)}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}@media print{.ol-control{display:none}}.ol-control button{display:block;margin:1px;padding:0;color:#fff;font-size:1.14em;font-weight:700;text-decoration:none;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:#7b98bc;background-color:rgba(0,60,136,.5);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;font-size:1.2em;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:focus,.ol-control button:hover{text-decoration:none;background-color:#4c6079;background-color:rgba(0,60,136,.7)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em)}.ol-attribution ul{margin:0;padding:0 .5em;font-size:.7rem;line-height:1.375em;color:#000;text-shadow:0 0 2px #fff}.ol-attribution li{display:inline;list-style:none;line-height:inherit}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button,.ol-attribution ul{display:inline-block}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution.ol-logo-only ul{display:block}.ol-attribution:not(.ol-collapsed){background:rgba(255,255,255,.8)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0;height:1.1em;line-height:1em}.ol-attribution.ol-logo-only{background:0 0;bottom:.4em;height:1.1em;line-height:1em}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-logo-only button,.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:inline-block}.ol-overviewmap .ol-overviewmap-map{border:1px solid #7b98bc;height:150px;margin:2px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:1px;left:2px;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:rgba(255,255,255,.8)}.ol-overviewmap-box{border:2px dotted rgba(0,60,136,.7)} -------------------------------------------------------------------------------- /libs/other/stats.min.js: -------------------------------------------------------------------------------- 1 | // stats.js - http://github.com/mrdoob/stats.js 2 | var Stats=function(){function h(a){c.appendChild(a.dom);return a}function k(a){for(var d=0;de+1E3&&(r.update(1E3*a/(c-e),100),e=c,a=0,t)){var d=performance.memory;t.update(d.usedJSHeapSize/1048576,d.jsHeapSizeLimit/1048576)}return c},update:function(){g=this.end()},domElement:c,setMode:k}}; 4 | Stats.Panel=function(h,k,l){var c=Infinity,g=0,e=Math.round,a=e(window.devicePixelRatio||1),r=80*a,f=48*a,t=3*a,u=2*a,d=3*a,m=15*a,n=74*a,p=30*a,q=document.createElement("canvas");q.width=r;q.height=f;q.style.cssText="width:80px;height:48px";var b=q.getContext("2d");b.font="bold "+9*a+"px Helvetica,Arial,sans-serif";b.textBaseline="top";b.fillStyle=l;b.fillRect(0,0,r,f);b.fillStyle=k;b.fillText(h,t,u);b.fillRect(d,m,n,p);b.fillStyle=l;b.globalAlpha=.9;b.fillRect(d,m,n,p);return{dom:q,update:function(f, 5 | v){c=Math.min(c,f);g=Math.max(g,f);b.fillStyle=l;b.globalAlpha=1;b.fillRect(0,0,r,m);b.fillStyle=k;b.fillText(e(f)+" "+h+" ("+e(c)+"-"+e(g)+")",t,u);b.drawImage(q,d+a,m,n-a,p,d,m,n-a,p);b.fillRect(d+n-a,m,a,p);b.fillStyle=l;b.globalAlpha=.9;b.fillRect(d+n-a,m,a,e((1-f/v)*p))}}};"object"===typeof module&&(module.exports=Stats); 6 | -------------------------------------------------------------------------------- /libs/plasio/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Uday Verma, uday.karan@gmail.com 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 13 | all 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 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /libs/potree/LICENSE: -------------------------------------------------------------------------------- 1 | 2 | ============ 3 | == POTREE == 4 | ============ 5 | 6 | http://potree.org 7 | 8 | Copyright (c) 2011-2020, Markus Schütz 9 | All rights reserved. 10 | 11 | Redistribution and use in source and binary forms, with or without 12 | modification, are permitted provided that the following conditions are met: 13 | 14 | 1. Redistributions of source code must retain the above copyright notice, this 15 | list of conditions and the following disclaimer. 16 | 2. Redistributions in binary form must reproduce the above copyright notice, 17 | this list of conditions and the following disclaimer in the documentation 18 | and/or other materials provided with the distribution. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 21 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 22 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 24 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 25 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 26 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 27 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 29 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | 31 | The views and conclusions contained in the software and documentation are those 32 | of the authors and should not be interpreted as representing official policies, 33 | either expressed or implied, of the FreeBSD Project. 34 | -------------------------------------------------------------------------------- /libs/potree/lazylibs/geopackage/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 National Geospatial-Intelligence Agency 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 | 23 | -------------------------------------------------------------------------------- /libs/potree/lazylibs/sql.js/AUTHORS: -------------------------------------------------------------------------------- 1 | Ophir LOJKINE (https://github.com/lovasoa) 2 | @kripken 3 | @hankinsoft 4 | @firien 5 | @dinedal 6 | @taytay 7 | -------------------------------------------------------------------------------- /libs/potree/lazylibs/sql.js/LICENSE: -------------------------------------------------------------------------------- 1 | MIT license 2 | =========== 3 | 4 | Copyright (c) 2017 sql.js authors (see AUTHORS) 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | 24 | 25 | 26 | # Some portions of the Makefile taken from: 27 | Copyright 2017 Ryusei Yamaguchi 28 | 29 | Permission is hereby granted, free of charge, to any person obtaining a copy of 30 | this software and associated documentation files (the "Software"), to deal in 31 | the Software without restriction, including without limitation the rights to 32 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 33 | the Software, and to permit persons to whom the Software is furnished to do so, 34 | subject to the following conditions: 35 | 36 | The above copyright notice and this permission notice shall be included in all 37 | copies or substantial portions of the Software. 38 | 39 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 40 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 41 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 42 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 43 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 44 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /libs/potree/lazylibs/sql.js/sql-wasm.wasm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/lazylibs/sql.js/sql-wasm.wasm -------------------------------------------------------------------------------- /libs/potree/resources/LICENSE: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | icons/map_icon.png 5 | from sitn PotreeViewer 6 | http://ne.ch/sitn 7 | https://github.com/PotreeViewer/PotreeViewer 8 | 9 | icons/navigation_cube.svg 10 | icons/orthographic_camera.svg 11 | icons/perspective_camera.svg 12 | free for commerical use without attribution 13 | http://www.freepik.com/free-icon/package-cube-box-for-delivery_720159.htm 14 | 15 | 16 | # VR Controller Model 17 | images/vr_controller_help* 18 | Controller model from https://sketchfab.com/3d-models/htc-vive-controller-9f03e4a80c5a4b31a24bb122f17cb229 19 | license: CC AttributionCreative Commons Attribution 20 | 21 | -------------------------------------------------------------------------------- /libs/potree/resources/icons/add.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 21 | 23 | 42 | 45 | 46 | 48 | 49 | 51 | image/svg+xml 52 | 54 | 55 | 56 | 57 | 58 | 62 | + 73 | 74 | 75 | -------------------------------------------------------------------------------- /libs/potree/resources/icons/angle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/angle.png -------------------------------------------------------------------------------- /libs/potree/resources/icons/area.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 21 | 23 | 42 | 45 | 46 | 48 | 49 | 51 | image/svg+xml 52 | 54 | 55 | 56 | 57 | 58 | 62 | 68 | 74 | 80 | 86 | 92 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /libs/potree/resources/icons/assign.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 21 | 23 | 42 | 45 | 46 | 48 | 49 | 51 | image/svg+xml 52 | 54 | 55 | 56 | 57 | 58 | 62 | = 73 | 74 | 75 | -------------------------------------------------------------------------------- /libs/potree/resources/icons/circle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 | 20 | 39 | 42 | 43 | 45 | 46 | 48 | image/svg+xml 49 | 51 | 52 | 53 | 54 | 55 | 60 | 66 | 73 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /libs/potree/resources/icons/circled_dot.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 21 | 23 | 42 | 45 | 46 | 48 | 49 | 51 | image/svg+xml 52 | 54 | 55 | 56 | 57 | 58 | 62 | 73 | 74 | 75 | -------------------------------------------------------------------------------- /libs/potree/resources/icons/clip-plane-x.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 20 | 22 | image/svg+xml 23 | 25 | 26 | 27 | 28 | 29 | 31 | 51 | 56 | 62 | 63 | -------------------------------------------------------------------------------- /libs/potree/resources/icons/clip-plane-y.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 20 | 22 | image/svg+xml 23 | 25 | 26 | 27 | 28 | 30 | 50 | 55 | 61 | 62 | -------------------------------------------------------------------------------- /libs/potree/resources/icons/clip-plane-z.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 20 | 22 | image/svg+xml 23 | 25 | 26 | 27 | 28 | 29 | 31 | 51 | 56 | 62 | 63 | -------------------------------------------------------------------------------- /libs/potree/resources/icons/clip-polygon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 21 | 23 | 42 | 45 | 46 | 48 | 49 | 51 | image/svg+xml 52 | 54 | 55 | 56 | 57 | 58 | 62 | 68 | 74 | 80 | 86 | 92 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /libs/potree/resources/icons/clip-screen.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 21 | 23 | 42 | 45 | 46 | 48 | 49 | 51 | image/svg+xml 52 | 54 | 55 | 56 | 57 | 58 | 62 | 68 | 74 | 80 | 86 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /libs/potree/resources/icons/close.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 | 20 | 39 | 42 | 43 | 45 | 46 | 48 | image/svg+xml 49 | 51 | 52 | 53 | 54 | 55 | 59 | 64 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /libs/potree/resources/icons/cloud.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 | 20 | 39 | 42 | 43 | 45 | 46 | 48 | image/svg+xml 49 | 51 | 52 | 53 | 54 | 55 | 59 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /libs/potree/resources/icons/distance.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 | 20 | 39 | 42 | 43 | 45 | 46 | 48 | image/svg+xml 49 | 51 | 52 | 53 | 54 | 55 | 59 | 64 | 74 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /libs/potree/resources/icons/earth_controls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/earth_controls.png -------------------------------------------------------------------------------- /libs/potree/resources/icons/earth_controls_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/earth_controls_1.png -------------------------------------------------------------------------------- /libs/potree/resources/icons/eye.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 41 | 43 | 44 | 46 | image/svg+xml 47 | 49 | 50 | 51 | 52 | 53 | 58 | 64 | 70 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /libs/potree/resources/icons/eye_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/eye_2.png -------------------------------------------------------------------------------- /libs/potree/resources/icons/flip_y_z.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/flip_y_z.png -------------------------------------------------------------------------------- /libs/potree/resources/icons/fps_controls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/fps_controls.png -------------------------------------------------------------------------------- /libs/potree/resources/icons/gradients_grayscale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/gradients_grayscale.png -------------------------------------------------------------------------------- /libs/potree/resources/icons/gradients_plasma.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/gradients_plasma.png -------------------------------------------------------------------------------- /libs/potree/resources/icons/gradients_rainbow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/gradients_rainbow.png -------------------------------------------------------------------------------- /libs/potree/resources/icons/gradients_spectral.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/gradients_spectral.png -------------------------------------------------------------------------------- /libs/potree/resources/icons/gradients_yellow_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/gradients_yellow_green.png -------------------------------------------------------------------------------- /libs/potree/resources/icons/image_preview.php: -------------------------------------------------------------------------------- 1 | $value){ 8 | 9 | if($value === "." || $value === ".." || $value === "image_preview.php"){ 10 | continue; 11 | } 12 | 13 | ?> 14 |
15 |
16 | 17 |
18 | -------------------------------------------------------------------------------- /libs/potree/resources/icons/map_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/map_icon.png -------------------------------------------------------------------------------- /libs/potree/resources/icons/matcap/basic_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/matcap/basic_1.jpg -------------------------------------------------------------------------------- /libs/potree/resources/icons/matcap/basic_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/matcap/basic_2.jpg -------------------------------------------------------------------------------- /libs/potree/resources/icons/matcap/basic_dark.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/matcap/basic_dark.jpg -------------------------------------------------------------------------------- /libs/potree/resources/icons/matcap/basic_side.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/matcap/basic_side.jpg -------------------------------------------------------------------------------- /libs/potree/resources/icons/matcap/ceramic_dark.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/matcap/ceramic_dark.jpg -------------------------------------------------------------------------------- /libs/potree/resources/icons/matcap/ceramic_lightbulb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/matcap/ceramic_lightbulb.jpg -------------------------------------------------------------------------------- /libs/potree/resources/icons/matcap/check_normal+y.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/matcap/check_normal+y.jpg -------------------------------------------------------------------------------- /libs/potree/resources/icons/matcap/check_rim_dark.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/matcap/check_rim_dark.jpg -------------------------------------------------------------------------------- /libs/potree/resources/icons/matcap/check_rim_light.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/matcap/check_rim_light.jpg -------------------------------------------------------------------------------- /libs/potree/resources/icons/matcap/clay_brown.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/matcap/clay_brown.jpg -------------------------------------------------------------------------------- /libs/potree/resources/icons/matcap/clay_muddy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/matcap/clay_muddy.jpg -------------------------------------------------------------------------------- /libs/potree/resources/icons/matcap/clay_studio.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/matcap/clay_studio.jpg -------------------------------------------------------------------------------- /libs/potree/resources/icons/matcap/contours_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/matcap/contours_1.jpg -------------------------------------------------------------------------------- /libs/potree/resources/icons/matcap/contours_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/matcap/contours_2.jpg -------------------------------------------------------------------------------- /libs/potree/resources/icons/matcap/contours_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/matcap/contours_3.jpg -------------------------------------------------------------------------------- /libs/potree/resources/icons/matcap/jade.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/matcap/jade.jpg -------------------------------------------------------------------------------- /libs/potree/resources/icons/matcap/matcap.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/matcap/matcap.jpg -------------------------------------------------------------------------------- /libs/potree/resources/icons/matcap/metal_anisotropic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/matcap/metal_anisotropic.jpg -------------------------------------------------------------------------------- /libs/potree/resources/icons/matcap/metal_carpaint.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/matcap/metal_carpaint.jpg -------------------------------------------------------------------------------- /libs/potree/resources/icons/matcap/metal_lead.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/matcap/metal_lead.jpg -------------------------------------------------------------------------------- /libs/potree/resources/icons/matcap/metal_shiny.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/matcap/metal_shiny.jpg -------------------------------------------------------------------------------- /libs/potree/resources/icons/matcap/pearl.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/matcap/pearl.jpg -------------------------------------------------------------------------------- /libs/potree/resources/icons/matcap/reflection_check_horizontal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/matcap/reflection_check_horizontal.jpg -------------------------------------------------------------------------------- /libs/potree/resources/icons/matcap/reflection_check_vertical.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/matcap/reflection_check_vertical.jpg -------------------------------------------------------------------------------- /libs/potree/resources/icons/matcap/resin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/matcap/resin.jpg -------------------------------------------------------------------------------- /libs/potree/resources/icons/matcap/skin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/matcap/skin.jpg -------------------------------------------------------------------------------- /libs/potree/resources/icons/matcap/toon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/matcap/toon.jpg -------------------------------------------------------------------------------- /libs/potree/resources/icons/menu_icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 | 20 | 38 | 40 | 41 | 43 | image/svg+xml 44 | 46 | 47 | 48 | 49 | 50 | 55 | 64 | 73 | 82 | 83 | 84 | -------------------------------------------------------------------------------- /libs/potree/resources/icons/orthographic-camera.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 20 | 22 | image/svg+xml 23 | 25 | 26 | 27 | 28 | 29 | 31 | 51 | 56 | 62 | 63 | -------------------------------------------------------------------------------- /libs/potree/resources/icons/perspective-camera.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 20 | 22 | image/svg+xml 23 | 25 | 26 | 27 | 28 | 29 | 31 | 51 | 56 | 62 | 63 | -------------------------------------------------------------------------------- /libs/potree/resources/icons/point.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 21 | 23 | 42 | 45 | 46 | 48 | 49 | 51 | image/svg+xml 52 | 54 | 55 | 56 | 57 | 58 | 62 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /libs/potree/resources/icons/profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/profile.png -------------------------------------------------------------------------------- /libs/potree/resources/icons/rgb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/rgb.png -------------------------------------------------------------------------------- /libs/potree/resources/icons/rgb_elevation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/rgb_elevation.png -------------------------------------------------------------------------------- /libs/potree/resources/icons/sphere.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/icons/sphere.png -------------------------------------------------------------------------------- /libs/potree/resources/images/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/images/background.jpg -------------------------------------------------------------------------------- /libs/potree/resources/images/loading.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/images/loading.jpg -------------------------------------------------------------------------------- /libs/potree/resources/images/vr_controller_help.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/images/vr_controller_help.jpg -------------------------------------------------------------------------------- /libs/potree/resources/lang/de/translation.json: -------------------------------------------------------------------------------- 1 | { 2 | "tb": { 3 | "navigation_opt": "Navigation", 4 | "rendering_opt": "Aussehen", 5 | "tools_opt": "Tools", 6 | "measurments_opt": "Messungen", 7 | "clipping_opt": "Clipping", 8 | "materials_opt": "Materials", 9 | "scene_opt": "Szene", 10 | "classification_filter_opt": "Klassifizierung Filter", 11 | "parameters_opt": "Weitere Einstellungen", 12 | "about_opt": "Über Potree" 13 | }, 14 | "tt": { 15 | "angle_measurement": "Winkelmessung", 16 | "distance_measurement": "Abstandsmessung", 17 | "area_measurement": "Flächenmessung", 18 | "volume_measurement": "Volumenmessung", 19 | "height_profile": "Höhenprofil", 20 | "clip_volume": "Volume clip", 21 | "clip_polygon": "Polygon clip", 22 | "clip_plane_x": "Clipebene auf x-Achse", 23 | "clip_plane_y": "Clipebene auf y-Achse", 24 | "clip_plane_z": "Clipebene auf z-Achse", 25 | "remove_all_measurement": "Alle Messungen entfernen", 26 | "left_view_control": "Linke Seite", 27 | "front_view_control": "Vorderseite", 28 | "top_view_control": "Draufsicht", 29 | "focus_control": "Volle Ausdehnung", 30 | "orbit_control": "Orbit Kontrolle ", 31 | "flight_control": "Fly Kontrolle", 32 | "earth_control": "Earth Kontrolle", 33 | "perspective_camera_control": "Perspektivische Kamera", 34 | "orthographic_camera_control": "Orthografische Kamera", 35 | "navigation_cube_control": "Navigationswürfel", 36 | "remove_all_clipping_volumes": "Alle Clipvolumen entfernen" 37 | }, 38 | "appearance": { 39 | "nb_max_pts": "Max Punkte", 40 | "point_size": "Punktgrösse", 41 | "point_opacity": "Deckkraft", 42 | "field_view": "Sichtfeld", 43 | "point_size_type": "Punktgrösse", 44 | "point_material": "Materials", 45 | "elevation_range": "Elevation Bereich", 46 | "point_quality": "Qualität", 47 | "point_shape": "Form", 48 | "edl_radius": "Radius", 49 | "edl_strength": "Stärke", 50 | "edl_enable": "Ein", 51 | "min_node_size": "Min Knotengrösse", 52 | "clip_mode": "Clip-Modus", 53 | "move_speed": "Speed", 54 | "skybox": "Sky", 55 | "bottom_lock": "Halten über dem Boden", 56 | "box": "Box", 57 | "length_unit": "Lenght unit", 58 | "freeze": "Lock view", 59 | "language": "Sprache" 60 | }, 61 | "profile": { 62 | "nb_points": "Punkt number", 63 | "title": "Höhenprofil", 64 | "save": "Speichern" 65 | }, 66 | "settings": { 67 | "language": "Sprache" 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /libs/potree/resources/lang/dev/ns.common.json: -------------------------------------------------------------------------------- 1 | { 2 | "simple_dev": "ok_from_common_dev", 3 | "test": { 4 | "simple_dev": "ok_from_common_dev", 5 | "fallback_dev": "ok_from_common_dev-fallback" 6 | } 7 | } -------------------------------------------------------------------------------- /libs/potree/resources/lang/dev/ns.special.json: -------------------------------------------------------------------------------- 1 | { 2 | "simple_dev": "ok_from_special_dev", 3 | "test": { 4 | "simple_dev": "ok_from_special_dev" 5 | } 6 | } -------------------------------------------------------------------------------- /libs/potree/resources/lang/dev/translation.json: -------------------------------------------------------------------------------- 1 | { 2 | "simple_dev": "ok_from_dev", 3 | "test": { 4 | "simple_dev": "ok_from_dev" 5 | } 6 | } -------------------------------------------------------------------------------- /libs/potree/resources/lang/en-US/ns.common.json: -------------------------------------------------------------------------------- 1 | { 2 | "simple_en-US": "ok_from_common_en-US", 3 | "test": { 4 | "simple_en-US": "ok_from_common_en-US" 5 | } 6 | } -------------------------------------------------------------------------------- /libs/potree/resources/lang/en-US/ns.special.json: -------------------------------------------------------------------------------- 1 | { 2 | "simple_en-US": "ok_from_special_en-US", 3 | "test": { 4 | "simple_en-US": "ok_from_special_en-US" 5 | } 6 | } -------------------------------------------------------------------------------- /libs/potree/resources/lang/en-US/translation.json: -------------------------------------------------------------------------------- 1 | { 2 | "simple_en-US": "ok_from_en-US", 3 | "test": { 4 | "simple_en-US": "ok_from_en-US" 5 | } 6 | } -------------------------------------------------------------------------------- /libs/potree/resources/lang/en/ns.common.json: -------------------------------------------------------------------------------- 1 | { 2 | "simple_en": "ok_from_common_en", 3 | "test": { 4 | "simple_en": "ok_from_common_en", 5 | "fallback_en": "ok_from_common_en-fallback" 6 | } 7 | } -------------------------------------------------------------------------------- /libs/potree/resources/lang/en/ns.special.json: -------------------------------------------------------------------------------- 1 | { 2 | "simple_en": "ok_from_special_en", 3 | "test": { 4 | "simple_en": "ok_from_special_en" 5 | } 6 | } -------------------------------------------------------------------------------- /libs/potree/resources/lang/en/translation.json: -------------------------------------------------------------------------------- 1 | { 2 | "tb": { 3 | "navigation_opt": "Navigation", 4 | "rendering_opt": "Appearance", 5 | "tools_opt": "Tools", 6 | "measurments_opt": "Measurements", 7 | "clipping_opt": "Clipping", 8 | "annotations_opt": "Annotations", 9 | "materials_opt": "Materials", 10 | "scene_opt": "Scene", 11 | "classification_filter_opt": "Classification filter", 12 | "filters_opt": "Filters", 13 | "parameters_opt": "Other settings", 14 | "about_opt": "About" 15 | }, 16 | "tt": { 17 | "angle_measurement": "Angle measurement", 18 | "point_measurement": "Point measurement", 19 | "distance_measurement": "Distance measurement", 20 | "height_measurement": "Height measurement", 21 | "circle_measurement": "Circle measurement", 22 | "area_measurement": "Area measurement", 23 | "volume_measurement": "Volume measurement", 24 | "height_profile": "Height profile", 25 | "annotation": "Annotation", 26 | "clip_volume": "Volume clip", 27 | "clip_polygon": "Polygon clip", 28 | "screen_clip_box": "Draw a selection box. Requires you to be in orthographic camera mode!", 29 | "clip_plane_x": "Clip plane on x axis", 30 | "clip_plane_y": "Clip plane on y axis", 31 | "clip_plane_z": "Clip plane on z axis", 32 | "remove_all_measurement": "Remove all measurements", 33 | "left_view_control": "Left view", 34 | "right_view_control": "Righ view", 35 | "front_view_control": "Front view", 36 | "back_view_control": "Back view", 37 | "top_view_control": "Top view", 38 | "bottom_view_control": "Bottom view", 39 | "focus_control": "Full extent", 40 | "orbit_control": "Orbit control", 41 | "flight_control": "Fly control", 42 | "heli_control": "Helicopter control", 43 | "earth_control": "Earth control", 44 | "perspective_camera_control": "Perspective camera", 45 | "orthographic_camera_control": "Orthographic camera", 46 | "navigation_cube_control": "Navigation cube", 47 | "remove_all_clipping_volumes": "Remove all clipping volumes", 48 | "compass": "Compass", 49 | "camera_animation": "Camera Animation" 50 | }, 51 | "appearance": { 52 | "nb_max_pts": "Point budget", 53 | "point_size": "Point size", 54 | "min_point_size": "Minimum size", 55 | "point_opacity": "Opacity", 56 | "field_view": "Field of view", 57 | "point_size_type": "Point sizing", 58 | "point_material": "Materials", 59 | "elevation_range": "Elevation range", 60 | "extra_range": "Scalar range", 61 | "point_quality": "Quality", 62 | "point_shape": "Shape", 63 | "edl_radius": "Radius", 64 | "edl_strength": "Strength", 65 | "edl_opacity": "Opacity", 66 | "edl_enable": "Enable", 67 | "min_node_size": "Min node size", 68 | "clip_mode": "Clip mode", 69 | "move_speed": "Speed", 70 | "skybox": "Sky", 71 | "bottom_lock": "Keep above ground", 72 | "box": "Box", 73 | "length_unit": "Length unit", 74 | "freeze": "Lock view", 75 | "language": "Language", 76 | "backface_culling": "Backface Culling" 77 | }, 78 | "measurements": { 79 | "clip": "clip", 80 | "show": "show volume" 81 | }, 82 | "annotations": { 83 | "show3D": "show in 3D", 84 | "showMap": "show on map" 85 | }, 86 | "profile": { 87 | "nb_points": "Number of Points", 88 | "title": "Height profile", 89 | "save_las": "Save LAS(3D)", 90 | "save_ortho": "Save CSV(2D)" 91 | }, 92 | "scene": { 93 | "camera_position": "Camera Position", 94 | "camera_target": "Camera Target" 95 | }, 96 | "filters": { 97 | "return_number": "Return Number", 98 | "number_of_returns": "Number of Returns", 99 | "gps_min": "min", 100 | "gps_max": "max", 101 | "gps_time": "GPS Time" 102 | }, 103 | "settings": { 104 | "language": "Language" 105 | } 106 | } 107 | -------------------------------------------------------------------------------- /libs/potree/resources/lang/es/translation.json: -------------------------------------------------------------------------------- 1 | { 2 | "tb": { 3 | "navigation_opt": "Navegación", 4 | "rendering_opt": "Apariencia", 5 | "tools_opt": "Herramientas", 6 | "measurments_opt": "Medidas", 7 | "clipping_opt": "Recorte", 8 | "annotations_opt": "Anotaciones", 9 | "materials_opt": "Materiales", 10 | "scene_opt": "Escena", 11 | "classification_filter_opt": "Filtro de clasificación", 12 | "parameters_opt": "Otros ajustes", 13 | "about_opt": "Acerca de" 14 | }, 15 | "tt": { 16 | "angle_measurement": "Medición de ángulos", 17 | "point_measurement": "Medición de puntos", 18 | "distance_measurement": "Medición de distancia", 19 | "height_measurement": "Medición de altura", 20 | "area_measurement": "Medición de área", 21 | "volume_measurement": "Medición de volumen", 22 | "height_profile": "Perfil de altura", 23 | "clip_volume": "Clip de volumen", 24 | "clip_polygon": "Clip poligonal", 25 | "screen_clip_box": "Dibuje un cuadro de selección. Requiere que usted esté en modo de cámara ortográfica", 26 | "clip_plane_x": "Plano del clip en el eje x", 27 | "clip_plane_y": "Plano del clip en el eje y", 28 | "clip_plane_z": "Plano del clip en el eje z", 29 | "remove_all_measurement": "Eliminar todas las mediciones", 30 | "left_view_control": "Vista izquierda", 31 | "right_view_control": "Vista derecha", 32 | "front_view_control": "Vista de frente", 33 | "back_view_control": "Vista desde atrás", 34 | "top_view_control": "Vista superior", 35 | "bottom_view_control": "Vista inferior", 36 | "focus_control": "Alcance total", 37 | "orbit_control": "Control de órbita", 38 | "flight_control": "Control de vuelo", 39 | "heli_control": "Control de helicóptero", 40 | "earth_control": "Control de la tierra", 41 | "perspective_camera_control": "Perspectiva de la cámara", 42 | "orthographic_camera_control": "Cámara ortográfica", 43 | "navigation_cube_control": "Cubo de navegación", 44 | "remove_all_clipping_volumes": "Eliminar todos los volúmenes de recorte" 45 | }, 46 | "appearance": { 47 | "nb_max_pts": "Presupuesto de puntos", 48 | "point_size": "Tamaño del punto", 49 | "point_opacity": "Opacidad", 50 | "field_view": "Campo de visión", 51 | "point_size_type": "Dimensionamiento de puntos", 52 | "point_material": "Materiales", 53 | "elevation_range": "Rango de elevación", 54 | "point_quality": "Calidad", 55 | "point_shape": "Forma", 56 | "edl_radius": "Radio", 57 | "edl_strength": "Fuerza", 58 | "edl_enable": "Habilitar", 59 | "min_node_size": "Tamaño de nodo mínimo", 60 | "clip_mode": "Modo clip", 61 | "move_speed": "Velocidad", 62 | "skybox": "Cielo", 63 | "bottom_lock": "Mantenerse sobre el suelo", 64 | "box": "Caja", 65 | "length_unit": "Unidad de longitud", 66 | "freeze": "Vista de bloqueo", 67 | "language": "Lenguaje" 68 | }, 69 | "measurements": { 70 | "clip": "clip", 71 | "show": "ver volumen" 72 | }, 73 | "annotations": { 74 | "show3D": "ver en 3D", 75 | "showMap": "ver en mapa" 76 | }, 77 | "profile": { 78 | "nb_points": "Número de puntos", 79 | "title": "Perfil de altura", 80 | "save_las": "Guardar LAS(3D)", 81 | "save_ortho": "Guardar CSV(2D)" 82 | }, 83 | "scene": { 84 | "camera_position": "Posición de la cámara", 85 | "camera_target": "Objetuvo de la cámara" 86 | }, 87 | "settings": { 88 | "language": "Lenguaje" 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /libs/potree/resources/lang/fr/translation.json: -------------------------------------------------------------------------------- 1 | { 2 | "tb": { 3 | "navigation_opt": "Navigation", 4 | "rendering_opt": "Apparence", 5 | "tools_opt": "Outils", 6 | "measurments_opt": "Mesures", 7 | "materials_opt": "Matériaux", 8 | "scene_opt": "Scène", 9 | "classification_filter_opt": "Filtre de classification", 10 | "parameters_opt": "Autres paramètres", 11 | "about_opt": "À propos" 12 | }, 13 | "tt": { 14 | "angle_measurement": "Mesurer un angle", 15 | "distance_measurement": "Mesurer une distance", 16 | "area_measurement": "Mesurer une surface", 17 | "volume_measurement": "Mesurer un volume", 18 | "height_profile": "Mesurer un profil", 19 | "clip_volume": "Sélectionner des points par un volume", 20 | "remove_all_measurement": "Supprimer toutes les mesures", 21 | "left_view_control": "Vue de la gauche", 22 | "front_view_control": "Vue de face", 23 | "top_view_control": "Vue de dessus", 24 | "focus_control": "Vue complète", 25 | "orbit_control": "Orbite", 26 | "flight_control": "Vol", 27 | "earth_control": "Earth" 28 | }, 29 | "appearance": { 30 | "nb_max_pts": "Nb points max", 31 | "point_size": "Taille des points", 32 | "point_opacity": "Opacité", 33 | "field_view": "Angle de vue", 34 | "point_size_type": "Type de taille", 35 | "point_material": "Matériaux", 36 | "elevation_range": "Plage altimétrique", 37 | "point_quality": "Qualité", 38 | "edl_radius": "Rayon", 39 | "edl_strength": "Intensité", 40 | "edl_enable": "Activer", 41 | "min_node_size": "Taille minimum des noeuds", 42 | "clip_mode": "Mode d'intersection", 43 | "move_speed": "Vitesse", 44 | "skybox": "Ciel", 45 | "bottom_lock": "Rester au-dessus du sol", 46 | "box": "Boite", 47 | "freeze": "Vérouiller la vue", 48 | "language": "Choix de la langue" 49 | }, 50 | "profile": { 51 | "nb_points": "Nombre de points", 52 | "title": "Profil altimétrique", 53 | "save": "Enregistrer" 54 | }, 55 | "settings": { 56 | "language": "Langue" 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /libs/potree/resources/lang/jp/translation.json: -------------------------------------------------------------------------------- 1 | { 2 | "tb": { 3 | "navigation_opt": "ナビゲーション", 4 | "rendering_opt": "外観", 5 | "tools_opt": "ツール", 6 | "measurments_opt": "測定結果", 7 | "annotations_opt": "注釈", 8 | "materials_opt": "材料", 9 | "scene_opt": "シーン", 10 | "classification_filter_opt": "フィルター分類", 11 | "parameters_opt": "その他の設定", 12 | "about_opt": "協力" 13 | }, 14 | "tt": { 15 | "angle_measurement": "角度測定", 16 | "distance_measurement": "距離測定", 17 | "height_measurement": "標高測定", 18 | "area_measurement": "面積測定", 19 | "volume_measurement": "体積測定", 20 | "height_profile": "断面図", 21 | "clip_volume": "クリッピングボリューム", 22 | "remove_all_measurement": "計測結果のクリア", 23 | "left_view_control": "左から見る", 24 | "front_view_control": "前から見る", 25 | "top_view_control": "上から見る", 26 | "focus_control": "全体表示", 27 | "orbit_control": " 軌道制御", 28 | "flight_control": "Vol", 29 | "earth_control": "地球" 30 | }, 31 | "appearance": { 32 | "nb_max_pts": "表示するポイント数を設定", 33 | "point_size": "点サイズを設定", 34 | "point_opacity": "不透明度", 35 | "field_view": "視野", 36 | "point_size_type": "点タイプ設定", 37 | "point_material": "点の材質", 38 | "elevation_range": "Plage altimétrique", 39 | "point_quality": "品質", 40 | "edl_radius": "点群の半径", 41 | "edl_strength": "点群の強度", 42 | "edl_enable": "アクティブにする", 43 | "min_node_size": "最小ノードサイズ", 44 | "clip_mode": "クリップモード", 45 | "move_speed": "動く速度", 46 | "skybox": "空", 47 | "bottom_lock": "地上面を固定します。", 48 | "box": "ボックス", 49 | "freeze": "ビューの固定", 50 | "language": "言語" 51 | }, 52 | "profile": { 53 | "nb_points": "点群番号", 54 | "title": "Profil altimétrique", 55 | "save_las": "LAS(3D)形式で保存", 56 | "save_ortho": "CSV(2D)形式で保存", 57 | "save": "保存" 58 | }, 59 | "scene": { 60 | "camera_position": "Camera Position", 61 | "camera_target": "Camera Target" 62 | }, 63 | "settings": { 64 | "language": "言語" 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /libs/potree/resources/lang/se/translation.json: -------------------------------------------------------------------------------- 1 | { 2 | "tb": { 3 | "navigation_opt": "Navigering", 4 | "rendering_opt": "Utseende", 5 | "tools_opt": "Verktyg", 6 | "measurments_opt": "Mätning", 7 | "clipping_opt": "Urklipp", 8 | "annotations_opt": "Annoteringar", 9 | "materials_opt": "Material", 10 | "scene_opt": "Scen", 11 | "classification_filter_opt": "Klassificeringsfilter", 12 | "filters_opt": "Filter", 13 | "parameters_opt": "Andra inställningar", 14 | "about_opt": "Om" 15 | }, 16 | "tt": { 17 | "angle_measurement": "Vinkelmätning", 18 | "point_measurement": "Punktmätning", 19 | "distance_measurement": "Distansmätning", 20 | "height_measurement": "Höjdmätning", 21 | "area_measurement": "Areamätning", 22 | "volume_measurement": "Volymmätning", 23 | "height_profile": "Höjdprofil", 24 | "clip_volume": "Volymklippning", 25 | "clip_polygon": "Polygonklippning", 26 | "screen_clip_box": "Rita en yta för selektering. Ortogonalt kameraläge krävs!", 27 | "clip_plane_x": "Klippyta på x axel", 28 | "clip_plane_y": "Klippyta på y axel", 29 | "clip_plane_z": "Klippyta på z axel", 30 | "remove_all_measurement": "Ta bort alla mätningar", 31 | "left_view_control": "Vy vänster", 32 | "right_view_control": "Vy höger", 33 | "front_view_control": "Vy fram", 34 | "back_view_control": "Vy bak", 35 | "top_view_control": "Vy ovan", 36 | "bottom_view_control": "Vy under", 37 | "focus_control": "Full utsträckning", 38 | "orbit_control": "Kretsa kontroll", 39 | "flight_control": "Flyga kontroll", 40 | "heli_control": "Helikopter kontroll", 41 | "earth_control": "Earth control", 42 | "perspective_camera_control": "Kamera perspektiv", 43 | "orthographic_camera_control": "Kamera ortogonal", 44 | "navigation_cube_control": "Navigeringskub", 45 | "remove_all_clipping_volumes": "Ta bort alla klippytor" 46 | }, 47 | "appearance": { 48 | "nb_max_pts": "Punktbudget", 49 | "point_size": "Punktstorlek", 50 | "point_opacity": "Transparens", 51 | "field_view": "Synfält", 52 | "point_size_type": "Punkttyp", 53 | "point_material": "Material", 54 | "elevation_range": "Höjdintervall", 55 | "point_quality": "Kvalitet", 56 | "point_shape": "Form", 57 | "edl_radius": "Radie", 58 | "edl_strength": "Styrka", 59 | "edl_enable": "Aktiverad", 60 | "min_node_size": "Min nodstorlek", 61 | "clip_mode": "Klippläge", 62 | "move_speed": "Hastighet", 63 | "skybox": "Skybox", 64 | "bottom_lock": "Lås över marknivå", 65 | "box": "Box", 66 | "length_unit": "Enhet för längd", 67 | "freeze": "Lås vy", 68 | "language": "Språk" 69 | }, 70 | "measurements": { 71 | "clip": "klipp", 72 | "show": "visa volym" 73 | }, 74 | "annotations": { 75 | "show3D": "visa i 3D", 76 | "showMap": "visa på karta" 77 | }, 78 | "profile": { 79 | "nb_points": "Antal Punkter", 80 | "title": "Höjdprofil", 81 | "save_las": "Spara LAS(3D)", 82 | "save_ortho": "Spara CSV(2D)" 83 | }, 84 | "scene": { 85 | "camera_position": "Kamera Position", 86 | "camera_target": "Kamera Mål" 87 | }, 88 | "filters": { 89 | "return_number": "Returnera Antal", 90 | "number_of_returns": "Antal Returneringar", 91 | "gps_min": "min", 92 | "gps_max": "max", 93 | "gps_time": "GPS Tid" 94 | }, 95 | "settings": { 96 | "language": "Språk" 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /libs/potree/resources/lang/zh/translation.json: -------------------------------------------------------------------------------- 1 | { 2 | "tb": { 3 | "navigation_opt": "导航", 4 | "rendering_opt": "外观", 5 | "tools_opt": "工具", 6 | "measurments_opt": "量测分析", 7 | "clipping_opt": "裁剪", 8 | "annotations_opt": "标注", 9 | "materials_opt": "材质", 10 | "scene_opt": "场景", 11 | "classification_filter_opt": "分类过滤器", 12 | "filters_opt": "过滤器", 13 | "parameters_opt": "其他选项", 14 | "about_opt": "关于" 15 | }, 16 | "tt": { 17 | "angle_measurement": "角度量测", 18 | "point_measurement": "点量测", 19 | "distance_measurement": "距离量测", 20 | "height_measurement": "高度量测", 21 | "circle_measurement": "环形量测", 22 | "area_measurement": "面积量测", 23 | "volume_measurement": "体积量测", 24 | "height_profile": "高度剖面", 25 | "annotation": "标注", 26 | "clip_volume": "立体裁剪", 27 | "clip_polygon": "多边形裁剪", 28 | "screen_clip_box": "绘制矩形进行裁剪. 需要使用 orthographic 相机模式!", 29 | "clip_plane_x": "在x轴平面裁剪", 30 | "clip_plane_y": "在y轴平面裁剪", 31 | "clip_plane_z": "在z轴平面裁剪", 32 | "remove_all_measurement": "清除量测结果", 33 | "left_view_control": "左视图", 34 | "right_view_control": "右视图", 35 | "front_view_control": "前视图", 36 | "back_view_control": "后视图", 37 | "top_view_control": "俯视图", 38 | "bottom_view_control": "仰视图", 39 | "focus_control": "复位", 40 | "orbit_control": "轨道控制", 41 | "flight_control": "飞行控制", 42 | "heli_control": "直升机控制", 43 | "earth_control": "地球控制", 44 | "perspective_camera_control": "透视相机", 45 | "orthographic_camera_control": "正交相机", 46 | "navigation_cube_control": "导航立方体", 47 | "remove_all_clipping_volumes": "移除裁剪对象", 48 | "compass": "指北针", 49 | "camera_animation": "相机动画" 50 | }, 51 | "appearance": { 52 | "nb_max_pts": "显示点数", 53 | "point_size": "点尺寸", 54 | "min_point_size": "最小尺寸", 55 | "point_opacity": "透明度", 56 | "field_view": "视野范围", 57 | "point_size_type": "尺寸", 58 | "point_material": "材质", 59 | "elevation_range": "高程范围", 60 | "extra_range": "标量范围", 61 | "point_quality": "质量", 62 | "point_shape": "形状", 63 | "edl_radius": "半径", 64 | "edl_strength": "强度", 65 | "edl_opacity": "透明度", 66 | "edl_enable": "启用", 67 | "min_node_size": "节点尺寸", 68 | "clip_mode": "裁剪模式", 69 | "move_speed": "速度", 70 | "skybox": "天空", 71 | "bottom_lock": "保持高于地面", 72 | "box": "辅助网格", 73 | "length_unit": "长度单位", 74 | "freeze": "锁定", 75 | "language": "语言", 76 | "backface_culling": "剔除背面" 77 | }, 78 | "measurements": { 79 | "clip": "裁剪", 80 | "show": "显示体积" 81 | }, 82 | "annotations": { 83 | "show3D": "以3D形式展示", 84 | "showMap": "在地图展示" 85 | }, 86 | "profile": { 87 | "nb_points": "点云数量", 88 | "title": "高度剖面", 89 | "save_las": "保存 LAS(3D)", 90 | "save_ortho": "保存 CSV(2D)" 91 | }, 92 | "scene": { 93 | "camera_position": "相机位置", 94 | "camera_target": "相机目标" 95 | }, 96 | "filters": { 97 | "return_number": "第几次回波", 98 | "number_of_returns": "回波次数", 99 | "gps_min": "最小值", 100 | "gps_max": "最大值", 101 | "gps_time": "GPS 时间" 102 | }, 103 | "settings": { 104 | "language": "语言" 105 | } 106 | } -------------------------------------------------------------------------------- /libs/potree/resources/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/logo.png -------------------------------------------------------------------------------- /libs/potree/resources/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 21 | 23 | 42 | 44 | 45 | 47 | image/svg+xml 48 | 50 | 51 | 52 | 53 | 54 | 59 | WebGL point cloud visualization 71 | Potree.org 83 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /libs/potree/resources/logo_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/logo_small.png -------------------------------------------------------------------------------- /libs/potree/resources/models/stanford_bunny_reduced.mtl: -------------------------------------------------------------------------------- 1 | # Blender MTL File: 'None' 2 | # Material Count: 1 3 | 4 | newmtl Material.001 5 | Ns 96.078431 6 | Ka 1.000000 1.000000 1.000000 7 | Kd 0.640000 0.352654 0.488547 8 | Ks 0.500000 0.500000 0.500000 9 | Ke 0.000000 0.000000 0.000000 10 | Ni 1.000000 11 | d 1.000000 12 | illum 2 13 | map_Kd C:\\dev\\workspaces\\potree\\develop\\resources\\textures\\brick_pavement.jpg 14 | -------------------------------------------------------------------------------- /libs/potree/resources/models/stanford_bunny_reduced.ply: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/models/stanford_bunny_reduced.ply -------------------------------------------------------------------------------- /libs/potree/resources/shapefiles/south_sorvilier.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/shapefiles/south_sorvilier.dbf -------------------------------------------------------------------------------- /libs/potree/resources/shapefiles/south_sorvilier.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/shapefiles/south_sorvilier.shp -------------------------------------------------------------------------------- /libs/potree/resources/textures/LICENSE: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | brick_pavement.jpg: 5 | http://www.wildtextures.com/terms-of-use/ 6 | ============================== 7 | All textures at wildtextures.com are completely free for both, personal and commercial use, however you can’t: 8 | 9 | host textures for download on any other website or server, 10 | direct link to texture file from any other website ( however you can link to texture page ), 11 | sell them as a stock materials, 12 | ============================== 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /libs/potree/resources/textures/brick_pavement.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/brick_pavement.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/matcap/basic_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/matcap/basic_1.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/matcap/basic_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/matcap/basic_2.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/matcap/basic_dark.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/matcap/basic_dark.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/matcap/basic_side.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/matcap/basic_side.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/matcap/blender_matcap_license.txt: -------------------------------------------------------------------------------- 1 | These matcap images are licensed as CC0 or public domain. 2 | 3 | Thanks to the Blender community for contributing these matcaps. 4 | 5 | (Matcap images from /Blender/2.80/datafiles/studiolights/matcap/*") 6 | -------------------------------------------------------------------------------- /libs/potree/resources/textures/matcap/ceramic_dark.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/matcap/ceramic_dark.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/matcap/ceramic_lightbulb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/matcap/ceramic_lightbulb.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/matcap/check_normal+y.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/matcap/check_normal+y.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/matcap/check_rim_dark.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/matcap/check_rim_dark.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/matcap/check_rim_light.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/matcap/check_rim_light.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/matcap/clay_brown.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/matcap/clay_brown.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/matcap/clay_muddy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/matcap/clay_muddy.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/matcap/clay_studio.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/matcap/clay_studio.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/matcap/contours_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/matcap/contours_1.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/matcap/contours_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/matcap/contours_2.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/matcap/contours_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/matcap/contours_3.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/matcap/jade.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/matcap/jade.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/matcap/matcap.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/matcap/matcap.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/matcap/metal_anisotropic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/matcap/metal_anisotropic.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/matcap/metal_carpaint.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/matcap/metal_carpaint.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/matcap/metal_lead.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/matcap/metal_lead.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/matcap/metal_shiny.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/matcap/metal_shiny.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/matcap/pearl.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/matcap/pearl.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/matcap/reflection_check_horizontal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/matcap/reflection_check_horizontal.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/matcap/reflection_check_vertical.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/matcap/reflection_check_vertical.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/matcap/resin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/matcap/resin.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/matcap/skin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/matcap/skin.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/matcap/toon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/matcap/toon.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/navigation/B.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/navigation/B.png -------------------------------------------------------------------------------- /libs/potree/resources/textures/navigation/D.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/navigation/D.png -------------------------------------------------------------------------------- /libs/potree/resources/textures/navigation/F.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/navigation/F.png -------------------------------------------------------------------------------- /libs/potree/resources/textures/navigation/L.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/navigation/L.png -------------------------------------------------------------------------------- /libs/potree/resources/textures/navigation/R.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/navigation/R.png -------------------------------------------------------------------------------- /libs/potree/resources/textures/navigation/U.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/navigation/U.png -------------------------------------------------------------------------------- /libs/potree/resources/textures/rectangle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/rectangle.png -------------------------------------------------------------------------------- /libs/potree/resources/textures/skybox/nx.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/skybox/nx.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/skybox/ny.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/skybox/ny.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/skybox/nz.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/skybox/nz.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/skybox/px.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/skybox/px.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/skybox/py.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/skybox/py.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/skybox/pz.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/skybox/pz.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/skybox/skyboxsun25degtest.txt: -------------------------------------------------------------------------------- 1 | http://reije081.home.xs4all.nl/skyboxes/ 2 | -------------------------------------------------------------------------------- /libs/potree/resources/textures/skybox2/README.TXT: -------------------------------------------------------------------------------- 1 | THIS SKY WAS UPDATED AT THE 27TH 2 | THE ORIG HAD SOME ERRORS 3 | 4 | MIRAMAR 5 | high res 1024^2 environment map 6 | ships as TGA. 7 | 8 | 9 | By Jockum Skoglund aka hipshot 10 | hipshot@zfight.com 11 | www.zfight.com 12 | Stockholm, 2005 08 25 13 | 14 | 15 | Modify however you like, just cred me for my work, maybe link to my page. 16 | -------------------------------------------------------------------------------- /libs/potree/resources/textures/skybox2/nx.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/skybox2/nx.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/skybox2/ny.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/skybox2/ny.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/skybox2/nz.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/skybox2/nz.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/skybox2/px.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/skybox2/px.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/skybox2/py.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/skybox2/py.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/skybox2/pz.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/potree/resources/textures/skybox2/pz.jpg -------------------------------------------------------------------------------- /libs/potree/resources/textures/skyboxsun25degtest.txt: -------------------------------------------------------------------------------- 1 | http://reije081.home.xs4all.nl/skyboxes/ 2 | -------------------------------------------------------------------------------- /libs/proj4/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._ -------------------------------------------------------------------------------- /libs/shapefile/shapefile.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/shapefile/shapefile.js -------------------------------------------------------------------------------- /libs/spectrum/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) Brian Grinstead 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /libs/spectrum/README.md: -------------------------------------------------------------------------------- 1 | # Spectrum 2 | ## The No Hassle Colorpicker 3 | 4 | See the demo and docs: http://bgrins.github.io/spectrum. 5 | 6 | I wanted a colorpicker that didn't require images, and that had an API that made sense to me as a developer who has worked with color in a number of applications. I had tried a number of existing plugins, but decided to try and make a smaller, simpler one. 7 | 8 | I started using canvas, then switched to CSS gradients, since it turned out to be easier to manage, and provided better cross browser support. 9 | 10 | ### Basic Usage 11 | 12 | Head over to the [docs](http://bgrins.github.io/spectrum) for more information. There is a visual demo of the different options hosted at: http://bgrins.github.io/spectrum. 13 | 14 | 15 | 16 | 17 | 18 | 19 | 24 | 25 | ### npm 26 | 27 | Spectrum is registered as package with npm. It can be installed with: 28 | 29 | npm install spectrum-colorpicker 30 | 31 | ### Bower 32 | 33 | Spectrum is registered as a package with [Bower](http://bower.io/), so it can be pulled down using: 34 | 35 | bower install spectrum 36 | 37 | ### Using spectrum with a CDN 38 | 39 | CDN provided by [cdnjs](https://cdnjs.com/libraries/spectrum) 40 | 41 | 42 | 43 | 44 | ### Continuous Integration 45 | 46 | [![Build Status](https://secure.travis-ci.org/bgrins/spectrum.png?branch=master)](http://travis-ci.org/bgrins/spectrum) 47 | 48 | Visit https://travis-ci.org/bgrins/spectrum to view the status of the automated tests. 49 | 50 | ### Building Spectrum Locally 51 | 52 | If you'd like to download and use the plugin, head over to http://bgrins.github.io/spectrum/ and click the 'Download Zip' button. 53 | 54 | If you'd like to run the development version, spectrum uses Grunt to automate the testing, linting, and building. Head over to http://gruntjs.com/getting-started for more information. First, clone the repository, then run: 55 | 56 | npm install -g grunt-cli 57 | npm install 58 | 59 | # runs jshint and the unit test suite 60 | grunt 61 | 62 | # runs jshint, the unit test suite, and builds a minified version of the file. 63 | grunt build 64 | 65 | ### Internationalization 66 | 67 | If you are able to translate the text in the UI to another language, please do! You can do so by either [filing a pull request](https://github.com/bgrins/spectrum/pulls) or [opening an issue]( https://github.com/bgrins/spectrum/issues) with the translation. The existing languages are listed at: https://github.com/bgrins/spectrum/tree/master/i18n. 68 | 69 | For an example, see the [Dutch translation](i18n/jquery.spectrum-nl.js). 70 | -------------------------------------------------------------------------------- /libs/sql.js/AUTHORS: -------------------------------------------------------------------------------- 1 | Ophir LOJKINE (https://github.com/lovasoa) 2 | @kripken 3 | @hankinsoft 4 | @firien 5 | @dinedal 6 | @taytay 7 | -------------------------------------------------------------------------------- /libs/sql.js/LICENSE: -------------------------------------------------------------------------------- 1 | MIT license 2 | =========== 3 | 4 | Copyright (c) 2017 sql.js authors (see AUTHORS) 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | 24 | 25 | 26 | # Some portions of the Makefile taken from: 27 | Copyright 2017 Ryusei Yamaguchi 28 | 29 | Permission is hereby granted, free of charge, to any person obtaining a copy of 30 | this software and associated documentation files (the "Software"), to deal in 31 | the Software without restriction, including without limitation the rights to 32 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 33 | the Software, and to permit persons to whom the Software is furnished to do so, 34 | subject to the following conditions: 35 | 36 | The above copyright notice and this permission notice shall be included in all 37 | copies or substantial portions of the Software. 38 | 39 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 40 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 41 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 42 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 43 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 44 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /libs/sql.js/sql-wasm.wasm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/potree/PotreeDesktop/9849498432dc4af635cfa55d5048be6a027dbe47/libs/sql.js/sql-wasm.wasm -------------------------------------------------------------------------------- /libs/three.js/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright © 2010-2019 three.js authors 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 13 | all 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 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /libs/three.js/README.md: -------------------------------------------------------------------------------- 1 | three.js 2 | ======== 3 | 4 | [![NPM package][npm]][npm-url] 5 | [![Build Size][build-size]][build-size-url] 6 | [![Build Status][build-status]][build-status-url] 7 | [![Dependencies][dependencies]][dependencies-url] 8 | [![Dev Dependencies][dev-dependencies]][dev-dependencies-url] 9 | [![Language Grade][lgtm]][lgtm-url] 10 | 11 | #### JavaScript 3D library #### 12 | 13 | The aim of the project is to create an easy to use, lightweight, 3D library with a default WebGL renderer. The library also provides Canvas 2D, SVG and CSS3D renderers in the examples. 14 | 15 | [Examples](http://threejs.org/examples/) — 16 | [Documentation](http://threejs.org/docs/) — 17 | [Wiki](https://github.com/mrdoob/three.js/wiki) — 18 | [Migrating](https://github.com/mrdoob/three.js/wiki/Migration-Guide) — 19 | [Questions](http://stackoverflow.com/questions/tagged/three.js) — 20 | [Forum](https://discourse.threejs.org/) — 21 | [Gitter](https://gitter.im/mrdoob/three.js) — 22 | [Slack](https://join.slack.com/t/threejs/shared_invite/enQtMzYxMzczODM2OTgxLTQ1YmY4YTQxOTFjNDAzYmQ4NjU2YzRhNzliY2RiNDEyYjU2MjhhODgyYWQ5Y2MyZTU3MWNkOGVmOGRhOTQzYTk) 23 | 24 | ### Usage ### 25 | 26 | Download the [minified library](http://threejs.org/build/three.min.js) and include it in your HTML, or install and import it as a [module](http://threejs.org/docs/#manual/introduction/Import-via-modules), 27 | Alternatively, see [how to build the library yourself](https://github.com/mrdoob/three.js/wiki/Build-instructions). 28 | 29 | ```html 30 | 31 | ``` 32 | 33 | This code creates a scene, a camera, and a geometric cube, and it adds the cube to the scene. It then creates a `WebGL` renderer for the scene and camera, and it adds that viewport to the `document.body` element. Finally, it animates the cube within the scene for the camera. 34 | 35 | ```javascript 36 | var camera, scene, renderer; 37 | var geometry, material, mesh; 38 | 39 | init(); 40 | animate(); 41 | 42 | function init() { 43 | 44 | camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 0.01, 10 ); 45 | camera.position.z = 1; 46 | 47 | scene = new THREE.Scene(); 48 | 49 | geometry = new THREE.BoxGeometry( 0.2, 0.2, 0.2 ); 50 | material = new THREE.MeshNormalMaterial(); 51 | 52 | mesh = new THREE.Mesh( geometry, material ); 53 | scene.add( mesh ); 54 | 55 | renderer = new THREE.WebGLRenderer( { antialias: true } ); 56 | renderer.setSize( window.innerWidth, window.innerHeight ); 57 | document.body.appendChild( renderer.domElement ); 58 | 59 | } 60 | 61 | function animate() { 62 | 63 | requestAnimationFrame( animate ); 64 | 65 | mesh.rotation.x += 0.01; 66 | mesh.rotation.y += 0.02; 67 | 68 | renderer.render( scene, camera ); 69 | 70 | } 71 | ``` 72 | 73 | If everything went well you should see [this](https://jsfiddle.net/f2Lommf5/). 74 | 75 | ### Change log ### 76 | 77 | [Releases](https://github.com/mrdoob/three.js/releases) 78 | 79 | 80 | [npm]: https://img.shields.io/npm/v/three.svg 81 | [npm-url]: https://www.npmjs.com/package/three 82 | [build-size]: https://badgen.net/bundlephobia/minzip/three 83 | [build-size-url]: https://bundlephobia.com/result?p=three 84 | [build-status]: https://travis-ci.org/mrdoob/three.js.svg?branch=dev 85 | [build-status-url]: https://travis-ci.org/mrdoob/three.js 86 | [dependencies]: https://img.shields.io/david/mrdoob/three.js.svg 87 | [dependencies-url]: https://david-dm.org/mrdoob/three.js 88 | [dev-dependencies]: https://img.shields.io/david/dev/mrdoob/three.js.svg 89 | [dev-dependencies-url]: https://david-dm.org/mrdoob/three.js#info=devDependencies 90 | [lgtm]: https://img.shields.io/lgtm/grade/javascript/g/mrdoob/three.js.svg?label=code%20quality 91 | [lgtm-url]: https://lgtm.com/projects/g/mrdoob/three.js/ 92 | -------------------------------------------------------------------------------- /libs/three.js/extra/lines/Line2.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author WestLangley / http://github.com/WestLangley 3 | * 4 | */ 5 | 6 | THREE.Line2 = function ( geometry, material ) { 7 | 8 | THREE.LineSegments2.call( this ); 9 | 10 | this.type = 'Line2'; 11 | 12 | this.geometry = geometry !== undefined ? geometry : new THREE.LineGeometry(); 13 | this.material = material !== undefined ? material : new THREE.LineMaterial( { color: Math.random() * 0xffffff } ); 14 | 15 | }; 16 | 17 | THREE.Line2.prototype = Object.assign( Object.create( THREE.LineSegments2.prototype ), { 18 | 19 | constructor: THREE.Line2, 20 | 21 | isLine2: true, 22 | 23 | copy: function ( /* source */ ) { 24 | 25 | // todo 26 | 27 | return this; 28 | 29 | } 30 | 31 | } ); 32 | -------------------------------------------------------------------------------- /libs/three.js/extra/lines/LineGeometry.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author WestLangley / http://github.com/WestLangley 3 | * 4 | */ 5 | 6 | THREE.LineGeometry = function () { 7 | 8 | THREE.LineSegmentsGeometry.call( this ); 9 | 10 | this.type = 'LineGeometry'; 11 | 12 | }; 13 | 14 | THREE.LineGeometry.prototype = Object.assign( Object.create( THREE.LineSegmentsGeometry.prototype ), { 15 | 16 | constructor: THREE.LineGeometry, 17 | 18 | isLineGeometry: true, 19 | 20 | setPositions: function ( array ) { 21 | 22 | // converts [ x1, y1, z1, x2, y2, z2, ... ] to pairs format 23 | 24 | var length = array.length - 3; 25 | var points = new Float32Array( 2 * length ); 26 | 27 | for ( var i = 0; i < length; i += 3 ) { 28 | 29 | points[ 2 * i ] = array[ i ]; 30 | points[ 2 * i + 1 ] = array[ i + 1 ]; 31 | points[ 2 * i + 2 ] = array[ i + 2 ]; 32 | 33 | points[ 2 * i + 3 ] = array[ i + 3 ]; 34 | points[ 2 * i + 4 ] = array[ i + 4 ]; 35 | points[ 2 * i + 5 ] = array[ i + 5 ]; 36 | 37 | } 38 | 39 | THREE.LineSegmentsGeometry.prototype.setPositions.call( this, points ); 40 | 41 | return this; 42 | 43 | }, 44 | 45 | setColors: function ( array ) { 46 | 47 | // converts [ r1, g1, b1, r2, g2, b2, ... ] to pairs format 48 | 49 | var length = array.length - 3; 50 | var colors = new Float32Array( 2 * length ); 51 | 52 | for ( var i = 0; i < length; i += 3 ) { 53 | 54 | colors[ 2 * i ] = array[ i ]; 55 | colors[ 2 * i + 1 ] = array[ i + 1 ]; 56 | colors[ 2 * i + 2 ] = array[ i + 2 ]; 57 | 58 | colors[ 2 * i + 3 ] = array[ i + 3 ]; 59 | colors[ 2 * i + 4 ] = array[ i + 4 ]; 60 | colors[ 2 * i + 5 ] = array[ i + 5 ]; 61 | 62 | } 63 | 64 | THREE.LineSegmentsGeometry.prototype.setColors.call( this, colors ); 65 | 66 | return this; 67 | 68 | }, 69 | 70 | fromLine: function ( line ) { 71 | 72 | var geometry = line.geometry; 73 | 74 | if ( geometry.isGeometry ) { 75 | 76 | this.setPositions( geometry.vertices ); 77 | 78 | } else if ( geometry.isBufferGeometry ) { 79 | 80 | this.setPositions( geometry.position.array ); // assumes non-indexed 81 | 82 | } 83 | 84 | // set colors, maybe 85 | 86 | return this; 87 | 88 | }, 89 | 90 | copy: function ( /* source */ ) { 91 | 92 | // todo 93 | 94 | return this; 95 | 96 | } 97 | 98 | } ); 99 | -------------------------------------------------------------------------------- /libs/three.js/extra/lines/LineSegments2.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author WestLangley / http://github.com/WestLangley 3 | * 4 | */ 5 | 6 | THREE.LineSegments2 = function ( geometry, material ) { 7 | 8 | THREE.Mesh.call( this ); 9 | 10 | this.type = 'LineSegments2'; 11 | 12 | this.geometry = geometry !== undefined ? geometry : new THREE.LineSegmentsGeometry(); 13 | this.material = material !== undefined ? material : new THREE.LineMaterial( { color: Math.random() * 0xffffff } ); 14 | 15 | }; 16 | 17 | THREE.LineSegments2.prototype = Object.assign( Object.create( THREE.Mesh.prototype ), { 18 | 19 | constructor: THREE.LineSegments2, 20 | 21 | isLineSegments2: true, 22 | 23 | computeLineDistances: ( function () { // for backwards-compatability, but could be a method of LineSegmentsGeometry... 24 | 25 | var start = new THREE.Vector3(); 26 | var end = new THREE.Vector3(); 27 | 28 | return function computeLineDistances() { 29 | 30 | var geometry = this.geometry; 31 | 32 | var instanceStart = geometry.attributes.instanceStart; 33 | var instanceEnd = geometry.attributes.instanceEnd; 34 | var lineDistances = new Float32Array( 2 * instanceStart.data.count ); 35 | 36 | for ( var i = 0, j = 0, l = instanceStart.data.count; i < l; i ++, j += 2 ) { 37 | 38 | start.fromBufferAttribute( instanceStart, i ); 39 | end.fromBufferAttribute( instanceEnd, i ); 40 | 41 | lineDistances[ j ] = ( j === 0 ) ? 0 : lineDistances[ j - 1 ]; 42 | lineDistances[ j + 1 ] = lineDistances[ j ] + start.distanceTo( end ); 43 | 44 | } 45 | 46 | var instanceDistanceBuffer = new THREE.InstancedInterleavedBuffer( lineDistances, 2, 1 ); // d0, d1 47 | 48 | geometry.setAttribute( 'instanceDistanceStart', new THREE.InterleavedBufferAttribute( instanceDistanceBuffer, 1, 0 ) ); // d0 49 | geometry.setAttribute( 'instanceDistanceEnd', new THREE.InterleavedBufferAttribute( instanceDistanceBuffer, 1, 1 ) ); // d1 50 | 51 | return this; 52 | 53 | }; 54 | 55 | }() ), 56 | 57 | copy: function ( /* source */ ) { 58 | 59 | // todo 60 | 61 | return this; 62 | 63 | } 64 | 65 | } ); 66 | -------------------------------------------------------------------------------- /libs/three.js/extra/lines/Wireframe.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author WestLangley / http://github.com/WestLangley 3 | * 4 | */ 5 | 6 | THREE.Wireframe = function ( geometry, material ) { 7 | 8 | THREE.Mesh.call( this ); 9 | 10 | this.type = 'Wireframe'; 11 | 12 | this.geometry = geometry !== undefined ? geometry : new THREE.LineSegmentsGeometry(); 13 | this.material = material !== undefined ? material : new THREE.LineMaterial( { color: Math.random() * 0xffffff } ); 14 | 15 | }; 16 | 17 | THREE.Wireframe.prototype = Object.assign( Object.create( THREE.Mesh.prototype ), { 18 | 19 | constructor: THREE.Wireframe, 20 | 21 | isWireframe: true, 22 | 23 | computeLineDistances: ( function () { // for backwards-compatability, but could be a method of LineSegmentsGeometry... 24 | 25 | var start = new THREE.Vector3(); 26 | var end = new THREE.Vector3(); 27 | 28 | return function computeLineDistances() { 29 | 30 | var geometry = this.geometry; 31 | 32 | var instanceStart = geometry.attributes.instanceStart; 33 | var instanceEnd = geometry.attributes.instanceEnd; 34 | var lineDistances = new Float32Array( 2 * instanceStart.data.count ); 35 | 36 | for ( var i = 0, j = 0, l = instanceStart.data.count; i < l; i ++, j += 2 ) { 37 | 38 | start.fromBufferAttribute( instanceStart, i ); 39 | end.fromBufferAttribute( instanceEnd, i ); 40 | 41 | lineDistances[ j ] = ( j === 0 ) ? 0 : lineDistances[ j - 1 ]; 42 | lineDistances[ j + 1 ] = lineDistances[ j ] + start.distanceTo( end ); 43 | 44 | } 45 | 46 | var instanceDistanceBuffer = new THREE.InstancedInterleavedBuffer( lineDistances, 2, 1 ); // d0, d1 47 | 48 | geometry.setAttribute( 'instanceDistanceStart', new THREE.InterleavedBufferAttribute( instanceDistanceBuffer, 1, 0 ) ); // d0 49 | geometry.setAttribute( 'instanceDistanceEnd', new THREE.InterleavedBufferAttribute( instanceDistanceBuffer, 1, 1 ) ); // d1 50 | 51 | return this; 52 | 53 | }; 54 | 55 | }() ), 56 | 57 | copy: function ( /* source */ ) { 58 | 59 | // todo 60 | 61 | return this; 62 | 63 | } 64 | 65 | } ); 66 | -------------------------------------------------------------------------------- /libs/three.js/extra/lines/WireframeGeometry2.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author WestLangley / http://github.com/WestLangley 3 | * 4 | */ 5 | 6 | THREE.WireframeGeometry2 = function ( geometry ) { 7 | 8 | THREE.LineSegmentsGeometry.call( this ); 9 | 10 | this.type = 'WireframeGeometry2'; 11 | 12 | this.fromWireframeGeometry( new THREE.WireframeGeometry( geometry ) ); 13 | 14 | // set colors, maybe 15 | 16 | }; 17 | 18 | THREE.WireframeGeometry2.prototype = Object.assign( Object.create( THREE.LineSegmentsGeometry.prototype ), { 19 | 20 | constructor: THREE.WireframeGeometry2, 21 | 22 | isWireframeGeometry2: true, 23 | 24 | copy: function ( /* source */ ) { 25 | 26 | // todo 27 | 28 | return this; 29 | 30 | } 31 | 32 | } ); 33 | -------------------------------------------------------------------------------- /libs/three.js/lines/Line2.js: -------------------------------------------------------------------------------- 1 | import { LineSegments2 } from '../lines/LineSegments2.js'; 2 | import { LineGeometry } from '../lines/LineGeometry.js'; 3 | import { LineMaterial } from '../lines/LineMaterial.js'; 4 | 5 | var Line2 = function ( geometry, material ) { 6 | 7 | if ( geometry === undefined ) geometry = new LineGeometry(); 8 | if ( material === undefined ) material = new LineMaterial( { color: Math.random() * 0xffffff } ); 9 | 10 | LineSegments2.call( this, geometry, material ); 11 | 12 | this.type = 'Line2'; 13 | 14 | }; 15 | 16 | Line2.prototype = Object.assign( Object.create( LineSegments2.prototype ), { 17 | 18 | constructor: Line2, 19 | 20 | isLine2: true 21 | 22 | } ); 23 | 24 | export { Line2 }; 25 | -------------------------------------------------------------------------------- /libs/three.js/lines/LineGeometry.js: -------------------------------------------------------------------------------- 1 | import { LineSegmentsGeometry } from '../lines/LineSegmentsGeometry.js'; 2 | 3 | var LineGeometry = function () { 4 | 5 | LineSegmentsGeometry.call( this ); 6 | 7 | this.type = 'LineGeometry'; 8 | 9 | }; 10 | 11 | LineGeometry.prototype = Object.assign( Object.create( LineSegmentsGeometry.prototype ), { 12 | 13 | constructor: LineGeometry, 14 | 15 | isLineGeometry: true, 16 | 17 | setPositions: function ( array ) { 18 | 19 | // converts [ x1, y1, z1, x2, y2, z2, ... ] to pairs format 20 | 21 | var length = array.length - 3; 22 | var points = new Float32Array( 2 * length ); 23 | 24 | for ( var i = 0; i < length; i += 3 ) { 25 | 26 | points[ 2 * i ] = array[ i ]; 27 | points[ 2 * i + 1 ] = array[ i + 1 ]; 28 | points[ 2 * i + 2 ] = array[ i + 2 ]; 29 | 30 | points[ 2 * i + 3 ] = array[ i + 3 ]; 31 | points[ 2 * i + 4 ] = array[ i + 4 ]; 32 | points[ 2 * i + 5 ] = array[ i + 5 ]; 33 | 34 | } 35 | 36 | LineSegmentsGeometry.prototype.setPositions.call( this, points ); 37 | 38 | return this; 39 | 40 | }, 41 | 42 | setColors: function ( array ) { 43 | 44 | // converts [ r1, g1, b1, r2, g2, b2, ... ] to pairs format 45 | 46 | var length = array.length - 3; 47 | var colors = new Float32Array( 2 * length ); 48 | 49 | for ( var i = 0; i < length; i += 3 ) { 50 | 51 | colors[ 2 * i ] = array[ i ]; 52 | colors[ 2 * i + 1 ] = array[ i + 1 ]; 53 | colors[ 2 * i + 2 ] = array[ i + 2 ]; 54 | 55 | colors[ 2 * i + 3 ] = array[ i + 3 ]; 56 | colors[ 2 * i + 4 ] = array[ i + 4 ]; 57 | colors[ 2 * i + 5 ] = array[ i + 5 ]; 58 | 59 | } 60 | 61 | LineSegmentsGeometry.prototype.setColors.call( this, colors ); 62 | 63 | return this; 64 | 65 | }, 66 | 67 | fromLine: function ( line ) { 68 | 69 | var geometry = line.geometry; 70 | 71 | if ( geometry.isGeometry ) { 72 | 73 | this.setPositions( geometry.vertices ); 74 | 75 | } else if ( geometry.isBufferGeometry ) { 76 | 77 | this.setPositions( geometry.attributes.position.array ); // assumes non-indexed 78 | 79 | } 80 | 81 | // set colors, maybe 82 | 83 | return this; 84 | 85 | }, 86 | 87 | copy: function ( /* source */ ) { 88 | 89 | // todo 90 | 91 | return this; 92 | 93 | } 94 | 95 | } ); 96 | 97 | export { LineGeometry }; 98 | -------------------------------------------------------------------------------- /libs/three.js/lines/Wireframe.js: -------------------------------------------------------------------------------- 1 | import { 2 | InstancedInterleavedBuffer, 3 | InterleavedBufferAttribute, 4 | Mesh, 5 | Vector3 6 | } from '../build/three.module.js'; 7 | import { LineSegmentsGeometry } from '../lines/LineSegmentsGeometry.js'; 8 | import { LineMaterial } from '../lines/LineMaterial.js'; 9 | 10 | var Wireframe = function ( geometry, material ) { 11 | 12 | Mesh.call( this ); 13 | 14 | this.type = 'Wireframe'; 15 | 16 | this.geometry = geometry !== undefined ? geometry : new LineSegmentsGeometry(); 17 | this.material = material !== undefined ? material : new LineMaterial( { color: Math.random() * 0xffffff } ); 18 | 19 | }; 20 | 21 | Wireframe.prototype = Object.assign( Object.create( Mesh.prototype ), { 22 | 23 | constructor: Wireframe, 24 | 25 | isWireframe: true, 26 | 27 | computeLineDistances: ( function () { // for backwards-compatability, but could be a method of LineSegmentsGeometry... 28 | 29 | var start = new Vector3(); 30 | var end = new Vector3(); 31 | 32 | return function computeLineDistances() { 33 | 34 | var geometry = this.geometry; 35 | 36 | var instanceStart = geometry.attributes.instanceStart; 37 | var instanceEnd = geometry.attributes.instanceEnd; 38 | var lineDistances = new Float32Array( 2 * instanceStart.data.count ); 39 | 40 | for ( var i = 0, j = 0, l = instanceStart.data.count; i < l; i ++, j += 2 ) { 41 | 42 | start.fromBufferAttribute( instanceStart, i ); 43 | end.fromBufferAttribute( instanceEnd, i ); 44 | 45 | lineDistances[ j ] = ( j === 0 ) ? 0 : lineDistances[ j - 1 ]; 46 | lineDistances[ j + 1 ] = lineDistances[ j ] + start.distanceTo( end ); 47 | 48 | } 49 | 50 | var instanceDistanceBuffer = new InstancedInterleavedBuffer( lineDistances, 2, 1 ); // d0, d1 51 | 52 | geometry.setAttribute( 'instanceDistanceStart', new InterleavedBufferAttribute( instanceDistanceBuffer, 1, 0 ) ); // d0 53 | geometry.setAttribute( 'instanceDistanceEnd', new InterleavedBufferAttribute( instanceDistanceBuffer, 1, 1 ) ); // d1 54 | 55 | return this; 56 | 57 | }; 58 | 59 | }() ) 60 | 61 | } ); 62 | 63 | export { Wireframe }; 64 | -------------------------------------------------------------------------------- /libs/three.js/lines/WireframeGeometry2.js: -------------------------------------------------------------------------------- 1 | import { 2 | WireframeGeometry 3 | } from '../build/three.module.js'; 4 | import { LineSegmentsGeometry } from '../lines/LineSegmentsGeometry.js'; 5 | 6 | var WireframeGeometry2 = function ( geometry ) { 7 | 8 | LineSegmentsGeometry.call( this ); 9 | 10 | this.type = 'WireframeGeometry2'; 11 | 12 | this.fromWireframeGeometry( new WireframeGeometry( geometry ) ); 13 | 14 | // set colors, maybe 15 | 16 | }; 17 | 18 | WireframeGeometry2.prototype = Object.assign( Object.create( LineSegmentsGeometry.prototype ), { 19 | 20 | constructor: WireframeGeometry2, 21 | 22 | isWireframeGeometry2: true 23 | 24 | } ); 25 | 26 | export { WireframeGeometry2 }; 27 | -------------------------------------------------------------------------------- /libs/three.js/loaders/HDRCubeTextureLoader.js: -------------------------------------------------------------------------------- 1 | import { 2 | CubeTexture, 3 | DataTexture, 4 | FileLoader, 5 | FloatType, 6 | HalfFloatType, 7 | LinearEncoding, 8 | LinearFilter, 9 | Loader, 10 | NearestFilter, 11 | RGBAFormat, 12 | RGBEEncoding, 13 | RGBFormat, 14 | UnsignedByteType 15 | } from '../../../build/three.module.js'; 16 | import { RGBELoader } from '../loaders/RGBELoader.js'; 17 | 18 | var HDRCubeTextureLoader = function ( manager ) { 19 | 20 | Loader.call( this, manager ); 21 | 22 | this.hdrLoader = new RGBELoader(); 23 | this.type = UnsignedByteType; 24 | 25 | }; 26 | 27 | HDRCubeTextureLoader.prototype = Object.assign( Object.create( Loader.prototype ), { 28 | 29 | constructor: HDRCubeTextureLoader, 30 | 31 | load: function ( urls, onLoad, onProgress, onError ) { 32 | 33 | if ( ! Array.isArray( urls ) ) { 34 | 35 | console.warn( 'THREE.HDRCubeTextureLoader signature has changed. Use .setDataType() instead.' ); 36 | 37 | this.setDataType( urls ); 38 | 39 | urls = onLoad; 40 | onLoad = onProgress; 41 | onProgress = onError; 42 | onError = arguments[ 4 ]; 43 | 44 | } 45 | 46 | var texture = new CubeTexture(); 47 | 48 | texture.type = this.type; 49 | 50 | switch ( texture.type ) { 51 | 52 | case UnsignedByteType: 53 | 54 | texture.encoding = RGBEEncoding; 55 | texture.format = RGBAFormat; 56 | texture.minFilter = NearestFilter; 57 | texture.magFilter = NearestFilter; 58 | texture.generateMipmaps = false; 59 | break; 60 | 61 | case FloatType: 62 | 63 | texture.encoding = LinearEncoding; 64 | texture.format = RGBFormat; 65 | texture.minFilter = LinearFilter; 66 | texture.magFilter = LinearFilter; 67 | texture.generateMipmaps = false; 68 | break; 69 | 70 | case HalfFloatType: 71 | 72 | texture.encoding = LinearEncoding; 73 | texture.format = RGBFormat; 74 | texture.minFilter = LinearFilter; 75 | texture.magFilter = LinearFilter; 76 | texture.generateMipmaps = false; 77 | break; 78 | 79 | } 80 | 81 | var scope = this; 82 | 83 | var loaded = 0; 84 | 85 | function loadHDRData( i, onLoad, onProgress, onError ) { 86 | 87 | new FileLoader( scope.manager ) 88 | .setPath( scope.path ) 89 | .setResponseType( 'arraybuffer' ) 90 | .setWithCredentials( scope.withCredentials ) 91 | .load( urls[ i ], function ( buffer ) { 92 | 93 | loaded ++; 94 | 95 | var texData = scope.hdrLoader.parse( buffer ); 96 | 97 | if ( ! texData ) return; 98 | 99 | if ( texData.data !== undefined ) { 100 | 101 | var dataTexture = new DataTexture( texData.data, texData.width, texData.height ); 102 | 103 | dataTexture.type = texture.type; 104 | dataTexture.encoding = texture.encoding; 105 | dataTexture.format = texture.format; 106 | dataTexture.minFilter = texture.minFilter; 107 | dataTexture.magFilter = texture.magFilter; 108 | dataTexture.generateMipmaps = texture.generateMipmaps; 109 | 110 | texture.images[ i ] = dataTexture; 111 | 112 | } 113 | 114 | if ( loaded === 6 ) { 115 | 116 | texture.needsUpdate = true; 117 | if ( onLoad ) onLoad( texture ); 118 | 119 | } 120 | 121 | }, onProgress, onError ); 122 | 123 | } 124 | 125 | for ( var i = 0; i < urls.length; i ++ ) { 126 | 127 | loadHDRData( i, onLoad, onProgress, onError ); 128 | 129 | } 130 | 131 | return texture; 132 | 133 | }, 134 | 135 | setDataType: function ( value ) { 136 | 137 | this.type = value; 138 | this.hdrLoader.setDataType( value ); 139 | 140 | return this; 141 | 142 | } 143 | 144 | } ); 145 | 146 | export { HDRCubeTextureLoader }; 147 | -------------------------------------------------------------------------------- /libs/three.js/loaders/KMZLoader.js: -------------------------------------------------------------------------------- 1 | import { 2 | FileLoader, 3 | Group, 4 | Loader, 5 | LoadingManager 6 | } from '../../../build/three.module.js'; 7 | import { ColladaLoader } from '../loaders/ColladaLoader.js'; 8 | import { JSZip } from '../libs/jszip.module.min.js'; 9 | 10 | var KMZLoader = function ( manager ) { 11 | 12 | Loader.call( this, manager ); 13 | 14 | }; 15 | 16 | KMZLoader.prototype = Object.assign( Object.create( Loader.prototype ), { 17 | 18 | constructor: KMZLoader, 19 | 20 | load: function ( url, onLoad, onProgress, onError ) { 21 | 22 | var scope = this; 23 | 24 | var loader = new FileLoader( scope.manager ); 25 | loader.setPath( scope.path ); 26 | loader.setResponseType( 'arraybuffer' ); 27 | loader.setRequestHeader( scope.requestHeader ); 28 | loader.setWithCredentials( scope.withCredentials ); 29 | loader.load( url, function ( text ) { 30 | 31 | try { 32 | 33 | onLoad( scope.parse( text ) ); 34 | 35 | } catch ( e ) { 36 | 37 | if ( onError ) { 38 | 39 | onError( e ); 40 | 41 | } else { 42 | 43 | console.error( e ); 44 | 45 | } 46 | 47 | scope.manager.itemError( url ); 48 | 49 | } 50 | 51 | }, onProgress, onError ); 52 | 53 | }, 54 | 55 | parse: function ( data ) { 56 | 57 | function findFile( url ) { 58 | 59 | for ( var path in zip.files ) { 60 | 61 | if ( path.substr( - url.length ) === url ) { 62 | 63 | return zip.files[ path ]; 64 | 65 | } 66 | 67 | } 68 | 69 | } 70 | 71 | var manager = new LoadingManager(); 72 | manager.setURLModifier( function ( url ) { 73 | 74 | var image = findFile( url ); 75 | 76 | if ( image ) { 77 | 78 | console.log( 'Loading', url ); 79 | 80 | var blob = new Blob( [ image.asArrayBuffer() ], { type: 'application/octet-stream' } ); 81 | return URL.createObjectURL( blob ); 82 | 83 | } 84 | 85 | return url; 86 | 87 | } ); 88 | 89 | // 90 | 91 | var zip = new JSZip( data ); // eslint-disable-line no-undef 92 | 93 | if ( zip.files[ 'doc.kml' ] ) { 94 | 95 | var xml = new DOMParser().parseFromString( zip.files[ 'doc.kml' ].asText(), 'application/xml' ); 96 | 97 | var model = xml.querySelector( 'Placemark Model Link href' ); 98 | 99 | if ( model ) { 100 | 101 | var loader = new ColladaLoader( manager ); 102 | return loader.parse( zip.files[ model.textContent ].asText() ); 103 | 104 | } 105 | 106 | } else { 107 | 108 | console.warn( 'KMZLoader: Missing doc.kml file.' ); 109 | 110 | for ( var path in zip.files ) { 111 | 112 | var extension = path.split( '.' ).pop().toLowerCase(); 113 | 114 | if ( extension === 'dae' ) { 115 | 116 | var loader = new ColladaLoader( manager ); 117 | return loader.parse( zip.files[ path ].asText() ); 118 | 119 | } 120 | 121 | } 122 | 123 | } 124 | 125 | console.error( 'KMZLoader: Couldn\'t find .dae file.' ); 126 | return { scene: new Group() }; 127 | 128 | } 129 | 130 | } ); 131 | 132 | export { KMZLoader }; 133 | -------------------------------------------------------------------------------- /libs/three.js/loaders/LottieLoader.js: -------------------------------------------------------------------------------- 1 | import { 2 | FileLoader, 3 | Loader, 4 | CanvasTexture, 5 | NearestFilter 6 | } from '../../../build/three.module.js'; 7 | 8 | class LottieLoader extends Loader { 9 | 10 | setQuality( value ) { 11 | 12 | this._quality = value; 13 | 14 | } 15 | 16 | load( url, onLoad, onProgress, onError ) { 17 | 18 | const quality = this._quality || 1; 19 | 20 | const texture = new CanvasTexture(); 21 | texture.minFilter = NearestFilter; 22 | 23 | const loader = new FileLoader( this.manager ); 24 | loader.setPath( this.path ); 25 | loader.setWithCredentials( this.withCredentials ); 26 | 27 | loader.load( url, function ( text ) { 28 | 29 | const data = JSON.parse( text ); 30 | 31 | // bodymoving uses container.offetWidth and offsetHeight 32 | // to define width/height 33 | 34 | const container = document.createElement( 'div' ); 35 | container.style.width = data.w + 'px'; 36 | container.style.height = data.h + 'px'; 37 | document.body.appendChild( container ); 38 | 39 | // eslint-disable-next-line no-undef 40 | const animation = bodymovin.loadAnimation( { 41 | container: container, 42 | animType: 'canvas', 43 | loop: true, 44 | autoplay: true, 45 | animationData: data, 46 | rendererSettings: { dpr: quality } 47 | } ); 48 | 49 | texture.animation = animation; 50 | texture.image = animation.container; 51 | 52 | animation.addEventListener( 'enterFrame', function () { 53 | 54 | texture.needsUpdate = true; 55 | 56 | } ); 57 | 58 | container.style.display = 'none'; 59 | 60 | if ( onLoad !== undefined ) { 61 | 62 | onLoad( texture ); 63 | 64 | } 65 | 66 | }, onProgress, onError ); 67 | 68 | return texture; 69 | 70 | } 71 | 72 | } 73 | 74 | export { LottieLoader }; 75 | -------------------------------------------------------------------------------- /libs/three.js/loaders/MDDLoader.js: -------------------------------------------------------------------------------- 1 | /** 2 | * MDD is a special format that stores a position for every vertex in a model for every frame in an animation. 3 | * Similar to BVH, it can be used to transfer animation data between different 3D applications or engines. 4 | * 5 | * MDD stores its data in binary format (big endian) in the following way: 6 | * 7 | * number of frames (a single uint32) 8 | * number of vertices (a single uint32) 9 | * time values for each frame (sequence of float32) 10 | * vertex data for each frame (sequence of float32) 11 | */ 12 | 13 | import { 14 | AnimationClip, 15 | BufferAttribute, 16 | FileLoader, 17 | Loader, 18 | NumberKeyframeTrack 19 | } from '../../../build/three.module.js'; 20 | 21 | var MDDLoader = function ( manager ) { 22 | 23 | Loader.call( this, manager ); 24 | 25 | }; 26 | 27 | MDDLoader.prototype = Object.assign( Object.create( Loader.prototype ), { 28 | 29 | constructor: MDDLoader, 30 | 31 | load: function ( url, onLoad, onProgress, onError ) { 32 | 33 | var scope = this; 34 | 35 | var loader = new FileLoader( this.manager ); 36 | loader.setPath( this.path ); 37 | loader.setResponseType( 'arraybuffer' ); 38 | loader.load( url, function ( data ) { 39 | 40 | onLoad( scope.parse( data ) ); 41 | 42 | }, onProgress, onError ); 43 | 44 | }, 45 | 46 | parse: function ( data ) { 47 | 48 | var view = new DataView( data ); 49 | 50 | var totalFrames = view.getUint32( 0 ); 51 | var totalPoints = view.getUint32( 4 ); 52 | 53 | var offset = 8; 54 | 55 | // animation clip 56 | 57 | var times = new Float32Array( totalFrames ); 58 | var values = new Float32Array( totalFrames * totalFrames ).fill( 0 ); 59 | 60 | for ( var i = 0; i < totalFrames; i ++ ) { 61 | 62 | times[ i ] = view.getFloat32( offset ); offset += 4; 63 | values[ ( totalFrames * i ) + i ] = 1; 64 | 65 | } 66 | 67 | var track = new NumberKeyframeTrack( '.morphTargetInfluences', times, values ); 68 | var clip = new AnimationClip( 'default', times[ times.length - 1 ], [ track ] ); 69 | 70 | // morph targets 71 | 72 | var morphTargets = []; 73 | 74 | for ( var i = 0; i < totalFrames; i ++ ) { 75 | 76 | var morphTarget = new Float32Array( totalPoints * 3 ); 77 | 78 | for ( var j = 0; j < totalPoints; j ++ ) { 79 | 80 | var stride = ( j * 3 ); 81 | 82 | morphTarget[ stride + 0 ] = view.getFloat32( offset ); offset += 4; // x 83 | morphTarget[ stride + 1 ] = view.getFloat32( offset ); offset += 4; // y 84 | morphTarget[ stride + 2 ] = view.getFloat32( offset ); offset += 4; // z 85 | 86 | } 87 | 88 | var attribute = new BufferAttribute( morphTarget, 3 ); 89 | attribute.name = 'morph_' + i; 90 | 91 | morphTargets.push( attribute ); 92 | 93 | } 94 | 95 | return { 96 | morphTargets: morphTargets, 97 | clip: clip 98 | }; 99 | 100 | } 101 | 102 | } ); 103 | 104 | export { MDDLoader }; 105 | -------------------------------------------------------------------------------- /libs/three.js/loaders/VRMLoader.js: -------------------------------------------------------------------------------- 1 | import { 2 | Loader 3 | } from '../../../build/three.module.js'; 4 | import { GLTFLoader } from '../loaders/GLTFLoader.js'; 5 | 6 | // VRM Specification: https://dwango.github.io/vrm/vrm_spec/ 7 | // 8 | // VRM is based on glTF 2.0 and VRM extension is defined 9 | // in top-level json.extensions.VRM 10 | 11 | var VRMLoader = ( function () { 12 | 13 | function VRMLoader( manager ) { 14 | 15 | if ( GLTFLoader === undefined ) { 16 | 17 | throw new Error( 'THREE.VRMLoader: Import GLTFLoader.' ); 18 | 19 | } 20 | 21 | Loader.call( this, manager ); 22 | 23 | this.gltfLoader = new GLTFLoader( this.manager ); 24 | 25 | } 26 | 27 | VRMLoader.prototype = Object.assign( Object.create( Loader.prototype ), { 28 | 29 | constructor: VRMLoader, 30 | 31 | load: function ( url, onLoad, onProgress, onError ) { 32 | 33 | var scope = this; 34 | 35 | this.gltfLoader.load( url, function ( gltf ) { 36 | 37 | try { 38 | 39 | scope.parse( gltf, onLoad ); 40 | 41 | } catch ( e ) { 42 | 43 | if ( onError ) { 44 | 45 | onError( e ); 46 | 47 | } else { 48 | 49 | console.error( e ); 50 | 51 | } 52 | 53 | scope.manager.itemError( url ); 54 | 55 | } 56 | 57 | }, onProgress, onError ); 58 | 59 | }, 60 | 61 | setDRACOLoader: function ( dracoLoader ) { 62 | 63 | this.gltfLoader.setDRACOLoader( dracoLoader ); 64 | return this; 65 | 66 | }, 67 | 68 | parse: function ( gltf, onLoad ) { 69 | 70 | // var gltfParser = gltf.parser; 71 | // var gltfExtensions = gltf.userData.gltfExtensions || {}; 72 | // var vrmExtension = gltfExtensions.VRM || {}; 73 | 74 | // handle VRM Extension here 75 | 76 | onLoad( gltf ); 77 | 78 | } 79 | 80 | } ); 81 | 82 | return VRMLoader; 83 | 84 | } )(); 85 | 86 | export { VRMLoader }; 87 | -------------------------------------------------------------------------------- /libs/three.js/loaders/XYZLoader.js: -------------------------------------------------------------------------------- 1 | import { 2 | BufferGeometry, 3 | FileLoader, 4 | Float32BufferAttribute, 5 | Loader 6 | } from '../../../build/three.module.js'; 7 | 8 | class XYZLoader extends Loader { 9 | 10 | load( url, onLoad, onProgress, onError ) { 11 | 12 | const scope = this; 13 | 14 | const loader = new FileLoader( this.manager ); 15 | loader.setPath( this.path ); 16 | loader.setRequestHeader( this.requestHeader ); 17 | loader.setWithCredentials( this.withCredentials ); 18 | loader.load( url, function ( text ) { 19 | 20 | try { 21 | 22 | onLoad( scope.parse( text ) ); 23 | 24 | } catch ( e ) { 25 | 26 | if ( onError ) { 27 | 28 | onError( e ); 29 | 30 | } else { 31 | 32 | console.error( e ); 33 | 34 | } 35 | 36 | scope.manager.itemError( url ); 37 | 38 | } 39 | 40 | }, onProgress, onError ); 41 | 42 | } 43 | 44 | parse( text ) { 45 | 46 | const lines = text.split( '\n' ); 47 | 48 | const vertices = []; 49 | const colors = []; 50 | 51 | for ( let line of lines ) { 52 | 53 | line = line.trim(); 54 | 55 | if ( line.charAt( 0 ) === '#' ) continue; // skip comments 56 | 57 | const lineValues = line.split( /\s+/ ); 58 | 59 | if ( lineValues.length === 3 ) { 60 | 61 | // XYZ 62 | 63 | vertices.push( parseFloat( lineValues[ 0 ] ) ); 64 | vertices.push( parseFloat( lineValues[ 1 ] ) ); 65 | vertices.push( parseFloat( lineValues[ 2 ] ) ); 66 | 67 | } 68 | 69 | if ( lineValues.length === 6 ) { 70 | 71 | // XYZRGB 72 | 73 | vertices.push( parseFloat( lineValues[ 0 ] ) ); 74 | vertices.push( parseFloat( lineValues[ 1 ] ) ); 75 | vertices.push( parseFloat( lineValues[ 2 ] ) ); 76 | 77 | colors.push( parseFloat( lineValues[ 3 ] ) / 255 ); 78 | colors.push( parseFloat( lineValues[ 4 ] ) / 255 ); 79 | colors.push( parseFloat( lineValues[ 5 ] ) / 255 ); 80 | 81 | } 82 | 83 | } 84 | 85 | const geometry = new BufferGeometry(); 86 | geometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) ); 87 | 88 | if ( colors.length > 0 ) { 89 | 90 | geometry.setAttribute( 'color', new Float32BufferAttribute( colors, 3 ) ); 91 | 92 | } 93 | 94 | return geometry; 95 | 96 | } 97 | 98 | } 99 | 100 | export { XYZLoader }; 101 | -------------------------------------------------------------------------------- /libs/three.js/loaders/obj2/bridge/MtlObjBridge.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Development repository: https://github.com/kaisalmen/WWOBJLoader 3 | */ 4 | 5 | import { MTLLoader } from '../../../../jsm/loaders/MTLLoader.js'; 6 | 7 | 8 | const MtlObjBridge = { 9 | 10 | /** 11 | * 12 | * @param processResult 13 | * @param assetLoader 14 | */ 15 | link: function ( processResult, assetLoader ) { 16 | 17 | if ( typeof assetLoader.addMaterials === 'function' ) { 18 | 19 | assetLoader.addMaterials( this.addMaterialsFromMtlLoader( processResult ), true ); 20 | 21 | } 22 | 23 | }, 24 | 25 | /** 26 | * Returns the array instance of {@link MTLLoader.MaterialCreator}. 27 | * 28 | * @param Instance of {@link MTLLoader.MaterialCreator} 29 | */ 30 | addMaterialsFromMtlLoader: function ( materialCreator ) { 31 | 32 | let newMaterials = {}; 33 | 34 | if ( materialCreator instanceof MTLLoader.MaterialCreator ) { 35 | 36 | materialCreator.preload(); 37 | newMaterials = materialCreator.materials; 38 | 39 | } 40 | 41 | return newMaterials; 42 | 43 | } 44 | }; 45 | 46 | export { MtlObjBridge }; 47 | -------------------------------------------------------------------------------- /libs/three.js/loaders/obj2/worker/parallel/OBJLoader2JsmWorker.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Development repository: https://github.com/kaisalmen/WWOBJLoader 3 | */ 4 | 5 | import { OBJLoader2Parser } from '../../OBJLoader2Parser.js'; 6 | 7 | import { 8 | WorkerRunner, 9 | DefaultWorkerPayloadHandler 10 | } from './WorkerRunner.js'; 11 | 12 | new WorkerRunner( new DefaultWorkerPayloadHandler( new OBJLoader2Parser() ) ); 13 | -------------------------------------------------------------------------------- /libs/three.js/webxr/XRHandModelFactory.js: -------------------------------------------------------------------------------- 1 | import { 2 | Object3D 3 | } from '../../../build/three.module.js'; 4 | 5 | import { 6 | XRHandPrimitiveModel 7 | } from './XRHandPrimitiveModel.js'; 8 | 9 | import { 10 | XRHandOculusMeshModel 11 | } from './XRHandOculusMeshModel.js'; 12 | 13 | function XRHandModel( controller ) { 14 | 15 | Object3D.call( this ); 16 | 17 | this.controller = controller; 18 | this.motionController = null; 19 | this.envMap = null; 20 | 21 | this.mesh = null; 22 | 23 | } 24 | 25 | XRHandModel.prototype = Object.assign( Object.create( Object3D.prototype ), { 26 | 27 | constructor: XRHandModel, 28 | 29 | updateMatrixWorld: function ( force ) { 30 | 31 | Object3D.prototype.updateMatrixWorld.call( this, force ); 32 | 33 | if ( this.motionController ) { 34 | 35 | this.motionController.updateMesh(); 36 | 37 | } 38 | 39 | }, 40 | } ); 41 | 42 | 43 | const XRHandModelFactory = ( function () { 44 | 45 | function XRHandModelFactory() { 46 | 47 | this.path = ''; 48 | 49 | } 50 | 51 | XRHandModelFactory.prototype = { 52 | 53 | constructor: XRHandModelFactory, 54 | 55 | setPath: function ( path ) { 56 | 57 | this.path = path; 58 | return this; 59 | 60 | }, 61 | 62 | createHandModel: function ( controller, profile, options ) { 63 | 64 | const handModel = new XRHandModel( controller ); 65 | 66 | controller.addEventListener( 'connected', ( event ) => { 67 | 68 | const xrInputSource = event.data; 69 | 70 | if ( xrInputSource.hand && ! handModel.motionController ) { 71 | 72 | handModel.visible = true; 73 | handModel.xrInputSource = xrInputSource; 74 | 75 | // @todo Detect profile if not provided 76 | if ( profile === undefined || profile === 'spheres' ) { 77 | 78 | handModel.motionController = new XRHandPrimitiveModel( handModel, controller, this.path, xrInputSource.handedness, { primitive: 'sphere' } ); 79 | 80 | } else if ( profile === 'boxes' ) { 81 | 82 | handModel.motionController = new XRHandPrimitiveModel( handModel, controller, this.path, xrInputSource.handedness, { primitive: 'box' } ); 83 | 84 | } else if ( profile === 'oculus' ) { 85 | 86 | handModel.motionController = new XRHandOculusMeshModel( handModel, controller, this.path, xrInputSource.handedness, options ); 87 | 88 | } 89 | 90 | } 91 | 92 | } ); 93 | 94 | controller.addEventListener( 'disconnected', () => { 95 | 96 | // handModel.motionController = null; 97 | // handModel.remove( scene ); 98 | // scene = null; 99 | 100 | } ); 101 | 102 | return handModel; 103 | 104 | } 105 | 106 | }; 107 | 108 | return XRHandModelFactory; 109 | 110 | } )(); 111 | 112 | 113 | export { XRHandModelFactory }; 114 | -------------------------------------------------------------------------------- /libs/three.js/webxr/XRHandOculusMeshModel.js: -------------------------------------------------------------------------------- 1 | import { FBXLoader } from '../loaders/FBXLoader.js'; 2 | 3 | class XRHandOculusMeshModel { 4 | 5 | constructor( handModel, controller, path, handedness, options ) { 6 | 7 | this.controller = controller; 8 | this.handModel = handModel; 9 | 10 | this.bones = []; 11 | const loader = new FBXLoader(); 12 | const low = options && options.model === 'lowpoly' ? '_low' : ''; 13 | 14 | loader.setPath( path ); 15 | loader.load( `OculusHand_${handedness === 'right' ? 'R' : 'L'}${low}.fbx`, object => { 16 | 17 | this.handModel.add( object ); 18 | // Hack because of the scale of the skinnedmesh 19 | object.scale.setScalar( 0.01 ); 20 | 21 | const mesh = object.getObjectByProperty( 'type', 'SkinnedMesh' ); 22 | mesh.frustumCulled = false; 23 | mesh.castShadow = true; 24 | mesh.receiveShadow = true; 25 | 26 | const bonesMapping = [ 27 | 'b_%_wrist', // XRHand.WRIST, 28 | 29 | 'b_%_thumb1', // XRHand.THUMB_METACARPAL, 30 | 'b_%_thumb2', // XRHand.THUMB_PHALANX_PROXIMAL, 31 | 'b_%_thumb3', // XRHand.THUMB_PHALANX_DISTAL, 32 | 'b_%_thumb_null', // XRHand.THUMB_PHALANX_TIP, 33 | 34 | null, //'b_%_index1', // XRHand.INDEX_METACARPAL, 35 | 'b_%_index1', // XRHand.INDEX_PHALANX_PROXIMAL, 36 | 'b_%_index2', // XRHand.INDEX_PHALANX_INTERMEDIATE, 37 | 'b_%_index3', // XRHand.INDEX_PHALANX_DISTAL, 38 | 'b_%_index_null', // XRHand.INDEX_PHALANX_TIP, 39 | 40 | null, //'b_%_middle1', // XRHand.MIDDLE_METACARPAL, 41 | 'b_%_middle1', // XRHand.MIDDLE_PHALANX_PROXIMAL, 42 | 'b_%_middle2', // XRHand.MIDDLE_PHALANX_INTERMEDIATE, 43 | 'b_%_middle3', // XRHand.MIDDLE_PHALANX_DISTAL, 44 | 'b_%_middlenull', // XRHand.MIDDLE_PHALANX_TIP, 45 | 46 | null, //'b_%_ring1', // XRHand.RING_METACARPAL, 47 | 'b_%_ring1', // XRHand.RING_PHALANX_PROXIMAL, 48 | 'b_%_ring2', // XRHand.RING_PHALANX_INTERMEDIATE, 49 | 'b_%_ring3', // XRHand.RING_PHALANX_DISTAL, 50 | 'b_%_ring_inull', // XRHand.RING_PHALANX_TIP, 51 | 52 | 'b_%_pinky0', // XRHand.LITTLE_METACARPAL, 53 | 'b_%_pinky1', // XRHand.LITTLE_PHALANX_PROXIMAL, 54 | 'b_%_pinky2', // XRHand.LITTLE_PHALANX_INTERMEDIATE, 55 | 'b_%_pinky3', // XRHand.LITTLE_PHALANX_DISTAL, 56 | 'b_%_pinkynull', // XRHand.LITTLE_PHALANX_TIP 57 | ]; 58 | bonesMapping.forEach( boneName => { 59 | 60 | if ( boneName ) { 61 | 62 | const bone = object.getObjectByName( boneName.replace( /%/g, handedness === 'right' ? 'r' : 'l' ) ); 63 | this.bones.push( bone ); 64 | 65 | } else { 66 | 67 | this.bones.push( null ); 68 | 69 | } 70 | 71 | } ); 72 | 73 | } ); 74 | 75 | } 76 | 77 | updateMesh() { 78 | 79 | // XR Joints 80 | const XRJoints = this.controller.joints; 81 | for ( let i = 0; i < this.bones.length; i ++ ) { 82 | 83 | const bone = this.bones[ i ]; 84 | const XRJoint = XRJoints[ i ]; 85 | 86 | if ( XRJoint ) { 87 | 88 | if ( XRJoint.visible ) { 89 | 90 | const position = XRJoint.position; 91 | 92 | if ( bone ) { 93 | 94 | bone.position.copy( position.clone().multiplyScalar( 100 ) ); 95 | bone.quaternion.copy( XRJoint.quaternion ); 96 | // bone.scale.setScalar( XRJoint.jointRadius || defaultRadius ); 97 | 98 | } 99 | 100 | } 101 | 102 | } 103 | 104 | } 105 | 106 | } 107 | 108 | } 109 | 110 | export { XRHandOculusMeshModel }; 111 | -------------------------------------------------------------------------------- /libs/three.js/webxr/XRHandPrimitiveModel.js: -------------------------------------------------------------------------------- 1 | import { 2 | SphereBufferGeometry, 3 | BoxBufferGeometry, 4 | MeshStandardMaterial, 5 | Mesh, 6 | Group 7 | } from '../../../build/three.module.js'; 8 | 9 | class XRHandPrimitiveModel { 10 | 11 | constructor( handModel, controller, path, handedness, options ) { 12 | 13 | this.controller = controller; 14 | this.handModel = handModel; 15 | 16 | this.envMap = null; 17 | 18 | this.handMesh = new Group(); 19 | this.handModel.add( this.handMesh ); 20 | 21 | if ( window.XRHand ) { 22 | 23 | let geometry; 24 | 25 | if ( ! options || ! options.primitive || options.primitive === 'sphere' ) { 26 | 27 | geometry = new SphereBufferGeometry( 1, 10, 10 ); 28 | 29 | } else if ( options.primitive === 'box' ) { 30 | 31 | geometry = new BoxBufferGeometry( 1, 1, 1 ); 32 | 33 | } 34 | 35 | const jointMaterial = new MeshStandardMaterial( { color: 0xffffff, roughness: 1, metalness: 0 } ); 36 | const tipMaterial = new MeshStandardMaterial( { color: 0x999999, roughness: 1, metalness: 0 } ); 37 | 38 | const tipIndexes = [ 39 | window.XRHand.THUMB_PHALANX_TIP, 40 | window.XRHand.INDEX_PHALANX_TIP, 41 | window.XRHand.MIDDLE_PHALANX_TIP, 42 | window.XRHand.RING_PHALANX_TIP, 43 | window.XRHand.LITTLE_PHALANX_TIP 44 | ]; 45 | for ( let i = 0; i <= window.XRHand.LITTLE_PHALANX_TIP; i ++ ) { 46 | 47 | var cube = new Mesh( geometry, tipIndexes.indexOf( i ) !== - 1 ? tipMaterial : jointMaterial ); 48 | cube.castShadow = true; 49 | cube.receiveShadow = true; 50 | this.handMesh.add( cube ); 51 | 52 | } 53 | 54 | } 55 | 56 | } 57 | 58 | updateMesh() { 59 | 60 | const defaultRadius = 0.008; 61 | const objects = this.handMesh.children; 62 | 63 | // XR Joints 64 | const XRJoints = this.controller.joints; 65 | 66 | for ( let i = 0; i < objects.length; i ++ ) { 67 | 68 | const jointMesh = objects[ i ]; 69 | const XRJoint = XRJoints[ i ]; 70 | 71 | if ( XRJoint.visible ) { 72 | 73 | jointMesh.position.copy( XRJoint.position ); 74 | jointMesh.quaternion.copy( XRJoint.quaternion ); 75 | jointMesh.scale.setScalar( XRJoint.jointRadius || defaultRadius ); 76 | 77 | } 78 | 79 | jointMesh.visible = XRJoint.visible; 80 | 81 | } 82 | 83 | } 84 | 85 | } 86 | 87 | export { XRHandPrimitiveModel }; 88 | -------------------------------------------------------------------------------- /libs/tween/LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 gskinner.com, inc. 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 | -------------------------------------------------------------------------------- /libs/tween/README.txt: -------------------------------------------------------------------------------- 1 | This directory contains a compressed version of the TweenJS library. 2 | 3 | It also includes a minified version of EaselJS, and is included for the Ticker class, which TweenJS uses by default. If you don't wish to use EaselJS, you can implement your own ticking mechanism, or download the Ticker class on its own from http://github.com/createjs/easeljs/ 4 | 5 | It is recommended that you use this version in almost all cases, unless you need to modify the original code. It is much smaller, results in less http requests, and you don't have to worry about the order in which you include the js files. 6 | 7 | tween.js is a single file that contains compacted versions of all of the TweenJS classes (comments and white space stripped). 8 | 9 | You can also gzip the file to further reduce its size (by about 75%). Many servers do this automatically. 10 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "potree_desktop", 3 | "version": "1.7.0", 4 | "description": "A WebGL Point Cloud Viewer", 5 | "main": "main.js", 6 | "scripts": { 7 | "start": "electron ." 8 | }, 9 | "repository": "https://github.com/potree/potree", 10 | "keywords": [ 11 | "Potree", 12 | "point cloud viewer", 13 | "lidar viewer" 14 | ], 15 | "author": "Markus Schuetz", 16 | "license": "no license available at this time", 17 | "dependencies": { 18 | "electron": "21.3.1" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/desktop.css: -------------------------------------------------------------------------------- 1 | .droproot{ 2 | display: none; 3 | pointer-events: none; 4 | opacity: 0.7; 5 | position: absolute; 6 | width:100%; 7 | height: 100%; 8 | z-index: 1000000; 9 | } 10 | 11 | .dropzone{ 12 | border: 1em solid black; 13 | background: white; 14 | } 15 | 16 | .dropzone:before{ 17 | display: block; 18 | position: absolute; 19 | border: 0.4em solid red; 20 | border-style: dashed; 21 | background: white; 22 | opacity: 0.8; 23 | content: " "; 24 | top: 1em; 25 | left: 1em; 26 | right: 1em; 27 | bottom: 1em; 28 | } 29 | 30 | .middle { 31 | position: absolute; 32 | left: 50%; 33 | top: 50%; 34 | -webkit-transform: translate(-50%, -50%); 35 | transform: translate(-50%, -50%); 36 | /* pointer-events: none; */ 37 | } 38 | 39 | .center{ 40 | left: 50%; 41 | -webkit-transform: translate(-50%, -0%); 42 | transform: translate(-50%, -0%); 43 | } 44 | 45 | .dropzone_title{ 46 | font-size: 3vw; 47 | font-family: Arial; 48 | font-weight: bold; 49 | white-space: nowrap; 50 | text-align: center; 51 | } 52 | 53 | .dropzone_text{ 54 | font-size: 1.4vw; 55 | font-family: Arial; 56 | font-weight: bold; 57 | white-space: nowrap; 58 | } 59 | 60 | #drop * {pointer-events: none;} 61 | 62 | #converter_panel{ 63 | position: absolute; margin: auto; z-index: 2000000; 64 | background: white; 65 | border: 0.2em solid black; 66 | border-radius: 1em; 67 | padding: 1em; 68 | display: none; 69 | } 70 | 71 | #converter_panel .h2{ 72 | text-align: center !important; 73 | font-weight: bold; 74 | font-family: arial; 75 | font-size: 1.5em; 76 | } 77 | 78 | .converter_panel_list{ 79 | max-height: 100px; 80 | overflow: auto; 81 | border: 1px solid black; 82 | } 83 | 84 | 85 | #converter_panel a:link{ 86 | color: blue; 87 | } 88 | 89 | #converter_panel a:visited{ 90 | color: blueviolet; 91 | } 92 | 93 | #converter_panel a:hover a:focus{ 94 | color: blue; 95 | } 96 | 97 | #converter_panel a:active{ 98 | color: blue; 99 | } 100 | 101 | 102 | 103 | 104 | .selection_buttons{ 105 | display: flex; 106 | } 107 | 108 | .selection_buttons label { 109 | flex: 1; 110 | display: block; 111 | position: relative; 112 | margin: 0; 113 | padding: 1em; 114 | cursor: pointer; 115 | background-color: #ccc; 116 | border: 1px solid black; 117 | opacity: 0.3; 118 | 119 | } 120 | 121 | .selection_buttons input[type="radio"] { 122 | display: none; 123 | } 124 | 125 | .selection_buttons input[type="radio"]:hover+label { 126 | opacity: 0.5; 127 | z-index: 1000; 128 | box-shadow: 0 0 0 1pt black; 129 | } 130 | 131 | .selection_buttons input[type="radio"]:checked+label { 132 | opacity: 1.0; 133 | box-shadow: 0 0 0 1pt black; 134 | } 135 | 136 | .selection_buttons li{ 137 | font-family: Arial; 138 | font-size: 1em; 139 | } 140 | 141 | .selection_buttons .title { 142 | font-family: Arial; 143 | font-weight: bold; 144 | font-size: 1.5em; 145 | width:100%; 146 | text-align: center; 147 | left: 50%; 148 | transform: translateX(-50%); 149 | } 150 | 151 | .selection_buttons .left{ 152 | border-radius: 1em 0em 0em 1em; 153 | } 154 | 155 | .selection_buttons .right{ 156 | border-radius: 0em 1em 1em 0em; 157 | } 158 | 159 | .converter_panel_widget{ 160 | margin: 10px 0px; 161 | } --------------------------------------------------------------------------------