webxr.nativeextensions.d.ts 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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. interface XRFrustumDetectionBoundary {
  32. type: "frustum";
  33. frustum: XRFrustum;
  34. }
  35. interface XRSphereDetectionBoundary {
  36. type: "sphere";
  37. radius: number;
  38. }
  39. interface XRBoxDetectionBoundary {
  40. type: "box";
  41. extent: DOMPointReadOnly;
  42. }
  43. type XRDetectionBoundary = XRFrustumDetectionBoundary | XRSphereDetectionBoundary | XRBoxDetectionBoundary;
  44. interface XRGeometryDetectorOptions {
  45. detectionBoundary?: XRDetectionBoundary;
  46. updateInterval?: number;
  47. }
  48. interface XRSession {
  49. trySetFeaturePointCloudEnabled(enabled: boolean): boolean;
  50. trySetPreferredPlaneDetectorOptions(preferredOptions: XRGeometryDetectorOptions): boolean;
  51. trySetMeshDetectorEnabled(enabled: boolean): boolean;
  52. trySetPreferredMeshDetectorOptions(preferredOptions: XRGeometryDetectorOptions): boolean;
  53. }
  54. interface XRFrame {
  55. featurePointCloud?: Array<number>;
  56. }
  57. type XRMeshSet = Set<XRMesh>;
  58. interface XRWorldInformation {
  59. detectedMeshes?: XRMeshSet;
  60. }