51 const gsl::span<const NurbsCurve> &curves,
61 const gsl::span<const NurbsCurve> &curves,
62 const gsl::span<const float> ¶meters,
86 static NurbsSurface fit_open(
const gsl::span<const Imath::V3f>& points,
const gsl::span<const float>& parameters_u,
const gsl::span<const float>& parameters_v,
const gsl::span<const float>& knots_u,
const gsl::span<const float>& knots_v,
int pu,
int pv,
int du,
int dv);
95 static NurbsSurface fit_close_u(
const gsl::span<const Imath::V3f>& points,
const gsl::span<const float>& parameters_u,
const gsl::span<const float>& parameters_v,
const gsl::span<const float>& knots_u,
const gsl::span<const float>& knots_v,
int pu,
int pv,
int du,
int dv);
104 static NurbsSurface fit_close_v(
const gsl::span<const Imath::V3f>& points,
const gsl::span<const float>& parameters_u,
const gsl::span<const float>& parameters_v,
const gsl::span<const float>& knots_u,
const gsl::span<const float>& knots_v,
int pu,
int pv,
int du,
int dv);
119 int control_points_u()
const;
122 int control_points_v()
const;
125 int degree_u()
const;
128 int degree_v()
const;
161 Imath::V3d evaluate(
double u,
double v)
const;
164 Imath::M44d matrix_at(
double u,
double v,
double n)
const;
168 NurbsCurve iso_curve(
float u,
bool use_v)
const;
172 std::pair<Imath::V3f,Imath::V3f> evaluate_dp(
float u,
float v,
bool previous_u=
false,
bool previous_v=
false)
const;
179 float error = 0.001f,
181 const std::shared_ptr<const NurbsSurfaceClosestCache>& cache =
nullptr 186 std::shared_ptr<const NurbsSurfaceClosestCache> closest_cache()
const;
189 Mesh tessellate(
int subdivision_u,
int subdivision_v,
bool compute_uv_and_normals =
false)
const;
192 void remap_knots_u(
float new_min,
float new_max);
195 void remap_knots_v(
float new_min,
float new_max);
201 void refine_knots_u(
const gsl::span<const float>& new_knots);
204 void refine_knots_v(
const gsl::span<const float>& new_knots);
210 NurbsSurface(std::shared_ptr<Impl> impl) { _impl=impl; }
static const NurbsSurface default_value
The default value.
Definition: NurbsSurface.h:207
Definition: ImathFrame.h:42
Definition: ImathFrame.h:43
A nurbs surface value.
Definition: NurbsSurface.h:30
A mesh value.
Definition: Mesh.h:33
Definition: NurbsSurface.h:24
void error(const char *format, const Args &... args)
Log an error message using the Rumba logger.
Definition: Logger.h:50
This version of the SDK is unstable, i-e, it may change with no warning.
Definition: AddCurveAction.h:20
A nurbs curve value.
Definition: NurbsCurve.h:26
#define MAQUINA_EXPORT
Definition: Export.h:31
Definition: ImathVec.h:61
A writable buffer for basic types like floats, integers, Imath::V3f, Imath::M44f..
Definition: Buffer.h:111
Mode
The surface curves mode.
Definition: NurbsSurface.h:34
A set of 3d points.
Definition: Points.h:25
Base class of all Rumba values.
Definition: Value.h:34