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_;
101 return connector_list_.size()+(prim_connector_ ? 1 : 0);
209 int n,
unsigned int& c);
216 bool delete_other=
true);
251 void set_state_bit(
unsigned int bit,
bool state)
253 unsigned int mask = 0x1<<bit;
261 bool get_state_bit(
unsigned int bit)
const {
262 unsigned int mask = 0x1<<bit;
263 return (state_ & mask)!=0;
266 unsigned long index_;
EntityImplPtr GetEntity() const
void SetIndex(unsigned long index)
unsigned int GetState() const
Real GetOccupancy() const
void SetPrimaryConnector(const ConnectorImplP &bp)
const geom::Vec3 & OriginalPos() const
int GetIntProperty(Prop::ID prop_id) const
unsigned long GetIndex() const
bool HasDefaultProps() const
const String & GetName() const
const String & GetElement() const
const String & Name() const
void SetHetAtom(bool het)
boost::shared_ptr< FragmentImpl > FragmentImplP
String GetStringProperty(Prop::ID prop_id) const
void TraceDirectionality(FragmentImplP frag, ConnectorImplP conn, int n, unsigned int &c)
trace directionality
void SetElement(const String &ele)
boost::shared_ptr< ResidueImpl > ResidueImplPtr
boost::shared_ptr< ConnectorImpl > ConnectorImplP
int GetConnectorCount() const
void SetCharge(Real charge)
boost::weak_ptr< ResidueImpl > ResidueImplW
const geom::Vec3 & TransformedPos() const
void SetBFactor(Real factor)
String GetQualifiedName() const
const ConnectorImplP & GetPrimaryConnector() const
void SetAnisou(const geom::Mat3 &anisou)
ResidueImplPtr GetResidue() const
void ClearDirectionality()
boost::shared_ptr< AtomImpl > AtomImplPtr
void AddSecondaryConnector(const ConnectorImplP &bp)
void SetRadius(Real radius)
boost::shared_ptr< EntityImpl > EntityImplPtr
geom::Vec3 & TransformedPos()
static AtomProp * GetDefaultProps(const String &ele)
void DeleteAllConnectors()
Three dimensional vector class, using Real precision.
bool ConnectorExists(const AtomImplPtr &a, const AtomImplPtr &b)
Real GetFloatProperty(Prop::ID prop_id) const
AtomImpl(const EntityImplPtr &ent, const ResidueImplPtr &res, const String &name, const geom::Vec3 &pos, const String &ele, unsigned long index)
void SetOccupancy(Real occ)
void Apply(EntityVisitor &h)
void DeleteConnector(const ConnectorImplP &conn, bool delete_other=true)
geom::Vec3 & OriginalPos()
const geom::Mat3 & GetAnisou() const
std::list< ConnectorImplP > ConnectorImplList
base class for the implementation
const ConnectorImplList & GetSecondaryConnectors() const
ConnectorImplP GetConnector(const AtomImplPtr &a, const AtomImplPtr &b)
std::ostream & operator<<(std::ostream &o, const AtomImplPtr ap)