# Gauge Definitions

## Point Gauge

You can select the most relevant transition points along a line segment probe that crosses one or several objects edges. Crosswise and lengthwise filtering can be activated for noise reduction.

![](assets/images/easygauge/pointlocationindifferent.webp)![](assets/images/easygauge/pointlocationblacktowhite.webp)

### Usage

* Define and position the gauge, then fit the points with [`EPointGauge::Measure`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EPointGauge.html#a99389159323c4ea58984a131537251de) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EPointGauge.html#aac32577d94dc8947ed5973000df05082) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPointGauge.html#a07e09268ed7e65909cc9ff2b4c84d3ab).
* Use the methods [`EPointGauge::GetNumMeasuredPoints`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EPointGauge.html#acb30e54f4e2812fe638f10ff347fcc82) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EPointGauge.html#aa464a1ced1add084d44a49ffb0506bcd) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPointGauge.html#a1a1a88dafd55c79de9dcb1a317d2f06f) and [`EPointGauge::GetMeasuredPoint`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EPointGauge.html#a6d7c32ab8d6afa744ced0eb76a23b505) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EPointGauge.html#a8a4e5a8d4aa06be0842770de17f0345e) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPointGauge.html#a9de529838e28f8c6a2bd9bf9392dffac) to access the results.

## Line Gauge

The placement of a [`ELineGauge`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1ELineGauge.html) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1ELineGauge.html) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1ELineGauge.html) is defined by its [`ELineShape::GetCenter`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1ELineShape.html#ab57fb52f3059ac3f4747b68e1e1f2712) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1ELineShape.html#a251599d39df02751000e8436dd184d89) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1ELineShape.html#a26aee87caf1df84621a0ab069712a10d), its [`ELineShape::GetLength`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1ELineShape.html#ab3a2db613f2ce66fe87d582d8c0a723f) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1ELineShape.html#aa1e4b9b22defdf8080e4927a25da7452) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1ELineShape.html#aa9af8be4770911c082141af519f46ee9) and its [`ELineShape::GetAngle`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1ELineShape.html#a8e68094a2f4289d29cc0cde6505307d6) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1ELineShape.html#a6f3798ad4b43a5bb411810ab93937899) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1ELineShape.html#aab2d043643c94ef6cac567f0849c1d0a) with respect to the X-axis. To constrain the line slope value, set [`ELineShape::GetAngle`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1ELineShape.html#a8e68094a2f4289d29cc0cde6505307d6) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1ELineShape.html#a6f3798ad4b43a5bb411810ab93937899) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1ELineShape.html#aab2d043643c94ef6cac567f0849c1d0a) and [`ELineGauge::GetKnownAngle`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1ELineGauge.html#a155b4f55a983fc43db83ece2eb5a2b80) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1ELineGauge.html#a1a274d5fa55bca6da101589f1ba99659) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1ELineGauge.html#aec607ab5dbc8004ff816fdfbdd69fcad).

![image](assets/images/easygauge/linefitting.webp)

### Usage

* Define and position the gauge, then use [`ELineGauge::Measure`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1ELineGauge.html#ad926d1b61146b49d70bb753edd077576) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1ELineGauge.html#adcb4f62134ea078700f45bc08d3aeb2c) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1ELineGauge.html#a066474d2be5d8be21e972ead773e3fd5) to fit the lines.
  - The method [`EShape::GetFound`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EShape.html#a0fcb725e7c8bece25225104b181ee6f1) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EShape.html#a1d189c67f57624cfb4aa0c98a534a76d) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EShape.html#a8b70778740aae62aeba5c76c19d63598) returns `TRUE` if a suitable line is found.
  - To obtain the [`ELine`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1ELine.html) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1ELine.html) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1ELine.html), set the [`EShape::GetActualShape`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EShape.html#aec27ba0398bf338d4ff3b7cb563f4cd1) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EShape.html#a9e91e9aebad82bc43464a822de4e5d81) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EShape.html#ac3b27e010f8908636c9e7a4d30014c8f) property to `TRUE` to return the fitted line (`TRUE` value) (instead of the nominal line position `FALSE` value, default).
* Alternatively, [`ELineGauge::GetMeasuredLine`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1ELineGauge.html#a896e955d32c56b8ba9005c5b9eaae561) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1ELineGauge.html#a401565f56dcace1d81c82bc0b72cef30) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1ELineGauge.html#a06f0453c46cfb5dbe495a99cac10ebea) provides the results as an [`ELine`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1ELine.html) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1ELine.html) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1ELine.html) object.

## Rectangle Gauge

The placement of a [`ERectangleGauge`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1ERectangleGauge.html) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1ERectangleGauge.html) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1ERectangleGauge.html) is defined by its nominal position (given by the coordinates of its [`ERectangleShape::GetCenter`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1ERectangleShape.html#a14b9a8a2ffb2882001256b2c94426453) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1ERectangleShape.html#a1e642590a2e528d000e337b6725be54c) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1ERectangleShape.html#aeaa4fe68cd098348c23cbafb2b8dc5c2)), its [`ERectangleShape::SetSize`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1ERectangleShape.html#a4182f36e6eab5eadc3e9db4ad01b972e) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1ERectangleShape.html#acc10e75a6a493bd7dfaacecc35013b5f) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1ERectangleShape.html#afe8b2b0efc6bc404708448ea2cb6a52e) and its [`ERectangleShape::GetAngle`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1ERectangleShape.html#afa2073447a67d2b2c8bd61de8c4ec0dd) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1ERectangleShape.html#ae4189cd60356897884439e6e8c5c8bea) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1ERectangleShape.html#a35691d124d382ddce36c79aea8b7c654).

Each side of a rectangle can have its own transition detection parameters, and can be set to active or inactive with the [`ERectangleGauge::GetActiveEdges`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1ERectangleGauge.html#a1fadd55d55bef199459e9d304f91ae37) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1ERectangleGauge.html#a8ba1b0835b132a9e2b2a29a7beb8dfea) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1ERectangleGauge.html#ace071c3bed0698e381e828289c6e7632) property. When a side is active:

* Setting the value of a parameter only applies to the currently active sides1.
* Getting the value of a parameter yields a result only when the value of this property is the same for all active sides.
* Only active sides are used for measurement and model fitting.

These rules allow to set different parameters for different sides, and measure parallel sides or a corner point instead of the whole rectangle. The four sides are denoted by letters “x”, “y”, “XX” and “YY” respectively.

![image](assets/images/easygauge/rectanglefittingconventions.webp)

### Usage

* Define and position the gauge, then use [`ELineGauge::Measure`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1ELineGauge.html#ad926d1b61146b49d70bb753edd077576) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1ELineGauge.html#adcb4f62134ea078700f45bc08d3aeb2c) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1ELineGauge.html#a066474d2be5d8be21e972ead773e3fd5) to fit the lines.
  - The method [`EShape::GetFound`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EShape.html#a0fcb725e7c8bece25225104b181ee6f1) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EShape.html#a1d189c67f57624cfb4aa0c98a534a76d) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EShape.html#a8b70778740aae62aeba5c76c19d63598) returns `TRUE` if a suitable rectangle is found.
  - To obtain  the [`ERectangleShape`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1ERectangleShape.html) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1ERectangleShape.html) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1ERectangleShape.html), set [`EShape::GetActualShape`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EShape.html#aec27ba0398bf338d4ff3b7cb563f4cd1) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EShape.html#a9e91e9aebad82bc43464a822de4e5d81) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EShape.html#ac3b27e010f8908636c9e7a4d30014c8f) to `TRUE` to return the fitted line (`TRUE` value) (default is `FALSE`).
* Alternatively, [`ERectangleGauge::GetMeasuredRectangle`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1ERectangleGauge.html#a258611c0e67e28740f10b28f6756202e) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1ERectangleGauge.html#a9b4c4d7356e7783e2f3f5b3c0f03fe50) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1ERectangleGauge.html#a5fb61eab0fbd4f88c7553903fc0ee919) provides the results as an [`ERectangle`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1ERectangle.html) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1ERectangle.html) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1ERectangle.html) object.
* For instance, you can accurately locate the four corners (landmarks) of a rectangle using a rectangle fitting gauge.

![image](assets/images/easygauge/18169.webp)

## Circle Gauge

The placement of a [`ECircleGauge`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1ECircleGauge.html) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1ECircleGauge.html) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1ECircleGauge.html) is defined by its nominal position (given by the coordinates of its [`ECircleShape::GetCenter`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1ECircleShape.html#ae47f3da0d9e743adfcdc85bc058621c2) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1ECircleShape.html#a3edcaaf02e0429a3d9fec1fc07623e38) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1ECircleShape.html#a7521e1cc9019e32cb08b8fb57525b73b)), its nominal [`ECircleShape::GetDiameter`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1ECircleShape.html#af1c69e44cab665c38fc216afa347a15d) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1ECircleShape.html#a289da3d3d1e3566fcee5597c845ad2d7) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1ECircleShape.html#a3ad8f103713123fdcd96f18813cfcb6a) (or [`ECircleShape::GetRadius`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1ECircleShape.html#a610b3ad603bde2ba910b78a4cb1f54f7) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1ECircleShape.html#aa55cd8288de0b66ca300b642d82741f5) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1ECircleShape.html#ab535460217c35679588d239b2a1bcf82)), the angular position from where it extends and its angular [`ECircleShape::GetAmplitude`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1ECircleShape.html#a510406d81db77af587d3659fab89b5a1) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1ECircleShape.html#aa27855dfc08501b3e3e1f31fe1ff7462) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1ECircleShape.html#a0d99f20710a8255992b21bb177cc304a).

The Set member can distinguish between a full circle and an arc (the arc amplitude must be specified).

![image](assets/images/easygauge/17843.webp)

### Usage

* Once the gauge has been defined and positioned, use [`ECircleGauge::Measure`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1ECircleGauge.html#a442665f30a83c38f1ec5b39756d9c725) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1ECircleGauge.html#ae64192e71a6f488351702a13b1e72698) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1ECircleGauge.html#ab06282eaff2c17209eecb03e36d873fc) to trigger the circle fitting operation.
  - The method [`EShape::GetFound`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EShape.html#a0fcb725e7c8bece25225104b181ee6f1) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EShape.html#a1d189c67f57624cfb4aa0c98a534a76d) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EShape.html#a8b70778740aae62aeba5c76c19d63598) returns `TRUE` if a suitable rectangle is found.
  - To obtain the measurement results, set the [`EShape::GetActualShape`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EShape.html#aec27ba0398bf338d4ff3b7cb563f4cd1) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EShape.html#a9e91e9aebad82bc43464a822de4e5d81) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EShape.html#ac3b27e010f8908636c9e7a4d30014c8f) mode to `TRUE`. The [`EShape::GetActualShape`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EShape.html#aec27ba0398bf338d4ff3b7cb563f4cd1) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EShape.html#a9e91e9aebad82bc43464a822de4e5d81) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EShape.html#ac3b27e010f8908636c9e7a4d30014c8f) mode determines whether an inquiry returns the fitted circle (`TRUE` value) or the nominal circle position (`FALSE` value, default).
  - The requested information is then retrieved by means of the [`ECircleShape`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1ECircleShape.html) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1ECircleShape.html) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1ECircleShape.html).
* Alternatively, [`ECircleGauge::GetMeasuredCircle`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1ECircleGauge.html#aa1af7d7d463a7dd1047ef11ed8eb699c) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1ECircleGauge.html#acde796c81e02d22503ecf6d1a933a420) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1ECircleGauge.html#ae3b92b810d82677f4981b94a9e5d4313) provides the results as an [`ECircle`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1ECircle.html) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1ECircle.html) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1ECircle.html) object.

## Wedge Gauge

The placement of a [`EWedgeGauge`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EWedgeGauge.html) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EWedgeGauge.html) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EWedgeGauge.html) is defined by its nominal position (given by the coordinates of its [`EWedgeShape::GetCenter`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EWedgeShape.html#a1d73e6c412519e521fa22c0f3d80eb67) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EWedgeShape.html#a1f630937c930b34529d5b11ee2521fbf) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EWedgeShape.html#a5f7b2ab560f55d8975d42219c5277224)), its nominal [`EWedgeShape::GetInnerRadius`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EWedgeShape.html#a382ef2ba1e9317672fb1995a23e9d054) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EWedgeShape.html#a41965ded313bba10ab6ab26fa11facfc) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EWedgeShape.html#a048b95e33d5072454366a907010245e6) and [`EWedgeShape::GetOuterRadius`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EWedgeShape.html#acbb6ebba609141259e4075e4f7820bea) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EWedgeShape.html#a47d1102198a488eea2d8070bb84b0c8d) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EWedgeShape.html#a4725b34477de722c4c4effc09201a051) ([`EWedgeShape::GetInnerDiameter`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EWedgeShape.html#a62fadd0f24b73d0e210166dfdafa91c8) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EWedgeShape.html#aed44b356946f385c0975dfb94bb14387) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EWedgeShape.html#ab4fc7154f3601a71739a6dd58b8b335a) and [`EWedgeShape::GetOuterDiameter`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EWedgeShape.html#aa8b85e4ca4bf5152010480e02221fc03) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EWedgeShape.html#aab315430bec280fa9a6a93620c03c81d) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EWedgeShape.html#a495343ab5b20a02cf9e62654cbbe1432)), its [`EWedgeShape::GetBreadth`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EWedgeShape.html#a7b182884f6641f77cbf5f8ce0e741406) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EWedgeShape.html#a3626bb8f58148596f6428c7c3ce3e6a2) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EWedgeShape.html#aabf9cc835ca65f04635e51ca96fa2d82) (difference between radii), the [`EWedgeShape::GetAngle`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EWedgeShape.html#a4b9d3c0e875ec8cf325f59108d30ca45) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EWedgeShape.html#a0858765f1fd50ee1b1106e9eb2f323fc) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EWedgeShape.html#ac3d70d3fd6e6310b33dc28e795e1f1eb) from where it extends and its [`EWedgeShape::GetAmplitude`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EWedgeShape.html#ad7004e2172fe4f822afd37ea68ff5378) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EWedgeShape.html#aa3a33c5f7150d671593754c83cf0b077) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EWedgeShape.html#a2df9dc1a292bb12b8da3a445a7e78a24).

The `Set` member can distinguish between a full ring, a sector of a ring and a disk.

Each side of a wedge can have its own transition detection parameters and can be set to active or inactive with the [`EWedgeGauge::GetActiveEdges`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EWedgeGauge.html#a43f198f1950fb141dd001a8849ccd153) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EWedgeGauge.html#a5b8b08599ba5d7e0afc7f5bbc2c59afe) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EWedgeGauge.html#a2f734ce505c783a94625e5a6fda16504) property. When a side is active, this means that:

* Setting the value of a parameter only applies to the currently active sides;
* Getting the value of a parameter yields a result only when the value of this parameter is the same for all active sides;
* Only active sides are used for measurement and model fitting.

So different sides can have different parameters, and you can measure parallel arcs or oblique sides, or a corner point, instead of the whole wedge. The four sides are denoted by letters “a”, “r”, “AA” and “RR” respectively.

![image](assets/images/easygauge/wedgefittingconventions.webp)

### Usage

* Define and position the gauge, then use [`ELineGauge::Measure`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1ELineGauge.html#ad926d1b61146b49d70bb753edd077576) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1ELineGauge.html#adcb4f62134ea078700f45bc08d3aeb2c) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1ELineGauge.html#a066474d2be5d8be21e972ead773e3fd5) to fit the lines.
  - The method [`EShape::GetFound`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EShape.html#a0fcb725e7c8bece25225104b181ee6f1) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EShape.html#a1d189c67f57624cfb4aa0c98a534a76d) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EShape.html#a8b70778740aae62aeba5c76c19d63598) returns `TRUE` if a suitable rectangle is found.
  - To obtain the [`EWedgeShape`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EWedgeShape.html) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EWedgeShape.html) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EWedgeShape.html), set the [`EShape::GetActualShape`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EShape.html#aec27ba0398bf338d4ff3b7cb563f4cd1) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EShape.html#a9e91e9aebad82bc43464a822de4e5d81) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EShape.html#ac3b27e010f8908636c9e7a4d30014c8f) property to `TRUE` to return the fitted line (instead of the nominal line position `FALSE`, default).
* Alternatively, [`EWedgeGauge::GetMeasuredWedge`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EWedgeGauge.html#a166fb0a52114c416357e5206f3e3d4a2) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EWedgeGauge.html#a63a94dd947d497c0d609743bbd484fde) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EWedgeGauge.html#aa273046cbf730541e2a6561c80a9c2bc) provides the results as an [`EWedge`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EWedge.html) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EWedge.html) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EWedge.html) object.

## Polygon Gauge

* A polygon is defined as a list of connected vertices, forming a closed or an open shape. [`EPolygonGauge`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EPolygonGauge.html) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EPolygonGauge.html) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygonGauge.html) computes several transition points along each edge of the polygon, like with a line gauge. Then from these transition points, a measured polygon is computed with a strategy depending on the measurement mode.

![](assets/images/legacy_easygauge/polygon_shape_1.webp)![](assets/images/legacy_easygauge/polygon_shape_2.webp)
* The position of the vertices of the polygon are defined in the local [`EFrame`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EFrame.html) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EFrame.html) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EFrame.html) of the polygon.
  - An [`EFrame`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EFrame.html) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EFrame.html) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EFrame.html) is a coordinate system, with a position, an orientation and a scale.
  - The class [`EPolygon`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EPolygon.html) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EPolygon.html) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygon.html) stores the vertices and other attributes.
  - The class [`EPolygonShape`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EPolygonShape.html) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EPolygonShape.html) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygonShape.html)  handles the hierarchy of the shapes and the drawing methods.
  - The class [`EPolygonGauge`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EPolygonGauge.html) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EPolygonGauge.html) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygonGauge.html) is the main class for the measurement process.

![image](assets/images/legacy_easygauge/polygon_shape_3.webp)
* To setup the polygon geometry, use the following methods:
  - `EPolygon.SetCenter` (derived from [`EPoint::SetCenter`](../../../../doxygen_cpp/structeVision_1_1EPoint.html#abdd65ca10184dd36e11b1f55adb8fd68) [<sub>.NET</sub>](../../../../doxygen_cs/structeVision_1_1EPoint.html#ab4f1ef9132715d5a7d31781ddbb24964) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1EPoint.html#a443cc54d48bbf6c0ed5148f914d78909)), `EPolygon.SetAngle` (derived from [`EFrame::SetAngle`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EFrame.html#a33f50695d46a7aa35fddfafa3768da5e) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EFrame.html#aa88e68edb9352127f65b3f011cc54374) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EFrame.html#ab7538ee7b853177aa3582e86fbbe8307)) and `EPolygon.SetScale` (derived from [`EFrame::SetScale`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EFrame.html#a304a61643ee981874df1e20704d898d8) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EFrame.html#aa16cb97a7adf04683b6f991db8c06d30) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EFrame.html#af13be1c4c8b446cad6d38f390100b7fd)) to change the [`EFrame`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EFrame.html) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EFrame.html) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EFrame.html) reference coordinate system.
  - [`EPolygon::SetIsClosed`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EPolygon.html#ad2ff2c748332bfc4d478cd6cee3076e0) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EPolygon.html#a13549d1d78782bf7689ddffa81160c53) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygon.html#aeb0bd7f22598c8d059ba5c125ec93a63) to choose between close or open polygon configuration.
  - [`EPolygon::AppendVertex`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EPolygon.html#ab695e11a87510ff110555335e10f5a21) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EPolygon.html#af16da29744d5a36de3c647d3631041f0) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygon.html#accaf182051db21be132749066aa77c52) to add a new vertex to the polygon.
  - [`EPolygon::SetVertex`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EPolygon.html#a9242b4cbda0a5176764326020f5cec40) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EPolygon.html#a2c77349d854bb5b53f08bbffdee9a79c) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygon.html#a5f88f2489c3d4cf9f81cd8529af78ee2) to change the position (x, y) of a vertex.
  - [`EPolygon::InsertVertex`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EPolygon.html#a7dcfebe95046bce45684d0e674fd075e) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EPolygon.html#af48bccdfd578d0fc2f17fa3ae49e862e) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygon.html#a9ea99f349f6b4b6208c7a9619216ae0e) to insert a vertex before the given index.
  - [`EPolygon::RemoveVertex`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EPolygon.html#a3679d99d137ec7283bbbdf757d28e4cc) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EPolygon.html#af66dd3ca332cd154d040a8f4cbe9388a) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygon.html#ab63807b035ad4891124481997404204f) to remove a vertex at the given index.
  - [`EPolygonShape::AddVertexAtDisplayPosition`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EPolygonShape.html#ac7ef7e8ed36bfd9b28e3b786fb971006) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EPolygonShape.html#a8a5f7e1f101f2abfbc3c62186b65ee30) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygonShape.html#a5668b9bf052cd9a2faa9a7bc1b872227) to insert a vertex depending on a display coordinate (typically a mouse click). This is useful for the graphical edition of a polygon.
  - [`EPolygonShape::RemoveVertexAtDisplayPosition`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EPolygonShape.html#ae0676dd1059dd90cf4001de9597863a7) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EPolygonShape.html#adf2927a5dcc562af0a556b54a69b5138) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygonShape.html#a93cc30f81fc30c9bc87bda7bb0712543) to remove the closest vertex to a display coordinate.

#### NOTE
[`EPolygonGauge`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EPolygonGauge.html) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EPolygonGauge.html) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygonGauge.html) has 3 measurement modes [`EPolygonMeasurementMode`](../../../../doxygen_cpp/namespaceeVision_1_1Legacy.html#aad7013f5b2beffd9a530403576653da2) [<sub>.NET</sub>](../../../../doxygen_cs/namespaceeVision_1_1Legacy.html#af85b2c4c0c09c076ef2710b63e986dbb) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygonMeasurementMode.html).
The typical use cases are:

- For [`EPolygonMeasurementMode_Global`](../../../../doxygen_cpp/namespaceeVision_1_1Legacy.html#aad7013f5b2beffd9a530403576653da2) [<sub>.NET</sub>](../../../../doxygen_cs/namespaceeVision_1_1Legacy.html#af85b2c4c0c09c076ef2710b63e986dbb) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygonMeasurementMode.html): the precise positioning of parts.
- For [`EPolygonMeasurementMode_Edge`](../../../../doxygen_cpp/namespaceeVision_1_1Legacy.html#aad7013f5b2beffd9a530403576653da2) [<sub>.NET</sub>](../../../../doxygen_cs/namespaceeVision_1_1Legacy.html#af85b2c4c0c09c076ef2710b63e986dbb) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygonMeasurementMode.html): the verification of specific shapes defined by angles and lengths.
- For [`EPolygonMeasurementMode_Point`](../../../../doxygen_cpp/namespaceeVision_1_1Legacy.html#aad7013f5b2beffd9a530403576653da2) [<sub>.NET</sub>](../../../../doxygen_cs/namespaceeVision_1_1Legacy.html#af85b2c4c0c09c076ef2710b63e986dbb) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygonMeasurementMode.html): the measure of complex object contours.

* Use the method [`EPolygonGauge::SetMeasurementMode`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EPolygonGauge.html#ada52a369a9348239b4b94f1054f0d2c6) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EPolygonGauge.html#a2603185428469156257a2533976e1a2b) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygonGauge.html#a3dd493d58a5229ea2b0e54669d31f0c1) to select the measurement mode:
  - [`EPolygonMeasurementMode_Global`](../../../../doxygen_cpp/namespaceeVision_1_1Legacy.html#aad7013f5b2beffd9a530403576653da2) [<sub>.NET</sub>](../../../../doxygen_cs/namespaceeVision_1_1Legacy.html#af85b2c4c0c09c076ef2710b63e986dbb) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygonMeasurementMode.html): The position, the orientation and optionally the scale of the polygon ([`EFrame`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EFrame.html) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EFrame.html) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EFrame.html)) are adjusted to fit the detected transition points.

![image](assets/images/legacy_easygauge/polygon_shape_4.webp)

By default, the global transformation is rigid:

- Only the translation and the rotation are optimized to match the contour of the object.
- If scaling is required, you must explicitly enable it with the method [`EPolygonGauge::SetEnableScaling`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EPolygonGauge.html#af548da54645bde845db791a4e535df57) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EPolygonGauge.html#ae3f19749aaeedd57e390795bec556a24) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygonGauge.html#af0367dec6bcc62502434409ffefeb095).
- The global measurement doesn’t change the polygon vertex positions, it only adjusts the polygon frame.
  - [`EPolygonMeasurementMode_Edge`](../../../../doxygen_cpp/namespaceeVision_1_1Legacy.html#aad7013f5b2beffd9a530403576653da2) [<sub>.NET</sub>](../../../../doxygen_cs/namespaceeVision_1_1Legacy.html#af85b2c4c0c09c076ef2710b63e986dbb) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygonMeasurementMode.html): Each polygon edge is measured individually.
    - A polygon composed by the union of these fitted edges is generated.
    - The number of edges of the measured polygon is the same as the input polygon.

![image](assets/images/legacy_easygauge/polygon_shape_5.webp)
- [`EPolygonMeasurementMode_Point`](../../../../doxygen_cpp/namespaceeVision_1_1Legacy.html#aad7013f5b2beffd9a530403576653da2) [<sub>.NET</sub>](../../../../doxygen_cs/namespaceeVision_1_1Legacy.html#af85b2c4c0c09c076ef2710b63e986dbb) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygonMeasurementMode.html): All transition points on the object contour are used to build a new polygon, with an optimized number of edges.
  - The resulting polygon is simplified using a filtering threshold to reduce the number of edges while keeping the shape of the object.
  - The resulting number of edges depends on the geometry of the contour of the object and on the filtering threshold.
  - Set the filtering threshold with [`EPolygonGauge::SetFilteringThreshold`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EPolygonGauge.html#a02315d0d94af7f33ca8fc9ef7f488f6f) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EPolygonGauge.html#af874145bb830cb096edc1cd63dedefb5) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygonGauge.html#a031e90dfdfac0d87ce32608cd1d00e53).

![image](assets/images/legacy_easygauge/polygon_shape_6.webp)
* Other parameters of the class [`EPolygonGauge`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EPolygonGauge.html) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EPolygonGauge.html) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygonGauge.html).

  The class [`EPolygonGauge`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EPolygonGauge.html) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EPolygonGauge.html) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygonGauge.html) inherits other common **EasyGauge** parameters:
  - [`EPolygonGauge::SetNumFilteringPasses`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EPolygonGauge.html#a7e08b49d3d45593e3e14b3e061d0817e) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EPolygonGauge.html#a2080d9d90271cbbedebe835f290b947f) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygonGauge.html#aa7e7d3a6fe0e71e2115156ee31901d48) sets the number of filtering passes, then removes outliers before the line fitting operation. This parameter is only available in `Global` et `Edge` measurement modes.
  - [`EPolygonGauge::SetMinNumFitSamples`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EPolygonGauge.html#aae0a364318887ff9d3f5962ca07189f1) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EPolygonGauge.html#a553403b3fd91b730d1e19ddbca028344) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygonGauge.html#a7dafced3f95f9618b3fc1255b4d06ca3) sets the minimum number of samples required for the fitting on each edge of the polygon. The measure fails if the minimum is not achieved.
  - [`EPolygonGauge::SetTransitionType`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EPolygonGauge.html#a9142e255565e56412e3c63f3afdb406b) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EPolygonGauge.html#a8826c832bba0126241e27a2a1dcf3872) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygonGauge.html#ad41c5813c157a70108df87b024d36bac) sets the transition type ([`ETransitionType`](../../../../doxygen_cpp/namespaceeVision.html#a503eb9d53e76fdabfeec1a6049ce63fa) [<sub>.NET</sub>](../../../../doxygen_cs/namespaceeVision.html#a6c6c76fcc0cfe176b06aa486c594fe71) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1ETransitionType.html)): white to black, black to white or both.
  - [`EPolygonGauge::SetTransitionChoice`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EPolygonGauge.html#ace84398e1ed6a64eb19cc623b237f584) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EPolygonGauge.html#addb7fe9e5aa5d4c7d1afd63de62a738e) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygonGauge.html#a120765fcfd642b1567ef13bf9f06fc04) selects which peak is used when there are several transitions.
  - [`EPolygonGauge::SetSamplingStep`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EPolygonGauge.html#a6679040558a634c97a9eecf33b3b2a51) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EPolygonGauge.html#abffd03693927b1da1756f19b8e657266) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygonGauge.html#a656a33cba1145c11ab287e4458228bbd) gives the distance, in pixels, between two sample points.

### Usage

* Sets the parameters of the gauge, then use [`EPolygonGauge::Measure`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EPolygonGauge.html#a32221403e175c6c7c729a1f76d4bff4a) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EPolygonGauge.html#a323b001b5445e9c58cde971922306fae) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygonGauge.html#ac4e39c29c25e2515e6f7588504b916f0) to fit the polygon.
  - The method [`EShape::GetFound`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EShape.html#a0fcb725e7c8bece25225104b181ee6f1) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EShape.html#a1d189c67f57624cfb4aa0c98a534a76d) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EShape.html#a8b70778740aae62aeba5c76c19d63598) returns `TRUE` if a suitable polygon is found.
  - To obtain the polygon geometry, use the method [`EPolygonGauge::GetMeasuredPolygon`](../../../../doxygen_cpp/classeVision_1_1Legacy_1_1EPolygonGauge.html#a5be9a34dfc15184d3a5a0a6294c0f0c7) [<sub>.NET</sub>](../../../../doxygen_cs/classeVision_1_1Legacy_1_1EPolygonGauge.html#a9842a3c53d253e44094aba165b0c8a3f) [<sub>Python</sub>](../../../../doxygen_python/classeVision_1_1Legacy_1_1EPolygonGauge.html#a8a7d64adb0ba76800c8e240c78b51a68).
