Loading...
Searching...
No Matches
addHydrogenProcessor.h
Go to the documentation of this file.
// -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//
#ifndef BALL_STRUCTURE_ADDHYDROGENPROCESSOR_H
#define BALL_STRUCTURE_ADDHYDROGENPROCESSOR_H
#ifndef BALL_CONCEPT_PROCESSOR_H
#include <BALL/CONCEPT/processor.h>
#endif
#ifndef BALL_MATHS_VECTOR3_H
#include <BALL/MATHS/vector3.h>
#endif
#include <vector>
namespace BALL
{
class Residue;
class Atom;
class Composite;
class BALL_EXPORT AddHydrogenProcessor
: public UnaryProcessor<Composite>
{
public:
AddHydrogenProcessor();
virtual ~AddHydrogenProcessor();
virtual bool start();
virtual Processor::Result operator() (Composite &composite);
Size getConnectivity(const Atom& atom) const;
void setRings(const vector<vector<Atom*> >& rings);
Size getNumberOfAddedHydrogens() const { return nr_hydrogens_;}
protected:
Processor::Result placePeptideBondH_(Residue* res);
Size countBondOrders(const Atom& atom) const;
void addHydrogen_(Atom& atom, Vector3 position);
bool isRingAtom_(const Atom& atom) const;
vector<Atom*> getPartners_(Atom& atom) const;
Vector3 getNormal_(const Vector3& v) const;
bool normalize_(Vector3& v) const;
bool hasMultipleBond_(const Atom& atom) const;
float getBondLength_(Position element) const;
private:
HashSet<const Atom*> ring_atoms_;
Position atom_nr_;
Atom* last_atom_;
Size nr_hydrogens_;
}; //class AddHydrogenProcessor
} //namespace BALL
#endif // BALL_STRUCTURE_ADDHYDROGENPROCESSOR_H
BALL_EXPORT
#define BALL_EXPORT
Definition COMMON/global.h:50
BALL::AddHydrogenProcessor::getNormal_
Vector3 getNormal_(const Vector3 &v) const
BALL::AddHydrogenProcessor::placePeptideBondH_
Processor::Result placePeptideBondH_(Residue *res)
BALL::AddHydrogenProcessor::AddHydrogenProcessor
AddHydrogenProcessor()
Default constructor.
BALL::AddHydrogenProcessor::isRingAtom_
bool isRingAtom_(const Atom &atom) const
BALL::AddHydrogenProcessor::getBondLength_
float getBondLength_(Position element) const
BALL::AddHydrogenProcessor::start
virtual bool start()
BALL::AddHydrogenProcessor::addHydrogen_
void addHydrogen_(Atom &atom, Vector3 position)
BALL::AddHydrogenProcessor::~AddHydrogenProcessor
virtual ~AddHydrogenProcessor()
Destructor.
BALL::AddHydrogenProcessor::hasMultipleBond_
bool hasMultipleBond_(const Atom &atom) const
BALL::AddHydrogenProcessor::setRings
void setRings(const vector< vector< Atom * > > &rings)
BALL::AddHydrogenProcessor::getConnectivity
Size getConnectivity(const Atom &atom) const
BALL::AddHydrogenProcessor::getNumberOfAddedHydrogens
Size getNumberOfAddedHydrogens() const
Definition addHydrogenProcessor.h:118
BALL::AddHydrogenProcessor::countBondOrders
Size countBondOrders(const Atom &atom) const
BALL::AddHydrogenProcessor::getPartners_
vector< Atom * > getPartners_(Atom &atom) const
BALL::AddHydrogenProcessor::normalize_
bool normalize_(Vector3 &v) const
BALL::Atom
Definition atom.h:90
BALL::Composite
Definition composite.h:74
BALL::HashSet
Definition hashSet.h:46
BALL::Processor::Result
int Result
Definition processor.h:36
BALL::Residue
Definition residue.h:38
BALL::UnaryProcessor< Composite >::UnaryProcessor
UnaryProcessor()
Definition processor.h:69
BALL
Definition constants.h:13
BALL::Size
BALL_SIZE_TYPE Size
Definition COMMON/global.h:114
BALL::Position
BALL_SIZE_TYPE Position
Definition COMMON/global.h:140
BALL::Vector3
TVector3< float > Vector3
Definition vector3.h:1084
processor.h
vector3.h