Изменения цвета в комнатах просмотра Forge не работали - PullRequest
0 голосов
/ 25 июня 2018

У меня есть список уровней, при нажатии каждого уровня он показывает комнаты. Я хочу изменить цвет каждого объекта комнаты. Я пытался с помощью следующего фрагмента кода:

var selSet1 = NOP_VIEWER.getSelection();
NOP_VIEWER.clearSelection();
var color = new THREE.Color( 255 / 255, 0, 0, 1 );
for( let i = 0; i < selSet1.length; i++ ) {
    NOP_VIEWER.setThemingColor( selSet1[i], color );
}


Autodesk.Viewing.Viewer3D.prototype.setColorMaterial = function(objectIds, color){
  if( !(color instanceof THREE.Color) ) throw 'Invalid argument: Color';
    var material = new THREE.MeshPhongMaterial
      ({
        color:      color,
        opacity:    0.8,
        transparent: true
      });
    NOP_VIEWER.impl.matman().addMaterial( 'ColorMaterial-' + new Date().getTime(), material, true );
};

Оба не работали, не могли бы вы помочь мне в этом.

1 Ответ

0 голосов
/ 26 июня 2018

2-й аргумент функции viewer.setThemingColor принимает только THREE.Vector4, поэтому он не работает для вас.Вы должны изменить свой код таким образом, и, пожалуйста, проверьте ответ здесь :

var selSet1 = NOP_VIEWER.getSelection();
NOP_VIEWER.clearSelection();
var color = new THREE.Vector4( 255 / 255, 0, 0, 1 );
for( let i = 0; i < selSet1.length; i++ ) {
    NOP_VIEWER.setThemingColor( selSet1[i], color );
}

Вот документация Viewer: https://developer.autodesk.com/en/docs/viewer/v2/reference/javascript/viewer3d/

надеюсь, это поможет.

...