Houdini 20.5 Nodes Geometry nodes

Circle Spline geometry node

Evaluate and resample blended interpolating splines defined by one or more control polygons.

On this page
Since 19.0

Overview

This node is used to sample a type of interpolating spline defined by one or more control polygons. Splines are defined using a novel spline formulation involving a blend between individual spline segments to create a C2 continuous curve with some nice properties.

Using the Hybrid Spline type, bounded, C2 continuous curves can be formed that are able to make nice circular and elliptical segments, as well as straight lines.

Using the Helix Spline type, bounded, C2 continuous curves can be formed that are able to form nice ellipses.

Using a form of segment blending, combinations of different spline types can be used to allow circular type curves in some areas, with helices in others. Splines have no constraints on the combinations of possible segment types.

Inputs

First input

The control polygon(s).

Parameters

Group

Points to include as control points.

Spline Type

The type of spline to interpolate the control points using.

Hybrid

Uses a combination of Circular and Elliptical Splines to create nice circular or elliptical arcs. This type of spline generally gives nice behaving curves that are bounded and non self-intersecting.

Circle

Splines use circles that interpolate 3 points.

Ellipse

Splines use ellipses that interpolate 3 points, where the central point is the first axis, the further point from the center is the second axis, and the ellipse is fitted to pass through the remaining point.

Helix

Splines are defined by a helix-like curve created as a blend of two helix segments sharing a common axis. The first segment interpolates the first and second point. The second segment interpolates the second and third point. The segments are blended together to provide a C2 continuous curve with points at angles of -180, 0, and 180.

Override Spline Type with Attribute

When enabled the SOP will pick up a splinetype string attribute on the input points, indicating what type of spline should be used for the segment centered at the given point. Adjacent segments can have any combination of spline types, and the resulting curve will always be C2 continuous (Provided Re-parametrization Strength is non-zero). The splinetype attribute may be one of 'hybrid','circle','ellipse', or 'helix'.

Helix Type

The type of helix spline used when Spline Type is set to Helix. This option only changes the method of choosing the axis of the helix.

Directional

The axis of the helix is defined as the vector between the first and third points. Helices of this type will have an equal radius for both segments, but the elongation may not be equal for both segments.

Balanced

The axis of the helix is chosen such that the distance, along the axis (projected distance), between the first and second point, and the second and third point are equal. Helices of this type will have an equal elongation for both segments, but the radius may not be equal for both segments.

Blended

The angle p1-p2-p3 is used to set the axis as a weighted blend of the Directional and Balanced typed. At an angle of 180 degrees, the axis will be equal to that of Directional. At an angle of 0 degrees, the axis will be equal to that of Balanced.

Re-parametrization Strength

Controls the influence of a segments parametrization on neighboring segments. At a value of 0.0, curves have no influence on the parametrization of neighboring segments, these will feature parameter speed discontinuities at control points. At a value of 1.0, segments have a strong influence on the parametrization of neighboring segments, allowing for nice transitions in speed between segments. At any value other than 0.0, the resulting parametrization is C2 continuous.

Adjust by Pseudo-Arclength

Whether to shift sample positions based on the approximate arclength to approximate an even spacing between samples. When enabled, the total number of samples on the curve is unchanged, however there will no longer be exactly Segment Divisions number of samples between each pair of control points.

Arclength Samples

The number of additional curve samples between each pair of sampled positions to more accurately compute the arclength between successive samples.

Segment Divisions

How many times to sample each spline segment.

Use Curveu Output

Whether to output the curveu of each point as an attribute.

Output Curveu

The name of the attribute to be output containing the curveu of each point.

Use Tangent Attrib

Whether to output the tangent of the curve as an attribute.

Output Tangent

The name of the attribute to be output containing the curve tangent.

Fitting Iteration Limit

Controls the limit to the number of bisection iterations when fitting ellipses. If the ellipse is fitted within the Error Tolerance before this limit is reached, then it will still break out early.

Error Tolerance

Controls the error tolerance when fitting ellipses, circles, and straight lines.

See also

Geometry nodes