소스 검색

初始化项目

bill 1 년 전
부모
커밋
cb79b48e4e
100개의 변경된 파일320531개의 추가작업 그리고 0개의 파일을 삭제
  1. 24 0
      .gitignore
  2. 3 0
      config.js
  3. 13 0
      index.html
  4. 32 0
      package.json
  5. 1417 0
      pnpm-lock.yaml
  6. BIN
      public/env-img/pic.jpg
  7. BIN
      public/env-img/pic_bw@2x.png
  8. BIN
      public/env-img/pic_cd@2x.png
  9. BIN
      public/env-img/pic_dl@2x.png
  10. BIN
      public/env-img/pic_ltby@2x.png
  11. BIN
      public/env-img/pic_wymb@2x.png
  12. BIN
      public/env-img/pic_yk@2x.png
  13. BIN
      public/env-img/乌云密布.jpg
  14. BIN
      public/env-img/傍晚.jpg
  15. BIN
      public/env-img/夜空.jpg
  16. BIN
      public/env-img/草地.jpg
  17. BIN
      public/env-img/蓝天白云.jpg
  18. BIN
      public/env-img/道路.jpg
  19. BIN
      public/favicon.ico
  20. BIN
      public/images/huimengmeng.jpg
  21. BIN
      public/images/lantianbaiyun.jpg
  22. BIN
      public/images/pic.jpg
  23. BIN
      public/images/pic_hmm@2x.png
  24. BIN
      public/images/pic_ltby@2x.png
  25. BIN
      public/images/pic_xk@2x.png
  26. BIN
      public/images/pic_yj@2x.png
  27. BIN
      public/images/preller_drive_2k.jpg
  28. 1 0
      public/images/vue.svg
  29. BIN
      public/images/xingkong.jpg
  30. 10220 0
      public/lib/jquery/jquery-3.1.1.js
  31. 4 0
      public/lib/jquery/jquery-3.1.1.min.js
  32. 124 0
      public/lib/other/BinaryHeap.js
  33. 91 0
      public/lib/other/dat.gui.min.js
  34. 200 0
      public/lib/other/stats.js
  35. 5 0
      public/lib/other/stats.min.js
  36. 21 0
      public/lib/plasio/LICENSE
  37. 398 0
      public/lib/plasio/js/laslaz.js
  38. 5140 0
      public/lib/plasio/vendor/bluebird.js
  39. 165 0
      public/lib/plasio/workers/laz-loader-worker.js
  40. 49590 0
      public/lib/plasio/workers/laz-perf.js
  41. 33 0
      public/lib/potree/LICENSE
  42. 22 0
      public/lib/potree/lazylibs/geopackage/LICENSE
  43. 259 0
      public/lib/potree/lazylibs/geopackage/README.md
  44. 80817 0
      public/lib/potree/lazylibs/geopackage/geopackage.js
  45. 97 0
      public/lib/potree/lazylibs/geopackage/geopackage.min.js
  46. 6 0
      public/lib/potree/lazylibs/sql.js/AUTHORS
  47. 44 0
      public/lib/potree/lazylibs/sql.js/LICENSE
  48. 283 0
      public/lib/potree/lazylibs/sql.js/README.md
  49. 209 0
      public/lib/potree/lazylibs/sql.js/sql-wasm.js
  50. BIN
      public/lib/potree/lazylibs/sql.js/sql-wasm.wasm
  51. 878 0
      public/lib/potree/potree.css
  52. 166276 0
      public/lib/potree/potree.js
  53. 1 0
      public/lib/potree/potree.js.map
  54. 113 0
      public/lib/potree/profile.html
  55. 20 0
      public/lib/potree/resources/LICENSE
  56. 74 0
      public/lib/potree/resources/icons/add.svg
  57. BIN
      public/lib/potree/resources/icons/angle.png
  58. 157 0
      public/lib/potree/resources/icons/annotation.svg
  59. 99 0
      public/lib/potree/resources/icons/area.svg
  60. 119 0
      public/lib/potree/resources/icons/area_backup.svg
  61. 114 0
      public/lib/potree/resources/icons/arrow_ccw.svg
  62. 114 0
      public/lib/potree/resources/icons/arrow_cw.svg
  63. 114 0
      public/lib/potree/resources/icons/arrow_down.svg
  64. 114 0
      public/lib/potree/resources/icons/arrow_left.svg
  65. 114 0
      public/lib/potree/resources/icons/arrow_right.svg
  66. 113 0
      public/lib/potree/resources/icons/arrow_up.svg
  67. 74 0
      public/lib/potree/resources/icons/assign.svg
  68. 91 0
      public/lib/potree/resources/icons/azimuth.svg
  69. 103 0
      public/lib/potree/resources/icons/back.svg
  70. 121 0
      public/lib/potree/resources/icons/bottom.svg
  71. 171 0
      public/lib/potree/resources/icons/camera_animation.svg
  72. 81 0
      public/lib/potree/resources/icons/circle.svg
  73. 74 0
      public/lib/potree/resources/icons/circled_dot.svg
  74. 62 0
      public/lib/potree/resources/icons/clip-plane-x.svg
  75. 61 0
      public/lib/potree/resources/icons/clip-plane-y.svg
  76. 62 0
      public/lib/potree/resources/icons/clip-plane-z.svg
  77. 99 0
      public/lib/potree/resources/icons/clip-polygon.svg
  78. 93 0
      public/lib/potree/resources/icons/clip-screen.svg
  79. 130 0
      public/lib/potree/resources/icons/clip_volume.svg
  80. 70 0
      public/lib/potree/resources/icons/close.svg
  81. 66 0
      public/lib/potree/resources/icons/cloud.svg
  82. 106 0
      public/lib/potree/resources/icons/copy.svg
  83. 85 0
      public/lib/potree/resources/icons/distance.svg
  84. BIN
      public/lib/potree/resources/icons/earth_controls.png
  85. 174 0
      public/lib/potree/resources/icons/earth_controls.svg
  86. BIN
      public/lib/potree/resources/icons/earth_controls_1.png
  87. 77 0
      public/lib/potree/resources/icons/eye.svg
  88. BIN
      public/lib/potree/resources/icons/eye_2.png
  89. 72 0
      public/lib/potree/resources/icons/eye_2.svg
  90. 93 0
      public/lib/potree/resources/icons/eye_crossed.svg
  91. 113 0
      public/lib/potree/resources/icons/file_csv_2d.svg
  92. 161 0
      public/lib/potree/resources/icons/file_dxf.svg
  93. 170 0
      public/lib/potree/resources/icons/file_geojson.svg
  94. 105 0
      public/lib/potree/resources/icons/file_las_3d.svg
  95. 105 0
      public/lib/potree/resources/icons/file_potree.svg
  96. BIN
      public/lib/potree/resources/icons/flip_y_z.png
  97. 101 0
      public/lib/potree/resources/icons/flip_y_z.svg
  98. 173 0
      public/lib/potree/resources/icons/focus.svg
  99. BIN
      public/lib/potree/resources/icons/fps_controls.png
  100. 0 0
      public/lib/potree/resources/icons/fps_controls.svg

+ 24 - 0
.gitignore

@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?

+ 3 - 0
config.js

@@ -0,0 +1,3 @@
+export default {
+  dev: true
+}

+ 13 - 0
index.html

@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <link rel="icon" type="image/svg+xml" href="/favicon.ico" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>案件信息</title>
+  </head>
+  <body>
+    <div id="app"></div>
+    <script type="module" src="/src/main.ts"></script>
+  </body>
+</html>

+ 32 - 0
package.json

@@ -0,0 +1,32 @@
+{
+  "name": "fuse-code",
+  "private": true,
+  "version": "0.0.0",
+  "type": "module",
+  "scripts": {
+    "dev": "vite",
+    "build": " vite build",
+    "preview": "vite preview"
+  },
+  "dependencies": {
+    "simaqcore": "1.2.0",
+    "@vueup/vue-quill": "^1.2.0",
+    "ant-design-vue": "^3.3.0-beta.3",
+    "axios": "^0.27.2",
+    "less": "^4.1.3",
+    "mitt": "^3.0.0",
+    "vite-plugin-mkcert": "^1.10.1",
+    "vue": "^3.2.37",
+    "vue-cropper": "1.0.2",
+    "vue-router": "^4.1.3",
+    "vuedraggable": "^4.1.0"
+  },
+  "devDependencies": {
+    "@types/node": "^18.6.5",
+    "@vitejs/plugin-vue": "^3.0.0",
+    "sass": "^1.54.3",
+    "typescript": "^4.6.4",
+    "vite": "^3.0.0",
+    "vue-tsc": "^0.38.4"
+  }
+}

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1417 - 0
pnpm-lock.yaml


BIN
public/env-img/pic.jpg


BIN
public/env-img/pic_bw@2x.png


BIN
public/env-img/pic_cd@2x.png


BIN
public/env-img/pic_dl@2x.png


BIN
public/env-img/pic_ltby@2x.png


BIN
public/env-img/pic_wymb@2x.png


BIN
public/env-img/pic_yk@2x.png


BIN
public/env-img/乌云密布.jpg


BIN
public/env-img/傍晚.jpg


BIN
public/env-img/夜空.jpg


BIN
public/env-img/草地.jpg


BIN
public/env-img/蓝天白云.jpg


BIN
public/env-img/道路.jpg


BIN
public/favicon.ico


BIN
public/images/huimengmeng.jpg


BIN
public/images/lantianbaiyun.jpg


BIN
public/images/pic.jpg


BIN
public/images/pic_hmm@2x.png


BIN
public/images/pic_ltby@2x.png


BIN
public/images/pic_xk@2x.png


BIN
public/images/pic_yj@2x.png


BIN
public/images/preller_drive_2k.jpg


+ 1 - 0
public/images/vue.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="37.07" height="36" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 198"><path fill="#41B883" d="M204.8 0H256L128 220.8L0 0h97.92L128 51.2L157.44 0h47.36Z"></path><path fill="#41B883" d="m0 0l128 220.8L256 0h-51.2L128 132.48L50.56 0H0Z"></path><path fill="#35495E" d="M50.56 0L128 133.12L204.8 0h-47.36L128 51.2L97.92 0H50.56Z"></path></svg>

BIN
public/images/xingkong.jpg


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 10220 - 0
public/lib/jquery/jquery-3.1.1.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 4 - 0
public/lib/jquery/jquery-3.1.1.min.js


+ 124 - 0
public/lib/other/BinaryHeap.js

@@ -0,0 +1,124 @@
+/*
+** Binary Heap implementation in Javascript
+** From: http://eloquentjavascript.net/1st_edition/appendix2.html
+**
+** Copyright (c) 2007 Marijn Haverbeke, last modified on November 28 2013.
+**
+** Licensed under a Creative Commons attribution-noncommercial license. 
+** All code in this book may also be considered licensed under an MIT license.
+*/
+
+
+
+function BinaryHeap(scoreFunction){
+  this.content = [];
+  this.scoreFunction = scoreFunction;
+}
+
+BinaryHeap.prototype = {
+  push: function(element) {
+    // Add the new element to the end of the array.
+    this.content.push(element);
+    // Allow it to bubble up.
+    this.bubbleUp(this.content.length - 1);
+  },
+
+  pop: function() {
+    // Store the first element so we can return it later.
+    var result = this.content[0];
+    // Get the element at the end of the array.
+    var end = this.content.pop();
+    // If there are any elements left, put the end element at the
+    // start, and let it sink down.
+    if (this.content.length > 0) {
+      this.content[0] = end;
+      this.sinkDown(0);
+    }
+    return result;
+  },
+
+  remove: function(node) {
+    var length = this.content.length;
+    // To remove a value, we must search through the array to find
+    // it.
+    for (var i = 0; i < length; i++) {
+      if (this.content[i] != node) continue;
+      // When it is found, the process seen in 'pop' is repeated
+      // to fill up the hole.
+      var end = this.content.pop();
+      // If the element we popped was the one we needed to remove,
+      // we're done.
+      if (i == length - 1) break;
+      // Otherwise, we replace the removed element with the popped
+      // one, and allow it to float up or sink down as appropriate.
+      this.content[i] = end;
+      this.bubbleUp(i);
+      this.sinkDown(i);
+      break;
+    }
+  },
+
+  size: function() {
+    return this.content.length;
+  },
+
+  bubbleUp: function(n) {
+    // Fetch the element that has to be moved.
+    var element = this.content[n], score = this.scoreFunction(element);
+    // When at 0, an element can not go up any further.
+    while (n > 0) {
+      // Compute the parent element's index, and fetch it.
+      var parentN = Math.floor((n + 1) / 2) - 1,
+      parent = this.content[parentN];
+      // If the parent has a lesser score, things are in order and we
+      // are done.
+      if (score >= this.scoreFunction(parent))
+        break;
+
+      // Otherwise, swap the parent with the current element and
+      // continue.
+      this.content[parentN] = element;
+      this.content[n] = parent;
+      n = parentN;
+    }
+  },
+
+  sinkDown: function(n) {
+    // Look up the target element and its score.
+    var length = this.content.length,
+    element = this.content[n],
+    elemScore = this.scoreFunction(element);
+
+    while(true) {
+      // Compute the indices of the child elements.
+      var child2N = (n + 1) * 2, child1N = child2N - 1;
+      // This is used to store the new position of the element,
+      // if any.
+      var swap = null;
+      // If the first child exists (is inside the array)...
+      if (child1N < length) {
+        // Look it up and compute its score.
+        var child1 = this.content[child1N],
+        child1Score = this.scoreFunction(child1);
+        // If the score is less than our element's, we need to swap.
+        if (child1Score < elemScore)
+          swap = child1N;
+      }
+      // Do the same checks for the other child.
+      if (child2N < length) {
+        var child2 = this.content[child2N],
+        child2Score = this.scoreFunction(child2);
+        if (child2Score < (swap == null ? elemScore : child1Score))
+          swap = child2N;
+      }
+
+      // No need to swap further, we are done.
+      if (swap == null) break;
+
+      // Otherwise, swap and continue.
+      this.content[n] = this.content[swap];
+      this.content[swap] = element;
+      n = swap;
+    }
+  }
+};

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 91 - 0
public/lib/other/dat.gui.min.js


+ 200 - 0
public/lib/other/stats.js

@@ -0,0 +1,200 @@
+// stats.js -
+// @author mrdoob http://github.com/mrdoob/stats.js
+
+// The MIT License
+// 
+// Copyright (c) 2009-2016 stats.js author mrdoob / http://mrdoob.com/
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+ */
+
+var Stats = function () {
+
+	this.fps = 0;
+	var mode = 0;
+
+	var container = document.createElement( 'div' );
+	container.style.cssText = 'position:fixed;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000';
+	container.addEventListener( 'click', function ( event ) {
+
+		event.preventDefault();
+		showPanel( ++ mode % container.children.length );
+
+	}, false );
+
+	//
+
+	function addPanel( panel ) {
+
+		container.appendChild( panel.dom );
+		return panel;
+
+	}
+
+	function showPanel( id ) {
+
+		for ( var i = 0; i < container.children.length; i ++ ) {
+
+			container.children[ i ].style.display = i === id ? 'block' : 'none';
+
+		}
+
+		mode = id;
+
+	}
+
+	//
+
+	var beginTime = ( performance || Date ).now(), prevTime = beginTime, frames = 0;
+
+	var fpsPanel = addPanel( new Stats.Panel( 'FPS', '#0ff', '#002' ) );
+	var msPanel = addPanel( new Stats.Panel( 'MS', '#0f0', '#020' ) );
+
+	if ( self.performance && self.performance.memory ) {
+
+		var memPanel = addPanel( new Stats.Panel( 'MB', '#f08', '#201' ) );
+
+	}
+
+	showPanel( 0 );
+
+	return {
+
+		REVISION: 16,
+
+		dom: container,
+
+		addPanel: addPanel,
+		showPanel: showPanel,
+
+		begin: function () {
+
+			beginTime = ( performance || Date ).now();
+
+		},
+
+		end: function () {
+
+			frames ++;
+
+			var time = ( performance || Date ).now();
+
+			msPanel.update( time - beginTime, 200 );
+
+			if ( time > prevTime + 3000 ) {
+
+				this.fps = ( frames * 1000 ) / ( time - prevTime );
+				fpsPanel.update( this.fps, 100 );
+				
+
+				prevTime = time;
+				frames = 0;
+
+				if ( memPanel ) {
+
+					var memory = performance.memory;
+					memPanel.update( memory.usedJSHeapSize / 1048576, memory.jsHeapSizeLimit / 1048576 );
+
+				}
+
+			}
+
+			return time;
+
+		},
+
+		update: function () {
+
+			beginTime = this.end();
+
+		},
+
+		// Backwards Compatibility
+
+		domElement: container,
+		setMode: showPanel
+
+	};
+
+};
+
+Stats.Panel = function ( name, fg, bg ) {
+
+	var min = Infinity, max = 0, round = Math.round;
+	var PR = round( window.devicePixelRatio || 1 );
+
+	var WIDTH = 80 * PR, HEIGHT = 48 * PR,
+			TEXT_X = 3 * PR, TEXT_Y = 2 * PR,
+			GRAPH_X = 3 * PR, GRAPH_Y = 15 * PR,
+			GRAPH_WIDTH = 74 * PR, GRAPH_HEIGHT = 30 * PR;
+
+	var canvas = document.createElement( 'canvas' );
+	canvas.width = WIDTH;
+	canvas.height = HEIGHT;
+	canvas.style.cssText = 'width:80px;height:48px';
+
+	var context = canvas.getContext( '2d' );
+	context.font = 'bold ' + ( 9 * PR ) + 'px Helvetica,Arial,sans-serif';
+	context.textBaseline = 'top';
+
+	context.fillStyle = bg;
+	context.fillRect( 0, 0, WIDTH, HEIGHT );
+
+	context.fillStyle = fg;
+	context.fillText( name, TEXT_X, TEXT_Y );
+	context.fillRect( GRAPH_X, GRAPH_Y, GRAPH_WIDTH, GRAPH_HEIGHT );
+
+	context.fillStyle = bg;
+	context.globalAlpha = 0.9;
+	context.fillRect( GRAPH_X, GRAPH_Y, GRAPH_WIDTH, GRAPH_HEIGHT );
+
+	return {
+
+		dom: canvas,
+
+		update: function ( value, maxValue ) {
+
+			min = Math.min( min, value );
+			max = Math.max( max, value );
+
+			context.fillStyle = bg;
+			context.globalAlpha = 1;
+			context.fillRect( 0, 0, WIDTH, GRAPH_Y );
+			context.fillStyle = fg;
+			context.fillText( round( value ) + ' ' + name + ' (' + round( min ) + '-' + round( max ) + ')', TEXT_X, TEXT_Y );
+
+			context.drawImage( canvas, GRAPH_X + PR, GRAPH_Y, GRAPH_WIDTH - PR, GRAPH_HEIGHT, GRAPH_X, GRAPH_Y, GRAPH_WIDTH - PR, GRAPH_HEIGHT );
+
+			context.fillRect( GRAPH_X + GRAPH_WIDTH - PR, GRAPH_Y, PR, GRAPH_HEIGHT );
+
+			context.fillStyle = bg;
+			context.globalAlpha = 0.9;
+			context.fillRect( GRAPH_X + GRAPH_WIDTH - PR, GRAPH_Y, PR, round( ( 1 - ( value / maxValue ) ) * GRAPH_HEIGHT ) );
+
+		}
+
+	};
+
+};
+
+if ( typeof module === 'object' ) {
+
+	module.exports = Stats;
+
+}

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 5 - 0
public/lib/other/stats.min.js


+ 21 - 0
public/lib/plasio/LICENSE

@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Uday Verma, uday.karan@gmail.com
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.

+ 398 - 0
public/lib/plasio/js/laslaz.js

@@ -0,0 +1,398 @@
+// laslaz.js
+// LAS/LAZ loading
+//
+
+//var common = require("./common"),
+//	Promise = require("bluebird");
+
+(function(scope) {
+	"use strict";
+
+	var pointFormatReaders = {
+		0: function(dv) {
+			return {
+				"position": [ dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)],
+				"intensity": dv.getUint16(12, true),
+				"classification": dv.getUint8(16, true)
+			};
+		},
+		1: function(dv) {
+			return {
+				"position": [ dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)],
+				"intensity": dv.getUint16(12, true),
+				"classification": dv.getUint8(16, true)
+			};
+		},
+		2: function(dv) {
+			return {
+				"position": [ dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)],
+				"intensity": dv.getUint16(12, true),
+				"classification": dv.getUint8(16, true),
+				"color": [dv.getUint16(20, true), dv.getUint16(22, true), dv.getUint16(24, true)]
+			};
+		},
+		3: function(dv) {
+			return {
+				"position": [ dv.getInt32(0, true), dv.getInt32(4, true), dv.getInt32(8, true)],
+				"intensity": dv.getUint16(12, true),
+				"classification": dv.getUint8(16, true),
+				"color": [dv.getUint16(28, true), dv.getUint16(30, true), dv.getUint16(32, true)]
+			};
+		}
+	};
+
+	function readAs(buf, Type, offset, count) {
+		count = (count === undefined || count === 0 ? 1 : count);
+		var sub = buf.slice(offset, offset + Type.BYTES_PER_ELEMENT * count);
+
+		var r = new Type(sub);
+		if (count === undefined || count === 1)
+			return r[0];
+
+		var ret = [];
+		for (var i = 0 ; i < count ; i ++) {
+			ret.push(r[i]);
+		}
+
+		return ret;
+	}
+
+	function parseLASHeader(arraybuffer) {
+		var o = {};
+
+		o.pointsOffset = readAs(arraybuffer, Uint32Array, 32*3);
+		o.pointsFormatId = readAs(arraybuffer, Uint8Array, 32*3+8);
+		o.pointsStructSize = readAs(arraybuffer, Uint16Array, 32*3+8+1);
+		o.pointsCount = readAs(arraybuffer, Uint32Array, 32*3 + 11);
+
+
+		var start = 32*3 + 35;
+		o.scale = readAs(arraybuffer, Float64Array, start, 3); start += 24; // 8*3
+		o.offset = readAs(arraybuffer, Float64Array, start, 3); start += 24;
+
+
+
+		var bounds = readAs(arraybuffer, Float64Array, start, 6); start += 48; // 8*6;
+		o.maxs = [bounds[0], bounds[2], bounds[4]];
+		o.mins = [bounds[1], bounds[3], bounds[5]];
+
+		return o;
+	}
+
+	var msgIndex = 0;
+	var waitHandlers = {};
+
+	// This method is scope-wide since the nacl module uses this fuction to notify
+	// us of events
+	scope.handleMessage = function(message_event) {
+		var msg = message_event.data;
+		var resolver = waitHandlers[msg.id];
+		delete waitHandlers[msg.id];
+
+		// call the callback in a separate context, make sure we've cleaned our
+		// state out before the callback is invoked since it may queue more doExchanges
+		setTimeout(function() { 
+			if (msg.error)
+				return resolver.reject(new Error(msg.message || "Unknown Error"));
+
+			if (msg.hasOwnProperty('count') && msg.hasOwnProperty('hasMoreData')) {
+				return resolver.resolve({
+					buffer: msg.result,
+					count: msg.count,
+					hasMoreData: msg.hasMoreData});
+			}
+
+			resolver.resolve(msg.result);
+		}, 0);
+	};
+
+	var doDataExchange = function(cmd, callback) {
+		cmd.id = msgIndex.toString();
+		msgIndex ++;
+
+		var resolver = Promise.defer();
+		waitHandlers[cmd.id] = resolver;
+
+		nacl_module.postMessage(cmd);
+
+		return resolver.promise.cancellable();
+	};
+
+	// LAS Loader
+	// Loads uncompressed files
+	//
+	var LASLoader = function(arraybuffer) {
+		this.arraybuffer = arraybuffer;
+	};
+
+	LASLoader.prototype.open = function() {
+		// nothing needs to be done to open this file
+		//
+		this.readOffset = 0;
+		return new Promise(function(res, rej) {
+			setTimeout(res, 0);
+		});
+	};
+
+	LASLoader.prototype.getHeader = function() {
+		var o = this;
+
+		return new Promise(function(res, rej) {
+			setTimeout(function() {
+				o.header = parseLASHeader(o.arraybuffer);
+				res(o.header);
+			}, 0);
+		});
+	};
+
+	LASLoader.prototype.readData = function(count, offset, skip) {
+		var o = this;
+
+		return new Promise(function(res, rej) {
+			setTimeout(function() {
+				if (!o.header)
+					return rej(new Error("Cannot start reading data till a header request is issued"));
+
+				var start;
+				if (skip <= 1) {
+					count = Math.min(count, o.header.pointsCount - o.readOffset);
+					start = o.header.pointsOffset + o.readOffset * o.header.pointsStructSize;
+					var end = start + count * o.header.pointsStructSize;
+					res({
+						buffer: o.arraybuffer.slice(start, end),
+						count: count,
+						hasMoreData: o.readOffset + count < o.header.pointsCount});
+					o.readOffset += count;
+				}
+				else {
+					var pointsToRead = Math.min(count * skip, o.header.pointsCount - o.readOffset);
+					var bufferSize = Math.ceil(pointsToRead / skip);
+					var pointsRead = 0;
+
+					var buf = new Uint8Array(bufferSize * o.header.pointsStructSize);
+					for (var i = 0 ; i < pointsToRead ; i ++) {
+						if (i % skip === 0) {
+							start = o.header.pointsOffset + o.readOffset * o.header.pointsStructSize;
+							var src = new Uint8Array(o.arraybuffer, start, o.header.pointsStructSize);
+
+							buf.set(src, pointsRead * o.header.pointsStructSize);
+							pointsRead ++;
+						}
+
+						o.readOffset ++;
+					}
+
+					res({
+						buffer: buf.buffer,
+						count: pointsRead,
+						hasMoreData: o.readOffset < o.header.pointsCount
+					});
+				}
+			}, 0);
+		});
+	};
+
+	LASLoader.prototype.close = function() {
+		var o = this;
+		return new Promise(function(res, rej) {
+			o.arraybuffer = null;
+			setTimeout(res, 0);
+		});
+	};
+
+	// LAZ Loader
+	// Uses NaCL module to load LAZ files
+	//
+	var LAZLoader = function(arraybuffer) {
+		this.arraybuffer = arraybuffer;
+		
+		let workerPath = Potree.scriptPath + "/workers/LASLAZWorker.js";
+		this.ww = Potree.workerPool.getWorker(workerPath);
+
+		this.nextCB = null;
+		var o = this;
+
+		this.ww.onmessage = function(e) {
+			if (o.nextCB !== null) {
+				o.nextCB(e.data);
+				o.nextCB = null;
+			}
+		};
+
+		this.dorr = function(req, cb) {
+			o.nextCB = cb;
+			o.ww.postMessage(req);
+		};
+	};
+
+	LAZLoader.prototype.open = function() {
+
+		// nothing needs to be done to open this file
+		//
+		var o = this;
+		return new Promise(function(res, rej) {
+			o.dorr({type:"open", arraybuffer: o.arraybuffer}, function(r) {
+				if (r.status !== 1)
+					return rej(new Error("Failed to open file"));
+
+				res(true);
+			});
+		});
+	};
+
+	LAZLoader.prototype.getHeader = function() {
+		var o = this;
+
+		return new Promise(function(res, rej) {
+			o.dorr({type:'header'}, function(r) {
+				if (r.status !== 1)
+					return rej(new Error("Failed to get header"));
+
+				res(r.header);
+			});
+		});
+	};
+
+	LAZLoader.prototype.readData = function(count, offset, skip) {
+		var o = this;
+
+		return new Promise(function(res, rej) {
+			o.dorr({type:'read', count: count, offset: offset, skip: skip}, function(r) {
+				if (r.status !== 1)
+					return rej(new Error("Failed to read data"));
+				res({
+					buffer: r.buffer,
+					count: r.count,
+					hasMoreData: r.hasMoreData
+				});
+			});
+		});
+	};
+
+	LAZLoader.prototype.close = function() {
+		var o = this;
+
+		return new Promise(function(res, rej) {
+			o.dorr({type:'close'}, function(r) {
+				let workerPath = Potree.scriptPath + "/workers/LASLAZWorker.js";
+				Potree.workerPool.returnWorker(workerPath, o.ww);
+			
+				if (r.status !== 1)
+					return rej(new Error("Failed to close file"));
+
+				res(true);
+			});
+		});
+	};
+
+	// A single consistent interface for loading LAS/LAZ files
+	var LASFile = function(arraybuffer) {
+		this.arraybuffer = arraybuffer;
+
+		this.determineVersion();
+		if (this.version > 12)
+			throw new Error("Only file versions <= 1.2 are supported at this time");
+
+		this.determineFormat();
+		if (pointFormatReaders[this.formatId] === undefined)
+			throw new Error("The point format ID is not supported");
+
+		this.loader = this.isCompressed ?
+			new LAZLoader(this.arraybuffer) :
+			new LASLoader(this.arraybuffer);
+	};
+
+	LASFile.prototype.determineFormat = function() {
+		var formatId = readAs(this.arraybuffer, Uint8Array, 32*3+8);
+		var bit_7 = (formatId & 0x80) >> 7;
+		var bit_6 = (formatId & 0x40) >> 6;
+
+		if (bit_7 === 1 && bit_6 === 1)
+			throw new Error("Old style compression not supported");
+
+		this.formatId = formatId & 0x3f;
+		this.isCompressed = (bit_7 === 1 || bit_6 === 1);
+	};
+
+	LASFile.prototype.determineVersion = function() {
+		var ver = new Int8Array(this.arraybuffer, 24, 2);
+		this.version = ver[0] * 10 + ver[1];
+		this.versionAsString = ver[0] + "." + ver[1];
+	};
+
+	LASFile.prototype.open = function() {
+		return this.loader.open();
+	};
+
+	LASFile.prototype.getHeader = function() {
+		return this.loader.getHeader();
+	};
+
+	LASFile.prototype.readData = function(count, start, skip) {
+		return this.loader.readData(count, start, skip);
+	};
+
+	LASFile.prototype.close = function() {
+		return this.loader.close();
+	};
+
+	// Decodes LAS records into points
+	//
+	var LASDecoder = function(buffer, pointFormatID, pointSize, pointsCount, scale, offset, mins, maxs) {
+		this.arrayb = buffer;
+		this.decoder = pointFormatReaders[pointFormatID];
+		this.pointsCount = pointsCount;
+		this.pointSize = pointSize;
+		this.scale = scale;
+		this.offset = offset;
+		this.mins = mins;
+		this.maxs = maxs;
+	};
+
+	LASDecoder.prototype.getPoint = function(index) {
+		if (index < 0 || index >= this.pointsCount)
+			throw new Error("Point index out of range");
+
+		var dv = new DataView(this.arrayb, index * this.pointSize, this.pointSize);
+		return this.decoder(dv);
+	};
+
+	// NACL Module support
+	// Called by the common.js module.
+	//
+	//window.startNaCl = function(name, tc, config, width, height) {
+	//	// check browser support for nacl
+	//	//
+	//	if(!common.browserSupportsNaCl()) {
+	//		return $.event.trigger({
+	//			type: "plasio.nacl.error",
+	//			message: "NaCl support is not available"
+	//		});
+	//	}
+
+	//	navigator.webkitPersistentStorage.requestQuota(2048 * 2048, function(bytes) {
+	//		common.updateStatus(
+	//			'Allocated ' + bytes + ' bytes of persistant storage.');
+	//			common.attachDefaultListeners();
+	//			common.createNaClModule(name, tc, config, width, height);
+	//	},
+	//	function(e) { 
+	//		$.event.trigger({
+	//			type: "plasio.nacl.error",
+	//			message: "Could not allocate persistant storage"
+	//		});
+	//	});
+
+	//	$(document).on("plasio.nacl.available", function() {
+	//		scope.LASModuleWasLoaded = true;
+	//	});
+	//};
+
+	scope.LAZLoader = LAZLoader;
+	scope.LASLoader = LASLoader;
+	scope.LASFile = LASFile;
+	scope.LASDecoder = LASDecoder;
+	scope.LASModuleWasLoaded = false;
+//})(module.exports);
+})(this);
+

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 5140 - 0
public/lib/plasio/vendor/bluebird.js


+ 165 - 0
public/lib/plasio/workers/laz-loader-worker.js

@@ -0,0 +1,165 @@
+// laz-loader-worker.js
+//
+
+//import {Module} from "./laz-perf.js";
+
+let instance = null; // laz-perf instance
+
+function readAs(buf, Type, offset, count) {
+	count = (count === undefined || count === 0 ? 1 : count);
+	var sub = buf.slice(offset, offset + Type.BYTES_PER_ELEMENT * count);
+
+	var r = new Type(sub);
+	if (count === undefined || count === 1)
+		return r[0];
+
+	var ret = [];
+	for (var i = 0 ; i < count ; i ++) {
+		ret.push(r[i]);
+	}
+
+	return ret;
+}
+
+function parseLASHeader(arraybuffer) {
+	var o = { };
+
+	o.pointsOffset = readAs(arraybuffer, Uint32Array, 32*3);
+	o.pointsFormatId = readAs(arraybuffer, Uint8Array, 32*3+8) & 0b111111;
+	o.pointsStructSize = readAs(arraybuffer, Uint16Array, 32*3+8+1);
+
+	o.extraBytes = 0;
+
+	switch (o.pointsFormatId) {
+		case 0: o.extraBytes = o.pointsStructSize - 20; break;
+		case 1: o.extraBytes = o.pointsStructSize - 28; break;
+		case 2: o.extraBytes = o.pointsStructSize - 26; break;
+		case 3: o.extraBytes = o.pointsStructSize - 34; break;
+	}
+
+	o.pointsCount = readAs(arraybuffer, Uint32Array, 32 * 3 + 11);
+
+	var start = 32 * 3 + 35;
+	o.scale = readAs(arraybuffer, Float64Array, start, 3); start += 24;
+	o.offset = readAs(arraybuffer, Float64Array, start, 3); start += 24;
+
+	var bounds = readAs(arraybuffer, Float64Array, start, 6); start += 48;
+	o.maxs = [bounds[0], bounds[2], bounds[4]];
+	o.mins = [bounds[1], bounds[3], bounds[5]];
+
+	return o;
+}
+
+function handleEvent(msg) {
+	switch(msg.type) {
+		case "open":
+			try {
+				instance = new Module.LASZip();
+				var abInt = new Uint8Array(msg.arraybuffer);
+				var buf = Module._malloc(msg.arraybuffer.byteLength);
+
+				instance.arraybuffer = msg.arraybuffer;
+				instance.buf = buf;
+				Module.HEAPU8.set(abInt, buf);
+				instance.open(buf, msg.arraybuffer.byteLength);
+
+				instance.readOffset = 0;
+
+				postMessage({ type: "open", status: 1});
+			}catch(e) {
+				debugger;
+				postMessage({ type: "open", status: 0, details: e });
+			}
+			break;
+
+		case "header":
+			if (!instance)
+				throw new Error(
+						"You need to open the file before reading the header");
+
+			var header = parseLASHeader(instance.arraybuffer);
+			header.pointsFormatId &= 0x3f;
+			instance.header = header;
+			postMessage({type: "header", status: 1, header: header});
+			break;
+
+		case "read":
+			if (!instance)
+				throw new Error(
+						"You need to open the file before trying to read");
+
+			var start = msg.start, count = msg.count, skip = msg.skip;
+			var o = instance;
+
+			if (!o.header)
+				throw new Error(
+						"You need to query header before reading");
+
+			let h = o.header;
+
+			var pointsToRead = Math.min(
+					count * skip, h.pointsCount - o.readOffset);
+			var bufferSize = Math.ceil(pointsToRead / skip);
+			var pointsRead = 0;
+
+			let buffer = new ArrayBuffer(bufferSize * h.pointsStructSize);
+			let this_buf = new Uint8Array(buffer);
+			var buf_read = Module._malloc(h.pointsStructSize);
+
+			for (var i = 0 ; i < pointsToRead ; i ++) {
+				o.getPoint(buf_read);
+
+				if (i % skip === 0) {
+					var a = new Uint8Array(
+							Module.HEAPU8.buffer,
+							buf_read,
+							h.pointsStructSize);
+
+					this_buf.set(
+							a,
+							pointsRead * h.pointsStructSize,
+							h.pointsStructSize);
+
+					++pointsRead;
+				}
+
+				++o.readOffset;
+			}
+			Module._free(buf_read);
+
+			let transferables = [buffer];
+
+			postMessage({
+				type: 'header',
+				status: 1,
+				buffer: buffer,
+				count: pointsRead,
+				hasMoreData: o.readOffset < o.header.pointsCount
+			}, transferables);
+
+			break;
+
+		case "close":
+			if (instance !== null) {
+				Module._free(instance.buf);
+				instance.delete();
+				instance = null;
+			}else{
+				debugger;
+			}
+
+			postMessage({ type: "close", status: 1});
+			break;
+	}
+}
+
+onmessage = function(event) {
+	try {
+		handleEvent(event.data);
+	} catch(e) {
+		debugger;
+		postMessage({type: event.data.type, status: 0, details: e});
+	}
+};
+
+

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 49590 - 0
public/lib/plasio/workers/laz-perf.js


+ 33 - 0
public/lib/potree/LICENSE

@@ -0,0 +1,33 @@
+ 
+============
+== POTREE ==
+============
+
+http://potree.org
+
+Copyright (c) 2011-2020, Markus Schütz
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+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.
+
+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 OWNER 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.
+
+The views and conclusions contained in the software and documentation are those
+of the authors and should not be interpreted as representing official policies,
+either expressed or implied, of the FreeBSD Project.

+ 22 - 0
public/lib/potree/lazylibs/geopackage/LICENSE

@@ -0,0 +1,22 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 National Geospatial-Intelligence Agency
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 259 - 0
public/lib/potree/lazylibs/geopackage/README.md


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 80817 - 0
public/lib/potree/lazylibs/geopackage/geopackage.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 97 - 0
public/lib/potree/lazylibs/geopackage/geopackage.min.js


+ 6 - 0
public/lib/potree/lazylibs/sql.js/AUTHORS

@@ -0,0 +1,6 @@
+Ophir LOJKINE <pere.jobs@gmail.com> (https://github.com/lovasoa)
+@kripken
+@hankinsoft
+@firien
+@dinedal
+@taytay

+ 44 - 0
public/lib/potree/lazylibs/sql.js/LICENSE

@@ -0,0 +1,44 @@
+MIT license
+===========
+
+Copyright (c) 2017 sql.js authors (see AUTHORS)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+
+
+# Some portions of the Makefile taken from:
+Copyright 2017 Ryusei Yamaguchi
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 283 - 0
public/lib/potree/lazylibs/sql.js/README.md


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 209 - 0
public/lib/potree/lazylibs/sql.js/sql-wasm.js


BIN
public/lib/potree/lazylibs/sql.js/sql-wasm.wasm


+ 878 - 0
public/lib/potree/potree.css

@@ -0,0 +1,878 @@
+
+/* CSS - Cascading Style Sheet */
+/* Palette color codes */
+/* Palette URL: http://paletton.com/#uid=13p0u0kex8W2uqu8af7lEqaulDE */
+
+/* Feel free to copy&paste color codes to your application */
+
+/* As hex codes */
+.color-primary-0 { color: #19282C }	/* Main Primary color */
+.color-primary-1 { color: #7A8184 }
+.color-primary-2 { color: #39474B }
+.color-primary-3 { color: #2D6D82 }
+.color-primary-4 { color: #108FB9 }
+
+/* As RGBa codes */
+.rgba-primary-0 { color: rgba( 25, 40, 44,1) }	/* Main Primary color */
+.rgba-primary-1 { color: rgba(122,129,132,1) }
+.rgba-primary-2 { color: rgba( 57, 71, 75,1) }
+.rgba-primary-3 { color: rgba( 45,109,130,1) }
+.rgba-primary-4 { color: rgba( 16,143,185,1) }
+
+/* Generated by Paletton.com © 2002-2014 */
+/* http://paletton.com */
+
+
+
+
+:root{
+	
+	--color-0: 			rgba( 25, 40, 44, 1);
+	--color-1: 			rgba(122,129,132, 1);
+	--color-2: 			rgba( 57, 71, 75, 1);
+	--color-3: 			rgba( 45,109,130, 1);
+	--color-4: 			rgba( 16,143,185, 1);
+	
+	--bg-color:			var(--color-0);
+	--bg-color-2:		rgb(60, 80, 85);
+	--bg-light-color:	rgba( 48, 61, 65, 1);
+	--bg-dark-color:	rgba( 24, 31, 33, 1);
+	--bg-hover-color:	var(--color-2);
+	
+	--font-color:		#9AA1A4;
+	--font-color-2:		#ddd;
+	--font-color:		#cccccc;
+	--border-color:		black;
+	
+	--measurement-detail-node-bg-light:		var(--color-1);
+	--measurement-detail-node-bg-dark:		var(--color-2);
+	--measurement-detail-area-bg-color:		#eee;
+
+	
+}
+
+#potree_sidebar_container{
+	position:	absolute;
+	z-index:	0;
+	width:		350px;
+	height:		100%;
+	overflow-y:	scroll;
+	font-size:	85%;
+	border-right:	1px solid black;
+	background-color:	var(--bg-color);
+}
+
+#sidebar_root{
+	color:				var(--font-color);
+	font-family:		Arial,Helvetica,sans-serif;
+	font-size:			1em;
+}
+
+.potree_failpage{
+	width: 100%;
+	height: 100%;
+	background-color: white;
+	position: absolute;
+	margin: 15px;
+}
+
+.potree_failpage a{
+	color: initial !important;
+	text-decoration: underline !important;
+}
+
+.potree_info_text{
+	color:		white;
+	font-weight: bold;
+	text-shadow:  1px  1px 1px black,
+				  1px -1px 1px black,
+				 -1px  1px 1px black,
+				 -1px -1px 1px black;
+}
+
+.potree_message{
+	width: 500px;
+	background-color: var(--bg-color);
+	padding: 5px;
+	margin: 5px;
+	border-radius: 4px;
+	color: var(--font-color);
+	font-family: Arial;
+	opacity: 0.8;
+	border: 1px solid black;
+	display: flex;
+	overflow: auto;
+}
+
+.potree_message_error{
+	background-color: red;
+}
+
+#potree_description{
+	position: absolute; 
+	top: 10px; 
+	left: 50%; 
+	transform: translateX(-50%); 
+	text-align: center;
+	z-index:	1000;
+}
+
+.potree_sidebar_brand{
+	margin:			1px 20px;
+	line-height:	2em;
+	font-size:		100%;
+	font-weight:	bold;
+	position:		relative;
+	display:		flex; 
+	flex-direction:	row;
+}
+
+#potree_sidebar_container a{
+	color: 			#8Aa1c4;
+}
+
+#potree_quick_buttons{
+	position: absolute;
+	left: 4px;
+	top: 4px; 
+	width: 10px; 
+	height: 10px; 
+	z-index: 10000;
+	float: left;
+}
+
+.potree_menu_toggle{
+	float:			left;
+	margin:			0;
+	background:		none;
+	width:			2.5em;
+	height:			2.5em;
+	z-index:		100;
+	cursor: 		pointer;
+	margin:			4px;
+}
+
+#potree_map_toggle{
+	float:			left;
+	margin:			0;
+	background:		none;
+	width:			2.5em;
+	height:			2.5em;
+	z-index:		100;
+	cursor: 		pointer;
+	margin:			4px;
+}
+
+#potree_render_area{
+	position: 	absolute;
+	/*background: linear-gradient(-90deg, red, yellow);*/
+	top: 		0px;
+	bottom: 	0px;
+	left: 		0px;
+	right: 		0px;
+	overflow: 	hidden;
+	z-index: 	1;
+	-webkit-transition: left .35s;
+	transition: left .35s;
+}
+
+.potree-panel {
+	border: 		1px solid black;
+	border-radius: 	0.4em;
+	padding: 		0px;
+	background-color: var(--bg-light-color);
+}
+
+.potree-panel-heading{
+	background-color: var(--bg-dark-color);
+}
+
+/* a:hover, a:visited, a:link, a:active{
+	color: 				#ccccff;
+	text-decoration: 	none;
+} */
+
+.annotation{
+	position:		absolute;
+	padding:		10px;
+	opacity:		0.5;
+	transform:		translate(-50%, -30px);
+	will-change:	left, top;
+}
+
+.annotation-titlebar{
+	color:			white;
+	background-color:	black;
+	border-radius:	1.5em;
+	border:			1px solid rgba(255, 255, 255, 0.7);
+	font-size:		1em;
+	opacity:		1;
+	margin:			auto;
+	display:		table;
+	padding:		1px 8px;
+	cursor: 		pointer;
+}
+
+.annotation-expand{
+	color:			white;
+	font-size:		0.6em;
+	opacity:		1;
+}
+
+.annotation-action-icon{
+	width:			20px;
+	height:			20px;
+	display:		inline-block;
+	vertical-align:	middle;
+	line-height:	1.5em;
+	text-align:		center;
+	font-family:	Arial;
+	font-weight:	bold;
+	cursor: 		pointer;
+}
+
+.annotation-action-icon:hover{
+	filter:			drop-shadow(0px 0px 1px white);
+	width:			24px;
+	height:			24px;
+	cursor: 		pointer;
+	
+}
+
+.annotation-item {
+	color:			white;
+	background-color: 	black;
+	opacity:		0.5;
+	border-radius:	1.5em;
+	font-size:		1em;
+	line-height:	1.5em;
+	padding:		1px 8px 0px 8px;
+	font-weight:	bold;
+	display:		flex;
+	cursor:			default;
+}
+
+.annotation-item:hover {
+	opacity:		1.0;
+	box-shadow:		0 0 5px #ffffff;
+}
+
+.annotation-main{
+	display:		flex;
+	flex-grow:		1;
+}
+
+.annotation-label{
+	display:		inline-block;
+	height:			100%;
+	flex-grow:		1;
+	user-select:	none;
+	-moz-user-select: none;
+	z-index:		100;
+	vertical-align:	middle;
+	line-height:	1.5em;
+	font-family:	Arial;
+	font-weight:	bold;
+	cursor: 		pointer;
+	white-space:	nowrap;
+}
+
+.annotation-description{
+	position:		relative;
+	color:			white;
+	background-color:	black;
+	padding:		10px;
+	margin:			5px 0px 0px 0px;
+	border-radius:	4px;
+	display:		none;
+	max-width:		500px;
+	width:			500px;
+}
+
+.annotation-description-close{
+	filter:			invert(100%);
+	float:			right;
+	opacity:		0.5;
+	margin:			0px 0px 8px 8px;
+}
+
+	
+.annotation-description-content{
+	color:			white;
+}
+
+.annotation-icon{
+	width:		20px;
+	height:		20px;
+	filter:		invert(100%);
+	margin:		2px 2px;
+	opacity:	0.5;
+}
+
+
+canvas { 
+	width: 100%; 
+	height: 100% 
+}
+
+body{ 
+	margin: 	0; 
+	padding: 	0;
+	position:	absolute;
+	width: 		100%;
+	height: 	100%;
+	overflow:	hidden;
+}
+
+.axis {
+  font: 		10px sans-serif;
+  color: 		var(--font-color);
+}
+
+.axis path{
+	fill: 		rgba(255, 255, 255, 0.5);
+	stroke: 		var(--font-color);
+	shape-rendering: crispEdges;
+	opacity: 		0.7;
+}
+
+.axis line {
+	fill: 		rgba(255, 255, 255, 0.5);
+	stroke: 		var(--font-color);
+	shape-rendering: crispEdges;
+	opacity: 		0.1;
+}
+
+.tick text{
+	font-size: 12px;
+}
+
+.scene_header{
+	display:flex;
+	cursor: pointer;
+	padding: 2px;
+}
+
+.scene_content{
+	padding: 5px 0px 5px 0px;
+	/*background-color: rgba(0, 0, 0, 0.4);*/
+}
+
+.measurement_content{
+	padding: 5px 15px 5px 10px;
+	/*background-color: rgba(0, 0, 0, 0.4);*/
+}
+
+.propertypanel_content{
+	padding: 5px 15px 5px 10px;
+	/*background-color: rgba(0, 0, 0, 0.4);*/
+}
+
+.measurement_value_table{
+	width: 100%;
+}
+
+.coordinates_table_container table td {
+	width: 33%;
+	text-align: center;
+}
+
+#scene_object_properties{
+	margin:		0px;
+}
+
+
+
+
+.pv-panel-heading{
+	padding: 	4px !important;
+	display: 	flex; 
+	flex-direction: row
+}
+
+.pv-menu-list{
+	list-style-type:	none;
+	padding:			0;
+	margin:				15px 0px;
+	overflow:			hidden;
+}
+
+.pv-menu-list > *{
+	margin: 	4px 20px;
+}
+
+.ui-slider {
+	margin-top: 5px;
+	margin-bottom: 10px;
+	background-color: 	var(--color-1) !important;
+	background: 		none;
+	border: 			1px solid black;
+}
+
+.ui-selectmenu-button.ui-button{
+	width: 		100% !important;
+}
+
+.pv-menu-list > li > .ui-slider{
+	background-color: 	var(--color-1) !important;
+	background: 		none;
+	border: 			1px solid black;
+}
+
+.pv-menu-list .ui-slider{
+	background-color: 	var(--color-1) !important;
+	background: 		none;
+	border: 			1px solid black !important;
+}
+
+.ui-slider-handle{
+	border: 			1px solid black !important;
+}
+
+.ui-widget{
+	box-sizing:border-box
+}
+
+.panel-body > li > .ui-slider{
+	background-color: var(--color-1) !important;
+	background: none;
+	border: 1px solid black;
+}
+
+.panel-body > div > li > .ui-slider{
+	background-color: var(--color-1) !important;
+	background: none;
+	border: 1px solid black;
+}
+
+.pv-select-label{
+	margin: 1px;
+	font-size: 90%;
+	font-weight: 100;
+}
+
+.button-icon:hover{
+	/*background-color:	#09181C;*/
+	filter:				drop-shadow(0px 0px 4px white);
+}
+
+.ui-widget-content{
+	/*color: var(--font-color) !important;*/
+}
+
+.accordion > h3{
+	background-color: var(--bg-color-2) !important;
+	background: #f6f6f6 50% 50% repeat-x;
+	border:		1px solid black;
+	color:		var(--font-color-2);
+	cursor:		pointer;
+	margin:		2px 0 0 0;
+	padding:	4px 10px 4px 30px;
+	box-shadow:	0px 3px 3px #111;
+	text-shadow:	1px 1px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;
+	font-size:	1em;
+}
+
+.accordion > h3:hover{
+	filter: brightness(125%);
+}
+
+.accordion-content{
+	padding: 0px 0px !important;
+	border: none !important;
+}
+
+.icon-bar{
+	height: 4px !important;
+	border: 1px solid black;
+	background-color: white;
+	border-radius: 2px;
+}
+
+.canvas{
+	-webkit-transition: top .35s, left .35s, bottom .35s, right .35s, width .35s;
+	transition: top .35s, left .35s, bottom .35s, right .35s, width .35s;
+}
+
+#profile_window{
+	background-color:	var(--bg-color);
+}
+
+#profile_titlebar{
+	background-color:	var(--bg-color-2);
+	color: var(--font-color-2);
+	text-shadow: 1px 1px 0 #000, -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;
+	font-size: 1em;
+	font-weight: bold;
+}
+
+#profile_window_title{
+	position: absolute;
+	margin: 5px;
+}
+
+.profile-container-button{
+	cursor: pointer;
+}
+
+.profile-button:hover{
+	background-color: #0000CC;
+}
+
+.unselectable{
+	user-select: 			none;
+}
+
+.selectable{
+	user-select: 			text;
+}
+
+
+
+.divider {
+	display: 		block;
+	text-align: 	center;
+	overflow: 		hidden;
+	white-space: 	nowrap; 
+	font-weight:	bold;
+	font-size:		90%;
+	letter-spacing:	1px;
+	margin-left:	0px;
+	margin-right:	0px;
+	margin-top: 	1px;
+	margin-bottom: 	1px;
+	padding:		1px !important;
+}
+
+.divider > span {
+	position: 	relative;
+	display: 	inline-block;
+}
+
+.divider > span:before,
+.divider > span:after {
+	content: 	"";
+	position: 	absolute;
+	top: 		50%;
+	width: 		9999px;
+	height: 	1px;
+	background: #b2b2b2;
+}
+
+.divider > span:before {
+	right: 100%;
+	margin-right: 5px;
+}
+
+.divider > span:after {
+	left: 100%;
+	margin-left: 5px;
+}
+
+
+
+
+
+
+
+
+
+
+
+.ol-dragbox {
+  background-color: rgba(255,255,255,0.4);
+  border-color: rgba(100,150,0,1);
+  border: 1px solid red;
+}
+
+.text-icon{
+	opacity:	0.5;
+	height:		24px;
+}
+
+.text-icon:hover{
+	opacity:	1.0;
+}
+
+.input-grid-cell{
+	flex-grow: 1; margin: 0px 3px 0px 3px;
+}
+
+.input-grid-label{
+	flex-grow: 1; 
+	margin: 0px 3px 0px 3px; 
+	text-align:center; 
+	font-weight: bold;
+}
+
+.input-grid-cell > input{
+	width: 100%
+}
+
+.invalid_value{
+	color: #e05e5e;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/** 
+ * OVERRIDES
+ */
+
+
+.ui-spinner-input{
+	color: black;
+}
+
+.jstree-themeicon-custom{
+	background-size: 16px !important;
+}
+
+.jstree-default .jstree-clicked{
+	/*background-color: #ffffff !important;*/
+	background-color: #34494f !important;
+}
+
+.jstree-default .jstree-hovered{
+	background-color: #34494f !important;
+}
+
+.jstree-anchor{
+	width: 100% !important;
+}
+
+.ui-state-default{
+	background: #a6a9aa !important;
+	border: 1px solid black;
+	color: black;
+}
+
+.ui-state-active{
+	background: #c6c9ca !important;
+	color: black !important;
+}
+
+.cesium-viewer .cesium-viewer-cesiumWidgetContainer{
+	position: absolute;
+	height: 100%;
+	width: 100%;
+}
+
+
+
+
+.zs_widget{
+	padding: 2px;
+	height: 4em;
+	user-select: none;
+}
+.zs_core{
+	overflow: hidden;
+	position: relative;
+	height: 100%;
+}
+.zs_handle{
+	position: absolute;
+	top: 0px;
+	bottom: 0px;
+	border: 1px solid black;
+	border-radius: 3px;
+	background-color: rgb(166, 169, 170);
+	width: 8px;
+	user-select: none;
+	width: 1.2em;
+	height: 1.2em;
+	top: calc(50% - 0.6em);
+}
+.zs_stretch{
+	position: absolute;
+	top: 0px;
+	bottom: 0px;
+	border: 1px solid black;
+	border-radius: 3px;
+	background-color: rgb(166, 169, 170);
+	width: 8px;
+	user-select: none;
+	width: 1.2em;
+	height: 1.2em;
+	top: calc(50% - 0.6em);
+	color: black;
+	font-weight: bold;
+	font-size: 1.2em;
+	font-family: arial;
+}
+.zs_handle:hover{
+	background-color: lightgreen;
+}
+.zs_inside{
+	position: absolute !important;
+	width: 100%;
+	border: 1px solid black;
+	background-color: white;
+	top: calc(50% - 0.326em);
+	height: 0.652em;
+	cursor: zoom-in;
+}
+.zs_outside{
+	position: absolute !important;
+	width: 100%;
+	background-color: var(--color-1) !important;
+	top: calc(50% - 0.326em);
+	height: 0.652em;
+	cursor: zoom-in;
+}
+.zs_visible_range_label{
+	position: absolute;
+	bottom: 0px;
+	pointer-events:none;
+}
+.zs_visible_range_label_left{
+	left: 0px;
+}
+.zs_visible_range_label_right{
+	right: 0px;
+}
+.zs_chosen_range_label{
+	position: absolute;
+	pointer-events:none;
+}
+
+#potree_sidebar_container{
+	scrollbar-color: var(--color-1) var(--bg-color);
+	scrollbar-width: thin;
+}
+
+
+
+::-webkit-scrollbar {
+	width: 6px;
+	background-color: var(--bg-color);
+}
+
+::-webkit-scrollbar-track {
+
+}
+
+::-webkit-scrollbar-thumb {
+	background-color: var(--color-1);
+}
+
+.propertypanel_content .heading{
+	font-weight: bold;
+	padding-top: 0.6em;
+	padding-bottom: 0.1em;
+}
+
+
+/* ///// 补   //// */
+
+
+#alignment button{
+	padding:0 2px;
+    cursor:pointer;
+}
+
+#potree_labels{
+    position:absolute;
+    left:0;
+    right:0;
+    top:0;
+    bottom:0;
+    height:100%;
+    width:100%;
+    z-index: 2;
+    pointer-events:none;
+}
+
+
+#potree_labels>div{
+    display: block;
+    position: absolute;
+    line-height: 22px;
+    -webkit-transform: translate(-50%,-50%);
+    transform: translate(-50%,-50%);
+    text-align: center;
+    white-space: nowrap;
+    font-size: 12px;
+    font-style: normal;
+    pointer-events: auto;
+    background-repeat: no-repeat;
+    background-size: 100% 100%;
+    background: #02c1add4;
+    /* border: 1px solid hsla(0,0%,100%,.4); */
+    color:#fff;
+    border-radius: 3px;
+    text-shadow: 0 1px 1px #878787;
+    padding:3px 10px;
+    cursor:default;
+    user-select:none;
+}
+#potree_labels>div.unvisible{
+    display:none; 
+}
+
+#potree_labels >div.measure_pointPos{
+    -webkit-transform: translate(-50%,calc(-100% - 15px));
+    transform: translate(-50%,calc(-100% - 15px));
+}
+
+#potree_labels >div.sub{
+    background:#fff; color:#111; 
+    padding:2px 7px; font-size: 10px;
+}
+
+#potree_labels >div.measure_area{
+    
+}
+#potree_labels >div.highLight{
+    background:#02e4ccf2;
+    
+}
+#potree_labels >div.measure_length{
+    
+}
+#mapGaode{
+    position: absolute;
+    z-index: 100; 
+    box-sizing: border-box;
+    width:300px; height:200px;
+    right:0px;
+    top:0px;
+    background:#fff;
+}
+
+.hide{
+    display:none !important; 
+}
+ 

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 166276 - 0
public/lib/potree/potree.js


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 0
public/lib/potree/potree.js.map


+ 113 - 0
public/lib/potree/profile.html

@@ -0,0 +1,113 @@
+<div id="profile_window" style="
+	position: absolute; 
+	width: 84%;
+	left: 15%; top: 55%; height: 44%;
+	margin: 5px;
+	border: 1px solid black; 
+	display: none; box-sizing: border-box; z-index:10000">
+	
+	<div id="profile_titlebar" class="pv-titlebar" style="display: flex; position: absolute; height: 30px; width: 100%; box-sizing: border-box;">
+		<span style="padding-right: 10px">
+			<span id="profile_window_title" data-i18n="profile.title"></span>
+		</span>
+		<span id="profileInfo" style="flex-grow: 1; flex-direction: row"> </span>
+		<!-- <span id="profile_toggle_size_button" class="ui-icon ui-icon-newwin profile-button"> </span> -->
+		<!--<span id="closeProfileContainer" class="ui-icon ui-icon-close profile-button"> </span>-->
+		<img id="closeProfileContainer" class="button-icon" style="width: 24px; height: 24px; margin: 4px"/>
+	</div>
+	
+	<div style="position: absolute; top: 30px; width: 100%; height: calc(100% - 30px); box-sizing: border-box;" class="pw_content">
+		
+		<span class="pv-main-color" style="height: 100%; width: 100%; padding: 5px; display:flex; flex-direction: column; box-sizing: border-box;">
+			<div style=" width: 100%; color: #9d9d9d; margin: 5px; display: flex; flex-direction: row; box-sizing: border-box;">
+				<span data-i18n="profile.nb_points"></span>: &nbsp;
+				<span id="profile_num_points">-</span>
+				<!--<span id="profile_threshold" style="width: 300px">
+					Threshold: <span id="potree_profile_threshold_label">123</span> <div id="potree_profile_threshold_slider"></div>
+				</span>-->
+				<span style="flex-grow: 1;"></span>
+				<span>
+				
+					<!-- <span contenteditable="true" style="display: inline-block; 
+						width: 24px; height: 24px; 
+						vertical-align: top; 
+						background: white; color:black"></span> -->
+
+					<input id="potree_profile_rotate_amount" 
+						type="text" maxlength="4" value="10" style="
+						display: inline-block; 
+						width: 2.5em; 
+						vertical-align: top; 
+						background: white;
+						margin: 2px;
+						"></span>
+					
+					<img id="potree_profile_rotate_cw" class="text-icon"/>
+					<img id="potree_profile_rotate_ccw" class="text-icon"/>
+
+					<img id="potree_profile_move_forward" class="text-icon"/>
+					<img id="potree_profile_move_backward" class="text-icon"/>
+
+					<a id="potree_download_profile_ortho_link" href="#" download="profile.csv">
+						<img id="potree_download_csv_icon" class="text-icon"/>
+					</a>
+					
+					<a id="potree_download_profile_link" href="#" download="profile.las">
+						<img id="potree_download_las_icon" class="text-icon"/>
+					</a>
+					
+				</span>
+			</div>
+			
+			<div id="profile_draw_container" style="
+				width: 100%; 
+				flex-grow: 1; 
+				position: relative; height: 100%; 
+				box-sizing: border-box; user-select: none">
+				<div style="
+					position: absolute; 
+					left: 41px; 
+					top: 0; 
+					bottom: 20; 
+					width: calc(100% - 41px); 
+					height: calc(100% - 20px); 
+					background-color: #000000;
+					"></div>
+				<svg id="profileSVG" style="
+					fill: #9d9d9d;
+					position: absolute; 
+					left: 0; right: 0; 
+					top: 0; bottom: 0; 
+					width: 100%; 
+					height: 100%;
+					"></svg>
+				<div id="profileCanvasContainer" style="
+					position: absolute; 
+					left: 41px; 
+					top: 0; 
+					bottom: 20; 
+					width: calc(100% - 41px); 
+					height: calc(100% - 20px); 
+					/*background-color: #000000;*/
+					"></div>
+				
+				<div id="profileSelectionProperties" style="
+					position: absolute; 
+					left: 50px; 
+					top: 10px; 
+					background-color: black;
+					color: white;
+					opacity: 0.7;
+					padding: 5px;
+					border: 1px solid white;
+					user-select: text;
+					">
+					position: asdsadf asdf<br>
+					rgb: 123 423 123
+					</div>
+				
+			</div>
+		</span>
+	</div>
+
+</div>

+ 20 - 0
public/lib/potree/resources/LICENSE

@@ -0,0 +1,20 @@
+
+
+
+icons/map_icon.png
+from sitn PotreeViewer
+http://ne.ch/sitn
+https://github.com/PotreeViewer/PotreeViewer
+
+icons/navigation_cube.svg
+icons/orthographic_camera.svg
+icons/perspective_camera.svg
+free for commerical use without attribution
+http://www.freepik.com/free-icon/package-cube-box-for-delivery_720159.htm
+
+
+# VR Controller Model
+images/vr_controller_help*
+Controller model from https://sketchfab.com/3d-models/htc-vive-controller-9f03e4a80c5a4b31a24bb122f17cb229
+license: CC AttributionCreative Commons Attribution
+

+ 74 - 0
public/lib/potree/resources/icons/add.svg

@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32px"
+   height="32px"
+   id="svg3797"
+   version="1.1"
+   inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
+   sodipodi:docname="add.svg"
+   inkscape:export-filename="D:\dev\workspaces\potree\develop\resources\icons\volume.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs3799" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.197802"
+     inkscape:cx="28.959173"
+     inkscape:cy="13.365348"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1920"
+     inkscape:window-height="1001"
+     inkscape:window-x="-9"
+     inkscape:window-y="-9"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3805" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3802">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:51.75680923px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;paint-order:markers stroke fill"
+       x="3.1113412"
+       y="30.581873"
+       id="text822"><tspan
+         sodipodi:role="line"
+         id="tspan820"
+         x="3.1113412"
+         y="30.581873"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Calibri;-inkscape-font-specification:Calibri;stroke-width:4;stroke:#000000;stroke-opacity:1;fill:#ffffff;fill-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;paint-order:markers stroke fill">+</tspan></text>
+  </g>
+</svg>

BIN
public/lib/potree/resources/icons/angle.png


+ 157 - 0
public/lib/potree/resources/icons/annotation.svg

@@ -0,0 +1,157 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32px"
+   height="32px"
+   id="svg3797"
+   version="1.1"
+   inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
+   sodipodi:docname="annotation.svg"
+   inkscape:export-filename="D:\dev\workspaces\potree\develop\resources\icons\profile.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs3799">
+    <inkscape:path-effect
+       effect="spiro"
+       id="path-effect4170"
+       is_visible="true" />
+    <linearGradient
+       id="linearGradient3890">
+      <stop
+         id="stop3898"
+         offset="0"
+         style="stop-color:#ff0000;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ffff00;stop-opacity:1;"
+         offset="0.25"
+         id="stop3904" />
+      <stop
+         style="stop-color:#00ff00;stop-opacity:1;"
+         offset="0.5"
+         id="stop3902" />
+      <stop
+         id="stop3906"
+         offset="0.75"
+         style="stop-color:#00ffff;stop-opacity:1;" />
+      <stop
+         style="stop-color:#0000ff;stop-opacity:1;"
+         offset="1"
+         id="stop3894" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3890-1"
+       id="linearGradient3896-3"
+       x1="17"
+       y1="5"
+       x2="17"
+       y2="26"
+       gradientUnits="userSpaceOnUse"
+       spreadMethod="pad"
+       gradientTransform="matrix(0.91304348,0,0,0.91304348,2.5217391,2.173913)" />
+    <linearGradient
+       id="linearGradient3890-1">
+      <stop
+         id="stop3898-6"
+         offset="0"
+         style="stop-color:#ff0000;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ffff00;stop-opacity:1;"
+         offset="0.25"
+         id="stop3904-8" />
+      <stop
+         style="stop-color:#00ff00;stop-opacity:1;"
+         offset="0.5"
+         id="stop3902-8" />
+      <stop
+         id="stop3906-2"
+         offset="0.75"
+         style="stop-color:#00ffff;stop-opacity:1;" />
+      <stop
+         style="stop-color:#0000ff;stop-opacity:1;"
+         offset="1"
+         id="stop3894-7" />
+    </linearGradient>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.313708"
+     inkscape:cx="12.960878"
+     inkscape:cy="6.4904832"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="2560"
+     inkscape:window-height="1377"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:pagecheckerboard="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3805" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3802">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <circle
+       style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.55555558"
+       id="path3000"
+       cx="59.629543"
+       cy="16"
+       r="5" />
+    <circle
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path3770"
+       cx="59.629543"
+       cy="16"
+       r="14" />
+    <circle
+       id="path3772"
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       cx="59.629543"
+       cy="16"
+       r="9" />
+    <path
+       id="path4535"
+       style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 21.96875,22.09375 C 28,12 26,1 16,1 6,1 4,12 10.03125,22.09375 15.112504,30.59761 16,30 16,30 c 0,0 0.887496,0.59761 5.96875,-7.90625 z"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="scscs" />
+    <circle
+       cy="8.498291"
+       cx="16"
+       id="circle4538"
+       style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.55430424"
+       r="4.9887381" />
+  </g>
+</svg>

+ 99 - 0
public/lib/potree/resources/icons/area.svg

@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32px"
+   height="32px"
+   id="svg3797"
+   version="1.1"
+   inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
+   sodipodi:docname="area.svg"
+   inkscape:export-filename="D:\dev\workspaces\potree\develop\resources\icons\area.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs3799" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="15.836083"
+     inkscape:cx="-2.4229598"
+     inkscape:cy="11.830286"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="2560"
+     inkscape:window-height="1377"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3805" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3802">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       style="fill:#e73100;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 7.0000003,25.75 H 25 l -5,-10 6,-9.9999996 H 7.0000003 Z"
+       id="path3790"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccc" />
+    <circle
+       style="fill:#00ff00;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path3807-0-1"
+       cx="7"
+       cy="26"
+       r="2.7499998" />
+    <circle
+       style="fill:#00ff00;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path3807-0-7"
+       cx="25"
+       cy="26"
+       r="2.7499998" />
+    <circle
+       style="fill:#00ff00;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path3807-0-7-0"
+       cx="7"
+       cy="6.000001"
+       r="2.7499998" />
+    <circle
+       style="fill:#00ff00;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path3807-0-7-9"
+       cx="26"
+       cy="6.000001"
+       r="2.7499998" />
+    <circle
+       style="fill:#00ff00;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path3807-0-7-4"
+       cx="20"
+       cy="16"
+       r="2.7499998" />
+  </g>
+</svg>

+ 119 - 0
public/lib/potree/resources/icons/area_backup.svg

@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32px"
+   height="32px"
+   id="svg3797"
+   version="1.1"
+   inkscape:version="0.48.5 r10040"
+   sodipodi:docname="area.svg"
+   inkscape:export-filename="D:\dev\workspaces\potree\develop\resources\icons\area.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs3799" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2.7994505"
+     inkscape:cx="-38.367796"
+     inkscape:cy="-28.878944"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1920"
+     inkscape:window-height="1018"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3805" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3802">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       style="fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="M 7,25 25,25 20,15 26,5 7,5 z"
+       id="path3790"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccc" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#00ff00;fill-opacity:1;stroke:#000000;stroke-width:2.18181828999999980;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="path3807-0-1"
+       sodipodi:cx="11"
+       sodipodi:cy="22"
+       sodipodi:rx="6"
+       sodipodi:ry="6"
+       d="M 17,22 A 6,6 0 1 1 5,22 6,6 0 1 1 17,22 z"
+       transform="matrix(0.45833331,0,0,0.45833331,1.9583336,15.166667)" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#00ff00;fill-opacity:1;stroke:#000000;stroke-width:2.18181828999999980;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="path3807-0-7"
+       sodipodi:cx="11"
+       sodipodi:cy="22"
+       sodipodi:rx="6"
+       sodipodi:ry="6"
+       d="M 17,22 A 6,6 0 1 1 5,22 6,6 0 1 1 17,22 z"
+       transform="matrix(0.45833331,0,0,0.45833331,19.958334,15.166667)" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#00ff00;fill-opacity:1;stroke:#000000;stroke-width:2.18181828999999980;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="path3807-0-7-0"
+       sodipodi:cx="11"
+       sodipodi:cy="22"
+       sodipodi:rx="6"
+       sodipodi:ry="6"
+       d="M 17,22 A 6,6 0 1 1 5,22 6,6 0 1 1 17,22 z"
+       transform="matrix(0.45833331,0,0,0.45833331,1.9583336,-4.8333327)" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#00ff00;fill-opacity:1;stroke:#000000;stroke-width:2.18181828999999980;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="path3807-0-7-9"
+       sodipodi:cx="11"
+       sodipodi:cy="22"
+       sodipodi:rx="6"
+       sodipodi:ry="6"
+       d="M 17,22 A 6,6 0 1 1 5,22 6,6 0 1 1 17,22 z"
+       transform="matrix(0.45833331,0,0,0.45833331,20.958334,-4.8333327)" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#00ff00;fill-opacity:1;stroke:#000000;stroke-width:2.18181828999999980;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="path3807-0-7-4"
+       sodipodi:cx="11"
+       sodipodi:cy="22"
+       sodipodi:rx="6"
+       sodipodi:ry="6"
+       d="M 17,22 A 6,6 0 1 1 5,22 6,6 0 1 1 17,22 z"
+       transform="matrix(0.45833331,0,0,0.45833331,14.958334,5.1666673)" />
+  </g>
+</svg>

+ 114 - 0
public/lib/potree/resources/icons/arrow_ccw.svg

@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32px"
+   height="32px"
+   id="svg3797"
+   version="1.1"
+   inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
+   sodipodi:docname="arrow_ccw.svg"
+   inkscape:export-filename="D:\dev\workspaces\potree\develop\resources\icons\area.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs3799" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.313709"
+     inkscape:cx="6.1945838"
+     inkscape:cy="13.704583"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1920"
+     inkscape:window-height="1001"
+     inkscape:window-x="-9"
+     inkscape:window-y="-9"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3805" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3802">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 86,-40 v 15 l -6,7 6,-7 h 15"
+       id="path891"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#44a24a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 85.970172,-40.014914 v 15.029828 H 101 v -15.029828 z"
+       id="path843"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#ffffff;fill-opacity:0.31372549;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 86,-40 -6,7 h 15 l 6,-7 z"
+       id="path879"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#ffffff;fill-opacity:0.31372549;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 101,-40 -6,7 v 15 l 6,-7 z"
+       id="path881"
+       inkscape:connector-curvature="0" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path840"
+       d="M 79.985086,-33.029829 V -18 h 15.029828 v -15.029829 z"
+       style="fill:#ffffff;fill-opacity:0.31372549;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 80,-18 v -15 l 6,-7 h 15 v 15 l -6,7 z"
+       id="path885"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 80,-33 h 15 l 6,-7"
+       id="path887"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 95,-33 v 15"
+       id="path889"
+       inkscape:connector-curvature="0" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:32px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
+       x="1.734375"
+       y="27.5625"
+       id="text3721"><tspan
+         sodipodi:role="line"
+         id="tspan3719"
+         x="1.734375"
+         y="27.5625"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold'">⭯</tspan></text>
+  </g>
+</svg>

+ 114 - 0
public/lib/potree/resources/icons/arrow_cw.svg

@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32px"
+   height="32px"
+   id="svg3797"
+   version="1.1"
+   inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
+   sodipodi:docname="arrow_cw.svg"
+   inkscape:export-filename="D:\dev\workspaces\potree\develop\resources\icons\area.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs3799" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.313709"
+     inkscape:cx="6.1945838"
+     inkscape:cy="13.704583"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1920"
+     inkscape:window-height="1001"
+     inkscape:window-x="-9"
+     inkscape:window-y="-9"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3805" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3802">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 86,-40 v 15 l -6,7 6,-7 h 15"
+       id="path891"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#44a24a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 85.970172,-40.014914 v 15.029828 H 101 v -15.029828 z"
+       id="path843"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#ffffff;fill-opacity:0.31372549;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 86,-40 -6,7 h 15 l 6,-7 z"
+       id="path879"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#ffffff;fill-opacity:0.31372549;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 101,-40 -6,7 v 15 l 6,-7 z"
+       id="path881"
+       inkscape:connector-curvature="0" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path840"
+       d="M 79.985086,-33.029829 V -18 h 15.029828 v -15.029829 z"
+       style="fill:#ffffff;fill-opacity:0.31372549;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 80,-18 v -15 l 6,-7 h 15 v 15 l -6,7 z"
+       id="path885"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 80,-33 h 15 l 6,-7"
+       id="path887"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 95,-33 v 15"
+       id="path889"
+       inkscape:connector-curvature="0" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:bold;font-size:32px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill;-inkscape-font-specification:'sans-serif Bold';font-stretch:normal;font-variant:normal;"
+       x="1.734375"
+       y="27.5625"
+       id="text3721"><tspan
+         sodipodi:role="line"
+         id="tspan3719"
+         x="1.734375"
+         y="27.5625"
+         style="-inkscape-font-specification:'sans-serif Bold';font-family:sans-serif;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal">⭮</tspan></text>
+  </g>
+</svg>

+ 114 - 0
public/lib/potree/resources/icons/arrow_down.svg

@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32px"
+   height="32px"
+   id="svg3797"
+   version="1.1"
+   inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
+   sodipodi:docname="arrow_down.svg"
+   inkscape:export-filename="D:\dev\workspaces\potree\develop\resources\icons\area.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs3799" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.313709"
+     inkscape:cx="7.7340878"
+     inkscape:cy="16.006274"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1920"
+     inkscape:window-height="1001"
+     inkscape:window-x="-9"
+     inkscape:window-y="-9"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3805" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3802">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 86,-40 v 15 l -6,7 6,-7 h 15"
+       id="path891"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#44a24a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 85.970172,-40.014914 v 15.029828 H 101 v -15.029828 z"
+       id="path843"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#ffffff;fill-opacity:0.31372549;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 86,-40 -6,7 h 15 l 6,-7 z"
+       id="path879"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#ffffff;fill-opacity:0.31372549;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 101,-40 -6,7 v 15 l 6,-7 z"
+       id="path881"
+       inkscape:connector-curvature="0" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path840"
+       d="M 79.985086,-33.029829 V -18 h 15.029828 v -15.029829 z"
+       style="fill:#ffffff;fill-opacity:0.31372549;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 80,-18 v -15 l 6,-7 h 15 v 15 l -6,7 z"
+       id="path885"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 80,-33 h 15 l 6,-7"
+       id="path887"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 95,-33 v 15"
+       id="path889"
+       inkscape:connector-curvature="0" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:32px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="-30.265625"
+       y="-4.4375"
+       id="text3721"
+       transform="scale(-1)"><tspan
+         sodipodi:role="line"
+         id="tspan3719"
+         x="-30.265625"
+         y="-4.4375">🡅</tspan></text>
+  </g>
+</svg>

+ 114 - 0
public/lib/potree/resources/icons/arrow_left.svg

@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32px"
+   height="32px"
+   id="svg3797"
+   version="1.1"
+   inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
+   sodipodi:docname="arrow_left.svg"
+   inkscape:export-filename="D:\dev\workspaces\potree\develop\resources\icons\area.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs3799" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.313709"
+     inkscape:cx="7.7340878"
+     inkscape:cy="16.006274"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1920"
+     inkscape:window-height="1001"
+     inkscape:window-x="-9"
+     inkscape:window-y="-9"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3805" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3802">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 86,-40 v 15 l -6,7 6,-7 h 15"
+       id="path891"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#44a24a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 85.970172,-40.014914 v 15.029828 H 101 v -15.029828 z"
+       id="path843"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#ffffff;fill-opacity:0.31372549;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 86,-40 -6,7 h 15 l 6,-7 z"
+       id="path879"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#ffffff;fill-opacity:0.31372549;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 101,-40 -6,7 v 15 l 6,-7 z"
+       id="path881"
+       inkscape:connector-curvature="0" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path840"
+       d="M 79.985086,-33.029829 V -18 h 15.029828 v -15.029829 z"
+       style="fill:#ffffff;fill-opacity:0.31372549;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 80,-18 v -15 l 6,-7 h 15 v 15 l -6,7 z"
+       id="path885"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 80,-33 h 15 l 6,-7"
+       id="path887"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 95,-33 v 15"
+       id="path889"
+       inkscape:connector-curvature="0" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:32px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="-30.265625"
+       y="27.5625"
+       id="text3721"
+       transform="rotate(-90)"><tspan
+         sodipodi:role="line"
+         id="tspan3719"
+         x="-30.265625"
+         y="27.5625">🡅</tspan></text>
+  </g>
+</svg>

+ 114 - 0
public/lib/potree/resources/icons/arrow_right.svg

@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32px"
+   height="32px"
+   id="svg3797"
+   version="1.1"
+   inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
+   sodipodi:docname="arrow_right.svg"
+   inkscape:export-filename="D:\dev\workspaces\potree\develop\resources\icons\area.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs3799" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.313709"
+     inkscape:cx="7.7340878"
+     inkscape:cy="16.006274"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1920"
+     inkscape:window-height="1001"
+     inkscape:window-x="-9"
+     inkscape:window-y="-9"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3805" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3802">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 86,-40 v 15 l -6,7 6,-7 h 15"
+       id="path891"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#44a24a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 85.970172,-40.014914 v 15.029828 H 101 v -15.029828 z"
+       id="path843"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#ffffff;fill-opacity:0.31372549;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 86,-40 -6,7 h 15 l 6,-7 z"
+       id="path879"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#ffffff;fill-opacity:0.31372549;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 101,-40 -6,7 v 15 l 6,-7 z"
+       id="path881"
+       inkscape:connector-curvature="0" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path840"
+       d="M 79.985086,-33.029829 V -18 h 15.029828 v -15.029829 z"
+       style="fill:#ffffff;fill-opacity:0.31372549;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 80,-18 v -15 l 6,-7 h 15 v 15 l -6,7 z"
+       id="path885"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 80,-33 h 15 l 6,-7"
+       id="path887"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 95,-33 v 15"
+       id="path889"
+       inkscape:connector-curvature="0" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:32px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="1.734375"
+       y="-4.4375"
+       id="text3721"
+       transform="rotate(90)"><tspan
+         sodipodi:role="line"
+         id="tspan3719"
+         x="1.734375"
+         y="-4.4375">🡅</tspan></text>
+  </g>
+</svg>

+ 113 - 0
public/lib/potree/resources/icons/arrow_up.svg

@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32px"
+   height="32px"
+   id="svg3797"
+   version="1.1"
+   inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
+   sodipodi:docname="arrow_up.svg"
+   inkscape:export-filename="D:\dev\workspaces\potree\develop\resources\icons\area.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs3799" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.313709"
+     inkscape:cx="7.7340878"
+     inkscape:cy="16.006274"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1920"
+     inkscape:window-height="1001"
+     inkscape:window-x="-9"
+     inkscape:window-y="-9"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3805" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3802">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 86,-40 v 15 l -6,7 6,-7 h 15"
+       id="path891"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#44a24a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 85.970172,-40.014914 v 15.029828 H 101 v -15.029828 z"
+       id="path843"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#ffffff;fill-opacity:0.31372549;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 86,-40 -6,7 h 15 l 6,-7 z"
+       id="path879"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#ffffff;fill-opacity:0.31372549;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 101,-40 -6,7 v 15 l 6,-7 z"
+       id="path881"
+       inkscape:connector-curvature="0" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path840"
+       d="M 79.985086,-33.029829 V -18 h 15.029828 v -15.029829 z"
+       style="fill:#ffffff;fill-opacity:0.31372549;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 80,-18 v -15 l 6,-7 h 15 v 15 l -6,7 z"
+       id="path885"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 80,-33 h 15 l 6,-7"
+       id="path887"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 95,-33 v 15"
+       id="path889"
+       inkscape:connector-curvature="0" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:32px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       x="1.734375"
+       y="27.5625"
+       id="text3721"><tspan
+         sodipodi:role="line"
+         id="tspan3719"
+         x="1.734375"
+         y="27.5625">🡅</tspan></text>
+  </g>
+</svg>

+ 74 - 0
public/lib/potree/resources/icons/assign.svg

@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32px"
+   height="32px"
+   id="svg3797"
+   version="1.1"
+   inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
+   sodipodi:docname="assign.svg"
+   inkscape:export-filename="D:\dev\workspaces\potree\develop\resources\icons\volume.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs3799" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.197802"
+     inkscape:cx="31.089801"
+     inkscape:cy="13.365348"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1920"
+     inkscape:window-height="1001"
+     inkscape:window-x="-9"
+     inkscape:window-y="-9"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3805" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3802">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:51.75680923px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
+       x="3.1113412"
+       y="30.581873"
+       id="text822"><tspan
+         sodipodi:role="line"
+         id="tspan820"
+         x="3.1113412"
+         y="30.581873"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Calibri;-inkscape-font-specification:Calibri;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill">=	</tspan></text>
+  </g>
+</svg>

+ 91 - 0
public/lib/potree/resources/icons/azimuth.svg

@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32px"
+   height="32px"
+   id="svg3797"
+   version="1.1"
+   inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
+   sodipodi:docname="azimuth.svg">
+  <defs
+     id="defs3799" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="15.836083"
+     inkscape:cx="2.3785748"
+     inkscape:cy="10.557939"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="2560"
+     inkscape:window-height="1377"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     showguides="false">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3805" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3802">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     style="opacity:1">
+    <path
+       style="fill:none;fill-opacity:1;stroke:#ff0000;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
+       id="path4538"
+       sodipodi:type="arc"
+       sodipodi:cx="4.7175016"
+       sodipodi:cy="28.28166"
+       sodipodi:rx="24.657095"
+       sodipodi:ry="24.657095"
+       sodipodi:start="4.712389"
+       sodipodi:end="6.1086524"
+       d="M 4.7175021,3.6245651 A 24.657095,24.657095 0 0 1 29,24.000001 L 4.7175016,28.28166 Z" />
+    <ellipse
+       style="fill:#00ff00;fill-opacity:1;stroke:#000000;stroke-width:0.98734182;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path3807"
+       cx="4.9492879"
+       cy="28.218931"
+       rx="2.5063293"
+       ry="2.5063291" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20.17585945px;line-height:1.25;font-family:Calibri;-inkscape-font-specification:Calibri;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:4.07929277;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
+       x="1.9402113"
+       y="15.556227"
+       id="text4542"><tspan
+         sodipodi:role="line"
+         id="tspan4540"
+         x="1.9402113"
+         y="15.556227"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Calibri;-inkscape-font-specification:'Calibri Bold';fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:4.07929277;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill">N °</tspan></text>
+  </g>
+</svg>

+ 103 - 0
public/lib/potree/resources/icons/back.svg

@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32px"
+   height="32px"
+   id="svg3797"
+   version="1.1"
+   inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
+   sodipodi:docname="back.svg"
+   inkscape:export-filename="D:\dev\workspaces\potree\develop\resources\icons\area.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs3799" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.313709"
+     inkscape:cx="2.2740742"
+     inkscape:cy="12.023111"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="2560"
+     inkscape:window-height="1377"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3805" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3802">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 12,5 v 15 l -6,7 6,-7 h 15"
+       id="path891"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#44a24a;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 11.970172,4.9850856 V 20.014914 H 27 V 4.9850856 Z"
+       id="path843"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#ffffff;fill-opacity:0.31372549;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 12,5 6,12 H 21 L 27,5 Z"
+       id="path879"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#ffffff;fill-opacity:0.31372549;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 27,5 -6,7 v 15 l 6,-7 z"
+       id="path881"
+       inkscape:connector-curvature="0" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path840"
+       d="M 5.9850856,11.970171 V 27 H 21.014914 V 11.970171 Z"
+       style="fill:#ffffff;fill-opacity:0.31372549;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 6,27 V 12 l 6,-7 h 15 v 15 l -6,7 z"
+       id="path885"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 6,12 H 21 L 27,5"
+       id="path887"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 21,12 V 27"
+       id="path889"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>

+ 121 - 0
public/lib/potree/resources/icons/bottom.svg

@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32px"
+   height="32px"
+   id="svg3797"
+   version="1.1"
+   inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
+   sodipodi:docname="bottom.svg"
+   inkscape:export-filename="D:\dev\workspaces\potree\develop\resources\icons\area.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs3799">
+    <pattern
+       y="0"
+       x="0"
+       height="6"
+       width="6"
+       patternUnits="userSpaceOnUse"
+       id="EMFhbasepattern" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="4"
+     inkscape:cx="6.2210905"
+     inkscape:cy="1.1094284"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="2560"
+     inkscape:window-height="1377"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3805" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3802">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 12,5 v 15 l -6,7 6,-7 h 15"
+       id="path891"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#44a24a;fill-opacity:0;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 11.970172,4.985086 V 20.014914 H 27 V 4.985086 Z"
+       id="path843"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#e73100;fill-opacity:0;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 12,5 -6,7 v 15 l 6,-7 z"
+       id="path835"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#ffffff;fill-opacity:0.3137255;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 12,5 6,12 H 21 L 27,5 Z"
+       id="path879"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#ffffff;fill-opacity:0.31372549;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 27,5 -6,7 v 15 l 6,-7 z"
+       id="path881"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#2669e7;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+       d="m 12,20 -6,7 h 15 l 6,-7 z"
+       id="path900"
+       inkscape:connector-curvature="0" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path840"
+       d="M 5.985086,11.970171 V 27 H 21.014914 V 11.970171 Z"
+       style="fill:#ffffff;fill-opacity:0.31372549;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 6,27 V 12 l 6,-7 h 15 v 15 l -6,7 z"
+       id="path885"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 6,12 H 21 L 27,5"
+       id="path887"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 21,12 V 27"
+       id="path889"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 171 - 0
public/lib/potree/resources/icons/camera_animation.svg


+ 81 - 0
public/lib/potree/resources/icons/circle.svg

@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32px"
+   height="32px"
+   id="svg3797"
+   version="1.1"
+   inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
+   sodipodi:docname="circle.svg">
+  <defs
+     id="defs3799" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.197802"
+     inkscape:cx="7.4530809"
+     inkscape:cy="5.4019859"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1920"
+     inkscape:window-height="1001"
+     inkscape:window-x="-9"
+     inkscape:window-y="-9"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3805" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3802">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     style="opacity:1">
+    <path
+       style="fill:none;stroke:#ff0000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 16,16 25,7"
+       id="path3829"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <ellipse
+       style="fill:#00ff00;fill-opacity:1;stroke:#000000;stroke-width:0.98734182;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path3807"
+       cx="16"
+       cy="16"
+       rx="2.5063293"
+       ry="2.5063291" />
+    <ellipse
+       cy="15.956015"
+       cx="16"
+       id="circle4519"
+       style="fill:none;fill-opacity:1;stroke:#ff0000;stroke-width:1.99686539;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       rx="13.001567"
+       ry="13.045552" />
+  </g>
+</svg>

+ 74 - 0
public/lib/potree/resources/icons/circled_dot.svg

@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32px"
+   height="32px"
+   id="svg3797"
+   version="1.1"
+   inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
+   sodipodi:docname="circled_dot.svg"
+   inkscape:export-filename="D:\dev\workspaces\potree\develop\resources\icons\volume.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs3799" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.197802"
+     inkscape:cx="9.0268299"
+     inkscape:cy="15.239516"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1920"
+     inkscape:window-height="1001"
+     inkscape:window-x="-9"
+     inkscape:window-y="-9"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3805" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3802">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:31.78102684px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
+       x="2.1966684"
+       y="25.078077"
+       id="text822"><tspan
+         sodipodi:role="line"
+         id="tspan820"
+         x="2.1966684"
+         y="25.078077"
+         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Calibri;-inkscape-font-specification:Calibri;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill">⨀</tspan></text>
+  </g>
+</svg>

+ 62 - 0
public/lib/potree/resources/icons/clip-plane-x.svg

@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="24"
+   height="24"
+   viewBox="0 0 24 24"
+   version="1.1"
+   id="svg13"
+   sodipodi:docname="clip-plane-x.svg"
+   inkscape:version="0.92.1 r15371">
+  <metadata
+     id="metadata19">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs17" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1001"
+     id="namedview15"
+     showgrid="false"
+     inkscape:zoom="23.805928"
+     inkscape:cx="8.4566285"
+     inkscape:cy="9.6500557"
+     inkscape:window-x="-9"
+     inkscape:window-y="-9"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg13" />
+  <style
+     type="text/css"
+     id="style3694">
+.st0{fill:#DDDDDD;stroke:#DDDDDD;}
+</style>
+  <path
+     class="st0"
+     d="M 11.95212,2.5364655 3.0470973,7.3937514 v 9.8206226 l 8.9050227,4.751235 8.905025,-4.751235 V 7.4463721 Z M 18.355643,7.9167192 11.956168,11.331392 5.5834101,7.8551936 11.948074,4.3830437 Z M 4.6661927,9.1990428 11.142574,12.731099 v 6.967776 L 4.6661927,16.243726 Z M 12.761668,19.698875 V 12.736766 L 19.23805,9.2808065 V 16.242917 Z M 6.2852879,11.92641 9.5234785,13.692842 v 3.307002 L 6.2852879,15.27227 Z"
+     id="path11"
+     inkscape:connector-curvature="0"
+     style="fill:#dddddd;stroke:#dddddd;stroke-width:0.8095476" />
+</svg>

+ 61 - 0
public/lib/potree/resources/icons/clip-plane-y.svg

@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="24"
+   height="24"
+   viewBox="0 0 24 24"
+   version="1.1"
+   id="svg35"
+   sodipodi:docname="clip-plane-y.svg"
+   inkscape:version="0.92.1 r15371">
+  <metadata
+     id="metadata41">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs39" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1001"
+     id="namedview37"
+     showgrid="false"
+     inkscape:zoom="27.812867"
+     inkscape:cx="15.739941"
+     inkscape:cy="13.312402"
+     inkscape:window-x="-9"
+     inkscape:window-y="-9"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg35" />
+  <style
+     type="text/css"
+     id="style3694">
+.st0{fill:#DDDDDD;stroke:#DDDDDD;}
+</style>
+  <path
+     class="st0"
+     d="M 11.983343,3.156765 3.4754522,7.797433 v 9.382656 l 8.5078908,4.539347 8.507891,-4.539347 V 7.847707 Z M 18.10129,8.297078 11.98721,11.559467 5.8986542,8.238296 11.979476,4.9209921 Z M 5.0223414,9.522214 11.209898,12.896753 v 6.657038 L 5.0223414,16.252729 Z m 7.7344466,10.031577 v -6.651624 l 6.187557,-3.301835 v 6.651624 z m 4.640667,-7.374021 v 3.144826 l -3.093778,1.65053 v -3.144825 z"
+     id="path33"
+     inkscape:connector-curvature="0"
+     style="fill:#dddddd;stroke:#dddddd;stroke-width:0.77344459" />
+</svg>

+ 62 - 0
public/lib/potree/resources/icons/clip-plane-z.svg

@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="24"
+   height="24"
+   viewBox="0 0 24 24"
+   version="1.1"
+   id="svg24"
+   sodipodi:docname="clip-plane-z.svg"
+   inkscape:version="0.92.1 r15371">
+  <metadata
+     id="metadata30">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs28" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1001"
+     id="namedview26"
+     showgrid="false"
+     inkscape:zoom="19.666667"
+     inkscape:cx="18.300037"
+     inkscape:cy="12.90824"
+     inkscape:window-x="-9"
+     inkscape:window-y="-9"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg24" />
+  <style
+     type="text/css"
+     id="style3694">
+.st0{fill:#DDDDDD;stroke:#DDDDDD;}
+</style>
+  <path
+     class="st0"
+     d="M 12.112502,2.9534908 3.4367263,7.685732 v 9.567802 l 8.6757757,4.628922 8.675775,-4.628922 V 7.7369979 Z M 18.351173,8.1952365 12.116446,11.522002 5.9077448,8.1352951 12.108559,4.7525312 Z M 5.0141399,9.4445478 11.323795,12.885676 v 6.7884 L 5.0141399,16.307875 Z M 12.901209,19.674076 V 12.891197 L 19.210863,9.5242072 V 16.307086 Z M 12.104615,6.5515715 15.043336,8.1723638 12.125121,9.7292713 9.2021733,8.1352951 Z"
+     id="path22"
+     inkscape:connector-curvature="0"
+     style="fill:#dddddd;stroke:#dddddd;stroke-width:0.78870684" />
+</svg>

+ 99 - 0
public/lib/potree/resources/icons/clip-polygon.svg

@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32px"
+   height="32px"
+   id="svg3797"
+   version="1.1"
+   inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
+   sodipodi:docname="clip-polygon.svg"
+   inkscape:export-filename="D:\dev\workspaces\potree\develop\resources\icons\area.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs3799" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="31.672167"
+     inkscape:cx="10.156073"
+     inkscape:cy="15.68414"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="3840"
+     inkscape:window-height="2066"
+     inkscape:window-x="-11"
+     inkscape:window-y="-11"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3805" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3802">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       style="fill:#ffffff;fill-opacity:0.39215687;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 7,25 H 25 L 20,15 26,5.0000002 H 7 Z"
+       id="path3790"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccc" />
+    <circle
+       r="2.7499998"
+       cy="25.25"
+       cx="7"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path3807-0-1" />
+    <circle
+       r="2.7499998"
+       cy="25.25"
+       cx="25"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path3807-0-7" />
+    <circle
+       r="2.7499998"
+       cy="5.25"
+       cx="7"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path3807-0-7-0" />
+    <circle
+       r="2.7499998"
+       cy="5.25"
+       cx="26"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path3807-0-7-9" />
+    <circle
+       r="2.7499998"
+       cy="15.25"
+       cx="20"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path3807-0-7-4" />
+  </g>
+</svg>

+ 93 - 0
public/lib/potree/resources/icons/clip-screen.svg

@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32px"
+   height="32px"
+   id="svg3797"
+   version="1.1"
+   inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
+   sodipodi:docname="clip-screen.svg"
+   inkscape:export-filename="D:\dev\workspaces\potree\develop\resources\icons\area.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs3799" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="31.672167"
+     inkscape:cx="2.8713385"
+     inkscape:cy="21.081934"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="3840"
+     inkscape:window-height="2066"
+     inkscape:window-x="-11"
+     inkscape:window-y="-11"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3805" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3802">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       style="fill:#ffffff;fill-opacity:0.39215686;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 7,25.75 H 25 V 5.7500006 H 7 Z"
+       id="path3790"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <circle
+       r="2.7499998"
+       cy="26"
+       cx="7"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path3807-0-1" />
+    <circle
+       r="2.7499998"
+       cy="26"
+       cx="25"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path3807-0-7" />
+    <circle
+       r="2.7499998"
+       cy="6"
+       cx="7"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path3807-0-7-0" />
+    <circle
+       r="2.7499998"
+       cy="6"
+       cx="25"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path3807-0-7-9" />
+  </g>
+</svg>

+ 130 - 0
public/lib/potree/resources/icons/clip_volume.svg

@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32px"
+   height="32px"
+   id="svg3797"
+   version="1.1"
+   inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
+   sodipodi:docname="clip_volume.svg"
+   inkscape:export-filename="D:\dev\workspaces\potree\develop\resources\icons\clip_volume.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs3799">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 19.884691 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="32 : 20.018646 : 1"
+       inkscape:persp3d-origin="16 : 10.666667 : 1"
+       id="perspective5140" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="43.627907"
+     inkscape:cx="14.731397"
+     inkscape:cy="14.005208"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="3840"
+     inkscape:window-height="2066"
+     inkscape:window-x="-11"
+     inkscape:window-y="-11"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3805" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3802">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       style="fill:#ffffff;fill-opacity:0.39215687;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 27.999591,5.9999091 -6,5.9999999 v 16 l 6,-7 z"
+       id="path3776"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#ffffff;fill-opacity:0.39215687;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 5.4995909,12.499909 v 15 H 21.499591 v -15 z"
+       id="path4436"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#ffffff;fill-opacity:0.39215687;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 5.9995909,11.999909 11.999591,4.9999091 h 16 l -7,6.9999999 z"
+       id="path3774"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <circle
+       r="2.9375"
+       cy="5.0624089"
+       cx="10.999591"
+       style="fill:#fffff7;fill-opacity:1;stroke:#000000;stroke-width:1.06818187;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path3807-0-7-9-1" />
+    <circle
+       r="2.9375"
+       cy="5.0624089"
+       cx="26.99959"
+       style="fill:#fffff7;fill-opacity:1;stroke:#000000;stroke-width:1.06818187;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path3807-0-7-9-1-9" />
+    <circle
+       r="2.9375"
+       cy="20.999907"
+       cx="27.06209"
+       style="fill:#fffff7;fill-opacity:1;stroke:#000000;stroke-width:1.06818187;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path3807-0-7-9-1-8" />
+    <circle
+       r="2.9375"
+       cy="11.937409"
+       cx="5.9995909"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.06818187;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path3807-0-7-9-1-6" />
+    <circle
+       r="2.9375"
+       cy="12.062409"
+       cx="21.99959"
+       style="fill:#fffff7;fill-opacity:1;stroke:#000000;stroke-width:1.06818187;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path3807-0-7-9-1-5" />
+    <circle
+       r="2.9375"
+       cy="27.062408"
+       cx="5.9995909"
+       style="fill:#fffff7;fill-opacity:1;stroke:#000000;stroke-width:1.06818187;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path3807-0-7-9-1-0" />
+    <circle
+       r="2.9375"
+       cy="27.062408"
+       cx="21.99959"
+       style="fill:#fffff7;fill-opacity:1;stroke:#000000;stroke-width:1.06818187;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path3807-0-7-9-1-2" />
+  </g>
+</svg>

+ 70 - 0
public/lib/potree/resources/icons/close.svg

@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32px"
+   height="32px"
+   id="svg3797"
+   version="1.1"
+   inkscape:version="0.48.5 r10040"
+   sodipodi:docname="close.svg">
+  <defs
+     id="defs3799" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.395604"
+     inkscape:cx="9.4629706"
+     inkscape:cy="16.706715"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1920"
+     inkscape:window-height="1018"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3805" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3802">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="M 7,25 25,7"
+       id="path2986"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="M 7,7 25,25"
+       id="path2988"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 66 - 0
public/lib/potree/resources/icons/cloud.svg


+ 106 - 0
public/lib/potree/resources/icons/copy.svg

@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32px"
+   height="32px"
+   id="svg3797"
+   version="1.1"
+   inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
+   sodipodi:docname="copy.svg"
+   inkscape:export-filename="D:\dev\workspaces\potree\develop\resources\icons\volume.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs3799" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="31.672167"
+     inkscape:cx="20.254778"
+     inkscape:cy="10.53881"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="3840"
+     inkscape:window-height="2066"
+     inkscape:window-x="-11"
+     inkscape:window-y="-11"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3805" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3802">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <rect
+       style="fill:#fffffa;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect829"
+       width="15"
+       height="22"
+       x="7"
+       y="7"
+       rx="1"
+       ry="1" />
+    <rect
+       ry="1"
+       rx="1"
+       y="3"
+       x="12"
+       height="22"
+       width="15"
+       id="rect831"
+       style="fill:#fffffa;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 15,6 h 9"
+       id="path833"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 15,9 h 9"
+       id="path835"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 15,12 h 9"
+       id="path837"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 15,15 h 9"
+       id="path841"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 15,18 h 3"
+       id="path845"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>

+ 85 - 0
public/lib/potree/resources/icons/distance.svg

@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32px"
+   height="32px"
+   id="svg3797"
+   version="1.1"
+   inkscape:version="0.48.5 r10040"
+   sodipodi:docname="distance.svg">
+  <defs
+     id="defs3799" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.197802"
+     inkscape:cx="-5.9535063"
+     inkscape:cy="11.037615"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1920"
+     inkscape:window-height="1018"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3805" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3802">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="M 10,23 24,9"
+       id="path3829"
+       inkscape:connector-curvature="0" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#00ff00;fill-opacity:1;stroke:#000000;stroke-width:1.09090912;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="path3807-4"
+       sodipodi:cx="11"
+       sodipodi:cy="22"
+       sodipodi:rx="6"
+       sodipodi:ry="6"
+       d="M 17,22 A 6,6 0 1 1 5,22 6,6 0 1 1 17,22 z"
+       transform="matrix(0.61111111,0,0,0.61111111,17.777779,-4.9444445)" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#00ff00;fill-opacity:1;stroke:#000000;stroke-width:1.09090912;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       id="path3807"
+       sodipodi:cx="11"
+       sodipodi:cy="22"
+       sodipodi:rx="6"
+       sodipodi:ry="6"
+       d="M 17,22 A 6,6 0 1 1 5,22 6,6 0 1 1 17,22 z"
+       transform="matrix(0.61111111,0,0,0.61111111,0.7777778,12.055556)" />
+  </g>
+</svg>

BIN
public/lib/potree/resources/icons/earth_controls.png


+ 174 - 0
public/lib/potree/resources/icons/earth_controls.svg

@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   inkscape:export-ydpi="90"
+   inkscape:export-xdpi="90"
+   inkscape:export-filename="D:\dev\workspaces\potree\develop\resources\icons\orbit_controls.png"
+   sodipodi:docname="earth_controls.svg"
+   inkscape:version="0.48.5 r10040"
+   version="1.1"
+   id="svg3797"
+   height="32px"
+   width="32px">
+  <defs
+     id="defs3799">
+    <marker
+       inkscape:stockid="Arrow1Lstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lstart"
+       style="overflow:visible">
+      <path
+         id="path3832"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+         transform="scale(0.8) translate(12.5,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="DotL"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="DotL"
+       style="overflow:visible">
+      <path
+         id="path3893"
+         d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+         transform="scale(0.8) translate(7.4, 1)" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="15.836083"
+     inkscape:cx="20.922587"
+     inkscape:cy="17.996087"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1920"
+     inkscape:window-height="1018"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3805" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3802">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       style="fill:#000000"
+       d=""
+       id="path3840"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:0.94868326px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M -11,18.6 -11,15"
+       id="path2999-1-4"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;stroke:#000000;stroke-width:0.94868326px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m -13,16.8 2,-1.8 2,1.8"
+       id="path3001-7-0"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccc" />
+    <path
+       style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m -12,14 0,-5 -2,1 3,-6 3,6 -2,-1 0,5 z"
+       id="path3907-9"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccc" />
+    <g
+       id="g3983">
+      <path
+         sodipodi:nodetypes="cccccccc"
+         inkscape:connector-curvature="0"
+         id="path3907"
+         d="m 46,12 0,-5 -2,1 3,-6 3,6 -2,-1 0,5 z"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="cccccccc"
+         inkscape:connector-curvature="0"
+         id="path3907-4"
+         d="m 48,16 0,5 2,-1 -3,6 -3,-6 2,1 0,-5 z"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="cccccccc"
+         inkscape:connector-curvature="0"
+         id="path3907-4-8"
+         d="m 45,15 -5,0 1,2 -6,-3 6,-3 -1,2 5,0 z"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="cccccccc"
+         inkscape:connector-curvature="0"
+         id="path3907-4-8-8"
+         d="m 49,13 5,0 -1,-2 6,3 -6,3 1,-2 -5,0 z"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    </g>
+    <path
+       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 0,32 5,-20 20,0 5,20 z"
+       id="path3981"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <g
+       transform="translate(-65,-15)"
+       id="g3983-2">
+      <path
+         sodipodi:nodetypes="cccccccc"
+         inkscape:connector-curvature="0"
+         id="path3907-45"
+         d="m 46,12 0,-5 -2,1 3,-6 3,6 -2,-1 0,5 z"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="cccccccc"
+         inkscape:connector-curvature="0"
+         id="path3907-4-5"
+         d="m 48,16 0,5 2,-1 -3,6 -3,-6 2,1 0,-5 z"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="cccccccc"
+         inkscape:connector-curvature="0"
+         id="path3907-4-8-1"
+         d="m 45,15 -5,0 1,2 -6,-3 6,-3 -1,2 5,0 z"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+      <path
+         sodipodi:nodetypes="cccccccc"
+         inkscape:connector-curvature="0"
+         id="path3907-4-8-8-7"
+         d="m 49,13 5,0 -1,-2 6,3 -6,3 1,-2 -5,0 z"
+         style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    </g>
+  </g>
+</svg>

BIN
public/lib/potree/resources/icons/earth_controls_1.png


+ 77 - 0
public/lib/potree/resources/icons/eye.svg

@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32"
+   height="32"
+   viewBox="0 0 32 32"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
+   sodipodi:docname="eye.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.2"
+     inkscape:cx="6.208907"
+     inkscape:cy="12.599237"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     units="px"
+     showguides="false"
+     inkscape:window-width="2560"
+     inkscape:window-height="1377"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Ebene 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1020.3622)">
+    <circle
+       style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.15418363;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path4138"
+       cx="16.095449"
+       cy="1035.6473"
+       r="5.5625391" />
+    <circle
+       r="2.7124829"
+       cy="1034.2372"
+       cx="14.544138"
+       id="circle4140"
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2.15418363;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.5850203;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 4.8217236,1035.9095 c 0,0 3.7205455,-8.7702 11.2017564,-8.7702 6.641279,0 11.201755,8.7702 11.201755,8.7702 0,0 -2.338336,9.2599 -11.201755,9.2599 -8.671303,0 -11.2017564,-9.2599 -11.2017564,-9.2599 z"
+       id="path4136"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cscsc" />
+  </g>
+</svg>

BIN
public/lib/potree/resources/icons/eye_2.png


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 72 - 0
public/lib/potree/resources/icons/eye_2.svg


+ 93 - 0
public/lib/potree/resources/icons/eye_crossed.svg

@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32"
+   height="32"
+   viewBox="0 0 32 32"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.92.2 (5c3e80d, 2017-08-06)"
+   sodipodi:docname="eye_crossed.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="7.9195959"
+     inkscape:cx="5.6357055"
+     inkscape:cy="42.323076"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     units="px"
+     showguides="false"
+     inkscape:window-width="2560"
+     inkscape:window-height="1377"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Ebene 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1020.3622)">
+    <circle
+       style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.41670251;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path4138"
+       cx="16.223454"
+       cy="1035.5989"
+       r="6.2404151" />
+    <circle
+       r="3.0430386"
+       cy="1034.017"
+       cx="14.483093"
+       id="circle4140"
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2.41670251;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.90004301;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 3.5758608,1035.8933 c 0,0 4.1739483,-9.839 12.5668532,-9.839 7.450616,0 12.566853,9.839 12.566853,9.839 0,0 -2.623298,10.3882 -12.566853,10.3882 -9.7280272,0 -12.5668532,-10.3882 -12.5668532,-10.3882 z"
+       id="path4136"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cscsc" />
+    <g
+       id="g4150"
+       transform="matrix(0.4833405,0,0,0.4833405,0.37066284,542.71092)">
+      <path
+         style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:12;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="M 8,1044.3622 56,996.36216"
+         id="path4144"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="cc" />
+      <path
+         sodipodi:nodetypes="cc"
+         inkscape:connector-curvature="0"
+         id="path4142"
+         d="M 8,1044.3622 56,996.36216"
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:8;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    </g>
+  </g>
+</svg>

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 113 - 0
public/lib/potree/resources/icons/file_csv_2d.svg


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 161 - 0
public/lib/potree/resources/icons/file_dxf.svg


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 170 - 0
public/lib/potree/resources/icons/file_geojson.svg


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 105 - 0
public/lib/potree/resources/icons/file_las_3d.svg


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 105 - 0
public/lib/potree/resources/icons/file_potree.svg


BIN
public/lib/potree/resources/icons/flip_y_z.png


+ 101 - 0
public/lib/potree/resources/icons/flip_y_z.svg

@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32px"
+   height="32px"
+   id="svg3797"
+   version="1.1"
+   inkscape:version="0.48.5 r10040"
+   sodipodi:docname="flip_y_z.svg"
+   inkscape:export-filename="D:\dev\workspaces\potree\develop\resources\icons\flip_y_z.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs3799" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.395604"
+     inkscape:cx="14.460104"
+     inkscape:cy="12.955058"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1920"
+     inkscape:window-height="1138"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3805" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3802">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:3.01811147;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="M 7.4366091,24.160724 24.790752,6.8065759"
+       id="path3802-6"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+    <text
+       xml:space="preserve"
+       style="font-size:17.99999998999999900px;font-style:normal;font-weight:bold;line-height:122.00000286000001000%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.75452786999999999;stroke-opacity:1;font-family:Arial;-inkscape-font-specification:Arial Bold;font-stretch:normal;font-variant:normal"
+       x="5.8119869"
+       y="13.867704"
+       id="text2989"
+       sodipodi:linespacing="122%"
+       transform="scale(1.0198841,0.98050357)"><tspan
+         sodipodi:role="line"
+         id="tspan2991"
+         x="5.8119869"
+         y="13.867704"
+         style="stroke-width:0.75452786999999999;font-size:17.99999998999999900px;-inkscape-font-specification:Arial Bold;font-family:Arial;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal">y</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:17.99999998999999900px;font-style:normal;font-weight:bold;line-height:122.00000286000001000%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.75452786999999999;stroke-opacity:1;font-family:Arial;-inkscape-font-specification:Arial Bold;font-stretch:normal;font-variant:normal"
+       x="17.649065"
+       y="26.180201"
+       id="text2989-1"
+       sodipodi:linespacing="122%"
+       transform="scale(1.0198841,0.98050357)"><tspan
+         sodipodi:role="line"
+         id="tspan2991-7"
+         x="17.649065"
+         y="26.180201"
+         style="stroke-width:0.75452786999999999;font-size:17.99999998999999900px;-inkscape-font-specification:Arial Bold;font-family:Arial;font-weight:bold;font-style:normal;font-stretch:normal;font-variant:normal">z</tspan></text>
+    <path
+       style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.50905573;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="M 8.1911371,23.406196 24.036224,7.5611039"
+       id="path3802"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cc" />
+  </g>
+</svg>

+ 173 - 0
public/lib/potree/resources/icons/focus.svg

@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="32px"
+   height="32px"
+   id="svg3797"
+   version="1.1"
+   inkscape:version="0.48.5 r10040"
+   sodipodi:docname="focus.svg"
+   inkscape:export-filename="D:\dev\workspaces\potree\develop\resources\icons\focus.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs3799">
+    <marker
+       inkscape:stockid="Arrow1Lstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lstart"
+       style="overflow:visible">
+      <path
+         id="path3832"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+         transform="scale(0.8) translate(12.5,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="DotL"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="DotL"
+       style="overflow:visible">
+      <path
+         id="path3893"
+         d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+         transform="scale(0.8) translate(7.4, 1)" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.395604"
+     inkscape:cx="-3.8470599"
+     inkscape:cy="14.606522"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1920"
+     inkscape:window-height="1138"
+     inkscape:window-x="-8"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3805" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3802">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 3.3226256,9.6339284 0,-6.3660716 6.3660702,0"
+       id="path4826"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccc" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path4826"
+       id="use4839"
+       transform="matrix(0,-1,1,0,0.05476842,32.054764)"
+       width="32"
+       height="32" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use4839"
+       id="use4841"
+       transform="matrix(0,-1,1,0,0.05476842,32.054764)"
+       width="32"
+       height="32" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use4841"
+       id="use4843"
+       transform="matrix(0,-1,1,0,0.05476842,32.054764)"
+       width="32"
+       height="32" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#ffffff;fill-opacity:0;stroke:#000000;stroke-width:4.39831685;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.40000000000000002"
+       id="path4849"
+       sodipodi:cx="16.5"
+       sodipodi:cy="16.5"
+       sodipodi:rx="6.5"
+       sodipodi:ry="6.5"
+       d="m 23,16.5 a 6.5,6.5 0 1 1 -13,0 6.5,6.5 0 1 1 13,0 z"
+       transform="matrix(0.9094388,0,0,0.9094388,1.5037476,0.99425978)" />
+    <path
+       style="fill:none;stroke:#ffffff;stroke-width:1.81887758;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 3.3226256,9.6339284 0,-6.3660716 6.3660702,0"
+       id="path4826-8"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccc" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path4826-8"
+       id="use4893"
+       transform="matrix(0,-1,1,0,0.05476842,32.054764)"
+       width="32"
+       height="32" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use4893"
+       id="use4913"
+       transform="matrix(0,-1,1,0,0.05476842,32.054764)"
+       width="32"
+       height="32" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#use4913"
+       id="use4915"
+       transform="matrix(0,-1,1,0,0.05476842,32.054764)"
+       width="32"
+       height="32" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#757575;fill-opacity:0;stroke:#ffffff;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0.4"
+       id="path4849-7"
+       sodipodi:cx="16.5"
+       sodipodi:cy="16.5"
+       sodipodi:rx="6.5"
+       sodipodi:ry="6.5"
+       d="m 23,16.5 a 6.5,6.5 0 1 1 -13,0 6.5,6.5 0 1 1 13,0 z"
+       transform="matrix(0.9094388,0,0,0.9094388,1.5037476,0.99425978)"
+       inkscape:export-xdpi="90"
+       inkscape:export-ydpi="90" />
+  </g>
+</svg>

BIN
public/lib/potree/resources/icons/fps_controls.png


+ 0 - 0
public/lib/potree/resources/icons/fps_controls.svg


이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.