osmgl 0.4.0 → 0.6.0
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/README.md +8 -3
- package/dist/osmgl.cjs +393 -99
- package/dist/osmgl.cjs.map +1 -1
- package/dist/osmgl.d.cts +97 -11
- package/dist/osmgl.d.ts +97 -11
- package/dist/osmgl.global.js +394 -100
- package/dist/osmgl.js +393 -99
- package/dist/osmgl.js.map +1 -1
- package/package.json +1 -1
package/dist/osmgl.d.cts
CHANGED
|
@@ -432,6 +432,20 @@ declare class Transform {
|
|
|
432
432
|
* Порядок: левый верх, правый верх, левый низ, правый низ.
|
|
433
433
|
*/
|
|
434
434
|
localRayCorners(): Vec3[];
|
|
435
|
+
/**
|
|
436
|
+
* Базис камеры в МИРОВЫХ осях движка (X восток, Y юг, Z вверх) и фокус в пикселях вида.
|
|
437
|
+
*
|
|
438
|
+
* По ним из пикселя восстанавливается луч: dir = normalize(fwd*focal + right*dx + up*dy). Небу
|
|
439
|
+
* этого хватает, чтобы считаться от УГЛА ЛУЧА, а не от экранной высоты, — только так у горизонта
|
|
440
|
+
* получается настоящая воздушная масса, а не нарисованная полоса.
|
|
441
|
+
*/
|
|
442
|
+
cameraRay(): {
|
|
443
|
+
right: Vec3;
|
|
444
|
+
up: Vec3;
|
|
445
|
+
fwd: Vec3;
|
|
446
|
+
focal: number;
|
|
447
|
+
axisElev: number;
|
|
448
|
+
};
|
|
435
449
|
/** Направление на центр планеты и её угловой радиус — для каймы атмосферы. */
|
|
436
450
|
globeDisc(): {
|
|
437
451
|
dir: Vec3;
|
|
@@ -751,14 +765,19 @@ interface LayerBase {
|
|
|
751
765
|
*/
|
|
752
766
|
splitBy?: string;
|
|
753
767
|
/**
|
|
754
|
-
*
|
|
768
|
+
* Накладка: слой рисуется вне общей очереди, без теста глубины. Значение говорит, ГДЕ.
|
|
755
769
|
*
|
|
756
|
-
*
|
|
757
|
-
* закрыла бы его крыша. План этажа и есть накладка —
|
|
758
|
-
* покрывает он ровно контур своего здания, поэтому соседние дома остаются
|
|
770
|
+
* `'volume'` (и `true` — прежнее написание) — поверх объёма. Нужно планам этажей: они лежат
|
|
771
|
+
* внутри здания, и в обычном порядке их закрыла бы его крыша. План этажа и есть накладка —
|
|
772
|
+
* «мы внутри», — а покрывает он ровно контур своего здания, поэтому соседние дома остаются
|
|
759
773
|
* видимыми.
|
|
774
|
+
*
|
|
775
|
+
* `'roads'` — сразу после дорог и ДО объёма. Это место разметки: зебры, перекрытия, всё, что
|
|
776
|
+
* лежит на асфальте. Дороги рисуются позже поверхностей, поэтому в общую очередь такая
|
|
777
|
+
* разметка не встаёт, но и поверх объёма ей делать нечего — зебра, висящая на стене дома,
|
|
778
|
+
* первой бросается в глаза.
|
|
760
779
|
*/
|
|
761
|
-
overlay?: boolean;
|
|
780
|
+
overlay?: boolean | 'roads' | 'volume';
|
|
762
781
|
/** Выключить слой, не удаляя из стиля. */
|
|
763
782
|
visible?: boolean;
|
|
764
783
|
/**
|
|
@@ -979,6 +998,21 @@ interface FillExtrusionLayerSpec extends LayerBase {
|
|
|
979
998
|
windowGlow?: Interpolated<number>;
|
|
980
999
|
/** Высота этажа в метрах: шаг сетки окон. */
|
|
981
1000
|
floorHeight?: Interpolated<number>;
|
|
1001
|
+
/**
|
|
1002
|
+
* На сколько метров стекло утоплено от плоскости стены (по умолчанию 0.18).
|
|
1003
|
+
* Край проёма кладёт на утопленное стекло тень со стороны, где нет солнца, —
|
|
1004
|
+
* именно она и читается как глубина. Ноль возвращает плоское окно.
|
|
1005
|
+
*/
|
|
1006
|
+
windowRecess?: Interpolated<number>;
|
|
1007
|
+
/** Глубина тени откоса, 0..1. */
|
|
1008
|
+
windowRecessShade?: Interpolated<number>;
|
|
1009
|
+
/**
|
|
1010
|
+
* Высота в метрах, на которой цокольное затемнение сходит на нет (по умолчанию 4).
|
|
1011
|
+
* Затемнение считается для ВСЕЙ стены, включая скруглённые углы и фронтоны.
|
|
1012
|
+
*/
|
|
1013
|
+
plinthHeight?: Interpolated<number>;
|
|
1014
|
+
/** Сила цокольного затемнения у самой земли, 0..1. */
|
|
1015
|
+
plinthShade?: Interpolated<number>;
|
|
982
1016
|
/**
|
|
983
1017
|
* Разброс цвета СКАТНЫХ кровель, 0..1. Тон берётся из хеша здания, яркость
|
|
984
1018
|
* остаётся от темы — иначе терракота всплыла бы посреди ночной карты.
|
|
@@ -1305,8 +1339,15 @@ interface LightSpec {
|
|
|
1305
1339
|
interface SkySpec {
|
|
1306
1340
|
/** Рисовать небо и дымку. */
|
|
1307
1341
|
enabled: boolean;
|
|
1308
|
-
/** Цвет
|
|
1342
|
+
/** Цвет открытого неба над полосой мглы. */
|
|
1309
1343
|
skyColor: string;
|
|
1344
|
+
/**
|
|
1345
|
+
* Цвет ВЕРХНЕЙ АТМОСФЕРЫ — выше по кадру, где воздуха меньше и синь глубже.
|
|
1346
|
+
*
|
|
1347
|
+
* Третья остановка градиента. Двух цветов на небо не хватает: получается ровная заливка, по
|
|
1348
|
+
* которой не читается ни толща воздуха, ни высота. Так же устроено небо у Mapbox (`high-color`).
|
|
1349
|
+
*/
|
|
1350
|
+
highColor?: string;
|
|
1310
1351
|
/** Цвет у горизонта. В него же уходит дальняя земля — отсюда бесшовный стык. */
|
|
1311
1352
|
horizonColor: string;
|
|
1312
1353
|
/**
|
|
@@ -1317,6 +1358,14 @@ interface SkySpec {
|
|
|
1317
1358
|
fogRange: [number, number];
|
|
1318
1359
|
/** Предел силы дымки: 1 — дальний план сливается с горизонтом полностью. */
|
|
1319
1360
|
fogIntensity: number;
|
|
1361
|
+
/**
|
|
1362
|
+
* Вертикальный диапазон дымки в МЕТРАХ: с какой высоты она начинает отпускать геометрию и на
|
|
1363
|
+
* какой отпускает совсем. Мгла лежит слоем у земли, и башня из неё выходит — низ теряется,
|
|
1364
|
+
* верх остаётся чистым. Ровно выцветшая по всей высоте башня выдаёт нарисованную дымку первой.
|
|
1365
|
+
*
|
|
1366
|
+
* Равные значения выключают учёт высоты. Аналог `fog.vertical-range` у Mapbox.
|
|
1367
|
+
*/
|
|
1368
|
+
fogVerticalRange: [number, number];
|
|
1320
1369
|
/** Цвет космоса за пределами атмосферы. Виден только на глобусе. */
|
|
1321
1370
|
spaceColor: string;
|
|
1322
1371
|
/** Цвет атмосферной каймы вокруг планеты. */
|
|
@@ -1324,12 +1373,15 @@ interface SkySpec {
|
|
|
1324
1373
|
/** Яркость звёзд, 0 — выключить. Звёзды закреплены в мире, а не на экране. */
|
|
1325
1374
|
starIntensity: number;
|
|
1326
1375
|
/**
|
|
1327
|
-
*
|
|
1376
|
+
* Толщина полосы МГЛЫ над горизонтом — в синусе угла подъёма луча, как `fog.horizon-blend`
|
|
1377
|
+
* у Mapbox. Значение 0.14 это примерно восемь градусов.
|
|
1328
1378
|
*
|
|
1329
|
-
*
|
|
1330
|
-
*
|
|
1331
|
-
*
|
|
1332
|
-
*
|
|
1379
|
+
* Величина угловая, а не доля кадра: толщина мглы от кадрирования не зависит. Доля видимого
|
|
1380
|
+
* неба схлопывается в ноль, когда горизонт подходит к кромке кадра (большой зум с наклоном), и
|
|
1381
|
+
* синее небо упирается в мглу стыком.
|
|
1382
|
+
*
|
|
1383
|
+
* Этой же полосой дымка отпускает геометрию по мере подъёма луча — небо и дальний дом обязаны
|
|
1384
|
+
* приходить у горизонта в один цвет.
|
|
1333
1385
|
*/
|
|
1334
1386
|
horizonBlend: number;
|
|
1335
1387
|
}
|
|
@@ -3498,6 +3550,10 @@ declare class LayerRenderer {
|
|
|
3498
3550
|
* перелёт через город.
|
|
3499
3551
|
*/
|
|
3500
3552
|
private patternScale;
|
|
3553
|
+
/** Камера в метрах от мирового нуля — считается раз на кадр (см. render). */
|
|
3554
|
+
private cameraMeters;
|
|
3555
|
+
/** Пикселей буфера на пиксель вида — считается раз на кадр (см. render). */
|
|
3556
|
+
private dpr;
|
|
3501
3557
|
/**
|
|
3502
3558
|
* Множитель процедурной детализации (фасады, материалы) — из профиля
|
|
3503
3559
|
* качества. Ноль не ставим даже на слабых устройствах: без окон и ряби карта
|
|
@@ -3656,6 +3712,23 @@ declare class LayerRenderer {
|
|
|
3656
3712
|
* отсекли изнанку. Подробности, почему не годится сам шар, — в GLOBE_CLIP_VERT.
|
|
3657
3713
|
*/
|
|
3658
3714
|
private drawGlobeClip;
|
|
3715
|
+
/**
|
|
3716
|
+
* Горизонт и ширина его полосы в пикселях буфера — ОДНО число на небо и на дымку.
|
|
3717
|
+
*
|
|
3718
|
+
* Полоса меряется по ВИДИМОМУ небу, а не по высоте экрана: при наклоне 75° и поле зрения 37°
|
|
3719
|
+
* над горизонтом помещается несколько градусов, и небо в кадре — это десятки пикселей. Привязка
|
|
3720
|
+
* к высоте экрана дала бы переход длиной в сотни пикселей, то есть ровную заливку вместо
|
|
3721
|
+
* градиента.
|
|
3722
|
+
*/
|
|
3723
|
+
/**
|
|
3724
|
+
* Луч и полоса мглы — ОДНИ И ТЕ ЖЕ числа небу и дымке.
|
|
3725
|
+
*
|
|
3726
|
+
* Небо и дальняя геометрия сходятся у горизонта, и считать их надо от одной величины: угла
|
|
3727
|
+
* подъёма луча. Отсюда наклон оси камеры, фокус и центр кадра — по ним шейдер восстанавливает
|
|
3728
|
+
* луч из пикселя (см. Transform.cameraRay).
|
|
3729
|
+
*/
|
|
3730
|
+
private applyAtmosphere;
|
|
3731
|
+
private skyBand;
|
|
3659
3732
|
/** Небо: вертикальный градиент во весь экран. Геометрии у него нет. */
|
|
3660
3733
|
private drawSky;
|
|
3661
3734
|
/**
|
|
@@ -3779,6 +3852,14 @@ declare class LayerRenderer {
|
|
|
3779
3852
|
* И масштаб, И начало — тогда координата остаётся непрерывной, а размеры
|
|
3780
3853
|
* прежними.
|
|
3781
3854
|
*/
|
|
3855
|
+
/**
|
|
3856
|
+
* Накладка — слои вне общей очереди, без теста глубины.
|
|
3857
|
+
*
|
|
3858
|
+
* Позиций две, и они не взаимозаменяемы. `roads` идёт до объёма: разметка лежит на асфальте, и
|
|
3859
|
+
* дом обязан её закрывать. `volume` идёт после: план этажа лежит ВНУТРИ здания, и в обычном
|
|
3860
|
+
* порядке его закрыла бы крыша.
|
|
3861
|
+
*/
|
|
3862
|
+
private drawOverlay;
|
|
3782
3863
|
private applyTileScale;
|
|
3783
3864
|
private applyMaterial;
|
|
3784
3865
|
private drawFill;
|
|
@@ -4946,6 +5027,11 @@ declare const SURFACE_LEVEL_SCALE = 64;
|
|
|
4946
5027
|
interface SurfaceOptions {
|
|
4947
5028
|
/** Метров в единице тайла — все размеры ниже задаются в МЕТРАХ. */
|
|
4948
5029
|
metersPerUnit: number;
|
|
5030
|
+
/**
|
|
5031
|
+
* Предел длины ребра в единицах тайла: длиннее — верхняя плоскость дробится. Нужно ГЛОБУСУ,
|
|
5032
|
+
* где сфера гнёт вершины, а не рёбра. Ноль (плоская карта) выключает дробление.
|
|
5033
|
+
*/
|
|
5034
|
+
maxSegment?: number;
|
|
4949
5035
|
/** Уровень верхней плоскости, метры. Отрицательный — ниже земли. */
|
|
4950
5036
|
elevation: number;
|
|
4951
5037
|
/**
|
package/dist/osmgl.d.ts
CHANGED
|
@@ -432,6 +432,20 @@ declare class Transform {
|
|
|
432
432
|
* Порядок: левый верх, правый верх, левый низ, правый низ.
|
|
433
433
|
*/
|
|
434
434
|
localRayCorners(): Vec3[];
|
|
435
|
+
/**
|
|
436
|
+
* Базис камеры в МИРОВЫХ осях движка (X восток, Y юг, Z вверх) и фокус в пикселях вида.
|
|
437
|
+
*
|
|
438
|
+
* По ним из пикселя восстанавливается луч: dir = normalize(fwd*focal + right*dx + up*dy). Небу
|
|
439
|
+
* этого хватает, чтобы считаться от УГЛА ЛУЧА, а не от экранной высоты, — только так у горизонта
|
|
440
|
+
* получается настоящая воздушная масса, а не нарисованная полоса.
|
|
441
|
+
*/
|
|
442
|
+
cameraRay(): {
|
|
443
|
+
right: Vec3;
|
|
444
|
+
up: Vec3;
|
|
445
|
+
fwd: Vec3;
|
|
446
|
+
focal: number;
|
|
447
|
+
axisElev: number;
|
|
448
|
+
};
|
|
435
449
|
/** Направление на центр планеты и её угловой радиус — для каймы атмосферы. */
|
|
436
450
|
globeDisc(): {
|
|
437
451
|
dir: Vec3;
|
|
@@ -751,14 +765,19 @@ interface LayerBase {
|
|
|
751
765
|
*/
|
|
752
766
|
splitBy?: string;
|
|
753
767
|
/**
|
|
754
|
-
*
|
|
768
|
+
* Накладка: слой рисуется вне общей очереди, без теста глубины. Значение говорит, ГДЕ.
|
|
755
769
|
*
|
|
756
|
-
*
|
|
757
|
-
* закрыла бы его крыша. План этажа и есть накладка —
|
|
758
|
-
* покрывает он ровно контур своего здания, поэтому соседние дома остаются
|
|
770
|
+
* `'volume'` (и `true` — прежнее написание) — поверх объёма. Нужно планам этажей: они лежат
|
|
771
|
+
* внутри здания, и в обычном порядке их закрыла бы его крыша. План этажа и есть накладка —
|
|
772
|
+
* «мы внутри», — а покрывает он ровно контур своего здания, поэтому соседние дома остаются
|
|
759
773
|
* видимыми.
|
|
774
|
+
*
|
|
775
|
+
* `'roads'` — сразу после дорог и ДО объёма. Это место разметки: зебры, перекрытия, всё, что
|
|
776
|
+
* лежит на асфальте. Дороги рисуются позже поверхностей, поэтому в общую очередь такая
|
|
777
|
+
* разметка не встаёт, но и поверх объёма ей делать нечего — зебра, висящая на стене дома,
|
|
778
|
+
* первой бросается в глаза.
|
|
760
779
|
*/
|
|
761
|
-
overlay?: boolean;
|
|
780
|
+
overlay?: boolean | 'roads' | 'volume';
|
|
762
781
|
/** Выключить слой, не удаляя из стиля. */
|
|
763
782
|
visible?: boolean;
|
|
764
783
|
/**
|
|
@@ -979,6 +998,21 @@ interface FillExtrusionLayerSpec extends LayerBase {
|
|
|
979
998
|
windowGlow?: Interpolated<number>;
|
|
980
999
|
/** Высота этажа в метрах: шаг сетки окон. */
|
|
981
1000
|
floorHeight?: Interpolated<number>;
|
|
1001
|
+
/**
|
|
1002
|
+
* На сколько метров стекло утоплено от плоскости стены (по умолчанию 0.18).
|
|
1003
|
+
* Край проёма кладёт на утопленное стекло тень со стороны, где нет солнца, —
|
|
1004
|
+
* именно она и читается как глубина. Ноль возвращает плоское окно.
|
|
1005
|
+
*/
|
|
1006
|
+
windowRecess?: Interpolated<number>;
|
|
1007
|
+
/** Глубина тени откоса, 0..1. */
|
|
1008
|
+
windowRecessShade?: Interpolated<number>;
|
|
1009
|
+
/**
|
|
1010
|
+
* Высота в метрах, на которой цокольное затемнение сходит на нет (по умолчанию 4).
|
|
1011
|
+
* Затемнение считается для ВСЕЙ стены, включая скруглённые углы и фронтоны.
|
|
1012
|
+
*/
|
|
1013
|
+
plinthHeight?: Interpolated<number>;
|
|
1014
|
+
/** Сила цокольного затемнения у самой земли, 0..1. */
|
|
1015
|
+
plinthShade?: Interpolated<number>;
|
|
982
1016
|
/**
|
|
983
1017
|
* Разброс цвета СКАТНЫХ кровель, 0..1. Тон берётся из хеша здания, яркость
|
|
984
1018
|
* остаётся от темы — иначе терракота всплыла бы посреди ночной карты.
|
|
@@ -1305,8 +1339,15 @@ interface LightSpec {
|
|
|
1305
1339
|
interface SkySpec {
|
|
1306
1340
|
/** Рисовать небо и дымку. */
|
|
1307
1341
|
enabled: boolean;
|
|
1308
|
-
/** Цвет
|
|
1342
|
+
/** Цвет открытого неба над полосой мглы. */
|
|
1309
1343
|
skyColor: string;
|
|
1344
|
+
/**
|
|
1345
|
+
* Цвет ВЕРХНЕЙ АТМОСФЕРЫ — выше по кадру, где воздуха меньше и синь глубже.
|
|
1346
|
+
*
|
|
1347
|
+
* Третья остановка градиента. Двух цветов на небо не хватает: получается ровная заливка, по
|
|
1348
|
+
* которой не читается ни толща воздуха, ни высота. Так же устроено небо у Mapbox (`high-color`).
|
|
1349
|
+
*/
|
|
1350
|
+
highColor?: string;
|
|
1310
1351
|
/** Цвет у горизонта. В него же уходит дальняя земля — отсюда бесшовный стык. */
|
|
1311
1352
|
horizonColor: string;
|
|
1312
1353
|
/**
|
|
@@ -1317,6 +1358,14 @@ interface SkySpec {
|
|
|
1317
1358
|
fogRange: [number, number];
|
|
1318
1359
|
/** Предел силы дымки: 1 — дальний план сливается с горизонтом полностью. */
|
|
1319
1360
|
fogIntensity: number;
|
|
1361
|
+
/**
|
|
1362
|
+
* Вертикальный диапазон дымки в МЕТРАХ: с какой высоты она начинает отпускать геометрию и на
|
|
1363
|
+
* какой отпускает совсем. Мгла лежит слоем у земли, и башня из неё выходит — низ теряется,
|
|
1364
|
+
* верх остаётся чистым. Ровно выцветшая по всей высоте башня выдаёт нарисованную дымку первой.
|
|
1365
|
+
*
|
|
1366
|
+
* Равные значения выключают учёт высоты. Аналог `fog.vertical-range` у Mapbox.
|
|
1367
|
+
*/
|
|
1368
|
+
fogVerticalRange: [number, number];
|
|
1320
1369
|
/** Цвет космоса за пределами атмосферы. Виден только на глобусе. */
|
|
1321
1370
|
spaceColor: string;
|
|
1322
1371
|
/** Цвет атмосферной каймы вокруг планеты. */
|
|
@@ -1324,12 +1373,15 @@ interface SkySpec {
|
|
|
1324
1373
|
/** Яркость звёзд, 0 — выключить. Звёзды закреплены в мире, а не на экране. */
|
|
1325
1374
|
starIntensity: number;
|
|
1326
1375
|
/**
|
|
1327
|
-
*
|
|
1376
|
+
* Толщина полосы МГЛЫ над горизонтом — в синусе угла подъёма луча, как `fog.horizon-blend`
|
|
1377
|
+
* у Mapbox. Значение 0.14 это примерно восемь градусов.
|
|
1328
1378
|
*
|
|
1329
|
-
*
|
|
1330
|
-
*
|
|
1331
|
-
*
|
|
1332
|
-
*
|
|
1379
|
+
* Величина угловая, а не доля кадра: толщина мглы от кадрирования не зависит. Доля видимого
|
|
1380
|
+
* неба схлопывается в ноль, когда горизонт подходит к кромке кадра (большой зум с наклоном), и
|
|
1381
|
+
* синее небо упирается в мглу стыком.
|
|
1382
|
+
*
|
|
1383
|
+
* Этой же полосой дымка отпускает геометрию по мере подъёма луча — небо и дальний дом обязаны
|
|
1384
|
+
* приходить у горизонта в один цвет.
|
|
1333
1385
|
*/
|
|
1334
1386
|
horizonBlend: number;
|
|
1335
1387
|
}
|
|
@@ -3498,6 +3550,10 @@ declare class LayerRenderer {
|
|
|
3498
3550
|
* перелёт через город.
|
|
3499
3551
|
*/
|
|
3500
3552
|
private patternScale;
|
|
3553
|
+
/** Камера в метрах от мирового нуля — считается раз на кадр (см. render). */
|
|
3554
|
+
private cameraMeters;
|
|
3555
|
+
/** Пикселей буфера на пиксель вида — считается раз на кадр (см. render). */
|
|
3556
|
+
private dpr;
|
|
3501
3557
|
/**
|
|
3502
3558
|
* Множитель процедурной детализации (фасады, материалы) — из профиля
|
|
3503
3559
|
* качества. Ноль не ставим даже на слабых устройствах: без окон и ряби карта
|
|
@@ -3656,6 +3712,23 @@ declare class LayerRenderer {
|
|
|
3656
3712
|
* отсекли изнанку. Подробности, почему не годится сам шар, — в GLOBE_CLIP_VERT.
|
|
3657
3713
|
*/
|
|
3658
3714
|
private drawGlobeClip;
|
|
3715
|
+
/**
|
|
3716
|
+
* Горизонт и ширина его полосы в пикселях буфера — ОДНО число на небо и на дымку.
|
|
3717
|
+
*
|
|
3718
|
+
* Полоса меряется по ВИДИМОМУ небу, а не по высоте экрана: при наклоне 75° и поле зрения 37°
|
|
3719
|
+
* над горизонтом помещается несколько градусов, и небо в кадре — это десятки пикселей. Привязка
|
|
3720
|
+
* к высоте экрана дала бы переход длиной в сотни пикселей, то есть ровную заливку вместо
|
|
3721
|
+
* градиента.
|
|
3722
|
+
*/
|
|
3723
|
+
/**
|
|
3724
|
+
* Луч и полоса мглы — ОДНИ И ТЕ ЖЕ числа небу и дымке.
|
|
3725
|
+
*
|
|
3726
|
+
* Небо и дальняя геометрия сходятся у горизонта, и считать их надо от одной величины: угла
|
|
3727
|
+
* подъёма луча. Отсюда наклон оси камеры, фокус и центр кадра — по ним шейдер восстанавливает
|
|
3728
|
+
* луч из пикселя (см. Transform.cameraRay).
|
|
3729
|
+
*/
|
|
3730
|
+
private applyAtmosphere;
|
|
3731
|
+
private skyBand;
|
|
3659
3732
|
/** Небо: вертикальный градиент во весь экран. Геометрии у него нет. */
|
|
3660
3733
|
private drawSky;
|
|
3661
3734
|
/**
|
|
@@ -3779,6 +3852,14 @@ declare class LayerRenderer {
|
|
|
3779
3852
|
* И масштаб, И начало — тогда координата остаётся непрерывной, а размеры
|
|
3780
3853
|
* прежними.
|
|
3781
3854
|
*/
|
|
3855
|
+
/**
|
|
3856
|
+
* Накладка — слои вне общей очереди, без теста глубины.
|
|
3857
|
+
*
|
|
3858
|
+
* Позиций две, и они не взаимозаменяемы. `roads` идёт до объёма: разметка лежит на асфальте, и
|
|
3859
|
+
* дом обязан её закрывать. `volume` идёт после: план этажа лежит ВНУТРИ здания, и в обычном
|
|
3860
|
+
* порядке его закрыла бы крыша.
|
|
3861
|
+
*/
|
|
3862
|
+
private drawOverlay;
|
|
3782
3863
|
private applyTileScale;
|
|
3783
3864
|
private applyMaterial;
|
|
3784
3865
|
private drawFill;
|
|
@@ -4946,6 +5027,11 @@ declare const SURFACE_LEVEL_SCALE = 64;
|
|
|
4946
5027
|
interface SurfaceOptions {
|
|
4947
5028
|
/** Метров в единице тайла — все размеры ниже задаются в МЕТРАХ. */
|
|
4948
5029
|
metersPerUnit: number;
|
|
5030
|
+
/**
|
|
5031
|
+
* Предел длины ребра в единицах тайла: длиннее — верхняя плоскость дробится. Нужно ГЛОБУСУ,
|
|
5032
|
+
* где сфера гнёт вершины, а не рёбра. Ноль (плоская карта) выключает дробление.
|
|
5033
|
+
*/
|
|
5034
|
+
maxSegment?: number;
|
|
4949
5035
|
/** Уровень верхней плоскости, метры. Отрицательный — ниже земли. */
|
|
4950
5036
|
elevation: number;
|
|
4951
5037
|
/**
|