@Override
	public void draw() {
		if (hidden) {
			return;
		}
		
		Transformation.pushMatix();
		
		Point p = stage.scratchCoodsToReal(position);
		
		Transformation.translate(Math.round(p.x), Math.round(p.y));
		
		switch (rotationStyle) {
		case normal:
			Transformation.rotate(rotation);
			break;
		case leftRight:
			if ((rotation + Math.PI) % (Math.PI * 2) > Math.PI) {
				Transformation.scale(-1, 1);
			}
			break;
		case none:
			break;
		}
		
		drawTexture();
		
		Transformation.popMatix();
	}