I have ported the most used enums and constants to C# from the OptiTrack headers. Haven't made everything into nice names, but a bit of manual work or a clever regex should do the trick. Hope this is useful to you (or someone)!
Code: Select all
    enum NPHWModel
    {
        Oldtrackir = 0x100800a8,
        Smartnav = Oldtrackir + 1,
        Trackir = Smartnav + 1,
        Optitrack = Trackir + 1,
        Unknown = Optitrack + 1
    }
    enum NPHWRevision
    {
        OldtrackirLegacy = 0x200800b8,
        OldtrackirBasic = OldtrackirLegacy + 1,
        OldtrackirEg = OldtrackirBasic + 1,
        OldtrackirAt = OldtrackirEg + 1,
        OldtrackirGx = OldtrackirAt + 1,
        OldtrackirMac = OldtrackirGx + 1,
        SmartnavBasic = OldtrackirMac + 1,
        SmartnavEg = SmartnavBasic + 1,
        SmartnavAt = SmartnavEg + 1,
        SmartnavMacBasic = SmartnavAt + 1,
        SmartnavMacAt = SmartnavMacBasic + 1,
        TrackirBasic = SmartnavMacAt + 1,
        TrackirPro = TrackirBasic + 1,
        OptitrackBasic = TrackirPro + 1,
        OptitrackFlex = OptitrackBasic + 1,
        Unknown = OptitrackFlex + 1
    }
    enum NPLed
    {
        One = 0,
        Two = One + 1,
        Three = Two + 1,
        Four = Three + 1
    }
    enum NPOption // TODO: fix casing on all items
    {
        StatusGreenOnTracking = 0,
        TrackedObjectColor = StatusGreenOnTracking + 1,
        UntrackedObjectsColor = TrackedObjectColor + 1,
        ObjectColorOption = UntrackedObjectsColor + 1,
        DrawScale = ObjectColorOption + 1,
        Threshold = DrawScale + 1,
        ObjectMassWeight = Threshold + 1,
        ObjectRatioWeight = ObjectMassWeight + 1,
        ProximityWeight = ObjectRatioWeight + 1,
        StaticCountWeight = ProximityWeight + 1,
        ScreenCenterWeight = StaticCountWeight + 1,
        LastObjectTrackedWeight = ScreenCenterWeight + 1,
        ObjectMassMin = LastObjectTrackedWeight + 1,
        ObjectMassMax = ObjectMassMin + 1,
        ObjectMassIdeal = ObjectMassMax + 1,
        ObjectMassOutOfRange = ObjectMassIdeal + 1,
        OBJECT_RATIO_MIN = ObjectMassOutOfRange + 1,
        OBJECT_RATIO_MAX = OBJECT_RATIO_MIN + 1,
        OBJECT_RATIO_IDEAL = OBJECT_RATIO_MAX + 1,
        OBJECT_RATIO_OUT_OF_RANGE = OBJECT_RATIO_IDEAL + 1,
        PROXIMITY_MIN = OBJECT_RATIO_OUT_OF_RANGE + 1,
        PROXIMITY_MAX = PROXIMITY_MIN + 1,
        PROXIMITY_IDEAL = PROXIMITY_MAX + 1,
        PROXIMITY_OUT_OF_RANGE = PROXIMITY_IDEAL + 1,
        STATIC_COUNT_MIN = PROXIMITY_OUT_OF_RANGE + 1,
        STATIC_COUNT_MAX = STATIC_COUNT_MIN + 1,
        STATIC_COUNT_IDEAL = STATIC_COUNT_MAX + 1,
        STATIC_COUNT_OUT_OF_RANGE = STATIC_COUNT_IDEAL + 1,
        SCREEN_CENTER_MIN = STATIC_COUNT_OUT_OF_RANGE + 1,
        SCREEN_CENTER_MAX = SCREEN_CENTER_MIN + 1,
        SCREEN_CENTER_IDEAL = SCREEN_CENTER_MAX + 1,
        SCREEN_CENTER_OUT_OF_RANGE = SCREEN_CENTER_IDEAL + 1,
        LAST_OBJECT_MIN = SCREEN_CENTER_OUT_OF_RANGE + 1,
        LAST_OBJECT_MAX = LAST_OBJECT_MIN + 1,
        LAST_OBJECT_IDEAL = LAST_OBJECT_MAX + 1,
        LAST_OBJECT_OUT_OF_RANGE = LAST_OBJECT_IDEAL + 1,
        STATUS_LED_ON_START = LAST_OBJECT_OUT_OF_RANGE + 1,
        ILLUMINATION_LEDS_ON_START = STATUS_LED_ON_START + 1,
        CAMERA_ROTATION = ILLUMINATION_LEDS_ON_START + 1,
        MIRROR_X = CAMERA_ROTATION + 1,
        MIRROR_Y = MIRROR_X + 1,
        SEND_EMPTY_FRAMES = MIRROR_Y + 1,
        CameraId = SEND_EMPTY_FRAMES + 1,
        CAMERA_ID_DEFAULT = CameraId + 1,
        FrameRate = CAMERA_ID_DEFAULT + 1,
        FRAME_RATE_DEFAULT = FrameRate + 1,
        EXPOSURE = FRAME_RATE_DEFAULT + 1,
        EXPOSURE_DEFAULT = EXPOSURE + 1,
        VideoType = EXPOSURE_DEFAULT + 1,
        VIDEO_TYPE_DEFAULT = VideoType + 1,
        INTENSITY = VIDEO_TYPE_DEFAULT + 1,
        INTENSITY_DEFAULT = INTENSITY + 1,
        FrameDecimation = INTENSITY_DEFAULT + 1,
        FRAME_DECIMATION_DEFAULT = FrameDecimation + 1,
        MINIMUM_SEGMENT_LENGTH = FRAME_DECIMATION_DEFAULT + 1,
        MINIMUM_SEGMENT_LENGTH_DEFAULT = MINIMUM_SEGMENT_LENGTH + 1,
        MAXIMUM_SEGMENT_LENGTH = MINIMUM_SEGMENT_LENGTH_DEFAULT + 1,
        MAXIMUM_SEGMENT_LENGTH_DEFAULT = MAXIMUM_SEGMENT_LENGTH + 1,
        WINDOW_EXTENTS_X = MAXIMUM_SEGMENT_LENGTH_DEFAULT + 1,
        WINDOW_EXTENTS_X_DEFAULT = WINDOW_EXTENTS_X + 1,
        WINDOW_EXTENTS_X_END = WINDOW_EXTENTS_X_DEFAULT + 1,
        WINDOW_EXTENTS_X_END_DEFAULT = WINDOW_EXTENTS_X_END + 1,
        WINDOW_EXTENTS_Y = WINDOW_EXTENTS_X_END_DEFAULT + 1,
        WINDOW_EXTENTS_Y_DEFAULT = WINDOW_EXTENTS_Y + 1,
        WINDOW_EXTENTS_Y_END = WINDOW_EXTENTS_Y_DEFAULT + 1,
        WINDOW_EXTENTS_Y_END_DEFAULT = WINDOW_EXTENTS_Y_END + 1,
        RESET_FRAME_COUNT = WINDOW_EXTENTS_Y_END_DEFAULT + 1,
        USER_HWND = RESET_FRAME_COUNT + 1,
        MULTICAM = USER_HWND + 1,
        MULTICAM_MASTER = MULTICAM + 1,
        MULTICAM_GROUP_NOTIFY = MULTICAM_MASTER + 1,
        NumericDisplayOn = MULTICAM_GROUP_NOTIFY + 1,
        NumericDisplayOff = NumericDisplayOn + 1,
        SEND_FRAME_MASK = NumericDisplayOff + 1,
        TextOverlayOption = SEND_FRAME_MASK + 1,
        USER_DEF1 = TextOverlayOption + 1,
        SCORING_ENABLED = USER_DEF1 + 1,
        GRAYSCALE_DECIMATION = SCORING_ENABLED + 1,
        OBJECT_CAP = GRAYSCALE_DECIMATION + 1
    }
    enum NPVideoTypeOption
    {
        ProcessedPC = 0,
        RawGrayscale = 1,
        ProcessedCamera = 2
    }
    [Flags]
    enum NPTextOverlayOption
    {
        Header = 0x1,
	    Object = 0x2,
	    ObjectHighlight = 0x4
    }
    static class NPThreshold
    {
        public const int Min = 1;
        public const int Max = 253;
    }