"Cognex.VisionPro3D.Core" Gets the overall residual statistics corresponding to the distribution of physical 3D residuals over all robot poses used for validation. The residual statistics characterizing the accuracy of the hand-eye system. PositionResidualsPhys3D.ResidualsDistance.Rms can be used to compare between the stored validation result and the current validation result and see whether the measurements satisfactorily agree. Gets the camera calibration validation result. The camera calibration validation result characterizing the accuracy of camera intrinsic parameters. This class encapsulates a hand-eye calibration validation result. It contains a camera calibration validation result with 2D and 3D residuals to characterize the accuracy of the camera intrinsic parameters, and 3D residuals to characterize the accuracy of the whole hand-eye system. These residuals objects are intended to be used to determine whether a system is "out of calibration". 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 Cog3DHandEyeCalibrationValidator class and always contains a hand-eye calibration validation result and 3D residuals. Gets the RMS error of the RMS errors of the Phys3D residuals for each combination of calibration plate pose and camera. The RMS error of the RMS errors of the Phys3D residuals for each combination of calibration plate pose and camera. This value can be used as an overall accuracy metric for all the cameras and camera calibrations in the system. Gets the RMS error of the RMS errors of the Raw2D residuals for each combination of calibration plate pose and camera. The RMS error of the RMS errors of the Raw2D residuals for each combination of calibration plate pose and camera. This value can be used as an overall accuracy metric for all the cameras and camera calibrations in the system. Gets the camera calibration result for all the calibration plate poses and for all the cameras. The camera calibration result. This class encapsulates the results of a 3D camera calibration validation. It contains a 3D camera calibration result and two RMS error values. The two RMS error values are the RMS error of the RMS errors in the residuals observed over all of the calibration plate poses for all the cameras. One RMS error value is the RMS error observed for raw image 2D residuals. The other RMS error value is the RMS error observed for the physical 3D residuals. These RMS error values are designed to be used to determine thresholds for whether a system is "out of calibration". 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 Cog3DCameraCalibrationValidator class and always contains the results from a camera calibration validation. Create the camera calibration for a stationary camera hand-eye calibration at the supplied robot hand pose. The physical 3D (Phys3D) space is the Hand 3D space (Hand3D). The current robot hand pose in RobotBase 3D space (RobotBase3D). The 3D camera calibration composed of the camera intrinsics in this result, and the stationary camera's extrinsics, derived from the supplied robot hand pose. If the input argument is null. If IsCameraMoving would return true. Create the camera calibration for a moving camera hand-eye calibration, at the supplied robot hand pose. The physical 3D space (Phys3D) is the RobotBase 3D space (RobotBase3D). The current robot hand pose in RobotBase 3D space (RobotBase3D). The 3D camera calibration composed of the camera intrinsics in this result, and the moving camera's extrinsics, derived from the supplied robot hand pose. If the input argument is null. If IsCameraMoving would return false. Create the camera calibration for a stationary camera hand-eye calibration. The physical 3D space (Phys3D) is the RobotBase 3D space (RobotBase3D). The 3D camera calibration composed of the camera intrinsics in this result, and the stationary camera's extrinsics (in RobotBase 3D space). If IsCameraMoving would return true. Create the camera calibration based on the supplied camera extrinsics. The camera extrinsics. This rigid 3D transform maps points from the physical 3D space (Phys3D) into the camera 3D space (Camera3D). The 3D camera calibration composed of the camera intrinsics in this result, and the supplied camera extrinsics. If the input argument is null. Gets the camera intrinsics (which correspond to the mapping from Camera2D space (the z=1 plane in front of the camera) to Raw2D image space). The camera intrinsics (which correspond to the mapping from Camera2D space (the z=1 plane in front of the camera) to Raw2D image space). Gets the transformation from Camera3D to RobotBase3D for a stationary camera/moving plate calibration. The returned transformation maps points from the calibrated camera 3D space to robot base 3D space. The transformation from Camera3D to RobotBase3D for a stationary camera/moving plate calibration. If this is a moving camera calibration. Gets the hand-eye transformation for a moving camera/stationary plate calibration. The returned transformation maps points from the robot hand 3D space (Hand3D) to the calibrated camera 3D space (Camera3D). The hand-eye transformation for a moving camera/stationary plate calibration. If this is a stationary camera calibration. Gets the overall residual statistics. These statistics represent all mapped samples from all stations. The overall residual statistics. If this result has no valid residual statistics. Gets whether this result contains valid residual statistics. Whether this result contains valid residual statistics. Gets the region of interest of the raw acquired calibration image (the field of view of the calibrated camera). The region of interest of the raw acquired calibration image (the field of view of the calibrated camera). Gets whether this is a moving camera hand-eye calibration result. True if this is a moving camera hand-eye calibration result; False otherwise. Construct this default Cog3DHandEyeCalibrationResult. This class encapsulates a hand-eye calibration result. 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 Cog3DHandEyeCalibrator class and always contains a hand-eye calibration result. Convert this camera calibration result to a cc3DCameraCalibResult and export to a CVL archive file. The path of CVL archive file to store the camera calibration result. May not be null or empty. If the input argument is null or an empty string. Import a cc3DCameraCalibResult from a CVL archive file. The path of the CVL archive file containing the camera calibration result. May not be null or empty. If the input argument is null or an empty string. A converted 3D camera calibration result. Get the camera intrinsics from the camera calibration result. The list of camera intrinsics for all cameras. Gets the proportion of a particular camera's field of view which was covered by the convex hull of the feature correspondences found in the particular calibration plate pose. The zero-based index of the camera. The zero-based index of the calibration plate pose. The proportion of the specified camera's field of view which was covered by the convex hull of the feature correspondences found in the specified calibration plate pose. Gets the proportion of a particular camera's field of view which was covered by the convex hull of the feature correspondences found in all calibration plate poses. The zero-based index of the camera. The proportion of the specified camera's field of view which was covered by the convex hull of the feature correspondences found in all calibration plate poses. Gets the number of correspondences found for a particular calibration plate pose and a particular camera. The zero-based index of the camera. The zero-based index of the calibration plate pose. The number of correspondences found for the specified calibration plate pose and the specified camera. Gets the residual statistics in Phys3D for the specified calibration plate pose and the specified camera. The zero-based index of the camera. The zero-based index of the calibration plate pose. The residual statistics in Phys3D for the specified calibration plate pose and the specified camera. Gets the residual statistics in Raw2D for the specified calibration plate pose and the specified camera. The zero-based index of the camera. The zero-based index of the calibration plate pose. The residual statistics in Raw2D for the specified calibration plate pose and the specified camera. Gets the overall residual statistics in Raw2D (over all cameras and over all calibration plate poses). The overall residual statistics in Raw2D. Gets the overall residual statistics in Phys3D (over all cameras and over all calibration plate poses). The overall residual statistics in Phys3D. Gets the maximum tilt of the calibration plate over all the measured poses. The maximum tilt of the calibration plate. Gets the pose of a particular camera relative to the calibration plate at a particular calibration plate pose index. The zero-based index of the camera. The zero-based index of the calibration plate pose. The pose of a particular camera relative to the calibration plate at the specified calibration plate pose index. If is out of range [0, NumCalPlatePoses-1], or is out of range [0, NumCameras-1]. Gets the number of calibration plate poses, i.e., the number of views. The number of calibration plate poses. Gets the number of cameras inside this camera calibration result. The number of cameras. Gets the transform between the specified camera and the physical coordinate system (Phys3D). The physical coordinate system corresponds to the view having pose type PoseDefineWorldCoord. The zero-based index of the camera. The transform between the specified camera and the physical coordinate system (Phys3D). If is out of range [0, NumCameras-1]. Get the calibration plate poses computed by the 3D camera calibration algorithm. The poses are computed with respect to the calibration plate pose which defines the world coordinates (which is equivalent to Phys3D). A list of calibration plate poses. Get the calibrations computed by the 3D camera calibration algorithm. The list of camera calibrations. This class holds 3D camera calibration result. It contains the set of Cog3DCameraCalibration for all the cameras. 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 Cog3DCameraCalibrator class and *always* contains a camera calibration result. Note that in camera calibration, Phys3D is the coordinate space defined by the calibration plate pose with pose type of Cog3DCalibrationPlatePoseTypeConstants.PoseDefineWorldCoord. Convert this camera calibration to a cc3DCameraCalib and export to a CVL archive file. The path of CVL archive file to store the camera calibration. May not be null or empty. If the input argument is null or an empty string. Import a cc3DCameraCalib from a CVL archive file. The path of the CVL archive file containing the camera calibration. May not be null or empty. If the input argument is null or an empty string. A converted 3D camera calibration. Operator for mapping a 3D physical position to a Raw2D image position using the specified camera calibration. The specified camera calibration. May not be null. The 3D point in Phys3D to map using the specified camera calibration. The mapped point in Raw2D. If is null. Create a new camera calibration by composing the current Camera3DFromPhys3D transform with the specified Phys3DFromAny3D transform. The value of camera3DFromPhys3D in the new camera calibration object becomes Camera3DFromPhys3D * The transform from a 3D space to the current camera calibration's Phys3D. May not be null. The created camera calibration. If is null. Create a new camera calibration by using the specified Camera3DFromPhys3D transform. The new Camera3DFromPhys3D transform. May not be null. The created new camera calibration. If is null. Compute a 3D ray through the camera origin from the given 2D image position. The 2D image point in Raw2D space. A ray in Phys3D. Map a 2D point from Raw2D to a 3D point in Phys3D. The 3D physical point is computed by intersecting the ray corresponding to a 2D raw image point with the given plane in Phys3D. The 2D point in Raw2D space. The 3D plane in Phys3D used for intersection with the ray. May not be null. A reference to the 3D point to store the resulting intersection position between the ray and the plane. jA reference to the intersection result status to store the intersection status. If is null. The resultStatus is set to Cog3DShapeIntersectionStatusConstants.Intersect if is computed; Otherwise it is set to Cog3DShapeIntersectionStatusConstants.None, and is not updated. Project a 3D point from Phys3D to Raw2D. The 3D point in Phys3D. The projected point in Raw2D. Gets the region of interest (the field of view) of the raw acquired image (the field of view of the camera). The region of interest of the raw acquired image. Get the inverse of the camera extrinsics from this camera calibration. The 3D transform that corresponds to Phys3D space from Camera3D space. Get the camera extrinsics from this camera calibration. The camera extrinsics that correspond to the position of the camera with respect to Phys3D space. Gets the camera intrinsic parameters from this camera calibration. The camera intrinsic parameters. Gets whether this camera calibration's distortion model is Cog3DCameraCalibrationDistortionModelConstants::eTelecentric. True if this camera calibration's distortion model is Cog3DCameraCalibrationDistortionModelConstants::eTelecentric; False otherwise. Construct this Cog3DCameraCalibration using the specified camera intrinsics, Camera3DFromPhys3D pose, and the specified calibration region of interest. The camera intrinsics. May not be null. The camera extrinsics. May not be null. The region of interest (the field of view) of the raw acquired image (the field of view of the camera). Must be the size of acquired calibration images for this camera (with origin(0,0)). If or is null. If width or height of is equal or less than 0. This class holds intrinsic and extrinsic camera calibration parameters for one camera. Note that in camera calibration, Phys3D is the coordinate space defined by the calibration plate pose with pose type of Cog3DCalibrationPlatePoseTypeConstants.PoseDefineWorldCoord. Note that this class is immutable - it may not be changed once it has been constructed. Map a 2D point from Camera2D to Raw2D. The 2D point in Camera2D. The mapped point. Map a 2D point from Raw2D to Camera2D. The 2D point in Raw2D. The mapped point. Gets the distortion model. The distortion model. Get the coefficients of lens distortion. The coefficients of lens distortion. Gets the skew coefficient. The skew coefficient. Gets the x and y translations. The x and y translations. Gets the x and y scales. The x and y scales. Construct this Cog3DCameraCalibrationIntrinsics using the specified camera intrinsics parameters. The x and y scales. The x and y translations. The skew coefficient. The distortion model. The coefficients of lens distortion. Note that the number of elements in Kc must match the distortion model . If .X is less or equal to 0, or .Y is less or equal to 0. If does not have the number of coefficients required for . This class holds camera intrinsic parameters. These parameters include: two scales, skew, translation and coefficients of radial distortion. Note that this class is immutable - it may not be changed once it has been constructed. This class defines enumeration constants used for calibration distortion model. Supported in 3D camera calibration, and used for telecentric lenses. Supported in 3D camera calibration, and may be used for “low distortion” lenses – where the distortion is not apparent to the human eye – but where distortion correction can improve accuracy performance nonetheless. Supported in 3D camera calibration, and may be used for ideal lenses without distortion. Supported in 3D camera calibration, and may be used for “high distortion” lenses – short focal length lenses which exhibit apparent distortion. Compare two Cog3DPositionResiduals. The first PositionResiduals. The second PositionResiduals. False if exactly equal, true otherwise. Compare two Cog3DPositionResiduals. The first PositionResiduals. The second PositionResiduals. True if exactly equal, false otherwise. Gets the residual statistics based on Euclidian distance. The residual statistics based on Euclidian distance. Gets the residual statistics based on distance measured solely along the "z" axis. The residual statistics based on distance measured solely along the "z" axis. Gets the residual statistics based on distance measured solely along the "y" axis. The residual statistics based on distance measured solely along the "y" axis. Gets the residual statistics based on distance measured solely along the "x" axis. The residual statistics based on distance measured solely along the "x" axis. Construct this Cog3DPositionResiduals with the supplied values. The initial ResidualsX value. The initial ResidualsY value. The initial ResidualsZ value. The initial ResidualsDistance value. This value class holds residual error statistics for a collection of 3D locations. This class lets you obtain both maximum and RMS error for differences in the x-, y-, and z-directions as well as for the Euclidean distance between expected and actual points. Note that this class is immutable - it may not be changed once it has been constructed. The default values for properties ResidualsX, ResidualsY, ResidualsZ, and ResidualsDistance are default constructed Cog3DResiduals. Compare two Cog3DAngleRange's. The first Cog3DAngleRange. The second Cog3DAngleRange. False if exactly equal, true otherwise. Compare two Cog3DAngleRange's. The first Cog3DAngleRange. The second Cog3DAngleRange. True if exactly equal, false otherwise. Dilate this angle range by another angle range. The other angle range. An angle range characterized by dilating this angle range by . Check whether a value is inside the angle range. The value (in radians) for checking. True if is inside the angle range; false otherwise. Gets the length of the angle range in radians, and is defined as follows: If RangeType is Cog3DRangeTypeConstants.Full, Length is 2 * Math.PI. If RangeType is Cog3DRangeTypeConstants.Empty,Length is 0. If RangeType is Cog3DRangeTypeConstants.Partial, Length is (End -Start). The length of the angle range in radians. Gets the type of the angle range. The type of the angle range. Gets the middle of the angle range in radians. The middle of the angle range in radians. If RangeType is NOT Cog3DRangeTypeConstants.Partial. Gets the end value of the angle range in radians. The end value of the angle range in radians. If RangeType is NOT Cog3DRangeTypeConstants.Partial. Gets the start value of the angle range in radians. The start value of the angle range in radians. If RangeType is NOT Cog3DRangeTypeConstants.Partial. Create a full range object. A Cog3DAngleRange object with full range. Construct this Cog3DAngleRange with the given start and end values. Note that if - > 2*PI, then it constructs a full angle range. The start value of the angle range in radians. The end value of the angle range in radians. If > . This value class describes an angle range and associated operations. An angle range can have a range type of Cog3DRangeTypeConstants.Full, or .Empty, or .Partial. If the range type is Cog3DRangeTypeConstants:Partial, it has a start value and an end value. This class is immutable - it may not be changed once it has been constructed. The default constructor creates an object with an empty angle range. Compare two Cog3DRange's. The first Cog3DRange. The second Cog3DRange. False if the two ranges are exactly equal, true otherwise. Compare two Cog3DRange's. The first Cog3DRange. The second Cog3DRange. True if the two ranges are exactly equal, false otherwise. Erode this range by another range. The other range. A new range computed by eroding this range by . Dilate this range by another range. The other range. A new range computed by dilating this range by . Scale this range by the given amount. The scale factor. A new range computed by scaling this range by . Translate this range by the given amount. The amount to translate. A new range computed by translating this range by . Intersect this range with another range. The other range. A new range resulting from the intersection of this range and . Check whether a value is inside the range. The value for checking. True if is inside the range; false otherwise. Gets the length of the range, and is defined as follows: If RangeType is Cog3DRangeTypeConstants.Full, Length is Double.MaxValue. If RangeType is Cog3DRangeTypeConstants.Empty,Length is 0. If RangeType is Cog3DRangeTypeConstants.Partial, Length is (End -Start). The length of the range. Gets the type of the range. The type of the range. Gets the middle of the range. The middle of the range. If RangeType is NOT Cog3DRangeTypeConstants.Partial. Gets the end value of the range. The end value of the range. If RangeType is NOT Cog3DRangeTypeConstants.Partial. Gets the start value of the range. The start value of the range. If RangeType is NOT Cog3DRangeTypeConstants.Partial. Create a full range object. A Cog3DRange object with full range. Construct this Cog3DRange with the given start and end values. The start value of the range. The end value of the range. If > . This value class describes a range and associated operations. A range can have a range type of Cog3DRangeTypeConstants.Full, or .Empty, or .Partial. If the range type is Cog3DRangeTypeConstants:Partial, it has a start value and an end value. This class is immutable - it may not be changed once it has been constructed. The default constructor creates an object with an empty range. This class defines enumeration constants used for Cog3DRange. Range spans the entire space. Range is completely empty. Range spans a finite segment. Compare two Cog3DResiduals. The first Residual. The second Residual. False if the two Residuals are exactly equal, true otherwise. Compare two Cog3DResiduals. The first Residual. The second Residual. True if the two Residuals are exactly equal, false otherwise. Gets the maximum residual value. The maximum residual value. Gets the RMS residual value. The RMS residual value. Construct this Cog3DResiduals with the supplied Rms, Max values. The initial Rms value. The initial Max value. If any argument is less than 0, or initialMax is less than initialRms. This value class holds residual statistics information. Residual error is the difference between a measured metric and its expected value. Residual statistics may be expressed as the maximum error (the largest difference) or the RMS error (Root Mean Square, the square root of the average of the differences squared). Note that this class is immutable - it may not be changed once it has been constructed. The default values for properties Rms and Max are 0.0. Check whether one line and one plane are perpendicular within the specified tolerance, i.e., whether is parallel to the normal vector of within . It is the caller responsibility to map the shapes to a common 3D space before calling this method. The 3D plane. May not be null. The 3D line. May not be null. The tolerance used in checking. True if and are perpendicular within the specified tolerance, false otherwise. If or is null. If is degenerate or is degenerate. This method computes the cross product of .Direction and .Normal. If the length of the cross product is less than or equal to , returns true, false otherwise Check whether one line and one plane are parallel within the specified tolerance, i.e., whether is perpendicular to the normal vector of within the specified tolerance. It is the caller responsibility to map the shapes to a common 3D space before calling this method. The 3D plane. May not be null. The 3D line. May not be null. The tolerance used in checking. True if and are parallel within the specified tolerance, false otherwise. If or is null. If is degenerate or is degenerate. This method computes the dot product of .Direction and .Normal. If the absolute value of the dot product is less than or equal to , returns true, false otherwise Check whether two planes are anti-parallel within the specified tolerance. It is the caller responsibility to map the shapes to a common 3D space before calling this method. The first plane. May not be null. The second plane. May not be null. The tolerance used in checking. True if and are anti-parallel within the specified tolerance, false otherwise. If or is null. If is degenerate or is degenerate. See section of remarks in Check whether two planes are parallel including direction within the specified tolerance. It is the caller responsibility to map the shapes to a common 3D space before calling this method. The first plane. May not be null. The second plane. May not be null. The tolerance used in checking. True if and are parallel including direction within the specified tolerance, false otherwise. If or is null. If is degenerate or is degenerate. See section of remarks in Check whether two planes are parallel including direction or anti-parallel within the specified tolerance. It is the caller responsibility to map the shapes to a common 3D space before calling this method. The first plane. May not be null. The second plane. May not be null. The tolerance used in checking. True if and are parallel including direction or anti-parallel within the specified tolerance, false otherwise. If or is null. If is degenerate or is degenerate. Plane parallelism checking methods compute the cross product and dot product of the two unit normal vectors of and . If the length of the cross product vector is less than or equal to , AreRealParallel() returns true; If the dot product is greater than 0 and AreRealParallel() is true, AreRealParallelIncludingDirection() returns true; If the dot product is less than 0 and AreRealParallel() is true, AreRealAntiParallel() returns true. Check whether two lines are anti-parallel within the specified tolerance. It is the caller responsibility to map the shapes to a common 3D space before calling this method. The first line. May not be null. The second line. May not be null. The tolerance used in checking. True if and are anti-parallel within the specified tolerance, false otherwise. If or is null. If is degenerate or is degenerate. See section of remarks in Check whether two lines are parallel including direction within the specified tolerance. It is the caller responsibility to map the shapes to a common 3D space before calling this method. The first line. May not be null. The second line. May not be null. The tolerance used in checking. True if and are parallel including direction within the specified tolerance, false otherwise. If or is null. If is degenerate or is degenerate. See section of remarks in Check whether two lines are parallel including direction or anti-parallel within the specified tolerance. It is the caller responsibility to map the shapes to a common 3D space before calling this method. The first line. May not be null. The second line. May not be null. The tolerance used in checking. True if and are parallel including direction or anti-parallel within the specified tolerance, false otherwise. If or is null. If is degenerate or is degenerate. Line parallelism checking methods compute the cross product and dot product of the two unit direction vectors of and . If the length of the cross product vector is less than or equal to , AreRealParallel() returns true; If the dot product is greater than 0 and AreRealParallel() is true, AreRealParallelIncludingDirection() returns true; If the dot product is less than 0 and AreRealParallel() is true, AreRealAntiParallel() returns true. Project a 3D line segment onto a specified 3D plane. It is the caller responsibility to map the shapes to a common 3D space before calling this method. The 3D plane to project onto. May not be null. The 3D line segment. May not be null. This output parameter is used to keep the projected line segment. This output parameter is used to keep the projection status. If is Cog3DShapeProjectionStatusConstants.DegenerateProjection, will be a degenerate line segment. If or is null. If is degenerate or is degenerate. Project a 3D line onto a specified 3D plane. It is the caller responsibility to map the shapes to a common 3D space before calling this method. The 3D plane to project onto. May not be null. The 3D line. May not be null. This output parameter is used to keep the projected line. This output parameter is used to keep the projection status. If is Cog3DShapeProjectionStatusConstants.DegenerateProjection, will be a degenerate line. If or is null. If is degenerate or is degenerate. Compute the minimum distance between two line segments. It is the caller responsibility to map the shapes to a common 3D space before calling this method. The first 3D line segment. May not be null. The second 3D line segment. May not be null. The minimum distance between and If or is null. Compute the intersection line between two given planes. It is the caller responsibility to map the shapes to a common 3D space before calling this method. The first 3D plane. May not be null. The second 3D plane. May not be null. This output parameter is used to keep the intersection line. This output parameter is used to keep the intersection status. is valid if and only if is Cog3DShapeIntersectionStatusConstants.Intersect, and unchanged otherwise. is Cog3DShapeIntersectionStatusConstants.Overlap if is coincident with . is Cog3DShapeIntersectionStatusConstants.None if is parallel to . If or is null. If is degenerate or is degenerate. Compute the intersection point between the given plane and the given 3D ray. It is the caller responsibility to map the shapes to a common 3D space before calling this method. The 3D plane. May not be null. The 3D ray. May not be null. This output parameter is used to keep the intersection point. This output parameter is used to keep the intersection status. is valid if and only if is Cog3DShapeIntersectionStatusConstants.Intersect, and unchanged otherwise. is Cog3DShapeIntersectionStatusConstants.Overlap if is on . is Cog3DShapeIntersectionStatusConstants.None if is parallel to or if is pointing away from . An intersection will not be found if is pointing away from . If or is null. If is degenerate or is degenerate. Compute the intersection point between the given plane and the given 3D line. It is the caller responsibility to map the shapes to a common 3D space before calling this method. The 3D plane. May not be null. The 3D line. May not be null. This output parameter is used to keep the intersection point. This output parameter is used to keep the intersection status. is valid if and only if is Cog3DShapeIntersectionStatusConstants.Intersect, and unchanged otherwise. is Cog3DShapeIntersectionStatusConstants.Overlap if is on . is Cog3DShapeIntersectionStatusConstants.None if is parallel to . If or is null. If is degenerate or is degenerate. Compute the pair of nearest points between two lines. It is the caller responsibility to map the shapes to a common 3D space before calling this method. The first line. May not be null. The second line. May not be null. This output parameter is a point on . The distance between and is the shortest distance between and . This output parameter is a point on . The distance between and is the shortest distance between and . If and are parallel or coincident, then the pair of nearest points is not unique. (, ) is just one of the pairs of nearest points. If or is null. This class contains static methods that perform various 3D shape geometric operations. Note that this class has only static methods. This class defines enumeration constants of the shape projection status for 3D shapes. The projection results in a degenerate shape. Standard projection Internal helper function to convert a .NET ICog3DShape to a CVL cc3DShape*. The CVL shape used in the conversion. May not be null. If the cvlShape argument is null. If the cvlShape argument is an unknown CVL shape. Internal helper function to convert a CVL cc3DShape* to a .NET ICog3DShape. The CVL shape used in the conversion. May not be null. Specifies whether or not the .NET class should take ownership of the cvlShape. If takeOwnership is true, then ownership of the specified cvlShape is taken by the .NET class returned. If takeOwnership is false, then a copy of the specified cvlShape is held by the .NET class returned. If the cvlShape argument is null. If the cvlShape argument is an unknown CVL shape. Maps this cylinder through the specified rigid transform and returns a new Cog3DCylinder. The rigid transform to use when mapping this cylinder. The Cog3DCylinder resulting from mapping this shape through the specified rigid transform. If is null. Set the ShapeFromScaledUnitCylinder transform of this cylinder. It may change the value of StartCircle. It does not change the value of Radius and Height. A Cog3DTransformRigid used to specify the ShapeFromScaledUnitCylinder transform of this cylinder. This transform specifies the pose of the ScaledUnitCylinder in 3D space. If is null. Fires when some properties change. The following state flags may be affected: SfGetShapeFromScaledUnitCylinder SfStartCircle SfGetEndCircle SfAxisDirection SfComputeBoundingBox Get the ShapeFromScaledUnitCylinder transform of this cylinder. The ShapeFromScaledUnitCylinder transform of this cylinder. This transform specifies the pose of the ScaledUnitCylinder in 3D space. Get the end circle of this cylinder. The end circle of this cylinder. Gets/Sets the start circle of this cylinder. If of setter is null. The start circle of the cylinder, and it might be a degenerate circle. Fires when this property changes. The following state flags may be affected: SfStartCircle SfGetEndCircle SfGetShapeFromScaledUnitCylinder SfRadius SfAxisDirection SfComputePerimeter SfComputeArea SfComputeVolume SfComputeBoundingBox SfIsDegenerateCurve SfIsDegenerateSurface SfIsDegenerateVolume Gets the axis direction of this cylinder. The axis direction of the cylinder. Gets/sets the height of this cylinder. The height of this cylinder. If is less than 0. Fires when this property changes. The following state flags may be affected: SfHeight SfGetEndCircle SfComputeArea SfComputeVolume SfComputeBoundingBox SfIsDegenerateVolume Gets the radius of this cylinder. The radius of this cylinder. Gets/sets the ShapeState for this shape. The ShapeState of this Shape. Must be Cog3DShapeStateConstants.Curve, or .Surface, or .Volume. If is not Cog3DShapeStateConstants.Curve, .Surface, or .Volume. Fires when this property changes. The following state flags may be affected: SfShapeState Constructs a cylinder using the specified start circle, height, and Cog3DShapeStateConstants. The cylinder extends from the start circle in the direction of the start circle's normal. The start circle of the cylinder. May not be null, but a degenerate circle is allowed. The height of this cylinder. Must be >= 0. The state of this cylinder. Must be Cog3DShapeStateConstants.Curve, .Surface, or .Volume. If is null. If is less than 0. If is not Cog3DShapeStateConstants.Curve, .Surface, or .Volume. Constructs a cylinder using the specified radius, height, rigid transform, and Cog3DShapeStateConstants. The radius of this cylinder. Must be >= 0. The height of this cylinder. Must be >= 0. The rigid transform that maps the ScaledUnitCylinder to a pose in 3D space. May not be null. The state of this cylinder. Must be Cog3DShapeStateConstants.Curve, .Surface, or .Volume. If is less than 0. If is less than 0. If is null. If is not Cog3DShapeStateConstants.Curve, .Surface, or .Volume. Constructs a degenerate cylinder with Radius of 0, Height of 0, ShapeFromScaledUnitCylinder of identity transform, and ShapeState of Cog3DShapeStateConstants.Volume. This class encapsulates a 3D cylinder. A Cog3DCylinder can be defined by a 3D circle (StartCircle) and a height(Height). The 3D circle defines the cylinder's bottom circle (StartCircle), radius (Radius) and axis direction (AxisDirection). The height (Height) defines the cylinder's height along the normal direction of StartCircle. A 3D cylinder can also be defined by using a UnitCylinder, a radius, a height, and a rigid transform ShapeFromScaledUnitCylinder. The UnitCylinder has a bottom unit circle centered at the origin, the axis of the UnitCylinder is along the positive Z axis and has unit length. Scale UnitCylinder using the specified radius and height, so the ScaledUnitCylinder has the specified radius and height. The rigid transform ShapeFromScaledUnitCylinder is used to transform ScaledUnitCylinder to the expected pose in 3D space. Maps this sphere through the specified rigid transform and returns a new Cog3DSphere. The rigid transform to use when mapping this sphere. The Cog3DSphere resulting from mapping this shape through the specified rigid transform. If is null. Set the ShapeFromScaledUnitSphere transform of this sphere. It may change the value of Center. It does not change the value of Radius. A Cog3DTransformRigid used to specify the ShapeFromScaledUnitSphere transform of this sphere. This transform specifies the pose of the ScaledUnitSphere in 3D space. If is null. Fires when some properties change. The following state flags may be affected: SfGetShapeFromScaledUnitSphere SfCenter SfComputeBoundingBox Get the ShapeFromScaledUnitSphere transform of this sphere. The ShapeFromScaledUnitSphere transform of this sphere. This transform specifies the pose of the ScaledUnitSphere in 3D space. Gets/sets the center position of this sphere. The center point of this sphere. The setter might change the value of GetShapeFromScaledUnitSphere(). Fires when this property changes. The following state flags may be affected: SfCenter SfGetShapeFromScaledUnitSphere SfComputeBoundingBox Gets/sets the radius of this sphere. The radius of this sphere. If is less than 0. Fires when this property changes. The following state flags may be affected: SfRadius SfComputeArea SfComputeVolume SfComputeBoundingBox SfIsDegenerateSurface SfIsDegenerateVolume Gets/sets the ShapeState for this shape. The ShapeState of this Shape. Must be Cog3DShapeStateConstants.Surface, or .Volume. The ShapeState for this shape must be Cog3DShapeStateConstants.Surface, or .Volume. Fires when this property changes. The following state flags may be affected: SfShapeState Constructs a sphere using the specified radius, center, and Cog3DShapeStateConstants. The radius of the sphere. radius must be >= 0. The center of the sphere. The state of this sphere. Must be Cog3DShapeStateConstants.Surface, or .Volume. If is less than 0. If is neither Cog3DShapeStateConstants.Surface, nor .Volume. Constructs a sphere using the specified radius, rigid transform, and Cog3DShapeStateConstants. The radius of this sphere. Must be >= 0. The rigid transform that maps the ScaledUnitSphere to a pose in 3D space. The state of this sphere. Must be Cog3DShapeStateConstants.Surface, or .Volume. If is less than 0. If is null. If is neither Cog3DShapeStateConstants.Surface nor .Volume. Constructs a degenerate sphere with Radius of 0, Center of (0,0,0), ShapeFromScaledUnitSphere of identity transform, and ShapeState of Cog3DShapeStateConstants.Volume. This class encapsulates a 3D sphere. A Cog3DSphere can be defined by a radius (Radius) and a center (Center). It can also be defined by a radius and a 3D rigid transform: the radius defines a sphere centered at the origin (cc3DVect(0,0,0)) with the specified radius, and the rigid transform (ShapeFromScaledUnitSphere) is used to transform the above sphere to the expected pose in 3D space. Maps this point through the specified rigid transform and returns a Cog3DPoint. The rigid transform to use when mapping this point. The Cog3DPoint resulting from mapping this point through the specified rigid transform. If is null. Gets/sets the z component of this point's 3D position. The z component of this point's 3D position. Gets/sets the y component of this point's 3D position. The y component of this point's 3D position. Gets/sets the x component of this point's 3D position. The x component of this point's 3D position. Gets the ShapeState for this shape. The ShapeState of this Shape. Constructs a Cog3DPoint using a specified Cog3DVect3. The position vector of the 3D point. Constructs a Cog3DPoint using the specified 3D position. The x component of the point's 3D position. The y component of the point's 3D position. The z component of the point's 3D position. Constructs a Cog3DPoint consistent with Cog3DPoint(0, 0, 0). This class encapsulates a 3D point shape. Maps this circle through the specified rigid transform and returns a Cog3DCircle. The rigid transform to use when mapping this circle. The Cog3DCircle resulting from mapping this shape through the specified rigid transform. If is null. Set the ShapeFromScaledUnitCircle transform of this circle. It may change the value of Center. It does not change the value of Radius. A Cog3DTransformRigid used to specify the ShapeFromScaledUnitCircle transform of this circle. This transform specifies the pose of the ScaledUnitCircle in 3D space. If is null. Fires when some properties change. The following state flags may be affected: SfGetShapeFromScaledUnitCircle SfNormal SfCenter SfComputeBoundingBox Get the ShapeFromScaledUnitCircle transform of this circle. The ShapeFromScaledUnitCircle transform of this circle. This transform specifies the pose of the ScaledUnitCircle in 3D space. Gets/sets the normal direction of this circle. The normal direction of this circle. The setter might change the value of GetShapeFromScaledUnitCircle(). If is (0,0,0). Fires when this property changes. The following state flags may be affected: SfNormal SfGetShapeFromScaledUnitCircle SfComputeBoundingBox Gets/sets the center position of this circle. The center point of this circle. The setter might change the value of GetShapeFromScaledUnitCircle(). Fires when this property changes. The following state flags may be affected: SfCenter SfGetShapeFromScaledUnitCircle SfComputeBoundingBox Gets/sets the radius of this circle. The radius of this circle. If is less than 0. Fires when this property changes. The following state flags may be affected: SfRadius SfComputePerimeter SfComputeArea SfComputeBoundingBox SfIsDegenerateCurve SfIsDegenerateSurface Gets/sets the ShapeState for this shape. The ShapeState of this Shape. Must be Cog3DShapeStateConstants.Curve, or .Surface. The ShapeState for this shape must be Cog3DShapeStateConstants.Curve, or .Surface. Fires when this property changes. The following state flags may be affected: SfShapeState Constructs a circle using the specified radius, center, normal direction, and Cog3DShapeStateConstants. The radius of the circle. radius must be >= 0. The center of the circle. The normal direction of the circle. The state of this box. Must be Cog3DShapeStateConstants..Curve, or .Surface. If radius is less than 0. If is (0,0,0). The ShapeState for this shape must be Cog3DShapeStateConstants.Curve, or .Surface. Constructs a circle using the specified radius, transform, and Cog3DShapeStateConstants. The radius of the circle. radius must be >= 0. The rigid transform that maps the ScaledUnitCircle to a pose in 3D space. The state of this box. Must be Cog3DShapeStateConstants.Curve, or .Surface. If radius is less than 0. If is null. The ShapeState for this shape must be Cog3DShapeStateConstants.Curve, or .Surface. Constructs a degenerate circle on the XY plane and whose center is at the origin. Radius is 0, ShapeFromScaledUnitCircle is identity transform, and ShapeState is Cog3DShapeStateConstants.Surface. This is the shape class for representing an oriented 3D circle. A Cog3DCircle can be defined by a radius (Radius), a center (Center), and a normal direction (Normal). It can also be defined by a radius and a 3D rigid transform: the radius defines a circle on the XY plane whose center is at the origin ((0,0,0)) and has the specified radius, the rigid transform (ShapeFromScaledUnitCircle) is used to transform the above circle on the XY plane to the expected pose in 3D space. Computes the surfaces of this box. The list of surfaces of this box. Notes: Assuming a unit box, the order of the returned rectangles is (uisng a pair of opposite vertices for each rectangle): 0 Cog3DVect3(0,0,0), Cog3DVect3(1,1,0) 1 Cog3DVect3(0,0,1), Cog3DVect3(1,1,1) 2 Cog3DVect3(0,0,0), Cog3DVect3(1,0,1) 3 Cog3DVect3(1,0,0), Cog3DVect3(1,1,1) 4 Cog3DVect3(0,1,0), Cog3DVect3(1,1,1) 5 Cog3DVect3(0,0,0), Cog3DVect3(0,1,1) Each element of the returned list has the ShapeState value of Cog3DShapeStateConstants.Surface no matter the current ShapeState value of the box. Some elements of the returned list might be degenerate rectangles and some elements might be duplicate if this box is degenerate. Computes the set of vertices defining this aligned box. Assuming a unit box, the order of the returned vertices is: (0,0,0) (1,0,0) (1,1,0) (0,1,0) (0,0,1) (1,0,1) (1,1,1), (0,1,1). The set of vertices defining this aligned box. Maps this aligned box through the specified rigid transform and returns a Cog3DBox. The rigid transform to use when mapping this aligned box. The Cog3DBox resulting from mapping this shape through the specified rigid transform. If is null. Gets/sets the translation of this aligned box. Changing the translation will change the value returned by Center. The translation of this aligned box. Fires when this property changes. The following state flags may be affected: SfTranslation SfCenter SfGetSurfaces SfGetLineSegments SfGetVertices SfComputeBoundingBox Gets the center position of this aligned box. The center point of this aligned box. Gets/sets the size of this aligned box. The setter may change the value of Center. It does not change the value of Translation. The size of this aligned box. If any member of is less than 0. Fires when this property changes. The following state flags may be affected: SfSize SfCenter SfGetSurfaces SfGetLineSegments SfGetVertices SfComputePerimeter SfComputeArea SfComputeVolume SfComputeBoundingBox SfIsDegenerateCurve SfIsDegenerateSurface SfIsDegenerateVolume Gets/sets the ShapeState for this shape. The ShapeState of this Shape. Must be Cog3DShapeStateConstants.Vertex, .Curve, .Surface, or .Volume. The ShapeState for this shape must be Cog3DShapeStateConstants.Vertex, .Curve, .Surface, or .Volume. Fires when this property changes. The following state flags may be affected: SfShapeState Constructs an aligned box using 2 vertices: the origin vertex and the opposite vertex. After construction, the translation vector for this shape corresponds to the vertex with the most negative X, Y, and Z coordinates. The first vertex used for defining this shape. The second vertex used for defining this shape. The state of this aligned box. Must be Cog3DShapeStateConstants.Vertex, Cog3DShapeStateConstants.Curve, Cog3DShapeStateConstants.Surface, or Cog3DShapeStateConstants.Volume. If is not one of Cog3DShapeStateConstants.Vertex, .Curve, .Surface, and .Volume. Constructs an aligned box using the specified size, translation, and Cog3DShapeStateConstants. The X, Y, and Z extents of this aligned box. X, Y, and Z must be > 0. The X translation of this aligned box. The Y translation of this aligned box. The Z translation of this aligned box. The state of this aligned box. Must be Cog3DShapeStateConstants.Vertex, Cog3DShapeStateConstants.Curve, Cog3DShapeStateConstants.Surface, or Cog3DShapeStateConstants.Volume. If any member of is less than 0. If is not one of Cog3DShapeStateConstants.Vertex, .Curve, .Surface, and .Volume. Constructs a degenerate, aligned box with size of (0,0,0), translation of (0,0,0), and Cog3DShapeStateConstants of Volume. This class encapsulates an axis-aligned (edges are parallel to the coordinate axes) 3D box. An aligned box is parameterized by a size vector and a translation vector. The size vector specifies the extents of the aligned box. The translation vector moves the box from the coordinate space origin to its pose in 3D space. Set the box's origin vertex, extent X vector, extent Y vector, and Z height. The origin vertex of the box. The extent X vector of the box. Note that this vector corresponds to the Size.X extent in ScaledUnitBox space. See the Remarks section. The extent Y vector of the box. Note that this vector corresponds to the Size.Y extent in ScaledUnitBox space. See the Remarks section. The Z height of the box. Note that this vector corresponds to the Size.Z extent in ScaledUnitBox space. See the Remarks section. If or is (0,0,0), or and are parallel. Notes: If is not perpendicular to internally a new yVector is generated as follows and used instead: Create a plane with normal direction of ; Project to this plane, and get the projected vector yVectorInternal; Scale yVectorInternal to have the same length as . Otherwise, yVectorInternal = . Size.X will be .Length, and Size.Y will be .Length, and Size.Z will be . The implicit extent Z vector's direction is decided by the cross product of and yVectorInternal. Assume that the extent Z vector is named as zVectorInternal, then the center of the box will be: + ( + yVectorInternal + zVectorInternal * /zVectorInternal.Length)/2 Fires when some properties change. The following state flags may be affected: SfGetShapeFromScaledUnitBox SfCenter SfSize SfGetSurfaces SfGetLineSegments SfGetVertices SfGetOriginVertexXVectorYVectorZ SfComputeBoundingBox SfComputePerimeter SfComputeArea SfComputeVolume SfIsDegenerateCurve SfIsDegenerateSurface SfIsDegenerateVolume Get the box's origin vertex, extent X vector, extent Y vector, and Z height. The output argument for the origin vertex of the box. The output argument for the extent X vector of the box. Note that this vector corresponds to the Size.X extent in ScaledUnitBox space. See the Remarks section. The output argument for the extent Y vector of the box. Note that this vector corresponds to the Size.Y extent in ScaledUnitBox space. See the Remarks section. The output argument for the Z height of the box. Note that Z height corresponds to the Size.Z extent in ScaledUnitBox space. See the Remarks section. If the box is degenerate. will be Size.Z. ShapeFromScaledUnitBox will map point cc3Dvect(0,0,0) to , map vector (Size.X,0,0) to ( + ), and map vector cc3DVect(0,Size.Y,0) to ( + ). Computes the surfaces of this box. The list of surfaces of this box. Notes: Assuming a unit box, the order of the returned rectangles is (using a pair of opposite vertices to describe each rectangle): 0 Cog3DVect3(0,0,0), Cog3DVect3(1,1,0) 1 Cog3DVect3(0,0,1), Cog3DVect3(1,1,1) 2 Cog3DVect3(0,0,0), Cog3DVect3(1,0,1) 3 Cog3DVect3(1,0,0), Cog3DVect3(1,1,1) 4 Cog3DVect3(0,1,0), Cog3DVect3(1,1,1) 5 Cog3DVect3(0,0,0), Cog3DVect3(0,1,1) Each element of the returned list has the ShapeState value of Cog3DShapeStateConstants.Surface no matter the current ShapeState value of the box. Some elements of the returned list might be degenerate rectangles and some elements might be duplicate if this box is degenerate. Computes the line segments for the edges of this box. The list of line segments for the edges of this box. Notes: Assuming a unit box, the order of the returned line segments is: 0 Cog3DLineSeg(Cog3DVect3(0,0,0), Cog3DVect3(1,0,0), Cog3DShapeStateConstants.Curve) 1 Cog3DLineSeg(Cog3DVect3(1,0,0), Cog3DVect3(1,1,0), Cog3DShapeStateConstants.Curve) 2 Cog3DLineSeg(Cog3DVect3(1,1,0), Cog3DVect3(0,1,0), Cog3DShapeStateConstants.Curve) 3 Cog3DLineSeg(Cog3DVect3(0,1,0), Cog3DVect3(0,0,0), Cog3DShapeStateConstants.Curve) 4 Cog3DLineSeg(Cog3DVect3(0,0,1), Cog3DVect3(1,0,1), Cog3DShapeStateConstants.Curve) 5 Cog3DLineSeg(Cog3DVect3(1,0,1), Cog3DVect3(1,1,1), Cog3DShapeStateConstants.Curve) 6 Cog3DLineSeg(Cog3DVect3(1,1,1), Cog3DVect3(0,1,1), Cog3DShapeStateConstants.Curve) 7 Cog3DLineSeg(Cog3DVect3(0,1,1), Cog3DVect3(0,0,1), Cog3DShapeStateConstants.Curve) 8 Cog3DLineSeg(Cog3DVect3(0,0,0), Cog3DVect3(0,0,1), Cog3DShapeStateConstants.Curve) 9 Cog3DLineSeg(Cog3DVect3(1,0,0), Cog3DVect3(1,0,1), Cog3DShapeStateConstants.Curve) 10 Cog3DLineSeg(Cog3DVect3(1,1,0), Cog3DVect3(1,1,1), Cog3DShapeStateConstants.Curve) 11 Cog3DLineSeg(Cog3DVect3(0,1,0), Cog3DVect3(0,1,1), Cog3DShapeStateConstants.Curve) Each element of the returned list has the ShapeState value of Cog3DShapeStateConstants.Curve no matter the current ShapeState value of the box. Some elements of the returned list might be degenerate line segments and some elements might be duplicate if this box is degenerate. Computes the set of vertices defining this box. Assuming a unit box, the order of the returned vertices is: (0,0,0) (1,0,0) (1,1,0) (0,1,0) (0,0,1) (1,0,1) (1,1,1), (0,1,1). The set of vertices defining this box. Maps this box through the specified rigid transform and returns a new Cog3DBox. The rigid transform to use when mapping this box. The Cog3DBox resulting from mapping this shape through the specified rigid transform. If is null. Set the ShapeFromScaledUnitBox transform of this box. It may change the value of Center. It does not change the value of Size. A Cog3DTransformRigid used to specify the ShapeFromScaledUnitBox transform of this box. This transform specifies the pose of the ScaledUnitBox in 3D space. If is null. Fires when some properties change. The following state flags may be affected: SfGetShapeFromScaledUnitBox SfCenter SfGetSurfaces SfGetLineSegments SfGetVertices SfGetOriginVertexXVectorYVectorZ SfComputeBoundingBox Get the ShapeFromScaledUnitBox transform of this box. The ShapeFromScaledUnitBox transform of this box. This transform specifies the pose of the ScaledUnitBox in 3D space. Deprecated. Please use GetShapeFromScaledUnitBox() and SetShapeFromScaledUnitBox()instead. Gets the center position of this box. The center point of this box. Gets/sets the size of this box. The setter may change the value of Center. It does not change the value of ShapeFromScaledUnitBox. The size of this box. If any member of is less than 0. Fires when this property changes. The following state flags may be affected: SfSize SfCenter SfGetSurfaces SfGetLineSegments SfGetVertices SfComputePerimeter SfComputeArea SfComputeVolume SfGetOriginVertexXVectorYVectorZ SfComputeBoundingBox SfIsDegenerateCurve SfIsDegenerateSurface SfIsDegenerateVolume Gets/sets the ShapeState for this shape. The ShapeState of this Shape. Must be Cog3DShapeStateConstants.Vertex, .Curve, .Surface, or .Volume. The ShapeState for this shape must be Cog3DShapeStateConstants.Vertex, .Curve, .Surface, or .Volume. Fires when this property changes. The following state flags may be affected: SfShapeState Constructs a box using the specified size, rigid transform, and Cog3DShapeStateConstants. The X, Y, and Z extents of this aligned box. X, Y, and Z must be > 0. The rigid transform that maps the ScaledUnitBox to a pose in 3D space. The state of this box. Must be Cog3DShapeStateConstants.Vertex, .Curve, .Surface, or .Volume. If any member of is less than 0. If is null. The ShapeState for this shape must be Cog3DShapeStateConstants.Vertex, .Curve, .Surface, or .Volume. Constructs a degenerate box with size of (0,0,0), translation of (0,0,0), ShapeFromScaledUnitBox of identity transform, and Cog3DShapeStateConstants of Volume. This class encapsulates an oriented 3D box. A Cog3DBox is defined by a size vector and a 3D rigid transform. The size vector defines an axis-aligned box which has the following pair of opposite vertices: cc3DVect(0,0,0) and size(). This is referred to as the "ScaledUnitBox". The rigid transform (ShapeFromScaledUnitBox) maps the ScaledUnitBox to the desired pose in 3D space. Sets the rectangle's origin vertex, extent X vector and extent Y vector. The origin vertex of the rectangle. The extent X vector of the rectangle. The extent Y vector of the rectangle. If or is (0,0,0), or and are parallel. Notes: If is not perpendicular to internally a new yVector is generated as follows and used instead: Create a plane with normal direction of ; Project to this plane, and get the projected vector yVectorInternal; Scale yVectorInternal to have the same length as . Otherwise, yVectorInternal = . Size.X will be .Length, and Size().Y will be .Length. Center will be + ( + yVectorInternal)/2 Fires when some properties change. The following state flags may be affected: SfGetShapeFromScaledUnitRectangle SfCenter SfSize SfGetLineSegments SfGetVertices SfGetOriginVertexXVectorYVector SfComputeBoundingBox SfComputePerimeter SfComputeArea SfIsDegenerateCurve SfIsDegenerateSurface Gets the rectangle's origin vertex, extent X vector and extent Y vector. The output argument keeping the origin vertex of the rectangle. The output argument keeping the extent X vector of the rectangle. The output argument keeping the extent Y vector of the rectangle. If the rectangle is degenerate. ShapeFromScaledUnitRectangle will map point cc3Dvect(0,0,0) to , map vector (Size.X,0,0) to ( + ), and map vector cc3DVect(0,Size.Y,0) to ( + ). Computes the line segments for the edges of this rectangle. The list of line segments for the edges of this rectangle. Notes: Assuming a unit rectangle, the order of the returned line segments is: 0 Cog3DLineSeg(Cog3DVect3(0,0,0), Cog3DVect3(1,0,0), Cog3DShapeStateConstants.Curve) 1 Cog3DLineSeg(Cog3DVect3(1,0,0), Cog3DVect3(1,1,0), Cog3DShapeStateConstants.Curve) 2 Cog3DLineSeg(Cog3DVect3(1,1,0), Cog3DVect3(0,1,0), Cog3DShapeStateConstants.Curve) 3 Cog3DLineSeg(Cog3DVect3(0,1,0), Cog3DVect3(0,0,0), Cog3DShapeStateConstants.Curve) Each element of the returned list has the ShapeState value of Cog3DShapeStateConstants.Curve no matter the current ShapeState value of the rectangle. Some elements of the returned list might be degenerate line segments and some elements might be duplicate if this rectangle is degenerate. Computes the set of vertices defining this rectangle. Assuming a unit rectangle, the order of the returned vertices is: (0,0,0) (1,0,0) (1,1,0) (0,1,0). The set of vertices defining this rectangle. Maps this rectangle through the specified rigid transform and returns a new Cog3DRectangle. The rigid transform to use when mapping this rectangle. The Cog3DRectangle resulting from mapping this shape through the specified rigid transform. If is null. Set the ShapeFromScaledUnitRectangle transform of this rectangle. It may change the value of Center. It does not change the value of Size. A Cog3DTransformRigid used to specify the ShapeFromScaledUnitRectangle transform of this rectangle. This transform specifies the pose of the ScaledUnitRectangle in 3D space. If is null. Fires when some properties change. The following state flags may be affected: SfGetShapeFromScaledUnitRectangle SfCenter SfGetLineSegments SfGetVertices SfGetOriginVertexXVectorYVector SfComputeBoundingBox Get the ShapeFromScaledUnitRectangle transform of this rectangle. The ShapeFromScaledUnitRectangle transform of this rectangle. This transform specifies the pose of the ScaledUnitRectangle in 3D space. Deprecated. Please use GetShapeFromScaledUnitRectangle() and SetShapeFromScaledUnitRectangle()instead. Gets the center position of this rectangle. The center point of this rectangle. Gets/sets the size of this rectangle. The setter may change the value of Center. It does not change the value of ShapeFromScaledUnitRectangle. The size of this rectangle. If any member of is less than 0. Fires when this property changes. The following state flags may be affected: SfSize SfCenter SfGetLineSegments SfGetVertices SfComputePerimeter SfComputeArea SfGetOriginVertexXVectorYVector SfComputeBoundingBox SfIsDegenerateCurve SfIsDegenerateSurface Gets/sets the ShapeState for this shape. The ShapeState of this Shape. Must be Cog3DShapeStateConstants.Vertex, .Curve, or .Surface. The ShapeState for this shape must be Cog3DShapeStateConstants.Vertex, .Curve, or .Surface. Fires when this property changes. The following state flags may be affected: SfShapeState Constructs a rectangle using the specified size, rigid transform, and Cog3DShapeStateConstants. The X, Y extents of this rectangle. X and Y must be >= 0. The rigid transform that maps the ScaledUnitRectangle to a pose in 3D space. The state of this rectangle. Must be Cog3DShapeStateConstants.Vertex, .Curve, or .Surface. If any member of is less than 0. If is null. The ShapeState for this shape must be Cog3DShapeStateConstants.Vertex, .Curve, or .Surface. Constructs a degenerate rectangle with Size of (0,0), ShapeFromScaledUnitRectangle of identity transform, and ShapeState of Cog3DShapeStateConstants.Surface. This class encapsulates an oriented 3D rectangle. A Cog3DRectangle is defined by a size vector and a 3D rigid transform. The size vector defines an axis-aligned rectangle on the XY plane (whose edges are parallel to x axis or y axis), whose vertex with minimum x and minimum y is at the origin (cc3DVect(0,0,0)), and the opposite vertex's coordinates are defined by the size vector (Cog3DVect3(Size.X, Size.Y, 0)). This is referred to as the "ScaledUnitRectangle". The rigid transform (ShapeFromScaledUnitRectangle) maps the ScaledUnitRectangle to the desired pose in 3D space. Computes the vector resulting from projecting the specified vector onto this plane. The vector to be projected onto this plane. The vector resulting from projecting the specified vector onto this plane. Computes the signed distance from this plane to the specified point. The distance is positive if the point is on the same side of the plane as the normal. The point to use for computing the distance. The signed distance from this plane to the specified point. Sets this plane using the specified normal and an offset. The offset is the translation of the plane from the origin along the normal direction. The specified normal is normalized to a unit vector. Note that the following point is on the plane: * / .Length The normal of the plane. The specified normal is normalized to a unit vector. The translation of the plane from the origin along the normal direction. If is (0,0,0). Fires when some properties change. The following state flags may be affected: SfNormal SfGetTilt SfGetRotation SfOffset SfIsDegenerateSurface Sets this plane using the specified point (a point in the plane) and the specified normal. The specified normal is normalized to a unit vector. A point on the plane. The normal of the plane. The specified normal is normalized to a unit vector. If is (0,0,0). Fires when some properties change. The following state flags may be affected: SfNormal SfGetTilt SfGetRotation SfOffset SfIsDegenerateSurface Sets this plane according to the specified 3 points. If the 3 points are collinear or coincident, then the plane is degenerate, else constructs a plane with a normal determined by (pB - pA) crossProduct (pC - pA). One of the 3 points used to define this plane. One of the 3 points used to define this plane. One of the 3 points used to define this plane. Fires when some properties change. The following state flags may be affected: SfNormal SfGetTilt SfGetRotation SfOffset SfIsDegenerateSurface Maps this plane through the specified rigid transform and returns a Cog3DPlane. The rigid transform to use when mapping this plane. The Cog3DPlane resulting from mapping this plane through the specified rigid transform. If is null. Computes the rotation of this plane, where "rotation" is defined as the angle (in radians) between the projection of the plane Normal on the XY-plane and the X-axis, and normalized to the range [0, Math.PI * 2). The angle (in radians) between the projection of the plane Normal on the XY-plane and the X-axis. Computes the tilt of this plane, where "tilt" is defined as the angle (in radians) between the plane Normal and the Z-axis, and normalized to the range [0, Math.PI]. The angle (in radians) between the plane Normal and the Z-axis. Gets/sets the offset for this plane. The offset is the translation from the origin along the normal direction. The offset of this plane. The offset is the translation from the origin along the normal direction. If the plane is degenerate. Fires when this property changes. The following state flags may be affected: SfOffset Gets/sets the normal for this plane. The getter returns a unit vector. The normal of this plane. From the setter if is degenerate i.e. (0,0,0). If the plane is degenerate. Fires when this property changes. The following state flags may be affected: SfNormal SfGetTilt SfGetRotation Get/sets the ShapeState for this shape. The ShapeState of this Shape is always Cog3DShapeStateConstants.Surface. If the ShapeState for this shape is not Cog3DShapeStateConstants.Surface. Finalize this object. Constructs a plane using the specified normal and an offset. The offset is the translation of the plane from the origin along the normal direction. The specified normal is normalized to a unit vector. Note that the following point is on the plane: * / .Length The normal of the plane being constructed. The specified normal is normalized to a unit vector. The translation of the plane from the origin along the normal direction. If is (0,0,0). Constructs a plane using the specified 3 points. If the 3 points are collinear or coincident, then the plane is degenerate, else constructs a plane with a normal determined by (pointB3D - pointA3D) crossProduct (pointC3D - pointA3D). One of the 3 points used to define this plane. One of the 3 points used to define this plane. One of the 3 points used to define this plane. Constructs a plane using the specified point (a point in the plane) and the specified normal. The specified normal is normalized to a unit vector. A point on the plane being constructed. The normal of the plane being constructed. The specified normal is normalized to a unit vector. If is (0,0,0). Constructs a degenerate plane consistent with Cog3DPlane(Cog3DVect3(), Cog3DVect3(), Cog3DVect3()). This class encapsulates a plane. Planes have 3 parameterizations: 3 points, point-in-the-plane plus normal, normal plus offset-from-origin. The offset-from-origin is the translation from the origin along the normal direction. Creates the Cog3DLine coincident with this ray. The Cog3DLine coincident with this ray. Maps this ray through the specified rigid transform and return a Cog3DRay. The rigid transform to use when mapping this ray. The Cog3DRay resulting from mapping this ray through the specified rigid transform. If is null. Gets/sets the direction of this ray. The getter returns a unit vector. The direction of the ray. If is degenerate i.e. (0,0,0). From the getter if the ray is degenerate. Fires when this property changes. The following state flags may be affected: SfDirection SfIsDegenerateCurve Gets/sets the start point of the ray. The start point of the ray. Fires when this property changes. The following state flags may be affected: SfP1 Gets/sets the ShapeState for this shape. The ShapeState of this Shape. Must be Cog3DShapeStateConstants.Vertex or Cog3DShapeStateConstants.Curve. If the ShapeState for this shape is neither Cog3DShapeStateConstants.Vertex nor Cog3DShapeStateConstants.Curve. Fires when this property changes. The following state flags may be affected: SfShapeState Constructs a Cog3DRay using parameterizationType to interpret v1 and v2. The start point of the ray. If parameterizationType is Points, then v2 is interpreted as a point along the ray. If parameterizationType is PointAndDirection, then v2 is interpreted as a direction vector. Specifies how v1 and v2 are interpreted. The state of this ray. Must be Cog3DShapeStateConstants.Vertex or Cog3DShapeStateConstants.Curve. If is not Cog3DShapeStateConstants.Vertex or Cog3DShapeStateConstants.Curve. Constructs a degenerate Cog3DRay consistent with Cog3DRay(Cog3DVect3(), Cog3DVect3(), Cog3DShapeStateConstants.Points, Cog3DShapeStateConstants.Curve). This enum allows the client to specify whether the parameters being specified represent the ray's origin and a point on the ray or if the parameters specify the ray's origin and a direction vector. This class encapsulates a directed 3D ray. It is parameterized as a start point (represented using P1) and a direction (represented using Direction). A ray is infinite like a line, but only extends in one direction. Sets this line according to the specified point and direction. One point on the line. The direction of the line. if is a degenerate direction, i.e. (0,0,0). Fires when some properties change. The following state flags may be affected: SfDirection SfPointNearestOrigin SfIsDegenerateCurve Sets this line according to the specified 2 points. If the 2 points are coincident, then the line is degenerate, else constructs a line with a direction from pointA3D to pointB3D. One of the 2 points used to define this line. One of the 2 points used to define this line. Fires when some properties change. The following state flags may be affected: SfDirection SfPointNearestOrigin SfIsDegenerateCurve Maps this line through the specified rigid transform and returns a Cog3DLine. The rigid transform to use when mapping this line. The Cog3DLine resulting from mapping this Line through the specified rigid transform. If is null. Gets the direction of this line. It returns a unit vector. The direction of the Line. If the line is degenerate. Gets the point on this line nearest to the origin. The point on the line nearest the origin. Gets/sets the ShapeState for this shape. The ShapeState of this Shape is always Cog3DShapeStateConstants.Curve. If the ShapeState for this shape is not Cog3DShapeStateConstants.Curve. Constructs a Cog3DLine from the specified lineSeg. The direction of the line is the same as the lineSeg's direction. The lineSeg to use when constructing this Cog3DLine. If the input argument is null. Constructs a Cog3DLine using parameterizationType to interpret v1 and v2. If parameterizationType is Points and v1 is equal to v2, then the line is degenerate. A point on the line. If is Points, then is interpreted as a point on the line and the line's direction is from to . If is PointAndDirection, then is interpreted as a direction vector and will be normalized to a unit vector. Specifies how v1 and v2 are interpreted. If is PointAndDirection and is a degenerate direction i.e. (0,0,0). Default constructor. Constructs a degenerate Cog3DLine consistent with Cog3DLine(Cog3DVect3(), Cog3DVect3(), ParameterizationType.Points). This enum allows the client to specify whether the parameters being specified represent two points on the Line or if the parameters specify the Line's one point and a direction vector. This class encapsulates an infinite, directed 3D line. Creates a Cog3DLine coincident with this lineSeg. A Cog3DLine coincident with this LineSeg. Maps this LineSeg through the specified rigid transform and returns a Cog3DLineSeg. The rigid transform to use when mapping this lineSeg. The Cog3DLineSeg resulting from mapping this lineSeg through the specified rigid transform. If is null. Gets the length of this lineSeg. The length of this lineSeg. Gets/sets the end point of this lineSeg. The end point of this lineSeg. Fires when this property changes. The following state flags may be affected: SfP2 SfLength SfComputePerimeter SfComputeBoundingBox SfIsDegenerateCurve Gets/sets the start point of this lineSeg. The start point of this lineSeg. Fires when this property changes. The following state flags may be affected: SfP1 SfLength SfComputePerimeter SfComputeBoundingBox SfIsDegenerateCurve Gets/sets the ShapeState for this shape. The ShapeState of this Shape. Must be Cog3DShapeStateConstants.Vertex or Cog3DShapeStateConstants.Curve. If the ShapeState for this shape is neither Cog3DShapeStateConstants.Vertex nor Cog3DShapeStateConstants.Curve. Fires when this property changes. The following state flags may be affected: SfShapeState Constructs a Cog3DLineSeg using p1 and p2. The start point of the LineSeg. The end point of the LineSeg. The state of this LineSeg. Must be Cog3DShapeStateConstants.Vertex or Cog3DShapeStateConstants.Curve. If is not Cog3DShapeStateConstants.Vertex or Cog3DShapeStateConstants.Curve. Constructs a degenerate Cog3DLineSeg consistent with Cog3DLineSeg(Cog3DVect3(), Cog3DVect3(), Cog3DShapeStateConstants.Curve). This class encapsulates a directed 3D line segment which has a start point (represented by P1) and an end point (represented by P2). The direction of a 3D line segment is from its start point (P1) to its end point (P2). Copy constructor. If other is null. If other is disposed. Default constructor. This class is the base class for all Cognex-implemented 3D shapes. Determines the distance from ComputeNearestPointVolume() to the specified point . The specified point to use when computing the distance to this volume shape. The distance from ComputeNearestPointVolume() on this volume shape to the specified point. Determines the point on this volume shape that is nearest to the specified point. If the nearest point on this volume shape is not unique, returns one of the nearest points. The specified point to use when computing the nearest point on this volume shape. The point on this volume shape that is nearest to the specified point. Determines whether or not this volume shape is degenerate. This occurs when volume shapes have a volume of 0. True, if this volume shape is degenerate (volume = 0), else returns false. Determines the volume of this shape. The volume of this shape or returns 0, if this volume shape is empty or degenerate. This interface is used to represent a 3D volume or a shape composed/represented by a set of 3D volumes. It defines the common methods for such shapes. In this context, volume means a 3 dimensional shape representation e.g. box, alignedBox, etc. Determines the distance from ComputeNearestPointSurface() to the specified point . The specified point to use when computing the distance to this surface shape. The distance from ComputeNearestPointSurface() on this surface shape to the specified point. Determines the point on this surface shape that is nearest to the specified point. If the nearest point on this surface shape is not unique, returns one of the nearest points. The specified point to use when computing the nearest point on this surface shape. The point on this surface shape that is nearest to the specified point. Determines whether or not this surface shape is degenerate. This occurs when surface shapes have an area of 0. True, if this surface shape is degenerate (area = 0), else returns false. Determines the area of this shape. For an infinite shape, like Cog3DPlane, the area is 0. The area of this shape or returns 0, if this surface shape is empty or degenerate. For a Cog3DCylinder shape, no matter whether is is degenerate or not, its area is computed as: StartCircle.ComputeArea * 2 + Radius *Height . For a Cog3DBox or Cog3DAlignedBox shape, no matter whether is is degenerate or not, its area is computed as: (Size.X * Size.Y + Size.X * Size.Z + Size.Y * Size.Z) * 2 . This interface is used to represent a 3D Surface or a shape composed/represented by a set of 3D Surfaces. It defines the common methods for such shapes. In this context, surface means a 2 dimensional shape representation e.g. circle, box, plane, etc. Determines the distance from ComputeNearestPointCurve() to the specified point . The specified point to use when computing the distance to this curve shape. The distance from ComputeNearestPointCurve() on this curve shape to the specified point. Determines the point on this curve shape that is nearest to the specified point. If the nearest point on this curve shape is not unique, returns one of the nearest points. The specified point to use when computing the nearest point on this curve shape. The point on this curve shape that is nearest to the specified point. Determines whether or not this curve shape is degenerate. This occurs when curve shapes have a perimeter of 0. True, if this curve shape is degenerate (perimeter = 0), else returns false. Determines the perimeter of this shape. For a wireframe shape, the perimeter is the total length of all the wires. For an infinite shape, like Cog3DLine, the perimeter is 0. The perimeter of this shape. For a Cog3DCylinder shape, no matter whether is is degenerate or not, its perimeter is computed as StartCircle.ComputePerimeter() * 2 . For a Cog3DRectangle shape, no matter whether is is degenerate or not, its perimeter is computed as (Size.X + Size.Y) * 2 . For a Cog3DBox or Cog3DAlignedBox shape, no matter whether is is degenerate or not, its perimeter is computed as (Size.X + Size.Y + Size.Z) * 4. This interface is used to represent a 3D curve or a shape composed/represented by a set of 3D curves. It defines the common methods for such shapes. In this context, curve means a 1 dimensional shape representation e.g. line, lineSeg, circle, wireframe, etc. Determines the distance from ComputeNearestPointVertex() to the specified point . The specified point to use when computing the distance to this shape. The distance from the nearest vertex on this shape to the specified point. Determines the vertex on this shape that is nearest to the specified point. If the nearest vertex is not unique, returns one of the nearest vertices. The specified point to use when computing the nearest vertex on this shape. The vertex on this shape nearest to the specified point. This interface is used to represent a 3D vertex or a shape composed/represented by a set of 3D vertices. It defines the common methods for such shapes. The 3D coordinate space in which this shape is to be interpreted. The default value is ".". If the value is an invalid space name syntax. Gets/sets the shape state of this shape. The shape state of this shape. Creates a new shape by mapping this shape through the specified transform. The transform to use when mapping this shape. The new shape that results from mapping this shape through the specified transform. If is null. If the specified transform is not a Cog3DTransformRigid. Computes the axis-aligned bounding box for this shape. The axis-aligned bounding box. If this shape's IsFinite is false. Computes the distance from this shape to the specified point. The point on this shape used to compute the distance is a function of ShapeState. The specified point to use when computing the distance to this shape. The distance from this shape to the specified point. Computes the point on this shape that is nearest to the specified point. The nearest point on this shape to the specified point is a function of ShapeState. If the nearest point is not unique, returns one of the nearest points. The specified point to use when computing the nearest point on the shape. The point on this shape nearest to the specified point. Indicates if the set of points lying on the boundary of this shape is empty. True if the set of points that lie on the boundary of this shape is empty, and false otherwise. Indicates if this shape has finite extents. True if this shape has finite extents, and false otherwise. Creates a deep copy of this shape. A deep copy of this shape. This is the most basic interface class for all 3D shapes. It specifies the properties and methods provided by all shapes. All shapes implement this interface. This enum defines the available shape states for 3D shapes. The shape state is used to disambiguate the behavior of various methods and properties of 3D shapes. Cog3DShapeStateConstants.Vertex causes a shape to be treated as a set of vertices. Cog3DShapeStateConstants.Curve causes a shape to be treated as a wireframe. As an example, calling the ICog3DShape.ComputeDistance() method of a Cog3DBox returns different distances depending on how the Cog3DBox's shape state is set. This enum defines the possible shape intersection status for 3D shapes. Two Shapes have no intersection. One shape is coincident with the other shape, or is on the other shape, or has overlap with the other shape. Two Shapes intersect. Construct a deep copy of the supplied Cog3DVect3Collection. The Cog3DVect3Collection object to be copied. May not be null. If the input argument is null. Construct this default (empty) Cog3DVect3Collection with the specified capacity. Construct this default (empty) Cog3DVect3Collection. This class holds a collection of Cog3DVect3 and a SelectedSpaceName3D. Move the subtree rooted at spaceName and attach it to the newParentSpaceName, using spaceName's existing parent transform. A valid nonqualified or fully-qualified space name that indicates the root space of the subtree to move. The valid nonqualified or fully-qualified name of the parent space to which to append the subtree. A value that specifies what do if the parent coordinate space contains an immediate child with the same name as . The options are to return an error, replace the named child with the copied subtree, or do nothing. Moves the subtree rooted at the given space name to the new parent space name. Attaches the given space name using its existing parent transform. cannot be the root space. cannot be a descendant of . The value is not a member of . is already a child of the and the argument is DuplicateIsError . or is not a legal space name. or is a nonqualified space name and more than one instance of it exists in this tree. or does not exist in this tree. Fires when a subtree is moved. Return a copy of the subtree rooted at SpaceName. A valid nonqualified or fully-qualified space name that indicates the root space of the subtree to copy. The copied coordinate space subtree. Returns a copy of the subtree rooted at the given space name. The returned tree contains a shallow copy of any trees embedded in this tree using the method. is not a legal space name. is a nonqualified space name and more than one instance of it exists in this tree. does not exist in this tree. Delete the subtree rooted at spaceName. spaceName and all of its children will be removed from the tree. A valid nonqualified or fully-qualified space name that indicates the root space of the subtree to delete. Deletes the subtree rooted at the given space name. All children of the space are also removed from the tree. If this method encounters the root node of a tree embedded using the method, it unlinks the embedded tree, and other clients of that embedded tree can continue to use it. cannot be the root space. is not a legal space name. is a nonqualified space name and more than one instance of it exists in this tree. does not exist in this tree. Fires when a subtree is deleted. Change the transform which maps points from the given child space into its parent space. The new transform is given by newParentFromChild. A valid nonqualified or fully-qualified space name that indicates the coordinate space to modify. A 3D transform that maps points from the child space you are changing to its parent coordinate space. Changes the transform that maps points from the given child space name into its parent space. is null. is the root space. is not a legal space name. is a nonqualified space name and more than one instance of it exists in this tree. does not exist in this tree. Fires when the transform changes. Change the given space name to newSpaceName. A valid nonqualified or fully-qualified space name to change. This space must exist in the tree. A valid nonqualified space name for the new coordinate space. Change the name of a space in this tree. If the is a fully-qualified pathname this method modifies only the trailing nonqualified name. The new space name must meet the syntactical requirements of a nonqualified space names. If you want to modify the tree's root name the property permits less restrictive space names. is already a child of 's parent space. or is not a legal space name. is a nonqualified space name and more than one instance of it exists in this tree. does not exist in this tree. Fires when the name changes. Return a composed transform which can map points from the 'from' coordinate space to the 'to' space. A valid nonqualified or fully-qualified space name that indicates the coordinate space to which to map points. A valid nonqualified or fully-qualified space name. This name indicates the coordinate space from which to map points into the . The resulting 3D transform. Returns a composed transform that maps points from one coordinate space to another. or is not a legal space name. or is a nonqualified space name and more than one instance of it exists in this tree. or does not exist in this tree. Add a tree of coordinate spaces to the given parentSpaceName of this tree using the supplied parentFromTreeRoot transform. The tree is added by reference, so any changes to it will be visible to clients of both trees. A valid nonqualified or fully-qualified space name that indicates the parent space. The coordinate space tree to add to the given . A 3D transformation that transforms points from the root of the space tree you are adding to the parent space. A value that specifies what do if the parent coordinate space already contains an immediate child with the same name as the root of . The options are to return an error, replace the named child with the given tree, or do nothing. Adds a tree of coordinate spaces to the given parent space name of this tree. You must also supply a transformation that defines the relationship between the parent space and the root of the new spaces. Trees are added by-reference. If you copy the parent tree, the copy contains an additional reference to the supplied tree. You must avoid creating new trees that contain circular references to other coordinate space trees. or is null. The value is not a member of . The root name of is already a child of and the argument is DuplicateIsError . is not a legal space name. is a nonqualified space name and more than one instance of it exists in this tree. does not exist in this tree. Fires when a tree is added to this tree. For Cognex internal use only. Add a new coordinate space, with the given name and transform, to this tree. Attach it to the specified pre-existing parent space. A valid nonqualified or fully-qualified space name that indicates the parent space. A valid nonqualified space name for the new coordinate space. A 3D transform that maps points from the space you are adding to the parent coordinate space. A value that specifies what do if the parent coordinate space already contains an immediate child with the same name as . The options are to return an error, replace the transform of the named child, or do nothing. Adds a new user coordinate space to this tree. You must specify the name of the parent space for the newly added space, and supply a transformation that defines the relationship between the parent space and the new space. is null. The value is not a member of . is already a child of and the argument is DuplicateIsError . or is not a legal space name. is a nonqualified space name and more than one instance of it exists in this tree. does not exist in this tree. Fires when a coordinate space is added to this tree. Return true if the given childSpaceName is a direct or indirect child of parentSpaceName. Otherwise, return false. The formatted child name, or "", can be obtained through the foundChildName output argument. A valid nonqualified or fully-qualified name that indicates the parent space. A valid nonqualified or fully-qualified name that indicates the child space to verify. A value that indicates how the returned name should be formatted. If false, the parent space is considered a valid descendant of itself, which allows you to find space names that are at or descended from the given parent space name. If true, the parent space is not a valid descendant of itself. If this method returns true, contains the formatted child space name. Otherwise, it contains "". True if the given is a descendant of ; otherwise, false. Returns true if the given is a descendant of . Otherwise, returns false. Both spaces must exist in the tree. If is true a coordinate space will only be considered as child if it is a descendant of the given parent space. In some applications, however, you may need to test whether a space is a descendant of the given parent or is the parent space itself. To do this, set the parameter to false. The value is not a member of . or is not a legal space name. or is a nonqualified space name and more than one instance of it exists in this tree. or does not exist in this tree. Return true if the given spaceName is a unique name in this tree. Return false if spaceName cannot be found. The formatted name, or "", can be obtained through the foundName output argument. A valid nonqualified or fully-qualified space name to find in this coordinate space tree. A value that indicates how the returned name should be formatted. If this method returns true, contains the formatted space name. Otherwise, it contains "". True if the given is unique in this tree. False if the name is not found in the tree. You can use this method to verify that a given space name is legal and exists in the coordinate space tree. It returns true if the given is a unique name in this tree; false if cannot be found. This method is is similar to , however it does not generate an error if does not exist in the tree. The value is not a member of . is not a legal space name. is a nonqualified space name and more than one instance of it exists in this tree. Find the given spaceName in this tree and return a collection containing the fully-qualified pathname(s) that are found. The collection may contain zero, one, or more items. A valid nonqualified or fully-qualified space name to find in this coordinate space tree. A collection of space names; or an empty collection if the given name does not exist in the tree. Finds the given coordinate space name in this tree and returns a collection containing zero or more fully-qualified pathnames that are found. The returned collection contains more than one space name only if the given is nonqualified and exists at multiple locations within the coordinate space tree. You can use this method to determine if a space name is valid and exists in this tree, or to convert a nonqualified space name to one or more fully-qualified space names. This method is similar to , but it does not generate an error if the given space name exists more than once in the tree, or does not exist in the tree at all. is not a legal space name. Returns a collection of names that includes all the children, grandchildren, great-grandchildren, etc. of the given space. If there are no children, the collection will hold zero items. A valid nonqualified or fully-qualified space name to find in this coordinate space tree. A value that indicates how the returned name(s) should be formatted. If false, the supplied space name is included as a separate item in the returned collection of space names. If true, the supplied space name does not appear as a collection item. A collection that contains a listing of the child coordinate space names of the given space name. If no children exist, the collection has no items. Returns a collection of names that includes all the descendants of the given space. If no children exist and is true, the collection has no items. The value is not a member of . is not a legal space name. is a nonqualified space name and more than one instance of it exists in this tree. does not exist in this tree. Returns a collection of names containing the given space's immediate children. If there are no children, the collection will hold zero items. A valid nonqualified or fully-qualified space name to find in this coordinate space tree. A value that indicates how the returned name(s) should be formatted. A collection of child space names, or an empty collection if no child spaces exist for the given coordinate space name. Returns a collection of names containing the given space's immediate children. If no children exist, the collection will hold zero items. The value is not a member of . is not a legal space name. is a nonqualified space name and more than one instance of it exists in this tree. does not exist in this tree. Returns the name of the given space's parent. The parent name for the root space is the empty name ("") because the root space has no parent. A valid nonqualified or fully-qualified space name to find in this coordinate space tree. A value that indicates how the returned name should be formatted. The formatted parent space name. Returns the name of the given space's parent. Because the root space has no parent, its parent space name is the empty name string: "". The value is not a member of . is not a legal space name. is a nonqualified space name and more than one instance of it exists in this tree. does not exist in this tree. Looks up the given spaceName in this tree and returns an appropriately formatted copy of the name. A valid nonqualified or fully-qualified space name to find in this coordinate space tree. A value that indicates how the returned name should be formatted. The formatted space name. Looks up the given coordinate space name in this tree and returns an appropriately formatted copy of the name. You can use this method to verify that a given space name is valid and exists in the tree. This method is similar to , except that it requires that exactly one instance of the name exist in the tree. The value is not a member of . is not a legal space name. is a nonqualified space name and more than one instance of it exists in this tree. does not exist in this tree. Use the given startingSpaceName to resolve any ambiguity in nameToResolve, and return a name suitable for lookup in this tree. Note that a partial name, like ".", is ambiguous without a specified starting space. The starting space name used to resolve , if is a partially-qualified coordinate space name. The coordinate space name to resolve. If is a partially-qualified name, this method resolves it using the value. Otherwise, the value is ignored and the original is returned. as a nonqualified or fully-qualified pathname. Uses the given to resolve any ambiguity in , and returns a name suitable for lookup in this tree. Note that a partial name, such as ".", is ambiguous without a specified starting space name. This method is the only method of the coordinate space tree that can accept partially-qualified space names. It will never return a partially-qualified space name, but it may return a space name that is not unique, or one that does not exist in this space tree. is not a legal space name. is a nonqualified space name and more than one instance of it exists in this tree. does not exist in this tree. Returns/sets the name of the root coordinate space in this tree. Returns or sets the root coordinate space name for this tree. The new space name must meet the syntactic requirements of a nonqualified coordinate space name, with the exception that you may begin the name with any non-slash punctuation character. Do not change the root name of a tree attached to an image. Any tree that is or will be attached to an image must have a value of "@" for VisionPro to function properly. @ (root space) The new name is not a legal space name for the root space. Fires when the root name changes. Releases all resources used by this class instance. This method deterministically unhooks events from any embedded trees that might live within this one and then releases all resources used by this tree. It can be useful in situations where you are finished with a coordinate space tree, but are still using one of the trees embedded within it. Do not attempt to access the tree after calling this method. Constructs a new instance of this class as a deep copy of the given instance. The instance to copy from. Constructs a new instance of this class. Populates the provided SerializationInfo with the data needed to serialize the object. The SerializationInfo to populate with data. The destination for this serialization. Constructs a new instance of this object from saved data. The SerializationInfo that holds the saved object data. The standard StreamingContext argument. Occurs after a new tree is added to this tree. Occurs after a transform is changed in this tree. Note that the meaning of any spaces descending from the changed transform will also be altered. This event can be fired in a variety of ways. For example: (1) by a call to the method, or (2) by a call to the method that replaces an existing transform. Occurs after a subtree is moved within this tree. Occurs after a subtree is deleted from this tree. Occurs after a new space is added to this tree. Occurs after a space name is changed in this tree. Tree of 3D coordinate spaces and the mappings between them. A 3D coordinate space tree is associated with each VisionPro range image. In VisionPro, you can define and name your own coordinate spaces. Each user space is defined, relative to an existing space, by a three-dimensional transform. The coordinate space tree contains a node for each coordinate space associated with an image, and maintains information about the transform that produced it. VisionPro also maintains a root space based on the pixels in the acquired image. The methods and properties in this interface let you obtain the 3D transformations that map points between any pair of coordinate spaces in the space tree. They also allow you to examine, add to, or rearrange the space tree. Many of the methods use a client-specified coordinate space name to find a coordinate space within the tree. You can supply any valid nonqualified (NQ) or fully-qualified (FQ) pathname. If you supply a NQ name, the method searches the coordinate space tree for instances of that name. The NQ name must occur exactly once within the tree. In addition, several methods return one or more coordinate space names. You can control the format (nonqualified, partially-qualified, or fully-qualified) of the returned names by supplying a value. If a partially-qualified (PQ) name is returned, it begins with either "." or "..", and specifies a space relative to the first space name argument of the method. Get the canonical form of this composed transform. This is the mathematically equivalent form that has the fewest number of transforms. If is True, the returned type may be reduced to a type simpler than this. Specify False to force this function to return a transformation of type Cog3DTransformComposed. If you specify True, then the returned transformation may be of a simpler type. The returned canonical transformation, it might be Cog3DTransformComposed, or Cog3DTransformRotation, or Cog3DTransformRigid, or Cog3DTransformLinear The transform reduction is based on checking each pair of adjacent transforms in the container, and see whether to merge them into one transform: [Cog3DTransformRotation, Cog3DTransformRotation] becomes [Cog3DTransformRotation] [Cog3DTransformRigid, Cog3DTransformRigid] becomes [Cog3DTransformRigid] [Cog3DTransformLinear, Cog3DTransformLinear] becomes [Cog3DTransformLinear] [Cog3DTransformRigid, Cog3DTransformRotation] becomes [Cog3DTransformRigid] [Cog3DTransformLinear, Cog3DTransformRotation] becomes [Cog3DTransformLinear] [Cog3DTransformRotation, Cog3DTransformRigid] becomes [Cog3DTransformRigid] [Cog3DTransformRotation, Cog3DTransformLinear] becomes [Cog3DTransformLinear] [Cog3DTransformRigid, Cog3DTransformLinear] becomes [Cog3DTransformLinear] [Cog3DTransformLinear, Cog3DTransformRigid] becomes [Cog3DTransformLinear] Operator for composing one composed transform and another composed transform. Note that the composing order is * . The returned transform is always the canonical representation of the composed transform. Therefore, the returned transform might be of a simpler type. One 3D composed transform. May not be null. Another composed transform to compose with. May not be null. The composed transform, and it might be of a simpler type. If any input argument is null. Compose this composed transform and another transform. Note that composing is from left to right: this * The returned transform is always the canonical representation of the composed transform. Therefore, the returned transform might be of a simpler type. The transform to compose with. May not be null. The composed transform, and it might be of a simpler type. If the input argument is null. Compute the inverse transform of this transform. The inverse transform, and it is always the canonical representation of the inverse of this transform. Therefore, the returned inverse transform might be of a simpler type. Gets the number of transforms contained in this composed transform's sequence. The number of transforms contained in this composed transform's sequence. Construct this default (identity transform) Cog3DTransformComposed. This is the class for 3D composed transform which can contain transforms of different types. The composed transform maps points through all its contained transformations (from 'Right' to 'Left'), and thus acts as their composition. Note that this class is immutable - it may not be changed once it has been constructed. Operator for composing one rigid transform and one linear transform. Note that the composing order is * . One 3D rigid transform. May not be null. One 3D linear transform to compose with. May not be null. The composed linear transform. If any input argument is null. Operator for composing one linear transform and one rigid transform. Note that the composing order is * . One 3D linear transform. May not be null. One 3D rigid transform to compose with. May not be null. The composed linear transform. If any input argument is null. Operator for composing one linear transform and another linear transform. Note that the composing order is * . One 3D linear transform. May not be null. Another 3D linear transform to compose with. May not be null. The composed linear transform. If any input argument is null. Compose this linear transform and another linear transform. Note that composing is from left to right: this * The linear transform to compose with. May not be null. The composed linear transform. If the input argument is null. Compute the inverse transform of this transform. The inverse transform. Operator for mapping a 3D point using the specified 3D linear transform. The definition is: * . The 3D linear transform used for mapping. May not be null. The 3D point to map. The mapped point. If is null. Map a collection of 3D vectors using the inverse transform of this transform, i.e. use only the matrix part of the inverse transform in mapping. The collection of 3D vectors to map using the inverse transform of this transform. May not be null. A collection holding the inversely mapped vectors. If the input argument is null. Map a 3D vector using the inverse transform of this transform, i.e. map the given vector using only the matrix part of the inverse transform. The 3D vector to map using the inverse transform of this transform. The inversely mapped vector. Map a collection of 3D vectors using this transform, i.e., only use the matrix part in mapping. The collection of 3D vectors to map using this transform. May not be null. A collection holding the mapped vectors. If the input argument is null. Map a 3D Vector using this transform. This corresponds to map the vector only using the matrix part of this transform. The 3D vector to map using this transform. The mapped vector. Map a collection of 3D points using the inverse transform of this transform. The collection of 3D points to map using the inverse transform of this transform. May not be null. A collection holding the inversely mapped points. If the input argument is null. Map a 3D point using the inverse transform of this transform. The 3D point to map using the inverse transform of this transform. The inversely mapped point. Gets whether this transform is identity. True if this 3D linear transform is identity; False otherwise. Gets the translation of this linear transform. The translation part of this linear transform. Get a copy of the matrix part of this linear transform. A copy of the matrix part of this linear transform. Construct this Cog3DTransformLinear using 3x3 matrix and translation. The 3x3 matrix. May not be null. The translation part of the linear transform. If is null. Construct this default (identity transform) Cog3DTransformLinear. This is the class for 3D linear (affine) transform. A 3D linear transform has rotation, translation, scale, and shear. It contains a 3x3 matrix part and a 3D translation part. Note that this class is immutable - it may not be changed once it has been constructed. Load a list of transforms from a CVL archive. The purpose of this function is to provide access to transforms stored from legacy 3DLocate tool. The name of the CVL archive A list containing the loaded Transforms. This method is for Cognex internal usage only. Operator for composing one rigid transform and another rigid transform. Note that the composing order is * . One 3D rigid transform. May not be null. Another rigid transform to compose with. May not be null. The composed rigid transform. If any input argument is null. Compose this rigid transform and another rigid transform. Note that composing is from left to right: this * The rigid transform to compose with. May not be null. The composed rigid transform. If the input argument is null. Compute the inverse transform of this transform. The inverse transform. Operator for mapping a 3D point using the specified 3D rigid transform. The definition is: * . The 3D rigid transform used for mapping. May not be null. The 3D point to map. The mapped point. If is null. Map a collection of 3D vectors using the inverse transform of this transform, i.e. rotate the given vectors using the inverse transform. The collection of 3D vectors to map using the inverse transform of this transform. May not be null. A collection holding the inversely mapped vectors. If the input argument is null. Map a 3D vector using the inverse transform of this transform, i.e. rotate the given vector using the inverse transform. The 3D vector to map using the inverse transform of this transform. The inversely mapped vector. Map a collection of 3D vectors using this transform, i.e., rotate the given vectors. The collection of 3D vectors to map using this transform. May not be null. A collection holding the mapped vectors. If the input argument is null. Map a 3D Vector using this transform. This corresponds to rotating the vector using the rotation part of this transform. The 3D vector to map using this transform. The mapped vector. Map a collection of 3D points using the inverse transform of this transform. The collection of 3D points to map using the inverse transform of this transform. May not be null. A collection holding the inversely mapped points. If the input argument is null. Map a 3D point using the inverse transform of this transform. The 3D point to map using the inverse transform of this transform. The inversely mapped point. Gets whether this transform is identity. True if this 3D rigid transform is identity; False otherwise. Gets the translation of this rigid transform. The translation part of this rigid transform. Get the rotation part of this rigid transform. The rotation part of this rigid transform. May not be null. Construct this Cog3DTransformRigid using rotation and translation. The rotation part of the rigid transform. May not be null. The translation part of the rigid transform. If is null. Construct this default (identity transform) Cog3DTransformRigid. This is the class for 3D rigid transform. A 3D rigid transform has only pure rotation and translation, and no scale. A rigid transform preserves relative distances: if point P and point Q are transformed to P' and Q', then the distance from P to Q is the same as that from P' to Q'. Note that this class is immutable - it may not be changed once it has been constructed. Operator for composing one rotation transform and another rotation transform: * . One rotation transform. May not be null. Another rotation transform to compose with. May not be null. The composed rotation transform. If any input argument is null. Compose this rotation transform and another rotation transform. Note that composing is from left to right: this * The rotation transform to compose with. May not be null. The composed rotation transform. If the input argument is null. Compute the inverse transform of this transform. The inverse transform. Operator for mapping a 3D point using the specified 3D rotation transform: * . One 3D rotation transform used for mapping. May not be null. The 3D point to map using the specified 3D rotation transform. The mapped point. If is null. Map a collection of 3D points using the inverse transform of this transform. The collection of 3D points to map using the inverse transform of this transform. May not be null. A collection holding the inversely mapped points. If the input argument is null. Map a 3D point using the inverse transform of this transform. The 3D point to map using the inverse transform of this transform. The inversely mapped point. Gets whether this transform is identity. True if this 3D rotation transform is identity; False otherwise. Get the matrix representation of this rotation transform. The matrix representation of this rotation transform. Get the axis/angle representation of this rotation transform. The axis/angle representation of this rotation transform. Get the quaternion representation of this rotation transform. The quaternion representation of this rotation transform. Get the EulerZYZ of moving axes for this rotation transform. The EulerZYZ of moving axes representation for this rotation transform. Get the EulerZYX of moving axes for this rotation transform. The EulerZYX of moving axes representation for this rotation transform. Get the EulerXYZ of moving axes representation of this rotation transform. The EulerXYZ of moving axes representation of this rotation transform. Get the EulerZYX of fixed axes representation of this rotation transform. The EulerZYX of fixed axes representation of this rotation transform. Get the EulerXYZ of fixed axes representation of this rotation transform. The EulerXYZ of fixed axes representation of this rotation transform. Construct this Cog3DTransformRotation using a matrix representation. Theoretically, must satisfy .Determinant is 1 and * .Transpose() is Identity. If is not exactly a rotation matrix then it attempts to compute a rotation matrix closest to , and use the computed rotation matrix. Such a computation should succeed in practical situations. The 3x3 matrix representation of rotation transform. If the input argument is null. If computation of the rotation matrix (if necessary) does not succeed. Construct this Cog3DTransformRotation using a rotation axis and rotation angle. Note that if the given axis is not a unit vector, a corresponding unit vector is computed and used. The axis/angle representation of rotation transform. If .Axis is (0,0,0). Construct this Cog3DTransformRotation using a quaternion representation. Note that if the given quaternion is not a unit quaternion, a corresponding unit quaternion is computed and used. The quaternion representation of rotation transform. If .Norm is 0. Construct this Cog3DTransformRotation using a Cog3DEulerZYZMovingAxes. The EulerZYZ representation of moving axes. Construct this Cog3DTransformRotation using a Cog3DEulerZYXMovingAxes. The EulerZYX representation of moving axes. Construct this Cog3DTransformRotation using a Cog3DEulerXYZMovingAxes. The EulerXYZ representation of moving axes. Construct this Cog3DTransformRotation using a Cog3DEulerZYX. The EulerZYX representation of fixed axes. Construct this Cog3DTransformRotation using a Cog3DEulerXYZ. The EulerXYZ representation of fixed axes. Construct this default (identity transform) Cog3DTransformRotation. This is the class for 3D rotation transform. A 3D rotation can be represented in different ways, such as using 3 Euler angles (Cog3DEulerXYZ). A 3D rotation transform can be constructed by any of the supported representations, and also has getters to return the instances of different rotation representation classes. Note that this class is immutable - it may not be changed once it has been constructed. Gets whether this transform is linear. True if this 3D composed transform is linear; False otherwise. Creates a new transform which is the composition of the given transform (on the right side) and this one (on the left side). Note that the return transform is always the canonical representation of the composed transform. Therefore, it might be of type Cog3DTransformComposed or a simpler type. An ICog3DTransform that represents the result of the composition. The returned transform type depends on the type of this transform and the type of , for example : Cog3DTransformRotation, Cog3DTransformRotation returns Cog3DTransformRotation Cog3DTransformRigid, Cog3DTransformRigid returns Cog3DTransformRigid Cog3DTransformLinear, Cog3DTransformLinear returns Cog3DTransformLinear Cog3DTransformRigid, Cog3DTransformRotation returns Cog3DTransformRigid Cog3DTransformLinear, Cog3DTransformRotation returns Cog3DTransformLinear Cog3DTransformRotation, Cog3DTransformRigid returns Cog3DTransformRigid Cog3DTransformRotation, Cog3DTransformLinear returns Cog3DTransformLinear Cog3DTransformRigid, Cog3DTransformLinear returns Cog3DTransformLinear Cog3DTransformLinear, Cog3DTransformRigid returns Cog3DTransformLinear Create a deep copy of this transform. The copied transform. Compute the inverse of this transform. The inverse transform. Map a collection of 3D points. The 3D points to map using this transform. A collection holding the mapped points. If the input argument is null. Map a 3D point. The 3D point to map using this transform. The mapped point. This is the interface class for 3D transforms. Compare two Cog3DAxisAngle. The first Cog3DAxisAngle. The second Cog3DAxisAngle. False if exactly equal, true otherwise. Compare two Cog3DAxisAngle. The first Cog3DAxisAngle. The second Cog3DAxisAngle. True if exactly equal, false otherwise. The rotation angle in radians. The rotation angle in radians around the rotation axis. The rotation axis. The axis of rotation. Construct this Cog3DAxisAngle with the supplied axis and angle value. The rotation axis. The rotation angle in radians. This value class describes 3D rotation representation based on a rotation axis and an angle around the axis. Go to the following link (Section "Euler axis and angle") for more information: http://en.wikipedia.org/wiki/Rotation_representation_%28mathematics%29 This class is immutable - it may not be changed once it has been constructed. The default constructor creates an object with axis of (0,0,0), angle of 0.0, which is not valid for usage by Cog3DTransformRotation. This class is just a container class for initializing/getting the rotation axis and angle, and it does not handle rotation operations. Please use Cog3DTransformRotation for general 3D rotation operations. Unary minus Operator, defined as - The input matrix. The resulting 3x3 matrix. Subtraction operator for one matrix and another matrix, defined as - The first matrix. May not be null. The second matrix. May not be null. The resulting 3x3 matrix. If any input argument is null. Addition operator for one matrix and another matrix, defined as + The first matrix. May not be null. The second matrix. May not be null. The resulting 3x3 matrix. If any input argument is null. Division operator for one matrix and another matrix. This operator is defined as / = * .Inverse() The first matrix. May not be null. The second matrix. May not be null. The resulting 3x3 matrix. If any input argument is null. If is singular. Operator for composing one matrix and another matrix. Note that the definition of this operation is * . The first matrix. May not be null. The second matrix. May not be null. The composed 3x3 matrix. If any input argument is null. Division operator for a scalar and a matrix. Note that / = * .Inverse(). The 3D matrix. May not be null. The scale factor. The scaled matrix. If is null. Division operator for a matrix and a scalar. Note that / = * 1/. The 3D matrix. May not be null. The divisor. The resulting matrix. If is null. Multiplication operator for a scalar and a matrix. Note that the definition of this operator is: * = * . The 3D matrix. May not be null. The scaling factor. The scaled matrix. If is null. Multiplication operator for a matrix and a scalar. Note that the definition of this operation is * . The 3D matrix for scaling. May not be null. The scaling factor. The scaled matrix. If is null. Division operator for a 3D point and a 3D matrix. The definition of this operator is / = * .Inverse(). The 3D matrix . May not be null. The 3D point. The resulting point. If is null. Multiplication operator for a 3D point and a 3D matrix. The definition of this operator is * = .Transpose() * . The 3D matrix . May not be null. The 3D point. The resulting point. If is null. Multiplication operator for a 3D matrix and a 3D point. Note that the definition of this operation is * . The 3D matrix. May not be null. The 3D point. The resulting point. If is null. Compute the transpose matrix of this matrix. The transpose matrix. Compute the inverse matrix of this matrix. The inverse matrix. If the matrix is singular. Sets one element of the matrix. The zero-based row index of the matrix. The zero-based column index of the matrix. The value of the element at the given row and column. This setter recalculates Determinant. If or is not inside range [0,2]. Gets one element of the matrix. The zero-based row index of the matrix. The zero-based column index of the matrix. The value of the element at the given row and column. If or is not inside range [0,2]. Gets whether this matrix is identity. True if this matrix is identity; false otherwise. Gets whether this matrix is singular. True if the matrix is singular; false otherwise. This property is deprecated, please use GetElment and SetElement instead. The zero-based row index of the matrix. The zero-based column index of the matrix. The value of the element at the given row and column. The setter recalculates Determinant. If or is not inside range [0,2]. Gets the z scale value of this matrix. The z scale is defined to be the length of the vector resulting from mapping the z unit vector through this matrix. The z scale of this matrix. If the matrix is singular. Gets the y scale value of this matrix. The y scale is defined to be the length of the vector resulting from mapping the y unit vector through this matrix. The y scale of this matrix. If the matrix is singular. Gets the x scale value of this matrix. The x scale is defined to be the length of the vector resulting from mapping the x unit vector through this matrix. The x scale of this matrix. If the matrix is singular. Gets the determinant of this matrix. The determinant of this matrix. Construct this Cog3DMatrix3x3 using the given element values. Specified value for Element(0,0). Specified value for Element(0,1). Specified value for Element(0,2). Specified value for Element(1,0). Specified value for Element(1,1). Specified value for Element(1,2). Specified value for Element(2,0). Specified value for Element(2,1). Specified value for Element(2,2). Construct a default (representing an identity transform) Cog3DMatrix3x3. This class describes a 3X3 matrix representation and associated operations. Note that although 3x3 matrices are useful in calculation involving 3D rotations, users should use Cog3DTransformRotation for general 3D rotation operations. Compare two Cog3DQuaternion. The first quaternion. The second quaternion. False if exactly equal, true otherwise. Compare two Cog3DQuaternion. The first quaternion. The second quaternion. True if exactly equal, false otherwise. Multiply a Cog3DQuaternion by a scalar. The quaternion. The scalar multiplier. The multiplied (scaled) quaternion. Subtract two quaternions: - . The first quaternion. The second quaternion. The quaternion after subtraction. Add two quaternions. The first quaternion. The second quaternion. The sum quaternion. Compute the inner product of this Cog3DQuaternion with the supplied . The other quaternion. The computed inner product. Compute the Grassmann product of this Cog3DQuaternion with the supplied . The other quaternion. The computed Grassmann product quaternion. Gets the normalized quaternion (a unit quaternion) whose Norm value is 1. Gets the normalized quaternion (a unit quaternion). If W == X == Y == Z == 0 A unit quaternion is obtained by dividing the quaternion by its Norm value. Gets the conjugate quaternion of this quaternion, which is defined as follows: W - X i - Y j - Z k The conjugate quaternion of this quaternion. Gets the norm squared value of this quaternion object. The norm squared value of this quaternion object. The norm squared value is the Grassmann product of this quaternion and its conjugate, i.e., NormSquared is (W*W) + (X*X) + (Y*Y) + (Z*Z) Gets the norm (magnitude) value of this quaternion object. The norm (magnitude) value of this quaternion object. The norm value of a quaternion is sqrt(NormSquared). Gets the fourth component of this quaternion object. The fourth component of this quaternion object. Gets the third component of this quaternion object. The third component of this quaternion object. Gets the second component of this quaternion object. The second component of this quaternion object. Gets the vector (imaginary) part of this quaternion object. The vector (imaginary) part of this quaternion object. Gets the scalar part (the first component) of this quaternion. The scalar part (the first component) of this quaternion. Construct this Cog3DQuaternion with the supplied W,X,Y,Z values. The initial W value. The initial X value. The initial Y value. The initial Z value. This value class describes a quaternion representation and associated operations. This class is immutable - it may not be changed once it has been constructed. The default constructor creates a zero quaternion, which is not valid for usage by Cog3DTransformRotation. Although quaternions are useful in calculations involving 3D rotations, users should use Cog3DTransformRotation for general 3D rotation operations. Compare two Cog3DEulerZYZMovingAxes. The first Cog3DEulerZYZMovingAxes. The second Cog3DEulerZYZMovingAxes. False if exactly equal, true otherwise. Compare two Cog3DEulerZYZMovingAxes. The first Cog3DEulerZYZMovingAxes. The second Cog3DEulerZYZMovingAxes. True if exactly equal, false otherwise. Gets the ZMovedAxis component of the Cog3DEulerZYZMovingAxes (rotation about the moved Z-axis in radians). The ZMovedAxis component of the Cog3DEulerZYZMovingAxes. Gets the Y component of the Cog3DEulerZYZMovingAxes (rotation about the moved Y-axis in radians). The Y component of the Cog3DEulerZYZMovingAxes. Gets the Z component of the Cog3DEulerZYZMovingAxes (rotation about the original Z-axis in radians). The Z component of the Cog3DEulerZYZMovingAxes. Construct this Cog3DEulerZYZMovingAxes with the supplied components. The 'Z' component of the Cog3DEulerZYZMovingAxes (rotation about the original Z-axis in radians). The 'Y' component of the Cog3DEulerZYZMovingAxes (rotation about the moved Y-axis in radians). The 'ZMovedAxis' component of the Cog3DEulerZYZMovingAxes (rotation about the moved Z-axis in radians). This value class holds an EulerZYZ of moving axes representation for a 3D rotation transform . It holds three angles which express rotations about axes of a mobile 3D coordinate system. It is used to express the orientation of one rotated coordinate system (target XYZ-system) with respect to a fixed coordinate system (reference xyz-system). Starting with the target XYZ system coincident the reference xyz-system, the rotation of the target XYZ-system is expressed as: Rotate the target XYZ-system about the Z-axis. Rotate the target XYZ-system about the now rotated Y-axis Rotate the target XYZ-system about the new Z-axis. The default values for properties Z, Y, ZMovedAxis are 0.0. This class is immutable - it may not be changed once it has been constructed. This class is just a container class for initializing/getting the Euler angles, and it does not handle rotation operations. Please use Cog3DTransformRotation for general 3D rotation operations. Compare two Cog3DEulerZYXMovingAxes. The first Cog3DEulerZYXMovingAxes. The second Cog3DEulerZYXMovingAxes. False if exactly equal, true otherwise. Compare two Cog3DEulerZYXMovingAxes. The first Cog3DEulerZYXMovingAxes. The second Cog3DEulerZYXMovingAxes. True if exactly equal, false otherwise. Gets the Z component of the Cog3DEulerZYXMovingAxes (rotation about the moving Z-axis in radians). The Z component of the Cog3DEulerZYXMovingAxes Gets the Y component of the Cog3DEulerZYXMovingAxes (rotation about the moving Y-axis in radians). The Y component of the Cog3DEulerZYXMovingAxes Gets the X component of the Cog3DEulerZYXMovingAxes (rotation about the moving X-axis in radians). The X component of the Cog3DEulerZYXMovingAxes Construct this Cog3DEulerZYXMovingAxes with the supplied components. The 'X' component of the Cog3DEulerZYXMovingAxes (rotation about the moving X axis in radians). The 'Y' component of the Cog3DEulerZYXMovingAxes (rotation about the moving Y-axis in radians). The 'Z' component of the Cog3DEulerZYXMovingAxes (rotation about the moving Z-axis in radians). This value class holds an EulerZYX of moving axes representation for a 3D rotation transform . It holds three angles which express rotations about axes of a mobile 3D coordinate system. It is used to express the orientation of one rotated coordinate system (target XYZ-system) with respect to a fixed coordinate system (reference xyz-system). Starting with the target XYZ system coincident the reference xyz-system, the rotation of the target XYZ-system is expressed as: Rotate the target XYZ-system about the Z-axis. Rotate the target XYZ-system about the now rotated Y-axis Rotate the target XYZ-system about the new X-axis. The default values for properties X, Y, Z are 0.0. This class is immutable - it may not be changed once it has been constructed. This class is just a container class for initializing/getting the Euler angles, and it does not handle rotation operations. Please use Cog3DTransformRotation for general 3D rotation operations. Compare two Cog3DEulerXYZMovingAxes. The first Cog3DEulerXYZMovingAxes. The second Cog3DEulerXYZMovingAxes. False if exactly equal, true otherwise. Compare two Cog3DEulerXYZMovingAxes. The first Cog3DEulerXYZMovingAxes. The second Cog3DEulerXYZMovingAxes. True if exactly equal, false otherwise. Gets the Z component of the Cog3DEulerXYZMovingAxes (rotation about the moving Z-axis in radians). The Z component of the Cog3DEulerXYZMovingAxes. Gets the Y component of the Cog3DEulerXYZMovingAxes (rotation about the moving Y-axis in radians). The Y component of the Cog3DEulerXYZMovingAxes. Gets the X component of the Cog3DEulerXYZMovingAxes (rotation about the moving X-axis in radians). The X component of the Cog3DEulerXYZMovingAxes. Construct this Cog3DEulerXYZMovingAxes with the supplied components. The 'X' component of the Cog3DEulerXYZMovingAxes (rotation about the moving X-axis in radians). The 'Y' component of the Cog3DEulerXYZMovingAxes (rotation about the moving Y-axis in radians). The 'Z' component of the Cog3DEulerXYZMovingAxes (rotation about the moving Z-axis in radians). This value class holds an EulerXYZ of moving axes representation for a 3D rotation transform . It holds three angles which express rotations about axes of a mobile 3D coordinate system. It is used to express the orientation of one rotated coordinate system (target XYZ-system) with respect to a fixed coordinate system (reference xyz-system). Starting with the target XYZ system coincident the reference xyz-system, the rotation of the target XYZ-system is expressed as: Rotate the target XYZ-system about the X-axis. Rotate the target XYZ-system about the now rotated Y-axis Rotate the target XYZ-system about the new Z-axis. The default values for properties X, Y, Z are 0.0. This class is immutable - it may not be changed once it has been constructed. This class is just a container class for initializing/getting the Euler angles, and it does not handle rotation operations. Please use Cog3DTransformRotation for general 3D rotation operations. Compare two Cog3DEulerZYX. The first Cog3DEulerZYX. The second Cog3DEulerZYX. False if exactly equal, true otherwise. Compare two Cog3DEulerZYX. The first Cog3DEulerZYX. The second Cog3DEulerZYX. True if exactly equal, false otherwise. Gets the Z component of the Cog3DEulerZYX (rotation about the fixed z-axis in radians). The Z component of the Cog3DEulerZYX. Gets the Y component of the Cog3DEulerZYX (rotation about the fixed y-axis in radians). The Y component of the Cog3DEulerZYX. Gets the X component of the Cog3DEulerZYX (rotation about the fixed x-axis in radians). The X component of the Cog3DEulerZYX. Construct this Cog3DEulerZYX (EulerZYX of fixed axes) with the supplied components. The 'X' component of the Cog3DEulerZYX (rotation about the fixed x-axis in radians). The 'Y' component of the Cog3DEulerZYX (rotation about the fixed y-axis in radians). The 'Z' component of the Cog3DEulerZYX (rotation about the fixed z-axis in radians). This value class holds an EulerZYX of fixed axes representation for a 3D rotation transform. It holds three angles which express rotations about the fixed axes of a 3D coordinate system. It is used to express the orientation of one coordinate system (target frame) with respect to another (fixed reference frame). A rotation R of 3D coordinate axes is expressed as: R = Rx * Ry * Rz Where Rz = rotation of xy-axes about fixed z-axis, Ry = rotation of zx-axes about fixed y-axis, Rx = rotation of yz-axes about fixed x-axis. The order of applying rotations is: Rz first, Ry second and Rx third. The default values for properties X, Y, Z are 0.0. This class is immutable - it may not be changed once it has been constructed. This class is just a container class for initializing/getting the Euler angles, and it does not handle rotation operations. Please use Cog3DTransformRotation for general 3D rotation operations. Compare two Cog3DEulerXYZ. The first Cog3EulerXYZ. The second Cog3EulerXYZ. False if exactly equal, true otherwise. Compare two Cog3DEulerXYZ. The first Cog3EulerXYZ. The second Cog3EulerXYZ. True if exactly equal, false otherwise. Gets the Z component of the Cog3DEulerXYZ (rotation about the fixed z-axis in radians). The Z component of the Cog3DEulerXYZ Gets the Y component of the Cog3DEulerXYZ (rotation about the fixed y-axis in radians). The Y component of the Cog3DEulerXYZ Gets the X component of the Cog3DEulerXYZ (rotation about the fixed x-axis in radians). The X component of the Cog3DEulerXYZ Construct this Cog3DEulerXYZ (EulerXYZ of fixed axes) with the supplied components. The 'X' component of the Cog3DEulerXYZ (rotation about the fixed x-axis in radians). The 'Y' component of the Cog3DEulerXYZ (rotation about the fixed y-axis in radians). The 'Z' component of the Cog3DEulerXYZ (rotation about the fixed z-axis in radians). This value class holds an EulerXYZ of fixed axes representation for a 3D rotation transform. It holds three angles which express rotations about the fixed axes of a 3D coordinate system. It is used to express the orientation of one coordinate system (target frame) with respect to another (fixed reference frame). A rotation R of 3D coordinate axes is expressed as: R = Rz * Ry * Rx Where Rz = rotation of xy-axes about fixed z-axis, Ry = rotation of zx-axes about fixed y-axis, Rx = rotation of yz-axes about fixed x-axis. The order of applying rotations is: Rx first, Ry second and Rz third. The default values for properties X, Y, Z are 0.0. This class is immutable - it may not be changed once it has been constructed. This class is just a container class for initializing/getting the Euler angles, and it does not handle rotation operations. Please use Cog3DTransformRotation for general 3D rotation operations. Remove the value at the specified index. The zero based index at which the item is to be removed. If the supplied index is not valid. Insert the supplied item at the specified index. The zero based index at which the item is to be inserted. The Cog3DVect3 value to be inserted at the specified index. If the supplied index is not valid. Find the first collection element that matches the supplied value, returning the index. The supplied value to match. The zero based index of the first matching element. If no match is found this will be -1. Gets or sets the item at the specified index. The zero based index of the item of interest. The Cog3DVect3 value to be applied to the specified item. The item at the specified index. If the supplied index is not valid. Remove the matching value. If no match is found, do nothing. The Cog3DVect3 value to be removed from the collection. True if the item was successfully removed; false otherwise. Determine if this collection contains an element whose value matches that of the specified value. The Cog3DVect3 to match. True if the collection contains a matching element; false otherwise. Delete any elements contained in this collection. Appends the supplied item to the end of the collection. The Cog3DVect3 to be added to this collection. Gets a value that indicates if this collection is read only. True if this collection is read only; otherwise false. Gets the number of items in this collection. The number of items in this collection. Copies the contained set of Cog3DVect3's into the supplied, previously allocated array of Cog3DVect3's starting at the specified index. The destination array of type Cog3DVect3. May not be null. A zero based index into the destination array at which copying begins. If is null. If the index argument is not valid. If the supplied array is not of rank 1. If the supplied array does not have zero based indexing. If the contained Cog3DVect3 will not fit into the destination array starting at the specified index. Gets an enumerator for this collection. A reference to an IEnumerable suitable for this collection type. If Capacity is less than the supplied value, set it. The largest number of elements that this collection can store without reallocation. Gets the largest number of elements that this collection can store without reallocation. The largest number of elements that this collection can store without reallocation. Construct a deep copy of the supplied Cog3DVect3Collection. The Cog3DVect3Collection object to be copied. May not be null. If the input argument is null. Construct this default (empty) Cog3DVect3Collection with the specified capacity. Construct this default (empty) Cog3DVect3Collection. This class holds a collection of Cog3DVect3. Remove the value at the specified index. The zero based index at which the item is to be removed. If the supplied index is not valid. Insert the supplied item at the specified index. The zero based index at which the item is to be inserted. The double value to be inserted at the specified index. If the supplied index is not valid. Find the first collection element that matches the supplied value, returning the index. The supplied value to match. The zero based index of the first matching element. If no match is found this will be -1. Gets a value that indicates if this collection is fixed size. True if this collection is fixed size; otherwise false. Gets or sets the item at the specified index. The zero based index of the item of interest. The double value to be applied to the specified item. The item at the specified index. If the supplied index is not valid. Remove the matching value. If no match is found, do nothing. The double value to be removed from the collection. True if the item was successfully removed; false otherwise. Determine if this collection contains an element whose value matches the supplied argument. The double to match. True if the collection contains a matching element; false otherwise. Delete any elements contained in this collection. Appends the supplied item to the end of the collection. The Cog3DVect3 to be added to this collection. Gets a value that indicates if this collection is read only. True if this collection is read only; otherwise false. Gets an object that can be used to synchronize access to the collection. The synchronization object. Gets a value indicating whether access to the collection is synchronized (thread safe). True if access to the collection is synchronized (thread safe); otherwise false. Gets the number of items in this collection. The number of items in this collection. Copies the contained double into the supplied, previously allocated array of double starting at the specified index. The destination array of type double. May not be null. A zero based index into the destination array at which copying begins. If is null. If the index argument is not valid. If the supplied array is not of rank 1. If the supplied array does not have zero based indexing. If the contained double will not fit into the destination array starting at the specified index. Gets an enumerator for this collection. A reference to an IEnumerable suitable for this collection type. If Capacity is less than the supplied value, set it. The largest number of elements that this collection can store without reallocation. Gets the largest number of elements that this collection can store without reallocation. The largest number of elements that this collection can store without reallocation. Construct this default (empty) Cog3DScalarCollection with the specified capacity. The specified capacity of this collection. Construct this default (empty) Cog3DScalarCollection. This class holds a collection of double. Remove the value at the specified index. The zero based index at which the item is to be removed. If the supplied index is not valid. Insert the supplied item at the specified index. The zero based index at which the item is to be inserted. The Cog3DVect2 value to be inserted at the specified index. If the supplied index is not valid. Find the first collection element that matches the supplied value, returning the index. The supplied value to match. The zero based index of the first matching element. If no match is found this will be -1. Gets or sets the item at the specified index. The zero based index of the item of interest. The Cog3DVect2 value to be applied to the specified item. The item at the specified index. If the supplied index is not valid. Remove the matching value. If no match is found, do nothing. The Cog3DVect2 value to be removed from the collection. True if the item was successfully removed; false otherwise. Determine if this collection contains an element whose value matches that of the specified value. The Cog3DVect2 to match. True if the collection contains a matching element; false otherwise. Delete any elements contained in this collection. Appends the supplied item to the end of the collection. The Cog3DVect2 to be added to this collection. Gets a value that indicates if this collection is read only. True if this collection is read only; otherwise false. Gets the number of items in this collection. The number of items in this collection. Copies the contained set of Cog3DVect2's into the supplied, previously allocated array of Cog3DVect2's starting at the specified index. The destination array of type Cog3DVect2. May not be null. A zero based index into the destination array at which copying begins. If is null. If the index argument is not valid. If the supplied array is not of rank 1. If the supplied array does not have zero based indexing. If the contained Cog3DVect2 will not fit into the destination array starting at the specified index. Gets an enumerator for this collection. A reference to an IEnumerable suitable for this collection type. If Capacity is less than the supplied value, set it. The largest number of elements that this collection can store without reallocation. Gets the largest number of elements that this collection can store without reallocation. The largest number of elements that this collection can store without reallocation. Construct this default (empty) Cog3DVect2Collection with the specified capacity. Construct this default (empty) Cog3DVect2Collection. This class holds a collection of Cog3DVect2. Raises the MovedItem event. Source index of item moved. gcnew index of item moved. Raises the MovingItem event. Index of item being moved. Destination index of item being moved. Raises the ReplacedItem event. Index of item replaced. Value of item replaced. Value of item that replaced oldValue. Raises the ReplacingItem event. Index of item being replaced. Value of item being replaced. Value of item replacing oldValue. Raises the RemovedItem event. Index of item removed. Value of item removed. Raises the RemovingItem event. Index of item being removed. Value of item being removed. Raises the InsertedItem event. Index at which item was inserted. Value of item inserted. Raises the InsertingItem event. Index to insert item being inserted. Value of item being inserted. Raises the Cleared event. Raises the Clearing event. Raised after an item is moved to a new index. Raised before an item is moved to a new index. Raised after an item is replaced. Raised before an item is replaced. Raised after an item is removed. Raised before an item is removed. Raised after an item is inserted. Raised before an item is inserted. Raised after the collection is cleared. Raised before the collection is cleared. State flag for the Count property. State flag for the Item (indexer) property. This class defines the changed events common to VPro 3D collection classes. Compare two Cog3DVect3. The first vector. The second vector. False if exactly equal, true otherwise. Compare two Cog3DVect3. The first vector. The second vector. True if exactly equal, false otherwise. Divide a Cog3DVect3 by a scalar. The vector. The scalar divisor. The divided (scaled) vector. Multiply a Cog3DVect3 by a scalar. The vector. The scalar multiplier. The multiplied (scaled) vector. Subtract two Cog3DVect3. The first vector. The second vector. The vector difference. Add two Cog3DVect3. The first vector. The second vector. The vector sum. Compute the distance of this Cog3DVect3 from the supplied . The other vector. The computed distance. Compute the dot product of this Cog3DVect3 with the supplied . The other vector. The computed dot product. Compute the cross product of this Cog3DVect3 with the supplied . The other vector. The computed cross product vector. Gets the length of this vector. The length of this vector. Gets the Z coordinate value. The Z coordinate value. Gets the Y coordinate value. The Y coordinate value. Gets the X coordinate value. The X coordinate value. Construct this Cog3DVect3 with the supplied X,Y,Z values. The initial X value. The initial Y value. The initial Z value. This value class encapsulates a three dimensional point or vector. Note that this class is immutable - it may not be changed once it has been constructed. The default values for properties X, Y, and Z are 0.0. Compare two Cog3DVect2. The first vector. The second vector. False if exactly equal, true otherwise. Compare two Cog3DVect2. The first vector. The second vector. True if exactly equal, false otherwise. Divide a Cog3DVect2 by a scalar. The vector. The scalar divisor. The divided (scaled) vector. Multiply a Cog3DVect2 by a scalar. The vector. The scalar multiplier. The multiplied (scaled) vector. Subtract two Cog3DVect2. The first vector. The second vector. The vector difference. Add two Cog3DVect2. The first vector. The second vector. The vector sum. Compute the distance of this Cog3DVect2 from the supplied . The other vector. The computed distance. Compute the dot product of this Cog3DVect2 with the supplied . The other vector. The computed dot product. Compute the cross product of this Cog3DVect2 with the supplied . The other vector. The computed cross product vector. Gets the length of this vector. The length of this vector. Gets the Y coordinate value. The Y coordinate value. Gets the X coordinate value. The X coordinate value. Construct this Cog3DVect2 with the supplied X,Y values. The initial X value. The initial Y value. This value class encapsulates a two dimensional point or vector. Note that this class is immutable - it may not be changed once it has been constructed. The default values for properties X and Y are 0.0. The exception that is thrown when an internal error occurs during the operation of the Cognex 3D vision tool. The exception that is thrown when the operation of the Cognex 3D vision tool is cancelled by the user. The exception that is thrown when zero quaternion is used. This is the base class for all VisionPro3D exceptions. It is a concrete class. This base class allows clients to catch all VisionPro3D exceptions if they wish. Residual error in Phys3D space is the distance between a ray of any 2D feature (generated using the estimated camera calibration data) and its corresponding 3D feature. Residual error in Raw2D space is the distance from the found location of any 2D feature in the image to the 2D location that you would expect if you took the 3D feature and mapped it using the estimated camera calibration data. Residual error in Raw2D space is the distance from the found location of any 2D feature in the image to the 2D location that you would expect if you took the fitted 3D feature and mapped it using the camera calibration data. Residual error in Phys3D space is the distance between a ray of any 2D feature (generated using camera calibration data) and its corresponding fitted 3D feature. Gets the 2D residual statistics of this result. Residual statistics of this result in Raw2D space. Residual error in Raw2D space is the distance from the found location of any 2D feature in the image to the 2D location that you would expect if you took the mapped/fitted 3D feature and mapped it using the camera calibration data. Gets the 3D residual statistics of this result. Residual statistics of this result in Phys3D space. Residual error in Phys3D space is the distance between any input 3D point and its corresponding mapped/fitted 3D feature. Gets the 3D residual statistics of this result. Residual statistics of this result in Phys3D space. Residual error in Phys3D space is the distance between a ray of any 2D feature (generated using camera calibration data) and its corresponding mapped/fitted 3D feature. Construct this object by making a deep copy of the supplied object. The object to be copied. May not be null. If is null. Finalize this object. Dispose this object. Serialization constructor. The standard SerializationInfo argument. The standard StreamingContext argument. Serializer for this object. The standard SerializationInfo argument. The standard StreamingContext argument. Compares the internal state of the specified instances and returns true if the internal state is within epsilon. The first instance of this class to use in the comparison. The second instance of this class to use in the comparison. The tolerance to use in the comparison. True if the internal state of the specified instances is within epsilon. Override of ToString method to get a string for describing this object. A string describing this object.