ClassesClassesClassesClasses | | | | Operators

set_calib_data_cam_paramT_set_calib_data_cam_paramSetCalibDataCamParamset_calib_data_cam_paramSetCalibDataCamParamSetCalibDataCamParam (Operator)

Name

set_calib_data_cam_paramT_set_calib_data_cam_paramSetCalibDataCamParamset_calib_data_cam_paramSetCalibDataCamParamSetCalibDataCamParam — Set type and initial parameters of a camera in a calibration data model.

Signature

set_calib_data_cam_param( : : CalibDataID, CameraIdx, CameraType, CameraParam : )

Herror T_set_calib_data_cam_param(const Htuple CalibDataID, const Htuple CameraIdx, const Htuple CameraType, const Htuple CameraParam)

Herror set_calib_data_cam_param(const HTuple& CalibDataID, const HTuple& CameraIdx, const HTuple& CameraType, const HTuple& CameraParam)

void HCalibData::SetCalibDataCamParam(const HTuple& CameraIdx, const HTuple& CameraType, const HTuple& CameraParam) const

void SetCalibDataCamParam(const HTuple& CalibDataID, const HTuple& CameraIdx, const HTuple& CameraType, const HTuple& CameraParam)

void HCalibData::SetCalibDataCamParam(const HTuple& CameraIdx, const HTuple& CameraType, const HCamPar& CameraParam) const

void HCalibData::SetCalibDataCamParam(const HTuple& CameraIdx, const HString& CameraType, const HCamPar& CameraParam) const

void HCalibData::SetCalibDataCamParam(const HTuple& CameraIdx, const char* CameraType, const HCamPar& CameraParam) const

void HCamPar::SetCalibDataCamParam(const HCalibData& CalibDataID, const HTuple& CameraIdx, const HTuple& CameraType) const

void HCamPar::SetCalibDataCamParam(const HCalibData& CalibDataID, const HTuple& CameraIdx, const HString& CameraType) const

void HCamPar::SetCalibDataCamParam(const HCalibData& CalibDataID, const HTuple& CameraIdx, const char* CameraType) const

void HOperatorSetX.SetCalibDataCamParam(
[in] VARIANT CalibDataID, [in] VARIANT CameraIdx, [in] VARIANT CameraType, [in] VARIANT CameraParam)

void HCalibDataX.SetCalibDataCamParam(
[in] VARIANT CameraIdx, [in] VARIANT CameraType, [in] VARIANT CameraParam)

void HCamParX.SetCalibDataCamParam(
[in] IHCalibDataX* CalibDataID, [in] VARIANT CameraIdx, [in] VARIANT CameraType, [in] VARIANT CameraParam)

static void HOperatorSet.SetCalibDataCamParam(HTuple calibDataID, HTuple cameraIdx, HTuple cameraType, HTuple cameraParam)

void HCalibData.SetCalibDataCamParam(HTuple cameraIdx, HTuple cameraType, HCamPar cameraParam)

void HCalibData.SetCalibDataCamParam(HTuple cameraIdx, string cameraType, HCamPar cameraParam)

void HCamPar.SetCalibDataCamParam(HCalibData calibDataID, HTuple cameraIdx, HTuple cameraType)

void HCamPar.SetCalibDataCamParam(HCalibData calibDataID, HTuple cameraIdx, string cameraType)

Description

The operator set_calib_data_cam_paramset_calib_data_cam_paramSetCalibDataCamParamset_calib_data_cam_paramSetCalibDataCamParamSetCalibDataCamParam sets the initial camera parameters CameraParamCameraParamCameraParamCameraParamCameraParamcameraParam for the camera with the index CameraIdxCameraIdxCameraIdxCameraIdxCameraIdxcameraIdx in the calibration data model CalibDataIDCalibDataIDCalibDataIDCalibDataIDCalibDataIDcalibDataID. The parameter CameraIdxCameraIdxCameraIdxCameraIdxCameraIdxcameraIdx must be between 0 and NumCameras-1 (NumCameras is specified during model creation with create_calib_datacreate_calib_dataCreateCalibDatacreate_calib_dataCreateCalibDataCreateCalibData and can be queried with get_calib_dataget_calib_dataGetCalibDataget_calib_dataGetCalibDataGetCalibData). If a camera with CameraIdxCameraIdxCameraIdxCameraIdxCameraIdxcameraIdx was already defined, its parameters are overwritten by the current ones (the camera is substituted). In this case, the selection which camera parameters are marked for optimization is reset and maybe has to be set again. Note that all NumCameras cameras must be set to perform calibrate_camerascalibrate_camerasCalibrateCamerascalibrate_camerasCalibrateCamerasCalibrateCameras. The calibration procedure refines these initial parameters.

Below is an overview of all available camera types and their respective parameters CameraParamCameraParamCameraParamCameraParamCameraParamcameraParam. In the list, “projective area-scan cameras” refers to the property that the lens performs a perspetive projection on the object-side of the lens, while “telecentric area-scan cameras” refers to the property that the lens performs a telecentric projection on the object-side of the lens.

CameraTypeCameraTypeCameraTypeCameraTypeCameraTypecameraType is only provided for backwards compatibility. Its value is ignored since the same information is also contained in the first element of CameraParamCameraParamCameraParamCameraParamCameraParamcameraParam.

Area-scan Cameras with regular lenses

Projective area-scan cameras

'area_scan_division'"area_scan_division""area_scan_division""area_scan_division""area_scan_division""area_scan_division"

['area_scan_division', Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_division", Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_division", Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_division", Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_division", Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_division", Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]

'area_scan_polynomial'"area_scan_polynomial""area_scan_polynomial""area_scan_polynomial""area_scan_polynomial""area_scan_polynomial"

['area_scan_polynomial', Focus, K1, K2, K3, P1, P2, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_polynomial", Focus, K1, K2, K3, P1, P2, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_polynomial", Focus, K1, K2, K3, P1, P2, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_polynomial", Focus, K1, K2, K3, P1, P2, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_polynomial", Focus, K1, K2, K3, P1, P2, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_polynomial", Focus, K1, K2, K3, P1, P2, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]

Telecentric area-scan cameras

'area_scan_telecentric_division'"area_scan_telecentric_division""area_scan_telecentric_division""area_scan_telecentric_division""area_scan_telecentric_division""area_scan_telecentric_division"

['area_scan_telecentric_division', Magnification, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_telecentric_division", Magnification, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_telecentric_division", Magnification, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_telecentric_division", Magnification, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_telecentric_division", Magnification, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_telecentric_division", Magnification, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]

'area_scan_telecentric_polynomial'"area_scan_telecentric_polynomial""area_scan_telecentric_polynomial""area_scan_telecentric_polynomial""area_scan_telecentric_polynomial""area_scan_telecentric_polynomial"

['area_scan_telecentric_polynomial', Magnification, K1, K2, K3, P1, P2, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_telecentric_polynomial", Magnification, K1, K2, K3, P1, P2, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_telecentric_polynomial", Magnification, K1, K2, K3, P1, P2, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_telecentric_polynomial", Magnification, K1, K2, K3, P1, P2, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_telecentric_polynomial", Magnification, K1, K2, K3, P1, P2, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_telecentric_polynomial", Magnification, K1, K2, K3, P1, P2, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]

Area-scan cameras with tilt lenses

Projective area-scan cameras

'area_scan_tilt_division'"area_scan_tilt_division""area_scan_tilt_division""area_scan_tilt_division""area_scan_tilt_division""area_scan_tilt_division"

['area_scan_tilt_division', Focus, Kappa, ImagePlaneDist, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_division", Focus, Kappa, ImagePlaneDist, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_division", Focus, Kappa, ImagePlaneDist, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_division", Focus, Kappa, ImagePlaneDist, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_division", Focus, Kappa, ImagePlaneDist, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_division", Focus, Kappa, ImagePlaneDist, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]

'area_scan_tilt_polynomial'"area_scan_tilt_polynomial""area_scan_tilt_polynomial""area_scan_tilt_polynomial""area_scan_tilt_polynomial""area_scan_tilt_polynomial"

['area_scan_tilt_polynomial', Focus, K1, K2, K3, P1, P2, ImagePlaneDist, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_polynomial", Focus, K1, K2, K3, P1, P2, ImagePlaneDist, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_polynomial", Focus, K1, K2, K3, P1, P2, ImagePlaneDist, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_polynomial", Focus, K1, K2, K3, P1, P2, ImagePlaneDist, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_polynomial", Focus, K1, K2, K3, P1, P2, ImagePlaneDist, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_polynomial", Focus, K1, K2, K3, P1, P2, ImagePlaneDist, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]

'area_scan_tilt_image_side_telecentric_division'"area_scan_tilt_image_side_telecentric_division""area_scan_tilt_image_side_telecentric_division""area_scan_tilt_image_side_telecentric_division""area_scan_tilt_image_side_telecentric_division""area_scan_tilt_image_side_telecentric_division"

['area_scan_tilt_image_side_telecentric_division', Focus, Kappa, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_image_side_telecentric_division", Focus, Kappa, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_image_side_telecentric_division", Focus, Kappa, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_image_side_telecentric_division", Focus, Kappa, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_image_side_telecentric_division", Focus, Kappa, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_image_side_telecentric_division", Focus, Kappa, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]

'area_scan_tilt_image_side_telecentric_polynomial'"area_scan_tilt_image_side_telecentric_polynomial""area_scan_tilt_image_side_telecentric_polynomial""area_scan_tilt_image_side_telecentric_polynomial""area_scan_tilt_image_side_telecentric_polynomial""area_scan_tilt_image_side_telecentric_polynomial"

['area_scan_tilt_image_side_telecentric_polynomial', Focus, K1, K2, K3, P1, P2, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_image_side_telecentric_polynomial", Focus, K1, K2, K3, P1, P2, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_image_side_telecentric_polynomial", Focus, K1, K2, K3, P1, P2, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_image_side_telecentric_polynomial", Focus, K1, K2, K3, P1, P2, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_image_side_telecentric_polynomial", Focus, K1, K2, K3, P1, P2, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_image_side_telecentric_polynomial", Focus, K1, K2, K3, P1, P2, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]

Telecentric area-scan cameras

'area_scan_tilt_bilateral_telecentric_division'"area_scan_tilt_bilateral_telecentric_division""area_scan_tilt_bilateral_telecentric_division""area_scan_tilt_bilateral_telecentric_division""area_scan_tilt_bilateral_telecentric_division""area_scan_tilt_bilateral_telecentric_division"

['area_scan_tilt_bilateral_telecentric_division', Magnification, Kappa, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_bilateral_telecentric_division", Magnification, Kappa, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_bilateral_telecentric_division", Magnification, Kappa, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_bilateral_telecentric_division", Magnification, Kappa, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_bilateral_telecentric_division", Magnification, Kappa, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_bilateral_telecentric_division", Magnification, Kappa, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]

'area_scan_tilt_bilateral_telecentric_polynomial'"area_scan_tilt_bilateral_telecentric_polynomial""area_scan_tilt_bilateral_telecentric_polynomial""area_scan_tilt_bilateral_telecentric_polynomial""area_scan_tilt_bilateral_telecentric_polynomial""area_scan_tilt_bilateral_telecentric_polynomial"

['area_scan_tilt_bilateral_telecentric_polynomial', Magnification, K1, K2, K3, P1, P2, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_bilateral_telecentric_polynomial", Magnification, K1, K2, K3, P1, P2, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_bilateral_telecentric_polynomial", Magnification, K1, K2, K3, P1, P2, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_bilateral_telecentric_polynomial", Magnification, K1, K2, K3, P1, P2, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_bilateral_telecentric_polynomial", Magnification, K1, K2, K3, P1, P2, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_bilateral_telecentric_polynomial", Magnification, K1, K2, K3, P1, P2, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]

'area_scan_tilt_object_side_telecentric_division'"area_scan_tilt_object_side_telecentric_division""area_scan_tilt_object_side_telecentric_division""area_scan_tilt_object_side_telecentric_division""area_scan_tilt_object_side_telecentric_division""area_scan_tilt_object_side_telecentric_division"

['area_scan_tilt_object_side_telecentric_division', Magnification, Kappa, ImagePlaneDist, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_object_side_telecentric_division", Magnification, Kappa, ImagePlaneDist, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_object_side_telecentric_division", Magnification, Kappa, ImagePlaneDist, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_object_side_telecentric_division", Magnification, Kappa, ImagePlaneDist, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_object_side_telecentric_division", Magnification, Kappa, ImagePlaneDist, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_object_side_telecentric_division", Magnification, Kappa, ImagePlaneDist, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]

'area_scan_tilt_object_side_telecentric_polynomial'"area_scan_tilt_object_side_telecentric_polynomial""area_scan_tilt_object_side_telecentric_polynomial""area_scan_tilt_object_side_telecentric_polynomial""area_scan_tilt_object_side_telecentric_polynomial""area_scan_tilt_object_side_telecentric_polynomial"

['area_scan_tilt_object_side_telecentric_polynomial', Magnification, K1, K2, K3, P1, P2, ImagePlaneDist, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_object_side_telecentric_polynomial", Magnification, K1, K2, K3, P1, P2, ImagePlaneDist, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_object_side_telecentric_polynomial", Magnification, K1, K2, K3, P1, P2, ImagePlaneDist, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_object_side_telecentric_polynomial", Magnification, K1, K2, K3, P1, P2, ImagePlaneDist, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_object_side_telecentric_polynomial", Magnification, K1, K2, K3, P1, P2, ImagePlaneDist, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]["area_scan_tilt_object_side_telecentric_polynomial", Magnification, K1, K2, K3, P1, P2, ImagePlaneDist, Tilt, Rot, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight]

Line scan cameras

'line_scan'"line_scan""line_scan""line_scan""line_scan""line_scan"

['line_scan', Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight, Vx, Vy, Vz]["line_scan", Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight, Vx, Vy, Vz]["line_scan", Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight, Vx, Vy, Vz]["line_scan", Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight, Vx, Vy, Vz]["line_scan", Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight, Vx, Vy, Vz]["line_scan", Focus, Kappa, Sx, Sy, Cx, Cy, ImageWidth, ImageHeight, Vx, Vy, Vz]

For a detailed description of the camera types, camera parameters and suggested initial values, see calibrate_camerascalibrate_camerasCalibrateCamerascalibrate_camerasCalibrateCamerasCalibrateCameras.

The camera type can be queried later by calling get_calib_dataget_calib_dataGetCalibDataget_calib_dataGetCalibDataGetCalibData with the arguments ItemType='camera'"camera""camera""camera""camera""camera" and DataName='type'"type""type""type""type""type". The initial camera parameters can be queried by calling get_calib_dataget_calib_dataGetCalibDataget_calib_dataGetCalibDataGetCalibData with arguments ItemType='camera'"camera""camera""camera""camera""camera" and DataName='init_params'"init_params""init_params""init_params""init_params""init_params".

Parallelization

This operator modifies the state of the following input parameter:

The value of this parameter may not be shared across multiple threads without external synchronization.

Parameters

CalibDataIDCalibDataIDCalibDataIDCalibDataIDCalibDataIDcalibDataID (input_control, state is modified)  calib_data HCalibData, HTupleHTupleHCalibData, HTupleHCalibDataX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Handle of a calibration data model.

CameraIdxCameraIdxCameraIdxCameraIdxCameraIdxcameraIdx (input_control)  number-array HTupleHTupleHTupleVARIANTHtuple (integer / string) (int / long / string) (Hlong / HString) (Hlong / char*) (Hlong / BSTR) (Hlong / char*)

Camera index.

Default value: 0

Suggested values: 'all'"all""all""all""all""all", 0, 1, 2

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

Type of the camera.

Default value: []

List of values: []

CameraParamCameraParamCameraParamCameraParamCameraParamcameraParam (input_control)  campar HCamPar, HTupleHTupleHTupleHCamParX, VARIANTHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*) (double / Hlong / BSTR) (double / Hlong / char*)

Initial camera internal parameters.

Possible Predecessors

create_calib_datacreate_calib_dataCreateCalibDatacreate_calib_dataCreateCalibDataCreateCalibData, set_calib_data_calib_objectset_calib_data_calib_objectSetCalibDataCalibObjectset_calib_data_calib_objectSetCalibDataCalibObjectSetCalibDataCalibObject

Possible Successors

set_calib_data_calib_objectset_calib_data_calib_objectSetCalibDataCalibObjectset_calib_data_calib_objectSetCalibDataCalibObjectSetCalibDataCalibObject, set_calib_data_observ_pointsset_calib_data_observ_pointsSetCalibDataObservPointsset_calib_data_observ_pointsSetCalibDataObservPointsSetCalibDataObservPoints, find_calib_objectfind_calib_objectFindCalibObjectfind_calib_objectFindCalibObjectFindCalibObject

Module

Calibration


ClassesClassesClassesClasses | | | | Operators