public void onDragRotate(int currX, int currY) {
                        int diffX = currX - startDragMouseLocX;
                        int diffY = -(currY - startDragMouseLocY);
                        
                        switch (rotateMode) {
                                case DUAL_AXIS_ROTATE:
                                        processXYChange(diffX, diffY);
                                        break;
                                case BIAXIAL_ROTATE:
                                        if(Math.abs(diffX) > Math.abs(diffY))
                                                processXChange(diffX);
                                        else
                                                processYChange(diffY);
                                        break;
                                case XZ_AXIS_ROTATE:
                                        processXChange(diffX);
                                        break;
                                case Y_AXIS_ROTATE:
                                        processYChange(diffY);
                                        break;
                                case SPIN_VIEW_AXIS:
                                        processSpinAxis(diffX, diffY);
                                        break;
                        }
                }