Example #1
0
 public Panel3DPositionCalculator(Size elementSize, Size windowSize, double scrollPosition, IPanel3DScaleFunction scaleFunction, int elementsPerLine)
 {
     ScaleFunction   = scaleFunction;
     ElementsPerLine = elementsPerLine;
     _elementSize    = elementSize;
     _windowSize     = windowSize;
     _scrollPosition = scrollPosition;
 }
 public Panel3DPositioner(Size windowSize, Size elementSize, double scrollPosition, IPanel3DScaleFunction scaleFunction = null)
 {
     if (scaleFunction == null)
     {
         scaleFunction = new Panel3DLinearScaleFunction(.91, .77);
     }
     WindowSize                 = windowSize;
     ElementSize                = elementSize;
     ScrollPosition             = scrollPosition;
     Index                      = 0;
     _panel3DPositionCalculator = new Panel3DPositionCalculator(elementSize, windowSize, scrollPosition, scaleFunction, ElementsPerLine());
 }
Example #3
0
        private static void CalculateCurrentPositionTest(Size windowSize, Size elSize, IEnumerable <double[]> expectedPositionsArray, IPanel3DScaleFunction scaleFunction)
        {
            var positioner = new Panel3DPositioner(windowSize, elSize, 0, scaleFunction);

            foreach (var expectedPosition in expectedPositionsArray.Select(pos => new Position3D(pos[0], pos[1], 1, 1, HorizontalAlignment.Left, 0)))
            {
                var calculatedPosition = positioner.CalculateCurrentPosition();
                Assert.AreEqual(expectedPosition.X, calculatedPosition.X, 0.25);
                Assert.AreEqual(expectedPosition.Y, calculatedPosition.Y, 0.25);
                positioner.MoveToNext();
            }
        }