Выделите вершину, ребро и грань мышью (OpenCASCADE)C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Гость
 Выделите вершину, ребро и грань мышью (OpenCASCADE)

Сообщение Гость »


Я хочу, чтобы в AIS_Shape можно было выбрать вершину, ребро, грань или все тело в соответствии с режимом выбора. Фактически, если выбрана вершина, из которой я хочу перейти, мне нужно получить координаты вершины. Если выбран край, мне нужно рассчитать длину. Площадь поверхности, даже если выбрано лицо...
Я могу выделить с помощью своей команды.

Код: Выделить всё

myViewerWidget->getContext()->Activate(TopAbs_FACE, Standard_True);
Но когда щелкают по фигуре, она возвращает мне все ее вершины или поверхности.
Мой код в событии щелчка мыши: следующим образом;

Код: Выделить всё

if (theEvent->button() == Qt::LeftButton) {
qDebug() DetectedOwner().IsNull()){
Handle(AIS_InteractiveObject) picked;
myContext->InitSelected();
picked = myContext->DetectedInteractive();
Handle(AIS_Shape) aShape=Handle(AIS_Shape)::DownCast(picked);

TopoDS_Shape topShape = aShape->Shape();

// Vertex
for(TopExp_Explorer vertEx(topShape, TopAbs_VERTEX); vertEx.More(); vertEx.Next()) {
TopoDS_Vertex aVertex = TopoDS::Vertex(vertEx.Current());
gp_Pnt aPnt = BRep_Tool::Pnt(aVertex);
qDebug() 

Источник: [url]https://stackoverflow.com/questions/71466383/select-a-vertex-an-edge-and-a-face-with-mouse-opencascade[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»