@csi-foxbyte/cityjson-to-3d-tiles
Version:
A Node.js library that converts CityJSON files into Cesium 3D Tiles—complete with automatic texture atlas packing, Basis compression, three LOD levels, and customizable threading.
61 lines (56 loc) • 2.25 kB
TypeScript
import { Vector3Like, Vector3, Matrix4, Box3 } from 'three';
declare function generate3DTilesFromTileDatabase(dbFilePath: string, outputFolder: string, hasAlphaEnabled: boolean, onProgress: (progress: number, files: string[]) => void, opts?: {
threadCount?: number;
simplifyAdresses?: boolean;
}): Promise<void>;
declare function generateTileDatabaseFromCityJSON(
/**
* The input folder containing the CityJSON files to aggregate.
*/
inputFolder: string,
/**
* The output folder. Must exist.
*/
outputFolder: string,
/**
* The CityJSON appearance to use.
*/
appearance: string,
/**
* The progress callback function.
* @param progress - The progress value in normalized form, where 0 = 0% and 1 = 100%.
*/
onProgress: (progress: number) => void, opts?: {
/**
* The number of threads to use.
* @default 4
*/
threadCount?: number;
/**
* The spatial reference system of the input files expressed as a [PROJ definition](https://proj.org/en/stable/usage/quickstart.html).
* If unspecified, will attempt to read the spatial reference from each CityJSON file, if possible.
* @default null
*/
srcSRS?: string;
/**
* The destination spatial reference system expressed as a [PROJ definition](https://proj.org/en/stable/usage/quickstart.html).
* @default "+proj=geocent +datum=WGS84 +units=m +no_defs +type=crs"
*/
destSRS?: string;
}): Promise<{
dbFilePath: string;
}>;
declare function getNewellsNormal(points: Vector3Like[]): Vector3;
declare function projectPolygonToPlane(polygon3D: [number, number, number][], polygonHoles3D: [number, number, number][]): {
projected: Vector3[];
matrix: Matrix4;
};
declare function triangulate3DPolygon(rings: [number, number, number][][]): number[] | null;
declare function getBBoxesFromMeshes(meshes: {
position: Float32Array;
}[], globalTransformPoint: Vector3): {
cartesianBox: Box3;
cartographicBox: Box3;
};
declare function convertEPSGFromCityJSONToProj4(potentialEPSG?: string): string | null;
export { convertEPSGFromCityJSONToProj4, generate3DTilesFromTileDatabase, generateTileDatabaseFromCityJSON, getBBoxesFromMeshes, getNewellsNormal, projectPolygonToPlane, triangulate3DPolygon };