ClassesClassesClassesClasses | | | | Operators

volume_object_model_3d_relative_to_planeT_volume_object_model_3d_relative_to_planeVolumeObjectModel3dRelativeToPlanevolume_object_model_3d_relative_to_planeVolumeObjectModel3dRelativeToPlaneVolumeObjectModel3dRelativeToPlane (Operator)

Name

volume_object_model_3d_relative_to_planeT_volume_object_model_3d_relative_to_planeVolumeObjectModel3dRelativeToPlanevolume_object_model_3d_relative_to_planeVolumeObjectModel3dRelativeToPlaneVolumeObjectModel3dRelativeToPlane — Calculate the volume of a 3D object model relative to a plane.

Signature

volume_object_model_3d_relative_to_plane( : : ObjectModel3D, Plane, Mode, UseFaceOrientation : Volume)

Herror T_volume_object_model_3d_relative_to_plane(const Htuple ObjectModel3D, const Htuple Plane, const Htuple Mode, const Htuple UseFaceOrientation, Htuple* Volume)

Herror volume_object_model_3d_relative_to_plane(const HTuple& ObjectModel3D, const HTuple& Plane, const HTuple& Mode, const HTuple& UseFaceOrientation, double* Volume)

Herror volume_object_model_3d_relative_to_plane(const HTuple& ObjectModel3D, const HTuple& Plane, const HTuple& Mode, const HTuple& UseFaceOrientation, HTuple* Volume)

HTuple HObjectModel3D::VolumeObjectModel3dRelativeToPlane(const HTuple& Plane, const HTuple& Mode, const HTuple& UseFaceOrientation) const

void VolumeObjectModel3dRelativeToPlane(const HTuple& ObjectModel3D, const HTuple& Plane, const HTuple& Mode, const HTuple& UseFaceOrientation, HTuple* Volume)

static HTuple HObjectModel3D::VolumeObjectModel3dRelativeToPlane(const HObjectModel3DArray& ObjectModel3D, const HPoseArray& Plane, const HTuple& Mode, const HTuple& UseFaceOrientation)

double HObjectModel3D::VolumeObjectModel3dRelativeToPlane(const HPose& Plane, const HString& Mode, const HString& UseFaceOrientation) const

double HObjectModel3D::VolumeObjectModel3dRelativeToPlane(const HPose& Plane, const char* Mode, const char* UseFaceOrientation) const

void HOperatorSetX.VolumeObjectModel3dRelativeToPlane(
[in] VARIANT ObjectModel3D, [in] VARIANT Plane, [in] VARIANT Mode, [in] VARIANT UseFaceOrientation, [out] VARIANT* Volume)

VARIANT HObjectModel3DX.VolumeObjectModel3dRelativeToPlane(
[in] VARIANT Plane, [in] VARIANT Mode, [in] VARIANT UseFaceOrientation)

static void HOperatorSet.VolumeObjectModel3dRelativeToPlane(HTuple objectModel3D, HTuple plane, HTuple mode, HTuple useFaceOrientation, out HTuple volume)

static HTuple HObjectModel3D.VolumeObjectModel3dRelativeToPlane(HObjectModel3D[] objectModel3D, HPose[] plane, HTuple mode, HTuple useFaceOrientation)

double HObjectModel3D.VolumeObjectModel3dRelativeToPlane(HPose plane, string mode, string useFaceOrientation)

Description

volume_object_model_3d_relative_to_planevolume_object_model_3d_relative_to_planeVolumeObjectModel3dRelativeToPlanevolume_object_model_3d_relative_to_planeVolumeObjectModel3dRelativeToPlaneVolumeObjectModel3dRelativeToPlane calculates the volume of a 3D object model relative to a plane. For the 3D object model a triangulation or a list of polygons must be available.

The plane in PlanePlanePlanePlanePlaneplane must be given as a pose. The x-y plane of the pose specifies the plane.

If a face of the object is located above the plane and the orientation of the face is towards the plane or inverse, its volume is considered positive, otherwise its volume is considered negative. If the volume should be restricted in relation to the plane, the parameter ModeModeModeModeModemode allows to choose either only volumes above the plane (with 'positive'"positive""positive""positive""positive""positive") or below the plane (with 'negative'"negative""negative""negative""negative""negative"). Alternatively, both sides can be considered either 'unsigned'"unsigned""unsigned""unsigned""unsigned""unsigned", which will add up all volumes below and above the plane, or 'signed'"signed""signed""signed""signed""signed", which will subtract the volumes below from the volumes above. UseFaceOrientationUseFaceOrientationUseFaceOrientationUseFaceOrientationUseFaceOrientationuseFaceOrientation specifies if the order of the points in the faces should be considered for estimating the sign of the volume.

If the 3D object model is completely closed and ordered, the real volume will be measured with the default settings. The plane is still required, but should not change the resulting volume.

Attention

The calculation of the volume might be numerically unstable in case of a large distance between the plane and the object (approx. distance > 10000 times the object diameter).

Parallelization

Parameters

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

Handle of the 3D object model.

PlanePlanePlanePlanePlaneplane (input_control)  pose(-array) HPose, HTupleHTupleHTupleHPoseX, VARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Pose of the plane.

Default value: [0,0,0,0,0,0,0]

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

Method to combine volumes laying above and below the reference plane.

Default value: 'signed' "signed" "signed" "signed" "signed" "signed"

List of values: 'negative'"negative""negative""negative""negative""negative", 'positive'"positive""positive""positive""positive""positive", 'signed'"signed""signed""signed""signed""signed", 'unsigned'"unsigned""unsigned""unsigned""unsigned""unsigned"

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

Decides whether the orientation of a face should affect the resulting sign of the underlying volume.

Default value: 'true' "true" "true" "true" "true" "true"

List of values: 'false'"false""false""false""false""false", 'true'"true""true""true""true""true"

VolumeVolumeVolumeVolumeVolumevolume (output_control)  number(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Calculated volume.

Number of elements: Volume == ObjectModel3D

Example (HDevelop)

gen_box_object_model_3d ([0,0,0,0,0,0,0],3,2,1, ObjectModel3D)
convex_hull_object_model_3d (ObjectModel3D, ObjectModel3DConvexHull)
volume_object_model_3d_relative_to_plane (ObjectModel3DConvexHull,\
                                          [0,0,0,0,0,0,0], 'signed',\
                                          'true', Volume)

Result

volume_object_model_3d_relative_to_planevolume_object_model_3d_relative_to_planeVolumeObjectModel3dRelativeToPlanevolume_object_model_3d_relative_to_planeVolumeObjectModel3dRelativeToPlaneVolumeObjectModel3dRelativeToPlane returns 2 (H_MSG_TRUE) if all parameters are correct. If necessary, an exception is raised.

Possible Predecessors

read_object_model_3dread_object_model_3dReadObjectModel3dread_object_model_3dReadObjectModel3dReadObjectModel3d, xyz_to_object_model_3dxyz_to_object_model_3dXyzToObjectModel3dxyz_to_object_model_3dXyzToObjectModel3dXyzToObjectModel3d, select_points_object_model_3dselect_points_object_model_3dSelectPointsObjectModel3dselect_points_object_model_3dSelectPointsObjectModel3dSelectPointsObjectModel3d

Possible Successors

project_object_model_3dproject_object_model_3dProjectObjectModel3dproject_object_model_3dProjectObjectModel3dProjectObjectModel3d, object_model_3d_to_xyzobject_model_3d_to_xyzObjectModel3dToXyzobject_model_3d_to_xyzObjectModel3dToXyzObjectModel3dToXyz

See also

area_object_model_3darea_object_model_3dAreaObjectModel3darea_object_model_3dAreaObjectModel3dAreaObjectModel3d

Module

3D Metrology


ClassesClassesClassesClasses | | | | Operators