智慧水务管理系统 - 精河县供水工程综合管理平台

meshopt_clusterizer.d.ts 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. // This file is part of meshoptimizer library and is distributed under the terms of MIT License.
  2. // Copyright (C) 2016-2026, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com)
  3. export class Bounds {
  4. centerX: number;
  5. centerY: number;
  6. centerZ: number;
  7. radius: number;
  8. coneApexX: number;
  9. coneApexY: number;
  10. coneApexZ: number;
  11. coneAxisX: number;
  12. coneAxisY: number;
  13. coneAxisZ: number;
  14. coneCutoff: number;
  15. }
  16. export class MeshletBuffers {
  17. meshlets: Uint32Array;
  18. vertices: Uint32Array;
  19. triangles: Uint8Array;
  20. meshletCount: number;
  21. }
  22. export class Meshlet {
  23. vertices: Uint32Array;
  24. triangles: Uint8Array;
  25. }
  26. export const MeshoptClusterizer: {
  27. supported: boolean;
  28. ready: Promise<void>;
  29. buildMeshlets: (
  30. indices: Uint32Array,
  31. vertex_positions: Float32Array,
  32. vertex_positions_stride: number,
  33. max_vertices: number,
  34. max_triangles: number,
  35. cone_weight?: number
  36. ) => MeshletBuffers;
  37. buildMeshletsFlex: (
  38. indices: Uint32Array,
  39. vertex_positions: Float32Array,
  40. vertex_positions_stride: number,
  41. max_vertices: number,
  42. min_triangles: number,
  43. max_triangles: number,
  44. cone_weight?: number,
  45. split_factor?: number
  46. ) => MeshletBuffers;
  47. buildMeshletsSpatial: (
  48. indices: Uint32Array,
  49. vertex_positions: Float32Array,
  50. vertex_positions_stride: number,
  51. max_vertices: number,
  52. min_triangles: number,
  53. max_triangles: number,
  54. fill_weight?: number
  55. ) => MeshletBuffers;
  56. extractMeshlet: (buffers: MeshletBuffers, index: number) => Meshlet;
  57. computeClusterBounds: (indices: Uint32Array, vertex_positions: Float32Array, vertex_positions_stride: number) => Bounds;
  58. computeMeshletBounds: (buffers: MeshletBuffers, vertex_positions: Float32Array, vertex_positions_stride: number) => Bounds[];
  59. computeSphereBounds: (positions: Float32Array, positions_stride: number, radii?: Float32Array, radii_stride?: number) => Bounds;
  60. };