affine_trans_object_model_3d
— Anwenden einer beliebigen affinen 3D-Transformation auf
3D-Objektmodelle.
affine_trans_object_model_3d( : : ObjectModel3D, HomMat3D : ObjectModel3DAffineTrans)
affine_trans_object_model_3d
wendet beliebige affine
3D-Transformationen (Skalierung, Drehung, Verschiebung) auf
3D-Objektmodelle an und liefert den Handle der transformierten
3D-Objektmodelle zurück. Die Transformation wird durch eine oder
mehrere homogene Transformationsmatrizen beschrieben, die in
HomMat3D
übergeben werden. Die Anzahl der
Transformationsmatrizen ist entweder eins oder entspricht der
Anzahl an 3D-Objektmodellen in ObjectModel3D
.
Die Transformationsmatrizen können mit Hilfe der Operatoren
hom_mat3d_identity
, hom_mat3d_scale
,
hom_mat3d_rotate
, hom_mat3d_translate
etc.
aufgebaut werden oder das Resultat von pose_to_hom_mat3d
sein (siehe affine_trans_point_3d
).
Der Operator affine_trans_object_model_3d
wird in der Regel
nicht für das 3D-Matching benötigt. Falls dort eine Rotation des
3D-Objektmodells in eine Referenzorientierung erfolgen soll, wird
empfohlen, stattdessen in create_shape_model_3d
entsprechende Werte für die Parameter RefRotX
,
RefRotY
, RefRotZ
und OrderOfRotation
zu übergeben.
Der Operator unterstützt ein oder mehrere 3D-Objektmodelle mit einer
Transformationsmatrix (N:1), ein 3D-Objektmodell mit ein oder mehreren
Transformationsmatritzen (1:N) sowie eine Transformationsmatrix pro
übergebenem 3D-Objektmodell, die dann nur auf das jeweilige
3D-Objektmodell angewandt wird (N:N). Dabei kann N auch für 0 stehen, d.h.
es kann keine Matrix oder kein Objektmodell übergeben werden, in welchem
Fall in ObjectModel3DAffineTrans
ein leeres Tupel zurückgegeben
wird. Dies kann z.B. verwendet werden, um die Ergebnisse von anderen
Operatoren zu transformieren, ohne vorher zu prüfen ob tatsächlich
mindestens ein Ergebnis vorhanden ist.
affine_trans_object_model_3d
transformiert Attribute vom Typ
Punktkoordinaten, Punktnormalen und vorbereitetem 3D-Formmodell
für das formbasierte 3D-Matching. Alle anderen Attribute werden
kopiert ohne sie zu verändern. Um 3D-Primitive zu transformieren,
muss der Operator rigid_trans_object_model_3d
verwendet
werden.
ObjectModel3D
(input_control) object_model_3d(-array) →
(handle)
Handle der 3D-Objektmodelle.
HomMat3D
(input_control) hom_mat3d(-array) →
(real)
Transformationsmatrizen.
ObjectModel3DAffineTrans
(output_control) object_model_3d(-array) →
(handle)
Handle der transformierten 3D-Objektmodelle.
affine_trans_object_model_3d
liefert den Wert 2 (H_MSG_TRUE) wenn alle
Parameter korrekt sind. Andernfalls wird eine Fehlerbehandlung
durchgeführt.
read_object_model_3d
,
xyz_to_object_model_3d
project_object_model_3d
,
object_model_3d_to_xyz
affine_trans_point_3d
,
rigid_trans_object_model_3d
,
projective_trans_object_model_3d
3D Metrology