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()); }
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(); } }