/*
 * zGo2PartOpeningAngle.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_GO2PARTOPENINGANGLE_H_INCLUDED
#define LMITECH_GO2PARTOPENINGANGLE_H_INCLUDED

#include <Go2Measurements/Go2PartOpeningAngle.h>
#include <z/zGo2Measurement.h>
#include <z/zGo2Api.h>
#include <Go2ApiBegin.h>

/*
 * Go2PartOpeningAngle Class 
 */

typedef struct Go2PartOpeningAngleClass
{   
    GO2_PART_MEASUREMENT_FIELDS(); 
    
    Go2PartOpeningType openingType;
    Go2PartRegion2d refRegions[GO2_MAX_REF_REGIONS];
    Go2Bool refRegionsEnabled;
    Go2UInt32 refRegionCount;

    Go2Double nominalWidth;
    Go2Double nominalLength;
    Go2Double nominalAngle;
    Go2Double nominalRadius;
    Go2Double widthTolerance;
    Go2Double heightTolerance;
    Go2Double lengthTolerance;
    Go2Double angleTolerance;
    Go2Bool partialDetectionEnabled;

    Go2Bool autoRefRegionEnabled;
    Go2Bool autoTiltCorrectionEnabled;
    Go2Double tiltXAngle;
    Go2Double tiltYAngle;
} Go2PartOpeningAngleClass; 

GO2_EXPORT(Go2Status) Go2PartOpeningAngle_Construct(Go2PartOpeningAngle* measurement, Go2UInt32 id, Go2System system); 
GO2_EXPORT(Go2Status) Go2PartOpeningAngle_Init(Go2PartOpeningAngle measurement, Go2UInt32 id, Go2System system);
GO2_EXPORT(Go2Status) Go2PartOpeningAngle_VRelease(Go2PartOpeningAngle measurement);
GO2_EXPORT(Go2Status) Go2PartOpeningAngle_VRead(Go2PartOpeningAngle measurement, zXml xml, zXmlItem item); 
GO2_EXPORT(Go2Status) Go2PartOpeningAngle_VWrite(Go2PartOpeningAngle measurement, zXml xml, zXmlItem item); 



#include <Go2ApiEnd.h>
#endif
