Skip to content

Commit 1244f79

Browse files
committed
Remove EXT_implicit_geometry, add EXT_implicit_ellipsoid_region
1 parent 9e8df19 commit 1244f79

19 files changed

+141
-649
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# EXT_implicit_ellipsoid_region
2+
3+
## Contributors
4+
- Sean Lilley, Cesium
5+
- Janine Liu, Cesium
6+
7+
## Status
8+
Draft
9+
10+
## Dependencies
11+
Written against the glTF 2.0 specification.
12+
13+
## Overview
14+
15+
This extension adds an ellipsoid-based region as an additional shape type to the [`KHR_implicit_shapes`](TODO) extension. Ellipsoid-based regions are commonly used in geospatial applications to describe volumes that conform to the curvature of the Earth, or other bodies.
16+
17+
`EXT_implicit_ellipsoid_region` is an extension on the `shape` object in `KHR_implicit_shapes`, where `type` should be set to `"ellipsoid region"`.
18+
19+
The extension's properties specify a region extruded from the surface of an ellipsoid. The ellipsoid itself is not necessarily part of the volume; it is merely used as reference from which the actual region is defined. However, a region may be extended beneath the surface of the ellipsoid, and thus can possibly contain the entire ellipsoid volume if desired.
20+
21+
### Details
22+
23+
The reference ellipsoid is centered at the origin. The `semiMajorAxisRadius` indicates the radii of the ellipsoid in meters along the `x` and `z` axes. These axes are made equal as a conscious decision to simplify the math implemented for rendering regions.
24+
25+
The `semiMinorAxisRadius` indicates the radius of the ellipsoid in meters along the `y` axis.
26+
27+
The `minHeight` and `maxHeight` properties indicates the heights of the region from the ellipsoid's surface, in meters. The `minimum` height should be lower a value, but not necessarily closer to the surface of the ellipsoid. For example, `maxHeight` may be `10` while `minHeight` is `-100`.
28+
29+
<table>
30+
<tr>
31+
<th>
32+
Example
33+
</th>
34+
</tr>
35+
<tr>
36+
<td><pre>
37+
"extensions": [
38+
{
39+
"KHR_implicit_shapes": {
40+
"shapes": [
41+
{
42+
"type": "ellipsoid region",
43+
"extensions": {
44+
"EXT_implicit_ellipsoid_region": {
45+
"semiMajorAxisRadius": 4,
46+
"semiMinorAxisRadius": 2,
47+
"minHeight": 0,
48+
"maxHeight": 0.5
49+
}
50+
}
51+
}
52+
]
53+
}
54+
}
55+
]
56+
</pre></td>
57+
<td>
58+
**TODO** visual example
59+
</td>
60+
</tr>
61+
</table>
62+
63+
## Optional vs. Required
64+
This extension is required, meaning it should be placed in both the `extensionsUsed` list and `extensionsRequired` list.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
{
2+
"$schema": "https://json-schema.org/draft/2020-12/schema",
3+
"$id": "glTF.KHR_implicit_shapes.shape.EXT_implicit_ellipsoid_region.schema.json",
4+
"title": "EXT_implicit_ellipsoid_region extension on KHR_implicit_shapes.shape",
5+
"type": "object",
6+
"description": "`EXT_implicit_ellipsoid_region` extension on `KHR_implicit_shapes.shape` to represent an implicit ellipsoid region in a glTF model. Useful for geospatial applications, such as Earth-conforming voxel data.",
7+
"allOf": [
8+
{
9+
"$ref": "glTFProperty.schema.json"
10+
}
11+
],
12+
"properties": {
13+
"semiMajorAxisRadius": {
14+
"type": "number",
15+
"description": "The radius along the semi-major axis of the reference ellipsoid in meters. Corresponds to the radii along the X and Z axes.",
16+
"minimum": 0
17+
},
18+
"semiMinorAxisRadius": {
19+
"type": "number",
20+
"description": "The radius along the semi-minor axis of the reference ellipsoid in meters. Corresponds to the radius along the Y-axis.",
21+
"minimum": 0
22+
},
23+
"minHeight": {
24+
"type": "number",
25+
"description": "The minimum height of the region relative to the ellipsoid's surface, in meters. May be negative."
26+
},
27+
"maxHeight": {
28+
"type": "number",
29+
"description": "The maximum height of the region relative to the ellipsoid's surface, in meters. May be negative."
30+
},
31+
"minLatitude": {
32+
"type": "number",
33+
"description": "The minimum latitude (a.k.a. polar angle) of the region, in radians. Must be in the range [-pi/2, pi/2].",
34+
"minimum": -1.57079632679,
35+
"maximum": 1.57079632679,
36+
"default": -1.57079632679
37+
},
38+
"maxLatitude": {
39+
"type": "number",
40+
"description": "The maximum latitude (a.k.a. polar angle) of the region, in radians. Must be in the range [-pi/2, pi/2].",
41+
"minimum": -1.57079632679,
42+
"maximum": 1.57079632679,
43+
"default": 1.57079632679
44+
},
45+
"minLongitude": {
46+
"type": "number",
47+
"description": "The minimum longitude (a.k.a. azimuthal angle) of the region, in radians. Must be in the range [-pi, pi].",
48+
"minimum": -3.14159265359,
49+
"maximum": 3.14159265359,
50+
"default": -3.14159265359
51+
},
52+
"maxLongitude": {
53+
"type": "number",
54+
"description": "The maximum longitude (a.k.a. azimuthal angle) of the region, in radians. Must be in the range [-pi, pi].",
55+
"minimum": -3.14159265359,
56+
"maximum": 3.14159265359,
57+
"default": 3.14159265359
58+
}
59+
},
60+
"required": [
61+
"semiMajorAxisRadius",
62+
"semiMinorAxisRadius",
63+
"minHeight",
64+
"maxHeight"
65+
]
66+
}

extensions/2.0/Vendor/EXT_implicit_geometry/README.md

Lines changed: 0 additions & 200 deletions
This file was deleted.
Binary file not shown.
Binary file not shown.
Binary file not shown.

extensions/2.0/Vendor/EXT_implicit_geometry/schema/box.schema.json

Lines changed: 0 additions & 27 deletions
This file was deleted.

extensions/2.0/Vendor/EXT_implicit_geometry/schema/cylinder.schema.json

Lines changed: 0 additions & 32 deletions
This file was deleted.

0 commit comments

Comments
 (0)