@openglobus/og 0.28.7 → 1.0.0-rc2
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.
- package/LICENSE.md +218 -4
- package/README.md +31 -18
- package/lib/Deferred.d.ts +2 -2
- package/lib/Events.d.ts +1 -1
- package/lib/Globe.d.ts +8 -5
- package/lib/Object3d.d.ts +17 -14
- package/lib/Popup.d.ts +2 -2
- package/lib/assets/LabelWorker.worker-DYd7xn3M.js.map +1 -0
- package/lib/assets/PlainSegmentWorker.worker-JsKldq-e.js.map +1 -0
- package/lib/assets/TerrainWorker.worker-CqUJvMOv.js.map +1 -0
- package/lib/bv/index.d.ts +2 -2
- package/lib/camera/Camera.d.ts +280 -27
- package/lib/camera/Frustum.d.ts +100 -15
- package/lib/camera/PlanetCamera.d.ts +93 -8
- package/lib/camera/index.d.ts +2 -2
- package/lib/control/CameraFrameComposer.d.ts +2 -2
- package/lib/control/CameraFrameHandler.d.ts +1 -1
- package/lib/control/CompassButton.d.ts +2 -2
- package/lib/control/EarthCoordinates.d.ts +5 -2
- package/lib/control/FramebufferPreview.d.ts +3 -3
- package/lib/control/GeoImageDragControl.d.ts +1 -1
- package/lib/control/LayerAnimation.d.ts +2 -2
- package/lib/control/LayerSwitcher.d.ts +3 -0
- package/lib/control/Lighting.d.ts +4 -2
- package/lib/control/Navigation.d.ts +15 -11
- package/lib/control/OrthoSwitcher.d.ts +18 -0
- package/lib/control/SimpleTouchNavigation.d.ts +44 -0
- package/lib/control/Sun.d.ts +4 -2
- package/lib/control/TouchNavigation.d.ts +4 -8
- package/lib/control/atmosphere/Atmosphere.d.ts +2 -0
- package/lib/control/atmosphere/AtmosphereConfig.d.ts +2 -6
- package/lib/control/cameraDepthHandler/CameraDepthHandler.d.ts +17 -3
- package/lib/control/cameraDepthHandler/camera_depth.d.ts +2 -2
- package/lib/control/drawing/LineStringDrawingScene.d.ts +1 -0
- package/lib/control/drawing/PolygonDrawingScene.d.ts +14 -14
- package/lib/control/elevationProfile/ElevationProfile.d.ts +1 -1
- package/lib/control/elevationProfile/ElevationProfileLegend.d.ts +1 -1
- package/lib/control/elevationProfile/ElevationProfileScene.d.ts +9 -12
- package/lib/control/elevationProfile/ElevationProfileView.d.ts +16 -5
- package/lib/control/entityEditor/EntityEditor.d.ts +19 -0
- package/lib/control/{geoObjectEditor/GeoObjectEditorDialog.d.ts → entityEditor/EntityEditorDialog.d.ts} +9 -8
- package/lib/control/{geoObjectEditor/GeoObjectEditorScene.d.ts → entityEditor/EntityEditorScene.d.ts} +12 -12
- package/lib/control/{geoObjectEditor → entityEditor}/colors.d.ts +2 -2
- package/lib/control/entityTree/EntityTree.d.ts +46 -0
- package/lib/control/entityTree/EntityTreeView.d.ts +24 -0
- package/lib/control/heightRuler/HeightRulerScene.d.ts +3 -2
- package/lib/control/index.d.ts +5 -3
- package/lib/control/ruler/RulerScene.d.ts +8 -8
- package/lib/control/selection/SelectionScene.d.ts +6 -6
- package/lib/control/timeline/TimelineControl.d.ts +2 -2
- package/lib/control/timeline/TimelineModel.d.ts +1 -1
- package/lib/control/timeline/TimelineView.d.ts +52 -13
- package/lib/control/visibleExtent/segment.d.ts +7 -0
- package/lib/ellipsoid/index.d.ts +4 -4
- package/lib/entity/Entity.d.ts +114 -100
- package/lib/entity/EntityCollection.d.ts +95 -70
- package/lib/entity/{BaseBillboard.d.ts → billboard/BaseBillboard.d.ts} +16 -17
- package/lib/entity/{BaseBillboardHandler.d.ts → billboard/BaseBillboardHandler.d.ts} +24 -9
- package/lib/entity/{Billboard.d.ts → billboard/Billboard.d.ts} +11 -7
- package/lib/entity/{BillboardHandler.d.ts → billboard/BillboardHandler.d.ts} +1 -1
- package/lib/entity/{GeoObject.d.ts → geoObject/GeoObject.d.ts} +7 -6
- package/lib/entity/{GeoObjectHandler.d.ts → geoObject/GeoObjectHandler.d.ts} +29 -11
- package/lib/entity/{InstanceData.d.ts → geoObject/InstanceData.d.ts} +18 -13
- package/lib/entity/{Geometry.d.ts → geometry/Geometry.d.ts} +10 -10
- package/lib/entity/{GeometryHandler.d.ts → geometry/GeometryHandler.d.ts} +7 -7
- package/lib/entity/index.d.ts +8 -8
- package/lib/entity/{Label.d.ts → label/Label.d.ts} +12 -13
- package/lib/entity/{LabelHandler.d.ts → label/LabelHandler.d.ts} +31 -7
- package/lib/entity/{LabelWorker.d.ts → label/LabelWorker.d.ts} +3 -3
- package/lib/entity/{PointCloud.d.ts → pointCloud/PointCloud.d.ts} +18 -12
- package/lib/entity/{PointCloudHandler.d.ts → pointCloud/PointCloudHandler.d.ts} +4 -4
- package/lib/entity/polyline/Polyline.d.ts +242 -0
- package/lib/entity/polyline/PolylineBatchRenderer.d.ts +443 -0
- package/lib/entity/{PolylineHandler.d.ts → polyline/PolylineHandler.d.ts} +19 -7
- package/lib/entity/{Ray.d.ts → ray/Ray.d.ts} +27 -9
- package/lib/entity/{RayHandler.d.ts → ray/RayHandler.d.ts} +18 -8
- package/lib/entity/{Strip.d.ts → strip/Strip.d.ts} +21 -17
- package/lib/entity/{StripHandler.d.ts → strip/StripHandler.d.ts} +11 -6
- package/lib/index.d.ts +47 -42
- package/lib/layer/BaseGeoImage.d.ts +20 -17
- package/lib/layer/CanvasTiles.d.ts +14 -12
- package/lib/layer/GeoImage.d.ts +1 -1
- package/lib/layer/GeoTexture2d.d.ts +2 -2
- package/lib/layer/KML.d.ts +19 -18
- package/lib/layer/Layer.d.ts +72 -53
- package/lib/layer/Vector.d.ts +47 -30
- package/lib/layer/WMS.d.ts +1 -1
- package/lib/layer/XYZ.d.ts +11 -12
- package/lib/layer/index.d.ts +12 -12
- package/lib/math/Line2.d.ts +1 -1
- package/lib/math/Line3.d.ts +1 -1
- package/lib/math/Mat3.d.ts +3 -13
- package/lib/math/Mat4.d.ts +16 -10
- package/lib/math/Plane.d.ts +1 -1
- package/lib/math/Quat.d.ts +14 -12
- package/lib/math/Ray.d.ts +4 -3
- package/lib/math/Vec2.d.ts +25 -17
- package/lib/math/Vec3.d.ts +33 -31
- package/lib/math/Vec4.d.ts +1 -1
- package/lib/math/coder.d.ts +1 -1
- package/lib/math/index.d.ts +13 -14
- package/lib/mercator.d.ts +4 -4
- package/lib/og.css +1 -1
- package/lib/og.es.js +1 -1
- package/lib/og.es.js.map +1 -1
- package/lib/quadTree/EntityCollectionNode.d.ts +10 -10
- package/lib/quadTree/EntityCollectionsTreeStrategy.d.ts +5 -5
- package/lib/quadTree/QuadTreeStrategy.d.ts +3 -4
- package/lib/quadTree/earth/EarthEntityCollectionNodeLonLat.d.ts +4 -4
- package/lib/quadTree/earth/EarthEntityCollectionsTreeStrategy.d.ts +4 -4
- package/lib/renderer/AtmosphereDeferredShading.d.ts +12 -0
- package/lib/renderer/IDeferredShadingPass.d.ts +8 -0
- package/lib/renderer/ITransparencyPass.d.ts +8 -0
- package/lib/renderer/PhongDeferredShading.d.ts +16 -0
- package/lib/renderer/Renderer.d.ts +166 -99
- package/lib/renderer/RendererEvents.d.ts +15 -5
- package/lib/renderer/WOITPass.d.ts +14 -0
- package/lib/res/fonts/Ephesis-Regular.json +1 -0
- package/lib/res/fonts/Ephesis-Regular.png +0 -0
- package/lib/res/fonts/Karla-Bold.json +1 -0
- package/lib/res/fonts/Karla-Bold.png +0 -0
- package/lib/res/fonts/Karla-Italic.json +1 -0
- package/lib/res/fonts/Karla-Italic.png +0 -0
- package/lib/res/fonts/Karla-Light.json +1 -0
- package/lib/res/fonts/Karla-Light.png +0 -0
- package/lib/res/fonts/Karla-Medium.json +1 -0
- package/lib/res/fonts/Karla-Medium.png +0 -0
- package/lib/res/fonts/Roboto-Regular.json +1 -37147
- package/lib/res/fonts/Roboto-Regular.png +0 -0
- package/lib/res/fonts/arial.json +1 -4321
- package/lib/res/fonts/arial.png +0 -0
- package/lib/res/night-4326.png +0 -0
- package/lib/res/night.png +0 -0
- package/lib/scene/AltitudeNearPlaneStrategy.d.ts +17 -0
- package/lib/scene/Axes.d.ts +4 -3
- package/lib/scene/Planet.d.ts +244 -69
- package/lib/scene/{RenderNode.d.ts → Scene.d.ts} +49 -46
- package/lib/scene/SkyBox.d.ts +5 -3
- package/lib/scene/index.d.ts +2 -2
- package/lib/segment/Segment.d.ts +29 -15
- package/lib/segment/SegmentLonLat.d.ts +0 -1
- package/lib/shadeModeConstants.d.ts +7 -0
- package/lib/shaders/applyDeferredDepth.d.ts +2 -0
- package/lib/shaders/atmos/atmos.d.ts +3 -3
- package/lib/shaders/billboard/billboard.d.ts +4 -3
- package/lib/shaders/deferredShading/deferredShading.d.ts +2 -0
- package/lib/shaders/deferredShading/deferredShadingAtmos.d.ts +3 -0
- package/lib/shaders/depth.d.ts +2 -2
- package/lib/shaders/geo_object/geo_object.d.ts +8 -4
- package/lib/shaders/label/label.d.ts +4 -4
- package/lib/shaders/pointCloud.d.ts +2 -2
- package/lib/shaders/polyline/polyline.d.ts +7 -3
- package/lib/shaders/ray/ray.d.ts +3 -2
- package/lib/shaders/screenFrame.d.ts +2 -2
- package/lib/shaders/segment/segment.d.ts +7 -0
- package/lib/shaders/skybox.d.ts +2 -2
- package/lib/shaders/strip/strip.d.ts +3 -0
- package/lib/shaders/tone_mapping/toneMapping.d.ts +2 -2
- package/lib/shaders/weightedOITResolve.d.ts +2 -0
- package/lib/terrain/BilTerrain.d.ts +1 -1
- package/lib/terrain/EmptyTerrain.d.ts +5 -6
- package/lib/terrain/GlobusTerrain.d.ts +18 -23
- package/lib/terrain/RgbTerrain.d.ts +8 -8
- package/lib/terrain/index.d.ts +5 -5
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/ui/Button.d.ts +7 -5
- package/lib/ui/ButtonGroup.d.ts +1 -1
- package/lib/ui/Checkbox.d.ts +2 -2
- package/lib/ui/Color.d.ts +2 -2
- package/lib/ui/Dialog.d.ts +30 -3
- package/lib/ui/Input.d.ts +7 -2
- package/lib/ui/Slider.d.ts +5 -2
- package/lib/ui/ToggleButton.d.ts +2 -2
- package/lib/ui/View.d.ts +1 -1
- package/lib/ui/icons.d.ts +1 -1
- package/lib/ui/index.d.ts +9 -9
- package/lib/utils/FontAtlas.d.ts +57 -8
- package/lib/utils/GeoImageCreator.d.ts +2 -2
- package/lib/utils/ImagesCacheManager.d.ts +3 -3
- package/lib/utils/Loader.d.ts +2 -2
- package/lib/utils/PlainSegmentWorker.d.ts +2 -2
- package/lib/utils/TerrainWorker.d.ts +2 -2
- package/lib/utils/TextureAtlas.d.ts +7 -2
- package/lib/utils/TextureResourceManager.d.ts +162 -0
- package/lib/utils/VectorTileCreator.d.ts +1 -1
- package/lib/utils/colorSpace.d.ts +9 -0
- package/lib/utils/gltf/gltfParser.d.ts +9 -2
- package/lib/utils/gltf/types.d.ts +20 -2
- package/lib/utils/shared.d.ts +11 -5
- package/lib/utils/textureResourceMeta.d.ts +9 -0
- package/lib/webgl/BaseFramebuffer.d.ts +7 -0
- package/lib/webgl/Framebuffer.d.ts +9 -6
- package/lib/webgl/Handler.d.ts +81 -99
- package/lib/webgl/ShaderProgram.d.ts +190 -0
- package/lib/webgl/index.d.ts +2 -2
- package/lib/webgl/variableHandlers.d.ts +2 -1
- package/package.json +77 -76
- package/lib/assets/LabelWorker.worker-BT1uJgYn.js.map +0 -1
- package/lib/assets/PlainSegmentWorker.worker-CT1cj8jj.js.map +0 -1
- package/lib/assets/TerrainWorker.worker-DmikdfB2.js.map +0 -1
- package/lib/control/OldMouseNavigation.d.ts +0 -65
- package/lib/control/ZoomControl.d.ts +0 -28
- package/lib/control/geoObjectEditor/GeoObjectEditor.d.ts +0 -13
- package/lib/control/visibleExtent/drawnode.d.ts +0 -7
- package/lib/entity/Polyline.d.ts +0 -417
- package/lib/light/LightSource.d.ts +0 -36
- package/lib/res/fonts/Roboto-Regular.ttf.cfg +0 -1340
- package/lib/res/fonts/Roboto-Regular.ttf.png +0 -0
- package/lib/res/fonts/arial.ttf.cfg +0 -1570
- package/lib/res/fonts/arial.ttf.png +0 -0
- package/lib/scene/BaseNode.d.ts +0 -61
- package/lib/shaders/drawnode/drawnode.d.ts +0 -8
- package/lib/webgl/Program.d.ts +0 -161
- package/lib/webgl/ProgramController.d.ts +0 -87
- /package/lib/control/{geoObjectEditor → entityEditor}/ArrowEntity.d.ts +0 -0
- /package/lib/control/{geoObjectEditor → entityEditor}/AxisTrackEntity.d.ts +0 -0
- /package/lib/control/{geoObjectEditor → entityEditor}/MoveAxisEntity.d.ts +0 -0
- /package/lib/control/{geoObjectEditor → entityEditor}/MovePlaneEntity.d.ts +0 -0
- /package/lib/control/{geoObjectEditor → entityEditor}/RotateEntity.d.ts +0 -0
- /package/lib/entity/{LabelWorker.worker.d.ts → label/LabelWorker.worker.d.ts} +0 -0
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import type { Handler, ImageSource, WebGLTextureExt } from "../webgl/Handler";
|
|
2
|
+
interface TextureResourceEntry {
|
|
3
|
+
key: string;
|
|
4
|
+
texture: WebGLTextureExt;
|
|
5
|
+
refCount: number;
|
|
6
|
+
}
|
|
7
|
+
export interface RendererTextureRequest {
|
|
8
|
+
image: ImageSource;
|
|
9
|
+
resourceKey?: string;
|
|
10
|
+
sourceUri?: string;
|
|
11
|
+
mimeType?: string;
|
|
12
|
+
byteLength?: number;
|
|
13
|
+
internalFormat?: number | null;
|
|
14
|
+
texParami?: number | null;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Manages shared WebGL textures with reference counting.
|
|
18
|
+
* Reuses textures for the same resource key and deletes them when no owners remain.
|
|
19
|
+
*/
|
|
20
|
+
export declare class TextureResourceManager {
|
|
21
|
+
protected _handler: Handler;
|
|
22
|
+
protected _entriesByKey: Map<string, TextureResourceEntry>;
|
|
23
|
+
protected _keysByTexture: WeakMap<WebGLTextureExt, string>;
|
|
24
|
+
protected _objectKeys: WeakMap<ImageSource, number>;
|
|
25
|
+
protected _objectKeyCounter: number;
|
|
26
|
+
/**
|
|
27
|
+
* @param handler WebGL handler used to create and delete textures.
|
|
28
|
+
*/
|
|
29
|
+
constructor(handler: Handler);
|
|
30
|
+
/**
|
|
31
|
+
* Returns an existing texture for the same resource or creates a new one.
|
|
32
|
+
* Increases reference count for reused textures.
|
|
33
|
+
* @param params Texture source and GPU creation parameters.
|
|
34
|
+
* @returns Managed WebGL texture or null if creation failed.
|
|
35
|
+
*/
|
|
36
|
+
acquireTexture(params: RendererTextureRequest): WebGLTextureExt | null;
|
|
37
|
+
/**
|
|
38
|
+
* Releases one texture reference.
|
|
39
|
+
* Deletes GPU texture only when the reference count reaches zero.
|
|
40
|
+
* @param texture Managed texture previously returned by acquireTexture.
|
|
41
|
+
*/
|
|
42
|
+
releaseTexture(texture: WebGLTextureExt | null | undefined): void;
|
|
43
|
+
/**
|
|
44
|
+
* Deletes all managed GPU textures and clears manager state.
|
|
45
|
+
*/
|
|
46
|
+
clear(): void;
|
|
47
|
+
/**
|
|
48
|
+
* Returns number of unique managed texture entries.
|
|
49
|
+
* @returns Number of entries in the manager.
|
|
50
|
+
*/
|
|
51
|
+
getEntryCount(): number;
|
|
52
|
+
/**
|
|
53
|
+
* Returns debug statistics for managed textures.
|
|
54
|
+
* @returns Object with number of entries and total reference count.
|
|
55
|
+
*/
|
|
56
|
+
getStats(): {
|
|
57
|
+
entries: number;
|
|
58
|
+
refs: number;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Builds a stable texture resource key.
|
|
62
|
+
*
|
|
63
|
+
* The key is composed of two logical parts:
|
|
64
|
+
*
|
|
65
|
+
* 1. Source image identity
|
|
66
|
+
* Describes where the original image comes from or how it can be uniquely identified.
|
|
67
|
+
*
|
|
68
|
+
* Supported prefixes:
|
|
69
|
+
*
|
|
70
|
+
* - res:
|
|
71
|
+
* A precomputed resource key provided by the GLTF parser.
|
|
72
|
+
* This is the preferred path for GLTF/GLB textures.
|
|
73
|
+
*
|
|
74
|
+
* Example:
|
|
75
|
+
* res:gltf-image|bytes:9a4c1f20|mime:image/png|len:24576
|
|
76
|
+
*
|
|
77
|
+
* - uri:
|
|
78
|
+
* A normalized external image URI.
|
|
79
|
+
* Used when the texture comes from an external image file.
|
|
80
|
+
* The URI should be resolved relative to the GLTF file path.
|
|
81
|
+
*
|
|
82
|
+
* Example:
|
|
83
|
+
* uri:https://example.com/models/tree/textures/baseColor.png
|
|
84
|
+
*
|
|
85
|
+
* - fp:
|
|
86
|
+
* A content fingerprint calculated from image pixels.
|
|
87
|
+
* This is an expensive fallback path because it may require canvas readback.
|
|
88
|
+
* It can also fail for cross-origin images.
|
|
89
|
+
*
|
|
90
|
+
* Example:
|
|
91
|
+
* fp:7f21ab09
|
|
92
|
+
*
|
|
93
|
+
* - obj:
|
|
94
|
+
* A last-resort object identity key.
|
|
95
|
+
* Used only when no resourceKey, URI, or content fingerprint is available.
|
|
96
|
+
* This avoids accidental sharing between unrelated images.
|
|
97
|
+
*
|
|
98
|
+
* Example:
|
|
99
|
+
* obj:3
|
|
100
|
+
*
|
|
101
|
+
* 2. GPU texture creation parameters.
|
|
102
|
+
* Describes how the source image is uploaded to WebGL.
|
|
103
|
+
* The same source image may require different GPU textures if creation parameters differ.
|
|
104
|
+
*
|
|
105
|
+
* Supported fields:
|
|
106
|
+
*
|
|
107
|
+
* - fmt:
|
|
108
|
+
* Internal texture format passed to Handler.createTextureDefault(...).
|
|
109
|
+
* If absent, "fmt:default" means the default internal format is used.
|
|
110
|
+
*
|
|
111
|
+
* Example:
|
|
112
|
+
* fmt:default
|
|
113
|
+
* fmt:6408
|
|
114
|
+
*
|
|
115
|
+
* - wrap:
|
|
116
|
+
* Texture wrapping/filtering parameter passed to Handler.createTextureDefault(...).
|
|
117
|
+
* If absent, "wrap:default" means the default texture parameter is used.
|
|
118
|
+
*
|
|
119
|
+
* Example:
|
|
120
|
+
* wrap:default
|
|
121
|
+
* wrap:10497
|
|
122
|
+
*
|
|
123
|
+
* - mime:
|
|
124
|
+
* MIME type of the original image, if available.
|
|
125
|
+
* Used as an additional discriminator and for debugging.
|
|
126
|
+
*
|
|
127
|
+
* Example:
|
|
128
|
+
* mime:image/png
|
|
129
|
+
*
|
|
130
|
+
* - len:
|
|
131
|
+
* Original image byte length, if available.
|
|
132
|
+
* Used as an additional cheap discriminator, but not as the primary identity.
|
|
133
|
+
*
|
|
134
|
+
* Example:
|
|
135
|
+
* len:24576
|
|
136
|
+
*
|
|
137
|
+
* Important:
|
|
138
|
+
*
|
|
139
|
+
* - GLTF texture/image name is intentionally not used as a primary identity key.
|
|
140
|
+
* Names may be missing, duplicated, or different for the same binary image.
|
|
141
|
+
*
|
|
142
|
+
* - The preferred identity source is resourceKey from the GLTF parser.
|
|
143
|
+
*
|
|
144
|
+
* - The fallback order is:
|
|
145
|
+
* resourceKey -> normalized URI -> content fingerprint -> object identity.
|
|
146
|
+
*
|
|
147
|
+
* - The final key must distinguish not only the source image, but also the GPU upload
|
|
148
|
+
* parameters that may affect the resulting WebGLTexture.
|
|
149
|
+
*/
|
|
150
|
+
protected _buildResourceKey(params: RendererTextureRequest): string;
|
|
151
|
+
protected _getObjectKey(image: ImageSource): number;
|
|
152
|
+
protected _getExternalImageUri(image: ImageSource): string | null;
|
|
153
|
+
protected _fingerprintImage(image: ImageSource): {
|
|
154
|
+
hash: string;
|
|
155
|
+
byteLength: number;
|
|
156
|
+
} | null;
|
|
157
|
+
protected _getImageSize(image: ImageSource): {
|
|
158
|
+
width: number;
|
|
159
|
+
height: number;
|
|
160
|
+
} | null;
|
|
161
|
+
}
|
|
162
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Vec3 } from "../math/Vec3";
|
|
2
|
+
import type { NumberArray3 } from "../math/Vec3";
|
|
3
|
+
export declare const LINEAR = 0;
|
|
4
|
+
export declare const SRGB = 1;
|
|
5
|
+
export declare function getColorSpace(colorSpace?: string | number, defaultColorSpace?: number): number;
|
|
6
|
+
export declare function srgbToLinearArr(arr: NumberArray3): NumberArray3;
|
|
7
|
+
export declare function srgbToLinear3v(v: Vec3): NumberArray3;
|
|
8
|
+
export declare function srgbToLinear(v: number): number;
|
|
9
|
+
export declare function linearToSrgbArr(arr: NumberArray3): NumberArray3;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Entity } from "../../entity";
|
|
2
2
|
import { Object3d } from "../../Object3d";
|
|
3
|
-
import { GltfData, Mesh } from "./types";
|
|
3
|
+
import { GltfData, Mesh, MimeType } from "./types";
|
|
4
4
|
export declare class Gltf {
|
|
5
5
|
private gltf;
|
|
6
6
|
private static _dracoDecoderModule;
|
|
@@ -9,13 +9,20 @@ export declare class Gltf {
|
|
|
9
9
|
private _materials;
|
|
10
10
|
private _images;
|
|
11
11
|
meshes: Mesh[];
|
|
12
|
-
|
|
12
|
+
protected _gltfBaseUri?: string;
|
|
13
|
+
constructor(gltf: GltfData, gltfBaseUri?: string);
|
|
13
14
|
getObjects3d(): Object3d[];
|
|
14
15
|
toEntities(): Entity[];
|
|
15
16
|
private _nodeToEntity;
|
|
16
17
|
meshToEntity(mesh: Mesh, parent?: Entity): Entity;
|
|
17
18
|
private _initImages;
|
|
18
19
|
private _getImage;
|
|
20
|
+
private _getTextureImage;
|
|
21
|
+
protected _buildImageResourceKey(mimeType?: MimeType, bufferViewIndex?: number, sourceUri?: string, rawUri?: string): string | undefined;
|
|
22
|
+
protected _getBufferViewBytes(bufferViewIndex: number): Uint8Array;
|
|
23
|
+
protected _hashBytes(bytes: Uint8Array): string;
|
|
24
|
+
protected _hashString(value: string): string;
|
|
25
|
+
protected _isDataUri(uri: string): boolean;
|
|
19
26
|
private _initMaterials;
|
|
20
27
|
private _initMeshes;
|
|
21
28
|
private _buildPrimitive;
|
|
@@ -22,6 +22,21 @@ export interface GltfMetadata {
|
|
|
22
22
|
texCoord?: number;
|
|
23
23
|
};
|
|
24
24
|
};
|
|
25
|
+
extensions?: {
|
|
26
|
+
KHR_materials_pbrSpecularGlossiness?: {
|
|
27
|
+
diffuseFactor?: number[];
|
|
28
|
+
diffuseTexture?: {
|
|
29
|
+
index: number;
|
|
30
|
+
texCoord?: number;
|
|
31
|
+
};
|
|
32
|
+
specularFactor?: number[];
|
|
33
|
+
glossinessFactor?: number;
|
|
34
|
+
specularGlossinessTexture?: {
|
|
35
|
+
index: number;
|
|
36
|
+
texCoord?: number;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
};
|
|
25
40
|
normalTexture?: {
|
|
26
41
|
index: number;
|
|
27
42
|
texCoord?: number;
|
|
@@ -80,7 +95,7 @@ export interface GltfPrimitive {
|
|
|
80
95
|
}
|
|
81
96
|
export type PrimitiveAttributes = {
|
|
82
97
|
POSITION: number;
|
|
83
|
-
NORMAL
|
|
98
|
+
NORMAL?: number;
|
|
84
99
|
} & Record<string, number>;
|
|
85
100
|
export interface GltfNode {
|
|
86
101
|
camera?: number;
|
|
@@ -143,7 +158,7 @@ export interface Primitive {
|
|
|
143
158
|
name: string;
|
|
144
159
|
indices?: ArrayBufferLike;
|
|
145
160
|
vertices: ArrayBufferLike;
|
|
146
|
-
normals
|
|
161
|
+
normals?: ArrayBufferLike;
|
|
147
162
|
texCoords?: ArrayBufferLike;
|
|
148
163
|
material?: Material;
|
|
149
164
|
mode: PrimitiveMode;
|
|
@@ -153,7 +168,10 @@ export interface Material {
|
|
|
153
168
|
name: string;
|
|
154
169
|
baseColorFactor?: number[];
|
|
155
170
|
baseColorTexture?: Texture;
|
|
171
|
+
metallicFactor?: number;
|
|
172
|
+
roughnessFactor?: number;
|
|
156
173
|
metallicRoughnessTexture?: Texture;
|
|
174
|
+
specularGlossinessTexture?: Texture;
|
|
157
175
|
normalTexture?: NormalTexture;
|
|
158
176
|
occlusionTexture?: OcclusionTexture;
|
|
159
177
|
emissiveTexture?: Texture;
|
package/lib/utils/shared.d.ts
CHANGED
|
@@ -20,6 +20,8 @@ export declare function isEmpty(v: any): boolean;
|
|
|
20
20
|
*/
|
|
21
21
|
export declare function isUndef(obj?: any): boolean;
|
|
22
22
|
export declare function isUndefExt(obj: any, defVal: any): any;
|
|
23
|
+
export declare function fnv1a32(bytes: Uint8Array | Uint8ClampedArray): string;
|
|
24
|
+
export declare function normalizeUri(src: string, baseUri?: string): string;
|
|
23
25
|
export declare function stamp(obj: any): number;
|
|
24
26
|
export declare function isString(s: any): boolean;
|
|
25
27
|
export declare function rgbToStringHTML(rgb: NumberArray3 | Vec3): string;
|
|
@@ -74,8 +76,9 @@ export declare function parseHTML(htmlStr: string): HTMLElement[];
|
|
|
74
76
|
export declare function print2d(id: string, text: string, x: number, y: number): void;
|
|
75
77
|
export declare function isNumber(value: any): boolean;
|
|
76
78
|
export declare function defaultString(str?: string, def?: string): string;
|
|
77
|
-
export declare function
|
|
78
|
-
export declare function
|
|
79
|
+
export declare function createVec2(v?: number | Vec2 | NumberArray2 | null, def?: Vec2): Vec2;
|
|
80
|
+
export declare function createVec3(v?: number | Vec3 | Vec2 | NumberArray3 | NumberArray2 | null, def?: Vec3): Vec3;
|
|
81
|
+
export declare function createVec4(v?: Vec4 | NumberArray4 | null, def?: Vec4): Vec4;
|
|
79
82
|
export declare function createColorRGBA(c?: string | NumberArray4 | Vec4 | null, def?: Vec4): Vec4;
|
|
80
83
|
export declare function createColorRGB(c?: string | NumberArray3 | Vec3 | null, def?: Vec3): Vec3;
|
|
81
84
|
export declare function createExtent(e?: Extent | [[number, number], [number, number]] | null, def?: Extent): Extent;
|
|
@@ -193,6 +196,7 @@ export type TypedArray = Int8Array | Uint8Array | Uint8ClampedArray | Int16Array
|
|
|
193
196
|
* @param {TypedArray | number[]} b
|
|
194
197
|
*/
|
|
195
198
|
export declare function concatTypedArrays(a: TypedArray, b: TypedArray | number[]): TypedArray;
|
|
199
|
+
export declare function insertTypedArray<T extends TypedArray>(arr: T, starting: number, insert: T | number[]): T;
|
|
196
200
|
/**
|
|
197
201
|
* Concatenates two the same arrays
|
|
198
202
|
* @param {TypedArray | number[]} [a=[]] - First array
|
|
@@ -238,7 +242,7 @@ export declare function spliceTypedArray<T extends TypedArray>(arr: T, starting:
|
|
|
238
242
|
/**
|
|
239
243
|
* Returns 64-bit triangle coordinate array from inside of the source triangle array.
|
|
240
244
|
* @static
|
|
241
|
-
* @param {TypedArray | number[]}
|
|
245
|
+
* @param {TypedArray | number[]} srcArr - Source array
|
|
242
246
|
* @param {number} gridSize - Source array square matrix size
|
|
243
247
|
* @param {number} i0 - First row index source array matrix
|
|
244
248
|
* @param {number} j0 - First column index
|
|
@@ -246,7 +250,7 @@ export declare function spliceTypedArray<T extends TypedArray>(arr: T, starting:
|
|
|
246
250
|
* @return {Float64Array} Triangle coordinates array from the source array.
|
|
247
251
|
* @TODO: optimization
|
|
248
252
|
*/
|
|
249
|
-
export declare function getMatrixSubArray64(
|
|
253
|
+
export declare function getMatrixSubArray64(srcArr: TypedArray | number[], gridSize: number, i0: number, j0: number, size: number): Float64Array;
|
|
250
254
|
/**
|
|
251
255
|
* Returns 32-bit triangle coordinate array from inside of the source triangle array.
|
|
252
256
|
* @static
|
|
@@ -262,7 +266,7 @@ export declare function getMatrixSubArray32(sourceArr: TypedArray | number[], gr
|
|
|
262
266
|
* Returns two float32 triangle coordinate arrays from inside of the source triangle array.
|
|
263
267
|
* @TODO: optimization
|
|
264
268
|
*/
|
|
265
|
-
export declare function getMatrixSubArrayBoundsExt(
|
|
269
|
+
export declare function getMatrixSubArrayBoundsExt(srcArr: TypedArray | number[], noDataVertices: TypedArray | number[] | undefined, gridSize: number, i0: number, j0: number, size: number, srcRelativeCenter: Vec3, dstRelativeCenter: Vec3, outArr: TypedArray | number[], outArrHigh: TypedArray | number[], outArrLow: TypedArray | number[], outBounds: any, outNoDataVertices: TypedArray | number[]): void;
|
|
266
270
|
export declare function cloneArray(items: any[]): any[];
|
|
267
271
|
/**
|
|
268
272
|
* Promise for load images
|
|
@@ -271,6 +275,8 @@ export declare function cloneArray(items: any[]): any[];
|
|
|
271
275
|
* @returns {Promise<Image>} Returns promise.
|
|
272
276
|
*/
|
|
273
277
|
export declare function loadImage(url: string): Promise<HTMLImageElement>;
|
|
278
|
+
export declare function ensureImageReady(image: HTMLImageElement): Promise<boolean>;
|
|
279
|
+
export declare function prepareTextureImage(image: HTMLImageElement): Promise<HTMLImageElement | HTMLCanvasElement | null>;
|
|
274
280
|
/**
|
|
275
281
|
* Gets image is loaded
|
|
276
282
|
* @param {HTMLImageElement} image
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const OG_TEXTURE_RESOURCE_META_KEY: unique symbol;
|
|
2
|
+
export interface ITextureResourceMeta {
|
|
3
|
+
resourceKey?: string;
|
|
4
|
+
sourceUri?: string;
|
|
5
|
+
mimeType?: string;
|
|
6
|
+
byteLength?: number;
|
|
7
|
+
}
|
|
8
|
+
export declare function getTextureResourceMeta(target: object | null | undefined): ITextureResourceMeta | undefined;
|
|
9
|
+
export declare function setTextureResourceMeta(target: object | null | undefined, meta: ITextureResourceMeta | undefined): void;
|
|
@@ -6,6 +6,7 @@ export interface IBaseFramebufferParams {
|
|
|
6
6
|
depthComponent?: string;
|
|
7
7
|
size?: number;
|
|
8
8
|
filter?: string;
|
|
9
|
+
sharedDepthFramebuffer?: BaseFramebuffer | null;
|
|
9
10
|
}
|
|
10
11
|
export declare class BaseFramebuffer {
|
|
11
12
|
static __counter__: number;
|
|
@@ -13,6 +14,7 @@ export declare class BaseFramebuffer {
|
|
|
13
14
|
handler: Handler;
|
|
14
15
|
_fbo: WebGLFramebuffer | null;
|
|
15
16
|
protected _depthRenderbuffer: WebGLRenderbuffer | null;
|
|
17
|
+
protected _sharedDepthFramebuffer: BaseFramebuffer | null;
|
|
16
18
|
_width: number;
|
|
17
19
|
_height: number;
|
|
18
20
|
protected _depthComponent: string;
|
|
@@ -21,8 +23,13 @@ export declare class BaseFramebuffer {
|
|
|
21
23
|
protected _useDepth: boolean;
|
|
22
24
|
protected _filter: string;
|
|
23
25
|
constructor(handler: Handler, options?: IBaseFramebufferParams);
|
|
26
|
+
static blitTo(destFramebuffer: BaseFramebuffer, sourceFramebuffer: BaseFramebuffer, glAttachmentIndex: number | null, glMask: number, glFilter: number): void;
|
|
27
|
+
blitDepthFrom(sourceFramebuffer: BaseFramebuffer, glFilter?: number): void;
|
|
24
28
|
get width(): number;
|
|
25
29
|
get height(): number;
|
|
30
|
+
get depthRenderbuffer(): WebGLRenderbuffer | null;
|
|
31
|
+
get sharedDepthFramebuffer(): BaseFramebuffer | null;
|
|
32
|
+
get sharedDepthRenderbuffer(): WebGLRenderbuffer | null;
|
|
26
33
|
/**
|
|
27
34
|
* Sets framebuffer viewport size.
|
|
28
35
|
* @public
|
|
@@ -5,8 +5,6 @@ import type { TypedArray } from "../utils/shared";
|
|
|
5
5
|
import type { NumberArray4 } from "../math/Vec4";
|
|
6
6
|
export interface ITargetParams {
|
|
7
7
|
internalFormat?: string;
|
|
8
|
-
format?: string;
|
|
9
|
-
type?: string;
|
|
10
8
|
attachment?: string;
|
|
11
9
|
filter?: string;
|
|
12
10
|
readAsync?: boolean;
|
|
@@ -20,8 +18,8 @@ export interface IFrameBufferParams extends IBaseFramebufferParams {
|
|
|
20
18
|
type TypedArrayConstructor = Uint8ArrayConstructor | Float32ArrayConstructor;
|
|
21
19
|
interface ITarget {
|
|
22
20
|
internalFormat: string;
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
pixelFormat: string;
|
|
22
|
+
pixelType: string;
|
|
25
23
|
attachment: string;
|
|
26
24
|
filter: string;
|
|
27
25
|
pixelBufferIndex: number;
|
|
@@ -52,6 +50,11 @@ export declare class Framebuffer extends BaseFramebuffer {
|
|
|
52
50
|
pixelBuffers: IPixelBuffer[];
|
|
53
51
|
protected _skipFrame: boolean;
|
|
54
52
|
constructor(handler: Handler, options?: IFrameBufferParams);
|
|
53
|
+
static getTargetReadParams(internalFormat: string): {
|
|
54
|
+
pixelFormat: string;
|
|
55
|
+
pixelType: string;
|
|
56
|
+
TypeArrayConstructor: TypedArrayConstructor;
|
|
57
|
+
};
|
|
55
58
|
static createTargets(targets?: ITargetParams[]): ITarget[];
|
|
56
59
|
destroy(): void;
|
|
57
60
|
/**
|
|
@@ -60,11 +63,11 @@ export declare class Framebuffer extends BaseFramebuffer {
|
|
|
60
63
|
* @override
|
|
61
64
|
*/
|
|
62
65
|
init(): void;
|
|
66
|
+
protected _attachExternalDepthRenderbuffer(depthRenderbuffer: WebGLRenderbuffer | null): void;
|
|
63
67
|
/**
|
|
64
68
|
* Check your constructor has targets like this
|
|
65
69
|
* targets: [{
|
|
66
|
-
* internalFormat: "
|
|
67
|
-
* type: "UNSIGNED_BYTE",
|
|
70
|
+
* internalFormat: "RGBA8",
|
|
68
71
|
* attachment: "COLOR_ATTACHMENT",
|
|
69
72
|
* readAsync: true
|
|
70
73
|
* }],
|