27 #include <utility/keys/Key3Vector.hh>
29 #include <utility/vector1.hh>
49 start_atom = & atom_tree.atom(start_atomid_);
50 start_atom_m1 = start_atom->stub_atom2();
51 start_atom_p1 = & atom_tree.atom(start_atomid1_);
64 start_atoms1(pose, start_atom_m1, start_atom, start_atom_p1);
66 start_atom_m2 = start_atom->stub_atom3();
76 start_atoms1(pose, start_atom_m1, start_atom, start_atom_p1);
78 if (start_atom_m1->id() < start_atom_p1->id()) {
79 return BondAngleKey(start_atom_m1->id(), start_atom->id(), start_atom_p1->id());
82 return BondAngleKey(start_atom_p1->id(), start_atom->id(), start_atom_m1->id());
94 end_atom_m1 = end_atom->parent();
95 end_atom_p1 = end_atom->get_nonjump_atom(0);
108 end_atoms1(pose, end_atom_m1, end_atom, end_atom_p1);
110 runtime_assert(end_atom_m1);
112 end_atom_m2 = end_atom_m1->parent();
122 end_atoms1(pose, end_atom_m1, end_atom, end_atom_p1);
128 if (end_atom_m1->id() < end_atom_p1->id()) {
129 return BondAngleKey(end_atom_m1->id(), end_atom->id(), end_atom_p1->id());
132 return BondAngleKey(end_atom_p1->id(), end_atom->id(), end_atom_m1->id());
146 runtime_assert(bond_angle_key.key1().valid());
147 runtime_assert(bond_angle_key.key2().valid());
149 atom_m1 = & atom_tree.atom(bond_angle_key.key1());
150 atom = & atom_tree.atom(bond_angle_key.key2());
151 atom_p1 = bond_angle_key.key3().valid() ? & atom_tree.atom(bond_angle_key.key3()) : NULL;