19 #ifndef OST_ENTITY_IMPL_HH
20 #define OST_ENTITY_IMPL_HH
25 #include <boost/enable_shared_from_this.hpp>
51 namespace ost {
namespace mol {
namespace impl {
83 public boost::enable_shared_from_this<EntityImpl>
117 unsigned char bond_order);
179 const ResNum& residue)
const;
183 const String& atom_name)
const;
276 int xcs_editor_count_;
277 int ics_editor_count_;
281 unsigned long next_index_;
285 template <
bool always_true>
void TraceDirectionality()
ResidueImplPtr FindResidue(const String &chain_name, const ResNum &residue) const
std::vector< FragmentImplP > FragmentImplList
geom::Vec3 GetCenterOfAtoms() const
geom::Vec3 GetCenterOfMass() const
std::map< ResidueImpl *, ResidueImplPtr > ResidueImplMap
std::vector< ChainImplPtr > ChainImplList
std::map< ConnectorImpl *, ConnectorImplP > ConnectorImplMap
Real GetAngleICS(const AtomImplPtr &a1, const AtomImplPtr &a2, const AtomImplPtr &a3) const
void DeleteAtom(const AtomImplPtr &atom)
const ChainImplList & GetChainList() const
void ApplyTransform(const geom::Transform &t)
void UpdateTransformedPos()
int GetAtomCount() const
Get total number of atoms of all chains belonging to this entity.
const String & GetName() const
void MarkOrganizerDirty()
bool HasTransform() const
Real GetAngleXCS(const AtomImplPtr &a1, const AtomImplPtr &a2, const AtomImplPtr &a3) const
void Apply(EntityVisitor &v)
void RenumberAllResidues(int start, bool keep_spacing)
ConnectorImplP Connect(const AtomImplPtr &first, const AtomImplPtr &second, Real len, Real theta, Real phi, unsigned char bond_order)
boost::shared_ptr< ResidueImpl > ResidueImplPtr
int GetBondCount() const
Get total number of bonds belonging to this entity.
boost::shared_ptr< ConnectorImpl > ConnectorImplP
AtomImplPtr FindAtom(const String &chain_name, const ResNum &residue, const String &atom_name) const
ChainImplPtr FindChain(const String &name) const
EntityImplPtr Copy()
copy entity
std::map< EntityObserver *, EntityObserverPtr > EntityObserverMap
impl::ChainImplList::iterator GetChain(const String &name)
boost::shared_ptr< ChainImpl > ChainImplPtr
ResidueImplPtr CreateResidue(const ChainImplPtr &cp, const ResNum &n, const ResidueKey &k)
TorsionImplP FindTorsion(const AtomImplPtr &a1, const AtomImplPtr &a2, const AtomImplPtr &a3, const AtomImplPtr &a4) const
Search for torsion.
pointer_it< ChainImplPtr > GetChainIter(const String &name)
void RenameChain(ChainImplPtr chain, const String &new_name)
void ReorderAllResidues()
Real GetAngle(const AtomImplPtr &a1, const AtomImplPtr &a2, const AtomImplPtr &a3) const
void DeleteFromConnMap(const ConnectorImplP &conn)
boost::shared_ptr< AtomImpl > AtomImplPtr
TorsionImplMap & GetTorsionMap()
void UpdateOrganizerIfNeeded()
boost::shared_ptr< EntityImpl > EntityImplPtr
std::map< TorsionImpl *, TorsionImplP > TorsionImplMap
EntityView Select(const EntityHandle &h, const Query &q) const
SpatialOrganizer< AtomImplPtr > SpatialAtomOrganizer
void AttachObserver(const EntityObserverPtr &o)
boost::shared_ptr< TorsionImpl > TorsionImplP
Three dimensional vector class, using Real precision.
std::map< AtomImpl *, AtomImplPtr > AtomImplMap
geom::AlignedCuboid GetBounds() const
returns the axis-aligned bounding box of the entity
std::vector< BondHandle > BondHandleList
bool SetAngle(const AtomImplPtr &a1, const AtomImplPtr &a2, const AtomImplPtr &a3, Real angle)
ChainImplPtr InsertChain(const String &cname)
EntityView CreateFullView(const EntityHandle &h) const
void SetDefaultQueryFlags(QueryFlags f)
const geom::Transform & GetTransform() const
void RenumberChain(const String &name, int start, bool keep_spacing)
QueryFlags GetDefaultQueryFlags() const
TorsionImplP AddTorsion(const String &name, const AtomImplPtr &a1, const AtomImplPtr &a2, const AtomImplPtr &a3, const AtomImplPtr &a4)
std::vector< AtomImplPtr > AtomImplList
AtomImplList FindWithin(const geom::Vec3 &pos, Real radius)
void SetName(const String &ent_name)
int GetChainCount() const
Get number of chains.
base class for the implementation
void Swap(EntityImpl &impl)
AtomImplPtr CreateAtom(const ResidueImplPtr &rp, const String &name, const geom::Vec3 &pos, const String &ele)
void DetachObserver(const EntityObserverPtr &o)
void SetTransform(const geom::Transform &t)
int GetResidueCount() const
Get total number of residues of all chains belonging to this entity.
boost::shared_ptr< EntityObserver > EntityObserverPtr
void DeleteChain(const ChainImplPtr &chain)
ChainImplList & GetChainList()
mol::BondHandleList GetBondList() const
Get list of bonds.