SceneLayerDoc

@Serializable
data class SceneLayerDoc(val id: Int? = null, val version: String? = null, val name: String? = null, val layerType: String? = null, val spatialReference: SpatialReferenceDoc? = null, val heightModelInfo: HeightModelInfoDoc? = null, val store: StoreDoc = StoreDoc(), val materialDefinitions: List<MaterialDefDoc> = emptyList(), val textureSetDefinitions: List<TextureSetDefDoc> = emptyList(), val geometryDefinitions: List<GeometryDefDoc> = emptyList())

Root 3dSceneLayer.json document.

Constructors

Link copied to clipboard
constructor(id: Int? = null, version: String? = null, name: String? = null, layerType: String? = null, spatialReference: SpatialReferenceDoc? = null, heightModelInfo: HeightModelInfoDoc? = null, store: StoreDoc = StoreDoc(), materialDefinitions: List<MaterialDefDoc> = emptyList(), textureSetDefinitions: List<TextureSetDefDoc> = emptyList(), geometryDefinitions: List<GeometryDefDoc> = emptyList())

Properties

Link copied to clipboard

1.7+ geometry table (MeshGeometryDoc.definition); each buffer's index is its archive file name (geometries/{index}.bin). Esri convention: buffer 0 = uncompressed, buffer 1 = Draco.

Link copied to clipboard

Vertical datum of heights; see usesGravityRelatedHeights.

Link copied to clipboard
val id: Int?
Link copied to clipboard

IntegratedMesh | 3DObject | Point | PointCloud | Building (only mesh types targeted).

Link copied to clipboard

1.7+ material table (MeshMaterialDoc.definition); empty in legacy packages, where texture names come from per-node index documents instead.

Link copied to clipboard
val name: String?
Link copied to clipboard

Horizontal CRS of OBB centers + vertex offsets: 4326 (degrees, the default) or Web Mercator (metres). See I3sWebMercator.isWebMercator.

Link copied to clipboard
Link copied to clipboard

1.7+ texture sets referenced from MaterialDefDoc; formats[].name is the archive entry stem.

Link copied to clipboard

Update-session id; not a format version. Store format version lives in StoreDoc.version.

Functions

Link copied to clipboard

Metres per heightModelInfo.heightUnit — the scale every z value in the package needs to reach the engine's metres. Applies to OBB centre heights and vertex z offsets, not to obb.halfSize, which the spec fixes in metres. Unset or unrecognised means metres; "meter" is what ArcGIS writes, the rest of the enum comes from surveyed data in legacy units.

Link copied to clipboard

Heights are orthometric (gravity-related/MSL), so an ellipsoid-datum consumer must add the geoid undulation. Sources in declaration-strength order: heightModelInfo.heightModel, the vertical CRS wkid, an embedded VERTCS/VERTCRS in spatialReference.wkt, then the vertCRS name. Nothing declared means ellipsoidal (HAE), matching how a package without a vertical CRS reads. The undulation applied downstream is always EGM96, so an EGM2008/NAVD88 package lands within the sub-metre difference between those geoids.