import { box2, circle2 } from '@forgeax/engine-math'; import type { AssetError, MeshAsset } from '@forgeax/engine-types'; import { type Result } from '@forgeax/engine-types'; export type Vec2 = readonly [number, number]; export type Shape2d = { readonly kind: 'circle'; readonly radius: number; readonly resolution?: number; } | { readonly kind: 'circular-sector'; readonly radius: number; readonly angle: number; readonly resolution?: number; } | { readonly kind: 'circular-segment'; readonly radius: number; readonly angle: number; readonly resolution?: number; } | { readonly kind: 'ellipse'; readonly halfWidth: number; readonly halfHeight: number; readonly resolution?: number; } | { readonly kind: 'annulus'; readonly innerRadius: number; readonly outerRadius: number; readonly resolution?: number; } | { readonly kind: 'capsule'; readonly radius: number; readonly halfLength: number; readonly resolution?: number; } | { readonly kind: 'rhombus'; readonly halfWidth: number; readonly halfHeight: number; } | { readonly kind: 'rectangle'; readonly width: number; readonly height: number; } | { readonly kind: 'regular-polygon'; readonly radius: number; readonly sides: number; } | { readonly kind: 'triangle'; readonly vertices: readonly [Vec2, Vec2, Vec2]; } | { readonly kind: 'segment'; readonly vertices: readonly [Vec2, Vec2]; } | { readonly kind: 'polyline'; readonly vertices: readonly Vec2[]; }; export type Shape2dPose = { readonly translation?: Vec2; readonly rotation?: number; }; export type Shape2dMeshOptions = { readonly uv?: { readonly kind: 'circular-mask'; readonly angle: number; }; }; export type Shape2dBounds = { readonly aabb: box2.Box2; readonly circle: circle2.Circle2; }; export declare function create2dGeometry(shape: Shape2d, options?: Shape2dMeshOptions): Result; export declare function compute2dBounds(shape: Shape2d, pose?: Shape2dPose): Result; export declare function create2dRingGeometry(shape: Shape2d, thickness: number, resolutionOverride?: number): Result; //# sourceMappingURL=dim2.d.ts.map