abstract class CP::Constraint

Overview

A constraint is something that describes how two bodies interact with each other (how they constrain each other). Constraints can be simple joints that allow bodies to pivot around each other like the bones in your body, or they can be more abstract like the gear joint or motors.

Direct Known Subclasses

Defined in:

chipmunk/constraint.cr

Instance Method Summary

Instance Method Detail

def bodies : Tuple(Body, Body) #

Get the bodies the constraint is attached to.


[View source]
def body_a : Body #

Get the first body the constraint is attached to.


[View source]
def body_b : Body #

Get the second body the constraint is attached to.


[View source]
def collide_bodies=(collide_bodies : Bool) #

[View source]
def collide_bodies? : Bool #

Are the two bodies connected by the constraint allowed to collide or not?

(defaults to false)


[View source]
def error_bias : Float64 #

Rate at which joint error is corrected.

Defaults to (1.0 - 0.1) ** 60.0 meaning that it will correct 10% of the error every 1/60th of a second.


[View source]
def error_bias=(error_bias : Number) #

[View source]
def impulse : Float64 #

Get the most recent impulse applied by this constraint.

To convert this to a force, divide by the timestep passed to Space#step. You can use this to implement breakable joints to check if the force they attempted to apply exceeded a certain threshold.


[View source]
def max_bias : Float64 #

The maximum rate at which joint error is corrected.

(defaults to INFINITY)


[View source]
def max_bias=(max_bias : Number) #

[View source]
def max_force : Float64 #

The maximum force that this constraint is allowed to use.

(defaults to INFINITY)


[View source]
def max_force=(max_force : Number) #

[View source]
def post_solve(space : Space) #

The post-solve method that is called before the solver runs (can be overridden in a subclass).


[View source]
def pre_solve(space : Space) #

The pre-solve method that is called before the solver runs (can be overridden in a subclass).


[View source]
def space : Space | Nil #

Get the Space this constraint is added to.


[View source]