zero2geospatial3d-sdk 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- zero2geospatial3d/__init__.py +105 -0
- zero2geospatial3d/acoustics.py +284 -0
- zero2geospatial3d/classify.py +379 -0
- zero2geospatial3d/cli.py +367 -0
- zero2geospatial3d/comfort.py +687 -0
- zero2geospatial3d/data/epw_stations.json.gz +0 -0
- zero2geospatial3d/daylight.py +337 -0
- zero2geospatial3d/dispersion.py +249 -0
- zero2geospatial3d/epw.py +162 -0
- zero2geospatial3d/geo.py +138 -0
- zero2geospatial3d/grid.py +119 -0
- zero2geospatial3d/microclimate.py +388 -0
- zero2geospatial3d/morphology.py +283 -0
- zero2geospatial3d/nsga2.py +315 -0
- zero2geospatial3d/osm.py +450 -0
- zero2geospatial3d/osm_tags.py +180 -0
- zero2geospatial3d/py.typed +0 -0
- zero2geospatial3d/results.py +231 -0
- zero2geospatial3d/road_sources.py +141 -0
- zero2geospatial3d/scene.py +555 -0
- zero2geospatial3d/server.py +332 -0
- zero2geospatial3d/shading.py +443 -0
- zero2geospatial3d/solar.py +207 -0
- zero2geospatial3d/terrain.py +610 -0
- zero2geospatial3d/urban_form.py +326 -0
- zero2geospatial3d/walkability.py +380 -0
- zero2geospatial3d/weather.py +373 -0
- zero2geospatial3d/web/index.html +50 -0
- zero2geospatial3d/web/src/analysis/climate.js +278 -0
- zero2geospatial3d/web/src/analysis/compliance.js +345 -0
- zero2geospatial3d/web/src/analysis/gpu.js +431 -0
- zero2geospatial3d/web/src/analysis/optimize.js +208 -0
- zero2geospatial3d/web/src/analysis/runners.js +1644 -0
- zero2geospatial3d/web/src/analysis/terrain_results.js +145 -0
- zero2geospatial3d/web/src/app.js +630 -0
- zero2geospatial3d/web/src/core/acoustics.js +341 -0
- zero2geospatial3d/web/src/core/classify.js +158 -0
- zero2geospatial3d/web/src/core/comfort.js +686 -0
- zero2geospatial3d/web/src/core/daylight_rule.js +199 -0
- zero2geospatial3d/web/src/core/dispersion.js +264 -0
- zero2geospatial3d/web/src/core/microclimate.js +372 -0
- zero2geospatial3d/web/src/core/morphology.js +153 -0
- zero2geospatial3d/web/src/core/nsga2.js +181 -0
- zero2geospatial3d/web/src/core/party_walls.js +60 -0
- zero2geospatial3d/web/src/core/road_sources.js +127 -0
- zero2geospatial3d/web/src/core/solar.js +112 -0
- zero2geospatial3d/web/src/core/terrain_analysis.js +267 -0
- zero2geospatial3d/web/src/core/terrain_math.js +279 -0
- zero2geospatial3d/web/src/core/urban_form.js +405 -0
- zero2geospatial3d/web/src/core/walkability.js +316 -0
- zero2geospatial3d/web/src/core/weather.js +225 -0
- zero2geospatial3d/web/src/core/wind.js +131 -0
- zero2geospatial3d/web/src/export/check_pdf.js +74 -0
- zero2geospatial3d/web/src/export/exporters.js +556 -0
- zero2geospatial3d/web/src/export/pdf.js +149 -0
- zero2geospatial3d/web/src/export/snapshot.js +234 -0
- zero2geospatial3d/web/src/export/snapshot_scene.js +150 -0
- zero2geospatial3d/web/src/main.js +75 -0
- zero2geospatial3d/web/src/scene/objects.js +645 -0
- zero2geospatial3d/web/src/scene/overlay.js +145 -0
- zero2geospatial3d/web/src/scene/terrain.js +546 -0
- zero2geospatial3d/web/src/scene/viewer.js +275 -0
- zero2geospatial3d/web/src/scene/wind_streamlines.js +336 -0
- zero2geospatial3d/web/src/style.css +225 -0
- zero2geospatial3d/web/src/ui/building_report.js +404 -0
- zero2geospatial3d/web/src/ui/charts.js +441 -0
- zero2geospatial3d/web/src/ui/colorize.js +101 -0
- zero2geospatial3d/web/src/ui/compare.js +362 -0
- zero2geospatial3d/web/src/ui/dom.js +104 -0
- zero2geospatial3d/web/src/ui/panel_analyze.js +742 -0
- zero2geospatial3d/web/src/ui/panel_compare.js +294 -0
- zero2geospatial3d/web/src/ui/panel_layers.js +172 -0
- zero2geospatial3d/web/src/ui/panel_terrain.js +277 -0
- zero2geospatial3d/web/src/ui/qgis_link.js +127 -0
- zero2geospatial3d/web/src/ui/sunclock.js +45 -0
- zero2geospatial3d/web/src/ui/tools.js +197 -0
- zero2geospatial3d/web/src/ui/viewtools.js +173 -0
- zero2geospatial3d/web/vendor/three/addons/controls/OrbitControls.js +1417 -0
- zero2geospatial3d/web/vendor/three/addons/exporters/GLTFExporter.js +3309 -0
- zero2geospatial3d/web/vendor/three/addons/utils/TextureUtils.js +98 -0
- zero2geospatial3d/web/vendor/three/three.module.js +53044 -0
- zero2geospatial3d/wind.py +178 -0
- zero2geospatial3d_sdk-0.1.0.dist-info/METADATA +219 -0
- zero2geospatial3d_sdk-0.1.0.dist-info/RECORD +89 -0
- zero2geospatial3d_sdk-0.1.0.dist-info/WHEEL +5 -0
- zero2geospatial3d_sdk-0.1.0.dist-info/entry_points.txt +2 -0
- zero2geospatial3d_sdk-0.1.0.dist-info/licenses/LICENSE +21 -0
- zero2geospatial3d_sdk-0.1.0.dist-info/licenses/THIRD_PARTY_NOTICES.md +52 -0
- zero2geospatial3d_sdk-0.1.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import {
|
|
2
|
+
PlaneGeometry,
|
|
3
|
+
ShaderMaterial,
|
|
4
|
+
Uniform,
|
|
5
|
+
Mesh,
|
|
6
|
+
PerspectiveCamera,
|
|
7
|
+
Scene,
|
|
8
|
+
WebGLRenderer,
|
|
9
|
+
CanvasTexture,
|
|
10
|
+
SRGBColorSpace
|
|
11
|
+
} from 'three';
|
|
12
|
+
|
|
13
|
+
let _renderer;
|
|
14
|
+
let fullscreenQuadGeometry;
|
|
15
|
+
let fullscreenQuadMaterial;
|
|
16
|
+
let fullscreenQuad;
|
|
17
|
+
|
|
18
|
+
export function decompress( texture, maxTextureSize = Infinity, renderer = null ) {
|
|
19
|
+
|
|
20
|
+
if ( ! fullscreenQuadGeometry ) fullscreenQuadGeometry = new PlaneGeometry( 2, 2, 1, 1 );
|
|
21
|
+
if ( ! fullscreenQuadMaterial ) fullscreenQuadMaterial = new ShaderMaterial( {
|
|
22
|
+
uniforms: { blitTexture: new Uniform( texture ) },
|
|
23
|
+
vertexShader: `
|
|
24
|
+
varying vec2 vUv;
|
|
25
|
+
void main(){
|
|
26
|
+
vUv = uv;
|
|
27
|
+
gl_Position = vec4(position.xy * 1.0,0.,.999999);
|
|
28
|
+
}`,
|
|
29
|
+
fragmentShader: `
|
|
30
|
+
uniform sampler2D blitTexture;
|
|
31
|
+
varying vec2 vUv;
|
|
32
|
+
|
|
33
|
+
void main(){
|
|
34
|
+
gl_FragColor = vec4(vUv.xy, 0, 1);
|
|
35
|
+
|
|
36
|
+
#ifdef IS_SRGB
|
|
37
|
+
gl_FragColor = LinearTosRGB( texture2D( blitTexture, vUv) );
|
|
38
|
+
#else
|
|
39
|
+
gl_FragColor = texture2D( blitTexture, vUv);
|
|
40
|
+
#endif
|
|
41
|
+
}`
|
|
42
|
+
} );
|
|
43
|
+
|
|
44
|
+
fullscreenQuadMaterial.uniforms.blitTexture.value = texture;
|
|
45
|
+
fullscreenQuadMaterial.defines.IS_SRGB = texture.colorSpace == SRGBColorSpace;
|
|
46
|
+
fullscreenQuadMaterial.needsUpdate = true;
|
|
47
|
+
|
|
48
|
+
if ( ! fullscreenQuad ) {
|
|
49
|
+
|
|
50
|
+
fullscreenQuad = new Mesh( fullscreenQuadGeometry, fullscreenQuadMaterial );
|
|
51
|
+
fullscreenQuad.frustrumCulled = false;
|
|
52
|
+
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const _camera = new PerspectiveCamera();
|
|
56
|
+
const _scene = new Scene();
|
|
57
|
+
_scene.add( fullscreenQuad );
|
|
58
|
+
|
|
59
|
+
if ( renderer === null ) {
|
|
60
|
+
|
|
61
|
+
renderer = _renderer = new WebGLRenderer( { antialias: false } );
|
|
62
|
+
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const width = Math.min( texture.image.width, maxTextureSize );
|
|
66
|
+
const height = Math.min( texture.image.height, maxTextureSize );
|
|
67
|
+
|
|
68
|
+
renderer.setSize( width, height );
|
|
69
|
+
renderer.clear();
|
|
70
|
+
renderer.render( _scene, _camera );
|
|
71
|
+
|
|
72
|
+
const canvas = document.createElement( 'canvas' );
|
|
73
|
+
const context = canvas.getContext( '2d' );
|
|
74
|
+
|
|
75
|
+
canvas.width = width;
|
|
76
|
+
canvas.height = height;
|
|
77
|
+
|
|
78
|
+
context.drawImage( renderer.domElement, 0, 0, width, height );
|
|
79
|
+
|
|
80
|
+
const readableTexture = new CanvasTexture( canvas );
|
|
81
|
+
|
|
82
|
+
readableTexture.minFilter = texture.minFilter;
|
|
83
|
+
readableTexture.magFilter = texture.magFilter;
|
|
84
|
+
readableTexture.wrapS = texture.wrapS;
|
|
85
|
+
readableTexture.wrapT = texture.wrapT;
|
|
86
|
+
readableTexture.name = texture.name;
|
|
87
|
+
|
|
88
|
+
if ( _renderer ) {
|
|
89
|
+
|
|
90
|
+
_renderer.forceContextLoss();
|
|
91
|
+
_renderer.dispose();
|
|
92
|
+
_renderer = null;
|
|
93
|
+
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
return readableTexture;
|
|
97
|
+
|
|
98
|
+
}
|