public override void OnInspectorGUI()
        {
            base.OnInspectorGUI();

            ArUcoMarkerDetector detector = target as ArUcoMarkerDetector;

            if (detector.MarkerPositionBehavior == MarkerPositionBehavior.Moving)
            {
                detector.RequiredObservations = EditorGUILayout.IntField(new GUIContent("Required Observations", requiredObservationsTooltip), detector.RequiredObservations);
            }
            else
            {
                detector.RequiredObservations     = EditorGUILayout.IntField(new GUIContent("Required Observations", requiredObservationsTooltip), detector.RequiredObservations);
                detector.RequiredInlierCount      = EditorGUILayout.IntField(new GUIContent("Required Inlier Count", requiredInlierCountTooltip), detector.RequiredInlierCount);
                detector.MaximumMarkerSampleCount = EditorGUILayout.IntField(new GUIContent("Maximum Marker Sample Count", maximumMarkerSampleCountTooltip), detector.MaximumMarkerSampleCount);
                detector.MarkerInlierStandardDeviationThreshold   = EditorGUILayout.FloatField(new GUIContent("Marker Inlier Standard Deviation Threshold", markerInlierStandardDeviationThresholdTooltip), detector.MarkerInlierStandardDeviationThreshold);
                detector.MaximumPositionDistanceStandardDeviation = EditorGUILayout.FloatField(new GUIContent("Maximum Position Distance Standard Deviation", maximumPositionDistanceStandardDeviationTooltip), detector.MaximumPositionDistanceStandardDeviation);
                detector.MaximumRotationAngleStandardDeviation    = EditorGUILayout.FloatField(new GUIContent("Maximum Rotation Angle Standard Deviation", maximumRotationAngleStandardDeviationTooltip), detector.MaximumRotationAngleStandardDeviation);
            }
        }
 public MovingMarkerDetectionCompletionStrategy(ArUcoMarkerDetector detector)
 {
     this.detector = detector;
 }
 public StationaryMarkerDetectionCompletionStrategy(ArUcoMarkerDetector detector)
 {
     this.detector = detector;
 }