interface Asuka3DSceneState {
    activePrintAreaId?: null | string;
    assembly?: AsukaAssemblyState;
    camera?: {
        alpha?: number;
        beta?: number;
        fov?: number;
        position?: [number, number, number];
        radius?: number;
        target?: [number, number, number];
    };
    cameraLimits?: AsukaCameraLimits;
    decorations?: Asuka3DDecoration[];
    materials?: Record<string, {
        color?: string;
        metallic?: number;
        roughness?: number;
        textureUrl?: string;
        [key: string]: unknown;
    }>;
    printAreas?: Asuka3DPrintArea[];
    products: Asuka3DProduct[];
    selectedMaterialId?: null | string;
    selectedObjectId?: null | string;
    selectedPartId?: null | string;
    selectedProductId?: null | string;
}

Properties

activePrintAreaId?: null | string

Optional generic spatial assembly state for this 3D view.

camera?: {
    alpha?: number;
    beta?: number;
    fov?: number;
    position?: [number, number, number];
    radius?: number;
    target?: [number, number, number];
}

Type declaration

  • Optionalalpha?: number

    ArcRotateCamera spherical pose, preserved across view switches.

  • Optionalbeta?: number
  • Optionalfov?: number
  • Optionalposition?: [number, number, number]
  • Optionalradius?: number
  • Optionaltarget?: [number, number, number]
cameraLimits?: AsukaCameraLimits

Persisted orbit constraints for this 3D view.

decorations?: Asuka3DDecoration[]
materials?: Record<string, {
    color?: string;
    metallic?: number;
    roughness?: number;
    textureUrl?: string;
    [key: string]: unknown;
}>

Scene-wide material state. Product-scoped material ids are prefixed with the product id.

printAreas?: Asuka3DPrintArea[]
products: Asuka3DProduct[]

The only persisted product collection. Singular product/model fields are intentionally unsupported.

selectedMaterialId?: null | string
selectedObjectId?: null | string
selectedPartId?: null | string
selectedProductId?: null | string