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.
Files changed (89) hide show
  1. zero2geospatial3d/__init__.py +105 -0
  2. zero2geospatial3d/acoustics.py +284 -0
  3. zero2geospatial3d/classify.py +379 -0
  4. zero2geospatial3d/cli.py +367 -0
  5. zero2geospatial3d/comfort.py +687 -0
  6. zero2geospatial3d/data/epw_stations.json.gz +0 -0
  7. zero2geospatial3d/daylight.py +337 -0
  8. zero2geospatial3d/dispersion.py +249 -0
  9. zero2geospatial3d/epw.py +162 -0
  10. zero2geospatial3d/geo.py +138 -0
  11. zero2geospatial3d/grid.py +119 -0
  12. zero2geospatial3d/microclimate.py +388 -0
  13. zero2geospatial3d/morphology.py +283 -0
  14. zero2geospatial3d/nsga2.py +315 -0
  15. zero2geospatial3d/osm.py +450 -0
  16. zero2geospatial3d/osm_tags.py +180 -0
  17. zero2geospatial3d/py.typed +0 -0
  18. zero2geospatial3d/results.py +231 -0
  19. zero2geospatial3d/road_sources.py +141 -0
  20. zero2geospatial3d/scene.py +555 -0
  21. zero2geospatial3d/server.py +332 -0
  22. zero2geospatial3d/shading.py +443 -0
  23. zero2geospatial3d/solar.py +207 -0
  24. zero2geospatial3d/terrain.py +610 -0
  25. zero2geospatial3d/urban_form.py +326 -0
  26. zero2geospatial3d/walkability.py +380 -0
  27. zero2geospatial3d/weather.py +373 -0
  28. zero2geospatial3d/web/index.html +50 -0
  29. zero2geospatial3d/web/src/analysis/climate.js +278 -0
  30. zero2geospatial3d/web/src/analysis/compliance.js +345 -0
  31. zero2geospatial3d/web/src/analysis/gpu.js +431 -0
  32. zero2geospatial3d/web/src/analysis/optimize.js +208 -0
  33. zero2geospatial3d/web/src/analysis/runners.js +1644 -0
  34. zero2geospatial3d/web/src/analysis/terrain_results.js +145 -0
  35. zero2geospatial3d/web/src/app.js +630 -0
  36. zero2geospatial3d/web/src/core/acoustics.js +341 -0
  37. zero2geospatial3d/web/src/core/classify.js +158 -0
  38. zero2geospatial3d/web/src/core/comfort.js +686 -0
  39. zero2geospatial3d/web/src/core/daylight_rule.js +199 -0
  40. zero2geospatial3d/web/src/core/dispersion.js +264 -0
  41. zero2geospatial3d/web/src/core/microclimate.js +372 -0
  42. zero2geospatial3d/web/src/core/morphology.js +153 -0
  43. zero2geospatial3d/web/src/core/nsga2.js +181 -0
  44. zero2geospatial3d/web/src/core/party_walls.js +60 -0
  45. zero2geospatial3d/web/src/core/road_sources.js +127 -0
  46. zero2geospatial3d/web/src/core/solar.js +112 -0
  47. zero2geospatial3d/web/src/core/terrain_analysis.js +267 -0
  48. zero2geospatial3d/web/src/core/terrain_math.js +279 -0
  49. zero2geospatial3d/web/src/core/urban_form.js +405 -0
  50. zero2geospatial3d/web/src/core/walkability.js +316 -0
  51. zero2geospatial3d/web/src/core/weather.js +225 -0
  52. zero2geospatial3d/web/src/core/wind.js +131 -0
  53. zero2geospatial3d/web/src/export/check_pdf.js +74 -0
  54. zero2geospatial3d/web/src/export/exporters.js +556 -0
  55. zero2geospatial3d/web/src/export/pdf.js +149 -0
  56. zero2geospatial3d/web/src/export/snapshot.js +234 -0
  57. zero2geospatial3d/web/src/export/snapshot_scene.js +150 -0
  58. zero2geospatial3d/web/src/main.js +75 -0
  59. zero2geospatial3d/web/src/scene/objects.js +645 -0
  60. zero2geospatial3d/web/src/scene/overlay.js +145 -0
  61. zero2geospatial3d/web/src/scene/terrain.js +546 -0
  62. zero2geospatial3d/web/src/scene/viewer.js +275 -0
  63. zero2geospatial3d/web/src/scene/wind_streamlines.js +336 -0
  64. zero2geospatial3d/web/src/style.css +225 -0
  65. zero2geospatial3d/web/src/ui/building_report.js +404 -0
  66. zero2geospatial3d/web/src/ui/charts.js +441 -0
  67. zero2geospatial3d/web/src/ui/colorize.js +101 -0
  68. zero2geospatial3d/web/src/ui/compare.js +362 -0
  69. zero2geospatial3d/web/src/ui/dom.js +104 -0
  70. zero2geospatial3d/web/src/ui/panel_analyze.js +742 -0
  71. zero2geospatial3d/web/src/ui/panel_compare.js +294 -0
  72. zero2geospatial3d/web/src/ui/panel_layers.js +172 -0
  73. zero2geospatial3d/web/src/ui/panel_terrain.js +277 -0
  74. zero2geospatial3d/web/src/ui/qgis_link.js +127 -0
  75. zero2geospatial3d/web/src/ui/sunclock.js +45 -0
  76. zero2geospatial3d/web/src/ui/tools.js +197 -0
  77. zero2geospatial3d/web/src/ui/viewtools.js +173 -0
  78. zero2geospatial3d/web/vendor/three/addons/controls/OrbitControls.js +1417 -0
  79. zero2geospatial3d/web/vendor/three/addons/exporters/GLTFExporter.js +3309 -0
  80. zero2geospatial3d/web/vendor/three/addons/utils/TextureUtils.js +98 -0
  81. zero2geospatial3d/web/vendor/three/three.module.js +53044 -0
  82. zero2geospatial3d/wind.py +178 -0
  83. zero2geospatial3d_sdk-0.1.0.dist-info/METADATA +219 -0
  84. zero2geospatial3d_sdk-0.1.0.dist-info/RECORD +89 -0
  85. zero2geospatial3d_sdk-0.1.0.dist-info/WHEEL +5 -0
  86. zero2geospatial3d_sdk-0.1.0.dist-info/entry_points.txt +2 -0
  87. zero2geospatial3d_sdk-0.1.0.dist-info/licenses/LICENSE +21 -0
  88. zero2geospatial3d_sdk-0.1.0.dist-info/licenses/THIRD_PARTY_NOTICES.md +52 -0
  89. 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
+ }