bill преди 4 месеца
родител
ревизия
a9fb87d05d
променени са 2 файла, в които са добавени 32 реда и са изтрити 24 реда
  1. 4 1
      src/sdk/association/animation.ts
  2. 28 23
      src/sdk/sdk.ts

+ 4 - 1
src/sdk/association/animation.ts

@@ -549,6 +549,8 @@ export const associationAnimation = (sdk: SDK, el: HTMLDivElement) => {
       for (const am of added) {
         const am3d = amMap[getAMKey(am)];
         if (!am3d || !am3d.am) continue;
+
+        am3d.am.setDefaultPose(am.mat || am3d.am.getModelPose())
         // const frame = am3d.am!.addFrame({
         //   id: uuid(),
         //   mat: am.mat || am3d.am.getModelPose(),
@@ -565,12 +567,13 @@ export const associationAnimation = (sdk: SDK, el: HTMLDivElement) => {
           watchEffect(() => {
             // am.mat && frame.setMat(am.mat);
             if (am.mat && am3d.am) {
+              am3d.am.setDefaultPose(am.mat)
               // console.log(am.mat)
               // am3d.am.changePosition(mat.position!)
               // am3d.am.changeRotation(mat.rotation!)
               // am3d.am.changeScale(mat.scale!)
             }
-            console.log("set-global-frame", am.mat);
+            console.log("set-default-pose", am.mat);
           }),
           () => {
             // frame.destroy();

+ 28 - 23
src/sdk/sdk.ts

@@ -46,7 +46,7 @@ export type SceneModel = ToChangeAPI<SceneModelAttrs> & {
     }
   >;
   destroy: () => void;
-  moveModelTo: (mouse: {x: number, y: number}, pos?: Pos) => void
+  moveModelTo: (mouse: { x: number; y: number }, pos?: Pos) => void;
   enterScaleMode: () => void;
   enterRotateMode: () => void;
   enterMoveMode: () => void;
@@ -161,13 +161,13 @@ export interface SDK {
   layout: HTMLDivElement;
   sceneBus: Emitter<{
     cameraChange: SceneLocalPos;
-    watchMonitor: void
+    watchMonitor: void;
     panoModelChange: SceneModel;
     modeChange: { mode: "pano" | "fuse"; active: SceneModel };
   }>;
 
-  changeMapTile: (args: {tempUrl: string, maximumLevel: number}[]) => void,
-  exitWatchMonitor: () => void
+  changeMapTile: (args: { tempUrl: string; maximumLevel: number }[]) => void;
+  exitWatchMonitor: () => void;
   setBackdrop: (
     drop: string,
     type: SettingResourceType,
@@ -202,7 +202,7 @@ export interface SDK {
     modelId?: FuseModel["id"]
   ) => ScreenPos | null;
   screenshot: (width: number, height: number) => Promise<string>;
-  getPose: (tag?: {modelId?: string, isFlyToTag: boolean}) => Pose;
+  getPose: (tag?: { modelId?: string; isFlyToTag: boolean }) => Pose;
   comeTo: (pos: CameraComeToProps) => void;
   comeToByLatLng: (pos: number[]) => void;
 
@@ -249,7 +249,7 @@ export type PathProps = {
 };
 export type Path = {
   bus: Emitter<{
-    changeLineHeight: number
+    changeLineHeight: number;
     activePoint: number;
     // 标注点击事件
     click: void;
@@ -336,7 +336,7 @@ export type Tagging3D = {
       modelId: string;
       normal: SceneLocalPos;
     };
-    changeLineHeight: number
+    changeLineHeight: number;
   }>;
   changePosition: (position: {
     modelId: string;
@@ -376,7 +376,7 @@ export type AnimationGroup = {
   pause: () => void;
   // 添加动画模型
   addAnimationModel: (data: AnimationModel) => AnimationModel3D;
-  delayEndTime: () => number
+  delayEndTime: () => number;
 
   // 设置当前时间, 单位为秒
   setCurrentTime: (s: number) => void;
@@ -387,14 +387,14 @@ export type AnimationGroup = {
 };
 
 export type AnimationModel3D = {
-  getSupportActions: () => {name: string, duration: number}[]
-  changePosition: (pos: Pos) => void
-  changeScale: (num: number) => void
-  changeRotation: (pos: SceneLocalPos) => void
+  getSupportActions: () => { name: string; duration: number }[];
+  changePosition: (pos: Pos) => void;
+  changeScale: (num: number) => void;
+  changeRotation: (pos: SceneLocalPos) => void;
 
   // 销毁动画模型
   destroy: () => void;
-  changeShow: (focus: boolean) => void
+  changeShow: (focus: boolean) => void;
   // 更改动画模型可见性
   changeSelect: (show: boolean) => void;
   // 更改动画可见范围  不传为全局可见
@@ -405,15 +405,20 @@ export type AnimationModel3D = {
   changeFontSize: (size: number) => void;
   // 更改名称可见性
   visibilityTitle: (show: boolean) => void;
-
+  setDefaultPose: (data: {
+    position?: SceneLocalPos;
+    scale?: number;
+    rotation?: SceneLocalPos;
+    originPosition?: SceneLocalPos;
+  }) => void;
   getModelPose: () => {
     position?: SceneLocalPos;
     scale?: number;
     rotation?: SceneLocalPos;
     originPosition?: SceneLocalPos;
   };
-  
-  moveModelTo: (mouse: {x: number, y: number}, pos?: Pos) => void
+
+  moveModelTo: (mouse: { x: number; y: number }, pos?: Pos) => void;
   // 添加模型帧
   addFrame: (frame: AnimationModelFrame) => AnimationModelFrame3D;
   // 添加模型动作
@@ -437,17 +442,17 @@ export type AnimationModel3D = {
   };
 
   // 进入旋转
-  enterRotateMode: () => void
-  enterMoveMode: () => void
-  enterScaleMode: () => void
+  enterRotateMode: () => void;
+  enterMoveMode: () => void;
+  enterScaleMode: () => void;
   leaveTransform: () => void;
 
   // 动画帧姿态修改数据
   bus: Emitter<{
-    loadDone: void
+    loadDone: void;
     changeSelect: boolean;
     transformChanged: {
-      byControl: boolean
+      byControl: boolean;
       position?: SceneLocalPos;
       scale?: number;
       rotation?: SceneLocalPos;
@@ -461,7 +466,7 @@ export type AnimationModelFrame3D = {
   destroy: () => void;
   // 修改帧播放时间 单位为秒
   changeTime: (s: number) => void;
-  setMat: (mat: any) => void
+  setMat: (mat: any) => void;
 };
 
 export type AnimationModelAction3D = {
@@ -476,7 +481,7 @@ export type AnimationModelAction3D = {
   // 修改动持续时间 单位为秒
   changeDuration: (n: number) => void;
 
-  chose: (b: boolean) => void
+  chose: (b: boolean) => void;
 };
 
 export type AnimationModelPath3D = {