Source: modules/fluid/MagoFluidOptions.js

import * as Cesium from "cesium";

/**
 * MagoFluidOptions is a class that creates a simulation of water.
 */
export class MagoFluidOptions {
    constructor() {

        /**
         * Height Offset
         * @type {number}
         */
        this.heightOffset = 0.0;

        /**
         * Water color
         * @type {Cesium.Color}
         */
        this.waterColor = new Cesium.Color(0.25, 0.75, 1.0);

        /**
         * Water color
         * @type {number}
         * @default 1.0
         */
        this.cellSize = 1;

        /**
         * Grid size
         * @type {number}
         * @default 512
         */
        this.gridSize = 256;

        /**
         * Max height
         * @type {number}
         * @default 10000.0
         */
        this.maxHeight = 10000.0;

        /**
         * Max flux
         * @type {number}
         * @default 10000.0
         */
        this.maxFlux = 10000.0;

        /**
         * Interval
         * @type {number}
         * @default 1000 / 60
         */
        this.interval = 1000 / 60;

        /**
         * Gravity
         * @type {number}
         * @default 9.80665
         */
        this.gravity = 9.80665;

        /**
         * Time step
         * @type {number}
         * @default 0.1
         */
        this.timeStep = 0.1;

        /**
         * Water density
         * @type {number}
         * @default 998.0
         */
        this.waterDensity = 998.0;

        /**
         * Cushion factor
         * @type {number}
         * @default 0.998
         */
        this.cushionFactor = 0.998;

        /**
         * Evaporation rate
         * @type {number}
         * @default 0.0001
         */
        this.evaporationRate = 0.0001;

        /**
         * Rain amount
         * @type {number}
         */
        this.rainAmount = 1;

        /**
         * Rain max precipitation
         * @type {number}
         * @default 0.00
         */
        this.rainMaxPrecipitation = 0.00;

        /**
         * Water source amount
         * @type {number}
         * @default 5
         */
        this.waterSourceAmount = 5;

        /**
         * Water source positions
         * @type {Array}
         * @default []
         */
        this.waterSourcePositions = [];

        /**
         * Water source area
         * @type {number}
         * @default 1
         */
        this.waterSourceArea = 2;

        /**
         * Water minus source amount
         * @type {number}
         * @default 5
         */
        this.waterMinusSourceAmount = 5;

        /**
         * Water minus source positions
         * @type {Array}
         * @default []
         */
        this.waterMinusSourcePositions = [];

        /**
         * Water minus source area
         * @type {number}
         * @default 2
         */
        this.waterMinusSourceArea = 2;

        /**
         * Water seawall height
         * @type {number}
         * @default 50.0
         */
        this.waterSeawallHeight = 50.0;

        /**
         * Water seawall positions
         * @type {Array}
         * @default []
         */
        this.waterSeawallPositions = [];

        /**
         * Water seawall area
         * @type {number}
         * @default 4
         */
        this.waterSeawallArea = 4;

        /**
         * Water seawall thickness
         * @type {boolean}
         * @default false
         */
        this.heightPalette = false;

        /**
         * Water skirt
         * @type {boolean}
         * @default true
         */
        this.waterSkirt = true;

        /**
         * Simulation confine
         * @type {boolean}
         * @default false
         */
        this.simulationConfine = false;

        /**
         * Color Intensity
         * @type {number}
         * @default 1.0
         */
        this.colorIntensity = 1.0;

        /**
         * Water brightness
         * @type {number}
         * @default 0.5
         */
        this.waterBrightness = 0.5;

        /**
         * Water contrast
         * @type {number}
         */
        this.maxOpacity = 0.8;
    }
}