12 #include <unsupported/Eigen/Splines>
38 RowVectorXd knots(12);
53 ctrls << -0.370967741935484, 0.236842105263158,
54 -0.231401860693277, 0.442245185027632,
55 0.344361228532831, 0.773369994120753,
56 0.828990216203802, 0.106550882647595,
57 0.407270163678382, -1.043452922172848,
58 -0.488467813584053, -0.390098582530090,
59 -0.494657189446427, 0.054804824897884,
60 -0.370967741935484, 0.236842105263158;
61 ctrls.transposeInPlace();
69 RowVectorXd knots(11);
83 ctrls << 0.959743958516081, 0.340385726666133, 0.585267750979777,
84 0.223811939491137, 0.751267059305653, 0.255095115459269,
85 0.505957051665142, 0.699076722656686, 0.890903252535799,
86 0.959291425205444, 0.547215529963803, 0.138624442828679,
87 0.149294005559057, 0.257508254123736, 0.840717255983663,
88 0.254282178971531, 0.814284826068816, 0.243524968724989,
89 0.929263623187228, 0.349983765984809, 0.196595250431208,
90 0.251083857976031, 0.616044676146639, 0.473288848902729;
91 ctrls.transposeInPlace();
102 u << 0.351659507062997,
114 pts << 0.707620811535916, 0.510258911240815, 0.417485437023409,
115 0.603422256426978, 0.529498282727551, 0.270351549348981,
116 0.228364197569334, 0.423745615677815, 0.637687289287490,
117 0.275556796335168, 0.350856706427970, 0.684295784598905,
118 0.514519311047655, 0.525077224890754, 0.351628308305896,
119 0.724152914315666, 0.574461155457304, 0.469860285484058,
120 0.529365063753288, 0.613328702656816, 0.237837040141739,
121 0.522469395136878, 0.619099658652895, 0.237139665242069,
122 0.677357023849552, 0.480655768435853, 0.422227610314397,
123 0.247046593173758, 0.380604672404750, 0.670065791405019;
124 pts.transposeInPlace();
126 for (
int i=0;
i<u.size(); ++
i)
128 Vector3d
pt = spline(u(
i));
138 RowVectorXd u = spline.
knots();
141 pts << 0.959743958516081, 0.340385726666133, 0.585267750979777,
142 0.959743958516081, 0.340385726666133, 0.585267750979777,
143 0.959743958516081, 0.340385726666133, 0.585267750979777,
144 0.430282980289940, 0.713074680056118, 0.720373307943349,
145 0.558074875553060, 0.681617921034459, 0.804417124839942,
146 0.407076008291750, 0.349707710518163, 0.617275937419545,
147 0.240037008286602, 0.738739390398014, 0.324554153129411,
148 0.302434111480572, 0.781162443963899, 0.240177089094644,
149 0.251083857976031, 0.616044676146639, 0.473288848902729,
150 0.251083857976031, 0.616044676146639, 0.473288848902729,
151 0.251083857976031, 0.616044676146639, 0.473288848902729;
152 pts.transposeInPlace();
154 for (
int i=0;
i<u.size(); ++
i)
156 Vector3d
pt = spline(u(
i));
180 pts << -0.370967741935484, 0.236842105263158,
181 -0.152576775123250, 0.448975001279334,
182 -0.133417538277668, 0.461615613865667,
183 -0.053199060826740, 0.507630360006299,
184 0.114249591147281, 0.570414135097409,
185 0.377810316891987, 0.560497102875315,
186 0.665052120135908, -0.157557441109611,
187 0.516006487053228, -0.559763292174825,
188 -0.379486035348887, -0.331959640488223,
189 -0.462034726249078, -0.039105670080824,
190 -0.378730600917982, 0.225127015099919,
191 -0.370967741935484, 0.236842105263158;
192 pts.transposeInPlace();
194 for (
int i=0;
i<u.size(); ++
i)
196 Vector2d
pt = spline(u(
i));
207 ControlPointVectorType points = ControlPointVectorType::Random(2,100);
209 KnotVectorType chord_lengths;
218 PointType
pt = spline( chord_lengths(
i) );
219 PointType
ref = points.col(
i);
230 PointType
pt = spline( chord_lengths(
i) );
231 PointType
ref = points.col(
i);
243 const unsigned int dimension = 2;
244 const unsigned int degree = 3;
246 ArrayXXd points = ArrayXXd::Random(dimension, numPoints);
248 KnotVectorType knots;
251 ArrayXXd derivatives = ArrayXXd::Random(dimension, numPoints);
252 VectorXd derivativeIndices(numPoints);
255 derivativeIndices(
i) =
static_cast<double>(
i);
258 points, derivatives, derivativeIndices,
degree);
262 PointType
point = spline(knots(
i));
263 PointType referencePoint = points.col(
i);
265 PointType derivative = spline.
derivatives(knots(
i), 1).col(1);
266 PointType referenceDerivative = derivatives.col(
i);