eVision C++ API 26.10.0-beta.2.dev
Loading...
Searching...
No Matches
eVision::Legacy::EWorldShape Class Reference

Manages a complete context for calibrating a field of view. More...

#include <eVision/EasyGauge/Legacy/EWorldShape.h>

Inheritance diagram for eVision::Legacy::EWorldShape:
Collaboration diagram for eVision::Legacy::EWorldShape:

Public Member Functions

 EWorldShape (const eVision::Legacy::EWorldShape &other)
 Constructs a EWorldShape object.
 EWorldShape ()
 Constructs a EWorldShape object.
virtual ~EWorldShape () throw ()
eVision::Legacy::EWorldShape & operator= (const eVision::Legacy::EWorldShape &other)
 Copies all the data from another EWorldShape object into the current EWorldShape object.
eVision::EPoint GetCenter () const
 Position of the origin point of the reference frame as projected onto the image, i.e. the Sensor position of the point at World coordinates (0,0).
void SetCenter (const eVision::EPoint &center)
 Position of the origin point of the reference frame as projected onto the image, i.e. the Sensor position of the point at World coordinates (0,0).
void SetCenterXY (float centerX, float centerY)
 Position of the origin point of the reference frame as projected onto the image, i.e. the Sensor position of the point at World coordinates (0,0).
float GetCenterX () const
 Horizontal position of the origin point of the reference frame as projected onto the image, i.e. the Sensor abscissa of the point at World coordinates (0,0).
float GetCenterY () const
 Vertical position of the origin point of the reference frame as projected onto the image, i.e. the Sensor ordinate of the point at World coordinates (0,0).
float GetAngle () const
 Tilt X angle, that is the amplitude of the rotation applied around the X-axis of the sensor to bring the optical (Z) axis perpendicular to the field of view.
void SetAngle (float f32Angle)
 Tilt X angle, that is the amplitude of the rotation applied around the X-axis of the sensor to bring the optical (Z) axis perpendicular to the field of view.
void SetScale (float f32Scale)
 The scale of the reference frame.
float GetScale () const
 The scale of the reference frame.
float GetRatio () const
 XResolution/YResolution ratio.
void SetRatio (float ratio)
 XResolution/YResolution ratio.
void SetSensor (int32_t sensorWidth, int32_t sensorHeight, float fieldWidth, float fieldHeight, float centerX, float centerY, float angle, float tiltXAngle, float tiltYAngle, float perspectiveStrength, float distortionStrength, float opticalCenterX, float opticalCenterY, uint32_t calibrationModes)
 Initializes the calibration object using all given parameters.
void SetSensor (int32_t sensorWidth, int32_t sensorHeight, float fieldWidth, float fieldHeight, float centerX, float centerY, float angle, float tiltXAngle, float tiltYAngle, float perspectiveStrength, float distortionStrength, float opticalCenterX, float opticalCenterY)
 Initializes the calibration object using all given parameters.
void SetSensor (int32_t sensorWidth, int32_t sensorHeight, float fieldWidth, float fieldHeight, float centerX, float centerY, float angle, float tiltXAngle, float tiltYAngle, float perspectiveStrength, float distortionStrength, float opticalCenterX)
 Initializes the calibration object using all given parameters.
void SetSensor (int32_t sensorWidth, int32_t sensorHeight, float fieldWidth, float fieldHeight, float centerX, float centerY, float angle, float tiltXAngle, float tiltYAngle, float perspectiveStrength, float distortionStrength)
 Initializes the calibration object using all given parameters.
void SetSensor (int32_t sensorWidth, int32_t sensorHeight, float fieldWidth, float fieldHeight, float centerX, float centerY, float angle, float tiltXAngle, float tiltYAngle, float perspectiveStrength)
 Initializes the calibration object using all given parameters.
void SetSensor (int32_t sensorWidth, int32_t sensorHeight, float fieldWidth, float fieldHeight, float centerX, float centerY, float angle, float tiltXAngle, float tiltYAngle)
 Initializes the calibration object using all given parameters.
void SetSensor (int32_t sensorWidth, int32_t sensorHeight, float fieldWidth, float fieldHeight, float centerX, float centerY, float angle, float tiltXAngle)
 Initializes the calibration object using all given parameters.
void SetSensor (int32_t sensorWidth, int32_t sensorHeight, float fieldWidth, float fieldHeight, float centerX, float centerY, float angle)
 Initializes the calibration object using all given parameters.
void SetSensor (int32_t sensorWidth, int32_t sensorHeight, float fieldWidth, float fieldHeight, float centerX, float centerY)
 Initializes the calibration object using all given parameters.
void SetSensor (int32_t sensorWidth, int32_t sensorHeight, float fieldWidth, float fieldHeight, float centerX)
 Initializes the calibration object using all given parameters.
void SetSensor (int32_t sensorWidth, int32_t sensorHeight, float fieldWidth, float fieldHeight)
 Initializes the calibration object using all given parameters.
void SetSensor (int32_t sensorWidth, int32_t sensorHeight, float fieldWidth)
 Initializes the calibration object using all given parameters.
void SetSensor (int32_t sensorWidth, int32_t sensorHeight)
 Initializes the calibration object using all given parameters.
void SetSensorSize (int32_t width, int32_t height)
 Sets the logical image size, i.e. the number of pixels horizontally and vertically.
void SetFieldSize (float width, float height)
 Sets the field of view size in physical units.
void SetFieldSize (float width)
 Sets the field of view size in physical units.
void SetResolution (float resolutionX, float resolutionY)
 Sets the sensor resolution in pixels per unit in both directions.
void SetResolution (float resolutionX)
 Sets the sensor resolution in pixels per unit in both directions.
int32_t GetSensorWidth () const
 Logical image width, that is the number of pixels horizontally.
int32_t GetSensorHeight () const
 Logical image height, that is the number of pixels vertically.
float GetFieldWidth () const
 Field-of-view width, in physical units.
float GetFieldHeight () const
 Field-of-view height, in physical units.
float GetXResolution () const
 Horizontal sensor resolution, in pixels per unit.
float GetYResolution () const
 Vertical sensor resolution, in pixels per unit.
void SetPerspective (float tiltXAngle, float tiltYAngle, float perspectiveStrength)
 Sets the perspective effect coefficient, i.e. the inverse of the observation distance.
float GetTiltXAngle () const
 Tilt X angle, that is the amplitude of the rotation applied around the X-axis of the sensor to bring the optical (Z) axis perpendicular to the field of view.
float GetTiltYAngle () const
 Tilt Y angle, that is the amplitude of the rotation applied around the Y-axis of the sensor to bring the optical (Z) axis perpendicular to the field of view.
float GetPerspectiveStrength () const
 Perspective effect coefficient, that is the inverse of the observation distance.
void SetDistortion (float distortionStrength)
 Sets the optical distortion parameters.
void SetDistortionStrength (float distortionStrength)
 Sets the optical distortion parameters.
float GetDistortionStrength () const
 Optical distortion strength, i.e. the ratio of the image diagonal length with and without optical distortion introduced by the lens.
uint32_t GetCalibrationModes () const
 Current calibration mode, made from a combination of values.
void SetCalibrationModes (uint32_t calibrationModes)
 Current calibration mode, made from a combination of values.
void EmptyLandmarks ()
 Resets the landmark specification sequence.
void AddPoint (const eVision::EPoint &sensorPoint)
 Adds a new point coordinates (in Sensor space) to the set of grid points used for calibration.
void AddLandmark (const eVision::EPoint &sensorPoint, const eVision::EPoint &worldPoint)
 Adds a new pair of points coordinates (in Sensor and World spaces) to the set of landmarks used for calibration.
void RemoveLandmark (uint32_t index)
 Removes a landmark.
void Calibrate (uint32_t calibrationModes)
 Performs a calibration according to the specified combination of calibration modes.
void Calibrate ()
 Performs a calibration according to the specified combination of calibration modes.
uint32_t AutoCalibrate (bool testEmpiricalModes)
 Returns the best calibration modes for the current calibration grid and calibrates the field of view accordingly.
uint32_t AutoCalibrate ()
 Returns the best calibration modes for the current calibration grid and calibrates the field of view accordingly.
uint32_t AutoCalibrate (uint32_t calibrationModes)
 Returns the best calibration modes for the current calibration grid and calibrates the field of view accordingly.
uint32_t AutoCalibrateLandmarks (bool testEmpiricalModes)
 Returns the best calibration modes for the current landmark set and calibrates the field of view accordingly.
uint32_t AutoCalibrateLandmarks ()
 Returns the best calibration modes for the current landmark set and calibrates the field of view accordingly.
uint32_t AutoCalibrateLandmarks (uint32_t calibrationModes)
 Returns the best calibration modes for the current landmark set and calibrates the field of view accordingly.
uint32_t AutoCalibrateDotGrid (const eVision::EROIBW8 *sourceImage, float columnPitch, float rowPitch, bool testEmpiricalModes, bool testAdvancedMode)
 Performs an automatic calibration based on a dot grid image.
uint32_t AutoCalibrateDotGrid (const eVision::EROIBW8 *sourceImage, float columnPitch, float rowPitch, bool testEmpiricalModes)
 Performs an automatic calibration based on a dot grid image.
uint32_t AutoCalibrateDotGrid (const eVision::EROIBW8 *sourceImage, float columnPitch, float rowPitch)
 Performs an automatic calibration based on a dot grid image.
uint32_t AutoCalibrateDotGrid (const eVision::EROIBW8 *sourceImage, float columnPitch, float rowPitch, uint32_t enabledCalibrationModes)
 Performs an automatic calibration based on a dot grid image.
bool CalibrationSucceeded ()
 Getter method for the CalibrationSucceeded property. This property is the flag indicating if the calibration has succeeded (true), that is whether the mean variation of grid points (distance between computed grid points and ideal grid points in world space) and the maximum variation of grid points are between given tolerances.
float GetGridPointsMeanVariation () const
 Mean variation of grid points (mean distance between computed grid points and ideal grid points in world space), normalized using the pitch values, after a call to EWorldShape::CalibrationSucceeded.
float GetGridPointsMaxVariation () const
 Maximum variation of grid points (maximum distance between computed grid points and ideal grid points in world space), normalized using the pitch values, after a call to EWorldShape::CalibrationSucceeded.
float GetGridPointsMeanVariationThreshold () const
 Grid points mean variation threshold, that is the value above which the mean variation of grid points (mean distance between computed grid points and ideal grid points in world space) is considered too high, and thus marks the calibration as a failure when using EWorldShape::CalibrationSucceeded.
void SetGridPointsMeanVariationThreshold (float meanVariationThreshold)
 Grid points mean variation threshold, that is the value above which the mean variation of grid points (mean distance between computed grid points and ideal grid points in world space) is considered too high, and thus marks the calibration as a failure when using EWorldShape::CalibrationSucceeded.
float GetGridPointsMaxVariationThreshold () const
 Grid points maximum variation threshold, that is the value above which the maximum variation of grid points (maximum distance between computed grid points and ideal grid points in world space) is considered too high, and thus marks the calibration as a failure when using EWorldShape::CalibrationSucceeded.
void SetGridPointsMaxVariationThreshold (float maxVariationThreshold)
 Grid points maximum variation threshold, that is the value above which the maximum variation of grid points (maximum distance between computed grid points and ideal grid points in world space) is considered too high, and thus marks the calibration as a failure when using EWorldShape::CalibrationSucceeded.
uint32_t RebuildGrid (float colPitch, float rowPitch, uint32_t centerIndex, bool direct)
 Reconstructs the grid of points from the given dot centers, to compute the World coordinates of the points.
uint32_t RebuildGrid (float colPitch, float rowPitch, uint32_t centerIndex)
 Reconstructs the grid of points from the given dot centers, to compute the World coordinates of the points.
uint32_t RebuildGrid (float colPitch, float rowPitch)
 Reconstructs the grid of points from the given dot centers, to compute the World coordinates of the points.
uint32_t RebuildGrid (float colPitch, float rowPitch, const eVision::EPoint &worldCenter, uint32_t centerIndex, bool direct)
 Reconstructs the grid of points from the given dot centers, to compute the World coordinates of the points.
uint32_t RebuildGrid (float colPitch, float rowPitch, const eVision::EPoint &worldCenter, uint32_t centerIndex)
 Reconstructs the grid of points from the given dot centers, to compute the World coordinates of the points.
uint32_t RebuildGrid (float colPitch, float rowPitch, const eVision::EPoint &worldCenter)
 Reconstructs the grid of points from the given dot centers, to compute the World coordinates of the points.
void Unwarp (const eVision::EROIBW8 *sourceImage, eVision::EROIBW8 *destinationImage, bool interpolate, bool resizeDestination)
 Unwarps a distorted image using the current calibration model.
void Unwarp (const eVision::EROIBW8 *sourceImage, eVision::EROIBW8 *destinationImage, bool interpolate)
 Unwarps a distorted image using the current calibration model.
void Unwarp (const eVision::EROIBW8 *sourceImage, eVision::EROIBW8 *destinationImage)
 Unwarps a distorted image using the current calibration model.
void Unwarp (const eVision::EROIC24 *sourceImage, eVision::EROIC24 *destinationImage, bool interpolate, bool resizeDestination)
 Unwarps a distorted image using the current calibration model.
void Unwarp (const eVision::EROIC24 *sourceImage, eVision::EROIC24 *destinationImage, bool interpolate)
 Unwarps a distorted image using the current calibration model.
void Unwarp (const eVision::EROIC24 *sourceImage, eVision::EROIC24 *destinationImage)
 Unwarps a distorted image using the current calibration model.
void Unwarp (const eVision::EROIBW8 *sourceImage, eVision::EROIBW8 *destinationImage, eVision::ERegion &region, bool interpolate, bool resizeDestination)
 Unwarps a distorted image using the current calibration model.
void Unwarp (const eVision::EROIBW8 *sourceImage, eVision::EROIBW8 *destinationImage, eVision::ERegion &region, bool interpolate)
 Unwarps a distorted image using the current calibration model.
void Unwarp (const eVision::EROIBW8 *sourceImage, eVision::EROIBW8 *destinationImage, eVision::ERegion &region)
 Unwarps a distorted image using the current calibration model.
void Unwarp (const eVision::EROIC24 *sourceImage, eVision::EROIC24 *destinationImage, eVision::ERegion &region, bool interpolate, bool resizeDestination)
 Unwarps a distorted image using the current calibration model.
void Unwarp (const eVision::EROIC24 *sourceImage, eVision::EROIC24 *destinationImage, eVision::ERegion &region, bool interpolate)
 Unwarps a distorted image using the current calibration model.
void Unwarp (const eVision::EROIC24 *sourceImage, eVision::EROIC24 *destinationImage, eVision::ERegion &region)
 Unwarps a distorted image using the current calibration model.
void Unwarp (const eVision::EUnwarpingLut *lookupTable, const eVision::EROIBW8 *sourceImage, eVision::EROIBW8 *destinationImage, bool interpolate)
 Unwarps a distorted image using the current calibration model.
void Unwarp (const eVision::EUnwarpingLut *lookupTable, const eVision::EROIBW8 *sourceImage, eVision::EROIBW8 *destinationImage)
 Unwarps a distorted image using the current calibration model.
void Unwarp (const eVision::EUnwarpingLut *lookupTable, const eVision::EROIC24 *sourceImage, eVision::EROIC24 *destinationImage, bool interpolate)
 Unwarps a distorted image using the current calibration model.
void Unwarp (const eVision::EUnwarpingLut *lookupTable, const eVision::EROIC24 *sourceImage, eVision::EROIC24 *destinationImage)
 Unwarps a distorted image using the current calibration model.
void Unwarp (const eVision::EUnwarpingLut *lookupTable, const eVision::EROIBW8 *sourceImage, eVision::EROIBW8 *destinationImage, eVision::ERegion &region, bool interpolate)
 Unwarps a distorted image using the current calibration model.
void Unwarp (const eVision::EUnwarpingLut *lookupTable, const eVision::EROIBW8 *sourceImage, eVision::EROIBW8 *destinationImage, eVision::ERegion &region)
 Unwarps a distorted image using the current calibration model.
void Unwarp (const eVision::EUnwarpingLut *lookupTable, const eVision::EROIC24 *sourceImage, eVision::EROIC24 *destinationImage, eVision::ERegion &region, bool interpolate)
 Unwarps a distorted image using the current calibration model.
void Unwarp (const eVision::EUnwarpingLut *lookupTable, const eVision::EROIC24 *sourceImage, eVision::EROIC24 *destinationImage, eVision::ERegion &region)
 Unwarps a distorted image using the current calibration model.
void SetupUnwarp (eVision::EUnwarpingLut *lookupTable, const eVision::EROIBW8 *sourceImage, bool interpolate, bool resizeDestination)
 Prepares a lookup table for fast image unwarping.
void SetupUnwarp (eVision::EUnwarpingLut *lookupTable, const eVision::EROIBW8 *sourceImage, bool interpolate)
 Prepares a lookup table for fast image unwarping.
void SetupUnwarp (eVision::EUnwarpingLut *lookupTable, const eVision::EROIBW8 *sourceImage)
 Prepares a lookup table for fast image unwarping.
void SetupUnwarp (eVision::EUnwarpingLut *lookupTable, const eVision::EROIC24 *sourceImage, bool interpolate, bool resizeDestination)
 Prepares a lookup table for fast image unwarping.
void SetupUnwarp (eVision::EUnwarpingLut *lookupTable, const eVision::EROIC24 *sourceImage, bool interpolate)
 Prepares a lookup table for fast image unwarping.
void SetupUnwarp (eVision::EUnwarpingLut *lookupTable, const eVision::EROIC24 *sourceImage)
 Prepares a lookup table for fast image unwarping.
eVision::Legacy::EWorldShape GetUnwarpedWorldShape (const eVision::EBaseROI *sourceImage, bool resizeDestination)
 Gets a EWorldShape instance representing the transformation of image to world coordinates for the result of EWorldShape::Unwarp.
eVision::Legacy::EWorldShape GetUnwarpedWorldShape (const eVision::EBaseROI *sourceImage)
 Gets a EWorldShape instance representing the transformation of image to world coordinates for the result of EWorldShape::Unwarp.
eVision::Legacy::EWorldShape GetUnwarpedWorldShape (int32_t sourceWidth, int32_t sourceHeight, bool resizeDestination)
 Gets a EWorldShape instance representing the transformation of image to world coordinates for the result of EWorldShape::Unwarp.
eVision::Legacy::EWorldShape GetUnwarpedWorldShape (int32_t sourceWidth, int32_t sourceHeight)
 Gets a EWorldShape instance representing the transformation of image to world coordinates for the result of EWorldShape::Unwarp.
void Invalidate ()
eVision::EPoint SensorToWorld (const eVision::EPoint &sensorPoint)
 Performs coordinate transform for arbitrary points from Sensor space to World space.
eVision::EPoint WorldToSensor (const eVision::EPoint &worldPoint)
 Performs coordinate transform for arbitrary points from World space to Sensor space.
uint32_t GetNumLandmarkElements () const
 Returns the number of landmark elements.
eVision::ELandmark & GetLandmarkElement (uint32_t i)
 Returns the landmark element corresponding to the given index.
const eVision::ELandmark & GetLandmarkElement (uint32_t i) const
 Returns the landmark element corresponding to the given index.
float GetOpticalCenterX () const
float GetOpticalCenterY () const
void SetOpticalCenter (float centerX, float centerY)
virtual eVision::EShapeType GetType () const
 Shape type.
void SetSize (float sizeX, float sizeY)
 Sets the frame size.
void SetSize (float sizeX)
 Sets the frame size.
virtual void Closest ()
 Find the daughter shape that is the closest to this shape. To retrieve the closest shape, use EShape::GetClosestShape.
virtual bool HitTest (bool bDaughters)
 Checks if there is a handle under the cursor.
virtual bool HitTest ()
 Checks if there is a handle under the cursor.
virtual void Drag (int32_t n32CursorX, int32_t n32CursorY)
 Moves a handle to a new position and updates the position parameters of the shape.
virtual void Draw (eVision::EDrawAdapter *graphicContext, eVision::EDrawingMode drawingModes, bool daughters)
 Draws the world coordinate axis.
virtual void Draw (eVision::EDrawAdapter *graphicContext, eVision::EDrawingMode drawingModes)
 Draws the world coordinate axis.
virtual void Draw (eVision::EDrawAdapter *graphicContext)
 Draws the world coordinate axis.
virtual void Draw (HDC graphicContext, eVision::EDrawingMode drawingModes, bool daughters)
 Draws the world coordinate axis.
virtual void Draw (HDC graphicContext, eVision::EDrawingMode drawingModes)
 Draws the world coordinate axis.
virtual void Draw (HDC graphicContext)
 Draws the world coordinate axis.
virtual void Draw (HDC graphicContext, const eVision::ERGBColor &color, eVision::EDrawingMode drawingModes, bool daughters)
 Draws the world coordinate axis.
virtual void Draw (HDC graphicContext, const eVision::ERGBColor &color, eVision::EDrawingMode drawingModes)
 Draws the world coordinate axis.
virtual void Draw (HDC graphicContext, const eVision::ERGBColor &color)
 Draws the world coordinate axis.
virtual void DrawWithCurrentPen (HDC graphicContext, eVision::EDrawingMode drawingModes, bool daughters)
 Draws the world coordinate axis.
virtual void DrawWithCurrentPen (HDC graphicContext, eVision::EDrawingMode drawingModes)
 Draws the world coordinate axis.
virtual void DrawWithCurrentPen (HDC graphicContext)
 Draws the world coordinate axis.
void DrawCrossGrid (eVision::EDrawAdapter *graphicContext, float minimumX, float maximumX, float minimumY, float maximumY, uint32_t numberOfIntervalsX, uint32_t numberOfIntervalsY)
 Draws a regular grid of crosses in world coordinates.
void DrawCrossGrid (eVision::EDrawAdapter *graphicContext, float minimumX, float maximumX, float minimumY, float maximumY, uint32_t numberOfIntervalsX)
 Draws a regular grid of crosses in world coordinates.
void DrawCrossGrid (eVision::EDrawAdapter *graphicContext, float minimumX, float maximumX, float minimumY, float maximumY)
 Draws a regular grid of crosses in world coordinates.
void DrawCrossGrid (eVision::EDrawAdapter *graphicContext, float minimumX, float maximumX, float minimumY)
 Draws a regular grid of crosses in world coordinates.
void DrawCrossGrid (eVision::EDrawAdapter *graphicContext, float minimumX, float maximumX)
 Draws a regular grid of crosses in world coordinates.
void DrawCrossGrid (eVision::EDrawAdapter *graphicContext, float minimumX)
 Draws a regular grid of crosses in world coordinates.
void DrawCrossGrid (eVision::EDrawAdapter *graphicContext)
 Draws a regular grid of crosses in world coordinates.
void DrawCrossGrid (HDC graphicContext, float minimumX, float maximumX, float minimumY, float maximumY, uint32_t numberOfIntervalsX, uint32_t numberOfIntervalsY)
 Draws a regular grid of crosses in world coordinates.
void DrawCrossGrid (HDC graphicContext, float minimumX, float maximumX, float minimumY, float maximumY, uint32_t numberOfIntervalsX)
 Draws a regular grid of crosses in world coordinates.
void DrawCrossGrid (HDC graphicContext, float minimumX, float maximumX, float minimumY, float maximumY)
 Draws a regular grid of crosses in world coordinates.
void DrawCrossGrid (HDC graphicContext, float minimumX, float maximumX, float minimumY)
 Draws a regular grid of crosses in world coordinates.
void DrawCrossGrid (HDC graphicContext, float minimumX, float maximumX)
 Draws a regular grid of crosses in world coordinates.
void DrawCrossGrid (HDC graphicContext, float minimumX)
 Draws a regular grid of crosses in world coordinates.
void DrawCrossGrid (HDC graphicContext)
 Draws a regular grid of crosses in world coordinates.
void DrawCrossGrid (HDC graphicContext, const eVision::ERGBColor &color, float minimumX, float maximumX, float minimumY, float maximumY, uint32_t numberOfIntervalsX, uint32_t numberOfIntervalsY)
 Draws a regular grid of crosses in world coordinates.
void DrawCrossGrid (HDC graphicContext, const eVision::ERGBColor &color, float minimumX, float maximumX, float minimumY, float maximumY, uint32_t numberOfIntervalsX)
 Draws a regular grid of crosses in world coordinates.
void DrawCrossGrid (HDC graphicContext, const eVision::ERGBColor &color, float minimumX, float maximumX, float minimumY, float maximumY)
 Draws a regular grid of crosses in world coordinates.
void DrawCrossGrid (HDC graphicContext, const eVision::ERGBColor &color, float minimumX, float maximumX, float minimumY)
 Draws a regular grid of crosses in world coordinates.
void DrawCrossGrid (HDC graphicContext, const eVision::ERGBColor &color, float minimumX, float maximumX)
 Draws a regular grid of crosses in world coordinates.
void DrawCrossGrid (HDC graphicContext, const eVision::ERGBColor &color, float minimumX)
 Draws a regular grid of crosses in world coordinates.
void DrawCrossGrid (HDC graphicContext, const eVision::ERGBColor &color)
 Draws a regular grid of crosses in world coordinates.
void DrawCrossGridWithCurrentPen (HDC graphicContext, float minimumX, float maximumX, float minimumY, float maximumY, uint32_t numberOfIntervalsX, uint32_t numberOfIntervalsY)
 Draws a regular grid of crosses in world coordinates.
void DrawCrossGridWithCurrentPen (HDC graphicContext, float minimumX, float maximumX, float minimumY, float maximumY, uint32_t numberOfIntervalsX)
 Draws a regular grid of crosses in world coordinates.
void DrawCrossGridWithCurrentPen (HDC graphicContext, float minimumX, float maximumX, float minimumY, float maximumY)
 Draws a regular grid of crosses in world coordinates.
void DrawCrossGridWithCurrentPen (HDC graphicContext, float minimumX, float maximumX, float minimumY)
 Draws a regular grid of crosses in world coordinates.
void DrawCrossGridWithCurrentPen (HDC graphicContext, float minimumX, float maximumX)
 Draws a regular grid of crosses in world coordinates.
void DrawCrossGridWithCurrentPen (HDC graphicContext, float minimumX)
 Draws a regular grid of crosses in world coordinates.
void DrawCrossGridWithCurrentPen (HDC graphicContext)
 Draws a regular grid of crosses in world coordinates.
virtual float GetZoomX () const
 Current horizontal zooming factor for drawing operations.
virtual float GetZoomY () const
 Current vertical zooming factor for drawing operations.
virtual float GetPanX () const
 Current horizontal panning value for drawing operations, expressed in pixels. By default, no panning occurs.
virtual float GetPanY () const
 Current vertical panning value for drawing operations, expressed in pixels. By default, no panning occurs.
virtual void SetZoom (float zoomX, float zoomY)
 Sets the horizontal and vertical zooming factors for drawing operations.
virtual void SetZoom (float zoomX)
 Sets the horizontal and vertical zooming factors for drawing operations.
virtual void SetZoom ()
 Sets the horizontal and vertical zooming factors for drawing operations.
virtual void SetPan (float panX, float panY)
 Sets the horizontal and vertical panning values for drawing operations, expressed in pixels.
virtual void SetPan (float panX)
 Sets the horizontal and vertical panning values for drawing operations, expressed in pixels.
virtual void SetPan ()
 Sets the horizontal and vertical panning values for drawing operations, expressed in pixels.
void DrawGrid (eVision::EDrawAdapter *graphicContext)
 Draws the reconstructed grid to be used for grid calibration.
void DrawGrid (HDC graphicContext)
 Draws the reconstructed grid to be used for grid calibration.
void DrawGrid (HDC graphicContext, const eVision::ERGBColor &color)
 Draws the reconstructed grid to be used for grid calibration.
void DrawGridWithCurrentPen (HDC graphicContext)
 Draws the reconstructed grid to be used for grid calibration.
void DrawLandmarks (eVision::EDrawAdapter *graphicContext)
 Draws the landmarks to be used for landmark calibration.
void DrawLandmarks (HDC graphicContext)
 Draws the landmarks to be used for landmark calibration.
void HitLandmarks ()
 Checks if the cursor is placed over a landmark point.
uint32_t GetHitLandmark ()
 Returns the landmark selected by EWorldShape::HitLandmarks or ~0 if no landmark is selected.
void DragLandmark (int32_t n32CursorX, int32_t n32CursorY)
 Moves the landmark to a new position.
virtual void EnableTypeFilter (uint32_t un32Types)
 Enables the filter of the specified shape type.
virtual void DisableTypeFilter ()
 Enables all shape types.
 EWorldShape (CppWrapperInternal::InternalConstructor)
Public Member Functions inherited from eVision::Legacy::EShape
virtual ~EShape () throw ()
std::string GetName () const
 Name of the EShape object.
void SetName (const std::string &name)
 Name of the EShape object.
eVision::Legacy::EShape * GetShapeNamed (const std::string &name)
 Returns a pointer to a daughter gauge or shape specified by its name.
bool GetVisible () const
 Flag indicating whether the shape is visible or not.
void SetVisible (bool visible)
 Flag indicating whether the shape is visible or not.
void SetVisibleRecursive (bool visible)
 Sets the flag indicating whether the shape and its daughter shapes are visible or not.
bool GetSelected () const
 Flag indicating whether the shape is selected or not.
void SetSelected (bool selected)
 Flag indicating whether the shape is selected or not.
void SetSelectedRecursive (bool selected)
 Sets the flag indicating whether the shape and all its daughters are selected or not.
bool GetSelectable () const
 Flag indicating whether the shape can be selected or not.
void SetSelectable (bool selectable)
 Flag indicating whether the shape can be selected or not.
void SetSelectableRecursive (bool selectable)
 Sets the flag indicating whether the shape and all its daughters can be selected or not.
bool GetDragable () const
 Flag indicating whether the shape can be dragged or not.
void SetDragable (bool dragable)
 Flag indicating whether the shape can be dragged or not.
void SetDragableRecursive (bool dragable)
 Sets the flag indicating whether the shape and all its daughters can be dragged or not.
bool GetResizable () const
 Flag indicating whether the shape can be resized or not.
void SetResizable (bool resizable)
 Flag indicating whether the shape can be resized or not.
void SetResizableRecursive (bool resizable)
 Sets the flag indicating whether the shape and all its daughters can be resized or not.
bool GetRotatable () const
 Flag indicating whether the shape can be rotated or not.
void SetRotatable (bool rotatable)
 Flag indicating whether the shape can be rotated or not.
void SetRotatableRecursive (bool rotatable)
 Sets the flag indicating whether the shape and all its daughters can be rotated or not.
bool GetLabeled () const
 Flag indicating whether the shape label should be displayed or not.
void SetLabeled (bool labeled)
 Flag indicating whether the shape label should be displayed or not.
void SetLabeledRecursive (bool labeled)
 Sets the flag indicating whether the shape label should be displayed or not. The flag is set in this shape and all its daughters.
virtual bool GetActive () const
 Flag indicating whether the shape is active or not.
virtual void SetActive (bool active)
 Flag indicating whether the shape is active or not.
virtual void SetActiveRecursive (bool active)
 Sets the flag indicating whether the shape and all its daughters are active or not.
bool GetActualShape () const
 Flag indicating whether an inquiry returns a result pertaining to the nominal gauge (false, default) or the fitted model (true).
void SetActualShape (bool actualShape)
 Flag indicating whether an inquiry returns a result pertaining to the nominal gauge (false, default) or the fitted model (true).
void SetActualShapeRecursive (bool actualShape)
 Sets the flag indicating whether an inquiry returns a result pertaining to the nominal gauge (false, default) or the fitted model (true). The flag is set in this shape and all its daughters.
bool GetFound () const
 Flag indicating whether a measured shape has been found.
bool GetAutoArrange () const
void SetAutoArrange (bool bAutoArrange, bool bDaughters)
void SetAutoArrange (bool bAutoArrange)
virtual void SetFound (bool bFound, bool bDaughters)
virtual void SetFound (bool bFound)
bool GetInspected () const
void SetInspected (bool bFound, bool bDaughters)
void SetInspected (bool bFound)
bool GetPassed () const
void SetPassed (bool bFound, bool bDaughters)
void SetPassed (bool bFound)
bool GetQuickDraw () const
void SetQuickDraw (bool bFound, bool bDaughters)
void SetQuickDraw (bool bFound)
bool GetOptionalDraw () const
void SetOptionalDraw (bool bFound, bool bDaughters)
void SetOptionalDraw (bool bFound)
bool GetUserFlag () const
void SetUserFlag (bool bUserFlag, bool bDaughters)
void SetUserFlag (bool bUserFlag)
bool GetAllocated () const
 Gets the allocated flag.
void EnableBehaviorFilter (eVision::EShapeBehavior behavior, bool value)
 Modifies the so-called behavior filter that is a conjunction of conditions specifying when a shape or a gauge should be displayed or taken into consideration when monitoring the mouse interactions.
void EnableBehaviorFilter (eVision::EShapeBehavior behavior)
 Modifies the so-called behavior filter that is a conjunction of conditions specifying when a shape or a gauge should be displayed or taken into consideration when monitoring the mouse interactions.
void DisableBehaviorFilter (eVision::EShapeBehavior behavior)
 Disables (i.e. removes) a condition from the list of conditions in the behavior filter.
void Attach (eVision::Legacy::EShape *mother)
 Attaches the gauge to a mother gauge or shape.
void Detach ()
 Detaches the gauge from its mother gauge or shape.
void DetachDaughters ()
 Detaches the daughter gauges or shapes.
uint32_t GetNumDaughters () const
 Number of daughters attached to the shape.
eVision::Legacy::EShape * GetMother () const
 Pointer to the mother shape.
virtual eVision::Legacy::EShape * GetDaughter (uint32_t index) const
 Returns a pointer to the specified daughter gauge or shape.
eVision::Legacy::EWorldShape * GetWorldShape () const
 World ancestor.
bool IsWorld () const
void InvalidateWorld ()
 Invalidates the world shape for this shape and all its ancestors.
eVision::EPoint LocalToSensor (const eVision::EPoint &LPoint)
 Transforms a point from local coordinates to sensor coordinates.
eVision::EPoint SensorToLocal (const eVision::EPoint &SPoint)
 Transforms a point from sensor coordinates to local coordinates.
eVision::EDragHandle GetHitHandle () const
 Handle currently under the cursor.
eVision::Legacy::EShape * GetHitShape () const
 Pointer to the shape currently under the cursor.
void SetDraggingMode (eVision::EDraggingMode eDraggingMode, bool bDaughters)
 Sets the dragging mode which defines how the shape could be dragged.
void SetDraggingMode (eVision::EDraggingMode eDraggingMode)
 Sets the dragging mode which defines how the shape could be dragged.
eVision::EDraggingMode GetDraggingMode () const
 Gets the dragging mode which defines how the shape could be dragged.
void SetCursor (int32_t x, int32_t y)
 Sets the cursor current coordinates.
eVision::Legacy::EShape * GetClosestShape () const
 Closest shape among the daughters.
virtual void Process (eVision::EROIBW8 *pSrc, bool bDaughters)
virtual void Process (eVision::EROIBW8 *pSrc)
virtual void Process (eVision::EROIBW8 *pSrc, const eVision::ERegion &region, bool bDaughters)
virtual void Process (eVision::EROIBW8 *pSrc, const eVision::ERegion &region)
void Save (const std::string &path, bool daughters)
 Loads a Shape.The given ESerializer must have been created for writing.
void Save (const std::string &path)
 Loads a Shape.The given ESerializer must have been created for writing.
void Save (eVision::ESerializer *serializer, bool daughters)
 Loads a Shape.The given ESerializer must have been created for writing.
void Save (eVision::ESerializer *serializer)
 Loads a Shape.The given ESerializer must have been created for writing.
void Load (const std::string &path, bool daughters)
 Loads a Shape.The given ESerializer must have been created for reading.
void Load (const std::string &path)
 Loads a Shape.The given ESerializer must have been created for reading.
void Load (eVision::ESerializer *serializer, bool daughters)
 Loads a Shape.The given ESerializer must have been created for reading.
void Load (eVision::ESerializer *serializer)
 Loads a Shape.The given ESerializer must have been created for reading.
bool HasProperty (const std::string &aProperty) const
 Returns whether a EShape has a property named aProperty.
std::string GetProperty (const std::string &aProperty) const
 Gets the value of property aProperty. Throws an exception if no such property exists.
void SetProperty (const std::string &aProperty, const std::string &aValue)
 Sets the value of property aProperty to aValue for this EShape.
void SetPropertyRecursive (const std::string &aProperty, const std::string &aValue)
 Sets the value of property aProperty to aValue for this EShape and all of its daughters.
void RemoveProperty (const std::string &aProperty)
 Removes the property name aProperty from the EShape.
bool HasValidPolarityProperty () const
 Returns whether the EShape has a valid polarity property.
 EShape (CppWrapperInternal::InternalConstructor)

Additional Inherited Members

Public Attributes inherited from eVision::Legacy::EShape
CppWrapperInternal::WrappedClass wrappedClass_

Detailed Description

Manages a complete context for calibrating a field of view.

License(s): BasicTypes

Constructor & Destructor Documentation

◆ EWorldShape() [1/3]

eVision::Legacy::EWorldShape::EWorldShape ( const eVision::Legacy::EWorldShape & other)

Constructs a EWorldShape object.

Parameters
otherAnother EWorldShape object to be copied in the new EWorldShape object.

◆ EWorldShape() [2/3]

eVision::Legacy::EWorldShape::EWorldShape ( )

Constructs a EWorldShape object.

◆ ~EWorldShape()

eVision::Legacy::EWorldShape::~EWorldShape ( )
throw ( )
virtual

◆ EWorldShape() [3/3]

eVision::Legacy::EWorldShape::EWorldShape ( CppWrapperInternal::InternalConstructor )

Member Function Documentation

◆ AddLandmark()

void eVision::Legacy::EWorldShape::AddLandmark ( const eVision::EPoint & sensorPoint,
const eVision::EPoint & worldPoint )

Adds a new pair of points coordinates (in Sensor and World spaces) to the set of landmarks used for calibration.

Parameters
sensorPointSensor point coordinates.
worldPointCorresponding World point coordinates.

Landmark calibration is the process of computing the calibration parameters by means of a set of known points for which the coordinates are available in both World and Sensor spaces. Usually, such points are chosen as salient features on the part or target in view. They must be such that appropriate image processing techniques allow measuring their positions from the image (directly or indirectly by geometric constructions), while at the same time their coordinates in a reference frame are known.

◆ AddPoint()

void eVision::Legacy::EWorldShape::AddPoint ( const eVision::EPoint & sensorPoint)

Adds a new point coordinates (in Sensor space) to the set of grid points used for calibration.

Parameters
sensorPointSensor point coordinates.

Grid calibration is the process of computing the calibration parameters by means of a set of points known to lie on a rectangular grid. If the grid pitch is known and one of the points is chosen as the origin point, the points can be used as landmarks. By contrast with the landmark calibration functions, the World coordinates of the grid points need not be specified, nor do they have to be given in any specific order. The calibration algorithm is capable of sorting out the points to reconstruct the grid topology. Typically, this function is used in conjunction with blob analysis to extract the dot centers from a grid of dots. Anyway, any other scheme can be used. The grid of points need not be complete, i.e. some of the nodes may be missing, and the points need not completely fill a rectangular area. Landmark calibration is simply achieved by providing a series of point coordinates (in Sensor space only) and then calling the grid reconstruction function followed by the calibration function.

◆ AutoCalibrate() [1/3]

uint32_t eVision::Legacy::EWorldShape::AutoCalibrate ( )

Returns the best calibration modes for the current calibration grid and calibrates the field of view accordingly.

To ensure a successful calibration, the perspective angle of the view should not exceed 45 degrees.

By default, only combination of the calibration modes ECalibrationMode::ECalibrationMode_Scaled, ECalibrationMode::ECalibrationMode_Skewed, ECalibrationMode::ECalibrationMode_Radial, ECalibrationMode::ECalibrationMode_Tilted, and ECalibrationMode::ECalibrationMode_Anisotropic are considered. The ECalibrationMode::ECalibrationMode_Advanced calibration mode must be explicitely selected to be considered.

◆ AutoCalibrate() [2/3]

uint32_t eVision::Legacy::EWorldShape::AutoCalibrate ( bool testEmpiricalModes)

Returns the best calibration modes for the current calibration grid and calibrates the field of view accordingly.

Parameters
testEmpiricalModesBoolean indicating whether empirical quadratic calibration mode (ECalibrationMode::ECalibrationMode_Quadratic) should be considered when determining the best calibration modes.

To ensure a successful calibration, the perspective angle of the view should not exceed 45 degrees.

By default, only combination of the calibration modes ECalibrationMode::ECalibrationMode_Scaled, ECalibrationMode::ECalibrationMode_Skewed, ECalibrationMode::ECalibrationMode_Radial, ECalibrationMode::ECalibrationMode_Tilted, and ECalibrationMode::ECalibrationMode_Anisotropic are considered. The ECalibrationMode::ECalibrationMode_Advanced calibration mode must be explicitely selected to be considered.

◆ AutoCalibrate() [3/3]

uint32_t eVision::Legacy::EWorldShape::AutoCalibrate ( uint32_t calibrationModes)

Returns the best calibration modes for the current calibration grid and calibrates the field of view accordingly.

Parameters
calibrationModesCalibration modes that should be considered when determining the best calibration model

To ensure a successful calibration, the perspective angle of the view should not exceed 45 degrees.

By default, only combination of the calibration modes ECalibrationMode::ECalibrationMode_Scaled, ECalibrationMode::ECalibrationMode_Skewed, ECalibrationMode::ECalibrationMode_Radial, ECalibrationMode::ECalibrationMode_Tilted, and ECalibrationMode::ECalibrationMode_Anisotropic are considered. The ECalibrationMode::ECalibrationMode_Advanced calibration mode must be explicitely selected to be considered.

◆ AutoCalibrateDotGrid() [1/4]

uint32_t eVision::Legacy::EWorldShape::AutoCalibrateDotGrid ( const eVision::EROIBW8 * sourceImage,
float columnPitch,
float rowPitch )

Performs an automatic calibration based on a dot grid image.

Parameters
sourceImagePointer to the source image/ROI.
columnPitchActual pitches of the grid, i.e. distances between vertical and horizontal rows of the grid.
rowPitchActual pitches of the grid, i.e. distances between vertical and horizontal rows of the grid.

Returns the best calibration mode for the current dot grid. This method will first do an automatic blob analysis in order to extract all dots (all blobs whose area is smaller than 5 pixels or 1/50000th of the whole image area will be considered as noise and rejected). The dot gravity centers are used as the grid reference points. Then, this method will select and compute the best calibration mode by reducing the fitting error. To ensure a successful calibration, the perspective angle of the dot grid should not exceed 45 degrees.

By default, only combination of the calibration modes ECalibrationMode::ECalibrationMode_Scaled, ECalibrationMode::ECalibrationMode_Skewed, ECalibrationMode::ECalibrationMode_Radial, ECalibrationMode::ECalibrationMode_Tilted, and ECalibrationMode::ECalibrationMode_Anisotropic are considered. The ECalibrationMode::ECalibrationMode_Advanced calibration mode must be explicitly selected to be considered.

◆ AutoCalibrateDotGrid() [2/4]

uint32_t eVision::Legacy::EWorldShape::AutoCalibrateDotGrid ( const eVision::EROIBW8 * sourceImage,
float columnPitch,
float rowPitch,
bool testEmpiricalModes )

Performs an automatic calibration based on a dot grid image.

Parameters
sourceImagePointer to the source image/ROI.
columnPitchActual pitches of the grid, i.e. distances between vertical and horizontal rows of the grid.
rowPitchActual pitches of the grid, i.e. distances between vertical and horizontal rows of the grid.
testEmpiricalModesBoolean indicating whether the empirical quadratic calibration mode (ECalibrationMode::ECalibrationMode_Quadratic) should be considered when determining the best calibration modes. Default value is false.

Returns the best calibration mode for the current dot grid. This method will first do an automatic blob analysis in order to extract all dots (all blobs whose area is smaller than 5 pixels or 1/50000th of the whole image area will be considered as noise and rejected). The dot gravity centers are used as the grid reference points. Then, this method will select and compute the best calibration mode by reducing the fitting error. To ensure a successful calibration, the perspective angle of the dot grid should not exceed 45 degrees.

By default, only combination of the calibration modes ECalibrationMode::ECalibrationMode_Scaled, ECalibrationMode::ECalibrationMode_Skewed, ECalibrationMode::ECalibrationMode_Radial, ECalibrationMode::ECalibrationMode_Tilted, and ECalibrationMode::ECalibrationMode_Anisotropic are considered. The ECalibrationMode::ECalibrationMode_Advanced calibration mode must be explicitly selected to be considered.

◆ AutoCalibrateDotGrid() [3/4]

uint32_t eVision::Legacy::EWorldShape::AutoCalibrateDotGrid ( const eVision::EROIBW8 * sourceImage,
float columnPitch,
float rowPitch,
bool testEmpiricalModes,
bool testAdvancedMode )

Performs an automatic calibration based on a dot grid image.

Parameters
sourceImagePointer to the source image/ROI.
columnPitchActual pitches of the grid, i.e. distances between vertical and horizontal rows of the grid.
rowPitchActual pitches of the grid, i.e. distances between vertical and horizontal rows of the grid.
testEmpiricalModesBoolean indicating whether the empirical quadratic calibration mode (ECalibrationMode::ECalibrationMode_Quadratic) should be considered when determining the best calibration modes. Default value is false.
testAdvancedModeBoolean indicating whether the advanced calibration mode (ECalibrationMode::ECalibrationMode_Advanced) should be considered when determining the best calibration modes. Default value is false.

Returns the best calibration mode for the current dot grid. This method will first do an automatic blob analysis in order to extract all dots (all blobs whose area is smaller than 5 pixels or 1/50000th of the whole image area will be considered as noise and rejected). The dot gravity centers are used as the grid reference points. Then, this method will select and compute the best calibration mode by reducing the fitting error. To ensure a successful calibration, the perspective angle of the dot grid should not exceed 45 degrees.

By default, only combination of the calibration modes ECalibrationMode::ECalibrationMode_Scaled, ECalibrationMode::ECalibrationMode_Skewed, ECalibrationMode::ECalibrationMode_Radial, ECalibrationMode::ECalibrationMode_Tilted, and ECalibrationMode::ECalibrationMode_Anisotropic are considered. The ECalibrationMode::ECalibrationMode_Advanced calibration mode must be explicitly selected to be considered.

◆ AutoCalibrateDotGrid() [4/4]

uint32_t eVision::Legacy::EWorldShape::AutoCalibrateDotGrid ( const eVision::EROIBW8 * sourceImage,
float columnPitch,
float rowPitch,
uint32_t enabledCalibrationModes )

Performs an automatic calibration based on a dot grid image.

Parameters
sourceImagePointer to the source image/ROI.
columnPitchActual pitches of the grid, i.e. distances between vertical and horizontal rows of the grid.
rowPitchActual pitches of the grid, i.e. distances between vertical and horizontal rows of the grid.
enabledCalibrationModesCalibration modes that should be considered when determining the best calibration model

Returns the best calibration mode for the current dot grid. This method will first do an automatic blob analysis in order to extract all dots (all blobs whose area is smaller than 5 pixels or 1/50000th of the whole image area will be considered as noise and rejected). The dot gravity centers are used as the grid reference points. Then, this method will select and compute the best calibration mode by reducing the fitting error. To ensure a successful calibration, the perspective angle of the dot grid should not exceed 45 degrees.

By default, only combination of the calibration modes ECalibrationMode::ECalibrationMode_Scaled, ECalibrationMode::ECalibrationMode_Skewed, ECalibrationMode::ECalibrationMode_Radial, ECalibrationMode::ECalibrationMode_Tilted, and ECalibrationMode::ECalibrationMode_Anisotropic are considered. The ECalibrationMode::ECalibrationMode_Advanced calibration mode must be explicitly selected to be considered.

◆ AutoCalibrateLandmarks() [1/3]

uint32_t eVision::Legacy::EWorldShape::AutoCalibrateLandmarks ( )

Returns the best calibration modes for the current landmark set and calibrates the field of view accordingly.

Landmark calibration is the process of computing the calibration parameters by means of a set of known points for which the coordinates are available in both World and Sensor spaces. Usually, such points are chosen as salient features on the part or target in view. They must be such that appropriate image processing techniques allow measuring their positions from the image (directly or indirectly by geometric constructions), while at the same time their coordinates in a reference frame are known. To ensure a successful calibration, the perspective angle of the view should not exceed 45 degrees. This method is meant to be used with landmark calibration only. To calibrate automatically your field of view using a dot grid, use the EWorldShape::AutoCalibrate method instead.

By default, only combination of the calibration modes ECalibrationMode::ECalibrationMode_Scaled, ECalibrationMode::ECalibrationMode_Skewed, ECalibrationMode::ECalibrationMode_Radial, ECalibrationMode::ECalibrationMode_Tilted, and ECalibrationMode::ECalibrationMode_Anisotropic are considered. The ECalibrationMode::ECalibrationMode_Advanced calibration mode must be explicitely selected to be considered.

◆ AutoCalibrateLandmarks() [2/3]

uint32_t eVision::Legacy::EWorldShape::AutoCalibrateLandmarks ( bool testEmpiricalModes)

Returns the best calibration modes for the current landmark set and calibrates the field of view accordingly.

Parameters
testEmpiricalModesBoolean indicating whether the empirical quadratic calibration mode (ECalibrationMode::ECalibrationMode_Quadratic) should be considered when determining the best calibration modes. Default value is false.

Landmark calibration is the process of computing the calibration parameters by means of a set of known points for which the coordinates are available in both World and Sensor spaces. Usually, such points are chosen as salient features on the part or target in view. They must be such that appropriate image processing techniques allow measuring their positions from the image (directly or indirectly by geometric constructions), while at the same time their coordinates in a reference frame are known. To ensure a successful calibration, the perspective angle of the view should not exceed 45 degrees. This method is meant to be used with landmark calibration only. To calibrate automatically your field of view using a dot grid, use the EWorldShape::AutoCalibrate method instead.

By default, only combination of the calibration modes ECalibrationMode::ECalibrationMode_Scaled, ECalibrationMode::ECalibrationMode_Skewed, ECalibrationMode::ECalibrationMode_Radial, ECalibrationMode::ECalibrationMode_Tilted, and ECalibrationMode::ECalibrationMode_Anisotropic are considered. The ECalibrationMode::ECalibrationMode_Advanced calibration mode must be explicitely selected to be considered.

◆ AutoCalibrateLandmarks() [3/3]

uint32_t eVision::Legacy::EWorldShape::AutoCalibrateLandmarks ( uint32_t calibrationModes)

Returns the best calibration modes for the current landmark set and calibrates the field of view accordingly.

Parameters
calibrationModesCalibration modes that should be considered when determining the best calibration model

Landmark calibration is the process of computing the calibration parameters by means of a set of known points for which the coordinates are available in both World and Sensor spaces. Usually, such points are chosen as salient features on the part or target in view. They must be such that appropriate image processing techniques allow measuring their positions from the image (directly or indirectly by geometric constructions), while at the same time their coordinates in a reference frame are known. To ensure a successful calibration, the perspective angle of the view should not exceed 45 degrees. This method is meant to be used with landmark calibration only. To calibrate automatically your field of view using a dot grid, use the EWorldShape::AutoCalibrate method instead.

By default, only combination of the calibration modes ECalibrationMode::ECalibrationMode_Scaled, ECalibrationMode::ECalibrationMode_Skewed, ECalibrationMode::ECalibrationMode_Radial, ECalibrationMode::ECalibrationMode_Tilted, and ECalibrationMode::ECalibrationMode_Anisotropic are considered. The ECalibrationMode::ECalibrationMode_Advanced calibration mode must be explicitely selected to be considered.

◆ Calibrate() [1/2]

void eVision::Legacy::EWorldShape::Calibrate ( )

Performs a calibration according to the specified combination of calibration modes.

Landmark calibration is the process of computing the calibration parameters by means of a set of known points for which the coordinates are available in both World and Sensor spaces. Usually, such points are chosen as salient features on the part or target in view. They must be such that appropriate image processing techniques allow measuring their positions from the image (directly or indirectly by geometric constructions), while at the same time their coordinates in a reference frame are known. In some cases, not all requested calibration modes are honored. After calibration, EWorldShape::GetCalibrationModes returns the actual combination of modes in effect. To ensure a successful calibration, the perspective angle of the view should not exceed 45 degrees.

◆ Calibrate() [2/2]

void eVision::Legacy::EWorldShape::Calibrate ( uint32_t calibrationModes)

Performs a calibration according to the specified combination of calibration modes.

Parameters
calibrationModesCalibration modes, as defined by a combination of values from ECalibrationMode.

Landmark calibration is the process of computing the calibration parameters by means of a set of known points for which the coordinates are available in both World and Sensor spaces. Usually, such points are chosen as salient features on the part or target in view. They must be such that appropriate image processing techniques allow measuring their positions from the image (directly or indirectly by geometric constructions), while at the same time their coordinates in a reference frame are known. In some cases, not all requested calibration modes are honored. After calibration, EWorldShape::GetCalibrationModes returns the actual combination of modes in effect. To ensure a successful calibration, the perspective angle of the view should not exceed 45 degrees.

◆ CalibrationSucceeded()

bool eVision::Legacy::EWorldShape::CalibrationSucceeded ( )

Getter method for the CalibrationSucceeded property. This property is the flag indicating if the calibration has succeeded (true), that is whether the mean variation of grid points (distance between computed grid points and ideal grid points in world space) and the maximum variation of grid points are between given tolerances.

The mean and maximum grid point variations are normalized using the pitch values. By default, tolerances are set to 0.05 (5 %) for the mean, and 0.1 (10 %) for the maximum grid point variation. You can get and set these tolerances using the EWorldShape::GetGridPointsMeanVariationThreshold and EWorldShape::GetGridPointsMaxVariationThreshold properties.

◆ Closest()

void eVision::Legacy::EWorldShape::Closest ( )
virtual

Find the daughter shape that is the closest to this shape. To retrieve the closest shape, use EShape::GetClosestShape.

Implements eVision::Legacy::EShape.

◆ DisableTypeFilter()

void eVision::Legacy::EWorldShape::DisableTypeFilter ( )
virtual

Enables all shape types.

Reimplemented from eVision::Legacy::EShape.

◆ Drag()

void eVision::Legacy::EWorldShape::Drag ( int32_t n32CursorX,
int32_t n32CursorY )
virtual

Moves a handle to a new position and updates the position parameters of the shape.

Parameters
n32CursorXCurrent cursor coordinates.
n32CursorYCurrent cursor coordinates.

Implements eVision::Legacy::EShape.

◆ DragLandmark()

void eVision::Legacy::EWorldShape::DragLandmark ( int32_t n32CursorX,
int32_t n32CursorY )

Moves the landmark to a new position.

Parameters
n32CursorXCurrent cursor coordinates.
n32CursorYCurrent cursor coordinates.

◆ Draw() [1/9]

void eVision::Legacy::EWorldShape::Draw ( eVision::EDrawAdapter * graphicContext)
virtual

Draws the world coordinate axis.

Parameters
graphicContextHandle of the device context on which to draw.

Implements eVision::Legacy::EShape.

◆ Draw() [2/9]

void eVision::Legacy::EWorldShape::Draw ( eVision::EDrawAdapter * graphicContext,
eVision::EDrawingMode drawingModes )
virtual

Draws the world coordinate axis.

Parameters
graphicContextHandle of the device context on which to draw.
drawingModesIndicates how the world coordinate axis must be displayed, as defined by EDrawingMode.

Implements eVision::Legacy::EShape.

◆ Draw() [3/9]

void eVision::Legacy::EWorldShape::Draw ( eVision::EDrawAdapter * graphicContext,
eVision::EDrawingMode drawingModes,
bool daughters )
virtual

Draws the world coordinate axis.

Parameters
graphicContextHandle of the device context on which to draw.
drawingModesIndicates how the world coordinate axis must be displayed, as defined by EDrawingMode.
daughtersIndicates whether the daughter shapes are to be displayed as well.

Implements eVision::Legacy::EShape.

◆ Draw() [4/9]

void eVision::Legacy::EWorldShape::Draw ( HDC graphicContext)
virtual

Draws the world coordinate axis.

Parameters
graphicContextHandle of the device context on which to draw.
Deprecated

Use the overload taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

Implements eVision::Legacy::EShape.

◆ Draw() [5/9]

void eVision::Legacy::EWorldShape::Draw ( HDC graphicContext,
const eVision::ERGBColor & color )
virtual

Draws the world coordinate axis.

Parameters
graphicContextHandle of the device context on which to draw.
colorThe color in which to draw the overlay.
Deprecated

Use the overload taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

Implements eVision::Legacy::EShape.

◆ Draw() [6/9]

void eVision::Legacy::EWorldShape::Draw ( HDC graphicContext,
const eVision::ERGBColor & color,
eVision::EDrawingMode drawingModes )
virtual

Draws the world coordinate axis.

Parameters
graphicContextHandle of the device context on which to draw.
colorThe color in which to draw the overlay.
drawingModesIndicates how the world coordinate axis must be displayed, as defined by EDrawingMode.
Deprecated

Use the overload taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

Implements eVision::Legacy::EShape.

◆ Draw() [7/9]

void eVision::Legacy::EWorldShape::Draw ( HDC graphicContext,
const eVision::ERGBColor & color,
eVision::EDrawingMode drawingModes,
bool daughters )
virtual

Draws the world coordinate axis.

Parameters
graphicContextHandle of the device context on which to draw.
colorThe color in which to draw the overlay.
drawingModesIndicates how the world coordinate axis must be displayed, as defined by EDrawingMode.
daughtersIndicates whether the daughter shapes are to be displayed as well.
Deprecated

Use the overload taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

Implements eVision::Legacy::EShape.

◆ Draw() [8/9]

void eVision::Legacy::EWorldShape::Draw ( HDC graphicContext,
eVision::EDrawingMode drawingModes )
virtual

Draws the world coordinate axis.

Parameters
graphicContextHandle of the device context on which to draw.
drawingModesIndicates how the world coordinate axis must be displayed, as defined by EDrawingMode.
Deprecated

Use the overload taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

Implements eVision::Legacy::EShape.

◆ Draw() [9/9]

void eVision::Legacy::EWorldShape::Draw ( HDC graphicContext,
eVision::EDrawingMode drawingModes,
bool daughters )
virtual

Draws the world coordinate axis.

Parameters
graphicContextHandle of the device context on which to draw.
drawingModesIndicates how the world coordinate axis must be displayed, as defined by EDrawingMode.
daughtersIndicates whether the daughter shapes are to be displayed as well.
Deprecated

Use the overload taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

Implements eVision::Legacy::EShape.

◆ DrawCrossGrid() [1/21]

void eVision::Legacy::EWorldShape::DrawCrossGrid ( eVision::EDrawAdapter * graphicContext)

Draws a regular grid of crosses in world coordinates.

Parameters
graphicContextHandle of the device context on which to draw.

◆ DrawCrossGrid() [2/21]

void eVision::Legacy::EWorldShape::DrawCrossGrid ( eVision::EDrawAdapter * graphicContext,
float minimumX )

Draws a regular grid of crosses in world coordinates.

Parameters
graphicContextHandle of the device context on which to draw.
minimumXAbscissa of the leftmost crosses, in world coordinates.

◆ DrawCrossGrid() [3/21]

void eVision::Legacy::EWorldShape::DrawCrossGrid ( eVision::EDrawAdapter * graphicContext,
float minimumX,
float maximumX )

Draws a regular grid of crosses in world coordinates.

Parameters
graphicContextHandle of the device context on which to draw.
minimumXAbscissa of the leftmost crosses, in world coordinates.
maximumXAbscissa of the rightmost crosses, in world coordinates.

◆ DrawCrossGrid() [4/21]

void eVision::Legacy::EWorldShape::DrawCrossGrid ( eVision::EDrawAdapter * graphicContext,
float minimumX,
float maximumX,
float minimumY )

Draws a regular grid of crosses in world coordinates.

Parameters
graphicContextHandle of the device context on which to draw.
minimumXAbscissa of the leftmost crosses, in world coordinates.
maximumXAbscissa of the rightmost crosses, in world coordinates.
minimumYOrdinate of the leftmost crosses, in world coordinates.

◆ DrawCrossGrid() [5/21]

void eVision::Legacy::EWorldShape::DrawCrossGrid ( eVision::EDrawAdapter * graphicContext,
float minimumX,
float maximumX,
float minimumY,
float maximumY )

Draws a regular grid of crosses in world coordinates.

Parameters
graphicContextHandle of the device context on which to draw.
minimumXAbscissa of the leftmost crosses, in world coordinates.
maximumXAbscissa of the rightmost crosses, in world coordinates.
minimumYOrdinate of the leftmost crosses, in world coordinates.
maximumYOrdinate of the rightmost crosses, in world coordinates.

◆ DrawCrossGrid() [6/21]

void eVision::Legacy::EWorldShape::DrawCrossGrid ( eVision::EDrawAdapter * graphicContext,
float minimumX,
float maximumX,
float minimumY,
float maximumY,
uint32_t numberOfIntervalsX )

Draws a regular grid of crosses in world coordinates.

Parameters
graphicContextHandle of the device context on which to draw.
minimumXAbscissa of the leftmost crosses, in world coordinates.
maximumXAbscissa of the rightmost crosses, in world coordinates.
minimumYOrdinate of the leftmost crosses, in world coordinates.
maximumYOrdinate of the rightmost crosses, in world coordinates.
numberOfIntervalsXNumber of intervals between crosses along the horizontal direction.

◆ DrawCrossGrid() [7/21]

void eVision::Legacy::EWorldShape::DrawCrossGrid ( eVision::EDrawAdapter * graphicContext,
float minimumX,
float maximumX,
float minimumY,
float maximumY,
uint32_t numberOfIntervalsX,
uint32_t numberOfIntervalsY )

Draws a regular grid of crosses in world coordinates.

Parameters
graphicContextHandle of the device context on which to draw.
minimumXAbscissa of the leftmost crosses, in world coordinates.
maximumXAbscissa of the rightmost crosses, in world coordinates.
minimumYOrdinate of the leftmost crosses, in world coordinates.
maximumYOrdinate of the rightmost crosses, in world coordinates.
numberOfIntervalsXNumber of intervals between crosses along the horizontal direction.
numberOfIntervalsYNumber of intervals between crosses along the vertical direction.

◆ DrawCrossGrid() [8/21]

void eVision::Legacy::EWorldShape::DrawCrossGrid ( HDC graphicContext)

Draws a regular grid of crosses in world coordinates.

Parameters
graphicContextHandle of the device context on which to draw.
Deprecated

Use the overload taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

◆ DrawCrossGrid() [9/21]

void eVision::Legacy::EWorldShape::DrawCrossGrid ( HDC graphicContext,
const eVision::ERGBColor & color )

Draws a regular grid of crosses in world coordinates.

Parameters
graphicContextHandle of the device context on which to draw.
colorThe color in which to draw the overlay.
Deprecated

Use the overload taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

◆ DrawCrossGrid() [10/21]

void eVision::Legacy::EWorldShape::DrawCrossGrid ( HDC graphicContext,
const eVision::ERGBColor & color,
float minimumX )

Draws a regular grid of crosses in world coordinates.

Parameters
graphicContextHandle of the device context on which to draw.
colorThe color in which to draw the overlay.
minimumXAbscissa of the leftmost crosses, in world coordinates.
Deprecated

Use the overload taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

◆ DrawCrossGrid() [11/21]

void eVision::Legacy::EWorldShape::DrawCrossGrid ( HDC graphicContext,
const eVision::ERGBColor & color,
float minimumX,
float maximumX )

Draws a regular grid of crosses in world coordinates.

Parameters
graphicContextHandle of the device context on which to draw.
colorThe color in which to draw the overlay.
minimumXAbscissa of the leftmost crosses, in world coordinates.
maximumXAbscissa of the rightmost crosses, in world coordinates.
Deprecated

Use the overload taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

◆ DrawCrossGrid() [12/21]

void eVision::Legacy::EWorldShape::DrawCrossGrid ( HDC graphicContext,
const eVision::ERGBColor & color,
float minimumX,
float maximumX,
float minimumY )

Draws a regular grid of crosses in world coordinates.

Parameters
graphicContextHandle of the device context on which to draw.
colorThe color in which to draw the overlay.
minimumXAbscissa of the leftmost crosses, in world coordinates.
maximumXAbscissa of the rightmost crosses, in world coordinates.
minimumYOrdinate of the leftmost crosses, in world coordinates.
Deprecated

Use the overload taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

◆ DrawCrossGrid() [13/21]

void eVision::Legacy::EWorldShape::DrawCrossGrid ( HDC graphicContext,
const eVision::ERGBColor & color,
float minimumX,
float maximumX,
float minimumY,
float maximumY )

Draws a regular grid of crosses in world coordinates.

Parameters
graphicContextHandle of the device context on which to draw.
colorThe color in which to draw the overlay.
minimumXAbscissa of the leftmost crosses, in world coordinates.
maximumXAbscissa of the rightmost crosses, in world coordinates.
minimumYOrdinate of the leftmost crosses, in world coordinates.
maximumYOrdinate of the rightmost crosses, in world coordinates.
Deprecated

Use the overload taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

◆ DrawCrossGrid() [14/21]

void eVision::Legacy::EWorldShape::DrawCrossGrid ( HDC graphicContext,
const eVision::ERGBColor & color,
float minimumX,
float maximumX,
float minimumY,
float maximumY,
uint32_t numberOfIntervalsX )

Draws a regular grid of crosses in world coordinates.

Parameters
graphicContextHandle of the device context on which to draw.
colorThe color in which to draw the overlay.
minimumXAbscissa of the leftmost crosses, in world coordinates.
maximumXAbscissa of the rightmost crosses, in world coordinates.
minimumYOrdinate of the leftmost crosses, in world coordinates.
maximumYOrdinate of the rightmost crosses, in world coordinates.
numberOfIntervalsXNumber of intervals between crosses along the horizontal direction.
Deprecated

Use the overload taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

◆ DrawCrossGrid() [15/21]

void eVision::Legacy::EWorldShape::DrawCrossGrid ( HDC graphicContext,
const eVision::ERGBColor & color,
float minimumX,
float maximumX,
float minimumY,
float maximumY,
uint32_t numberOfIntervalsX,
uint32_t numberOfIntervalsY )

Draws a regular grid of crosses in world coordinates.

Parameters
graphicContextHandle of the device context on which to draw.
colorThe color in which to draw the overlay.
minimumXAbscissa of the leftmost crosses, in world coordinates.
maximumXAbscissa of the rightmost crosses, in world coordinates.
minimumYOrdinate of the leftmost crosses, in world coordinates.
maximumYOrdinate of the rightmost crosses, in world coordinates.
numberOfIntervalsXNumber of intervals between crosses along the horizontal direction.
numberOfIntervalsYNumber of intervals between crosses along the vertical direction.
Deprecated

Use the overload taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

◆ DrawCrossGrid() [16/21]

void eVision::Legacy::EWorldShape::DrawCrossGrid ( HDC graphicContext,
float minimumX )

Draws a regular grid of crosses in world coordinates.

Parameters
graphicContextHandle of the device context on which to draw.
minimumXAbscissa of the leftmost crosses, in world coordinates.
Deprecated

Use the overload taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

◆ DrawCrossGrid() [17/21]

void eVision::Legacy::EWorldShape::DrawCrossGrid ( HDC graphicContext,
float minimumX,
float maximumX )

Draws a regular grid of crosses in world coordinates.

Parameters
graphicContextHandle of the device context on which to draw.
minimumXAbscissa of the leftmost crosses, in world coordinates.
maximumXAbscissa of the rightmost crosses, in world coordinates.
Deprecated

Use the overload taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

◆ DrawCrossGrid() [18/21]

void eVision::Legacy::EWorldShape::DrawCrossGrid ( HDC graphicContext,
float minimumX,
float maximumX,
float minimumY )

Draws a regular grid of crosses in world coordinates.

Parameters
graphicContextHandle of the device context on which to draw.
minimumXAbscissa of the leftmost crosses, in world coordinates.
maximumXAbscissa of the rightmost crosses, in world coordinates.
minimumYOrdinate of the leftmost crosses, in world coordinates.
Deprecated

Use the overload taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

◆ DrawCrossGrid() [19/21]

void eVision::Legacy::EWorldShape::DrawCrossGrid ( HDC graphicContext,
float minimumX,
float maximumX,
float minimumY,
float maximumY )

Draws a regular grid of crosses in world coordinates.

Parameters
graphicContextHandle of the device context on which to draw.
minimumXAbscissa of the leftmost crosses, in world coordinates.
maximumXAbscissa of the rightmost crosses, in world coordinates.
minimumYOrdinate of the leftmost crosses, in world coordinates.
maximumYOrdinate of the rightmost crosses, in world coordinates.
Deprecated

Use the overload taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

◆ DrawCrossGrid() [20/21]

void eVision::Legacy::EWorldShape::DrawCrossGrid ( HDC graphicContext,
float minimumX,
float maximumX,
float minimumY,
float maximumY,
uint32_t numberOfIntervalsX )

Draws a regular grid of crosses in world coordinates.

Parameters
graphicContextHandle of the device context on which to draw.
minimumXAbscissa of the leftmost crosses, in world coordinates.
maximumXAbscissa of the rightmost crosses, in world coordinates.
minimumYOrdinate of the leftmost crosses, in world coordinates.
maximumYOrdinate of the rightmost crosses, in world coordinates.
numberOfIntervalsXNumber of intervals between crosses along the horizontal direction.
Deprecated

Use the overload taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

◆ DrawCrossGrid() [21/21]

void eVision::Legacy::EWorldShape::DrawCrossGrid ( HDC graphicContext,
float minimumX,
float maximumX,
float minimumY,
float maximumY,
uint32_t numberOfIntervalsX,
uint32_t numberOfIntervalsY )

Draws a regular grid of crosses in world coordinates.

Parameters
graphicContextHandle of the device context on which to draw.
minimumXAbscissa of the leftmost crosses, in world coordinates.
maximumXAbscissa of the rightmost crosses, in world coordinates.
minimumYOrdinate of the leftmost crosses, in world coordinates.
maximumYOrdinate of the rightmost crosses, in world coordinates.
numberOfIntervalsXNumber of intervals between crosses along the horizontal direction.
numberOfIntervalsYNumber of intervals between crosses along the vertical direction.
Deprecated

Use the overload taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

◆ DrawCrossGridWithCurrentPen() [1/7]

void eVision::Legacy::EWorldShape::DrawCrossGridWithCurrentPen ( HDC graphicContext)

Draws a regular grid of crosses in world coordinates.

Parameters
graphicContextHandle of the device context on which to draw.
Deprecated

Use the overload of EWorldShape::DrawCrossGrid taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

◆ DrawCrossGridWithCurrentPen() [2/7]

void eVision::Legacy::EWorldShape::DrawCrossGridWithCurrentPen ( HDC graphicContext,
float minimumX )

Draws a regular grid of crosses in world coordinates.

Parameters
graphicContextHandle of the device context on which to draw.
minimumXAbscissa of the leftmost crosses, in world coordinates.
Deprecated

Use the overload of EWorldShape::DrawCrossGrid taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

◆ DrawCrossGridWithCurrentPen() [3/7]

void eVision::Legacy::EWorldShape::DrawCrossGridWithCurrentPen ( HDC graphicContext,
float minimumX,
float maximumX )

Draws a regular grid of crosses in world coordinates.

Parameters
graphicContextHandle of the device context on which to draw.
minimumXAbscissa of the leftmost crosses, in world coordinates.
maximumXAbscissa of the rightmost crosses, in world coordinates.
Deprecated

Use the overload of EWorldShape::DrawCrossGrid taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

◆ DrawCrossGridWithCurrentPen() [4/7]

void eVision::Legacy::EWorldShape::DrawCrossGridWithCurrentPen ( HDC graphicContext,
float minimumX,
float maximumX,
float minimumY )

Draws a regular grid of crosses in world coordinates.

Parameters
graphicContextHandle of the device context on which to draw.
minimumXAbscissa of the leftmost crosses, in world coordinates.
maximumXAbscissa of the rightmost crosses, in world coordinates.
minimumYOrdinate of the leftmost crosses, in world coordinates.
Deprecated

Use the overload of EWorldShape::DrawCrossGrid taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

◆ DrawCrossGridWithCurrentPen() [5/7]

void eVision::Legacy::EWorldShape::DrawCrossGridWithCurrentPen ( HDC graphicContext,
float minimumX,
float maximumX,
float minimumY,
float maximumY )

Draws a regular grid of crosses in world coordinates.

Parameters
graphicContextHandle of the device context on which to draw.
minimumXAbscissa of the leftmost crosses, in world coordinates.
maximumXAbscissa of the rightmost crosses, in world coordinates.
minimumYOrdinate of the leftmost crosses, in world coordinates.
maximumYOrdinate of the rightmost crosses, in world coordinates.
Deprecated

Use the overload of EWorldShape::DrawCrossGrid taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

◆ DrawCrossGridWithCurrentPen() [6/7]

void eVision::Legacy::EWorldShape::DrawCrossGridWithCurrentPen ( HDC graphicContext,
float minimumX,
float maximumX,
float minimumY,
float maximumY,
uint32_t numberOfIntervalsX )

Draws a regular grid of crosses in world coordinates.

Parameters
graphicContextHandle of the device context on which to draw.
minimumXAbscissa of the leftmost crosses, in world coordinates.
maximumXAbscissa of the rightmost crosses, in world coordinates.
minimumYOrdinate of the leftmost crosses, in world coordinates.
maximumYOrdinate of the rightmost crosses, in world coordinates.
numberOfIntervalsXNumber of intervals between crosses along the horizontal direction.
Deprecated

Use the overload of EWorldShape::DrawCrossGrid taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

◆ DrawCrossGridWithCurrentPen() [7/7]

void eVision::Legacy::EWorldShape::DrawCrossGridWithCurrentPen ( HDC graphicContext,
float minimumX,
float maximumX,
float minimumY,
float maximumY,
uint32_t numberOfIntervalsX,
uint32_t numberOfIntervalsY )

Draws a regular grid of crosses in world coordinates.

Parameters
graphicContextHandle of the device context on which to draw.
minimumXAbscissa of the leftmost crosses, in world coordinates.
maximumXAbscissa of the rightmost crosses, in world coordinates.
minimumYOrdinate of the leftmost crosses, in world coordinates.
maximumYOrdinate of the rightmost crosses, in world coordinates.
numberOfIntervalsXNumber of intervals between crosses along the horizontal direction.
numberOfIntervalsYNumber of intervals between crosses along the vertical direction.
Deprecated

Use the overload of EWorldShape::DrawCrossGrid taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

◆ DrawGrid() [1/3]

void eVision::Legacy::EWorldShape::DrawGrid ( eVision::EDrawAdapter * graphicContext)

Draws the reconstructed grid to be used for grid calibration.

Parameters
graphicContextHandle of the device context on which to draw.

◆ DrawGrid() [2/3]

void eVision::Legacy::EWorldShape::DrawGrid ( HDC graphicContext)

Draws the reconstructed grid to be used for grid calibration.

Parameters
graphicContextHandle of the device context on which to draw.
Deprecated

Use the overload taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

◆ DrawGrid() [3/3]

void eVision::Legacy::EWorldShape::DrawGrid ( HDC graphicContext,
const eVision::ERGBColor & color )

Draws the reconstructed grid to be used for grid calibration.

Parameters
graphicContextHandle of the device context on which to draw.
colorThe color in which to draw the overlay.
Deprecated

Use the overload taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

◆ DrawGridWithCurrentPen()

void eVision::Legacy::EWorldShape::DrawGridWithCurrentPen ( HDC graphicContext)

Draws the reconstructed grid to be used for grid calibration.

Parameters
graphicContextHandle of the device context on which to draw.
Deprecated

Use the overload of EWorldShape::DrawGrid taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

◆ DrawLandmarks() [1/2]

void eVision::Legacy::EWorldShape::DrawLandmarks ( eVision::EDrawAdapter * graphicContext)

Draws the landmarks to be used for landmark calibration.

Parameters
graphicContextHandle of the device context on which to draw.

◆ DrawLandmarks() [2/2]

void eVision::Legacy::EWorldShape::DrawLandmarks ( HDC graphicContext)

Draws the landmarks to be used for landmark calibration.

Parameters
graphicContextHandle of the device context on which to draw.
Deprecated

Use the overload taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

◆ DrawWithCurrentPen() [1/3]

void eVision::Legacy::EWorldShape::DrawWithCurrentPen ( HDC graphicContext)
virtual

Draws the world coordinate axis.

Parameters
graphicContextHandle of the device context on which to draw.
Deprecated

Use the overload of EWorldShape::Draw taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

Implements eVision::Legacy::EShape.

◆ DrawWithCurrentPen() [2/3]

void eVision::Legacy::EWorldShape::DrawWithCurrentPen ( HDC graphicContext,
eVision::EDrawingMode drawingModes )
virtual

Draws the world coordinate axis.

Parameters
graphicContextHandle of the device context on which to draw.
drawingModesIndicates how the world coordinate axis must be displayed, as defined by EDrawingMode.
Deprecated

Use the overload of EWorldShape::Draw taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

Implements eVision::Legacy::EShape.

◆ DrawWithCurrentPen() [3/3]

void eVision::Legacy::EWorldShape::DrawWithCurrentPen ( HDC graphicContext,
eVision::EDrawingMode drawingModes,
bool daughters )
virtual

Draws the world coordinate axis.

Parameters
graphicContextHandle of the device context on which to draw.
drawingModesIndicates how the world coordinate axis must be displayed, as defined by EDrawingMode.
daughtersIndicates whether the daughter shapes are to be displayed as well.
Deprecated

Use the overload of EWorldShape::Draw taking an EDrawAdapter by using an instance of EWindowsDrawAdapter.

Deprecated in version 23.12. Scheduled to be removed in version 27.6.

Implements eVision::Legacy::EShape.

◆ EmptyLandmarks()

void eVision::Legacy::EWorldShape::EmptyLandmarks ( )

Resets the landmark specification sequence.

Landmark calibration is the process of computing the calibration parameters by means of a set of known points for which the coordinates are available in both World and Sensor spaces. Usually, such points are chosen as salient features on the part or target in view. They must be such that appropriate image processing techniques allow measuring their positions from the image (directly or indirectly by geometric constructions), while at the same time their coordinates in a reference frame are known.

◆ EnableTypeFilter()

void eVision::Legacy::EWorldShape::EnableTypeFilter ( uint32_t un32Types)
virtual

Enables the filter of the specified shape type.

Parameters
un32TypesThe type of the shape to filter from EShapeType.

Reimplemented from eVision::Legacy::EShape.

◆ GetAngle()

float eVision::Legacy::EWorldShape::GetAngle ( ) const

Tilt X angle, that is the amplitude of the rotation applied around the X-axis of the sensor to bring the optical (Z) axis perpendicular to the field of view.

Tilt X Angle and Tilt Y Angle

◆ GetCalibrationModes()

uint32_t eVision::Legacy::EWorldShape::GetCalibrationModes ( ) const

Current calibration mode, made from a combination of values.

The supported calibration modes can be set to ECalibrationMode::ECalibrationMode_Raw, meaning that no calibration at all is performed (the World coordinates are pixel indices), or to the logical sum of other values from ECalibrationMode.

◆ GetCenter()

eVision::EPoint eVision::Legacy::EWorldShape::GetCenter ( ) const

Position of the origin point of the reference frame as projected onto the image, i.e. the Sensor position of the point at World coordinates (0,0).

◆ GetCenterX()

float eVision::Legacy::EWorldShape::GetCenterX ( ) const

Horizontal position of the origin point of the reference frame as projected onto the image, i.e. the Sensor abscissa of the point at World coordinates (0,0).

◆ GetCenterY()

float eVision::Legacy::EWorldShape::GetCenterY ( ) const

Vertical position of the origin point of the reference frame as projected onto the image, i.e. the Sensor ordinate of the point at World coordinates (0,0).

◆ GetDistortionStrength()

float eVision::Legacy::EWorldShape::GetDistortionStrength ( ) const

Optical distortion strength, i.e. the ratio of the image diagonal length with and without optical distortion introduced by the lens.

◆ GetFieldHeight()

float eVision::Legacy::EWorldShape::GetFieldHeight ( ) const

Field-of-view height, in physical units.

Field size not matching the sensor size results in non-square pixels.

Pixels having non-square aspect ratio. Beware there is a restriction pertaining to the allowed image anisotropy. The resulting pixels aspect ratio (XResolution/YResolution) should be in the range [-4/3, -3/4] (or [3/4, 4/3]), otherwise the calibration process could fail.

◆ GetFieldWidth()

float eVision::Legacy::EWorldShape::GetFieldWidth ( ) const

Field-of-view width, in physical units.

Field size not matching the sensor size results in non-square pixels.

Pixels having non-square aspect ratio. Beware there is a restriction pertaining to the allowed image anisotropy. The resulting pixels aspect ratio (XResolution/YResolution) should be in the range [-4/3, -3/4] (or [3/4, 4/3]), otherwise the calibration process could fail.

◆ GetGridPointsMaxVariation()

float eVision::Legacy::EWorldShape::GetGridPointsMaxVariation ( ) const

Maximum variation of grid points (maximum distance between computed grid points and ideal grid points in world space), normalized using the pitch values, after a call to EWorldShape::CalibrationSucceeded.

The maximum grid point variation is normalized using the pitch values.

◆ GetGridPointsMaxVariationThreshold()

float eVision::Legacy::EWorldShape::GetGridPointsMaxVariationThreshold ( ) const

Grid points maximum variation threshold, that is the value above which the maximum variation of grid points (maximum distance between computed grid points and ideal grid points in world space) is considered too high, and thus marks the calibration as a failure when using EWorldShape::CalibrationSucceeded.

The maximum grid point variation is normalized using the pitch values.

◆ GetGridPointsMeanVariation()

float eVision::Legacy::EWorldShape::GetGridPointsMeanVariation ( ) const

Mean variation of grid points (mean distance between computed grid points and ideal grid points in world space), normalized using the pitch values, after a call to EWorldShape::CalibrationSucceeded.

The mean grid point variation is normalized using the pitch values.

◆ GetGridPointsMeanVariationThreshold()

float eVision::Legacy::EWorldShape::GetGridPointsMeanVariationThreshold ( ) const

Grid points mean variation threshold, that is the value above which the mean variation of grid points (mean distance between computed grid points and ideal grid points in world space) is considered too high, and thus marks the calibration as a failure when using EWorldShape::CalibrationSucceeded.

The mean grid point variation is normalized using the pitch values.

◆ GetHitLandmark()

uint32_t eVision::Legacy::EWorldShape::GetHitLandmark ( )

Returns the landmark selected by EWorldShape::HitLandmarks or ~0 if no landmark is selected.

◆ GetLandmarkElement() [1/2]

eVision::ELandmark & eVision::Legacy::EWorldShape::GetLandmarkElement ( uint32_t i)

Returns the landmark element corresponding to the given index.

Parameters
iLandmark index.

◆ GetLandmarkElement() [2/2]

const eVision::ELandmark & eVision::Legacy::EWorldShape::GetLandmarkElement ( uint32_t i) const

Returns the landmark element corresponding to the given index.

Parameters
iLandmark index.

◆ GetNumLandmarkElements()

uint32_t eVision::Legacy::EWorldShape::GetNumLandmarkElements ( ) const

Returns the number of landmark elements.

◆ GetOpticalCenterX()

float eVision::Legacy::EWorldShape::GetOpticalCenterX ( ) const

◆ GetOpticalCenterY()

float eVision::Legacy::EWorldShape::GetOpticalCenterY ( ) const

◆ GetPanX()

float eVision::Legacy::EWorldShape::GetPanX ( ) const
virtual

Current horizontal panning value for drawing operations, expressed in pixels. By default, no panning occurs.

Reimplemented from eVision::Legacy::EShape.

◆ GetPanY()

float eVision::Legacy::EWorldShape::GetPanY ( ) const
virtual

Current vertical panning value for drawing operations, expressed in pixels. By default, no panning occurs.

Reimplemented from eVision::Legacy::EShape.

◆ GetPerspectiveStrength()

float eVision::Legacy::EWorldShape::GetPerspectiveStrength ( ) const

Perspective effect coefficient, that is the inverse of the observation distance.

The larger this parameter, the more perceivable the perspective distortion will be. A NULL value corresponds to a telecentric lens.

◆ GetRatio()

float eVision::Legacy::EWorldShape::GetRatio ( ) const

XResolution/YResolution ratio.

If Ratio equals -1 (or 1), pixels are square. Beware there is a restriction pertaining to the allowed image anisotropy. The resulting pixels aspect ratio (XResolution/YResolution) should be in the range [-4/3, -3/4] (or [3/4, 4/3]), otherwise the calibration process could fail.

◆ GetScale()

float eVision::Legacy::EWorldShape::GetScale ( ) const

The scale of the reference frame.

◆ GetSensorHeight()

int32_t eVision::Legacy::EWorldShape::GetSensorHeight ( ) const

Logical image height, that is the number of pixels vertically.

◆ GetSensorWidth()

int32_t eVision::Legacy::EWorldShape::GetSensorWidth ( ) const

Logical image width, that is the number of pixels horizontally.

◆ GetTiltXAngle()

float eVision::Legacy::EWorldShape::GetTiltXAngle ( ) const

Tilt X angle, that is the amplitude of the rotation applied around the X-axis of the sensor to bring the optical (Z) axis perpendicular to the field of view.

Tilt X Angle and Tilt Y Angle

◆ GetTiltYAngle()

float eVision::Legacy::EWorldShape::GetTiltYAngle ( ) const

Tilt Y angle, that is the amplitude of the rotation applied around the Y-axis of the sensor to bring the optical (Z) axis perpendicular to the field of view.

Tilt X Angle and Tilt Y Angle

◆ GetType()

eVision::EShapeType eVision::Legacy::EWorldShape::GetType ( ) const
virtual

Shape type.

Implements eVision::Legacy::EShape.

◆ GetUnwarpedWorldShape() [1/4]

eVision::Legacy::EWorldShape eVision::Legacy::EWorldShape::GetUnwarpedWorldShape ( const eVision::EBaseROI * sourceImage)

Gets a EWorldShape instance representing the transformation of image to world coordinates for the result of EWorldShape::Unwarp.

Parameters
sourceImageImage to unwarp.

◆ GetUnwarpedWorldShape() [2/4]

eVision::Legacy::EWorldShape eVision::Legacy::EWorldShape::GetUnwarpedWorldShape ( const eVision::EBaseROI * sourceImage,
bool resizeDestination )

Gets a EWorldShape instance representing the transformation of image to world coordinates for the result of EWorldShape::Unwarp.

Parameters
sourceImageImage to unwarp.
resizeDestinationResize the destination image to match the unwarped image size. Default value is false.

◆ GetUnwarpedWorldShape() [3/4]

eVision::Legacy::EWorldShape eVision::Legacy::EWorldShape::GetUnwarpedWorldShape ( int32_t sourceWidth,
int32_t sourceHeight )

Gets a EWorldShape instance representing the transformation of image to world coordinates for the result of EWorldShape::Unwarp.

Parameters
sourceWidthWidth of the image to unwarp.
sourceHeightHeight of the image to unwarp.

◆ GetUnwarpedWorldShape() [4/4]

eVision::Legacy::EWorldShape eVision::Legacy::EWorldShape::GetUnwarpedWorldShape ( int32_t sourceWidth,
int32_t sourceHeight,
bool resizeDestination )

Gets a EWorldShape instance representing the transformation of image to world coordinates for the result of EWorldShape::Unwarp.

Parameters
sourceWidthWidth of the image to unwarp.
sourceHeightHeight of the image to unwarp.
resizeDestinationResize the destination image to match the unwarped image size. Default value is false.

◆ GetXResolution()

float eVision::Legacy::EWorldShape::GetXResolution ( ) const

Horizontal sensor resolution, in pixels per unit.

◆ GetYResolution()

float eVision::Legacy::EWorldShape::GetYResolution ( ) const

Vertical sensor resolution, in pixels per unit.

◆ GetZoomX()

float eVision::Legacy::EWorldShape::GetZoomX ( ) const
virtual

Current horizontal zooming factor for drawing operations.

Reimplemented from eVision::Legacy::EShape.

◆ GetZoomY()

float eVision::Legacy::EWorldShape::GetZoomY ( ) const
virtual

Current vertical zooming factor for drawing operations.

Reimplemented from eVision::Legacy::EShape.

◆ HitLandmarks()

void eVision::Legacy::EWorldShape::HitLandmarks ( )

Checks if the cursor is placed over a landmark point.

Landmark calibration is the process of computing the calibration parameters by means of a set of known points for which the coordinates are available in both World and Sensor spaces. Usually, such points are chosen as salient features on the part or target in view. They must be such that appropriate image processing techniques allow measuring their positions from the image (directly or indirectly by geometric constructions), while at the same time their coordinates in a reference frame are known.

◆ HitTest() [1/2]

bool eVision::Legacy::EWorldShape::HitTest ( )
virtual

Checks if there is a handle under the cursor.

Implements eVision::Legacy::EShape.

◆ HitTest() [2/2]

bool eVision::Legacy::EWorldShape::HitTest ( bool bDaughters)
virtual

Checks if there is a handle under the cursor.

Parameters
bDaughtersIndicates if the check must be done in the whole hierarchy or just this object.

Implements eVision::Legacy::EShape.

◆ Invalidate()

void eVision::Legacy::EWorldShape::Invalidate ( )

◆ operator=()

eVision::Legacy::EWorldShape & eVision::Legacy::EWorldShape::operator= ( const eVision::Legacy::EWorldShape & other)

Copies all the data from another EWorldShape object into the current EWorldShape object.

Parameters
otherEWorldShape object to be copied

◆ RebuildGrid() [1/6]

uint32_t eVision::Legacy::EWorldShape::RebuildGrid ( float colPitch,
float rowPitch )

Reconstructs the grid of points from the given dot centers, to compute the World coordinates of the points.

Parameters
colPitchActual pitches of the grid, that are distances between vertical and horizontal rows of the grid.
rowPitchActual pitches of the grid, that are distances between vertical and horizontal rows of the grid.

This member function also returns the number of grid points that were connected. This prepares the calibration using landmarks (for use by member EWorldShape::Calibrate). Landmark calibration is the process of computing the calibration parameters by means of a set of known points for which the coordinates are available in both World and Sensor spaces. Usually, such points are chosen as salient features on the part or target in view. They must be such that appropriate image processing techniques allow measuring their positions from the image (directly or indirectly by geometric constructions), while at the same time their coordinates in a reference frame are known. See also Dot-Grid-Based Calibration for the grid construction algorithm.

◆ RebuildGrid() [2/6]

uint32_t eVision::Legacy::EWorldShape::RebuildGrid ( float colPitch,
float rowPitch,
const eVision::EPoint & worldCenter )

Reconstructs the grid of points from the given dot centers, to compute the World coordinates of the points.

Parameters
colPitchActual pitches of the grid, that are distances between vertical and horizontal rows of the grid.
rowPitchActual pitches of the grid, that are distances between vertical and horizontal rows of the grid.
worldCenterWorld coordinates of the starting grid point.

This member function also returns the number of grid points that were connected. This prepares the calibration using landmarks (for use by member EWorldShape::Calibrate). Landmark calibration is the process of computing the calibration parameters by means of a set of known points for which the coordinates are available in both World and Sensor spaces. Usually, such points are chosen as salient features on the part or target in view. They must be such that appropriate image processing techniques allow measuring their positions from the image (directly or indirectly by geometric constructions), while at the same time their coordinates in a reference frame are known. See also Dot-Grid-Based Calibration for the grid construction algorithm.

◆ RebuildGrid() [3/6]

uint32_t eVision::Legacy::EWorldShape::RebuildGrid ( float colPitch,
float rowPitch,
const eVision::EPoint & worldCenter,
uint32_t centerIndex )

Reconstructs the grid of points from the given dot centers, to compute the World coordinates of the points.

Parameters
colPitchActual pitches of the grid, that are distances between vertical and horizontal rows of the grid.
rowPitchActual pitches of the grid, that are distances between vertical and horizontal rows of the grid.
worldCenterWorld coordinates of the starting grid point.
centerIndexIndex of the grid point chosen as coordinate origin point. By default, the most central grid point.

This member function also returns the number of grid points that were connected. This prepares the calibration using landmarks (for use by member EWorldShape::Calibrate). Landmark calibration is the process of computing the calibration parameters by means of a set of known points for which the coordinates are available in both World and Sensor spaces. Usually, such points are chosen as salient features on the part or target in view. They must be such that appropriate image processing techniques allow measuring their positions from the image (directly or indirectly by geometric constructions), while at the same time their coordinates in a reference frame are known. See also Dot-Grid-Based Calibration for the grid construction algorithm.

◆ RebuildGrid() [4/6]

uint32_t eVision::Legacy::EWorldShape::RebuildGrid ( float colPitch,
float rowPitch,
const eVision::EPoint & worldCenter,
uint32_t centerIndex,
bool direct )

Reconstructs the grid of points from the given dot centers, to compute the World coordinates of the points.

Parameters
colPitchActual pitches of the grid, that are distances between vertical and horizontal rows of the grid.
rowPitchActual pitches of the grid, that are distances between vertical and horizontal rows of the grid.
worldCenterWorld coordinates of the starting grid point.
centerIndexIndex of the grid point chosen as coordinate origin point. By default, the most central grid point.
directtrue if the world reference frame points upwards.

This member function also returns the number of grid points that were connected. This prepares the calibration using landmarks (for use by member EWorldShape::Calibrate). Landmark calibration is the process of computing the calibration parameters by means of a set of known points for which the coordinates are available in both World and Sensor spaces. Usually, such points are chosen as salient features on the part or target in view. They must be such that appropriate image processing techniques allow measuring their positions from the image (directly or indirectly by geometric constructions), while at the same time their coordinates in a reference frame are known. See also Dot-Grid-Based Calibration for the grid construction algorithm.

◆ RebuildGrid() [5/6]

uint32_t eVision::Legacy::EWorldShape::RebuildGrid ( float colPitch,
float rowPitch,
uint32_t centerIndex )

Reconstructs the grid of points from the given dot centers, to compute the World coordinates of the points.

Parameters
colPitchActual pitches of the grid, that are distances between vertical and horizontal rows of the grid.
rowPitchActual pitches of the grid, that are distances between vertical and horizontal rows of the grid.
centerIndexIndex of the grid point chosen as coordinate origin point. By default, the most central grid point.

This member function also returns the number of grid points that were connected. This prepares the calibration using landmarks (for use by member EWorldShape::Calibrate). Landmark calibration is the process of computing the calibration parameters by means of a set of known points for which the coordinates are available in both World and Sensor spaces. Usually, such points are chosen as salient features on the part or target in view. They must be such that appropriate image processing techniques allow measuring their positions from the image (directly or indirectly by geometric constructions), while at the same time their coordinates in a reference frame are known. See also Dot-Grid-Based Calibration for the grid construction algorithm.

◆ RebuildGrid() [6/6]

uint32_t eVision::Legacy::EWorldShape::RebuildGrid ( float colPitch,
float rowPitch,
uint32_t centerIndex,
bool direct )

Reconstructs the grid of points from the given dot centers, to compute the World coordinates of the points.

Parameters
colPitchActual pitches of the grid, that are distances between vertical and horizontal rows of the grid.
rowPitchActual pitches of the grid, that are distances between vertical and horizontal rows of the grid.
centerIndexIndex of the grid point chosen as coordinate origin point. By default, the most central grid point.
directtrue if the world reference frame points upwards.

This member function also returns the number of grid points that were connected. This prepares the calibration using landmarks (for use by member EWorldShape::Calibrate). Landmark calibration is the process of computing the calibration parameters by means of a set of known points for which the coordinates are available in both World and Sensor spaces. Usually, such points are chosen as salient features on the part or target in view. They must be such that appropriate image processing techniques allow measuring their positions from the image (directly or indirectly by geometric constructions), while at the same time their coordinates in a reference frame are known. See also Dot-Grid-Based Calibration for the grid construction algorithm.

◆ RemoveLandmark()

void eVision::Legacy::EWorldShape::RemoveLandmark ( uint32_t index)

Removes a landmark.

Parameters
indexIndex of the landmark to be removed.

◆ SensorToWorld()

eVision::EPoint eVision::Legacy::EWorldShape::SensorToWorld ( const eVision::EPoint & sensorPoint)

Performs coordinate transform for arbitrary points from Sensor space to World space.

Parameters
sensorPointSensor point.

For cameras with large distortions, reverting the distortion model for eccentric pixels (i.e. pixels near the border of the image) may not converge properly and may yield inaccurate results.

◆ SetAngle()

void eVision::Legacy::EWorldShape::SetAngle ( float f32Angle)

Tilt X angle, that is the amplitude of the rotation applied around the X-axis of the sensor to bring the optical (Z) axis perpendicular to the field of view.

Tilt X Angle and Tilt Y Angle

◆ SetCalibrationModes()

void eVision::Legacy::EWorldShape::SetCalibrationModes ( uint32_t calibrationModes)

Current calibration mode, made from a combination of values.

The supported calibration modes can be set to ECalibrationMode::ECalibrationMode_Raw, meaning that no calibration at all is performed (the World coordinates are pixel indices), or to the logical sum of other values from ECalibrationMode.

◆ SetCenter()

void eVision::Legacy::EWorldShape::SetCenter ( const eVision::EPoint & center)

Position of the origin point of the reference frame as projected onto the image, i.e. the Sensor position of the point at World coordinates (0,0).

◆ SetCenterXY()

void eVision::Legacy::EWorldShape::SetCenterXY ( float centerX,
float centerY )

Position of the origin point of the reference frame as projected onto the image, i.e. the Sensor position of the point at World coordinates (0,0).

Parameters
centerXHorizontal position (abscissa)
centerYVertical position (ordinate)

◆ SetDistortion()

void eVision::Legacy::EWorldShape::SetDistortion ( float distortionStrength)

Sets the optical distortion parameters.

Parameters
distortionStrengthOptical distortion strength, i.e. the ratio of the image diagonal length with and without optical distortion introduced by the lens.

Deprecated in favor of EWorldShape::SetDistortionStrength.

Deprecated
Deprecated in version 2.16. Scheduled to be removed in version 27.6.

◆ SetDistortionStrength()

void eVision::Legacy::EWorldShape::SetDistortionStrength ( float distortionStrength)

Sets the optical distortion parameters.

Parameters
distortionStrengthOptical distortion strength, i.e. the ratio of the image diagonal length with and without optical distortion introduced by the lens.

Positive distortion and negative distortion

◆ SetFieldSize() [1/2]

void eVision::Legacy::EWorldShape::SetFieldSize ( float width)

Sets the field of view size in physical units.

Parameters
widthFull image physical width, in length units.

Field size not matching the sensor size results in non-square pixels. By default, the pixels are square.

Pixels having non-square aspect ratio. Beware there is a restriction pertaining to the allowed image anisotropy. The resulting pixels aspect ratio (XResolution/YResolution) should be in the range [-4/3, -3/4] (or [3/4, 4/3]), otherwise the calibration process could fail.

◆ SetFieldSize() [2/2]

void eVision::Legacy::EWorldShape::SetFieldSize ( float width,
float height )

Sets the field of view size in physical units.

Parameters
widthFull image physical width, in length units.
heightFull image physical height, in length units. If not specified, same as physical width.

Field size not matching the sensor size results in non-square pixels. By default, the pixels are square.

Pixels having non-square aspect ratio. Beware there is a restriction pertaining to the allowed image anisotropy. The resulting pixels aspect ratio (XResolution/YResolution) should be in the range [-4/3, -3/4] (or [3/4, 4/3]), otherwise the calibration process could fail.

◆ SetGridPointsMaxVariationThreshold()

void eVision::Legacy::EWorldShape::SetGridPointsMaxVariationThreshold ( float maxVariationThreshold)

Grid points maximum variation threshold, that is the value above which the maximum variation of grid points (maximum distance between computed grid points and ideal grid points in world space) is considered too high, and thus marks the calibration as a failure when using EWorldShape::CalibrationSucceeded.

The maximum grid point variation is normalized using the pitch values.

◆ SetGridPointsMeanVariationThreshold()

void eVision::Legacy::EWorldShape::SetGridPointsMeanVariationThreshold ( float meanVariationThreshold)

Grid points mean variation threshold, that is the value above which the mean variation of grid points (mean distance between computed grid points and ideal grid points in world space) is considered too high, and thus marks the calibration as a failure when using EWorldShape::CalibrationSucceeded.

The mean grid point variation is normalized using the pitch values.

◆ SetOpticalCenter()

void eVision::Legacy::EWorldShape::SetOpticalCenter ( float centerX,
float centerY )

◆ SetPan() [1/3]

void eVision::Legacy::EWorldShape::SetPan ( )
virtual

Sets the horizontal and vertical panning values for drawing operations, expressed in pixels.

All objects attached to an EWorldShape::EWorldShape object inherit of the same panning factor.

Reimplemented from eVision::Legacy::EShape.

◆ SetPan() [2/3]

void eVision::Legacy::EWorldShape::SetPan ( float panX)
virtual

Sets the horizontal and vertical panning values for drawing operations, expressed in pixels.

Parameters
panXHorizontal panning value expressed in pixels. By default, no panning occurs.

All objects attached to an EWorldShape::EWorldShape object inherit of the same panning factor.

Reimplemented from eVision::Legacy::EShape.

◆ SetPan() [3/3]

void eVision::Legacy::EWorldShape::SetPan ( float panX,
float panY )
virtual

Sets the horizontal and vertical panning values for drawing operations, expressed in pixels.

Parameters
panXHorizontal panning value expressed in pixels. By default, no panning occurs.
panYVertical panning value expressed in pixels. By default, no panning occurs.

All objects attached to an EWorldShape::EWorldShape object inherit of the same panning factor.

Reimplemented from eVision::Legacy::EShape.

◆ SetPerspective()

void eVision::Legacy::EWorldShape::SetPerspective ( float tiltXAngle,
float tiltYAngle,
float perspectiveStrength )

Sets the perspective effect coefficient, i.e. the inverse of the observation distance.

Parameters
tiltXAngleTilt angles, i.e. the amplitudes of the rotations applied around the X and Y axis of the sensor to bring the optical (Z) axis perpendicular to the field of view.
tiltYAngleTilt angles, i.e. the amplitudes of the rotations applied around the X and Y axis of the sensor to bring the optical (Z) axis perpendicular to the field of view.
perspectiveStrengthPerspective effect coefficient.

The larger this parameter, the more perceivable the perspective distortion will be. A NULL value corresponds to a telecentric lens.

Weak Perspective and Strong Perspective

◆ SetRatio()

void eVision::Legacy::EWorldShape::SetRatio ( float ratio)

XResolution/YResolution ratio.

If Ratio equals -1 (or 1), pixels are square. Beware there is a restriction pertaining to the allowed image anisotropy. The resulting pixels aspect ratio (XResolution/YResolution) should be in the range [-4/3, -3/4] (or [3/4, 4/3]), otherwise the calibration process could fail.

◆ SetResolution() [1/2]

void eVision::Legacy::EWorldShape::SetResolution ( float resolutionX)

Sets the sensor resolution in pixels per unit in both directions.

Parameters
resolutionXHorizontal resolution in pixels per units

By default, the pixels are square.

◆ SetResolution() [2/2]

void eVision::Legacy::EWorldShape::SetResolution ( float resolutionX,
float resolutionY )

Sets the sensor resolution in pixels per unit in both directions.

Parameters
resolutionXHorizontal resolution in pixels per units
resolutionYVertical resolution in pixels per units. If not specified, same as horizontal resolution.

By default, the pixels are square.

◆ SetScale()

void eVision::Legacy::EWorldShape::SetScale ( float f32Scale)

The scale of the reference frame.

Parameters
f32ScaleThe scale.

◆ SetSensor() [1/13]

void eVision::Legacy::EWorldShape::SetSensor ( int32_t sensorWidth,
int32_t sensorHeight )

Initializes the calibration object using all given parameters.

Parameters
sensorWidthLogical size of the field of view, i.e. image size, in pixels.
sensorHeightLogical size of the field of view, i.e. image size, in pixels.

The function automatically selects the appropriate calibration model by checking the parameters. The use of a more complex calibration mode can be enforced by means of parameter EWorldShape::GetCalibrationModes, not a simpler one.

◆ SetSensor() [2/13]

void eVision::Legacy::EWorldShape::SetSensor ( int32_t sensorWidth,
int32_t sensorHeight,
float fieldWidth )

Initializes the calibration object using all given parameters.

Parameters
sensorWidthLogical size of the field of view, i.e. image size, in pixels.
sensorHeightLogical size of the field of view, i.e. image size, in pixels.
fieldWidthPhysical size of the field of view. By default (argument omitted), the pixels are square.

The function automatically selects the appropriate calibration model by checking the parameters. The use of a more complex calibration mode can be enforced by means of parameter EWorldShape::GetCalibrationModes, not a simpler one.

◆ SetSensor() [3/13]

void eVision::Legacy::EWorldShape::SetSensor ( int32_t sensorWidth,
int32_t sensorHeight,
float fieldWidth,
float fieldHeight )

Initializes the calibration object using all given parameters.

Parameters
sensorWidthLogical size of the field of view, i.e. image size, in pixels.
sensorHeightLogical size of the field of view, i.e. image size, in pixels.
fieldWidthPhysical size of the field of view. By default (argument omitted), the pixels are square.
fieldHeightPhysical size of the field of view. By default (argument omitted), the pixels are square.

The function automatically selects the appropriate calibration model by checking the parameters. The use of a more complex calibration mode can be enforced by means of parameter EWorldShape::GetCalibrationModes, not a simpler one.

◆ SetSensor() [4/13]

void eVision::Legacy::EWorldShape::SetSensor ( int32_t sensorWidth,
int32_t sensorHeight,
float fieldWidth,
float fieldHeight,
float centerX )

Initializes the calibration object using all given parameters.

Parameters
sensorWidthLogical size of the field of view, i.e. image size, in pixels.
sensorHeightLogical size of the field of view, i.e. image size, in pixels.
fieldWidthPhysical size of the field of view. By default (argument omitted), the pixels are square.
fieldHeightPhysical size of the field of view. By default (argument omitted), the pixels are square.
centerXPosition of the "intersection" between the optical axis and the field of view in the image. By default, if the calibration modes contain ECalibrationMode::ECalibrationMode_Raw, it is set to 0. Otherwise, it is set to the image center.

The function automatically selects the appropriate calibration model by checking the parameters. The use of a more complex calibration mode can be enforced by means of parameter EWorldShape::GetCalibrationModes, not a simpler one.

◆ SetSensor() [5/13]

void eVision::Legacy::EWorldShape::SetSensor ( int32_t sensorWidth,
int32_t sensorHeight,
float fieldWidth,
float fieldHeight,
float centerX,
float centerY )

Initializes the calibration object using all given parameters.

Parameters
sensorWidthLogical size of the field of view, i.e. image size, in pixels.
sensorHeightLogical size of the field of view, i.e. image size, in pixels.
fieldWidthPhysical size of the field of view. By default (argument omitted), the pixels are square.
fieldHeightPhysical size of the field of view. By default (argument omitted), the pixels are square.
centerXPosition of the "intersection" between the optical axis and the field of view in the image. By default, if the calibration modes contain ECalibrationMode::ECalibrationMode_Raw, it is set to 0. Otherwise, it is set to the image center.
centerYPosition of the "intersection" between the optical axis and the field of view in the image. By default, if the calibration modes contain ECalibrationMode::ECalibrationMode_Raw, it is set to 0 (or to the bottommost pixel index if the calibration modes also contain ECalibrationMode::ECalibrationMode_Inverse). Otherwise, it is set to the image center.

The function automatically selects the appropriate calibration model by checking the parameters. The use of a more complex calibration mode can be enforced by means of parameter EWorldShape::GetCalibrationModes, not a simpler one.

◆ SetSensor() [6/13]

void eVision::Legacy::EWorldShape::SetSensor ( int32_t sensorWidth,
int32_t sensorHeight,
float fieldWidth,
float fieldHeight,
float centerX,
float centerY,
float angle )

Initializes the calibration object using all given parameters.

Parameters
sensorWidthLogical size of the field of view, i.e. image size, in pixels.
sensorHeightLogical size of the field of view, i.e. image size, in pixels.
fieldWidthPhysical size of the field of view. By default (argument omitted), the pixels are square.
fieldHeightPhysical size of the field of view. By default (argument omitted), the pixels are square.
centerXPosition of the "intersection" between the optical axis and the field of view in the image. By default, if the calibration modes contain ECalibrationMode::ECalibrationMode_Raw, it is set to 0. Otherwise, it is set to the image center.
centerYPosition of the "intersection" between the optical axis and the field of view in the image. By default, if the calibration modes contain ECalibrationMode::ECalibrationMode_Raw, it is set to 0 (or to the bottommost pixel index if the calibration modes also contain ECalibrationMode::ECalibrationMode_Inverse). Otherwise, it is set to the image center.
angleSkew angle, i.e. angle formed by the axis of reference and the image edges. By default (argument omitted), no skewing effect is assumed.

The function automatically selects the appropriate calibration model by checking the parameters. The use of a more complex calibration mode can be enforced by means of parameter EWorldShape::GetCalibrationModes, not a simpler one.

◆ SetSensor() [7/13]

void eVision::Legacy::EWorldShape::SetSensor ( int32_t sensorWidth,
int32_t sensorHeight,
float fieldWidth,
float fieldHeight,
float centerX,
float centerY,
float angle,
float tiltXAngle )

Initializes the calibration object using all given parameters.

Parameters
sensorWidthLogical size of the field of view, i.e. image size, in pixels.
sensorHeightLogical size of the field of view, i.e. image size, in pixels.
fieldWidthPhysical size of the field of view. By default (argument omitted), the pixels are square.
fieldHeightPhysical size of the field of view. By default (argument omitted), the pixels are square.
centerXPosition of the "intersection" between the optical axis and the field of view in the image. By default, if the calibration modes contain ECalibrationMode::ECalibrationMode_Raw, it is set to 0. Otherwise, it is set to the image center.
centerYPosition of the "intersection" between the optical axis and the field of view in the image. By default, if the calibration modes contain ECalibrationMode::ECalibrationMode_Raw, it is set to 0 (or to the bottommost pixel index if the calibration modes also contain ECalibrationMode::ECalibrationMode_Inverse). Otherwise, it is set to the image center.
angleSkew angle, i.e. angle formed by the axis of reference and the image edges. By default (argument omitted), no skewing effect is assumed.
tiltXAngleRotation angles on the X axis to bring the optical axis perpendicular to the image plane. By default (argument omitted), no perspective effect is assumed.

The function automatically selects the appropriate calibration model by checking the parameters. The use of a more complex calibration mode can be enforced by means of parameter EWorldShape::GetCalibrationModes, not a simpler one.

◆ SetSensor() [8/13]

void eVision::Legacy::EWorldShape::SetSensor ( int32_t sensorWidth,
int32_t sensorHeight,
float fieldWidth,
float fieldHeight,
float centerX,
float centerY,
float angle,
float tiltXAngle,
float tiltYAngle )

Initializes the calibration object using all given parameters.

Parameters
sensorWidthLogical size of the field of view, i.e. image size, in pixels.
sensorHeightLogical size of the field of view, i.e. image size, in pixels.
fieldWidthPhysical size of the field of view. By default (argument omitted), the pixels are square.
fieldHeightPhysical size of the field of view. By default (argument omitted), the pixels are square.
centerXPosition of the "intersection" between the optical axis and the field of view in the image. By default, if the calibration modes contain ECalibrationMode::ECalibrationMode_Raw, it is set to 0. Otherwise, it is set to the image center.
centerYPosition of the "intersection" between the optical axis and the field of view in the image. By default, if the calibration modes contain ECalibrationMode::ECalibrationMode_Raw, it is set to 0 (or to the bottommost pixel index if the calibration modes also contain ECalibrationMode::ECalibrationMode_Inverse). Otherwise, it is set to the image center.
angleSkew angle, i.e. angle formed by the axis of reference and the image edges. By default (argument omitted), no skewing effect is assumed.
tiltXAngleRotation angles on the X axis to bring the optical axis perpendicular to the image plane. By default (argument omitted), no perspective effect is assumed.
tiltYAngleRotation angles on the Y axis to bring the optical axis perpendicular to the image plane. By default (argument omitted), no perspective effect is assumed.

The function automatically selects the appropriate calibration model by checking the parameters. The use of a more complex calibration mode can be enforced by means of parameter EWorldShape::GetCalibrationModes, not a simpler one.

◆ SetSensor() [9/13]

void eVision::Legacy::EWorldShape::SetSensor ( int32_t sensorWidth,
int32_t sensorHeight,
float fieldWidth,
float fieldHeight,
float centerX,
float centerY,
float angle,
float tiltXAngle,
float tiltYAngle,
float perspectiveStrength )

Initializes the calibration object using all given parameters.

Parameters
sensorWidthLogical size of the field of view, i.e. image size, in pixels.
sensorHeightLogical size of the field of view, i.e. image size, in pixels.
fieldWidthPhysical size of the field of view. By default (argument omitted), the pixels are square.
fieldHeightPhysical size of the field of view. By default (argument omitted), the pixels are square.
centerXPosition of the "intersection" between the optical axis and the field of view in the image. By default, if the calibration modes contain ECalibrationMode::ECalibrationMode_Raw, it is set to 0. Otherwise, it is set to the image center.
centerYPosition of the "intersection" between the optical axis and the field of view in the image. By default, if the calibration modes contain ECalibrationMode::ECalibrationMode_Raw, it is set to 0 (or to the bottommost pixel index if the calibration modes also contain ECalibrationMode::ECalibrationMode_Inverse). Otherwise, it is set to the image center.
angleSkew angle, i.e. angle formed by the axis of reference and the image edges. By default (argument omitted), no skewing effect is assumed.
tiltXAngleRotation angles on the X axis to bring the optical axis perpendicular to the image plane. By default (argument omitted), no perspective effect is assumed.
tiltYAngleRotation angles on the Y axis to bring the optical axis perpendicular to the image plane. By default (argument omitted), no perspective effect is assumed.
perspectiveStrengthRelative importance of the perspective effect. By default, no perspective effect is assumed, as if the lens was telecentric.

The function automatically selects the appropriate calibration model by checking the parameters. The use of a more complex calibration mode can be enforced by means of parameter EWorldShape::GetCalibrationModes, not a simpler one.

◆ SetSensor() [10/13]

void eVision::Legacy::EWorldShape::SetSensor ( int32_t sensorWidth,
int32_t sensorHeight,
float fieldWidth,
float fieldHeight,
float centerX,
float centerY,
float angle,
float tiltXAngle,
float tiltYAngle,
float perspectiveStrength,
float distortionStrength )

Initializes the calibration object using all given parameters.

Parameters
sensorWidthLogical size of the field of view, i.e. image size, in pixels.
sensorHeightLogical size of the field of view, i.e. image size, in pixels.
fieldWidthPhysical size of the field of view. By default (argument omitted), the pixels are square.
fieldHeightPhysical size of the field of view. By default (argument omitted), the pixels are square.
centerXPosition of the "intersection" between the optical axis and the field of view in the image. By default, if the calibration modes contain ECalibrationMode::ECalibrationMode_Raw, it is set to 0. Otherwise, it is set to the image center.
centerYPosition of the "intersection" between the optical axis and the field of view in the image. By default, if the calibration modes contain ECalibrationMode::ECalibrationMode_Raw, it is set to 0 (or to the bottommost pixel index if the calibration modes also contain ECalibrationMode::ECalibrationMode_Inverse). Otherwise, it is set to the image center.
angleSkew angle, i.e. angle formed by the axis of reference and the image edges. By default (argument omitted), no skewing effect is assumed.
tiltXAngleRotation angles on the X axis to bring the optical axis perpendicular to the image plane. By default (argument omitted), no perspective effect is assumed.
tiltYAngleRotation angles on the Y axis to bring the optical axis perpendicular to the image plane. By default (argument omitted), no perspective effect is assumed.
perspectiveStrengthRelative importance of the perspective effect. By default, no perspective effect is assumed, as if the lens was telecentric.
distortionStrengthRelative importance of the lens radial distortion. Positive for barrel, negative for cushion. By default (argument omitted), no optical distortion is assumed.

The function automatically selects the appropriate calibration model by checking the parameters. The use of a more complex calibration mode can be enforced by means of parameter EWorldShape::GetCalibrationModes, not a simpler one.

◆ SetSensor() [11/13]

void eVision::Legacy::EWorldShape::SetSensor ( int32_t sensorWidth,
int32_t sensorHeight,
float fieldWidth,
float fieldHeight,
float centerX,
float centerY,
float angle,
float tiltXAngle,
float tiltYAngle,
float perspectiveStrength,
float distortionStrength,
float opticalCenterX )

Initializes the calibration object using all given parameters.

Parameters
sensorWidthLogical size of the field of view, i.e. image size, in pixels.
sensorHeightLogical size of the field of view, i.e. image size, in pixels.
fieldWidthPhysical size of the field of view. By default (argument omitted), the pixels are square.
fieldHeightPhysical size of the field of view. By default (argument omitted), the pixels are square.
centerXPosition of the "intersection" between the optical axis and the field of view in the image. By default, if the calibration modes contain ECalibrationMode::ECalibrationMode_Raw, it is set to 0. Otherwise, it is set to the image center.
centerYPosition of the "intersection" between the optical axis and the field of view in the image. By default, if the calibration modes contain ECalibrationMode::ECalibrationMode_Raw, it is set to 0 (or to the bottommost pixel index if the calibration modes also contain ECalibrationMode::ECalibrationMode_Inverse). Otherwise, it is set to the image center.
angleSkew angle, i.e. angle formed by the axis of reference and the image edges. By default (argument omitted), no skewing effect is assumed.
tiltXAngleRotation angles on the X axis to bring the optical axis perpendicular to the image plane. By default (argument omitted), no perspective effect is assumed.
tiltYAngleRotation angles on the Y axis to bring the optical axis perpendicular to the image plane. By default (argument omitted), no perspective effect is assumed.
perspectiveStrengthRelative importance of the perspective effect. By default, no perspective effect is assumed, as if the lens was telecentric.
distortionStrengthRelative importance of the lens radial distortion. Positive for barrel, negative for cushion. By default (argument omitted), no optical distortion is assumed.
opticalCenterXX Position of the "intersection" between the optical axis and the field of view in the image. By default (argument omitted) the image center.

The function automatically selects the appropriate calibration model by checking the parameters. The use of a more complex calibration mode can be enforced by means of parameter EWorldShape::GetCalibrationModes, not a simpler one.

◆ SetSensor() [12/13]

void eVision::Legacy::EWorldShape::SetSensor ( int32_t sensorWidth,
int32_t sensorHeight,
float fieldWidth,
float fieldHeight,
float centerX,
float centerY,
float angle,
float tiltXAngle,
float tiltYAngle,
float perspectiveStrength,
float distortionStrength,
float opticalCenterX,
float opticalCenterY )

Initializes the calibration object using all given parameters.

Parameters
sensorWidthLogical size of the field of view, i.e. image size, in pixels.
sensorHeightLogical size of the field of view, i.e. image size, in pixels.
fieldWidthPhysical size of the field of view. By default (argument omitted), the pixels are square.
fieldHeightPhysical size of the field of view. By default (argument omitted), the pixels are square.
centerXPosition of the "intersection" between the optical axis and the field of view in the image. By default, if the calibration modes contain ECalibrationMode::ECalibrationMode_Raw, it is set to 0. Otherwise, it is set to the image center.
centerYPosition of the "intersection" between the optical axis and the field of view in the image. By default, if the calibration modes contain ECalibrationMode::ECalibrationMode_Raw, it is set to 0 (or to the bottommost pixel index if the calibration modes also contain ECalibrationMode::ECalibrationMode_Inverse). Otherwise, it is set to the image center.
angleSkew angle, i.e. angle formed by the axis of reference and the image edges. By default (argument omitted), no skewing effect is assumed.
tiltXAngleRotation angles on the X axis to bring the optical axis perpendicular to the image plane. By default (argument omitted), no perspective effect is assumed.
tiltYAngleRotation angles on the Y axis to bring the optical axis perpendicular to the image plane. By default (argument omitted), no perspective effect is assumed.
perspectiveStrengthRelative importance of the perspective effect. By default, no perspective effect is assumed, as if the lens was telecentric.
distortionStrengthRelative importance of the lens radial distortion. Positive for barrel, negative for cushion. By default (argument omitted), no optical distortion is assumed.
opticalCenterXX Position of the "intersection" between the optical axis and the field of view in the image. By default (argument omitted) the image center.
opticalCenterYY Position of the "intersection" between the optical axis and the field of view in the image. By default (argument omitted) the image center.

The function automatically selects the appropriate calibration model by checking the parameters. The use of a more complex calibration mode can be enforced by means of parameter EWorldShape::GetCalibrationModes, not a simpler one.

◆ SetSensor() [13/13]

void eVision::Legacy::EWorldShape::SetSensor ( int32_t sensorWidth,
int32_t sensorHeight,
float fieldWidth,
float fieldHeight,
float centerX,
float centerY,
float angle,
float tiltXAngle,
float tiltYAngle,
float perspectiveStrength,
float distortionStrength,
float opticalCenterX,
float opticalCenterY,
uint32_t calibrationModes )

Initializes the calibration object using all given parameters.

Parameters
sensorWidthLogical size of the field of view, i.e. image size, in pixels.
sensorHeightLogical size of the field of view, i.e. image size, in pixels.
fieldWidthPhysical size of the field of view. By default (argument omitted), the pixels are square.
fieldHeightPhysical size of the field of view. By default (argument omitted), the pixels are square.
centerXPosition of the "intersection" between the optical axis and the field of view in the image. By default, if the calibration modes contain ECalibrationMode::ECalibrationMode_Raw, it is set to 0. Otherwise, it is set to the image center.
centerYPosition of the "intersection" between the optical axis and the field of view in the image. By default, if the calibration modes contain ECalibrationMode::ECalibrationMode_Raw, it is set to 0 (or to the bottommost pixel index if the calibration modes also contain ECalibrationMode::ECalibrationMode_Inverse). Otherwise, it is set to the image center.
angleSkew angle, i.e. angle formed by the axis of reference and the image edges. By default (argument omitted), no skewing effect is assumed.
tiltXAngleRotation angles on the X axis to bring the optical axis perpendicular to the image plane. By default (argument omitted), no perspective effect is assumed.
tiltYAngleRotation angles on the Y axis to bring the optical axis perpendicular to the image plane. By default (argument omitted), no perspective effect is assumed.
perspectiveStrengthRelative importance of the perspective effect. By default, no perspective effect is assumed, as if the lens was telecentric.
distortionStrengthRelative importance of the lens radial distortion. Positive for barrel, negative for cushion. By default (argument omitted), no optical distortion is assumed.
opticalCenterXX Position of the "intersection" between the optical axis and the field of view in the image. By default (argument omitted) the image center.
opticalCenterYY Position of the "intersection" between the optical axis and the field of view in the image. By default (argument omitted) the image center.
calibrationModesDesired calibration mode effects to be combined, as defined by ECalibrationMode. By default (argument omitted), the simplest model compatible with the given parameters is chosen.

The function automatically selects the appropriate calibration model by checking the parameters. The use of a more complex calibration mode can be enforced by means of parameter EWorldShape::GetCalibrationModes, not a simpler one.

◆ SetSensorSize()

void eVision::Legacy::EWorldShape::SetSensorSize ( int32_t width,
int32_t height )

Sets the logical image size, i.e. the number of pixels horizontally and vertically.

Parameters
widthFull image logical sizes, in pixels.
heightFull image logical sizes, in pixels.

◆ SetSize() [1/2]

void eVision::Legacy::EWorldShape::SetSize ( float sizeX)

Sets the frame size.

Parameters
sizeXFrame X-axis length. The default value is 100.

By default, both frame axis value are set to 100, which means 100 pixels when the field of view is not calibrated and 100 "units" in case of a calibrated field of view.

◆ SetSize() [2/2]

void eVision::Legacy::EWorldShape::SetSize ( float sizeX,
float sizeY )

Sets the frame size.

Parameters
sizeXFrame X-axis length. The default value is 100.
sizeYFrame Y-axis length. By default, both axes have the same length.

By default, both frame axis value are set to 100, which means 100 pixels when the field of view is not calibrated and 100 "units" in case of a calibrated field of view.

◆ SetupUnwarp() [1/6]

void eVision::Legacy::EWorldShape::SetupUnwarp ( eVision::EUnwarpingLut * lookupTable,
const eVision::EROIBW8 * sourceImage )

Prepares a lookup table for fast image unwarping.

Parameters
lookupTablePointer to the lookup table.
sourceImagePointer to the source image/ROI.

The function should be called each time the system is re-calibrated (after the optical setup has been changed, for instance).

A sample source image has to be supplied to this method, and its row pitch is recorded in order to speedup the unwarping process. This implies that the following calls to EWorldShape::Unwarp are not allowed to use images with row pitches different from the source image initially supplied to this method.

◆ SetupUnwarp() [2/6]

void eVision::Legacy::EWorldShape::SetupUnwarp ( eVision::EUnwarpingLut * lookupTable,
const eVision::EROIBW8 * sourceImage,
bool interpolate )

Prepares a lookup table for fast image unwarping.

Parameters
lookupTablePointer to the lookup table.
sourceImagePointer to the source image/ROI.
interpolateInterpolation mode. Default value is true.

The function should be called each time the system is re-calibrated (after the optical setup has been changed, for instance).

A sample source image has to be supplied to this method, and its row pitch is recorded in order to speedup the unwarping process. This implies that the following calls to EWorldShape::Unwarp are not allowed to use images with row pitches different from the source image initially supplied to this method.

◆ SetupUnwarp() [3/6]

void eVision::Legacy::EWorldShape::SetupUnwarp ( eVision::EUnwarpingLut * lookupTable,
const eVision::EROIBW8 * sourceImage,
bool interpolate,
bool resizeDestination )

Prepares a lookup table for fast image unwarping.

Parameters
lookupTablePointer to the lookup table.
sourceImagePointer to the source image/ROI.
interpolateInterpolation mode. Default value is true.
resizeDestinationResize the destination image to match the unwarped image size. Default value is false.

The function should be called each time the system is re-calibrated (after the optical setup has been changed, for instance).

A sample source image has to be supplied to this method, and its row pitch is recorded in order to speedup the unwarping process. This implies that the following calls to EWorldShape::Unwarp are not allowed to use images with row pitches different from the source image initially supplied to this method.

◆ SetupUnwarp() [4/6]

void eVision::Legacy::EWorldShape::SetupUnwarp ( eVision::EUnwarpingLut * lookupTable,
const eVision::EROIC24 * sourceImage )

Prepares a lookup table for fast image unwarping.

Parameters
lookupTablePointer to the lookup table.
sourceImagePointer to the source image/ROI.

The function should be called each time the system is re-calibrated (after the optical setup has been changed, for instance).

A sample source image has to be supplied to this method, and its row pitch is recorded in order to speedup the unwarping process. This implies that the following calls to EWorldShape::Unwarp are not allowed to use images with row pitches different from the source image initially supplied to this method.

◆ SetupUnwarp() [5/6]

void eVision::Legacy::EWorldShape::SetupUnwarp ( eVision::EUnwarpingLut * lookupTable,
const eVision::EROIC24 * sourceImage,
bool interpolate )

Prepares a lookup table for fast image unwarping.

Parameters
lookupTablePointer to the lookup table.
sourceImagePointer to the source image/ROI.
interpolateInterpolation mode. Default value is true.

The function should be called each time the system is re-calibrated (after the optical setup has been changed, for instance).

A sample source image has to be supplied to this method, and its row pitch is recorded in order to speedup the unwarping process. This implies that the following calls to EWorldShape::Unwarp are not allowed to use images with row pitches different from the source image initially supplied to this method.

◆ SetupUnwarp() [6/6]

void eVision::Legacy::EWorldShape::SetupUnwarp ( eVision::EUnwarpingLut * lookupTable,
const eVision::EROIC24 * sourceImage,
bool interpolate,
bool resizeDestination )

Prepares a lookup table for fast image unwarping.

Parameters
lookupTablePointer to the lookup table.
sourceImagePointer to the source image/ROI.
interpolateInterpolation mode. Default value is true.
resizeDestinationResize the destination image to match the unwarped image size. Default value is false.

The function should be called each time the system is re-calibrated (after the optical setup has been changed, for instance).

A sample source image has to be supplied to this method, and its row pitch is recorded in order to speedup the unwarping process. This implies that the following calls to EWorldShape::Unwarp are not allowed to use images with row pitches different from the source image initially supplied to this method.

◆ SetZoom() [1/3]

void eVision::Legacy::EWorldShape::SetZoom ( )
virtual

Sets the horizontal and vertical zooming factors for drawing operations.

All objects attached to an EWorldShape::EWorldShape inherit of the same zooming factor.

Reimplemented from eVision::Legacy::EShape.

◆ SetZoom() [2/3]

void eVision::Legacy::EWorldShape::SetZoom ( float zoomX)
virtual

Sets the horizontal and vertical zooming factors for drawing operations.

Parameters
zoomXHorizontal zooming factor. By default, true scale is used.

All objects attached to an EWorldShape::EWorldShape inherit of the same zooming factor.

Reimplemented from eVision::Legacy::EShape.

◆ SetZoom() [3/3]

void eVision::Legacy::EWorldShape::SetZoom ( float zoomX,
float zoomY )
virtual

Sets the horizontal and vertical zooming factors for drawing operations.

Parameters
zoomXHorizontal zooming factor. By default, true scale is used.
zoomYVertical zooming factor. If set to 0, the default value, the horizontal zooming factor is used instead, so as to provide isotropic zooming.

All objects attached to an EWorldShape::EWorldShape inherit of the same zooming factor.

Reimplemented from eVision::Legacy::EShape.

◆ Unwarp() [1/20]

void eVision::Legacy::EWorldShape::Unwarp ( const eVision::EROIBW8 * sourceImage,
eVision::EROIBW8 * destinationImage )

Unwarps a distorted image using the current calibration model.

Parameters
sourceImagePointer to the source image/ROI.
destinationImagePointer to the destination unwarped image. If optional parameter resizeDestination is false (default value) then the source and destination images must have the same size.

Using a precomputed lookup table allows speeding up the unwarping process. The lookup table is initialized by means of the EWorldShape::SetupUnwarp function.

◆ Unwarp() [2/20]

void eVision::Legacy::EWorldShape::Unwarp ( const eVision::EROIBW8 * sourceImage,
eVision::EROIBW8 * destinationImage,
bool interpolate )

Unwarps a distorted image using the current calibration model.

Parameters
sourceImagePointer to the source image/ROI.
destinationImagePointer to the destination unwarped image. If optional parameter resizeDestination is false (default value) then the source and destination images must have the same size.
interpolateInterpolation mode. Default value is true.

Using a precomputed lookup table allows speeding up the unwarping process. The lookup table is initialized by means of the EWorldShape::SetupUnwarp function.

◆ Unwarp() [3/20]

void eVision::Legacy::EWorldShape::Unwarp ( const eVision::EROIBW8 * sourceImage,
eVision::EROIBW8 * destinationImage,
bool interpolate,
bool resizeDestination )

Unwarps a distorted image using the current calibration model.

Parameters
sourceImagePointer to the source image/ROI.
destinationImagePointer to the destination unwarped image. If optional parameter resizeDestination is false (default value) then the source and destination images must have the same size.
interpolateInterpolation mode. Default value is true.
resizeDestinationResize the destination image to match the unwarped image size. Default value is false.

Using a precomputed lookup table allows speeding up the unwarping process. The lookup table is initialized by means of the EWorldShape::SetupUnwarp function.

◆ Unwarp() [4/20]

void eVision::Legacy::EWorldShape::Unwarp ( const eVision::EROIBW8 * sourceImage,
eVision::EROIBW8 * destinationImage,
eVision::ERegion & region )

Unwarps a distorted image using the current calibration model.

Parameters
sourceImagePointer to the source image/ROI.
destinationImagePointer to the destination unwarped image. If optional parameter resizeDestination is false (default value) then the source and destination images must have the same size.
regionOutput region.

Using a precomputed lookup table allows speeding up the unwarping process. The lookup table is initialized by means of the EWorldShape::SetupUnwarp function.

◆ Unwarp() [5/20]

void eVision::Legacy::EWorldShape::Unwarp ( const eVision::EROIBW8 * sourceImage,
eVision::EROIBW8 * destinationImage,
eVision::ERegion & region,
bool interpolate )

Unwarps a distorted image using the current calibration model.

Parameters
sourceImagePointer to the source image/ROI.
destinationImagePointer to the destination unwarped image. If optional parameter resizeDestination is false (default value) then the source and destination images must have the same size.
regionOutput region.
interpolateInterpolation mode. Default value is true.

Using a precomputed lookup table allows speeding up the unwarping process. The lookup table is initialized by means of the EWorldShape::SetupUnwarp function.

◆ Unwarp() [6/20]

void eVision::Legacy::EWorldShape::Unwarp ( const eVision::EROIBW8 * sourceImage,
eVision::EROIBW8 * destinationImage,
eVision::ERegion & region,
bool interpolate,
bool resizeDestination )

Unwarps a distorted image using the current calibration model.

Parameters
sourceImagePointer to the source image/ROI.
destinationImagePointer to the destination unwarped image. If optional parameter resizeDestination is false (default value) then the source and destination images must have the same size.
regionOutput region.
interpolateInterpolation mode. Default value is true.
resizeDestinationResize the destination image to match the unwarped image size. Default value is false.

Using a precomputed lookup table allows speeding up the unwarping process. The lookup table is initialized by means of the EWorldShape::SetupUnwarp function.

◆ Unwarp() [7/20]

void eVision::Legacy::EWorldShape::Unwarp ( const eVision::EROIC24 * sourceImage,
eVision::EROIC24 * destinationImage )

Unwarps a distorted image using the current calibration model.

Parameters
sourceImagePointer to the source image/ROI.
destinationImagePointer to the destination unwarped image. If optional parameter resizeDestination is false (default value) then the source and destination images must have the same size.

Using a precomputed lookup table allows speeding up the unwarping process. The lookup table is initialized by means of the EWorldShape::SetupUnwarp function.

◆ Unwarp() [8/20]

void eVision::Legacy::EWorldShape::Unwarp ( const eVision::EROIC24 * sourceImage,
eVision::EROIC24 * destinationImage,
bool interpolate )

Unwarps a distorted image using the current calibration model.

Parameters
sourceImagePointer to the source image/ROI.
destinationImagePointer to the destination unwarped image. If optional parameter resizeDestination is false (default value) then the source and destination images must have the same size.
interpolateInterpolation mode. Default value is true.

Using a precomputed lookup table allows speeding up the unwarping process. The lookup table is initialized by means of the EWorldShape::SetupUnwarp function.

◆ Unwarp() [9/20]

void eVision::Legacy::EWorldShape::Unwarp ( const eVision::EROIC24 * sourceImage,
eVision::EROIC24 * destinationImage,
bool interpolate,
bool resizeDestination )

Unwarps a distorted image using the current calibration model.

Parameters
sourceImagePointer to the source image/ROI.
destinationImagePointer to the destination unwarped image. If optional parameter resizeDestination is false (default value) then the source and destination images must have the same size.
interpolateInterpolation mode. Default value is true.
resizeDestinationResize the destination image to match the unwarped image size. Default value is false.

Using a precomputed lookup table allows speeding up the unwarping process. The lookup table is initialized by means of the EWorldShape::SetupUnwarp function.

◆ Unwarp() [10/20]

void eVision::Legacy::EWorldShape::Unwarp ( const eVision::EROIC24 * sourceImage,
eVision::EROIC24 * destinationImage,
eVision::ERegion & region )

Unwarps a distorted image using the current calibration model.

Parameters
sourceImagePointer to the source image/ROI.
destinationImagePointer to the destination unwarped image. If optional parameter resizeDestination is false (default value) then the source and destination images must have the same size.
regionOutput region.

Using a precomputed lookup table allows speeding up the unwarping process. The lookup table is initialized by means of the EWorldShape::SetupUnwarp function.

◆ Unwarp() [11/20]

void eVision::Legacy::EWorldShape::Unwarp ( const eVision::EROIC24 * sourceImage,
eVision::EROIC24 * destinationImage,
eVision::ERegion & region,
bool interpolate )

Unwarps a distorted image using the current calibration model.

Parameters
sourceImagePointer to the source image/ROI.
destinationImagePointer to the destination unwarped image. If optional parameter resizeDestination is false (default value) then the source and destination images must have the same size.
regionOutput region.
interpolateInterpolation mode. Default value is true.

Using a precomputed lookup table allows speeding up the unwarping process. The lookup table is initialized by means of the EWorldShape::SetupUnwarp function.

◆ Unwarp() [12/20]

void eVision::Legacy::EWorldShape::Unwarp ( const eVision::EROIC24 * sourceImage,
eVision::EROIC24 * destinationImage,
eVision::ERegion & region,
bool interpolate,
bool resizeDestination )

Unwarps a distorted image using the current calibration model.

Parameters
sourceImagePointer to the source image/ROI.
destinationImagePointer to the destination unwarped image. If optional parameter resizeDestination is false (default value) then the source and destination images must have the same size.
regionOutput region.
interpolateInterpolation mode. Default value is true.
resizeDestinationResize the destination image to match the unwarped image size. Default value is false.

Using a precomputed lookup table allows speeding up the unwarping process. The lookup table is initialized by means of the EWorldShape::SetupUnwarp function.

◆ Unwarp() [13/20]

void eVision::Legacy::EWorldShape::Unwarp ( const eVision::EUnwarpingLut * lookupTable,
const eVision::EROIBW8 * sourceImage,
eVision::EROIBW8 * destinationImage )

Unwarps a distorted image using the current calibration model.

Parameters
lookupTablePointer to the lookup table.
sourceImagePointer to the source image/ROI.
destinationImagePointer to the destination unwarped image. If optional parameter resizeDestination is false (default value) then the source and destination images must have the same size.

Using a precomputed lookup table allows speeding up the unwarping process. The lookup table is initialized by means of the EWorldShape::SetupUnwarp function.

◆ Unwarp() [14/20]

void eVision::Legacy::EWorldShape::Unwarp ( const eVision::EUnwarpingLut * lookupTable,
const eVision::EROIBW8 * sourceImage,
eVision::EROIBW8 * destinationImage,
bool interpolate )

Unwarps a distorted image using the current calibration model.

Parameters
lookupTablePointer to the lookup table.
sourceImagePointer to the source image/ROI.
destinationImagePointer to the destination unwarped image. If optional parameter resizeDestination is false (default value) then the source and destination images must have the same size.
interpolateInterpolation mode. Default value is true.

Using a precomputed lookup table allows speeding up the unwarping process. The lookup table is initialized by means of the EWorldShape::SetupUnwarp function.

◆ Unwarp() [15/20]

void eVision::Legacy::EWorldShape::Unwarp ( const eVision::EUnwarpingLut * lookupTable,
const eVision::EROIBW8 * sourceImage,
eVision::EROIBW8 * destinationImage,
eVision::ERegion & region )

Unwarps a distorted image using the current calibration model.

Parameters
lookupTablePointer to the lookup table.
sourceImagePointer to the source image/ROI.
destinationImagePointer to the destination unwarped image. If optional parameter resizeDestination is false (default value) then the source and destination images must have the same size.
regionOutput region.

Using a precomputed lookup table allows speeding up the unwarping process. The lookup table is initialized by means of the EWorldShape::SetupUnwarp function.

◆ Unwarp() [16/20]

void eVision::Legacy::EWorldShape::Unwarp ( const eVision::EUnwarpingLut * lookupTable,
const eVision::EROIBW8 * sourceImage,
eVision::EROIBW8 * destinationImage,
eVision::ERegion & region,
bool interpolate )

Unwarps a distorted image using the current calibration model.

Parameters
lookupTablePointer to the lookup table.
sourceImagePointer to the source image/ROI.
destinationImagePointer to the destination unwarped image. If optional parameter resizeDestination is false (default value) then the source and destination images must have the same size.
regionOutput region.
interpolateInterpolation mode. Default value is true.

Using a precomputed lookup table allows speeding up the unwarping process. The lookup table is initialized by means of the EWorldShape::SetupUnwarp function.

◆ Unwarp() [17/20]

void eVision::Legacy::EWorldShape::Unwarp ( const eVision::EUnwarpingLut * lookupTable,
const eVision::EROIC24 * sourceImage,
eVision::EROIC24 * destinationImage )

Unwarps a distorted image using the current calibration model.

Parameters
lookupTablePointer to the lookup table.
sourceImagePointer to the source image/ROI.
destinationImagePointer to the destination unwarped image. If optional parameter resizeDestination is false (default value) then the source and destination images must have the same size.

Using a precomputed lookup table allows speeding up the unwarping process. The lookup table is initialized by means of the EWorldShape::SetupUnwarp function.

◆ Unwarp() [18/20]

void eVision::Legacy::EWorldShape::Unwarp ( const eVision::EUnwarpingLut * lookupTable,
const eVision::EROIC24 * sourceImage,
eVision::EROIC24 * destinationImage,
bool interpolate )

Unwarps a distorted image using the current calibration model.

Parameters
lookupTablePointer to the lookup table.
sourceImagePointer to the source image/ROI.
destinationImagePointer to the destination unwarped image. If optional parameter resizeDestination is false (default value) then the source and destination images must have the same size.
interpolateInterpolation mode. Default value is true.

Using a precomputed lookup table allows speeding up the unwarping process. The lookup table is initialized by means of the EWorldShape::SetupUnwarp function.

◆ Unwarp() [19/20]

void eVision::Legacy::EWorldShape::Unwarp ( const eVision::EUnwarpingLut * lookupTable,
const eVision::EROIC24 * sourceImage,
eVision::EROIC24 * destinationImage,
eVision::ERegion & region )

Unwarps a distorted image using the current calibration model.

Parameters
lookupTablePointer to the lookup table.
sourceImagePointer to the source image/ROI.
destinationImagePointer to the destination unwarped image. If optional parameter resizeDestination is false (default value) then the source and destination images must have the same size.
regionOutput region.

Using a precomputed lookup table allows speeding up the unwarping process. The lookup table is initialized by means of the EWorldShape::SetupUnwarp function.

◆ Unwarp() [20/20]

void eVision::Legacy::EWorldShape::Unwarp ( const eVision::EUnwarpingLut * lookupTable,
const eVision::EROIC24 * sourceImage,
eVision::EROIC24 * destinationImage,
eVision::ERegion & region,
bool interpolate )

Unwarps a distorted image using the current calibration model.

Parameters
lookupTablePointer to the lookup table.
sourceImagePointer to the source image/ROI.
destinationImagePointer to the destination unwarped image. If optional parameter resizeDestination is false (default value) then the source and destination images must have the same size.
regionOutput region.
interpolateInterpolation mode. Default value is true.

Using a precomputed lookup table allows speeding up the unwarping process. The lookup table is initialized by means of the EWorldShape::SetupUnwarp function.

◆ WorldToSensor()

eVision::EPoint eVision::Legacy::EWorldShape::WorldToSensor ( const eVision::EPoint & worldPoint)

Performs coordinate transform for arbitrary points from World space to Sensor space.

Parameters
worldPointWorld point.

This transformation is impossible when the world point is located on the principal plane of the camera (the plane parallel to the camera sensor containing the center of projection of the camera). In this case, the returned point will contain infinity values. This usually happens when the calibration plane was highly tilted with respect to the camera.