diff --git a/extensions/2.0/Vendor/EXT_geopose_basic_euler/README.md b/extensions/2.0/Vendor/EXT_geopose_basic_euler/README.md new file mode 100644 index 0000000000..3ab78a56f2 --- /dev/null +++ b/extensions/2.0/Vendor/EXT_geopose_basic_euler/README.md @@ -0,0 +1,66 @@ + +# EXT_geopose_basic_euler + + +## Contributors + +* Sam Suhag, Cesium +* Sean Lilley, Cesium +* Peter Gagliardi, Cesium + + +## Status + +Draft + + +## Dependencies + +Written against the draft of [OGC GeoPose Standard 1.0](https://github.com/opengeospatial/GeoPose/tree/main/standard). + + +## Optional vs. Required + +This extension is optional, meaning it should be placed in the `extensionsUsed` list, but not in the `extensionsRequired` list. + + +## 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). diff --git a/extensions/2.0/Vendor/EXT_geopose_basic_euler/schema/gltf.EXT_geopose_basic_euler.schema.json b/extensions/2.0/Vendor/EXT_geopose_basic_euler/schema/gltf.EXT_geopose_basic_euler.schema.json new file mode 100644 index 0000000000..a534036c8e --- /dev/null +++ b/extensions/2.0/Vendor/EXT_geopose_basic_euler/schema/gltf.EXT_geopose_basic_euler.schema.json @@ -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": {} + } +} \ No newline at end of file