|
@@ -63785,17 +63785,22 @@ void main() {
|
|
Potree.addModel = function(prop, done, onprogress){ //加载模型
|
|
Potree.addModel = function(prop, done, onprogress){ //加载模型
|
|
let isFirstLoad = !prop.position; //在编辑时用户添加的
|
|
let isFirstLoad = !prop.position; //在编辑时用户添加的
|
|
|
|
|
|
- let loadDone = (model)=>{
|
|
|
|
- modelEditing = model;
|
|
|
|
|
|
+ let loadDone = (model)=>{
|
|
if(isFirstLoad){
|
|
if(isFirstLoad){
|
|
|
|
+ modelEditing = model;
|
|
MergeEditor.setModelBtmHeight(model, 0); //默认离地高度为0
|
|
MergeEditor.setModelBtmHeight(model, 0); //默认离地高度为0
|
|
viewer.addEventListener('global_mousemove', moveModel);
|
|
viewer.addEventListener('global_mousemove', moveModel);
|
|
viewer.addEventListener('global_click', confirmPos, 3);
|
|
viewer.addEventListener('global_click', confirmPos, 3);
|
|
|
|
+ }else {
|
|
|
|
+ modelEditing = null;
|
|
}
|
|
}
|
|
model.updateMatrixWorld();
|
|
model.updateMatrixWorld();
|
|
viewer.updateModelBound();
|
|
viewer.updateModelBound();
|
|
|
|
|
|
- done(modelEditing);
|
|
|
|
|
|
+
|
|
|
|
+ model.boundCenter = model.boundingBox.getCenter(new Vector3);
|
|
|
|
+
|
|
|
|
+ done(model);
|
|
};
|
|
};
|
|
|
|
|
|
if(prop.type == 'laser'){
|
|
if(prop.type == 'laser'){
|
|
@@ -63803,14 +63808,15 @@ void main() {
|
|
pointcloud.matrixAutoUpdate = true;
|
|
pointcloud.matrixAutoUpdate = true;
|
|
pointcloud.initialPosition = pointcloud.position.clone();
|
|
pointcloud.initialPosition = pointcloud.position.clone();
|
|
|
|
|
|
-
|
|
|
|
pointcloud.pos1MatrixInvert = new Matrix4().setPosition(pointcloud.initialPosition).invert();
|
|
pointcloud.pos1MatrixInvert = new Matrix4().setPosition(pointcloud.initialPosition).invert();
|
|
|
|
+
|
|
let maintainBtmZ = ()=>{
|
|
let maintainBtmZ = ()=>{
|
|
MergeEditor.setModelBtmHeight(object);
|
|
MergeEditor.setModelBtmHeight(object);
|
|
updateMatrix();
|
|
updateMatrix();
|
|
};
|
|
};
|
|
let updateMatrix = ()=>{
|
|
let updateMatrix = ()=>{
|
|
setMatrix(pointcloud);
|
|
setMatrix(pointcloud);
|
|
|
|
+ pointcloud.dispatchEvent('transformChanged');
|
|
};
|
|
};
|
|
pointcloud.addEventListener('position_changed', updateMatrix );
|
|
pointcloud.addEventListener('position_changed', updateMatrix );
|
|
pointcloud.addEventListener("orientation_changed", maintainBtmZ );
|
|
pointcloud.addEventListener("orientation_changed", maintainBtmZ );
|
|
@@ -63858,6 +63864,8 @@ void main() {
|
|
let updateBound = ()=>{
|
|
let updateBound = ()=>{
|
|
object.updateMatrixWorld();
|
|
object.updateMatrixWorld();
|
|
viewer.updateModelBound();
|
|
viewer.updateModelBound();
|
|
|
|
+ object.dispatchEvent('transformChanged');
|
|
|
|
+
|
|
};
|
|
};
|
|
let maintainBtmZ = ()=>{
|
|
let maintainBtmZ = ()=>{
|
|
MergeEditor.setModelBtmHeight(object);
|
|
MergeEditor.setModelBtmHeight(object);
|
|
@@ -115002,11 +115010,11 @@ ENDSEC
|
|
else model.btmHeight = z;
|
|
else model.btmHeight = z;
|
|
|
|
|
|
model.updateMatrixWorld();
|
|
model.updateMatrixWorld();
|
|
- let boundingBox2 = model.boundingBox.clone().applyMatrix4(object.matrixWorld);
|
|
|
|
|
|
+ let boundingBox2 = model.boundingBox.clone().applyMatrix4(model.matrixWorld);
|
|
let size = boundingBox2.getSize(new Vector3);
|
|
let size = boundingBox2.getSize(new Vector3);
|
|
let center = boundingBox2.getCenter(new Vector3);
|
|
let center = boundingBox2.getCenter(new Vector3);
|
|
|
|
|
|
- object.position.z = z + size.z / 2 - center.z;
|
|
|
|
|
|
+ model.position.z = z + size.z / 2 - center.z;
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|