Как получить текущие вершины блока сечения после его перевода - PullRequest
0 голосов
/ 04 июля 2019

То, что я пытаюсь сделать, это получить точное положение и его обновленные вершины сечения, когда мы перемещаем его с помощью гизмо.Приведенная выше строка кода дает мне минимальное и максимальное значения поля сечения, и я попытался добавить к нему сетку.К сожалению, это выглядит следующим образом.

окно сечения, которое Autodesk Forge Viewer возвращает

enter image description here

созданная сеткаиспользуя приведенные выше значения блока сечения

После перемещения гизмо блока сечения, я получаю те же значения сечения.Что мне нужно, так это его обновленные углы или вершины после перемещения его из исходного положения.

Я прилагаю код, который я использовал для создания сетки блока сечения, используя значения bb для перекрестной проверки.

  const sb = this.viewer.getExtension('Autodesk.Section');
  var sectionTool = sb.tool.getSectionBoxValues();

  var sectionbbox = sectionTool.sectionBox;
  const sectionbboxmin = new THREE.Vector3(sectionbbox[0], sectionbbox[1], sectionbbox[3]);      
  const sectionbboxmax = new THREE.Vector3(sectionbbox[4], sectionbbox[5], sectionbbox[6]);

  const sbv1 = new THREE.Vector3(sectionbbox[0], sectionbbox[1], sectionbbox[3]);
  const sbv2 = new THREE.Vector3(sectionbbox[0], sectionbbox[1], sectionbbox[6]);
  const sbv3 = new THREE.Vector3(sectionbbox[0], sectionbbox[5], sectionbbox[6]);
  const sbv4 = new THREE.Vector3(sectionbbox[0], sectionbbox[5], sectionbbox[3]);
  const sbv5 = new THREE.Vector3(sectionbbox[4], sectionbbox[1], sectionbbox[3]);
  const sbv6 = new THREE.Vector3(sectionbbox[4], sectionbbox[1], sectionbbox[6]);
  const sbv7 = new THREE.Vector3(sectionbbox[4], sectionbbox[5], sectionbbox[6]);
  const sbv8 = new THREE.Vector3(sectionbbox[4], sectionbbox[5], sectionbbox[3]);

  var geometry = new THREE.Geometry()

  geometry.vertices = vertices

  geometry.faces = [
    new THREE.Face3(2,1,0),
    new THREE.Face3(0,3,2),
    new THREE.Face3(0,4,7),
    new THREE.Face3(7,3,0),
    new THREE.Face3(2,1,0),
    new THREE.Face3(0,3,2),
    new THREE.Face3(0,1,5),
    new THREE.Face3(5,4,0),
    new THREE.Face3(2,1,0),
    new THREE.Face3(0,3,2),
    new THREE.Face3(1,2,6),
    new THREE.Face3(6,5,1),
    new THREE.Face3(2,1,0),
    new THREE.Face3(0,3,2),
    new THREE.Face3(2,3,7),
    new THREE.Face3(7,6,2),
    new THREE.Face3(2,1,0),
    new THREE.Face3(0,3,2),
    new THREE.Face3(4,5,6),
    new THREE.Face3(6,7,4)
  ]

  const mesh = new THREE.Mesh(geometry, material)
  this.viewer.impl.scene.add(mesh)

Есть ли способ получить текущие вершины блока сечения после его перевода.

прикрепленный код

...