Пример #1
0
bool
Customizable::Socket::HasEmptySlot() const
{
	if (fMaxConnections < 0 || CountConnections() < fMaxConnections)
		return true;
	return false;
}
Пример #2
0
  // Cчитает число связей от атомами, подходящими под фильтр from.
  // до атомов, подходящих под фильтр to
  // Подходит как для расчета Cn-Cm, где n != m, так и для Cn-Cn, Cn-OH и т.п.
  size_t CountConnections(const VertexFilter& from, const VertexFilter& to) const
  {
    if (from == to)
    {
      return CountConnections(from);
    }
        
    std::vector<Vertex> fromVertices = findAll(from);
    std::vector<Vertex> toVertices = findAll(to);
    
    size_t result = 0;
    for (size_t i=0; i<fromVertices.size(); ++i)
    {
      for (size_t j=0; j<toVertices.size(); ++j)
      {
	result += Distance(fromVertices[i], toVertices[j]);
      }
    }
    
    return result;
  }