|
@@ -15,7 +15,7 @@ export const enter = (dom, isLocal) => {
|
|
|
}
|
|
|
|
|
|
|
|
|
- Potree.settings.notAdditiveBlending = true
|
|
|
+
|
|
|
|
|
|
const tagLimitDis = 8;
|
|
|
|
|
@@ -118,19 +118,7 @@ export const enter = (dom, isLocal) => {
|
|
|
string: viewer.unitConvert.convert(value, 'distance', void 0, measure.unitSystem, 0.1, true),
|
|
|
}
|
|
|
},
|
|
|
- /* changeUnit: unit => {
|
|
|
- //公制|英制 , 1 | 2 单位
|
|
|
- measure.setUnitSystem(units[unit])
|
|
|
- },
|
|
|
- toDataURL: (width, height) => {
|
|
|
- //截图
|
|
|
- isScreenshoting = true
|
|
|
- var promise = viewer.startScreenshot({ type: 'measure', measurement: measure, hideMarkers: true }, width, height)
|
|
|
- promise.done(() => {
|
|
|
- isScreenshoting = false
|
|
|
- })
|
|
|
- return promise
|
|
|
- }, */
|
|
|
+
|
|
|
//手动开启或关闭:
|
|
|
show: () => {
|
|
|
Potree.Utils.updateVisible(measure, 'inListByUser', true)
|
|
@@ -220,7 +208,7 @@ export const enter = (dom, isLocal) => {
|
|
|
|
|
|
getScreenByPosition(pos3d, modelId, canShelter/* , disToCameraLimit */){//通过模型局部坐标获取屏幕坐标
|
|
|
|
|
|
-
|
|
|
+ //console.log('getScreenByPoint ')
|
|
|
let isLocal = modelId != void 0
|
|
|
pos3d = new THREE.Vector3().copy(pos3d)
|
|
|
let worldPos = isLocal ? Potree.Utils.datasetPosTransform({ fromDataset: true, datasetId: modelId, position:pos3d}) : pos3d
|
|
@@ -236,7 +224,7 @@ export const enter = (dom, isLocal) => {
|
|
|
var camera = viewport.camera
|
|
|
var dom = viewer.renderArea
|
|
|
if(tagLimitDis != void 0){
|
|
|
- if(camera.position.distanceTo(worldPos) > tagLimitDis)return false
|
|
|
+ if(camera.position.distanceToSquared(worldPos) > Math.pow(tagLimitDis,2))return false
|
|
|
}
|
|
|
|
|
|
|
|
@@ -247,12 +235,14 @@ export const enter = (dom, isLocal) => {
|
|
|
},
|
|
|
|
|
|
screenshot: (width, height) => {
|
|
|
- //截图
|
|
|
- var promise = viewer.startScreenshot({ type: 'default' }, width, height)
|
|
|
- promise.done(() => {
|
|
|
-
|
|
|
+ //截图
|
|
|
+ var {getImagePromise, finishPromise} = viewer.startScreenshot({ type: 'default' }, width, height)
|
|
|
+ var deferred = $.Deferred();
|
|
|
+ finishPromise.done(({dataUrl}) => {
|
|
|
+ deferred.resolve(dataUrl)
|
|
|
})
|
|
|
- return promise
|
|
|
+
|
|
|
+ return deferred.promise()
|
|
|
},
|
|
|
getPose() {//获取当前点位和朝向
|
|
|
const camera = viewer.scene.getActiveCamera()
|
|
@@ -424,7 +414,7 @@ export const enter = (dom, isLocal) => {
|
|
|
|
|
|
Potree.addModel(prop, prop.done , prop.progressFun, prop.onError)
|
|
|
prop.loading = true
|
|
|
- console.log('-------开始加载 id:', prop.id, 'title:', prop.title, ', filename:',getName(prop.url), prop )
|
|
|
+ console.log('-------开始加载 id:', prop.id, 'title:', prop.title, ', filename:', getName(prop.url), prop )
|
|
|
}
|
|
|
|
|
|
let spliceFromArr = (model,loaded)=>{
|
|
@@ -500,16 +490,11 @@ export const enter = (dom, isLocal) => {
|
|
|
spliceFromArr(model,false)
|
|
|
}
|
|
|
|
|
|
- if(props.type == "glb"){////////////////////////////test
|
|
|
- if(props.url.includes('coffeemat')){
|
|
|
- props.url = '/lib/potree/resources/models/glb/coffeemat.glb'
|
|
|
-
|
|
|
- }
|
|
|
- //props.url += '5'
|
|
|
- //props.url = 'http://localhost:5173/api/profile/datav1/1537680519838306304/data/glb/cloud_glb_24.glb'
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+ try{
|
|
|
+ props.url = JSON.parse(props.url) //去掉 '\'
|
|
|
+ }catch(e){}
|
|
|
+
|
|
|
props.done = done; props.progressFun = progressFun; props.onError = onError
|
|
|
|
|
|
|
|
@@ -528,6 +513,7 @@ export const enter = (dom, isLocal) => {
|
|
|
props.show = show //for autoLoads show model
|
|
|
if(model){
|
|
|
Potree.Utils.updateVisible(model, 'changeShow', show)
|
|
|
+ viewer.dispatchEvent('content_changed')
|
|
|
}
|
|
|
},
|
|
|
changeSelect(state){
|
|
@@ -551,9 +537,9 @@ export const enter = (dom, isLocal) => {
|
|
|
if(opacity == void 0)opacity = 100
|
|
|
opacity/=100
|
|
|
|
|
|
-
|
|
|
+ MergeEditor.changeOpacity(model, opacity)
|
|
|
|
|
|
- if(model){
|
|
|
+ /* if(model){
|
|
|
if(model.isPointcloud){
|
|
|
model.changePointOpacity(opacity)
|
|
|
//MergeEditor.updateEdgeStrength()
|
|
@@ -581,14 +567,10 @@ export const enter = (dom, isLocal) => {
|
|
|
|
|
|
}
|
|
|
})
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+ }
|
|
|
|
|
|
model.opacity = opacity//记录在最外层
|
|
|
- }
|
|
|
+ } */
|
|
|
|
|
|
},
|
|
|
changeBottom(z){
|
|
@@ -626,6 +608,7 @@ export const enter = (dom, isLocal) => {
|
|
|
}
|
|
|
},
|
|
|
enterMoveMode(){
|
|
|
+ console.log('enterMoveMode')
|
|
|
if(model){
|
|
|
if(MergeEditor.split){//分屏校准
|
|
|
MergeEditor.setTransformState('translate')
|
|
@@ -638,7 +621,7 @@ export const enter = (dom, isLocal) => {
|
|
|
}
|
|
|
},
|
|
|
leaveTransform(){
|
|
|
-
|
|
|
+ console.log('leaveTransform')
|
|
|
if(MergeEditor.split){//分屏校准
|
|
|
MergeEditor.setTransformState(null)
|
|
|
}else{
|
|
@@ -759,6 +742,7 @@ export const enter = (dom, isLocal) => {
|
|
|
|
|
|
destroy(){
|
|
|
model && MergeEditor.removeModel(model)
|
|
|
+ viewer.dispatchEvent('content_changed')
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -942,7 +926,13 @@ export const enter = (dom, isLocal) => {
|
|
|
|
|
|
|
|
|
function getName(url){
|
|
|
- return url.split('/').pop()
|
|
|
+ let get = (e)=>{
|
|
|
+ return e.split('/').pop()
|
|
|
+ }
|
|
|
+ if(url instanceof Array){
|
|
|
+ return url.map(e=>get(e))
|
|
|
+ }
|
|
|
+ return get(url)
|
|
|
}
|
|
|
|
|
|
|