BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
ModelView::Data2DPlotController::Data2DPlotControllerImpl Struct Reference
Collaboration diagram for ModelView::Data2DPlotController::Data2DPlotControllerImpl:
[legend]

Public Member Functions

 Data2DPlotControllerImpl (Data2DPlotController *master, QCPColorMap *color_map)
 
Data2DItemdataItem ()
 
void reset_colormap ()
 
void update_data_points ()
 

Public Attributes

QCPColorMap * color_map {nullptr}
 
Data2DPlotControllermaster {nullptr}
 

Detailed Description

Definition at line 33 of file data2dplotcontroller.cpp.

Constructor & Destructor Documentation

◆ Data2DPlotControllerImpl()

ModelView::Data2DPlotController::Data2DPlotControllerImpl::Data2DPlotControllerImpl ( Data2DPlotController master,
QCPColorMap *  color_map 
)
inline

Definition at line 36 of file data2dplotcontroller.cpp.

38  {
39  if (!color_map)
40  throw std::runtime_error("Uninitialised colormap in Data2DPlotController");
41  }

References ModelView::Data2DPlotController::Data2DPlotControllerImpl::color_map.

Member Function Documentation

◆ dataItem()

Data2DItem* ModelView::Data2DPlotController::Data2DPlotControllerImpl::dataItem ( )
inline

Definition at line 43 of file data2dplotcontroller.cpp.

43 { return master->currentItem(); }

References ModelView::ItemListener< T >::currentItem(), and ModelView::Data2DPlotController::Data2DPlotControllerImpl::master.

Referenced by ModelView::Data2DPlotController::Data2DPlotControllerImpl::update_data_points().

Here is the call graph for this function:

◆ reset_colormap()

void ModelView::Data2DPlotController::Data2DPlotControllerImpl::reset_colormap ( )
inline

◆ update_data_points()

void ModelView::Data2DPlotController::Data2DPlotControllerImpl::update_data_points ( )
inline

Definition at line 45 of file data2dplotcontroller.cpp.

46  {
48 
49  if (auto data_item = dataItem(); data_item) {
50  auto xAxis = data_item->xAxis();
51  auto yAxis = data_item->yAxis();
52  if (xAxis && yAxis) {
53  const int nbinsx = xAxis->size();
54  const int nbinsy = yAxis->size();
55 
56  color_map->data()->setSize(nbinsx, nbinsy);
57  color_map->data()->setRange(qcpRange(xAxis), qcpRange(yAxis));
58 
59  auto values = data_item->content();
60  for (int ix = 0; ix < nbinsx; ++ix)
61  for (int iy = 0; iy < nbinsy; ++iy)
62  color_map->data()->setCell(ix, iy,
63  values[static_cast<size_t>(ix + iy * nbinsx)]);
64 
65  auto [min, max] = std::minmax_element(std::begin(values), std::end(values));
66  color_map->setDataRange(QCPRange(*min, *max));
67  }
68  }
69  color_map->parentPlot()->replot();
70  }

References ModelView::Data2DPlotController::Data2DPlotControllerImpl::color_map, ModelView::Data2DPlotController::Data2DPlotControllerImpl::dataItem(), and ModelView::Data2DPlotController::Data2DPlotControllerImpl::reset_colormap().

Here is the call graph for this function:

Member Data Documentation

◆ color_map

◆ master

Data2DPlotController* ModelView::Data2DPlotController::Data2DPlotControllerImpl::master {nullptr}

The documentation for this struct was generated from the following file: