@origingame/engine 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/dist/web/origin-engine.d.ts +38 -2
  2. package/dist/web/origin-engine.js +250 -10
  3. package/dist/web/origin-engine_bg.wasm +0 -0
  4. package/dist/web/origin-engine_bg.wasm.d.ts +14 -2
  5. package/dist/web-publish/origin-engine-lanes.js +255 -34
  6. package/dist/web-publish/origin-engine-lanes_bg.wasm +0 -0
  7. package/dist/web-publish/origin-engine.d.ts +39 -3
  8. package/dist/web-publish/origin-engine.js +253 -32
  9. package/dist/web-publish/origin-engine_bg.wasm +0 -0
  10. package/dist/web-publish/origin-engine_bg.wasm.d.ts +15 -3
  11. package/dist/web-publish-2d/origin-engine-lanes.js +253 -32
  12. package/dist/web-publish-2d/origin-engine-lanes_bg.wasm +0 -0
  13. package/dist/web-publish-2d/origin-engine.d.ts +38 -2
  14. package/dist/web-publish-2d/origin-engine.js +250 -29
  15. package/dist/web-publish-2d/origin-engine_bg.wasm +0 -0
  16. package/dist/web-publish-2d/origin-engine_bg.wasm.d.ts +14 -2
  17. package/knowledge/README.md +2 -1
  18. package/knowledge/guides/three-to-og.md +393 -0
  19. package/knowledge/knowledge.json +2 -1
  20. package/knowledge/package.json +3 -2
  21. package/knowledge/scaffold/origin-engine.json +2 -2
  22. package/knowledge/scaffold/template/package.json +1 -1
  23. package/knowledge/scaffold/template/project.ogt +1 -1
  24. package/knowledge/scripts/validate.ts +140 -21
  25. package/knowledge/skills/og-audio/SKILL.md +2 -2
  26. package/knowledge/skills/og-build/SKILL.md +22 -3
  27. package/knowledge/skills/og-core/SKILL.md +20 -5
  28. package/knowledge/skills/og-feel/SKILL.md +2 -2
  29. package/knowledge/skills/og-game/SKILL.md +481 -35
  30. package/knowledge/skills/og-i18n/SKILL.md +7 -7
  31. package/knowledge/skills/og-model/SKILL.md +374 -0
  32. package/knowledge/skills/og-platform-sdk/SKILL.md +1 -1
  33. package/knowledge/skills/og-ui/SKILL.md +15 -8
  34. package/knowledge/wiki/ai.md +20 -20
  35. package/knowledge/wiki/anim.md +63 -55
  36. package/knowledge/wiki/atmosphere.md +13 -13
  37. package/knowledge/wiki/audio.md +18 -18
  38. package/knowledge/wiki/camera.md +13 -13
  39. package/knowledge/wiki/commands.md +11 -11
  40. package/knowledge/wiki/debug.md +13 -13
  41. package/knowledge/wiki/game.md +8 -8
  42. package/knowledge/wiki/i18n.md +7 -7
  43. package/knowledge/wiki/index.md +57 -3
  44. package/knowledge/wiki/input.md +47 -47
  45. package/knowledge/wiki/load.md +57 -57
  46. package/knowledge/wiki/nav.md +34 -34
  47. package/knowledge/wiki/net.md +10 -10
  48. package/knowledge/wiki/path.md +14 -14
  49. package/knowledge/wiki/physics.md +95 -95
  50. package/knowledge/wiki/platform.md +44 -44
  51. package/knowledge/wiki/probe.md +86 -86
  52. package/knowledge/wiki/reflect.md +16 -4
  53. package/knowledge/wiki/render.md +1168 -170
  54. package/knowledge/wiki/rng.md +14 -14
  55. package/knowledge/wiki/shapes.md +727 -0
  56. package/knowledge/wiki/stream.md +15 -15
  57. package/knowledge/wiki/system.md +8 -8
  58. package/knowledge/wiki/systems.md +2 -2
  59. package/knowledge/wiki/terrain.md +24 -20
  60. package/knowledge/wiki/tilemap.md +13 -13
  61. package/knowledge/wiki/time.md +4 -4
  62. package/knowledge/wiki/timeline.md +14 -14
  63. package/knowledge/wiki/transform.md +8 -8
  64. package/knowledge/wiki/tween.md +17 -17
  65. package/knowledge/wiki/ui.md +245 -269
  66. package/knowledge/wiki/video.md +5 -5
  67. package/knowledge/wiki/world.md +36 -36
  68. package/package.json +4 -4
  69. package/schema/api.schema.json +1834 -305
  70. package/shell/platform.ts +5 -0
  71. package/shell/player.ts +8 -2
  72. package/shell/transport.ts +6 -0
  73. package/src/generated/abi.ts +37 -1
  74. package/src/geom.ts +260 -0
  75. package/src/index.ts +8 -1
  76. package/src/node/playtest-run.ts +1 -0
  77. package/src/platform-local.ts +2 -0
  78. package/src/playtest.ts +8 -0
  79. package/src/runtime.ts +87 -6
  80. package/src/ui-kit/settings.ts +9 -0
  81. package/src/web/shell.ts +1 -1
  82. package/src/web/worker.ts +2 -2
  83. package/types/bindings.json +697 -402
  84. package/types/index.d.ts +1045 -127
@@ -2,7 +2,7 @@
2
2
 
3
3
  # The Origin Engine API
4
4
 
5
- `@origingame/engine`, API version 1: 33 modules, generated from `crates/og-api/api.ogt`. Each module has one page; every signature on it is quoted from the IDL.
5
+ `@origingame/engine`, API version 1: 34 modules, generated from `crates/og-api/api.ogt`. Each module has one page; every signature on it is quoted from the IDL.
6
6
 
7
7
  The Origin Engine API. Game code declares components and systems, and reads the world through typed views over engine memory.
8
8
 
@@ -30,6 +30,7 @@ Grouped by the skill that teaches them: the skill says how much of each to use a
30
30
  | [`transform`](transform.md) | `og.transform.*` | kept | Transforms in the three.js vocabulary: position, quaternion and scale, composed into matrixWorld down the parent chain. |
31
31
  | [`input`](input.md) | types and tokens | kept | Input as the game sees it: the Input resource for polling, events for edges. |
32
32
  | [`render`](render.md) | `og.render.*` | kept | What is drawn: meshes with materials. Draws are instanced by (geometry, material) automatically; there is no per-object draw call. |
33
+ | [`shapes`](shapes.md) | types and tokens | kept | Two-dimensional outlines in three.js's words: og.Shape and og.Path2 are three.js's Shape and Path, built by the same calls (moveTo, lineTo, quadraticCurveTo, bezierCurveTo, splineThru, arc, absarc, ellipse, absellipse, closePath) and flattened to points by getPoints, so a three.js outline is a paste. og.render.shapeGeometry, extrudeGeometry and sweepGeometry take them; only their points cross to the engine. |
33
34
  | [`load`](load.md) | `og.load.*` | kept | Asset loading from cooked output: `og cook` turns assets/ into cooked/ (.ogb blobs and the manifest cooked/.cook.ogt), and the runtime reads only cooked/. |
34
35
  | [`physics`](physics.md) | `og.physics.*` | kept | Rigid bodies over rapier (rapier3d in the 3D profile, rapier2d in 2D, both with enhanced determinism): game code owns the components, the engine's og.physics system steps them after the game's systems and writes the dynamic bodies back. |
35
36
  | [`atmosphere`](atmosphere.md) | `og.atmosphere.*` | kept | Fog, a procedural sky, the day-night cycle, weather and water, declared as resources and components (the E5 round). Everything is off by default: a world that sets none of them draws exactly as before. |
@@ -119,7 +120,7 @@ Field units the docs and Tune use.
119
120
 
120
121
  ## Every name
121
122
 
122
- 1160 entries: modules' functions, types, records, column kinds and constants, and every interface member and resource method.
123
+ 1213 entries: modules' functions, types, records, column kinds and constants, and every interface member and resource method.
123
124
 
124
125
  | Name | Kind | Page | Binding symbol |
125
126
  |---|---|---|---|
@@ -230,6 +231,8 @@ Field units the docs and Tune use.
230
231
  | [`CoreAction`](commands.md#type-CoreAction) | enum | commands | — |
231
232
  | [`CounterDesc`](ui.md#type-CounterDesc) | desc struct | ui | — |
232
233
  | [`Cross`](ui.md#type-Cross) | enum | ui | — |
234
+ | [`CsgGeometryDesc`](render.md#type-CsgGeometryDesc) | desc struct | render | — |
235
+ | [`CsgOp`](render.md#type-CsgOp) | enum | render | — |
233
236
  | [`Currency`](ui.md#type-Currency) | desc struct | ui | — |
234
237
  | [`CurveDesc`](path.md#type-CurveDesc) | desc struct | path | — |
235
238
  | [`CutsceneDesc`](ui.md#type-CutsceneDesc) | desc struct | ui | — |
@@ -290,6 +293,7 @@ Field units the docs and Tune use.
290
293
  | [`ExpectReport`](probe.md#type-ExpectReport) | struct | probe | — |
291
294
  | [`ExpectResult`](probe.md#type-ExpectResult) | struct | probe | — |
292
295
  | [`ExpectStatus`](probe.md#type-ExpectStatus) | enum | probe | — |
296
+ | [`ExtrudeGeometryDesc`](render.md#type-ExtrudeGeometryDesc) | desc struct | render | — |
293
297
  | [`f32()`](reflect.md#column-f32) | column kind | reflect | — |
294
298
  | [`f64()`](reflect.md#column-f64) | column kind | reflect | — |
295
299
  | [`FactsFn`](game.md#type-FactsFn) | callback | game | — |
@@ -334,12 +338,13 @@ Field units the docs and Tune use.
334
338
  | [`Geometry()`](render.md#column-Geometry) | column kind | render | — |
335
339
  | [`GeometryHit`](render.md#type-GeometryHit) | struct | render | — |
336
340
  | [`GeometryInfo`](render.md#type-GeometryInfo) | struct | render | — |
341
+ | [`GeometryPart`](render.md#type-GeometryPart) | desc struct | render | — |
337
342
  | [`GltfDesc`](load.md#type-GltfDesc) | desc struct | load | — |
338
343
  | [`GltfInfo`](load.md#type-GltfInfo) | struct | load | — |
339
344
  | [`GraphAsset`](anim.md#type-GraphAsset) | handle | anim | — |
340
345
  | [`GraphAsset()`](anim.md#column-GraphAsset) | column kind | anim | — |
341
346
  | [`GraphDesc`](anim.md#type-GraphDesc) | desc struct | anim | — |
342
- | [`GraphicsQuality`](ui.md#type-GraphicsQuality) | enum | ui | — |
347
+ | [`GraphicsQuality`](render.md#type-GraphicsQuality) | enum | render | — |
343
348
  | [`GridDesc`](ui.md#type-GridDesc) | desc struct | ui | — |
344
349
  | [`Heard`](probe.md#type-Heard) | struct | probe | — |
345
350
  | [`Hello`](probe.md#type-Hello) | struct | probe | — |
@@ -384,6 +389,7 @@ Field units the docs and Tune use.
384
389
  | [`KeyInput`](input.md#type-KeyInput) | struct | input | — |
385
390
  | [`LabelDesc`](ui.md#type-LabelDesc) | desc struct | ui | — |
386
391
  | [`LanguageOption`](ui.md#type-LanguageOption) | desc struct | ui | — |
392
+ | [`LatheGeometryDesc`](render.md#type-LatheGeometryDesc) | desc struct | render | — |
387
393
  | [`LeaderboardDesc`](ui.md#type-LeaderboardDesc) | desc struct | ui | — |
388
394
  | [`LeaderboardEntry`](ui.md#type-LeaderboardEntry) | desc struct | ui | — |
389
395
  | [`LeaderboardQueryDesc`](platform.md#type-LeaderboardQueryDesc) | desc struct | platform | — |
@@ -395,6 +401,7 @@ Field units the docs and Tune use.
395
401
  | [`LineMode`](render.md#type-LineMode) | enum | render | — |
396
402
  | [`LineMode()`](render.md#column-LineMode) | column kind | render | — |
397
403
  | [`LinesDesc`](render.md#type-LinesDesc) | desc struct | render | — |
404
+ | [`list()`](reflect.md#column-list) | column kind | reflect | — |
398
405
  | [`ListDesc`](ui.md#type-ListDesc) | desc struct | ui | — |
399
406
  | [`ListRange`](ui.md#type-ListRange) | struct | ui | — |
400
407
  | [`ListResult`](ui.md#type-ListResult) | struct | ui | — |
@@ -434,10 +441,12 @@ Field units the docs and Tune use.
434
441
  | [`MAX_REFLECTION_PROBES`](render.md#const-MAX_REFLECTION_PROBES) | constant | render | — |
435
442
  | [`MenuItem`](ui.md#type-MenuItem) | desc struct | ui | — |
436
443
  | [`MenuResult`](ui.md#type-MenuResult) | struct | ui | — |
444
+ | [`MergeGeometriesDesc`](render.md#type-MergeGeometriesDesc) | desc struct | render | — |
437
445
  | [`MeshDesc`](physics.md#type-MeshDesc) | desc struct | physics | — |
438
446
  | [`MeterDesc`](ui.md#type-MeterDesc) | desc struct | ui | — |
439
447
  | [`MeterKind`](ui.md#type-MeterKind) | enum | ui | — |
440
448
  | [`MinimapDesc`](ui.md#type-MinimapDesc) | desc struct | ui | — |
449
+ | [`MirrorAxis`](render.md#type-MirrorAxis) | enum | render | — |
441
450
  | [`ModalDesc`](ui.md#type-ModalDesc) | desc struct | ui | — |
442
451
  | [`ModalResult`](ui.md#type-ModalResult) | struct | ui | — |
443
452
  | [`Modifiers`](input.md#type-Modifiers) | struct | input | — |
@@ -616,6 +625,7 @@ Field units the docs and Tune use.
616
625
  | [`og.path.length`](path.md#fn-length) | function | path | `og_path_length` |
617
626
  | [`og.path.nearest`](path.md#fn-nearest) | function | path | `og_path_nearest` |
618
627
  | [`og.path.sample`](path.md#fn-sample) | function | path | `og_path_sample` |
628
+ | [`og.Path2`](shapes.md#value-Path2) | value | shapes | — |
619
629
  | [`og.PathFollower`](path.md#record-PathFollower) | component | path | — |
620
630
  | [`og.Perceivable`](ai.md#record-Perceivable) | component | ai | — |
621
631
  | [`og.Perception`](ai.md#record-Perception) | component | ai | — |
@@ -675,6 +685,7 @@ Field units the docs and Tune use.
675
685
  | [`og.RectLight`](render.md#record-RectLight) | component | render | — |
676
686
  | [`og.ReflectionProbe`](render.md#record-ReflectionProbe) | component | render | — |
677
687
  | [`og.render.applyLook`](render.md#fn-applyLook) | function | render | `og_render_apply_look` |
688
+ | [`og.render.applyQuality`](render.md#fn-applyQuality) | function | render | `og_render_apply_quality` |
678
689
  | [`og.render.bakedLighting`](render.md#fn-bakedLighting) | function | render | `og_render_baked_lighting` |
679
690
  | [`og.render.boxGeometry`](render.md#fn-boxGeometry) | function | render | `og_render_box_geometry` |
680
691
  | [`og.render.bufferGeometry`](render.md#fn-bufferGeometry) | function | render | `og_render_buffer_geometry` |
@@ -682,14 +693,22 @@ Field units the docs and Tune use.
682
693
  | [`og.render.capsuleGeometry`](render.md#fn-capsuleGeometry) | function | render | `og_render_capsule_geometry` |
683
694
  | [`og.render.circleGeometry`](render.md#fn-circleGeometry) | function | render | `og_render_circle_geometry` |
684
695
  | [`og.render.coneGeometry`](render.md#fn-coneGeometry) | function | render | `og_render_cone_geometry` |
696
+ | [`og.render.csgGeometry`](render.md#fn-csgGeometry) | function | render | `og_render_csg_geometry` |
685
697
  | [`og.render.cylinderGeometry`](render.md#fn-cylinderGeometry) | function | render | `og_render_cylinder_geometry` |
698
+ | [`og.render.dodecahedronGeometry`](render.md#fn-dodecahedronGeometry) | function | render | `og_render_dodecahedron_geometry` |
699
+ | [`og.render.extrudeGeometry`](render.md#fn-extrudeGeometry) | function | render | `og_render_extrude_geometry` |
686
700
  | [`og.render.floatingText`](render.md#fn-floatingText) | function | render | `og_render_floating_text` |
687
701
  | [`og.render.geometryInfo`](render.md#fn-geometryInfo) | function | render | `og_render_geometry_info` |
702
+ | [`og.render.icosahedronGeometry`](render.md#fn-icosahedronGeometry) | function | render | `og_render_icosahedron_geometry` |
703
+ | [`og.render.latheGeometry`](render.md#fn-latheGeometry) | function | render | `og_render_lathe_geometry` |
688
704
  | [`og.render.lines`](render.md#fn-lines) | function | render | `og_render_lines` |
689
705
  | [`og.render.look`](render.md#fn-look) | function | render | `og_render_look` |
690
706
  | [`og.render.measureText`](render.md#fn-measureText) | function | render | `og_render_measure_text` |
707
+ | [`og.render.mergeGeometries`](render.md#fn-mergeGeometries) | function | render | `og_render_merge_geometries` |
708
+ | [`og.render.octahedronGeometry`](render.md#fn-octahedronGeometry) | function | render | `og_render_octahedron_geometry` |
691
709
  | [`og.render.planeGeometry`](render.md#fn-planeGeometry) | function | render | `og_render_plane_geometry` |
692
710
  | [`og.render.points`](render.md#fn-points) | function | render | `og_render_points` |
711
+ | [`og.render.polyhedronGeometry`](render.md#fn-polyhedronGeometry) | function | render | `og_render_polyhedron_geometry` |
693
712
  | [`og.render.postErrors`](render.md#fn-postErrors) | function | render | `og_render_post_errors` |
694
713
  | [`og.render.raycast`](render.md#fn-raycast) | function | render | `og_render_raycast` |
695
714
  | [`og.render.renderTarget`](render.md#fn-renderTarget) | function | render | `og_render_render_target` |
@@ -699,9 +718,12 @@ Field units the docs and Tune use.
699
718
  | [`og.render.setPostParam`](render.md#fn-setPostParam) | function | render | `og_render_set_post_param` |
700
719
  | [`og.render.setShaderParam`](render.md#fn-setShaderParam) | function | render | `og_render_set_shader_param` |
701
720
  | [`og.render.shaderMaterial`](render.md#fn-shaderMaterial) | function | render | `og_render_shader_material` |
721
+ | [`og.render.shapeGeometry`](render.md#fn-shapeGeometry) | function | render | `og_render_shape_geometry` |
702
722
  | [`og.render.sphereGeometry`](render.md#fn-sphereGeometry) | function | render | `og_render_sphere_geometry` |
703
723
  | [`og.render.sprite`](render.md#fn-sprite) | function | render | `og_render_sprite` |
704
724
  | [`og.render.standardMaterial`](render.md#fn-standardMaterial) | function | render | `og_render_standard_material` |
725
+ | [`og.render.sweepGeometry`](render.md#fn-sweepGeometry) | function | render | `og_render_sweep_geometry` |
726
+ | [`og.render.tetrahedronGeometry`](render.md#fn-tetrahedronGeometry) | function | render | `og_render_tetrahedron_geometry` |
705
727
  | [`og.render.text`](render.md#fn-text) | function | render | `og_render_text` |
706
728
  | [`og.render.torusGeometry`](render.md#fn-torusGeometry) | function | render | `og_render_torus_geometry` |
707
729
  | [`og.render.tubeGeometry`](render.md#fn-tubeGeometry) | function | render | `og_render_tube_geometry` |
@@ -718,6 +740,7 @@ Field units the docs and Tune use.
718
740
  | [`og.Rope`](physics.md#record-Rope) | component | physics | — |
719
741
  | [`og.SensorEntered`](physics.md#record-SensorEntered) | event | physics | — |
720
742
  | [`og.SensorExited`](physics.md#record-SensorExited) | event | physics | — |
743
+ | [`og.Shape`](shapes.md#value-Shape) | value | shapes | — |
721
744
  | [`og.Skeleton`](anim.md#record-Skeleton) | component | anim | — |
722
745
  | [`og.Skeleton2D`](anim.md#record-Skeleton2D) | component | anim | — |
723
746
  | [`og.Skeleton2DEvent`](anim.md#record-Skeleton2DEvent) | event | anim | — |
@@ -898,9 +921,27 @@ Field units the docs and Tune use.
898
921
  | [`PassSize`](probe.md#type-PassSize) | struct | probe | — |
899
922
  | [`Path`](path.md#type-Path) | handle | path | — |
900
923
  | [`Path()`](path.md#column-Path) | column kind | path | — |
924
+ | [`Path2`](shapes.md#type-Path2) | interface | shapes | — |
925
+ | [`Path2.absarc`](shapes.md#member-Path2-absarc) | method | shapes | — |
926
+ | [`Path2.absellipse`](shapes.md#member-Path2-absellipse) | method | shapes | — |
927
+ | [`Path2.arc`](shapes.md#member-Path2-arc) | method | shapes | — |
928
+ | [`Path2.bezierCurveTo`](shapes.md#member-Path2-bezierCurveTo) | method | shapes | — |
929
+ | [`Path2.closePath`](shapes.md#member-Path2-closePath) | method | shapes | — |
930
+ | [`Path2.ellipse`](shapes.md#member-Path2-ellipse) | method | shapes | — |
931
+ | [`Path2.getPoints`](shapes.md#member-Path2-getPoints) | method | shapes | — |
932
+ | [`Path2.lineTo`](shapes.md#member-Path2-lineTo) | method | shapes | — |
933
+ | [`Path2.moveTo`](shapes.md#member-Path2-moveTo) | method | shapes | — |
934
+ | [`Path2.quadraticCurveTo`](shapes.md#member-Path2-quadraticCurveTo) | method | shapes | — |
935
+ | [`Path2.setFromPoints`](shapes.md#member-Path2-setFromPoints) | method | shapes | — |
936
+ | [`Path2.splineThru`](shapes.md#member-Path2-splineThru) | method | shapes | — |
937
+ | [`Path2Class`](shapes.md#type-Path2Class) | interface | shapes | — |
938
+ | [`Path2Class.new`](shapes.md#member-Path2Class-new) | method | shapes | — |
901
939
  | [`PathDesc`](nav.md#type-PathDesc) | desc struct | nav | — |
902
940
  | [`PathKind`](path.md#type-PathKind) | enum | path | — |
903
941
  | [`PathKind()`](path.md#column-PathKind) | column kind | path | — |
942
+ | [`PathList`](shapes.md#type-PathList) | interface | shapes | — |
943
+ | [`PathList.length`](shapes.md#member-PathList-length) | property | shapes | — |
944
+ | [`PathList.push`](shapes.md#member-PathList-push) | method | shapes | — |
904
945
  | [`PathNearest`](path.md#type-PathNearest) | struct | path | — |
905
946
  | [`PathSample`](path.md#type-PathSample) | struct | path | — |
906
947
  | [`PauseMenuDesc`](ui.md#type-PauseMenuDesc) | desc struct | ui | — |
@@ -942,6 +983,7 @@ Field units the docs and Tune use.
942
983
  | [`Pointers.start`](input.md#member-Pointers-start) | method | input | `og_pointers_start` |
943
984
  | [`PointsDesc`](render.md#type-PointsDesc) | desc struct | render | — |
944
985
  | [`PointShadows`](render.md#type-PointShadows) | enum | render | — |
986
+ | [`PolyhedronGeometryDesc`](render.md#type-PolyhedronGeometryDesc) | desc struct | render | — |
945
987
  | [`Post`](render.md#type-Post) | handle | render | — |
946
988
  | [`Post()`](render.md#column-Post) | column kind | render | — |
947
989
  | [`PostError`](render.md#type-PostError) | struct | render | — |
@@ -965,6 +1007,8 @@ Field units the docs and Tune use.
965
1007
  | [`PROFILE_3D`](physics.md#const-PROFILE_3D) | constant | physics | — |
966
1008
  | [`ProgressDesc`](ui.md#type-ProgressDesc) | desc struct | ui | — |
967
1009
  | [`PuzzleHudDesc`](ui.md#type-PuzzleHudDesc) | desc struct | ui | — |
1010
+ | [`QualityPreset`](render.md#type-QualityPreset) | enum | render | — |
1011
+ | [`QualityPreset()`](render.md#column-QualityPreset) | column kind | render | — |
968
1012
  | [`quat`](math.md#value-quat) | value | math | — |
969
1013
  | [`Quaternion`](math.md#type-Quaternion) | struct | math | — |
970
1014
  | [`Quaternion()`](reflect.md#column-Quaternion) | column kind | reflect | — |
@@ -1074,6 +1118,9 @@ Field units the docs and Tune use.
1074
1118
  | [`SettingsResult`](ui.md#type-SettingsResult) | struct | ui | — |
1075
1119
  | [`Shader`](render.md#type-Shader) | handle | render | — |
1076
1120
  | [`ShakeDesc`](ui.md#type-ShakeDesc) | desc struct | ui | — |
1121
+ | [`Shape`](shapes.md#type-Shape) | interface | shapes | — |
1122
+ | [`Shape.extractPoints`](shapes.md#member-Shape-extractPoints) | method | shapes | — |
1123
+ | [`Shape.holes`](shapes.md#member-Shape-holes) | property | shapes | — |
1077
1124
  | [`SHAPE_BOX`](physics.md#const-SHAPE_BOX) | constant | physics | — |
1078
1125
  | [`SHAPE_CAPSULE`](physics.md#const-SHAPE_CAPSULE) | constant | physics | — |
1079
1126
  | [`SHAPE_CONVEX`](physics.md#const-SHAPE_CONVEX) | constant | physics | — |
@@ -1083,7 +1130,11 @@ Field units the docs and Tune use.
1083
1130
  | [`SHAPE_TRIMESH`](physics.md#const-SHAPE_TRIMESH) | constant | physics | — |
1084
1131
  | [`ShapeCastDesc`](physics.md#type-ShapeCastDesc) | desc struct | physics | — |
1085
1132
  | [`ShapeCastHit`](physics.md#type-ShapeCastHit) | struct | physics | — |
1133
+ | [`ShapeClass`](shapes.md#type-ShapeClass) | interface | shapes | — |
1134
+ | [`ShapeClass.new`](shapes.md#member-ShapeClass-new) | method | shapes | — |
1086
1135
  | [`ShapeDesc`](physics.md#type-ShapeDesc) | desc struct | physics | — |
1136
+ | [`ShapeGeometryDesc`](render.md#type-ShapeGeometryDesc) | desc struct | render | — |
1137
+ | [`ShapePoints`](render.md#type-ShapePoints) | struct | render | — |
1087
1138
  | [`ShooterHudDesc`](ui.md#type-ShooterHudDesc) | desc struct | ui | — |
1088
1139
  | [`ShopDesc`](ui.md#type-ShopDesc) | desc struct | ui | — |
1089
1140
  | [`ShopItem`](ui.md#type-ShopItem) | desc struct | ui | — |
@@ -1099,6 +1150,7 @@ Field units the docs and Tune use.
1099
1150
  | [`SliderResult`](ui.md#type-SliderResult) | struct | ui | — |
1100
1151
  | [`SlotMove`](ui.md#type-SlotMove) | struct | ui | — |
1101
1152
  | [`SnapshotInfo`](probe.md#type-SnapshotInfo) | struct | probe | — |
1153
+ | [`SolidGeometryDesc`](render.md#type-SolidGeometryDesc) | desc struct | render | — |
1102
1154
  | [`Sound`](load.md#type-Sound) | handle | load | — |
1103
1155
  | [`Sound()`](load.md#column-Sound) | column kind | load | — |
1104
1156
  | [`SOUND_CULLED`](audio.md#const-SOUND_CULLED) | constant | audio | — |
@@ -1147,6 +1199,8 @@ Field units the docs and Tune use.
1147
1199
  | [`StyliseSpace()`](render.md#column-StyliseSpace) | column kind | render | — |
1148
1200
  | [`SweepDesc`](probe.md#type-SweepDesc) | desc struct | probe | — |
1149
1201
  | [`SweepFrame`](probe.md#type-SweepFrame) | struct | probe | — |
1202
+ | [`SweepGeometryDesc`](render.md#type-SweepGeometryDesc) | desc struct | render | — |
1203
+ | [`SweepKey`](render.md#type-SweepKey) | struct | render | — |
1150
1204
  | [`SweepResult`](probe.md#type-SweepResult) | struct | probe | — |
1151
1205
  | [`System`](system.md#type-System) | interface | system | — |
1152
1206
  | [`System.name`](system.md#member-System-name) | property | system | `og_system_get_name` |
@@ -18,7 +18,7 @@ module input {
18
18
  # declarations follow, each quoted below
19
19
  ```
20
20
 
21
- <sub>`api.ogt` line 1300</sub>
21
+ <sub>`api.ogt` line 1306</sub>
22
22
 
23
23
  ## Contents
24
24
 
@@ -212,7 +212,7 @@ resource Input {
212
212
  }
213
213
  ```
214
214
 
215
- <sub>`api.ogt` line 1475</sub>
215
+ <sub>`api.ogt` line 1481</sub>
216
216
 
217
217
  <a id="member-Input-down"></a>
218
218
 
@@ -240,7 +240,7 @@ fn down {
240
240
  }
241
241
  ```
242
242
 
243
- <sub>`api.ogt` line 1549</sub>
243
+ <sub>`api.ogt` line 1555</sub>
244
244
 
245
245
  <a id="member-Input-pressed"></a>
246
246
 
@@ -268,7 +268,7 @@ fn pressed {
268
268
  }
269
269
  ```
270
270
 
271
- <sub>`api.ogt` line 1554</sub>
271
+ <sub>`api.ogt` line 1560</sub>
272
272
 
273
273
  <a id="member-Input-released"></a>
274
274
 
@@ -296,7 +296,7 @@ fn released {
296
296
  }
297
297
  ```
298
298
 
299
- <sub>`api.ogt` line 1559</sub>
299
+ <sub>`api.ogt` line 1565</sub>
300
300
 
301
301
  <a id="member-Input-axis"></a>
302
302
 
@@ -326,7 +326,7 @@ fn axis {
326
326
  }
327
327
  ```
328
328
 
329
- <sub>`api.ogt` line 1564</sub>
329
+ <sub>`api.ogt` line 1570</sub>
330
330
 
331
331
  <a id="member-Input-axis2"></a>
332
332
 
@@ -360,7 +360,7 @@ fn axis2 {
360
360
  }
361
361
  ```
362
362
 
363
- <sub>`api.ogt` line 1570</sub>
363
+ <sub>`api.ogt` line 1576</sub>
364
364
 
365
365
  <a id="member-Input-buttonDown"></a>
366
366
 
@@ -388,7 +388,7 @@ fn buttonDown {
388
388
  }
389
389
  ```
390
390
 
391
- <sub>`api.ogt` line 1578</sub>
391
+ <sub>`api.ogt` line 1584</sub>
392
392
 
393
393
  <a id="member-Input-buttonPressed"></a>
394
394
 
@@ -416,7 +416,7 @@ fn buttonPressed {
416
416
  }
417
417
  ```
418
418
 
419
- <sub>`api.ogt` line 1583</sub>
419
+ <sub>`api.ogt` line 1589</sub>
420
420
 
421
421
  <a id="member-Input-buttonReleased"></a>
422
422
 
@@ -444,7 +444,7 @@ fn buttonReleased {
444
444
  }
445
445
  ```
446
446
 
447
- <sub>`api.ogt` line 1588</sub>
447
+ <sub>`api.ogt` line 1594</sub>
448
448
 
449
449
  <a id="record-Pointers"></a>
450
450
 
@@ -561,7 +561,7 @@ resource Pointers {
561
561
  }
562
562
  ```
563
563
 
564
- <sub>`api.ogt` line 1595</sub>
564
+ <sub>`api.ogt` line 1601</sub>
565
565
 
566
566
  <a id="member-Pointers-down"></a>
567
567
 
@@ -589,7 +589,7 @@ fn down {
589
589
  }
590
590
  ```
591
591
 
592
- <sub>`api.ogt` line 1650</sub>
592
+ <sub>`api.ogt` line 1656</sub>
593
593
 
594
594
  <a id="member-Pointers-pressed"></a>
595
595
 
@@ -617,7 +617,7 @@ fn pressed {
617
617
  }
618
618
  ```
619
619
 
620
- <sub>`api.ogt` line 1655</sub>
620
+ <sub>`api.ogt` line 1661</sub>
621
621
 
622
622
  <a id="member-Pointers-released"></a>
623
623
 
@@ -645,7 +645,7 @@ fn released {
645
645
  }
646
646
  ```
647
647
 
648
- <sub>`api.ogt` line 1660</sub>
648
+ <sub>`api.ogt` line 1666</sub>
649
649
 
650
650
  <a id="member-Pointers-position"></a>
651
651
 
@@ -673,7 +673,7 @@ fn position {
673
673
  }
674
674
  ```
675
675
 
676
- <sub>`api.ogt` line 1665</sub>
676
+ <sub>`api.ogt` line 1671</sub>
677
677
 
678
678
  <a id="member-Pointers-start"></a>
679
679
 
@@ -701,7 +701,7 @@ fn start {
701
701
  }
702
702
  ```
703
703
 
704
- <sub>`api.ogt` line 1670</sub>
704
+ <sub>`api.ogt` line 1676</sub>
705
705
 
706
706
  <a id="member-Pointers-count"></a>
707
707
 
@@ -724,7 +724,7 @@ fn count {
724
724
  }
725
725
  ```
726
726
 
727
- <sub>`api.ogt` line 1675</sub>
727
+ <sub>`api.ogt` line 1681</sub>
728
728
 
729
729
  <a id="record-Gamepad"></a>
730
730
 
@@ -885,7 +885,7 @@ resource Gamepad {
885
885
  }
886
886
  ```
887
887
 
888
- <sub>`api.ogt` line 1681</sub>
888
+ <sub>`api.ogt` line 1687</sub>
889
889
 
890
890
  <a id="member-Gamepad-connected"></a>
891
891
 
@@ -915,7 +915,7 @@ fn connected {
915
915
  }
916
916
  ```
917
917
 
918
- <sub>`api.ogt` line 1759</sub>
918
+ <sub>`api.ogt` line 1765</sub>
919
919
 
920
920
  <a id="member-Gamepad-down"></a>
921
921
 
@@ -947,7 +947,7 @@ fn down {
947
947
  }
948
948
  ```
949
949
 
950
- <sub>`api.ogt` line 1766</sub>
950
+ <sub>`api.ogt` line 1772</sub>
951
951
 
952
952
  <a id="member-Gamepad-pressed"></a>
953
953
 
@@ -979,7 +979,7 @@ fn pressed {
979
979
  }
980
980
  ```
981
981
 
982
- <sub>`api.ogt` line 1774</sub>
982
+ <sub>`api.ogt` line 1780</sub>
983
983
 
984
984
  <a id="member-Gamepad-released"></a>
985
985
 
@@ -1011,7 +1011,7 @@ fn released {
1011
1011
  }
1012
1012
  ```
1013
1013
 
1014
- <sub>`api.ogt` line 1782</sub>
1014
+ <sub>`api.ogt` line 1788</sub>
1015
1015
 
1016
1016
  <a id="member-Gamepad-axis"></a>
1017
1017
 
@@ -1043,7 +1043,7 @@ fn axis {
1043
1043
  }
1044
1044
  ```
1045
1045
 
1046
- <sub>`api.ogt` line 1790</sub>
1046
+ <sub>`api.ogt` line 1796</sub>
1047
1047
 
1048
1048
  <a id="record-KeyDown"></a>
1049
1049
 
@@ -1071,7 +1071,7 @@ event KeyDown {
1071
1071
  }
1072
1072
  ```
1073
1073
 
1074
- <sub>`api.ogt` line 1800</sub>
1074
+ <sub>`api.ogt` line 1806</sub>
1075
1075
 
1076
1076
  <a id="record-TextInput"></a>
1077
1077
 
@@ -1096,7 +1096,7 @@ event TextInput {
1096
1096
  }
1097
1097
  ```
1098
1098
 
1099
- <sub>`api.ogt` line 1810</sub>
1099
+ <sub>`api.ogt` line 1816</sub>
1100
1100
 
1101
1101
  <a id="record-KeyUp"></a>
1102
1102
 
@@ -1122,7 +1122,7 @@ event KeyUp {
1122
1122
  }
1123
1123
  ```
1124
1124
 
1125
- <sub>`api.ogt` line 1817</sub>
1125
+ <sub>`api.ogt` line 1823</sub>
1126
1126
 
1127
1127
  <a id="record-PointerDown"></a>
1128
1128
 
@@ -1154,7 +1154,7 @@ event PointerDown {
1154
1154
  }
1155
1155
  ```
1156
1156
 
1157
- <sub>`api.ogt` line 1826</sub>
1157
+ <sub>`api.ogt` line 1832</sub>
1158
1158
 
1159
1159
  <a id="record-PointerUp"></a>
1160
1160
 
@@ -1186,7 +1186,7 @@ event PointerUp {
1186
1186
  }
1187
1187
  ```
1188
1188
 
1189
- <sub>`api.ogt` line 1838</sub>
1189
+ <sub>`api.ogt` line 1844</sub>
1190
1190
 
1191
1191
  <a id="record-PointerMove"></a>
1192
1192
 
@@ -1211,7 +1211,7 @@ event PointerMove {
1211
1211
  }
1212
1212
  ```
1213
1213
 
1214
- <sub>`api.ogt` line 1850</sub>
1214
+ <sub>`api.ogt` line 1856</sub>
1215
1215
 
1216
1216
  <a id="record-Wheel"></a>
1217
1217
 
@@ -1234,7 +1234,7 @@ event Wheel {
1234
1234
  }
1235
1235
  ```
1236
1236
 
1237
- <sub>`api.ogt` line 1857</sub>
1237
+ <sub>`api.ogt` line 1863</sub>
1238
1238
 
1239
1239
  <a id="record-A11yAction"></a>
1240
1240
 
@@ -1257,7 +1257,7 @@ event A11yAction {
1257
1257
  }
1258
1258
  ```
1259
1259
 
1260
- <sub>`api.ogt` line 1863</sub>
1260
+ <sub>`api.ogt` line 1869</sub>
1261
1261
 
1262
1262
  ## Types
1263
1263
 
@@ -1312,7 +1312,7 @@ enum GamepadButton {
1312
1312
  }
1313
1313
  ```
1314
1314
 
1315
- <sub>`api.ogt` line 1309</sub>
1315
+ <sub>`api.ogt` line 1315</sub>
1316
1316
 
1317
1317
  <a id="type-GamepadAxis"></a>
1318
1318
 
@@ -1343,7 +1343,7 @@ enum GamepadAxis {
1343
1343
  }
1344
1344
  ```
1345
1345
 
1346
- <sub>`api.ogt` line 1330</sub>
1346
+ <sub>`api.ogt` line 1336</sub>
1347
1347
 
1348
1348
  <a id="type-KeyAction"></a>
1349
1349
 
@@ -1368,7 +1368,7 @@ enum KeyAction {
1368
1368
  }
1369
1369
  ```
1370
1370
 
1371
- <sub>`api.ogt` line 1340</sub>
1371
+ <sub>`api.ogt` line 1346</sub>
1372
1372
 
1373
1373
  <a id="type-PointerAction"></a>
1374
1374
 
@@ -1395,7 +1395,7 @@ enum PointerAction {
1395
1395
  }
1396
1396
  ```
1397
1397
 
1398
- <sub>`api.ogt` line 1347</sub>
1398
+ <sub>`api.ogt` line 1353</sub>
1399
1399
 
1400
1400
  <a id="type-PointerButton"></a>
1401
1401
 
@@ -1422,7 +1422,7 @@ enum PointerButton {
1422
1422
  }
1423
1423
  ```
1424
1424
 
1425
- <sub>`api.ogt` line 1355</sub>
1425
+ <sub>`api.ogt` line 1361</sub>
1426
1426
 
1427
1427
  <a id="type-Modifiers"></a>
1428
1428
 
@@ -1447,7 +1447,7 @@ struct Modifiers {
1447
1447
  }
1448
1448
  ```
1449
1449
 
1450
- <sub>`api.ogt` line 1363</sub>
1450
+ <sub>`api.ogt` line 1369</sub>
1451
1451
 
1452
1452
  <a id="type-KeyInput"></a>
1453
1453
 
@@ -1478,7 +1478,7 @@ struct KeyInput {
1478
1478
  }
1479
1479
  ```
1480
1480
 
1481
- <sub>`api.ogt` line 1371</sub>
1481
+ <sub>`api.ogt` line 1377</sub>
1482
1482
 
1483
1483
  <a id="type-PointerInput"></a>
1484
1484
 
@@ -1518,7 +1518,7 @@ struct PointerInput {
1518
1518
  }
1519
1519
  ```
1520
1520
 
1521
- <sub>`api.ogt` line 1385</sub>
1521
+ <sub>`api.ogt` line 1391</sub>
1522
1522
 
1523
1523
  <a id="type-GamepadInput"></a>
1524
1524
 
@@ -1556,7 +1556,7 @@ struct GamepadInput {
1556
1556
  }
1557
1557
  ```
1558
1558
 
1559
- <sub>`api.ogt` line 1406</sub>
1559
+ <sub>`api.ogt` line 1412</sub>
1560
1560
 
1561
1561
  <a id="type-WheelInput"></a>
1562
1562
 
@@ -1589,7 +1589,7 @@ struct WheelInput {
1589
1589
  }
1590
1590
  ```
1591
1591
 
1592
- <sub>`api.ogt` line 1426</sub>
1592
+ <sub>`api.ogt` line 1432</sub>
1593
1593
 
1594
1594
  <a id="type-TextEntry"></a>
1595
1595
 
@@ -1612,7 +1612,7 @@ struct TextEntry {
1612
1612
  }
1613
1613
  ```
1614
1614
 
1615
- <sub>`api.ogt` line 1442</sub>
1615
+ <sub>`api.ogt` line 1448</sub>
1616
1616
 
1617
1617
  <a id="type-A11yActionKind"></a>
1618
1618
 
@@ -1639,7 +1639,7 @@ enum A11yActionKind {
1639
1639
  }
1640
1640
  ```
1641
1641
 
1642
- <sub>`api.ogt` line 1450</sub>
1642
+ <sub>`api.ogt` line 1456</sub>
1643
1643
 
1644
1644
  <a id="type-A11yRequest"></a>
1645
1645
 
@@ -1660,7 +1660,7 @@ struct A11yRequest {
1660
1660
  }
1661
1661
  ```
1662
1662
 
1663
- <sub>`api.ogt` line 1458</sub>
1663
+ <sub>`api.ogt` line 1464</sub>
1664
1664
 
1665
1665
  <a id="type-InjectedInput"></a>
1666
1666
 
@@ -1692,7 +1692,7 @@ union InjectedInput {
1692
1692
  }
1693
1693
  ```
1694
1694
 
1695
- <sub>`api.ogt` line 1464</sub>
1695
+ <sub>`api.ogt` line 1470</sub>
1696
1696
 
1697
1697
  ## Constants
1698
1698
 
@@ -1705,10 +1705,10 @@ union InjectedInput {
1705
1705
  const MAX_POINTERS u32 5 "The most pointers og.Pointers tracks at once: ids 0 (the primary pointer) to 4."
1706
1706
  ```
1707
1707
 
1708
- <sub>`api.ogt` line 1306</sub>
1708
+ <sub>`api.ogt` line 1312</sub>
1709
1709
 
1710
1710
  ```ogt
1711
1711
  const MAX_GAMEPADS u32 4 "The most gamepads og.Gamepad reads: pads 0 to 3."
1712
1712
  ```
1713
1713
 
1714
- <sub>`api.ogt` line 1307</sub>
1714
+ <sub>`api.ogt` line 1313</sub>