import { Vector3, Quaternion, Group, Mesh } from '../../../node_modules/three/build/three.module.js';
import { Reporter } from '../../reporter/reporter.js';
import { checkPropTypes } from '../../lib.js';
import { WrappedMesh } from './wrapped_mesh.js';
import { PositionedComponent } from '../component/positioned_component.js';
/**
* Mesh that is embedded in a 3D structure and therefore needs spatial information
*/
class PositionedMesh extends PositionedComponent {
/**
* @param {Reporter} reporter
* @param {Object} settings
* @param {UUID} [settings.id]
* @param {Vector3} settings.position
* @param {Quaternion} settings.quaternion
* @param {WrappedMesh} settings.component - the mesh to situate
* @param {Boolean} [settings.assignable = false]
*/
constructor( reporter, settings ) {
super(
reporter,
settings
);
checkPropTypes(
settings,
{
component: WrappedMesh
},
{}
);
}
static _exportName = {
singular: 'positionedMesh',
plural: 'positionedMeshes'
};
/** @type {ExportLevel} */
static _exportLevel = 'inline';
// /**
// * The (assignable) component that a material should be assigned to
// * to change this positioned mesh's appearance.
// * Value set by block instance.
// * @type {PositionedComponent|BlockInstance|Configuration}
// */
// nearestAssignable;
};
export { PositionedMesh };