Potree UI fixes, threejs update, CSS fixes, jquery ui integration, standby update, still need to get the textured model to display properly
|
@ -3,20 +3,23 @@ import '../css/Standby.scss';
|
|||
|
||||
class Standby extends React.Component {
|
||||
static defaultProps = {
|
||||
message: ""
|
||||
message: "",
|
||||
show: false
|
||||
};
|
||||
|
||||
static propTypes = {
|
||||
message: React.PropTypes.string
|
||||
message: React.PropTypes.string,
|
||||
show: React.PropTypes.bool
|
||||
};
|
||||
|
||||
constructor(props){
|
||||
super(props);
|
||||
|
||||
this.state = {
|
||||
message: props.message,
|
||||
show: false
|
||||
}
|
||||
this.state = props;
|
||||
}
|
||||
|
||||
componentWillReceiveProps(nextProps){
|
||||
this.setState(nextProps);
|
||||
}
|
||||
|
||||
show(message = null){
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
@import '../vendor/potree/js/potree.css';
|
||||
@import '../vendor/potree/js/jquery-ui.css';
|
||||
|
||||
[data-modelview]{
|
||||
height: 100%;
|
||||
}
|
||||
.model-view{
|
||||
position: relative;
|
||||
height: 80%;
|
||||
|
||||
canvas{
|
||||
|
@ -32,35 +36,52 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.switchModeButton{
|
||||
bottom: 12px;
|
||||
}
|
||||
.asset-download-buttons{
|
||||
|
||||
input[type="checkbox"]{
|
||||
position: relative;
|
||||
top: -48px;
|
||||
left: 12px;
|
||||
top: 2px;
|
||||
}
|
||||
|
||||
&.open{
|
||||
.dropdown-toggle{
|
||||
background-color: #f4f4f4;
|
||||
color: #111;
|
||||
}
|
||||
button{
|
||||
outline: none;
|
||||
}
|
||||
.action-buttons{
|
||||
padding: 12px;
|
||||
background-color: #19282c;
|
||||
|
||||
.textured-model-chkbox-container{
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
button{
|
||||
background-color: #fff;
|
||||
color: #111;
|
||||
border-width: 1px;
|
||||
label{
|
||||
color: #7a8184;
|
||||
}
|
||||
|
||||
&:hover{
|
||||
background-color: #f4f4f4;
|
||||
.switchModeButton{
|
||||
position: initial;
|
||||
}
|
||||
|
||||
.asset-download-buttons{
|
||||
margin-right: 8px;
|
||||
&.open{
|
||||
.dropdown-toggle{
|
||||
background-color: #f4f4f4;
|
||||
color: #111;
|
||||
}
|
||||
button{
|
||||
outline: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
button{
|
||||
background-color: #fff;
|
||||
color: #111;
|
||||
border-width: 1px;
|
||||
|
||||
&:hover{
|
||||
background-color: #f4f4f4;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Potree specific */
|
||||
#potree_map{
|
||||
|
@ -92,681 +113,48 @@
|
|||
border: 2px solid rgba(0,0,0,0.5);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
/* 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-light-color: rgba( 48, 61, 65, 1);
|
||||
--bg-dark-color: rgba( 24, 31, 33, 1);
|
||||
--bg-hover-color: var(--color-2);
|
||||
|
||||
--font-color: #9AA1A4;
|
||||
--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_container{
|
||||
/*font-size: 75%;*/
|
||||
}
|
||||
|
||||
.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_description{
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
text-align: center
|
||||
}
|
||||
|
||||
#potree_sidebar_container{
|
||||
position: absolute;
|
||||
z-index: 0;
|
||||
width: 300px;
|
||||
height: 100%;
|
||||
a{
|
||||
color: #111;
|
||||
}
|
||||
|
||||
overflow-y: auto;
|
||||
font-size: 85%;
|
||||
overflow: hidden;
|
||||
border-right: 1px solid black;
|
||||
}
|
||||
|
||||
.potree_sidebar_brand{
|
||||
margin: 1px 20px;
|
||||
line-height: 2em;
|
||||
font-size: 100%;
|
||||
font-weight: bold;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#potree_sidebar_container a{
|
||||
color: #8Aa1c4;
|
||||
//color: red;
|
||||
}
|
||||
|
||||
.potree_menu_toggle{
|
||||
position: absolute;
|
||||
float: left;
|
||||
margin: 8px 8px;
|
||||
background: none;
|
||||
width: 2.5em;
|
||||
height: 2.5em;
|
||||
z-index: 100;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#potree_map_toggle{
|
||||
position: absolute;
|
||||
float: left;
|
||||
margin: 8px 8px;
|
||||
background: none;
|
||||
width: 2.5em;
|
||||
height: 2.5em;
|
||||
z-index: 100;
|
||||
top: calc(2.5em + 8px);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#potree_render_area{
|
||||
position: absolute;
|
||||
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{
|
||||
-webkit-transition: opacity .1s;
|
||||
transition: opacity .1s;
|
||||
position: absolute;
|
||||
padding: 10px;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.annotation-titlebar{
|
||||
color: white;
|
||||
background-color: black;
|
||||
border-radius: 1.5em;
|
||||
font-size: 1em;
|
||||
opacity: 1;
|
||||
margin: auto;
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
.annotation-expand{
|
||||
color: white;
|
||||
font-size: 0.6em;
|
||||
opacity: 1;
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
.annotation-action-icon{
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
filter: invert(1);
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
line-height: 1.5em;
|
||||
text-align: center;
|
||||
font-family: Arial;
|
||||
font-weight: bold;
|
||||
padding: 1px 8px 0px 1px;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.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{
|
||||
//position: relative;
|
||||
display: inline-block;
|
||||
height: 100%;
|
||||
flex-grow: 1;
|
||||
//margin: 2px 8px;
|
||||
user-select: none;
|
||||
z-index: 100;
|
||||
width: fit-content;
|
||||
vertical-align: middle;
|
||||
line-height: 1.5em;
|
||||
//text-align: center;
|
||||
font-family: Arial;
|
||||
font-weight: bold;
|
||||
padding: 1px 8px 0px 8px;
|
||||
cursor: default;
|
||||
user-select: none;
|
||||
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;
|
||||
}
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
.axis {
|
||||
font: 10px sans-serif;
|
||||
color: var(--font-color);
|
||||
}
|
||||
|
||||
.axis path{
|
||||
fill: none;
|
||||
stroke: var(--font-color);
|
||||
shape-rendering: crispEdges;
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
.axis line {
|
||||
fill: none;
|
||||
stroke: var(--font-color);
|
||||
shape-rendering: crispEdges;
|
||||
opacity: 0.1;
|
||||
}
|
||||
|
||||
|
||||
.measurement-panel-icon{
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.measurement-panel-title{
|
||||
flex-grow: 1;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.measurement-panel-remove{
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.measurement-detail-node-marker{
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: 6px;
|
||||
margin: auto;
|
||||
text-align: center;
|
||||
background-color: var(--measurement-detail-node-bg-light);
|
||||
color: var(--border-color);
|
||||
}
|
||||
|
||||
.measurement-detail-node-area{
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: 6px;
|
||||
margin: auto;
|
||||
margin-top: 15px;
|
||||
text-align: center;
|
||||
background-color: var(--measurement-detail-node-bg-light);
|
||||
color: var(--border-color);
|
||||
}
|
||||
|
||||
.measurement-detail-node-angle{
|
||||
border: 1px solid var(--border-color);
|
||||
width: 50%;
|
||||
margin: auto;
|
||||
border-radius: 6px;
|
||||
text-align: center;
|
||||
background-color: var(--measurement-detail-node-bg-);
|
||||
color: var(--border-color);
|
||||
}
|
||||
|
||||
.measurement-detail-node-distance{
|
||||
border: 1px solid var(--border-color);
|
||||
width: 50%;
|
||||
margin: auto;
|
||||
border-radius: 6px;
|
||||
text-align: center;
|
||||
background-color: var(--measurement-detail-node-bg-dark);
|
||||
color: var(--border-color);
|
||||
}
|
||||
|
||||
.measurement-detail-edge{
|
||||
border: 1px solid var(--border-color);
|
||||
width: 0px;
|
||||
height: 2px;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
#measurement_details .panel-body{
|
||||
padding: 5px 3px;
|
||||
}
|
||||
|
||||
.measurement-detail-button{
|
||||
width: 100%;
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.pv-panel-heading{
|
||||
padding: 4px !important;
|
||||
display: flex;
|
||||
flex-direction: row
|
||||
}
|
||||
|
||||
.pv-menu-list{
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.pv-menu-list > *{
|
||||
margin: 8px 20px;
|
||||
}
|
||||
|
||||
|
||||
.pv-menu-list > li > .ui-slider{
|
||||
background-color: var(--color-1) !important;
|
||||
background: none;
|
||||
border: 1px solid black;
|
||||
}
|
||||
|
||||
.pv-menu-list > div > li > .ui-slider{
|
||||
background-color: var(--color-1) !important;
|
||||
background: none;
|
||||
border: 1px solid black;
|
||||
}
|
||||
|
||||
.pv-menu-list > li > label{
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.pv-menu-list select{
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.pv-menu-list > li > span{
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.pv-menu-list .ui-selectmenu-button span.ui-selectmenu-text{
|
||||
line-height: 0.8em;
|
||||
}
|
||||
|
||||
.ui-selectmenu-text{
|
||||
background-color: white;
|
||||
}
|
||||
background-color: #19282c;
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
.ui-widget-content{
|
||||
background-color: none !important;
|
||||
color: var(--font-color) !important;
|
||||
}
|
||||
|
||||
.navmenu{
|
||||
background-color: var(--color-2) !important;
|
||||
border-color: var(--color-2) !important;
|
||||
}
|
||||
|
||||
.accordion{
|
||||
background-color: var(--bg-color);
|
||||
color: var(--color-1);
|
||||
}
|
||||
|
||||
.accordion > h3{
|
||||
background-color: var(--color-1) !important;
|
||||
background: #f6f6f6 50% 50% repeat-x;
|
||||
border: none;
|
||||
color: var(--color-2);
|
||||
padding: 4px 10px 4px 30px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.accordion > div{
|
||||
background: none !important;
|
||||
}
|
||||
|
||||
.accordion-header{
|
||||
margin: 2px 0 0 0;
|
||||
}
|
||||
|
||||
.accordion-content{
|
||||
padding: 0px 0px !important;
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
#measurement_details .pv-menu-list > li{
|
||||
margin: 20px 10px;
|
||||
}
|
||||
|
||||
.pv-menu-list > .pv-divider{
|
||||
border-top: 1px solid black;
|
||||
opacity: 0.2;
|
||||
margin: 8px 0px;
|
||||
}
|
||||
|
||||
.pv-menu-list-header{
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.pv-menu-item{
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.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-container-button{
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* no scrollbar styling in firefox, sadly */
|
||||
.navmenu::-webkit-scrollbar{
|
||||
height: 12px;
|
||||
}
|
||||
|
||||
.navmenu::-webkit-scrollbar-track{
|
||||
background: rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.navmenu::-webkit-scrollbar-thumb{
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
|
||||
.pv-titlebar{
|
||||
background-color: var(--color-1);
|
||||
color: #var(--color-2);
|
||||
font-weight: 700;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.pv-main-color{
|
||||
background: var(--bg-color);
|
||||
}
|
||||
|
||||
.profile-button:hover{
|
||||
background-color: #0000CC;
|
||||
}
|
||||
|
||||
.unselectable{
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.selectable{
|
||||
-webkit-touch-callout: text;
|
||||
-webkit-user-select: text;
|
||||
-khtml-user-select: text;
|
||||
-moz-user-select: text;
|
||||
-ms-user-select: text;
|
||||
user-select: text;
|
||||
}
|
||||
#sidebar_root{
|
||||
width: 300px;
|
||||
|
||||
.pv-menu-list{
|
||||
padding-right: 12px;
|
||||
|
||||
.divider{
|
||||
padding: 10px 0px 15px 0px;
|
||||
}
|
||||
}
|
||||
|
||||
.divider {
|
||||
display: block;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
font-weight: bold;
|
||||
font-size: 90%;
|
||||
letter-spacing: 1px;
|
||||
margin-left: -20px;
|
||||
margin-right: -20px;
|
||||
}
|
||||
|
||||
.divider > span {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
}
|
||||
.measurement-panel-remove:hover{
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.divider > span:before,
|
||||
.divider > span:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: 9999px;
|
||||
height: 1px;
|
||||
background: #b2b2b2;
|
||||
}
|
||||
position: absolute;
|
||||
min-height: 100%;
|
||||
height: 100%;
|
||||
|
||||
.divider > span:before {
|
||||
right: 100%;
|
||||
margin-right: 5px;
|
||||
}
|
||||
.potree_sidebar_brand{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.divider > span:after {
|
||||
left: 100%;
|
||||
margin-left: 5px;
|
||||
#potree_version_number{
|
||||
color: #9AA1A4;
|
||||
font-size: 80%;
|
||||
font-weight: 100;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.ol-dragbox {
|
||||
background-color: rgba(255,255,255,0.4);
|
||||
border-color: rgba(100,150,0,1);
|
||||
border: 1px solid red;
|
||||
#potree_download_profile_ortho_link, #potree_download_profile_link{
|
||||
color: black;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* HOVER MENU */
|
||||
|
||||
.hover_menu{
|
||||
position: absolute;
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
border: 0px;
|
||||
border-radius: 100px;
|
||||
display: block;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.hover_menu_icon{
|
||||
position: absolute;
|
||||
//border: 1px solid black;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
padding: 6px;
|
||||
opacity: 0.5;
|
||||
background-color: white;
|
||||
filter:invert(100%);
|
||||
border-radius: 100px;
|
||||
}
|
||||
.hover_menu_icon:hover{
|
||||
opacity: 1.0;
|
||||
box-shadow: 0 0 5px #ffffff;
|
||||
}
|
||||
|
||||
.hover_menu_icon > img{
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.hover_menu_item{
|
||||
background: black;
|
||||
border-radius: 100px;
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
width:32px;
|
||||
height: 32px;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.hover_menu_item:hover{
|
||||
opacity: 1.0;
|
||||
box-shadow: 0 0 5px #ffffff;
|
||||
}
|
||||
|
||||
.hover_menu_item > img{
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
filter: invert(100%);
|
||||
}
|
||||
|
||||
|
||||
.measurepanel_downloads {
|
||||
position: relative;
|
||||
bottom: -5px;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.measurepanel_downloads:hover{
|
||||
position: relative;
|
||||
bottom: -5px;
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
.standby{
|
||||
z-index: 1;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
*
|
||||
* @author angelxuanchang
|
||||
*/
|
||||
var THREE = require('three');
|
||||
var THREE = require('./potree/js/three');
|
||||
function MTLLoader( manager ) {
|
||||
|
||||
this.manager = ( manager !== undefined ) ? manager : THREE.DefaultLoadingManager;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/**
|
||||
* @author mrdoob / http://mrdoob.com/
|
||||
*/
|
||||
var THREE = require('three');
|
||||
var THREE = require('./potree/js/three');
|
||||
|
||||
THREE.OBJLoader = function ( manager ) {
|
||||
|
||||
|
|
|
@ -0,0 +1,62 @@
|
|||
|
||||
============
|
||||
== POTREE ==
|
||||
============
|
||||
|
||||
http://potree.org
|
||||
|
||||
Copyright (c) 2011-2017, 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.
|
||||
|
||||
|
||||
=====================
|
||||
== PLASIO / LASLAZ ==
|
||||
=====================
|
||||
|
||||
http://plas.io/
|
||||
|
||||
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.
|
|
@ -3,7 +3,7 @@
|
|||
* @author mrdoob / http://mrdoob.com/
|
||||
* @author Daosheng Mu / https://github.com/DaoshengMu/
|
||||
*/
|
||||
const THREE = require('three'); // import does not work :/
|
||||
const THREE = require('./three'); // import does not work :/
|
||||
THREE.ImageUtils = {
|
||||
|
||||
crossOrigin: undefined,
|
||||
|
|
|
@ -1,171 +0,0 @@
|
|||
/**
|
||||
* @author mrdoob / http://mrdoob.com/
|
||||
*/
|
||||
|
||||
var Stats = function () {
|
||||
|
||||
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 + 1000 ) {
|
||||
|
||||
fpsPanel.update( ( frames * 1000 ) / ( time - prevTime ), 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 ) );
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
export { Stats as default };
|
Po Szerokość: | Wysokość: | Rozmiar: 418 B |
Po Szerokość: | Wysokość: | Rozmiar: 312 B |
Po Szerokość: | Wysokość: | Rozmiar: 205 B |
Po Szerokość: | Wysokość: | Rozmiar: 262 B |
Po Szerokość: | Wysokość: | Rozmiar: 348 B |
Po Szerokość: | Wysokość: | Rozmiar: 207 B |
BIN
app/static/app/js/vendor/potree/js/images/ui-bg_gloss-wave_35_f6a828_500x100.png
vendored
100644
Po Szerokość: | Wysokość: | Rozmiar: 5.7 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 278 B |
Po Szerokość: | Wysokość: | Rozmiar: 328 B |
Po Szerokość: | Wysokość: | Rozmiar: 6.8 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 4.4 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 4.4 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 4.4 KiB |
Po Szerokość: | Wysokość: | Rozmiar: 6.2 KiB |
|
@ -0,0 +1,671 @@
|
|||
|
||||
/* 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-light-color: rgba( 48, 61, 65, 1);
|
||||
--bg-dark-color: rgba( 24, 31, 33, 1);
|
||||
--bg-hover-color: var(--color-2);
|
||||
|
||||
--font-color: #9AA1A4;
|
||||
--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_container{
|
||||
/*font-size: 75%;*/
|
||||
}
|
||||
|
||||
.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_description{
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
text-align: center
|
||||
}
|
||||
|
||||
#potree_sidebar_container{
|
||||
position: absolute;
|
||||
z-index: 0;
|
||||
width: 300px;
|
||||
height: 100%;
|
||||
overflow-y: auto;
|
||||
font-size: 85%;
|
||||
overflow: hidden;
|
||||
border-right: 1px solid black;
|
||||
}
|
||||
|
||||
.potree_sidebar_brand{
|
||||
margin: 1px 20px;
|
||||
line-height: 2em;
|
||||
font-size: 100%;
|
||||
font-weight: bold;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#potree_sidebar_container a{
|
||||
color: #8Aa1c4;
|
||||
//color: red;
|
||||
}
|
||||
|
||||
.potree_menu_toggle{
|
||||
position: absolute;
|
||||
float: left;
|
||||
margin: 8px 8px;
|
||||
background: none;
|
||||
width: 2.5em;
|
||||
height: 2.5em;
|
||||
z-index: 100;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#potree_map_toggle{
|
||||
position: absolute;
|
||||
float: left;
|
||||
margin: 8px 8px;
|
||||
background: none;
|
||||
width: 2.5em;
|
||||
height: 2.5em;
|
||||
z-index: 100;
|
||||
top: calc(2.5em + 8px);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#potree_render_area{
|
||||
position: absolute;
|
||||
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);
|
||||
}
|
||||
|
||||
.annotation{
|
||||
-webkit-transition: opacity .1s;
|
||||
transition: opacity .1s;
|
||||
position: absolute;
|
||||
padding: 10px;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.annotation-titlebar{
|
||||
color: white;
|
||||
background-color: black;
|
||||
border-radius: 1.5em;
|
||||
font-size: 1em;
|
||||
opacity: 1;
|
||||
margin: auto;
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
.annotation-expand{
|
||||
color: white;
|
||||
font-size: 0.6em;
|
||||
opacity: 1;
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
.annotation-action-icon{
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
filter: invert(1);
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
line-height: 1.5em;
|
||||
text-align: center;
|
||||
font-family: Arial;
|
||||
font-weight: bold;
|
||||
padding: 1px 8px 0px 1px;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.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{
|
||||
//position: relative;
|
||||
display: inline-block;
|
||||
height: 100%;
|
||||
flex-grow: 1;
|
||||
//margin: 2px 8px;
|
||||
user-select: none;
|
||||
z-index: 100;
|
||||
width: fit-content;
|
||||
vertical-align: middle;
|
||||
line-height: 1.5em;
|
||||
//text-align: center;
|
||||
font-family: Arial;
|
||||
font-weight: bold;
|
||||
padding: 1px 8px 0px 8px;
|
||||
cursor: default;
|
||||
user-select: none;
|
||||
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;
|
||||
}
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
.axis {
|
||||
font: 10px sans-serif;
|
||||
color: var(--font-color);
|
||||
}
|
||||
|
||||
.axis path{
|
||||
fill: none;
|
||||
stroke: var(--font-color);
|
||||
shape-rendering: crispEdges;
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
.axis line {
|
||||
fill: none;
|
||||
stroke: var(--font-color);
|
||||
shape-rendering: crispEdges;
|
||||
opacity: 0.1;
|
||||
}
|
||||
|
||||
|
||||
.measurement-panel-icon{
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.measurement-panel-title{
|
||||
flex-grow: 1;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.measurement-panel-remove{
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.measurement-detail-node-marker{
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: 6px;
|
||||
margin: auto;
|
||||
text-align: center;
|
||||
background-color: var(--measurement-detail-node-bg-light);
|
||||
color: var(--border-color);
|
||||
}
|
||||
|
||||
.measurement-detail-node-area{
|
||||
border: 1px solid var(--border-color);
|
||||
border-radius: 6px;
|
||||
margin: auto;
|
||||
margin-top: 15px;
|
||||
text-align: center;
|
||||
background-color: var(--measurement-detail-node-bg-light);
|
||||
color: var(--border-color);
|
||||
}
|
||||
|
||||
.measurement-detail-node-angle{
|
||||
border: 1px solid var(--border-color);
|
||||
width: 50%;
|
||||
margin: auto;
|
||||
border-radius: 6px;
|
||||
text-align: center;
|
||||
background-color: var(--measurement-detail-node-bg-);
|
||||
color: var(--border-color);
|
||||
}
|
||||
|
||||
.measurement-detail-node-distance{
|
||||
border: 1px solid var(--border-color);
|
||||
width: 50%;
|
||||
margin: auto;
|
||||
border-radius: 6px;
|
||||
text-align: center;
|
||||
background-color: var(--measurement-detail-node-bg-dark);
|
||||
color: var(--border-color);
|
||||
}
|
||||
|
||||
.measurement-detail-edge{
|
||||
border: 1px solid var(--border-color);
|
||||
width: 0px;
|
||||
height: 2px;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
#measurement_details .panel-body{
|
||||
padding: 5px 3px;
|
||||
}
|
||||
|
||||
.measurement-detail-button{
|
||||
width: 100%;
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.pv-panel-heading{
|
||||
padding: 4px !important;
|
||||
display: flex;
|
||||
flex-direction: row
|
||||
}
|
||||
|
||||
.pv-menu-list{
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.pv-menu-list > *{
|
||||
margin: 8px 20px;
|
||||
}
|
||||
|
||||
|
||||
.pv-menu-list > li > .ui-slider{
|
||||
background-color: var(--color-1) !important;
|
||||
background: none;
|
||||
border: 1px solid black;
|
||||
}
|
||||
|
||||
.pv-menu-list > div > li > .ui-slider{
|
||||
background-color: var(--color-1) !important;
|
||||
background: none;
|
||||
border: 1px solid black;
|
||||
}
|
||||
|
||||
.pv-menu-list > li > label{
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.pv-menu-list select{
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.pv-menu-list > li > span{
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.pv-menu-list .ui-selectmenu-button span.ui-selectmenu-text{
|
||||
line-height: 0.8em;
|
||||
}
|
||||
|
||||
.ui-selectmenu-text{
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
.ui-widget-content{
|
||||
background-color: none !important;
|
||||
color: var(--font-color) !important;
|
||||
}
|
||||
|
||||
.navmenu{
|
||||
background-color: var(--color-2) !important;
|
||||
border-color: var(--color-2) !important;
|
||||
}
|
||||
|
||||
.accordion{
|
||||
background-color: var(--bg-color);
|
||||
color: var(--color-1);
|
||||
}
|
||||
|
||||
.accordion > h3{
|
||||
background-color: var(--color-1) !important;
|
||||
background: #f6f6f6 50% 50% repeat-x;
|
||||
border: none;
|
||||
color: var(--color-2);
|
||||
padding: 4px 10px 4px 30px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.accordion > div{
|
||||
background: none !important;
|
||||
}
|
||||
|
||||
.accordion-header{
|
||||
margin: 2px 0 0 0;
|
||||
}
|
||||
|
||||
.accordion-content{
|
||||
padding: 0px 0px !important;
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
#measurement_details .pv-menu-list > li{
|
||||
margin: 20px 10px;
|
||||
}
|
||||
|
||||
.pv-menu-list > .pv-divider{
|
||||
border-top: 1px solid black;
|
||||
opacity: 0.2;
|
||||
margin: 8px 0px;
|
||||
}
|
||||
|
||||
.pv-menu-list-header{
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.pv-menu-item{
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.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-container-button{
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* no scrollbar styling in firefox, sadly */
|
||||
.navmenu::-webkit-scrollbar{
|
||||
height: 12px;
|
||||
}
|
||||
|
||||
.navmenu::-webkit-scrollbar-track{
|
||||
background: rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.navmenu::-webkit-scrollbar-thumb{
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
|
||||
.pv-titlebar{
|
||||
background-color: var(--color-1);
|
||||
color: #var(--color-2);
|
||||
font-weight: 700;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.pv-main-color{
|
||||
background: var(--bg-color);
|
||||
}
|
||||
|
||||
.profile-button:hover{
|
||||
background-color: #0000CC;
|
||||
}
|
||||
|
||||
.unselectable{
|
||||
-webkit-touch-callout: none;
|
||||
-webkit-user-select: none;
|
||||
-khtml-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.selectable{
|
||||
-webkit-touch-callout: text;
|
||||
-webkit-user-select: text;
|
||||
-khtml-user-select: text;
|
||||
-moz-user-select: text;
|
||||
-ms-user-select: text;
|
||||
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: -20px;
|
||||
margin-right: -20px;
|
||||
}
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* HOVER MENU */
|
||||
|
||||
.hover_menu{
|
||||
position: absolute;
|
||||
width: 28px;
|
||||
height: 28px;
|
||||
border: 0px;
|
||||
border-radius: 100px;
|
||||
display: block;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.hover_menu_icon{
|
||||
position: absolute;
|
||||
//border: 1px solid black;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
padding: 6px;
|
||||
opacity: 0.5;
|
||||
background-color: white;
|
||||
filter:invert(100%);
|
||||
border-radius: 100px;
|
||||
}
|
||||
.hover_menu_icon:hover{
|
||||
opacity: 1.0;
|
||||
box-shadow: 0 0 5px #ffffff;
|
||||
}
|
||||
|
||||
.hover_menu_icon > img{
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.hover_menu_item{
|
||||
background: black;
|
||||
border-radius: 100px;
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
width:32px;
|
||||
height: 32px;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.hover_menu_item:hover{
|
||||
opacity: 1.0;
|
||||
box-shadow: 0 0 5px #ffffff;
|
||||
}
|
||||
|
||||
.hover_menu_item > img{
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
filter: invert(100%);
|
||||
}
|
||||
|
||||
|
||||
.measurepanel_downloads {
|
||||
position: relative;
|
||||
bottom: -5px;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.measurepanel_downloads:hover{
|
||||
position: relative;
|
||||
bottom: -5px;
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
|
@ -1,16 +1,24 @@
|
|||
const THREE = require('three'); // import does not work :/
|
||||
const THREE = require('./three.js'); // import does not work :/
|
||||
import './ImageUtils';
|
||||
import './jquery-ui';
|
||||
import './jquery-ui.css';
|
||||
import BinaryHeap from './BinaryHeap';
|
||||
import proj4 from 'proj4';
|
||||
import Stats from './Stats';
|
||||
import TWEEN from 'tween.js';
|
||||
import ol from 'openlayers';
|
||||
import $ from 'jquery';
|
||||
import i18n from 'i18next';
|
||||
import i18n from './i18next';
|
||||
import jqueryi18n from 'jquery-i18next';
|
||||
import d3 from 'd3';
|
||||
|
||||
console.log(i18n);
|
||||
jqueryi18n.init(i18n, $, {
|
||||
tName: 't', // --> appends $.t = i18next.t
|
||||
i18nName: 'i18n', // --> appends $.i18n = i18next
|
||||
handleName: 'i18n', // --> appends $(selector).localize(opts);
|
||||
selectorAttr: 'data-i18n', // selector for translating elements
|
||||
targetAttr: 'i18n-target', // data-() attribute to grab target element to translate (if diffrent then itself)
|
||||
optionsAttr: 'i18n-options', // data-() attribute that contains options, will load/set if useOptionsAttr = true
|
||||
useOptionsAttr: false, // see optionsAttr
|
||||
parseDefaultValueFromContent: false // parses default values from content ele.val or ele.text
|
||||
});
|
||||
|
||||
function Potree(){
|
||||
|
||||
|
@ -12754,11 +12762,6 @@ Potree.Viewer = class PotreeViewer extends THREE.EventDispatcher{
|
|||
|
||||
this.progressBar = new ProgressBar();
|
||||
|
||||
this.stats = new Stats();
|
||||
this.stats.showPanel( 0 ); // 0: fps, 1: ms, 2: mb, 3+: custom
|
||||
document.body.appendChild( this.stats.dom );
|
||||
this.stats.dom.style.left = "100px";
|
||||
|
||||
this.potreeRenderer = null;
|
||||
this.highQualityRenderer = null;
|
||||
this.edlRenderer = null;
|
||||
|
@ -12809,11 +12812,10 @@ Potree.Viewer = class PotreeViewer extends THREE.EventDispatcher{
|
|||
}
|
||||
|
||||
|
||||
//if(e.pointcloud.projection){
|
||||
// this.mapView = new Potree.MapView(this);
|
||||
// this.mapView.init();
|
||||
//}
|
||||
|
||||
// if(e.pointcloud.projection){
|
||||
// this.mapView = new Potree.MapView(this);
|
||||
// this.mapView.init();
|
||||
// }
|
||||
};
|
||||
|
||||
this.addEventListener("scene_changed", (e) => {
|
||||
|
@ -13800,7 +13802,7 @@ Potree.Viewer = class PotreeViewer extends THREE.EventDispatcher{
|
|||
|
||||
loadGUI(callback){
|
||||
var sidebarContainer = $('#potree_sidebar_container');
|
||||
sidebarContainer.load(new URL(Potree.scriptPath + "/sidebar.html").href, () => {
|
||||
// sidebarContainer.load(new URL(Potree.scriptPath + "/sidebar_webodm.html").href, () => {
|
||||
|
||||
sidebarContainer.css("width", "300px");
|
||||
sidebarContainer.css("height", "100%");
|
||||
|
@ -13819,9 +13821,9 @@ Potree.Viewer = class PotreeViewer extends THREE.EventDispatcher{
|
|||
viewer.renderArea.insertBefore(imgMapToggle, viewer.renderArea.children[0]);
|
||||
viewer.renderArea.insertBefore(imgMenuToggle, viewer.renderArea.children[0]);
|
||||
|
||||
this.mapView = new Potree.MapView(this);
|
||||
this.mapView.init();
|
||||
|
||||
// this.mapView = new Potree.MapView(this);
|
||||
// this.mapView.init();
|
||||
|
||||
i18n.init({
|
||||
lng: 'en',
|
||||
resGetPath: Potree.resourcePath + '/lang/__lng__/__ns__.json',
|
||||
|
@ -13830,7 +13832,7 @@ Potree.Viewer = class PotreeViewer extends THREE.EventDispatcher{
|
|||
debug: false
|
||||
}, function(t) {
|
||||
// Start translation once everything is loaded
|
||||
// $("body").i18n();
|
||||
$("body").i18n();
|
||||
});
|
||||
|
||||
$(function() {
|
||||
|
@ -13846,15 +13848,12 @@ Potree.Viewer = class PotreeViewer extends THREE.EventDispatcher{
|
|||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
// });
|
||||
}
|
||||
|
||||
setLanguage(lang){
|
||||
// i18n.setLng(lang);
|
||||
// $("body").i18n();
|
||||
i18n.setLng(lang);
|
||||
$("body").i18n();
|
||||
}
|
||||
|
||||
initThree(){
|
||||
|
@ -14224,8 +14223,6 @@ Potree.Viewer = class PotreeViewer extends THREE.EventDispatcher{
|
|||
|
||||
requestAnimationFrame(this.loop.bind(this));
|
||||
|
||||
this.stats.begin();
|
||||
|
||||
//var start = new Date().getTime();
|
||||
this.update(this.clock.getDelta(), timestamp);
|
||||
//var end = new Date().getTime();
|
||||
|
@ -14269,9 +14266,6 @@ Potree.Viewer = class PotreeViewer extends THREE.EventDispatcher{
|
|||
// w.document.write('<img src="'+screenshot+'"/>');
|
||||
//}
|
||||
|
||||
this.stats.end();
|
||||
|
||||
|
||||
Potree.framenumber++;
|
||||
};
|
||||
|
||||
|
@ -15845,7 +15839,7 @@ Potree.MapView = class{
|
|||
init(){
|
||||
$( "#potree_map" ).draggable({ handle: $('#potree_map_header') });
|
||||
$( "#potree_map" ).resizable();
|
||||
//$( "#potree_map_toggle" ).css("display", "block");
|
||||
$( "#potree_map_toggle" ).css("display", "block");
|
||||
|
||||
let extentsLayer = this.getExtentsLayer();
|
||||
let cameraLayer = this.getCameraLayer();
|
||||
|
@ -17592,7 +17586,7 @@ function initMeasurementDetails(){
|
|||
scene.removeEventListener("marker_added", updateDisplay);
|
||||
scene.removeEventListener("marker_removed", updateDisplay);
|
||||
scene.removeEventListener("marker_moved", updateDisplay);
|
||||
$(elLi).remove();
|
||||
$(element).remove();
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -17804,8 +17798,7 @@ let initSidebar = function(){
|
|||
initSceneList();
|
||||
initSettings()
|
||||
|
||||
$('#potree_version_number').html(Potree.version.major + "." + Potree.version.minor + Potree.version.suffix);
|
||||
// $('.perfect_scrollbar').perfectScrollbar();
|
||||
$('#potree_version_number').html("Potree " + Potree.version.major + "." + Potree.version.minor + Potree.version.suffix);
|
||||
}
|
||||
class HoverMenuItem{
|
||||
|
||||
|
|
|
@ -1,264 +0,0 @@
|
|||
|
||||
<div id="sidebar_root"
|
||||
class="perfect_scrollbar navmenu navmenu-default navmenu-fixed-left unselectable"
|
||||
style="position: absolute; min-height: 100%; height: 100%; width: calc(100% - 1px); border-right: 1px solid black !important; overflow: hidden">
|
||||
<span class="potree_sidebar_brand" style="display: flex; flex-direction: row">
|
||||
<a href="http://potree.org" target="_blank">potree.org</a>
|
||||
<span style="margin: 0px 3px; color: #9AA1A4"> - </span>
|
||||
<a href="https://github.com/potree/potree" target="_blank">github</a>
|
||||
<span style="margin: 0px 3px; color: #9AA1A4"> - </span>
|
||||
<a href="https://twitter.com/m_schuetz" target="_blank">twitter</a>
|
||||
<span style="flex-grow: 1"></span>
|
||||
<span id="potree_version_number" style="color: #9AA1A4; font-size: 80%; font-weight: 100"></span>
|
||||
</span>
|
||||
<div style="font-family:arial;">
|
||||
<a href="javascript:viewer.setLanguage('en');" style="margin-left: 30px;">EN</a> -
|
||||
<a href="javascript:viewer.setLanguage('fr');">FR</a> -
|
||||
<a href="javascript:viewer.setLanguage('de');">DE</a>
|
||||
</div>
|
||||
<div>
|
||||
<!--<div id="accordion" class="accordion">-->
|
||||
<div class="accordion">
|
||||
|
||||
<!-- APPEARANCE -->
|
||||
<h3 id="menu_appearance"><span data-i18n="tb.rendering_opt"></span></h3>
|
||||
<div>
|
||||
<ul class="pv-menu-list">
|
||||
<li><span data-i18n="appearance.nb_max_pts"></span>:<span id="lblPointBudget"></span> <div id="sldPointBudget"></div> </li>
|
||||
<li><span data-i18n="appearance.point_size"></span>:<span id="lblPointSize"></span> <div id="sldPointSize"></div> </li>
|
||||
<li><span data-i18n="appearance.field_view"></span>:<span id="lblFOV"></span><div id="sldFOV"></div> </li>
|
||||
<li><span data-i18n="appearance.point_opacity"></span>:<span id="lblOpacity"></span><div id="sldOpacity"></div> </li>
|
||||
|
||||
<li>
|
||||
<label for="optPointSizing" class="pv-select-label" data-i18n="appearance.point_size_type">Point Sizing </label>
|
||||
<select id="optPointSizing" name="optPointSizing">
|
||||
<option>Fixed</option>
|
||||
<option>Attenuated</option>
|
||||
<option>Adaptive</option>
|
||||
</select>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<label for="optQuality" class="pv-select-label" data-i18n="appearance.point_quality"></label>
|
||||
<select id="optQuality" name="optQuality">
|
||||
<option>Squares</option>
|
||||
<option>Circles</option>
|
||||
<option>Interpolation</option>
|
||||
<!--<option value="Splats">HQ-Splats</option>-->
|
||||
</select>
|
||||
</li>
|
||||
|
||||
<div>
|
||||
<div class="divider">
|
||||
<span>Eye-Dome-Lighting</span>
|
||||
</div>
|
||||
|
||||
<li><label><input type="checkbox" id="chkEDLEnabled" onClick="viewer.setEDLEnabled(this.checked)"/><span data-i18n="appearance.edl_enable"></span></label></li>
|
||||
<li><span data-i18n="appearance.edl_radius"></span>:<span id="lblEDLRadius"></span><div id="sldEDLRadius"></div></li>
|
||||
<li><span data-i18n="appearance.edl_strength"></span>:<span id="lblEDLStrength"></span><div id="sldEDLStrength"></div></li>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="divider">
|
||||
<span>Background</span>
|
||||
</div>
|
||||
|
||||
<li><label><input type="radio" name="background" value="skybox" onClick='viewer.setBackground("skybox")'/><span>Skybox</span></label></li>
|
||||
<li><label><input type="radio" name="background" value="gradient" onClick='viewer.setBackground("gradient")'/><span>Gradient</span></label></li>
|
||||
<li><label><input type="radio" name="background" value="black" onClick='viewer.setBackground("black")'/><span>Black</span></label></li>
|
||||
<li><label><input type="radio" name="background" value="white" onClick='viewer.setBackground("white")'/><span>White</span></label></li>
|
||||
</div>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- TOOLS -->
|
||||
<h3 id="menu_tools"><span data-i18n="tb.tools_opt"></span></h3>
|
||||
<div>
|
||||
<ul class="pv-menu-list">
|
||||
<div>
|
||||
|
||||
<li id="tools"></li>
|
||||
|
||||
<div class="divider" style="padding: 10px 0px 15px 0px">
|
||||
<span>Navigation</span>
|
||||
</div>
|
||||
<li id="navigation"></li>
|
||||
<li><span data-i18n="appearance.move_speed"></span>: <span id="lblMoveSpeed"></span><div id="sldMoveSpeed"></div></li>
|
||||
|
||||
</div>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- MEASUREMENTS -->
|
||||
<h3 id="menu_measurements"><span data-i18n="tb.measurments_opt"></span></h3>
|
||||
<div>
|
||||
<ul class="pv-menu-list selectable" id="measurement_details"></ul>
|
||||
</div>
|
||||
|
||||
<!-- ANNOTATIONS -->
|
||||
<h3 id="menu_annotations"><span data-i18n="tb.annotations_opt"></span></h3>
|
||||
<div>
|
||||
<ul class="pv-menu-list selectable" id="annotation_details"></ul>
|
||||
</div>
|
||||
|
||||
<!-- MATERIALS -->
|
||||
<h3 id="menu_materials"><span data-i18n="tb.materials_opt"></span></h3>
|
||||
<div>
|
||||
<ul class="pv-menu-list">
|
||||
<li>
|
||||
<label for="optMaterial" class="pv-select-label">Attributes:</label><br>
|
||||
<select id="optMaterial" name="optMaterial">
|
||||
</select>
|
||||
</li>
|
||||
|
||||
<div id="materials.composite_weight_container">
|
||||
<div class="divider">
|
||||
<span>Attribute Weights</span>
|
||||
</div>
|
||||
|
||||
<li>RGB: <span id="lblWeightRGB"></span> <div id="sldWeightRGB"></div> </li>
|
||||
<li>Intensity: <span id="lblWeightIntensity"></span> <div id="sldWeightIntensity"></div> </li>
|
||||
<li>Elevation: <span id="lblWeightElevation"></span> <div id="sldWeightElevation"></div> </li>
|
||||
<li>Classification: <span id="lblWeightClassification"></span> <div id="sldWeightClassification"></div> </li>
|
||||
<li>Return Number: <span id="lblWeightReturnNumber"></span> <div id="sldWeightReturnNumber"></div> </li>
|
||||
<li>Source ID: <span id="lblWeightSourceID"></span> <div id="sldWeightSourceID"></div> </li>
|
||||
</div>
|
||||
|
||||
<div id="materials.rgb_container">
|
||||
<div class="divider">
|
||||
<span>RGB</span>
|
||||
</div>
|
||||
|
||||
<li>Gamma: <span id="lblRGBGamma"></span> <div id="sldRGBGamma"></div> </li>
|
||||
<li>Brightness: <span id="lblRGBBrightness"></span> <div id="sldRGBBrightness"></div> </li>
|
||||
<li>Contrast: <span id="lblRGBContrast"></span> <div id="sldRGBContrast"></div> </li>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="materials.elevation_container">
|
||||
<div class="divider">
|
||||
<span>Elevation</span>
|
||||
</div>
|
||||
|
||||
<li><span data-i18n="appearance.elevation_range"></span>: <span id="lblHeightRange"></span> <div id="sldHeightRange"></div> </li>
|
||||
</div>
|
||||
|
||||
<div id="materials.transition_container">
|
||||
<div class="divider">
|
||||
<span>Transition</span>
|
||||
</div>
|
||||
|
||||
<li>transition: <span id="lblTransition"></span> <div id="sldTransition"></div> </li>
|
||||
</div>
|
||||
|
||||
<div id="materials.intensity_container">
|
||||
<div class="divider">
|
||||
<span>Intensity</span>
|
||||
</div>
|
||||
|
||||
<li>Range: <span id="lblIntensityRange"></span> <div id="sldIntensityRange"></div> </li>
|
||||
<li>Gamma: <span id="lblIntensityGamma"></span> <div id="sldIntensityGamma"></div> </li>
|
||||
<li>Brightness: <span id="lblIntensityBrightness"></span> <div id="sldIntensityBrightness"></div> </li>
|
||||
<li>Contrast: <span id="lblIntensityContrast"></span> <div id="sldIntensityContrast"></div> </li>
|
||||
</div>
|
||||
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- Scene -->
|
||||
<h3 id="menu_scene"><span data-i18n="tb.scene_opt"></span></h3>
|
||||
<div>
|
||||
<ul class="pv-menu-list selectable">
|
||||
<div>
|
||||
<li><span data-i18n="scene.camera_position"></span>:<span id="lblCameraPosition"></span></li>
|
||||
<li><span data-i18n="scene.camera_target"></span>:<span id="lblCameraTarget"></span></li>
|
||||
|
||||
|
||||
<div class="divider" style="padding: 10px 0px 15px 0px">
|
||||
<span>Point Clouds</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<li id="sceneList"></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- Classification -->
|
||||
<h3 id="menu_classification"><span data-i18n="tb.classification_filter_opt"></span></h3>
|
||||
<div>
|
||||
<ul id="classificationList" class="pv-menu-list"></ul>
|
||||
</div>
|
||||
|
||||
<!-- Other Settings -->
|
||||
<h3 id="menu_other_settings"><span data-i18n="tb.parameters_opt"></span></h3>
|
||||
<div>
|
||||
<ul class="pv-menu-list">
|
||||
<li><span data-i18n="appearance.min_node_size"></span><span id="lblMinNodeSize"></span><div id="sldMinNodeSize"></div> </li>
|
||||
<li>
|
||||
<label for="optClipMode" class="pv-select-label"><span data-i18n="appearance.clip_mode"></span></label>
|
||||
<select id="optClipMode" name="optClipMode">
|
||||
<option>No Clipping</option>
|
||||
<option>Highlight Inside</option>
|
||||
<option>Clip Outside</option>
|
||||
</select>
|
||||
</li>
|
||||
<li><label><input type="checkbox" onClick="viewer.setShowBoundingBox(this.checked)"/><span data-i18n="appearance.box"></span></label></li>
|
||||
<li><label><input type="checkbox" onClick="viewer.setFreeze(this.checked)"/><span data-i18n="appearance.freeze"></span></label></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<h3 id="menu_about"><span data-i18n="tb.about_opt"></span></h3>
|
||||
<div>
|
||||
<ul class="pv-menu-list">
|
||||
<li><a href="http://potree.org" target="_blank">Potree</a> is a viewer for large point cloud / LIDAR data sets, developed at the Vienna University of Technology.
|
||||
<a href="https://github.com/potree/potree" target="_blank">(github)</a>
|
||||
</li>
|
||||
<li>Author: <a href="mailto:mschuetz@potree.org">Markus Schütz</a></li>
|
||||
<li>License: <a target="_blank" href="http://potree.org/wp/potree_license/">FreeBSD (2-clause BSD)<a></li>
|
||||
<li>Libraries:
|
||||
<ul>
|
||||
<li><a target="_blank" href="http://threejs.org/">three.js</a></li>
|
||||
<li><a target="_blank" href="https://jquery.com/">Jquery</a></li>
|
||||
<li><a target="_blank" href="http://www.laszip.org/">laszip</a></li>
|
||||
<li><a target="_blank" href="https://github.com/verma/plasio">Plas.io (laslaz) </a></li>
|
||||
<li><a target="_blank" href="http://openlayers.org/">OpenLayers3</a></li>
|
||||
<li><a target="_blank" href="http://proj4js.org/">proj4js</a></li>
|
||||
<li><a target="_blank" href="https://github.com/tweenjs/tween.js/">tween</a></li>
|
||||
<li><a target="_blank" href="https://github.com/i18next/i18next/">i18next</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Donators:
|
||||
<ul>
|
||||
<li><a target="_blank" href="http://rapidlasso.com/">rapidlasso</a></li>
|
||||
<li><a target="_blank" href="https://georepublic.info/en/">georepublic</a></li>
|
||||
<li><a target="_blank" href="http://sitn.ne.ch/">sitn</a></li>
|
||||
<li><a target="_blank" href="http://www.veesus.com/veesus/index.php">Veesus</a></li>
|
||||
<li><a target="_blank" href="http://sigeom.ch/">sigeom sa</a></li>
|
||||
<li><a target="_blank" href="http://archpro.lbg.ac.at/">LBI ArchPro</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Credits:
|
||||
<ul>
|
||||
<li><a target="_blank" href="https://www.cg.tuwien.ac.at/staff/MichaelWimmer.html">Michael Wimmer</a> &
|
||||
<a target="_blank" href="https://www.cg.tuwien.ac.at/staff/ClausScheiblauer.html">Claus Scheiblauer</a></li>
|
||||
<li><a target="_blank" href="https://www.cg.tuwien.ac.at/">TU Wien, Insitute of Computer Graphics and Algorithms</a></li>
|
||||
<li><a target="_blank" href="https://harvest4d.org/">Harvest4D</a></li>
|
||||
<li><a target="_blank" href="http://rapidlasso.com/">rapidlasso</a></li>
|
||||
<li><a target="_blank" href="https://georepublic.info/en/">georepublic</a></li>
|
||||
<li><a target="_blank" href="http://hobu.co/">Howard Butler, Uday Verma, Connor Manning</a></li>
|
||||
<li><a target="_blank" href="http://www.danielgm.net/cc/">Cloud Compare</a></li>
|
||||
<li><a target="_blank" href="http://sitn.ne.ch/">sitn</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -28,17 +28,17 @@
|
|||
"babel-preset-es2015": "^6.16.0",
|
||||
"babel-preset-react": "^6.16.0",
|
||||
"css-loader": "^0.25.0",
|
||||
"d3": "^3.5.5",
|
||||
"extract-text-webpack-plugin": "^1.0.1",
|
||||
"file-loader": "^0.9.0",
|
||||
"gl-matrix": "^2.3.2",
|
||||
"i18next": "^7.1.2",
|
||||
"immutability-helper": "^2.0.0",
|
||||
"jquery-i18next": "^1.2.0",
|
||||
"json-loader": "^0.5.4",
|
||||
"leaflet": "^1.0.1",
|
||||
"leaflet-measure": "^2.0.5",
|
||||
"node-sass": "^3.10.1",
|
||||
"object.values": "^1.0.3",
|
||||
"openlayers": "^4.0.1",
|
||||
"perfect-scrollbar": "^0.6.16",
|
||||
"proj4": "^2.4.3",
|
||||
"raw-loader": "^0.5.1",
|
||||
|
@ -47,8 +47,6 @@
|
|||
"react-hot-loader": "^3.0.0-beta.5",
|
||||
"sass-loader": "^4.0.2",
|
||||
"style-loader": "^0.13.1",
|
||||
"three": "^0.83.0",
|
||||
"three-orbit-controls": "^82.1.0",
|
||||
"tween.js": "^16.6.0",
|
||||
"url-loader": "^0.5.7",
|
||||
"webpack": "^1.13.2",
|
||||
|
|