code: protected T getHidingPosition (T obstaclePosition, float obstacleRadius, T targetPosition) {
  		// Calculate how far away the agent is to be from the chosen
  		// obstacle's bounding radius
  		float distanceAway = obstacleRadius + distanceFromBoundary;
  
  		// Calculate the normalized vector toward the obstacle from the target
  		toObstacle.set(obstaclePosition).sub(targetPosition).nor();
  
  		// Scale it to size and add to the obstacle's position to get
  		// the hiding spot.
  		return toObstacle.scl(distanceAway).add(obstaclePosition);
  	}
docs: Given the position of a target and the position and radius of an obstacle, this method calculates a position
  {@code distanceFromBoundary} away from the object's bounding radius and directly opposite the target. It does this by scaling
  the normalized "to obstacle" vector by the required distance away from the center of the obstacle and then adding the result
  to the obstacle's position.
  @param obstaclePosition
  @param obstacleRadius
  @param targetPosition
  @return the hiding position behind the obstacle.