/** * AgentAvatarGarment — sovereign procedural clothing for native skinned characters. * * The operative presets include the compatibility hooded/open tunics plus the H3Y * `stormglass_tailored_fieldcoat`. The fieldcoat is built from four independently indexed * torso panels, a front placket, lapels, shoulder yokes, and articulated sleeves rather than * one continuous shoulder shell. Geometry is pure data, carries UVs plus cloth-dynamic * weights, is skinned to the existing humanoid palette, and has an authored detail channel * so `@lod` can produce genuinely different meshes without an external DCC. */ import { type SovereignMantleStyle } from './AgentAvatarMantleCatalog'; export type SovereignGarmentStyle = 'stormglass_hooded_tunic' | 'stormglass_open_civic_tunic' | 'stormglass_tailored_fieldcoat' | 'stormglass_structured_fieldcoat' | 'stormglass_portrait_fieldcoat'; export type { SovereignMantleStyle } from './AgentAvatarMantleCatalog'; export interface GarmentMeshPart { positions: Float32Array; normals: Float32Array; tangents: Float32Array; /** Two floats/vertex. Garment and mantle surfaces are texture-addressable without a DCC. */ uvs: Float32Array; indices: Uint32Array; jointIndices: Uint32Array; jointWeights: Float32Array; /** 0 = pinned to rest pose, 1 = fully simulated by the deterministic cloth solver. */ clothWeights: Float32Array; vertexCount: number; } export interface AgentAvatarGarmentData { cloth: GarmentMeshPart; visor: GarmentMeshPart; mantle: GarmentMeshPart; receipt: AgentAvatarGarmentGeometryReceipt; } export interface AgentAvatarGarmentGeometryReceipt { schemaVersion: 'holoscript.agent-avatar-garment-geometry.v1' | 'holoscript.agent-avatar-garment-geometry.v2' | 'holoscript.agent-avatar-garment-geometry.v3' | 'holoscript.agent-avatar-garment-geometry.v4'; style: SovereignGarmentStyle; radialSegments: number; faceCoverage: 'closed-hood-visor' | 'open-v-collar' | 'open-lapel-collar'; fitProfile: 'legacy-shell-v1' | 'coherent-upper-body-clearance-v1' | 'constructed-panel-clearance-v2'; collarProfile: 'legacy-hood-collar-v1' | 'tailored-open-v-collar-v1' | 'tailored-lapel-v2'; /** Present only when separately indexed sewn-panel topology is emitted. */ constructionProfile?: 'four-panel-fieldcoat-v1' | 'structured-fieldcoat-shell-v2' | 'portrait-full-fieldcoat-v3'; /** Independently indexed torso panels, excluding placket, lapels, yokes, and sleeves. */ constructedPanelCount?: number; /** Topological panel boundaries intentionally left un-welded as garment seams. */ constructionSeamCount?: number; /** Shoulder pieces connecting the torso panels to articulated sleeve roots. */ shoulderYokeCount?: number; /** H3Z authored distance between the base panel and raised facing/closure layer. */ shellThickness?: number; /** Independently emitted front closure studs. */ closureCount?: number; /** Independently emitted cuff bands, one per sleeve. */ cuffBandCount?: number; /** H4A visible full-coat framing from the collar to the split lower hem. */ coatLength?: number; frontHemSplitDepth?: number; portraitFramingProfile?: 'full-coat-closures-cuffs-v1'; /** Source-owned material-detail profile joined by CharacterHost. */ fabricSurfaceProfile?: 'stormglass-crossweave-normal-v1'; torsoScale: number; shoulderScale: number; /** Emitted bind-space half width of the upper shoulder shell. */ shoulderShellHalfWidth: number; /** Emitted bind-space radius at the upper sleeve root. */ sleeveRootRadius: number; /** Emitted bind-space radius at the sleeve cuff. */ sleeveWristRadius: number; /** Exact cloth-index subrange for the continuous tunic shell, excluding collar and sleeves. */ tunicIndexRange: { indexStart: number; indexCount: number; }; clothVertexCount: number; clothTriangleCount: number; visorVertexCount: number; visorTriangleCount: number; mantleVertexCount: number; mantleTriangleCount: number; } export interface AgentAvatarGarmentOptions { style: SovereignGarmentStyle; buildScale?: number; heightScale?: number; /** Authored torso thickness, shared with the coherent native upper-body profile. */ torsoScale?: number; /** Authored shoulder span, shared with the coherent native upper-body profile. */ shoulderScale?: number; /** Authored radial tessellation. Clamped to 6..32; intended LOD values are 24/14/8. */ radialSegments?: number; /** Optional public/story mantle. Omission is the detachable neutral-body state. */ mantleStyle?: SovereignMantleStyle; } /** * Build the authored Stormglass garment. Detail is topology, not a metadata-only LOD hint: * changing radialSegments changes vertex/index counts and the GPU-uploaded surface. */ export declare function buildAgentAvatarGarment(options: AgentAvatarGarmentOptions): AgentAvatarGarmentData; //# sourceMappingURL=AgentAvatarGarment.d.ts.map