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 };