surface_normals_object_model_3dT_surface_normals_object_model_3dSurfaceNormalsObjectModel3dSurfaceNormalsObjectModel3dsurface_normals_object_model_3d (算子名称)
名称
surface_normals_object_model_3dT_surface_normals_object_model_3dSurfaceNormalsObjectModel3dSurfaceNormalsObjectModel3dsurface_normals_object_model_3d — Calculate the 3D surface normals of a 3D object model.
参数签名
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
(
Windows only)
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
描述
该算子 surface_normals_object_model_3dsurface_normals_object_model_3dSurfaceNormalsObjectModel3dSurfaceNormalsObjectModel3dSurfaceNormalsObjectModel3dsurface_normals_object_model_3d calculates the
3D surface normals for the object ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d using the method
specified by MethodMethodMethodMethodmethodmethod. The calculated normals are appended to the
input object and the resulting object is returned in
ObjectModel3DNormalsObjectModel3DNormalsObjectModel3DNormalsObjectModel3DNormalsobjectModel3DNormalsobject_model_3dnormals.
For MethodMethodMethodMethodmethodmethod 'mls'"mls""mls""mls""mls""mls", the normals estimation method Moving Least
Squares (MLS) is applied.
The MLS method for normals estimation is essentially identical with
the MLS method used by smooth_object_model_3dsmooth_object_model_3dSmoothObjectModel3dSmoothObjectModel3dSmoothObjectModel3dsmooth_object_model_3d with the exception
that in surface_normals_object_model_3dsurface_normals_object_model_3dSurfaceNormalsObjectModel3dSurfaceNormalsObjectModel3dSurfaceNormalsObjectModel3dsurface_normals_object_model_3d the 3D points are not
smoothed, i.e., the original 3D points of ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d remain
unchanged. For more details on the MLS as well as a full list and
descriptions of the supported MLS parameters refer to
smooth_object_model_3dsmooth_object_model_3dSmoothObjectModel3dSmoothObjectModel3dSmoothObjectModel3dsmooth_object_model_3d.
If the object ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d contains triangles, the
MethodMethodMethodMethodmethodmethod 'triangles'"triangles""triangles""triangles""triangles""triangles" can be used to obtain point normals
from the normals of the triangles neighboring a point.
The normals of the neighboring triangles are weighted according to
the angle which the triangle encloses at the point.
If the object ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d contains a 2D mapping (for example a
3D object model that was created with xyz_to_object_model_3dxyz_to_object_model_3dXyzToObjectModel3dXyzToObjectModel3dXyzToObjectModel3dxyz_to_object_model_3d),
the MethodMethodMethodMethodmethodmethod 'xyz_mapping'"xyz_mapping""xyz_mapping""xyz_mapping""xyz_mapping""xyz_mapping" can be used to obtain
point normals from the neighborhood of the points in the 2D mapping.
In an 11x11 neighborhood of the points in the 2D mapping, a plane is fit
through the corresponding 3D points. The normal of this plane then gets
switched in a direction consistent with the 2D mapping, for example
along the viewing direction of the sensor or in the opposite direction.
Note that for points where the normal vector cannot be estimated, it is
set to the zero vector. This happens, for example, if the 3D object model
contains an identical point more than 'mls_kNN'"mls_kNN""mls_kNN""mls_kNN""mls_kNN""mls_kNN" times.
运行信息
- 多线程类型:可重入(与非独占操作符并行运行)。
- 多线程作用域:全局(可以从任何线程调用)。
- Automatically parallelized on internal data level.
This operator supports canceling timeouts and interrupts.
参数表
ObjectModel3DObjectModel3DObjectModel3DObjectModel3DobjectModel3Dobject_model_3d (input_control) object_model_3d(-array) → HObjectModel3D, HTupleMaybeSequence[HHandle]HTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Handle of the 3D object model containing 3D point
data.
MethodMethodMethodMethodmethodmethod (input_control) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Normals calculation method.
Default:
'mls'
"mls"
"mls"
"mls"
"mls"
"mls"
List of values:
'mls'"mls""mls""mls""mls""mls", 'triangles'"triangles""triangles""triangles""triangles""triangles", 'xyz_mapping'"xyz_mapping""xyz_mapping""xyz_mapping""xyz_mapping""xyz_mapping"
GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name (input_control) attribute.name-array → HTupleSequence[str]HTupleHtuple (string) (string) (HString) (char*)
Names of generic smoothing parameters.
Default:
[]
List of values:
'mls_abs_sigma'"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_force_inwards", 'mls_kNN'"mls_kNN""mls_kNN""mls_kNN""mls_kNN""mls_kNN", 'mls_order'"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""mls_relative_sigma"
GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_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*)
Values of generic smoothing parameters.
Default:
[]
Suggested values:
10, 20, 40, 60, 0.1, 0.5, 1.0, 2.0, 0, 1, 2, 'true'"true""true""true""true""true", 'false'"false""false""false""false""false"
ObjectModel3DNormalsObjectModel3DNormalsObjectModel3DNormalsObjectModel3DNormalsobjectModel3DNormalsobject_model_3dnormals (output_control) object_model_3d(-array) → HObjectModel3D, HTupleSequence[HHandle]HTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Handle of the 3D object model with calculated
3D normals.
可能的前置算子
sample_object_model_3dsample_object_model_3dSampleObjectModel3dSampleObjectModel3dSampleObjectModel3dsample_object_model_3d
可能的后置算子
create_surface_modelcreate_surface_modelCreateSurfaceModelCreateSurfaceModelCreateSurfaceModelcreate_surface_model,
fuse_object_model_3dfuse_object_model_3dFuseObjectModel3dFuseObjectModel3dFuseObjectModel3dfuse_object_model_3d
可替代算子
smooth_object_model_3dsmooth_object_model_3dSmoothObjectModel3dSmoothObjectModel3dSmoothObjectModel3dsmooth_object_model_3d
模块
3D Metrology