Source: package/mesh/positioned_mesh_group.js

import { Vector2, Vector3, Quaternion, Group, Mesh } from '../../../node_modules/three/build/three.module.js';
import { Reporter } from '../../reporter/reporter.js';
import { checkPropTypes } from '../../lib.js';
import { BuildableComponent } from '../component/buildable_component.js';
import { MeshGroup } from './mesh_group.js';
import { PositionedComponent } from '../component/positioned_component.js';


/**
 * Mesh group that is embedded in a 3D structure and therefore needs spatial information
 */


class PositionedMeshGroup extends PositionedComponent {

    /**
     * @param {Reporter} reporter
     * @param {Object} settings
     * @param {UUID} [settings.id]
     * @param {string} [settings.name]
     * @param {Vector3} settings.position
     * @param {Quaternion} settings.quaternion
     * @param {MeshGroup} settings.component - the mesh group to position
     * @param {Boolean} [settings.assignable = false]
     */

    constructor( reporter, settings ) {

        super(
            reporter,
            settings,
            // { useComponentName: 'mesh' }
        );

        checkPropTypes(
            settings,
            {
                component: MeshGroup
            },
            {}
        );

        // this.exportName = 'positionedMeshGroups';
        // this.exportEntry = settings.mesh;
    }

    static _exportName = {
        singular: 'positionedMeshGroup',
        plural: 'positionedMeshGroups'
    };


    /** @type {ExportLevel} */
    
    static _exportLevel = 'inline';



};

export { PositionedMeshGroup };