ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/src/openbabel/vector3.cpp
(Generate patch)

Comparing trunk/src/openbabel/vector3.cpp (file contents):
Revision 741 by tim, Wed Nov 16 19:42:11 2005 UTC vs.
Revision 1081 by gezelter, Thu Oct 19 20:49:05 2006 UTC

# Line 30 | Line 30 | namespace OpenBabel
30   /*! \class vector3
31     \brief Represents a vector in the 3-dimensional real space.
32  
33 < The vector3 class was designed to simplify operations with doubleing
33 > The vector3 class was designed to simplify operations with floating
34   point coordinates. To this end many of the common operations have been
35   overloaded for simplicity. Vector addition, subtraction, scalar
36   multiplication, dot product, cross product, magnitude and a number of
# Line 142 | Line 142 | OBAPI int operator!= ( const vector3& v1, const vector
142  
143    \warning If length() is very close to zero, but not == 0.0,
144    this method may behave in unexpected ways and return almost
145 <  random results; details may depend on your particular doubleing
145 >  random results; details may depend on your particular floating
146    point implementation. The use of this method is therefore
147    highly discouraged, unless you are certain that length() is in
148    a reasonable range, away from 0.0 (Stefan Kebekus)
# Line 192 | Line 192 | OBAPI vector3 cross ( const vector3& v1, const vector3
192    length() of the two vectors is very close to 0.0, but not ==
193    0.0, this method may behave in unexpected ways and return
194    almost random results; details may depend on your particular
195 <  doubleing point implementation. The use of this method is
195 >  floating point implementation. The use of this method is
196    therefore highly discouraged, unless you are certain that the
197    length()es are in a reasonable range, away from 0.0 (Stefan
198    Kebekus)
# Line 224 | Line 224 | OBAPI double vectorAngle ( const vector3& v1, const ve
224      return((RAD_TO_DEG * acos(dp)));
225   }
226  
227 + /*!  This function calculates the torsion angle of three vectors, represented
228 +  by four points A--B--C--D, i.e. B and C are vertexes, but none of A--B,
229 +  B--C, and C--D are colinear.  A "torsion angle" is the amount of "twist"
230 +  or torsion needed around the B--C axis to bring A--B into the same plane
231 +  as B--C--D.  The torsion is measured by "looking down" the vector B--C so
232 +  that B is superimposed on C, then noting how far you'd have to rotate
233 +  A--B to superimpose A over D.  Angles are + in the anticlockwise
234 +  direction.  The operation is symmetrical in that if you reverse the image
235 +  (look from C to B and rotate D over A), you get the same answer.
236 + */
237 +
238   OBAPI double CalcTorsionAngle(const vector3 &a, const vector3 &b,
239                          const vector3 &c, const vector3 &d)
240   {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines