Установите вид на орфографический

#autodesk-forge #autodesk-viewer

#autodesk-forge #autodesk-просмотрщик

Вопрос:

Как взять текущий вид и установить для вида орфографический?

Я попытался использовать viewer.getCamera(), чтобы получить параметры, как в данный момент настроен вид, а затем установить его с помощью viewer.applyCamera().

 var camera = viewer.getCamera();
console.log('Camera: '   JSON.stringify(camera));
  

Который возвращает:

 Camera: {
   "metadata": {"version":4.3,"type":"Object","generator":"ObjectExporter"},
   "object":{"uuid":"78D2EA86-853B-473F-9E0E-E3F0C8874E40",
   "type":"Camera",
   "matrix":[1,0,0,0,0,1,0.00009999999747378752,0,0,-0.00009999999747378752,1,0,114010.796875,88329.0078125,135503.609375,1],
   "children":[
       {"uuid":"53C7FA49-B00C-4616-9E7A-CCB94A661A45",
        "type":"DirectionalLight",
        "color":8355711,"intensity":0,
        "matrix":1,0,0,0,0,1,0,0,0,0,1,0,-0.5,0.20000000298023224,0.05999999865889549,1]},
        {
           "uuid":"7D5EC244-7268-4190-8480-4BD1DD56F8CB",
           "type":"Object3D","matrix":[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]
        }]}}
  

Затем я попытался установить, используя массив «matrix» в качестве параметров, но представление перескакивает.

 viewer.setViewFromArray(params); 
  

Ответ №1:

Я следовал формату массива с данными с текущей камеры и применил их с помощью viewer.setViewFromArray. Я сохранил все остальные параметры, но установил только последний параметр равным 1 (ortho).На моей стороне это выглядит хорошо.

  viewerApp.myCurrentViewer.setViewFromArray([
    viewerApp.myCurrentViewer.getCamera().position.x,
    viewerApp.myCurrentViewer.getCamera().position.y,
    viewerApp.myCurrentViewer.getCamera().position.z,
    viewerApp.myCurrentViewer.getCamera().target.x,
    viewerApp.myCurrentViewer.getCamera().target.y,
    viewerApp.myCurrentViewer.getCamera().target.z,
    viewerApp.myCurrentViewer.getCamera().up.x,
    viewerApp.myCurrentViewer.getCamera().up.y,
    viewerApp.myCurrentViewer.getCamera().up.z,
    viewerApp.myCurrentViewer.getCamera().aspect,
    viewerApp.myCurrentViewer.getCamera().fov,
    1,
    1
]);
  

вы также можете проверить источник Viewer3D.js чтобы получить представление о том, как работает рабочий процесс setViewFromArray.

Viewer3D.prototype.setViewFromArray = функция (параметры, имя){….}

ЕСЛИ вы просто хотите переключить вид между перспективным и орфографическим, вы можете использовать direct API:

Просмотрщик.навигация.Ортографический ()

Просмотрщик.навигация.toPerspective()

Комментарии:

1. Привет, Сяодун, просто интересно, почему Viewer.navigation. Ортографический () позволяет камере увеличивать объект (и, читая код, он фактически перемещает положение камеры)?