webxr.nativeextensions.d.ts 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. // This file contains native only extensions for WebXR. These APIs are not supported in the browser yet.
  2. // They are intended for use with either Babylon Native https://github.com/BabylonJS/BabylonNative or
  3. // Babylon React Native: https://github.com/BabylonJS/BabylonReactNative
  4. type XRSceneObjectType = "unknown" | "background" | "wall" | "floor" | "ceiling" | "platform";
  5. interface XRSceneObject {
  6. type: XRSceneObjectType;
  7. }
  8. interface XRFieldOfView {
  9. angleLeft: number;
  10. angleRight: number;
  11. angleUp: number;
  12. angleDown: number;
  13. }
  14. interface XRFrustum {
  15. position: DOMPointReadOnly;
  16. orientation: DOMPointReadOnly;
  17. fieldOfView: XRFieldOfView;
  18. farDistance: number;
  19. }
  20. interface XRPlane {
  21. parentSceneObject?: XRSceneObject;
  22. }
  23. interface XRMesh {
  24. meshSpace: XRSpace;
  25. positions: Float32Array;
  26. indices: Uint32Array;
  27. normals?: Float32Array;
  28. lastChangedTime: number;
  29. parentSceneObject?: XRSceneObject;
  30. }
  31. type XRDetectionBoundaryType = "frustum" | "sphere" | "box";
  32. interface XRDetectionBoundary {
  33. type: XRDetectionBoundaryType;
  34. }
  35. interface XRFrustumDetectionBoundary extends XRDetectionBoundary {
  36. type: XRDetectionBoundaryType = "frustum"
  37. frustum: XRFrustum;
  38. }
  39. interface XRSphereDetectionBoundary extends XRDetectionBoundary {
  40. type: XRDetectionBoundaryType = "sphere";
  41. radius: number;
  42. }
  43. interface XRBoxDetectionBoundary extends XRDetectionBoundary {
  44. type: XRDetectionBoundaryType = "box";
  45. extent: DOMPointReadOnly;
  46. }
  47. interface XRGeometryDetectorOptions {
  48. detectionBoundary?: XRDetectionBoundary;
  49. updateInterval?: number;
  50. }
  51. interface XRSession {
  52. trySetFeaturePointCloudEnabled(enabled: boolean): boolean;
  53. trySetPreferredPlaneDetectorOptions(preferredOptions: XRGeometryDetectorOptions): boolean;
  54. trySetMeshDetectorEnabled(enabled: boolean): boolean;
  55. trySetPreferredMeshDetectorOptions(preferredOptions: XRGeometryDetectorOptions): boolean;
  56. }
  57. interface XRFrame {
  58. featurePointCloud? : Array<number>;
  59. }
  60. type XRMeshSet = Set<XRMesh>;
  61. interface XRWorldInformation {
  62. detectedMeshes? : XRMeshSet;
  63. }