/*
 * Go2PartTextureInvalidCount.h
 * 
 * Gocator system communication library
 * Copyright (C) 2013 by LMI Technologies Inc.
 * 
 * Licensed under The MIT License.
 * Redistributions of files must retain the above copyright notice.
 */

#ifndef LMITECH_GO2_PART_TEXTURE_INVALID_COUNT_H_INCLUDED
#define LMITECH_GO2_PART_TEXTURE_INVALID_COUNT_H_INCLUDED

#include <Go2Measurement.h>
#include <Go2PartTypes.h>
#include <Go2ApiBegin.h>

/*
 * Go2PartTextureInvalidCount Class 
 */

typedef Go2PartMeasurement Go2PartTextureInvalidCount;           // Represents part Go2PartTextureInvalidCount measurement configuration.

GO2_EXPORT(Go2Status) Go2PartTextureInvalidCount_SetId(Go2PartTextureInvalidCount measurement, Go2UInt32 id); //
//
//  Description:
//      Sets the unique measurement identifier for the measurement.
//  Arguments:
//      measurement - Go2PartTextureInvalidCount object. 
//      id - Unique measurement identifier. 
//  Returns:
//      Operation status. 

GO2_EXPORT(Go2UInt32) Go2PartTextureInvalidCount_Id(Go2PartTextureInvalidCount measurement); //
//
//  Description:
//      Gets the unique measurement identifier for the measurement.
//  Arguments:
//      measurement - Go2PartTextureInvalidCount object. 
//  Returns:
//      Unique measurement identifier

GO2_EXPORT(Go2Status) Go2PartTextureInvalidCount_SetName(Go2PartTextureInvalidCount measurement, const Go2Char* name); //
//
//  Description:
//      Sets the descriptive name for the measurement.
//  Arguments:
//      measurement - Go2PartTextureInvalidCount object. 
//      name - Descriptive name. 
//  Returns:
//      Operation status. 
 
GO2_EXPORT(Go2Status) Go2PartTextureInvalidCount_Name(Go2PartTextureInvalidCount measurement, Go2Char* name, Go2UInt32 capacity); //
//
//  Description:
//      Gets the descriptive name for the measurement.
//  Arguments:
//      measurement - Go2PartTextureInvalidCount object. 
//      name - Receives descriptive name. 
//      capacity - Capacity of name buffer. 
//  Returns:
//      Operation status.  

GO2_EXPORT(Go2Status) Go2PartTextureInvalidCount_SetDecisionMin(Go2PartTextureInvalidCount measurement, Go2Double min); //
//
//  Description:
//      Sets the decision threshold minimum value.
//  Arguments:
//      measurement - Go2PartTextureInvalidCount object. 
//      min - Decision threshold minimum value. 
//  Returns:
//      Operation status.
//  Remarks: 
//      A decision is said to pass if the measurement value is between the minimum and maximum thresholds.
 
GO2_EXPORT(Go2Double) Go2PartTextureInvalidCount_DecisionMin(Go2PartTextureInvalidCount measurement); //
//
//  Description:
//      Gets the decision threshold minimum value.
//  Arguments:
//      measurement - Go2PartTextureInvalidCount object. 
//  Returns:
//      Decision threshold minimum.
//  Remarks: 
//      A decision is said to pass if the measurement value is between the minimum and maximum thresholds.

GO2_EXPORT(Go2Status) Go2PartTextureInvalidCount_SetDecisionMax(Go2PartTextureInvalidCount measurement, Go2Double max); //
//
//  Description:
//      Sets the decision threshold maximum value.
//  Arguments:
//      measurement - Go2PartTextureInvalidCount object. 
//      max - Decision threshold maximum value. 
//  Returns:
//      Operation status.
//  Remarks: 
//      A decision is said to pass if the measurement value is between the minimum and maximum thresholds.
 
GO2_EXPORT(Go2Double) Go2PartTextureInvalidCount_DecisionMax(Go2PartTextureInvalidCount measurement); //
//
//  Description:
//      Gets the decision threshold maximum value.
//  Arguments:
//      measurement - Go2PartTextureInvalidCount object. 
//  Returns:
//      Decision threshold maximum.
//  Remarks: 
//      A decision is said to pass if the measurement value is between the minimum and maximum thresholds.
 
GO2_EXPORT(Go2Status) Go2PartTextureInvalidCount_EnableHold(Go2PartTextureInvalidCount measurement, Go2Bool enable); //
//
//  Description:
//      Enables measurement value hold.
//  Arguments:
//      measurement - Go2PartTextureInvalidCount object.
//      enable - GO2_TRUE to enable, or GO2_FALSE to disable.
//  Returns:
//      Operation status.

GO2_EXPORT(Go2Bool) Go2PartTextureInvalidCount_HoldEnabled(Go2PartTextureInvalidCount measurement); //
//
//  Description:
//      Reports whether value hold is currently enabled.
//  Arguments:
//      measurement - Go2PartTextureInvalidCount object. 
//  Returns:
//      GO2_TRUE if enabled, or GO2_FALSE if disabled.

GO2_EXPORT(Go2Status) Go2PartTextureInvalidCount_EnableSmoothing(Go2PartTextureInvalidCount measurement, Go2Bool enable); //
//
//  Description:
//      Enables measurement value smoothing.
//  Arguments:
//      measurement - Go2PartTextureInvalidCount object.
//      enable - GO2_TRUE to enable, or GO2_FALSE to disable.
//  Returns:
//      Operation status.

GO2_EXPORT(Go2Bool) Go2PartTextureInvalidCount_SmoothingEnabled(Go2PartTextureInvalidCount measurement); //
//
//  Description:
//      Reports whether value smoothing is currently enabled.
//  Arguments:
//      measurement - Go2PartTextureInvalidCount object. 
//  Returns:
//      GO2_TRUE if enabled, or GO2_FALSE if disabled.

GO2_EXPORT(Go2UInt32) Go2PartTextureInvalidCount_SmoothingWindowMin(Go2PartTextureInvalidCount measurement); //
//
//  Description:
//      Gets the minimum smoothing window value.
//  Arguments:
//      measurement - Go2PartTextureInvalidCount object. 
//  Returns:
//      Minimum smoothing window value.

GO2_EXPORT(Go2UInt32) Go2PartTextureInvalidCount_SmoothingWindowMax(Go2PartTextureInvalidCount measurement); //
//
//  Description:
//      Gets the maximum smoothing window value.
//  Arguments:
//      measurement - Go2PartTextureInvalidCount object. 
//  Returns:
//      Maximum smoothing window value.

GO2_EXPORT(Go2Status) Go2PartTextureInvalidCount_SetSmoothingWindow(Go2PartTextureInvalidCount measurement, Go2UInt32 window); //
//
//  Description:
//      Sets the smoothing window value.
//  Arguments:
//      measurement - Go2PartTextureInvalidCount object. 
//      window - Smoothing window value.
//  Returns:
//      Operation status.

GO2_EXPORT(Go2UInt32) Go2PartTextureInvalidCount_SmoothingWindow(Go2PartTextureInvalidCount measurement); //
//
//  Description:
//      Gets the smoothing window value.
//  Arguments:
//      measurement - Go2PartTextureInvalidCount object. 
//  Returns:
//      Smoothing window value.

GO2_EXPORT(Go2Status) Go2PartTextureInvalidCount_EnableLink(Go2PartTextureInvalidCount measurement, Go2Bool enable); //
//
//  Description:
//      Enables measurement linking.  When enabled, another measurement of the same base type can be 
//      linked, provided that it is a different measurement.  
//      E.g. A Go2PartTextureInvalidCount and Go2PartPlaneY measurement can link, but two Go2PartTextureInvalidCount measurements can not be linked.
//  Arguments:
//      measurement - Go2PartTextureInvalidCount object. 
//      enable - GO2_TRUE to enable, or GO2_FALSE to disable.
//  Returns:
//      Operation status.
 
GO2_EXPORT(Go2Bool) Go2PartTextureInvalidCount_LinkEnabled(Go2PartTextureInvalidCount measurement); //
//
//  Description:
//      Reports whether measurement linking is enabled.
//  Arguments:
//      measurement - Go2PartTextureInvalidCount object. 
//  Returns:
//      GO2_TRUE if the link is enabled; GO2_FALSE otherwise.

GO2_EXPORT(Go2Status) Go2PartTextureInvalidCount_SetLink(Go2PartTextureInvalidCount measurement, Go2UInt32 link); //
//
//  Description:
//      Sets the measurement id to which this measurement should link. Linked measurements must:
//          -link to a valid measurement id
//          -not link to themselves
//          -not link to a measurement that is already linked
//          -link only to measurements of the same basic type (eg, all PartPlane_? measurements)
//  Arguments:
//      measurement - Go2PartTextureInvalidCount object. 
//      link - Measurement id to link to.
//  Returns:
//      Operation status.

GO2_EXPORT(Go2UInt32) Go2PartTextureInvalidCount_Link(Go2PartTextureInvalidCount measurement); //
//
//  Description:
//      Gets the measurement id of the linked measurement.
//  Arguments:
//      measurement - Go2PartTextureInvalidCount object. 
//  Returns:
//      The linked measurement ID.

GO2_EXPORT(Go2Double) Go2PartTextureInvalidCount_Offset(Go2PartTextureInvalidCount measurement); //
//
//  Description:
//      Gets the measurement value offset.
//  Arguments:
//      measurement - Go2PartTextureInvalidCount object.
//  Returns:
//      Measurement value offset.

GO2_EXPORT(Go2Status) Go2PartTextureInvalidCount_SetOffset(Go2PartTextureInvalidCount measurement, Go2Double offset); //
//
//  Description:
//      Sets the measurement value offset.
//  Arguments:
//      measurement - Go2PartTextureInvalidCount object.
//      offset - Offset factor.
//  Returns:
//      Operation status.

GO2_EXPORT(Go2Double) Go2PartTextureInvalidCount_Scale(Go2PartTextureInvalidCount measurement); //
//
//  Description:
//      Gets the measurement value scale factor.
//  Arguments:
//      measurement - Go2PartTextureInvalidCount object.
//  Returns:
//      Measurement value scale factor.

GO2_EXPORT(Go2Status) Go2PartTextureInvalidCount_SetScale(Go2PartTextureInvalidCount measurement, Go2Double scale); //
//
//  Description:
//      Sets the measurement value scale factor.
//  Arguments:
//      measurement - Go2PartTextureInvalidCount object.
//      scale - Scale factor.
//  Returns:
//      Operation status.

GO2_EXPORT(Go2PartCircleRegion) Go2PartTextureInvalidCount_CircleRegion(Go2PartTextureInvalidCount measurement); //
//
//  Description:
//      Gets the 2d circle region used by the measurement.
//  Arguments:
//      measurement - Go2PartTextureInvalidCount object.
//  Returns:
//      The 2d circle region.

GO2_EXPORT(Go2Status) Go2PartTextureInvalidCount_SetCircleRegion(Go2PartTextureInvalidCount measurement, Go2PartCircleRegion circleRegion); //
//
//  Description:
//      Sets the circle region.
//  Arguments:
//      measurement - Go2PartTextureInvalidCount object.
//      circleRegion - The circle region to set.
//  Returns:
//      Operation status.

GO2_EXPORT(Go2UInt32) Go2PartTextureInvalidCount_LinkOptionAt(Go2PartTextureInvalidCount measurement, Go2UInt32 index); //
//
//  Description:
//      Gets the link-able measurement id at the specified index. 
//    Arguments:
//      measurement - Go2PartMeasurement object.
//  Returns:
//      The link-able measurement ID at the specified index.

GO2_EXPORT(Go2UInt32) Go2PartTextureInvalidCount_LinkOptionCount(Go2PartTextureInvalidCount measurement); //
//
//  Description:
//      Gets the number of link-able measurement IDs.
//  Arguments:
//      measurement - Go2PartMeasurement object.
//  Returns:
//      The link-able measurement count.

#include <Go2ApiEnd.h>
#endif //LMITECH_GO2_PART_TEXTURE_INVALID_COUNT_H_INCLUDED
