19 #ifndef OST_ATOM_IMPL_HH
20 #define OST_ATOM_IMPL_HH
22 #include <boost/enable_shared_from_this.hpp>
38 namespace ost {
namespace mol {
namespace impl {
50 public boost::enable_shared_from_this<AtomImpl> {
81 return prim_connector_;
85 return connector_list_;
89 return connector_list_;
105 return connector_list_.size()+(prim_connector_ ? 1 : 0);
213 int n,
unsigned int& c);
220 bool delete_other=
true);
257 void set_state_bit(
unsigned int bit,
bool state)
259 unsigned int mask = 0x1<<bit;
267 bool get_state_bit(
unsigned int bit)
const {
268 unsigned int mask = 0x1<<bit;
269 return (state_ & mask)!=0;
272 unsigned long index_;
Three dimensional vector class, using Real precision.
base class for the implementation
String GetStringProperty(Prop::ID prop_id) const
EntityImplPtr GetEntity() const
void SetFragment(FragmentImplP fragment)
int GetIntProperty(Prop::ID prop_id) const
unsigned int GetState() const
void SetHetAtom(bool het)
void Apply(EntityVisitor &h)
const geom::Mat3 & GetAnisou() const
const ConnectorImplList & GetSecondaryConnectors() const
ConnectorImplList & GetSecondaryConnectors()
void SetCharge(Real charge)
unsigned long GetIndex() const
geom::Vec3 & TransformedPos()
bool HasDefaultProps() const
void SetBFactor(Real factor)
void SetPrimaryConnector(const ConnectorImplP &bp)
String GetQualifiedName() const
const ConnectorImplP & GetPrimaryConnector() const
void DeleteAllConnectors()
ResidueImplPtr GetResidue() const
const String & Name() const
void SetIndex(unsigned long index)
AtomImpl(const EntityImplPtr &ent, const ResidueImplPtr &res, const String &name, const geom::Vec3 &pos, const String &ele, unsigned long index)
void ClearDirectionality()
void DeleteConnector(const ConnectorImplP &conn, bool delete_other=true)
const geom::Vec3 & OriginalPos() const
void SetOccupancy(Real occ)
void TraceDirectionality(FragmentImplP frag, ConnectorImplP conn, int n, unsigned int &c)
trace directionality
void SetElement(const String &ele)
const geom::Vec3 & TransformedPos() const
geom::Vec3 & OriginalPos()
void SetRadius(Real radius)
const String & GetElement() const
Real GetOccupancy() const
const String & GetName() const
void SetAnisou(const geom::Mat3 &anisou)
int GetConnectorCount() const
void AddSecondaryConnector(const ConnectorImplP &bp)
Real GetFloatProperty(Prop::ID prop_id) const
static AtomProp * GetDefaultProps(const String &ele)
ConnectorImplP GetConnector(const AtomImplPtr &a, const AtomImplPtr &b)
bool ConnectorExists(const AtomImplPtr &a, const AtomImplPtr &b)
boost::shared_ptr< AtomImpl > AtomImplPtr
boost::weak_ptr< ResidueImpl > ResidueImplW
std::ostream & operator<<(std::ostream &o, const AtomImplPtr ap)
boost::shared_ptr< EntityImpl > EntityImplPtr
boost::shared_ptr< FragmentImpl > FragmentImplP
std::list< ConnectorImplP > ConnectorImplList
boost::shared_ptr< ConnectorImpl > ConnectorImplP
boost::shared_ptr< ResidueImpl > ResidueImplPtr