Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Member Functions | Protected Attributes | Private Types | Private Attributes | List of all members
core::kinematics::tree::Atom_ Class Reference

Kinematics Atom abstract base class. More...

#include <Atom_.hh>

Inheritance diagram for core::kinematics::tree::Atom_:
Inheritance graph
[legend]
Collaboration diagram for core::kinematics::tree::Atom_:
Collaboration graph
[legend]

Public Member Functions

virtual ~Atom_ ()
 Destructor. More...
 
virtual void set_weak_ptr_to_self (AtomAP weak_ptr)
 Set the weak-pointer-to-self for this atom. Must be called after the Atom is created and put inside of an owning_ptr. Required for atoms to be able to hold pointers to their parents: parents must give child atoms weak pointers to themselves. More...
 
void update_xyz_coords ()
 update xyz position of this atom and its offspring atoms More...
 
void update_internal_coords (bool const recursive)
 update internal coords of this atom and its offspring atoms (if recursive) More...
 
bool keep_dof_fixed (DOF_Type const ) const
 recursively add all atoms into the AtomPointers map More...
 
Real dihedral_between_bonded_children (AtomCOP child1, AtomCOP child2) const
 dihedral angle between two bonded children to this atom More...
 
void show () const
 dump out AtomID for this atom, its parent and all its offspring More...
 
void show (int const &n_level) const
 dump out AtomID for this atom, its parent and all its offspring up to n_level More...
 
void update_domain_map (int &current_color, int &biggest_color, DomainMap &domain_map, AtomID_Mask const &dof_moved, AtomID_Mask const &atom_moved) const
 update domain map More...
 
Atoms_ConstIterator atoms_begin () const
 starting const iterator of the children atom list More...
 
Atoms_ConstIterator atoms_end () const
 ending const iterator of the children atom list More...
 
Atoms_Iterator atoms_begin ()
 starting iterator of the children atom list More...
 
Atoms_Iterator atoms_end ()
 ending iterator of the children atom list More...
 
Size n_atom () const
 number of children atoms More...
 
void append_atom (AtomOP)
 append an atom as this atom's child More...
 
void delete_atom (AtomOP)
 remove an atom from this atom's children More...
 
void insert_atom (AtomOP)
 insert an atom as this atom's child More...
 
void insert_atom (AtomOP, int const )
 tries to insert at the position specified by the second argument More...
 
void replace_atom (AtomOP const old_atom, AtomOP const new_atom)
 replace the old atom by the new atom in the child atom list More...
 
AtomCOP get_nonjump_atom (Size const i) const
 get non-jump atom by its index from the children atoms list More...
 
Size n_children () const
 delete this atom and all its children More...
 
Size n_nonjump_children () const
 number of the non-jump child atoms More...
 
AtomCOP child (Size const k) const
 get a child atom by index (const method) More...
 
AtomOP child (Size const k)
 get a child atom by index More...
 
Size child_index (AtomCOP child) const
 the atom-index of this child More...
 
bool downstream (AtomCOP atom1) const
 whether atom1 is downstream of this atom. More...
 
AtomID const & id () const
 Atom identifier. More...
 
void id (AtomID const &id_in)
 AtomID assignment. More...
 
AtomID const & atom_id () const
 Atom identifier. More...
 
Position const & position () const
 Position. More...
 
void position (Position const &position_a)
 Position assignment. More...
 
Position const & xyz () const
 Position. More...
 
void xyz (Position const &position_a)
 Position assignment. More...
 
Length const & x () const
 x coordinate More...
 
Length const & y () const
 y coordinate More...
 
Length const & z () const
 z coordinate More...
 
Length distance (Atom const &atom) const
 Distance to an Atom. More...
 
Length distance_squared (Atom const &atom) const
 Distance squared to an Atom. More...
 
AtomCOP parent () const
 Parent atom pointer. More...
 
void parent (AtomAP parent_in)
 parent assignment More...
 
AtomOP parent ()
 Parent atom pointer. More...
 
Stub get_stub () const
 stub centerd at this atom More...
 
Stub get_input_stub () const
 stub used to build this atom More...
 
AtomID const & stub_atom1_id () const
 stub atom1 's id More...
 
AtomID const & stub_atom2_id () const
 stub atom2's id More...
 
AtomID const & stub_atom3_id () const
 stub atom3's id More...
 
AtomCOP input_stub_atom0 () const
 the center of the input stub for refolding this atom More...
 
AtomCOP input_stub_atom1 () const
 the first atom to construct the input stub for refolding this atom More...
 
AtomCOP input_stub_atom2 () const
 the second atom to construct the input stub for refolding this atom More...
 
AtomCOP input_stub_atom3 () const
 the third atom to construct the input stub for refolding this atom More...
 
AtomID const & input_stub_atom0_id () const
 input stub atom0's id More...
 
AtomID const & input_stub_atom1_id () const
 input stub atom1's id More...
 
AtomID const & input_stub_atom2_id () const
 input stub atom2's id More...
 
AtomID const & input_stub_atom3_id () const
 input stub atom3's id More...
 
AtomCOP previous_sibling () const
 routines for navigating the tree find the sibling atom before itself More...
 
AtomCOP previous_child (AtomCOP child) const
 find the child atom before this child in the list More...
 
AtomOP next_child (AtomCOP child)
 find the child atom after this child in the list More...
 
bool stub_defined () const
 whether a Stub can be defined for this atom More...
 
virtual void dfs (AtomDOFChangeSet &changeset, ResidueCoordinateChangeList &res_change_list, Size const start_atom_index) const
 base class implementation that traverses the subtree routed at this node in the depth-first traversal of the atoms requiring coordinate updates. More...
 
- Public Member Functions inherited from core::kinematics::tree::Atom
virtual ~Atom ()
 Destructor. More...
 
virtual void update_xyz_coords (Stub &stub)=0
 update xyz coords from stub and internal coords and More...
 
virtual void update_internal_coords (Stub &stub, bool const recursive=true)=0
 update internal coords from stub and xyz coords More...
 
virtual void update_stub (Stub &stub) const =0
 update atom_pointer map for AtomTree More...
 
virtual void copy_coords (Atom const &src)=0
 copy DOFs and xyz coords from src Atom More...
 
virtual Real dof (DOF_Type const type) const =0
 get dof More...
 
virtual void set_dof (DOF_Type const type, Real const value)=0
 set dof, use "set_" syntax since we have multiple dof's More...
 
virtual void set_dof (DOF_Type const type, Real const value, AtomDOFChangeSet &set)=0
 set dof, use "set_" syntax since we have multiple dof's – for use in output-sensitive refold routine More...
 
virtual Jump const & jump () const =0
 get Jump More...
 
virtual void jump (Jump const &jump_in)=0
 set Jump More...
 
virtual void jump (Jump const &jump_in, AtomDOFChangeSet &set)=0
 set Jump – for use in output-sensitive refolding More...
 
virtual AtomOP clone (AtomAP parent_in, AtomPointer2D &atom_pointer) const =0
 copy atom with new memory allocation More...
 
virtual void setup_min_map (DOF_ID &last_torsion, DOF_ID_Mask const &move_map, MinimizerMapBase &min_map) const =0
 
virtual void get_dof_axis_and_end_pos (Vector &axis, Position &end_pos, DOF_Type const type) const =0
 
virtual bool is_jump () const =0
 atom is a jump atom? More...
 
virtual bool keep_1st_child_pos () const =0
 when other atoms are inserted insert after 1st child if available. –> this enables us to keep a stub of Downstream Jump atoms inside a single residue More...
 
virtual AtomCOP stub_atom1 () const =0
 
virtual AtomCOP stub_atom2 () const =0
 
virtual AtomCOP stub_atom3 () const =0
 

Protected Member Functions

 Atom_ ()
 Default constructor. More...
 
 Atom_ (Atom_ const &atom)
 Copy constructor. More...
 
Atom_operator= (Atom_ const &atom)
 Copy assignment. More...
 
AtomAP this_weak_ptr ()
 Read access to the replacement "this" pointer. More...
 
AtomCAP this_weak_ptr () const
 Read access to the replacement "this" pointer. More...
 
void update_child_torsions (AtomOP const child)
 when subtrees have changed their coordinates More...
 
Atoms_ConstIterator nonjump_atoms_begin () const
 constant iterator of the first non-jump (bonded) atom in the vector of children atoms. More...
 
Atoms_Iterator nonjump_atoms_begin ()
 iterator of the first non-jump (bonded) atom in the vector of children atoms. More...
 
void abort_bad_call () const
 helper function to abort if something is wrong in atom tree More...
 
virtual void transform_Ax_plus_b_recursive (Matrix const &A, Vector const &b, ResidueCoordinateChangeList &res_change_list)
 Transform atom and children by linear transformation. More...
 
void get_path_from_root (utility::vector1< AtomCOP > &path) const
 
bool atom_is_on_path_from_root (AtomCOP atm) const
 
void note_dof_change (AtomDOFChangeSet &changset)
 Records this atom as having a changed DOF in the input list of Atoms with changed DOFs. For use in output-sensitive refold subroutine. More...
 
void note_xyz_uptodate ()
 To ensure proper function of the output-senstive refold subroutine, derived classes must invoke this function during their update_xyz_coord subroutines. More...
 
Size dof_refold_index () const
 read access for derived classes More...
 
- Protected Member Functions inherited from core::kinematics::tree::Atom
 Atom ()
 Default constructor. More...
 
 Atom (Atom const &)
 Copy constructor. More...
 
Atomoperator= (Atom const &)
 Copy assignment. More...
 

Protected Attributes

AtomAP this_weak_ptr_
 Each atom must hold a weak pointer to itself, and this weak pointer must be given to the atom at its construction. More...
 
AtomID atom_id_
 Atom ID. More...
 
AtomAP parent_
 Associated conformation Atom. More...
 
PointPosition position_
 xyz More...
 
Atoms atoms_
 Children atom pointers. More...
 

Private Types

typedef Atom Super
 

Private Attributes

Size dof_refold_index_
 Track my position in my owner's list of Atoms with modified DOFs. 0 when my dofs have not changed since the last update_coords. More...
 

Additional Inherited Members

- Public Types inherited from core::kinematics::tree::Atom
typedef PointPosition Position
 
typedef utility::vector0< AtomOPAtoms
 
typedef Atoms::ConstIterator Atoms_ConstIterator
 
typedef Atoms::Iterator Atoms_Iterator
 
typedef numeric::xyzMatrix< RealMatrix
 
typedef id::DOF_Type DOF_Type
 
typedef id::DOF_ID DOF_ID
 
typedef id::AtomID AtomID
 
typedef id::AtomID_Mask AtomID_Mask
 
typedef id::DOF_ID_Mask DOF_ID_Mask
 
typedef void iterator_category
 
typedef void difference_type
 

Detailed Description

Kinematics Atom abstract base class.

Member Typedef Documentation

Constructor & Destructor Documentation

core::kinematics::tree::Atom_::Atom_ ( )
inlineprotected

Default constructor.

References atoms_.

core::kinematics::tree::Atom_::Atom_ ( Atom_ const &  atom)
inlineprotected

Copy constructor.

Note
Copies value and type state but not context state

References atoms_.

virtual core::kinematics::tree::Atom_::~Atom_ ( )
inlinevirtual

Destructor.

Member Function Documentation

void core::kinematics::tree::Atom_::abort_bad_call ( ) const
protected

helper function to abort if something is wrong in atom tree

Referenced by core::kinematics::tree::BondedAtom::jump().

void core::kinematics::tree::Atom_::append_atom ( AtomOP  atom)
virtual

append an atom as this atom's child

if the child atom is a jump atom, put it before all the non-jump children atoms but after all the children jump atoms. Otherwise, put it at the end of the children atom list.

Implements core::kinematics::tree::Atom.

References atoms_, nonjump_atoms_begin(), and this_weak_ptr_.

AtomID const& core::kinematics::tree::Atom_::atom_id ( ) const
inlinevirtual
bool core::kinematics::tree::Atom_::atom_is_on_path_from_root ( AtomCOP  atm) const
protectedvirtual

Implements core::kinematics::tree::Atom.

References parent_.

Atoms_ConstIterator core::kinematics::tree::Atom_::atoms_begin ( ) const
inlinevirtual
Atoms_Iterator core::kinematics::tree::Atom_::atoms_begin ( )
inlinevirtual

starting iterator of the children atom list

Implements core::kinematics::tree::Atom.

References atoms_.

Atoms_ConstIterator core::kinematics::tree::Atom_::atoms_end ( ) const
inlinevirtual
Atoms_Iterator core::kinematics::tree::Atom_::atoms_end ( )
inlinevirtual

ending iterator of the children atom list

Implements core::kinematics::tree::Atom.

References atoms_.

AtomCOP core::kinematics::tree::Atom_::child ( Size const  k) const
virtual

get a child atom by index (const method)

Implements core::kinematics::tree::Atom.

References atoms_.

Referenced by delete_atom(), downstream(), next_child(), and previous_child().

AtomOP core::kinematics::tree::Atom_::child ( Size const  k)
virtual

get a child atom by index

Implements core::kinematics::tree::Atom.

References atoms_.

Size core::kinematics::tree::Atom_::child_index ( AtomCOP  child) const
virtual

the atom-index of this child

Implements core::kinematics::tree::Atom.

References atoms_.

void core::kinematics::tree::Atom_::delete_atom ( AtomOP  child)
virtual

remove an atom from this atom's children

only unlink the child atom from this atom (parent). No recursive operation or freeing memory( use Atom_::erase() to free up memory for an atom and all its children

Implements core::kinematics::tree::Atom.

References atoms_, and child().

void core::kinematics::tree::Atom_::dfs ( AtomDOFChangeSet changeset,
ResidueCoordinateChangeList res_change_list,
Size const  start_atom_index 
) const
virtual

base class implementation that traverses the subtree routed at this node in the depth-first traversal of the atoms requiring coordinate updates.

the "start atom index" is used to determine which subtrees have already been examined. The atom tree guarantees that the dfs's occur in increasing order by dof refold indices. If this atom has a dof refold index less than the start atom index, then a dfs has previously been launched from this node and the recursion must stop: subtrees must be visited at most once, or running time grows quadratically in the number of atoms in the tree. The atom is responsible for handing the start atom index down to its children in the recursion (if it continues recursing).

Implements core::kinematics::tree::Atom.

Reimplemented in core::kinematics::tree::BondedAtom, and core::kinematics::tree::JumpAtom.

References atom_id_, atoms_, atoms_begin(), atoms_end(), dof_refold_index_, and core::kinematics::ResidueCoordinateChangeList::mark_residue_moved().

Referenced by core::kinematics::tree::JumpAtom::dfs(), and core::kinematics::tree::BondedAtom::dfs().

Real core::kinematics::tree::Atom_::dihedral_between_bonded_children ( AtomCOP  child1,
AtomCOP  child2 
) const
virtual

dihedral angle between two bonded children to this atom

the improper dihedral from child1 to child2 about my x-axis (ie, axis defined by me and my parent for nonjump atoms). Since phi_ for a non-first branched atom is defined as the improper angle offset with respect to its previous sibling, we just need to add up all the offsets between them.

Implements core::kinematics::tree::Atom.

References atoms_end(), nonjump_atoms_begin(), and core::id::PHI.

Length core::kinematics::tree::Atom_::distance ( Atom const &  atom) const
inlinevirtual
Length core::kinematics::tree::Atom_::distance_squared ( Atom const &  atom) const
inlinevirtual

Distance squared to an Atom.

Implements core::kinematics::tree::Atom.

References core::kinematics::tree::Atom::position(), and position_.

Size core::kinematics::tree::Atom_::dof_refold_index ( ) const
inlineprotected

read access for derived classes

References dof_refold_index_.

Referenced by core::kinematics::tree::BondedAtom::dfs().

bool core::kinematics::tree::Atom_::downstream ( AtomCOP  atom1) const
virtual

whether atom1 is downstream of this atom.

Implements core::kinematics::tree::Atom.

References child(), and n_children().

Stub core::kinematics::tree::Atom_::get_input_stub ( ) const
virtual
AtomCOP core::kinematics::tree::Atom_::get_nonjump_atom ( Size const  index) const
virtual

get non-jump atom by its index from the children atoms list

returns 0 if atom doesnt exist

Implements core::kinematics::tree::Atom.

References atoms_, and nonjump_atoms_begin().

Referenced by core::kinematics::tree::JumpAtom::stub_atom2(), core::kinematics::tree::JumpAtom::stub_atom3(), and stub_defined().

void core::kinematics::tree::Atom_::get_path_from_root ( utility::vector1< AtomCOP > &  path) const
protectedvirtual

Implements core::kinematics::tree::Atom.

References parent_.

Stub core::kinematics::tree::Atom_::get_stub ( ) const
virtual

stub centerd at this atom

my stub is center at myself. Normally for bonded atom, X direction is from my parent to me; Z direction is perpendicular to the plane defined by myself, my parent and my parent's parent

Implements core::kinematics::tree::Atom.

References position(), core::kinematics::tree::Atom::stub_atom1(), core::kinematics::tree::Atom::stub_atom2(), and core::kinematics::tree::Atom::stub_atom3().

Referenced by core::kinematics::tree::JumpAtom::get_dof_axis_and_end_pos(), core::kinematics::tree::BondedAtom::get_dof_axis_and_end_pos(), update_child_torsions(), and core::kinematics::tree::JumpAtom::update_internal_coords().

AtomID const& core::kinematics::tree::Atom_::id ( ) const
inlinevirtual
void core::kinematics::tree::Atom_::id ( AtomID const &  id_in)
inlinevirtual

AtomID assignment.

Implements core::kinematics::tree::Atom.

References atom_id_.

AtomCOP core::kinematics::tree::Atom_::input_stub_atom0 ( ) const
inlinevirtual

the center of the input stub for refolding this atom

it is its parent

Implements core::kinematics::tree::Atom.

References parent_.

Referenced by get_input_stub(), and input_stub_atom0_id().

AtomID const& core::kinematics::tree::Atom_::input_stub_atom0_id ( ) const
inlinevirtual

input stub atom0's id

Implements core::kinematics::tree::Atom.

References input_stub_atom0().

AtomCOP core::kinematics::tree::Atom_::input_stub_atom1 ( ) const
inlinevirtual

the first atom to construct the input stub for refolding this atom

it is its parent's stub_atom1, which normally the parent itself

Implements core::kinematics::tree::Atom.

References parent_.

Referenced by get_input_stub(), and input_stub_atom1_id().

AtomID const& core::kinematics::tree::Atom_::input_stub_atom1_id ( ) const
inlinevirtual

input stub atom1's id

Implements core::kinematics::tree::Atom.

References input_stub_atom1().

AtomCOP core::kinematics::tree::Atom_::input_stub_atom2 ( ) const
inlinevirtual

the second atom to construct the input stub for refolding this atom

it is its parent's stub_atom2, which normally the parent's parent

Implements core::kinematics::tree::Atom.

References parent_.

Referenced by get_input_stub(), and input_stub_atom2_id().

AtomID const& core::kinematics::tree::Atom_::input_stub_atom2_id ( ) const
inlinevirtual

input stub atom2's id

Implements core::kinematics::tree::Atom.

References input_stub_atom2().

AtomCOP core::kinematics::tree::Atom_::input_stub_atom3 ( ) const
inlinevirtual

the third atom to construct the input stub for refolding this atom

it is either its previous sibling or its parent's stub_atom3,

Implements core::kinematics::tree::Atom.

References core::kinematics::tree::Atom::is_jump(), parent_, and previous_sibling().

Referenced by get_input_stub(), and input_stub_atom3_id().

AtomID const& core::kinematics::tree::Atom_::input_stub_atom3_id ( ) const
inlinevirtual

input stub atom3's id

Implements core::kinematics::tree::Atom.

References input_stub_atom3().

void core::kinematics::tree::Atom_::insert_atom ( AtomOP  atom)
virtual

insert an atom as this atom's child

if the child atom is a jump atom, put it before all jump children atoms; otherwise, put it before all non-jump children atoms; Different from Atom_::append_atom in that it put the new child atom before instead after the other existing child atoms.

Implements core::kinematics::tree::Atom.

References atoms_, nonjump_atoms_begin(), and this_weak_ptr_.

void core::kinematics::tree::Atom_::insert_atom ( AtomOP  atom,
int const  index 
)
virtual

tries to insert at the position specified by the second argument

insert the child atom in a specified position. If the specified postion is out of range, put it either at the beginning or the end of the child atom list. note that jump child atoms are always listed before non-jump atoms and the index must be a non-negative integer.

Implements core::kinematics::tree::Atom.

References atoms_, nonjump_atoms_begin(), and this_weak_ptr_.

bool core::kinematics::tree::Atom_::keep_dof_fixed ( DOF_Type  const) const
inlinevirtual

recursively add all atoms into the AtomPointers map

for DOFs which must be kept fixed due to topology of tree eg, phi of stub_atoms for jump_atoms

Reimplemented from core::kinematics::tree::Atom.

Reimplemented in core::kinematics::tree::BondedAtom, and core::kinematics::tree::JumpAtom.

Size core::kinematics::tree::Atom_::n_atom ( ) const
inlinevirtual

number of children atoms

Implements core::kinematics::tree::Atom.

References atoms_.

Size core::kinematics::tree::Atom_::n_children ( ) const
virtual

delete this atom and all its children

number of the child atoms

delete an atom (free memory) and recursively for all its children. reset its children's list.

Implements core::kinematics::tree::Atom.

References atoms_.

Referenced by core::kinematics::tree::JumpAtom::copy_coords(), core::kinematics::tree::BondedAtom::copy_coords(), and downstream().

Size core::kinematics::tree::Atom_::n_nonjump_children ( ) const
inlinevirtual

number of the non-jump child atoms

Implements core::kinematics::tree::Atom.

References atoms_end(), and nonjump_atoms_begin().

AtomOP core::kinematics::tree::Atom_::next_child ( AtomCOP  child)
virtual

find the child atom after this child in the list

return 0 if the input child is the last child in the list

Implements core::kinematics::tree::Atom.

References atoms_, and child().

Atom_::Atoms_ConstIterator core::kinematics::tree::Atom_::nonjump_atoms_begin ( ) const
protectedvirtual

constant iterator of the first non-jump (bonded) atom in the vector of children atoms.

Implements core::kinematics::tree::Atom.

References atoms_.

Referenced by append_atom(), dihedral_between_bonded_children(), get_nonjump_atom(), insert_atom(), and n_nonjump_children().

Atom_::Atoms_Iterator core::kinematics::tree::Atom_::nonjump_atoms_begin ( )
protectedvirtual

iterator of the first non-jump (bonded) atom in the vector of children atoms.

Implements core::kinematics::tree::Atom.

References atoms_.

void core::kinematics::tree::Atom_::note_dof_change ( AtomDOFChangeSet changset)
protected

Records this atom as having a changed DOF in the input list of Atoms with changed DOFs. For use in output-sensitive refold subroutine.

Records this atom as an atom with one-or-more changed dofs in the input AtomDOFChangeSet if this is first DOF on this atom to change; if it is not the first DOF on this atom that has changed, then this atom is already in set and this atom is recorded at position dof_refold_index_.

References atom_id_, and dof_refold_index_.

Referenced by core::kinematics::tree::JumpAtom::jump(), core::kinematics::tree::JumpAtom::set_dof(), and core::kinematics::tree::BondedAtom::set_dof().

void core::kinematics::tree::Atom_::note_xyz_uptodate ( )
inlineprotected

To ensure proper function of the output-senstive refold subroutine, derived classes must invoke this function during their update_xyz_coord subroutines.

References dof_refold_index_.

Referenced by core::kinematics::tree::JumpAtom::update_xyz_coords(), and core::kinematics::tree::BondedAtom::update_xyz_coords().

Atom_& core::kinematics::tree::Atom_::operator= ( Atom_ const &  atom)
inlineprotected

Copy assignment.

Note
Copies value and type state but not context state

References dof_refold_index_, and position_.

Referenced by core::kinematics::tree::JumpAtom::copy_coords(), and core::kinematics::tree::BondedAtom::copy_coords().

AtomCOP core::kinematics::tree::Atom_::parent ( ) const
inlinevirtual
void core::kinematics::tree::Atom_::parent ( AtomAP  parent_in)
inlinevirtual

parent assignment

Implements core::kinematics::tree::Atom.

References parent_.

AtomOP core::kinematics::tree::Atom_::parent ( )
inlinevirtual

Parent atom pointer.

Implements core::kinematics::tree::Atom.

References parent_.

Position const& core::kinematics::tree::Atom_::position ( ) const
inlinevirtual
void core::kinematics::tree::Atom_::position ( Position const &  position_a)
inlinevirtual

Position assignment.

Implements core::kinematics::tree::Atom.

References position_.

AtomCOP core::kinematics::tree::Atom_::previous_child ( AtomCOP  child) const
virtual

find the child atom before this child in the list

return 0 if the input child is the first child in the list

Implements core::kinematics::tree::Atom.

References atoms_, and child().

AtomCOP core::kinematics::tree::Atom_::previous_sibling ( ) const
virtual

routines for navigating the tree find the sibling atom before itself

call parent's previous_child method to get its previous sibling; return 0 if no parent is present.

Implements core::kinematics::tree::Atom.

References parent_, and this_weak_ptr_.

Referenced by input_stub_atom3().

void core::kinematics::tree::Atom_::replace_atom ( AtomOP const  old_atom,
AtomOP const  new_atom 
)
virtual

replace the old atom by the new atom in the child atom list

old atom and new atom need to belong to the same type ( either both jump atoms or both non-jump atoms. New atom is inserted at the position of old atom.

Implements core::kinematics::tree::Atom.

References atoms_, and this_weak_ptr_.

void core::kinematics::tree::Atom_::set_weak_ptr_to_self ( AtomAP  weak_ptr)
virtual

Set the weak-pointer-to-self for this atom. Must be called after the Atom is created and put inside of an owning_ptr. Required for atoms to be able to hold pointers to their parents: parents must give child atoms weak pointers to themselves.

Implements core::kinematics::tree::Atom.

References this_weak_ptr_.

void core::kinematics::tree::Atom_::show ( ) const
virtual

dump out AtomID for this atom, its parent and all its offspring

When this atom is added, it will call this function recursively for all its children atoms first. The end condition is for those tip atoms in the tree, i.e., without children. After this function is finished, this atom and all its children (and their children) should be updated properly in the map

first this atom, then its parent and then recursively all its children

Implements core::kinematics::tree::Atom.

References atom_id_, atoms_, and parent_.

void core::kinematics::tree::Atom_::show ( int const &  n_level) const
virtual

dump out AtomID for this atom, its parent and all its offspring up to n_level

first this atom, then its parent and then recursively all its children up to n_level

Implements core::kinematics::tree::Atom.

References atom_id_, atoms_, parent_, core::kinematics::tree::TR(), x(), y(), and z().

AtomID const& core::kinematics::tree::Atom_::stub_atom1_id ( ) const
inlinevirtual
AtomID const& core::kinematics::tree::Atom_::stub_atom2_id ( ) const
inlinevirtual
AtomID const& core::kinematics::tree::Atom_::stub_atom3_id ( ) const
inlinevirtual
bool core::kinematics::tree::Atom_::stub_defined ( ) const
virtual

whether a Stub can be defined for this atom

  • bonded-atom always has its stub defined (from its parent)
  • jump-atom needs to have at least three atoms (including itself) at its end to define a stub, such as three linearly bonded atoms or two children atoms bonded to itself.

Implements core::kinematics::tree::Atom.

References get_nonjump_atom(), and core::kinematics::tree::Atom::is_jump().

Referenced by core::kinematics::tree::JumpAtom::stub_atom1(), core::kinematics::tree::JumpAtom::stub_atom2(), core::kinematics::tree::BondedAtom::stub_atom3(), and core::kinematics::tree::JumpAtom::stub_atom3().

AtomAP core::kinematics::tree::Atom_::this_weak_ptr ( )
inlineprotected

Read access to the replacement "this" pointer.

References this_weak_ptr_.

AtomCAP core::kinematics::tree::Atom_::this_weak_ptr ( ) const
inlineprotected

Read access to the replacement "this" pointer.

References this_weak_ptr_.

void core::kinematics::tree::Atom_::transform_Ax_plus_b_recursive ( Matrix const &  A,
Vector const &  b,
ResidueCoordinateChangeList res_change_list 
)
protectedvirtual

Transform atom and children by linear transformation.

Keep track of any residue that moves so that the Conformation object may be correctly updated.

Implements core::kinematics::tree::Atom.

References atom_id_, atoms_, protocols::match::upstream::b, core::kinematics::ResidueCoordinateChangeList::mark_residue_moved(), and position_.

void core::kinematics::tree::Atom_::update_child_torsions ( AtomOP const  child)
protectedvirtual

when subtrees have changed their coordinates

the coordinates of the atom "*child" – one of my children – have changed. This routine updates the torsions to reflect this. Useful if we have just repacked or rotamer-trialed, ie sidechain atoms_ have moved but the backbone is still the same, more efficient than calling update_internal_coords on the entire tree...

Note
update_internal_coords is called recursively on all of *child's children.

Implements core::kinematics::tree::Atom.

References atom_id_, atoms_, and get_stub().

void core::kinematics::tree::Atom_::update_domain_map ( int current_color,
int biggest_color,
DomainMap domain_map,
AtomID_Mask const &  dof_moved,
AtomID_Mask const &  atom_moved 
) const
virtual

update domain map

update domain map for this atom and all its offspring consider this like a graph coloring problem. we are recursively (depth-first) assigning a color to each atom.

Implements core::kinematics::tree::Atom.

References atom_id_, atoms_, and core::kinematics::tree::Atom::is_jump().

void core::kinematics::tree::Atom_::update_internal_coords ( bool const  recursive)
virtual

update internal coords of this atom and its offspring atoms (if recursive)

get the input stub for building this atom first

Implements core::kinematics::tree::Atom.

References get_input_stub().

void core::kinematics::tree::Atom_::update_xyz_coords ( )
virtual

update xyz position of this atom and its offspring atoms

get the input stub for building this atom first

Implements core::kinematics::tree::Atom.

Reimplemented in core::kinematics::tree::BondedAtom, and core::kinematics::tree::JumpAtom.

References get_input_stub().

Length const& core::kinematics::tree::Atom_::x ( ) const
inlinevirtual
Position const& core::kinematics::tree::Atom_::xyz ( ) const
inlinevirtual

Position.

Implements core::kinematics::tree::Atom.

References position_.

void core::kinematics::tree::Atom_::xyz ( Position const &  position_a)
inlinevirtual

Position assignment.

Implements core::kinematics::tree::Atom.

References position_.

Length const& core::kinematics::tree::Atom_::y ( ) const
inlinevirtual
Length const& core::kinematics::tree::Atom_::z ( ) const
inlinevirtual

Member Data Documentation

AtomID core::kinematics::tree::Atom_::atom_id_
protected
Atoms core::kinematics::tree::Atom_::atoms_
protected
Size core::kinematics::tree::Atom_::dof_refold_index_
private

Track my position in my owner's list of Atoms with modified DOFs. 0 when my dofs have not changed since the last update_coords.

Referenced by dfs(), dof_refold_index(), note_dof_change(), note_xyz_uptodate(), and operator=().

AtomAP core::kinematics::tree::Atom_::parent_
protected
PointPosition core::kinematics::tree::Atom_::position_
protected
AtomAP core::kinematics::tree::Atom_::this_weak_ptr_
protected

Each atom must hold a weak pointer to itself, and this weak pointer must be given to the atom at its construction.

Referenced by append_atom(), insert_atom(), previous_sibling(), replace_atom(), set_weak_ptr_to_self(), and this_weak_ptr().


The documentation for this class was generated from the following files: