buffalo_wings.airfoil.PolylineCurve
- class buffalo_wings.airfoil.PolylineCurve(*, points)[source]
Bases:
CurvePiecewise-linear open-curve runtime for authored section geometry.
Notes
The native parameter
uis the normalized cumulative arc-length fraction along the polyline, so every segment occupies a parameter span proportional to its physical length.Methods
arc_length(u_s, u_e)Calculate the arc-length distance between two points on surface.
Return the breakpoint locations in arc-length coordinates.
breakpoint_parameter_limits(*, index)Return parameter limits for one breakpoint.
Return normalized arc-fraction breakpoints along the polyline.
k(u)Calculate the curvature at parameter location.
normal(u)Calculate the unit normal at parameter location.
tangent(u)Calculate the unit tangent at parameter location.
u_from_s(s)Calculate the parametric value for arc-length provided.
xy_from_s(s)Return curve coordinates at arc-length locations.
xy_from_u(u)Evaluate polyline coordinates by arc-fraction interpolation.
xy_s(s)Calculate first derivatives at arc-length location.
xy_s_breakpoint(*, index)Return both sides of first derivatives at a breakpoint.
xy_ss(s)Calculate second derivatives at arc-length location.
xy_ss_breakpoint(*, index)Return one-sided second derivatives at a breakpoint.
xy_u(u)Return the piecewise-constant derivative on each segment.
xy_u_breakpoint(*, index)Return both sides of first derivatives at one breakpoint.
xy_uu(u)Return zero second derivatives away from breakpoints.
xy_uu_breakpoint(*, index)Return one-sided second derivatives at one breakpoint.
Attributes
Return the total curve length.
Return the stored polyline vertices as an
(n, 2)array.- property points: buffalo_core.typing.FloatArray
Return the stored polyline vertices as an
(n, 2)array.
- xy_from_u(u)[source]
Evaluate polyline coordinates by arc-fraction interpolation.
- Return type:
tuple[TypeAliasForwardRef(‘buffalo_core.typing.FloatArray’), TypeAliasForwardRef(‘buffalo_core.typing.FloatArray’)]
- xy_u(u)[source]
Return the piecewise-constant derivative on each segment.
- Return type:
tuple[TypeAliasForwardRef(‘buffalo_core.typing.FloatArray’), TypeAliasForwardRef(‘buffalo_core.typing.FloatArray’)]
- xy_uu(u)[source]
Return zero second derivatives away from breakpoints.
- Return type:
tuple[TypeAliasForwardRef(‘buffalo_core.typing.FloatArray’), TypeAliasForwardRef(‘buffalo_core.typing.FloatArray’)]
- breakpoints()[source]
Return normalized arc-fraction breakpoints along the polyline.
- Return type:
list[TypeAliasForwardRef(‘buffalo_core.typing.FloatScalar’)]
- arc_length(u_s, u_e)
Calculate the arc-length distance between two points on surface.
- Parameters:
u_s (
buffalo_core.typing.FloatScalar) – Start point of distance calculation.u_e (
buffalo_core.typing.FloatInput) – End point of distance calculation.
- Returns:
Distance from start point to end point.
- Return type:
buffalo_core.typing.FloatArray
- arc_length_breakpoints()
Return the breakpoint locations in arc-length coordinates.
- Returns:
Arc-length coordinates measured from the minimum native parameter.
- Return type:
list[FloatScalar]
Notes
These values include the two curve endpoints as boundary markers. Interior breakpoints correspond to the native-parameter interior breakpoints returned by
breakpoints().
- breakpoint_parameter_limits(*, index)
Return parameter limits for one breakpoint.
Notes
Endpoint breakpoints return the exact boundary parameter. Interior breakpoints return nearby one-sided parameters chosen within the neighboring breakpoint interval for the current generic breakpoint-side implementation. These limits exist to support the sampled fallback in the generic
*_breakpointmethods and should not be treated as the primary source of truth when a subclass can provide exact one-sided values directly.- Return type:
tuple[TypeAliasForwardRef(‘buffalo_core.typing.FloatScalar’), TypeAliasForwardRef(‘buffalo_core.typing.FloatScalar’)]
- k(u)
Calculate the curvature at parameter location.
- Parameters:
u (
buffalo_core.typing.FloatInput) – Parameter for desired locations.- Returns:
Curvature of surface matching the normalized shape of
u.- Return type:
buffalo_core.typing.FloatArray
- property length: buffalo_core.typing.FloatScalar
Return the total curve length.
- Returns:
Arc length measured from the minimum to maximum native parameter.
- Return type:
buffalo_core.typing.FloatScalar
- normal(u)
Calculate the unit normal at parameter location.
- Parameters:
u (
buffalo_core.typing.FloatInput) – Parameter for desired locations.- Returns:
Tuple
(n_x, n_y)offloat64arrays matching the normalized shape ofu.- Return type:
tuple[FloatArray,FloatArray]
- tangent(u)
Calculate the unit tangent at parameter location.
- Parameters:
u (
buffalo_core.typing.FloatInput) – Parameter for desired locations.- Returns:
Tuple
(t_x, t_y)offloat64arrays matching the normalized shape ofu.- Return type:
tuple[FloatArray,FloatArray]
- u_from_s(s)
Calculate the parametric value for arc-length provided.
- Parameters:
s (
buffalo_core.typing.FloatInput) – Arc-length location of point.- Returns:
Parametric value matching the normalized shape of
s.- Return type:
buffalo_core.typing.FloatArray- Raises:
ValueError – When arc-length provided lies outside the curve arc-length range.
- xy_from_s(s)
Return curve coordinates at arc-length locations.
- Parameters:
s (
buffalo_core.typing.FloatInput) – Arc length location of point.- Returns:
(x, y)coordinates matching the normalized shape ofs.- Return type:
tuple[FloatArray,FloatArray]
- xy_s(s)
Calculate first derivatives at arc-length location.
- Parameters:
s (
buffalo_core.typing.FloatInput) – Arc length location of point.- Returns:
(dx/ds, dy/ds)coordinates matching the normalized shape ofs.- Return type:
tuple[FloatArray,FloatArray]
Notes
If
smatches one ofarc_length_breakpoints()exactly, this method returns theminus-side derivative limit. Subclasses should overridexy_s_breakpoint()when exact one-sided breakpoint derivatives are available analytically.
- xy_s_breakpoint(*, index)
Return both sides of first derivatives at a breakpoint.
- Parameters:
index (
int) – Index intoarc_length_breakpoints().- Returns:
((x_s_minus, y_s_minus), (x_s_plus, y_s_plus)).- Return type:
CurveBreakpointSides
Notes
Endpoint breakpoints return the same boundary value for both entries. This method is the exact-breakpoint contract that pairs with
xy_s(). Subclasses should override it whenever exact one-sided arc-length derivatives are available. The generic implementation evaluates nearby one-sided native- parameter samples and therefore serves only as an approximation fallback.
- xy_ss(s)
Calculate second derivatives at arc-length location.
- Parameters:
s (
buffalo_core.typing.FloatInput) – Arc length location of point.- Returns:
(d^2x/ds^2, d^2y/ds^2)coordinates matching the normalized shape ofs.- Return type:
tuple[FloatArray,FloatArray]
Notes
If
smatches one ofarc_length_breakpoints()exactly, this method returns theminus-side derivative limit. Subclasses should overridexy_ss_breakpoint()when exact one-sided breakpoint second derivatives are available analytically.
- xy_ss_breakpoint(*, index)
Return one-sided second derivatives at a breakpoint.
- Parameters:
index (
int) – Index intoarc_length_breakpoints().- Returns:
((x_ss_minus, y_ss_minus), (x_ss_plus, y_ss_plus)).- Return type:
CurveBreakpointSides
Notes
Endpoint breakpoints return the same boundary value for both entries. This method is the exact-breakpoint contract that pairs with
xy_ss(). Subclasses should override it whenever exact one-sided arc-length second derivatives are available. The generic implementation evaluates nearby one-sided native- parameter samples and therefore serves only as an approximation fallback.
- xy_u_breakpoint(*, index)
Return both sides of first derivatives at one breakpoint.
- Parameters:
index (
int) – Index intobreakpoints().- Returns:
((x_u_minus, y_u_minus), (x_u_plus, y_u_plus)).- Return type:
CurveBreakpointSides
Notes
Endpoint breakpoints return the same boundary value for both entries. This method is the exact-breakpoint contract that pairs with
xy_u(). Subclasses should override it whenever they can return exact one-sided derivative values. The generic implementation evaluates nearby one-sided parameter samples and therefore serves only as an approximation fallback.
- xy_uu_breakpoint(*, index)
Return one-sided second derivatives at one breakpoint.
- Parameters:
index (
int) – Index intobreakpoints().- Returns:
((x_uu_minus, y_uu_minus), (x_uu_plus, y_uu_plus)).- Return type:
CurveBreakpointSides
Notes
Endpoint breakpoints return the same boundary value for both entries. This method is the exact-breakpoint contract that pairs with
xy_uu(). Subclasses should override it whenever they can return exact one-sided second-derivative values. The generic implementation evaluates nearby one-sided parameter samples and therefore serves only as an approximation fallback.