# Function useFiveWorks

- useFiveWorks(): [
  works: Readonly<
  Ref<
  | {
  initial: {
  distance?: number;
  fov?: number;
  latitude?: number;
  longitude?: number;
  mode?: Mode;
  offset?: {};
  panoIndex?: number;
  work: {
  allowHosts: readonly string[];
  baseURL: string;
  expire: Date;
  initial: { readonly work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; ... 12 more ...; readonly toJSON: () => any; }; ... 6 more ...; readonly distance?: number | undefined; };
  issuer: string;
  jsonp: boolean;
  model?: {
  coordinate?: {
  base_keyframe: ...;
  base_trajectory: ...;
  coordinate_system: ...;
  ground_height: ...;
  lon_lat_alt: ...;
  pose_ecef_to_enu: ...;
  pose_enu_to_ecef: ...;
  version: ...;
  };
  file?: string;
  layers: readonly {
  name: ...;
  tileset: ...;
  type: ...;
  upAxis: ...;
  work: ...;
  }[];
  textureBase?: string;
  textures?: readonly (...)[];
  upAxis?: string;
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  };
  name: string;
  observerBox: {};
  observers: readonly {
  accessibleNodes: readonly number[];
  active: boolean;
  derivedId: string
  | number;
  derivedIdStr: string;
  floorIndex: number;
  images: {
  back: string;
  down: string;
  front: string;
  histogram?: (...) | (...);
  left: string;
  right: string;
  sizeList: readonly (...)[];
  tiles: readonly (...)[];
  up: string;
  video?: (...) | (...);
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  };
  index: number;
  loadable: boolean;
  matrix: {};
  panoId: `${string}[${number}]`;
  panoIndex: number;
  position: {};
  quaternion: {};
  standingPosition: {};
  visibleNodes: readonly number[];
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  cubemapUvToVector(
  this: WorkObserver,
  cubeFace: CubeFace,
  uv: Vector2,
  uvOrigin?: "top-left" | "bottom-left",
  ): Vector3;
  equirectangularUvToVector(
  this: WorkObserver,
  uv: Vector2,
  uvOrigin?: "top-left" | "bottom-left",
  ): Vector3;
  getWorldPosition(this: WorkObserver): Vector3;
  getWorldStandingPosition(this: WorkObserver): Vector3;
  vectorToCubemapUv(
  this: WorkObserver,
  vector: Vector3,
  uvOrigin?: "top-left" | "bottom-left",
  ): [cubeFace: CubeFace, cubemapUv: Vector2];
  vectorToEquirectangularUv(
  this: WorkObserver,
  vector: Vector3,
  uvOrigin?: "top-left" | "bottom-left",
  ): Vector2;
  }[];
  options: { transform: {} };
  projectId?: string;
  raw: { works: readonly string[] };
  shortPath: boolean;
  transform: {};
  workCode: string;
  getURL(source: string): string;
  toJSON(): any;
  verifyURL(source: string): boolean;
  };
  };
  getObserver(
  pano: number | Pano | `${string}[${number}]`,
  ): WorkObserver | undefined;
  getResolvedObserver(
  pano: number | Pano | `${string}[${number}]`,
  ): WorkResolvedObserver | undefined;
  getWork(workCode: string): Work | undefined;
  readonly [key: number]: {
  allowHosts: readonly string[];
  baseURL: string;
  expire: Date;
  initial: {
  distance?: number;
  fov?: number;
  latitude?: number;
  longitude?: number;
  mode?: Mode;
  offset?: {};
  panoIndex?: number;
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  };
  issuer: string;
  jsonp: boolean;
  model?: {
  coordinate?: {
  base_keyframe: number;
  base_trajectory: number;
  coordinate_system: string;
  ground_height: number;
  lon_lat_alt: readonly [(...), (...), (...)];
  pose_ecef_to_enu: readonly (...)[];
  pose_enu_to_ecef: readonly (...)[];
  version: number;
  };
  file?: string;
  layers: readonly {
  name: string;
  tileset: string;
  type: (...)
  | (...)
  | (...);
  upAxis: string;
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  }[];
  textureBase?: string;
  textures?: readonly string[];
  upAxis?: string;
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  };
  name: string;
  observerBox: {};
  observers: readonly {
  accessibleNodes: readonly number[];
  active: boolean;
  derivedId: string
  | number;
  derivedIdStr: string;
  floorIndex: number;
  images: {
  back: string;
  down: string;
  front: string;
  histogram?: {
  max: ...;
  mean: ...;
  min: ...;
  peak: ...;
  formPixels(...rgbaArray: ...): ...;
  toArray(): ...;
  toJSON(): ...;
  toString(): ...;
  };
  left: string;
  right: string;
  sizeList: readonly number[];
  tiles: readonly {
  back: ...;
  down: ...;
  front: ...;
  histogram?: ...;
  left: ...;
  level: ...;
  right: ...;
  scale: ...;
  size: ...;
  up: ...;
  work: ...;
  }[];
  up: string;
  video?: { matrix: ...; size: ...; source: ...; work: ... };
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  };
  index: number;
  loadable: boolean;
  matrix: {};
  panoId: `${string}[${number}]`;
  panoIndex: number;
  position: {};
  quaternion: {};
  standingPosition: {};
  visibleNodes: readonly number[];
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  cubemapUvToVector(
  this: WorkObserver,
  cubeFace: CubeFace,
  uv: Vector2,
  uvOrigin?: "top-left" | "bottom-left",
  ): Vector3;
  equirectangularUvToVector(
  this: WorkObserver,
  uv: Vector2,
  uvOrigin?: "top-left" | "bottom-left",
  ): Vector3;
  getWorldPosition(this: WorkObserver): Vector3;
  getWorldStandingPosition(this: WorkObserver): Vector3;
  vectorToCubemapUv(
  this: WorkObserver,
  vector: Vector3,
  uvOrigin?: "top-left" | "bottom-left",
  ): [cubeFace: CubeFace, cubemapUv: Vector2];
  vectorToEquirectangularUv(
  this: WorkObserver,
  vector: Vector3,
  uvOrigin?: "top-left" | "bottom-left",
  ): Vector2;
  }[];
  options: { transform: {} };
  projectId?: string;
  raw: { works: readonly string[] };
  shortPath: boolean;
  transform: {};
  workCode: string;
  getURL(source: string): string;
  toJSON(): any;
  verifyURL(source: string): boolean;
  };
  }
  | undefined,
  | {
  initial: {
  distance?: number;
  fov?: number;
  latitude?: number;
  longitude?: number;
  mode?: Mode;
  offset?: {};
  panoIndex?: number;
  work: {
  allowHosts: readonly string[];
  baseURL: string;
  expire: Date;
  initial: { readonly work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; ... 12 more ...; readonly toJSON: () => any; }; ... 6 more ...; readonly distance?: number | undefined; };
  issuer: string;
  jsonp: boolean;
  model?: {
  coordinate?: {
  base_keyframe: ...;
  base_trajectory: ...;
  coordinate_system: ...;
  ground_height: ...;
  lon_lat_alt: ...;
  pose_ecef_to_enu: ...;
  pose_enu_to_ecef: ...;
  version: ...;
  };
  file?: string;
  layers: readonly {
  name: ...;
  tileset: ...;
  type: ...;
  upAxis: ...;
  work: ...;
  }[];
  textureBase?: string;
  textures?: readonly (...)[];
  upAxis?: string;
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  };
  name: string;
  observerBox: {};
  observers: readonly {
  accessibleNodes: readonly number[];
  active: boolean;
  derivedId: string
  | number;
  derivedIdStr: string;
  floorIndex: number;
  images: {
  back: string;
  down: string;
  front: string;
  histogram?: (...) | (...);
  left: string;
  right: string;
  sizeList: readonly (...)[];
  tiles: readonly (...)[];
  up: string;
  video?: (...) | (...);
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  };
  index: number;
  loadable: boolean;
  matrix: {};
  panoId: `${string}[${number}]`;
  panoIndex: number;
  position: {};
  quaternion: {};
  standingPosition: {};
  visibleNodes: readonly number[];
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  cubemapUvToVector(
  this: WorkObserver,
  cubeFace: CubeFace,
  uv: Vector2,
  uvOrigin?: "top-left" | "bottom-left",
  ): Vector3;
  equirectangularUvToVector(
  this: WorkObserver,
  uv: Vector2,
  uvOrigin?: "top-left" | "bottom-left",
  ): Vector3;
  getWorldPosition(this: WorkObserver): Vector3;
  getWorldStandingPosition(this: WorkObserver): Vector3;
  vectorToCubemapUv(
  this: WorkObserver,
  vector: Vector3,
  uvOrigin?: "top-left" | "bottom-left",
  ): [cubeFace: CubeFace, cubemapUv: Vector2];
  vectorToEquirectangularUv(
  this: WorkObserver,
  vector: Vector3,
  uvOrigin?: "top-left" | "bottom-left",
  ): Vector2;
  }[];
  options: { transform: {} };
  projectId?: string;
  raw: { works: readonly string[] };
  shortPath: boolean;
  transform: {};
  workCode: string;
  getURL(source: string): string;
  toJSON(): any;
  verifyURL(source: string): boolean;
  };
  };
  getObserver(
  pano: number | Pano | `${string}[${number}]`,
  ): WorkObserver | undefined;
  getResolvedObserver(
  pano: number | Pano | `${string}[${number}]`,
  ): WorkResolvedObserver | undefined;
  getWork(workCode: string): Work | undefined;
  readonly [key: number]: {
  allowHosts: readonly string[];
  baseURL: string;
  expire: Date;
  initial: {
  distance?: number;
  fov?: number;
  latitude?: number;
  longitude?: number;
  mode?: Mode;
  offset?: {};
  panoIndex?: number;
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  };
  issuer: string;
  jsonp: boolean;
  model?: {
  coordinate?: {
  base_keyframe: number;
  base_trajectory: number;
  coordinate_system: string;
  ground_height: number;
  lon_lat_alt: readonly [(...), (...), (...)];
  pose_ecef_to_enu: readonly (...)[];
  pose_enu_to_ecef: readonly (...)[];
  version: number;
  };
  file?: string;
  layers: readonly {
  name: string;
  tileset: string;
  type: (...)
  | (...)
  | (...);
  upAxis: string;
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  }[];
  textureBase?: string;
  textures?: readonly string[];
  upAxis?: string;
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  };
  name: string;
  observerBox: {};
  observers: readonly {
  accessibleNodes: readonly number[];
  active: boolean;
  derivedId: string
  | number;
  derivedIdStr: string;
  floorIndex: number;
  images: {
  back: string;
  down: string;
  front: string;
  histogram?: {
  max: ...;
  mean: ...;
  min: ...;
  peak: ...;
  formPixels(...rgbaArray: ...): ...;
  toArray(): ...;
  toJSON(): ...;
  toString(): ...;
  };
  left: string;
  right: string;
  sizeList: readonly number[];
  tiles: readonly {
  back: ...;
  down: ...;
  front: ...;
  histogram?: ...;
  left: ...;
  level: ...;
  right: ...;
  scale: ...;
  size: ...;
  up: ...;
  work: ...;
  }[];
  up: string;
  video?: { matrix: ...; size: ...; source: ...; work: ... };
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  };
  index: number;
  loadable: boolean;
  matrix: {};
  panoId: `${string}[${number}]`;
  panoIndex: number;
  position: {};
  quaternion: {};
  standingPosition: {};
  visibleNodes: readonly number[];
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  cubemapUvToVector(
  this: WorkObserver,
  cubeFace: CubeFace,
  uv: Vector2,
  uvOrigin?: "top-left" | "bottom-left",
  ): Vector3;
  equirectangularUvToVector(
  this: WorkObserver,
  uv: Vector2,
  uvOrigin?: "top-left" | "bottom-left",
  ): Vector3;
  getWorldPosition(this: WorkObserver): Vector3;
  getWorldStandingPosition(this: WorkObserver): Vector3;
  vectorToCubemapUv(
  this: WorkObserver,
  vector: Vector3,
  uvOrigin?: "top-left" | "bottom-left",
  ): [cubeFace: CubeFace, cubemapUv: Vector2];
  vectorToEquirectangularUv(
  this: WorkObserver,
  vector: Vector3,
  uvOrigin?: "top-left" | "bottom-left",
  ): Vector2;
  }[];
  options: { transform: {} };
  projectId?: string;
  raw: { works: readonly string[] };
  shortPath: boolean;
  transform: {};
  workCode: string;
  getURL(source: string): string;
  toJSON(): any;
  verifyURL(source: string): boolean;
  };
  }
  | undefined,
  >,
  >,
  loadWorks: (
  work: Work | Work[],
  state?: "initial" | "inherit" | Partial<Omit<State, "offset">>,
  duration?: number,
  userAction?: boolean,
  ) => Promise<void>,
  ]
  `Function`

  Five Vue Hooks: 获取/设置当前的 Work

  #### Returns [
  works: Readonly<
  Ref<
  | {
  initial: {
  distance?: number;
  fov?: number;
  latitude?: number;
  longitude?: number;
  mode?: Mode;
  offset?: {};
  panoIndex?: number;
  work: {
  allowHosts: readonly string[];
  baseURL: string;
  expire: Date;
  initial: { readonly work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; ... 12 more ...; readonly toJSON: () => any; }; ... 6 more ...; readonly distance?: number | undefined; };
  issuer: string;
  jsonp: boolean;
  model?: {
  coordinate?: {
  base_keyframe: ...;
  base_trajectory: ...;
  coordinate_system: ...;
  ground_height: ...;
  lon_lat_alt: ...;
  pose_ecef_to_enu: ...;
  pose_enu_to_ecef: ...;
  version: ...;
  };
  file?: string;
  layers: readonly {
  name: ...;
  tileset: ...;
  type: ...;
  upAxis: ...;
  work: ...;
  }[];
  textureBase?: string;
  textures?: readonly (...)[];
  upAxis?: string;
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  };
  name: string;
  observerBox: {};
  observers: readonly {
  accessibleNodes: readonly number[];
  active: boolean;
  derivedId: string
  | number;
  derivedIdStr: string;
  floorIndex: number;
  images: {
  back: string;
  down: string;
  front: string;
  histogram?: (...) | (...);
  left: string;
  right: string;
  sizeList: readonly (...)[];
  tiles: readonly (...)[];
  up: string;
  video?: (...) | (...);
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  };
  index: number;
  loadable: boolean;
  matrix: {};
  panoId: `${string}[${number}]`;
  panoIndex: number;
  position: {};
  quaternion: {};
  standingPosition: {};
  visibleNodes: readonly number[];
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  cubemapUvToVector(
  this: WorkObserver,
  cubeFace: CubeFace,
  uv: Vector2,
  uvOrigin?: "top-left" | "bottom-left",
  ): Vector3;
  equirectangularUvToVector(
  this: WorkObserver,
  uv: Vector2,
  uvOrigin?: "top-left" | "bottom-left",
  ): Vector3;
  getWorldPosition(this: WorkObserver): Vector3;
  getWorldStandingPosition(this: WorkObserver): Vector3;
  vectorToCubemapUv(
  this: WorkObserver,
  vector: Vector3,
  uvOrigin?: "top-left" | "bottom-left",
  ): [cubeFace: CubeFace, cubemapUv: Vector2];
  vectorToEquirectangularUv(
  this: WorkObserver,
  vector: Vector3,
  uvOrigin?: "top-left" | "bottom-left",
  ): Vector2;
  }[];
  options: { transform: {} };
  projectId?: string;
  raw: { works: readonly string[] };
  shortPath: boolean;
  transform: {};
  workCode: string;
  getURL(source: string): string;
  toJSON(): any;
  verifyURL(source: string): boolean;
  };
  };
  getObserver(
  pano: number | Pano | `${string}[${number}]`,
  ): WorkObserver | undefined;
  getResolvedObserver(
  pano: number | Pano | `${string}[${number}]`,
  ): WorkResolvedObserver | undefined;
  getWork(workCode: string): Work | undefined;
  readonly [key: number]: {
  allowHosts: readonly string[];
  baseURL: string;
  expire: Date;
  initial: {
  distance?: number;
  fov?: number;
  latitude?: number;
  longitude?: number;
  mode?: Mode;
  offset?: {};
  panoIndex?: number;
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  };
  issuer: string;
  jsonp: boolean;
  model?: {
  coordinate?: {
  base_keyframe: number;
  base_trajectory: number;
  coordinate_system: string;
  ground_height: number;
  lon_lat_alt: readonly [(...), (...), (...)];
  pose_ecef_to_enu: readonly (...)[];
  pose_enu_to_ecef: readonly (...)[];
  version: number;
  };
  file?: string;
  layers: readonly {
  name: string;
  tileset: string;
  type: (...)
  | (...)
  | (...);
  upAxis: string;
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  }[];
  textureBase?: string;
  textures?: readonly string[];
  upAxis?: string;
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  };
  name: string;
  observerBox: {};
  observers: readonly {
  accessibleNodes: readonly number[];
  active: boolean;
  derivedId: string
  | number;
  derivedIdStr: string;
  floorIndex: number;
  images: {
  back: string;
  down: string;
  front: string;
  histogram?: {
  max: ...;
  mean: ...;
  min: ...;
  peak: ...;
  formPixels(...rgbaArray: ...): ...;
  toArray(): ...;
  toJSON(): ...;
  toString(): ...;
  };
  left: string;
  right: string;
  sizeList: readonly number[];
  tiles: readonly {
  back: ...;
  down: ...;
  front: ...;
  histogram?: ...;
  left: ...;
  level: ...;
  right: ...;
  scale: ...;
  size: ...;
  up: ...;
  work: ...;
  }[];
  up: string;
  video?: { matrix: ...; size: ...; source: ...; work: ... };
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  };
  index: number;
  loadable: boolean;
  matrix: {};
  panoId: `${string}[${number}]`;
  panoIndex: number;
  position: {};
  quaternion: {};
  standingPosition: {};
  visibleNodes: readonly number[];
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  cubemapUvToVector(
  this: WorkObserver,
  cubeFace: CubeFace,
  uv: Vector2,
  uvOrigin?: "top-left" | "bottom-left",
  ): Vector3;
  equirectangularUvToVector(
  this: WorkObserver,
  uv: Vector2,
  uvOrigin?: "top-left" | "bottom-left",
  ): Vector3;
  getWorldPosition(this: WorkObserver): Vector3;
  getWorldStandingPosition(this: WorkObserver): Vector3;
  vectorToCubemapUv(
  this: WorkObserver,
  vector: Vector3,
  uvOrigin?: "top-left" | "bottom-left",
  ): [cubeFace: CubeFace, cubemapUv: Vector2];
  vectorToEquirectangularUv(
  this: WorkObserver,
  vector: Vector3,
  uvOrigin?: "top-left" | "bottom-left",
  ): Vector2;
  }[];
  options: { transform: {} };
  projectId?: string;
  raw: { works: readonly string[] };
  shortPath: boolean;
  transform: {};
  workCode: string;
  getURL(source: string): string;
  toJSON(): any;
  verifyURL(source: string): boolean;
  };
  }
  | undefined,
  | {
  initial: {
  distance?: number;
  fov?: number;
  latitude?: number;
  longitude?: number;
  mode?: Mode;
  offset?: {};
  panoIndex?: number;
  work: {
  allowHosts: readonly string[];
  baseURL: string;
  expire: Date;
  initial: { readonly work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; ... 12 more ...; readonly toJSON: () => any; }; ... 6 more ...; readonly distance?: number | undefined; };
  issuer: string;
  jsonp: boolean;
  model?: {
  coordinate?: {
  base_keyframe: ...;
  base_trajectory: ...;
  coordinate_system: ...;
  ground_height: ...;
  lon_lat_alt: ...;
  pose_ecef_to_enu: ...;
  pose_enu_to_ecef: ...;
  version: ...;
  };
  file?: string;
  layers: readonly {
  name: ...;
  tileset: ...;
  type: ...;
  upAxis: ...;
  work: ...;
  }[];
  textureBase?: string;
  textures?: readonly (...)[];
  upAxis?: string;
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  };
  name: string;
  observerBox: {};
  observers: readonly {
  accessibleNodes: readonly number[];
  active: boolean;
  derivedId: string
  | number;
  derivedIdStr: string;
  floorIndex: number;
  images: {
  back: string;
  down: string;
  front: string;
  histogram?: (...) | (...);
  left: string;
  right: string;
  sizeList: readonly (...)[];
  tiles: readonly (...)[];
  up: string;
  video?: (...) | (...);
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  };
  index: number;
  loadable: boolean;
  matrix: {};
  panoId: `${string}[${number}]`;
  panoIndex: number;
  position: {};
  quaternion: {};
  standingPosition: {};
  visibleNodes: readonly number[];
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  cubemapUvToVector(
  this: WorkObserver,
  cubeFace: CubeFace,
  uv: Vector2,
  uvOrigin?: "top-left" | "bottom-left",
  ): Vector3;
  equirectangularUvToVector(
  this: WorkObserver,
  uv: Vector2,
  uvOrigin?: "top-left" | "bottom-left",
  ): Vector3;
  getWorldPosition(this: WorkObserver): Vector3;
  getWorldStandingPosition(this: WorkObserver): Vector3;
  vectorToCubemapUv(
  this: WorkObserver,
  vector: Vector3,
  uvOrigin?: "top-left" | "bottom-left",
  ): [cubeFace: CubeFace, cubemapUv: Vector2];
  vectorToEquirectangularUv(
  this: WorkObserver,
  vector: Vector3,
  uvOrigin?: "top-left" | "bottom-left",
  ): Vector2;
  }[];
  options: { transform: {} };
  projectId?: string;
  raw: { works: readonly string[] };
  shortPath: boolean;
  transform: {};
  workCode: string;
  getURL(source: string): string;
  toJSON(): any;
  verifyURL(source: string): boolean;
  };
  };
  getObserver(
  pano: number | Pano | `${string}[${number}]`,
  ): WorkObserver | undefined;
  getResolvedObserver(
  pano: number | Pano | `${string}[${number}]`,
  ): WorkResolvedObserver | undefined;
  getWork(workCode: string): Work | undefined;
  readonly [key: number]: {
  allowHosts: readonly string[];
  baseURL: string;
  expire: Date;
  initial: {
  distance?: number;
  fov?: number;
  latitude?: number;
  longitude?: number;
  mode?: Mode;
  offset?: {};
  panoIndex?: number;
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  };
  issuer: string;
  jsonp: boolean;
  model?: {
  coordinate?: {
  base_keyframe: number;
  base_trajectory: number;
  coordinate_system: string;
  ground_height: number;
  lon_lat_alt: readonly [(...), (...), (...)];
  pose_ecef_to_enu: readonly (...)[];
  pose_enu_to_ecef: readonly (...)[];
  version: number;
  };
  file?: string;
  layers: readonly {
  name: string;
  tileset: string;
  type: (...)
  | (...)
  | (...);
  upAxis: string;
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  }[];
  textureBase?: string;
  textures?: readonly string[];
  upAxis?: string;
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  };
  name: string;
  observerBox: {};
  observers: readonly {
  accessibleNodes: readonly number[];
  active: boolean;
  derivedId: string
  | number;
  derivedIdStr: string;
  floorIndex: number;
  images: {
  back: string;
  down: string;
  front: string;
  histogram?: {
  max: ...;
  mean: ...;
  min: ...;
  peak: ...;
  formPixels(...rgbaArray: ...): ...;
  toArray(): ...;
  toJSON(): ...;
  toString(): ...;
  };
  left: string;
  right: string;
  sizeList: readonly number[];
  tiles: readonly {
  back: ...;
  down: ...;
  front: ...;
  histogram?: ...;
  left: ...;
  level: ...;
  right: ...;
  scale: ...;
  size: ...;
  up: ...;
  work: ...;
  }[];
  up: string;
  video?: { matrix: ...; size: ...; source: ...; work: ... };
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  };
  index: number;
  loadable: boolean;
  matrix: {};
  panoId: `${string}[${number}]`;
  panoIndex: number;
  position: {};
  quaternion: {};
  standingPosition: {};
  visibleNodes: readonly number[];
  work: { readonly issuer: string; readonly workCode: string; readonly projectId?: string | undefined; readonly allowHosts: readonly string[]; readonly expire: Date; readonly name: string; readonly baseURL: string; ... 11 more ...; readonly toJSON: () => any; };
  cubemapUvToVector(
  this: WorkObserver,
  cubeFace: CubeFace,
  uv: Vector2,
  uvOrigin?: "top-left" | "bottom-left",
  ): Vector3;
  equirectangularUvToVector(
  this: WorkObserver,
  uv: Vector2,
  uvOrigin?: "top-left" | "bottom-left",
  ): Vector3;
  getWorldPosition(this: WorkObserver): Vector3;
  getWorldStandingPosition(this: WorkObserver): Vector3;
  vectorToCubemapUv(
  this: WorkObserver,
  vector: Vector3,
  uvOrigin?: "top-left" | "bottom-left",
  ): [cubeFace: CubeFace, cubemapUv: Vector2];
  vectorToEquirectangularUv(
  this: WorkObserver,
  vector: Vector3,
  uvOrigin?: "top-left" | "bottom-left",
  ): Vector2;
  }[];
  options: { transform: {} };
  projectId?: string;
  raw: { works: readonly string[] };
  shortPath: boolean;
  transform: {};
  workCode: string;
  getURL(source: string): string;
  toJSON(): any;
  verifyURL(source: string): boolean;
  };
  }
  | undefined,
  >,
  >,
  loadWorks: (
  work: Work | Work[],
  state?: "initial" | "inherit" | Partial<Omit<State, "offset">>,
  duration?: number,
  userAction?: boolean,
  ) => Promise<void>,
  ]

  [ work: 获取当前的 Work, loadWork: 设置 Work ]

  loadWork

      加载 Work 数据
      // param work Work 数据
      // param state 初始化姿态
      //  - "inherit" 使用当前姿态
      //  - "initial" 使用 Work 数据中的 initial 姿态
      //  - State 自定义姿态
      // param duration 切换时间
      (work: Work, state?: "inherit" | "initial" | Partial<Omit<State, "offset">>, duration?: number) => void

  #### Example

      const [ works, loadWorks ] = useFiveWorks;

  - Defined in lib/vue/hooks/useFiveWork.ts:28