Skip to content
66 changes: 66 additions & 0 deletions extensions/2.0/Vendor/EXT_geopose_basic_euler/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
<!-- omit in toc -->
# EXT_geopose_basic_euler

<!-- omit in toc -->
## Contributors

* Sam Suhag, Cesium
* Sean Lilley, Cesium
* Peter Gagliardi, Cesium

<!-- omit in toc -->
## Status

Draft

<!-- omit in toc -->
## Dependencies

Written against the draft of [OGC GeoPose Standard 1.0](https://github.com/opengeospatial/GeoPose/tree/main/standard).

<!-- omit in toc -->
## Optional vs. Required

This extension is optional, meaning it should be placed in the `extensionsUsed` list, but not in the `extensionsRequired` list.

<!-- omit in toc -->
## Contents
- [Overview](#overview)
- [GeoPose 1.0 Standard](#geopose-10-standard)
- [Coordinate Systems](#coordinate-systems)
- [Schema Updates](#schema-updates)

## Overview

This extension to glTF enables static positioning and orienting of models on the Earth.

### GeoPose 1.0 Standard

GeoPose 1.0 is an OGC Implementation Standard for exchanging the location and orientation of real or virtual geometric objects (*Poses*) within reference frames anchored to the earth’s surface (*Geo*) or within other astronomical coordinate systems.

This extension implements [Standardization Target 2: Basic-Euler](https://github.com/opengeospatial/GeoPose/blob/main/standard/standard/standard/clause_7_normative_text.adoc#standardization-target-2-basic-euler) in the OGC GeoPose 1.0 Standard.

## Coordinate Systems

This extension uses WGS84([EPSG:4979](https://epsg.io/4979)) as the coordinate reference system for specifying the position with longitude and latitude specified in degrees. Height above (or below) the ellipsoid must be specified in meters. The yaw-pitch-roll is provided as a rotation-only transform from a WGS84 referenced local tangent plane East-North-Up coordinate system..

```json
{
"extensions": {
"EXT_geopose_basic_euler": {
"longitude": 46.7,
"latitude": 25.067,
"height": 691.0,
"ypr": {
"yaw": 0.0,
"pitch": 0.0,
"roll": 0.0
}
}
}
}
```

## Schema Updates

Updates to the schema can be found in the [extension schema](schema/gltf.EXT_geopose_basic_euler.schema.json).
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
{
"$schema": "http://json-schema.org/draft-04/schema",
"title": "EXT_geopose_basic_euler glTF extension",
"type": "object",
"description": "glTF extension for specifying the position and orientation of models on the Earth.",
"allOf": [
{
"$ref": "glTFProperty.schema.json"
}
],
"properties": {
"longitude": {
"type": "number",
"description": "Longitude in the WGS84 datum. The angle must be specified in degrees.",
"minimum": -180.0,
"maximum": 180.0
},
"latitude": {
"type": "number",
"description": "Latitude in the WGS84 datum. The angle must be specified in degrees.",
"minimum": -90.0,
"maximum": 90.0
},
"height": {
"type": "number",
"description": "Heights are in meters above (or below) the WGS84 ellipsoid."
},
"ypr": {
"type": "object",
"description": "Rotation-only transformation from a WGS-84-referenced local tangent plane east-north-up coordinate system.",
"properties": {
"yaw": {
"type": "number",
"description": "Rotation about the LTP-ENU frame Z (up) axis. The angle must be specified in degrees."
},
"pitch": {
"type": "number",
"description": "Pitch is rotation about the y axis of the yaw-rotated local frame. The angle must be specified in degrees."
},
"roll": {
"type": "number",
"description": "Roll is rotation about the yaw and pitch rotated x axis of the local frame. The angle must be specified in degrees."
}
},
"required": [
"yaw",
"pitch",
"roll"
]
},
"extensions": {},
"extras": {}
}
}