set_object_model_3d_attribT_set_object_model_3d_attribSetObjectModel3dAttribSetObjectModel3dAttrib (Operator)

Name

set_object_model_3d_attribT_set_object_model_3d_attribSetObjectModel3dAttribSetObjectModel3dAttrib — Setzen von Attributen eines 3D-Objektmodells.

Signatur

set_object_model_3d_attrib( : : ObjectModel3D, AttribName, AttachExtAttribTo, AttribValues : ObjectModel3DOut)

Herror T_set_object_model_3d_attrib(const Htuple ObjectModel3D, const Htuple AttribName, const Htuple AttachExtAttribTo, const Htuple AttribValues, Htuple* ObjectModel3DOut)

void SetObjectModel3dAttrib(const HTuple& ObjectModel3D, const HTuple& AttribName, const HTuple& AttachExtAttribTo, const HTuple& AttribValues, HTuple* ObjectModel3DOut)

HObjectModel3D HObjectModel3D::SetObjectModel3dAttrib(const HTuple& AttribName, const HString& AttachExtAttribTo, const HTuple& AttribValues) const

HObjectModel3D HObjectModel3D::SetObjectModel3dAttrib(const HString& AttribName, const HString& AttachExtAttribTo, double AttribValues) const

HObjectModel3D HObjectModel3D::SetObjectModel3dAttrib(const char* AttribName, const char* AttachExtAttribTo, double AttribValues) const

HObjectModel3D HObjectModel3D::SetObjectModel3dAttrib(const wchar_t* AttribName, const wchar_t* AttachExtAttribTo, double AttribValues) const   (Nur Windows)

static void HOperatorSet.SetObjectModel3dAttrib(HTuple objectModel3D, HTuple attribName, HTuple attachExtAttribTo, HTuple attribValues, out HTuple objectModel3DOut)

HObjectModel3D HObjectModel3D.SetObjectModel3dAttrib(HTuple attribName, string attachExtAttribTo, HTuple attribValues)

HObjectModel3D HObjectModel3D.SetObjectModel3dAttrib(string attribName, string attachExtAttribTo, double attribValues)

Beschreibung

set_object_model_3d_attrib_modset_object_model_3d_attrib_modSetObjectModel3dAttribModSetObjectModel3dAttribModSetObjectModel3dAttribMod setzt Standard-Attribute und erweiterte Attribute in AttribNameAttribNameAttribNameAttribNameattribName eines 3D-Objektmodells ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3D auf die Werte in AttribValuesAttribValuesAttribValuesAttribValuesattribValues und liefert ein 3D-Objektmodell mit den neuen Attributwerten in ObjectModel3DOutObjectModel3DOutObjectModel3DOutObjectModel3DOutobjectModel3DOut zurück. set_object_model_3d_attribset_object_model_3d_attribSetObjectModel3dAttribSetObjectModel3dAttribSetObjectModel3dAttrib ist identisch mit set_object_model_3d_attrib_modset_object_model_3d_attrib_modSetObjectModel3dAttribModSetObjectModel3dAttribModSetObjectModel3dAttribMod mit der Ausnahme, dass set_object_model_3d_attribset_object_model_3d_attribSetObjectModel3dAttribSetObjectModel3dAttribSetObjectModel3dAttrib ein neues 3D-Objektmodell erzeugt, anstatt das bestehende zu verändern. Es ist über den Parameter AttachExtAttribToAttachExtAttribToAttachExtAttribToAttachExtAttribToattachExtAttribTo möglich, die Werte von erweiterten Attributen an bereits existierende Standard-Attribute des 3D-Objektmodells zu binden. Für Standard-Attribute wird AttachExtAttribToAttachExtAttribToAttachExtAttribToAttachExtAttribToattachExtAttribTo ignoriert.

Falls die Attribute in AttribNameAttribNameAttribNameAttribNameattribName 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 AttachExtAttribToAttachExtAttribToAttachExtAttribToAttachExtAttribToattachExtAttribTo 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:

'point_coord_x'"point_coord_x""point_coord_x""point_coord_x""point_coord_x":

Die x-Koordinaten einer 3D-Punktmenge werden im Parameter AttribValuesAttribValuesAttribValuesAttribValuesattribValues übergeben. Ist das Attribut nicht vorhanden, müssen die x-, y- und z-Koordinaten gleichzeitig mittels 'point_coord_x'"point_coord_x""point_coord_x""point_coord_x""point_coord_x", 'point_coord_y'"point_coord_y""point_coord_y""point_coord_y""point_coord_y" und 'point_coord_z'"point_coord_z""point_coord_z""point_coord_z""point_coord_z" gesetzt werden. Die Anzahl der x-, y- und z-Koordinaten muss identisch sein.

'point_coord_y'"point_coord_y""point_coord_y""point_coord_y""point_coord_y":

Die y-Koordinaten einer 3D-Punktmenge werden im Parameter AttribValuesAttribValuesAttribValuesAttribValuesattribValues übergeben. Ist das Attribut nicht vorhanden, müssen die x-, y- und z-Koordinaten gleichzeitig mittels 'point_coord_x'"point_coord_x""point_coord_x""point_coord_x""point_coord_x", 'point_coord_y'"point_coord_y""point_coord_y""point_coord_y""point_coord_y" und 'point_coord_z'"point_coord_z""point_coord_z""point_coord_z""point_coord_z" gesetzt werden. Die Anzahl der x-, y- und z-Koordinaten muss identisch sein.

'point_coord_z'"point_coord_z""point_coord_z""point_coord_z""point_coord_z":

Die z-Koordinaten einer 3D-Punktmenge werden im Parameter AttribValuesAttribValuesAttribValuesAttribValuesattribValues übergeben. Ist das Attribut nicht vorhanden, müssen die x-, y- und z-Koordinaten gleichzeitig mittels 'point_coord_x'"point_coord_x""point_coord_x""point_coord_x""point_coord_x", 'point_coord_y'"point_coord_y""point_coord_y""point_coord_y""point_coord_y" und 'point_coord_z'"point_coord_z""point_coord_z""point_coord_z""point_coord_z" gesetzt werden. Die Anzahl der x-, y- und z-Koordinaten muss identisch sein.

'point_normal_x'"point_normal_x""point_normal_x""point_normal_x""point_normal_x":

Die x-Komponenten der 3D-Punktnormalen einer 3D-Punktmenge werden im Parameter AttribValuesAttribValuesAttribValuesAttribValuesattribValues übergeben. Ist das Attribut nicht vorhanden, müssen die x-, y- und z-Komponenten der 3D-Punktnormalen gleichzeitig mittels 'point_normal_x'"point_normal_x""point_normal_x""point_normal_x""point_normal_x", 'point_normal_y'"point_normal_y""point_normal_y""point_normal_y""point_normal_y" und 'point_normal_z'"point_normal_z""point_normal_z""point_normal_z""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.

'point_normal_y'"point_normal_y""point_normal_y""point_normal_y""point_normal_y":

Die y-Komponenten der 3D-Punktnormalen einer 3D-Punktmenge werden im Parameter AttribValuesAttribValuesAttribValuesAttribValuesattribValues übergeben. Ist das Attribut nicht vorhanden, müssen die x-, y- und z-Komponenten der 3D-Punktnormalen gleichzeitig mittels 'point_normal_x'"point_normal_x""point_normal_x""point_normal_x""point_normal_x", 'point_normal_y'"point_normal_y""point_normal_y""point_normal_y""point_normal_y" und 'point_normal_z'"point_normal_z""point_normal_z""point_normal_z""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.

'point_normal_z'"point_normal_z""point_normal_z""point_normal_z""point_normal_z":

Die z-Komponenten der 3D-Punktnormalen einer 3D-Punktmenge werden im Parameter AttribValuesAttribValuesAttribValuesAttribValuesattribValues übergeben. Ist das Attribut nicht vorhanden, müssen die x-, y- und z-Komponenten der 3D-Punktnormalen gleichzeitig mittels 'point_normal_x'"point_normal_x""point_normal_x""point_normal_x""point_normal_x", 'point_normal_y'"point_normal_y""point_normal_y""point_normal_y""point_normal_y" und 'point_normal_z'"point_normal_z""point_normal_z""point_normal_z""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.

'score'"score""score""score""score":

Das Qualitätsmaß der Rekonstruktion einer 3D-Punktmenge wird im Parameter AttribValuesAttribValuesAttribValuesAttribValuesattribValues übergeben. Da dieses Attribut pro 3D-Punkt gesetzt wird, muss die Anzahl der Komponente der Anzahl an vorhandenen 3D-Punkten entsprechen.

'red'"red""red""red""red":

Der Rotkanal einer 3D-Punktmenge wird im Parameter AttribValuesAttribValuesAttribValuesAttribValuesattribValues übergeben. Die Anzahl der Komponente muss der Anzahl an vorhandenen 3D-Punkten entsprechen.

'green'"green""green""green""green":

Der Grünkanal einer 3D-Punktmenge wird im Parameter AttribValuesAttribValuesAttribValuesAttribValuesattribValues übergeben. Die Anzahl der Komponente muss der Anzahl an vorhandenen 3D-Punkten entsprechen.

'blue'"blue""blue""blue""blue":

Der Blaukanal einer 3D-Punktmenge wird im Parameter AttribValuesAttribValuesAttribValuesAttribValuesattribValues übergeben. Die Anzahl der Komponente muss der Anzahl an vorhandenen 3D-Punkten entsprechen.

'triangles'"triangles""triangles""triangles""triangles":

Die Indizes der 3D-Punkte, die Dreiecke repräsentieren, in der folgenden Reihenfolge: Die ersten drei Werte des Parameters AttribValuesAttribValuesAttribValuesAttribValuesattribValues (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.

'polygons'"polygons""polygons""polygons""polygons":

Die Indizes der 3D-Punkte, die Polygone repräsentieren, in der folgenden Reihenfolge: Der erste Wert des Parameters AttribValuesAttribValuesAttribValuesAttribValuesattribValues 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.

'lines'"lines""lines""lines""lines":

Die Indizes der 3D-Punkte, die Linienzüge repräsentieren, in der folgenden Reihenfolge: Der erste Wert des Parameters AttribValuesAttribValuesAttribValuesAttribValuesattribValues 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.

'xyz_mapping'"xyz_mapping""xyz_mapping""xyz_mapping""xyz_mapping":

Die Zuordnung der Bildkoordinaten zu den 3D-Punkten, in der folgenden Reihenfolge: Der erste Wert (Eingabewert 0) des Parameters AttribValuesAttribValuesAttribValuesAttribValuesattribValues 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.

'original_point_indices'"original_point_indices""original_point_indices""original_point_indices""original_point_indices":

Die originalen Punktindizes der 3D-Punkte werden mit AttribValuesAttribValuesAttribValuesAttribValuesattribValues gesetzt. Die Anzahl an originalen Punktindizes muss mit der Anzahl an 3D-Punkten übereinstimmen.

Erweiterte Attribute

Erweiterte Attribute sind Attribute, die aus Standard-Attributen von speziellen Operatoren (z.B. distance_object_model_3ddistance_object_model_3dDistanceObjectModel3dDistanceObjectModel3dDistanceObjectModel3d) 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'"&my_attrib""&my_attrib""&my_attrib""&my_attrib". Erweiterte Attribute können eine beliebige Anzahl von Fließkommawerten annehmen.

Erweiterte Attribute können über den Parameter AttachExtAttribToAttachExtAttribToAttachExtAttribToAttachExtAttribToattachExtAttribTo an bereits existierende Standard-Attribute des 3D-Objektmodells gebunden werden. Die folgenden Werte für AttachExtAttribToAttachExtAttribToAttachExtAttribToAttachExtAttribToattachExtAttribTo sind möglich:

'object'"object""object""object""object" oder []:

Ist dieser Wert gesetzt, wird das erweiterte Attribut an das 3D-Objektmodell als Ganzes gebunden. Die Anzahl der Werte in AttribValuesAttribValuesAttribValuesAttribValuesattribValues ist nicht eingeschränkt.

'points'"points""points""points""points":

Ist dieser Wert gesetzt, wird das erweiterte Attribut an die 3D-Punkte des 3D-Objektmodells gebunden. Die Anzahl der Werte in AttribValuesAttribValuesAttribValuesAttribValuesattribValues muss gleich der Anzahl der bereits bestehenden 3D-Punkte sein.

'triangles'"triangles""triangles""triangles""triangles":

Ist dieser Wert gesetzt, wird das erweiterte Attribut an die Dreiecke des 3D-Objektmodells gebunden. Die Anzahl der Werte in AttribValuesAttribValuesAttribValuesAttribValuesattribValues muss gleich der Anzahl der bereits bestehenden Dreiecke sein.

'polygons'"polygons""polygons""polygons""polygons":

Ist dieser Wert gesetzt, wird das erweiterte Attribut an die Polygone des 3D-Objektmodells gebunden. Die Anzahl der Werte in AttribValuesAttribValuesAttribValuesAttribValuesattribValues muss gleich der Anzahl der bereits bestehenden Polygone sein.

'lines'"lines""lines""lines""lines":

Ist dieser Wert gesetzt, wird das erweiterte Attribut an die Linienzüge des 3D-Objektmodells gebunden. Die Anzahl der Werte in AttribValuesAttribValuesAttribValuesAttribValuesattribValues muss gleich der Anzahl der bereits bestehenden Linienzüge sein.

Achtung

Falls mehrere Attribute in AttribNameAttribNameAttribNameAttribNameattribName übergeben werden, wird AttribValuesAttribValuesAttribValuesAttribValuesattribValues in gleich lange Teiltupel unterteilt. Jedes Teiltupel wird dann einem Attribut zugeordnet. Z.B.: Wenn AttribNameAttribNameAttribNameAttribNameattribName und AttribValuesAttribValuesAttribValuesAttribValuesattribValues folgende Werte haben:

AttribNameAttribNameAttribNameAttribNameattribName := ['&attrib1','&attrib2','&attrib3']["&attrib1","&attrib2","&attrib3"]["&attrib1","&attrib2","&attrib3"]["&attrib1","&attrib2","&attrib3"]["&attrib1","&attrib2","&attrib3"],

AttribValuesAttribValuesAttribValuesAttribValuesattribValues := [0.0,1.0,2.0,3.0,4.0,5.0],

werden die Attribute mit folgenden Werten gesetzt:

'&attrib1'"&attrib1""&attrib1""&attrib1""&attrib1" = [0.0,1.0], '&attrib2'"&attrib2""&attrib2""&attrib2""&attrib2" = [2.0,3.0], '&attrib3'"&attrib3""&attrib3""&attrib3""&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_attribset_object_model_3d_attribSetObjectModel3dAttribSetObjectModel3dAttribSetObjectModel3dAttrib speichert die Eingabedaten AttribValuesAttribValuesAttribValuesAttribValuesattribValues unverändert im 3D-Objektmodell. Daher ist auf Konsistenz der Eingabedaten zu achten, da die meisten Operatoren konsistente 3D-Objektmodelle erwarten.

Ausführungsinformationen

Parameter

ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3D (input_control)  object_model_3d HObjectModel3D, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des Eingabe-3D-Objektmodells.

AttribNameAttribNameAttribNameAttribNameattribName (input_control)  string(-array) HTupleHTupleHtuple (string) (string) (HString) (char*)

Namen der Attribute.

Werteliste: 'blue'"blue""blue""blue""blue", 'green'"green""green""green""green", 'lines'"lines""lines""lines""lines", 'original_point_indices'"original_point_indices""original_point_indices""original_point_indices""original_point_indices", 'point_coord_x'"point_coord_x""point_coord_x""point_coord_x""point_coord_x", 'point_coord_y'"point_coord_y""point_coord_y""point_coord_y""point_coord_y", 'point_coord_z'"point_coord_z""point_coord_z""point_coord_z""point_coord_z", 'point_normal_x'"point_normal_x""point_normal_x""point_normal_x""point_normal_x", 'point_normal_y'"point_normal_y""point_normal_y""point_normal_y""point_normal_y", 'point_normal_z'"point_normal_z""point_normal_z""point_normal_z""point_normal_z", 'polygons'"polygons""polygons""polygons""polygons", 'red'"red""red""red""red", 'score'"score""score""score""score", 'triangles'"triangles""triangles""triangles""triangles", 'xyz_mapping'"xyz_mapping""xyz_mapping""xyz_mapping""xyz_mapping"

AttachExtAttribToAttachExtAttribToAttachExtAttribToAttachExtAttribToattachExtAttribTo (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Beschreibt, woran ein erweitertes Attribut gehängt werden soll.

Defaultwert: []

Werteliste: [], 'lines'"lines""lines""lines""lines", 'object'"object""object""object""object", 'points'"points""points""points""points", 'polygons'"polygons""polygons""polygons""polygons", 'triangles'"triangles""triangles""triangles""triangles"

AttribValuesAttribValuesAttribValuesAttribValuesattribValues (input_control)  real(-array) HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Attribut-Werte.

ObjectModel3DOutObjectModel3DOutObjectModel3DOutObjectModel3DOutobjectModel3DOut (output_control)  object_model_3d HObjectModel3D, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des Ausgabe-3D-Objektmodells.

Ergebnis

set_object_model_3d_attribset_object_model_3d_attribSetObjectModel3dAttribSetObjectModel3dAttribSetObjectModel3dAttrib liefert den Wert 2 (H_MSG_TRUE) wenn alle Parameter korrekt sind. Andernfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

gen_empty_object_model_3dgen_empty_object_model_3dGenEmptyObjectModel3dGenEmptyObjectModel3dGenEmptyObjectModel3d

Nachfolger

get_object_model_3d_paramsget_object_model_3d_paramsGetObjectModel3dParamsGetObjectModel3dParamsGetObjectModel3dParams

Alternativen

set_object_model_3d_attrib_modset_object_model_3d_attrib_modSetObjectModel3dAttribModSetObjectModel3dAttribModSetObjectModel3dAttribMod

Siehe auch

copy_object_model_3dcopy_object_model_3dCopyObjectModel3dCopyObjectModel3dCopyObjectModel3d, remove_object_model_3d_attribremove_object_model_3d_attribRemoveObjectModel3dAttribRemoveObjectModel3dAttribRemoveObjectModel3dAttrib

Modul

3D Metrology