BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Protected Attributes | List of all members
BALL::ReconstructFragmentProcessor Class Reference

#include <BALL/STRUCTURE/reconstructFragmentProcessor.h>

Inheritance diagram for BALL::ReconstructFragmentProcessor:
BALL::UnaryProcessor< Fragment > BALL::UnaryFunctor< Fragment, Processor::Result >

Public Member Functions

Constructors and Destructors
 ReconstructFragmentProcessor ()
 
 ReconstructFragmentProcessor (const FragmentDB &db)
 
 ReconstructFragmentProcessor (const ReconstructFragmentProcessor &db)
 
virtual ~ReconstructFragmentProcessor ()
 
Processor-related methods
virtual bool start ()
 
virtual bool finish ()
 
virtual Processor::Result operator() (Fragment &)
 
Accessors
list< Atom * > & getInsertedAtoms ()
 
Size getNumberOfInsertedAtoms () const
 
void setFragmentDB (const FragmentDB &fragment_db)
 
const FragmentDBgetFragmentDB () const
 
- Public Member Functions inherited from BALL::UnaryProcessor< Fragment >
 UnaryProcessor ()
 
 UnaryProcessor (const UnaryProcessor &)
 
virtual ~UnaryProcessor ()
 

Static Public Member Functions

Static methods.
static Matrix4x4 mapThreeVectors (const Vector3 &w1, const Vector3 &w2, const Vector3 &w3, const Vector3 &v1, const Vector3 &v2, const Vector3 &v3)
 
static Triple< bool, const
Atom *, const Atom * > 
getTwoReferenceAtoms (const Atom &ref_center_atom, const HashSet< const Atom * > &allowed)
 
static list< Atom * > reconstructFragment (Fragment &frag, const Fragment &tplate)
 

Protected Attributes

const FragmentDBfragment_db_
 
list< Atom * > inserted_atoms_
 

Additional Inherited Members

- Public Types inherited from BALL::UnaryFunctor< Fragment, Processor::Result >
typedef Processor::Result result_type
 
typedef Fragment argument_type
 
typedef Fragmentargument_reference
 
typedef const Fragmentconst_argument_reference
 
typedef Fragmentargument_pointer
 
typedef const Fragmentconst_argument_pointer
 

Detailed Description

ReconstructFragmentProcessor.

Definition at line 33 of file reconstructFragmentProcessor.h.

Constructor & Destructor Documentation

BALL::ReconstructFragmentProcessor::ReconstructFragmentProcessor ( )

Default constructor. Create a new ReconstructFragmentProcessor, which is not yet bound to a FragmentDB , i.e. which cannot yet reconstruct fragments.

BALL::ReconstructFragmentProcessor::ReconstructFragmentProcessor ( const FragmentDB db)

Detailed constructor. Create a new ReconstructFragmentProcessor, which is bound to the FragmentDB db.

BALL::ReconstructFragmentProcessor::ReconstructFragmentProcessor ( const ReconstructFragmentProcessor db)

Copy Constructor.

virtual BALL::ReconstructFragmentProcessor::~ReconstructFragmentProcessor ( )
virtual

Destructor

Member Function Documentation

virtual bool BALL::ReconstructFragmentProcessor::finish ( )
virtual

Processor finish method

Reimplemented from BALL::UnaryProcessor< Fragment >.

const FragmentDB* BALL::ReconstructFragmentProcessor::getFragmentDB ( ) const

Return the current fragment database.

list<Atom*>& BALL::ReconstructFragmentProcessor::getInsertedAtoms ( )

Returns a list of inserted atoms.

Size BALL::ReconstructFragmentProcessor::getNumberOfInsertedAtoms ( ) const

Returns number of recently inserted atoms.

static Triple<bool, const Atom*, const Atom*> BALL::ReconstructFragmentProcessor::getTwoReferenceAtoms ( const Atom ref_center_atom,
const HashSet< const Atom * > &  allowed 
)
static

Search for the next atoms suitable as reference points. This method performs a BFS-like search for atoms in the same residue the ref_center_atom is in. It will consider only atoms contained in the hash set allowed.

static Matrix4x4 BALL::ReconstructFragmentProcessor::mapThreeVectors ( const Vector3 w1,
const Vector3 w2,
const Vector3 w3,
const Vector3 v1,
const Vector3 v2,
const Vector3 v3 
)
static

Map three vectors onto each other. This method computes the transformation which move the three points given in v1, v2, and v3 onto the the three reference points w1, w2, and w3. v1 is always mapped exactly onto w1, and the plane spanned by v1, v2, and v3 is always mapped onto the plane spanned by the three reference points. Furthermore, v2 is mapped such that the vector connecting v1 and v2 is parallel to the vector connecting w1 and w2 after the transformation. Well-defined, but less meaningful transformations are obtained if any of the two point sets is co-linear.

virtual Processor::Result BALL::ReconstructFragmentProcessor::operator() ( Fragment )
virtual

Processor applicaiton method. Tries to reconstruct the current fragment from a matching fragment from the current FragmentDB .

Reimplemented from BALL::UnaryProcessor< Fragment >.

static list<Atom*> BALL::ReconstructFragmentProcessor::reconstructFragment ( Fragment frag,
const Fragment tplate 
)
static
void BALL::ReconstructFragmentProcessor::setFragmentDB ( const FragmentDB fragment_db)

Set the fragment database

virtual bool BALL::ReconstructFragmentProcessor::start ( )
virtual

Processor start method

Reimplemented from BALL::UnaryProcessor< Fragment >.

Member Data Documentation

const FragmentDB* BALL::ReconstructFragmentProcessor::fragment_db_
protected

Definition at line 151 of file reconstructFragmentProcessor.h.

list<Atom*> BALL::ReconstructFragmentProcessor::inserted_atoms_
protected

Definition at line 155 of file reconstructFragmentProcessor.h.