public PivotPartitioner(PivotSelect pivotSelectionMethod) { PivotSelectionMethod = pivotSelectionMethod; if (pivotSelectionMethod == PivotSelect.Random) { _randomizer = new Random(); } }
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); }
public QuicksortComparesCounter(int[] array, PivotSelect pivotSelectionMethod) { Partitioner = new PivotPartitioner(pivotSelectionMethod); QuickSort(array); }