General Curves API mapping
Created by: portnov
In this issue I will try to outline a general API for all types of curves we are going to support.
Legend:
-
🆕 there is no such method in the base class yet, it has to be introduced to support features provided by one (or several) of backends. -
🚧 this method can and must be implemented in the base class by means by other (more basic) methods - there is a not-so-hard to implement numeric algorihtm -
❌ this method can not be implemented if the backend library does not support it (or it is too hard to implement it) -
❓ probably possible to implement without backend support, requires further investigation
General curves:
| SvCurve method | Geomdl | FreeCAD | rhino3dm |
|---|---|---|---|
| evaluate(t) | evaluate_single(t) | value(t) | PointAt(t) |
| evaluate_array(ts) | |||
| :new:: evaluate_even_t(n) | discretize() | ||
| :new:: evaluate_even_distance(n) | discretize() | ||
| calc_length | length() | ||
| tangent(t) | tangent() | tangent() | TangentAt() |
| tangent_array(ts) | |||
| second_derivative(t) | derivatives(t,2) | derivative2At(t) | |
| second_derivative_array(ts) | |||
| :new:: third_derivative(t) | derivatives(t,3) | derivative3At(t) | |
| third_derivative_array(ts) | |||
| :new:: derivatives(n, t) | derivatives(t,n) | ||
| derivatives_array(n,ts) | |||
| main_normal(t) | normal(t) | normal(t) | |
| main_normal_array(ts) | |||
| binormal(t) | binormal(t) | ||
| binormal_array(ts) | |||
| tangent_normal_binormal_array(ts) | |||
| frame_array(ts) | |||
| :new:: curvature(t) | curvature(t) | CurvatureAt(t) | |
| curvature_array(ts) | |||
| torsion_array(ts) | |||
|
|
intersectCC() | ||
|
|
intersectCS() | ||
|
|
parameter() | ||
|
|
parameterAtDistance() | ||
|
|
|
toNurbs() |
|
|
|
|
toBSpline() |
|