/**
 * @file    GoSdkLib.c
 *
 * @internal
 * Copyright (C) 2016-2022 by LMI Technologies Inc.
 * Licensed under the MIT License.
 * Redistributed files must retain the above copyright notice.
 */
#include <GoSdk/GoSdkLib.h>
#include <kApi/kApiLib.h>
#include <GoSdk/GoSdk.h>

#define GO_SDK_VERSION  kVersion_Stringify_(GO_SDK_VERSION_MAJOR, GO_SDK_VERSION_MINOR, GO_SDK_VERSION_RELEASE, GO_SDK_VERSION_BUILD)

kBeginAssemblyEx(Go, GoSdk, GO_SDK_VERSION, GO_SDK_VERSION)

    //Dependencies
    kAddDependency(kApiLib)

    //Values
    kAddType(GoAcceleratorMgrAccelEvents)
    kAddType(GoAcceleratorMgrAccelUpdate)
    kAddType(GoAcceleratorMgrSensorEntry)
    kAddType(GoAcceleratorMgrSensorParam)
    kAddType(GoAcceleratorMgrSensorBackup)
    kAddType(GoAcceleratorMgrSensorInfo)
    kAddType(GoAcceleratorMgrWorkerMsg)
    kAddType(GoAccelSensorPortAllocPorts)
    kAddType(GoActiveAreaConfig)
    kAddType(GoAlignmentRef)
    kAddType(GoAlignmentState)
    kAddType(GoAlignmentStatus)
    kAddType(GoAlignmentTarget)
    kAddType(GoAlignmentType)
    kAddType(GoAlignmentDegreesOfFreedom)
    kAddType(GoAnalogEvent)
    kAddType(GoAnalogTrigger)
    kAddType(GoAsciiOperation)
    kAddType(GoAsciiStandardFormatMode)
    kAddType(GoBoxAsymmetryType)
    kAddType(GoDataMessageType)
    kAddType(GoDataSource)
    kAddType(GoDataStep)
    kAddType(GoDataStream)
    kAddType(GoDataStreamId)
    kAddType(GoDataType)
    kAddType(GoDecision)
    kAddType(GoDecisionCode)
    kAddType(GoDigitalEvent)
    kAddType(GoDigitalPass)
    kAddType(GoDigitalSignal)
    kAddType(GoDiscoveryInfo)
    kAddType(GoDiscoveryInterface)
    kAddType(GoDiscoveryProperty)
    kAddType(GoElement32u)
    kAddType(GoElement64f)
    kAddType(GoElementBool)
    kAddType(GoEllipseAsymmetryType)
    kAddType(GoEncoderSpacingMinSource)
    kAddType(GoEncoderTriggerMode)
    kAddType(GoEndianType)
    kAddType(GoEthernetProtocol)
    kAddType(GoIntensitySource)
    kAddType(GoIntensityMode)
    kAddType(GoExposureMode)
    kAddType(GoExtParamFloatOption)
    kAddType(GoExtParamIntOption)
    kAddType(GoExtParamType)
    kAddType(GoExtMeasurementType)
    kAddType(GoExtToolDataOutput)
    kAddType(GoHealthIndicatorId)
    kAddType(GoFeatureOption)
    kAddType(GoMeasurementOption)
    kAddType(GoFamily)
    kAddType(GoFilter)
    kAddType(GoFrameRateMaxSource)
    kAddType(GoGammaType)
    kAddType(GoImageType)
    kAddType(GoImplicitTriggerOverride)
    kAddType(GoIndicator)
    kAddType(GoInputSource)
    kAddType(GoAdvancedType)
    kAddType(GoMaterialType)
    kAddType(GoMeasurementData)
    kAddType(GoFeatureType)
    kAddType(GoFeatureDataType)
    kAddType(GoMeasurementType)
    kAddType(GoMode)
    kAddType(GoMultiplexBank)
    kAddType(GoOcclusionReductionAlg)
    kAddType(GoDemosaicStyle)
    kAddType(GoSurfaceEncoding)
    kAddType(GoSurfacePhaseFilter)
    kAddType(GoOrientation)
    kAddType(GoOutputDelayDomain)
    kAddType(GoOutputSource)
    kAddType(GoOutputCompositeSource)
    kAddType(GoPartFrameOfReference)
    kAddType(GoPartHeightThresholdDirection)
    kAddType(GoPartMatchAlgorithm)
    kAddType(GoPatternSequenceType)
    kAddType(GoPixelType)
    kAddType(GoProfileAreaType)
    kAddType(GoProfileBaseline)
    kAddType(GoProfileEdgeType)
    kAddType(GoProfileFeatureType)
    kAddType(GoProfileGapAxis)
    kAddType(GoProfileGenerationStartTrigger)
    kAddType(GoProfileGenerationType)
    kAddType(GoProfileGrooveLocation)
    kAddType(GoProfileGrooveSelectType)
    kAddType(GoProfileGrooveShape)
    kAddType(GoProfilePanelSide)
    kAddType(GoProfileRoundCornerDirection)
    kAddType(GoProfileStripBaseType)
    kAddType(GoProfileStripEdgeType)
    kAddType(GoProfileStripLocation)
    kAddType(GoProfileStripSelectType)
    kAddType(GoReplayCombineType)
    kAddType(GoReplayConditionType)
    kAddType(GoReplayMeasurementResult)
    kAddType(GoReplayRangeCountCase)
    kAddType(GoReplayExportSourceType)
    kAddType(GoRole)
    kAddType(GoAcceleratorConnectionStatus)
    kAddType(GoSeekDirection)
    kAddType(GoSelcomFormat)
    kAddType(GoSensorAccelState)
    kAddType(GoSensorAccelStatus)
    kAddType(GoSerialProtocol)
    kAddType(GoSerializerTypeInfo)
    kAddType(GoSpacingIntervalType)
    kAddType(GoSpotSelectionType)
    kAddType(GoStamp)
    kAddType(GoState)
    kAddType(GoBuddyInfo)
    kAddType(GoBuddyState)
    kAddType(GoStates)
    kAddType(GoSurfaceCountersunkHoleShape)
    kAddType(GoSurfaceFeatureType)
    kAddType(GoSurfaceGenerationStartTrigger)
    kAddType(GoSurfaceGenerationType)
    kAddType(GoSurfaceLocation)
    kAddType(GoSurfaceOpeningType)
    kAddType(GoSurfaceRivetType)
    kAddType(GoToolDataOutputOption)
    kAddType(GoToolOption)
    kAddType(GoToolType)
    kAddType(GoTracheidEllipse)
    kAddType(GoTransformation)
    kAddType(GoTransformedDataRegion)
    kAddType(GoTrigger)
    kAddType(GoTriggerSource)
    kAddType(GoTriggerUnits)
    kAddType(GoUser)
    kAddType(GoAddressInfo)
    kAddType(GoPortInfo)
    kAddType(GoEventType)
    kAddType(GoVoltageSetting)
    kAddType(GoPolygonCornerParameters)
    kAddType(GoDiscoveryOpMode)
    kAddType(GoSecurityLevel)
    kAddType(GoBrandingType)

    //Non-Configuration classes
    kAddType(GoAccelerator)
    kAddType(GoAcceleratorMgr)
    kAddType(GoAccelSensorPortAlloc)
    kAddType(GoControl)
    kAddType(GoDataSet)
    kAddType(GoDiscovery)
    kAddType(GoDiscoveryExtInfo)
    kAddType(GoReceiver)
    kAddType(GoSensorInfo)
    kAddType(GoSerializer)
    kAddType(GoSystem)

    //Configuration classes
    kAddType(GoAnalog)
    kAddType(GoDigital)
    kAddType(GoEthernet)
    kAddType(GoOutput)
    kAddType(GoLayout)
    kAddType(GoAdvanced)
    kAddType(GoPartDetection)
    kAddType(GoPartMatching)
    kAddType(GoPartModel)
    kAddType(GoPartModelEdge)
    kAddType(GoProfileGeneration)
    kAddType(GoRecordingFilter)
    kAddType(GoReplay)
    kAddType(GoReplayCondition)
    kAddType(GoReplayAnyMeasurement)
    kAddType(GoReplayAnyData)
    kAddType(GoReplayMeasurement)
    kAddType(GoSection)
    kAddType(GoSections)
    kAddType(GoSensor)
    kAddType(GoSerial)
    kAddType(GoSetup)
    kAddType(GoSetupNode)
    kAddType(GoSurfaceGeneration)
    kAddType(GoTracheid)
    kAddType(GoTransform)
    kAddType(GoGeoCal)

    //Message types
    kAddType(GoAlignMsg)
    kAddType(GoBoundingBoxMatchMsg)
    kAddType(GoDataMsg)
    kAddType(GoEdgeMatchMsg)
    kAddType(GoEllipseMatchMsg)
    kAddType(GoExposureCalMsg)
    kAddType(GoEventMsg)
    kAddType(GoHealthMsg)
    kAddType(GoPointFeatureMsg)
    kAddType(GoLineFeatureMsg)
    kAddType(GoCircleFeatureMsg)
    kAddType(GoPlaneFeatureMsg)
    kAddType(GoMeasurementMsg)
    kAddType(GoProfileIntensityMsg)
    kAddType(GoUniformProfileMsg)
    kAddType(GoProfilePointCloudMsg)
    kAddType(GoRangeIntensityMsg)
    kAddType(GoRangeMsg)
    kAddType(GoSectionMsg)
    kAddType(GoSectionIntensityMsg)
    kAddType(GoStampMsg)
    kAddType(GoSurfaceIntensityMsg)
    kAddType(GoUniformSurfaceMsg)
    kAddType(GoSurfacePointCloudMsg)
    kAddType(GoTracheidMsg)
    kAddType(GoVideoMsg)
    kAddType(GoGenericMsg)

    //Deprecated
    //kAddType(GoProfileMsg)
    //kAddType(GoResampledProfileMsg)
    //kAddType(GoSurfaceMsg)

    //Profile measurement related classes
    kAddType(GoProfileEdge)
    kAddType(GoProfileFeature)
    kAddType(GoProfileLineFittingRegion)
    kAddType(GoProfileRegion)

    //Surface measurement related classes
    kAddType(GoCylinderRegion)
    kAddType(GoRegion3d)
    kAddType(GoSurfaceFeature)
    kAddType(GoSurfaceRegion2d)
    kAddType(GoPointSetRegion)

    //Tool list, base tool and measurement classes
    kAddType(GoMeasurement)
    kAddType(GoMeasurements)
    kAddType(GoMeasurementsNameTypeMapping)
    kAddType(GoTools)
    kAddType(GoTool)
    kAddType(GoExtParam)
    kAddType(GoExtParams)
    kAddType(GoExtMeasurement)
    kAddType(GoExtTool)
    kAddType(GoFeaturesNameTypeMapping)
    kAddType(GoFeature)
    kAddType(GoFeatures)
    kAddType(GoExtFeature)

    //Extensible tool parameter classes
    kAddType(GoExtParamBool)
    kAddType(GoExtParamInt)
    kAddType(GoExtParamFloat)
    kAddType(GoExtParamString)
    kAddType(GoExtParamProfileRegion)
    kAddType(GoExtParamSurfaceRegion2d)
    kAddType(GoExtParamSurfaceRegion3d)
    kAddType(GoExtParamFeature)
    kAddType(GoExtParamDataInput)
    kAddType(GoExtParamPointSetRegion)

    //Range tools and measurements
    kAddType(GoRangeTool)
    kAddType(GoRangePosition)
    kAddType(GoRangePositionZ)
    kAddType(GoRangeThickness)
    kAddType(GoRangeThicknessThickness)

    //GoProfile tools and measurements
    kAddType(GoProfileArea)
    kAddType(GoProfileAreaArea)
    kAddType(GoProfileAreaCentroidX)
    kAddType(GoProfileAreaCentroidZ)
    kAddType(GoProfileBox)
    kAddType(GoProfileBoxX)
    kAddType(GoProfileBoxZ)
    kAddType(GoProfileBoxWidth)
    kAddType(GoProfileBoxHeight)
    kAddType(GoProfileBoxGlobalX)
    kAddType(GoProfileBoxGlobalY)
    kAddType(GoProfileBoxGlobalAngle)
    kAddType(GoProfileBridgeValue)
    kAddType(GoProfileBridgeValueAngle)
    kAddType(GoProfileBridgeValueBridgeValue)
    kAddType(GoProfileBridgeValueWindow)
    kAddType(GoProfileBridgeValueStdDev)
    kAddType(GoProfileCircle)
    kAddType(GoProfileCircleRadius)
    kAddType(GoProfileCircleX)
    kAddType(GoProfileCircleZ)
    kAddType(GoProfileCircleStdDev)
    kAddType(GoProfileCircleMinError)
    kAddType(GoProfileCircleMinErrorX)
    kAddType(GoProfileCircleMinErrorZ)
    kAddType(GoProfileCircleMaxError)
    kAddType(GoProfileCircleMaxErrorX)
    kAddType(GoProfileCircleMaxErrorZ)
    kAddType(GoProfileDim)
    kAddType(GoProfileDimCenterX)
    kAddType(GoProfileDimCenterZ)
    kAddType(GoProfileDimDistance)
    kAddType(GoProfileDimHeight)
    kAddType(GoProfileDimWidth)
    kAddType(GoProfileGroove)
    kAddType(GoProfileGrooveDepth)
    kAddType(GoProfileGrooveWidth)
    kAddType(GoProfileGrooveX)
    kAddType(GoProfileGrooveZ)
    kAddType(GoProfileIntersect)
    kAddType(GoProfileIntersectAngle)
    kAddType(GoProfileIntersectX)
    kAddType(GoProfileIntersectZ)
    kAddType(GoProfileLine)
    kAddType(GoProfileLineMaxError)
    kAddType(GoProfileLineMinError)
    kAddType(GoProfileLinePercentile)
    kAddType(GoProfileLineOffset)
    kAddType(GoProfileLineAngle)
    kAddType(GoProfileLineMinErrorX)
    kAddType(GoProfileLineMinErrorZ)
    kAddType(GoProfileLineMaxErrorX)
    kAddType(GoProfileLineMaxErrorZ)
    kAddType(GoProfileLineStdDev)
    kAddType(GoProfilePanel)
    kAddType(GoProfilePanelFlush)
    kAddType(GoProfilePanelGap)
    kAddType(GoProfilePanelLeftFlushX)
    kAddType(GoProfilePanelLeftFlushZ)
    kAddType(GoProfilePanelLeftGapX)
    kAddType(GoProfilePanelLeftGapZ)
    kAddType(GoProfilePanelLeftSurfaceAngle)
    kAddType(GoProfilePanelRightFlushX)
    kAddType(GoProfilePanelRightFlushZ)
    kAddType(GoProfilePanelRightGapX)
    kAddType(GoProfilePanelRightGapZ)
    kAddType(GoProfilePanelRightSurfaceAngle)
    kAddType(GoProfilePosition)
    kAddType(GoProfilePositionX)
    kAddType(GoProfilePositionZ)
    kAddType(GoProfileRoundCorner)
    kAddType(GoProfileRoundCornerX)
    kAddType(GoProfileRoundCornerZ)
    kAddType(GoProfileRoundCornerAngle)
    kAddType(GoProfileStrip)
    kAddType(GoProfileStripHeight)
    kAddType(GoProfileStripWidth)
    kAddType(GoProfileStripX)
    kAddType(GoProfileStripZ)
    kAddType(GoProfileTool)
    kAddType(GoProfileXLine)
    kAddType(GoProfileXLineZ)
    kAddType(GoProfileXLineValidity)

    //Surface tools and measurements
    kAddType(GoSurfaceBox)
    kAddType(GoSurfaceBoxGlobalX)
    kAddType(GoSurfaceBoxGlobalY)
    kAddType(GoSurfaceBoxGlobalZAngle)
    kAddType(GoSurfaceBoxHeight)
    kAddType(GoSurfaceBoxLength)
    kAddType(GoSurfaceBoxWidth)
    kAddType(GoSurfaceBoxX)
    kAddType(GoSurfaceBoxY)
    kAddType(GoSurfaceBoxZ)
    kAddType(GoSurfaceBoxZAngle)
    kAddType(GoSurfaceCountersunkHole)
    kAddType(GoSurfaceCountersunkHoleBevelAngle)
    kAddType(GoSurfaceCountersunkHoleBevelRadius)
    kAddType(GoSurfaceCountersunkHoleDepth)
    kAddType(GoSurfaceCountersunkHoleOuterRadius)
    kAddType(GoSurfaceCountersunkHoleX)
    kAddType(GoSurfaceCountersunkHoleXAngle)
    kAddType(GoSurfaceCountersunkHoleY)
    kAddType(GoSurfaceCountersunkHoleYAngle)
    kAddType(GoSurfaceCountersunkHoleZ)
    kAddType(GoSurfaceCountersunkHoleCounterboreDepth)
    kAddType(GoSurfaceCountersunkHoleAxisTilt)
    kAddType(GoSurfaceCountersunkHoleAxisOrientation)
    kAddType(GoSurfaceDim)
    kAddType(GoSurfaceDimWidth)
    kAddType(GoSurfaceDimHeight)
    kAddType(GoSurfaceDimLength)
    kAddType(GoSurfaceDimDistance)
    kAddType(GoSurfaceDimPlaneDistance)
    kAddType(GoSurfaceDimCenterX)
    kAddType(GoSurfaceDimCenterY)
    kAddType(GoSurfaceDimCenterZ)
    kAddType(GoSurfaceEllipse)
    kAddType(GoSurfaceEllipseMajor)
    kAddType(GoSurfaceEllipseMinor)
    kAddType(GoSurfaceEllipseRatio)
    kAddType(GoSurfaceEllipseZAngle)
    kAddType(GoSurfaceHole)
    kAddType(GoSurfaceHoleRadius)
    kAddType(GoSurfaceHoleX)
    kAddType(GoSurfaceHoleY)
    kAddType(GoSurfaceHoleZ)
    kAddType(GoSurfaceOpening)
    kAddType(GoSurfaceOpeningAngle)
    kAddType(GoSurfaceOpeningLength)
    kAddType(GoSurfaceOpeningWidth)
    kAddType(GoSurfaceOpeningX)
    kAddType(GoSurfaceOpeningY)
    kAddType(GoSurfaceOpeningZ)
    kAddType(GoSurfacePlane)
    kAddType(GoSurfacePlaneXAngle)
    kAddType(GoSurfacePlaneYAngle)
    kAddType(GoSurfacePlaneZOffset)
    kAddType(GoSurfacePlaneStdDev)
    kAddType(GoSurfacePlaneMinError)
    kAddType(GoSurfacePlaneMaxError)
    kAddType(GoSurfacePlaneXNormal)
    kAddType(GoSurfacePlaneYNormal)
    kAddType(GoSurfacePlaneZNormal)
    kAddType(GoSurfacePlaneDistance)
    kAddType(GoSurfacePosition)
    kAddType(GoSurfacePositionX)
    kAddType(GoSurfacePositionY)
    kAddType(GoSurfacePositionZ)
    kAddType(GoSurfaceRivet)
    kAddType(GoSurfaceRivetX)
    kAddType(GoSurfaceRivetY)
    kAddType(GoSurfaceRivetZ)
    kAddType(GoSurfaceRivetTiltAngle)
    kAddType(GoSurfaceRivetTiltDirection)
    kAddType(GoSurfaceRivetRadius)
    kAddType(GoSurfaceRivetTopOffsetMin)
    kAddType(GoSurfaceRivetTopOffsetMax)
    kAddType(GoSurfaceRivetTopOffsetMean)
    kAddType(GoSurfaceRivetTopOffsetStdDev)
    kAddType(GoSurfaceRivetRadialHeightMin)
    kAddType(GoSurfaceRivetRadialHeightMax)
    kAddType(GoSurfaceRivetRadialHeightMean)
    kAddType(GoSurfaceRivetRadialHeightStdDev)
    kAddType(GoSurfaceRivetRadialSlopeMin)
    kAddType(GoSurfaceRivetRadialSlopeMax)
    kAddType(GoSurfaceRivetRadialSlopeMean)
    kAddType(GoSurfaceRivetRadialSlopeStdDev)
    kAddType(GoSurfaceStud)
    kAddType(GoSurfaceStudBaseX)
    kAddType(GoSurfaceStudBaseY)
    kAddType(GoSurfaceStudBaseZ)
    kAddType(GoSurfaceStudRadius)
    kAddType(GoSurfaceStudTipX)
    kAddType(GoSurfaceStudTipY)
    kAddType(GoSurfaceStudTipZ)
    kAddType(GoSurfaceTool)
    kAddType(GoSurfaceVolume)
    kAddType(GoSurfaceVolumeArea)
    kAddType(GoSurfaceVolumeThickness)
    kAddType(GoSurfaceVolumeVolume)
    //Features
    kAddType(GoSurfaceEdgeEdgeLine)
    kAddType(GoSurfaceEdgeCenterPoint)
    kAddType(GoSurfaceBoundingBoxCenterPoint)
    kAddType(GoSurfaceCountersunkHoleCenterPoint)
    kAddType(GoSurfaceDimensionCenterPoint)
    kAddType(GoSurfaceEllipseCenterPoint)
    kAddType(GoSurfaceEllipseMajorAxisLine)
    kAddType(GoSurfaceEllipseMinorAxisLine)
    kAddType(GoSurfaceHoleCenterPoint)
    kAddType(GoSurfaceOpeningCenterPoint)
    kAddType(GoSurfacePlanePlane)
    kAddType(GoSurfacePositionPoint)
    kAddType(GoSurfaceStudTipPoint)
    kAddType(GoSurfaceStudBasePoint)

    kAddType(GoProfilePositionPoint)
    kAddType(GoProfileLineLine)
    kAddType(GoProfileLineMinErrorPoint)
    kAddType(GoProfileLineMaxErrorPoint)
    kAddType(GoProfileIntersectIntersectPoint)
    kAddType(GoProfileIntersectLine)
    kAddType(GoProfileIntersectBaseLine)
    kAddType(GoProfileBoundingBoxCornerPoint)
    kAddType(GoProfileBoundingBoxCenterPoint)
    kAddType(GoProfileAreaCenterPoint)
    kAddType(GoProfileCircleCenterPoint)
    kAddType(GoProfileDimensionCenterPoint)
    kAddType(GoProfilePanelLeftGapPoint)
    kAddType(GoProfilePanelLeftFlushPoint)
    kAddType(GoProfilePanelRightGapPoint)
    kAddType(GoProfilePanelRightFlushPoint)
    kAddType(GoProfileRoundCornerPoint)
    kAddType(GoProfileRoundCornerEdgePoint)
    kAddType(GoProfileRoundCornerCenterPoint)

    //Script tool and output
    kAddType(GoScript)
    kAddType(GoScriptOutput)

kEndAssemblyEx()
