Documentation

Overview

    Package constraint implements physics constraints.

    Index

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    This section is empty.

    Types

    type ConeTwist

    type ConeTwist struct {
    	PointToPoint
    	// contains filtered or unexported fields
    }

      ConeTwist constraint.

      func NewConeTwist

      func NewConeTwist(bodyA, bodyB IBody, pivotA, pivotB, axisA, axisB *math32.Vector3, angle, twistAngle, maxForce float32) *ConeTwist

        NewConeTwist creates and returns a pointer to a new ConeTwist constraint object.

        func (*ConeTwist) Update

        func (ctc *ConeTwist) Update()

          Update updates the equations with data.

          type Constraint

          type Constraint struct {
          	// contains filtered or unexported fields
          }

            Constraint base struct.

            func (*Constraint) AddEquation

            func (c *Constraint) AddEquation(eq equation.IEquation)

              AddEquation adds an equation to the constraint.

              func (*Constraint) BodyA

              func (c *Constraint) BodyA() IBody

              func (*Constraint) BodyB

              func (c *Constraint) BodyB() IBody

              func (*Constraint) CollideConnected

              func (c *Constraint) CollideConnected() bool

              func (*Constraint) Equations

              func (c *Constraint) Equations() []equation.IEquation

                Equations returns the constraint's equations.

                func (*Constraint) SetEnabled

                func (c *Constraint) SetEnabled(state bool)

                  SetEnable sets the enabled flag of the constraint equations.

                  type Distance

                  type Distance struct {
                  	Constraint
                  	// contains filtered or unexported fields
                  }

                    Distance is a distance constraint. Constrains two bodies to be at a constant distance from each others center of mass.

                    func NewDistance

                    func NewDistance(bodyA, bodyB IBody, distance, maxForce float32) *Distance

                      NewDistance creates and returns a pointer to a new Distance constraint object.

                      func (*Distance) Update

                      func (dc *Distance) Update()

                        Update updates the equation with data.

                        type Hinge

                        type Hinge struct {
                        	PointToPoint
                        	// contains filtered or unexported fields
                        }

                          Hinge constraint. Think of it as a door hinge. It tries to keep the door in the correct place and with the correct orientation.

                          func NewHinge

                          func NewHinge(bodyA, bodyB IBody, pivotA, pivotB, axisA, axisB *math32.Vector3, maxForce float32) *Hinge

                            NewHinge creates and returns a pointer to a new Hinge constraint object.

                            func (*Hinge) SetMotorEnabled

                            func (hc *Hinge) SetMotorEnabled(state bool)

                            func (*Hinge) SetMotorMaxForce

                            func (hc *Hinge) SetMotorMaxForce(maxForce float32)

                            func (*Hinge) SetMotorSpeed

                            func (hc *Hinge) SetMotorSpeed(speed float32)

                            func (*Hinge) Update

                            func (hc *Hinge) Update()

                              Update updates the equations with data.

                              type IBody

                              type IBody interface {
                              	equation.IBody
                              	WakeUp()
                              	VectorToWorld(*math32.Vector3) math32.Vector3
                              	PointToLocal(*math32.Vector3) math32.Vector3
                              	VectorToLocal(*math32.Vector3) math32.Vector3
                              	Quaternion() *math32.Quaternion
                              }

                              type IConstraint

                              type IConstraint interface {
                              	Update() // Update all the equations with data.
                              	Equations() []equation.IEquation
                              	CollideConnected() bool
                              	BodyA() IBody
                              	BodyB() IBody
                              }

                              type Lock

                              type Lock struct {
                              	PointToPoint
                              	// contains filtered or unexported fields
                              }

                                Lock constraint. Removes all degrees of freedom between the bodies.

                                func NewLock

                                func NewLock(bodyA, bodyB IBody, maxForce float32) *Lock

                                  NewLock creates and returns a pointer to a new Lock constraint object.

                                  func (*Lock) Update

                                  func (lc *Lock) Update()

                                    Update updates the equations with data.

                                    type PointToPoint

                                    type PointToPoint struct {
                                    	Constraint
                                    	// contains filtered or unexported fields
                                    }

                                      PointToPoint is an offset constraint. Connects two bodies at the specified offset points.

                                      func NewPointToPoint

                                      func NewPointToPoint(bodyA, bodyB IBody, pivotA, pivotB *math32.Vector3, maxForce float32) *PointToPoint

                                        NewPointToPoint creates and returns a pointer to a new PointToPoint constraint object.

                                        func (*PointToPoint) Update

                                        func (ptpc *PointToPoint) Update()

                                          Update updates the equations with data.