0027764: Visualization - add functionality for animation of 3D camera and interactive...
[occt.git] / src / gp / gp_QuaternionNLerp.hxx
index 00924e9..42be792 100644 (file)
 
 #include <gp_Quaternion.hxx>
 
-/**
- * Class perform linear interpolation (approximate rotation interpolation),
- * result quaternion nonunit, its length lay between. sqrt(2)/2  and 1.0
- */
+//! Class perform linear interpolation (approximate rotation interpolation),
+//! result quaternion nonunit, its length lay between. sqrt(2)/2  and 1.0
 class gp_QuaternionNLerp
 {
+public:
+
+  //! Compute interpolated quaternion between two quaternions.
+  //! @param theStart first  quaternion
+  //! @param theEnd   second quaternion
+  //! @param theT normalized interpolation coefficient within 0..1 range,
+  //!             with 0 pointing to theStart and 1 to theEnd.
+  static gp_Quaternion Interpolate (const gp_Quaternion& theQStart,
+                                    const gp_Quaternion& theQEnd,
+                                    Standard_Real theT)
+  {
+    gp_Quaternion aResult;
+    gp_QuaternionNLerp aLerp (theQStart, theQEnd);
+    aLerp.Interpolate (theT, aResult);
+    return aResult;
+  }
 
 public:
 
+  //! Empty constructor,
   gp_QuaternionNLerp() {}
 
+  //! Constructor with initialization.
   gp_QuaternionNLerp (const gp_Quaternion& theQStart, const gp_Quaternion& theQEnd)
   {
     Init (theQStart, theQEnd);
   }
 
+  //! Initialize the tool with Start and End values.
   void Init (const gp_Quaternion& theQStart, const gp_Quaternion& theQEnd)
   {
     InitFromUnit (theQStart.Normalized(), theQEnd.Normalized());
   }
 
+  //! Initialize the tool with Start and End unit quaternions.
   void InitFromUnit (const gp_Quaternion& theQStart, const gp_Quaternion& theQEnd)
   {
     myQStart = theQStart;
@@ -55,16 +73,6 @@ public:
     theResultQ = myQStart + myQEnd * theT;
   }
 
-  static gp_Quaternion Interpolate (const gp_Quaternion& theQStart,
-                                    const gp_Quaternion& theQEnd,
-                                    Standard_Real theT)
-  {
-    gp_Quaternion aResultQ;
-    gp_QuaternionNLerp aNLerp (theQStart, theQEnd);
-    aNLerp.Interpolate (theT, aResultQ);
-    return aResultQ;
-  }
-
 private:
 
   gp_Quaternion myQStart;