Rosetta  2020.37
 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]

Public Member Functions

 ~Atom_ () override
 Destructor. More...
 
void update_xyz_coords () override
 update xyz position of this atom and its offspring atoms More...
 
void update_internal_coords (bool const recursive) override
 update internal coords of this atom and its offspring atoms (if recursive) More...
 
bool keep_dof_fixed (DOF_Type const ) const override
 for DOFs which must be kept fixed due to topology of tree More...
 
Real dihedral_between_bonded_children (Atom const &child1, Atom const &child2) const override
 dihedral angle between two bonded children to this atom More...
 
void show () const override
 dump out AtomID for this atom, its parent and all its offspring More...
 
void show (int const &n_level) const override
 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 override
 update domain map More...
 
Atoms_ConstIterator atoms_begin () const override
 starting const iterator of the children atom list More...
 
Atoms_ConstIterator atoms_end () const override
 ending const iterator of the children atom list More...
 
Atoms_Iterator atoms_begin () override
 starting iterator of the children atom list More...
 
Atoms_Iterator atoms_end () override
 ending iterator of the children atom list More...
 
Size n_atom () const override
 number of children atoms More...
 
void append_atom (AtomOP) override
 append an atom as this atom's child More...
 
void delete_atom (AtomOP) override
 remove an atom from this atom's children More...
 
void insert_atom (AtomOP) override
 insert an atom as this atom's child More...
 
void insert_atom (AtomOP, int const ) override
 tries to insert at the position specified by the second argument More...
 
void replace_atom (AtomOP const old_atom, AtomOP const new_atom) override
 replace the old atom by the new atom in the child atom list More...
 
AtomCOP get_nonjump_atom (Size const i) const override
 get non-jump atom by its index from the children atoms list More...
 
Size n_children () const override
 number of the child atoms More...
 
Size n_nonjump_children () const override
 number of the non-jump child atoms More...
 
AtomCOP child (Size const k) const override
 get a child atom by index (const method) More...
 
AtomOP child (Size const k) override
 get a child atom by index More...
 
Size child_index (AtomCOP child) const override
 the atom-index of this child More...
 
Size raw_child_index (Atom const *child) const override
 the atom-index of this child More...
 
bool downstream (AtomCOP atom1) const override
 whether atom1 is downstream of this atom. More...
 
AtomID const & id () const override
 Atom identifier. More...
 
void id (AtomID const &id_in) override
 AtomID assignment. More...
 
AtomID const & atom_id () const override
 Atom identifier. More...
 
Position const & position () const override
 Position. More...
 
void position (Position const &position_a) override
 Position assignment. More...
 
Position const & xyz () const override
 Position. More...
 
void xyz (Position const &position_a) override
 Position assignment. More...
 
Length const & x () const override
 x coordinate More...
 
Length const & y () const override
 y coordinate More...
 
Length const & z () const override
 z coordinate More...
 
Length distance (Atom const &atom) const override
 Distance to an Atom. More...
 
Length distance_squared (Atom const &atom) const override
 Distance squared to an Atom. More...
 
AtomOP parent () override
 Parent atom pointer. More...
 
AtomCOP parent () const override
 Parent atom pointer. More...
 
void parent (AtomAP parent_in) override
 parent assignment More...
 
Stub get_stub () const override
 stub centerd at this atom More...
 
Stub get_input_stub () const override
 stub used to build this atom More...
 
AtomID const & stub_atom1_id () const override
 stub atom1 's id More...
 
AtomID const & stub_atom2_id () const override
 stub atom2's id More...
 
AtomID const & stub_atom3_id () const override
 stub atom3's id More...
 
AtomCOP input_stub_atom0 () const override
 the center of the input stub for refolding this atom More...
 
AtomCOP input_stub_atom1 () const override
 the first atom to construct the input stub for refolding this atom More...
 
AtomCOP input_stub_atom2 () const override
 the second atom to construct the input stub for refolding this atom More...
 
AtomCOP input_stub_atom3 () const override
 the third atom to construct the input stub for refolding this atom More...
 
AtomID const & input_stub_atom0_id () const override
 input stub atom0's id More...
 
AtomID const & input_stub_atom1_id () const override
 input stub atom1's id More...
 
AtomID const & input_stub_atom2_id () const override
 input stub atom2's id More...
 
AtomID const & input_stub_atom3_id () const override
 input stub atom3's id More...
 
AtomCOP previous_sibling () const override
 routines for navigating the tree find the sibling atom before itself More...
 
AtomCOP previous_child (AtomCOP child) const override
 find the child atom before this child in the list More...
 
AtomOP next_child (AtomCOP child) override
 find the child atom after this child in the list More...
 
bool stub_defined () const override
 whether a Stub can be defined for this atom More...
 
void dfs (AtomDOFChangeSet &changeset, ResidueCoordinateChangeList &res_change_list, Size const start_atom_index) const override
 base class implementation that traverses the subtree routed at this node in the depth-first traversal of the atoms requiring coordinate updates. More...
 
Atom const * raw_parent () const override
 Rapid (increment-of-reference-count-avoiding) access to the parent atom pointer. More...
 
Atom const * raw_previous_sibling () const override
 Rapid (increment-of-reference-count-avoiding) access to the previous sibling pointer, i.e. the first child in the parent's children list to precede this atom. More...
 
Atom const * raw_previous_child (Atom const *child) const override
 Rapid (increment-of-reference-count-avoiding) access to the previous child pointer;. More...
 
Atom const * raw_input_stub_atom0 () const override
 Rapid (increment-of-reference-count-avoiding) access to the 0th input stub atom;. More...
 
Atom const * raw_input_stub_atom1 () const override
 Rapid (increment-of-reference-count-avoiding) access to the 1st input stub atom;. More...
 
Atom const * raw_input_stub_atom2 () const override
 Rapid (increment-of-reference-count-avoiding) access to the 2nd input stub atom;. More...
 
Atom const * raw_input_stub_atom3 () const override
 Rapid (increment-of-reference-count-avoiding) access to the 3rd input stub atom;. More...
 
Atom const * raw_get_nonjump_atom (Size const i) const override
 Rapid (increment-of-reference-count-avoiding) access to the ith non-jump atom in this atom's list of children. More...
 
- Public Member Functions inherited from core::kinematics::tree::Atom
AtomCOP get_self_ptr () const
 
AtomOP get_self_ptr ()
 
AtomCAP get_self_weak_ptr () const
 
AtomAP get_self_weak_ptr ()
 
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 the stub without actually updating coordinates 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 void steal_inversion (AtomOP)=0
 
virtual AtomCOP stub_atom1 () const =0
 
virtual AtomCOP stub_atom2 () const =0
 
virtual AtomCOP stub_atom3 () const =0
 
virtual Atom const * raw_stub_atom1 () const =0
 Rapid (increment-of-reference-count-avoiding) access to the fist stub atom. More...
 
virtual Atom const * raw_stub_atom2 () const =0
 Rapid (increment-of-reference-count-avoiding) access to the second stub atom. More...
 
virtual Atom const * raw_stub_atom3 () const =0
 Rapid (increment-of-reference-count-avoiding) access to the third stub atom. More...
 

Protected Member Functions

 Atom_ ()
 Default constructor. More...
 
 Atom_ (Atom_ const &atom)
 Copy constructor. More...
 
Atom_operator= (Atom_ const &atom)
 Copy assignment. More...
 
void update_child_torsions (AtomOP const child) override
 when subtrees have changed their coordinates More...
 
Atoms_ConstIterator nonjump_atoms_begin () const override
 constant iterator of the first non-jump (bonded) atom in the vector of children atoms. More...
 
Atoms_Iterator nonjump_atoms_begin () override
 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...
 
void transform_Ax_plus_b_recursive (Matrix const &A, Vector const &b, ResidueCoordinateChangeList &res_change_list) override
 Transform atom and children by linear transformation. More...
 
void get_path_from_root (utility::vector1< AtomCAP > &path) const override
 
bool atom_is_on_path_from_root (AtomCOP atm) const override
 
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
 Default constructor. More...
 
Atomoperator= (Atom const &)=default
 Copy assignment. More...
 

Protected Attributes

AtomID atom_id_
 Atom ID. More...
 
AtomAP parent_
 Associated conformation Atom. More...
 
Atomraw_parent_
 Workaround copy of the parent pointer for use in functions where locking and unlocking the parent_ pointer would be prohibitively slow. 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_.

core::kinematics::tree::Atom_::~Atom_ ( )
inlineoverride

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)
overridevirtual

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_, core::kinematics::tree::Atom::get_self_weak_ptr(), and nonjump_atoms_begin().

AtomID const& core::kinematics::tree::Atom_::atom_id ( ) const
inlineoverridevirtual
bool core::kinematics::tree::Atom_::atom_is_on_path_from_root ( AtomCOP  atm) const
overrideprotectedvirtual

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

References parent(), and parent_.

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

starting iterator of the children atom list

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

References atoms_.

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

ending iterator of the children atom list

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

References atoms_.

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

get a child atom by index (const method)

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

References atoms_.

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

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

get a child atom by index

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

References atoms_.

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

the atom-index of this child

the atom-index of this child

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

References atoms_.

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

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
overridevirtual

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 ( Atom const &  child1,
Atom const &  child2 
) const
overridevirtual

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(), core::kinematics::tree::Atom::is_jump(), nonjump_atoms_begin(), core::chemical::rings::PHI, and core::kinematics::tree::Atom::raw_parent().

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

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
overridevirtual

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
overridevirtual
AtomCOP core::kinematics::tree::Atom_::get_nonjump_atom ( Size const  index) const
overridevirtual

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< AtomCAP > &  path) const
overrideprotectedvirtual
Stub core::kinematics::tree::Atom_::get_stub ( ) const
overridevirtual
AtomID const& core::kinematics::tree::Atom_::id ( ) const
inlineoverridevirtual
void core::kinematics::tree::Atom_::id ( AtomID const &  id_in)
inlineoverridevirtual

AtomID assignment.

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

References atom_id_.

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

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().

AtomID const& core::kinematics::tree::Atom_::input_stub_atom0_id ( ) const
inlineoverridevirtual
AtomCOP core::kinematics::tree::Atom_::input_stub_atom1 ( ) const
inlineoverridevirtual

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 get_stub().

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

input stub atom1's id

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

References core::kinematics::tree::Atom::id(), and raw_input_stub_atom1().

Referenced by get_input_stub(), and get_stub().

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

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 get_stub().

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

input stub atom2's id

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

References core::kinematics::tree::Atom::id(), and raw_input_stub_atom2().

Referenced by get_input_stub(), and get_stub().

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

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::is_collinear(), core::kinematics::tree::Atom::is_jump(), parent(), and previous_sibling().

Referenced by get_input_stub(), get_stub(), and input_stub_atom3_id().

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

input stub atom3's id

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

References input_stub_atom3().

Referenced by get_input_stub(), and get_stub().

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

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_, core::kinematics::tree::Atom::get_self_weak_ptr(), and nonjump_atoms_begin().

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

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_, core::kinematics::tree::Atom::get_self_weak_ptr(), and nonjump_atoms_begin().

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

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
inlineoverridevirtual

number of children atoms

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

References atoms_.

Size core::kinematics::tree::Atom_::n_children ( ) const
overridevirtual
Size core::kinematics::tree::Atom_::n_nonjump_children ( ) const
inlineoverridevirtual

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)
overridevirtual

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
overrideprotectedvirtual

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(), n_nonjump_children(), and raw_get_nonjump_atom().

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

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().

AtomOP core::kinematics::tree::Atom_::parent ( )
inlineoverridevirtual
AtomCOP core::kinematics::tree::Atom_::parent ( ) const
inlineoverridevirtual

Parent atom pointer.

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

References parent_.

void core::kinematics::tree::Atom_::parent ( AtomAP  parent_in)
inlineoverridevirtual

parent assignment

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

References parent_, and raw_parent_.

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

Position assignment.

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

References position_.

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

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
overridevirtual

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 core::kinematics::tree::Atom::get_self_ptr(), and parent().

Referenced by input_stub_atom3().

Size core::kinematics::tree::Atom_::raw_child_index ( Atom const *  child) const
overridevirtual

the atom-index of this child

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

References atoms_, child(), and core::kinematics::tree::Atom::raw_parent().

Atom const * core::kinematics::tree::Atom_::raw_get_nonjump_atom ( Size const  i) const
overridevirtual

Rapid (increment-of-reference-count-avoiding) access to the ith non-jump atom in this atom's list of children.

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

References atoms_, and nonjump_atoms_begin().

Referenced by core::kinematics::tree::JumpAtom::raw_stub_atom2(), and core::kinematics::tree::JumpAtom::raw_stub_atom3().

Atom const * core::kinematics::tree::Atom_::raw_input_stub_atom0 ( ) const
overridevirtual

Rapid (increment-of-reference-count-avoiding) access to the 0th input stub atom;.

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

References raw_parent().

Referenced by input_stub_atom0_id().

Atom const * core::kinematics::tree::Atom_::raw_input_stub_atom1 ( ) const
overridevirtual

Rapid (increment-of-reference-count-avoiding) access to the 1st input stub atom;.

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

References raw_parent(), and core::kinematics::tree::Atom::raw_stub_atom1().

Referenced by input_stub_atom1_id().

Atom const * core::kinematics::tree::Atom_::raw_input_stub_atom2 ( ) const
overridevirtual

Rapid (increment-of-reference-count-avoiding) access to the 2nd input stub atom;.

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

References raw_parent(), and core::kinematics::tree::Atom::raw_stub_atom2().

Referenced by input_stub_atom2_id().

Atom const * core::kinematics::tree::Atom_::raw_input_stub_atom3 ( ) const
overridevirtual
Atom const * core::kinematics::tree::Atom_::raw_parent ( ) const
overridevirtual
Atom const * core::kinematics::tree::Atom_::raw_previous_child ( Atom const *  child) const
overridevirtual

Rapid (increment-of-reference-count-avoiding) access to the previous child pointer;.

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

References atoms_, and child().

Atom const * core::kinematics::tree::Atom_::raw_previous_sibling ( ) const
overridevirtual

Rapid (increment-of-reference-count-avoiding) access to the previous sibling pointer, i.e. the first child in the parent's children list to precede this atom.

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

References raw_parent_, and core::kinematics::tree::Atom::raw_previous_child().

Referenced by raw_input_stub_atom3().

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

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_, core::kinematics::tree::Atom::get_self_weak_ptr(), and core::kinematics::tree::TR().

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

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

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
overridevirtual

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_, core::chemical::element::F, get_input_stub(), get_stub(), parent(), core::kinematics::tree::TR(), x(), y(), and z().

AtomID const& core::kinematics::tree::Atom_::stub_atom1_id ( ) const
inlineoverridevirtual
AtomID const& core::kinematics::tree::Atom_::stub_atom2_id ( ) const
inlineoverridevirtual
AtomID const& core::kinematics::tree::Atom_::stub_atom3_id ( ) const
inlineoverridevirtual
bool core::kinematics::tree::Atom_::stub_defined ( ) const
overridevirtual

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::raw_stub_atom1(), core::kinematics::tree::JumpAtom::raw_stub_atom2(), core::kinematics::tree::JumpAtom::raw_stub_atom3(), core::kinematics::tree::JumpAtom::stub_atom1(), core::kinematics::tree::JumpAtom::stub_atom2(), and core::kinematics::tree::JumpAtom::stub_atom3().

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

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)
overrideprotectedvirtual

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
overridevirtual

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)
overridevirtual

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 ( )
overridevirtual

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
inlineoverridevirtual
Position const& core::kinematics::tree::Atom_::xyz ( ) const
inlineoverridevirtual

Position.

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

References position_.

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

Position assignment.

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

References position_.

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

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
Atom* core::kinematics::tree::Atom_::raw_parent_
protected

Workaround copy of the parent pointer for use in functions where locking and unlocking the parent_ pointer would be prohibitively slow.

Referenced by parent(), raw_parent(), and raw_previous_sibling().


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