|
@@ -74256,7 +74256,7 @@
|
|
|
viewer.updateFpVisiDatasets();
|
|
|
var mapViewport = viewer.mapViewer.viewports[0];
|
|
|
this.SplitScreen.split({
|
|
|
- siteModel: true /* , viewports:[{name:'Top',viewport : mapViewport }] */
|
|
|
+ siteModel: true
|
|
|
});
|
|
|
viewer.viewports.forEach(e => {
|
|
|
if (e.name != 'mapViewport') {
|
|
@@ -75743,12 +75743,14 @@
|
|
|
}
|
|
|
},
|
|
|
removeModel(model) {
|
|
|
- var _model$panos;
|
|
|
+ var _model$titleLabel, _model$panos;
|
|
|
if (this.selected == model) this.selectModel(null);
|
|
|
var dispose = e => {
|
|
|
e.geometry && e.geometry.dispose();
|
|
|
e.material && e.material.dispose();
|
|
|
};
|
|
|
+ model.skeletonHelper && model.add(model.skeletonHelper); //打包一起dispose
|
|
|
+ (_model$titleLabel = model.titleLabel) === null || _model$titleLabel === void 0 || _model$titleLabel.dispose();
|
|
|
if (model.isPointcloud) {
|
|
|
dispose(model);
|
|
|
viewer.scene.removePointCloud(model);
|
|
@@ -81988,7 +81990,7 @@
|
|
|
this.removeKey(model, keyType, key);
|
|
|
this.addKey(model, keyType, key);
|
|
|
}
|
|
|
- at(time, delta) {
|
|
|
+ at(time, delta, force) {
|
|
|
var _this = this;
|
|
|
this.dispatchEvent({
|
|
|
type: 'atTime',
|
|
@@ -82002,7 +82004,7 @@
|
|
|
}
|
|
|
var maxTime = this.duration + maxClipFadeTime / 2;
|
|
|
if (time >= maxTime) time = maxTime;
|
|
|
- if (this.time == time) return;
|
|
|
+ if (this.time == time && !force) return;
|
|
|
this.time = time; //真实值
|
|
|
|
|
|
var transitionRatio = 0.05 * delta * 60; //渐变系数,越小缓动程度越高,越平滑 //假设标准帧率为60fps,当帧率低时(delta大时) 降低缓动。速度快时缓动太高会偏移路径
|
|
@@ -82188,10 +82190,11 @@
|
|
|
this.playing && this.pause();
|
|
|
var maxTime = this.duration + maxClipFadeTime / 2;
|
|
|
this.playing = true;
|
|
|
+ this.cursorTime = time;
|
|
|
this.onUpdate = e => {
|
|
|
- time += e.delta;
|
|
|
- if (!Potree.settings.isOfficial && time >= maxTime) time = maxTime;
|
|
|
- this.at(time, e.delta);
|
|
|
+ this.cursorTime += e.delta;
|
|
|
+ if (!Potree.settings.isOfficial && time >= maxTime) this.cursorTime = maxTime;
|
|
|
+ this.at(this.cursorTime, e.delta);
|
|
|
if (!Potree.settings.isOfficial && time >= maxTime) {
|
|
|
this.dispatchEvent('stop');
|
|
|
this.pause();
|
|
@@ -82242,6 +82245,10 @@
|
|
|
} */
|
|
|
}
|
|
|
|
|
|
+ /* removeModelCallback(model){
|
|
|
+ this.poseKeys.get
|
|
|
+ } */
|
|
|
+
|
|
|
/////////////////////////////////
|
|
|
|
|
|
addPoseKey() {
|
|
@@ -91542,6 +91549,10 @@
|
|
|
|
|
|
boundingBox_.min.set(-radius, -radius, -radius);
|
|
|
boundingBox_.max.set(radius, radius, radius);
|
|
|
+
|
|
|
+ //boundingBox_.translate(center)
|
|
|
+
|
|
|
+ //2025:很少有模型用这个,之前是哪个模型有的?目前看到cesium的模型有 'http://192.168.0.25/oss/manage/media-library/result/test/tileset.json',
|
|
|
} else {
|
|
|
return console.error('json boundingVolume 缺少信息');
|
|
|
}
|
|
@@ -91712,10 +91723,9 @@
|
|
|
var model = gltf.scene;
|
|
|
if (gltf.animations.length) {
|
|
|
var skeleton = new SkeletonHelper(model);
|
|
|
- //skeleton.visible = false;
|
|
|
viewer.scene.scene.add(skeleton);
|
|
|
model.skeletonHelper = skeleton; //注意:不能覆盖model.skeleton,因其另有 */
|
|
|
- skeleton.material.opacity = 0.1;
|
|
|
+ Potree.Utils.updateVisible(skeleton, 'hide', false); //skeleton.material.opacity = 0.1
|
|
|
var mixer = new AnimationMixer(model);
|
|
|
model.actions = [];
|
|
|
gltf.animations.forEach(ani => {
|