@realsee/five 5.0.0-alpha.135 → 5.0.0-alpha.136

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 (126) hide show
  1. package/docs/assets/search.js +1 -1
  2. package/docs/classes/five.AnimationFrameLoop.html +4 -4
  3. package/docs/classes/five.BVH.html +1 -1
  4. package/docs/classes/five.BVHIntersect.html +1 -1
  5. package/docs/classes/five.BVHNode.html +1 -1
  6. package/docs/classes/five.BVHVector3.html +1 -1
  7. package/docs/classes/five.Camera.html +1 -1
  8. package/docs/classes/five.Five.html +56 -55
  9. package/docs/classes/five.InternalWebGLRenderer.html +1 -1
  10. package/docs/classes/five.IntersectMesh.html +1 -1
  11. package/docs/classes/five.LegacyPanoCircleMesh.html +1 -1
  12. package/docs/classes/five.Model.html +4 -4
  13. package/docs/classes/five.NetworkSubscribe.html +1 -1
  14. package/docs/classes/five.PBMContainer.html +4 -4
  15. package/docs/classes/five.PBMGroup.html +4 -4
  16. package/docs/classes/five.PBMMaterial.html +8 -6
  17. package/docs/classes/five.PBMMesh.html +1 -1
  18. package/docs/classes/five.PanoCircleMesh.html +1 -1
  19. package/docs/classes/five.Scene.html +1 -1
  20. package/docs/classes/five.Subscribe.html +2 -2
  21. package/docs/classes/five.Tile3D.html +1 -1
  22. package/docs/classes/five.Tile3DModel.html +4 -4
  23. package/docs/classes/five.TileBoundingSphere.html +1 -1
  24. package/docs/classes/five.TileCacheNode.html +1 -1
  25. package/docs/classes/five.TileCullingVolume.html +1 -1
  26. package/docs/classes/five.TileOrientedBoundingBox.html +1 -1
  27. package/docs/classes/five.TilePlane.html +1 -1
  28. package/docs/classes/five.TileRequestScheduler.html +1 -1
  29. package/docs/classes/five.Tileset3D.html +1 -1
  30. package/docs/classes/five.Tileset3DTraverser.html +1 -1
  31. package/docs/classes/five.TilesetCache.html +1 -1
  32. package/docs/classes/five.Work.html +1 -1
  33. package/docs/classes/five.XRButton.html +1 -0
  34. package/docs/classes/five.XRManager.html +85 -0
  35. package/docs/classes/gltf_loader.GLTFLoader.html +1 -1
  36. package/docs/classes/gltf_loader.GLTFObject.html +1 -1
  37. package/docs/classes/line.Line.html +1 -1
  38. package/docs/classes/line.LineGeometry.html +1 -1
  39. package/docs/classes/line.LineMaterial.html +1 -1
  40. package/docs/classes/line.LineSegmentsGeometry.html +1 -1
  41. package/docs/classes/line.THREE_Line2.html +1 -1
  42. package/docs/classes/line.THREE_LineSegments2.html +1 -1
  43. package/docs/classes/react.Store.html +1 -1
  44. package/docs/classes/server.BVH.html +1 -1
  45. package/docs/classes/server.BVHIntersect.html +1 -1
  46. package/docs/classes/server.BVHNode.html +1 -1
  47. package/docs/classes/server.BVHVector3.html +1 -1
  48. package/docs/classes/server.Model.html +1 -1
  49. package/docs/classes/server.PBMGroup.html +1 -1
  50. package/docs/classes/server.PBMMesh.html +1 -1
  51. package/docs/classes/sticker.Sticker.html +1 -1
  52. package/docs/index.html +1 -1
  53. package/docs/interfaces/five.AddableObject.html +1 -1
  54. package/docs/interfaces/five.AnimationFrame.html +1 -1
  55. package/docs/interfaces/five.CameraPose.html +1 -1
  56. package/docs/interfaces/five.DepthPanoramaControllerCustomInitArgs.html +1 -1
  57. package/docs/interfaces/five.EventCallback.html +31 -27
  58. package/docs/interfaces/five.FiveInitArgs.html +10 -8
  59. package/docs/interfaces/five.FloorplanControllerCustomInitArgs.html +1 -1
  60. package/docs/interfaces/five.ImageOptions.html +1 -1
  61. package/docs/interfaces/five.ImageURLMappings.html +1 -1
  62. package/docs/interfaces/five.ImageURLOptions.html +1 -1
  63. package/docs/interfaces/five.IntersectMeshInterface.html +1 -1
  64. package/docs/interfaces/five.Intersection.html +1 -1
  65. package/docs/interfaces/five.MapviewControllerCustomInitArgs.html +1 -1
  66. package/docs/interfaces/five.ModelControllerCustomInitArgs.html +1 -1
  67. package/docs/interfaces/five.ModelEventCallback.html +1 -1
  68. package/docs/interfaces/five.MovePanoOptions.html +1 -1
  69. package/docs/interfaces/five.PBMPanoPicture.html +1 -1
  70. package/docs/interfaces/five.PBMParameters.html +7 -5
  71. package/docs/interfaces/five.PanoCircleMeshInterface.html +1 -1
  72. package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +1 -1
  73. package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +1 -1
  74. package/docs/interfaces/five.Pose.html +1 -1
  75. package/docs/interfaces/five.Scissor.html +1 -1
  76. package/docs/interfaces/five.State.html +1 -1
  77. package/docs/interfaces/five.SubscribeMixinType.emit.html +1 -1
  78. package/docs/interfaces/five.SubscribeMixinType.hasListener.html +1 -1
  79. package/docs/interfaces/five.SubscribeMixinType.off.html +1 -1
  80. package/docs/interfaces/five.SubscribeMixinType.on.html +1 -1
  81. package/docs/interfaces/five.SubscribeMixinType.once.html +1 -1
  82. package/docs/interfaces/five.TextureOptions.html +1 -1
  83. package/docs/interfaces/five.Tile3DModelLoaderOptions.html +1 -1
  84. package/docs/interfaces/five.TileBoundingVolume.html +1 -1
  85. package/docs/interfaces/five.TileContent.html +1 -1
  86. package/docs/interfaces/five.Tileset3dOptions.html +1 -1
  87. package/docs/interfaces/five.TilesetJSON.html +1 -1
  88. package/docs/interfaces/five.TilesetJSONNode.html +1 -1
  89. package/docs/interfaces/five.TopviewControllerCustomInitArgs.html +1 -1
  90. package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +1 -1
  91. package/docs/interfaces/five.WorkCubeImage.html +1 -1
  92. package/docs/interfaces/five.WorkImage.html +1 -1
  93. package/docs/interfaces/five.WorkInitial.html +1 -1
  94. package/docs/interfaces/five.WorkModel.html +1 -1
  95. package/docs/interfaces/five.WorkModelTiles.html +1 -1
  96. package/docs/interfaces/five.WorkObserver.html +1 -1
  97. package/docs/interfaces/five.WorkTile.html +1 -1
  98. package/docs/interfaces/five.WorkVideo.html +1 -1
  99. package/docs/interfaces/gltf_loader.GLTF.html +1 -1
  100. package/docs/interfaces/react.FiveActionReactCallbacks.html +1 -1
  101. package/docs/interfaces/react.FiveInjectionTypes.html +4 -4
  102. package/docs/interfaces/react.PropTypeOfFiveFeatures.html +1 -1
  103. package/docs/interfaces/server.Intersection.html +1 -1
  104. package/docs/interfaces/server.ModelEventCallback.html +1 -1
  105. package/docs/interfaces/sticker.IntersectionLike.html +1 -1
  106. package/docs/interfaces/vue.FiveActionVueCallbacks.html +1 -1
  107. package/docs/modules/five.SubscribeMixinType.html +1 -1
  108. package/docs/modules/five.html +9 -5
  109. package/docs/modules/gltf_loader.html +1 -1
  110. package/docs/modules/line.html +1 -1
  111. package/docs/modules/react.html +1 -1
  112. package/docs/modules/server.html +1 -1
  113. package/docs/modules/sticker.html +1 -1
  114. package/docs/modules/vue.html +1 -1
  115. package/docs/modules.html +1 -1
  116. package/five/index.d.ts +140 -4
  117. package/five/index.js +12 -12
  118. package/gltf-loader/index.js +2 -2
  119. package/line/index.js +2 -2
  120. package/package.json +1 -1
  121. package/react/index.js +2 -2
  122. package/server/index.d.ts +3 -1
  123. package/server/index.js +2 -2
  124. package/sticker/index.js +2 -2
  125. package/umd/five.js +1 -1
  126. package/vue/index.js +2 -2
package/five/index.d.ts CHANGED
@@ -11,7 +11,7 @@ export declare interface AddableObject extends THREE_2.Object3D {
11
11
  }
12
12
 
13
13
  export declare interface AnimationFrame {
14
- callback: (time: number, deltaTime: number) => void;
14
+ callback: (time: number, deltaTime: number, ...args: any[]) => void;
15
15
  once: boolean;
16
16
  delay: number;
17
17
  order: number;
@@ -21,11 +21,17 @@ export declare class AnimationFrameLoop {
21
21
  private frames;
22
22
  private time;
23
23
  private stoped;
24
+ private context?;
25
+ private requestId;
24
26
  private static sharedInstance?;
25
27
  static get shared(): AnimationFrameLoop;
26
28
  static getFrameTime(): number;
27
29
  constructor();
28
30
  private loop;
31
+ setContext(context: any): void;
32
+ getContext(): any;
33
+ private requestAnimationFrame;
34
+ private cancelAnimationFrame;
29
35
  private remove;
30
36
  /**
31
37
  * 添加到动画循环
@@ -124,6 +130,7 @@ export declare type ControllerCustomInitTypes = {
124
130
  Model: ModelControllerCustomInitArgs;
125
131
  DepthPanorama: DepthPanoramaControllerCustomInitArgs;
126
132
  Mapview: MapviewControllerCustomInitArgs;
133
+ XRPanorama: XRPanoramaControllerCustomInitArgs;
127
134
  };
128
135
 
129
136
  export declare type ControllerEventTypes = {
@@ -411,6 +418,14 @@ export declare type ControllerEventTypes = {
411
418
  * @param error - 抛出错误
412
419
  */
413
420
  error(error: Error): void;
421
+ /**
422
+ * webXR模式开始,webxr session完成坐标系矫正
423
+ */
424
+ webXRSessionStart(): void;
425
+ /**
426
+ * webXR模式结束,webxr session销毁
427
+ */
428
+ webXRSessionEnd(): void;
414
429
  };
415
430
 
416
431
  /**
@@ -618,6 +633,7 @@ export declare class Five extends Subscribe<EventTypes> {
618
633
  * Topview 户型图模式
619
634
  * DepthPanorama 深度图游走模式
620
635
  * VRPanorama VR眼镜模式
636
+ * XRPanorama VR硬件模式
621
637
  * ```
622
638
  */
623
639
  static Mode: Mirror<Mode>;
@@ -913,7 +929,7 @@ export declare class Five extends Subscribe<EventTypes> {
913
929
  * @param callback - 渲染完成回调
914
930
  */
915
931
  render(callback?: () => void, updateObjectResolution?: boolean): THREE_2.WebGLRenderTarget;
916
- updateTime(time: number, deltaTime: number): void;
932
+ updateTime(time: number, deltaTime: number, ...args: any[]): void;
917
933
  /**
918
934
  * 但停自动播放
919
935
  */
@@ -1132,6 +1148,8 @@ export declare interface FiveInitArgs {
1132
1148
  depthPanorama?: ControllerCustomInitTypes["DepthPanorama"];
1133
1149
  /** VR眼镜模式下的特定参数 */
1134
1150
  vrPanorama?: ControllerCustomInitTypes["VRPanorama"];
1151
+ /** XR眼镜模式下的特定参数 */
1152
+ xrPanorama?: ControllerCustomInitTypes["XRPanorama"];
1135
1153
  /**
1136
1154
  * 模式间切换时的过度动画时间
1137
1155
  * @description
@@ -1439,7 +1457,9 @@ export declare type Mode =
1439
1457
  /** 模型游走模式 */
1440
1458
  "Model" |
1441
1459
  /** 深度图游走模式 */
1442
- "DepthPanorama";
1460
+ "DepthPanorama" |
1461
+ /** XR眼镜模式*/
1462
+ "XRPanorama";
1443
1463
 
1444
1464
  /**
1445
1465
  * Five 模型
@@ -1834,6 +1854,8 @@ export declare class PBMMaterial extends THREE_2.ShaderMaterial implements PBMPa
1834
1854
  progress: number;
1835
1855
  /** 全景图通过过度黑色混合 */
1836
1856
  useBlackTransition: boolean;
1857
+ /** XR模式防止申请纹理显存时的黑色过渡 */
1858
+ useXRBlackTransition: boolean;
1837
1859
  perspToOrtho: number;
1838
1860
  /** 模型透明度 */
1839
1861
  opacity: number;
@@ -1872,6 +1894,8 @@ export declare interface PBMParameters {
1872
1894
  progress: number;
1873
1895
  /** 全景图通过过度黑色混合 */
1874
1896
  useBlackTransition: boolean;
1897
+ /** XR模式防止申请纹理显存时的黑色过渡 */
1898
+ useXRBlackTransition: boolean;
1875
1899
  perspToOrtho: number;
1876
1900
  /** 模型透明度 */
1877
1901
  opacity: number;
@@ -1896,7 +1920,7 @@ export declare interface Pose {
1896
1920
  distance: number;
1897
1921
  }
1898
1922
 
1899
- export declare const PROXY_CONTROLLER_EVENT_NAMES: readonly ["cameraDirectionUpdate", "cameraUpdate", "cameraPositionUpdate", "panoSelected", "moveToPano", "moveToPanoCanceled", "panoWillArrive", "movingToPano", "panoArrived", "panoWillLoad", "panoLoaded", "panoLoadError", "initAnimationEnded", "initAnimationWillStart", "wantsGesture", "gesture", "wantsTapGesture", "tapGesture", "wantsPressGesture", "pressGesture", "wantsPanGesture", "wantsInteriaPan", "panGesture", "interiaPan", "wantsPinchGesture", "pinchGesture", "wantsMouseWheel", "mouseWheel", "wantsShowIntersectionOnModel", "intersectionOnModelUpdate", "intersectionHidden", "textureStartLoad", "textureLoading", "textureAbort", "textureLoaded", "textureError"];
1923
+ export declare const PROXY_CONTROLLER_EVENT_NAMES: readonly ["cameraDirectionUpdate", "cameraUpdate", "cameraPositionUpdate", "panoSelected", "moveToPano", "moveToPanoCanceled", "panoWillArrive", "movingToPano", "panoArrived", "panoWillLoad", "panoLoaded", "panoLoadError", "initAnimationEnded", "initAnimationWillStart", "wantsGesture", "gesture", "wantsTapGesture", "tapGesture", "wantsPressGesture", "pressGesture", "wantsPanGesture", "wantsInteriaPan", "panGesture", "interiaPan", "wantsPinchGesture", "pinchGesture", "wantsMouseWheel", "mouseWheel", "wantsShowIntersectionOnModel", "intersectionOnModelUpdate", "intersectionHidden", "textureStartLoad", "textureLoading", "textureAbort", "textureLoaded", "textureError", "webXRSessionStart", "webXRSessionEnd"];
1900
1924
 
1901
1925
  /** Five 场景*/
1902
1926
  export declare class Scene extends THREE_2.Scene {
@@ -2506,6 +2530,13 @@ export declare interface TopviewControllerCustomInitArgs extends Omit<FloorplanC
2506
2530
  export declare interface VRPanoramaControllerCustomInitArgs extends Omit<PanoramaControllerCustomInitArgs, "maxLatitude" | "minLatitude"> {
2507
2531
  }
2508
2532
 
2533
+ declare type WebXREventTypes = {
2534
+ /** WebXR模式开始,session完成坐标系设置*/
2535
+ webXRSessionStart(): void;
2536
+ /** WebXR模式结束,销毁session*/
2537
+ webXRSessionEnd(): void;
2538
+ };
2539
+
2509
2540
  export declare class Work {
2510
2541
  /** 名称 */
2511
2542
  name: string;
@@ -2637,4 +2668,109 @@ export declare interface WorkVideo {
2637
2668
  size: THREE_2.Vector2;
2638
2669
  }
2639
2670
 
2671
+ export declare class XRButton {
2672
+ static createButton(onClickHook: () => void): HTMLAnchorElement | HTMLButtonElement;
2673
+ }
2674
+
2675
+ declare class XRController {
2676
+ _targetRay: any;
2677
+ _grip: any;
2678
+ _hand: any;
2679
+ _axes: number[];
2680
+ constructor();
2681
+ getHandSpace(): any;
2682
+ getTargetRaySpace(): any;
2683
+ getGripSpace(): any;
2684
+ dispatchEvent(event: any): this;
2685
+ disconnect(inputSource: XRInputSource): this;
2686
+ getAxes(): number[];
2687
+ update(inputSource: any, frame: any, referenceSpace: any): this;
2688
+ }
2689
+
2690
+ declare type XRControllerRay = {
2691
+ angularVelocity: THREE_2.Vector3;
2692
+ linearVelocity: THREE_2.Vector3;
2693
+ up: THREE_2.Vector3;
2694
+ matrix: THREE_2.Matrix4;
2695
+ position: THREE_2.Vector3;
2696
+ rotation: THREE_2.Euler;
2697
+ };
2698
+
2699
+ declare interface XRInitOption {
2700
+ /** 使用WEBXR的当前设备*/
2701
+ machineType: XRMachineType;
2702
+ /** 全景模式还是视差模式*/
2703
+ isPanorama: boolean;
2704
+ /** 使用的参考空间类型*/
2705
+ referenceSpaceType: XRReferenceSpaceType;
2706
+ }
2707
+
2708
+ declare type XRMachineType = 'Pico' | 'Oculus';
2709
+
2710
+ export declare class XRManager extends Subscribe<WebXREventTypes> {
2711
+ /** 是否使用全景模式*/
2712
+ isPanorama: boolean;
2713
+ /** 当前的设备*/
2714
+ machineType: XRMachineType;
2715
+ /** 场景渲染器*/
2716
+ renderer: THREE_2.WebGLRenderer;
2717
+ /** opengles句柄*/
2718
+ gl: WebGLRenderingContext;
2719
+ /** 是否开启XR模式 */
2720
+ enabled: boolean;
2721
+ /** WebXR模式Context */
2722
+ session: XRSession | null;
2723
+ /** XR参考空间类型*/
2724
+ referenceSpaceType: XRReferenceSpaceType;
2725
+ /** XR参考空间 */
2726
+ referenceSpace: XRReferenceSpace | null;
2727
+ /** XR控制器 */
2728
+ controllers: XRController[];
2729
+ /** XR控制器控制数据 */
2730
+ inputSourcesMap: Map<XRInputSource, XRController>;
2731
+ /** XR双相机 */
2732
+ cameraVR: THREE_2.ArrayCamera;
2733
+ /** XR左眼相机*/
2734
+ cameraL: THREE_2.PerspectiveCamera;
2735
+ /** XR右眼相机*/
2736
+ cameraR: THREE_2.PerspectiveCamera;
2737
+ /** 是否在获取*/
2738
+ isPresenting: boolean;
2739
+ /** 视锥近面*/
2740
+ private currentDepthNear;
2741
+ /** 视锥远面*/
2742
+ private currentDepthFar;
2743
+ /** 左眼相机位姿*/
2744
+ private cameraLPos;
2745
+ /** 右眼相机位姿*/
2746
+ private cameraRPos;
2747
+ constructor(renderer: THREE_2.WebGLRenderer, gl: WebGLRenderingContext, options?: Partial<XRInitOption>);
2748
+ getController(index: number): XRControllerRay;
2749
+ getCameras(): any;
2750
+ private updateCamera;
2751
+ /**
2752
+ * @author jsantell / https://www.jsantell.com/
2753
+ *
2754
+ * Assumes 2 cameras that are parallel and share an X-axis, and that
2755
+ * the cameras' projection and world matrices have already been set.
2756
+ * And that near and far planes are identical for both cameras.
2757
+ * Visualization of this technique: https://computergraphics.stackexchange.com/a/4765
2758
+ */
2759
+ private setProjectionFromUnion;
2760
+ /**
2761
+ * 获取THREEJS用于渲染XR场景的双眼相机
2762
+ * @param camera - 传统模式下渲染场景的THREEJS相机
2763
+ * @returns - 用于渲染XR场景的双眼相机
2764
+ */
2765
+ getCamera(camera: THREE_2.PerspectiveCamera): any;
2766
+ private updateInputSources;
2767
+ private onSessionEvent;
2768
+ private onSessionEnd;
2769
+ private onRequestReferenceSpace;
2770
+ setSession(value: XRSession | null): void;
2771
+ }
2772
+
2773
+ declare interface XRPanoramaControllerCustomInitArgs extends Omit<PanoramaControllerCustomInitArgs, "maxLatitude" | "minLatitude"> {
2774
+ }
2775
+
2640
2776
  export { }