207
207
Bond *bond = reinterpret_cast <Bond*> (m_Begin->GetFirstBond (it));
209
209
bond = reinterpret_cast <Bond*> (m_Begin->GetNextBond (it));
210
double a0 = atan2 (*y1 - *y2, *x2 - *x1), a1 = bond->GetAngle2DRad (reinterpret_cast <Atom*> (m_Begin)), a2, a;
210
double a0 = atan2 (*y1 - *y2, *x2 - *x1), a1 = bond->GetAngle2DRad (reinterpret_cast <Atom*> (m_Begin)), a;
211
211
if (fabs (fabs (a0 - a1) - M_PI) > 0.01) {
212
212
double sign = sin (a0 - a1) > 0.0 ? 1.0 : -1.0;
213
213
double tanb = ((m_Begin->GetZ () == 6)? fabs (tan ((M_PI - a0 + a1) / 2)): 0.), cosa = cos (a0), sina = sin (a0);
214
214
m_coords[4] = *x1 + BondDist * cosa * tanb - dy * sign;
215
215
m_coords[5] = *y1 + dx * sign - BondDist * sina * tanb;
220
217
bond = reinterpret_cast <Bond*> (m_End->GetFirstBond (it));