constraints.types.parallel.ParallelConstraint

constraints.types.parallel.ParallelConstraint(vector1, vector2, *, weight=1.0)

Constraint that forces two vectors to be parallel.

This is equivalent to AngleConstraint with angle=0 or angle=π.

Reduces DOF by 2 (two scalar equations from cross product = 0).

Parameters

Name Type Description Default
vector1 Vector First direction vector (Vector parameter) required
vector2 Vector Second direction vector (Vector parameter) required

Example

v1 = Vector([1, 0, 0], free=True, name='v1')
v2 = Vector([2, 0, 0], free=True, name='v2')
constraint = ParallelConstraint(v1, v2)

Methods

Name Description
compute_residual Compute parallel constraint residual: v1 × v2.
dof_reduction Parallel constraint adds 2 independent equations (cross product in 3D).
get_parameters Return both vectors involved in the parallel constraint.

compute_residual

constraints.types.parallel.ParallelConstraint.compute_residual(param_values)

Compute parallel constraint residual: v1 × v2.

Two vectors are parallel iff their cross product is zero.

Parameters

Name Type Description Default
param_values dict[str, Array] Dict with keys matching parameter names required

Returns

Name Type Description
Array Cross product (3D array, should be ~[0, 0, 0] when satisfied)

dof_reduction

constraints.types.parallel.ParallelConstraint.dof_reduction()

Parallel constraint adds 2 independent equations (cross product in 3D).

get_parameters

constraints.types.parallel.ParallelConstraint.get_parameters()

Return both vectors involved in the parallel constraint.