Source: GeometryOptions.js

/**
 * @typedef {Object} rotationOption
 * @property {number[]} [axis]
 * @property {number} [angle]
 * @property {number[]} [origin]
 */
/**
 * @typedef {Object} translationOption
 * @property {string|function(number):number[]} [path]
 * @property {number} [step]
 */
/**
 * @typedef {Object} colorsOption
 * @property {number} r
 * @property {number} g
 * @property {number} b
 */
/**
 * @typedef {Object} geometrySubOptions
 * @property {rotationOption} [rotation]
 * @property {translationOption} [translation]
 */
/**
 * @typedef {Object} geometryOptions
 * @property {string} [group]
 * @property {string} [material]
 * @property {string} [color]
 * @property {string} [colormap]
 * @property {colorsOption[]} [colors]
 * @property {number} [opacity]
 * @property {number} [renderOrder]
 * @property {boolean} [complexFunction]
 * @property {boolean} [singleSide]
 * @property {rotationOption} [rotation]
 * @property {translationOption} [translation]
 * @property {number} [fontSize]
 * @property {number} [size]
 * @property {number} [linewidth]
 * @property {number} [maxFaceSlope]
 * @property {boolean} [fill]
 * @property {boolean} [useLineSegments]
 * @property {boolean} [openEnded]
 * @property {number[]} [center]
 * @property {number[]} [axis]
 * @property {boolean} [endcaps]
 * @property {number} [radius]
 * @property {number} [steps]
 */
/**
 * Class representing mathcell geometry options.
 */
export class GeometryOptions {
    /**
     * @param {geometryOptions} data - option data as a primitive Object
     */
    constructor(data = {}) {
        Object.assign(this, data);
    }
}