Beispiel #1
0
 public PivotPartitioner(PivotSelect pivotSelectionMethod)
 {
     PivotSelectionMethod = pivotSelectionMethod;
     if (pivotSelectionMethod == PivotSelect.Random)
     {
         _randomizer = new Random();
     }
 }
Beispiel #2
0
    void InitFSMStates()
    {
        // pivot state
        sPivotIdle    = new PivotIdle <eCameraOpTansition, eCameraOpState>(eCameraOpState.PIVOT_IDLE, this);
        sPivotSelect  = new PivotSelect <eCameraOpTansition, eCameraOpState>(eCameraOpState.PIVOT_SELECT, this);
        sPivotConfirm = new PivotConfirm <eCameraOpTansition, eCameraOpState>(eCameraOpState.PIVOT_CONFIRM, this);
        // rotation state
        sRotIdle    = new RotIdle <eCameraOpTansition, eCameraOpState>(eCameraOpState.ROT_IDLE, this);
        sRotPrepare = new RotPrepare <eCameraOpTansition, eCameraOpState>(eCameraOpState.ROT_PREPARE, this);
        sRotRun     = new RotRun <eCameraOpTansition, eCameraOpState>(eCameraOpState.ROT_RUN, this);
        // zoom state
        sZoomIdle = new ZoomIdle <eCameraOpTansition, eCameraOpState>(eCameraOpState.ZOOM_IDLE, this);
        sZoomRun  = new ZoomRun <eCameraOpTansition, eCameraOpState>(eCameraOpState.ZOOM_RUN, this);

        // add pivot transition
        sPivotIdle.AddTransition(eCameraOpTansition.PIVOT_RESET, sPivotIdle.ID);
        sPivotIdle.AddTransition(eCameraOpTansition.PIVOT_TOUCH, sPivotSelect.ID);
        sPivotSelect.AddTransition(eCameraOpTansition.PIVOT_RESET, sPivotIdle.ID);
        sPivotSelect.AddTransition(eCameraOpTansition.PIVOT_TOUCH, sPivotSelect.ID);
        sPivotSelect.AddTransition(eCameraOpTansition.PIVOT_CONFIRM, sPivotConfirm.ID);
        sPivotConfirm.AddTransition(eCameraOpTansition.PIVOT_RESET, sPivotIdle.ID);
        sPivotConfirm.AddTransition(eCameraOpTansition.PIVOT_TOUCH, sPivotSelect.ID);
        // add rotation transition
        sRotIdle.AddTransition(eCameraOpTansition.ROT_RESET, sRotIdle.ID);
        sRotIdle.AddTransition(eCameraOpTansition.ROT_TOUCH, sRotPrepare.ID);
        sRotPrepare.AddTransition(eCameraOpTansition.ROT_RESET, sRotIdle.ID);
        sRotPrepare.AddTransition(eCameraOpTansition.ROT_TOUCH, sRotPrepare.ID);
        sRotPrepare.AddTransition(eCameraOpTansition.ROT_RUN, sRotRun.ID);
        sRotRun.AddTransition(eCameraOpTansition.ROT_RESET, sRotIdle.ID);
        sRotRun.AddTransition(eCameraOpTansition.ROT_TOUCH, sRotRun.ID);
        sRotRun.AddTransition(eCameraOpTansition.ROT_RUN, sRotRun.ID);
        // add zoom transition
        sZoomIdle.AddTransition(eCameraOpTansition.ZOOM_RESET, sZoomIdle.ID);
        sZoomIdle.AddTransition(eCameraOpTansition.ZOOM_RUN, sZoomRun.ID);
        sZoomRun.AddTransition(eCameraOpTansition.ZOOM_RESET, sZoomIdle.ID);
        sZoomRun.AddTransition(eCameraOpTansition.ZOOM_RUN, sZoomRun.ID);
    }
Beispiel #3
0
 public QuicksortComparesCounter(int[] array, PivotSelect pivotSelectionMethod)
 {
     Partitioner = new PivotPartitioner(pivotSelectionMethod);
     QuickSort(array);
 }