3D Tiles specification support for streaming and rendering large-scale 3D content including buildings, point clouds, meshes, and instanced models.
Core 3D Tiles tileset loading and management.
/**
* A 3D Tileset for streaming hierarchical 3D content
*/
class Cesium3DTileset {
constructor(options: Cesium3DTilesetOptions);
readonly asset: Cesium3DTilesetAsset;
readonly properties?: any;
readonly root: Cesium3DTile;
readonly boundingSphere: BoundingSphere;
readonly modelMatrix: Matrix4;
readonly timeSinceLoad: number;
readonly totalMemoryUsageInBytes: number;
readonly clippingPlanes?: ClippingPlaneCollection;
readonly ellipsoid: Ellipsoid;
readonly foveatedScreenSpaceError: boolean;
readonly foveatedConeSize: number;
readonly foveatedMinimumScreenSpaceErrorRelaxation: number;
readonly foveatedInterpolationCallback?: Cesium3DTileset.foveatedInterpolationCallback;
readonly foveatedTimeDelay: number;
readonly skipScreenSpaceErrorFactor: number;
readonly baseScreenSpaceError: number;
readonly skipLevels: number;
readonly immediatelyLoadDesiredLevelOfDetail: boolean;
readonly loadSiblings: boolean;
readonly dynamicScreenSpaceError: boolean;
readonly dynamicScreenSpaceErrorDensity: number;
readonly dynamicScreenSpaceErrorFactor: number;
readonly dynamicScreenSpaceErrorHeightFalloff: number;
readonly progressiveResolutionHeightFraction: number;
readonly preferLeaves: boolean;
show: boolean;
modelMatrix: Matrix4;
shadows: ShadowMode;
maximumScreenSpaceError: number;
maximumMemoryUsage: number;
readonly style?: Cesium3DTileStyle;
colorBlendMode: Cesium3DTileColorBlendMode;
colorBlendAmount: number;
pointCloudShading: PointCloudShading;
readonly ready: boolean;
readonly readyPromise: Promise<Cesium3DTileset>;
readonly tilesLoaded: boolean;
readonly url: string;
readonly basePath: string;
readonly extras?: any;
readonly imageBasedLighting: ImageBasedLighting;
readonly backFaceCulling: boolean;
readonly enableShowOutline: boolean;
readonly showOutline: boolean;
readonly outlineColor: Color;
readonly vectorClassificationOnly: boolean;
readonly vectorKeepDecodedPositions: boolean;
readonly featureIdLabel: string;
readonly instanceFeatureIdLabel: string;
readonly splitDirection: SplitDirection;
readonly debugFreezeFrame: boolean;
readonly debugColorizeTiles: boolean;
readonly debugWireframe: boolean;
readonly debugShowBoundingVolume: boolean;
readonly debugShowContentBoundingVolume: boolean;
readonly debugShowViewerRequestVolume: boolean;
readonly debugShowGeometricError: boolean;
readonly debugShowRenderingStatistics: boolean;
readonly debugShowMemoryUsage: boolean;
readonly debugShowUrl: boolean;
readonly allTilesLoaded: Event;
readonly initialTilesLoaded: Event;
readonly tileLoad: Event;
readonly tileUnload: Event;
readonly tileFailed: Event;
readonly tileVisible: Event;
makeStyleDirty(): void;
isDestroyed(): boolean;
destroy(): void;
hasExtension(extensionName: string): boolean;
getExtension(extensionName: string): any;
}
interface Cesium3DTilesetOptions {
url: Resource | string | Promise<Resource | string>;
show?: boolean;
modelMatrix?: Matrix4;
shadows?: ShadowMode;
maximumScreenSpaceError?: number;
maximumMemoryUsage?: number;
cullWithChildrenBounds?: boolean;
cullRequestsWhileMoving?: boolean;
cullRequestsWhileMovingMultiplier?: number;
preloadWhenHidden?: boolean;
preloadFlightDestinations?: boolean;
preferLeaves?: boolean;
dynamicScreenSpaceError?: boolean;
dynamicScreenSpaceErrorDensity?: number;
dynamicScreenSpaceErrorFactor?: number;
dynamicScreenSpaceErrorHeightFalloff?: number;
progressiveResolutionHeightFraction?: number;
foveatedScreenSpaceError?: boolean;
foveatedConeSize?: number;
foveatedMinimumScreenSpaceErrorRelaxation?: number;
foveatedInterpolationCallback?: Cesium3DTileset.foveatedInterpolationCallback;
foveatedTimeDelay?: number;
skipScreenSpaceErrorFactor?: number;
baseScreenSpaceError?: number;
skipLevels?: number;
immediatelyLoadDesiredLevelOfDetail?: boolean;
loadSiblings?: boolean;
clippingPlanes?: ClippingPlaneCollection;
classificationType?: ClassificationType;
ellipsoid?: Ellipsoid;
pointCloudShading?: PointCloudShading;
imageBasedLighting?: ImageBasedLighting;
backFaceCulling?: boolean;
enableShowOutline?: boolean;
showOutline?: boolean;
outlineColor?: Color;
vectorClassificationOnly?: boolean;
vectorKeepDecodedPositions?: boolean;
featureIdLabel?: string | number;
instanceFeatureIdLabel?: string | number;
splitDirection?: SplitDirection;
projectTo2D?: boolean;
enablePick?: boolean;
colorBlendMode?: Cesium3DTileColorBlendMode;
colorBlendAmount?: number;
enableModelExperimental?: boolean;
customShader?: CustomShader;
content?: Cesium3DTilesContent;
debugHeatmapTilePropertyName?: string;
debugFreezeFrame?: boolean;
debugColorizeTiles?: boolean;
debugWireframe?: boolean;
debugShowBoundingVolume?: boolean;
debugShowContentBoundingVolume?: boolean;
debugShowViewerRequestVolume?: boolean;
debugShowGeometricError?: boolean;
debugShowRenderingStatistics?: boolean;
debugShowMemoryUsage?: boolean;
debugShowUrl?: boolean;
}
namespace Cesium3DTileset {
type foveatedInterpolationCallback = (p: number, maximumScreenSpaceError: number) => number;
function fromIonAssetId(assetId: number, options?: Cesium3DTilesetFromIonOptions): Promise<Cesium3DTileset>;
function fromUrl(url: Resource | string, options?: Cesium3DTilesetOptions): Promise<Cesium3DTileset>;
}
interface Cesium3DTilesetFromIonOptions {
accessToken?: string;
server?: Resource | string;
show?: boolean;
modelMatrix?: Matrix4;
shadows?: ShadowMode;
maximumScreenSpaceError?: number;
maximumMemoryUsage?: number;
}
/**
* Individual 3D tile within a tileset
*/
class Cesium3DTile {
readonly asset: any;
readonly boundingVolume: TileBoundingVolume;
readonly contentBoundingVolume?: TileBoundingVolume;
readonly viewerRequestVolume?: TileBoundingVolume;
readonly geometricError: number;
readonly refine?: Cesium3DTileRefine;
readonly children: Cesium3DTile[];
readonly parent?: Cesium3DTile;
readonly transform?: Matrix4;
readonly content: Cesium3DTileContent;
readonly extras?: any;
readonly hasEmptyContent: boolean;
readonly hasTilesetContent: boolean;
readonly hasImplicitContent: boolean;
readonly hasMultipleContents: boolean;
readonly computedTransform: Matrix4;
readonly hasRenderableContent: boolean;
readonly hasUnloadedRenderableContent: boolean;
readonly selected: boolean;
readonly contentExpired: boolean;
readonly serverKey?: string;
isDestroyed(): boolean;
destroy(): void;
getScreenSpaceError(frameState: FrameState, useParentGeometricError?: boolean): number;
distanceToCamera(frameState: FrameState): number;
createBoundingVolume(boundingVolumeHeader: any, transform: Matrix4): TileBoundingVolume;
updateTransform(parentTransform?: Matrix4): void;
requestContent(): void;
unloadContent(): void;
updateExpiration(): void;
applyDebugSettings(enabled: boolean, color: Color): void;
}
/**
* 3D tile content (geometry, point cloud, etc.)
*/
class Cesium3DTileContent {
readonly featuresLength: number;
readonly pointsLength: number;
readonly trianglesLength: number;
readonly geometryByteLength: number;
readonly texturesByteLength: number;
readonly batchTableByteLength: number;
readonly innerContents?: Cesium3DTileContent[];
readonly readyPromise: Promise<Cesium3DTileContent>;
readonly tileset: Cesium3DTileset;
readonly tile: Cesium3DTile;
readonly url: string;
readonly batchTable?: Cesium3DTileBatchTable;
readonly hasProperty(batchId: number, name: string): boolean;
readonly group?: Cesium3DContentGroup;
getFeature(batchId: number): Cesium3DTileFeature;
applyDebugSettings(enabled: boolean, color: Color): void;
applyStyle(style: Cesium3DTileStyle): void;
update(tileset: Cesium3DTileset, frameState: FrameState): void;
isDestroyed(): boolean;
destroy(): void;
}
/**
* Individual feature within 3D tile content
*/
class Cesium3DTileFeature {
readonly primitive: object;
readonly tileset: Cesium3DTileset;
readonly content: Cesium3DTileContent;
show: boolean;
color?: Color;
hasProperty(name: string): boolean;
getPropertyIds(results?: string[]): string[];
getProperty(name: string): any;
setProperty(name: string, value: any): void;
getPropertyInherited(name: string): any;
isExactClass(className: string): boolean;
isClass(className: string): boolean;
getExactClassName(): string;
}
/**
* Point cloud feature within 3D tile content
*/
class Cesium3DTilePointFeature {
show: boolean;
color?: Color;
readonly primitive: object;
readonly tileset: Cesium3DTileset;
readonly content: Cesium3DTileContent;
hasProperty(name: string): boolean;
getPropertyIds(results?: string[]): string[];
getProperty(name: string): any;
setProperty(name: string, value: any): void;
getPropertyInherited(name: string): any;
isExactClass(className: string): boolean;
isClass(className: string): boolean;
getExactClassName(): string;
}Styling and appearance customization for 3D tiles.
/**
* Styling language for 3D tiles
*/
class Cesium3DTileStyle {
constructor(style?: Resource | string | object);
style?: any;
readonly ready: boolean;
readonly readyPromise: Promise<Cesium3DTileStyle>;
show?: StyleExpression;
color?: StyleExpression;
pointOutlineColor?: StyleExpression;
pointOutlineWidth?: StyleExpression;
labelColor?: StyleExpression;
labelOutlineColor?: StyleExpression;
labelOutlineWidth?: StyleExpression;
font?: StyleExpression;
labelStyle?: StyleExpression;
labelText?: StyleExpression;
backgroundColor?: StyleExpression;
backgroundPadding?: StyleExpression;
backgroundEnabled?: StyleExpression;
scaleByDistance?: StyleExpression;
translucencyByDistance?: StyleExpression;
distanceDisplayCondition?: StyleExpression;
heightOffset?: StyleExpression;
anchorLineEnabled?: StyleExpression;
anchorLineColor?: StyleExpression;
image?: StyleExpression;
disableDepthTestDistance?: StyleExpression;
horizontalOrigin?: StyleExpression;
verticalOrigin?: StyleExpression;
labelHorizontalOrigin?: StyleExpression;
labelVerticalOrigin?: StyleExpression;
readonly colorShaderFunction?: string;
readonly showShaderFunction?: string;
readonly pointOutlineColorShaderFunction?: string;
readonly pointOutlineWidthShaderFunction?: string;
getColorShaderFunction(functionName: string, attributePrefix: string, shaderState: any): string;
getShowShaderFunction(functionName: string, attributePrefix: string, shaderState: any): string;
getPointOutlineColorShaderFunction(functionName: string, attributePrefix: string, shaderState: any): string;
getPointOutlineWidthShaderFunction(functionName: string, attributePrefix: string, shaderState: any): string;
}
/**
* Expression within a style
*/
class StyleExpression {
constructor(expression?: string, defines?: any);
readonly expression?: string;
evaluate(feature: Cesium3DTileFeature, result?: any): any;
evaluateColor(feature: Cesium3DTileFeature, result?: Color): Color;
getShaderFunction(functionName: string, attributePrefix: string, shaderState: any, functionSignature: string): string;
getVariables(): string[];
}
/**
* Conditional styling expression
*/
class ConditionsExpression {
constructor(conditionsExpression?: any, defines?: any);
readonly conditionsExpression?: any;
evaluate(feature: Cesium3DTileFeature, result?: any): any;
evaluateColor(feature: Cesium3DTileFeature, result?: Color): Color;
getShaderFunction(functionName: string, attributePrefix: string, shaderState: any, functionSignature: string): string;
getVariables(): string[];
}Property management and batch processing for 3D tile features.
/**
* Batch table for 3D tile features
*/
class Cesium3DTileBatchTable {
constructor(content: Cesium3DTileContent, featuresLength: number, batchTableJson: any, batchTableBinary?: Uint8Array, colorChangedCallback?: Function, pickColorChangedCallback?: Function);
readonly featuresLength: number;
hasProperty(batchId: number, name: string): boolean;
getPropertyIds(batchId: number, results?: string[]): string[];
getProperty(batchId: number, name: string): any;
setProperty(batchId: number, name: string, value: any): void;
getPropertyBySemantic(batchId: number, semantic: string): any;
setPropertyBySemantic(batchId: number, semantic: string, value: any): void;
isExactClass(batchId: number, className: string): boolean;
isClass(batchId: number, className: string): boolean;
getExactClassName(batchId: number): string;
applyStyle(style: Cesium3DTileStyle): void;
applyDebugSettings(enabled: boolean, color: Color): void;
isDestroyed(): boolean;
destroy(): void;
}
/**
* Feature table for 3D tile content
*/
class Cesium3DTileFeatureTable {
constructor(featureTableJson: any, featureTableBinary?: Uint8Array);
readonly featuresLength: number;
readonly json: any;
readonly buffer: Uint8Array;
hasProperty(propertyName: string): boolean;
hasPropertyBySemantic(semantic: string): string;
getPropertyArray(propertyName: string): any[];
getProperty(propertyName: string, componentType: ComponentDatatype, componentsPerAttribute?: number): any;
getPropertyBySemantic(semantic: string, componentType: ComponentDatatype, componentsPerAttribute?: number): any;
getGlobalProperty(propertyName: string, componentType?: ComponentDatatype, componentLength?: number): any;
getGlobalPropertyCartesian3(propertyName: string, result?: Cartesian3): Cartesian3;
getGlobalPropertyCartesian4(propertyName: string, result?: Cartesian4): Cartesian4;
getGlobalPropertyMatrix4(propertyName: string, result?: Matrix4): Matrix4;
}Environment lighting for 3D tiles and models.
/**
* Image-based lighting for realistic material rendering
*/
class ImageBasedLighting {
constructor(options?: ImageBasedLightingOptions);
imageBasedLightingFactor: Cartesian2;
luminanceAtZenith: number;
sphericalHarmonicCoefficients?: Cartesian3[];
specularEnvironmentMaps?: string;
isDestroyed(): boolean;
destroy(): void;
}
interface ImageBasedLightingOptions {
imageBasedLightingFactor?: Cartesian2;
luminanceAtZenith?: number;
sphericalHarmonicCoefficients?: Cartesian3[];
specularEnvironmentMaps?: string;
}Advanced 3D Tiles features for complex content organization.
/**
* Multiple content within a single 3D tile
*/
class Cesium3DTilesetMultipleContent {
readonly contents: Cesium3DTileContent[];
readonly featuresLength: number;
readonly pointsLength: number;
readonly trianglesLength: number;
readonly geometryByteLength: number;
readonly texturesByteLength: number;
readonly batchTableByteLength: number;
readonly innerContents?: Cesium3DTileContent[];
readonly readyPromise: Promise<Cesium3DTilesetMultipleContent>;
readonly tileset: Cesium3DTileset;
readonly tile: Cesium3DTile;
readonly url: string;
hasProperty(contentIndex: number, batchId: number, name: string): boolean;
getFeature(contentIndex: number, batchId: number): Cesium3DTileFeature;
applyDebugSettings(enabled: boolean, color: Color): void;
applyStyle(style: Cesium3DTileStyle): void;
update(tileset: Cesium3DTileset, frameState: FrameState): void;
isDestroyed(): boolean;
destroy(): void;
}
/**
* Implicit tiling for procedurally generated tiles
*/
class ImplicitTileset {
constructor(options: ImplicitTilesetOptions);
readonly boundingVolume: TileBoundingVolume;
readonly geometricError: number;
readonly refine: Cesium3DTileRefine;
readonly subdivisionScheme: ImplicitSubdivisionScheme;
readonly subtreeLevels: number;
readonly availableLevels: number;
readonly subtreeUriTemplate?: string;
readonly contentUriTemplates: string[];
readonly metadataSchema?: MetadataSchema;
readonly metadataClass?: MetadataClass;
readonly subtrees: ImplicitSubtree[];
loadSubtree(level: number, x: number, y: number, z?: number): Promise<ImplicitSubtree>;
isDestroyed(): boolean;
destroy(): void;
}
interface ImplicitTilesetOptions {
tilesetUri: string;
basePath: string;
subdivisionScheme: ImplicitSubdivisionScheme;
subtreeLevels: number;
availableLevels: number;
boundingVolume: any;
geometricError: number;
refine?: Cesium3DTileRefine;
subtreeUriTemplate?: string;
contentUriTemplates?: string[];
metadataSchema?: MetadataSchema;
metadataClass?: MetadataClass;
}
/**
* Subtree within an implicit tileset
*/
class ImplicitSubtree {
constructor(options: ImplicitSubtreeOptions);
readonly resource: Resource;
readonly tileAvailabilityBitstream: Uint8Array;
readonly contentAvailabilityBitstreams: Uint8Array[];
readonly childSubtreeAvailabilityBitstream?: Uint8Array;
readonly metadataTable?: MetadataTable;
getTileAvailability(level: number, x: number, y: number, z?: number): boolean;
getContentAvailability(contentIndex: number, level: number, x: number, y: number, z?: number): boolean;
getChildSubtreeAvailability(level: number, x: number, y: number, z?: number): boolean;
isDestroyed(): boolean;
destroy(): void;
}
interface ImplicitSubtreeOptions {
resource: Resource;
json: any;
binary?: Uint8Array;
subdivisionScheme: ImplicitSubdivisionScheme;
subtreeLevels: number;
subtreeX: number;
subtreeY: number;
subtreeZ?: number;
metadataSchema?: MetadataSchema;
metadataClass?: MetadataClass;
}Specialized content processors for different 3D Tiles content types.
/**
* Batched 3D Model (B3DM) content processor
*/
class Batched3DModel3DTileContent {
readonly featuresLength: number;
readonly pointsLength: number;
readonly trianglesLength: number;
readonly geometryByteLength: number;
readonly texturesByteLength: number;
readonly batchTableByteLength: number;
readonly innerContents?: Cesium3DTileContent[];
readonly readyPromise: Promise<Batched3DModel3DTileContent>;
readonly tileset: Cesium3DTileset;
readonly tile: Cesium3DTile;
readonly url: string;
readonly batchTable: Cesium3DTileBatchTable;
hasProperty(batchId: number, name: string): boolean;
getFeature(batchId: number): Cesium3DTileFeature;
applyDebugSettings(enabled: boolean, color: Color): void;
applyStyle(style: Cesium3DTileStyle): void;
update(tileset: Cesium3DTileset, frameState: FrameState): void;
isDestroyed(): boolean;
destroy(): void;
}
/**
* Instanced 3D Model (I3DM) content processor
*/
class Instanced3DModel3DTileContent {
readonly featuresLength: number;
readonly pointsLength: number;
readonly trianglesLength: number;
readonly geometryByteLength: number;
readonly texturesByteLength: number;
readonly batchTableByteLength: number;
readonly innerContents?: Cesium3DTileContent[];
readonly readyPromise: Promise<Instanced3DModel3DTileContent>;
readonly tileset: Cesium3DTileset;
readonly tile: Cesium3DTile;
readonly url: string;
readonly batchTable: Cesium3DTileBatchTable;
hasProperty(batchId: number, name: string): boolean;
getFeature(batchId: number): Cesium3DTileFeature;
applyDebugSettings(enabled: boolean, color: Color): void;
applyStyle(style: Cesium3DTileStyle): void;
update(tileset: Cesium3DTileset, frameState: FrameState): void;
isDestroyed(): boolean;
destroy(): void;
}
/**
* Point Cloud (PNTS) content processor
*/
class PointCloud3DTileContent {
readonly featuresLength: number;
readonly pointsLength: number;
readonly trianglesLength: number;
readonly geometryByteLength: number;
readonly texturesByteLength: number;
readonly batchTableByteLength: number;
readonly innerContents?: Cesium3DTileContent[];
readonly readyPromise: Promise<PointCloud3DTileContent>;
readonly tileset: Cesium3DTileset;
readonly tile: Cesium3DTile;
readonly url: string;
readonly batchTable: Cesium3DTileBatchTable;
hasProperty(batchId: number, name: string): boolean;
getFeature(batchId: number): Cesium3DTilePointFeature;
applyDebugSettings(enabled: boolean, color: Color): void;
applyStyle(style: Cesium3DTileStyle): void;
update(tileset: Cesium3DTileset, frameState: FrameState): void;
isDestroyed(): boolean;
destroy(): void;
}
/**
* Composite (CMPT) content processor
*/
class Composite3DTileContent {
readonly featuresLength: number;
readonly pointsLength: number;
readonly trianglesLength: number;
readonly geometryByteLength: number;
readonly texturesByteLength: number;
readonly batchTableByteLength: number;
readonly innerContents: Cesium3DTileContent[];
readonly readyPromise: Promise<Composite3DTileContent>;
readonly tileset: Cesium3DTileset;
readonly tile: Cesium3DTile;
readonly url: string;
hasProperty(batchId: number, name: string): boolean;
getFeature(batchId: number): Cesium3DTileFeature;
applyDebugSettings(enabled: boolean, color: Color): void;
applyStyle(style: Cesium3DTileStyle): void;
update(tileset: Cesium3DTileset, frameState: FrameState): void;
isDestroyed(): boolean;
destroy(): void;
}
/**
* glTF content processor for 3D Tiles Next
*/
class Gltf3DTileContent {
readonly featuresLength: number;
readonly pointsLength: number;
readonly trianglesLength: number;
readonly geometryByteLength: number;
readonly texturesByteLength: number;
readonly batchTableByteLength: number;
readonly innerContents?: Cesium3DTileContent[];
readonly readyPromise: Promise<Gltf3DTileContent>;
readonly tileset: Cesium3DTileset;
readonly tile: Cesium3DTile;
readonly url: string;
readonly model: ModelExperimental;
hasProperty(batchId: number, name: string): boolean;
getFeature(batchId: number): Cesium3DTileFeature;
applyDebugSettings(enabled: boolean, color: Color): void;
applyStyle(style: Cesium3DTileStyle): void;
update(tileset: Cesium3DTileset, frameState: FrameState): void;
isDestroyed(): boolean;
destroy(): void;
}interface Cesium3DTilesetAsset {
readonly version: string;
readonly tilesetVersion?: string;
readonly gltfUpAxis?: string;
readonly extensions?: any;
readonly extras?: any;
}
enum Cesium3DTileRefine {
ADD = 0,
REPLACE = 1
}
enum Cesium3DTileColorBlendMode {
HIGHLIGHT = 0,
REPLACE = 1,
MIX = 2
}
interface TileBoundingVolume {
boundingVolume: BoundingSphere | OrientedBoundingBox;
intersectPlane(plane: Plane): Intersect;
distanceSquaredTo(point: Cartesian3): number;
}
interface Cesium3DContentGroup {
readonly metadata: GroupMetadata;
show: boolean;
}
interface GroupMetadata {
readonly class: MetadataClass;
readonly extras?: any;
readonly extensions?: any;
hasProperty(propertyId: string): boolean;
hasPropertyBySemantic(semantic: string): boolean;
getPropertyIds(results?: string[]): string[];
getProperty(propertyId: string): any;
setProperty(propertyId: string, value: any): boolean;
getPropertyBySemantic(semantic: string): any;
setPropertyBySemantic(semantic: string, value: any): boolean;
}
interface MetadataSchema {
readonly id?: string;
readonly name?: string;
readonly description?: string;
readonly version?: string;
readonly classes: { [className: string]: MetadataClass };
readonly enums?: { [enumName: string]: MetadataEnum };
readonly extras?: any;
readonly extensions?: any;
}
interface MetadataClass {
readonly id: string;
readonly name?: string;
readonly description?: string;
readonly properties?: { [propertyId: string]: ClassProperty };
readonly extras?: any;
readonly extensions?: any;
}
interface MetadataEnum {
readonly name?: string;
readonly description?: string;
readonly valueType?: MetadataType;
readonly values: MetadataEnumValue[];
readonly extras?: any;
readonly extensions?: any;
}
interface MetadataEnumValue {
readonly name: string;
readonly description?: string;
readonly value: number | string;
readonly extras?: any;
readonly extensions?: any;
}
interface ClassProperty {
readonly id: string;
readonly name?: string;
readonly description?: string;
readonly type: MetadataType;
readonly componentType?: MetadataComponentType;
readonly enumType?: string;
readonly array?: boolean;
readonly count?: number;
readonly normalized?: boolean;
readonly offset?: number | number[];
readonly scale?: number | number[];
readonly max?: number | number[];
readonly min?: number | number[];
readonly required?: boolean;
readonly noData?: any;
readonly defaultProperty?: any;
readonly semantic?: string;
readonly extras?: any;
readonly extensions?: any;
}
interface MetadataTable {
readonly class?: MetadataClass;
readonly count: number;
readonly properties: { [propertyId: string]: any };
readonly extras?: any;
readonly extensions?: any;
hasProperty(propertyId: string): boolean;
hasPropertyBySemantic(semantic: string): boolean;
getPropertyIds(results?: string[]): string[];
getProperty(propertyId: string): any;
setProperty(propertyId: string, value: any): boolean;
getPropertyBySemantic(semantic: string): any;
setPropertyBySemantic(semantic: string, value: any): boolean;
}
enum ImplicitSubdivisionScheme {
QUADTREE = 0,
OCTREE = 1
}
enum MetadataType {
SCALAR = "SCALAR",
VEC2 = "VEC2",
VEC3 = "VEC3",
VEC4 = "VEC4",
MAT2 = "MAT2",
MAT3 = "MAT3",
MAT4 = "MAT4",
STRING = "STRING",
BOOLEAN = "BOOLEAN",
ENUM = "ENUM"
}
enum MetadataComponentType {
INT8 = "INT8",
UINT8 = "UINT8",
INT16 = "INT16",
UINT16 = "UINT16",
INT32 = "INT32",
UINT32 = "UINT32",
INT64 = "INT64",
UINT64 = "UINT64",
FLOAT32 = "FLOAT32",
FLOAT64 = "FLOAT64"
}
interface CustomShader {
mode: CustomShaderMode;
lightingModel: LightingModel;
translucencyMode: CustomShaderTranslucencyMode;
uniforms?: { [name: string]: any };
varyings?: { [name: string]: VaryingType };
vertexShaderText?: string;
fragmentShaderText?: string;
}
enum CustomShaderMode {
MODIFY_MATERIAL = 0,
REPLACE_MATERIAL = 1
}
enum LightingModel {
UNLIT = 0,
PBR = 1
}
enum CustomShaderTranslucencyMode {
OPAQUE = 0,
TRANSLUCENT = 1
}
enum VaryingType {
FLOAT = 0,
VEC2 = 1,
VEC3 = 2,
VEC4 = 3,
MAT2 = 4,
MAT3 = 5,
MAT4 = 6
}
interface Cesium3DTilesContent {
uri: string;
boundingVolume?: any;
group?: number;
extras?: any;
extensions?: any;
}
enum ComponentDatatype {
BYTE = 5120,
UNSIGNED_BYTE = 5121,
SHORT = 5122,
UNSIGNED_SHORT = 5123,
INT = 5124,
UNSIGNED_INT = 5125,
FLOAT = 5126,
DOUBLE = 5130
}