/**
 * 剖切盒轴向范围
 */
export interface SectionBoxAxisRange {
    /** 最小值（0-100的百分比） */
    min: number;
    /** 最大值（0-100的百分比） */
    max: number;
}

/**
 * 剖切盒范围数据
 */
export interface SectionBoxRange {
    /** X轴范围 */
    x: SectionBoxAxisRange;
    /** Y轴范围 */
    y: SectionBoxAxisRange;
    /** Z轴范围 */
    z: SectionBoxAxisRange;
}

/**
 * 剖切盒面板配置选项
 */
export interface SectionBoxPanelOptions {
    /**
     * 隐藏按钮切换回调
     * @param isHidden 是否隐藏剖切盒
     */
    onHideToggle?: (isHidden: boolean) => void;

    /**
     * 反向按钮切换回调
     * @param isReversed 是否反向
     */
    onReverseToggle?: (isReversed: boolean) => void;

    /**
     * 适应到模型按钮回调
     */
    onFitToModel?: () => void;

    /**
     * 重置按钮回调
     */
    onReset?: () => void;

    /**
     * 范围变化回调
     * @param range 当前范围值
     */
    onRangeChange?: (range: SectionBoxRange) => void;

    /**
     * 默认隐藏状态（默认 false）
     */
    defaultHidden?: boolean;

    /**
     * 默认反向状态（默认 false）
     */
    defaultReversed?: boolean;

    /**
     * 默认范围值
     */
    defaultRange?: SectionBoxRange;
}
