A tool for evaluating multiple NURBS curve/surface points using the GPU.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

31 lines
1.7 KiB

#include "NurbsEvaluator.cuh"
#include <cstdio>
int main() {
NurbsSurface::Evaluator nurbsSurfaceEvaluator({
{{-1, 0, 0}, {0, 1, 6}, {1, 0, 4}, {2, 0.5, 3}, {3, 3, 1}, {4, -5, 0}},
{{-2, 1, 1.2}, {1, 2, 3}, {2, 2, 3}, {-1, -0.3, 2}, {-1, 2, 0}, {7, -8, 2}},
{{-3.4, 2, 3}, {2, 3, 0}, {4, 3, 7}, {-2, 0, -0.2}, {1, 1.7, 5}, {9, -10.3, 6}},
{{-1.5, 3.2, 1}, {2.6, 7, -2}, {5, 0.8, 4.2}, {-4, 1, 4}, {2.1, 4, -2}, {11, -6, 4}},
{{-0.2, 2, 0}, {5, 3, 2}, {5, 1.5, 1.4}, {-3, 2, 5}, {0.8, 1.3, 0}, {15, -2, 0.9}},
{{3, 1.4, -1}, {6, 2, 4}, {-1, 0, -2}, {0, 2.8, 2}, {-0.5, 2, 1.2}, {7, -3, -2}},},
{0, 0, 0, 0.1, 0.5, 0.8, 1, 1, 1},
{0, 0, 0, 0.2, 0.7, 0.8, 1, 1, 1});
nurbsSurfaceEvaluator.setRecordTime(true);
nurbsSurfaceEvaluator.calculate(3, 4);
printf("==============================\n");
NurbsCurve::Evaluator nurbsCurveEvaluator(
{{-1, 0, 0},
{0, 1, 6},
{1, 0, 4},
{2, 0.5, 3},
{3, 3, 1},
{4, -5, 0}},
{0, 0, 0, 0.1, 0.5, 0.8, 1, 1, 1});
nurbsCurveEvaluator.setRecordTime(true);
nurbsCurveEvaluator.calculate(5);
return 0;
}