protected boolean objectShouldBeDrawn(DrawnObject d)
	{
		// If the drawnobject is collidingdrawnobject, checks the drawing more 
		// carefully
		if (d instanceof CollidingDrawnObject)
		{
			CollidingDrawnObject cd = (CollidingDrawnObject) d;
			
			DoublePoint[] collisionpoints = cd.getCollisionPoints();
			
			// Does NOT check if the object is solid or not! (used for drawing 
			// so the visible-status is used instead)
			// Invisible objects are never drawn
			if (!cd.isVisible())
				return false;
						
			// Returns true if any of the collisionpoints collides
			for (int i = 0; i < collisionpoints.length; i++)
			{
				if (pointCollides((int) collisionpoints[i].getX(), 
						(int) collisionpoints[i].getY()) != null)
					return true;
			}
			
			return false;
		}
		// Dimensionalobjects are drawn if they are near the camera
		// Draws a bit more objects than necessary
		else if (d instanceof DimensionalDrawnObject)
		{
			DimensionalDrawnObject dd = (DimensionalDrawnObject) d;
			
			// Checks if it's possible that any point of the object would be shown
			double maxrange = dd.getMaxRangeFromOrigin() + getMaxRangeFromOrigin();
			
			return HelpMath.pointDistance(-getX(), -getY(), dd.getX(), dd.getY()) 
					< maxrange;
		}
		// Other objects are always drawn
		return true;
	}