19 private Point referenceViewPoint =
new Point(0.0, 0.0);
24 private double pixelsPerMeter = 1.0;
28 protected double PixelsPerMeter {
get {
return pixelsPerMeter; } }
33 private Point? lastMouseLocationOfCanvasMove = null;
52 internal void ChangeZoom(
double newPixelsPerMeter, Point zoomPoint)
56 Vector zoomPointAsVector = zoomPoint -
new Point(0.0, 0.0);
58 referenceViewPoint = zoomPointAsVector / pixelsPerMeter + referenceViewPoint - zoomPointAsVector / newPixelsPerMeter;
60 pixelsPerMeter = newPixelsPerMeter;
72 return (point - referenceViewPoint) * pixelsPerMeter +
new Point(0.0, 0.0);
82 return (point -
new Point(0.0, 0.0)) / pixelsPerMeter + referenceViewPoint;
90 internal void PushNewMouseLocationOfCanvasMove(Point mouseLocationOnCanvas)
92 if (lastMouseLocationOfCanvasMove != null)
94 Point currentMouseLocationOfCanvasMove = mouseLocationOnCanvas;
95 referenceViewPoint += (lastMouseLocationOfCanvasMove.Value - currentMouseLocationOfCanvasMove)
97 Render(mouseLocationOnCanvas);
99 lastMouseLocationOfCanvasMove = mouseLocationOnCanvas;
105 internal void ResetCanvasMove()
107 lastMouseLocationOfCanvasMove = null;
114 protected abstract void Render(Point currentMouseLocation);
Base class for drawing visual renderer.
DrawingVisual visual
Drawing visual to render to.
Point TransformCanvasPoint(Point point)
Transform point on canvas to real-world point.
VisualCanvasRenderer(DrawingVisual visual)
Initialization of visual canvas renderer.
Point TransformRealWorldPoint(Point point)
Transforms real-world point to point on canvas.