2016-12-31 3 views
0

Ich habe folgendes Problem (als Teil einer Lösung für ein anderes Problem :)). Ich habe ein Dreiecksnetz mit einigen markierten Dreiecken. Es ist erforderlich, wie dies markierte Dreiecke auf einen vier kleineren aufzuteilen:Zunehmende Mesh-Details (zusätzliche Tesselation)

/\    /\ 
/\   /__\ 
/ \ --> /\ /\ 
/______\  /__\/__\ 

Das Spaltung der markierten Dreiecken führt zu der Notwendigkeit zu splittriangles neben markiert denjenigen zu (einer markiert ist, eine andere ist nur benachbart und die letzte geblieben intakt):

____    ____ 
    /\ |\   /\ /|\ 
/\ | \   /__\/ | \ 
/ \ | \ --> /\ /\ | \ 
/______\|___\  /__\/__\|___\ 

gibt es eine C/C++ Bibliothek, die für sie nützlich sein kann? Es ist auch nützlich, Adjazenzdaten zu speichern, so dass es nett wäre, diese Adjazenzdaten nach dem Aufteilen zu aktualisieren. Es wäre nett, auch wenn die Bibliothek die Aufgabe nicht erfüllt, wenn sie eine bequeme Schnittstelle bietet, um mit dieser Art von Daten zu arbeiten (Dreiecke, Nachbarschaft).

Antwort

-1

Auschecken VTK C++ - Bibliothek. Es hat eine Klasse vtkPolyData, die die von Ihnen erwähnten Operationen verarbeiten kann. Besondere Mitgliederfunktionen überprüfen:

  • InsertNextLinkedCell
  • InsertNextLinkedPoint
  • ReplaceLinkedCell

Lesen Sie die verlinkte Dokumentationsseite zu verstehen, wie es zu benutzen. Die Klasse kann für alle Arten von Zellen verwendet werden, nicht nur für Dreiecke. Sie können Ihre Verwendung jedoch auf Dreiecke beschränken.