public override void Bind(ICamera camera, ICanvas canvas)
{
if (camera == null || canvas == null) { throw new ArgumentNullException(); }
if (this.isBinded) { return; }
this.camera = camera;
this.canvas = canvas;
canvas.MouseDown += this.mouseDownEvent;
canvas.MouseMove += this.mouseMoveEvent;
canvas.MouseUp += this.mouseUpEvent;
canvas.MouseWheel += this.mouseWheelEvent;
SetCamera(camera.Position, camera.Target, camera.UpVector);
this.isBinded = true;
}