Operator Reference

convert_point_3d_spher_to_cartconvert_point_3d_spher_to_cartConvertPoint3dSpherToCartConvertPoint3dSpherToCartconvert_point_3d_spher_to_cart (Operator)

convert_point_3d_spher_to_cartconvert_point_3d_spher_to_cartConvertPoint3dSpherToCartConvertPoint3dSpherToCartconvert_point_3d_spher_to_cart — Convert spherical coordinates of a 3D point to Cartesian coordinates.

Signature

convert_point_3d_spher_to_cart( : : Longitude, Latitude, Radius, EquatPlaneNormal, ZeroMeridian : X, Y, Z)

Herror convert_point_3d_spher_to_cart(double Longitude, double Latitude, double Radius, const char* EquatPlaneNormal, const char* ZeroMeridian, double* X, double* Y, double* Z)

Herror T_convert_point_3d_spher_to_cart(const Htuple Longitude, const Htuple Latitude, const Htuple Radius, const Htuple EquatPlaneNormal, const Htuple ZeroMeridian, Htuple* X, Htuple* Y, Htuple* Z)

void ConvertPoint3dSpherToCart(const HTuple& Longitude, const HTuple& Latitude, const HTuple& Radius, const HTuple& EquatPlaneNormal, const HTuple& ZeroMeridian, HTuple* X, HTuple* Y, HTuple* Z)

static void HMisc::ConvertPoint3dSpherToCart(const HTuple& Longitude, const HTuple& Latitude, const HTuple& Radius, const HString& EquatPlaneNormal, const HString& ZeroMeridian, HTuple* X, HTuple* Y, HTuple* Z)

static void HMisc::ConvertPoint3dSpherToCart(double Longitude, double Latitude, double Radius, const HString& EquatPlaneNormal, const HString& ZeroMeridian, double* X, double* Y, double* Z)

static void HMisc::ConvertPoint3dSpherToCart(double Longitude, double Latitude, double Radius, const char* EquatPlaneNormal, const char* ZeroMeridian, double* X, double* Y, double* Z)

static void HMisc::ConvertPoint3dSpherToCart(double Longitude, double Latitude, double Radius, const wchar_t* EquatPlaneNormal, const wchar_t* ZeroMeridian, double* X, double* Y, double* Z)   ( Windows only)

static void HOperatorSet.ConvertPoint3dSpherToCart(HTuple longitude, HTuple latitude, HTuple radius, HTuple equatPlaneNormal, HTuple zeroMeridian, out HTuple x, out HTuple y, out HTuple z)

static void HMisc.ConvertPoint3dSpherToCart(HTuple longitude, HTuple latitude, HTuple radius, string equatPlaneNormal, string zeroMeridian, out HTuple x, out HTuple y, out HTuple z)

static void HMisc.ConvertPoint3dSpherToCart(double longitude, double latitude, double radius, string equatPlaneNormal, string zeroMeridian, out double x, out double y, out double z)

def convert_point_3d_spher_to_cart(longitude: MaybeSequence[float], latitude: MaybeSequence[float], radius: MaybeSequence[float], equat_plane_normal: str, zero_meridian: str) -> Tuple[Sequence[float], Sequence[float], Sequence[float]]

def convert_point_3d_spher_to_cart_s(longitude: MaybeSequence[float], latitude: MaybeSequence[float], radius: MaybeSequence[float], equat_plane_normal: str, zero_meridian: str) -> Tuple[float, float, float]

Description

The operator convert_point_3d_spher_to_cartconvert_point_3d_spher_to_cartConvertPoint3dSpherToCartConvertPoint3dSpherToCartconvert_point_3d_spher_to_cart converts the spherical coordinates of a 3D point, which are given in LongitudeLongitudeLongitudelongitudelongitude, LatitudeLatitudeLatitudelatitudelatitude, and RadiusRadiusRadiusradiusradius, into the Cartesian coordinates XXXxx, YYYyy, and ZZZzz. The spherical coordinates LongitudeLongitudeLongitudelongitudelongitude and LatitudeLatitudeLatitudelatitudelatitude must be specified in radians. Furthermore, the LatitudeLatitudeLatitudelatitudelatitude must be within the range , where the latitude of the north pole is , and hence, the latitude of the south pole is .

The orientation of the spherical coordinate system with respect to the Cartesian coordinate system can be specified with the parameters EquatPlaneNormalEquatPlaneNormalEquatPlaneNormalequatPlaneNormalequat_plane_normal and ZeroMeridianZeroMeridianZeroMeridianzeroMeridianzero_meridian.

EquatPlaneNormalEquatPlaneNormalEquatPlaneNormalequatPlaneNormalequat_plane_normal determines the normal of the equatorial plane (longitude == 0) pointing to the north pole (positive latitude) and may take the following values:

'x'"x""x""x""x":

The equatorial plane is the yz plane. The positive x axis points to the north pole.

'-x'"-x""-x""-x""-x":

The equatorial plane is the yz plane. The positive x axis points to the south pole.

'y'"y""y""y""y":

The equatorial plane is the xz plane. The positive y axis points to the north pole.

'-y'"-y""-y""-y""-y":

The equatorial plane is the xz plane. The positive y axis points to the south pole.

'z'"z""z""z""z":

The equatorial plane is the xy plane. The positive z axis points to the north pole.

'-z'"-z""-z""-z""-z":

The equatorial plane is the xy plane. The positive z axis points to the south pole.

The position of the zero meridian can be specified with the parameter ZeroMeridianZeroMeridianZeroMeridianzeroMeridianzero_meridian. For this, the coordinate axis (lying in the equatorial plane) that points to the zero meridian must be passed. The following values for ZeroMeridianZeroMeridianZeroMeridianzeroMeridianzero_meridian are valid:

'x'"x""x""x""x":

The positive x axis points in the direction of the zero meridian.

'-x'"-x""-x""-x""-x":

The negative x axis points in the direction of the zero meridian.

'y'"y""y""y""y":

The positive y axis points in the direction of the zero meridian.

'-y'"-y""-y""-y""-y":

The negative y axis points in the direction of the zero meridian.

'z'"z""z""z""z":

The positive z axis points in the direction of the zero meridian.

'-z'"-z""-z""-z""-z":

The negative z axis points in the direction of the zero meridian.

Only reasonable combinations of EquatPlaneNormalEquatPlaneNormalEquatPlaneNormalequatPlaneNormalequat_plane_normal and ZeroMeridianZeroMeridianZeroMeridianzeroMeridianzero_meridian are permitted, i.e., the normal of the equatorial plane must not be parallel to the direction of the zero meridian. For example, the combination EquatPlaneNormalEquatPlaneNormalEquatPlaneNormalequatPlaneNormalequat_plane_normal='y'"y""y""y""y" and ZeroMeridianZeroMeridianZeroMeridianzeroMeridianzero_meridian='-y'"-y""-y""-y""-y" is not permitted.

Note that in order to guarantee a consistent conversion back from Cartesian to spherical coordinates by using convert_point_3d_cart_to_spherconvert_point_3d_cart_to_spherConvertPoint3dCartToSpherConvertPoint3dCartToSpherconvert_point_3d_cart_to_spher, the same values must be passed for EquatPlaneNormalEquatPlaneNormalEquatPlaneNormalequatPlaneNormalequat_plane_normal and ZeroMeridianZeroMeridianZeroMeridianzeroMeridianzero_meridian as were passed to convert_point_3d_spher_to_cartconvert_point_3d_spher_to_cartConvertPoint3dSpherToCartConvertPoint3dSpherToCartconvert_point_3d_spher_to_cart.

The operator convert_point_3d_spher_to_cartconvert_point_3d_spher_to_cartConvertPoint3dSpherToCartConvertPoint3dSpherToCartconvert_point_3d_spher_to_cart can be used, for example, to convert a camera position that is given in spherical coordinates into Cartesian coordinates. The result can then be utilized to create a complete camera pose by passing the Cartesian coordinates to create_cam_pose_look_at_pointcreate_cam_pose_look_at_pointCreateCamPoseLookAtPointCreateCamPoseLookAtPointcreate_cam_pose_look_at_point.

Execution Information

  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).
  • Multithreading scope: global (may be called from any thread).
  • Processed without parallelization.

Parameters

LongitudeLongitudeLongitudelongitudelongitude (input_control)  angle.rad(-array) HTupleMaybeSequence[float]HTupleHtuple (real) (double) (double) (double)

Longitude of the 3D point.

LatitudeLatitudeLatitudelatitudelatitude (input_control)  angle.rad(-array) HTupleMaybeSequence[float]HTupleHtuple (real) (double) (double) (double)

Latitude of the 3D point.

Restriction: - pi / 2 <= Latitude && Latitude <= pi / 2

RadiusRadiusRadiusradiusradius (input_control)  real(-array) HTupleMaybeSequence[float]HTupleHtuple (real) (double) (double) (double)

Radius of the 3D point.

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

Normal vector of the equatorial plane (points to the north pole).

Default: '-y' "-y" "-y" "-y" "-y"

List of values: '-x'"-x""-x""-x""-x", '-y'"-y""-y""-y""-y", '-z'"-z""-z""-z""-z", 'x'"x""x""x""x", 'y'"y""y""y""y", 'z'"z""z""z""z"

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

Coordinate axis in the equatorial plane that points to the zero meridian.

Default: '-z' "-z" "-z" "-z" "-z"

List of values: '-x'"-x""-x""-x""-x", '-y'"-y""-y""-y""-y", '-z'"-z""-z""-z""-z", 'x'"x""x""x""x", 'y'"y""y""y""y", 'z'"z""z""z""z"

XXXxx (output_control)  real(-array) HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

X coordinate of the 3D point.

YYYyy (output_control)  real(-array) HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Y coordinate of the 3D point.

ZZZzz (output_control)  real(-array) HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Z coordinate of the 3D point.

Result

If the parameters are valid, the operator convert_point_3d_spher_to_cartconvert_point_3d_spher_to_cartConvertPoint3dSpherToCartConvertPoint3dSpherToCartconvert_point_3d_spher_to_cart returns the value 2 ( H_MSG_TRUE) . If necessary an exception is raised.

Possible Predecessors

get_shape_model_3d_paramsget_shape_model_3d_paramsGetShapeModel3dParamsGetShapeModel3dParamsget_shape_model_3d_params

See also

convert_point_3d_cart_to_spherconvert_point_3d_cart_to_spherConvertPoint3dCartToSpherConvertPoint3dCartToSpherconvert_point_3d_cart_to_spher

Module

3D Metrology