2016-10-07 5 views
0

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

Я попытался использовать 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] 
     }]}} 

Затем я попытался установить, с "матрицей" массив как Params, но вид прыжков.

viewer.setViewFromArray(params); 

ответ

1

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

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 = функция (PARAMS, имя) {....}

Если вы просто хотите, чтобы переключить вид между перспективой и орфографической, вы можете использовать прямой API:

Viewer.navigation.toOrthographic()

Viewer.navigation.toPerspective()

+0

Привет Сяодун, просто интересно, почему Viewer.navigation.toOrthographic() делает камеру в зоопарке m в объект (и считывая код, он фактически перемещает положение камеры)? – Afshin