Cleanup: whicespace
[blender.git] / extern / curve_fit_nd / curve_fit_nd.h
index 67b0ed75b8ef031beb8b618bcf8f1d190c402f6f..ff6b9513a9bcf49027ae4a4369e5604e81f5c10f 100644 (file)
@@ -25,8 +25,8 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#ifndef __SPLINE_FIT__
-#define __SPLINE_FIT__
+#ifndef __CURVE_FIT_ND_H__
+#define __CURVE_FIT_ND_H__
 
 /** \file curve_fit_nd.h
  *  \ingroup curve_fit
@@ -55,7 +55,7 @@
  *
  * \returns zero on success, nonzero is reserved for error values.
  */
-int curve_fit_cubic_from_points_db(
+int curve_fit_cubic_to_points_db(
         const double       *points,
         const unsigned int  points_len,
         const unsigned int  dims,
@@ -67,7 +67,7 @@ int curve_fit_cubic_from_points_db(
         unsigned int **r_cubic_orig_index,
         unsigned int **r_corner_index_array, unsigned int *r_corner_index_len);
 
-int curve_fit_cubic_from_points_fl(
+int curve_fit_cubic_to_points_fl(
         const float        *points,
         const unsigned int  points_len,
         const unsigned int  dims,
@@ -79,6 +79,43 @@ int curve_fit_cubic_from_points_fl(
         unsigned int **r_cubic_orig_index,
         unsigned int **r_corners_index_array, unsigned int *r_corners_index_len);
 
+/**
+ * Takes a flat array of points and evalues that to calculate handle lengths.
+ *
+ * \param points, points_len: The array of points to calculate a cubics from.
+ * \param dims: The number of dimensions for for each element in \a points.
+ * \param error_threshold: the error threshold to allow for,
+ * \param tan_l, tan_r: Normalized tangents the handles will be aligned to.
+ * Note that tangents must both point along the direction of the \a points,
+ * so \a tan_l points in the same direction of the resulting handle,
+ * where \a tan_r will point the opposite direction of its handle.
+ *
+ * \param r_handle_l, r_handle_r: Resulting calculated handles.
+ * \param r_error_sq: The maximum distance  (squared) this curve diverges from \a points.
+ */
+int curve_fit_cubic_to_points_single_db(
+        const double      *points,
+        const unsigned int points_len,
+        const unsigned int dims,
+        const double       error_threshold,
+        const double       tan_l[],
+        const double       tan_r[],
+
+        double  r_handle_l[],
+        double  r_handle_r[],
+        double *r_error_sq);
+
+int curve_fit_cubic_to_points_single_fl(
+        const float       *points,
+        const unsigned int points_len,
+        const unsigned int dims,
+        const float        error_threshold,
+        const float        tan_l[],
+        const float        tan_r[],
+
+        float   r_handle_l[],
+        float   r_handle_r[],
+        float  *r_error_sq);
 
 /* curve_fit_corners_detect.c */
 
@@ -122,4 +159,4 @@ int curve_fit_corners_detect_fl(
         unsigned int **r_corners,
         unsigned int  *r_corners_len);
 
-#endif  /* __SPLINE_FIT__ */
+#endif  /* __CURVE_FIT_ND_H__ */