Distance Constraint

struct nvDistanceConstraint

Distance constraint definition.

It constraints the distance of two points on the two bodies to be constant. This acts like as if the two bodies are linked with a solid bar. TODO: lower upper limit TODO: explain spring

struct nvDistanceConstraintInitializer

Distance constraint initializer information.

This struct holds basic information for initializing and can be reused for multiple constraints if the bodies are changed.

Methods

nvConstraint *nvDistanceConstraint_new(nvDistanceConstraintInitializer init)

Create a new distance constraint.

Leave one of the body parameters as NULL to link the body to world. Don’t forget to change the anchor point to be in world space as well.

Returns NULL on error. Use nv_get_error to get more information.

Parameters:

init – Initializer info

Returns:

nvConstraint *

nvRigidBody *nvDistanceConstraint_get_body_a(const nvConstraint *cons)

Get body A of the constraint.

Parameters:

cons – Constraint

Returns:

nvRigidBody *

nvRigidBody *nvDistanceConstraint_get_body_b(const nvConstraint *cons)

Get body B of the constraint.

Parameters:

cons – Constraint

Returns:

nvRigidBody *

void nvDistanceConstraint_set_length(nvConstraint *cons, nv_float length)

Set length of the distance constraint.

Parameters:
  • cons – Constraint

  • length – Length

nv_float nvDistanceConstraint_get_length(const nvConstraint *cons)

Get length of the distance constraint.

Parameters:

cons – Constraint

Returns:

nv_float

void nvDistanceConstraint_set_anchor_a(nvConstraint *cons, nvVector2 anchor_a)

Set local anchor point on body A.

Parameters:
  • cons – Constraint

  • anchor_a – Anchor

nvVector2 nvDistanceConstraint_get_anchor_a(const nvConstraint *cons)

Get local anchor point on body A.

Parameters:

cons – Constraint

Returns:

nvVector2

void nvDistanceConstraint_set_anchor_b(nvConstraint *cons, nvVector2 anchor_b)

Set local anchor point on body B.

Parameters:
  • cons – Constraint

  • anchor_b – Anchor

nvVector2 nvDistanceConstraint_get_anchor_b(const nvConstraint *cons)

Get local anchor point on body B.

Parameters:

cons – Constraint

Returns:

nvVector2

void nvDistanceConstraint_set_max_force(nvConstraint *cons, nv_float max_force)

Set max force used to solve the constraint.

Parameters:
  • cons – Constraint

  • max_force – Max force

nv_float nvDistanceConstraint_get_max_force(const nvConstraint *cons)

Get max force used to solve the constraint.

Parameters:

cons – Constraint

Returns:

nv_float

void nvDistanceConstraint_set_spring(nvConstraint *cons, nv_bool spring)

Enable/disable spring behavior.

Parameters:
  • cons – Constraint

  • spring – Bool

nv_bool nvDistanceConstraint_get_spring(const nvConstraint *cons)

Get whether spring behavior is enabled or not.

Parameters:

cons – Constraint

Returns:

nv_bool

void nvDistanceConstraint_set_hertz(nvConstraint *cons, nv_float hertz)

Set spring frequency.

Parameters:
  • cons – Constraint

  • hertz – Frequency

nv_float nvDistanceConstraint_get_hertz(const nvConstraint *cons)

Get spring frequency.

Parameters:

cons – Constraint

Returns:

nv_float

void nvDistanceConstraint_set_damping(nvConstraint *cons, nv_float damping)

Set spring damping ratio.

Parameters:
  • cons – Constraint

  • damping – Damping ratio

nv_float nvDistanceConstraint_get_damping(const nvConstraint *cons)

Get spring damping ratio.

Parameters:

cons – Constraint

Returns:

nv_float