private Point getRealPosition(IReadableMolecule anchorMolecule, RelativePosition position)
	{
		// Precondition
		assertTrue("Unknown molecule.", knowsMoleculePosition(anchorMolecule));
		
		// Get the anchor's position.
		final Point POSITION_OF_ANCHOR = mutableWorld.getPositionOfMolecule(anchorMolecule);
		
		// Get the offset from the position.
		int xOffset = 0, yOffset = 0;
		switch (position)
		{
		case North:
			yOffset = -1;
			break;
		case South: 
			yOffset = 1;
			break;
		case East: 
			xOffset = 1;
			break;
		case West: 
			xOffset = -1;
			break;
		case NorthWest: 
			yOffset = -1;
			xOffset = -1;
			break;
		case NorthEast: 
			yOffset = -1;
			xOffset = 1;
			break;
		case SouthWest: 
			yOffset = 1;
			xOffset = -1;
			break;
		case SouthEast: 
			yOffset = 1;
			xOffset = 1;
			break;
		default: fail("Unexpected value ("+position+")"); break;
		}
		
		// Return the relative position as a real point in the world.
		return new Point(POSITION_OF_ANCHOR.x + xOffset, POSITION_OF_ANCHOR.y + yOffset);
		
	}