"Cognex.VisionPro3D" This method clears any previously cached SetupImage. Use the current InputVisionData to produce a maximally sized range image. This is done using most of the current RunParams settings, while ignoring the OutputImageXYMode, OutputImageZMode, and OutputEnable settings. This range image is available via the read-only SetupImage property. This range image will be used by CreateCurrentRecord if available and requested. The input vision data argument is null. The supplied input vision data does not contain the specified output space source. The input range and grey images do not match in size. The input CogVisionDataContainer is not either all range images or all range / grey image pairs. The input range images do not all contain the specified shared space. The input range image identified as the output space source does not contain the specified output space. Runs this Cog3DVisionDataStitchTool using the current parameter settings. Fires before the tool runs. Fires when the tool runs. If the run was successful, results are generated; if the run was not successful, no results are generated and the previous results are cleared. Fires after the tool runs. Enable creation of records by bitwise ORing the appropriate . Fires when the value of this property changes. Enable creation of records by bitwise ORing the appropriate . Fires when the value of this property changes. Enable creation of records by bitwise ORing the appropriate . Fires when the value of this property changes. The SetupImage from the most recent call to ComputeSetupImage. This property may be null. The result of the most recent run of this tool. The operator that performs the actual stitching. Fires when the value of this property changes. The input vision data (either range images or range image / grey image pairs) to be processed by the contained operator. Fires when the value of this property changes. Perform post deserialization setup. This method may safely be called more than once. Destruct this Cog3DVisionDataStitchTool. Constructs a new instance of this class as a copy of the given instance. Construct a new instance of this class. Create a clone, or copy, of this Cog3DVisionDataStitchTool. Serializer for Cog3DVisionDataStitchTool object. The standard SerializationInfo argument. The standard StreamingContext argument. Serialization constructor for a Cog3DVisionDataStitchTool object. The standard SerializationInfo argument. The standard StreamingContext argument. This bit will be set in the EventArgs of a Changed event every time the value returned by SetupImage may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Result may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by InputVisionData may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by RunParams may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by CurrentRecordEnable may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by LastRunRecordDiagEnable may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by LastRunRecordEnable may have changed. The Cog3DVisionDataStitchTool class facilitates the use of a Cog3DVisionDataStitch operator. Enumeration of the diagnostic data that can be provided in the tool's LasRunRecord. Use these constants with to specify the diagnostic tool records that the Cog3DVisionDataStitchTool generates when you call . Include all of the diagnostic data in the LastRunRecord. Draw the (non-interactive) destination rectangle on any displayed input range image. Create a subrecord for each of the input grey images. Images are by reference. Create a subrecord for each of the input range images. Images are by reference. Do not include any of the diagnostic data in the LastRunRecord. Enumeration of the non-diagnostic data that can be provided in the tool's LasRunRecord. Use these constants with to specify the tool records that the Cog3DVisionDataStitchTool generates when you call . Include all of the non-diagnostic data in the LastRunRecord. Create a subrecord that references the output grey image. Create a subrecord that references the output range image. Do not include any of the non-diagnostic data in the LastRunRecord. Enumeration of the data that can be provided in the tool's CurrentRecord. Use these constants with to specify the tool records that the Cog3DVisionDataStitchTool generates when you call . Include all possible records in the CurrentRecord. Add an interactive CogRectangle as a subrecord of the SetupImage subrecord. This rectangle is coupled to the RunParam's OutputImageXMin, OutputImageXMax, OutputImageYMin, and OutputImageYMax parameters. Create a subrecord for the cached, maximally sized setup image. Create a subrecord for each of the input grey images. Images are by reference. Create a subrecord for each of the input range images. Images are by reference. Do not include any records in the CurrentRecord. Perform stitching on the supplied vision data. The CogVisionDataContainer containing the range images (and optionally grey images) to be stitched. A containing the results of the stitching operation. The input vision data argument is null. No output is enabled. Grey output is requested but there is no grey input. The supplied input vision data does not contain the specified output space source. The input range and grey images do not match in size. The input CogVisionDataContainer is not either all range images or all range / grey image pairs. The input range images do not all contain the specified shared space. The input range image identified as the output space source does not contain the specified output space. When is Priority, this is how we select an output pixel value from more than one overlapping input pixel. In such a case, the overlapping input image with the numerically lowest priority value is chosen. The structure of this CogDictionary is as follows. There should be one key/value entry for each input image. The key should be the same string as that used to idenitify an input image in the that is supplied to the method. The value should be a positive integer indicating priority for that image: zero is the highest priority, then one, then two, and so on. How input pixels that overlap in X and Y will be processed to produce an output pixel value. The default is MaxZ. Fires when the value of this property changes. The supplied value is not a member of The maximum Z difference in client space over which overlapping pixel values will be averaged. If is MaxZ, then overlapping pixels whose height is within this distance of the maximum height at that location will be averaged. And if is MinZ, then overlapping pixels whose height is within this distance of the minimum height at that location will be averaged. Overlapping pixel height values that are outside the specified range will be ignored. Finally, if is any other value, this parameter is ignored. The default is 0.0. The maximum allowable Z difference in client space () between adjacent source data positions, between which range image voxels will be interpolated. Adjacencies whose Z difference exceeds this value will be disconnected. If is false then this property is ignored and processing is performed as if this value were set to ). The default is 10.0. Fires when the value of this property changes. The supplied value must be greater than or equal to zero. Controls whether is used during processing. If false, processing is performed as if the threshold were set to ). The default is false. Client space () minimum Z. If is UseZMin, then this parameter will be the output space Z that corresponds to a minimum output pixel value. This parameter is ignored if is not UseZMin. The default is -100.0. Fires when the value of this property changes. How to handle the Z values of the output range image. There are two defined modes: UseZMin and Auto. The default is Auto. Fires when the value of this property changes. The supplied value is not a member of Client space () maximum Y bounds for the output range image. Ignored if is not Limit. Note that setting this value to less than the current will cause OutputImageYMin to be set to the new value as well. The default is 100.0. Fires when the value of this property changes. Client space () minimum Y bounds for the output range image. Ignored if is not Limit. Note that setting this value to greater than the current will cause OutputImageYMax to be set to the new value as well. The default is -100.0. Fires when the value of this property changes. Client space () maximum X bounds for the output range image. Ignored if is not Limit. Note that setting this value to less than the current will cause OutputImageXMin to be set to the new value as well. The default is 100.0. Fires when the value of this property changes. Client space () minimum X bounds for the output range image. Ignored if is not Limit. Note that setting this value to greater than the current will cause OutputImageXMax to be set to the new value as well. The default is -100.0. Fires when the value of this property changes. How to define the X, Y bounds of the output image. There are two defined modes: Limit and Auto. The default is Auto. Fires when the value of this property changes. The supplied value is not a member of The Z scale factor to use when generating the output range image. Ignored when is UseInputImageScales. The default is 1.0. Fires when the value of this property changes. The supplied value must be greater than zero. The Y scale factor to use when generating the output range image. Ignored when is UseInputImageScales. The default is 1.0. Fires when the value of this property changes. The supplied value must be greater than zero. The X scale factor to use when generating the output range image. Ignored when is UseInputImageScales. The default is 1.0. Fires when the value of this property changes. The supplied value must be greater than zero. How to scale the output range image. This controls the resolution of the output range image. There are two defined modes: UseXYZScales and UseInputImageScales. The default is UseInputImageSclaes Fires when the value of this property changes. The supplied value is not a member of Specify the desired ouputput by bitwise ORing the appropriate . Fires when the value of this property changes. The default is Range The name of the 3D space in which the output range image will be rendered. The method will throw an ArgumentException if this space name does not exist within the 3D coordinate space tree of the specified range image. Fires when the value of this property changes. The supplied value is null. The dictionary key of the input range image whose 3D coordinate space tree holds the desired output space. In the case of input range / greyscale image pairs, this is the key of the nested container that in turn holds the range image whose 3D coordinate space tree holds the desired output space. The method will throw an ArgumentException if this dictionary key does not exist within the input . When set to an empty string, this parameter is treated specially. An empty string is interpreted to mean that we will use an arbitrarily chosen input range image as the source of the output space. This may be usefull when the output space is defined in all input images. Fires when the value of this property changes. The supplied value is null. The name of the 3D space shared by all input range images. The method will throw an ArgumentException if this space name does not exist in the 3D coordinate space tree of every input range image. Fires when the value of this property changes. The supplied value is null. Constructs a new instance of this class as a deep copy of the given instance. The Cog3DVisionDataStitch object to be copied. May not be null. If the input argument is null. Constructs a new instance of this class. Serialization constructor for Cog3DVisionDataStitch object. The standard SerializationInfo argument. The standard StreamingContext argument. This bit will be set in the EventArgs of a Changed event every time the value returned by OutputImageOverlapPriorities may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by OutputImageOverlapMode may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by OutputImageZConsistencyDistance may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by OutputImageZContinuityThreshold may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by OutputImageZContinuityThresholdEnabled may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by OutputImageZMin may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by OutputImageZMode may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by OutputImageYMax may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by OutputImageYMin may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by OutputImageXMax may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by OutputImageXMin may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by OutputImageXYMode may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by OutputImageZScale may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by OutputImageYScale may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by OutputImageXScale may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by OutputImageScaleMode may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by OutputEnable may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by OutputSpaceName3D may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by OutputSpaceSource may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by SharedSpaceName3D may have changed. An operator for stitching together three dimensional vision data into a single result in a user-specified space. How input pixels that overlap in X and Y will be processed to produce an output pixel value. Select the overlapping visible range image value from the image with the numerically lowest priority value, as specified in the OutputImageOverlapPriorities parameter. Use the overlapping visible range image value from the image with the closest center. Use the minimum of the input values. Use the maximum of the input values. How to handle the Z values of the output range image. A ZMin value will be automatically computed from the input images by mapping image Z = 0 corner points into output space and taking the miniumum mapped Z value. The parameter will be the output space Z that corresponds to a minimum output voxel value. Any output voxel at or below the voxel pierced by the specified output space Z value will be set to this value. How to define the XY bounds of 's output image. Automatically size the output range image in X and Y to contain the bounding corners (at image Z = 0 and at image Z = 64K) of the input images. Clip the output in X and Y according to , . , and . How the will scale the result. If all input range images have identical X scale values, and they all have identical Y scale values, and they all have identical Z scale values, then use those same scale values in the output range image. Otherwise throw an ArgumentException. Always use the specified X, Y, and Z scale values to generate the output. What outputs will be generated by a call to . Produce a as part of the output. This will require that the input include appropriate greyscale images. Produce a as part of the output. Serialization construct a Cog3DVisionDataStitchResult object. The standard SerializationInfo argument. The standard StreamingContext argument. This will always point to all of the rendered data. So if you requested just Range output, this will point to the RangeImage property. If you request just Grey output, this will point to the GreyImage property. And if you requested both Range and Grey output, this will point to a CogVisionDataContainer object holding both the range and the grey output. The stitched grey image. This will be null if Grey output was not requested. The stitched range image. This will be null if Range output was not requested. Copy construct a Cog3DVisionDataStitchResult object. This is a shallow copy. The Cog3DVisionDataStitchResult object to be copied. If Other is null. This is the result produced by a call to the Execute method of the Cog3DVisionDataStitch class. Serialization constructor for Cog3DRangeImageCrossSectionPointCircle object. The standard SerializationInfo argument. The standard StreamingContext argument. Returns the point of the circle The point is computed in the profile selected space name. If licensing for this class cannot be confirmed. If the operator is not in a collection. Fires when this method is called. The following state flag may be affected: SfStatus SfPoint SfPointInImage SfPointInImage3D The status returned can be one of the following: The point was computed successfully and passed any enabled tolerance checking. Passed The point was computed successfully but failed tolerance checking. FailedTolerance The operator failed. FailedToCompute The line segment was not found in the collection at run time. InputFeatureMissing Clear the results' properties of this class. Fires when this method is called. The following state flag may be affected: SfStatus SfPoint SfPointInImage SfPointInImage3D Create the graphics and add them to the graphicCollection provided. A constructed CogGraphicCollection. If lastRun is true, do not include the input graphics. The input graphics are the regions of extracted line segment. The output graphic is the point graphic. Sets the name of the operator producing Circle. The Cog3DRangeImageCrossSectionOperatorsParams collection that holds the line segment operator. The operator object producing Circle. Fires when this method is called. The following state flag may be affected: SfCircle This is a convenience setter for programmatic users to specify the line segment using the operator's object. The operator is not held internally, it is used to extract the internal unique id of the operator. The id is used by this operator at run time. The method can be called before the operator is added to the collection. If operator is not found in the parentCollection provided. If the parentCollection in null. Gets the point computed by the execute method. Always check the status of the operator to be either Passed or FailedTolerance before calling the getter. The point is in the SelectedSpaceName3D of the range image stored in the profile. If the point was not computed. The Cog3DVect3 is a ValueType and cannot return a null. Gets the point computed by the execute method. The point is in the SelectedSpaceName of the range image stored in the profile. Returns null if the point was not computed. Gets the point computed by the execute method. The point is in the ProfileSelectedSpaceName. Returns null if the point was not computed. Gets or sets the name of the operator producing Circle. Fires when this property changes. The following state flag may be affected: SfCircle The property is a link between the operator producing the line segment and this operator, and therefore requires that all operators are added to the collection before it can be called. The name of the operator is not held internally. It is used to extract the internal unique id of the operator within the collection. If the operator is not in a collection. If the name of the operator producing Circle is not found in the collection. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the Y position. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the X position. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Finalize this Cog3DRangeImageCrossSectionPointCircle. Destruct this Cog3DRangeImageCrossSectionPointCircle. Construct a deep copy of the supplied Cog3DRangeImageCrossSectionPointCircle object. The Cog3DRangeImageCrossSectionPointCircle object to be copied. If the supplied argument is null. The copy constructor is meant to be used with the collection copy constructor. The property refer to internal id within the operators collection and its value is meaningless outside a collection. Construct a default Cog3DRangeImageCrossSectionPointCircle object. NextSf state flag. This bit will be set in the EventArgs of a Changed event every time the value returned by PointInImage3D may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by PointInImage may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Point may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Circle may have changed. The class to return a point of a circle This operator must be added to the operators collection before it is configured. The property hold the internal id of the operator producing the circle, and the operator must also be in the operators collection. Serialization constructor for Cog3DRangeImageCrossSectionExtractCircleFit object. The standard SerializationInfo argument. The standard StreamingContext argument. Extracts a circle. The circle is extracted and reported in the profile selected space name. If licensing for this class cannot be confirmed. If the regions selected space name was not found in the profile space tree. Fires when this method is called. The following state flag may be affected: SfStatus SfCircle SfCircleInImage SfCircleInImage3D The status returned can be one of the following: The circle was extracted successfully and passed any enabled tolerance checking. Passed The circle was extracted successfully but failed tolerance checking FailedTolerance The circle was not extracted because because not enough points were found to extract the line. FeatureNoExtracted Clear the results' properties of this class. Fires when this method is called. The following state flag may be affected: SfRMSError SfCircle SfCircleInImage SfCircleInImage3D Create the graphics and add them to the graphicCollection provided. A constructed CogGraphicCollection. If lastRun is true, do not include the input graphics. The input graphics are the regions. The output graphic is the circle graphic. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the Radius. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the CenterY position. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the CenterX position. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the Cog3DRangeImageCrossSectionTolerance object for the RMS error. If the property is set to true, the tolerance check will be performed at run time. Gets the RMS error of the circle. RMS is the root mean squared perpendicular error between the line and all of the points in the user specified region Gets the circle extracted by the execute method. Note that the circle is seen as a LineSegment in the image. The circle is in the SelectedSpaceName3D of the range image stored in the profile. Return null is the circle was not computed. Gets the circle extracted by the execute method. Note that the circle is seen as a LineSegment in the image. The circle is in the SelectedSpaceName of the range image stored in the profile. Return null is the circle was not computed. Gets the circle extracted by the execute method. Always check the status of the operator to be either Passed or FailedTolerance before calling the getter. The circle is in the ProfileSelectedSpaceName. Return null is the circle was not computed. Finalize this Cog3DRangeImageCrossSectionExtractCircleFit. Destruct this Cog3DRangeImageCrossSectionExtractCircleFit. Construct a deep copy of the supplied Cog3DRangeImageCrossSectionExtractCircleFit object. The Cog3DRangeImageCrossSectionExtractCircleFit object to be copied. If the supplied argument is null. Construct a default Cog3DRangeImageCrossSectionExtractCircleFit object. NextSf state flag. This bit will be set in the EventArgs of a Changed event every time the value returned by CircleInImage3D may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by CircleInImage may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Circle may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by RMSError may have changed. The class to fit a circle on a profile points that are within the regions. This operator holds a collection of regions. There must be always one region in the collection. The user may add and delete any region as long as the count does not dip below 1. NOTE: this is a circle fitter not a circle finder operator. It will fit a circle using the given point and not try to find a circle on the given points Serialization constructor for Cog3DRangeImageCrossSectionPointAreaResult object. The standard SerializationInfo argument. The standard StreamingContext argument. Extracts a point. The point is extracted and reported in the profile selected space name. If licensing for this class cannot be confirmed. If the regions selected space name was not found in the profile space tree. Fires when this method is called. The following state flag may be affected: SfStatus SfPoint SfPointInImage SfPointInImage3D The status returned can be one of the following: The point was computed successfully and passed any enabled tolerance checking. Passed The point was computed successfully but failed tolerance checking. FailedTolerance The point was not computed (missing from the input AreaResult). FeatureNotComputed The input AreaResult is not available. InputFeatureMissing Clear the results' properties of this class. Fires when this method is called. The following state flag may be affected: SfPoint SfPointInImage SfPointInImage3D Create the graphics and add them to the graphicCollection provided. A constructed CogGraphicCollection. If lastRun is true, do not include the input graphics. The input graphics are the regions. The output graphic is the point graphic. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the Y position. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the X position. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the point extracted by the execute method. Always check the status of the operator to be either Passed or FailedTolerance before calling the getter. The point is in the SelectedSpaceName3D of the range image stored in the profile. If the corner was not computed. The Cog3DVect3 is a ValueType and cannot return a null. Gets the point extracted by the execute method. The point is in the SelectedSpaceName of the range image stored in the profile. Returns null if the point was not computed. Gets the point extracted by the execute method. The point is in the ProfileSelectedSpaceName. Returns null if the point was not computed. Gets or sets the point type. Specifies the point to extract. Fires when this property changes. The following state flag may be affected: SfPointType If the value is invalid. Sets the operator producing AreaResult. The Cog3DRangeImageCrossSectionOperatorsParams collection that holds the line segment operator. The operator object producing AreaResult. Fires when this method is called. The following state flag may be affected: SfArea This is a convenience setter for programmatic users to specify the AreaResult using the operator's object. The operator is not held internally, it is used to extract the internal unique id of the operator. The id is used by this operator at run time. The method can be called before the operator is added to the collection. If operator is not found in the parentCollection provided. If the parentCollection in null. Gets or sets the name of the operator producing the AreaResult. Fires when this property changes. The following state flag may be affected: SfArea The property is a link between the operator producing the line segment and this operator, and therefore requires that all operators are added to the collection before it can be called. The name of the operator is not held internally. It is used to extract the internal unique id of the operator within the collection. If the operator is not in a collection. If the name of the operator producing AreaResult is not found in the collection. Finalize this Cog3DRangeImageCrossSectionPointAreaResult. Destruct this Cog3DRangeImageCrossSectionPointAreaResult. Construct a deep copy of the supplied Cog3DRangeImageCrossSectionPointAreaResult object. The Cog3DRangeImageCrossSectionPointAreaResult object to be copied. If the supplied argument is null. Construct a default Cog3DRangeImageCrossSectionPointAreaResult object. NextSf state flag. This bit will be set in the EventArgs of a Changed event every time the value returned by Area may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by PointInImage3D may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by PointInImage may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Point may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by PointType may have changed. The class To get a point from the AreaResult object. Serialization constructor for Cog3DRangeImageCrossSectionAreaLineSegments object. The standard SerializationInfo argument. The standard StreamingContext argument. Create the input graphics and add them to the graphicCollection provided.. A constructed CogGraphicCollection. The default space name of the profile The selected space name of the profile The 2D linear transform that maps from the profile's selected space to the profile's default space Returns whether all the line segments that are specified as inputs are available or not Removed a line segment from the inputs by its operator The operator instance that produces the line segment Removes the line segment from the inputs by index The index of the line segment to be removed Removes the line segment from the inputs by its name The name of the operator that produces the line segment Adds a line segment as an input by its operator The operator instance that produces the line segment Adds a line segment as an input by its name The name of the operator that produces the line segment Gets the name of the input line segments Gets os sets how to create the reference profile from the line segments. Either use the highest or the lowest linesegment. Finalize this Cog3DRangeImageCrossSectionAreaLineSegments. Destruct this Cog3DRangeImageCrossSectionAreaLineSegments. Construct a deep copy of the supplied Cog3DRangeImageCrossSectionAreaLineSegments object. The Cog3DRangeImageCrossSectionAreaLineSegments object to be copied. If the supplied argument is null. Construct a default Cog3DRangeImageCrossSectionAreaLineSegments object. NextSf state flag. This bit will be set in the EventArgs of a Changed event every time the value returned by LineSegmentNames may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by ReferenceProfile may have changed. The class to do difference measurements between a CrossSection and line segments. Serialization constructor for Cog3DRangeImageCrossSectionOperatorMultipleInputs object. The standard SerializationInfo argument. The standard StreamingContext argument. Finalize this Cog3DRangeImageCrossSectionOperatorMultipleInputs. Destruct this Cog3DRangeImageCrossSectionOperatorMultipleInputs. Construct a deep copy of the supplied Cog3DRangeImageCrossSectionOperatorMultipleInputs object. The Cog3DRangeImageCrossSectionOperatorMultipleInputs object to be copied. If the supplied argument is null. Construct a default Cog3DRangeImageCrossSectionOperatorMultipleInputs object. NextSf state flag. This bit will be set in the EventArgs of a Changed event every time the value returned by InputShapes may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by InputOperatorNames may have changed. The class is a helper class for every operator that has multiple inputs It provides the necessary function to Add / Remove / List the input operators of this operator INTERNAL USE ONLY! Called at the beginning of the Execute method to check if the result of the input operator is available or not If not it does not even try to execute the operator and returns with InputFeatureMissing Gets the weight threshold. Always returns 0. In VisionPro if a profile data has a weight higher than 0 it counts Returns the type of the input operator of this operator Serialization constructor for Cog3DRangeImageCrossSectionAreaOperatorBase object. The standard SerializationInfo argument. The standard StreamingContext argument. Compute the area between the input profile and the reference profile. The area and the points of interest and reported in the profile selected space name. If licensing for this class cannot be confirmed. If the regions selected space name was not found in the profile space tree. Fires when this method is called. The following state flag may be affected: SfStatus SfMeasurementResult The status returned can be one of the following: The measurement was successful and passed any enabled tolerance checking. Passed The measurement was successful but failed tolerance checking FailedTolerance The measurement was not successful for any reason. FailedToMeasure This method needs to be overridden in the inherited class to perform the conrecte operator specific area measurement The CrossSection to perform the area measurement on The set of user defined regions The pointer to result structure holding the results of the area measurement Clear the results' properties of this class. Fires when this method is called. The following state flag may be affected: SfAreaResult Create the graphics and add them to the graphicCollection provided. A constructed CogGraphicCollection. If lastRun is true, do not include the input graphics. The input graphics are the regions and input graphics of the specific area measurement operator The output graphic is the difference cross section. The base classes method draws everything except the concrete operator specific input graphics Create the input graphics and add them to the provided graphicCollection A constructed CogGraphicCollection to add the graphics to. The profile's default sapcen name The profile's selected space name The 2D transformation to map shapes from the profile's SelectedSpaceName to the profile's DefaultSpaceName Gets or sets whether the threshold graphics will be drawn or not Fires when this property changes. The following state flag may be affected: SfDrawThresholdGraphics Gets or sets whether the Farthest point below the reference profile will be drawn or not Fires when this property changes. The following state flag may be affected: SfDrawFarthestPointBelowReferenceProfileGraphics Gets or sets whether the closest point below the reference profile will be drawn or not Fires when this property changes. The following state flag may be affected: SfDrawClosestPointBelowReferenceProfileGraphics Gets or sets whether the Farthest point Above the reference profile will be drawn or not Fires when this property changes. The following state flag may be affected: SfDrawFarthestPointAboveReferenceProfileGraphics Gets or sets whether the closest point above the reference profile will be drawn or not Fires when this property changes. The following state flag may be affected: SfDrawClosestPointAboveReferenceProfileGraphics Gets or sets whether the rightmost point of the computed area will be drawn or not Fires when this property changes. The following state flag may be affected: SfDrawRightPointGraphics Gets or sets whether the leftmost point of the computed area will be drawn or not Fires when this property changes. The following state flag may be affected: SfDrawLeftPointGraphics Gets or sets whether the computed area's background will be painted or not Fires when this property changes. The following state flag may be affected: SfDrawAreaBackgroundGraphics Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the point's Y coordinate that is below the reference profile and closest to it. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the point's X coordinate that is below the reference profile and closest to it. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the point's Y coordinate that is below the reference profile and farthest from it. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the point's X coordinate that is below the reference profile and farthest from it. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the point's Y coordinate that is above the reference profile and closes to it. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the point's X coordinate that is above the reference profile and closest to it. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the point's Y coordinate that is above the reference profile and farthest from it. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the point's X coordinate that is above the reference profile and farthest from it. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the right point's Y coordinate. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the right point's X coordinate. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the the left point's Y coordinate. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the left point's X coordinate. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the area. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the result computed by the execute method. Always check the status of the operator to be either Passed or FailedTolerance before calling the getter. The result is in the ProfileSelectedSpaceName. Returns null if the result was not computed. Gets or sets what area is being measured: abover or below the reference profile or both of those and if both, how they are combined Fires when this property changes. The following state flag may be affected: SfArea If the value is not Gets or sets max length of a missing stretch to fill along x-axis in ProfileSelectedSpaceName. Fires when this property changes. The following state flag may be affected: SfMaxFillLength If the value is less than 0. Gets or sets the height threshold. Points with heights below this threshold are treated as noise and are thus excluded from the computations. Note that 'height' in this context means the difference in height between the cross section and the lines. The heights are measured in ProfileSelectedSpaceName units along the Image Y axis. Please note that because of the nature of the surfaces in the real world and the accuracy of the sensor setting a height threshold to 0.0 will not benefit the calculation at all. We stringly recommend to set it to a value higher than 0.0. Fires when this property changes. The following state flag may be affected: SfHeightThreshold If the value is less than 0. Finalize this Cog3DRangeImageCrossSectionAreaOperatorBase. Destruct this Cog3DRangeImageCrossSectionAreaOperatorBase. Construct a deep copy of the supplied Cog3DRangeImageCrossSectionAreaOperatorBase object. The Cog3DRangeImageCrossSectionAreaOperatorBase object to be copied. If the supplied argument is null. Construct a default Cog3DRangeImageCrossSectionAreaOperatorBase object. NextSf state flag. This bit will be set in the EventArgs of a Changed event every time the value returned by DrawThresholdGraphics may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by DrawFarthestPointBelowReferenceProfileGraphics may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by DrawClosestPointBelowReferenceProfileGraphics may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by DrawFarthestPointAboveReferenceProfileGraphics may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by DrawClosestPointAboveReferenceProfileGraphics may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by DrawRightPointGraphics may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by DrawLeftPointGraphics may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by DrawAreaBackgroundGraphics may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by InputOperator may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Area may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by MeasurementPosition may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by MaxFillLength may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by HeightThreshold may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by AreaResult may have changed. The class is the base class for every CrossSectionTool operator that performs area measurement Serialization constructor for Cog3DRangeImageCrossSectionTool object. The standard SerializationInfo argument. The standard StreamingContext argument. Gets or sets the RunParams. A default constructed Cog3DRangeImageCrossSectionRunParams. Fires when this property changes. The following state flag may be affected: SfRunParams If the supplied argument is null. Gets or sets the input range image for use in the Cross Section. The default is null. If the supplied input image is not CogImage16Range. Fires when this property changes. The following state flag may be affected: SfInputImage Enable creation of records by bitwise ORing the appropriate Cog3DRangeImageCrossSectionLastRunRecordDiagConstants. The default is (int)Cog3DRangeImageCrossSectionLastRunRecordDiagConstants::InputImageByReference | (int)Cog3DRangeImageCrossSectionLastRunRecordDiagConstants::Region Fires when this property changes. The following state flag may be affected: SfLastRunRecordDiagEnable Enable creation of records by bitwise ORing the appropriate Cog3DRangeImageCrossSectionLastRunRecordConstants. The default is Cog3DRangeImageCrossSectionLastRunRecordConstants::All Fires when this property changes. The following state flag may be affected: SfLastRunRecordEnable SfCreateLastRunRecord Enable creation of records by bitwise ORing the appropriate Cog3DRangeImageCrossSectionCurrentRecordConstants. The default is (int)Cog3DRangeImageCrossSectionCurrentRecordConstants::InputImage | (int)Cog3DRangeImageCrossSectionCurrentRecordConstants::Region Fires when this property changes. The following state flag may be affected: SfCurrentRecordEnable SfCreateCurrentRecord Finalize this Cog3DRangeImageCrossSectionTool object. Destruct this Cog3DRangeImageCrossSectionTool object. Construct a deep copy of the supplied Cog3DRangeImageCrossSectionTool object. The Cog3DRangeImageCrossSectionTool object to be copied. May not be null. If the input argument is null. Construct a default Cog3DRangeImageCrossSectionTool object. NextSf state flag. This bit will be set in the EventArgs of a Changed event every time the value returned by RunParams may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by InputImage may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by CurrentRecordEnable may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by LastRunRecordDiagEnable may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by LastRunRecordEnable may have changed. The Cross Section tool allows you to take a thin slice of the part in the range image, look at it from the side, make measurements and apply tolerances. The highlights of the Cross Section tool: The tool allows a user to specify a region in the X-Y plane of the range image to create the vertical profile. The vertical profile lies parallel to the z-axis of the range image. To make measurements within the profile, we establish a family of coordinate spaces that lie within the cutting plane. The profile coordinate spaces are 2D x-y coordinate spaces, glued to the profile, typically expressed in physical units (e.g. millimeters). The tool provides a user with a set of operators to extract features from the profile such as corners or line segments, compute features using other features such as midpoints or line intersections and perform measurements on the features. For example, you can measure the angle between 2 line segments or the distance between 2 points. Optionally perform tolerance checking on all geometry data. Serialization constructor for Cog3DRangeImageCrossSectionRunParams object. The standard SerializationInfo argument. The standard StreamingContext argument. Execute the ProfileParams.Execute() and OperatorsParams.Execute(). The outputs of the execute are: the OutputProfileThe OperatorsParams.Status, the overall status of executing all the operators The operators' results If the image is null If the image is not a CogImage16Range If the ProfileParams is null If the OperatorsParams is null If the InputProfile is null and UseInputProfile is set to true. If the OutputProfile produced by the ProfileParams is null. If licensing for this class cannot be confirmed. Gets or sets the OperatorsParams. Fires when the value of this property changes. SfOperatorsParams If the value is null. Gets or sets the ProfileParams. Fires when the value of this property changes. SfProfileParams If the value is null. Gets or sets the InputProfile. The InputProfile will not be used by the tool unless the UseInputProfile is set to true. Fires when the value of this property changes. SfInputProfile Gets the OutputProfile produced by the execute method. The OutputProfile cannot be set by the user. Fires when the value of this property changes. SfOutputProfile Gets or sets the UseInputProfile. If True, use the InputProfile attached to the RunParams. Default value is false. Fires when the value of this property changes. SfUseInputProfile Finalize this Cog3DRangeImageCrossSectionRunParams. Destruct this Cog3DRangeImageCrossSectionRunParams. Construct a deep copy of the supplied Cog3DRangeImageCrossSectionRunParams object. The Cog3DRangeImageCrossSectionRunParams object to be copied. May not be null. If the supplied argument is null. Construct a default Cog3DRangeImageCrossSectionRunParams object. NextSf state flag. This bit will be set in the EventArgs of a Changed event every time the value returned by OutputProfile may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by UseInputProfile may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by InputProfile may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by OperatorsParams may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by ProfileParams may have changed. This class is the RunParams class of the cross section tool. The Cross Section tool has 2 parts: one to create the profile and the other to run the operators. This class provides a central location for executing both parts. The first part can be skipped if the user passes in the profile. Serialization constructor for Cog3DRangeImageCrossSectionDistancePointLine object. The standard SerializationInfo argument. The standard StreamingContext argument. Computes the distance between the point and the line segment. The distance is computed in the profile selected space name. If licensing for this class cannot be confirmed. If the operator is not in a collection. Fires when this method is called. The following state flag may be affected: SfStatus SfDistance The status returned can be one of the following: The distance was computed successfully and passed any enabled tolerance checking. Passed The distance was computed successfully but failed tolerance checking FailedTolerance The point and/or the line segment were/was not found at run time InputFeatureMissing Clear the results' properties of this class. Fires when this method is called. The following state flag may be affected: SfDistance Create the graphics and add them to the graphicCollection provided. A constructed CogGraphicCollection. If lastRun is true, do not include the input graphics. The input graphics are the regions of input features. The output graphic is a line segment representing the distance. Sets the name of the operators producing LineSegment and Point. The Cog3DRangeImageCrossSectionOperatorsParams collection that holds the operators. The operator object producing LineSegment. The operator object producing pointOp. Fires when this method is called. The following state flag may be affected: SfLineSegment SfPoint This is a convenience setter for programmatic users to specify the line segment and the point using the operators' objects. The operators are not held internally, they are used to extract the internal unique ids of the operators. The ids are used by this operator at run time. The method can be called before the operator is added to the collection. If lineSegOp and/or pointOp were not found in the parentCollection provided. If the parentCollection in null. Gets the distance computed by the execute method. Always check the status of the operator to be either Passed or FailedTolerance before calling the getter. The measured distance is in the profile selected space name. If the distance was not computed. Gets or sets NearestType. Fires when this property changes. The following state flag may be affected: SfNearestType Specifies whether or not to treat a line segment as an infinite line when determining the point "on" the segment that is nearest to a given point. The value is invalid. Gets or sets the name of the operator producing LineSegment. Fires when this property changes. The following state flag may be affected: SfLineSegment The property is a link between the operator producing the line segment and this operator, and therefore requires that all operators are added to the collection before it can be called. The name of the operator is not held internally. It is used to extract the internal unique id of the operator within the collection. If the operator is not in a collection. If the name of the operator producing LineSegment is not found in the collection. Gets or sets the name of the operator producing Point. Fires when this property changes. The following state flag may be affected: SfPoint The property is a link between the operator producing the point and this operator, and therefore requires that all operators are added to the collection before it can be called. The name of the operator is not held internally. It is used to extract the internal unique id of the operator within the collection. If the operator is not in a collection. If the name of the operator producing Point is not found in the collection. Gets the tolerance object for the distance. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Finalize this Cog3DRangeImageCrossSectionDistancePointLine. Destruct this Cog3DRangeImageCrossSectionDistancePointLine. Construct a deep copy of the supplied Cog3DRangeImageCrossSectionDistancePointLine object. The Cog3DRangeImageCrossSectionDistancePointLine object to be copied. If the supplied argument is null. The copy constructor is meant to be used with the collection copy constructor. The and properties refer to internal ids within the operators collection and their values are meaningless outside a collection. Construct a default Cog3DRangeImageCrossSectionDistancePointLine object. NextSf state flag. This bit will be set in the EventArgs of a Changed event every time the value returned by Distance may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by NearestType may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by LineSegment may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Point may have changed. The class to compute the shortest distance between a point and a line that extends from the line segment or the shortest distance between a point and the line segment. This operator must be added to the operators collection before it is configured. The and properties hold the internal ids of the operators producing the features, and these operators must also be in the operators collection. Serialization constructor for Cog3DRangeImageCrossSectionNearestPoint object. The standard SerializationInfo argument. The standard StreamingContext argument. Computes the nearest point. The nearest point is computed in the profile selected space name. If licensing for this class cannot be confirmed. If the operator is not in a collection. The parent is null. Fires when this method is called. The following state flag may be affected: SfStatus SfNearestPoint SfNearestPointInImage SfNearestPointInImage3D The status returned can be one of the following: The nearest point was computed successfully and passed any enabled tolerance checking. Passed The nearest point was computed successfully but failed tolerance checking FailedTolerance The point and/or the line was/were not found at run time InputFeatureMissing Clear the results' properties of this class. Fires when this method is called. The following state flag may be affected: SfStatus SfNearestPoint SfNearestPointInImage SfNearestPointInImage3D Create the graphics and add them to the graphicCollection provided. A constructed CogGraphicCollection. If lastRun is true, do not include the input graphics. The input graphics are the regions of input features. The output graphic is a point. Sets the name of the operators producing LineSegment and Point. The Cog3DRangeImageCrossSectionOperatorsParams collection that holds the operators. The operator object producing LineSegment. The operator object producing pointOp. Fires when this method is called. The following state flag may be affected: SfLineSegment SfPoint This is a convenience setter for programmatic users to specify the line segment and the point using the operators' objects. The operators are not held internally, they are used to extract the internal unique ids of the operators. The ids are used by this operator at run time. The method can be called before the operator is added to the collection. If lineSegOp and/or pointOp were not found in the parentCollection provided. If the parentCollection in null. Gets the nearest point found by the execute method. Always check the status of the operator to be either Passed or FailedTolerance before calling the getter. The point is in the SelectedSpaceName3D of the range image stored in the profile. If the nearest point was not computed. The Cog3DVect3 is a ValueType and cannot return a null. Gets the nearest point found by the execute method. The point is in the SelectedSpaceName of the range image stored in the profile. Returns null if the point was not computed. Gets the nearest point found by the execute method. The point is in the ProfileSelectedSpaceName. Returns null if the point was not computed. Gets or sets NearestType. Fires when this property changes. The following state flag may be affected: SfNearestType Specifies whether or not to treat a line segment as an infinite line when determining the point "on" the segment that is nearest to a given point. The value is invalid. Gets or sets the name of the operator producing Point. Fires when this property changes. The following state flag may be affected: SfPoint The property is a link between the operator producing the point and this operator, and therefore requires that all operators are added to the collection before it can be called. The name of the operator is not held internally. It is used to extract the internal unique id of the operator within the collection. If the operator is not in a collection. If the name of the operator producing Point is not found in the collection. Gets or sets the name of the operator producing LineSegment. Fires when this property changes. The following state flag may be affected: SfLineSegment The property is a link between the operator producing the line segment and this operator, and therefore requires that all operators are added to the collection before it can be called. The name of the operator is not held internally. It is used to extract the internal unique id of the operator within the collection. If the operator is not in a collection. If the name of the operator producing LineSegment is not found in the collection. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the Y position. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the X position. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Finalize this Cog3DRangeImageCrossSectionNearestPoint. Destruct this Cog3DRangeImageCrossSectionNearestPoint. Construct a deep copy of the supplied Cog3DRangeImageCrossSectionNearestPoint object. The Cog3DRangeImageCrossSectionNearestPoint object to be copied. If the supplied argument is null. The copy constructor is meant to be used with the collection copy constructor. The and properties refer to internal ids within the operators collection and their values are meaningless outside a collection. Construct a default Cog3DRangeImageCrossSectionNearestPoint object. NextSf state flag. This bit will be set in the EventArgs of a Changed event every time the value returned by NearestPointInImage3D may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by NearestPointInImage may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by NearestPoint may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by NearestType may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by LineSegment may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Point may have changed. The class to compute the nearest point on a line segment or the nearest point on a line that extends from the line segment. This operator must be added to the operators collection before it is configured. The and properties hold the internal ids of the operators producing the features, and these operators must also be in the operators collection. Serialization constructor for Cog3DRangeImageCrossSectionDistancePointPoint object. The standard SerializationInfo argument. The standard StreamingContext argument. Computes the distance between tow points. The distance is computed in the profile selected space name. If licensing for this class cannot be confirmed. If the operator is not in a collection. Fires when this method is called. The following state flag may be affected: SfStatus SfDistance The status returned can be one of the following: The distance was computed successfully and passed any enabled tolerance checking. Passed The distance was computed successfully but failed tolerance checking FailedTolerance The point and/or the line segment were/was not found at run time InputFeatureMissing Clear the results' properties of this class. Fires when this method is called. The following state flag may be affected: SfDistance Create the graphics and add them to the graphicCollection provided. A constructed CogGraphicCollection. If lastRun is true, do not include the input graphics. The input graphics are the regions of input features. The output graphic is a line segment representing the distance. Sets the name of the operators producing Point1 and Point2. The Cog3DRangeImageCrossSectionOperatorsParams object that holds the operators. The operator object producing Point1. The operator object producing Point2. Fires when this method is called. The following state flag may be affected: SfPoint1 SfPoint2 This is a convenience setter for programmatic users to set the points using the operators' objects. The operators are not held internally, they are used to extract the internal unique index of the operators. The indices are used by this operator at run time. The method can be called before the operator is added to the collection. If operator1 and/or operator2 were not found in the parentCollection provided. If the operator is not in the parentCollection. Gets the distance computed by the execute method. Always check the status of the operator to be either Passed or FailedTolerance before calling the getter. The measured distance is in the profile selected space name. If the distance was not computed. Gets or sets DistanceType. Fires when this property changes. The following state flag may be affected: SfDistanceType To compute the distance between 2 points, the user can select the euclidean distance, the distance in X or the distance in Y. All of the measurements are in profile selected space name. The distance in X is the width between the 2 points. The distance in Y is the height between the 2 points. The value is invalid. Gets or sets the name of the operator producing Point2. Fires when this property changes. The following state flag may be affected: SfPoint2 The property is a link between the operator producing the point and this operator, and therefore requires that all operators are added to the collection before it can be called. The name of the operator is not held internally. It is used to extract the internal unique id of the operator within the collection. If the operator is not in a collection. If the name of the operator producing Poin2t is not found in the collection. Gets or sets the name of the operator producing Point1. Fires when this property changes. The following state flag may be affected: SfPoint1 The property is a link between the operator producing the point and this operator, and therefore requires that all operators are added to the collection before it can be called. The name of the operator is not held internally. It is used to extract the internal unique id of the operator within the collection. If the operator is not in a collection. If the name of the operator producing Point1 is not found in the collection. Gets the tolerance object for the distance. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Finalize this Cog3DRangeImageCrossSectionDistancePointLine. Destruct this Cog3DRangeImageCrossSectionDistancePointPoint. Construct a deep copy of the supplied Cog3DRangeImageCrossSectionDistancePointPoint object. The Cog3DRangeImageCrossSectionDistancePointPoint object to be copied. If the supplied argument is null. The copy constructor is meant to be used with the collection copy constructor. The and properties refer to internal ids within the operators collection and their values are meaningless outside a collection. Construct a default Cog3DRangeImageCrossSectionDistancePointPoint object. NextSf state flag. This bit will be set in the EventArgs of a Changed event every time the value returned by Distance may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by DistanceType may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Point2 may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Point1 may have changed. The operator class to compute the distance between 2 points. This operator must be added to the operators collection before it is configured. The and properties hold the internal ids of the operators producing the features, and these operators must also be in the operators collection. Serialization constructor for Cog3DRangeImageCrossSectionLineSegmentPointPoint object. The standard SerializationInfo argument. The standard StreamingContext argument. Computes the line segment using 2 points. The line segment is computed in the profile selected space name. If licensing for this class cannot be confirmed. If the operator is not in a collection. Fires when this method is called. The following state flag may be affected: SfStatus SfLineSegment SfLineSegmentInImage SfLineSegmentInImage3D The status returned can be one of the following: The line segment was computed successfully and passed any enabled tolerance checking. Passed The line segment was computed successfully but failed tolerance checking FailedTolerance The point(s) was/were not found at run time InputFeatureMissing Clear the results' properties of this class. Fires when this method is called. The following state flag may be affected: SfStatus SfLineSegment SfLineSegmentInImage SfLineSegmentInImage3D Create the graphics and add them to the graphicCollection provided. The constructed CogGraphicCollection. If lastRun is true, do not include the input graphics. The input graphics are the regions of input features. The output graphic is the line segment. Sets the name of the operators producing Point1 and Point2. The Cog3DRangeImageCrossSectionOperatorsParams object that holds the operators. The operator object producing Point1. The operator object producing Point2. Fires when this method is called. The following state flag may be affected: SfPoint1 SfPoint2 This is a convenience setter for programmatic users to set the points using the operators' objects. The operators are not held internally, they are used to extract the internal unique index of the operators. The indices are used by this operator at run time. The method can be called before the operator is added to the collection. If operator1 and/or operator2 were not found in the parentCollection provided. If the operator is not in the parentCollection. Gets the line segment computed by the execute method. The line segment is in the SelectedSpaceName3D of the range image stored in the profile. Returns null if the line segment was not computed. Gets the line segment computed by the execute method. The line segment is in the SelectedSpaceName of the range image stored in the profile. Returns null if the line segment was not computed. Gets the line segment computed by the execute method. Always check the status of the operator to be either Passed or FailedTolerance before calling the getter. The line segment is in the ProfileSelectedSpaceName. Returns null if the line segment was not computed. If the line segment was not computed. Gets or sets the name of the operator producing Point2. Fires when this property changes. The following state flag may be affected: SfPoint2 The property is a link between the operator producing the point and this operator, and therefore requires that all operators are added to the collection before it can be called. The name of the operator is not held internally. It is used to extract the internal unique id of the operator within the collection. If the operator is not in a collection. If the name of the operator producing Poin2t is not found in the collection. Gets or sets the name of the operator producing Point1. Fires when this property changes. The following state flag may be affected: SfPoint1 The property is a link between the operator producing the point and this operator, and therefore requires that all operators are added to the collection before it can be called. The name of the operator is not held internally. It is used to extract the internal unique id of the operator within the collection. If the operator is not in a collection. If the name of the operator producing Point1 is not found in the collection. Gets the tolerance object for the angle. The and values are specified in radians. If the property is set to true, the tolerance check will be performed at run time. Finalize this Cog3DRangeImageCrossSectionLineSegmentPointPoint. Destruct this Cog3DRangeImageCrossSectionLineSegmentPointPoint. Construct a deep copy of the supplied Cog3DRangeImageCrossSectionLineSegmentPointPoint object. The Cog3DRangeImageCrossSectionLineSegmentPointPoint object to be copied. If the supplied argument is null. The copy constructor is meant to be used with the collection copy constructor. The and properties refer to internal ids within the operators collection and their values are meaningless outside a collection. Construct a default Cog3DRangeImageCrossSectionLineSegmentPointPoint object. NextSf state flag. This bit will be set in the EventArgs of a Changed event every time the value returned by LineSegmentInImage3D may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by LineSegmentInImage may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by LineSegment may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Point2 may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Point1 may have changed. The class computes a line segment using 2 points. This operator must be added to the operators collection before it is configured. The and properties hold the internal ids of the operators producing the points, and these operators must also be in the operators collection. Serialization constructor for Cog3DRangeImageCrossSectionMidpointPointPoint object. The standard SerializationInfo argument. The standard StreamingContext argument. Computes the midpoint between 2 points. The midpoint is computed in the profile selected space name. If licensing for this class cannot be confirmed. If the operator is not in a collection. The parent is null. Fires when this property changes. The following state flag may be affected: SfStatus SfMidpoint SfMidpointInImage SfMidpointInImage3D The status returned can be one of the following: The midpoint was computed successfully and passed any enabled tolerance checking. Passed The midpoint was computed successfully but failed tolerance checking FailedTolerance The point(s) was/were not found in the collection at run time. InputFeatureMissing Clear the results' properties of this class. Fires when this property changes. The following state flag may be affected: Status Midpoint MidpointInImage MidpointInImage3D Create the graphics and add them to the graphicCollection provided. A constructed CogGraphicCollection. If lastRun is true, do not include the input graphics. The input graphics are the regions of the input points. The output graphic is the point graphic. Sets the name of the operators producing Point1 and Point2. The Cog3DRangeImageCrossSectionOperatorsParams object that holds the operators. The operator object producing Point1. The operator object producing Point2. Fires when this property changes. The following state flag may be affected: SfPoint1 SfPoint2 This is a convenience setter for programmatic users to set the points using the operators' object. The operators are not held internally, they are used to extract the internal unique index of the operators. The indices are used by this operator at run time. The method can be called before the operator is added to the collection. If operator1 and/or operator2 were not found in the parentCollection provided. If the operator is not in the parentCollection. Gets the midpoint found by the execute method. Always check the status of the operator to be either Passed or FailedTolerance before calling the getter. The point is in the SelectedSpaceName3D of the range image stored in the profile. If the midpoint was not computed. The Cog3DVect3 is a ValueType and cannot return a null. Gets the midpoint found by the execute method. The point is in the SelectedSpaceName of the range image stored in the profile. Returns null if the point was not computed. Gets the point computed by the execute method. The point is in the ProfileSelectedSpaceName. Returns null if the point was not computed. Gets or sets the name of the operator producing Point2. Fires when this property changes. The following state flag may be affected: SfPoint2 The property is a link between the operator producing the point and this operator, and therefore requires that all operators are added to the collection before it can be called. The name of the operator is not held internally. It is used to extract the internal unique id of the operator within the collection. If the operator is not in a collection. If the name of the operator producing Poin2 is not found in the collection. Gets or sets the name of the operator producing Point1. Fires when this property changes. The following state flag may be affected: SfPoint1 The property is a link between the operator producing the point and this operator, and therefore requires that all operators are added to the collection before it can be called. The name of the operator is not held internally. It is used to extract the internal unique id of the operator within the collection. If the operator is not in a collection. If the name of the operator producing Point1 is not found in the collection. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the Y position. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the X position. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Finalize this Cog3DRangeImageCrossSectionMidpointPointPoint. Destruct this Cog3DRangeImageCrossSectionMidpointPointPoint. Construct a deep copy of the supplied Cog3DRangeImageCrossSectionMidpointPointPoint object. The Cog3DRangeImageCrossSectionMidpointPointPoint object to be copied. If the supplied argument is null. The copy constructor is meant to be used with the collection copy constructor. The and properties refer to internal ids within the operators collection and their values are meaningless outside a collection. Construct a default Cog3DRangeImageCrossSectionMidpointPointPoint object. NextSf state flag. This bit will be set in the EventArgs of a Changed event every time the value returned by MidpointInRangeImage3D may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by MidpointInRangeImage may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Midpoint may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Point2 may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Point1 may have changed. The class to compute the midpoint between two points. This operator must be added to the operators collection before it is configured. The and properties hold the internal ids of the operators producing the features, and these operators must also be in the operators collection. Serialization constructor for Cog3DRangeImageCrossSectionPointLineSegment object. The standard SerializationInfo argument. The standard StreamingContext argument. Returns the point on the line segment. The point is computed in the profile selected space name. If licensing for this class cannot be confirmed. If the operator is not in a collection. Fires when this method is called. The following state flag may be affected: SfStatus SfPoint SfPointInImage SfPointInImage3D The status returned can be one of the following: The point was computed successfully and passed any enabled tolerance checking. Passed The point was computed successfully but failed tolerance checking. FailedTolerance The operator failed. FailedToCompute The line segment was not found in the collection at run time. InputFeatureMissing Clear the results' properties of this class. Fires when this method is called. The following state flag may be affected: SfStatus SfPoint SfPointInImage SfPointInImage3D Create the graphics and add them to the graphicCollection provided. A constructed CogGraphicCollection. If lastRun is true, do not include the input graphics. The input graphics are the regions of extracted line segment. The output graphic is the point graphic. Sets the name of the operator producing LineSegment. The Cog3DRangeImageCrossSectionOperatorsParams collection that holds the line segment operator. The operator object producing LineSegment. Fires when this method is called. The following state flag may be affected: SfLineSegment This is a convenience setter for programmatic users to specify the line segment using the operator's object. The operator is not held internally, it is used to extract the internal unique id of the operator. The id is used by this operator at run time. The method can be called before the operator is added to the collection. If operator is not found in the parentCollection provided. If the parentCollection in null. Gets the point computed by the execute method. Always check the status of the operator to be either Passed or FailedTolerance before calling the getter. The point is in the SelectedSpaceName3D of the range image stored in the profile. If the point was not computed. The Cog3DVect3 is a ValueType and cannot return a null. Gets the point computed by the execute method. The point is in the SelectedSpaceName of the range image stored in the profile. Returns null if the point was not computed. Gets the point computed by the execute method. The point is in the ProfileSelectedSpaceName. Returns null if the point was not computed. Gets or sets the LineSegmentPoint. Fires when this property changes. The following state flag may be affected: SfLineSegmentPoint If the value is invalid. Specifies which point on the line segment to return. Gets or sets the name of the operator producing LineSegment. Fires when this property changes. The following state flag may be affected: SfLineSegment The property is a link between the operator producing the line segment and this operator, and therefore requires that all operators are added to the collection before it can be called. The name of the operator is not held internally. It is used to extract the internal unique id of the operator within the collection. If the operator is not in a collection. If the name of the operator producing LineSegment is not found in the collection. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the Y position. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the X position. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Finalize this Cog3DRangeImageCrossSectionPointLineSegment. Destruct this Cog3DRangeImageCrossSectionPointLineSegment. Construct a deep copy of the supplied Cog3DRangeImageCrossSectionPointLineSegment object. The Cog3DRangeImageCrossSectionPointLineSegment object to be copied. If the supplied argument is null. The copy constructor is meant to be used with the collection copy constructor. The property refer to internal id within the operators collection and its value is meaningless outside a collection. Construct a default Cog3DRangeImageCrossSectionPointLineSegment object. NextSf state flag. This bit will be set in the EventArgs of a Changed event every time the value returned by PointInImage3D may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by PointInImage may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Point may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by LineSegmentPoint may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by LineSegment may have changed. The class to return a point on a line segment. This operator must be added to the operators collection before it is configured. The property hold the internal id of the operator producing the line segment, and the operator must also be in the operators collection. Serialization constructor for Cog3DRangeImageCrossSectionAngleLineLine object. The standard SerializationInfo argument. The standard StreamingContext argument. Computes the angle between the lines that extend from the two line segments. The angle is computed in the profile selected space name. If licensing for this class cannot be confirmed. If the operator is not in a collection. Fires when this method is called. The following state flag may be affected: SfStatus SfAngle The status returned can be one of the following: The angle was computed successfully and passed any enabled tolerance checking. Passed The angle was computed successfully but failed tolerance checking. FailedTolerance The operator failed. FailedToMeasure The line segment(s) was/were not found in the collection at run time. InputFeatureMissing Create the graphics and add them to the graphicCollection provided.. A constructed CogGraphicCollection. If lastRun is true, do not include the input graphics. The input graphics are the regions of extracted line segments. The output graphics are the angle graphics. Clear the results' properties of this class. Fires when this method is called. The following state flag may be affected: SfAngle Sets the name of the operators producing LineSegment1 and LineSegment2. The Cog3DRangeImageCrossSectionOperatorsParams collection that holds the line segments' operators. The operator object producing LineSegment1. The operator object producing LineSegment2. Fires when this method is called. The following state flag may be affected: SfLineSegment1 SfLineSegment2 This is a convenience setter for programmatic users to specify the line segments using the operators' objects. The operators are not held internally, they are used to extract the internal unique ids of the operators. The ids are used by this operator at run time. The method can be called before the operator is added to the collection. If operator1 and/or operator2 were/was not found in the parentCollection provided. If the parentCollection in null. Gets the angle computed by the execute method. Always check the status of the operator to be either Passed or FailedTolerance before calling the getter. The angle is measured from LineSegment1 to LineSegment2. If SupplementaryAngle is true, the angle is measured from -LineSegment2 to LineSegment1. The measured angle is in the profile selected space name and it is reported in radians. If the angle was not computed. Gets or sets the name of the operator producing LineSegment2. Fires when this property changes. The following state flag may be affected: SfLineSegment2 The property is a link between the operator producing the line segment and this operator, and therefore requires that all operators are added to the collection before it can be called. The name of the operator is not held internally. It is used to extract the internal unique id of the operator within the collection. If the operator is not in a collection. If the name of the operator producing LineSegment2 is not found in the collection. Gets or sets the name of the operator producing LineSegment1. Fires when this property changes. The following state flag may be affected: SfLineSegment1 The property is a link between the operator producing the line segment and this operator, and therefore requires that all operators are added to the collection before it can be called. The name of the operator is not held internally. It is used to extract the internal unique id of the operator within the collection. If the operator is not in a collection. If the name of the operator producing LineSegment1 is not found in the collection. Gets or sets the SupplementaryAngle. Fires when this property changes. The following state flag may be affected: SfSupplementaryAngle If true, the angle returned is the supplementary angle. The SupplementaryAngle is measured from -LineSegment2 to LineSegment1. Gets the tolerance object for the angle. The and values are specified in radians. If the property is set to true, the tolerance check will be performed at run time. Finalize this Cog3DRangeImageCrossSectionAngleLineLine. Destruct this Cog3DRangeImageCrossSectionAngleLineLine. Construct a deep copy of the supplied Cog3DRangeImageCrossSectionAngleLineLine object. The Cog3DRangeImageCrossSectionAngleLineLine object to be copied. If the supplied argument is null. The copy constructor is meant to be used with the collection copy constructor. The and properties refer to internal ids within the operators collection and their values are meaningless outside a collection. Construct a default Cog3DRangeImageCrossSectionAngleLineLine object. NextSf state flag. This bit will be set in the EventArgs of a Changed event every time the value returned by Angle may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by SupplementaryAngle may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by LineSegment2 may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by LineSegment1 may have changed. The class to compute the angle between the lines that extend from the two line segments. This operator must be added to the operators collection before it is configured. The and properties hold the internal ids of the operators producing the line segments, and these operators must also be in the operators collection. The angle is measured from to . Serialization constructor for Cog3DRangeImageCrossSectionIntersectLineLine object. The standard SerializationInfo argument. The standard StreamingContext argument. Computes the intersect point. The intersect point is computed in the profile selected space name. If licensing for this class cannot be confirmed. If the operator is not in a collection. Fires when this method is called. The following state flag may be affected: SfStatus SfIntersectPoint SfIntersectPointInImage SfIntersectPointInImage3D The status returned can be one of the following: The intersect point was computed successfully and passed any enabled tolerance checking. Passed The intersect point was computed successfully but failed tolerance checking FailedTolerance The line segment(s) was/were not found in the collection at run time. InputFeatureMissing Clear the results' properties of this class. Fires when this method is called. The following state flag may be affected: SfStatus SfIntersectPoint SfIntersectPointInImage SfIntersectPointInImage3D Create the graphics and add them to the graphicCollection provided. A constructed CogGraphicCollection. If lastRun is true, do not include the input graphics. The input graphics are the regions of extracted line segment. The output graphic is the point graphic. Sets the name of the operator producing LineSegment1 and LineSegment2. The Cog3DRangeImageCrossSectionOperatorsParams collection that holds the line segment operator. The operator object producing LineSegment. The operator object producing LineSegment. Fires when this method is called. The following state flag may be affected: SfLineSegment This is a convenience setter for programmatic users to specify the line segments using the operators' objects. The operators are not held internally, they are used to extract the internal unique ids of the operators. The ids are used by this operator at run time. The method can be called before the operator is added to the collection. If operator is not found in the parentCollection provided. If the parentCollection in null. Gets the point computed by the execute method. Always check the status of the operator to be either Passed or FailedTolerance before calling the getter. The point is in the SelectedSpaceName3D of the range image stored in the profile. If the point was not computed. The Cog3DVect3 is a ValueType and cannot return a null. Gets the point computed by the execute method. The point is in the SelectedSpaceName of the range image stored in the profile. Returns null if the point was not computed. Gets the point computed by the execute method. Always check the status of the operator to be either Passed or FailedTolerance before calling the getter. The point is in the ProfileSelectedSpaceName. Returns null if the point was not computed. Gets or sets the name of the operator producing LineSegment2. Fires when this property changes. The following state flag may be affected: SfLineSegment2 The property is a link between the operator producing the line segment and this operator, and therefore requires that all operators are added to the collection before it can be called. The name of the operator is not held internally. It is used to extract the internal unique id of the operator within the collection. If the operator is not in a collection. If the name of the operator producing LineSegment2 is not found in the collection. Gets or sets the name of the operator producing LineSegment1. Fires when this property changes. The following state flag may be affected: SfLineSegment1 The property is a link between the operator producing the line segment and this operator, and therefore requires that all operators are added to the collection before it can be called. The name of the operator is not held internally. It is used to extract the internal unique id of the operator within the collection. If the operator is not in a collection. If the name of the operator producing LineSegment1 is not found in the collection. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the Y position. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the X position. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Finalize this Cog3DRangeImageCrossSectionIntersectLineLine. Destruct this Cog3DRangeImageCrossSectionIntersectLineLine. Construct a deep copy of the supplied Cog3DRangeImageCrossSectionIntersectLineLine object. The Cog3DRangeImageCrossSectionIntersectLineLine object to be copied. If the supplied argument is null. The copy constructor is meant to be used with the collection copy constructor. The and properties refer to internal ids within the operators collection and their values are meaningless outside a collection. Construct a default Cog3DRangeImageCrossSectionIntersectLineLine object. NextSf state flag. This bit will be set in the EventArgs of a Changed event every time the value returned by IntersectPointInImage3D may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by IntersectPointInImage may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by IntersectPoint may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by LineSegment2 may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by LineSegment1 may have changed. The class to compute the intersect point between the lines that extend from the two line segments. This operator must be added to the operators collection before it is configured. The and properties hold the internal ids of the operators producing the line segments, and these operators must also be in the operators collection. Serialization constructor for Cog3DRangeImageCrossSectionExtractCorner object. The standard SerializationInfo argument. The standard StreamingContext argument. Returns the number of corners found within the regions. Fires when this property changes. The following state flag may be affected: SfNumCorners Extracts a corner. The corner is extracted and reported in the profile selected space name. If licensing for this class cannot be confirmed. If the regions selected space name was not found in the profile space tree. Fires when this property changes. The following state flag may be affected: SfStatus SfCorner SfCornerInImage SfCornerInImage3D The status returned can be one of the following: The corner was extracted successfully and passed any enabled tolerance checking. Passed The corner was extracted successfully but failed tolerance checking FailedTolerance The corner was not extracted because not enough points were found to extract the corner, the corner was below the sharpness threshold or the corner index is outside the range. FeatureNoExtracted Clear the results' properties of this class. Fires when this property changes. The following state flag may be affected: SfCorner SfCornerInImage SfCornerInImage3D Create the graphics and add them to the graphicCollection provided. A constructed CogGraphicCollection. If lastRun is true, do not include the input graphics. The input graphics are the regions of extracted line segment. The output graphic is the point graphic. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the Y position. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the X position. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the corner extracted by the execute method. Always check the status of the operator to be either Passed or FailedTolerance before calling the getter. The corner position is in the SelectedSpaceName3D of the range image stored in the profile. If the corner was not computed. The Cog3DVect3 is a ValueType and cannot return a null. Gets the corner extracted by the execute method. The corner position is in the SelectedSpaceName of the range image stored in the profile. Returns null if the corner was not extracted. Gets the corner extracted by the execute method. Always check the status of the operator to be either Passed or FailedTolerance before calling the getter. The corner position is in the ProfileSelectedSpaceName. The corner returned is the corner specified by the cornerIndex property. Returns null if the corner was not extracted. Gets or sets the CornerIndex. Fires when this property changes. The following state flag may be affected: SfCornerIndex The corner with the specified index to be returned as the found corner. If more than one corner are found, the corners are sorted first and then the corner with the index specified is returned. If the value is less than 0; Gets or sets the FilterHalfSizeInPixels. Fires when this property changes. The following state flag may be affected: SfFilterHalfSizeInPixels This field holds the half-length of the filter. The actual filter length is 1+2*(FilterHalfSizeInPixels). If the value is less than 1; Gets or sets the SortDirectionAngle. The default is 0. Fires when this property changes. The following state flag may be affected: SfSortDirectionAngle The field specifies the direction along which the SortType is applied to. Gets or sets the SharpnessThreshold. Fires when this property changes. The following state flag may be affected: SfSharpnessThreshold If the value is less than 0 or greater than 65535 The sharpness threshold is the minimum value of the sharpness needed for the profile point to be treated as corner. Gets or sets the SortType. Specifies how to sort the corners before finding the one specified by the order number. Fires when this property changes. The following state flag may be affected: SfSortType If the value is invalid. Gets or sets the corner polarity. Specifies the sign of the sharpness of the corner in the profile. Fires when this property changes. The following state flag may be affected: SfPolarity If the value is invalid. Finalize this Cog3DRangeImageCrossSectionExtractCorner. Destruct this Cog3DRangeImageCrossSectionExtractCorner. Construct a deep copy of the supplied Cog3DRangeImageCrossSectionExtractCorner object. The Cog3DRangeImageCrossSectionExtractCorner object to be copied. If the supplied argument is null. Construct a default Cog3DRangeImageCrossSectionExtractCorner object. NextSf state flag. This bit will be set in the EventArgs of a Changed event every time the value returned by NumCorners may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by CornerInImage3D may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by CornerInImage may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Corner may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by SharpnessThershold may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by FilterHalfSizeInPixels may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by CornerIndex may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by SortDirectionAngle may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by SortType may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Polarity may have changed. The class to extract a corner from profile points that are within the regions. This operator holds a collection of regions. There must be always one region in the collection. The user may add and delete any region as long as the count does not dip below 1. Serialization constructor for Cog3DRangeImageCrossSectionExtractPoint object. The standard SerializationInfo argument. The standard StreamingContext argument. Extracts a point. The point is extracted and reported in the profile selected space name. If licensing for this class cannot be confirmed. If the regions selected space name was not found in the profile space tree. Fires when this method is called. The following state flag may be affected: SfStatus SfPoint SfPointInImage SfPointInImage3D The status returned can be one of the following: The point was extracted successfully and passed any enabled tolerance checking. Passed The point was extracted successfully but failed tolerance checking FailedTolerance The point was not extracted. FeatureNoExtracted Clear the results' properties of this class. Fires when this method is called. The following state flag may be affected: SfPoint SfPointInImage SfPointInImage3D Create the graphics and add them to the graphicCollection provided. A constructed CogGraphicCollection. If lastRun is true, do not include the input graphics. The input graphics are the regions. The output graphic is the point graphic. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the Y position. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the X position. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the point extracted by the execute method. Always check the status of the operator to be either Passed or FailedTolerance before calling the getter. The point is in the SelectedSpaceName3D of the range image stored in the profile. If the corner was not computed. The Cog3DVect3 is a ValueType and cannot return a null. Gets the point extracted by the execute method. The point is in the SelectedSpaceName of the range image stored in the profile. Returns null if the point was not computed. Gets the point extracted by the execute method. The point is in the ProfileSelectedSpaceName. Returns null if the point was not computed. Sets the name of the operator producing LineSegment. The Cog3DRangeImageCrossSectionOperatorsParams collection that holds the line segment operator. The operator object producing LineSegment. Fires when this method is called. The following state flag may be affected: SfLineSegment This is a convenience setter for programmatic users to specify the line segment using the operator's object. The operator is not held internally, it is used to extract the internal unique id of the operator. The id is used by this operator at run time. The method can be called before the operator is added to the collection. If operator is not found in the parentCollection provided. If the parentCollection in null. Gets or sets the direction of the point extraction relative to the line segment. The value of this property will be used only if is set to Fires when this property changes. The following state flag may be affected: SfDirectionRelativeToLineSegment If the value is invalid. Gets or sets the name of the operator producing LineSegment. The value of this property will be used only if is set to Fires when this property changes. The following state flag may be affected: SfLineSegment The property is a link between the operator producing the line segment and this operator, and therefore requires that all operators are added to the collection before it can be called. The name of the operator is not held internally. It is used to extract the internal unique id of the operator within the collection. If the operator is not in a collection. If the name of the operator producing LineSegment is not found in the collection. Gets or sets the selected space of the . The value of this property will be used only if is set to Fires when this property changes. The following state flag may be affected: SfAngleSelectedSpace If the value is invalid. Gets or sets the Angle in radians from the X-axis. The X-axis is either in profile default space or profile selected space based on the value of The value of this property will be used only if is set to Fires when this property changes. The following state flag may be affected: SfAngle Gets or sets the how the direction of the point extraction will be specified. Fires when this property changes. The following state flag may be affected: SfDirectionSelectionMode If the value is invalid. Gets or sets the point type. Specifies the point to extract. The value of this property will be used only if is set to Fires when this property changes. The following state flag may be affected: SfPointType If the value is invalid. Finalize this Cog3DRangeImageCrossSectionExtractPoint. Destruct this Cog3DRangeImageCrossSectionExtractPoint. Construct a deep copy of the supplied Cog3DRangeImageCrossSectionExtractPoint object. The Cog3DRangeImageCrossSectionExtractPoint object to be copied. If the supplied argument is null. Construct a default Cog3DRangeImageCrossSectionExtractPoint object. NextSf state flag. This bit will be set in the EventArgs of a Changed event every time the value returned by LineSegment may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by DirectionRelativeToLineSegment may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Angle may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by AngleSelectedSpace may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by DirectionSelectionMode may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by PointInImage3D may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by PointInImage may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Point may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by PointType may have changed. The class To extract a point. This operator holds a collection of regions. There must be always one region in the collection. The user may add and delete any region as long as the count does not dip below 1. Serialization constructor for Cog3DRangeImageCrossSectionExtractLineSegment object. The standard SerializationInfo argument. The standard StreamingContext argument. Extracts a line segment. The line segment is extracted and reported in the profile selected space name. If licensing for this class cannot be confirmed. If the regions selected space name was not found in the profile space tree. Fires when this method is called. The following state flag may be affected: SfStatus SfLineSegment SfLineSegmentInImage SfLineSegmentInImage3D The status returned can be one of the following: The line segment was extracted successfully and passed any enabled tolerance checking. Passed The line segment was extracted successfully but failed tolerance checking FailedTolerance The line segment was not extracted because because not enough points were found to extract the line. FeatureNoExtracted Clear the results' properties of this class. Fires when this method is called. The following state flag may be affected: SfRMSError SfLineSegment SfLineSegmentInImage SfLineSegmentInImage3D Create the graphics and add them to the graphicCollection provided. A constructed CogGraphicCollection. If lastRun is true, do not include the input graphics. The input graphics are the regions. The output graphic is the line segment graphic. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the EndY position. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the EndX position. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the StartY position. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the Cog3DRangeImageCrossSectionTolerance object to tolerance the StartX position. The and values are specified in profile selected space name. If the property is set to true, the tolerance check will be performed at run time. Gets the tolerance object for the RMS error. If the property is set to true, the tolerance check will be performed at run time. Gets the tolerance object for the angle. The and values are specified in radians. If the property is set to true, the tolerance check will be performed at run time. Gets the RMS error of the line segment. RMS is the root mean squared perpendicular error between the line and all of the points in the user specified region Gets the line segment extracted by the execute method. The line segment is in the SelectedSpaceName3D of the range image stored in the profile. Return null is the line segment was not computed. Gets the line segment extracted by the execute method. The line segment is in the SelectedSpaceName of the range image stored in the profile. Return null is the line segment was not computed. Gets the line segment extracted by the execute method. Always check the status of the operator to be either Passed or FailedTolerance before calling the getter. The line segment is in the ProfileSelectedSpaceName. Return null is the line segment was not computed. Finalize this Cog3DRangeImageCrossSectionExtractLineSegment. Destruct this Cog3DRangeImageCrossSectionExtractLineSegment. Construct a deep copy of the supplied Cog3DRangeImageCrossSectionExtractLineSegment object. The Cog3DRangeImageCrossSectionExtractLineSegment object to be copied. If the supplied argument is null. Construct a default Cog3DRangeImageCrossSectionExtractLineSegment object. NextSf state flag. This bit will be set in the EventArgs of a Changed event every time the value returned by LineSegmentInImage3D may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by LineSegmentInImage may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by LineSegment may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by RMSError may have changed. The class to extract a line segment from a profile points that are within the regions. This operator holds a collection of regions. There must be always one region in the collection. The user may add and delete any region as long as the count does not dip below 1. Cognex Internal Use Only. returns the parent of the operator which is a pointer to OperatorsParams. Cognex Internal Use Only. returns the internal unique ID of the operator Serialization constructor for Cog3DRangeImageCrossSectionOperatorBase object. The standard SerializationInfo argument. The standard StreamingContext argument. Gets the default location for a new region The default location is a 10x10mm rectangle in the center of the profile Sets the region with the given index to the default region location Cognex Internal Use Only. The index of the region to be set to the default location. Adds a new region to the operator with a default location Cognex Internal Use Only. Create the graphics and add them to the graphicCollection provided.. A constructed CogGraphicCollection. If lastRun is true, do not include the input graphics. Clear the results' properties. Fires when this method is called. The following state flag may be affected: SfStatus SfResultObject SfFeatureInImage SfFeatureInImage3D If the operator produces a feature, the feature is returned in the range image SelectedSpaceName3D stored in the profile. The FeatureInImage3D is available after the operator was run. The FeatureInImage3D is set to null at the beginning of the tool run. Fires when this property changes. The following state flag may be affected: SfFeatureInImage3D If the operator produces a feature, the feature is returned in the range image SelectedSpaceName stored in the profile. The FeatureInImage is available after the operator was run. The FeatureInImage is set to null at the beginning of the tool run. Fires when this property changes. The following state flag may be affected: SfFeatureInImage Gets the ResultObject of the operator. The ResultObject is available after the operator was run. The ResultObject is set to null at the beginning of the tool run. Fires when this property changes. The following state flag may be affected: SfResultObject Gets the names of the operators by output type from the OperatorsParams collection. It returns only the operators that are listed prior to this operator in the OperatorsParams collection. Returns null if no operator was found. Runs the operator. The profile. Gets the OutputType of the operator. Gets or sets the name of the operator. When the operator is within a collection, the name is checked for uniqueness. Fires when this property changes. The following state flag may be affected: SfName If the supplied argument is null or contains white spaces. If the supplied argument is not unique. Gets the status. Fires when this property changes. The following state flag may be affected: SfStatus Gets or sets the CombineGraphicsEnabled. When true, the combined graphics will be displayed in the last run record. Combined graphics usually are the features or measurements produced by an operator. Fires when this property changes. The following state flag may be affected: SfCombineGraphicsEnabled Gets or sets the OutputGraphicsEnabled. When true, the output graphics will be displayed in the current record. Output graphics usually are the features or measurements produced by an operator. Fires when this property changes. The following state flag may be affected: SfOutputGraphicsEnabled Gets or sets the InputGraphicsEnabled. When true, the input graphics will be displayed in the current record. Input graphics usually are the regions. Fires when this property changes. The following state flag may be affected: SfInputGraphicsEnabled Cognex Internal Use Only. Gets the Regions. The regions property is a collection of ICogRegion. Fires when this property changes. The following state flag may be affected: SfRegions Extract operator creates one region during construction. The last region cannot be deleted. Gets the Tolerance object of an item specified by name. if name is not found, the return is null. The name of the tolerance object requested. Gets the ToleranceCollection. The ToleranceCollection is initialiazed by the operator and the user will not be able to delete or add to it. Each operator adds a pre-defined set based on the operator result object. By default, all tolerances are disabled. Finalize this Cog3DRangeImageCrossSectionOperatorBase. Destruct this Cog3DRangeImageCrossSectionOperatorBase. Construct a deep copy of the supplied Cog3DRangeImageCrossSectionOperatorBase object. The Cog3DRangeImageCrossSectionOperatorBase object to be copied. May not be null. If the supplied argument is null. Construct a default Cog3DRangeImageCrossSectionOperatorBase object. NextSf state flag. This bit will be set in the EventArgs of a Changed event every time the value returned by FeatureInImage3D may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by FeatureInImage may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by ToleranceCollection may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by SelectedRegionIndex may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Regions may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by CombinedGraphicsEnabled may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by OutputGraphicsEnabled may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by InputGraphicsEnabled may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by ResultObject may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Status may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Name may have changed. The Cross Section operator base class. The class holds common properties across operators. Serialization constructor for Cog3DRangeImageCrossSectionProfileParams object. The standard SerializationInfo argument. The standard StreamingContext argument. The execute method in this class is responsible for: Fixturing the profile: adding a user defined space to the profile space tree in the output profile (optional) Running the operators. The operators are run in the resulting profile space. The operators interpret their regions in that space and produce results in that space. The profile. If the supplied profile is null. If the ProfileNewSpaceName is null and ProfileSpaceSelection is set to New. If the ProfileExistingSpaceName is null and ProfileSpaceSelection is set to Existing. If the supplied profile is invalid. If licensing bit for this class cannot be confirmed. Fires when execute is called. The following state flag may be affected: SfStatus Checks if the name is unique within the collection. Return true if unique, false otherwise. Gets or sets the ProfileExistingSpaceName. The default is null. If the supplied argument is null or an empty string. The name of the OutputProfile.ProfileSelectedSpaceName when the is Existing. Gets or sets the ProfileNewSpaceName. The default is null. If the supplied argument is null or an empty string. if the value is not a valid syntax. This is the space name of the DefaultFromNewTransform. The name of the OutputProfile.ProfileSelectedSpaceName when the is New. Gets or sets the DefaultFromNewTransform. The default is an identity transform. If the supplied argument is null. Defines the transform that will be added to the ProfileSpaceTree at runtime when the is New. Gets or sets the SelectedOperatorIndex. The default is 0. If the supplied value is out of range. The Cross Section tool CreateCurrentRecord() method will create the graphics only for the selected operator. This property is used by the control, it is attached to the selected opertor in the grid. Internal Cognex use only. Gets or sets the ProfileSpaceSelection. The default is Default. Fires when this property changes. The following state flag may be affected: SfProfileSpaceSelection If the supplied value is out of range. Gets or sets the PinRegions. The default is false. The PinRegions allows the user to pin the profile regions specified in the operators to their current location while the user is changing the profile space selection or the new space transform. The profile regions with the default selected space name equal to “.” will be updated. The profile regions with any other selected space name will not be pinned, updated or modified. The PinRegions applies only during setup of the Cross Section tool, it is ignored at runtime. This property is only used by the control; the programmatic interface ignores this property. Gets the status. The default is true. The status is set at runtime. The overall status of executing all the operators. True indicates that all the operators passed. False indicates at least one operator failed. Internal Cognex use only. Finalize this Cog3DRangeImageCrossSectionOperatorsParams. Destruct this Cog3DRangeImageCrossSectionOperatorsParams. Construct a deep copy of the supplied Cog3DRangeImageCrossSectionOperatorsParams object. The Cog3DRangeImageCrossSectionOperatorsParams object to be copied. May not be null. If the supplied argument is null. Construct a default Cog3DRangeImageCrossSectionOperatorsParams object. NextSf state flag. This bit will be set in the EventArgs of a Changed event every time the value returned by InternalProfile may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by SelectedOperatorIndex may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by ProfileExistingSpaceName may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by ProfileSpaceSelection may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by ProfileNewSpaceName may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by DefaultFromNewTransform may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by PinRegions may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Status may have changed. the Cross Section operators collection class. The operators collection is responsible for optionally fixturing the profile and managing all the operators. The operators are the methods for extracting features from the profile, computing features based on other features, and making measurements. Each operator will produce either a single feature (like a point, or a line segment) or a single measurement (like a distance, or an angle). Operators that extract a feature from the profile data typically require the user to provide one or more regions (in the selected profile space). These regions identify the subset of the profile data that should be used during feature extraction. The extracted feature can then be used by other operators for additional computation or measurement. Operators that make computations or measurements using extracted features never take the features themselves as inputs. Instead, these operators accept a reference to the operator that produces the feature. The concept of referencing operators is similar to linking a property from one tool to the next. This concept fits nicely here because we execute the operators in sequence and each operator produce a single object so there is no ambiguity. The operators are not meant to be used standalone. It is recommended that the operator is added to the collection and then configured. This sequence is very important for the operators that reference other operators. The paradigm of the operators is closely aligned with a tool group, for example you cannot link the properties of a tool to other tools without adding the tool first to the tool group. The operators that reference other operators are linking the operators together. The overall status of executing all the operators is set in the status property. The status type is Boolean. True indicates that all the operators passed. False indicates at least one operator failed. The operator can be added only to one collection. The operator internal unique id within a collection is set at the time the operator is added. Once the id is set, adding the operator to another collection will not be allowed. Returns true when values of the FarthestPointBelowReferenceProfile and ClosestPointBelowReferenceProfile have been successfully computed. Otherwise returns false. When computing these points only those points of the profile are considered valid that are in region and the difference at those points between the profile and the input shapes is outside the height threshold Returns true when values of the FarthestPointAboveReferenceProfile and ClosestPointAboveReferenceProfile have been successfully computed. Otherwise returns false. When computing these points only those points of the profile are considered valid that are in region and the difference at those points between the profile and the input shapes is outside the height threshold Returns true when values of the LeftPoint and RightPoint have been successfully computed. Otherwise returns false. When computing these points only those points of the profile are considered valid that are in region and the difference at those points between the profile and the input shapes is outside the height threshold Gets the calculated rightmost point on the input profile. The point has to be in range, the difference cannot be 0 and it has to be outside the height threshold. when PointsAreValid is False. Gets the calculated leftmost point on the input profile. The point has to be in range, the difference cannot be 0 and it has to be outside the height threshold. when PointsAreValid is False. Gets the calculated point (if exists) of the input profile that is below the reference profile and where the difference is the minimum between the input profile and the reference profile The difference is measured in the profile image’s Y direction. The point has to be in range, the difference cannot be 0 and it has to be outside the height threshold. when PointsBelowReferenceProfileAreValid is False. Gets the calculated point (if exists) of the input profile that is below the reference profile and where the difference is the maximum between the input profile and the reference profile The difference is measured in the profile image’s Y direction. The point has to be in range, the difference cannot be 0 and it has to be outside the height threshold. when PointsBelowReferenceProfileAreValid is False. Gets the calculated point (if exists) of the input profile that is above the reference profile and where the difference is the minimum between the input profile and the reference profile The difference is measured in the profile image’s Y direction. The point has to be in range, the difference cannot be 0 and it has to be outside the height threshold. when PointsAboveReferenceProfileAreValid is False. Gets the calculated point (if exists) of the input profile that is above the reference profile and where the difference is the maximum between the input profile and the reference profile The difference is measured in the profile image’s Y direction. The point has to be in range, the difference cannot be 0 and it has to be outside the height threshold. when PointsAboveReferenceProfileAreValid is False. Gets the calculated area value. The value of the area depends on the measurement position of Positive / Negative / Both Finalize this Cog3DRangeImageCrossSectionAreaResult. Destruct this Cog3DRangeImageCrossSectionAreaResult. Copy constructs a Cog3DRangeImageCrossSectionAreaResult object. This is a deep copy. The result object to be copied. May not be null. If the input argument is null. Constructs a Cog3DRangeImageCrossSectionAreaResult object. The are value. If the input argument is null. Serialization construct a Cog3DRangeImageCrossSectionAreaResult object. The standard SerializationInfo argument. The standard StreamingContext argument. Serialization constructor for Cog3DRangeImageCrossSectionProfileParams object. The standard SerializationInfo argument. The standard StreamingContext argument. Creates the profile. The Cog3DRangeImageCrossSectionProfile. The range image. If the supplied input image argument is not a CogImage16Range. If the supplied input image argument is null. If licensing for this class cannot be confirmed. If the region is less than 2 pixels in width or less than 1 pixel in height. Gets or sets the ProfileDefaultSpaceName. The default is "Profile2D" Fires when this property changes. The following state flag may be affected: SfProfileDefaultSpaceName If the supplied argument is null or an empty string. if the value is not a valid syntax. Gets or sets the 2D region in the range image. The default is a default constructed region. Fires when this property changes. The following state flag may be affected: SfRegion The region is an affine rectangle that lies in the image X-Y plane of the range image. It is specified in any space within the 2D coordinate space tree of the range image. The region must be at least 2 pixel in width and 1 pixel in height. A run time error is returned if the region does not meet the requrements. Finalize this Cog3DRangeImageCrossSectionProfileParams. Destruct this Cog3DRangeImageCrossSectionProfileParams. Construct a deep copy of the supplied Cog3DRangeImageCrossSectionProfileParams object. The Cog3DRangeImageCrossSectionProfileParams object to be copied. May not be null. If the supplied argument is null. Construct a default Cog3DRangeImageCrossSectionProfileParams object. NextSf state flag. This bit will be set in the EventArgs of a Changed event every time the value returned by ProfileDefaultSpaceName may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Region may have changed. The Cross Section profile params class. It is a lightweight class with two properties: a region specified in the range image 2D selected space name and the ProfileDefaultSpaceName. The execute method creates the profile. The region specifies how the slice is aligned with the part in the range image. The region in this tool is very similar to the region used in the caliper tool. The region is limited to an affine rectangle like the region in the caliper tool. The origin of the default profile space is defined by the rectangle that specifies the cutting plane: The profile default space x-axis begins at the start point of the cutting plane rectangle (start of the region). The end point of the cutting plane rectangle identifies the positive direction of the x-axis (end of the region). The start point of the profile is always associated with midpoint of the region affine rectangle between CornerOrigin and CornerY. The profile default space y-axis begins where image z is equal to 0 in the range image. The default y axis is directed out of the range image, straight toward the viewer, through the “start” point. Serialization constructor for Cog3DRangeImageCrossSectionProfile object. The standard SerializationInfo argument. The standard StreamingContext argument. Gets the bounding rectangle of the profile in ProfileDefaultSpace Returns null if the ProfileRoot is null. Cognex Internal use only. Creates the profile graphics for the current and the last run records. When true (in case of CombinedGraphics record), the coordinate x-axis is drawn closer to the profile data. Creates the profile sharpness graphics used as a visual aid with the extract corner operator. The constructed graphic collection returned from BuildProfileGraphics(). The filter half size used to apply to the profile data and generate the sharpness data. The sharpness threshold to draw the cutoff lines. Returns a unique space name within the ProfileSpaceTree. The name will have Fixture as a base and the next available index such as Fixture1 or Fixture2. Returns the parent space name of the ProfileSelectedSpaceName. Returns null if the ProfileSpaceTree is null. Returns the first space in the ProfileSpaceTree. The value is the ProfileDefaultSpaceName specified by the tool that creates the profile. If the ProfileSpaceTree has no spaces in it. Returns the cutting plane. The cutting plane lies parallel to the image z-axis of the range image at the centerline of the region. Maps a profile circle to a circle in the range image SelectedSpaceName3D. The circle in the profile. The 3D space name from the CoordinateSpaceTree3D. A Cog3DCircle in the spaceName specified. If the spaceName is null. If the ProfileSpaceTree is null. If the CoordinateSpaceTree is null. If the ProfileSelectedSpaceName is null. If the spaceName is not found in the CoordinateSpaceTree3D. Maps a profile circle to a line segment in the range image SelectedSpaceName. The circle in the profile. The 2D space name from the CoordinateSpaceTree. A CogLineSegment in the spaceName specified. If the spaceName is null. If the ProfileSpaceTree is null. If the CoordinateSpaceTree is null. If the ProfileSelectedSpaceName is null. If the spaceName is not found in the CoordinateSpaceTree. Maps a profile line segment to a line segment in the range image SelectedSpaceName3D. The line segment in the profile. The 3D space name from the CoordinateSpaceTree3D. A Cog3DLineSeg in the spaceName specified. If the spaceName is null. If the ProfileSpaceTree is null. If the CoordinateSpaceTree is null. If the ProfileSelectedSpaceName is null. If the spaceName is not found in the CoordinateSpaceTree3D. Maps a profile line segment to a line segment in the range image SelectedSpaceName. The line segment in the profile. The 2D space name from the CoordinateSpaceTree. A CogLineSegment in the spaceName specified. If the spaceName is null. If the ProfileSpaceTree is null. If the CoordinateSpaceTree is null. If the ProfileSelectedSpaceName is null. If the spaceName is not found in the CoordinateSpaceTree. Maps a profile point to a point in the range image SelectedSpaceName3D. The x-coordinate of the profile point. The y-coordinate of the profile point. The 3D space name within the CoordinateSpaceTree3D. A point in the spaceName specified as a Cog3DVect3 object. If the spaceName is null. If the ProfileSpaceTree is null. If the CoordinateSpaceTree is null. If the ProfileSelectedSpaceName is null. If the spaceName is not found in the CoordinateSpaceTree3D. Maps a profile point to a point in the range image SelectedSpaceName. The x-coordinate of the profile point. The y-coordinate of the profile point. The 2D space name within the CoordinateSpaceTree. The resulting mapped x-coordinate in the spaceName specified. The resulting mapped Y-coordinate in the spaceName specified. If the spaceName is null. If the ProfileSpaceTree is null. If the CoordinateSpaceTree is null. If the ProfileSelectedSpaceName is null. If the spaceName is not found in the CoordinateSpaceTree. Shallow copy of the profile. Gets the PixelFromRootTransform. The transform is computed from PixelFromRootTransform3D. Returns null if PixelFromRootTransform3D is null. The default is set when the profile is created. The below ground transform, also known as the pixel from root transform, records how the range image pixels within the region were transformed and mangled to become the profile. This transform links the range image coordinate spaces to the profile spaces and define the bond between the range image pixels and the profile data. Fires when this property changes. The following state flag may be affected: SfPixelFromRootTransform Gets or sets the PixelFromRootTransform3D. The default is set when the profile is created. The below ground transform, also known as the pixel from root transform, records how the range image pixels within the region were transformed and mangled to become the profile. This transform links the range image coordinate spaces to the profile spaces and define the bond between the range image pixels and the profile data. Fires when this property changes. The following state flag may be affected: SfPixelFromRootTransform3D If the value is null. It is not recommended to overwrite the transform. The integrity of the profile will break and the tool may not operate properly. Gets or sets the ProfileSelectedSpaceName The default is set when the profile is created. The value depends on the OperatorsParams.ProfileSpaceSelection and ProfileParams.ProfileDefaultSpaceName. Fires when this property changes. The following state flag may be affected: SfProfileSelectedSpaceName if the value is null or empty string. if the value is not a valid syntax. Gets the ProjectionHeight. The number of pixels in the projection direction will also be contained in the profile. Gets or sets the CoordinateSpaceTree. The CoordinateSpaceTree will contain a reference to the CoordinateSpaceTree held by the range image. Fires when this property changes. The following state flag may be affected: SfCoordinateSpaceTree If the value is null. It is not recommended to overwrite the tree. The integrity of the profile will break and the tool may not operate properly. Gets the ProfileRoot. The ProfileRoot object contains the profile height data and the weights. Gets or sets the SelectedSpaceName3D. The default is null. If the supplied argument is null or an empty string. The SelectedSpaceName3D is used to map the features found in the profile to the range image. Gets or sets the SelectedSpaceName. The default is null. If the supplied argument is null or an empty string. The SelectedSpaceName is used to map the features found in the profile to the range image. Gets or sets the CoordinateSpaceTree3D. The CoordinateSpaceTree3D will contain the "Sensor3D" space. Eventually it will hold a reference to the range image CoordinateSpaceTree3D. Fires when this property changes. The following state flag may be affected: SfCoordinateSpaceTree3D If the value is null. It is not recommended to overwrite the tree. The integrity of the profile will break and the tool may not operate properly. Gets or sets the ProfileSpaceTree. The ProfileSpaceTree, when the profile is created, will contain one space to convert the profile data to physical units of the range image. Fires when this property changes. The following state flag may be affected: SfProfileSpaceTree If the value is null. The profile space tree stores a family of 2D coordinate spaces that lie within the cutting plane. These profile spaces are typically expressed in physical units (e.g. millimeters), with x and y axes that are orthogonal in physical space. It is not recommended to overwrite the tree. The integrity of the profile will break and the tool may not operate properly. Gets the weights for each height value in the profile data. The weight will indicate the number of pixels contributing to the height value in the corresponding profile datum. The weight value is between 0 and 1. A value of 0 indicates that all pixels contributing to the height are missing. Returns null if the ProfileRoot is null. Returns the profile data in the specified 3D space that can be found in the CoogrdinateSpaceTree3D of the range image. Each point in the profile is mapped back to the specified 3D space, packaged as a Cog3DVect3 object, and added to the Cog3DVect3Collection. Returns null if the ProfileRoot is null, or if the profile has zero points. A user specified profile selected space name. If the value is null or ".", then the SelectedSpaceName3D is used. if the ssn is not in the tree. The user should rely on the weights array (returned by GetWeights()) to determine what action to take with regards to non-visible pixels. The weights array is of the same size as the profile data array, and should be used to determine which points in the profile data are "missing". Any point whose weight is zero is considered "missing" and should not be examined: its height (z-value) is meaningless. Returns the profile data in the specified space. Each point in the profile is mapped from pels to the specified space, packaged as a Cog3DVect2 object, and added to the Cog3DVect2Collection. Returns null if the ProfileRoot is null, or if the profile has zero points. A user specified profile selected space name. If the value is null or ".", then the ProfileSelectedSpaceName is used. if the ssn is not in the tree. The user should rely on the weights array (returned by GetWeights()) to determine what action to take with regards to non-visible pixels. The weights array is of the same size as the profile data array, and should be used to determine which points in the profile data are "missing". Any point whose weight is zero is considered "missing", and should not be examined: its height (y-value) is meaningless. Gets the profile height data in pixels. Returns null if the ProfileRoot is null. The user should rely on the weights array (returned by GetWeights()) to determine what action to take with regards to non-visible pixels. The weights array is of the same size as the profile data array, and should be used to determine which points in the profile data are "missing". Any point whose weight is zero is considered "missing", and should not be examined: its height (y-value) is meaningless. Finalize this Cog3DRangeImageCrossSectionProfile. Destruct this Cog3DRangeImageCrossSectionProfile. Construct a deep copy of the supplied Cog3DRangeImageCrossSectionProfile object. The Cog3DRangeImageCrossSectionProfile object to be copied. May not be null. If the supplied argument is null. Construct a default Cog3DRangeImageCrossSectionProfile object. NextSf state flag. This bit will be set in the EventArgs of a Changed event every time the value returned by SelectedSpaceName3D may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by SelectedSpaceName may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by CuttingPlane may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by PixelFromRootTransform may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by CoordinateSpaceTree may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by PixelFromRootTransform3D may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by CoordinateSpaceTree3D may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by ProfileSelectedSpaceName may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by ProfileSpaceTree may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by ProjectionHeight may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by ProfileRoot may have changed. The Cross Section profile class. The profile is the new image-like container of the 1-D height data. It holds the one-dimensional height data and the one-dimensional weight data produced by projection. The profile resembles a 1-D range image, but it is not a true image. It does not support the ICogImage interface. And the data it holds is a "sideways" view of the original image. Similar to the image, the profile also has a profile selected space name. All positional measurements from the operators will be reported in the profile selected space name. To map points from the profile data back to the range image and to perform the mapping in the 2D and 3D user defined spaces, the profile holds on to: The 3D coordinate space tree of the range imageThe 2D coordinate space tree of the range image A 3D below ground transform linking the profile data to the range image pixelsA 2D below ground transform linking the profile data to the range image pixels There is no default constructor for the profile. It must be created by running the tool. Serializer for ProfileData and Weights vector objects. The standard SerializationInfo argument. The standard StreamingContext argument. Serialization constructor for Cog3DRangeImageCrossSectionProfileRoot object. The standard SerializationInfo argument. The standard StreamingContext argument. Gets the weights. The weight value is between 0 and 1. Returns null if the raw data is null. Gets the profile height data in pixels. Returns null if the raw data is null. Finalize this Cog3DRangeImageCrossSectionProfileRoot. Destruct this Cog3DRangeImageCrossSectionProfileRoot. Construct a deep copy of the supplied Cog3DRangeImageCrossSectionProfileRoot object. The Cog3DRangeImageCrossSectionProfileRoot object to be copied. May not be null. If the supplied argument is null. Construct a default Cog3DRangeImageCrossSectionProfileRoot object. NextSf state flag. The Cross Section profile root class. This class hold the actual raw height and weight values of the profile. Serialization constructor for Cog3DRangeImageCrossSectionTolerance object. The standard SerializationInfo argument. The standard StreamingContext argument. Return true if the name is Angle. Gets or sets the maximum value to use for tolerance. Default value is 0. If Min is less than Max, then Min value will be changed to be equal to Max. Fires when the value of this property changes. SfMax SfMin Gets or sets the minimum value to use for tolerance. Default value is 0. If Max is less than Min, then Max value will be changed to be equal to Min. Fires when the value of this property changes. SfMin SfMax If True, the operator will check at run time that the value is within the Min and Max values. Default value is false. Fires when the value of this property changes. SfEnabled Gets the name of the item being toleranced. Finalize this Cog3DRangeImageCrossSectionTolerance. Destruct this Cog3DRangeImageCrossSectionTolerance. Construct a deep copy of the supplied Cog3DRangeImageCrossSectionTolerance object. The Cog3DRangeImageCrossSectionTolerance object to be copied. May not be null. If the supplied argument is null. Construct a default Cog3DRangeImageCrossSectionTolerance object. NextSf state flag. This bit will be set in the EventArgs of a Changed event every time the value returned by Max may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Min may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Enabled may have changed. A common class to define the tolerance for a property. An enumeration that specifies the direction of the extraction with respect to the given line segment In the direction of the right perpendicular of the line segment In the direction of the left perpendicular of the line segment In the opposite direction of the line segment In the direction of the line segment An enumeration that specifies whether a value should be understood in profile default space or profile selected space The value is specified in ProfileSelectedSpace The value is specified in ProfileDefaultSpace An enumeration that specifies how the direction of the point extarction extraction will be defined. The direction is specified by a line segment The direction is specified by a user given angle The direction is specified by one of the points from the predefined list: top, left, etc... The point of the input profile had a value outside the threshold The point of the input profile was in the given regions The point of the input profile was missing but has been filled before the measurement The point of the input profile was missing An enumeration that specifies the point to find within one or more profile regions. ClosestPointBelowReferenceProfile of the AreaResult (if exist): the closest point below the reference profile. FarthestPointBelowReferenceProfile of the AreaResult (if exist): the farthest point below the reference profile. ClosestPointAboveReferenceProfile of the AreaResult (if exist): the closest point above the reference profile. FarthestPointAboveReferenceProfile of the AreaResult (if exist): the farthest point above the reference profile. RightPoint of the AreaResult (if exist): the point with the highest x coordinate. LeftPoint of the AreaResult (if exist): the point with the lowest x coordinate. The input operator is one that provides CogCircle as output. The input operator is one that provides CogLineSegment as output. Parameters for creating the reference profile from the input shapes. Create the reference profile from the lowest shapes. Create the reference profile from the highest shapes. An enumeration that specifies which area is being measured - above the reference profile and below the input profile - bwloe the reference profile and above the input profile - above and below the reference profile and they added together - above and below the reference profile and the below the below area is substracted from the above area The area being measured is both the above and below part and the below area is subtracted from the above area The area being measured is both the above and below part and they are added together The area being measured is below the reference profile and above the input profile The area being measured is above the reference profile and below the input profile Enumeration of diagnostic data that can be provided in the Tool's LastRunRecord. Include all of the diagnostic data in the LastRunRecord. Include a copy of the region in the LastRunRecord. Include a deep copy of the input image in the LastRunRecord. Include a reference to the input image in the LastRunRecord. Do not include any of the diagnostic data in the LastRunRecord. Enumeration of non-diagnostic data that can be provided in the Tool's LastRunRecord. Include all of the non-diagnostic data in the LastRunRecord. Include only the measurements in the LastRunRecord.CombinedGraphics. Include only the features in the LastRunRecord.CombinedGraphics. Do not include any of the non-diagnostic data in the LastRunRecord. Include all possible records in the CurrentRecord. Include the fixtured coordinate space origin in the CurrentRecord.Profile Include the (interactive) region to be used as a mask in the CurrentRecord. Include the input image in the CurrentRecord. Do not include any records in the CurrentRecord. An enumeration that specifies the status of an operator when run. The operator ran but one or more of its input operators were not found. The operator ran but failed to produce a measurement. The operator ran but failed to extract a feature. The operator ran but failed to compute a feature. The operator ran but one or more of the tolerances failed. The operator ran and passed. The operator has not been run. An enumeration that specifies the of an operator. The operator output is a Circle. The operator output is a AreaStatistics. The operator output is a numerical value. The operator output is an angle: a double value, measured in radians. The operator output is a CogLineSegment. The operator output is a CogPointMarker. An enumeration that specifies which profile coordinate space will be used as the selected profile space when the operators are executed. A new profile coordinate space will created and used as the selected profile space. The name of the new space is given by and its transform is given by . An existing profile coordinate space will be used as the selected profile space. The name of the existing space is given by . The selected profile space will not be changed. It is already specified by the of the profile that is passed into the method. An enumeration that specifies the point to find within one or more profile regions. BottomRight point: the point with the lowest y coordinate and highest x coordinate. BottomLeft point: the point with the lowest y coordinate and lowest x coordinate. TopRight point: the point with the highest y coordinate and highest x coordinate. TopLeft point: the point with the highest y coordinate and lowest x coordinate. Average point: the average position of all points within one or more profile regions. Rightmost point: the point with the highest x coordinate. Leftmost point: the point with the lowest x coordinate. Bottommost point: the point with the lowest y coordinate. Topmost point: the point with the highest y coordinate. An enumeration that specifies the sorting order when multiple corners are found within one or more profile regions. The sorting order is based on the sharpness of the corner. The corners are sorted from sharpest to least sharp. The sorting order is based on the x-axis position of the corner. The corners are sorted from right to left. The sorting order is based on the x-axis position of the corner. The corners are sorted from left to right. An enumeration that specifies the polarity of a corner. The desired corner can be either a peak or a valley. The corner occurs where the profile data is concave upward: the slope of the profile increases as you move in the positive direction along the x-axis. The corner occurs where the profile data is concave downward: the slope of the profile decreases as you move in the positive direction along the x-axis. An enumeration that specifies a point on a given line segment. The end point of a line segment. The start point of a line segment. The middle point of a line segment. An enumeration that specifies how to compute the distance between two points. Compute the y-axis distance between two points. Compute the x-axis distance between two points. Compute the Euclidean distance between two points. An enumeration that specifies whether or not to treat a line segment as an infinite line when determining the point "on" the segment that is nearest to a given point. The nearest point must fall on the line segment. The nearest point may fall anywhere along the infinite line that passes through the line segment. Enable creation of records by bitwise ORing the appropriate Cog3DRangeImageHeightCalculatorLastRunRecordDiagConstants. The default is (Cog3DRangeImageHeightCalculatorLastRunRecordDiagConstants::InputImageByReference | Cog3DRangeImageHeightCalculatorLastRunRecordDiagConstants::Region | Cog3DRangeImageHeightCalculatorLastRunRecordDiagConstants::UsedPixels | Cog3DRangeImageHeightCalculatorLastRunRecordDiagConstants::Histogram) Fires when this property changes. The following state flag will be set: SfLastRunRecordDiagEnable Enable creation of records by bitwise ORing the appropriate Cog3DRangeImageHeightCalculatorLastRunRecordConstants. The default is Cog3DRangeImageHeightCalculatorLastRunRecordConstants::None Fires when this property changes. The following state flag will be set: SfLastRunRecordEnable SfCreateLastRunRecord Enable creation of records by bitwise ORing the appropriate Cog3DRangeImageHeightCalculatorCurrentRecordConstants. The default is (int)Cog3DRangeImageHeightCalculatorCurrentRecordConstants::InputImage | (int)Cog3DRangeImageHeightCalculatorCurrentRecordConstants::Region Fires when this property changes. The following state flag will be set: SfCurrentRecordEnable SfCreateCurrentRecord The result of running the height calculator tool In the context of the height calculator, "used" pixels are the image pixels that contribute to the height calculation. A range image pixel is "used" to calculate the height if: it is inside the 2D input of the tool. it is marked "care" in the optional provided as part of the . it is marked as "visible pixel" in the visible pixel mask of the . The visible pixel mask can be accessed by calling on the range image. its height falls within the valid height range configured in the height tool's run parameters. See . Pixels that meet these conditions contribute to the height computation and are marked as "used" in the . Only "used" pixels are included in the height tool's data. Note that the height of an individual range image pixel is defined as the signed distance from the center of the range image pixel to the nearest point on the base plane (measured in selected space 3D units). By default the positive height direction is defined to be in the same direction as the normal vector of the base plane. However, the positive height direction can be reversed by setting the property. Fires when this property changes. The following state flag will be set: SfResult The height calculator tool's run parameters operator The value can not be null. The default is a default Cog3DRangeImageHeightCalculator. Fires when this property changes. The following state flag will be set: SfRunParams The calculated height is the distance of the range image pixels from this plane (see also ). The default is a horizontal plane at z = 0. If BasePlane is set to null a horizontal plane at z = 0 will be used. Fires when this property changes. The following state flag will be set: SfBasePlane The 2D region of the range image which contains the pixels of interest. Only pixels contained within this region will be used to calculate the height. A pixel is considered inside the 2D region if the pixel's 2D center falls within the region. The region can be null to use the entire range image. The default is a default CogRectangleAffine Fires when this property changes. The following state flag will be set: SfRegion The range image surface data used in the height calculation. The default is null. Fires when this property changes. The following state flag will be set: SfInputImage Constructs and returns a record containing a histogram graphic for use in the tool's last run record. Creates a DisplayMethod to be used as the content of a parent image record's subrecord. When the parent image record is displayed by a CogRecordDisplay, the subrecord will cause a transform to be renamed in the Display's UserPixelTree. Creates a DisplayMethod to be used as the content of a parent image record's subrecord. When the parent image record is displayed by a CogRecordDisplay, the subrecord will cause a transform to be added to the Display's UserPixelTree. Draws a vertical line to mark a notable height locations in the histogram graphics. The statistical mode is not included in the results returned from CVT. This function finds the mode of the histogram. Serialization Constructor Returns a deep copy of this class instance. This method's implementation calls . Constructs a deep copy of the supplied Cog3DRangeImageHeightCalculatorTool. The Cog3DRangeImageHeightCalculatorTool to be copied. May not be null. Thrown if is null. Thrown if does not support . The properties of are copied as follows: is copied by calling with the CogImageCopyModeConstants flag set. is copied by calling (an exception is thrown if the region cannot does not support ). is copied by calling . is copied by calling . is copied by calling . The are copied by calling . The data bindings of the original tool are duplicated in the new tool. The databindings are copied with their destinations pointing _into_ the new tool, while their sources are copied directly and still point _from_ the same upstream objects (tools) as the original tool's databindings. The is copied by calling . The is copied by calling . Construct a new instance of this class. Cache the last run record data so it can be accesed by CreateLastRunRecord. Clear any cached last run record data. This bit will be set in the EventArgs of a Changed event every time the value returned by LastRunRecordDiagEnable may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by LastRunRecordEnable may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by CurrentRecordEnable may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by RunParams may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by RunParams may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Region may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Region may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by InputImage may have changed. A range image has pixel values that represent the distance from a reference plane to an object. The height calculator tool measures the height of the surface defined by the range image pixels relative to a user supplied base plane. The computed height is returned in the units specified in the range image (e.g. mm^3). In the context of the height calculator, "used" pixels are the image pixels that contribute to the height calculation. A range image pixel is "used" to calculate the height if: it is inside the 2D input of the tool. it is marked "care" in the optional provided as part of the . it is marked as "visible pixel" in the visible pixel mask of the . The visible pixel mask can be accessed by calling on the range image. its height falls within the valid height range configured in the height tool's run parameters. See . Pixels that meet these conditions contribute to the height computation and are marked as "used" in the . Only "used" pixels are included in the height tool's data. Note that the height of an individual range image pixel is defined as the signed distance from the center of the range image pixel to the nearest point on the base plane (measured in selected space 3D units). By default the positive height direction is defined to be in the same direction as the normal vector of the base plane. However, the positive height direction can be reversed by setting the property. Enumeration of diagnostic data that can be provided in the Tool's LastRunRecord. Include all possible records. Include a histogram graphic Include a mask graphic representing which range image pixels were used in the height calculation Include a graphic representing the input image mask in the LastRunRecord. Include a copy of the region in the LastRunRecord. Include a deep copy of the input image in the LastRunRecord. Include a reference to the input image in the LastRunRecord. Do not include any of the non-diagnostic data in the LastRunRecord. Enumeration of non-diagnostic data that can be provided in the Tool's LastRunRecord. Include all possible records. Do not include any of the non-diagnostic data in the LastRunRecord. Enumeration of data that can be provided in the Tool's CurrentRecord. Include all possible records in the CurrentRecord. Include a graphic representing the input image mask in the CurrentRecord. Include the (interactive) region to be processed at run time in the CurrentRecord. Include the input image in the CurrentRecord. Do not include any records in the CurrentRecord. Computes the height of the range image surface relative to a horizontal base plane with a user specified Z height. The base plane has a 3D selected space coordinate normal vector (0, 0, 1), i.e. oriented along the positive z axis. The range image surface data of which the height is calculated. The 2D region of the range image which contains the pixels of interest. Only pixels contained within this region will be used to calculate the height. The region can be null to use the entire range image. The z value (usually the height) of the horizontal 3D plane, in the selected space 3D coordinates of the range image Thrown if is null. Thrown if is is not allocated. Thrown if has a transform that is singular (i.e., not invertible). Thrown if + is greater than 1. Thrown if is greater than . Computes the height between the surface defined by the range image pixels and the specified base plane. The range image surface data of which to calculate the height The 2D region of the range image which contains the pixels of interest. Only pixels contained within this region will be used to calculate the height. The region can be null to use the entire range image. The plane relative to which the height is calculated. (see also ). The basePlane can be null to use a horizontal plane at z = 0. Thrown if is null. Thrown if is is not allocated. Thrown if has a transform that is singular (i.e., not invertible). Thrown if is degenerate. Thrown if + is greater than 1. Thrown if is greater than . if the SelectedSpaceName3D of the range image is not in the tree, or if the SelectedSpaceName3D of the plane is not in the tree. Gets or sets the 2D InputImageMask Y offset value in pixels. The InputImageMask Y offset value in pixels. The X and Y offset values set the offset from the upper-left corner of the run-time input image to th upper-left corner of the in pixels. The default is 0. Fires when this property changes. The following state flag will be set: SfInputImageMaskOffsetY Gets or sets the 2D InputImageMask X offset value in pixels. The InputImageMask X offset value in pixels. The X and Y offset values set the offset from the upper-left corner of the run-time input image to th upper-left corner of the in pixels. The default is 0. Fires when this property changes. The following state flag will be set: SfInputImageMaskOffsetX Gets or sets the input image mask. The input image mask allows you to ignore regions of the range image by masking them out. InputImageMask is optional and may be null if no mask is required. The default is null. 255 = use this pixel 0 = ignore this pixel Fires when this property changes. The following state flag will be set: SfInputImageMaskOffset The input image mask is applied to the input image after taking the and into account. Specifies which side of the plane to consider the positive height direction when computing the height. The default is Cog3DPlaneSideConstants::IncreasingPlaneNormal. Fires when this property changes. The following state flag will be set: SfPlaneSide Gets or sets a value which controls how the property of the result is calculated. The default is 0.01. The value must be between [0, 1]. The fraction which dictates how many of the highest pixels are discarded before calculating the height. For example if the HighTailFrac is set to 0.01, then is set such that 1 percent of "used" pixel heights are above it. Thrown if value falls outside the range [0, 1]. Fires when this property changes. The following state flag will be set: SfHighTailFrac Gets or sets a value which controls how the property of the result is calculated. The default is 0.01. The value must be between [0, 1]. The fraction which dictates how many of the lowest pixels are discarded before calculating the height. For example if the LowTailFrac is set to 0.01, then is set such that 1 percent of "used" pixel heights are below it. Thrown if value falls outside the range [0, 1]. Fires when this property changes. The following state flag will be set: SfLowTailFrac Gets or sets a value that controls how the property of the result is calculated. The default is 0.0. The standard deviation of "used" range image pixel heights is multiplied by StdDevMult. The resulting value is then added to the mean of all the "used" pixel heights and returned as the property of the overall result. Note that it is valid to set StdDevMult to a value less than 0.0. Fires when this property changes. The following state flag will be set: SfStdDevMult Specifies whether or not to include a pixel counts diagnostics image in the result. The pixel counts diagnostics image indicates which pixels in the range image were used by the height calculation. The default is true. Fires when this property changes. The following state flag will be set: SfComputePixelCountsDiagImage Specifies whether or not to include the histogram data in the result. The default is true. Fires when this property changes. The following state flag will be set: SfIncludeHistogramInResult Enables or disables the height range filter. The height range filter allows the user to exclude pixels which do not fall within a user selected range of height values. The default is false Enable the height range filter to help remove the effect of noisy or outlying height pixel data from the height calculation. The height range filter is configured by setting and . The configured height range can inverted by setting When a height range filter is enabled, the endpoints of the height range filter ( and ) are always included in the pixel values used to calculate the height. The "height" of a range image pixel relative to a base plane is defined as the signed distance from the center of the range image pixel to the nearest point on the base plane, measured in selected space 3D coordinates. Fires when this property changes. The following state flag will be set: SfHeightRangeFilterEnabled Controls whether the height range filter includes or excludes the values between the HeightRangeFilterLow and the HeightRangeFilterHigh. The default is IncludeValuesInRange The "height" of a range image pixel relative to a base plane is defined as the signed distance from the center of the range image pixel to the nearest point on the base plane, measured in selected space 3D coordinates. When a height range filter is enabled, the endpoints of the height range filter (HeightRangeFilterLow, HeightRangeFilterHigh) are always included in the pixel values used to calculate the height. Fires when this property changes. The following state flag will be set: SfHeightRangeFilterMode The largest height value to be included or excluded by the height range filter. The default is 100. The "height" of a range image pixel relative to a base plane is defined as the signed distance from the center of the range image pixel to the nearest point on the base plane, measured in selected space 3D coordinates. When a height range filter is enabled, the endpoints of the height range filter (HeightRangeFilterLow, HeightRangeFilterHigh) are always included in the pixel values used to calculate the height. Setting this property to a value less than HeightRangeFilterLow will cause HeightRangeFilterLow to be adjusted accordingly. Fires when this property changes. The following state flag will be set: SfHeightRangeFilterHigh The smallest height value to be included or excluded by the height range filter. The default is 10. The "height" of a range image pixel relative to a base plane is defined as the signed distance from the center of the range image pixel to the nearest point on the base plane, measured in selected space 3D coordinates. When a height range filter is enabled, the endpoints of the height range filter (HeightRangeFilterLow, HeightRangeFilterHigh) are always included in the pixel values used to calculate the height. Setting this property to a value greater than HeightRangeFilterHigh will cause HeightRangeFilterHigh to be adjusted accordingly. Fires when this property changes. The following state flag will be set: SfHeightRangeFilterLow Gets or sets the region mode. This controls how the optional run time region is applied to the input image. The region mode. May be either PixelAlignedBoundingBox or PixelAlignedBoundingBoxAdjustMask. Default is PixelAlignedBoundingBoxAdjustMask. CogRegionModeConstants::AffineTransform is not a supported region mode. If the supplied argument is not either PixelAlignedBoundingBox or PixelAlignedBoundignBoxAdjustMask. Fires when this property changes. The following state flag will be set: SfRegionMode This bit will be set in the EventArgs of a Chagned event every time the value returned by HeightRangeFilterEnabled may have changed. This bit will be set in the EventArgs of a Chagned event every time the value returned by IncludeHistogramInResult may have changed. This bit will be set in the EventArgs of a Chagned event every time the value returned by StdDevMult may have changed. This bit will be set in the EventArgs of a Chagned event every time the value returned by HighTailFrac may have changed. This bit will be set in the EventArgs of a Chagned event every time the value returned by LowTailFrac may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by InputImageMaskOffsetX may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by InputImageMaskOffsetX may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by InputImageMask may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by ComputePixelCountsDiagImage may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by PlaneSide may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by HeightRangeFilterMode may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by HeightThresholdHigh may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by HeightRangeFilterLow may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by RegionMode may have changed. Serialization Constructor Constructs a new instance of this class as a deep copy of the given instance. The Cog3DRangeImageHeightCalculator object to be copied. May not be null. If the input argument is null. Constructs a new instance of this class The height calculator tool operator. Holds the run parameters used by the height tool. Called by the height tool to the actual height calculation. Get the histogram bin index for a given height value. See also: The height from which to find a cooresponding histogram bin index. If the result does not contain any histogram data. If falls outside range of histogram data. If the transform from histogram bins to height values is invalid. Get the height value for a given histogram bin index. See also: The bin from which to find a cooresponding height value. If the result does not contain any histogram data. If is less than 0 or greater the total number of bins. The 2D distance in the Y direction from the upper left corner of the original input image to the upper left corner of the (in pixels). The 2D distance in the X direction from the upper left corner of the original input image to the upper left corner of the (in pixels). Identifies which pixels in the range image were "used" to calculate the height. Each pixel in the pixel counts diag image is a bit-wise or of . In the context of the height calculator, "used" pixels are the image pixels that contribute to the height calculation. A range image pixel is "used" to calculate the height if: it is inside the 2D input of the tool. it is marked "care" in the optional provided as part of the . it is marked as "visible pixel" in the visible pixel mask of the . The visible pixel mask can be accessed by calling on the range image. its height falls within the valid height range configured in the height tool's run parameters. See . Pixels that meet these conditions contribute to the height computation and are marked as "used" in the . Only "used" pixels are included in the height tool's data. Note that the height of an individual range image pixel is defined as the signed distance from the center of the range image pixel to the nearest point on the base plane (measured in selected space 3D units). By default the positive height direction is defined to be in the same direction as the normal vector of the base plane. However, the positive height direction can be reversed by setting the property. Result information which identifies the number of pixels in the range image that fall into each of 4 different categories. See for the definition of the different categories. In the context of the height calculator, "used" pixels are the image pixels that contribute to the height calculation. A range image pixel is "used" to calculate the height if: it is inside the 2D input of the tool. it is marked "care" in the optional provided as part of the . it is marked as "visible pixel" in the visible pixel mask of the . The visible pixel mask can be accessed by calling on the range image. its height falls within the valid height range configured in the height tool's run parameters. See . Pixels that meet these conditions contribute to the height computation and are marked as "used" in the . Only "used" pixels are included in the height tool's data. Note that the height of an individual range image pixel is defined as the signed distance from the center of the range image pixel to the nearest point on the base plane (measured in selected space 3D units). By default the positive height direction is defined to be in the same direction as the normal vector of the base plane. However, the positive height direction can be reversed by setting the property. The offset value need to map a histogram bin number to an actual height value. binHeight = binIndex * HistogramHeightFromBinScale + HistogramHeightFromBinOffset This property returns 0.0 if was false or if the height calculation included 0 used pixels. See: . The scale value needed to map a histogram bin number to an actual height value. binHeight = binIndex * HistogramHeightFromBinScale + HistogramHeightFromBinOffset This property returns 0.0 if was false or if the height calculation included 0 used pixels. See: . Returns a histogram of the height values of the individual range image pixels. See also: and Note that only pixels that were "used" as part of the actual height calculation are included in the histogram data. For example, the histogram bins for any height values that were filtered out by the height range filter will contain 0 pixels. In the context of the height calculator, "used" pixels are the image pixels that contribute to the height calculation. A range image pixel is "used" to calculate the height if: it is inside the 2D input of the tool. it is marked "care" in the optional provided as part of the . it is marked as "visible pixel" in the visible pixel mask of the . The visible pixel mask can be accessed by calling on the range image. its height falls within the valid height range configured in the height tool's run parameters. See . Pixels that meet these conditions contribute to the height computation and are marked as "used" in the . Only "used" pixels are included in the height tool's data. Note that the height of an individual range image pixel is defined as the signed distance from the center of the range image pixel to the nearest point on the base plane (measured in selected space 3D units). By default the positive height direction is defined to be in the same direction as the normal vector of the base plane. However, the positive height direction can be reversed by setting the property. Note that this property will return null if was false or if the height calculation included 0 used pixels. See: . Returns the value of which was used to compute . This property returns 0.0 if the height calculation "used" 0 pixels. See: . The mean plus std dev mult height is calcualted as: = + std dev of all used pixel heights * Returns the calculated mean plus standard deviation multiplier height. This property returns 0.0 if the height calculation "used" 0 pixels. See: . The mean plus std dev mult height is calcualted as: = + std dev of all used pixel heights * In some applications this value may be used to provide a more robust estimation of the real minimum or maximum height. This value is less sensitive to outlying or noisy height data. Returns the calculated high tail height. This property returns 0.0 if the height calculation "used" 0 pixels. See: . The high tail height is the height at which: (number of used pixels greater than this height / total number of pixels used in the height calculation) = In some applications this value may be used to provide a more robust estimation of the real maximum height. This value is less sensitive to outlying or noisy height data. Returns the calculated low tail height. This property returns 0.0 if the height calculation "used" 0 pixels. See: . The low tail height is the height at which: (number of used pixels less than this height / total number of pixels used in the height calculation) = In some applications this value may be used to provide a more robust estimation of the real minimum height. This value is less sensitive to outlying or noisy height data. Returns the maximum height value of pixels used in the height calculation. This property returns 0.0 if the height calculation "used" 0 pixels. See: . Because the maximum height returns the maximum height of all used pixels, a single outlying or noisy pixel may distort this value from the _real_ maximum height of an object. Consider using for a more robust estimate of the maximum height. Returns the minimum height value of pixels used in the height calculation. This property returns 0.0 if the height calculation "used" 0 pixels. See: . Because the minimum height returns the minimum height of all used pixels, a single outlying or noisy pixel may distort this value from the _real_ minimum height of an object. Consider using for a more robust estimate of the minimum height. Returns the median height of all pixles used in the height calculation. This property returns 0.0 if the height calculation "used" 0 pixels. See: . Returns the mean height of all pixels used in the height calculation. This property returns 0.0 if the height calculation "used" 0 pixels. See: . Serialization Constructor Populate the members of the Cog3DRangeImageHeightCalculatorResult from its CVT equivilent. Construct a Cog3DRangeImageHeightCalculatorResult based on its CVT equivilent. Constructs a new instance of this class as a deep copy of the given instance. The Cog3DRangeImageHeightCalculatorResult object to be copied. May not be null. If the input argument is null. Constructs a new instance of this class. The result of running the Cog3DRangeImageHeightCalculator. Enumeration of different modes for including or excluding a range of pixel height values from the overall height calculation. Include only the values which fall outside the height range in the height calculation. Include only the values which fall within the height range in the height calculation. Enable creation of records by bitwise ORing the appropriate Cog3DRangeImageVolumeCalculatorLastRunRecordDiagConstants. The default is (int)Cog3DRangeImageVolumeCalculatorLastRunRecordDiagConstants::InputImageByReference | (int)Cog3DRangeImageVolumeCalculatorLastRunRecordDiagConstants::Region | (int)Cog3DRangeImageVolumeCalculatorLastRunRecordDiagConstants::UsedPixels Fires when this property changes. The following state flag will be set: SfLastRunRecordDiagEnable Enable creation of records by bitwise ORing the appropriate Cog3DRangeImageVolumeCalculatorLastRunRecordConstants. The default is Cog3DRangeImageVolumeCalculatorLastRunRecordConstants::None Fires when this property changes. The following state flag will be set: SfLastRunRecordEnable SfCreateLastRunRecord Enable creation of records by bitwise ORing the appropriate Cog3DRangeImageVolumeCalculatorCurrentRecordConstants. The default is (int)Cog3DRangeImageVolumeCalculatorCurrentRecordConstants::InputImage | (int)Cog3DRangeImageVolumeCalculatorCurrentRecordConstants::Region Fires when this property changes. The following state flag will be set: SfCurrentRecordEnable SfCreateCurrentRecord The result of running the volume calculator tool Fires when this property changes. The following state flag will be set: SfResult The volume calculator tool's run parameters operator The value can not be null. The default is a default Cog3DRangeImageVolumeCalculator. Fires when this property changes. The following state flag will be set: SfRunParams The calculated volume is the volume bounded by the range image surface and this plane (on the ). The default is a horizontal plane at z = 0. Fires when this property changes. The following state flag will be set: SfBasePlane If BasePlane is set to null a horizontal plane at z = 0 will be used. The 2D region within which to calculate the volume. A pixel is considered inside the 2D region if the pixel's 2D center falls within the region. The region can be null to use the entire range image. The default is a default CogRectangleAffine Fires when this property changes. The following state flag will be set: SfRegion The range image surface data used in the volume calculation. The default is null. Fires when this property changes. The following state flag will be set: SfInputImage Serialization Constructor Returns a deep copy of this class instance. This method's implementation calls . Constructs a deep copy of the supplied Cog3DRangeImageVolumeCalculatorTool. The Cog3DRangeImageVolumeCalculatorTool to be copied. May not be null. Thrown if is null. Thrown if does not support . The properties of are copied as follows: is copied by calling with the CogImageCopyModeConstants flag set. is copied by calling (an exception is thrown if the region cannot does not support ). is copied by calling . is copied by calling . is copied by calling . The are copied by calling . The data bindings of the original tool are duplicated in the new tool. The databindings are copied with their destinations pointing _into_ the new tool, while their sources are copied directly and still point _from_ the same upstream objects (tools) as the original tool's databindings. The is copied by calling . The is copied by calling . Construct a new instance of this class. Cache the last run record data so it can be accesed by CreateLastRunRecord. Clear any cached last run record data. This bit will be set in the EventArgs of a Changed event every time the value returned by LastRunRecordDiagEnable may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by LastRunRecordEnable may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by CurrentRecordEnable may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by RunParams may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by RunParams may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Region may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Region may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by InputImage may have changed. A range image has pixel values that represent the distance from a reference plane to an object. The volume calculator tool measures the volume enclosed between the surface of range image pixel data and one side of a user supplied base plane. The computed volume is returned in the units specified in the range image. A range image pixel is "used" to calculate the volume if: it is inside the 2D input of the tool. it is marked as "care" in the optional provided as part of the . it is marked as a "visible pixel" in the visible pixel mask of the . The visible pixel mask can be accessed by calling on the range image. its height (relative to the base plane) is greater than or equal to the . Pixels that meet these conditions contribute to the volume computation and are marked as "used" in the . Note that the height of an individual range image pixel is defined as the signed distance from the center of the range image pixel to the nearest point on the base plane (measured in selected space 3D units). Note, however, that the volume is calculated by summing the contribution of the range image pixels within the projected along the pixel coordinate z axis until they intersect the base plane. Enumeration of diagnostic data that can be provided in the Tool's LastRunRecord. Include all possible records. Include a mask graphic representing which range image pixels were used in the volume calculation Include a graphic representing the input image mask in the LastRunRecord. Include a copy of the region in the LastRunRecord. Include a deep copy of the input image in the LastRunRecord. Include a reference to the input image in the LastRunRecord. Do not include any of the non-diagnostic data in the LastRunRecord. Enumeration of non-diagnostic data that can be provided in the Tool's LastRunRecord. Include all possible records. Do not include any of the non-diagnostic data in the LastRunRecord. Enumeration of data that can be provided in the Tool's CurrentRecord. Include all possible records in the CurrentRecord. Include a graphic representing the input image mask in the CurrentRecord. Include the (interactive) region to be processed at run time in the CurrentRecord. Include the input image in the CurrentRecord. Do not include any records in the CurrentRecord. Computes the volume between the range image surface and a specified base plane. The plane has a 3D selected space coordinate normal vector (0, 0, 1), i.e. oriented along the positive z axis. The range image surface data relative which the volume is calculated. The 2D region within which to calculate the volume. The region can be null to use the entire range image. The z value of the horizontal 3D plane, in the selected space 3D coordinates of the range image Thrown if is null. Thrown if is is not allocated. Thrown if has a transform that is singular (i.e., not invertible). A range image pixel is "used" to calculate the volume if: it is inside the 2D input of the tool. it is marked as "care" in the optional provided as part of the . it is marked as a "visible pixel" in the visible pixel mask of the . The visible pixel mask can be accessed by calling on the range image. its height (relative to the base plane) is greater than or equal to the . Pixels that meet these conditions contribute to the volume computation and are marked as "used" in the . Note that the height of an individual range image pixel is defined as the signed distance from the center of the range image pixel to the nearest point on the base plane (measured in selected space 3D units). Note, however, that the volume is calculated by summing the contribution of the range image pixels within the projected along the pixel coordinate z axis until they intersect the base plane. Computes the volume between the range image surface and a specified base plane. The range image surface data reletive which the volume is calculated The 2D region within which to calculate the volume. The region can be null to use the entire range image. The calculated volume is the volume bounded by the range image surface and the base plane (on the ). The basePlane can be null to use a hoizontal plane at z = 0. Thrown if is null. Thrown if is is not allocated. Thrown if has a transform that is singular (i.e., not invertible). Thrown if is degenerate. Thrown if is vertical in pixel space. A range image pixel is "used" to calculate the volume if: it is inside the 2D input of the tool. it is marked as "care" in the optional provided as part of the . it is marked as a "visible pixel" in the visible pixel mask of the . The visible pixel mask can be accessed by calling on the range image. its height (relative to the base plane) is greater than or equal to the . Pixels that meet these conditions contribute to the volume computation and are marked as "used" in the . Note that the height of an individual range image pixel is defined as the signed distance from the center of the range image pixel to the nearest point on the base plane (measured in selected space 3D units). Note, however, that the volume is calculated by summing the contribution of the range image pixels within the projected along the pixel coordinate z axis until they intersect the base plane. if the SelectedSpaceName3D of the range image is not in the tree, or if the SelectedSpaceName3D of the plane is not in the tree. Gets or sets the 2D InputImageMask Y offset value in pixels. The InputImageMask Y offset value in pixels. The X and Y offset values set the offset from the upper-left corner of the run-time input image to th upper-left corner of the in pixels. The default is 0. Fires when this property changes. The following state flag will be set: SfInputImageMaskOffsetY Gets or sets the 2D InputImageMask X offset value in pixels. The InputImageMask X offset value in pixels. The X and Y offset values set the offset from the upper-left corner of the run-time input image to th upper-left corner of the in pixels. The default is 0. Fires when this property changes. The following state flag will be set: SfInputImageMaskOffsetX Gets or sets the input image mask. The input image mask allows you to ignore regions of the range image by masking them out. InputImageMask is optional and may be null if no mask is required. The default is null. 255 = use this pixel 0 = ignore this pixel Fires when this property changes. The following state flag will be set: SfInputImageMaskOffset The input image mask is applied to the input image after taking the and into account. Specifies whether or not to include a pixel counts diagnostics image in the result. The pixel counts diagnostics image indicates which pixels in the range image were used by the volume calculation. The default is true. Fires when this property changes. The following state flag will be set: SfComputePixelCountsDiagImage Specifies which side of the plane to consider when computing the volume. Only range image pixels that are on the specified side of the plane will be used in computing the volume. The default is Cog3DPlaneSideConstants::IncreasingPlaneNormal. Fires when this property changes. The following state flag will be set: SfPlaneSide The minimum height value, in selected space 3D units, for each range image pixel in order to include that pixel in the volume computation. The minimum height threshold must be in the range [0, Double::MaxValue]. The default is 0.0. The "height" of a range image pixel relative to a base plane is defined as the signed distance from the center of the range image pixel to the nearest point on the base plane, measured in selected space 3D coordinates. The user can specify a minimum height threshold so that pixels with a small height (e.g. noise about the base plane) can be excluded from the volume computation. Only pixels with a positive height that is greater than or equal to the user-specified minimum height threshold contribute to the computed volume. Note that height threshold does not affect the amount a pixel used in the computation contributes to the volume. The height threshold only determines whether or not a range image pixel is used. Throws if set to a value less than 0.0. Fires when this property changes.The following state flag will be set:SfMinimumHeightThreshold Gets or sets the region mode. This controls how the optional run time region is applied to the input image. The region mode. May be either PixelAlignedBoundingBox or PixelAlignedBoundingBoxAdjustMask. Default is PixelAlignedBoundingBoxAdjustMask. CogRegionModeConstants::AffineTransform is not a supported region mode. If the supplied argument is not either PixelAlignedBoundingBox or PixelAlignedBoundignBoxAdjustMask. Fires when this property changes. The following state flag will be set: SfRegionMode This bit will be set in the EventArgs of a Changed event every time the value returned by InputImageMaskOffsetX may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by InputImageMaskOffsetX may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by InputImageMask may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by ComputePixelCountsDiagImage may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by PlaneSide may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by MinimumHeightThreshold may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by RegionMode may have changed. Serialization Constructor Constructs a new instance of this class as a deep copy of the given instance. The Cog3DRangeImageVolumeCalculator object to be copied. May not be null. If the input argument is null. Constructs a new instance of this class The volume calculator tool operator The 2D distance in the Y direction from the upper left corner of the original input image to the upper left corner of the (in pixels). The 2D distance in the X direction from the upper left corner of the original input image to the upper left corner of the (in pixels). Diagnostic which identifies which pixels in the range image fall into each of 4 different categories. See for the definition of the different categories. Each pixel in the pixel counts diag image is a bit-wise or of . A range image pixel is "used" to calculate the volume if: it is inside the 2D input of the tool. it is marked as "care" in the optional provided as part of the . it is marked as a "visible pixel" in the visible pixel mask of the . The visible pixel mask can be accessed by calling on the range image. its height (relative to the base plane) is greater than or equal to the . Pixels that meet these conditions contribute to the volume computation and are marked as "used" in the . Note that the height of an individual range image pixel is defined as the signed distance from the center of the range image pixel to the nearest point on the base plane (measured in selected space 3D units). Note, however, that the volume is calculated by summing the contribution of the range image pixels within the projected along the pixel coordinate z axis until they intersect the base plane. Result information which identifies the number of pixels in the range image that fall into each of 4 different categories. See for the definition of the different categories. A range image pixel is "used" to calculate the volume if: it is inside the 2D input of the tool. it is marked as "care" in the optional provided as part of the . it is marked as a "visible pixel" in the visible pixel mask of the . The visible pixel mask can be accessed by calling on the range image. its height (relative to the base plane) is greater than or equal to the . Pixels that meet these conditions contribute to the volume computation and are marked as "used" in the . Note that the height of an individual range image pixel is defined as the signed distance from the center of the range image pixel to the nearest point on the base plane (measured in selected space 3D units). Note, however, that the volume is calculated by summing the contribution of the range image pixels within the projected along the pixel coordinate z axis until they intersect the base plane. The calculated volume between the 3D surface defined by the range image pixels and the specified base plane, measured in the coordinates (e.g. mm3) of the range image A range image pixel is "used" to calculate the volume if: it is inside the 2D input of the tool. it is marked as "care" in the optional provided as part of the . it is marked as a "visible pixel" in the visible pixel mask of the . The visible pixel mask can be accessed by calling on the range image. its height (relative to the base plane) is greater than or equal to the . Pixels that meet these conditions contribute to the volume computation and are marked as "used" in the . Note that the height of an individual range image pixel is defined as the signed distance from the center of the range image pixel to the nearest point on the base plane (measured in selected space 3D units). Note, however, that the volume is calculated by summing the contribution of the range image pixels within the projected along the pixel coordinate z axis until they intersect the base plane. Serialization Constructor Populate the members of the Cog3DRangeImageVolumeCalculatorResult from its CVT equivilent. Construct a Cog3DRangeImageVolumeCalculatorResult based on its CVT equivilent. Constructs a new instance of this class as a deep copy of the given instance. The Cog3DRangeImageVolumeCalculatorResult object to be copied. May not be null. If the input argument is null. Constructs a new instance of this class. The result of running the 3D Volume Calculator Tool This enumeration is used to specify one side of a plane. The side of the plane containing points in the negative normal vector direction. The side of the plane containing points in the positive normal vector direction. The number of pixels that were actually used by the tool or function to compute the result. Such pixels must always be visible care pixels, but some functions may choose to impose other restrictions as well. Each function should document how it computes NumUsedPels. Note that this value is always less than or equal to NumVisibleCarePels. The number of pixels in the effective source region that are both care pixels and visible pixels. Note that this value is always less than or equal to NumCarePels. The number of care pixels in the region of interest. Note that this value is always less than or equal to NumRegionBoundingBoxPixels. The number of pixels in the pixel aligned bounding box of the region of interest. Populate the members of the pixelCount_c from its CVT equivilent. Construct a Cog3DRangeImagePixelCounts based on its CVT equivilent. Serialization Constructor Constructs a new instance of this class as a deep copy of the given instance. The Cog3DRangeImagePixelCounts object to be copied. May not be null. If the input argument is null. Constructs a new instance of this class. Result information about how a 3D tool used the pixels of a range image. This enumeration is used as a diagnostic, it reports whether a range image pixel was "Used" by a 3D tool to produce the result or if the pixel was ignored by the tool. A pixel is a Used pixel if: it is a VisibleCare pixel AND it was used by the operation that is reporting the pixel count A pixel is a VisibleCare pixel if: it is a Care pixel AND it is marked as visible in the range image. A pixel is a Care pixel if: it lies within the region of interest, AND its is not filtered out when an input image mask is applied NOTE: THE PIXELS IN THE PIXEL COUNT MASK RETURNED FROM CVT ARE A BITWISE OR OF THESE CONSTANTS. THIS MAKES IT IMPORTANT THAT THE VALUES OF THESE ENUMS ARE KEPT IN SYNC WITH THEIR CVT EQUIVILENTS (WE DON'T CONVERT THE VALUES OF THE RETURNED CVT IMAGE TO MACTH THESE VALUES). A pixel is a RegionBoundingBox pixel if: it lies within the pixel aligned bounding box of the region of interest Serialization constructor for Cog3DRangeImagePlaneEstimatorTool object. The standard SerializationInfo argument. The standard StreamingContext argument. Gets the results from the last call to the Run method. A new instance of Cog3DRangeImagePlaneEstimatorResult is created for each run of the tool. Fires when this property changes. The following state flag may be affected: SfResult Gets or sets the run parameters (operator) for this Cog3DRangeImagePlaneEstimatorTool. The value can not be null. The default is a default Cog3DRangeImagePlaneEstimator. Fires when this property changes. The following state flag may be affected: SfRunParams Gets or sets the optional 2D region that specifies a portion of the input image to be used for plane estimation. The property specifies exactly how this region will be applied to the InputImage. The default is null. Fires when this property changes. The following state flag may be affected: SfRegion Gets or sets the input range image for use in plane estimation. The default is null. If the supplied input image is not CogImage16Range. Fires when this property changes. The following state flag may be affected: SfInputImage Enable creation of records by bitwise ORing the appropriate Cog3DRangeImagePlaneEstimatorLastRunRecordDiagConstants. the default is (int)Cog3DRangeImagePlaneEstimatorLastRunRecordDiagConstants::InputImageByReference | (int)Cog3DRangeImagePlaneEstimatorLastRunRecordDiagConstants::Region | (int)Cog3DRangeImagePlaneEstimatorLastRunRecordDiagConstants::InputImageMask Fires when this property changes. The following state flag may be affected: SfLastRunRecordDiagEnable Enable creation of records by bitwise ORing the appropriate Cog3DRangeImagePlaneEstimatorLastRunRecordConstants. The default is Cog3DRangeImagePlaneEstimatorLastRunRecordConstants::All Fires when this property changes. The following state flag may be affected: SfLastRunRecordEnable SfCreateLastRunRecord Enable creation of records by bitwise ORing the appropriate Cog3DRangeImagePlaneEstimatorCurrentRecordConstants. The default is (int)Cog3DRangeImagePlaneEstimatorCurrentRecordConstants::InputImage | (int)Cog3DRangeImagePlaneEstimatorCurrentRecordConstants::Region | (int)Cog3DRangeImagePlaneEstimatorCurrentRecordConstants::InputImageMask Fires when this property changes. The following state flag may be affected: SfCurrentRecordEnable SfCreateCurrentRecord Finalize this Cog3DRangeImagePlaneEstimatorTool object. Destruct this Cog3DRangeImagePlaneEstimatorTool object. Construct a deep copy of the supplied Cog3DRangeImagePlaneEstimatorTool object. The Cog3DRangeImagePlaneEstimatorTool object to be copied. May not be null. If the input argument is null. Construct a default Cog3DRangeImagePlaneEstimatorTool object. This bit will be set in the EventArgs of a Changed event every time the value returned by Results may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by Region may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by InputImage may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by RunParams may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by CurrentRecordEnable may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by LastRunRecordDiagEnable may have changed. This bit will be set in the EventArgs of a Changed event every time the value returned by LastRunRecordEnable may have changed. The purpose of the plane estimator tool is to find the best fitting plane to a surface in a range image. This plane estimator tool allows the user to fit a plane using pixels specified in a region or specified 2D point locations. This class encapsulates all of the classes needed to perform plane estimation on a range image. The plane is returned in the units specified in the range image. When is set to Area: Range image pixels that meet the following criteria are used to fit the plane: 1) must be contained within the 2D region of interest of the range image. No region means all of the input image. 2) must be marked as "Care" if an input image mask is provided. 3) must be marked as "Visible" in the range image's visible pixel mask. Pixels that meet these conditions are used to fit the plane and are counted in When is set to Points: Range image pixels that meet the following criteria are used to fit the plane: 1) must be contained within the range image boundaries. 2) must be marked as "Visible" in the range image's visible pixel mask. Pixels that meet these conditions are used to fit the plane and are counted in Perform 3D plane fit on the supplied range image. The 3D Plane (defined in SelectedSpaceName3D), RMS error and number of pixels used in estimation. When is set to Area: Range image pixels that meet the following criteria are used to fit the plane: 1) must be contained within the 2D region of interest of the range image. No region means all of the input image. 2) must be marked as "Care" if an input image mask is provided. 3) must be marked as "Visible" in the range image's visible pixel mask. Pixels that meet these conditions are used to fit the plane and are counted in When is set to Points: Range image pixels that meet the following criteria are used to fit the plane: 1) must be contained within the range image boundaries. 2) must be marked as "Visible" in the range image's visible pixel mask. Pixels that meet these conditions are used to fit the plane and are counted in The range image. An optional region used only the FitMethod is set to Area. May be null. If supplied, this region is used to define the pixels used in fitting the 3D plane in the range image. The region mode is defaulted to PixelAlignedBoundingBoxAdjustMask. If no inputRegion is supplied, the entire input image is processed. If the supplied input image argument is not a CogImage16Range. If the supplied input image argument is null. If the supplied input image unbound. If the transform is not linear If region is outside of image There are fewer than 3 points in the list of points that correspond to visible pixel locations in the image, or the combination of the input mask and visible pixel mask contains less than 3 care/visible pixels. The list of points doesn't include 3 non-collinear points. The list of input points is fewer than 3. The pixel location of one or more points in the list of input points falls outside the extent of the image. The RMS residual was above the threshold specified in the runtime params. The tool was unable to compute the plane. If licensing for this operator cannot be confirmed. For Cognex internal use only Delete a point from the input point list using the index specified If the index is outside the range of points available. invalid range exception will be thrown Fires when this property changes. The following state flag may be affected: SfNumPoints Add a point to the locations. The values are in selected space. The point will be added at the the end of the list. Out of memory exception will be thrown if the point could not be added. Fires when this property changes. The following state flag may be affected: SfNumPoints Gets or sets the plane direction. The default plane direction positive image z direction. If the argument supplied is not PositiveImageZ or NegativeImageZ. The plane direction specifies the direction in which the estimated plane's normal should point. Note that, regardless of the direction selected, the plane is always returned in selected space. Fires when this property changes. The following state flag may be affected: SfPlaneDirection Sets the (x,y) coordinates defined in selected space for a single point using the index. The points are used only when FitMethod is set to Points. The default is (0,0) If the index is outside the range of points available. Fires when this property changes. The following state flag may be affected: SfGetPointX SfGetPointY Gets the (x,y) coordinates defined in selected space for a single point using the index. The points are used only when FitMethod is set to Points. The default is (0,0) If the index is outside the range of points available. Fires when this property changes. The following state flag may be affected: SfGetPointX SfGetPointY Sets the Y (defined in selected space) for a single point using the index. The points are used only when FitMethod is set to Points. The default is 0. If the index is outside the range of points available. Fires when this property changes. The following state flag may be affected: SfGetPointY Gets the Y (defined in selected space) for a single point using the index. The points are used only when FitMethod is set to Points. The default is 0. If the index is outside the range of points available. Fires when this property changes. The following state flag may be affected: SfGetPointY Sets the X (defined in selected space) for a single point using the index. The points are used only when FitMethod is set to Points. The default is 0 If the index is outside the range of points available. Fires when this property changes. The following state flag may be affected: SfGetPointX Gets the X (defined in selected space) for a single point using the index. The points are used only when FitMethod is set to Points. The default is 0 If the index is outside the range of points available. Fires when this property changes. The following state flag may be affected: SfGetPointX Gets or sets the number of 2D locations specified in selected space. The points are used only when FitMethod is set to Points. A minimum of 3 points are required to fit a plane. The default is 0. If the index is less than 0. When not enough memory available to allocate the number of points specified. Fires when this property changes. The following state flag may be affected: SfNumPoints The locations are only used when the Fit Method is set to Points. Gets or sets the NeighborhoodSizeYInPixels. Only used when is set to Points and is set to NeighborhoodMedian or Neighborhood. The neighborhood size in Y. The neighborhood to use when the ZLookupMethod is NeighborhoodMedian or Neighborhood. The default is 5. If the supplied argument is less than 1. Fires when this property changes. The following state flag may be affected: SfNeighborhoodSizeYInPixels Gets or sets the NeighborhoodSizeXInPixels. Only used when is set to Points and is set to NeighborhoodMedian or Neighborhood. The neighborhood size in X. The neighborhood to use when the ZLookupMethod is NeighborhoodMedian or Neighborhood. The default is 5. If the supplied argument is less than 1. Fires when this property changes. The following state flag may be affected: SfNeighborhoodSizeXInPixels Gets or sets the Residuals RMS Threshold. If the Residuals RMS computed for the fitted plane is above this threshold. The tool will throw. The default is HUGE_VAL. If the supplied argument is less than 0. Fires when this property changes. The following state flag may be affected: SfResidualsRMSThreshold Gets or sets the InputImageMask Y offset value in pixels. The InputImageMask Y offset value in pixels. The X and Y offset values set the offset from the upper-left corner of the run-time input image to the upper-left corner of the in pixels. The default is 0. Fires when this property changes. The following state flag may be affected: SfInputImageMaskOffsetY Gets or sets the InputImageMask X offset value in pixels. The InputImageMask X offset value in pixels. The X and Y offset values set the offset from the upper-left corner of the run-time input image to the upper-left corner of the in pixels. The default is 0. Fires when this property changes. The following state flag may be affected: SfInputImageMaskOffsetX Gets or sets the input image mask. The input image mask allows you to ignore regions of the range image by masking them out. InputImageMask is optional and may be null if no mask is required. The default is null. 255 = use this pixel 0 = ignore this pixel Fires when this property changes. The following state flag may be affected: SfInputImageMask The input image mask is applied to the input image after taking the and into account. Gets or sets the FitMethod. The fit Method specifies which mode is used to fit the plane. May be either Area or Points. The default is Area. If the supplied argument is not Area or Points. Fires when this property changes. The following state flag may be affected: SfFitMethod Gets or sets the ZLookupMethod. The Z Lookup Method specifies how z values are looked up from pixels in the range image. May be either Neighborhood, SinglePixel or NeighborhoodMedian. The default is Neighborhood. The Z Lookup Method is only used when the is set to Points. If the supplied argument is not Neighborhood, SinglePixel or NeighborhoodMedian. Fires when this property changes. The following state flag may be affected: SfZLookupMethod Gets or sets the region mode. This controls how the optional run time region is applied to the input image. The region mode. May be either PixelAlignedBoundingBox or PixelAlignedBoundingBoxAdjustMask. The Default is PixelAlignedBoundingBoxAndAdjustMask. If the supplied argument is not either PixelAlignedBoundingBox or PixelAlignedBoundignBoxAdjustMask. Fires when this property changes. The following state flag may be affected: SfRegionMode Serializer for point vector object. The standard SerializationInfo argument. The standard StreamingContext argument. Serialization constructor for Cog3DRangeImagePlaneEstimator object. The standard SerializationInfo argument. The standard StreamingContext argument. Finalize this Cog3DRangeImagePlaneEstimator. Destruct this Cog3DRangeImagePlaneEstimator. Construct a deep copy of the supplied Cog3DRangeImagePlaneEstimator object. The Cog3DRangeImagePlaneEstimator object to be copied. May not be null. If the supplied argument is null. If the supplied argument is disposed. Construct a default Cog3DRangeImagePlaneEstimator object. This bit will be set in the EventArgs of a changed event every time the value returned by PlaneDirection may have cahnged. This bit will be set in the EventArgs of a Changed event every time the value returned by GetPointY may have cahnged. This bit will be set in the EventArgs of a Changed event every time the value returned by GetPointX may have cahnged. This bit will be set in the EventArgs of a Changed event every time the value returned by NumPoints may have cahnged. This bit will be set in the EventArgs of a Changed event every time the value returned by FitMethod may have cahnged. This bit will be set in the EventArgs of a Changed event every time the value returned by NeighborhoodSizeYInPixels may have cahnged. This bit will be set in the EventArgs of a Changed event every time the value returned by NeighborhoodSizeXInPixels may have cahnged. This bit will be set in the EventArgs of a Changed event every time the value returned by ZLookupMethod may have cahnged. This bit will be set in the EventArgs of a Changed event every time the value returned by ResidualsRMSThreshold may have cahnged. This bit will be set in the EventArgs of a Changed event every time the value returned by InputImageMaskOffsetY may have cahnged. This bit will be set in the EventArgs of a Changed event every time the value returned by InputImageMaskOffsetX may have cahnged. This bit will be set in the EventArgs of a Changed event every time the value returned by InputImageMask may have cahnged. This bit will be set in the EventArgs of a Changed event every time the value returned by RegionMode may have cahnged. The plane estimator operator. The best fit plane found. The plane is defined in the coordinates of the range image When FitMethod is set to Area: Range image pixels that meet the following criteria are used to fit the plane: 1) must be contained within the 2D region of interest of the range image. No region means all of the input image. 2) must be marked as "Care" if an input image mask is provided. 3) must be marked as "Visible" in the range image's visible pixel mask. Pixels that meet these conditions are used to fit the plane and are counted in When FitMethod is set to Points: Range image pixels that meet the following criteria are used to fit the plane: 1) must be contained within the range image boundaries. 2) must be marked as "Visible" in the range image's visible pixel mask. Pixels that meet these conditions are used to fit the plane and are counted in The number of points used to fit the plane The Residuals RMS error. The RMS error should be small (less than 0.1) to indicate that the plane is properly fitted. Serialization constructor for Cog3DRangeImagePlaneEstimatorResult object. The standard SerializationInfo argument. The standard StreamingContext argument. Finalize this Cog3DRangeImagePlaneEstimatorResult. Destruct this Cog3DRangeImagePlaneEstimatorResult. Constructs a new instance of this class as a deep copy of the given instance. The Cog3DRangeImagePlaneEstimatorResult object to be copied. May not be null. If the input argument is null. Constructs a new instance of this class. The result of running the plane Estimator tool. Enumeration of diagnostic data that can be provided in the Tool's LastRunRecord. Include all of the diagnostic data in the LastRunRecord. Include a copy of the points in the LastRunRecord. When the ZLookupMethod is set to Neighborhood or NeighborhoodMedian then a child rectangle graphic representing the neighbors will be displayed. Include a copy of the input image mask in the LastRunRecord. Include a copy of the region in the LastRunRecord. Include a deep copy of the input image in the LastRunRecord. Include a reference to the input image in the LastRunRecord. Do not include any of the diagnostic data in the LastRunRecord. Enumeration of non-diagnostic data that can be provided in the Tool's LastRunRecord. Include all of the non-diagnostic data in the LastRunRecord. Do not include any of the non-diagnostic data in the LastRunRecord. Enumeration of data that can be provided in the Tool's CurrentRecord. Include all possible records in the CurrentRecord. Include a graphic representing the input points in the CurrentRecord. When the ZLookupMethod is set to Neighborhood or NeighborhoodMedian then a child rectangle graphic representing the neighbors will be displayed. Include a graphic representing the input image mask in the CurrentRecord. Include the (interactive) region to be used as a mask in the CurrentRecord. Include the input image in the CurrentRecord. Do not include any records in the CurrentRecord. Constants used to specify how the plane is computed. Use the points specified by the region and mask to fit the plane. Use the points to fit the plane. Constants used to specify how z values are looked up from a range image. All visible pixels inside the neighborhood around each specified location are used to estimate the plane. The z value for each pixel is looked up using 'singlePixel' mode. Only valid when FitMethod is set to Points. the z value is inferred from the median of an NxM neighborhood around each pixel in the range image. Only valid when FitMethod is set to Points. the z value is inferred from a single pixel in the range image. An enumeration that specifies the direction in which the estimated plane's normal should point. Note that, regardless of the direction selected, the plane is always returned in selected space. The estimated plane's normal (in selected space) is forced to point towards the direction that corresponds approximately to the negative z-axis in pixel space coordinates, when the plane is mapped to pixel space coordinates. The estimated plane's normal (in selected space) is force to point towards the direction that corresponds approximately to the positive z-axis in pixel space coordinates, when the plane is mapped to pixel space coordinates. This static method generates 3D model features from the specified crsp2D3DsForAllPartPoses and the specified raw2DFromPhys3Ds. A List of camera calibration objects. May not be null. The List of Lists of 2D feature to 3D model feature correspondences. The specified crsp2D3DsForAllPartPoses are indexed as crsp2D3DsForAllPartPoses[partPoseIndex][crspIndex]. Each crsp2D3D in should be fully initialized. It is OK for the FeatureRaw2D member of some crsp2D3DsForAllPartPoses to be null, indicating that no 2D feature was found. If any crsp2D3D in [i][j] and [m][n] correspond to the same 3D model feature, then [i][j].FeatureModel3DIndex must be the same as [m][n].FeatureModel3DIndex, and [i][j].FeatureModel3DType must be the same as [m][n].FeatureModel3DType. [i][j].PartInstanceIndex must be 0. A results object containing a List of the 3D model features and a List of the pose of the part in each part pose. The List of part poses in the results object is indexed by part pose index. The List of 3D model features is indexed by the FeatureModel3DIndex used in the specified crsp2D3DsForAllPartPoses. Thus, the crsp2D3Ds in with a FeatureModel3DIndex of N, were used in the generation of ().GetFeatureModel3DResults()[N]. If ().GetFeatureModel3DResults()[i].IsFound is false, it means that there was not enough information in the to generate 3D model feature[i]. If any of the input arguments are null, or any input argument includes a null item with the exception that the FeatureRaw2D member of a crsp2D3D can be null. If .Count is less than 2; If [i] includes duplicate items with the same CameraIndex, the same PartInstanceIndex, and corresponding to the same model point; If [i][j]. PartInstanceIndex is not 0; If [i][j].CameraIndex is not inside range [0, .Count-1]; If [i][j].FeatureModel3DType is not Cog3DVect3, Cog3DLine, Cog3DLineSeg, Cog3DCylinder, or Cog3DCircle; If [i][j].FeatureModel3DType is Cog3DVect3, but [i][j].Subfeature is not Cog3DSubfeatureConstants.Point0; If [i][j].FeatureModel3DType is Cog3DLine or Cog3DLineSeg, but [i][j].Subfeature is not Cog3DSubfeatureConstants.StraightEdge0; If [i][j].FeatureModel3DType is Cog3DCircle, but [i][j].Subfeature is not Cog3DSubfeatureConstants.CircleEdge0 or Cog3DSubfeatureConstants.Point0; If [i][j].FeatureModel3DType is Cog3DCylinder, but [i][j].Subfeature is not Cog3DSubfeatureConstants.OccludingEdge0, .OccludingEdge1, .CircularEdge0, or .CircularEdge1; If [i][j].FeatureRaw2D is not null, and its type is not Cog3DVect2, or Cog3DVect2Collection; If [i][j].FeatureModel3DType is Cog3DVect3, [i][j].FeatureRaw2D has type of Cog3DVect2Collection, and its size is greater than 1. The should be created by placing a single part under your cameras and simultaneously acquiring images of the one part from all the cameras. This set of images constitutes a "part pose". You should create several part poses of your part, see the Best Practices listed below for details. Providing multiple part poses improves the accuracy of the generated 3D model features. After collecting the part poses (sets of images of the part), you need to extract the crsp2D3Ds from each of them. For each part pose, extract the crsp2D3Ds from the images of the part pose and put them into a List. The List of crsp2D3Ds from each part pose is then placed in another List thereby creating which is indexed as [partPoseIndex][crspIndex]. The 3D model features in the returned results object are in the Model3D coordinate space. The Model3D coordinate space is defined in part pose 0 or [0] i.e. the pose of the Phys3D origin in part pose 0 will be used to define the origin of the part's 3D coordinate space - Model3D. Thus, the pose of the part (the transform from Model3D space to Phys3D space) in [0] is the identity transform. If [i][j].FeatureRaw2D is null or empty, then [i][j] is ignored during model feature generation. All the specified camera calibrations must refer to the same Phys3D coordinate space. Best Practices for Generating 3D Model Features: The FOV must contain a single part. Use the 5 part poses described below when creating . Pose 0: Place the part as close as possible to the origin of Phys3D, use a z rotation of 0 degrees. Note that the origin of the Model3D coordinate space (the coordinate space all your 3D model features are defined in) is defined by the Phys3D origin in this pose. Pose 1: Place the part in the upper left corner of FOV visible by both cameras, use a z rotation of ~20 degrees. Pose 2: Place the part in the upper right corner of FOV visible by both cameras, use a z rotation of ~45 degrees. Pose 3: Place the part in the lower left corner of FOV visible by both cameras, use a z rotation of ~67 degrees. Pose 4: Place the part in the lower right corner of FOV visible by both cameras, use a z rotation of ~90 degrees. Verify the IsFound and the residuals in GetFeatureModel3DResults() from the returned results object are acceptable for your 3D model. This class provides 3D model feature generation using crsp2D3Ds and camera calibrations. Use this class to generate the 3D features in your 3D model. Gets a deep copy of the pose results for all the part poses used in 3D model feature generation, indexed by part pose. A deep copy of the pose results for all the part poses. Gets a deep copy of the generated 3D model feature results, indexed by FeatureModel3DIndex. A deep copy of the generated 3D model feature results. This class holds the results from a 3D model feature generation operation. Note that this class is immutable - it may not be changed once it has been constructed. The usage model for this class is that it gets factoried by the Cog3DModelFeatureGeneratorUsingCrsp2D3Ds class. Gets the List of Phys3D residual statistics for this 3D model feature result indexed by part pose. If IsFound is false. The List of residual statistics of this result in Phys3D space for all the part poses. Gets the List of Raw2D residual statistics for this 3D model feature result indexed by part pose. If IsFound is false. The List of residual statistics of this 3D model feature result in Raw2D space for all the part poses. Gets a deep copy of the flags indicating which residuals are valid. Indexed by part pose. A deep copy of the flags indicating which residuals are valid. If IsFound is false. The returned List ResidualsValid indicates whether or not the 2D features from a part pose contributed to the generation of this 3D model feature. If ResidualsValid[i] is true, it means part pose[i] had 2D features used in generating this 3D feature, and ResidualsRaw2D[i] and ResidualsPhys3D[i] are valid. If ResidualsValid[i] is false, it means 2D features from part pose[i] were not used in generating this 3D model feature, and ResidualsRaw2D[i] and ResidualsPhys3D[i] are not valid. Gets a deep copy of the generated 3D model feature. Deep copy of the generated 3D model feature. If IsFound is false. The return object type will be one of Cog3DVect3, Cog3DCircle, Cog3DLine, Cog3DLineSeg, or Cog3DCylinder. Gets the 3D model feature index of this 3D feature within the List of 3D model features. The 3D model feature index, which is the same as FeatureModel3DIndex in the crsp2D3Ds used for this 3D model feature generation. Gets whether or not this 3D model feature was found. True if this 3D model feature was found; false otherwise. This class holds one 3D model feature result from a 3D model feature generation operation. This class is immutable - it may not be changed once it has been constructed. The usage model for this class is that it gets factoried by the Cog3DModelFeatureGeneratorUsingCrsp2D3Ds class. This method performs a 3D pose refinement based on an initial pose, the specified crsp2D3DsUnified, and the specified camera calibrations, from one or multiple cameras/views. Note that this method uses all the input features. An initial estimation for the pose. May not be NULL. The refined 3D pose result. The pose maps point/shape features from Model3D space to Phys3D space. A List of camera calibrations. One calibration per camera/view. The size of this list specifies the number of cameras/views. May not be null. A List of crsp2D3Ds. May not be null. Note that each item has the camera index, the index of the part instance, the 2D feature(s), the corresponding 3D feature index, and sub-feature type. Note that when there is multiple part instances, the PartInstanceIndex of must be unified for all cameras by calling part corresponder ( Cog3DPartCorresponderUsingCrsp2D3Ds.Execute ). Therefore, for the same 3D part instance, the same PartInstanceIndex is used for the corresponding crsp2D3Ds items across all cameras. If there is only one part instance, and the PartInstanceIndex is 0 for all items of crsp2D3Ds, then no need to call part corresponder. Note that if [i].FeatureRaw2D is null or empty, then [i] is ignored during pose estimation. This parameter specifies which part instance to run the pose estimation. If [i].PartInstanceIndex is not equal to , then that element is not used in the pose estimation. If any of the arguments (except ) is null, or any input argument includes null item, or FeaturesModel3D[[i].FeatureModel3DIndex] is null. If .Count == 0; if .Count is 1, and [0].IsTelecentric is true . If is less than 0; If [i].CameraIndex is not inside range [0, .Count-1]; If [i].FeatureModel3DType is not Cog3DVect3, Cog3DLine, Cog3DLineSeg, Cog3DCylinder, or Cog3DCircle; If [i].FeatureModel3DType is Cog3DVect3, but [i].Subfeature is not Cog3DSubfeatureConstants.Point0; If [i].FeatureModel3DType is Cog3DLine or Cog3DLineSeg, but [i].Subfeature is not Cog3DSubfeatureConstants.StraightEdge0; If [i].FeatureModel3DType is Cog3DCircle, but [i].Subfeature is not Cog3DSubfeatureConstants.CircleEdge0 or Cog3DSubfeatureConstants.Point0; If [i].FeatureModel3DType is Cog3DCylinder, but [i].Subfeature is not Cog3DSubfeatureConstants.OccludingEdge0, .OccludingEdge1, .CircularEdge0, or .CircularEdge1; If [i].FeatureRaw2D is not null, and its type is not Cog3DVect2, or Cog3DVect2Collection; If [i].FeatureModel3DType is Cog3DVect3, [i].FeatureRaw2D has type of Cog3DVect2Collection, and its size is greater than 1. If [i].FeatureModel3DIndex is not inside range [0, FeaturesModel3D.Count-1]; If [i].FeatureModel3DType is not the same as the type of FeaturesModel3D[[i].FeatureModel3DIndex]; Note that this method handles a single part instance. Therefore, all 2D features with the specified in must correspond to the same part instance. Note that if 3D line segment model features are used, and some 3D line segments are shorter than the actual lengths, then it may return result(s) with larger residuals. Dilating the 3D line segments may avoid this problem. This method performs a 3D robust pose estimation for one part instance based on the specified crsp2D3DsUnified, and the specified camera calibrations, from one or multiple cameras/views. Note that robust pose estimation parameters are used, and the returned result includes information about feature outliers. Simple parameters to specify the behavior of the robust pose estimation. May not be null. The pose estimation result (). A pose estimation result is always returned except when a throw occurs. The pose estimation result contains a list of pose results () and the list of crsp2D3D indices of the outliers () . The pose in each pose result maps features from Model3D space to Phys3D space. A list of pose results is returned in order to handle the situation where there are multiple pose estimations for the available features. The list of pose results will contain: 0 pose results, when no poses were found to meet the estimation parameters; 1 pose result, when there was a single pose that met the estimation parameters; > 1 pose results, when there were multiple poses that satisfied the estimation parameters Note that the returned object of has properties and : is the same as the input argument , and can be used to correspond pose estimation results and part instances. is NULL if pose results in the returned object is not empty; Otherwise, contains diagnosis information about why the pose results in the returned object is empty. A List of camera calibrations. One calibration per camera/view. The size of this list specifies the number of cameras/views. May not be null. A List of crsp2D3Ds. May not be null. Note that each item has the camera index, the index of the part instance, the 2D feature(s), the corresponding 3D feature index, and sub-feature type. Note that when there is multiple part instances, the PartInstanceIndex of must be unified for all cameras by calling part corresponder ( Cog3DPartCorresponderUsingCrsp2D3Ds.Execute ). Therefore, for the same 3D part instance, the same PartInstanceIndex is used for the corresponding crsp2D3Ds items across all cameras. If there is only one part instance, and the PartInstanceIndex is 0 for all items of crsp2D3Ds, then no need to call part corresponder. Note that if [i].FeatureRaw2D is null or empty, then [i] is ignored during pose estimation. This parameter specifies which part instance to run the pose estimation. If [i].PartInstanceIndex is not equal to , then that element is not used in the pose estimation. If any of the arguments (except ) is null, or any input argument includes null item, or FeaturesModel3D[[i].FeatureModel3DIndex] is null. If .Count == 0; if .Count is 1, and [0].IsTelecentric is true . If is less than 0; If [i].CameraIndex is not inside range [0, .Count-1]; If [i].FeatureModel3DType is not Cog3DVect3, Cog3DLine, Cog3DLineSeg, Cog3DCylinder, or Cog3DCircle; If [i].FeatureModel3DType is Cog3DVect3, but [i].Subfeature is not Cog3DSubfeatureConstants.Point0; If [i].FeatureModel3DType is Cog3DLine or Cog3DLineSeg, but [i].Subfeature is not Cog3DSubfeatureConstants.StraightEdge0; If [i].FeatureModel3DType is Cog3DCircle, but [i].Subfeature is not Cog3DSubfeatureConstants.CircleEdge0 or Cog3DSubfeatureConstants.Point0; If [i].FeatureModel3DType is Cog3DCylinder, but [i].Subfeature is not Cog3DSubfeatureConstants.OccludingEdge0, .OccludingEdge1, .CircularEdge0, or .CircularEdge1; If [i].FeatureRaw2D is not null, and its type is not Cog3DVect2, or Cog3DVect2Collection; If [i].FeatureModel3DType is Cog3DVect3, [i].FeatureRaw2D has type of Cog3DVect2Collection, and its size is greater than 1. If [i].FeatureModel3DIndex is not inside range [0, FeaturesModel3D.Count-1]; If [i].FeatureModel3DType is not the same as the type of FeaturesModel3D[[i].FeatureModel3DIndex]; Note that this method handles a single part instance. Therefore, all 2D features with the specified in must correspond to the same part instance. Note that if 3D line segment model features are used, and some 3D line segments are shorter than the actual lengths, then it may return result(s) with larger residuals. Dilating the 3D line segments may avoid this problem. Note that this method might return multiple different poses with similar fitting residuals. If the returned result has a list of multiple pose results, it means not enough information in to get a unique pose for the specified part instance. Pose ambiguities can be avoided by adding more feature correspondences. The following is a list of situations that satisfy the requirements for estimating a pose. Note that under some of these situations there may be multiple poses with equivalent fitting residuals: There are 3 or more point correspondences; There are 3 or more intersection points among 3D model lines or line segments; There are 3 or more model circles; There are 2 or more non-parallel model cylinders; The combination of number of point correspondences, number of intersection points among 3D model lines or line segments, and number of model circles, is 3 or more; There are 2 or more nonparallel model lines or line segments observed simultaneously by two or more cameras; There are 2 or more model circles observed simultaneously by two or more cameras; There are one or more model points, and one or more model circles observed simultaneously by two or more cameras; There are one or more model points, and one or more model lines or line segments observed simultaneously by two or more cameras; There are one or more model points, and one or more model cylinders observed simultaneously by two or more cameras; There are one or more model lines or line segments, and one or more model circles observed simultaneously by two or more cameras; There are one or more model cylinders, and one or more model circles observed simultaneously by two or more cameras; There are one or more model cylinders, and one or more model lines or line segments (not parallel to the cylinder's axis) observed simultaneously by two or more cameras. Note that the returned result might have an empty list of pose results, if it can not find any pose satisfying the requirements specified by the robust pose estimation parameters. This method performs a 3D pose estimation for one part instance based on the specified crsp2D3DsUnified and the specified camera calibrations, from one or multiple cameras/views. The pose estimation result (). A pose estimation result is always returned except when a throw occurs. The pose estimation result contains a list of pose results () and the list of crsp2D3D indices of the outliers (). The list of outliers is empty because this method does not remove outliers. The pose in each pose result maps features from Model3D space to Phys3D space. A list of pose results is returned in order to handle the situation where there are multiple pose estimations for the available features. The list of pose results will contain: 0 pose results, when no poses were found to meet the estimation parameters; 1 pose result, when there was a single pose that met the estimation parameters; > 1 pose results, when there were multiple poses that satisfied the estimation parameters Note that the returned object of has properties and : is the same as the input argument , and can be used to correspond pose estimation results and part instances. is NULL if pose results () in the returned object is not empty; Otherwise, contains diagnosis information about why the pose results in the returned object is empty. A List of camera calibrations. One calibration per camera/view. The size of this list specifies the number of cameras/views. May not be null. A List of crsp2D3Ds. May not be null. Note that each item has the camera index, the index of the part instance, the 2D feature(s), the corresponding 3D feature index, and sub-feature type. Note that when there is multiple part instances, the PartInstanceIndex of must be unified for all cameras by calling part corresponder ( Cog3DPartCorresponderUsingCrsp2D3Ds.Execute ). Therefore, for the same 3D part instance, the same PartInstanceIndex is used for the corresponding crsp2D3Ds items across all cameras. If there is only one part instance, and the PartInstanceIndex is 0 for all items of crsp2D3Ds, then no need to call part corresponder. Note that if [i].FeatureRaw2D is null or empty, then [i] is ignored during pose estimation. This parameter specifies which part instance to run the pose estimation. If [i].PartInstanceIndex is not equal to , then that element is not used in the pose estimation. If any of the arguments (except ) is null, or any input argument includes null item, or FeaturesModel3D[[i].FeatureModel3DIndex] is null. If .Count == 0; if .Count is 1, and [0].IsTelecentric is true . If is less than 0; If [i].CameraIndex is not inside range [0, .Count-1]; If [i].FeatureModel3DType is not Cog3DVect3, Cog3DLine, Cog3DLineSeg, Cog3DCylinder, or Cog3DCircle; If [i].FeatureModel3DType is Cog3DVect3, but [i].Subfeature is not Cog3DSubfeatureConstants.Point0; If [i].FeatureModel3DType is Cog3DLine or Cog3DLineSeg, but [i].Subfeature is not Cog3DSubfeatureConstants.StraightEdge0; If [i].FeatureModel3DType is Cog3DCircle, but [i].Subfeature is not Cog3DSubfeatureConstants.CircleEdge0 or Cog3DSubfeatureConstants.Point0; If [i].FeatureModel3DType is Cog3DCylinder, but [i].Subfeature is not Cog3DSubfeatureConstants.OccludingEdge0, .OccludingEdge1, .CircularEdge0, or .CircularEdge1; If [i].FeatureRaw2D is not null, and its type is not Cog3DVect2, or Cog3DVect2Collection; If [i].FeatureModel3DType is Cog3DVect3, [i].FeatureRaw2D has type of Cog3DVect2Collection, and its size is greater than 1. If [i].FeatureModel3DIndex is not inside range [0, FeaturesModel3D.Count-1]; If [i].FeatureModel3DType is not the same as the type of FeaturesModel3D[[i].FeatureModel3DIndex]; Note that this method handles a single part instance. Therefore, all 2D features with the specified in must correspond to the same part instance. Note that if 3D line segment model features are used, and some 3D line segments are shorter than the actual lengths, then it may return result(s) with larger residuals. Dilating the 3D line segments may avoid this problem. Note that this method might return multiple different poses with similar fitting residuals. If the returned result has a list of multiple pose results, it means not enough information in to get a unique pose for the specified part instance. Pose ambiguities can be avoided by adding more feature correspondences. The following is a list of situations that satisfy the requirements for estimating a pose. Note that under some of these situations there may be multiple poses with equivalent fitting residuals: There are 3 or more point correspondences; There are 3 or more intersection points among 3D model lines or line segments; There are 3 or more model circles; There are 2 or more non-parallel model cylinders; The combination of number of point correspondences, number of intersection points among 3D model lines or line segments, and number of model circles, is 3 or more; There are 2 or more nonparallel model lines or line segments observed simultaneously by two or more cameras; There are 2 or more model circles observed simultaneously by two or more cameras; There are one or more model points, and one or more model circles observed simultaneously by two or more cameras; There are one or more model points, and one or more model lines or line segments observed simultaneously by two or more cameras; There are one or more model points, and one or more model cylinders observed simultaneously by two or more cameras; There are one or more model lines or line segments, and one or more model circles observed simultaneously by two or more cameras; There are one or more model cylinders, and one or more model circles observed simultaneously by two or more cameras; There are one or more model cylinders, and one or more model lines or line segments (not parallel to the cylinder's axis) observed simultaneously by two or more cameras. Note that calling GetIndicesOfOutlierCrsp2D3Ds() from the returned result will obtain an empty list since all features are used in this pose estimation method. Note that the returned result might have an empty list of pose results, if it can not find any pose. Gets/sets the 3D model features, in Model3D space, that define the object of interest. A collection of 3D model features in Model3D space. If input argument in the setter is null. Construct this default Cog3DPoseEstimatorUsingCrsp2D3Ds. Note that FeaturesModel3D is an empty collection. This class provides 3D pose estimation methods from the specified crsp2D3DsUnified for one part instance (specified by the input parameter "partInstanceIndex" in the methods). The pose estimation is done by determining the best fit between a set of 3D features and the set or sets of corresponded 2D image features. Get the message string of this result. The message string of this result. The message might hold information about why no poses in this result. It is null if no information provided. Get the index of the found part instance. The index of the found part instance. This index is the same as the input parameter "partInstanceIndex" in related methods of Cog3DPoseEstimatorUsingCrsp2D3Ds. Gets the indices of the crsp2D3Ds classified as outliers and excluded from the pose estimation. The list of the indices of the crsp2D3Ds classified as outliers. Gets the 3D pose results for one part instance. Note that multiple pose results might be returned. The 3D pose results for one part instance. If the returned list has multiple pose results, it means not enough information to get a unique pose during calling methods of Cog3DPoseEstimatorUsingCrsp2D3Ds. Pose ambiguities can be avoided by adding more feature correspondences. This class encapsulates the result of a 3D pose estimation using the specified crsp2D3Ds for one part instance. Note that this class is immutable - it may not be changed once it has been constructed. Gets/sets the minimum number of 3D model features from at least 2 cameras to be used for the pose estimation. The minimum number of 3D model features from at least 2 cameras to be used for the pose estimation. If the input argument to the setter is less than 0. Gets/sets the minimum number of 3D model features to be used for the pose estimation. The minimum number of 3D model features to be used for the pose estimation. If the input argument to the setter is less than 1. Gets/sets a threshold used to specify the desired quality of the pose estimation. The threshold specifies the maximum allowed RMS value of the distances between the rays of 2D features and their corresponding mapped 3D model feature. If the threshold is exceeded, then the crsp2D3Ds having the largest impact on the RMS residuals are considered outliers. Default value is HUGE_VAL. The threshold of maximum residual in Phys3D. If the input argument to the setter is less than 0.0. Gets/sets a threshold used to specify the desired quality of the pose estimation. The threshold specifies the maximum allowed distance between the rays of any 2D feature and its corresponding mapped 3D model feature. If the threshold is exceeded on one crsp2D3D, then that crsp2D3D is considered an outlier. Default value is HUGE_VAL. The threshold of maximum residual in Phys3D. If the input argument to the setter is less than 0.0. Default constructor. Default values are: ResidualsPhys3DMaxThreshold is HUGE_VAL ResidualsPhys3DRmsThreshold is HUGE_VAL MinNumOfFeaturesModel3D is 3. MinNumOfFeaturesModel3DFromAtLeast2Cameras is 0. This class defines the simple robust pose estimation parameters that controls the behavior of robust 3D pose estimation. Fits a 3D cylinder from 2D point sets and a set of camera calibrations. It is not required that the 2D points of the different cameras/views correspond. Notes: The result's IsFound property will be set to false if no cylinder can be fit to the given points. This operation determines the 3D cylinder which minimizes the sum squared error in image pixels. This operation can compute the cylinder's radius and height if the input data includes image points from more than one camera. The List of camera calibrations of the cameras used to extract the 2D points. The size of the list defines the number of cameras/views used. A List of 2D point collections for occluding edges, one collection per camera/view. The size of the list must be equal to the number of cameras. May not be null. Notes: It only requires that all points in one collection correspond to the same occluding edge from that camera, i.e., all points in [camIndex_i] must correspond to one occluding edge, and points in [camIndex_j] must correspond to one occluding edge (but diffent from the one for [camIndex_i] if camIndex_j != camIndex_i). This function can tolerate the situation where some or all items of pointsRaw2DOnOccludingEdge0 are empty (i.e., [camIndex_i].Count==0); It is NOT required that [camIndex_i].Count == [camIndex_j].Count (camIndex_i != camIndex_j); It is NOT required that [camIndex_i][k] corresponds to [camIndex_j][k] (camIndex_i != camIndex_j). A List of 2D point collections for occluding edges, one collection per camera/view. The size of the list must be equal to the number of cameras. May not be null. Note that [camIndex_i] and [camIndex_i] must correspond to two different occluding edges of the same cylinder observed from the same camera. For detailed specification, see the notes of for more information. A List of 2D point collections for circular edges, one collection per camera/view. The size of the List must be equal to the number of cameras. May not be null. Notes: It only requires that all points in one collection correspond to the same circular edge (i.e., all points in [camIndex_i] must correspond to one circular edge on the cylinder, and points in [camIndex_j] must correspond to one circular edge on the cylinder (which might be different from the one for [camIndex_i)). This function can tolerate the situation where some or all items of are empty (i.e., [camIndex_i].Count==0); It is NOT required that [camIndex_i].Count == [camIndex_j].Count (camIndex_i != camIndex_j); It is NOT required that [camIndex_i][k] corresponds to [camIndex_j][k] (camIndex_i != camIndex_j). A List of 2D point collections for circular edges, one collection per camera/view. The size of the List must be equal to the number of cameras. May not be null. Note that [camIndex_i] [camIndex_i] must correspond to different circular edges of the same cylinder. For detailed specification, see the notes of for more information. A Cog3DCylinderFitterUsing2DPointsResult containing the fitted cylinder and 2D and 3D residuals. If any of the input arguments is null or any argument includes null item. If .Count is less than 1. If is not the same size as , , , or If Radius == 0 or Height == 0, and FitMode is Cog3DCylinderFitterUsing2DPointsFitModeConstants.LeastSquaresUseSpecifiedRadiusAndHeight. If FitMode is Cog3DCylinderFitterUsing2DPointsFitModeConstants.LeastSquaresComputeRadiusAndHeight and .Count is 1. If none or only one of collections in and contains two or more points, AND none of the collections in and contains five or more points. if .Count is 1, and [0].IsTelecentric is true . The minimum 2D information required when fitting with FitMode of Cog3DCylinderFitterUsing2DPointsFitModeConstants.LeastSquaresUseSpecifiedRadiusAndHeight is: At least two 2D points along each occluding edge for one camera; or at least five 2D points along one of the circular edge for one camera. The minimum 2D information required when fitting with FitMode of Cog3DCylinderFitterUsing2DPointsFitModeConstants.LeastSquaresComputeRadiusAndHeight is: At least two 2D points (from each camera) along each occluding edge for two cameras; Or at least five 2D points (from each camera) along the same circular edge for two cameras. Gets/sets the expected height of the cylinder to find. The expected height of the cylinder to find. If is less than 0. If FitMode is Cog3DCylinderFitterUsing2DPointsFitModeConstants.eLeastSquaresUseSpecifiedRaiusAndHeight, then Execute() will use this specified height. If FitMode is Cog3DCylinderFitterUsing2DPointsFitModeConstants.eLeastSquaresComputeRadiusAndHeight, then Execute() will ignore this specified height. Gets/sets the expected radius of the cylinder to find. The expected radius of the cylinder to find. If is less than 0. If FitMode is Cog3DCylinderFitterUsing2DPointsFitModeConstants.eLeastSquaresUseSpecifiedRadiusAndHeight, then Execute() will use this specified radius. If FitMode is Cog3DCylinderFitterUsing2DPointsFitModeConstants.eLeastSquaresComputeRadiusAndHeight, then Execute() will ignore this specified radius. Gets/sets the fit mode for 3D cylinder fitting. The fit mode for cylinder fitting. If an invalid fit mode is used in the setter. If FitMode is Cog3DCylinderFitterUsing2DPointsFitModeConstants.eLeastSquaresUseSpecifiedRadiusAndHeight, then Execute() will use the values of Radius and Height . If FitMode is Cog3DCylinderFitterUsing2DPointsFitModeConstants.eLeastSquaresComputeRadiusAndHeight, then Execute() will ignore the values of Radius and Height. Default constructor. Initializes this object for use. Note that FitMode is Cog3DCylinderFitterUsing2DPointsFitModeConstants.LeastSquaresUseSpecifiedRadiusAndHeight, Radius is 0, and Height is 0. This class provides 3D cylinder fitting from 2D points. A 3D cylinder is fitted from multiple sets of 2D image points. The sets of image points can come from different cameras or from a single camera. The 3D cylinder fitter computes the pose of the cylinder which minimizes the sum squared image error with respect to the given 2D image points from calibrated camera(s). This enum class defines enumeration constants for the different 3D cylinder fitting modes. DefaultFitMode is equal to LeastSquaresUseSpecifiedRadiusAndHeight. Least squares fit using the specified radius and height. Least squares fit using the measured radius and height. If IsFound is false. If IsFound is false. Get a deep copy of the fitted 3D cylinder. A deep copy of the fitted 3D cylinder. If IsFound is false. Gets whether or not a fitted cylinder was found. True if a fitted cylinder was found; false otherwise. This class holds a result from a 3D cylinder fitting operation, where 2D points have been used as input. Note that this class is immutable - it may not be changed once it has been constructed. The usage model for this class is that it gets factoried by the Cog3DCylinderFitterUsing2DPoints class. Method to convert a Dictionary List (each Dictionary corresponds to one 3D part instance) to a list of Cog3DPartCorresponderUsingCrsp2D3DsResult. The Dictionary List, each item represents one 3D part instance. A list of Cog3DPartCorresponderUsingCrsp2D3DsResult. Method to create unified crsp2D3Ds based on the original (non-unified) crsp2D3Ds and the part correspondences. The List of the original crsp2D3Ds with associated camera index and original part instance index. May not be null. Note that [i].PartInstanceIndex should be the same index of the corresponding item in raw2DFromModel2Ds[[i].CameraIndex] where raw2DFromModel2Ds is the input parameter used in Execute method. In other words, crsps corresponding to raw2DFromModel2Ds[i][j] must have CameraIndex of i, and PartInstanceIndex of j. The part correspondences computed using method Execute. May not be null. A list of crsp2D3Ds where the PartInstanceIndex is modified so that each PartInstanceIndex refers to the same 3D part instance for all cameras. If any input argument is null, or any item inside each input argument is null. If [i] has item whose Key is outside of the camera indices range specified by the input parameter raw2DFromPhys3Ds in constructor. If [i].CameraIndex is outside of the camera indices range specified by the input parameter raw2DFromPhys3Ds in constructor. Method to run the corresponder based on the 2D part poses for each part instance in each camera. A doubly indexed list of 2D part poses found in each camera, indexed first by camera, then by part instance. May not be null. Note that the indices of specify the camera indices, and original part instance indices. The part correspondences among different cameras. Each item is a Dictionary for one 3D part instance, and each KeyValuePair inside the Dictionary corresponds to (cameraIndex, originalPartInstanceIndex). Note that originalPartInstanceIndex is the index of the corresponding item in . In other words, if [i][j] belongs to one 3D part instance, then the Dictionary for that 3D part instance has KeyValuePair of (i, j). If is null. If .Count is not the same as the number of cameras specified by the input parameter raw2DFromPhys3Ds in the constructor. Usage model is as follows: Run pattern finding tools ( such as trained PatMax) to find the 2D poses of part instances in each camera (This step generates ). Run this method to compute part correspondences among different cameras. Run feature extraction for each corresponded part. If there are enough features extracted for one part instance, run pose estimation for the corresponded part. Construct this Cog3DPartCorresponderUsing2DPoses. Upon construction, the corresponder will be trained using the provided data. Therefore, a part must be located, e.g. in a training position. This training position can be e.g. the position where its model features have been created. The data needed to configure the corresponder is: The camera calibrations used to locate the part. The 3D model features. The 2D poses of the located part in the camera images. The 3D pose of the part. The List of camera calibrations. One calibration per camera. The size of this list specifies the number of cameras. May not be null. The 3D model features, in Model3D space, that define the object of interest. May not be null. Note that model features can be obtained using Cog3DModelFeatureGeneratorUsingCrsp2D3Ds. The 2D poses of the part for the train image set, one 2D pose per camera. May not be null. The 3D pose for the part in train time. May not be null. See the Remark section for more details. If any input argument is null, or any item in is null, or any item in is null. If .Count is less than 2; If .Count != .Count; If there are not enough features in ; The usage model is as follows: At Train/Construction time. Acquire the train image sets with only one part inside the scene. Configure pattern finding tools (such as PatMax tools) and feature extraction tools based on the first train image set. Run pattern finding tools (such as PatMax tools) on the first train image set to obtain . Run the model feature generator tool (cog3DModelFeatureGeneratorUsingCrsp2D3Ds) to compute (or create based on known model information) Run pose estimator to compute the 3D pose of the part for the first train image set (this pose is used as ). Call this constructor to create a corresponder. This class solves the correspondence problem that occurs when multiple cameras are viewing a scene containing multiple instances of a part, and returns the correct image pattern correspondences for each 3D part instance. 2D poses of the 2D part models for the part are used in computing the part correspondences. The usage model is: At train time, create a 2D part model (such as PatMax pattern) in each image from a training image set. At run time, run the pattern finder tool in each image and get the 2D poses for each found part instance. Call this part corresponder to get part correspondences. See the constructor and methods for more detail information. This method determines the part correspondences among the multiple part instances seen by multiple cameras using the original 2D/3D part feature correspondences (), and the camera calibrations. After determining the part correspondences across cameras, generate a result object for each corresponded part instance and a result object for each uncorresponded part instance. Also generate a new set of 2D/3D part feature correspondences () with updated PartInstanceIndex members that map to the returned result objects. The List of camera calibrations. One calibration per camera. The size of this list specifies the number of cameras. May not be null. The List of the original crsp2D3Ds with associated camera index and original part instance index. May not be null. Note that if [i].FeatureRaw2D is null or empty, then [i] is ignored when computing the part correspondences. This is a copy of where the PartInstanceIndex in have been updated to reflect the correct part correspondences across cameras. is created by first making a shallow copy of each element in whose (CameraIndex, PartInstance) exists in one item of the returned List of , then updating its PartInstanceIndex to be the index of the corresponding item in the returned List of , i.e. if ([i].CameraIndex, [i].PartInstanceIndex) exists in the returned List()[j].GetIndicesOfCameraAndPartInstance(), then a shallow copy of [i] will be inside and its PartInstanceIndex is modified to be j. The List of result objects (). Each item contains one 3D part instance's correspondences. If there are 2 cameras, 10 parts in the scene observed by both cameras, and all the parts are corresponded, then this returned list will include 10 items, one item for each part instance. If 6 of the parts are corresponded, then this returned list will include 14 items: 6 items for the corresponded parts, 4 items for the uncorresponded parts in camera 0 and 4 items for the uncorresponded parts in camera 1. Each item includes a dictionary of (key=camera index, value=original 2D part instance index). If or is null, or any item in one of them is null, or FeaturesModel3D[[i].FeatureModel3DIndex] is null. If .Count is less than 2; If includes duplicate items with the same CameraIndex, the same PartInstanceIndex, and corresponding to the same model point (model feature with type Cog3DVect3); If [i].CameraIndex is not inside range [0, .Count-1]; If [i].FeatureModel3DType is not Cog3DVect3, Cog3DLine, Cog3DLineSeg, Cog3DCylinder, or Cog3DCircle; If [i].FeatureModel3DType is Cog3DVect3, but [i].Subfeature is not Cog3DSubfeatureConstants.Point0; If [i].FeatureModel3DType is Cog3DLine or Cog3DLineSeg, but [i].Subfeature is not Cog3DSubfeatureConstants.StraightEdge0; If [i].FeatureModel3DType is Cog3DCircle, but [i].Subfeature is not Cog3DSubfeatureConstants.CircleEdge0 or Cog3DSubfeatureConstants.Point0; If [i].FeatureModel3DType is Cog3DCylinder, but [i].Subfeature is not Cog3DSubfeatureConstants.OccludingEdge0, .OccludingEdge1, .CircularEdge0, or .CircularEdge1; If [i].FeatureRaw2D is not null, and its type is not Cog3DVect2, or Cog3DVect2Collection; If [i].FeatureModel3DType is Cog3DVect3, [i].FeatureRaw2D has type of Cog3DVect2Collection, and its size is greater than 1. If [i].FeatureModel3DIndex is not inside range [0, FeaturesModel3D.Count-1]; If [i].FeatureModel3DType is not the same as the type of FeaturesModel3D[[i].FeatureModel3DIndex]; If FeaturesModel3D contains less than 3 distinct model points (including derived 3D model points from intersected 3D lines or 3D line segments). If there are 3D lines or 3D line segments in the model, this corresponder internally computes the derived 3D model points from 3D line intersections, and the corresponding derived 2D points from 2D line intersections. In order for an intersection point to be computed and used, the two line segments/lines in the image must have different directions (difference of the direction angles must be 10 degrees or more), and the nearest distance between the corresponding two 3D line segments/lines must be small enough comparing to the size of the 3D model. In order for a part instance to be corresponded, at least there are 2 cameras seeing that part instance, and each camera sees at least 3 2D points (including the derived 2D points corresponding to the derived 3D model points). If this does not happen, then the part instance will not be corresponded. Note that FeaturesModel3D and [i].FeatureModel3DIndex for any i must be set correctly in order to use this part corresponder. Cog3DModelFeatureGeneratorUsing2D3Ds might be used to generate 3D model features at train time. Gets/sets the 3D model features, in Model3D space, that define the object of interest. A collection of 3D model features in Model3D space. If input argument in the setter is null. Construct this default Cog3DPartCorresponderUsingCrsp2D3Ds. Note that FeaturesModel3D is an empty collection. This class solves the correspondence problem that occurs when multiple cameras are viewing a scene containing multiple parts, and returns the correct image pattern correspondences for each 3D part instance. The inputs to this corresponder are crsp2D3Ds. Each Cog3DCrsp2D3D instance corresponds to a particular calibrated camera and a particular part instance in the image acquired from that camera. Each part instance in a calibrated camera corresponds to one or more Cog3DCrsp2D3D instances. All part instances are corresponded to the same 3D model. The corresponder can tolerate missing part instances. In other words, it is acceptable for some of the part instances to be absent from some of the cameras. The class determines a set of 3D part instances of the known 3D model which best explain the input data. This class encapsulate the process running the part corresponder. Gets the indices of the camera and the original part instance corresponding to this result. Each KeyValuePair inside the returned Dictionary corresponds to (cameraIndex, originalPartInstanceIndex). The indices of the camera and the original part instance corresponding to this result. Note that there is at most one Dictionary entry for each camera. Gets the coverage of this result. The coverage of this result. The coverage is computed as follows: Coverage = (number of 2D points) / ((number of 3D model points) * (number of cameras)) Where the number of 3D model points includes the number of distinct 3D model points in the specified crsp2D3Ds (which is the input argument for Cog3DPartCorresponderUsingCrsp2D3Ds.CorrespondPartsUsingPointsAndIntersectionPoints) and the number of the derived 3D points from intersected 3D lines or 3D line segments in the model. The number of 2D points is the total number of 2D points corresponding to 3D model points for this part instance in the specified crsp2D3Ds, plus the total number of the derived 2D points corresponding to the derived 3D points for this part instance. Note that Coverage can be used to check whether multiple cameras can see the same part instance or not. Coverage of 1.0 means all cameras can see this part instance. This class encapsulates the result information for one 3D part instance from part corresponder (Cog3DPartCorresponderUsingCrsp2D3Ds), including a coverage score, and a Dictionary explaining the correspondence result. Note that this class is immutable - it may not be changed once it has been constructed. Gets/sets the subfeature type within the 3D model feature. The found 2D feature(s) corresponds to this subfeature type. The subfeature type within the 3D feature. The subfeature type allows explicit correspondence of the 2D features to a particular subfeature of the 3D feature. For example, you can specify a set of 2D feature points correspond to the circular end of a cylinder. Gets/Sets an object that can be used to store application-specific information. An Object representing application-specific data. Gets/sets the 2D feature(s). An Object representing the found 2D feature or a collection of found 2D features in the acquired image. Set this property to null to indicate the 2D feature(s) was not found. Note that most corresponders and pose estimators support Objects of type Cog3DVect2 and Cog3DVect2Collection. Check the corresponder/pose estimator you are using for supported 2D feature types. Gets/sets the 3D model feature type. The type of the corresponding 3D model feature. Note that most corresponders and pose estimators support type Cog3DVect3 as a minimum. Check the corresponder/pose estimator you are using for supported 3D feature types. If the input argument of the setter is null. Gets/sets the 3D model feature index (within the 3D model feature collection) corresponding to the found 2D feature(s). The 3D feature index (within the 3D model feature collection) corresponding to the found 2D feature(s). Note that most corresponders and pose estimators support Objects of type Cog3DVect3 as a minimum. Check the corresponder/pose estimator you are using for supported 3D feature types. If the input argument of the setter is less than 0. Gets/sets the index of the found part instance. The index of the found part instance. If the input argument of the setter is less than 0. Note that the index of the found part instance is particular to the image acquired from the specified camera. The part instances with the same index number from different cameras may not correspond to the same part instance in the scene. Gets/sets the index of the camera. The index of the camera from which the image was acquired. If the input argument of the setter is less than 0. Construct this Cog3DCrsp2D3D with the supplied components. The index of the camera. The index of the found part instance (in the image acquired from the specified camera). The index of the corresponding 3D feature within the 3D model feature collection. The type of the corresponding 3D feature. May not be null. The 2D feature(s) corresponding to the subfeature type within the specified 3D model feature. The 2D feature(s) must be in Raw2D space. Note that it can be null to indicate the 2D feature was not found. The subfeature type within the 3D feature corresponding to the 2D feature(s). If is null. If , , or is less than 0. Construct this default Cog3DCrsp2D3D: CameraIndex is 0; PartInstanceIndex is 0; FeatureModel3DIndex is 0; FeatureModel3DType is type of Cog3DVect3; FeatureRaw2D is null; Subfeature is Cog3DSubfeatureConstants.Point0; This class holds feature correspondence information for a particular feature (point, line segment, circle, etc.). A Cog3DCrsp2D3D is a data holder class that expresses how a 2D feature(s) (found in the acquired image from a particular camera) corresponds to a 3D feature of the 3D model. The feature correspondence information consists of: The index of the camera from which the image was acquired; The index of the found part instance in the acquired image. Each part found in an acquired image from camera C, must have a unique index. Each part found in an acquired image from camera C+1, must also have a unique index, however there is no requirement for the part indices across the acquired images to match. An Object representing the found 2D feature e.g. Cog3DVect2 or an Object representing a collection of found 2D features e.g. Cog3DVect2Collection from the acquired image. The 2D feature's pose must be in Raw2D space of the acquired image. The index of the 3D model feature within the 3D model feature collection The subfeature type (Cog3DSubfeatureConstants) within the 3D feature that corresponds to the found 2D feature(s). Note that the index of the found part instance is particular to the image acquired from the specified camera. The part instances with the same index number from different cameras may not correspond to the same part in the scene. This class defines enumeration constants of the subfeature types available in decomposing 3D model features. It indicates that the subfeature type is a 3D occluding edge within a 3D feature It indicates that the subfeature type is a 3D occluding edge within a 3D feature It indicates that the subfeature type is a 3D circle curve within a 3D feature It indicates that the subfeature type is a 3D circle curve within a 3D feature It indicates that the subfeature type is a 3D line or a 3D line segment within a 3D feature. It indicates that the subfeature type is a 3D point within a 3D feature. Computes the affine transforms between images from telecentric cameras. Telecentric cameras are cameras with telecentric lenses. Specifically, this method computes the affine transforms from the image of the camera specified as the base camera via to the images of all the other cameras specified in . The affine transforms are computed using the cameras' calibration information (), and a 3D plane in Phys3D (). The specified 3D plane should be the 3D plane coincident with the planar part or a planar feature on the part. This method assumes that all the telcentric cameras are viewing the same planar part or the same planar feature on the part. A list of Cog3DCameraCalibrations, indexed by camera. One calibration per camera. May not be null. Note that all the camera calibrations must be relative to the same Phys3D coordinate space. The feature's 3D plane in Phys3D. May not be null. The index of the base camera. The List of CogTransform2DLinears representing the affine transforms between the telecentric cameras' images. The List will have the same size as . The List element with index will be the identity transform. When pattern searching for a feature in each camera’s acquired image, the 3D accuracy achieved by triangulating 3D points from the 2D image pattern origin positions in the different images, is highly dependent on the accuracy of the image pattern origins. This method provides an accurate way to take an image pattern in the base camera's image and then use this method’s output 2D affine transforms to map the base camera's image pattern and/or the base camera's image pattern origin to the other cameras. This technique assumes that all the cameras are viewing the same pattern of interest. Specifically, this method Facilitates taking an image pattern (set of pixels in Raw2D space) acquired by the base camera and mapping that image pattern to the Raw2D image spaces of all the other cameras. The mapping can be achieved using the VisionPro CogAffineTransformTool. Facilitates taking a 2D point e.g. the image pattern origin, in Raw2D space of the base camera and mapping the 2D point to the Raw2D image spaces of all the other cameras. Computes the affine transforms by projecting points from the base camera's Raw2D space to the specified 3D plane (), and then projecting the points from the specified 3D plane to the other cameras' Raw2D space. The 3D plane of the part or a planar feature of the part () is defined in the 3D physical space (Phys3D). This must be the same Phys3D space of the camera calibrations. If is parallel to the part or a planar feature of the part but the actual feature is not lying precisely in the specified 3D plane, then the translation part of the returned affine transforms will not be accurate. However, all other components of the returned affine transforms, such as aspect ratio, rotation, skew, etc. will still be accurate. If or is null, or any item in is null. If any of the following conditions are true: .Count is less than 2. [i].IsTelecentric is false (i is inside [0, .Count - 1]). is less than 0 or greater than .Count - 1 is degenerate This class contains static methods that perform various operations for telecentric cameras. Telecentric cameras are cameras with telecentric lenses. Note that this class is comprised of static methods. Fits a 3D plane from a 3D point set A 3D point collection. A Cog3DPlaneFitterUsing3DPointsResult containing the fitted plane and 3D residuals. If the input argument is null. If .Count is less than 3. If a 3D plane cannot be fitted. Default constructor. Initializes this object for use. Note that robust fit parameters are the same as the ones in a default constructed . This class provides 3D plane fitting from 3D points. The 3D plane fitter computes the pose of a 3D plane based on the specified 3D input points. The fitting technique is controlled by the Cog3DRobustFitParameters. See the Remarks section of the Cog3DRobustFitTechniqueConstants enum and the Cog3DRobustFitParameters class for details. Gets the indices of the data points classified as inliers and included in the fit. The list of indices of the data points classified as inliers. Gets the indices of the data points classified as outliers and excluded from the fit. The list of indices of the data points classified as outliers. Get a deep copy of the fitted 3D plane. A deep copy of the fitted 3D plane. This class holds a result from a 3D plane fitting operation, where 3D points have been used as input. Note that this class is immutable - it may not be changed once it has been constructed. The usage model for this class is that it gets factoried by the Cog3DPlaneFitterUsing3DPoints class. Fits a 3D line from a 3D point set. A 3D point collection. A Cog3DLineFitterUsing3DPointsResult containing the fitted line and 3D residuals. If the input argument is null. If .Count is less than 2. If a 3D line cannot be fitted. Default constructor. Initializes this object for use. Note that robust fit parameters are the same as the ones in a default constructed . This class provides 3D line fitting from 3D points. The 3D line fitter computes the pose of a 3D line based on the specified 3D input points. The fitting technique is controlled by the Cog3DRobustFitParameters. See the Remarks section of the Cog3DRobustFitTechniqueConstants enum and the Cog3DRobustFitParameters class for details. Gets the indices of the data points classified as inliers and included in the fit. The list of indices of the data points classified as inliers. Gets the indices of the data points classified as outliers and excluded from the fit. The list of indices of the data points classified as outliers. Get a deep copy of the fitted 3D line. A deep copy of the fitted 3D line. If IsFound is false. This class holds a result from a 3D line fitting operation, where 3D points have been used as input. Note that this class is immutable - it may not be changed once it has been constructed. The usage model for this class is that it gets factoried by the Cog3DLineFitterUsing3DPoints class. Fits a 3D circle from a 3D point set. A 3D point collection. A Cog3DCircleFitterUsing3DPointsResult containing the fitted circle and 3D residuals. If the input argument is null. If .Count is less than 3. If a 3D circle cannot be fitted. Gets/sets the robust fitting parameters. A Cog3DRobustFitParameters containing the robust fitting parameters. If the input argument to the setter is null. Default constructor. Initializes this object for use. Note that robust fit parameters are the same as the ones in a default constructed . This class provides 3D circle fitting from 3D points. The 3D circle fitter computes the pose of a 3D circle based on the specified 3D input points. The fitting technique is controlled by the Cog3DRobustFitParameters. See the Remarks section of the Cog3DRobustFitTechniqueConstants enum and the Cog3DRobustFitParameters class for details. Gets the indices of the data points classified as inliers and included in the fit. The list of indices of the data points classified as inliers. Gets the indices of the data points classified as outliers and excluded from the fit. The list of indices of the data points classified as outliers. Get a deep copy of the fitted 3D circle. A deep copy of the fitted 3D circle. This class holds a result from a 3D circle fitting operation, where 3D points have been used as input. Note that this class is immutable - it may not be changed once it has been constructed. The usage model for this class is that it gets factoried by the Cog3DCircleFitterUsing3DPoints class. Gets/sets the worst case proportion of outliers that is expected in the data points used for model fitting. The worst case proportion of outliers. If the input argument to the setter is less than 0.0, or larger than or equal to 1.0. This property will be used if RobustFitTechnique is Cog3DRobustFitTechniqueConstants.AdaptiveRANSAC. If WorstCaseProportionOutliers is 0, all the input points are used for fitting. Gets/sets the proportion assurance. This parameter is the desired likelihood that the computed fit contains only inliers. The proportion assurance. If the input argument to the setter is less than or equal to 0.0, or larger than 1.0. If Assurance is 1.0, and if RobustFitTechnique is Cog3DRobustFitTechniqueConstants.AdaptiveRANSAC, the exhaustive technique is executed. This property will be used if RobustFitTechnique is Cog3DRobustFitTechniqueConstants.AdaptiveRANSAC. Gets/sets the distance threshold. If the absolute distance between a point and the model is greater than this parameter, then the point is considered to be an outlier. The distance threshold. If the input argument to the setter is less than 0.0. This property will be used if RobustFitTechnique is Cog3DRobustFitTechniqueConstants.AdaptiveRANSAC. Gets/sets the type of robust fit technique to be employed. The type of robust fit technique to be employed. If the input argument to the setter is not a valid Cog3DRobustFitTechniqueConstants value. Default constructor. Default values are: RobustFitTechnique is Cog3DRobustFitTechniqueConstants.AllPoints DistanceThreshold is 1.0 Assurance is 1.0 WorstCaseProportionOutliers is 0.0 This class defines the robust fitting parameters that modify the behavior of robust fitters. Classical techniques for parameter estimation, such as least squares, optimize (according to a specified objective function) the fit of a functional description (model) to all of the presented data. These techniques have no internal mechanisms for detecting and rejecting gross errors in the data. They are averaging techniques that rely on the assumption (the smoothing assumption) that regardless of the size of the data set, there will always be enough good values to smooth out any gross deviations. In many practical parameter estimation problems the smoothing assumption does not hold; i.e., the data contain uncompensated gross errors. To deal with this situation, several heuristics have been proposed. The technique usually employed is some variation of first using all the data to derive the model parameters, then locating the datum that is farthest from agreement with the instantiated model, assuming that it is a gross error, deleting it, and iterating this process until either the maximum deviation is less then some preset threshold or until there is no longer sufficient data to proceed. It can easily be shown that a single gross error ("poisoned point"), mixed in with a set of good data, can cause the above heuristic to fail. Robust fitters use techniques that get around this shortcoming. See the Remarks section of the Cog3DRobustFitTechniqueConstansts enum for details on fitting techniques. This class defines the enumeration constants for robust fitting techniques. RANSAC is a very popular technique and information about RANSAC can be obtained from a number of sources. One such source is "Random Sample Consensus: A paradigm for Model fitting with Application to Image Analysis and Automated Cryptography", Martin A. Fischler and Robert C. Bolles, Communications of ACM, June 1981, Volume 24, Number 6, 381-395. In the Adaptive RANSAC approach the number of tries is computed adaptively. It is often the case that the proportion of outliers is not known. In such cases the algorithm is initialized using the worst case estimate of the proportion of outliers. The distance threshold t is assumed to be specified. The following is the outline of the approach. Inputs: Data points. Distance threshold, t. The worst case proportion of data points that are outliers, w. An outlier is a data point that is further away than t. Proportion assurance, z. This is the likelihood that the computed fit contains only inliers. Compute the number of tries based upon w. Randomly select a sample of s data points from a data set S and instantiate the model from this subset, where s is the minimum number of data points that are required to instantiate the free parameters of the model. Identify all the points that are within the distance threshold t. The number of such points will be the number of inliers. Set w = (number of outliers)/(total number of points). Recompute the number of tries using w and z. If the total number of tries thus far is greater than the number of tries computed above, terminate the algorithm. Otherwise, repeat steps 3-7. Re-estimate the model using all the inliers. Refine the above model by recategorizing the data points as inliers and outliers and fitting to the inliers. Repeat step 9. for a maximum of three times or until the number of inliers ceases to increase It should be noted that the above technique is executed only if the proportion assurance is less than 1. If not, an exhaustive technique described below is executed. The WorstCaseProportionOutliers is assumed to be the true proportion of outliers and the number of inliers are computed. If there are n input points and m outliers, a combinations generator that generates nC(n-m) combinations is initialized. A combination of points are considered as being inliers and the model is computed. The actual number of inliers for the above model is computed. If the number of inliers is less than the expected number of inliers, steps 3-4 is repeated until all the combinations are tested. If after testing all combinations, a model could not be computed, the algorithm will terminate. Re-estimate the model using all the inliers. Refine the above model by recategorizing the data points as inliers and outliers and fitting to the inliers. Repeat step 6. for a maximum of three times or until the number of inliers ceases to increase. Use Adaptive RANSAC robust fitting technique. See Remarks section. Do not use any robust fitting technique. Validate the specified hand-eye calibration result using the specified calibration features and robot poses, and then return the hand-eye calibration validation result. A list of feature correspondences from the camera viewing the calibration plate. The list of feature correspondences are indexed by the robot hand pose. [i] corresponds to the ith robot pose. May not be null. A list of Cog3DTransformRigid's defining the robot hand poses. The list is indexed by robot hand pose. The size of this list must match the size of . May not be null. The hand-eye calibration result to be validated. If any input argument is null or any input argument includes a null item (except [i].Weights). If input arguments do not match, e.g. If .Count != .Count; If .Count is less than 2. If [i].PointsModel3D.Count != [i].PointsRaw2D.Count (i is inside [0, .Count-1]); If [i].Weights is not null, and [i].Weights.Count != [i].PointsModel3D.Count (i is inside [0, .Count-1]); The hand-eye calibration validation result. Notes: This tool requires at least 2 sets of features, and can provide more accurate results if more sets of features (corresponding to distinct robot hand poses) are provided. This tool requires all of the elements in to be from the same camera. The returned hand-eye calibration validation result includes a camera calibration validation result characterizing the accuracy of the camera intrinsics, and 3D residuals characterizing the accuracy of the whole hand-eye system. Construct this default Cog3DHandEyeCalibrationValidator. This class is for validating an existing 3D hand-eye calibration for one camera. The validation step accepts as inputs the original hand-eye calibration, a set of robot poses, and a corresponding set of feature positions. The output of the validation is a hand-eye validation result object. the hand-eye validation result object contains a camera calibration validation result and residuals for the hand-eye calibration validation. These characterize the accuracy of the hand-eye system. The accuracy can be compared to "baseline" accuracy estimates from calibration time in order to determine if the hand-eye system is still in calibration. A "baseline" validation should be performed immediately after hand-eye calibration. That baseline validation step should involve multiple view sets so that one can estimate the distribution of residuals. The "baseline" validation measurements are stored for future comparison. Then, at some arbitrary time (usually after the system performed vision tasks for a period of time), the user acquires images of the same calibration plate in some set of (preferrably, the same) robot poses and executes hand-eye calibration validation to get the "current" measurements. Finally, the user compares the "current" validation measurements with the "baseline". If the "current" measurements agree with the "baseline" measurements to a satisfactory degree, then the system is in calibration and the user does not need to perform any recalibration. If the measurements inside the camera calibration validation results satisfactorily agree, but the measurements of hand-eye validation residuals do not satisfactorily agree, then the user can use the baseline camera intrinsics to re-perform hand-eye calibration. If camera calibration validation results do not agree and the hand-eye calibration validation results do not agree, then camera calibration and hand-eye calibration both need to be performed again. Perform image correction (lens distortion removal) on the specified image. Use Raw2DFromPhys3DUsingCorrectImage as the camera calibration for the returned, corrected image. The raw image to correct. If the input argument is null. If IsTrained is false. The corrected image. Discard the trained data. Note that IsTrained will return false until Train() is called again. Train the image corrector using the specified camera calibration. The camera calibration associated with the raw (acquired) images. If is null. If .IsTelecentric is true. Gets the camera calibration produced at training-time. This is the camera calibration which should be used with the corrected images. The camera calibration to be used with the corrected images. If IsTrained is false. Gets whether this image corrector is trained. True if it is trained, and false otherwise. Construct this default Cog3DLensDistortionCorrector. Note that IsTrained is false. This class provides lens distortion correction based on a camera calibration. At training-time, this class trains an image corrector using the lens distortion data in a camera calibration, and produces a new camera calibration to be used with corrected images. At run-time, via the Execute() method, this class converts an acquired (raw) image into a corrected image where the lens distortion has been removed. The new camera calibration produced at training-time (Raw2DFromPhys3DUsingCorrectedImage) has a distortion model of Cog3DCameraCalibrationDistortionModelConstants.eNoDistortion, and has extrinsic parameters (Raw2DFromPhys3DUsingCorrectedImage.Camera3DFromPhys3D) that are the same as the original camera calibration (specified at training-time) extrinsic parameters. 2D features in the corrected image mapped to 3D rays in Phys3D space using Raw2DFromPhys3DUsingCorrectedImage, correspond to exactly the same 3D rays as corresponding 2D features in the uncorrected image mapped using the original camera calibration specified at training-time. Fits a 3D circle from 2D point sets and a set of camera calibrations. Each 2D point set must have been extracted from different cameras or views. The 2D point sets from the different cameras or views do not need to correspond, but they must lie on the same 3D circle. The camera calibrations used during the extraction of the 2D points. The size of this list defines the number of cameras or views used. The List of 2D point collections, one collection per camera or view. The size of the list must be equal to the number of cameras/views. A List containing 1 or 2 Cog3DCircleFitterUsing2DPointsResult objects (see Remarks section). Each result object contains the fitted 3D circle and 2D/3D residuals. If any input argument is null. If one of the following is true: The number of camera calibrations is less than 1. The number of camera calibrations does not match the number of 2D point collections. FitMode is Cog3DCircleFitterUsing2DPointsFitModeConstant.LeastSquaresUseSpecifiedRadius and Radius is 0. FitMode is Cog3DCircleFitterUsing2DPointsFitModeConstant.LeastSquaresComputeRadius and only one camera calibration is provided. None of the individual collections of 2D points contain five or more points. If any of the camera calibrations have telecentric lens distortion. If a 3D circle cannot be fitted. This Execute method may return at most two results. It returns a single result if there is one unambiguous 3D circle which induces the minimum sum squared image error. It returns two different 3D circles if there are two different 3D circles which induce similar sum squared image errors (For an explanation of why there are at most 2 different circles that match the image data, refer to the Forsyth et al paper "Invariant Descriptors for 3D Object Recognition" which appeared in IEEE PAMI, Vol. 13, No. 10, October 1991, pages 971 - 991)). Gets/sets the fit mode for circle fitting. The fit mode for circle fitting. If invalid fit mode is used in the setter. If FitMode is Cog3DCircleFitterUsing2DPointsFitModeConstants.eLeastSquaresUseSpecifiedRadius, then Execute will use the value of Radius. If FitMode is Cog3DCircleFitterUsing2DPointsFitModeConstants.eLeastSquaresComputeRadius, then Execute will ignore the value of Radius. Gets/sets the expected radius of the circle to find. The expected radius of the circle to find. If is less than 0. If FitMode is Cog3DCircleFitterUsing2DPointsFitModeConstants.eLeastSquaresUseSpecifiedRadius, then Execute will use this specified radius. If FitMode is Cog3DCircleFitterUsing2DPointsFitModeConstants.eLeastSquaresComputeRadius, then Execute will ignore this specified radius. Default constructor. Note that FitMode is Cog3DCircleFitterUsing2DPointsFitModeConstants.LeastSquaresUseSpecifiedRadius, and Radius is 0. This class provides 3D circle fitting from 2D points. A 3D circle is fitted from one or multiple sets of 2D image points. The sets of image points can come from different cameras or from a single camera providing multiple views of the circle. The 3D circle fitter computes the pose of the circle which minimizes the sum squared image error with respect to the given 2D image points from calibrated camera(s). This enum class defines enumeration constants for the different 3D circle fitting modes. DefaultFitMode is equal to LeastSquaresUseSpecifiedRadius. Least squares fit using the specified radius. Least squares fit using measured radius. Gets a copy of the fitted 3D circle. A copy of the fitted 3D circle. Finalizer. This class holds a result from a 3D circle fitting operation, where 2D points have been used as input. Note that this class is immutable - it may not be changed once it has been constructed. The usage model for this class is that it gets factoried by the Cog3DCircleFitterUsing2DPoints class and always contains a 3D circle fitting result. Fits a 3D line from 2D point sets and a set of camera calibrations. The 2D points must be extracted from different cameras or views. It is not required that the 2D points of the different cameras/views correspond, but all the 2D points must lie on the same 3D line. The stability and precision of the fitted line segment can be determined by setting Perturbation to a value greater than 0. This will estimate the precision of the found line segment by trying slight perturbations of the fitted line segment and comparing the residuals (induced by the perturbed line segment) with the residuals corresponding to the fitted line segment. The difference between the residuals induced by the perturbed line segment and the residuals of the fitted line segment are stored in the Cog3DLineFitterUsing2DPointsResult.MinDeltaResidualsPhys3D and Cog3DLineFitterUsing2DPointsResult.MinDeltaResidualsRaw2D properties. Notes: The result's IsFound property will be set to false if no line can be fit to the given points (such as when the line formed by the image points is exactly parallel to the baseline between two cameras). This operation determines the 3D line segment which minimizes the sum squared error in image pixels. The endpoints of the fitted line segment are determined by inferring 3D rays from all the pointsRaw2D, determining the nearest point on the fitted line segment to each 3D ray, determining the 2 outermost points with respect to all the nearest points on the fitted line segment. The camera calibrations of the cameras used to extract the 2D points. The size of the list defines the number of cameras/views used. A list of 2D point collections, one collection per camera/view. The size of the list must be equal to the number of cameras. Notes: This function can tolerate the situation where some items of pointsRaw2D are empty (i.e., [i].Count==0); It is NOT required that [camIndex_i].Count == [camIndex_j].Count (camIndex_i != camIndex_j); It is NOT required that [camIndex_i][k] corresponds to [camIndex_j][k] (camIndex_i != camIndex_j). A Cog3DLineFitterUsing2DPointsResult containing the fitted line segment and 2D and 3D residuals. If any of the input arguments is null. If .Count is less than 2. If .Count != .Count. If fewer than two of the individual items in contain two or more points. Gets/sets the perturbation used for measuring the precision of the estimated line segment. Note that perturbation is specified in physical units. The perturbation used for measuring the precision of the estimated line segment. If is less than 0. The measurement using this perturbation involves performing multiple experiments, measuring results, and then saving the most extreme result. Each experiment involves modifying the fitted line segment by moving one of the fitted line segment's endpoints along a ray (the ray starts from one of the cameras and is coincident with the endpoint) by the specified perturbation distance, and then computing the residuals (in both image and physical coordinates) between the rays corresponding to the raw2D image points and the perturbed line segment, and then subtracting the respective residuals of the best fit line. Default constructor. Initializes this object for use. Note that Perturbation is 0. This class provides 3D line fitting from 2D points. A 3D line is fitted from multiple sets of 2D image points. The sets of image points can come from different cameras or from a single camera providing multiple views of the line. The 3D line fitter computes the pose of the line which minimizes the sum squared image error with respect to the given 2D image points from calibrated camera(s). Gets a measure of the precision of the fitted line segment, and the measure is in Phys3D. Note that larger residuals indicate a more precise fitted line segment result (because the more the residuals increase per line segment perturbation, the more accurately the line segment is localized). A measure of the precision of the fitted line segment (in Phys3D units). If IsFound is false. Deprecated. Please use MinDeltaResidualsPhys3D instead. Deprecated. Please use MinDeltaResidualsRaw2D instead. Gets a measure of the precision of the fitted line segment in Raw2D space. Note that larger residuals indicate a more precise fitted line segment result (because the more the residuals increase per line segment perturbation, the more accurately the line segment is localized). If IsFound is false. A measure of the precision of the fitted line segment (in Raw2D units). If IsFound is false. If IsFound is false. Get a deep copy of the fitted 3D line. A deep copy of the fitted 3D line. If IsFound is false. Get a deep copy of the fitted 3D line segment. Note that the line segment is the shortest line segment that incorporates all of the 3D rays corresponding to the 2D points from calibrated cameras/views. The fitted 3D line segment. If IsFound is false. Gets whether or not a fitted line segment was found. True if a fitted line segment was found; false otherwise. This class holds a result from a 3D line fitting operation, where 2D points have been used as input. Note that this class is immutable - it may not be changed once it has been constructed. The usage model for this class is that it gets factoried by the Cog3DLineFitterUsing2DPoints class. Perform a 3D pose estimation using PointsModel3D (model points in Model3D space) and and the specified 3D points in Phys3D space. The 3D point collection in Phys3D space. Each 3D point in this collection must correspond to the 3D model point with the same index in PointsModel3D. The 3D estimated pose result object. The pose in the result object is the pose of the model in Phys3D space i.e. the pose maps points from the Model3D space to the Phys3D space. If the input argument is null. If the size of pointsPhys3D does not match the size of PointsModel3D. Gets/sets the 3D model points, in Model3D space, that define the object of interest. A collection of 3D model points in Model3D space. If input argument in the setter is null. Construct this default Cog3DPoseEstimatorUsing3DPoints. Note that PointsModel3D is an empty collection. This class provides 3D pose estimation from a set 3D "found" points and their corresponding 3D model points. The pose estimation is done by determining the best fit between the set of 3D model points and the set of corresponded 3D found points. Perform a 3D pose estimation based on the 3D model points, the specified camera calibrations, the specified 2D image points, and the specified weights, from one or multiple cameras/views. A List of CameraCalibrations. One calibration per camera/view. The size of this list specifies the number of cameras/views. A List of 2D point collections, indexed by camera/view. The size of the List must equal the number of cameras/views. The size of each collection must equal the number of model points. Each point in represents its corresponding model point from a specific camera/view, i.e., [i][j] is from camera i, and corresponds to PointsModel3D[j]. The total number of valid 2D points must be >= 3. A List of collections of weights, indexed by camera/view. The List may be null to indicate all points have a weight of 1. If not null, then the size of the List must be equal to the number of cameras/views, and each collection in the List is either null to indicate that all points from the corresponding camera have a weight of 1, or the collection has the same size as the number of 3D model points. Each weight must be >= 0. The 3D estimated pose result object. The pose in the result object maps points from Model3D space to Phys3D space. If any of the arguments (except ) is null. If .Count == 0; If .Count != .Count; If is not null, and .Count != .Count; If [i].Count != PointsModel3D.Count (i is inside [0, .Count-1]); If [i] is not null, and [i].Count != PointsModel3D.Count (i is inside [0, .Count-1]). Gets/sets the 3D model points, in Model3D space, that define the object of interest. A collection of 3D model points in Model3D space. If input argument in the setter is null. Construct this default Cog3DPoseEstimatorUsing2DPoints. Note that PointsModel3D is an empty collection. This class provides 3D pose estimation from a set or sets of 2D image points. The pose estimation is done by determining the best fit between a set of 3D model points and the set or sets of corresponded 2D image points. Gets the 3D pose of this result, i.e. the 3D pose of the model in Phys3D space. The 3D pose of the model in Phys3D space. This class encapsulates the result of a 3D pose estimation using 3D found points. Note that this class is immutable - it may not be changed once it has been constructed. Gets the 3D pose of this result, i.e. the 3D pose of the model in Phys3D space. The 3D pose of the model in Phys3D space. This class encapsulates the result of a 3D pose estimation using 2D image points. Note that this class is immutable - it may not be changed once it has been constructed. Triangulate a collection of 3D features from their corresponding 2D image points from different cameras. A list of Cog3DCameraCalibration, indexed by camera. One calibration per camera. The size of this list defines the number of cameras. Must be greater than or equal to two. A List of 2D point collections, indexed by camera. Each 2D point collection contains all 2D feature points from a specific camera. The size of the List must be equal to the number of cameras. The size of each 2D point collection must be the same and defines the number of 3D features to be triangulated. A List of valid flags Lists, indexed by camera. The outer List may be null to indicate all points are valid. If not null, the size of the outer List must be equal to the number of cameras, and each item in the outer List must be either null (to indicate all points from the corresponding camera are valid), or have the same size as the number of 3D features to be triangulated. This output parameter is a list of valid flags for the returned 3D features. If a 3D feature could not be triangulated, its corresponding flag will be false; true otherwise. The passed list will be re-initialized by this function. 2D residual error information is returned via this Out argument. One Cog3DResiduals per triangulated 3D feature. The passed list will be re-initialized by this function. 3D residual error information is returned via this Out argument. One Cog3DResiduals per triangulated 3D feature. The passed list will be re-initialized by this function. A collection of the triangulated 3D feature coordinates and updates . If any of the input arguments (except ) is null; If any item of is null; If any item of is null. If the sizes of and are different or are less than two; If [i] does not have the same length as [j] (i and j are inside [0, .Count-1]); If is not null, and does not have the same length as ; if [i] is not null, and does not have the same length as [i] (i is inside [0, .Count-1]). Triangulate a collection of 3D features from their corresponding 2D image points from different cameras. A list of Cog3DCameraCalibration, indexed by camera. One calibration per camera. The size of this list defines the number of cameras. Must be greater than or equal to two. A List of 2D point collections, indexed by camera. Each 2D point collection contains all 2D feature points from a specific camera. The size of the List must be equal to the number of cameras. The size of each 2D point collection must be the same and defines the number of 3D features to be triangulated. A List of valid flags Lists, indexed by camera. The outer List may be null to indicate all points are valid. If not null, the size of the outer List must be equal to the number of cameras, and each item in the outer List must be either null (to indicate all points from the corresponding camera are valid), or have the same size as the number of 3D features to be triangulated. This output parameter is a list of valid flags for the returned 3D features. If a 3D feature could not be triangulated, its corresponding flag will be false; true otherwise. The passed list will be re-initialized by this function. A collection of the triangulated 3D feature coordinates and updates . If any of the input arguments (except ) is null; If any item of is null; If any item of is null. If the sizes of and are different or are less than two If [i] does not have the same length as [j] (i and j are inside [0, .Count-1]); If is not null, and does not have the same length as ; If [i] is not null, and does not have the same length as [i] (i is inside [0, .Count-1]). Triangulate a 3D point from 2D image points from different cameras. A list of Cog3DCameraCalibrations, indexed by camera. One calibration per camera. A collection of 2D points, indexed by camera, representing the same object feature detected from different cameras. A collection of valid flags for each 2D point. This argument may be null, indicating that all points are valid. If it is not null, its size must be the same as the size of pointsRaw2D. 2D residual error information will be returned via this Out argument. 3D residual error information will be returned via this Out argument. The triangulated 3D point coordinate. If any of the arguments (except ) is null, or any item of is null. If the sizes of and are different or are less than two; or is not null and does not have the same length as . Triangulate a 3D point from 2D image points from different cameras. A list of Cog3DCameraCalibrations, indexed by camera. One calibration per camera. A collection of 2D points, indexed by camera, representing the same object feature detected from different cameras. A collection of valid flags for each 2D point. This argument may be null, indicating that all points are valid. If it is not null, its size must be the same as the size of pointsRaw2D. The triangulated 3D point coordinate. If any of the arguments (except ) is null, or any item of is null. If the sizes of and are different or are less than two; or is not null and does not have the same length as . Construct this Cog3DTriangulator. This class encapsulates a 3D Triangulator. It triangulates the 3D coordinate of an object's feature from 2D image coordinates of that feature observed from different cameras. Compute the hand-eye calibration(s) based on extrinsic camera transforms and robot poses. A doubly indexed list of Cog3DTransformRigid for extrinsic camera transforms under various robot hand poses. The first index is the robot hand pose index, the second index is the camera index. The size of the outer list must equal the number of robot hand poses. The size of each inner list must equal the number of cameras. A list of Cog3DTransformRigid's defining the robot hand poses, indexed by robot hand pose. The size of this list must equal the number of robot hand poses. A list of Cog3DTransformRigid indexed by camera, representing Camera3DFromHand3D if IsCameraMoving is true, or representing CalPlate3DFromHand3D if IsCameraMoving is false. If any input argument is null or any input argument includes a null item. If any of the following is true: is empty; .Count is not equal to .Count; [i].Count is not equal to [j].Count (i, j are inside [0, .Count]). If the operation is cancelled by user via the event handler. Compute the hand-eye calibration(s) based on camera intrinsic parameters, extrinsic camera transforms, and robot poses. A list of rectangles indexed by camera, that specifies the region of interest of the raw acquired calibration image (the camera's field of view). The size of this list defines the number of cameras. Each item must be the size of the acquired images for that camera (with origin (0,0)). A list of the cameras' intrinsic parameters indexed by camera. The size of this list must equal the number of cameras. A doubly indexed list of Cog3DTransformRigid for extrinsic camera transforms under various robot hand poses. The first index is the robot hand pose index, the second index is the camera index. The size of the outer list must equal the number of robot hand poses. The size of each inner list must equal the number of cameras. A list of Cog3DTransformRigid's defining the robot hand poses, indexed by robot hand pose. The size of this list must equal the number of robot hand poses. A list of Cog3DHandEyeCalibrationResult's indexed by camera containing the hand-eye calibration result for each camera. If any input argument is null or any input argument includes null item. If any of the following is true: is empty , , and [i] (i is inside [0, .Count -1]) are not the same size..Count is not equal to .Count If the operation is cancelled by user via the event handler. Compute the hand-eye calibration(s) using the specified calibration plate images acquired from different cameras and at different robot hand poses. A list of the cameras' intrinsic parameters indexed by camera. A doubly indexed list of calibration plate images, acquired at various robot hand poses. The first index is the robot hand pose index, the second index is the camera index. The feature extractor to be used for extracting calibration features from the images. A list of Cog3DTransformRigid's defining the robot hand poses, indexed by robot hand pose. The size of this list must equal the number of robot hand poses. A list of Cog3DHandEyeCalibrationResults indexed by camera, containing the hand-eye calibration result for each of the cameras. If any input argument is null or any input argument includes a null item. If any of the following is true: .Count is not equal to .Count [i].Count (i is inside [0, .Count -1]) is not equal to .Count If the operation is cancelled by user via the event handler. Compute the hand-eye calibration(s) using previously extracted calibration plate features and previously computed camera intrinsic parameters. A list of rectangles indexed by camera, that specifies the region of interest of the raw acquired calibration image (the camera's field of view). The size of this list defines the number of cameras. Each item must be the size of the acquired images for that camera (with origin (0,0)). A list of the cameras' intrinsic parameters indexed by camera. The size of this list must equal the number of cameras. A doubly indexed list of extracted calibration plate features from various robot hand poses. The first index is the robot hand pose index, the second index is the camera index. The size of the outer list must equal the number of robot hand poses. The size of each inner list must equal the number of cameras. A list of Cog3DTransformRigid's defining the robot hand poses, indexed by robot hand pose. The size of this list must equal the number of robot hand poses. A list of Cog3DHandEyeCalibrationResults (index is camera) containing the hand-eye calibration result for each camera. If any input argument is null or any input argument includes a null item (except [i][j].Weights). If any of the following is true: , , and [i] (i is inside [0, .Count -1]) are not the same size; and are not the same size. If [i][j].PointsModel3D.Count != [i][j].PointsRaw2D.Count (i is inside [0, .Count-1], and j is inside [0,[i].Count-1]); If [i][j].Weights is not null, and [i][j].Weights.Count != [i][j].PointsModel3D.Count (i is inside [0, .Count-1], and j is inside [0,[i].Count-1]); If the operation is cancelled by user via the event handler. Gets/Sets the sampling rectangle for residual error computation. The rectangle is specified in 2D calibration plate space (the units are those in which the calibration plate grid pitch is specified, and the origin is defined by the fiducial marks on the calibration plate). If the width or height of the rectangle is 0, no residual statistics will be computed. The plate rectangle used for residual computation. Getter returns null if the rectangle has not been set (default constructed Cog3DHandEyeCalibrator). Gets/sets the number of residual error sampling points in the Y-direction of PlateRectangleForResidualComputing. If this value is less than 1, no residual error will be computed. The number of residual error sampling points in the Y-direction of PlateRectangleForResidualComputing. Gets/sets the number of residual error sampling points in the X-direction of PlateRectangleForResidualComputing. If this value is less than 1, no residual error will be computed. The number of sample points (in X-direction) to be used for residual computation. Gets/sets whether the calibrator should perform calibration for moving or stationary camera(s) The value indicating whether a moving camera hand-eye calibration shall be performed. Construct this default Cog3DHandEyeCalibrator. Note that IsCameraMoving is true, PlateRectangleForResidualComputing is null, NumPlateSamplesX is 0, and NumPlateSamplesY is 0. Method to support hand-eye calibration progress event. The object containing hand-eye calibration progress event arguments. Hand-eye calibration progress event. This class encapsulates hand-eye calibration. Hand-eye calibration establishes the mapping between the camera(s) and the robot end effector. The IsCameraMoving property when true, specifies the cameras are mounted on the robot end effector; when false, specifies the cameras are stationary. This is the delegate for the hand-eye calibration progress event handler. Request to cancel the current hand-eye calibration. Gets whether a request to cancel the hand-eye calibration has been made. True if cancel is requested; False Otherwise Gets the message string. A string describing the progress. Gets the progress (fraction of completion). The progress which is a number between 0 (0%) and 1.0 (100%). Construct this Cog3DHandEyeCalibrationProgressEventArgs using the specified progress and message. The progress (the fraction of completion). A string describing the progress. This class holds data generated by the hand-eye calibration progress event. The hand-eye calibration progress event fires periodically during hand-eye calibration. A progress value of 0.0 means 0% complete and a value of 1.0 means 100% complete. Use the specified calibration features and the specified camera calibrations to compute 2 camera calibration validation results. The first result () contains the residuals when the specified camera calibrations are used. The second result () contains the residuals after a new set of extrinsic parameters are computed using the specified calibration features. Note that for the case of a single camera, the two results should be exactly equal to each other. The list of rectangles representing the size of the raw acquired images (the fields of view of the cameras). May not be null. The two-dimensional list of feature correspondences from the cameras viewing the calibration plate. The feature correspondences are indexed first by the calibration plate pose, then by camera. [i][j] corresponds to the ith calibration plate pose and the jth camera. May not be null. The list of camera calibrations, indexed by camera. [i] corresponds to the ith camera. May not be null. The computed validation result corresponding to using the original camera calibrations. The computed validation result corresponding to using re-computed extrinsics based on the specified calibration features. Note that the camera intrinsics are kept from the input camera calibrations. Note that it will be set to null if any camera distortion model is Cog3DCameraCalibrationDistortionModelConstants.eTelecentric. If any input argument is null or any input argument includes null item (except [i][j].Weights). If input arguments do not match, e.g. If .Count, .Count, and [i].Count are not the same. (i is inside [0, .Count-1]); If is empty; If is empty; If [i][j].PointsModel3D.Count != [i][j].PointsRaw2D.Count (i is inside [0, .Count-1], and j is inside [0,[i].Count-1]); If [i][j].Weights is not null, and [i][j].Weights.Count != [i][j].PointsModel3D.Count (i is inside [0, .Count-1], and j is inside [0,[i].Count-1]); Notes: This tool only requires a single set of calibration features, but can provide more accurate results if multiple sets of calibration features are provided. The tool can tolerate some of the correspondences being empty so long as there are other correspondences which allow the validation to be computed. This tool handles calibration features with 3-dimensional physical positions. This tool requires that all of the elements in the calibration features vector correspond to the same set of cameras. This tool requires that all of the calibration features correspond to cameras, and the optical paths associated with each camera are unchanged. Construct this default Cog3DCameraCalibrationValidator. This class provides the ability to verify a set of camera calibrations accurately reflects the current intrinsic parameters for a set of cameras as well as the relative positions of the cameras. Note that the size of the set of camera calibrations and the size of the set of cameras can be 1. The verification requires as input the original camera calibrations and a set of calibration features that have been extracted from a newly acquired set of images. The verification outputs the 2D and 3D residuals characterizing the current accuracy of the image acquisition system. These "current" accuracies can be compared to the "baseline" accuracies computed at the time of the original camera calibration. The results of the comparison determine whether or not the image acquisition system is still in calibration. Due to the nature of the validation procedure (positioning a calibration plate in an arbitrary pose), the validation cannot determine if the world coordinate system has changed. Validation can only determine if the camera intrinsics are out of calibration, and if the camera positions RELATIVE TO EACH OTHER have changed. A "baseline" validation should be performed immediately after camera calibration. That baseline validation step should involve multiple view sets so it is possible to estimate the distribution of 2D residuals and 3D residuals. The "baseline" validation measurements should be stored for future comparison. Then, at some arbitrary time (usually after the system performed vision tasks for a period of time), the user acquires images of the same calibration plate in some set of (preferrably, the same) poses and executes camera calibration validation to get the "current" measurements. Finally, the user compares the "current" validation measurements with the "baseline". If the "current" measurements agree with the "baseline" measurements to a satisfactory degree, then the system is in calibration and the user does not need to perform any recalibration. If the measurement computed using the "recomputed extrinsics" satisfactorily agrees, but the measurement computed using the existing "camera calibration" do not satisfactorily agrees, then the user needs to perform extrinsic calibration. If neither validation measurements agree, then the user needs to perform full recalibration. Overload to draw a collection of 3D points. can be a VisionPro shape that serves as a marker: CogCircle, CogPointMarker, or CogRectangle. A collection of 3D points in an arbitrary 3D space. The rigid transform used to map the points inside to the Phy3D space of . This parameter can be null to signify an identity transform should be used. The camera calibration used for projecting the mapped 3D points onto an acquired image. May not be null. An example shape graphic used to draw each projected 2D point. If it is true, the graphic properties of this shape projector will be used in rendering, otherwise the graphic properties of will be used instead. The VisionPro graphics collection the rendered graphics is appended to. If , , , or is null. If is not of Type CogCircle, CogRectangle, or CogPointMarker. Overload to draw a collection of 2D points. can be a VisionPro shape that serves as a marker: CogCircle, CogPointMarker, or CogRectangle. A collection of 2D points in the Raw2D space. An example shape graphic used to draw each 2D point. If it is true, the graphic properties of this shape projector will be used in rendering, otherwise the graphic properties of will be used instead. The VisionPro graphics collection the rendered graphics is appended to. If , , or is null. If is not of Type CogCircle, CogRectangle, or CogPointMarker. Maps 3D coordinate axes using the phys3DFromAxes3D transform. Then projects the mapped 3D coordinate axes using the raw2DFromPhys3D camera calibration onto the image plane. The projected axes, along with x, y, z text and specified label are then rendered as VisionPro graphics and appended to the specified graphicsCollection. The 3D vector representing the physical length of the X, Y, and Z coordinate axes to be projected and rendered. The rigid transform used to specify the pose of the 3D coordinate axes in the Phys3D coordinate space of the specified raw2DFromPhys3D camera calibration. This parameter can be null to signify an identity transform should be used. The camera calibration used for projecting the 3D coordinate axes onto an acquired image. May not be null. The specified label for the 3D coordinate axes. If it is null, then the label string is empty. The VisionPro graphics collection the projected and rendered axes are appended to. If is zero or negative in any dimension. if , or is null. Maps a list of 3D shapes using the phys3DFromShape3D transform. Then projects the mapped 3D shapes using the raw2DFromPhys3D camera calibration onto the image plane. The shapes are then rendered as VisionPro graphics and appended to the specified graphicsCollection. The 3D shapes to be projected and rendered. The rigid transform used to map the shapes from the coordinate space it is defined into the Phys3D coordinate space of the specified raw2DFromPhys3D camera calibration. This parameter can be null to signify an identity transform should be used. The camera calibration used for projecting the 3D shapes onto an acquired image. The VisionPro graphics collection the rendered shape is appended to. If , any item of , , or is null. Maps the specified 3D shape using the phys3DFromShape3D transform. Then projects the mapped 3D shape using the raw2DFromPhys3D camera calibration onto the image plane. The shape is then rendered as a VisionPro graphic and appended to the specified graphicsCollection. The 3D shape to be projected and rendered. The rigid transform used to map the shape from the coordinate space it is defined into the Phys3D coordinate space of the specified raw2DFromPhys3D camera calibration. This parameter can be null to signify an identity transform should be used. The camera calibration used for projecting the 3D shape onto an acquired image. The VisionPro graphics collection the rendered shape is appended to. If , , or is null. Gets/sets the line style used for rendering the shapes. The line style used for rendering shapes. Gets/sets the line width used for rendering the shapes. The line width in screen pixels used for rendering shapes. From setter if is less than 1. Gets/sets the color of the shapes being rendered. The color used for rendering shapes. Gets/sets how shapes are to be rendered. Bitfield specifying how shapes are rendered. Set the Cog3DShapeStateConstants::Vertex bit to have vertices representing the shape rendered. Set the Cog3DShapeStateConstants::Curve bit to have the curves representing the shape rendered. The Cog3DShapeStateConstants::Vertex bit and/or the Cog3DShapeStateConstants::Curve bit must be set in . Initializes this object for use. It is initialized such that: Color is CogColorConstants.Cyan, LineWidthInScreenPixels is 1, LineStyle is CogGraphicLineStyleConstants.Solid, and ShapeRepresentation is Cog3DShapeStateConstants.Vertex | Cog3DShapeStateConstants::Curve. This class provides the functionality for projecting the vertex and/or curve representations of 3D shapes onto the image plane of a calibrated 2D camera i.e. acquired image, converting the projection results to 2D VisionPro graphics and then appending the graphics to a VisionPro CogGraphicCollection. Overload for computing the 3D camera calibration from the given feature correspondences, camera intrinsic parameters, and calibration plate poses. Note that DistortionModel inside this Cog3DCameraCalibrator will be ignored, and the ones inside will be used instead. The list of the regions of interest (the fields of view) of the raw acquired images (the fields of view of the cameras). May not be null. Each item must be the size of acquired calibration images for that camera (with origin (0,0)). Two-dimensional list of feature correspondences from the cameras viewing the calibration plate. The feature correspondences are indexed first by the calibration plate pose, then by camera. [i][j] corresponds to the ith calibration plate pose and the jth camera. May not be null. A list of intrinsic camera calibration parameters, and indexed by camera. [i] corresponds to the ith camera. May not be null. The list of poses of the calibration plate (with respect to the calibration plate pose defining the world coordinate system). [i] corresponds to the ith calibration plate pose. Calibration plate pose does not need to be specified exactly for pose types of PoseElevated or PoseTilted. The requirement is as follows: The poses for pose types of PoseSpecified must be valid/appropriate; The poses for pose types of PoseTilted will be ignored; The poses for pose types of PoseElevated will be used to set the z height information of the calibration plate (only pose.Translation.Z will be used); The pose for pose type of PoseDefineWorldCoord must be identity. The list of calibration plate pose types. It should have the same length as . May not be null. If any input argument is null or any input argument includes null item (except [i][j].Weights). If input arguments do not match, e.g. If , , and are not the same length; If , , and [i] (i is inside [0, .Count-1]) are not the same length; If is empty; If is empty. If [i][j].PointsModel3D.Count != [i][j].PointsRaw2D.Count (i is inside [0, .Count-1], and j is inside [0,[i].Count-1]); If [i][j].Weights is not null, and [i][j].Weights.Count != [i][j].PointsModel3D.Count (i is inside [0, .Count-1], and j is inside [0,[i].Count-1]); If the operation is cancelled by user via the event handler. The 3D camera calibration result. This overload ignores DistortionModel value of this Cog3DCameraCalibrator object. Overload for computing the 3D camera calibration from the given feature correspondences and camera intrinsic parameters, and z height information of the calibration plate poses. Note that DistortionModel inside this Cog3DCameraCalibrator will be ignored, and the ones inside will be used instead. The list of the regions of interest (the fields of view) of the raw acquired images (the fields of view of the cameras). May not be null. Each item must be the size of acquired calibration images for that camera (with origin (0,0)). Two-dimensional list of feature correspondences from the cameras viewing the calibration plate. The feature correspondences are indexed first by the calibration plate pose, then by camera. [i][j] corresponds to the ith calibration plate pose and the jth camera. May not be null. A list of intrinsic camera calibration parameters, and indexed by camera. [i] corresponds to the ith camera. May not be null. The z positions of the calibration plate for different calibration plate poses. [i] corresponds to the ith calibration plate pose. The requirement is as follows: The z positions corresponding to pose types of PoseElevated must be valid/appropriate; The z position corresponding to pose type of PoseDefineWorldCoord must be 0; The z positions corresponding to pose types of PoseTilted will be ignored; The z positions corresponding to pose types of PoseSpecified require that the calibration plate is a pure translation in Z from the PoseDefineWorldCoord poseType. Thus, a Z value is all that is required. May not be null. The list of calibration plate pose types. [i] corresponds to the ith calibration plate pose type. It should have the same length as . May not be null. If any input argument is null or any input argument includes null item (except [i][j].Weights). If input arguments do not match, e.g. If , , and are not the same length; If , , and [i] (i is inside [0, .Count-1]) are not the same length; If is empty; If is empty. If [i][j].PointsModel3D.Count != [i][j].PointsRaw2D.Count (i is inside [0, .Count-1], and j is inside [0,[i].Count-1]); If [i][j].Weights is not null, and [i][j].Weights.Count != [i][j].PointsModel3D.Count (i is inside [0, .Count-1], and j is inside [0,[i].Count-1]); If the operation is cancelled by user via the event handler. The 3D camera calibration result. This overload ignores DistortionModel value of this Cog3DCameraCalibrator object. Overload for computing the 3D camera calibration from the given feature correspondences, and calibration plate poses. The list of the regions of interest (the fields of view) of the raw acquired images (the fields of view of the cameras). May not be null. Each item must be the size of acquired calibration images for that camera (with origin (0,0)). Two-dimensional list of feature correspondences from the cameras viewing the calibration plate. The feature correspondences are indexed first by the calibration plate pose, then by camera. [i][j] corresponds to the ith calibration plate pose and the jth camera. May not be null. The list of poses of the calibration plate (with respect to the calibration plate pose defining the world coordinate system). [i] corresponds to the ith calibration plate pose. Calibration plate pose does not need to be specified exactly for pose types of PoseElevated or PoseTilted. The requirement is as follows: The poses for pose types of PoseSpecified must be valid/appropriate; The poses for pose types of PoseTilted will be ignored; The poses for pose types of PoseElevated will be used to set the z height information of the calibration plate (only pose.Translation.Z will be used); The pose for pose type of PoseDefineWorldCoord must be identity. The list of calibration plate pose types. It should have the same length as . May not be null. If any input argument is null or any input argument includes null item (except [i][j].Weights). If input arguments do not match, e.g. If , , and are not the same length; If does not have the same length as [i] (i is inside [0, .Count-1]); If is empty; If is empty. If [i][j].PointsModel3D.Count != [i][j].PointsRaw2D.Count (i is inside [0, .Count-1], and j is inside [0,[i].Count-1]); If [i][j].Weights is not null, and [i][j].Weights.Count != [i][j].PointsModel3D.Count (i is inside [0, .Count-1], and j is inside [0,[i].Count-1]); If the operation is cancelled by user via the event handler. The 3D camera calibration result. Overload for computing the 3D camera calibration from the given feature correspondences, and z height information of the calibration plate poses. The list of the regions of interest (the fields of view) of the raw acquired images (the fields of view of the cameras). May not be null. Each item must be the size of acquired calibration images for that camera (with origin (0,0)). Two-dimensional list of feature correspondences from the cameras viewing the calibration plate. The feature correspondences are indexed first by the calibration plate pose, then by camera. [i][j] corresponds to the ith calibration plate pose and the jth camera. May not be null. The z positions of the calibration plate for different calibration plate poses. [i] corresponds to the ith calibration plate pose. The requirement is as follows: The z positions corresponding to pose types of PoseElevated must be valid/appropriate; The z position corresponding to pose type of PoseDefineWorldCoord must be 0; The z positions corresponding to pose types of PoseTilted will be ignored; The z positions corresponding to pose types of PoseSpecified require that the calibration plate is a pure translation in Z from the PoseDefineWorldCoord poseType. Thus, a Z value is all that is required. May not be null. The list of calibration plate pose types. [i] corresponds to the ith calibration plate pose type. It should have the same length as . May not be null. If any input argument is null or any input argument includes null item (except [i][j].Weights). If input arguments do not match, e.g. If , , and are not the same length; If does not have the same length as [i] (i is inside [0, .Count-1]); If is empty; If is empty; If [i][j].PointsModel3D.Count != [i][j].PointsRaw2D.Count (i is inside [0, .Count-1], and j is inside [0,[i].Count-1]); If [i][j].Weights is not null, and [i][j].Weights.Count != [i][j].PointsModel3D.Count (i is inside [0, .Count-1], and j is inside [0,[i].Count-1]); If the operation is cancelled by user via the event handler. The 3D camera calibration result. Overload method of Computing the 3D camera calibration from the given images and calibration plate poses. Two-dimensional list of images from the cameras viewing the calibration plate. The images are indexed first by the calibration plate pose, then by camera. [i][j] corresponds to the ith calibration plate pose and the jth camera. May not be null. The feature extractor operator to be used. A Cog3DCheckerboardFeatureExtractor should be used if using Cognex checkerboard calibration plate. May not be null. The list of poses of the calibration plate (with respect to the calibration plate pose defining the world coordinate system). [i] corresponds to the ith calibration plate pose. Calibration plate pose does not need to be specified exactly for pose types of PoseElevated or PoseTilted. The requirement is as follows: The poses for pose types of PoseSpecified must be valid/appropriate; The poses for pose types of PoseTilted will be ignored; The poses for pose types of PoseElevated will be used to set the z height information of the calibration plate (only pose.Translation.Z will be used); The pose for pose type of PoseDefineWorldCoord must be identity. The list of calibration plate pose types. It should have the same length as . May not be null. If any input argument is null or any input argument includes null item. If input arguments do not match, e.g. If , , and are not the same length; If [i] does not have the same length as [j] (i and j are inside [0, .Count-1]); If is empty or [0] is empty. If the operation is cancelled by user via the event handler. The 3D camera calibration result. Compute the 3D camera calibration from the given images and z height information of the calibration plate poses. Two-dimensional list of images from the cameras viewing the calibration plate. The images are indexed first by the calibration plate pose, then by camera. [i][j] corresponds to the ith calibration plate pose and the jth camera. May not be null. The feature extractor operator to be used. A Cog3DCheckerboardFeatureExtractor should be used if using Cognex checkerboard calibration plate. May not be null. The z positions of the calibration plate for different calibration plate poses. [i] corresponds to the ith calibration plate pose. The requirement is as follows: The z positions corresponding to pose types of PoseElevated must be valid/appropriate; The z position corresponding to pose type of PoseDefineWorldCoord must be 0; The z positions corresponding to pose types of PoseTilted will be ignored; The z positions corresponding to pose types of PoseSpecified require that the calibration plate is a pure translation in Z from the PoseDefineWorldCoord poseType. Thus, a Z value is all that is required. May not be null. The list of calibration plate pose types. [i] corresponds to the ith calibration plate pose type. It should have the same length as . May not be null. If any input argument is null or any input argument includes null item. If input arguments do not match, e.g. If , , and are not the same length; If [i] does not have the same length as [j] (i and j are inside [0, .Count-1]); If is empty or [0] is empty. If the operation is cancelled by user via the event handler. The 3D camera calibration result. Gets/sets the approximate cameras' positions with respect to the calibration plate (for telecentric cameras). If of setter is null. The approximate estimates of the cameras' positions (Z heights in Phys3D). May not be null. Since the direction of Z axis of Phys3D is out the back of the calibration plate, the Z values of cameras that can see the calibration plate when defining the world coordinate should be negative. Gets/sets the distortion model parameter. The distortion model used for camera calibration. Construct this default Cog3DCameraCalibrator. Note that the default distortion model is Cog3DCameraCalibrationDistortionModelConstants.e3ParamRadial. Method to support calibration progress event. The object containing camera calibration progress event arguments. Camera calibration progress event. This class is for executing 3D camera calibration for one or multiple cameras. Cognex 3D camera calibration tool requires: All of the images/features correspond to the same set of stationary cameras, and the optical paths associated with each camera are unchanged. All of the images/features correspond to the same calibration plate. Notes: The tool can tolerate it if the plate pose defining world coordinates does not include features for some of the cameras - as long as the camera poses can be induced from other images. The tool may take a relatively long time to run, and supports progress event. The tool can handle cameras of different camera intrinsics, such as different resolutions and cameras with different focal length lenses. The calibration computation minimizes the sum squared error in image coordinates. Therefore, if different cameras have different pixel resolutions, then the calibration may be dominated by the higher resolution cameras. Consequently, this tool is most useful when all cameras have similar pixel resolutions. Cognex strongly recommends performing a camera calibration validation after you perform camera calibration. This camera calibration validation establishes a baseline that can be used in the future to determine if your cameras are still calibrated. See the Cog3DCameraCalibrationValidator class for details. This class defines enumeration constants used for calibration plate pose types. DefaultPoseType is equal to PoseDefineWorldCoord. The calibration plate is accurately positioned at a known pose in the world coordinate system. The calibration plate is arbitrarily positioned. The calibration plate pose is precisely parallel to the pose that defined the world coordinate system (and the offset between the two calibration plate poses will be specified). Note that the (x,y) translation and rotation in-the-plane are unconstrained. The calibration plate pose defines the world coordinate system. This is the delegate of camera calibration progress event handler. Request to cancel the operation. Gets whether it is requested to cancel the operation. True if cancel is requested; False Otherwise Gets the message string. A string describing the progress. Gets the progress (the fraction of completion). The progress. Construct this Cog3DCameraCalibrationProgressEventArgs using the specified progress and message. The progress (the fraction of completion). A string describing the progress. This class holds data provided by the camera calibration progress event. The camera calibration progress event fires periodically during camera calibration. A progress value of 1.0 means 100% complete. Extracts features from a Cognex checkerboard calibration plate image. The fiducial defining the calibration plate's origin, must be within the field of view or an exception is thrown. The calibration image of the Cognex checkerboard calibration plate. The extracted feature correspondences and their weights. If the input argument is null. If the expected origin fiducial feature could not be found. If True, use the value when is either DataMatrix or DataMatrixWithGridPitch. The default value is False. The maximum time in milliseconds to search for a single DataMatrix fiducial. This property is only used when is true and is either UseDataMatrix or UseDataMatrixWithGridPitch: If is Exhaustive, an exception will occur if it takes longer than to find an acceptable DataMatrix fiducial. If is ExhaustiveMultiRegion, an exception will occur if it takes longer than to find the first acceptable DataMatrix fiducial. Once the operator finds the first acceptable DataMatrix fiducial without timeout, the operator processes each isolated region of checkerboard features. For each isolated region of checkerboard features, if it takes longer than to find a DataMatrix fiducial, the operator will not include any features from that region but no exception will be thrown. The default value is 30000 (i.e. 30 seconds). If the supplied value is less than or equal to zero. Gets/sets the algorithm to be used for feature finding. The default is Exhaustive. Gets/sets the style of fiducial mark to be found on the Cognex calibration plate. The default is UseFiducial. Gets/sets the physical grid pitch of the Cognex checkerboard calibration plate. The physical grid pitch of the Cognex checkerboard calibration plate. Construct this Cog3DCheckerboardFeatureExtractor using the specified grid pitch. The initial grid pitch for the calibration plate. This class defines a Cognex checkerboard calibration feature extractor. This extractor extracts the calibration features from an image of a Cognex checkerboard calibration plate. Enumeration that specifies the algorithm used in feature extraction. Similar to Exhaustive, but it returns feature correspondences from all contiguous regions of checkerboard features in which a DataMatrix was successfully decoded. An exhaustive algorithm used for registering and labeling the features. The standard algorithm used for registering and labeling the features. This algorithm is fast and works well on clean images but may fail on images better handled by Exhaustive mode. Enumeration that specifies what style of fiducial mark is present on the calibration plate. The calibration plate has DataMatrix fiducial marks that incorporate specification of the grid pitch. The calibration plate has DataMatrix fiducial marks. The calibration plate has a Cognex standard fiducial mark: two rectangles of different lengths arranged in an 'L' shape. The origin of the coordinate system is set at the vertex closest to the center of the image. The X axis is set to be the direction of a row or column of vertices along which X components of image coordinates of vertices increase faster. Method to support feature extraction progress event. False if user requires to cancel the operation, and true otherwise. Extract features from a set of calibration images, acquired from one or multiple cameras over different calibration plate poses. The images are organized in a List, indexed by calibration plate pose. Each item in the list is a List of images, indexed by camera. It is expected that the fiducial defining the calibration plate's origin is within the field of view. The feature extraction is done by calling the Execute( ICogImage ) method for each calibration image. The Execute( ICogImage ) method will be invoked on multiple threads if the IsThreadSafe property is true. The FeaturesExtracted event is fired after the featues are extracted from each image. A doubly indexed list of the calibration images, indexed first by calibration plate pose, then by camera. The extracted feature correspondences and their weights. The feature correspondences are arranged the same way as the calibration images. If the operation is cancelled by user via the event handler. If feature extraction for one image failed. Feature extraction progress event. Default constructor. This class is the abstract base class for 3D calibration feature extractors. Clients that are using a Cognex checkerboard calibration plate can use the Cog3DCheckerboardFeatureExtractor class to perform calibration feature extraction. These clients do not need to be concerned with this base class. Clients that are not using a Cognex checkerboard calibration plate must implement their own calibration feature extractor class capable of extracting calibration features from images of the special calibration object. One way to implement such a custom calibration feature extractor class, is to derive the custom calibration feature extraction class from this base class. The derived calibration feature extraction class can then be passed into the Cog3DCameraCalibrator.Execute() overloads that require an ICog3DCalibrationFeatureExtractor. This abstract base class provides an implementation of the ICog3DCalibrationFeatureExtractor.Execute(List< List< ICogImage > >) method. This implementation calls derived class' ICog3DCalibrationFeatureExtractor.Execute( ICogImage ) and will make the calls on multiple threads if the derived class' ICog3DCalibrationFeatureExtractor.IsThreadSave property is true. The provided implementation supports feature extraction progress events as well - the FeaturesExtracted event is fired as soon as feature extraction is completed on each calibration image. Derived classes must: implement an override of the ICog3DCalibrationFeatureExtractor.Execute( ICogImage ) method as well as implement the IsThreadSafe property which specifies whether the override of Execute() is thread-safe or not. This is the delegate of features Extracted progress event handler. Request to cancel the operation. Gets whether it is requested to cancel the operation. True if cancel is requested; False Otherwise Gets the features that have been extracted. The features that have been extracted. The features are NOT deep copy from the feature extraction, and modifying them may result in unexpected behavior. Gets the camera index of the image whose calibration features have been extracted. The camera index of the image whose calibration features have been extracted. Gets the calibration plate pose index of the image whose calibration features have been extracted. The calibration plate pose index of the image whose calibration features have been extracted. Construct this Cog3DFeaturesExtractedEventArgs using the providing information for an image whose calibration features have been extracted. The calibration plate pose index for the processed image. The camera index for the processed image. The collection of feature correspondences for the processed image. Property Features will return This class holds data provided by Cog3DCalibrationFeatureExtractorBase.FeaturesExtracted event. FeaturesExtracted event fires each time processing of an image has finished. Gets whether the implementation of the Execute(ICogImage) method is thread-safe. thread-safety is required to allow multithreading within implementations of the Execute(List< List< ICogImage > >) method. Whether the implementation of the Execute(ICogImage) method is thread-safe. Extract features from a set of calibration images, acquired from one or multiple cameras over different calibration plate poses. The images are organized in a List, indexed by calibration plate pose. Each item in the list is a List of images, indexed by camera. It is expected that the fiducial defining the calibration plate's origin is within the field of view. The feature extraction is done by calling the Execute( ICogImage ) method for each calibration image. The Execute( ICogImage ) method will be invoked on multiple threads if the IsThreadSafe property is true. A doubly indexed list of the calibration images, indexed first by calibration plate pose, then by camera. The extracted feature correspondences and their weights. The feature correspondences are arranged the same way as the calibration images. If the input argument is null. Extract features from a calibration image. The calibration image to extract features from. The extracted feature correspondences and their weights. If the input argument is null. This is the interface class for 3D calibration feature extractors. This interface class is used in several Cog3DCameraCalibrator.Execute() overloads. Gets/sets the collection of weights. A collection of weights. Null value means that all the points have equal weight of 1.0. Gets/sets the collection of 2D feature points. A collection of 2D feature points. If the input argument of the setter is null. Gets/sets the collection of 3D model points. A collection of 3D model points. If the input argument of the setter is null. Construct this Cog3DCrspFeaturesCollection with the supplied components. The collection of 3D model points. May not be null. The collection of 2D feature points. May not be null. The collection of weights. Note that if is null, it means that all the points have equal weight of 1.0. If or is null. Construct this default (empty) Cog3DCrspFeaturesCollection. The PointsModel3D collection is empty. The PointsRaw2D collection is empty. The Weights collection is null. This class holds 3 collections: a collection of 3D model points, a collection of 2D image feature points, and a collection of weights. The elements of the 3 collections are corresponded. This means the jth element of the 3D model point collection, corresponds to the jth element of the 2D image feature point collection, which in turn corresponds to the jth element of the weights collection. Note that many functions that accept a Cog3DCrspFeaturesCollection as an argument, allow the weights collection to be null.