Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions include/tinynurbs/core/check.h
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ bool surfaceIsValid(unsigned int degree_u, unsigned int degree_v, const std::vec
*/
template <typename T> bool isKnotVectorClosed(unsigned int degree, const std::vector<T> &knots)
{
for (int i = 0; i < degree - 1; ++i)
for (unsigned int i = 0; i < degree - 1; ++i)
{
int j = knots.size() - degree + i;
if (std::abs((knots[i + 1] - knots[i]) - (knots[j + 1] - knots[j])) >
Expand All @@ -185,7 +185,7 @@ template <typename T> bool isKnotVectorClosed(unsigned int degree, const std::ve
*/
template <typename T> bool isArray1Closed(unsigned int degree, const std::vector<T> &vec)
{
for (int i = 0; i < degree; ++i)
for (unsigned int i = 0; i < degree; ++i)
{
int j = vec.size() - degree + i;
if (glm::length(vec[i] - vec[j]) > 1e-5)
Expand All @@ -205,7 +205,7 @@ template <typename T> bool isArray1Closed(unsigned int degree, const std::vector
*/
template <typename T> bool isArray2ClosedU(unsigned int degree_u, const array2<T> &arr)
{
for (int i = 0; i < degree_u; ++i)
for (unsigned int i = 0; i < degree_u; ++i)
{
for (int j = 0; j < arr.cols(); ++j)
{
Expand All @@ -228,9 +228,9 @@ template <typename T> bool isArray2ClosedU(unsigned int degree_u, const array2<T
*/
template <typename T> bool isArray2ClosedV(unsigned int degree_v, const array2<T> &arr)
{
for (int i = 0; i < arr.rows(); ++i)
for (unsigned int i = 0; i < arr.rows(); ++i)
{
for (int j = 0; j < degree_v; j++)
for (unsigned int j = 0; j < degree_v; j++)
{
int k = arr.rows() - degree_v + i;
if (glm::length(arr(i, j) - arr(i, k)) > 1e-5)
Expand Down
16 changes: 8 additions & 8 deletions include/tinynurbs/core/evaluate.h
Original file line number Diff line number Diff line change
Expand Up @@ -124,10 +124,10 @@ glm::vec<dim, T> surfacePoint(unsigned int degree_u, unsigned int degree_v,
std::vector<T> Nu = bsplineBasis(degree_u, span_u, knots_u, u);
std::vector<T> Nv = bsplineBasis(degree_v, span_v, knots_v, v);

for (int l = 0; l <= degree_v; l++)
for (unsigned int l = 0; l <= degree_v; l++)
{
glm::vec<dim, T> temp(0.0);
for (int k = 0; k <= degree_u; k++)
for (unsigned int k = 0; k <= degree_u; k++)
{
temp += static_cast<T>(Nu[k]) *
control_points(span_u - degree_u + k, span_v - degree_v + l);
Expand Down Expand Up @@ -160,9 +160,9 @@ surfaceDerivatives(unsigned int degree_u, unsigned int degree_v, const std::vect
array2<glm::vec<dim, T>> surf_ders(num_ders + 1, num_ders + 1, glm::vec<dim, T>(0.0));

// Set higher order derivatives to 0
for (int k = degree_u + 1; k <= num_ders; k++)
for (unsigned int k = degree_u + 1; k <= num_ders; k++)
{
for (int l = degree_v + 1; l <= num_ders; l++)
for (unsigned int l = degree_v + 1; l <= num_ders; l++)
{
surf_ders(k, l) = glm::vec<dim, T>(0.0);
}
Expand All @@ -181,12 +181,12 @@ surfaceDerivatives(unsigned int degree_u, unsigned int degree_v, const std::vect
std::vector<glm::vec<dim, T>> temp;
temp.resize(degree_v + 1);
// Compute derivatives
for (int k = 0; k <= du; k++)
for (unsigned int k = 0; k <= du; k++)
{
for (int s = 0; s <= degree_v; s++)
for (unsigned int s = 0; s <= degree_v; s++)
{
temp[s] = glm::vec<dim, T>(0.0);
for (int r = 0; r <= degree_u; r++)
for (unsigned int r = 0; r <= degree_u; r++)
{
temp[s] += static_cast<T>(ders_u(k, r)) *
control_points(span_u - degree_u + r, span_v - degree_v + s);
Expand All @@ -197,7 +197,7 @@ surfaceDerivatives(unsigned int degree_u, unsigned int degree_v, const std::vect

for (int l = 0; l <= dd; l++)
{
for (int s = 0; s <= degree_v; s++)
for (unsigned int s = 0; s <= degree_v; s++)
{
surf_ders(k, l) += ders_v(l, s) * temp[s];
}
Expand Down
44 changes: 22 additions & 22 deletions include/tinynurbs/core/modify.h
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ void curveKnotInsert(unsigned int deg, const std::vector<T> &knots,
}
// Copy unaffected control points
new_cp.resize(cp.size() + r);
for (int i = 0; i < k - deg + 1; ++i)
for (unsigned int i = 0; i < k - deg + 1; ++i)
{
new_cp[i] = cp[i];
}
Expand All @@ -80,15 +80,15 @@ void curveKnotInsert(unsigned int deg, const std::vector<T> &knots,
// Copy affected control points
std::vector<glm::vec<dim, T>> tmp;
tmp.resize(deg - s + 1);
for (int i = 0; i < deg - s + 1; ++i)
for (unsigned int i = 0; i < deg - s + 1; ++i)
{
tmp[i] = cp[k - deg + i];
}
// Modify affected control points
for (int j = 1; j <= r; ++j)
for (unsigned int j = 1; j <= r; ++j)
{
int L = k - deg + j;
for (int i = 0; i < deg - j - s + 1; ++i)
for (unsigned int i = 0; i < deg - j - s + 1; ++i)
{
T a = (u - knots[L + i]) / (knots[i + k + 1] - knots[L + i]);
tmp[i] = (1 - a) * tmp[i] + a * tmp[i + 1];
Expand All @@ -97,7 +97,7 @@ void curveKnotInsert(unsigned int deg, const std::vector<T> &knots,
new_cp[k + r - j - s] = tmp[deg - j - s];
}
int L = k - deg + r;
for (int i = L + 1; i < k - s; ++i)
for (unsigned int i = L + 1; i < k - s; ++i)
{
new_cp[i] = tmp[i - L];
}
Expand Down Expand Up @@ -139,7 +139,7 @@ void surfaceKnotInsert(unsigned int degree, const std::vector<T> &knots,
{
new_knots[i] = knots[i];
}
for (int i = 1; i <= r; ++i)
for (unsigned int i = 1; i <= r; ++i)
{
new_knots[span + i] = knot;
}
Expand All @@ -149,10 +149,10 @@ void surfaceKnotInsert(unsigned int degree, const std::vector<T> &knots,
}
// Compute alpha
array2<T> alpha(degree - s, r + 1, T(0));
for (int j = 1; j <= r; ++j)
for (unsigned int j = 1; j <= r; ++j)
{
int L = span - degree + j;
for (int i = 0; i <= degree - j - s; ++i)
for (unsigned int i = 0; i <= degree - j - s; ++i)
{
alpha(i, j) = (knot - knots[L + i]) / (knots[i + span + 1] - knots[L + i]);
}
Expand All @@ -171,7 +171,7 @@ void surfaceKnotInsert(unsigned int degree, const std::vector<T> &knots,
for (int col = 0; col < cp.cols(); ++col)
{
// Copy unaffected control points
for (int i = 0; i <= span - degree; ++i)
for (unsigned int i = 0; i <= span - degree; ++i)
{
new_cp(i, col) = cp(i, col);
}
Expand All @@ -180,15 +180,15 @@ void surfaceKnotInsert(unsigned int degree, const std::vector<T> &knots,
new_cp(i + r, col) = cp(i, col);
}
// Copy affected control points to temp array
for (int i = 0; i < degree - s + 1; ++i)
for (unsigned int i = 0; i < degree - s + 1; ++i)
{
tmp[i] = cp(span - degree + i, col);
}
// Insert knot
for (int j = 1; j <= r; ++j)
for (unsigned int j = 1; j <= r; ++j)
{
int L = span - degree + j;
for (int i = 0; i <= degree - j - s; ++i)
for (unsigned int i = 0; i <= degree - j - s; ++i)
{
T a = alpha(i, j);
tmp[i] = (1 - a) * tmp[i] + a * tmp[i + 1];
Expand All @@ -197,7 +197,7 @@ void surfaceKnotInsert(unsigned int degree, const std::vector<T> &knots,
new_cp(span + r - j - s, col) = tmp[degree - j - s];
}
int L = span - degree + r;
for (int i = L + 1; i < span - s; ++i)
for (unsigned int i = L + 1; i < span - s; ++i)
{
new_cp(i, col) = tmp[i - L];
}
Expand All @@ -213,7 +213,7 @@ void surfaceKnotInsert(unsigned int degree, const std::vector<T> &knots,
for (int row = 0; row < cp.rows(); ++row)
{
// Copy unaffected control points
for (int i = 0; i <= span - degree; ++i)
for (unsigned int i = 0; i <= span - degree; ++i)
{
new_cp(row, i) = cp(row, i);
}
Expand All @@ -222,15 +222,15 @@ void surfaceKnotInsert(unsigned int degree, const std::vector<T> &knots,
new_cp(row, i + r) = cp(row, i);
}
// Copy affected control points to temp array
for (int i = 0; i < degree - s + 1; ++i)
for (unsigned int i = 0; i < degree - s + 1; ++i)
{
tmp[i] = cp(row, span - degree + i);
}
// Insert knot
for (int j = 1; j <= r; ++j)
for (unsigned int j = 1; j <= r; ++j)
{
int L = span - degree + j;
for (int i = 0; i <= degree - j - s; ++i)
for (unsigned int i = 0; i <= degree - j - s; ++i)
{
T a = alpha(i, j);
tmp[i] = (1 - a) * tmp[i] + a * tmp[i + 1];
Expand All @@ -239,7 +239,7 @@ void surfaceKnotInsert(unsigned int degree, const std::vector<T> &knots,
new_cp(row, span + r - j - s) = tmp[degree - j - s];
}
int L = span - degree + r;
for (int i = L + 1; i < span - s; ++i)
for (unsigned int i = L + 1; i < span - s; ++i)
{
new_cp(row, i) = tmp[i - L];
}
Expand Down Expand Up @@ -284,7 +284,7 @@ void curveSplit(unsigned int degree, const std::vector<T> &knots,
}
left_knots.push_back(u);

for (int i = 0; i < degree + 1; ++i)
for (unsigned int i = 0; i < degree + 1; ++i)
{
right_knots.push_back(u);
}
Expand Down Expand Up @@ -340,7 +340,7 @@ void surfaceSplit(unsigned int degree, const std::vector<T> &knots,
}
left_knots.push_back(param);

for (int i = 0; i < degree + 1; ++i)
for (unsigned int i = 0; i < degree + 1; ++i)
{
right_knots.push_back(param);
}
Expand All @@ -354,7 +354,7 @@ void surfaceSplit(unsigned int degree, const std::vector<T> &knots,
{
size_t ii = 0;
left_control_points.resize(ks + r, tmp_cp.cols());
for (int i = 0; i < ks + r; ++i)
for (unsigned int i = 0; i < ks + r; ++i)
{
for (int j = 0; j < tmp_cp.cols(); ++j)
{
Expand All @@ -377,7 +377,7 @@ void surfaceSplit(unsigned int degree, const std::vector<T> &knots,
left_control_points.resize(tmp_cp.rows(), ks + r);
for (int i = 0; i < tmp_cp.rows(); ++i)
{
for (int j = 0; j < ks + r; ++j)
for (unsigned int j = 0; j < ks + r; ++j)
{
left_control_points[ii++] = tmp_cp(i, j);
}
Expand Down