@openglobus/og 0.28.7 → 1.0.0-rc10
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 +33 -18
- package/lib/Deferred.d.ts +2 -2
- package/lib/Events.d.ts +1 -1
- package/lib/Globe.d.ts +22 -11
- package/lib/Object3d.d.ts +18 -15
- package/lib/Popup.d.ts +2 -2
- package/lib/assets/LabelWorker.worker-C24YLEkW.js.map +1 -0
- package/lib/assets/PlainSegmentWorker.worker-DJHXd0bF.js.map +1 -0
- package/lib/assets/TerrainWorker.worker-B4Gp0jCy.js.map +1 -0
- package/lib/bv/index.d.ts +2 -2
- package/lib/camera/Camera.d.ts +320 -33
- package/lib/camera/Frustum.d.ts +136 -15
- package/lib/camera/PlanetCamera.d.ts +114 -11
- package/lib/camera/index.d.ts +2 -2
- package/lib/control/CompassButton.d.ts +2 -2
- package/lib/control/EarthCoordinates.d.ts +5 -2
- package/lib/control/FramebufferPreview.d.ts +20 -4
- 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 +7 -2
- package/lib/control/Navigation.d.ts +27 -12
- 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/depthCamera/DepthCamera.d.ts +118 -0
- package/lib/control/depthCamera/DepthCameraHandler.d.ts +25 -0
- package/lib/control/depthCamera/depth_camera.d.ts +2 -0
- 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/CameraEditorView.d.ts +62 -0
- package/lib/control/entityEditor/EntityEditor.d.ts +20 -0
- package/lib/control/entityEditor/EntityEditorDialog.d.ts +38 -0
- package/lib/control/{geoObjectEditor/GeoObjectEditorScene.d.ts → entityEditor/EntityEditorScene.d.ts} +28 -12
- package/lib/control/{geoObjectEditor/GeoObjectEditorDialog.d.ts → entityEditor/EntityEditorView.d.ts} +22 -23
- package/lib/control/entityEditor/ProjectorEditorView.d.ts +31 -0
- package/lib/control/{geoObjectEditor → entityEditor}/RotateEntity.d.ts +5 -1
- 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 +7 -6
- 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 +19 -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 +140 -72
- 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} +32 -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} +29 -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 +59 -42
- package/lib/layer/BaseGeoImage.d.ts +20 -17
- package/lib/layer/BaseTileMaterialLayer.d.ts +36 -0
- package/lib/layer/CanvasTiles.d.ts +20 -22
- 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 +106 -37
- package/lib/layer/WMS.d.ts +1 -1
- package/lib/layer/XYZ.d.ts +14 -31
- package/lib/layer/index.d.ts +12 -12
- package/lib/math/Line2.d.ts +10 -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 +2 -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 +8 -5
- package/lib/quadTree/QuadTreeStrategy.d.ts +6 -5
- package/lib/quadTree/earth/EarthEntityCollectionNodeLonLat.d.ts +4 -4
- package/lib/quadTree/earth/EarthEntityCollectionsTreeStrategy.d.ts +7 -4
- package/lib/quadTree/equi/EquiEntityCollectionsTreeStrategy.d.ts +3 -0
- 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 +18 -0
- package/lib/renderer/Renderer.d.ts +195 -100
- package/lib/renderer/RendererEvents.d.ts +16 -5
- package/lib/renderer/WOITPass.d.ts +14 -0
- package/lib/renderer/cascadeShadows/CascadeShadowManager.d.ts +34 -0
- package/lib/renderer/cascadeShadows/CascadeShadowMap.d.ts +112 -0
- package/lib/renderer/cascadeShadows/cascade_shadow_depth.d.ts +2 -0
- package/lib/renderer/projectors/Projector.d.ts +66 -0
- package/lib/renderer/projectors/ProjectorManager.d.ts +85 -0
- package/lib/renderer/projectors/ProjectorsPass.d.ts +37 -0
- package/lib/renderer/shadows/ShadowManager.d.ts +40 -0
- package/lib/renderer/shadows/ShadowMap.d.ts +21 -0
- package/lib/renderer/textureUnits.d.ts +6 -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 +268 -72
- package/lib/scene/{RenderNode.d.ts → Scene.d.ts} +47 -51
- package/lib/scene/SkyBox.d.ts +7 -4
- package/lib/scene/index.d.ts +2 -2
- package/lib/segment/Segment.d.ts +38 -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/common/uniforms.d.ts +27 -0
- 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 +9 -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/projectorsPass/projectorsPass.d.ts +2 -0
- 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/varianceBlur.d.ts +2 -0
- package/lib/shaders/weightedOITResolve.d.ts +2 -0
- package/lib/terrain/BilTerrain.d.ts +1 -1
- package/lib/terrain/EmptyTerrain.d.ts +6 -7
- package/lib/terrain/GlobusTerrain.d.ts +18 -23
- package/lib/terrain/MapterhornTerrain.d.ts +10 -0
- package/lib/terrain/RgbTerrain.d.ts +19 -8
- package/lib/terrain/index.d.ts +10 -6
- 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 +7 -4
- package/lib/ui/Dialog.d.ts +30 -3
- package/lib/ui/Input.d.ts +19 -3
- package/lib/ui/Slider.d.ts +5 -2
- package/lib/ui/TitleBarView.d.ts +21 -0
- 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 +10 -9
- package/lib/utils/FontAtlas.d.ts +61 -10
- 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 +24 -5
- package/lib/utils/shared.d.ts +12 -5
- package/lib/utils/textureResourceMeta.d.ts +9 -0
- package/lib/webgl/BaseFramebuffer.d.ts +35 -0
- package/lib/webgl/Framebuffer.d.ts +14 -13
- package/lib/webgl/Handler.d.ts +94 -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 +79 -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/CameraFrameComposer.d.ts +0 -19
- package/lib/control/CameraFrameHandler.d.ts +0 -26
- package/lib/control/OldMouseNavigation.d.ts +0 -65
- package/lib/control/ZoomControl.d.ts +0 -28
- package/lib/control/cameraDepthHandler/CameraDepthHandler.d.ts +0 -28
- package/lib/control/cameraDepthHandler/camera_depth.d.ts +0 -2
- 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/entity/{LabelWorker.worker.d.ts → label/LabelWorker.worker.d.ts} +0 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { Sphere } from "../../bv/Sphere";
|
|
2
|
+
import { Camera } from "../../camera/Camera";
|
|
3
|
+
import { PlanetCamera } from "../../camera/PlanetCamera";
|
|
4
|
+
import { Vector } from "../../layer/Vector";
|
|
5
|
+
import { Vec3 } from "../../math/Vec3";
|
|
6
|
+
import { QuadTreeStrategy } from "../../quadTree";
|
|
7
|
+
import type { Node } from "../../quadTree/Node";
|
|
8
|
+
import type { Renderer } from "../../renderer/Renderer";
|
|
9
|
+
import type { Planet } from "../../scene/Planet";
|
|
10
|
+
import type { Segment } from "../../segment/Segment";
|
|
11
|
+
import { Framebuffer } from "../../webgl";
|
|
12
|
+
import type { CascadeShadowManager } from "./CascadeShadowManager";
|
|
13
|
+
/**
|
|
14
|
+
* Cascade shadow map split configuration.
|
|
15
|
+
* @property enabled - Enables the cascade.
|
|
16
|
+
* @property splitNear - Near split distance.
|
|
17
|
+
* @property splitFar - Far split distance.
|
|
18
|
+
* @property bias - Shadow depth bias. Converted to normalized depth by CascadeShadowManager.
|
|
19
|
+
* @property normalBias - Surface normal offset in RTC/world units.
|
|
20
|
+
* @property depthEpsilon - Shadow depth transition width. Converted to normalized depth by CascadeShadowManager.
|
|
21
|
+
*/
|
|
22
|
+
export interface CascadeParams {
|
|
23
|
+
enabled: boolean;
|
|
24
|
+
splitNear: number;
|
|
25
|
+
splitFar: number;
|
|
26
|
+
bias: number;
|
|
27
|
+
normalBias: number;
|
|
28
|
+
depthEpsilon: number;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Cascade shadow map configuration options.
|
|
32
|
+
* @property enabled - Enables cascade shadow rendering.
|
|
33
|
+
* @property size - Shadow map texture size in pixels.
|
|
34
|
+
* @property cascadeCount - Number of generated cascade splits when cascades is not provided.
|
|
35
|
+
* @property maxDistance - Maximum camera distance covered by all cascade splits.
|
|
36
|
+
* @property splitLambda - Blend factor between uniform and logarithmic split distribution.
|
|
37
|
+
* @property verticalViewAngle - Vertical view angle for the orthographic cascade camera.
|
|
38
|
+
* @property casterMargin - Minimum light-space depth margin for shadow casters in world units.
|
|
39
|
+
* @property excludeLayers - Vector layers excluded from cascade shadow rendering.
|
|
40
|
+
* @property cascades - Per-cascade parameter overrides. When provided, its length defines cascade count.
|
|
41
|
+
*/
|
|
42
|
+
export interface ICascadeShadowMapParams {
|
|
43
|
+
enabled?: boolean;
|
|
44
|
+
size?: number;
|
|
45
|
+
cascadeCount?: number;
|
|
46
|
+
maxDistance?: number;
|
|
47
|
+
splitLambda?: number;
|
|
48
|
+
verticalViewAngle?: number;
|
|
49
|
+
casterMargin?: number;
|
|
50
|
+
excludeLayers?: Vector[];
|
|
51
|
+
cascades?: Partial<CascadeParams>[];
|
|
52
|
+
}
|
|
53
|
+
export declare class CascadeShadowMap {
|
|
54
|
+
protected static __counter__: number;
|
|
55
|
+
readonly id: number;
|
|
56
|
+
readonly size: number;
|
|
57
|
+
readonly maxDistance: number;
|
|
58
|
+
readonly splitLambda: number;
|
|
59
|
+
readonly verticalViewAngle: number;
|
|
60
|
+
readonly casterMargin: number;
|
|
61
|
+
readonly excludeLayers: Vector[];
|
|
62
|
+
depthCamera: Camera;
|
|
63
|
+
framebuffer: Framebuffer | null;
|
|
64
|
+
quadTreeStrategy: QuadTreeStrategy | null;
|
|
65
|
+
readonly cascades: CascadeParams[];
|
|
66
|
+
_manager: CascadeShadowManager | null;
|
|
67
|
+
protected _planet: Planet | null;
|
|
68
|
+
protected _renderer: Renderer | null;
|
|
69
|
+
protected _initialized: boolean;
|
|
70
|
+
protected _enabled: boolean;
|
|
71
|
+
protected _depthArrayTexture: WebGLTexture | null;
|
|
72
|
+
protected _lastPlanetHeightFactor: number;
|
|
73
|
+
protected _cascadeBoundingSpheres: Sphere[];
|
|
74
|
+
protected _depthCameraBoundingSphere: Sphere;
|
|
75
|
+
constructor(params?: ICascadeShadowMapParams);
|
|
76
|
+
get initialized(): boolean;
|
|
77
|
+
get enabled(): boolean;
|
|
78
|
+
set enabled(enabled: boolean);
|
|
79
|
+
get depthArrayTexture(): WebGLTexture | null;
|
|
80
|
+
init(renderer: Renderer): void;
|
|
81
|
+
bindPlanet(planet: Planet): void;
|
|
82
|
+
unbindPlanet(): void;
|
|
83
|
+
destroy(): void;
|
|
84
|
+
frame(): void;
|
|
85
|
+
protected _prepareFrame(): void;
|
|
86
|
+
protected _finishFrame(): void;
|
|
87
|
+
protected _createCascadeParams(params: ICascadeShadowMapParams, cascadeCount: number): CascadeParams[];
|
|
88
|
+
protected _computeCascadeSplitDistance(splitIndex: number, splitDistributionNear: number, cascadeCount: number): number;
|
|
89
|
+
protected _createCascadeBoundingSpheres(): Sphere[];
|
|
90
|
+
protected _createDepthCamera(planet?: Planet | null): Camera;
|
|
91
|
+
protected _createFramebuffer(renderer: Renderer): Framebuffer;
|
|
92
|
+
protected _createDepthArrayTexture(renderer: Renderer): WebGLTexture | null;
|
|
93
|
+
protected _validateFramebufferLayers(): void;
|
|
94
|
+
protected _createQuadTreeStrategy(planet: Planet, camera: PlanetCamera): QuadTreeStrategy;
|
|
95
|
+
protected _initPlanetSource(planet: Planet): void;
|
|
96
|
+
protected _syncPlanetHeightFactor(): void;
|
|
97
|
+
protected _updateCascadeBounds(): void;
|
|
98
|
+
protected _updateDepthCamera(): void;
|
|
99
|
+
protected _computeDepthCameraBoundingSphere(outSphere: Sphere): number;
|
|
100
|
+
protected _extendSphereBySphere(outSphere: Sphere, sphere: Sphere): void;
|
|
101
|
+
protected _getDepthCameraUp(lightDirection: Vec3): Vec3;
|
|
102
|
+
/**
|
|
103
|
+
* Computes a minimum bounding sphere for the main camera perspective frustum slice.
|
|
104
|
+
* Cascade split distances are linear distances from the main camera eye.
|
|
105
|
+
*/
|
|
106
|
+
protected _computeCascadeBoundingSphere(cascade: CascadeParams, outSphere: Sphere): void;
|
|
107
|
+
protected _collectRenderNodes(): QuadTreeStrategy | null;
|
|
108
|
+
protected _drawFrame(): void;
|
|
109
|
+
protected _renderCascade(cascade: CascadeParams, cascadeIndex: number, renderedNodes: Node[], fadingOpaqueSegments: Segment[]): void;
|
|
110
|
+
protected _segmentsPass(camera: Camera, renderedNodes: Node[], fadingOpaqueSegments: Segment[]): void;
|
|
111
|
+
protected _geoObjectsPass(camera: Camera): void;
|
|
112
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { DepthCamera } from "../../control/depthCamera/DepthCamera";
|
|
2
|
+
import type { NumberArray3 } from "../../math/Vec3";
|
|
3
|
+
import type { NumberArray4 } from "../../math/Vec4";
|
|
4
|
+
import { TypedArray } from "../../utils/shared";
|
|
5
|
+
import type { ProjectorManager } from "./ProjectorManager";
|
|
6
|
+
export type ProjectorSourceType = "color" | "image" | "video" | "texture";
|
|
7
|
+
export type ProjectorRenderMode = "color" | "light";
|
|
8
|
+
export type ProjectorColor = NumberArray3 | NumberArray4 | TypedArray | string;
|
|
9
|
+
export declare const PROJECTOR_RENDER_MODE_COLOR = 0;
|
|
10
|
+
export declare const PROJECTOR_RENDER_MODE_LIGHT = 1;
|
|
11
|
+
export interface IProjectorParams {
|
|
12
|
+
enabled?: boolean;
|
|
13
|
+
depthCamera: DepthCamera;
|
|
14
|
+
color?: ProjectorColor;
|
|
15
|
+
sourceType?: ProjectorSourceType;
|
|
16
|
+
renderMode?: ProjectorRenderMode;
|
|
17
|
+
priority?: number;
|
|
18
|
+
}
|
|
19
|
+
export declare class Projector {
|
|
20
|
+
protected static __staticCounter__: number;
|
|
21
|
+
readonly id: number;
|
|
22
|
+
depthCamera: DepthCamera;
|
|
23
|
+
color: Float32Array;
|
|
24
|
+
sourceType: ProjectorSourceType;
|
|
25
|
+
protected _enabled: boolean;
|
|
26
|
+
protected _renderMode: number;
|
|
27
|
+
protected _priority: number;
|
|
28
|
+
/**
|
|
29
|
+
* Layer index in the manager-owned depth array texture. -1 if not yet added.
|
|
30
|
+
*/
|
|
31
|
+
_slot: number;
|
|
32
|
+
/**
|
|
33
|
+
* Manager that owns this projector. Set in ProjectorManager.add(), cleared on remove().
|
|
34
|
+
*/
|
|
35
|
+
_manager: ProjectorManager | null;
|
|
36
|
+
constructor(params: IProjectorParams);
|
|
37
|
+
get enabled(): boolean;
|
|
38
|
+
set enabled(enabled: boolean);
|
|
39
|
+
get renderMode(): number;
|
|
40
|
+
set renderMode(renderMode: number);
|
|
41
|
+
get priority(): number;
|
|
42
|
+
set priority(priority: number);
|
|
43
|
+
protected static _resolveColor(color?: ProjectorColor): Float32Array;
|
|
44
|
+
setColorHTML(color: string): void;
|
|
45
|
+
setColor(r: number, g: number, b: number, a?: number): void;
|
|
46
|
+
setOpacity(a: number): void;
|
|
47
|
+
getColor(): string;
|
|
48
|
+
getOpacity(): number;
|
|
49
|
+
/**
|
|
50
|
+
* @public
|
|
51
|
+
* @return number
|
|
52
|
+
* Gets allocated layer index inside the depth array texture.
|
|
53
|
+
*/
|
|
54
|
+
get slot(): number;
|
|
55
|
+
/**
|
|
56
|
+
* Gets Manager-owned TEXTURE_2D_ARRAY used as the depth target.
|
|
57
|
+
* @return WebGLTexture | null
|
|
58
|
+
*/
|
|
59
|
+
get arrayTexture(): WebGLTexture | null;
|
|
60
|
+
/**
|
|
61
|
+
* Gets original framebuffer color texture (TEXTURE_2D) used by projector depth pass.
|
|
62
|
+
* ProjectorManager temporarily rebinds framebuffer attachment to array-layer,
|
|
63
|
+
* but framebuffer.textures[0] remains the original texture reference.
|
|
64
|
+
*/
|
|
65
|
+
get depthTexture(): WebGLTexture | null;
|
|
66
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { Mat4 } from "../../math/Mat4";
|
|
2
|
+
import type { ShaderProgram } from "../../webgl/ShaderProgram";
|
|
3
|
+
import type { DepthCamera } from "../../control/depthCamera/DepthCamera";
|
|
4
|
+
import type { Renderer } from "../Renderer";
|
|
5
|
+
import { Projector } from "./Projector";
|
|
6
|
+
/**
|
|
7
|
+
* Maximum number of depth layers allocated in manager-owned projector array texture.
|
|
8
|
+
* Defines how many projectors can be added to the manager at once.
|
|
9
|
+
*/
|
|
10
|
+
export declare const MAX_PROJECTOR_LAYERS = 64;
|
|
11
|
+
/**
|
|
12
|
+
* Maximum number of projectors processed in a single shader invocation.
|
|
13
|
+
* Used by forward / WOIT paths as top-K by priority per draw call.
|
|
14
|
+
* Deferred projector pass binds one projector per draw (`chunkSize = 1`).
|
|
15
|
+
*/
|
|
16
|
+
export declare const MAX_FORWARD_PROJECTORS = 8;
|
|
17
|
+
/** Default texture unit where the depth array sampler is bound. */
|
|
18
|
+
export declare class ProjectorManager {
|
|
19
|
+
protected _renderer: Renderer;
|
|
20
|
+
protected _projectors: Projector[];
|
|
21
|
+
protected _activeProjectors: Projector[];
|
|
22
|
+
protected _viewProjData: Float32Array;
|
|
23
|
+
protected _invViewProjData: Float32Array;
|
|
24
|
+
protected _eyeRelData: Float32Array;
|
|
25
|
+
protected _colorIntensityData: Float32Array;
|
|
26
|
+
protected _paramsData: Float32Array;
|
|
27
|
+
protected _layerData: Int32Array;
|
|
28
|
+
protected _updateActiveProjectors: boolean;
|
|
29
|
+
protected _depthArrayTexture: WebGLTexture | null;
|
|
30
|
+
/** Layer size of `_depthArrayTexture`. Determined by the first projector added. */
|
|
31
|
+
protected _depthSize: number;
|
|
32
|
+
protected _depthCapacity: number;
|
|
33
|
+
protected _freeSlots: number[];
|
|
34
|
+
protected _tmpInverse: Mat4;
|
|
35
|
+
constructor(renderer: Renderer);
|
|
36
|
+
/** Total active projectors count (used by consumers to choose _proj / _noproj programs). */
|
|
37
|
+
get activeCount(): number;
|
|
38
|
+
/** Manager-owned TEXTURE_2D_ARRAY containing depth maps for all projectors. */
|
|
39
|
+
get depthArrayTexture(): WebGLTexture | null;
|
|
40
|
+
/** Snapshot of currently active projectors (sorted by priority desc). */
|
|
41
|
+
get active(): Projector[];
|
|
42
|
+
add(projector: Projector): number;
|
|
43
|
+
/**
|
|
44
|
+
* Rebinds projector.depthCamera.framebuffer COLOR_ATTACHMENT0 from its own TEXTURE_2D
|
|
45
|
+
* to (this._depthArrayTexture, projector._slot) so renders go directly into
|
|
46
|
+
* the array layer without any per-frame copy. The original TEXTURE_2D stays
|
|
47
|
+
* referenced inside framebuffer.textures[0] so framebuffer.destroy() can free it
|
|
48
|
+
* normally — we never overwrite that slot with the shared array texture.
|
|
49
|
+
*/
|
|
50
|
+
protected _rebindFramebufferToLayer(projector: Projector): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Restores projector.depthCamera.framebuffer COLOR_ATTACHMENT0 back to its original TEXTURE_2D
|
|
53
|
+
* so subsequent depth renders no longer touch the freed array layer.
|
|
54
|
+
*/
|
|
55
|
+
protected _restoreFramebufferAttachment(projector: Projector): void;
|
|
56
|
+
update(projector: Projector): boolean;
|
|
57
|
+
getByDepthCamera(depthCamera: DepthCamera): Projector | null;
|
|
58
|
+
remove(projector: Projector): boolean;
|
|
59
|
+
clear(): void;
|
|
60
|
+
dispose(): void;
|
|
61
|
+
/**
|
|
62
|
+
* Binds forward/WOIT projectors to the given shader program.
|
|
63
|
+
* Uses top-K projectors by priority for current draw call.
|
|
64
|
+
*
|
|
65
|
+
* @returns Actual projector count uploaded (0..MAX_FORWARD_PROJECTORS).
|
|
66
|
+
*/
|
|
67
|
+
bindForward(program: ShaderProgram, textureUnitStart?: number): number;
|
|
68
|
+
/**
|
|
69
|
+
* Binds exactly one projector for deferred frustum-geometry draw call.
|
|
70
|
+
*
|
|
71
|
+
* @param projectorIndex - Active projector index in priority-sorted array.
|
|
72
|
+
* @returns 1 if projector was bound, 0 if index is out of range.
|
|
73
|
+
*/
|
|
74
|
+
bindDeferred(program: ShaderProgram, textureUnitStart?: number, projectorIndex?: number): number;
|
|
75
|
+
/**
|
|
76
|
+
* Lazily allocates the manager-owned TEXTURE_2D_ARRAY at the size of the first
|
|
77
|
+
* projector to be added. All subsequent projectors must use the same size.
|
|
78
|
+
* Returns false if a size mismatch is detected.
|
|
79
|
+
*/
|
|
80
|
+
protected _ensureDepthArrayTexture(size: number, capacity: number): boolean;
|
|
81
|
+
protected _createDepthArrayTexture(size: number, capacity: number): boolean;
|
|
82
|
+
protected _growDepthArrayTexture(): boolean;
|
|
83
|
+
protected _collectActiveProjectors(): Projector[];
|
|
84
|
+
protected _getActiveProjectors(): Projector[];
|
|
85
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Mat4 } from "../../math/Mat4";
|
|
2
|
+
import type { Renderer } from "../Renderer";
|
|
3
|
+
import type { Framebuffer } from "../../webgl/Framebuffer";
|
|
4
|
+
import type { Projector } from "./Projector";
|
|
5
|
+
import type { NumberArray16 } from "../../math/Mat4";
|
|
6
|
+
import type { Vec3 } from "../../math/Vec3";
|
|
7
|
+
/**
|
|
8
|
+
* Deferred projector lighting pass.
|
|
9
|
+
* For every active projector draws a fullscreen quad clipped by a per-projector screen-space.
|
|
10
|
+
* Skipped entirely when no projectors are active.
|
|
11
|
+
* Scissor gives only ~5% optimization.
|
|
12
|
+
*/
|
|
13
|
+
export declare class ProjectorsPass {
|
|
14
|
+
protected _renderer: Renderer;
|
|
15
|
+
protected _cornerBuffer: WebGLBuffer | null;
|
|
16
|
+
protected _indexBuffer: WebGLBuffer | null;
|
|
17
|
+
protected _indexCount: number;
|
|
18
|
+
protected _tmpInverse: Mat4;
|
|
19
|
+
protected _scissor: [number, number, number, number];
|
|
20
|
+
constructor(renderer: Renderer);
|
|
21
|
+
init(): void;
|
|
22
|
+
dispose(): void;
|
|
23
|
+
/**
|
|
24
|
+
* Compute the projector frustum screen-space AABB in pixels (origin = bottom-left).
|
|
25
|
+
* Returns:
|
|
26
|
+
* - true + filled `_scissor` rect when the projector is on-screen.
|
|
27
|
+
* - false when the projector is entirely off-screen (caller should skip the draw).
|
|
28
|
+
*
|
|
29
|
+
* If any frustum corner is behind the main camera (w<=0), falls back to the full viewport
|
|
30
|
+
* (CPU-side near-plane clipping of the volume is too costly to be worth it here).
|
|
31
|
+
*/
|
|
32
|
+
protected _computeScissor(projector: Projector, mainPV: NumberArray16, mainEye: Vec3, viewportW: number, viewportH: number): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Apply per-projector additive projector color(lighting) into the currently bound framebuffer.
|
|
35
|
+
*/
|
|
36
|
+
apply(gBuffer: Framebuffer): void;
|
|
37
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { DepthCamera } from "../../control/depthCamera/DepthCamera";
|
|
2
|
+
import type { ShaderProgram } from "../../webgl/ShaderProgram";
|
|
3
|
+
import type { Renderer } from "../Renderer";
|
|
4
|
+
import { ShadowMap } from "./ShadowMap";
|
|
5
|
+
export declare const MAX_SHADOW_MAPS = 4;
|
|
6
|
+
export declare const VARIANCE_SHADOW_ENABLED = false;
|
|
7
|
+
export declare class ShadowManager {
|
|
8
|
+
protected _renderer: Renderer;
|
|
9
|
+
protected _shadowMaps: ShadowMap[];
|
|
10
|
+
protected _activeShadowMaps: ShadowMap[];
|
|
11
|
+
protected _viewProjData: Float32Array;
|
|
12
|
+
protected _eyeRelData: Float32Array;
|
|
13
|
+
protected _paramsData: Float32Array;
|
|
14
|
+
protected _layerData: Int32Array;
|
|
15
|
+
protected _updateActiveShadowMaps: boolean;
|
|
16
|
+
protected _depthArrayTexture: WebGLTexture | null;
|
|
17
|
+
protected _depthSize: number;
|
|
18
|
+
protected _varianceBlurArrayTexture: WebGLTexture | null;
|
|
19
|
+
protected _varianceBlurArraySize: number;
|
|
20
|
+
protected _freeSlots: number[];
|
|
21
|
+
constructor(renderer: Renderer);
|
|
22
|
+
get activeCount(): number;
|
|
23
|
+
get depthArrayTexture(): WebGLTexture | null;
|
|
24
|
+
get active(): ShadowMap[];
|
|
25
|
+
add(shadowMap: ShadowMap): number;
|
|
26
|
+
protected _rebindFramebufferToLayer(shadowMap: ShadowMap): boolean;
|
|
27
|
+
protected _restoreFramebufferAttachment(shadowMap: ShadowMap): void;
|
|
28
|
+
update(shadowMap: ShadowMap): boolean;
|
|
29
|
+
getByDepthCamera(depthCamera: DepthCamera): ShadowMap | null;
|
|
30
|
+
remove(shadowMap: ShadowMap): boolean;
|
|
31
|
+
clear(): void;
|
|
32
|
+
dispose(): void;
|
|
33
|
+
blurShadowMap(shadowMap: ShadowMap): void;
|
|
34
|
+
bindForward(program: ShaderProgram, textureUnitStart?: number): number;
|
|
35
|
+
bindDeferred(program: ShaderProgram, textureUnitStart?: number, shadowMapIndex?: number): number;
|
|
36
|
+
protected _ensureDepthArrayTexture(size: number): boolean;
|
|
37
|
+
protected _createDepthArrayTexture(size: number): boolean;
|
|
38
|
+
protected _collectActiveShadowMaps(): ShadowMap[];
|
|
39
|
+
protected _getActiveShadowMaps(): ShadowMap[];
|
|
40
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { DepthCamera } from "../../control/depthCamera/DepthCamera";
|
|
2
|
+
import type { ShadowManager } from "./ShadowManager";
|
|
3
|
+
export interface IShadowMapParams {
|
|
4
|
+
enabled?: boolean;
|
|
5
|
+
depthCamera: DepthCamera;
|
|
6
|
+
}
|
|
7
|
+
export declare class ShadowMap {
|
|
8
|
+
protected static __staticCounter__: number;
|
|
9
|
+
readonly id: number;
|
|
10
|
+
depthCamera: DepthCamera;
|
|
11
|
+
protected _enabled: boolean;
|
|
12
|
+
_slot: number;
|
|
13
|
+
_manager: ShadowManager | null;
|
|
14
|
+
constructor(params: IShadowMapParams);
|
|
15
|
+
get enabled(): boolean;
|
|
16
|
+
set enabled(enabled: boolean);
|
|
17
|
+
get slot(): number;
|
|
18
|
+
get arrayTexture(): WebGLTexture | null;
|
|
19
|
+
get depthTexture(): WebGLTexture | null;
|
|
20
|
+
blur(): void;
|
|
21
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const DEFAULT_PROJECTOR_TEXTURE_UNIT_START = 6;
|
|
2
|
+
export declare const DEFAULT_SHADOW_TEXTURE_UNIT_START = 10;
|
|
3
|
+
export declare const DEFAULT_CASCADE_SHADOW_TEXTURE_UNIT_START = 14;
|
|
4
|
+
export declare const TERRAIN_PROJECTOR_TEXTURE_UNIT_OFFSET = 6;
|
|
5
|
+
export declare const TERRAIN_SHADOW_TEXTURE_UNIT_OFFSET = 10;
|
|
6
|
+
export declare const TERRAIN_CASCADE_SHADOW_TEXTURE_UNIT_OFFSET = 11;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"atlas":{"type":"mtsdf","distanceRange":12,"distanceRangeMiddle":0,"size":28,"width":512,"height":512,"yOrigin":"bottom"},"metrics":{"emSize":1,"lineHeight":1.3,"ascender":0.90000000000000002,"descender":-0.40000000000000002,"underlineY":-0.153,"underlineThickness":0.02},"glyphs":[{"unicode":32,"advance":0.19},{"unicode":33,"advance":0.33600000000000002,"planeBounds":{"left":-0.13890957190957193,"bottom":-0.2678571428571429,"right":0.68251899951899953,"top":0.875},"atlasBounds":{"left":207.5,"bottom":0.5,"right":230.5,"top":32.5}},{"unicode":35,"advance":0.71899999999999997,"planeBounds":{"left":-0.19078571428571431,"bottom":-0.2678571428571429,"right":0.98778571428571449,"top":0.9464285714285714},"atlasBounds":{"left":139.5,"bottom":323.5,"right":172.5,"top":357.5}},{"unicode":36,"advance":0.59199999999999997,"planeBounds":{"left":-0.2018571428571429,"bottom":-0.375,"right":0.83385714285714285,"top":0.9821428571428571},"atlasBounds":{"left":175.5,"bottom":289.5,"right":204.5,"top":327.5}},{"unicode":37,"advance":0.46000000000000002,"planeBounds":{"left":-0.24564285714285719,"bottom":-0.2678571428571429,"right":0.71864285714285714,"top":0.91071428571428581},"atlasBounds":{"left":175.5,"bottom":38.5,"right":202.5,"top":71.5}},{"unicode":38,"advance":0.59799999999999998,"planeBounds":{"left":-0.23900000000000005,"bottom":-0.2678571428571429,"right":1.0110000000000001,"top":0.91071428571428581},"atlasBounds":{"left":98.5,"bottom":55.5,"right":133.5,"top":88.5}},{"unicode":40,"advance":0.27400000000000002,"planeBounds":{"left":-0.25107142857142867,"bottom":-0.3392857142857143,"right":0.60607142857142848,"top":0.875},"atlasBounds":{"left":235.5,"bottom":100.5,"right":259.5,"top":134.5}},{"unicode":41,"advance":0.35199999999999998,"planeBounds":{"left":-0.25807142857142867,"bottom":-0.3392857142857143,"right":0.59907142857142848,"top":0.875},"atlasBounds":{"left":235.5,"bottom":65.5,"right":259.5,"top":99.5}},{"unicode":42,"advance":0.436,"planeBounds":{"left":-0.2412857142857143,"bottom":0.01785714285714286,"right":0.68728571428571428,"top":0.91071428571428581},"atlasBounds":{"left":207.5,"bottom":447.5,"right":233.5,"top":472.5}},{"unicode":43,"advance":0.29599999999999999,"planeBounds":{"left":-0.19950000000000004,"bottom":-0.1607142857142857,"right":0.55049999999999999,"top":0.66071428571428581},"atlasBounds":{"left":261.5,"bottom":75.5,"right":282.5,"top":98.5}},{"unicode":44,"advance":0.221,"planeBounds":{"left":-0.20092857142857143,"bottom":-0.44642857142857145,"right":0.4419285714285715,"top":0.3035714285714286},"atlasBounds":{"left":286.5,"bottom":425.5,"right":304.5,"top":446.5}},{"unicode":45,"advance":0.32000000000000001,"planeBounds":{"left":-0.17685714285714291,"bottom":-0.053571428571428568,"right":0.60885714285714276,"top":0.5178571428571429},"atlasBounds":{"left":261.5,"bottom":184.5,"right":283.5,"top":200.5}},{"unicode":46,"advance":0.21299999999999999,"planeBounds":{"left":-0.19757142857142859,"bottom":-0.2678571428571429,"right":0.40957142857142859,"top":0.3392857142857143},"atlasBounds":{"left":139.5,"bottom":2.5,"right":156.5,"top":19.5}},{"unicode":47,"advance":0.58499999999999996,"planeBounds":{"left":-0.31337815126050422,"bottom":-0.41071428571428575,"right":0.90090756302521002,"top":0.94642857142857151},"atlasBounds":{"left":139.5,"bottom":434.5,"right":173.5,"top":472.5}},{"unicode":48,"advance":0.57600000000000007,"planeBounds":{"left":-0.22921428571428568,"bottom":-0.2678571428571429,"right":0.84221428571428569,"top":0.91071428571428581},"atlasBounds":{"left":175.5,"bottom":422.5,"right":205.5,"top":455.5}},{"unicode":49,"advance":0.41799999999999998,"planeBounds":{"left":-0.19042857142857147,"bottom":-0.3035714285714286,"right":0.70242857142857151,"top":0.87500000000000011},"atlasBounds":{"left":207.5,"bottom":33.5,"right":232.5,"top":66.5}},{"unicode":50,"advance":0.64800000000000002,"planeBounds":{"left":-0.26878571428571435,"bottom":-0.3035714285714286,"right":0.90978571428571442,"top":0.87500000000000011},"atlasBounds":{"left":139.5,"bottom":224.5,"right":172.5,"top":257.5}},{"unicode":51,"advance":0.67100000000000004,"planeBounds":{"left":-0.24609040178571426,"bottom":-0.2678571428571429,"right":0.93248102678571443,"top":0.875},"atlasBounds":{"left":139.5,"bottom":191.5,"right":172.5,"top":223.5}},{"unicode":52,"advance":0.65700000000000003,"planeBounds":{"left":-0.23178571428571421,"bottom":-0.2678571428571429,"right":0.94678571428571445,"top":0.875},"atlasBounds":{"left":139.5,"bottom":158.5,"right":172.5,"top":190.5}},{"unicode":53,"advance":0.65200000000000002,"planeBounds":{"left":-0.25800000000000006,"bottom":-0.2678571428571429,"right":0.99199999999999999,"top":0.91071428571428581},"atlasBounds":{"left":98.5,"bottom":21.5,"right":133.5,"top":54.5}},{"unicode":54,"advance":0.61199999999999999,"planeBounds":{"left":-0.23492857142857143,"bottom":-0.3035714285714286,"right":0.90792857142857153,"top":0.87500000000000011},"atlasBounds":{"left":139.5,"bottom":124.5,"right":171.5,"top":157.5}},{"unicode":55,"advance":0.47400000000000003,"planeBounds":{"left":-0.20073351656253033,"bottom":-0.2678571428571429,"right":0.87069505486604104,"top":0.91071428571428581},"atlasBounds":{"left":175.5,"bottom":358.5,"right":205.5,"top":391.5}},{"unicode":56,"advance":0.56200000000000006,"planeBounds":{"left":-0.26542857142857146,"bottom":-0.3035714285714286,"right":0.87742857142857156,"top":0.9107142857142857},"atlasBounds":{"left":139.5,"bottom":89.5,"right":171.5,"top":123.5}},{"unicode":57,"advance":0.44,"planeBounds":{"left":-0.25185714285714295,"bottom":-0.41071428571428575,"right":0.78385714285714292,"top":0.9107142857142857},"atlasBounds":{"left":175.5,"bottom":226.5,"right":204.5,"top":263.5}},{"unicode":58,"advance":0.24199999999999999,"planeBounds":{"left":-0.16292857142857142,"bottom":-0.23214285714285715,"right":0.47992857142857154,"top":0.5535714285714286},"atlasBounds":{"left":286.5,"bottom":447.5,"right":304.5,"top":469.5}},{"unicode":59,"advance":0.24199999999999999,"planeBounds":{"left":-0.19578571428571429,"bottom":-0.44642857142857145,"right":0.48278571428571432,"top":0.44642857142857151},"atlasBounds":{"left":261.5,"bottom":1.5,"right":280.5,"top":26.5}},{"unicode":60,"advance":0.33900000000000002,"planeBounds":{"left":-0.16214285714285717,"bottom":-0.1607142857142857,"right":0.55214285714285716,"top":0.66071428571428581},"atlasBounds":{"left":261.5,"bottom":27.5,"right":281.5,"top":50.5}},{"unicode":61,"advance":0.34000000000000002,"planeBounds":{"left":-0.20500000000000004,"bottom":-0.125,"right":0.54500000000000004,"top":0.58928571428571419},"atlasBounds":{"left":98.5,"bottom":0.5,"right":119.5,"top":20.5}},{"unicode":62,"advance":0.33600000000000002,"planeBounds":{"left":-0.16414285714285712,"bottom":-0.19642857142857142,"right":0.55014285714285716,"top":0.625},"atlasBounds":{"left":261.5,"bottom":51.5,"right":281.5,"top":74.5}},{"unicode":63,"advance":0.54900000000000004,"planeBounds":{"left":-0.15192857142857147,"bottom":-0.2678571428571429,"right":0.74092857142857149,"top":0.83928571428571419},"atlasBounds":{"left":235.5,"bottom":392.5,"right":260.5,"top":423.5}},{"unicode":64,"advance":0.68200000000000005,"planeBounds":{"left":-0.15316232717565015,"bottom":-0.3392857142857143,"right":0.95398052996720695,"top":0.7678571428571429},"atlasBounds":{"left":175.5,"bottom":480.5,"right":206.5,"top":511.5}},{"unicode":65,"advance":1.0569999999999999,"planeBounds":{"left":-0.26099999999999995,"bottom":-0.375,"right":1.4890000000000001,"top":0.91071428571428581},"atlasBounds":{"left":0.5,"bottom":277.5,"right":49.5,"top":313.5}},{"unicode":66,"advance":0.90100000000000002,"planeBounds":{"left":-0.20992857142857146,"bottom":-0.3392857142857143,"right":1.1829285714285716,"top":0.94642857142857162},"atlasBounds":{"left":98.5,"bottom":434.5,"right":137.5,"top":470.5}},{"unicode":67,"advance":0.73699999999999999,"planeBounds":{"left":-0.20335714285714288,"bottom":-0.375,"right":1.082357142857143,"top":0.91071428571428581},"atlasBounds":{"left":98.5,"bottom":173.5,"right":134.5,"top":209.5}},{"unicode":68,"advance":0.81700000000000006,"planeBounds":{"left":-0.35035714285714292,"bottom":-0.375,"right":1.185357142857143,"top":0.9464285714285714},"atlasBounds":{"left":54.5,"bottom":474.5,"right":97.5,"top":511.5}},{"unicode":69,"advance":0.83599999999999997,"planeBounds":{"left":-0.32000000000000006,"bottom":-0.375,"right":1.1799999999999999,"top":0.91071428571428581},"atlasBounds":{"left":54.5,"bottom":322.5,"right":96.5,"top":358.5}},{"unicode":70,"advance":0.75600000000000001,"planeBounds":{"left":-0.2413571428571428,"bottom":-0.3392857142857143,"right":1.2943571428571432,"top":0.9821428571428571},"atlasBounds":{"left":54.5,"bottom":436.5,"right":97.5,"top":473.5}},{"unicode":71,"advance":0.81100000000000005,"planeBounds":{"left":-0.15250000000000002,"bottom":-0.6964285714285714,"right":1.0974999999999999,"top":0.91071428571428581},"atlasBounds":{"left":0.5,"bottom":0.5,"right":35.5,"top":45.5}},{"unicode":72,"advance":0.871,"planeBounds":{"left":-0.26976785714285717,"bottom":-0.375,"right":1.4445178571428572,"top":0.9464285714285714},"atlasBounds":{"left":0.5,"bottom":239.5,"right":48.5,"top":276.5}},{"unicode":73,"advance":0.52200000000000002,"planeBounds":{"left":-0.2284285714285714,"bottom":-0.3035714285714286,"right":0.91442857142857159,"top":0.9107142857142857},"atlasBounds":{"left":139.5,"bottom":54.5,"right":171.5,"top":88.5}},{"unicode":74,"advance":0.48299999999999998,"planeBounds":{"left":-0.33857142857142858,"bottom":-0.41071428571428575,"right":1.0185714285714287,"top":0.87500000000000011},"atlasBounds":{"left":98.5,"bottom":286.5,"right":136.5,"top":322.5}},{"unicode":75,"advance":0.79700000000000004,"planeBounds":{"left":-0.22907142857142856,"bottom":-0.41071428571428575,"right":1.3780714285714286,"top":0.9107142857142857},"atlasBounds":{"left":0.5,"bottom":119.5,"right":45.5,"top":156.5}},{"unicode":76,"advance":0.69300000000000006,"planeBounds":{"left":-0.2257142857142857,"bottom":-0.375,"right":1.0957142857142859,"top":0.9464285714285714},"atlasBounds":{"left":98.5,"bottom":210.5,"right":135.5,"top":247.5}},{"unicode":77,"advance":1.0669999999999999,"planeBounds":{"left":-0.29835714285714288,"bottom":-0.44642857142857145,"right":1.4873571428571428,"top":0.91071428571428581},"atlasBounds":{"left":0.5,"bottom":314.5,"right":50.5,"top":352.5}},{"unicode":78,"advance":0.85699999999999998,"planeBounds":{"left":-0.25700000000000001,"bottom":-0.41071428571428575,"right":1.2430000000000001,"top":0.9107142857142857},"atlasBounds":{"left":54.5,"bottom":284.5,"right":96.5,"top":321.5}},{"unicode":79,"advance":0.93300000000000005,"planeBounds":{"left":-0.21728571428571419,"bottom":-0.3392857142857143,"right":1.2112857142857145,"top":0.9821428571428571},"atlasBounds":{"left":54.5,"bottom":54.5,"right":94.5,"top":91.5}},{"unicode":80,"advance":0.71499999999999997,"planeBounds":{"left":-0.21057142857142849,"bottom":-0.375,"right":1.1465714285714288,"top":0.9464285714285714},"atlasBounds":{"left":98.5,"bottom":248.5,"right":136.5,"top":285.5}},{"unicode":81,"advance":0.94400000000000006,"planeBounds":{"left":-0.23414285714285712,"bottom":-0.51785714285714279,"right":1.2301428571428572,"top":0.91071428571428592},"atlasBounds":{"left":54.5,"bottom":130.5,"right":95.5,"top":170.5}},{"unicode":82,"advance":0.72199999999999998,"planeBounds":{"left":-0.27292857142857146,"bottom":-0.375,"right":1.1199285714285716,"top":0.91071428571428581},"atlasBounds":{"left":98.5,"bottom":358.5,"right":137.5,"top":394.5}},{"unicode":83,"advance":0.66500000000000004,"planeBounds":{"left":-0.21014285714285708,"bottom":-0.3392857142857143,"right":1.0041428571428572,"top":0.91071428571428581},"atlasBounds":{"left":139.5,"bottom":358.5,"right":173.5,"top":393.5}},{"unicode":84,"advance":0.75600000000000001,"planeBounds":{"left":-0.18578571428571428,"bottom":-0.3392857142857143,"right":1.4927857142857144,"top":0.875},"atlasBounds":{"left":0.5,"bottom":157.5,"right":47.5,"top":191.5}},{"unicode":85,"advance":0.89700000000000002,"planeBounds":{"left":-0.22949999999999998,"bottom":-0.3392857142857143,"right":1.2705,"top":0.91071428571428581},"atlasBounds":{"left":54.5,"bottom":248.5,"right":96.5,"top":283.5}},{"unicode":86,"advance":0.75900000000000001,"planeBounds":{"left":-0.27007142857142857,"bottom":-0.375,"right":1.3370714285714287,"top":0.91071428571428581},"atlasBounds":{"left":0.5,"bottom":82.5,"right":45.5,"top":118.5}},{"unicode":87,"advance":1.0760000000000001,"planeBounds":{"left":-0.36071428571428571,"bottom":-0.375,"right":1.4607142857142859,"top":0.9464285714285714},"atlasBounds":{"left":0.5,"bottom":433.5,"right":51.5,"top":470.5}},{"unicode":88,"advance":0.77700000000000002,"planeBounds":{"left":-0.35135714285714281,"bottom":-0.44642857142857145,"right":1.1843571428571431,"top":0.91071428571428581},"atlasBounds":{"left":54.5,"bottom":397.5,"right":97.5,"top":435.5}},{"unicode":89,"advance":0.72799999999999998,"planeBounds":{"left":-0.3521428571428572,"bottom":-0.6607142857142857,"right":1.3621428571428571,"top":0.98214285714285721},"atlasBounds":{"left":0.5,"bottom":192.5,"right":48.5,"top":238.5}},{"unicode":90,"advance":0.59699999999999998,"planeBounds":{"left":-0.28242857142857142,"bottom":-0.375,"right":1.1104285714285715,"top":0.83928571428571419},"atlasBounds":{"left":98.5,"bottom":323.5,"right":137.5,"top":357.5}},{"unicode":91,"advance":0.35100000000000003,"planeBounds":{"left":-0.20285714285714293,"bottom":-0.3392857142857143,"right":0.58285714285714274,"top":0.83928571428571441},"atlasBounds":{"left":261.5,"bottom":201.5,"right":283.5,"top":234.5}},{"unicode":93,"advance":0.33400000000000002,"planeBounds":{"left":-0.21835714285714289,"bottom":-0.3392857142857143,"right":0.56735714285714278,"top":0.83928571428571441},"atlasBounds":{"left":261.5,"bottom":285.5,"right":283.5,"top":318.5}},{"unicode":97,"advance":0.35999999999999999,"planeBounds":{"left":-0.19578571428571431,"bottom":-0.2678571428571429,"right":0.73278571428571426,"top":0.55357142857142871},"atlasBounds":{"left":207.5,"bottom":340.5,"right":233.5,"top":363.5}},{"unicode":98,"advance":0.32200000000000001,"planeBounds":{"left":-0.22257142857142864,"bottom":-0.2678571428571429,"right":0.63457142857142845,"top":0.7678571428571429},"atlasBounds":{"left":235.5,"bottom":159.5,"right":259.5,"top":188.5}},{"unicode":99,"advance":0.28200000000000003,"planeBounds":{"left":-0.20207142857142865,"bottom":-0.2678571428571429,"right":0.65507142857142842,"top":0.58928571428571419},"atlasBounds":{"left":235.5,"bottom":246.5,"right":259.5,"top":270.5}},{"unicode":100,"advance":0.378,"planeBounds":{"left":-0.21446285586108735,"bottom":-0.2678571428571429,"right":0.74982285842462704,"top":0.7678571428571429},"atlasBounds":{"left":175.5,"bottom":72.5,"right":202.5,"top":101.5}},{"unicode":101,"advance":0.252,"planeBounds":{"left":-0.21821428571428578,"bottom":-0.2678571428571429,"right":0.6032142857142857,"top":0.58928571428571419},"atlasBounds":{"left":261.5,"bottom":345.5,"right":284.5,"top":369.5}},{"unicode":102,"advance":0.23000000000000001,"planeBounds":{"left":-0.18392857142857144,"bottom":-0.3035714285714286,"right":0.70892857142857146,"top":0.76785714285714279},"atlasBounds":{"left":235.5,"bottom":424.5,"right":260.5,"top":454.5}},{"unicode":103,"advance":0.34100000000000003,"planeBounds":{"left":-0.29278571428571432,"bottom":-0.58928571428571419,"right":0.63578571428571429,"top":0.55357142857142871},"atlasBounds":{"left":207.5,"bottom":414.5,"right":233.5,"top":446.5}},{"unicode":104,"advance":0.38600000000000001,"planeBounds":{"left":-0.24416666666707218,"bottom":-0.2678571428571429,"right":0.7558333333329279,"top":0.7678571428571429},"atlasBounds":{"left":175.5,"bottom":172.5,"right":203.5,"top":201.5}},{"unicode":105,"advance":0.22800000000000001,"planeBounds":{"left":-0.20585714285714291,"bottom":-0.2678571428571429,"right":0.57985714285714274,"top":0.69642857142857162},"atlasBounds":{"left":261.5,"bottom":257.5,"right":283.5,"top":284.5}},{"unicode":106,"advance":0.20999999999999999,"planeBounds":{"left":-0.4096428571428572,"bottom":-0.58928571428571419,"right":0.55464285714285722,"top":0.69642857142857162},"atlasBounds":{"left":175.5,"bottom":102.5,"right":202.5,"top":138.5}},{"unicode":107,"advance":0.28899999999999998,"planeBounds":{"left":-0.26095238104067298,"bottom":-0.3392857142857143,"right":0.66761904753075563,"top":0.7678571428571429},"atlasBounds":{"left":207.5,"bottom":308.5,"right":233.5,"top":339.5}},{"unicode":108,"advance":0.20300000000000001,"planeBounds":{"left":-0.19771428571428573,"bottom":-0.3035714285714286,"right":0.62371428571428578,"top":0.8035714285714286},"atlasBounds":{"left":261.5,"bottom":370.5,"right":284.5,"top":401.5}},{"unicode":109,"advance":0.52700000000000002,"planeBounds":{"left":-0.25276190481726035,"bottom":-0.2678571428571429,"right":0.85438095232559685,"top":0.55357142857142871},"atlasBounds":{"left":175.5,"bottom":456.5,"right":206.5,"top":479.5}},{"unicode":110,"advance":0.378,"planeBounds":{"left":-0.24217021304915082,"bottom":-0.2678571428571429,"right":0.75782978695084924,"top":0.55357142857142871},"atlasBounds":{"left":175.5,"bottom":202.5,"right":203.5,"top":225.5}},{"unicode":111,"advance":0.313,"planeBounds":{"left":-0.19957142857142859,"bottom":-0.2678571428571429,"right":0.65757142857142858,"top":0.58928571428571419},"atlasBounds":{"left":261.5,"bottom":461.5,"right":285.5,"top":485.5}},{"unicode":112,"advance":0.309,"planeBounds":{"left":-0.30631512605042022,"bottom":-0.5535714285714286,"right":0.62225630252100839,"top":0.62500000000000011},"atlasBounds":{"left":207.5,"bottom":247.5,"right":233.5,"top":280.5}},{"unicode":113,"advance":0.314,"planeBounds":{"left":-0.20657142857142866,"bottom":-0.5535714285714286,"right":0.65057142857142847,"top":0.5535714285714286},"atlasBounds":{"left":235.5,"bottom":4.5,"right":259.5,"top":35.5}},{"unicode":114,"advance":0.26900000000000002,"planeBounds":{"left":-0.24992857142857147,"bottom":-0.2678571428571429,"right":0.6429285714285714,"top":0.58928571428571419},"atlasBounds":{"left":207.5,"bottom":67.5,"right":232.5,"top":91.5}},{"unicode":115,"advance":0.318,"planeBounds":{"left":-0.19885714285714293,"bottom":-0.3035714285714286,"right":0.58685714285714274,"top":0.5892857142857143},"atlasBounds":{"left":261.5,"bottom":319.5,"right":283.5,"top":344.5}},{"unicode":116,"advance":0.22500000000000001,"planeBounds":{"left":-0.20866882599027145,"bottom":-0.2678571428571429,"right":0.61275974543830003,"top":0.7678571428571429},"atlasBounds":{"left":261.5,"bottom":402.5,"right":284.5,"top":431.5}},{"unicode":117,"advance":0.34100000000000003,"planeBounds":{"left":-0.22778571428571437,"bottom":-0.2678571428571429,"right":0.70078571428571423,"top":0.55357142857142871},"atlasBounds":{"left":207.5,"bottom":390.5,"right":233.5,"top":413.5}},{"unicode":118,"advance":0.314,"planeBounds":{"left":-0.18907142857142864,"bottom":-0.2678571428571429,"right":0.66807142857142843,"top":0.625},"atlasBounds":{"left":261.5,"bottom":486.5,"right":285.5,"top":511.5}},{"unicode":119,"advance":0.48299999999999998,"planeBounds":{"left":-0.23135714285714287,"bottom":-0.3035714285714286,"right":0.80435714285714288,"top":0.5535714285714286},"atlasBounds":{"left":175.5,"bottom":264.5,"right":204.5,"top":288.5}},{"unicode":120,"advance":0.29999999999999999,"planeBounds":{"left":-0.24192857142857147,"bottom":-0.3392857142857143,"right":0.65092857142857141,"top":0.62500000000000011},"atlasBounds":{"left":235.5,"bottom":455.5,"right":260.5,"top":482.5}},{"unicode":121,"advance":0.34800000000000003,"planeBounds":{"left":-0.27992857142857153,"bottom":-0.58928571428571419,"right":0.61292857142857149,"top":0.55357142857142871},"atlasBounds":{"left":207.5,"bottom":92.5,"right":232.5,"top":124.5}},{"unicode":122,"advance":0.374,"planeBounds":{"left":-0.21907142857142864,"bottom":-0.2678571428571429,"right":0.6380714285714284,"top":0.55357142857142871},"atlasBounds":{"left":235.5,"bottom":135.5,"right":259.5,"top":158.5}},{"unicode":123,"advance":0.438,"planeBounds":{"left":-0.057928571428571475,"bottom":-0.3392857142857143,"right":0.83492857142857146,"top":0.94642857142857162},"atlasBounds":{"left":207.5,"bottom":125.5,"right":232.5,"top":161.5}},{"unicode":125,"advance":0.46800000000000003,"planeBounds":{"left":-0.20892857142857149,"bottom":-0.3392857142857143,"right":0.68392857142857144,"top":0.94642857142857162},"atlasBounds":{"left":235.5,"bottom":326.5,"right":260.5,"top":362.5}},{"unicode":162,"advance":0.40000000000000002,"planeBounds":{"left":-0.2201845238095238,"bottom":-0.375,"right":0.74410119047619061,"top":0.9821428571428571},"atlasBounds":{"left":207.5,"bottom":473.5,"right":234.5,"top":511.5}},{"unicode":163,"advance":0.75600000000000001,"planeBounds":{"left":-0.19128571428571434,"bottom":-0.2678571428571429,"right":0.98728571428571432,"top":0.875},"atlasBounds":{"left":139.5,"bottom":258.5,"right":172.5,"top":290.5}},{"unicode":165,"advance":0.496,"planeBounds":{"left":-0.21150000000000002,"bottom":-0.2678571428571429,"right":0.78849999999999998,"top":0.875},"atlasBounds":{"left":175.5,"bottom":139.5,"right":203.5,"top":171.5}},{"unicode":169,"advance":0.63800000000000001,"planeBounds":{"left":-0.2247142857142857,"bottom":-0.23214285714285715,"right":0.84671428571428564,"top":0.80357142857142871},"atlasBounds":{"left":175.5,"bottom":328.5,"right":205.5,"top":357.5}},{"unicode":174,"advance":0.63800000000000001,"planeBounds":{"left":-0.2247142857142857,"bottom":-0.23214285714285715,"right":0.84671428571428564,"top":0.80357142857142871},"atlasBounds":{"left":175.5,"bottom":392.5,"right":205.5,"top":421.5}},{"unicode":194,"advance":1.0569999999999999,"planeBounds":{"left":-0.25792857142857145,"bottom":-0.375,"right":1.6349285714285715,"top":1.0535714285714286},"atlasBounds":{"left":0.5,"bottom":471.5,"right":53.5,"top":511.5}},{"unicode":196,"advance":1.0569999999999999,"planeBounds":{"left":-0.25471428571428573,"bottom":-0.375,"right":1.5667142857142857,"top":1.017857142857143},"atlasBounds":{"left":0.5,"bottom":393.5,"right":51.5,"top":432.5}},{"unicode":202,"advance":0.83599999999999997,"planeBounds":{"left":-0.32000000000000006,"bottom":-0.375,"right":1.1799999999999999,"top":1.0535714285714286},"atlasBounds":{"left":54.5,"bottom":207.5,"right":96.5,"top":247.5}},{"unicode":212,"advance":0.93300000000000005,"planeBounds":{"left":-0.21728571428571419,"bottom":-0.3392857142857143,"right":1.2112857142857145,"top":1.125},"atlasBounds":{"left":54.5,"bottom":12.5,"right":94.5,"top":53.5}},{"unicode":214,"advance":0.93300000000000005,"planeBounds":{"left":-0.21728571428571419,"bottom":-0.3392857142857143,"right":1.2112857142857145,"top":1.0892857142857144},"atlasBounds":{"left":98.5,"bottom":471.5,"right":138.5,"top":511.5}},{"unicode":215,"advance":0.38900000000000001,"planeBounds":{"left":-0.20427450993529506,"bottom":-0.125,"right":0.54572549006470505,"top":0.58928571428571419},"atlasBounds":{"left":261.5,"bottom":142.5,"right":282.5,"top":162.5}},{"unicode":220,"advance":0.89700000000000002,"planeBounds":{"left":-0.22949999999999998,"bottom":-0.3392857142857143,"right":1.2705,"top":0.91071428571428581},"atlasBounds":{"left":54.5,"bottom":171.5,"right":96.5,"top":206.5}},{"unicode":223,"advance":0.45500000000000002,"planeBounds":{"left":-0.40192857142857147,"bottom":-0.41071428571428575,"right":0.7409285714285716,"top":0.76785714285714302},"atlasBounds":{"left":139.5,"bottom":20.5,"right":171.5,"top":53.5}},{"unicode":226,"advance":0.35999999999999999,"planeBounds":{"left":-0.19578571428571431,"bottom":-0.2678571428571429,"right":0.73278571428571426,"top":0.7321428571428571},"atlasBounds":{"left":207.5,"bottom":162.5,"right":233.5,"top":190.5}},{"unicode":228,"advance":0.35999999999999999,"planeBounds":{"left":-0.19578571428571431,"bottom":-0.2678571428571429,"right":0.73278571428571426,"top":0.66071428571428581},"atlasBounds":{"left":207.5,"bottom":220.5,"right":233.5,"top":246.5}},{"unicode":234,"advance":0.252,"planeBounds":{"left":-0.22692857142857148,"bottom":-0.2678571428571429,"right":0.66592857142857143,"top":0.7321428571428571},"atlasBounds":{"left":235.5,"bottom":297.5,"right":260.5,"top":325.5}},{"unicode":244,"advance":0.313,"planeBounds":{"left":-0.20792857142857146,"bottom":-0.2678571428571429,"right":0.68492857142857144,"top":0.7321428571428571},"atlasBounds":{"left":235.5,"bottom":483.5,"right":260.5,"top":511.5}},{"unicode":246,"advance":0.307,"planeBounds":{"left":-0.19957142857142859,"bottom":-0.2678571428571429,"right":0.65757142857142858,"top":0.69642857142857162},"atlasBounds":{"left":235.5,"bottom":218.5,"right":259.5,"top":245.5}},{"unicode":247,"advance":0.32000000000000001,"planeBounds":{"left":-0.215,"bottom":-0.1607142857142857,"right":0.53500000000000003,"top":0.5892857142857143},"atlasBounds":{"left":261.5,"bottom":120.5,"right":282.5,"top":141.5}},{"unicode":252,"advance":0.34100000000000003,"planeBounds":{"left":-0.22778571428571437,"bottom":-0.2678571428571429,"right":0.70078571428571423,"top":0.66071428571428581},"atlasBounds":{"left":207.5,"bottom":281.5,"right":233.5,"top":307.5}},{"unicode":258,"advance":1.0569999999999999,"planeBounds":{"left":-0.25321428571428567,"bottom":-0.375,"right":1.568214285714286,"top":1.017857142857143},"atlasBounds":{"left":0.5,"bottom":353.5,"right":51.5,"top":392.5}},{"unicode":259,"advance":0.35999999999999999,"planeBounds":{"left":-0.19578571428571431,"bottom":-0.2678571428571429,"right":0.73278571428571426,"top":0.7321428571428571},"atlasBounds":{"left":207.5,"bottom":191.5,"right":233.5,"top":219.5}},{"unicode":262,"advance":0.73699999999999999,"planeBounds":{"left":-0.20335714285714288,"bottom":-0.375,"right":1.082357142857143,"top":1.0892857142857142},"atlasBounds":{"left":98.5,"bottom":89.5,"right":134.5,"top":130.5}},{"unicode":263,"advance":0.28200000000000003,"planeBounds":{"left":-0.20207142857142865,"bottom":-0.2678571428571429,"right":0.65507142857142842,"top":0.7321428571428571},"atlasBounds":{"left":235.5,"bottom":36.5,"right":259.5,"top":64.5}},{"unicode":268,"advance":0.73699999999999999,"planeBounds":{"left":-0.20235714285714282,"bottom":-0.375,"right":1.0833571428571431,"top":1.0892857142857142},"atlasBounds":{"left":98.5,"bottom":131.5,"right":134.5,"top":172.5}},{"unicode":269,"advance":0.28200000000000003,"planeBounds":{"left":-0.20207142857142865,"bottom":-0.2678571428571429,"right":0.65507142857142842,"top":0.7321428571428571},"atlasBounds":{"left":235.5,"bottom":189.5,"right":259.5,"top":217.5}},{"unicode":272,"advance":0.81700000000000006,"planeBounds":{"left":-0.35035714285714292,"bottom":-0.375,"right":1.185357142857143,"top":0.9464285714285714},"atlasBounds":{"left":54.5,"bottom":359.5,"right":97.5,"top":396.5}},{"unicode":273,"advance":0.378,"planeBounds":{"left":-0.21446285586108735,"bottom":-0.2678571428571429,"right":0.74982285842462704,"top":0.7678571428571429},"atlasBounds":{"left":175.5,"bottom":8.5,"right":202.5,"top":37.5}},{"unicode":352,"advance":0.66500000000000004,"planeBounds":{"left":-0.21014285714285708,"bottom":-0.3392857142857143,"right":1.0041428571428572,"top":1.0535714285714286},"atlasBounds":{"left":139.5,"bottom":394.5,"right":173.5,"top":433.5}},{"unicode":353,"advance":0.318,"planeBounds":{"left":-0.2097142857142858,"bottom":-0.3035714285714286,"right":0.61171428571428565,"top":0.69642857142857151},"atlasBounds":{"left":261.5,"bottom":432.5,"right":284.5,"top":460.5}},{"unicode":381,"advance":0.59699999999999998,"planeBounds":{"left":-0.28242857142857142,"bottom":-0.375,"right":1.1104285714285715,"top":0.9821428571428571},"atlasBounds":{"left":98.5,"bottom":395.5,"right":137.5,"top":433.5}},{"unicode":382,"advance":0.374,"planeBounds":{"left":-0.22542857142857148,"bottom":-0.2678571428571429,"right":0.66742857142857148,"top":0.7321428571428571},"atlasBounds":{"left":235.5,"bottom":363.5,"right":260.5,"top":391.5}},{"unicode":416,"advance":0.93300000000000005,"planeBounds":{"left":-0.22464285714285717,"bottom":-0.3392857142857143,"right":1.239642857142857,"top":0.9821428571428571},"atlasBounds":{"left":54.5,"bottom":92.5,"right":95.5,"top":129.5}},{"unicode":417,"advance":0.313,"planeBounds":{"left":-0.19957142857142859,"bottom":-0.2678571428571429,"right":0.65757142857142858,"top":0.625},"atlasBounds":{"left":235.5,"bottom":271.5,"right":259.5,"top":296.5}},{"unicode":431,"advance":0.89700000000000002,"planeBounds":{"left":-0.22121428571428572,"bottom":-0.3392857142857143,"right":1.3502142857142856,"top":0.91071428571428581},"atlasBounds":{"left":0.5,"bottom":46.5,"right":44.5,"top":81.5}},{"unicode":432,"advance":0.34100000000000003,"planeBounds":{"left":-0.22778571428571437,"bottom":-0.2678571428571429,"right":0.70078571428571423,"top":0.625},"atlasBounds":{"left":207.5,"bottom":364.5,"right":233.5,"top":389.5}},{"unicode":960,"advance":0.33000000000000002,"planeBounds":{"left":-0.24185714285714285,"bottom":-0.2678571428571429,"right":0.54385714285714293,"top":0.48214285714285715},"atlasBounds":{"left":261.5,"bottom":235.5,"right":283.5,"top":256.5}},{"unicode":7838,"advance":0.58099999999999996,"planeBounds":{"left":-0.39750000000000002,"bottom":-0.44642857142857145,"right":0.85250000000000004,"top":0.91071428571428581},"atlasBounds":{"left":139.5,"bottom":473.5,"right":174.5,"top":511.5}},{"unicode":8216,"advance":0.159,"planeBounds":{"left":-0.18342857142857144,"bottom":0.053571428571428568,"right":0.45942857142857146,"top":0.76785714285714279},"atlasBounds":{"left":286.5,"bottom":491.5,"right":304.5,"top":511.5}},{"unicode":8217,"advance":0.30299999999999999,"planeBounds":{"left":-0.12942857142857142,"bottom":0.053571428571428568,"right":0.51342857142857157,"top":0.76785714285714279},"atlasBounds":{"left":286.5,"bottom":470.5,"right":304.5,"top":490.5}},{"unicode":8220,"advance":0.29399999999999998,"planeBounds":{"left":-0.17550000000000007,"bottom":0.053571428571428568,"right":0.57450000000000001,"top":0.76785714285714279},"atlasBounds":{"left":261.5,"bottom":99.5,"right":282.5,"top":119.5}},{"unicode":8221,"advance":0.38200000000000001,"planeBounds":{"left":-0.11950000000000004,"bottom":0.053571428571428568,"right":0.63050000000000006,"top":0.76785714285714279},"atlasBounds":{"left":261.5,"bottom":163.5,"right":282.5,"top":183.5}},{"unicode":8364,"advance":0.72199999999999998,"planeBounds":{"left":-0.2177857142857143,"bottom":-0.23214285714285715,"right":0.96078571428571446,"top":0.875},"atlasBounds":{"left":139.5,"bottom":291.5,"right":172.5,"top":322.5}}],"kerning":[]}
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"atlas":{"type":"mtsdf","distanceRange":12,"distanceRangeMiddle":0,"size":28,"width":512,"height":512,"yOrigin":"bottom"},"metrics":{"emSize":1,"lineHeight":1.169,"ascender":0.91700000000000004,"descender":-0.252,"underlineY":-0.0625,"underlineThickness":0.025000000000000001},"glyphs":[{"unicode":32,"advance":0.253},{"unicode":33,"advance":0.29299999999999998,"planeBounds":{"left":-0.18828571428571428,"bottom":-0.2678571428571429,"right":0.49028571428571432,"top":0.9464285714285714},"atlasBounds":{"left":84.5,"bottom":394.5,"right":103.5,"top":428.5}},{"unicode":35,"advance":0.67800000000000005,"planeBounds":{"left":-0.20857142857142855,"bottom":-0.23214285714285715,"right":0.89857142857142858,"top":0.875},"atlasBounds":{"left":326.5,"bottom":292.5,"right":357.5,"top":323.5}},{"unicode":36,"advance":0.68900000000000006,"planeBounds":{"left":-0.1912142857142857,"bottom":-0.375,"right":0.88021428571428573,"top":1.017857142857143},"atlasBounds":{"left":401.5,"bottom":472.5,"right":431.5,"top":511.5}},{"unicode":37,"advance":0.76450000000000007,"planeBounds":{"left":-0.20228571428571429,"bottom":-0.2678571428571429,"right":0.97628571428571442,"top":0.9464285714285714},"atlasBounds":{"left":224.5,"bottom":394.5,"right":257.5,"top":428.5}},{"unicode":38,"advance":0.96499999999999997,"planeBounds":{"left":-0.15921428571428567,"bottom":-0.2678571428571429,"right":1.1622142857142859,"top":0.91071428571428581},"atlasBounds":{"left":376.5,"bottom":359.5,"right":413.5,"top":392.5}},{"unicode":40,"advance":0.39950000000000002,"planeBounds":{"left":-0.19071428571428578,"bottom":-0.375,"right":0.63071428571428567,"top":1.017857142857143},"atlasBounds":{"left":432.5,"bottom":472.5,"right":455.5,"top":511.5}},{"unicode":41,"advance":0.39950000000000002,"planeBounds":{"left":-0.23121428571428576,"bottom":-0.375,"right":0.5902142857142858,"top":1.017857142857143},"atlasBounds":{"left":456.5,"bottom":472.5,"right":479.5,"top":511.5}},{"unicode":42,"advance":0.40900000000000003,"planeBounds":{"left":-0.20371428571428576,"bottom":0.125,"right":0.61771428571428577,"top":0.9821428571428571},"atlasBounds":{"left":414.5,"bottom":265.5,"right":437.5,"top":289.5}},{"unicode":43,"advance":0.54349999999999998,"planeBounds":{"left":-0.24585714285714291,"bottom":-0.2678571428571429,"right":0.78985714285714292,"top":0.7678571428571429},"atlasBounds":{"left":331.5,"bottom":260.5,"right":360.5,"top":289.5}},{"unicode":44,"advance":0.253,"planeBounds":{"left":-0.23264285714285715,"bottom":-0.41071428571428575,"right":0.48164285714285709,"top":0.41071428571428581},"atlasBounds":{"left":463.5,"bottom":266.5,"right":483.5,"top":289.5}},{"unicode":45,"advance":0.3735,"planeBounds":{"left":-0.20635714285714291,"bottom":-0.01785714285714286,"right":0.57935714285714279,"top":0.62500000000000011},"atlasBounds":{"left":68.5,"bottom":241.5,"right":90.5,"top":259.5}},{"unicode":46,"advance":0.215,"planeBounds":{"left":-0.23228571428571429,"bottom":-0.2678571428571429,"right":0.44628571428571434,"top":0.41071428571428575},"atlasBounds":{"left":48.5,"bottom":240.5,"right":67.5,"top":259.5}},{"unicode":47,"advance":0.47150000000000003,"planeBounds":{"left":-0.20442857142857151,"bottom":-0.3392857142857143,"right":0.6884285714285715,"top":1.017857142857143},"atlasBounds":{"left":125.5,"bottom":430.5,"right":150.5,"top":468.5}},{"unicode":48,"advance":0.63250000000000006,"planeBounds":{"left":-0.21921428571428567,"bottom":-0.2678571428571429,"right":0.8522142857142857,"top":0.9464285714285714},"atlasBounds":{"left":258.5,"bottom":394.5,"right":288.5,"top":428.5}},{"unicode":49,"advance":0.35649999999999998,"planeBounds":{"left":-0.22250000000000003,"bottom":-0.2678571428571429,"right":0.52749999999999997,"top":0.91071428571428581},"atlasBounds":{"left":0.5,"bottom":324.5,"right":21.5,"top":357.5}},{"unicode":50,"advance":0.60499999999999998,"planeBounds":{"left":-0.19350000000000003,"bottom":-0.2678571428571429,"right":0.80649999999999999,"top":0.9464285714285714},"atlasBounds":{"left":321.5,"bottom":394.5,"right":349.5,"top":428.5}},{"unicode":51,"advance":0.622,"planeBounds":{"left":-0.20985714285714283,"bottom":-0.2678571428571429,"right":0.82585714285714307,"top":0.9464285714285714},"atlasBounds":{"left":350.5,"bottom":394.5,"right":379.5,"top":428.5}},{"unicode":52,"advance":0.59499999999999997,"planeBounds":{"left":-0.23421428571428571,"bottom":-0.2678571428571429,"right":0.83721428571428569,"top":0.91071428571428581},"atlasBounds":{"left":481.5,"bottom":359.5,"right":511.5,"top":392.5}},{"unicode":53,"advance":0.58199999999999996,"planeBounds":{"left":-0.20050000000000004,"bottom":-0.2678571428571429,"right":0.79949999999999999,"top":0.91071428571428581},"atlasBounds":{"left":22.5,"bottom":324.5,"right":50.5,"top":357.5}},{"unicode":54,"advance":0.60699999999999998,"planeBounds":{"left":-0.21535714285714291,"bottom":-0.2678571428571429,"right":0.8203571428571429,"top":0.9464285714285714},"atlasBounds":{"left":380.5,"bottom":394.5,"right":409.5,"top":428.5}},{"unicode":55,"advance":0.4975,"planeBounds":{"left":-0.2301428571428572,"bottom":-0.2678571428571429,"right":0.7341428571428571,"top":0.91071428571428581},"atlasBounds":{"left":51.5,"bottom":324.5,"right":78.5,"top":357.5}},{"unicode":56,"advance":0.64649999999999996,"planeBounds":{"left":-0.21221428571428572,"bottom":-0.2678571428571429,"right":0.85921428571428571,"top":0.9464285714285714},"atlasBounds":{"left":410.5,"bottom":394.5,"right":440.5,"top":428.5}},{"unicode":57,"advance":0.60999999999999999,"planeBounds":{"left":-0.20985714285714288,"bottom":-0.2678571428571429,"right":0.82585714285714296,"top":0.9464285714285714},"atlasBounds":{"left":441.5,"bottom":394.5,"right":470.5,"top":428.5}},{"unicode":58,"advance":0.26950000000000002,"planeBounds":{"left":-0.20528571428571429,"bottom":-0.2678571428571429,"right":0.47328571428571437,"top":0.7321428571428571},"atlasBounds":{"left":492.5,"bottom":295.5,"right":511.5,"top":323.5}},{"unicode":59,"advance":0.308,"planeBounds":{"left":-0.20264285714285715,"bottom":-0.41071428571428575,"right":0.51164285714285707,"top":0.73214285714285721},"atlasBounds":{"left":305.5,"bottom":291.5,"right":325.5,"top":323.5}},{"unicode":60,"advance":0.502,"planeBounds":{"left":-0.2132857142857143,"bottom":-0.23214285714285715,"right":0.71528571428571419,"top":0.875},"atlasBounds":{"left":358.5,"bottom":292.5,"right":384.5,"top":323.5}},{"unicode":61,"advance":0.50600000000000001,"planeBounds":{"left":-0.17557142857142866,"bottom":-0.1607142857142857,"right":0.68157142857142849,"top":0.66071428571428581},"atlasBounds":{"left":438.5,"bottom":266.5,"right":462.5,"top":289.5}},{"unicode":62,"advance":0.502,"planeBounds":{"left":-0.2132857142857143,"bottom":-0.23214285714285715,"right":0.71528571428571419,"top":0.875},"atlasBounds":{"left":385.5,"bottom":292.5,"right":411.5,"top":323.5}},{"unicode":63,"advance":0.51700000000000002,"planeBounds":{"left":-0.22764285714285717,"bottom":-0.2678571428571429,"right":0.73664285714285727,"top":0.9464285714285714},"atlasBounds":{"left":471.5,"bottom":394.5,"right":498.5,"top":428.5}},{"unicode":64,"advance":1.0265,"planeBounds":{"left":-0.19278571428571431,"bottom":-0.48214285714285715,"right":1.2357857142857145,"top":0.94642857142857162},"atlasBounds":{"left":328.5,"bottom":471.5,"right":368.5,"top":511.5}},{"unicode":65,"advance":0.62550000000000006,"planeBounds":{"left":-0.24107142857142858,"bottom":-0.2678571428571429,"right":0.8660714285714286,"top":0.91071428571428581},"atlasBounds":{"left":429.5,"bottom":324.5,"right":460.5,"top":357.5}},{"unicode":66,"advance":0.64800000000000002,"planeBounds":{"left":-0.15900000000000003,"bottom":-0.2678571428571429,"right":0.84099999999999997,"top":0.91071428571428581},"atlasBounds":{"left":251.5,"bottom":290.5,"right":279.5,"top":323.5}},{"unicode":67,"advance":0.63350000000000006,"planeBounds":{"left":-0.21821428571428572,"bottom":-0.2678571428571429,"right":0.8532142857142857,"top":0.9464285714285714},"atlasBounds":{"left":0.5,"bottom":358.5,"right":30.5,"top":392.5}},{"unicode":68,"advance":0.6865,"planeBounds":{"left":-0.17221428571428574,"bottom":-0.2678571428571429,"right":0.89921428571428563,"top":0.91071428571428581},"atlasBounds":{"left":220.5,"bottom":290.5,"right":250.5,"top":323.5}},{"unicode":69,"advance":0.58650000000000002,"planeBounds":{"left":-0.16378571428571431,"bottom":-0.2678571428571429,"right":0.76478571428571429,"top":0.91071428571428581},"atlasBounds":{"left":193.5,"bottom":290.5,"right":219.5,"top":323.5}},{"unicode":70,"advance":0.54649999999999999,"planeBounds":{"left":-0.16678571428571431,"bottom":-0.2678571428571429,"right":0.76178571428571429,"top":0.91071428571428581},"atlasBounds":{"left":166.5,"bottom":290.5,"right":192.5,"top":323.5}},{"unicode":71,"advance":0.67700000000000005,"planeBounds":{"left":-0.21071428571428569,"bottom":-0.2678571428571429,"right":0.86071428571428565,"top":0.9464285714285714},"atlasBounds":{"left":31.5,"bottom":358.5,"right":61.5,"top":392.5}},{"unicode":72,"advance":0.70550000000000002,"planeBounds":{"left":-0.16535714285714292,"bottom":-0.2678571428571429,"right":0.87035714285714294,"top":0.91071428571428581},"atlasBounds":{"left":101.5,"bottom":290.5,"right":130.5,"top":323.5}},{"unicode":73,"advance":0.30449999999999999,"planeBounds":{"left":-0.1694285714285714,"bottom":-0.2678571428571429,"right":0.47342857142857159,"top":0.91071428571428581},"atlasBounds":{"left":82.5,"bottom":290.5,"right":100.5,"top":323.5}},{"unicode":74,"advance":0.44350000000000001,"planeBounds":{"left":-0.23757142857142863,"bottom":-0.2678571428571429,"right":0.61957142857142855,"top":0.91071428571428581},"atlasBounds":{"left":57.5,"bottom":290.5,"right":81.5,"top":323.5}},{"unicode":75,"advance":0.65400000000000003,"planeBounds":{"left":-0.16521428571428573,"bottom":-0.2678571428571429,"right":0.90621428571428564,"top":0.91071428571428581},"atlasBounds":{"left":26.5,"bottom":290.5,"right":56.5,"top":323.5}},{"unicode":76,"advance":0.49399999999999999,"planeBounds":{"left":-0.16092857142857148,"bottom":-0.2678571428571429,"right":0.73192857142857148,"top":0.91071428571428581},"atlasBounds":{"left":0.5,"bottom":290.5,"right":25.5,"top":323.5}},{"unicode":77,"advance":0.87450000000000006,"planeBounds":{"left":-0.1701428571428571,"bottom":-0.2678571428571429,"right":1.044142857142857,"top":0.91071428571428581},"atlasBounds":{"left":131.5,"bottom":290.5,"right":165.5,"top":323.5}},{"unicode":78,"advance":0.71699999999999997,"planeBounds":{"left":-0.16035714285714286,"bottom":-0.2678571428571429,"right":0.87535714285714294,"top":0.91071428571428581},"atlasBounds":{"left":461.5,"bottom":324.5,"right":490.5,"top":357.5}},{"unicode":79,"advance":0.6825,"planeBounds":{"left":-0.21207142857142855,"bottom":-0.2678571428571429,"right":0.89507142857142863,"top":0.9464285714285714},"atlasBounds":{"left":92.5,"bottom":358.5,"right":123.5,"top":392.5}},{"unicode":80,"advance":0.58050000000000002,"planeBounds":{"left":-0.16164285714285717,"bottom":-0.2678571428571429,"right":0.80264285714285721,"top":0.91071428571428581},"atlasBounds":{"left":401.5,"bottom":324.5,"right":428.5,"top":357.5}},{"unicode":81,"advance":0.68600000000000005,"planeBounds":{"left":-0.21207142857142855,"bottom":-0.44642857142857145,"right":0.89507142857142863,"top":0.94642857142857162},"atlasBounds":{"left":480.5,"bottom":472.5,"right":511.5,"top":511.5}},{"unicode":82,"advance":0.64349999999999996,"planeBounds":{"left":-0.17235714285714293,"bottom":-0.2678571428571429,"right":0.86335714285714293,"top":0.91071428571428581},"atlasBounds":{"left":339.5,"bottom":324.5,"right":368.5,"top":357.5}},{"unicode":83,"advance":0.63750000000000007,"planeBounds":{"left":-0.1993571428571429,"bottom":-0.2678571428571429,"right":0.83635714285714291,"top":0.9464285714285714},"atlasBounds":{"left":124.5,"bottom":358.5,"right":153.5,"top":392.5}},{"unicode":84,"advance":0.53149999999999997,"planeBounds":{"left":-0.25185714285714289,"bottom":-0.2678571428571429,"right":0.78385714285714292,"top":0.91071428571428581},"atlasBounds":{"left":275.5,"bottom":324.5,"right":304.5,"top":357.5}},{"unicode":85,"advance":0.69000000000000006,"planeBounds":{"left":-0.17185714285714285,"bottom":-0.2678571428571429,"right":0.86385714285714299,"top":0.91071428571428581},"atlasBounds":{"left":245.5,"bottom":324.5,"right":274.5,"top":357.5}},{"unicode":86,"advance":0.60250000000000004,"planeBounds":{"left":-0.23421428571428571,"bottom":-0.2678571428571429,"right":0.83721428571428569,"top":0.91071428571428581},"atlasBounds":{"left":214.5,"bottom":324.5,"right":244.5,"top":357.5}},{"unicode":87,"advance":0.94650000000000001,"planeBounds":{"left":-0.24128571428571419,"bottom":-0.2678571428571429,"right":1.1872857142857145,"top":0.91071428571428581},"atlasBounds":{"left":173.5,"bottom":324.5,"right":213.5,"top":357.5}},{"unicode":88,"advance":0.6835,"planeBounds":{"left":-0.23042857142857143,"bottom":-0.2678571428571429,"right":0.91242857142857159,"top":0.91071428571428581},"atlasBounds":{"left":140.5,"bottom":324.5,"right":172.5,"top":357.5}},{"unicode":89,"advance":0.58650000000000002,"planeBounds":{"left":-0.26057142857142856,"bottom":-0.2678571428571429,"right":0.84657142857142864,"top":0.91071428571428581},"atlasBounds":{"left":108.5,"bottom":324.5,"right":139.5,"top":357.5}},{"unicode":90,"advance":0.62850000000000006,"planeBounds":{"left":-0.18150000000000002,"bottom":-0.2678571428571429,"right":0.81850000000000001,"top":0.91071428571428581},"atlasBounds":{"left":79.5,"bottom":324.5,"right":107.5,"top":357.5}},{"unicode":91,"advance":0.35199999999999998,"planeBounds":{"left":-0.15850000000000006,"bottom":-0.41071428571428575,"right":0.59150000000000003,"top":1.0535714285714284},"atlasBounds":{"left":55.5,"bottom":470.5,"right":76.5,"top":511.5}},{"unicode":93,"advance":0.33550000000000002,"planeBounds":{"left":-0.25549999999999995,"bottom":-0.41071428571428575,"right":0.49450000000000005,"top":1.0535714285714284},"atlasBounds":{"left":77.5,"bottom":470.5,"right":98.5,"top":511.5}},{"unicode":97,"advance":0.58499999999999996,"planeBounds":{"left":-0.20214285714285718,"bottom":-0.2678571428571429,"right":0.76214285714285723,"top":0.7678571428571429},"atlasBounds":{"left":148.5,"bottom":260.5,"right":175.5,"top":289.5}},{"unicode":98,"advance":0.61399999999999999,"planeBounds":{"left":-0.17200000000000007,"bottom":-0.2678571428571429,"right":0.82800000000000007,"top":0.9464285714285714},"atlasBounds":{"left":154.5,"bottom":358.5,"right":182.5,"top":392.5}},{"unicode":99,"advance":0.52949999999999997,"planeBounds":{"left":-0.21814285714285719,"bottom":-0.2678571428571429,"right":0.74614285714285711,"top":0.7678571428571429},"atlasBounds":{"left":241.5,"bottom":260.5,"right":268.5,"top":289.5}},{"unicode":100,"advance":0.61399999999999999,"planeBounds":{"left":-0.21400000000000005,"bottom":-0.2678571428571429,"right":0.78600000000000003,"top":0.9464285714285714},"atlasBounds":{"left":263.5,"bottom":358.5,"right":291.5,"top":392.5}},{"unicode":101,"advance":0.53000000000000003,"planeBounds":{"left":-0.21776050420168075,"bottom":-0.2678571428571429,"right":0.74652521008403372,"top":0.7678571428571429},"atlasBounds":{"left":412.5,"bottom":294.5,"right":439.5,"top":323.5}},{"unicode":102,"advance":0.36749999999999999,"planeBounds":{"left":-0.20121428571428579,"bottom":-0.2678571428571429,"right":0.62021428571428572,"top":0.9464285714285714},"atlasBounds":{"left":320.5,"bottom":358.5,"right":343.5,"top":392.5}},{"unicode":103,"advance":0.58199999999999996,"planeBounds":{"left":-0.24721428571428575,"bottom":-0.51785714285714279,"right":0.82421428571428557,"top":0.87500000000000011},"atlasBounds":{"left":0.5,"bottom":429.5,"right":30.5,"top":468.5}},{"unicode":104,"advance":0.623,"planeBounds":{"left":-0.1636428571428572,"bottom":-0.2678571428571429,"right":0.8006428571428571,"top":0.9464285714285714},"atlasBounds":{"left":292.5,"bottom":358.5,"right":319.5,"top":392.5}},{"unicode":105,"advance":0.32800000000000001,"planeBounds":{"left":-0.17728571428571424,"bottom":-0.2678571428571429,"right":0.50128571428571433,"top":0.9821428571428571},"atlasBounds":{"left":492.5,"bottom":433.5,"right":511.5,"top":468.5}},{"unicode":106,"advance":0.33500000000000002,"planeBounds":{"left":-0.32821428571428574,"bottom":-0.51785714285714279,"right":0.49321428571428577,"top":0.98214285714285721},"atlasBounds":{"left":0.5,"bottom":469.5,"right":23.5,"top":511.5}},{"unicode":107,"advance":0.59150000000000003,"planeBounds":{"left":-0.16600000000000004,"bottom":-0.2678571428571429,"right":0.83399999999999996,"top":0.9464285714285714},"atlasBounds":{"left":202.5,"bottom":358.5,"right":230.5,"top":392.5}},{"unicode":108,"advance":0.30449999999999999,"planeBounds":{"left":-0.1694285714285714,"bottom":-0.2678571428571429,"right":0.47342857142857159,"top":0.9464285714285714},"atlasBounds":{"left":183.5,"bottom":358.5,"right":201.5,"top":392.5}},{"unicode":109,"advance":0.94900000000000007,"planeBounds":{"left":-0.16085714285714287,"bottom":-0.2678571428571429,"right":1.124857142857143,"top":0.7678571428571429},"atlasBounds":{"left":57.5,"bottom":260.5,"right":93.5,"top":289.5}},{"unicode":110,"advance":0.623,"planeBounds":{"left":-0.1636428571428572,"bottom":-0.2678571428571429,"right":0.8006428571428571,"top":0.7678571428571429},"atlasBounds":{"left":464.5,"bottom":294.5,"right":491.5,"top":323.5}},{"unicode":111,"advance":0.56600000000000006,"planeBounds":{"left":-0.21700000000000003,"bottom":-0.2678571428571429,"right":0.78300000000000003,"top":0.7678571428571429},"atlasBounds":{"left":28.5,"bottom":260.5,"right":56.5,"top":289.5}},{"unicode":112,"advance":0.60999999999999999,"planeBounds":{"left":-0.17200000000000007,"bottom":-0.51785714285714279,"right":0.82800000000000007,"top":0.76785714285714302},"atlasBounds":{"left":292.5,"bottom":432.5,"right":320.5,"top":468.5}},{"unicode":113,"advance":0.60999999999999999,"planeBounds":{"left":-0.22071428571428572,"bottom":-0.51785714285714279,"right":0.85071428571428565,"top":0.76785714285714302},"atlasBounds":{"left":349.5,"bottom":432.5,"right":379.5,"top":468.5}},{"unicode":114,"advance":0.39250000000000002,"planeBounds":{"left":-0.17121428571428576,"bottom":-0.2678571428571429,"right":0.65021428571428574,"top":0.7678571428571429},"atlasBounds":{"left":440.5,"bottom":294.5,"right":463.5,"top":323.5}},{"unicode":115,"advance":0.52749999999999997,"planeBounds":{"left":-0.21864285714285719,"bottom":-0.2678571428571429,"right":0.74564285714285716,"top":0.7678571428571429},"atlasBounds":{"left":0.5,"bottom":260.5,"right":27.5,"top":289.5}},{"unicode":116,"advance":0.39450000000000002,"planeBounds":{"left":-0.22907142857142859,"bottom":-0.2678571428571429,"right":0.62807142857142861,"top":0.875},"atlasBounds":{"left":280.5,"bottom":291.5,"right":304.5,"top":323.5}},{"unicode":117,"advance":0.627,"planeBounds":{"left":-0.17364285714285721,"bottom":-0.2678571428571429,"right":0.79064285714285709,"top":0.7678571428571429},"atlasBounds":{"left":94.5,"bottom":260.5,"right":121.5,"top":289.5}},{"unicode":118,"advance":0.51900000000000002,"planeBounds":{"left":-0.2405000000000001,"bottom":-0.2678571428571429,"right":0.75950000000000006,"top":0.7678571428571429},"atlasBounds":{"left":176.5,"bottom":260.5,"right":204.5,"top":289.5}},{"unicode":119,"advance":0.75800000000000001,"planeBounds":{"left":-0.24699999999999997,"bottom":-0.2678571428571429,"right":1.0030000000000001,"top":0.7678571428571429},"atlasBounds":{"left":205.5,"bottom":260.5,"right":240.5,"top":289.5}},{"unicode":120,"advance":0.55349999999999999,"planeBounds":{"left":-0.24135714285714294,"bottom":-0.2678571428571429,"right":0.79435714285714287,"top":0.7678571428571429},"atlasBounds":{"left":269.5,"bottom":260.5,"right":298.5,"top":289.5}},{"unicode":121,"advance":0.50350000000000006,"planeBounds":{"left":-0.25400000000000011,"bottom":-0.51785714285714279,"right":0.746,"top":0.76785714285714302},"atlasBounds":{"left":406.5,"bottom":432.5,"right":434.5,"top":468.5}},{"unicode":122,"advance":0.495,"planeBounds":{"left":-0.19842857142857148,"bottom":-0.2678571428571429,"right":0.69442857142857151,"top":0.7678571428571429},"atlasBounds":{"left":122.5,"bottom":260.5,"right":147.5,"top":289.5}},{"unicode":123,"advance":0.39100000000000001,"planeBounds":{"left":-0.18171428571428572,"bottom":-0.41071428571428575,"right":0.63971428571428579,"top":1.0535714285714284},"atlasBounds":{"left":99.5,"bottom":470.5,"right":122.5,"top":511.5}},{"unicode":125,"advance":0.39100000000000001,"planeBounds":{"left":-0.24871428571428575,"bottom":-0.41071428571428575,"right":0.57271428571428584,"top":1.0535714285714284},"atlasBounds":{"left":123.5,"bottom":470.5,"right":146.5,"top":511.5}},{"unicode":162,"advance":0.52849999999999997,"planeBounds":{"left":-0.21814285714285719,"bottom":-0.375,"right":0.74614285714285711,"top":0.83928571428571419},"atlasBounds":{"left":166.5,"bottom":394.5,"right":193.5,"top":428.5}},{"unicode":163,"advance":0.60150000000000003,"planeBounds":{"left":-0.24221428571428569,"bottom":-0.2678571428571429,"right":0.82921428571428568,"top":0.9464285714285714},"atlasBounds":{"left":135.5,"bottom":394.5,"right":165.5,"top":428.5}},{"unicode":165,"advance":0.58650000000000002,"planeBounds":{"left":-0.26057142857142856,"bottom":-0.2678571428571429,"right":0.84657142857142864,"top":0.91071428571428581},"atlasBounds":{"left":344.5,"bottom":359.5,"right":375.5,"top":392.5}},{"unicode":169,"advance":0.71050000000000002,"planeBounds":{"left":-0.23403571428571435,"bottom":-0.2678571428571429,"right":0.94453571428571437,"top":0.91071428571428581},"atlasBounds":{"left":305.5,"bottom":324.5,"right":338.5,"top":357.5}},{"unicode":174,"advance":0.71050000000000002,"planeBounds":{"left":-0.23403571428571435,"bottom":-0.2678571428571429,"right":0.94453571428571437,"top":0.91071428571428581},"atlasBounds":{"left":447.5,"bottom":359.5,"right":480.5,"top":392.5}},{"unicode":194,"advance":0.62550000000000006,"planeBounds":{"left":-0.24107142857142858,"bottom":-0.2678571428571429,"right":0.8660714285714286,"top":1.1964285714285714},"atlasBounds":{"left":147.5,"bottom":470.5,"right":178.5,"top":511.5}},{"unicode":196,"advance":0.62550000000000006,"planeBounds":{"left":-0.24107142857142858,"bottom":-0.2678571428571429,"right":0.8660714285714286,"top":1.125},"atlasBounds":{"left":31.5,"bottom":429.5,"right":62.5,"top":468.5}},{"unicode":202,"advance":0.58650000000000002,"planeBounds":{"left":-0.16378571428571431,"bottom":-0.2678571428571429,"right":0.76478571428571429,"top":1.1964285714285714},"atlasBounds":{"left":179.5,"bottom":470.5,"right":205.5,"top":511.5}},{"unicode":212,"advance":0.6825,"planeBounds":{"left":-0.21207142857142855,"bottom":-0.2678571428571429,"right":0.89507142857142863,"top":1.1964285714285714},"atlasBounds":{"left":206.5,"bottom":470.5,"right":237.5,"top":511.5}},{"unicode":214,"advance":0.6825,"planeBounds":{"left":-0.21207142857142855,"bottom":-0.2678571428571429,"right":0.89507142857142863,"top":1.125},"atlasBounds":{"left":63.5,"bottom":429.5,"right":94.5,"top":468.5}},{"unicode":215,"advance":0.54400000000000004,"planeBounds":{"left":-0.19178571428571436,"bottom":-0.23214285714285715,"right":0.73678571428571427,"top":0.73214285714285721},"atlasBounds":{"left":387.5,"bottom":262.5,"right":413.5,"top":289.5}},{"unicode":220,"advance":0.69000000000000006,"planeBounds":{"left":-0.17185714285714285,"bottom":-0.2678571428571429,"right":0.86385714285714299,"top":1.125},"atlasBounds":{"left":95.5,"bottom":429.5,"right":124.5,"top":468.5}},{"unicode":223,"advance":0.64849999999999997,"planeBounds":{"left":-0.17185714285714293,"bottom":-0.2678571428571429,"right":0.86385714285714288,"top":0.9464285714285714},"atlasBounds":{"left":62.5,"bottom":358.5,"right":91.5,"top":392.5}},{"unicode":226,"advance":0.58499999999999996,"planeBounds":{"left":-0.20214285714285718,"bottom":-0.2678571428571429,"right":0.76214285714285723,"top":1.017857142857143},"atlasBounds":{"left":321.5,"bottom":432.5,"right":348.5,"top":468.5}},{"unicode":228,"advance":0.58499999999999996,"planeBounds":{"left":-0.20214285714285718,"bottom":-0.2678571428571429,"right":0.76214285714285723,"top":0.9821428571428571},"atlasBounds":{"left":56.5,"bottom":393.5,"right":83.5,"top":428.5}},{"unicode":234,"advance":0.53000000000000003,"planeBounds":{"left":-0.21776050420168075,"bottom":-0.2678571428571429,"right":0.74652521008403372,"top":1.017857142857143},"atlasBounds":{"left":264.5,"bottom":432.5,"right":291.5,"top":468.5}},{"unicode":244,"advance":0.56600000000000006,"planeBounds":{"left":-0.21700000000000003,"bottom":-0.2678571428571429,"right":0.78300000000000003,"top":1.017857142857143},"atlasBounds":{"left":235.5,"bottom":432.5,"right":263.5,"top":468.5}},{"unicode":246,"advance":0.56600000000000006,"planeBounds":{"left":-0.21700000000000003,"bottom":-0.2678571428571429,"right":0.78300000000000003,"top":0.9821428571428571},"atlasBounds":{"left":463.5,"bottom":433.5,"right":491.5,"top":468.5}},{"unicode":247,"advance":0.52049999999999996,"planeBounds":{"left":-0.18642857142857147,"bottom":-0.23214285714285715,"right":0.70642857142857141,"top":0.7678571428571429},"atlasBounds":{"left":361.5,"bottom":261.5,"right":386.5,"top":289.5}},{"unicode":252,"advance":0.627,"planeBounds":{"left":-0.17364285714285721,"bottom":-0.2678571428571429,"right":0.79064285714285709,"top":0.9821428571428571},"atlasBounds":{"left":28.5,"bottom":393.5,"right":55.5,"top":428.5}},{"unicode":258,"advance":0.62550000000000006,"planeBounds":{"left":-0.24107142857142858,"bottom":-0.2678571428571429,"right":0.8660714285714286,"top":1.1607142857142858},"atlasBounds":{"left":369.5,"bottom":471.5,"right":400.5,"top":511.5}},{"unicode":259,"advance":0.58499999999999996,"planeBounds":{"left":-0.20214285714285718,"bottom":-0.2678571428571429,"right":0.76214285714285723,"top":1.017857142857143},"atlasBounds":{"left":435.5,"bottom":432.5,"right":462.5,"top":468.5}},{"unicode":262,"advance":0.63350000000000006,"planeBounds":{"left":-0.21821428571428572,"bottom":-0.2678571428571429,"right":0.8532142857142857,"top":1.2321428571428572},"atlasBounds":{"left":24.5,"bottom":469.5,"right":54.5,"top":511.5}},{"unicode":263,"advance":0.52949999999999997,"planeBounds":{"left":-0.21814285714285719,"bottom":-0.2678571428571429,"right":0.74614285714285711,"top":1.0535714285714284},"atlasBounds":{"left":151.5,"bottom":431.5,"right":178.5,"top":468.5}},{"unicode":268,"advance":0.63350000000000006,"planeBounds":{"left":-0.21821428571428572,"bottom":-0.2678571428571429,"right":0.8532142857142857,"top":1.1964285714285714},"atlasBounds":{"left":238.5,"bottom":470.5,"right":268.5,"top":511.5}},{"unicode":269,"advance":0.52949999999999997,"planeBounds":{"left":-0.21814285714285719,"bottom":-0.2678571428571429,"right":0.74614285714285711,"top":1.017857142857143},"atlasBounds":{"left":179.5,"bottom":432.5,"right":206.5,"top":468.5}},{"unicode":272,"advance":0.6865,"planeBounds":{"left":-0.24342857142857141,"bottom":-0.2678571428571429,"right":0.89942857142857158,"top":0.91071428571428581},"atlasBounds":{"left":414.5,"bottom":359.5,"right":446.5,"top":392.5}},{"unicode":273,"advance":0.61399999999999999,"planeBounds":{"left":-0.21371428571428566,"bottom":-0.2678571428571429,"right":0.85771428571428565,"top":0.9464285714285714},"atlasBounds":{"left":104.5,"bottom":394.5,"right":134.5,"top":428.5}},{"unicode":352,"advance":0.63750000000000007,"planeBounds":{"left":-0.1993571428571429,"bottom":-0.2678571428571429,"right":0.83635714285714291,"top":1.1964285714285714},"atlasBounds":{"left":269.5,"bottom":470.5,"right":298.5,"top":511.5}},{"unicode":353,"advance":0.52749999999999997,"planeBounds":{"left":-0.21864285714285719,"bottom":-0.2678571428571429,"right":0.74564285714285716,"top":1.017857142857143},"atlasBounds":{"left":207.5,"bottom":432.5,"right":234.5,"top":468.5}},{"unicode":381,"advance":0.62850000000000006,"planeBounds":{"left":-0.18150000000000002,"bottom":-0.2678571428571429,"right":0.81850000000000001,"top":1.1964285714285714},"atlasBounds":{"left":299.5,"bottom":470.5,"right":327.5,"top":511.5}},{"unicode":382,"advance":0.495,"planeBounds":{"left":-0.19842857142857148,"bottom":-0.2678571428571429,"right":0.69442857142857151,"top":1.017857142857143},"atlasBounds":{"left":380.5,"bottom":432.5,"right":405.5,"top":468.5}},{"unicode":916,"advance":0.62550000000000006,"planeBounds":{"left":-0.24107142857142858,"bottom":-0.2678571428571429,"right":0.8660714285714286,"top":0.91071428571428581},"atlasBounds":{"left":369.5,"bottom":324.5,"right":400.5,"top":357.5}},{"unicode":937,"advance":0.6825,"planeBounds":{"left":-0.21207142857142855,"bottom":-0.2678571428571429,"right":0.89507142857142863,"top":0.9464285714285714},"atlasBounds":{"left":289.5,"bottom":394.5,"right":320.5,"top":428.5}},{"unicode":956,"advance":0.627,"planeBounds":{"left":-0.17364285714285721,"bottom":-0.48214285714285715,"right":0.79064285714285709,"top":0.7678571428571429},"atlasBounds":{"left":0.5,"bottom":393.5,"right":27.5,"top":428.5}},{"unicode":960,"advance":0.62850000000000006,"planeBounds":{"left":-0.23582142857142857,"bottom":-0.2678571428571429,"right":0.87132142857142858,"top":0.7678571428571429},"atlasBounds":{"left":299.5,"bottom":260.5,"right":330.5,"top":289.5}},{"unicode":7838,"advance":0.64849999999999997,"planeBounds":{"left":-0.17185714285714293,"bottom":-0.2678571428571429,"right":0.86385714285714288,"top":0.9464285714285714},"atlasBounds":{"left":194.5,"bottom":394.5,"right":223.5,"top":428.5}},{"unicode":8216,"advance":0.27100000000000002,"planeBounds":{"left":-0.22064285714285714,"bottom":0.125,"right":0.49364285714285711,"top":0.9107142857142857},"atlasBounds":{"left":491.5,"bottom":335.5,"right":511.5,"top":357.5}},{"unicode":8217,"advance":0.27100000000000002,"planeBounds":{"left":-0.22814285714285712,"bottom":0.125,"right":0.4861428571428571,"top":0.9107142857142857},"atlasBounds":{"left":27.5,"bottom":237.5,"right":47.5,"top":259.5}},{"unicode":8220,"advance":0.49099999999999999,"planeBounds":{"left":-0.22178571428571434,"bottom":0.125,"right":0.70678571428571424,"top":0.9107142857142857},"atlasBounds":{"left":484.5,"bottom":267.5,"right":510.5,"top":289.5}},{"unicode":8221,"advance":0.48499999999999999,"planeBounds":{"left":-0.22478571428571434,"bottom":0.125,"right":0.70378571428571424,"top":0.9107142857142857},"atlasBounds":{"left":0.5,"bottom":237.5,"right":26.5,"top":259.5}},{"unicode":8364,"advance":0.63350000000000006,"planeBounds":{"left":-0.24107142857142858,"bottom":-0.2678571428571429,"right":0.8660714285714286,"top":0.9464285714285714},"atlasBounds":{"left":231.5,"bottom":358.5,"right":262.5,"top":392.5}}],"kerning":[]}
|
|
Binary file
|