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