0

В выходные было мало времени для кодинга, поэтому успел сделать не много (я моделил лого =) ). Переделал код из предыдущего поста.
Во-первых, проверил, что переданные параметры являются объектом:

if ( !(params instanceof Object) ) {

  console.error( 'params must be an object. Now params are ' + typeof params );
  return;

}

Вместо того, чтобы руками забивать параметры для каждого стандартного объекта, я создаю его геометрию, беру список параметров, создаю новый объект с этими параметрами

geometry = new THREE.BoxGeometry();
Object.assign( data, geometry.parameters );
geometry.dispose();

Для каждого ключа в этом объекте проверяю его наличие в переданном объекте с параметрами, если он есть, присваиваю значение, если нет — выкидываю предупреждение, значение остается undefined. Данная проверка для разработчика, а не для пользователя.

for (const key in data) {

  if ( params.hasOwnProperty(key) ) {
    data[ key ] = params[ key ];
  }
  else {
    console.warn( 'Parameter "' + key + '" is missing ' );
  }
}

В TA_UI добавил проверку, что объект пришел с параметрами

createParametersMenu( entity ) {

if ( !entity.geometry.parameters) {

  console.warn( "No Params" );
  return;

}

0