Documentation

Overview

    Package physics implements a basic physics engine.

    Package physics implements a basic physics engine.

    Index

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    This section is empty.

    Types

    type GaussSeidel

    type GaussSeidel struct {
    	Solver
    	// contains filtered or unexported fields
    }

      GaussSeidel equation solver. See https://en.wikipedia.org/wiki/Gauss-Seidel_method. The number of solver iterations determines the quality of the solution. More iterations yield a better solution but require more computation.

      func NewGaussSeidel

      func NewGaussSeidel() *GaussSeidel

        NewGaussSeidel creates and returns a pointer to a new GaussSeidel constraint equation solver.

        func (*GaussSeidel) Reset

        func (gs *GaussSeidel) Reset(numBodies int)

        func (*GaussSeidel) Solve

        func (gs *GaussSeidel) Solve(dt float32, nBodies int) *Solution

          Solve

          type ISolver

          type ISolver interface {
          	Solve(dt float32, nBodies int) *Solution // Solve should return the number of iterations performed
          	AddEquation(eq equation.IEquation)
          	RemoveEquation(eq equation.IEquation) bool
          	ClearEquations()
          }

            ISolver is the interface type for all constraint solvers.

            type Solution

            type Solution struct {
            	VelocityDeltas        []math32.Vector3
            	AngularVelocityDeltas []math32.Vector3
            	Iterations            int
            }

              Solution represents a solver solution

              type Solver

              type Solver struct {
              	Solution
              	// contains filtered or unexported fields
              }

                Constraint equation solver base class.

                func (*Solver) AddEquation

                func (s *Solver) AddEquation(eq equation.IEquation)

                  AddEquation adds an equation to the solver.

                  func (*Solver) ClearEquations

                  func (s *Solver) ClearEquations()

                    ClearEquations removes all equations from the solver.

                    func (*Solver) RemoveEquation

                    func (s *Solver) RemoveEquation(eq equation.IEquation) bool

                      RemoveEquation removes the specified equation from the solver. Returns true if found, false otherwise.

                      Source Files