surface_normals_object_model_3dT_surface_normals_object_model_3dSurfaceNormalsObjectModel3dSurfaceNormalsObjectModel3dsurface_normals_object_model_3d (Operator)

Name

surface_normals_object_model_3dT_surface_normals_object_model_3dSurfaceNormalsObjectModel3dSurfaceNormalsObjectModel3dsurface_normals_object_model_3d — Berechnet die 3D-Oberflächennormalen eines 3D-Objektmodells.

Signatur

surface_normals_object_model_3d( : : ObjectModel3D, Method, GenParamName, GenParamValue : ObjectModel3DNormals)

Herror T_surface_normals_object_model_3d(const Htuple ObjectModel3D, const Htuple Method, const Htuple GenParamName, const Htuple GenParamValue, Htuple* ObjectModel3DNormals)

void SurfaceNormalsObjectModel3d(const HTuple& ObjectModel3D, const HTuple& Method, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* ObjectModel3DNormals)

static HObjectModel3DArray HObjectModel3D::SurfaceNormalsObjectModel3d(const HObjectModel3DArray& ObjectModel3D, const HString& Method, const HTuple& GenParamName, const HTuple& GenParamValue)

HObjectModel3D HObjectModel3D::SurfaceNormalsObjectModel3d(const HString& Method, const HTuple& GenParamName, const HTuple& GenParamValue) const

HObjectModel3D HObjectModel3D::SurfaceNormalsObjectModel3d(const char* Method, const HTuple& GenParamName, const HTuple& GenParamValue) const

HObjectModel3D HObjectModel3D::SurfaceNormalsObjectModel3d(const wchar_t* Method, const HTuple& GenParamName, const HTuple& GenParamValue) const   ( Nur Windows)

static void HOperatorSet.SurfaceNormalsObjectModel3d(HTuple objectModel3D, HTuple method, HTuple genParamName, HTuple genParamValue, out HTuple objectModel3DNormals)

static HObjectModel3D[] HObjectModel3D.SurfaceNormalsObjectModel3d(HObjectModel3D[] objectModel3D, string method, HTuple genParamName, HTuple genParamValue)

HObjectModel3D HObjectModel3D.SurfaceNormalsObjectModel3d(string method, HTuple genParamName, HTuple genParamValue)

def surface_normals_object_model_3d(object_model_3d: MaybeSequence[HHandle], method: str, gen_param_name: Sequence[str], gen_param_value: Sequence[Union[float, int, str]]) -> Sequence[HHandle]

def surface_normals_object_model_3d_s(object_model_3d: MaybeSequence[HHandle], method: str, gen_param_name: Sequence[str], gen_param_value: Sequence[Union[float, int, str]]) -> HHandle

Beschreibung

Der Operator surface_normals_object_model_3dsurface_normals_object_model_3dSurfaceNormalsObjectModel3dSurfaceNormalsObjectModel3dsurface_normals_object_model_3d berechnet die 3D-Oberflächennormalen eines Objekts ObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d. Die Berechnung wird mit dem in MethodMethodMethodmethodmethod gewählten Verfahren durchgeführt.

Für MethodMethodMethodmethodmethod='mls'"mls""mls""mls""mls" wird das Verfahren Moving Least Squares (MLS) angewandt. Das MLS-Verfahren für Normalenberechnung ist identisch zu dem MLS-Verfahren für Punktglättung, das im Operator smooth_object_model_3dsmooth_object_model_3dSmoothObjectModel3dSmoothObjectModel3dsmooth_object_model_3d implementiert ist. Anders als smooth_object_model_3dsmooth_object_model_3dSmoothObjectModel3dSmoothObjectModel3dsmooth_object_model_3d glättet der Operator surface_normals_object_model_3dsurface_normals_object_model_3dSurfaceNormalsObjectModel3dSurfaceNormalsObjectModel3dsurface_normals_object_model_3d die Punkte allerdings nicht, d.h. die ursprünglichen 3D-Punkte von ObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d bleiben unverändert. Weitere Information über das MLS-Verfahren und seine Parameter stehen mit der Beschreibung des Operators smooth_object_model_3dsmooth_object_model_3dSmoothObjectModel3dSmoothObjectModel3dsmooth_object_model_3d zur Verfügung.

Beinhaltet das Objekt ObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d Dreiecke, können mit dem Verfahren MethodMethodMethodmethodmethod='triangles'"triangles""triangles""triangles""triangles" die Punktnormalen aus den Flächennormalen der angrenzenden Dreiecke berechnet werden. Die Flächennormalen werden dabei mit dem Winkel gewichtet, den die Dreiecke an dem Punkt umschließen. Die Normalen der Dreiecke werden in den erweiterten Attributen '&triangle_normal_x', '&triangle_normal_y' und '&triangle_normal_z' zurückgeben. Falls die erweiterten Attribute bereits existieren, werden sie nicht überschrieben.

Beinhaltet das Objekt ObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d ein 2D-Mapping (wie z.B. 3D-Objektmodelle, die mittels xyz_to_object_model_3dxyz_to_object_model_3dXyzToObjectModel3dXyzToObjectModel3dxyz_to_object_model_3d erstellt wurden), können mit dem Verfahren MethodMethodMethodmethodmethod='xyz_mapping'"xyz_mapping""xyz_mapping""xyz_mapping""xyz_mapping" die Punktnormalen aus der Umgebung der Punkte im 2D-Mapping berechnet werden. Dazu wird in einer 11x11-Nachbarschaft der Punkte im 2D-Mapping eine Ebene durch die zugehörigen 3D-Punkte gefittet. Die Richtung der Normale dieser Ebene wird anschließend konsistent zum 2D-Mapping gewählt, z.B. in oder entgegen der Blickrichtung des Sensors.

Kann der Normalenvektor eines Punktes nicht bestimmt werden, so wird dieser auf 0 gesetzt. Dies ist beispielsweise der Fall, wenn das 3D-Objektmodell den gleichen Punkt mehr als 'mls_kNN'"mls_kNN""mls_kNN""mls_kNN""mls_kNN" mal enthält.

Ausführungsinformationen

Dieser Operator unterstützt Cancel-Timeouts und Interrupts.

Parameter

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

Handle eines 3D-Objektmodells mit 3D-Punktdaten.

MethodMethodMethodmethodmethod (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Methode für Normalenberechnung.

Default: 'mls' "mls" "mls" "mls" "mls"

Werteliste: 'mls'"mls""mls""mls""mls", 'triangles'"triangles""triangles""triangles""triangles", 'xyz_mapping'"xyz_mapping""xyz_mapping""xyz_mapping""xyz_mapping"

GenParamNameGenParamNameGenParamNamegenParamNamegen_param_name (input_control)  attribute.name-array HTupleSequence[str]HTupleHtuple (string) (string) (HString) (char*)

Namen der generischen Parameter.

Default: []

Werteliste: 'mls_abs_sigma'"mls_abs_sigma""mls_abs_sigma""mls_abs_sigma""mls_abs_sigma", 'mls_force_inwards'"mls_force_inwards""mls_force_inwards""mls_force_inwards""mls_force_inwards", 'mls_kNN'"mls_kNN""mls_kNN""mls_kNN""mls_kNN", 'mls_order'"mls_order""mls_order""mls_order""mls_order", 'mls_relative_sigma'"mls_relative_sigma""mls_relative_sigma""mls_relative_sigma""mls_relative_sigma"

GenParamValueGenParamValueGenParamValuegenParamValuegen_param_value (input_control)  attribute.value-array HTupleSequence[Union[float, int, str]]HTupleHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)

Werte der generischen Parameter.

Default: []

Wertevorschläge: 10, 20, 40, 60, 0.1, 0.5, 1.0, 2.0, 0, 1, 2, 'true'"true""true""true""true", 'false'"false""false""false""false"

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

Handle des 3D-Objektmodells mit berechneten 3D-Normalen.

Vorgänger

sample_object_model_3dsample_object_model_3dSampleObjectModel3dSampleObjectModel3dsample_object_model_3d

Nachfolger

create_surface_modelcreate_surface_modelCreateSurfaceModelCreateSurfaceModelcreate_surface_model, fuse_object_model_3dfuse_object_model_3dFuseObjectModel3dFuseObjectModel3dfuse_object_model_3d

Alternativen

smooth_object_model_3dsmooth_object_model_3dSmoothObjectModel3dSmoothObjectModel3dsmooth_object_model_3d

Modul

3D Metrology