- if (is_cyclic) {
- len_prev = normalize_vn_vnvn(tan_prev, &points[(knots_len - 2) * dims], &points[(knots_len - 1) * dims], dims);
+ if (knots_len < 2) {
+ /* NOP, set dummy values */
+ for (uint i = 0; i < knots_len; i++) {
+ struct Knot *k = &knots[i];
+ zero_vn(k->tan[0], dims);
+ zero_vn(k->tan[1], dims);
+ k->handles[0] = 0.0;
+ k->handles[1] = 0.0;
+#ifdef USE_LENGTH_CACHE
+ points_length_cache[i] = 0.0;
+#endif
+ }
+ }
+ else if (is_cyclic) {
+ len_prev = normalize_vn_vnvn(
+ tan_prev, &points[(knots_len - 2) * dims], &points[(knots_len - 1) * dims], dims);