15#ifndef _RBTINTERACTIONGRID_H_
16#define _RBTINTERACTIONGRID_H_
18#include "rxdock/Atom.h"
19#include "rxdock/BaseGrid.h"
21#include <nlohmann/json.hpp>
23using json = nlohmann::json;
31 enum eLP { NONE, PLANE, LONEPAIR };
33 Atom *pAtom3 =
nullptr, eLP LP = NONE)
34 : m_pAtom1(pAtom1), m_pAtom2(pAtom2), m_pAtom3(pAtom3), m_LP(LP) {
35 _RBTOBJECTCOUNTER_CONSTR_(
"InteractionCenter");
42 Atom *GetAtom1Ptr()
const {
return m_pAtom1; }
43 Atom *GetAtom2Ptr()
const {
return m_pAtom2; }
44 Atom *GetAtom3Ptr()
const {
return m_pAtom3; }
45 eLP LP()
const {
return m_LP; }
48 AtomRList GetAtomList()
const;
49 bool isSelected()
const;
55 void AccumulateAtomList(
const Atom *pAtom, AtomRList &atomList)
const;
65typedef std::vector<InteractionCenter *>
66 InteractionCenterList;
67typedef InteractionCenterList::iterator InteractionCenterListIter;
68typedef InteractionCenterList::const_iterator InteractionCenterListConstIter;
80 :
public std::function<bool(InteractionCenter *)> {
84 return pIC->isSelected();
96 : d_sq(dd * dd), a(pIC1->GetAtom1Ptr()) {}
98 return Length2(pIC2->GetAtom1Ptr()->GetCoords(), a->GetCoords()) < d_sq;
118typedef std::vector<InteractionCenterList> InteractionListMap;
120typedef InteractionListMap::iterator InteractionListMapIter;
121typedef InteractionListMap::const_iterator InteractionListMapConstIter;
126 static const std::string _CT;
131 unsigned int NY,
unsigned int NZ,
unsigned int NPad = 0);
156 virtual void Print(std::ostream &ostr)
const;
165 const InteractionCenterList &GetInteractionList(
unsigned int iXYZ)
const;
166 const InteractionCenterList &GetInteractionList(
const Coord &c)
const;
172 void ClearInteractionLists();
173 void UniqueInteractionLists();
180 void OwnPrint(std::ostream &ostr)
const;
202 InteractionListMap m_intnMap;
204 const InteractionCenterList m_emptyList;
Definition InteractionGrid.h:71
Definition InteractionGrid.h:29
Definition InteractionGrid.h:123
Definition InteractionGrid.h:103
Definition SmartPointer.h:48
Definition InteractionGrid.h:80
Definition InteractionGrid.h:90