Работа с панелью параметров
При выделении отображается панель с параметрами. Добавил BoundingBox при выделении объекта.
При изменении значения в панели параметров меняется геометрия выделенного объекта. Сделал пока для шара и то криво, просто проверить, что работает. Дело в том, что при изменении параметра в геометрии Object3D, геометрия не перестраивается. Чтобы перестроилась геометрия нужно вызвать new THREE.SphereGeometry. Для куба, соответственно, new THREE.BoxGeometry, и так далее для каждого объекта.
Поэтому решено в классе Entity создать метод createGeometry(), в котором в зависимости от типа объекта буду генерировать новую геометрию:
let TA_Entities = function () {
let GLOBALSCOPE = this;
this.createGeometry = function ( geometryType ) {
let geometry = null;
switch ( geometryType, params ) {
case 'BoxBufferGeometry':
let data = {
width: params.width,
height: params.height,
depth: params.depth,
widthSegments: params.widthSegments,
heightSegments: params.heightSegments,
depthSegments: params.depthSegments
};
geometry = new BoxBufferGeometry(
data.width, data.height, data.depth, data.widthSegments, data.heightSegments, data.depthSegments
);
break;
default:
break;
}
return geometry;
}
Соответственно изменю и функцию создания объектов. Сейчас при создании удаляется старый объект и в этой же точке создается новый, что сказывается на быстродействии. Я же буду менять только geometry с объекте Object3D. Примерно так:
let geom = entity.geometry; let newGeom = new THREE.SphereGeometry( +input.value, geom.parameters.widthSegments, geom.parameters.heightSegments, geom.parameters.phiStart, geom.parameters.phiLength, geom.parameters.thetaStart, geom.parameters.thetaLength ); entity.geometry.dispose(); entity.geometry = newGeom;

