/// <summary> /// Muuntaa annetun pisteen maailmankoordinaateista ruutukoordinaatteihin /// ottaen huomioon oliokerroksen suhteellisen siirtymän. /// </summary> public Vector WorldToScreen(Vector point, Layer layer) { if (layer == null) { return(WorldToScreen(point)); } if (layer.IgnoresZoom) { return(point - Vector.ComponentProduct(Position, layer.RelativeTransition)); } return((point - Vector.ComponentProduct(Position, layer.RelativeTransition)) * ZoomFactor); }
/// <summary> /// Muuntaa annetun pisteen ruutukoordinaateista maailmankoordinaatteihin /// ottaen huomioon oliokerroksen suhteellisen siirtymän. /// </summary> public Vector ScreenToWorld(Vector point, Layer layer) { if (layer == null) { return(ScreenToWorld(point)); } if (layer.IgnoresZoom) { return(Vector.ComponentProduct(Position, layer.RelativeTransition) + point); } return(Vector.ComponentProduct(Position, layer.RelativeTransition) + (1 / ZoomFactor) * point); }