# Plot manager

class CPlotManager

  Plot manager to access all plots and curves on them.

  Public Functions

  CPlot *AddPlot(const std::string &_name)

    Adds a new 2D plot with the specified name.

    If a plot with the given name already exists, does nothing, and returns nullptr.

    Parameters:

      _name – Plot name.

    Returns:

      Pointer to the added plot.

  CPlot *AddPlot(const std::string &_name, const std::string &_labelX, const std::string &_labelY)

    Adds a new 2D plot with the specified name and axes labels.

    If a plot with the given name already exists, does nothing, and returns nullptr.

    Parameters:

      - _name – Plot name.

      - _labelX – X label of the plot.

      - _labelY – Y label of the plot.

    Returns:

      Pointer to the added plot.

  CPlot *AddPlot(const std::string &_name, const std::string &_labelX, const std::string &_labelY, const std::string &_labelZ)

    Adds a new 3D plot with the specified name and axes labels.

    If a plot with the given name already exists, does nothing, and returns nullptr.

    Parameters:

      - _name – Plot name.

      - _labelX – X label of the plot.

      - _labelY – Y label of the plot.

      - _labelZ – Z label of the plot.

    Returns:

      Pointer to the added plot.

  const CPlot *GetPlot(size_t _index) const

    Returns a 2D plot with the specified index.

    Parameters:

      _index – Index of the plot.

    Returns:

      Const pointer to the plot.

  CPlot *GetPlot(size_t _index)

    Returns a 2D plot with the specified index.

    Parameters:

      _index – Index of the plot.

    Returns:

      Pointer to the plot.

  const CPlot *GetPlot(const std::string &_name) const

    Returns a 2D plot with the specified name.

    Parameters:

      _name – Plot name.

    Returns:

      Const pointer to the plot.

  CPlot *GetPlot(const std::string &_name)

    Returns a 2D plot with the specified name.

    Parameters:

      _name – Plot name.

    Returns:

      Pointer to the plot.

  std::vector<const CPlot*> GetAllPlots() const

    Returns all defined 2D plots.

    Returns:

      Const pointers to all plots.

  std::vector<CPlot*> GetAllPlots()

    Returns all defined 2D plots.

    Returns:

      Pointers to all plots.

  size_t GetPlotsNumber() const

    Returns a number of defined plots.

    Returns:

      Number of all plots.

  Friends

  friend void swap(CPlotManager &_first, CPlotManager &_second) noexcept

    Swaps the content of two managers.

    Parameters:

      - _first – First manager.

      - _second – Second manager.