#include <reconstructFragmentProcessor.h>
Public Member Functions |
|
Constructors and Destructors
|
|
ReconstructFragmentProcessor () | |
Default constructor. |
|
ReconstructFragmentProcessor (const FragmentDB &db) | |
Detailed constructor. |
|
ReconstructFragmentProcessor (const ReconstructFragmentProcessor &db) | |
Copy Constructor. |
|
virtual | ~ReconstructFragmentProcessor () |
Destructor. |
|
Processor-related methods
|
|
virtual bool | start () |
Processor
start method. |
|
virtual bool | finish () |
Processor
finish method. |
|
virtual Processor::Result | operator() (Fragment &) |
Processor
applicaiton method. |
|
Accessors
|
|
list< Atom * > & | getInsertedAtoms () |
Returns a list of inserted
atoms. |
|
Size | getNumberOfInsertedAtoms () const |
Returns number of recently inserted
atoms. |
|
void | setFragmentDB (const FragmentDB &fragment_db) |
Set the fragment
database. |
|
const FragmentDB * | getFragmentDB () const |
Return the current fragment
database. |
|
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) |
Map three vectors onto each other.
|
|
static Triple< bool,
const Atom *, const Atom * > |
getTwoReferenceAtoms (const Atom &ref_center_atom, const HashSet< const Atom * > &allowed) |
Search for the next atoms suitable
as reference points. |
|
static list< Atom * > | reconstructFragment (Fragment &frag, const Fragment &tplate) |
Protected Attributes |
|
const FragmentDB * | fragment_db_ |
list< Atom * > | inserted_atoms_ |
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
.
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 >.