| Operatoren |
set_object_model_3d_attrib — Setzen von Attributen eines 3D-Objektmodells.
set_object_model_3d_attrib( : : ObjectModel3D, AttribName, AttachExtAttribTo, AttribValues : ObjectModel3DOut)
set_object_model_3d_attrib_mod setzt Standard-Attribute und erweiterte Attribute in AttribName eines 3D-Objektmodells ObjectModel3D auf die Werte in AttribValues und liefert ein 3D-Objektmodell mit den neuen Attributwerten in ObjectModel3DOut zurück. set_object_model_3d_attrib ist identisch mit set_object_model_3d_attrib_mod mit der Ausnahme, dass set_object_model_3d_attrib ein neues 3D-Objektmodell erzeugt, anstatt das bestehende zu verändern. Es ist über den Parameter AttachExtAttribTo möglich, die Werte von erweiterten Attributen an bereits existierende Standard-Attribute des 3D-Objektmodells zu binden. Für Standard-Attribute wird AttachExtAttribTo ignoriert.
Falls die Attribute in AttribName nicht existieren, werden sie wenn möglich neu erstellt. Sollen bereits im 3D-Objektmodell vorhandene Attribute gesetzt werden, muss die Länge der neuen Daten der Länge der alten Daten entsprechen. Ist dies der Fall, werden die alten Daten überschrieben. Falls erweiterte Attribute mit AttachExtAttribTo an bereits existierende Standard-Attribute gehängt werden sollen, muss die Länge der neuen Daten den bereits vorhandenen Standard-Attribut-Werten entsprechen.
Standardattribute
Die folgenden Standardattribute können gesetzt werden:
Die x-Koordinaten einer 3D-Punktmenge werden im Parameter AttribValues übergeben. Ist das Attribut nicht vorhanden, müssen die x-, y- und z-Koordinaten gleichzeitig mittels 'point_coord_x', 'point_coord_y' und 'point_coord_z' gesetzt werden. Die Anzahl der x-, y- und z-Koordinaten muss identisch sein.
Die y-Koordinaten einer 3D-Punktmenge werden im Parameter AttribValues übergeben. Ist das Attribut nicht vorhanden, müssen die x-, y- und z-Koordinaten gleichzeitig mittels 'point_coord_x', 'point_coord_y' und 'point_coord_z' gesetzt werden. Die Anzahl der x-, y- und z-Koordinaten muss identisch sein.
Die z-Koordinaten einer 3D-Punktmenge werden im Parameter AttribValues übergeben. Ist das Attribut nicht vorhanden, müssen die x-, y- und z-Koordinaten gleichzeitig mittels 'point_coord_x', 'point_coord_y' und 'point_coord_z' gesetzt werden. Die Anzahl der x-, y- und z-Koordinaten muss identisch sein.
Die x-Komponenten der 3D-Punktnormalen einer 3D-Punktmenge werden im Parameter AttribValues übergeben. Ist das Attribut nicht vorhanden, müssen die x-, y- und z-Komponenten der 3D-Punktnormalen gleichzeitig mittels 'point_normal_x', 'point_normal_y' und 'point_normal_z' gesetzt werden. Die Anzahl der x-, y- und z-Komponenten der Anzahl an vorhandenen 3D-Punkten entsprechen. Die 3D-Punktnormalen werden nicht auf die Länge 1 normiert.
Die y-Komponenten der 3D-Punktnormalen einer 3D-Punktmenge werden im Parameter AttribValues übergeben. Ist das Attribut nicht vorhanden, müssen die x-, y- und z-Komponenten der 3D-Punktnormalen gleichzeitig mittels 'point_normal_x', 'point_normal_y' und 'point_normal_z' gesetzt werden. Die Anzahl der x-, y- und z-Komponenten muss der Anzahl an vorhandenen 3D-Punkten entsprechen. Die 3D-Punktnormalen werden nicht auf die Länge 1 normiert.
Die z-Komponenten der 3D-Punktnormalen einer 3D-Punktmenge werden im Parameter AttribValues übergeben. Ist das Attribut nicht vorhanden, müssen die x-, y- und z-Komponenten der 3D-Punktnormalen gleichzeitig mittels 'point_normal_x', 'point_normal_y' und 'point_normal_z' gesetzt werden. Die Anzahl der x-, y- und z-Komponenten muss der Anzahl an vorhandenen 3D-Punkten entsprechen. Die 3D-Punktnormalen werden nicht auf die Länge 1 normiert.
Das Qualitätsmaß der Rekonstruktion einer 3D-Punktmenge wird im Parameter AttribValues übergeben. Da dieses Attribut pro 3D-Punkt gesetzt wird, muss die Anzahl der Komponente der Anzahl an vorhandenen 3D-Punkten entsprechen.
Der Rotkanal einer 3D-Punktmenge wird im Parameter AttribValues übergeben. Die Anzahl der Komponente muss der Anzahl an vorhandenen 3D-Punkten entsprechen.
Der Grünkanal einer 3D-Punktmenge wird im Parameter AttribValues übergeben. Die Anzahl der Komponente muss der Anzahl an vorhandenen 3D-Punkten entsprechen.
Der Blaukanal einer 3D-Punktmenge wird im Parameter AttribValues übergeben. Die Anzahl der Komponente muss der Anzahl an vorhandenen 3D-Punkten entsprechen.
Die Indizes der 3D-Punkte, die Dreiecke repräsentieren, in der folgenden Reihenfolge: Die ersten drei Werte des Parameters AttribValues (Eingabewerte 0,1,2) stellen das erste Dreieck dar, die nächsten drei Werte (Eingabewerte 3,4,5) stellen das zweite Dreieck dar, usw. Alle Indizes entsprechen schon vorhandenen 3D-Punkten. Zu beachten ist, dass sich die Richtung der Dreiecke aus der Reihenfolge der Indizes der Punkte ergibt.
Die Indizes der 3D-Punkte, die Polygone repräsentieren, in der folgenden Reihenfolge: Der erste Wert des Parameters AttribValues enthält die Anzahl n der 3D-Punkte des ersten Polygons. Die folgenden Werte (Eingabewerte 1,2,..,n) repräsentieren das erste Polygon. Der nächste Wert (Eingabewert n+1) enthält die Anzahl m der 3D-Punkte des zweiten Polygons. Die folgenden Werte (Eingabewerte n+2,n+3,..,n+1+m) repräsentieren das zweite Polygon, usw. Alle Indizes entsprechen schon vorhandenen 3D-Punkten.
Die Indizes der 3D-Punkte, die Linienzüge repräsentieren, in der folgenden Reihenfolge: Der erste Wert des Parameters AttribValues enthält die Anzahl n der 3D-Punkte des ersten Linienzuges. Die folgenden Werte (Eingabewerte 1,2,..,n) repräsentieren den ersten Linienzug. Der nächste Wert (Eingabewert n+1) enthält die Anzahl m der 3D-Punkte des zweiten Linienzuges. Die folgenden Werte (Eingabewerte n+2,n+3,..,n+1+m) repräsentieren den zweiten Linienzug usw. Alle Indizes entsprechen schon vorhandenen 3D-Punkten.
Die Zuordnung der Bildkoordinaten zu den 3D-Punkten, in der folgenden Reihenfolge: Der erste Wert (Eingabewert 0) des Parameters AttribValues enthält die Breite des entsprechenden Bildes. Der zweite Wert (Eingabewert 1) enthält die Höhe des entsprechenden Bildes. Die folgenden n Werte (Eingabewerte 2,3,..,n+1, mit n der Anzahl von 3D-Punkten) repräsentieren die Zeilenkoordinaten der n Punkte in Bildkoordinaten. Die nächsten n Werte (Eingabewerte n+2,n+3,..,n*2+1) repräsentieren die Spaltenkoordinaten der n Punkte in Bildkoordinaten. Daraus ergibt sich die Gesamtanzahl der Eingabewerte von n*2+2.
Erweiterte Attribute
Erweiterte Attribute sind Attribute, die aus Standard-Attributen von speziellen Operatoren (z.B. distance_object_model_3d) berechnet werden oder benutzerdefinierte Attribute. Die Namen von erweiterten Attributen sind frei wählbar, müssen aber mit dem Präfix '&' beginnen, also z.B., '&my_attrib'. Erweiterte Attribute können eine beliebige Anzahl von Fließkommawerten annehmen.
Erweiterte Attribute können über den Parameter AttachExtAttribTo an bereits existierende Standard-Attribute des 3D-Objektmodells gebunden werden. Die folgenden Werte für AttachExtAttribTo sind möglich:
Ist dieser Wert gesetzt, wird das erweiterte Attribut an das 3D-Objektmodell als Ganzes gebunden. Die Anzahl der Werte in AttribValues ist nicht eingeschränkt.
Ist dieser Wert gesetzt, wird das erweiterte Attribut an die 3D-Punkte des 3D-Objektmodells gebunden. Die Anzahl der Werte in AttribValues muss gleich der Anzahl der bereits bestehenden 3D-Punkte sein.
Ist dieser Wert gesetzt, wird das erweiterte Attribut an die Dreiecke des 3D-Objektmodells gebunden. Die Anzahl der Werte in AttribValues muss gleich der Anzahl der bereits bestehenden Dreiecke sein.
Ist dieser Wert gesetzt, wird das erweiterte Attribut an die Polygone des 3D-Objektmodells gebunden. Die Anzahl der Werte in AttribValues muss gleich der Anzahl der bereits bestehenden Polygone sein.
Ist dieser Wert gesetzt, wird das erweiterte Attribut an die Linienzüge des 3D-Objektmodells gebunden. Die Anzahl der Werte in AttribValues muss gleich der Anzahl der bereits bestehenden Linienzüge sein.
Wenn ein 3D-Objektmodell überschrieben werden soll oder es nicht länger benötigt wird, muss der Speicher durch Aufrufen des Operators clear_object_model_3d freigegeben werden.
Falls mehrere Attribute in AttribName übergeben werden, wird AttribValues in gleich lange Teiltupel unterteilt. Jedes Teiltupel wird dann einem Attribut zugeordnet. Z.B.: Wenn AttribName und AttribValues folgende Werte haben:
AttribName := ['&attrib1','&attrib2','&attrib3'],
AttribValues := [0.0,1.0,2.0,3.0,4.0,5.0],
werden die Attribute mit folgenden Werten gesetzt:
'&attrib1' = [0.0,1.0], '&attrib2' = [2.0,3.0], '&attrib3' = [4.0,5.0].
Folglich ist es nicht möglich, mehrere Attribute unterschiedlicher Länge in einem Aufruf zu setzen.
set_object_model_3d_attrib speichert die Eingabedaten AttribValues unverändert im 3D-Objektmodell. Daher ist auf Konsistenz der Eingabedaten zu achten, da die meisten Operatoren konsistente 3D-Objektmodelle erwarten.
Handle des Eingabe-3D-Objektmodells.
Namen der Attribute.
Werteliste: 'blue', 'green', 'lines', 'point_coord_x', 'point_coord_y', 'point_coord_z', 'point_normal_x', 'point_normal_y', 'point_normal_z', 'polygons', 'red', 'score', 'triangles', 'xyz_mapping'
Beschreibt, woran ein erweitertes Attribut gehängt werden soll.
Defaultwert: []
Werteliste: [], 'lines', 'object', 'points', 'polygons', 'triangles'
Attribut-Werte.
Handle des Ausgabe-3D-Objektmodells.
set_object_model_3d_attrib liefert den Wert 2 (H_MSG_TRUE) wenn alle Parameter korrekt sind. Andernfalls wird eine Fehlerbehandlung durchgeführt.
set_object_model_3d_attrib_mod
3D Metrology
| Operatoren |