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() |
|