import { EntityEidType, BasicInfoAtomType, TransformAtomType, VisibleAtomType, ICoordinates2D, EntityFlagAtomType, EntityOutlinerAtomType } from '../data-type';
/**
 * @interface IAttributes
 * @param {number} cornerRadius
 * @param {number} cornerSplitNum
 */
export interface IAttributes {
    cornerRadius: number;
    cornerSplitNum: number;
}
/**
 * @interface WimModelerWaterPolygonAtomType
 * @param {Array<IAttributes>} attributes
 * @param {ICoordinates2D} coordinates
 */
export interface WimModelerWaterPolygonAtomType {
    attributes: Array<IAttributes>;
    coordinates: ICoordinates2D;
}
/**
 * @interface WimModelerWaterAtomType
 * @param {number} waterHeight
 * @param {boolean} bInverseNormal
 * @param {boolean} bAlignZ
 * @param {boolean} bUseVertexCorner
 * @param {number} cornerRadius
 * @param {number} cornerSplitNum
 * @param {string} waterType
 * @param {string} waterColor
 * @param {number} waveHeight
 * @param {number} waterTransparency
 * @param {number} waterTransparentDepth
 * @param {number} rippleScale
 * @param {number} waveRotate
 * @param {number} waveSpeed
 */
export interface WimModelerWaterAtomType {
    waterHeight: number;
    bInverseNormal: boolean;
    bAlignZ: boolean;
    bUseVertexCorner: boolean;
    cornerRadius: number;
    cornerSplitNum: number;
    waterType: string;
    waterColor: string;
    waveHeight: number;
    waterTransparency: number;
    waterTransparentDepth: number;
    rippleScale: number;
    waveRotate: number;
    waveSpeed: number;
    waveIntensity: number;
    waveScale: number;
}
/**
 * @interface WimModelerWaterType
 * @extends EntityEidType,Partial<BasicInfoAtomType>,Partial<TransformAtomType>,Partial<VisibleAtomType>,Partial<WimModelerWaterPolygonAtomType>,Partial<EntityFlagAtomType>
 * @param {Partial<WimModelerWaterAtomType>} wimModelerWaterStyle (optional)
 */
export interface WimModelerWaterType extends EntityEidType, Partial<BasicInfoAtomType>, Partial<TransformAtomType>, Partial<VisibleAtomType>, Partial<WimModelerWaterPolygonAtomType>, Partial<EntityFlagAtomType>, Partial<EntityOutlinerAtomType> {
    wimModelerWaterStyle?: Partial<WimModelerWaterAtomType>;
}
/**
 * @interface IGenerate
 * @param {Partial<WimModelerWaterPolygonAtomType>} WimModelerWaterPolygonAtom (optional)
 * @param {Partial<WimModelerWaterPolygonAtomType>} WimModelerWaterPolygonAtom (optional)
 * @param {Partial<BasicInfoAtomType>} BasicInfoAtom (optional)
 * @param {Partial<TransformAtomType>} TransformAtom (optional)
 * @param {Partial<VisibleAtomType>} VisibleAtom (optional)
 * @param {Partial<EntityFlagAtomType>} EntityFlagAtom (optional)
 */
export interface IGenerate {
    WimModelerWaterAtom?: Partial<WimModelerWaterAtomType>;
    WimModelerWaterPolygonAtom?: Partial<WimModelerWaterPolygonAtomType>;
    BasicInfoAtom?: Partial<BasicInfoAtomType>;
    TransformAtom?: Partial<TransformAtomType>;
    VisibleAtom?: Partial<VisibleAtomType>;
    EntityFlagAtom?: Partial<EntityFlagAtomType>;
    EntityOutlinerAtom?: Partial<EntityOutlinerAtomType>;
}
