27 #include <numeric/xyz.functions.hh>
30 #include <utility/exit.hh>
37 #include <utility/vector1.hh>
42 namespace kinematics {
67 std::cerr <<
"bad torsion type for JumpAtom: " << type << std::endl;
79 Size const start_atom_index
82 Atom_::dfs( changeset, res_change_list, start_atom_index );
97 std::cerr <<
"bad torsion type for JumpAtom: " << type << std::endl;
133 Jump const & jump_in,
157 std::cerr <<
"JumpAtom:: copy_coords: topology_mismatch!" <<
165 it != it_end; ++it, ++i ) {
166 (*it)->copy_coords( *(src.
child(i) ) );
201 it != it_end; ++it ) {
202 (*it)->update_xyz_coords( new_stub );
231 it != it_end; ++it ) {
232 (*it)->update_internal_coords( new_stub );
244 new_me->set_weak_ptr_to_self( new_me() );
246 atom_pointer[
id() ] = new_me;
249 new_me->parent( parent_in );
252 new_me->jump_ =
jump_;
259 it != it_end; ++it ) {
260 new_me->append_atom( (*it)->clone( new_me(), atom_pointer ) );
281 DOF_ID last_torsion_local( last_torsion );
283 for (
int k=1; k<=6; ++k ) {
285 DOF_ID rb_torsion(
id(), type );
288 min_map.
add_torsion( rb_torsion, last_torsion_local );
289 last_torsion_local = rb_torsion;
294 min_map.
add_atom(
id(), last_torsion_local );
297 it != it_end; ++it ) {
298 (*it)->setup_min_map( last_torsion_local, allow_move, min_map );
339 using numeric::y_rotation_matrix_degrees;
340 using numeric::z_rotation_matrix_degrees;
345 axis = input_stub.
M.col( rb_no );
353 end_pos = my_stub.
v + my_stub.
M * rb_center;
356 axis = input_stub.
M.col(3);
357 }
else if ( type ==
id::RB5 ) {
358 Real const theta_z = rb_delta[6];
359 axis = ( input_stub.
M * z_rotation_matrix_degrees( theta_z ) ).col(2);
360 }
else if ( type ==
id::RB4 ) {
361 Real const theta_z = rb_delta[6], theta_y = rb_delta[5];
362 axis = ( input_stub.
M * z_rotation_matrix_degrees( theta_z ) *
363 y_rotation_matrix_degrees( theta_y ) ).col(1);
365 std::cerr <<
"Bad torsion type for Atom" << type << std::endl;