UNPKG

@giro3d/giro3d

Version:

A JS/WebGL framework for 3D geospatial data visualization

44 lines (35 loc) 1.36 kB
/* * Copyright (c) 2015-2018, IGN France. * Copyright (c) 2018-2026, Giro3D team. * SPDX-License-Identifier: MIT */ import { Vector2 } from 'three'; import type Ellipsoid from '../../core/geographic/Ellipsoid'; import type Extent from '../../core/geographic/Extent'; import type TileCoordinate from './TileCoordinate'; import type { TileGeometryBuilder } from './TileGeometry'; import EllipsoidTileGeometry from './EllipsoidTileGeometry'; export class EllipsoidTileGeometryBuilder implements TileGeometryBuilder<EllipsoidTileGeometry> { public constructor( private readonly ellipsoid: Ellipsoid, private _segments: number, private readonly _skirtDepth: number | null, ) {} public get rootTileMatrix(): Vector2 { // Equirectangular projection with 2 tiles on the Y axis // and 4 on the X axis, so that tiles are perfect squares. return new Vector2(4, 2); } public set segments(v: number) { this._segments = v; } public build(params: { tile: TileCoordinate; extent: Extent }): EllipsoidTileGeometry { return new EllipsoidTileGeometry({ extent: params.extent, ellipsoid: this.ellipsoid, segments: this._segments, skirtDepth: this._skirtDepth, }); } } export default EllipsoidTileGeometryBuilder;