|
@@ -57148,7 +57148,7 @@
|
|
depthTexture:{ value: null },
|
|
depthTexture:{ value: null },
|
|
nearPlane:{value: 0.1},
|
|
nearPlane:{value: 0.1},
|
|
farPlane:{value: 100000},
|
|
farPlane:{value: 100000},
|
|
-
|
|
|
|
|
|
+ uUseOrthographicCamera:{ type: "b", value: false },
|
|
};
|
|
};
|
|
|
|
|
|
ShaderLib[ 'line' ] = {
|
|
ShaderLib[ 'line' ] = {
|
|
@@ -57397,7 +57397,8 @@
|
|
uniform vec3 diffuse;
|
|
uniform vec3 diffuse;
|
|
uniform float opacity;
|
|
uniform float opacity;
|
|
uniform float lineWidth;
|
|
uniform float lineWidth;
|
|
-
|
|
|
|
|
|
+ uniform bool uUseOrthographicCamera;
|
|
|
|
+
|
|
#ifdef USE_DASH
|
|
#ifdef USE_DASH
|
|
|
|
|
|
uniform float dashOffset;
|
|
uniform float dashOffset;
|
|
@@ -57451,9 +57452,14 @@
|
|
#if defined(GL_EXT_frag_depth) && defined(useDepth)
|
|
#if defined(GL_EXT_frag_depth) && defined(useDepth)
|
|
float convertToLinear(float zValue)
|
|
float convertToLinear(float zValue)
|
|
{
|
|
{
|
|
- float z = zValue * 2.0 - 1.0;
|
|
|
|
- return (2.0 * nearPlane * farPlane) / (farPlane + nearPlane - z * (farPlane - nearPlane));
|
|
|
|
|
|
+ if(uUseOrthographicCamera){
|
|
|
|
+ return zValue*(farPlane-nearPlane)+nearPlane;
|
|
|
|
+ }else{
|
|
|
|
+ float z = zValue * 2.0 - 1.0;
|
|
|
|
+ return (2.0 * nearPlane * farPlane) / (farPlane + nearPlane - z * (farPlane - nearPlane));
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
|
|
@@ -58035,7 +58041,7 @@
|
|
this.uniforms.nearPlane.value = camera.near;
|
|
this.uniforms.nearPlane.value = camera.near;
|
|
this.uniforms.farPlane.value = camera.far;
|
|
this.uniforms.farPlane.value = camera.far;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ this.uniforms.uUseOrthographicCamera.value = !camera.isPerspectiveCamera;
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
@@ -63549,11 +63555,17 @@ uniform vec3 baseColor;
|
|
uniform float clipDistance;
|
|
uniform float clipDistance;
|
|
uniform float maxClipFactor;
|
|
uniform float maxClipFactor;
|
|
uniform float maxOcclusionFactor;
|
|
uniform float maxOcclusionFactor;
|
|
-
|
|
|
|
|
|
+ uniform bool uUseOrthographicCamera;
|
|
|
|
+
|
|
|
|
+
|
|
float convertToLinear(float zValue)
|
|
float convertToLinear(float zValue)
|
|
{
|
|
{
|
|
- float z = zValue * 2.0 - 1.0;
|
|
|
|
- return (2.0 * nearPlane * farPlane) / (farPlane + nearPlane - z * (farPlane - nearPlane));
|
|
|
|
|
|
+ if(uUseOrthographicCamera){
|
|
|
|
+ return zValue*(farPlane-nearPlane)+nearPlane;
|
|
|
|
+ }else{
|
|
|
|
+ float z = zValue * 2.0 - 1.0;
|
|
|
|
+ return (2.0 * nearPlane * farPlane) / (farPlane + nearPlane - z * (farPlane - nearPlane));
|
|
|
|
+ }
|
|
}
|
|
}
|
|
#endif
|
|
#endif
|
|
|
|
|
|
@@ -70816,7 +70828,8 @@ void main()
|
|
|
|
|
|
let uniforms = {
|
|
let uniforms = {
|
|
resolution: { type: 'v2', value: new Vector2(width, height ) },
|
|
resolution: { type: 'v2', value: new Vector2(width, height ) },
|
|
- viewportOffset: { type: 'v2', value: new Vector2(0, 0 ) }, //left, top
|
|
|
|
|
|
+ viewportOffset: { type: 'v2', value: new Vector2(0, 0 ) }, //left, top
|
|
|
|
+ uUseOrthographicCamera:{ type: "b", value: false },
|
|
nearPlane: { type: 'f', value: 0.1 },
|
|
nearPlane: { type: 'f', value: 0.1 },
|
|
farPlane: { type: 'f', value: 10000 },
|
|
farPlane: { type: 'f', value: 10000 },
|
|
depthTexture: { type: 't', value: null },
|
|
depthTexture: { type: 't', value: null },
|
|
@@ -70830,7 +70843,8 @@ void main()
|
|
maxOcclusionFactor : { type: 'f', value: o.maxOcclusionFactor || 1 }, //0-1
|
|
maxOcclusionFactor : { type: 'f', value: o.maxOcclusionFactor || 1 }, //0-1
|
|
//-------add:-----
|
|
//-------add:-----
|
|
replaceColor : {type:'v3', value: o.replaceColor ? new Color(o.replaceColor) : null},
|
|
replaceColor : {type:'v3', value: o.replaceColor ? new Color(o.replaceColor) : null},
|
|
- beReplacedRed : {type:'f', value: o.beReplacedRed},
|
|
|
|
|
|
+ beReplacedRed : {type:'f', value: o.beReplacedRed},
|
|
|
|
+
|
|
};
|
|
};
|
|
|
|
|
|
super({
|
|
super({
|
|
@@ -70968,7 +70982,7 @@ void main()
|
|
return this
|
|
return this
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
|
|
+
|
|
|
|
|
|
|
|
|
|
updateDepthParams(e={}){//主要用于点云遮住mesh
|
|
updateDepthParams(e={}){//主要用于点云遮住mesh
|
|
@@ -70985,7 +70999,9 @@ void main()
|
|
this.uniforms.nearPlane.value = camera.near;
|
|
this.uniforms.nearPlane.value = camera.near;
|
|
this.uniforms.farPlane.value = camera.far;
|
|
this.uniforms.farPlane.value = camera.far;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ this.uniforms.uUseOrthographicCamera.value = !camera.isPerspectiveCamera;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -91552,15 +91568,12 @@ void main()
|
|
});
|
|
});
|
|
|
|
|
|
faceMesh.addEventListener('click', (e)=>{
|
|
faceMesh.addEventListener('click', (e)=>{
|
|
- /* if(navCubeViewer.switchView('ortho', directions[name] , ()=>{
|
|
|
|
- faceMesh.material.uniforms.faceColor.value.set(Colors.black)
|
|
|
|
- }) ){
|
|
|
|
- faceMesh.material.uniforms.faceColor.value.set(Colors.blue)
|
|
|
|
- } */
|
|
|
|
-
|
|
|
|
-
|
|
|
|
if(viewer.mainViewport.view.isFlying())return
|
|
if(viewer.mainViewport.view.isFlying())return
|
|
- navCubeViewer.switchView('ortho', directions[name] , ()=>{
|
|
|
|
|
|
+
|
|
|
|
+ let baseLine = viewer.scene.measurements.find(e=>e.isBaseLine); //使基准线在俯视图中水平
|
|
|
|
+ let yaw = baseLine ? new Vector2().subVectors(baseLine.points[0], baseLine.points[1]).angle() : 0;
|
|
|
|
+
|
|
|
|
+ navCubeViewer.switchView('ortho', baseLine ? {dir: new Vector3(0,0,-1),yaw,pitch: -1.5707963267948966} : directions[name] , ()=>{
|
|
faceMesh.material.uniforms.faceColor.value.set(Colors.black);
|
|
faceMesh.material.uniforms.faceColor.value.set(Colors.black);
|
|
});
|
|
});
|
|
faceMesh.material.uniforms.faceColor.value.set(Colors.blue);
|
|
faceMesh.material.uniforms.faceColor.value.set(Colors.blue);
|