/// This method performs the actual removal of the i-th scatterer.
void CompositeBraggScatterer::removeScattererImplementation(size_t i) {
  if (i >= nScatterers()) {
    throw std::out_of_range("Index is out of range.");
  }

  m_scatterers.erase(m_scatterers.begin() + i);
}
Ejemplo n.º 2
0
/// Returns the i-th scatterer or throws an std::out_of_range exception.
BraggScatterer_sptr CompositeBraggScatterer::getScatterer(size_t i) const {
  if (i >= nScatterers()) {
    throw std::out_of_range("Index is out of range.");
  }

  return m_scatterers[i];
}
/// Removes all scatterers.
void CompositeBraggScatterer::removeAllScatterers() {
  while (nScatterers() > 0) {
    removeScattererImplementation(0);
  }

  redeclareProperties();
}
Ejemplo n.º 4
0
/// Removes the i-th scatterer from the composite or throws an std::out_of_range
/// exception.
void CompositeBraggScatterer::removeScatterer(size_t i) {
  if (i >= nScatterers()) {
    throw std::out_of_range("Index is out of range.");
  }

  m_scatterers.erase(m_scatterers.begin() + i);

  redeclareProperties();
}
Ejemplo n.º 5
0
/// Removes all scatterers.
void CompositeBraggScatterer::removeAllScatterers() {
  while (nScatterers() > 0) {
    removeScatterer(0);
  }
}