def add_waypoint(self, name, coordinates, rotation, dimension):
        '''
        Adds a waypoint to the current dictionary of waypoints
        
        :param name: Name of the Waypoint
        :type name: str
        :param coordinates: The coordinates of the Waypoint (in X,Y,Z order)
        :type coordinates: tuple
        :param rotation: The rotation of the current camera viewport (in Yaw,Pitch order)
        :type rotation: tuple
        :param dimension: The current dimenstion the camera viewport is in
        :type dimension: int
        '''
        formatted_name = "{0} ({1},{2},{3})".format(name, coordinates[0], coordinates[1], coordinates[2])
        data = coordinates + rotation + (dimension,)
        self.waypoint_names.add(name)
        self.waypoints[formatted_name] = data

        Adds a waypoint to the current dictionary of waypoints
        
        :param name: Name of the Waypoint
        :type name: str
        :param coordinates: The coordinates of the Waypoint (in X,Y,Z order)
        :type coordinates: tuple
        :param rotation: The rotation of the current camera viewport (in Yaw,Pitch order)
        :type rotation: tuple
        :param dimension: The current dimenstion the camera viewport is in
        :type dimension: int
        
waypoints.py