Пример #1
0
        private List <Models.Game.Path> StrokesSort(List <Models.Game.Path> strokes, PANORAMIC_DRAWING_DIRECTION op)
        {
            switch (op)
            {
            case PANORAMIC_DRAWING_DIRECTION.FROM_LEFT_TO_RIGHT:
            {
                strokes.Sort((strokeOne, strokeTwo) =>
                    {
                        return(SortPredicatForPanoramicDirection(strokeOne, strokeTwo, PANORAMIC_DRAWING_DIRECTION.FROM_LEFT_TO_RIGHT));
                    });
                return(strokes);
            }

            case PANORAMIC_DRAWING_DIRECTION.FROM_RIGHT_TO_LEFT:
            {
                strokes.Sort((strokeOne, strokeTwo) =>
                    {
                        return(SortPredicatForPanoramicDirection(strokeOne, strokeTwo, PANORAMIC_DRAWING_DIRECTION.FROM_RIGHT_TO_LEFT));
                    });
                return(strokes);
            }

            case PANORAMIC_DRAWING_DIRECTION.FROM_TOP_TO_BOTTOM:
            {
                strokes.Sort((strokeOne, strokeTwo) =>
                    {
                        return(SortPredicatForPanoramicDirection(strokeOne, strokeTwo, PANORAMIC_DRAWING_DIRECTION.FROM_TOP_TO_BOTTOM));
                    });
                return(strokes);
            }

            case PANORAMIC_DRAWING_DIRECTION.FROM_BOTTOM_TO_TOP:
            {
                strokes.Sort((strokeOne, strokeTwo) =>
                    {
                        return(SortPredicatForPanoramicDirection(strokeOne, strokeTwo, PANORAMIC_DRAWING_DIRECTION.FROM_BOTTOM_TO_TOP));
                    });
                return(strokes);
            }

            default: return(null);
            }
        }
Пример #2
0
        private int SortPredicatForPanoramicDirection(Models.Game.Path pathOne, Models.Game.Path pathTwo, PANORAMIC_DRAWING_DIRECTION direction)
        {
            var originineOne = pathOne.Coordinates[0];
            var originineTwo = pathTwo.Coordinates[0];

            switch (direction)
            {
            case PANORAMIC_DRAWING_DIRECTION.FROM_LEFT_TO_RIGHT:
                return(originineOne.X.CompareTo(originineTwo.X));

            case PANORAMIC_DRAWING_DIRECTION.FROM_RIGHT_TO_LEFT:
                return(originineTwo.X.CompareTo(originineOne.X));

            case PANORAMIC_DRAWING_DIRECTION.FROM_TOP_TO_BOTTOM:
                return(originineOne.Y.CompareTo(originineTwo.Y));

            case PANORAMIC_DRAWING_DIRECTION.FROM_BOTTOM_TO_TOP:
                return(originineTwo.Y.CompareTo(originineOne.Y));

            default: return(0);
            }
        }