jsdoc.js

/**
 * @file ARgo JSDoc Type Definitions.<br/>
 * This file includes type definitions for JSDoc only.
 * VSCode gets intellisense for these types from their
 * definition in @types/argo.
 * @author Perikles C. Stephanidis <perikles@stephanidis.net>
 * @copyright Doticca SRL 2019
 * @version 1.0.0
 */

/**
 * @typedef {import("AR").DrawableOptions} DrawableOptions
 */

/**
 * @class
 */
class ModelLayout {
    constructor() {
        /** 
         * @member {number?} [scale]
         * @memberof ModelLayout#
         */
        this.scale = 0;
        /** 
         * @member {Vector3?} [translate]
         * @memberof ModelLayout#
         */
        this.translate = new Vector3;
        /** 
         * @member {Vector3?} [rotate]
         * @memberof ModelLayout#
         */
        this.rotate = new Vector3;
    }
}

/**
 * @class
 * @classdesc Model instantiation options.
 * @augments DrawableOptions
 */
class ARgoDrawableOptions {
    constructor() {
        /**
         * @member {ModelLayout?} [defaultLayout]
         * The default layout of the object in the AR environment.
         * @memberof ARgoDrawableOptions#
         */
        this.defaultLayout = new ModelLayout;
        /**
         * @member {ModelLayout?} [snapBeginLayout]
         * The layout of the object at the beginning of
         * a snapping animation (if any).
         * @memberof ARgoDrawableOptions#
         */
        this.snapBeginLayout = new ModelLayout;
        /**
         * @member {ModelLayout?} [snappedLayout]
         * The layout of the object when snapped on screen.
         * @memberof ARgoDrawableOptions#
         */
        this.snappedLayout = new ModelLayout;
    }
}