- 新增OperationDashboard.vue全屏大屏组件 - 添加6个核心KPI指标卡片: 进水总量/出水总量/产销差率/营收额/平均水质/报警次数 - 实现6个ECharts图表: 供水趋势/水质分布/报警统计/管网空间/设备状态/营收分析 - 创建静态HTML版本operation-dashboard.html,使用CDN加载Vue3/ECharts/Element Plus - 更新路由配置,添加/operation路径支持 - 修复nextTick导入问题,优化build脚本 🚧 开发者: bot_dev1 📝 任务: #38 [BI] 运营仪表盘 + 供水专题大屏
70 lines
1.8 KiB
TypeScript
70 lines
1.8 KiB
TypeScript
// This file is part of meshoptimizer library and is distributed under the terms of MIT License.
|
|
// Copyright (C) 2016-2026, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com)
|
|
|
|
export class Bounds {
|
|
centerX: number;
|
|
centerY: number;
|
|
centerZ: number;
|
|
radius: number;
|
|
coneApexX: number;
|
|
coneApexY: number;
|
|
coneApexZ: number;
|
|
coneAxisX: number;
|
|
coneAxisY: number;
|
|
coneAxisZ: number;
|
|
coneCutoff: number;
|
|
}
|
|
|
|
export class MeshletBuffers {
|
|
meshlets: Uint32Array;
|
|
vertices: Uint32Array;
|
|
triangles: Uint8Array;
|
|
meshletCount: number;
|
|
}
|
|
|
|
export class Meshlet {
|
|
vertices: Uint32Array;
|
|
triangles: Uint8Array;
|
|
}
|
|
|
|
export const MeshoptClusterizer: {
|
|
supported: boolean;
|
|
ready: Promise<void>;
|
|
|
|
buildMeshlets: (
|
|
indices: Uint32Array,
|
|
vertex_positions: Float32Array,
|
|
vertex_positions_stride: number,
|
|
max_vertices: number,
|
|
max_triangles: number,
|
|
cone_weight?: number
|
|
) => MeshletBuffers;
|
|
|
|
buildMeshletsFlex: (
|
|
indices: Uint32Array,
|
|
vertex_positions: Float32Array,
|
|
vertex_positions_stride: number,
|
|
max_vertices: number,
|
|
min_triangles: number,
|
|
max_triangles: number,
|
|
cone_weight?: number,
|
|
split_factor?: number
|
|
) => MeshletBuffers;
|
|
|
|
buildMeshletsSpatial: (
|
|
indices: Uint32Array,
|
|
vertex_positions: Float32Array,
|
|
vertex_positions_stride: number,
|
|
max_vertices: number,
|
|
min_triangles: number,
|
|
max_triangles: number,
|
|
fill_weight?: number
|
|
) => MeshletBuffers;
|
|
|
|
extractMeshlet: (buffers: MeshletBuffers, index: number) => Meshlet;
|
|
|
|
computeClusterBounds: (indices: Uint32Array, vertex_positions: Float32Array, vertex_positions_stride: number) => Bounds;
|
|
computeMeshletBounds: (buffers: MeshletBuffers, vertex_positions: Float32Array, vertex_positions_stride: number) => Bounds[];
|
|
computeSphereBounds: (positions: Float32Array, positions_stride: number, radii?: Float32Array, radii_stride?: number) => Bounds;
|
|
};
|