affine_trans_object_model_3dT_affine_trans_object_model_3dAffineTransObjectModel3dAffineTransObjectModel3daffine_trans_object_model_3d (Operator)

Name

affine_trans_object_model_3dT_affine_trans_object_model_3dAffineTransObjectModel3dAffineTransObjectModel3daffine_trans_object_model_3d — Anwenden einer beliebigen affinen 3D-Transformation auf 3D-Objektmodelle.

Signatur

affine_trans_object_model_3d( : : ObjectModel3D, HomMat3D : ObjectModel3DAffineTrans)

Herror T_affine_trans_object_model_3d(const Htuple ObjectModel3D, const Htuple HomMat3D, Htuple* ObjectModel3DAffineTrans)

void AffineTransObjectModel3d(const HTuple& ObjectModel3D, const HTuple& HomMat3D, HTuple* ObjectModel3DAffineTrans)

static HObjectModel3DArray HObjectModel3D::AffineTransObjectModel3d(const HObjectModel3DArray& ObjectModel3D, const HHomMat3DArray& HomMat3D)

HObjectModel3D HObjectModel3D::AffineTransObjectModel3d(const HHomMat3D& HomMat3D) const

static void HOperatorSet.AffineTransObjectModel3d(HTuple objectModel3D, HTuple homMat3D, out HTuple objectModel3DAffineTrans)

static HObjectModel3D[] HObjectModel3D.AffineTransObjectModel3d(HObjectModel3D[] objectModel3D, HHomMat3D[] homMat3D)

HObjectModel3D HObjectModel3D.AffineTransObjectModel3d(HHomMat3D homMat3D)

def affine_trans_object_model_3d(object_model_3d: MaybeSequence[HHandle], hom_mat_3d: Sequence[float]) -> Sequence[HHandle]

def affine_trans_object_model_3d_s(object_model_3d: MaybeSequence[HHandle], hom_mat_3d: Sequence[float]) -> HHandle

Beschreibung

affine_trans_object_model_3daffine_trans_object_model_3dAffineTransObjectModel3dAffineTransObjectModel3dAffineTransObjectModel3daffine_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 HomMat3DHomMat3DHomMat3DHomMat3DhomMat3Dhom_mat_3d übergeben werden. Die Anzahl der Transformationsmatrizen ist entweder eins oder entspricht der Anzahl an 3D-Objektmodellen in ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d.

Die Transformationsmatrizen können mit Hilfe der Operatoren hom_mat3d_identityhom_mat3d_identityHomMat3dIdentityHomMat3dIdentityHomMat3dIdentityhom_mat3d_identity, hom_mat3d_scalehom_mat3d_scaleHomMat3dScaleHomMat3dScaleHomMat3dScalehom_mat3d_scale, hom_mat3d_rotatehom_mat3d_rotateHomMat3dRotateHomMat3dRotateHomMat3dRotatehom_mat3d_rotate, hom_mat3d_translatehom_mat3d_translateHomMat3dTranslateHomMat3dTranslateHomMat3dTranslatehom_mat3d_translate etc. aufgebaut werden oder das Resultat von pose_to_hom_mat3dpose_to_hom_mat3dPoseToHomMat3dPoseToHomMat3dPoseToHomMat3dpose_to_hom_mat3d sein (siehe affine_trans_point_3daffine_trans_point_3dAffineTransPoint3dAffineTransPoint3dAffineTransPoint3daffine_trans_point_3d).

Der Operator affine_trans_object_model_3daffine_trans_object_model_3dAffineTransObjectModel3dAffineTransObjectModel3dAffineTransObjectModel3daffine_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_3dcreate_shape_model_3dCreateShapeModel3dCreateShapeModel3dCreateShapeModel3dcreate_shape_model_3d entsprechende Werte für die Parameter RefRotXRefRotXRefRotXRefRotXrefRotXref_rot_x, RefRotYRefRotYRefRotYRefRotYrefRotYref_rot_y, RefRotZRefRotZRefRotZRefRotZrefRotZref_rot_z und OrderOfRotationOrderOfRotationOrderOfRotationOrderOfRotationorderOfRotationorder_of_rotation 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 ObjectModel3DAffineTransObjectModel3DAffineTransObjectModel3DAffineTransObjectModel3DAffineTransobjectModel3DAffineTransobject_model_3daffine_trans 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.

Achtung

affine_trans_object_model_3daffine_trans_object_model_3dAffineTransObjectModel3dAffineTransObjectModel3dAffineTransObjectModel3daffine_trans_object_model_3d transformiert Attribute vom Typ Punktkoordinaten, Punktnormalen und vorbereitetem 3D-Formmodell für das formbasierte 3D-Matching. 3D-Primitive und vorberechnete Datenstrukturen für die 3D Abstandsbestimmung werden nicht kopiert. Alle anderen Attribute werden kopiert ohne sie zu verändern. Um 3D-Primitive zu transformieren, muss der Operator rigid_trans_object_model_3drigid_trans_object_model_3dRigidTransObjectModel3dRigidTransObjectModel3dRigidTransObjectModel3drigid_trans_object_model_3d verwendet werden.

Ausführungsinformationen

Parameter

ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d (input_control)  object_model_3d(-array) HObjectModel3D, HTupleMaybeSequence[HHandle]HTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle der 3D-Objektmodelle.

HomMat3DHomMat3DHomMat3DHomMat3DhomMat3Dhom_mat_3d (input_control)  hom_mat3d(-array) HHomMat3D, HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Transformationsmatrizen.

ObjectModel3DAffineTransObjectModel3DAffineTransObjectModel3DAffineTransObjectModel3DAffineTransobjectModel3DAffineTransobject_model_3daffine_trans (output_control)  object_model_3d(-array) HObjectModel3D, HTupleSequence[HHandle]HTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle der transformierten 3D-Objektmodelle.

Ergebnis

affine_trans_object_model_3daffine_trans_object_model_3dAffineTransObjectModel3dAffineTransObjectModel3dAffineTransObjectModel3daffine_trans_object_model_3d liefert den Wert TRUE wenn alle Parameter korrekt sind. Andernfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

read_object_model_3dread_object_model_3dReadObjectModel3dReadObjectModel3dReadObjectModel3dread_object_model_3d, xyz_to_object_model_3dxyz_to_object_model_3dXyzToObjectModel3dXyzToObjectModel3dXyzToObjectModel3dxyz_to_object_model_3d

Nachfolger

project_object_model_3dproject_object_model_3dProjectObjectModel3dProjectObjectModel3dProjectObjectModel3dproject_object_model_3d, object_model_3d_to_xyzobject_model_3d_to_xyzObjectModel3dToXyzObjectModel3dToXyzObjectModel3dToXyzobject_model_3d_to_xyz

Siehe auch

affine_trans_point_3daffine_trans_point_3dAffineTransPoint3dAffineTransPoint3dAffineTransPoint3daffine_trans_point_3d, rigid_trans_object_model_3drigid_trans_object_model_3dRigidTransObjectModel3dRigidTransObjectModel3dRigidTransObjectModel3drigid_trans_object_model_3d, projective_trans_object_model_3dprojective_trans_object_model_3dProjectiveTransObjectModel3dProjectiveTransObjectModel3dProjectiveTransObjectModel3dprojective_trans_object_model_3d

Modul

3D Metrology