KlassenKlassenKlassenKlassen | | | | Operatoren

set_object_model_3d_attribset_object_model_3d_attribSetObjectModel3dAttribset_object_model_3d_attribSetObjectModel3dAttribSetObjectModel3dAttrib (Operator)

Name

set_object_model_3d_attribset_object_model_3d_attribSetObjectModel3dAttribset_object_model_3d_attribSetObjectModel3dAttribSetObjectModel3dAttrib — Setzen von Attributen eines 3D-Objektmodells.

Signatur

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

Herror set_object_model_3d_attrib(const Hlong ObjectModel3D, const char* AttribName, const char* AttachExtAttribTo, double AttribValues, Hlong* ObjectModel3DOut)

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

Herror set_object_model_3d_attrib(const HTuple& ObjectModel3D, const HTuple& AttribName, const HTuple& AttachExtAttribTo, const HTuple& AttribValues, Hlong* ObjectModel3DOut)

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

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

void HOperatorSetX.SetObjectModel3dAttrib(
[in] VARIANT ObjectModel3D, [in] VARIANT AttribName, [in] VARIANT AttachExtAttribTo, [in] VARIANT AttribValues, [out] VARIANT* ObjectModel3DOut)

IHObjectModel3DX* HObjectModel3DX.SetObjectModel3dAttrib(
[in] VARIANT AttribName, [in] BSTR AttachExtAttribTo, [in] VARIANT AttribValues)

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_modSetObjectModel3dAttribModset_object_model_3d_attrib_modSetObjectModel3dAttribModSetObjectModel3dAttribMod setzt Standard-Attribute und erweiterte Attribute in AttribNameAttribNameAttribNameAttribNameAttribNameattribName eines 3D-Objektmodells ObjectModel3DObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3D auf die Werte in AttribValuesAttribValuesAttribValuesAttribValuesAttribValuesattribValues und liefert ein 3D-Objektmodell mit den neuen Attributwerten in ObjectModel3DOutObjectModel3DOutObjectModel3DOutObjectModel3DOutObjectModel3DOutobjectModel3DOut zurück. set_object_model_3d_attribset_object_model_3d_attribSetObjectModel3dAttribset_object_model_3d_attribSetObjectModel3dAttribSetObjectModel3dAttrib ist identisch mit set_object_model_3d_attrib_modset_object_model_3d_attrib_modSetObjectModel3dAttribModset_object_model_3d_attrib_modSetObjectModel3dAttribModSetObjectModel3dAttribMod mit der Ausnahme, dass set_object_model_3d_attribset_object_model_3d_attribSetObjectModel3dAttribset_object_model_3d_attribSetObjectModel3dAttribSetObjectModel3dAttrib ein neues 3D-Objektmodell erzeugt, anstatt das bestehende zu verändern. Es ist über den Parameter AttachExtAttribToAttachExtAttribToAttachExtAttribToAttachExtAttribToAttachExtAttribToattachExtAttribTo möglich, die Werte von erweiterten Attributen an bereits existierende Standard-Attribute des 3D-Objektmodells zu binden. Für Standard-Attribute wird AttachExtAttribToAttachExtAttribToAttachExtAttribToAttachExtAttribToAttachExtAttribToattachExtAttribTo ignoriert.

Falls die Attribute in AttribNameAttribNameAttribNameAttribNameAttribNameattribName 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 AttachExtAttribToAttachExtAttribToAttachExtAttribToAttachExtAttribToAttachExtAttribToattachExtAttribTo 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""point_coord_x":

Die x-Koordinaten einer 3D-Punktmenge werden im Parameter AttribValuesAttribValuesAttribValuesAttribValuesAttribValuesattribValues ü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_x", 'point_coord_y'"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""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""point_coord_y":

Die y-Koordinaten einer 3D-Punktmenge werden im Parameter AttribValuesAttribValuesAttribValuesAttribValuesAttribValuesattribValues ü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_x", 'point_coord_y'"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""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""point_coord_z":

Die z-Koordinaten einer 3D-Punktmenge werden im Parameter AttribValuesAttribValuesAttribValuesAttribValuesAttribValuesattribValues ü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_x", 'point_coord_y'"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""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""point_normal_x":

Die x-Komponenten der 3D-Punktnormalen einer 3D-Punktmenge werden im Parameter AttribValuesAttribValuesAttribValuesAttribValuesAttribValuesattribValues ü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_x", 'point_normal_y'"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""point_normal_z" gesetzt werden. Die Anzahl der x-, y- und z-Komponenten der Anzahl an vorhandenen 3D-Punkten entsprechenn. 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""point_normal_y":

Die y-Komponenten der 3D-Punktnormalen einer 3D-Punktmenge werden im Parameter AttribValuesAttribValuesAttribValuesAttribValuesAttribValuesattribValues ü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_x", 'point_normal_y'"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""point_normal_z" gesetzt werden. Die Anzahl der x-, y- und z-Komponenten muss der Anzahl an vorhandenen 3D-Punkten entsprechenn. 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""point_normal_z":

Die z-Komponenten der 3D-Punktnormalen einer 3D-Punktmenge werden im Parameter AttribValuesAttribValuesAttribValuesAttribValuesAttribValuesattribValues ü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_x", 'point_normal_y'"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""point_normal_z" gesetzt werden. Die Anzahl der x-, y- und z-Komponenten muss der Anzahl an vorhandenen 3D-Punkten entsprechenn. Die 3D-Punktnormalen werden nicht auf die Länge 1 normiert.

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

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

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

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

Die Zuordnung der Bildkoordinaten zu den 3D-Punkten, in der folgenden Reihenfolge: Der erste Wert (Eingabewert 0) des Parameters AttribValuesAttribValuesAttribValuesAttribValuesAttribValuesattribValues 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_3ddistance_object_model_3dDistanceObjectModel3ddistance_object_model_3dDistanceObjectModel3dDistanceObjectModel3d) 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""&my_attrib". Erweiterte Attribute können eine beliebige Anzahl von Fließkommawerten annehmen.

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

'object'"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 AttribValuesAttribValuesAttribValuesAttribValuesAttribValuesattribValues ist nicht eingeschränkt.

'points'"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 AttribValuesAttribValuesAttribValuesAttribValuesAttribValuesattribValues muss gleich der Anzahl der bereits bestehenden 3D-Punkte sein.

'triangles'"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 AttribValuesAttribValuesAttribValuesAttribValuesAttribValuesattribValues muss gleich der Anzahl der bereits bestehenden Dreiecke sein.

'polygons'"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 AttribValuesAttribValuesAttribValuesAttribValuesAttribValuesattribValues muss gleich der Anzahl der bereits bestehenden Polygone sein.

'lines'"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 AttribValuesAttribValuesAttribValuesAttribValuesAttribValuesattribValues muss gleich der Anzahl der bereits bestehenden Linienzüge sein.

Es ist zu beachten, dass falls ein 3D-Objektmodell nicht länger benötigt wird oder überschrieben werden soll, zunächst der Speicher wieder freigegeben werden muss durch Aufrufen des Operators clear_object_model_3dclear_object_model_3dClearObjectModel3dclear_object_model_3dClearObjectModel3dClearObjectModel3d.

Achtung

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

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

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

werden die Attribute mit folgenden Werten gesetzt:

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

Parallelisierung

Parameter

ObjectModel3DObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3D (input_control)  object_model_3d HObjectModel3D, HTupleHTupleHObjectModel3D, HTupleHObjectModel3DX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Handle des Eingabe-3D-Objektmodells.

AttribNameAttribNameAttribNameAttribNameAttribNameattribName (input_control)  string(-array) HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Namen der Attribute.

Werteliste: 'lines'"lines""lines""lines""lines""lines", 'point_coord_x'"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_y", 'point_coord_z'"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_x", 'point_normal_y'"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""point_normal_z", 'polygons'"polygons""polygons""polygons""polygons""polygons", 'triangles'"triangles""triangles""triangles""triangles""triangles", 'xyz_mapping'"xyz_mapping""xyz_mapping""xyz_mapping""xyz_mapping""xyz_mapping"

AttachExtAttribToAttachExtAttribToAttachExtAttribToAttachExtAttribToAttachExtAttribToattachExtAttribTo (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

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

Defaultwert: []

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

AttribValuesAttribValuesAttribValuesAttribValuesAttribValuesattribValues (input_control)  real(-array) HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Attribut-Werte.

ObjectModel3DOutObjectModel3DOutObjectModel3DOutObjectModel3DOutObjectModel3DOutobjectModel3DOut (output_control)  object_model_3d HObjectModel3D, HTupleHTupleHObjectModel3D, HTupleHObjectModel3DX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Handle des Ausgabe-3D-Objektmodells.

Ergebnis

set_object_model_3d_attribset_object_model_3d_attribSetObjectModel3dAttribset_object_model_3d_attribSetObjectModel3dAttribSetObjectModel3dAttrib 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_3dGenEmptyObjectModel3dgen_empty_object_model_3dGenEmptyObjectModel3dGenEmptyObjectModel3d

Nachfolger

get_object_model_3d_paramsget_object_model_3d_paramsGetObjectModel3dParamsget_object_model_3d_paramsGetObjectModel3dParamsGetObjectModel3dParams

Alternativen

set_object_model_3d_attrib_modset_object_model_3d_attrib_modSetObjectModel3dAttribModset_object_model_3d_attrib_modSetObjectModel3dAttribModSetObjectModel3dAttribMod

Modul

3D Metrology


KlassenKlassenKlassenKlassen | | | | Operatoren