Versions in this module Expand all Collapse all v1 v1.0.1 Jul 18, 2026 Changes in this version type CircleShape + Pos Vec2 type Shape + Radius float64 + ShapeType ShapeType v1.0.0 Jul 18, 2026 Changes in this version + const BodyAutoSleepFlag + const BodyAwakeFlag + const BodyBulletFlag + const BodyEnabledFlag + const BodyFixedRotationFlag + const BodyIslandFlag + const BodyToiFlag + const ContactBulletHitFlag + const ContactEnabledFlag + const ContactFilterFlag + const ContactIslandFlag + const ContactToiFlag + const ContactTouchingFlag + const Debug + const DebugSolver + const E_nullProxy + const LengthUnitsPerMeter + const MaxPolygonVertices + const PolygonRadius + var BendingModel = struct{ ... } + var ContactFeature_Type = struct{ ... } + var EPAxis_Type = struct{ ... } + var PointState = struct{ ... } + var SeparationFunction_Type = struct{ ... } + var StretchingModel = struct{ ... } + func AbsInt(v int) int + func AddType(createFcn ContactCreateFcn, destroyFcn ContactDestroyFcn, ...) + func AngularStiffness(stiffness *float64, damping *float64, frequencyHertz float64, ...) + func ChainAndCircleContact_Destroy(contact IContact) + func ChainAndPolygonContact_Destroy(contact IContact) + func CircleContact_Destroy(contact IContact) + func ClipSegmentToLine(vOut []ClipVertex, vIn []ClipVertex, normal Vec2, offset float64, ...) int + func CollideEdgeAndPolygon(manifold *Manifold, edgeA *EdgeShape, xfA Transform, polygonB *PolygonShape, ...) + func ComputeEdgeSeparation(polygonB tempPolygon, v1 Vec2, normal1 Vec2) ePAxis + func ComputePolygonSeparation(polygonB tempPolygon, v1 Vec2, v2 Vec2) ePAxis + func ContactDestroy(contact IContact) + func ContactInitializeRegisters() + func ContactUpdate(contact IContact, listener IContactListener) + func Distance(output *DistanceOutput, cache *simplexCache, input *DistanceInput) + func EdgeAndCircleContact_Destroy(contact IContact) + func EdgeAndPolygonContact_Destroy(contact IContact) + func FloatClamp(a, low, high float64) float64 + func GetPointStates(state1 *[maxManifoldPoints]uint8, state2 *[maxManifoldPoints]uint8, ...) + func InvSqrt(x float64) float64 + func IsPowerOfTwo(x uint32) bool + func IsProjectedPointOnLineSegment(v1 Vec2, v2 Vec2, p Vec2) bool + func IsValid(x float64) bool + func JointDestroy(joint IJoint) + func LinearStiffness(stiffness *float64, damping *float64, frequencyHertz float64, ...) + func MakeSimplexCache() simplexCache + func MixFriction(friction1, friction2 float64) float64 + func MixRestitution(restitution1, restitution2 float64) float64 + func MixRestitutionThreshold(threshold1, threshold2 float64) float64 + func NextPowerOfTwo(x uint32) uint32 + func PolygonAndCircleContact_Destroy(contact IContact) + func PolygonContact_Destroy(contact IContact) + func ShapeCast(output *ShapeCastOutput, input *ShapeCastInput) bool + func TestOverlapBoundingBoxes(a, b AABB) bool + func TestOverlapShapes(shapeA IShape, indexA int, shapeB IShape, indexB int, xfA Transform, ...) bool + func TimeOfImpact(output *TOIOutput, input *TOIInput) + func ValidateHull(hull *Hull) bool + func Vec2Cross(a, b Vec2) float64 + func Vec2Distance(a, b Vec2) float64 + func Vec2DistanceSquared(a, b Vec2) float64 + func Vec2Dot(a, b Vec2) float64 + func Vec2Equals(a, b Vec2) bool + func Vec2NotEquals(a, b Vec2) bool + func Vec3Dot(a, b Vec3) float64 + type AABB struct + LowerBound Vec2 + UpperBound Vec2 + func (bb *AABB) CombineInPlace(aabb AABB) + func (bb *AABB) CombineTwoInPlace(aabb1, aabb2 AABB) + func (bb AABB) Contains(aabb AABB) bool + func (bb AABB) GetCenter() Vec2 + func (bb AABB) GetExtents() Vec2 + func (bb AABB) GetPerimeter() float64 + func (bb AABB) IsValid() bool + func (bb AABB) RayCast(output *RayCastOutput, input RayCastInput) bool + type Body struct + UserData any + func NewBody(bd *BodyDef, world *World) *Body + func (body *Body) Advance(alpha float64) + func (body *Body) ApplyAngularImpulse(impulse float64, wake bool) + func (body *Body) ApplyForce(force Vec2, point Vec2, wake bool) + func (body *Body) ApplyForceToCenter(force Vec2, wake bool) + func (body *Body) ApplyLinearImpulse(impulse Vec2, point Vec2, wake bool) + func (body *Body) ApplyLinearImpulseToCenter(impulse Vec2, wake bool) + func (body *Body) ApplyTorque(torque float64, wake bool) + func (body *Body) CreateFixture(shape IShape, density float64) *Fixture + func (body *Body) CreateFixtureFromDef(def *FixtureDef) *Fixture + func (body *Body) DestroyFixture(fixture *Fixture) + func (body *Body) Dump() + func (body *Body) ResetMassData() + func (body *Body) SetActive(flag bool) + func (body *Body) SetAngularDamping(angularDamping float64) + func (body *Body) SetAngularVelocity(w float64) + func (body *Body) SetAwake(flag bool) + func (body *Body) SetBullet(flag bool) + func (body *Body) SetFixedRotation(flag bool) + func (body *Body) SetGravityScale(scale float64) + func (body *Body) SetLinearDamping(linearDamping float64) + func (body *Body) SetLinearVelocity(v Vec2) + func (body *Body) SetMassData(massData *MassData) + func (body *Body) SetSleepingAllowed(flag bool) + func (body *Body) SetTransform(position Vec2, angle float64) + func (body *Body) SetType(bt BodyType) + func (body *Body) SynchronizeFixtures() + func (body *Body) SynchronizeTransform() + func (body Body) Angle() float64 + func (body Body) ContactList() *ContactEdge + func (body Body) FixtureList() *Fixture + func (body Body) GetAngularDamping() float64 + func (body Body) GetAngularVelocity() float64 + func (body Body) GetWorld() *World + func (body Body) GravityScale() float64 + func (body Body) Inertia() float64 + func (body Body) IsAwake() bool + func (body Body) IsBullet() bool + func (body Body) IsDynamic() bool + func (body Body) IsEnabled() bool + func (body Body) IsFixedRotation() bool + func (body Body) IsKinematic() bool + func (body Body) IsSleepingAllowed() bool + func (body Body) IsStatic() bool + func (body Body) JointList() *JointEdge + func (body Body) LinearDamping() float64 + func (body Body) LinearVelocity() Vec2 + func (body Body) LinearVelocityFromLocalPoint(localPoint Vec2) Vec2 + func (body Body) LinearVelocityFromWorldPoint(worldPoint Vec2) Vec2 + func (body Body) LocalCenter() Vec2 + func (body Body) LocalPoint(worldPoint Vec2) Vec2 + func (body Body) LocalVector(worldVector Vec2) Vec2 + func (body Body) Mass() float64 + func (body Body) MassData() MassData + func (body Body) Next() *Body + func (body Body) Position() Vec2 + func (body Body) ShouldCollide(other *Body) bool + func (body Body) Transform() Transform + func (body Body) Type() BodyType + func (body Body) WorldCenter() Vec2 + func (body Body) WorldPoint(localPoint Vec2) Vec2 + func (body Body) WorldVector(localVector Vec2) Vec2 + type BodyDef struct + AllowSleep bool + Angle float64 + AngularDamping float64 + AngularVelocity float64 + Awake bool + Bullet bool + Enabled bool + FixedRotation bool + GravityScale float64 + LinearDamping float64 + LinearVelocity Vec2 + Position Vec2 + Type BodyType + UserData any + func DefaultBodyDef() BodyDef + func NewBodyDef() *BodyDef + type BodyType uint8 + const Dynamic + const Kinematic + const Static + type BroadPhase struct + M_moveBuffer []int + M_moveCapacity int + M_moveCount int + M_pairBuffer []Pair + M_pairCapacity int + M_pairCount int + M_proxyCount int + M_queryProxyId int + M_tree DynamicTree + func MakeBroadPhase() BroadPhase + func (bp *BroadPhase) BufferMove(proxyId int) + func (bp *BroadPhase) CreateProxy(aabb AABB, userData any) int + func (bp *BroadPhase) DestroyProxy(proxyId int) + func (bp *BroadPhase) MoveProxy(proxyId int, aabb AABB, displacement Vec2) + func (bp *BroadPhase) Query(callback TreeQueryCallback, aabb AABB) + func (bp *BroadPhase) QueryCallback(proxyId int) bool + func (bp *BroadPhase) RayCast(callback TreeRayCastCallback, input RayCastInput) + func (bp *BroadPhase) ShiftOrigin(newOrigin Vec2) + func (bp *BroadPhase) TouchProxy(proxyId int) + func (bp *BroadPhase) UnBufferMove(proxyId int) + func (bp *BroadPhase) UpdatePairs(addPairCallback BroadPhaseAddPairCallback) + func (bp BroadPhase) GetFatAABB(proxyId int) AABB + func (bp BroadPhase) GetProxyCount() int + func (bp BroadPhase) GetTreeBalance() int + func (bp BroadPhase) GetTreeHeight() int + func (bp BroadPhase) GetTreeQuality() float64 + func (bp BroadPhase) GetUserData(proxyId int) any + func (bp BroadPhase) TestOverlap(proxyIdA int, proxyIdB int) bool + type BroadPhaseAddPairCallback func(userDataA any, userDataB any) + type BroadPhaseQueryCallback func(fixture *Fixture) bool + type ChainAndCircleContact struct + func (contact *ChainAndCircleContact) Evaluate(manifold *Manifold, xfA Transform, xfB Transform) + type ChainAndPolygonContact struct + func (contact *ChainAndPolygonContact) Evaluate(manifold *Manifold, xfA Transform, xfB Transform) + type ChainShape struct + M_count int + M_nextVertex Vec2 + M_prevVertex Vec2 + M_vertices []Vec2 + func MakeChainShape() ChainShape + func (chain *ChainShape) Clear() + func (chain *ChainShape) CreateChain(vertices []Vec2, count int, prevVertex Vec2, nextVertex Vec2) + func (chain *ChainShape) CreateLoop(vertices []Vec2, count int) + func (chain *ChainShape) Destroy() + func (chain ChainShape) Clone() IShape + func (chain ChainShape) ComputeAABB(aabb *AABB, xf Transform, childIndex int) + func (chain ChainShape) ComputeMass(massData *MassData, density float64) + func (chain ChainShape) GetChildCount() int + func (chain ChainShape) GetChildEdge(edge *EdgeShape, index int) + func (chain ChainShape) RayCast(output *RayCastOutput, input RayCastInput, xf Transform, childIndex int) bool + func (chain ChainShape) TestPoint(xf Transform, p Vec2) bool + type CircleContact struct + func (contact *CircleContact) Evaluate(manifold *Manifold, xfA Transform, xfB Transform) + type CircleShape struct + func MakeCircleShape() CircleShape + func NewCircleShape() *CircleShape + func (shape CircleShape) Clone() IShape + func (shape CircleShape) ComputeAABB(aabb *AABB, transform Transform, childIndex int) + func (shape CircleShape) ComputeMass(massData *MassData, density float64) + func (shape CircleShape) Destroy() + func (shape CircleShape) GetChildCount() int + func (shape CircleShape) RayCast(output *RayCastOutput, input RayCastInput, transform Transform, childIndex int) bool + func (shape CircleShape) TestPoint(transform Transform, p Vec2) bool + type ClipVertex struct + Id ContactID + V Vec2 + type Contact struct + M_fixtureA *Fixture + M_fixtureB *Fixture + M_flags uint32 + M_friction float64 + M_indexA int + M_indexB int + M_manifold *Manifold + M_next IContact + M_nodeA *ContactEdge + M_nodeB *ContactEdge + M_prev IContact + M_restitution float64 + M_restitutionThreshold float64 + M_tangentSpeed float64 + M_toi float64 + M_toiCount int + func MakeContact(fA *Fixture, indexA int, fB *Fixture, indexB int) Contact + func (contact *Contact) FlagForFiltering() + func (contact *Contact) ResetFriction() + func (contact *Contact) ResetRestitution() + func (contact *Contact) ResetRestitutionThreshold() + func (contact *Contact) SetChildIndexA(index int) + func (contact *Contact) SetChildIndexB(index int) + func (contact *Contact) SetEnabled(flag bool) + func (contact *Contact) SetFixtureA(fixture *Fixture) + func (contact *Contact) SetFixtureB(fixture *Fixture) + func (contact *Contact) SetFlags(flags uint32) + func (contact *Contact) SetFriction(friction float64) + func (contact *Contact) SetManifold(manifold *Manifold) + func (contact *Contact) SetNext(next IContact) + func (contact *Contact) SetNodeA(node *ContactEdge) + func (contact *Contact) SetNodeB(node *ContactEdge) + func (contact *Contact) SetPrev(prev IContact) + func (contact *Contact) SetRestitution(restitution float64) + func (contact *Contact) SetRestitutionThreshold(threshold float64) + func (contact *Contact) SetTOI(toi float64) + func (contact *Contact) SetTOICount(toiCount int) + func (contact *Contact) SetTangentSpeed(speed float64) + func (contact Contact) GetChildIndexA() int + func (contact Contact) GetChildIndexB() int + func (contact Contact) GetFixtureA() *Fixture + func (contact Contact) GetFixtureB() *Fixture + func (contact Contact) GetFlags() uint32 + func (contact Contact) GetFriction() float64 + func (contact Contact) GetManifold() *Manifold + func (contact Contact) GetNext() IContact + func (contact Contact) GetNodeA() *ContactEdge + func (contact Contact) GetNodeB() *ContactEdge + func (contact Contact) GetPrev() IContact + func (contact Contact) GetRestitution() float64 + func (contact Contact) GetRestitutionThreshold() float64 + func (contact Contact) GetTOI() float64 + func (contact Contact) GetTOICount() int + func (contact Contact) GetTangentSpeed() float64 + func (contact Contact) GetWorldManifold(worldManifold *WorldManifold) + func (contact Contact) IsEnabled() bool + func (contact Contact) IsTouching() bool + type ContactCreateFcn func(fixtureA *Fixture, indexA int, fixtureB *Fixture, indexB int) IContact + type ContactDestroyFcn func(contact IContact) + type ContactEdge struct + Contact IContact + Next *ContactEdge + Other *Body + Prev *ContactEdge + func NewContactEdge() *ContactEdge + type ContactFeature struct + IndexA uint8 + IndexB uint8 + TypeA uint8 + TypeB uint8 + type ContactFilter struct + func (cf *ContactFilter) ShouldCollide(fixtureA *Fixture, fixtureB *Fixture) bool + type ContactID ContactFeature + func (v *ContactID) SetKey(key uint32) + func (v ContactID) Key() uint32 + type ContactImpulse struct + Count int + NormalImpulses [maxManifoldPoints]float64 + TangentImpulses [maxManifoldPoints]float64 + func MakeContactImpulse() ContactImpulse + type ContactManager struct + func MakeContactManager() ContactManager + func NewContactManager() *ContactManager + func (mgr *ContactManager) AddPair(proxyUserDataA any, proxyUserDataB any) + func (mgr *ContactManager) Collide() + func (mgr *ContactManager) Destroy(c IContact) + func (mgr *ContactManager) FindNewContacts() + type ContactPositionConstraint struct + IndexA int + IndexB int + InvIA float64 + InvIB float64 + InvMassA float64 + InvMassB float64 + LocalCenterA Vec2 + LocalCenterB Vec2 + LocalNormal Vec2 + LocalPoint Vec2 + LocalPoints [maxManifoldPoints]Vec2 + PointCount int + RadiusA float64 + RadiusB float64 + Type ManifoldType + type ContactRegister struct + CreateFcn ContactCreateFcn + DestroyFcn ContactDestroyFcn + Primary bool + type ContactSolver struct + M_contacts []IContact + M_count int + M_positionConstraints []ContactPositionConstraint + M_positions []position + M_step TimeStep + M_velocities []velocity + M_velocityConstraints []ContactVelocityConstraint + func MakeContactSolver(def *ContactSolverDef) ContactSolver + func (solver *ContactSolver) Destroy() + func (solver *ContactSolver) InitializeVelocityConstraints() + func (solver *ContactSolver) SolvePositionConstraints() bool + func (solver *ContactSolver) SolveTOIPositionConstraints(toiIndexA int, toiIndexB int) bool + func (solver *ContactSolver) SolveVelocityConstraints() + func (solver *ContactSolver) StoreImpulses() + func (solver *ContactSolver) WarmStart() + type ContactSolverDef struct + Contacts []IContact + Count int + Positions []position + Step TimeStep + Velocities []velocity + func MakeContactSolverDef() ContactSolverDef + type ContactVelocityConstraint struct + ContactIndex int + Friction float64 + IndexA int + IndexB int + InvIA float64 + InvIB float64 + InvMassA float64 + InvMassB float64 + K Mat22 + Normal Vec2 + NormalMass Mat22 + PointCount int + Points [maxManifoldPoints]VelocityConstraintPoint + Restitution float64 + TangentSpeed float64 + Threshold float64 + type DistanceInput struct + ProxyA DistanceProxy + ProxyB DistanceProxy + TransformA Transform + TransformB Transform + UseRadii bool + func MakeDistanceInput() DistanceInput + type DistanceJoint struct + M_bias float64 + M_currentLength float64 + M_damping float64 + M_gamma float64 + M_impulse float64 + M_indexA int + M_indexB int + M_invIA float64 + M_invIB float64 + M_invMassA float64 + M_invMassB float64 + M_length float64 + M_localAnchorA Vec2 + M_localAnchorB Vec2 + M_localCenterA Vec2 + M_localCenterB Vec2 + M_lowerImpulse float64 + M_mass float64 + M_maxLength float64 + M_minLength float64 + M_rA Vec2 + M_rB Vec2 + M_softMass float64 + M_stiffness float64 + M_u Vec2 + M_upperImpulse float64 + func MakeDistanceJoint(def *DistanceJointDef) *DistanceJoint + func (joint *DistanceJoint) InitVelocityConstraints(data SolverData) + func (joint *DistanceJoint) SetDamping(damping float64) + func (joint *DistanceJoint) SetLength(length float64) float64 + func (joint *DistanceJoint) SetMaxLength(maxLength float64) float64 + func (joint *DistanceJoint) SetMinLength(minLength float64) float64 + func (joint *DistanceJoint) SetStiffness(stiffness float64) + func (joint *DistanceJoint) SolvePositionConstraints(data SolverData) bool + func (joint *DistanceJoint) SolveVelocityConstraints(data SolverData) + func (joint DistanceJoint) Dump() + func (joint DistanceJoint) GetAnchorA() Vec2 + func (joint DistanceJoint) GetAnchorB() Vec2 + func (joint DistanceJoint) GetCurrentLength() float64 + func (joint DistanceJoint) GetDamping() float64 + func (joint DistanceJoint) GetLength() float64 + func (joint DistanceJoint) GetLocalAnchorA() Vec2 + func (joint DistanceJoint) GetLocalAnchorB() Vec2 + func (joint DistanceJoint) GetMaxLength() float64 + func (joint DistanceJoint) GetMinLength() float64 + func (joint DistanceJoint) GetReactionForce(inv_dt float64) Vec2 + func (joint DistanceJoint) GetReactionTorque(inv_dt float64) float64 + func (joint DistanceJoint) GetStiffness() float64 + type DistanceJointDef struct + Damping float64 + Length float64 + LocalAnchorA Vec2 + LocalAnchorB Vec2 + MaxLength float64 + MinLength float64 + Stiffness float64 + func MakeDistanceJointDef() DistanceJointDef + func (joint *DistanceJointDef) Initialize(b1 *Body, b2 *Body, anchor1 Vec2, anchor2 Vec2) + type DistanceOutput struct + Distance float64 + Iterations int + PointA Vec2 + PointB Vec2 + func MakeDistanceOutput() DistanceOutput + type DistanceProxy struct + M_buffer [2]Vec2 + M_count int + M_radius float64 + M_vertices []Vec2 + func MakeDistanceProxy() DistanceProxy + func (p *DistanceProxy) Set(shape IShape, index int) + func (p DistanceProxy) GetSupport(d Vec2) int + func (p DistanceProxy) GetSupportVertex(d Vec2) Vec2 + func (p DistanceProxy) GetVertex(index int) Vec2 + func (p DistanceProxy) GetVertexCount() int + type DynamicTree struct + M_freeList int + M_insertionCount int + M_nodeCapacity int + M_nodeCount int + M_root int + func MakeDynamicTree() DynamicTree + func (tree *DynamicTree) AllocateNode() int + func (tree *DynamicTree) Balance(iA int) int + func (tree *DynamicTree) CreateProxy(aabb AABB, userData any) int + func (tree *DynamicTree) DestroyProxy(proxyId int) + func (tree *DynamicTree) FreeNode(nodeId int) + func (tree *DynamicTree) InsertLeaf(leaf int) + func (tree *DynamicTree) MoveProxy(proxyId int, aabb AABB, displacement Vec2) bool + func (tree *DynamicTree) Query(queryCallback TreeQueryCallback, aabb AABB) + func (tree *DynamicTree) RebuildBottomUp() + func (tree *DynamicTree) RemoveLeaf(leaf int) + func (tree *DynamicTree) ShiftOrigin(newOrigin Vec2) + func (tree DynamicTree) ClearMoved(proxyId int) + func (tree DynamicTree) ComputeHeight(nodeId int) int + func (tree DynamicTree) ComputeTotalHeight() int + func (tree DynamicTree) GetAreaRatio() float64 + func (tree DynamicTree) GetFatAABB(proxyId int) AABB + func (tree DynamicTree) GetHeight() int + func (tree DynamicTree) GetMaxBalance() int + func (tree DynamicTree) GetUserData(proxyId int) any + func (tree DynamicTree) RayCast(rayCastCallback TreeRayCastCallback, input RayCastInput) + func (tree DynamicTree) Validate() + func (tree DynamicTree) ValidateMetrics(index int) + func (tree DynamicTree) ValidateStructure(index int) + func (tree DynamicTree) WasMoved(proxyId int) bool + type EdgeAndCircleContact struct + func (contact *EdgeAndCircleContact) Evaluate(manifold *Manifold, xfA Transform, xfB Transform) + type EdgeAndPolygonContact struct + func (contact *EdgeAndPolygonContact) Evaluate(manifold *Manifold, xfA Transform, xfB Transform) + type EdgeShape struct + M_oneSided bool + M_vertex0 Vec2 + M_vertex1 Vec2 + M_vertex2 Vec2 + M_vertex3 Vec2 + func MakeEdgeShape() EdgeShape + func NewEdgeShape() *EdgeShape + func (edge *EdgeShape) Destroy() + func (edge *EdgeShape) SetOneSided(v0 Vec2, v1 Vec2, v2 Vec2, v3 Vec2) + func (edge *EdgeShape) SetTwoSided(v1 Vec2, v2 Vec2) + func (edge EdgeShape) Clone() IShape + func (edge EdgeShape) ComputeAABB(aabb *AABB, xf Transform, childIndex int) + func (edge EdgeShape) ComputeMass(massData *MassData, density float64) + func (edge EdgeShape) GetChildCount() int + func (edge EdgeShape) RayCast(output *RayCastOutput, input RayCastInput, xf Transform, childIndex int) bool + func (edge EdgeShape) TestPoint(xf Transform, p Vec2) bool + type Filter struct + CategoryBits uint16 + GroupIndex int16 + MaskBits uint16 + func DefaultFilter() Filter + type Fixture struct + func NewFixture() *Fixture + func (fix *Fixture) Create(body *Body, def *FixtureDef) + func (fix *Fixture) CreateProxies(broadPhase *BroadPhase, xf Transform) + func (fix *Fixture) Destroy() + func (fix *Fixture) DestroyProxies(broadPhase *BroadPhase) + func (fix *Fixture) Dump(bodyIndex int) + func (fix *Fixture) Refilter() + func (fix *Fixture) SetDensity(density float64) + func (fix *Fixture) SetFilterData(filter Filter) + func (fix *Fixture) SetFriction(friction float64) + func (fix *Fixture) SetRestitution(restitution float64) + func (fix *Fixture) SetRestitutionThreshold(threshold float64) + func (fix *Fixture) SetSensor(sensor bool) + func (fix *Fixture) SetUserData(data any) + func (fix *Fixture) Synchronize(broadPhase *BroadPhase, transform1 Transform, transform2 Transform) + func (fix Fixture) AABB(childIndex int) AABB + func (fix Fixture) Body() *Body + func (fix Fixture) Density() float64 + func (fix Fixture) FilterData() Filter + func (fix Fixture) Friction() float64 + func (fix Fixture) IsSensor() bool + func (fix Fixture) MassData(massData *MassData) + func (fix Fixture) Next() *Fixture + func (fix Fixture) RayCast(output *RayCastOutput, input RayCastInput, childIndex int) bool + func (fix Fixture) Restitution() float64 + func (fix Fixture) RestitutionThreshold() float64 + func (fix Fixture) Shape() IShape + func (fix Fixture) TestPoint(p Vec2) bool + func (fix Fixture) Type() ShapeType + func (fix Fixture) UserData() any + type FixtureDef struct + Density float64 + Filter Filter + Friction float64 + IsSensor bool + Restitution float64 + RestitutionThreshold float64 + Shape IShape + UserData any + func DefaultFixtureDef() FixtureDef + type FixtureProxy struct + Aabb AABB + ChildIndex int + Fixture *Fixture + ProxyId int + type FrictionJoint struct + M_angularImpulse float64 + M_angularMass float64 + M_indexA int + M_indexB int + M_invIA float64 + M_invIB float64 + M_invMassA float64 + M_invMassB float64 + M_linearImpulse Vec2 + M_linearMass Mat22 + M_localAnchorA Vec2 + M_localAnchorB Vec2 + M_localCenterA Vec2 + M_localCenterB Vec2 + M_maxForce float64 + M_maxTorque float64 + M_rA Vec2 + M_rB Vec2 + func MakeFrictionJoint(def *FrictionJointDef) *FrictionJoint + func (joint *FrictionJoint) Dump() + func (joint *FrictionJoint) InitVelocityConstraints(data SolverData) + func (joint *FrictionJoint) SetMaxForce(force float64) + func (joint *FrictionJoint) SetMaxTorque(torque float64) + func (joint *FrictionJoint) SolvePositionConstraints(data SolverData) bool + func (joint *FrictionJoint) SolveVelocityConstraints(data SolverData) + func (joint FrictionJoint) GetAnchorA() Vec2 + func (joint FrictionJoint) GetAnchorB() Vec2 + func (joint FrictionJoint) GetLocalAnchorA() Vec2 + func (joint FrictionJoint) GetLocalAnchorB() Vec2 + func (joint FrictionJoint) GetMaxForce() float64 + func (joint FrictionJoint) GetMaxTorque() float64 + func (joint FrictionJoint) GetReactionForce(inv_dt float64) Vec2 + func (joint FrictionJoint) GetReactionTorque(inv_dt float64) float64 + type FrictionJointDef struct + LocalAnchorA Vec2 + LocalAnchorB Vec2 + MaxForce float64 + MaxTorque float64 + func MakeFrictionJointDef() FrictionJointDef + func (joint *FrictionJointDef) Initialize(bA *Body, bB *Body, anchor Vec2) + type GearJoint struct + M_JvAC Vec2 + M_JvBD Vec2 + M_JwA float64 + M_JwB float64 + M_JwC float64 + M_JwD float64 + M_bodyC *Body + M_bodyD *Body + M_constant float64 + M_iA float64 + M_iB float64 + M_iC float64 + M_iD float64 + M_impulse float64 + M_indexA int + M_indexB int + M_indexC int + M_indexD int + M_joint1 IJoint + M_joint2 IJoint + M_lcA Vec2 + M_lcB Vec2 + M_lcC Vec2 + M_lcD Vec2 + M_localAnchorA Vec2 + M_localAnchorB Vec2 + M_localAnchorC Vec2 + M_localAnchorD Vec2 + M_localAxisC Vec2 + M_localAxisD Vec2 + M_mA float64 + M_mB float64 + M_mC float64 + M_mD float64 + M_mass float64 + M_ratio float64 + M_referenceAngleA float64 + M_referenceAngleB float64 + M_tolerance float64 + M_typeA JointType + M_typeB JointType + func MakeGearJoint(def *GearJointDef) *GearJoint + func (joint *GearJoint) Dump() + func (joint *GearJoint) InitVelocityConstraints(data SolverData) + func (joint *GearJoint) SetRatio(ratio float64) + func (joint *GearJoint) SolvePositionConstraints(data SolverData) bool + func (joint *GearJoint) SolveVelocityConstraints(data SolverData) + func (joint GearJoint) GetAnchorA() Vec2 + func (joint GearJoint) GetAnchorB() Vec2 + func (joint GearJoint) GetJoint1() IJoint + func (joint GearJoint) GetJoint2() IJoint + func (joint GearJoint) GetRatio() float64 + func (joint GearJoint) GetReactionForce(inv_dt float64) Vec2 + func (joint GearJoint) GetReactionTorque(inv_dt float64) float64 + type GearJointDef struct + Joint1 IJoint + Joint2 IJoint + Ratio float64 + func MakeGearJointDef() GearJointDef + type Hull struct + Count int + Points [MaxPolygonVertices]Vec2 + func ComputeHull(points []Vec2, count int) Hull + func RecurseHull(p1 Vec2, p2 Vec2, ps []Vec2, count int) Hull + type IContact interface + Evaluate func(manifold *Manifold, xfA Transform, xfB Transform) + FlagForFiltering func() + GetChildIndexA func() int + GetChildIndexB func() int + GetFixtureA func() *Fixture + GetFixtureB func() *Fixture + GetFlags func() uint32 + GetFriction func() float64 + GetManifold func() *Manifold + GetNext func() IContact + GetNodeA func() *ContactEdge + GetNodeB func() *ContactEdge + GetPrev func() IContact + GetRestitution func() float64 + GetRestitutionThreshold func() float64 + GetTOI func() float64 + GetTOICount func() int + GetTangentSpeed func() float64 + GetWorldManifold func(worldManifold *WorldManifold) + IsEnabled func() bool + IsTouching func() bool + ResetFriction func() + ResetRestitution func() + ResetRestitutionThreshold func() + SetChildIndexA func(index int) + SetChildIndexB func(index int) + SetEnabled func(bool) + SetFixtureA func(fixture *Fixture) + SetFixtureB func(fixture *Fixture) + SetFlags func(flags uint32) + SetFriction func(friction float64) + SetManifold func(manifold *Manifold) + SetNext func(prev IContact) + SetNodeA func(node *ContactEdge) + SetNodeB func(node *ContactEdge) + SetPrev func(prev IContact) + SetRestitution func(restitution float64) + SetRestitutionThreshold func(float64) + SetTOI func(toiCount float64) + SetTOICount func(toiCount int) + SetTangentSpeed func(tangentSpeed float64) + func ChainAndCircleContact_Create(fixtureA *Fixture, indexA int, fixtureB *Fixture, indexB int) IContact + func ChainAndPolygonContact_Create(fixtureA *Fixture, indexA int, fixtureB *Fixture, indexB int) IContact + func CircleContact_Create(fixtureA *Fixture, indexA int, fixtureB *Fixture, indexB int) IContact + func ContactFactory(fixtureA *Fixture, indexA int, fixtureB *Fixture, indexB int) IContact + func EdgeAndCircleContact_Create(fixtureA *Fixture, indexA int, fixtureB *Fixture, indexB int) IContact + func EdgeAndPolygonContact_Create(fixtureA *Fixture, indexA int, fixtureB *Fixture, indexB int) IContact + func PolygonAndCircleContact_Create(fixtureA *Fixture, indexA int, fixtureB *Fixture, indexB int) IContact + func PolygonContact_Create(fixtureA *Fixture, indexA int, fixtureB *Fixture, indexB int) IContact + type IContactFilter interface + ShouldCollide func(fixtureA *Fixture, fixtureB *Fixture) bool + type IContactListener interface + BeginContact func(contact IContact) + EndContact func(contact IContact) + PostSolve func(contact IContact, impulse *ContactImpulse) + PreSolve func(contact IContact, oldManifold Manifold) + type IDestructionListener interface + SayGoodbyeToFixture func(fixture *Fixture) + SayGoodbyeToJoint func(joint IJoint) + type IJoint interface + Destroy func() + Dump func() + GetBodyA func() *Body + GetBodyB func() *Body + GetEdgeA func() *JointEdge + GetEdgeB func() *JointEdge + GetIndex func() int + GetIslandFlag func() bool + GetNext func() IJoint + GetPrev func() IJoint + GetType func() JointType + GetUserData func() any + InitVelocityConstraints func(data SolverData) + IsCollideConnected func() bool + IsEnabled func() bool + SetBodyA func(body *Body) + SetBodyB func(body *Body) + SetCollideConnected func(flag bool) + SetEdgeA func(edge *JointEdge) + SetEdgeB func(edge *JointEdge) + SetIndex func(index int) + SetIslandFlag func(flag bool) + SetNext func(next IJoint) + SetPrev func(prev IJoint) + SetType func(t JointType) + SetUserData func(data any) + ShiftOrigin func(newOrigin Vec2) + SolvePositionConstraints func(data SolverData) bool + SolveVelocityConstraints func(data SolverData) + func JointCreate(def IJointDef) IJoint + type IJointDef interface + GetBodyA func() *Body + GetBodyB func() *Body + GetType func() JointType + GetUserData func() any + IsCollideConnected func() bool + SetBodyA func(body *Body) + SetBodyB func(body *Body) + SetCollideConnected func(flag bool) + SetType func(t JointType) + SetUserData func(userData any) + type IShape interface + Clone func() IShape + ComputeAABB func(aabb *AABB, xf Transform, childIndex int) + ComputeMass func(massData *MassData, density float64) + Destroy func() + GetChildCount func() int + GetRadius func() float64 + GetType func() ShapeType + RayCast func(output *RayCastOutput, input RayCastInput, transform Transform, childIndex int) bool + TestPoint func(xf Transform, p Vec2) bool + type Island struct + M_bodies []*Body + M_bodyCapacity int + M_bodyCount int + M_contactCapacity int + M_contactCount int + M_contacts []IContact + M_jointCapacity int + M_jointCount int + M_joints []IJoint + M_listener IContactListener + M_positions []position + M_velocities []velocity + func MakeIsland(bodyCapacity int, contactCapacity int, jointCapacity int, ...) Island + func (island *Island) Add(joint IJoint) + func (island *Island) AddBody(body *Body) + func (island *Island) AddContact(contact IContact) + func (island *Island) Clear() + func (island *Island) Destroy() + func (island *Island) Report(constraints []ContactVelocityConstraint) + func (island *Island) Solve(profile *Profile, step TimeStep, gravity Vec2, allowSleep bool) + func (island *Island) SolveTOI(subStep TimeStep, toiIndexA int, toiIndexB int) + type Jacobian struct + AngularA float64 + AngularB float64 + Linear Vec2 + type Joint struct + M_collideConnected bool + M_edgeA *JointEdge + M_edgeB *JointEdge + M_index int + M_islandFlag bool + M_next IJoint + M_prev IJoint + M_type JointType + UserData any + func MakeJoint(def IJointDef) *Joint + func (j *Joint) Destroy() + func (j *Joint) InitVelocityConstraints(data SolverData) + func (j *Joint) SetBodyA(body *Body) + func (j *Joint) SetBodyB(body *Body) + func (j *Joint) SetCollideConnected(flag bool) + func (j *Joint) SetEdgeA(edge *JointEdge) + func (j *Joint) SetEdgeB(edge *JointEdge) + func (j *Joint) SetIndex(index int) + func (j *Joint) SetIslandFlag(flag bool) + func (j *Joint) SetNext(next IJoint) + func (j *Joint) SetPrev(prev IJoint) + func (j *Joint) SetType(t JointType) + func (j *Joint) SetUserData(data any) + func (j *Joint) SolvePositionConstraints(data SolverData) bool + func (j *Joint) SolveVelocityConstraints(data SolverData) + func (j Joint) Dump() + func (j Joint) GetBodyA() *Body + func (j Joint) GetBodyB() *Body + func (j Joint) GetEdgeA() *JointEdge + func (j Joint) GetEdgeB() *JointEdge + func (j Joint) GetIndex() int + func (j Joint) GetIslandFlag() bool + func (j Joint) GetNext() IJoint + func (j Joint) GetPrev() IJoint + func (j Joint) GetType() JointType + func (j Joint) GetUserData() any + func (j Joint) IsCollideConnected() bool + func (j Joint) IsEnabled() bool + func (j Joint) ShiftOrigin(newOrigin Vec2) + type JointDef struct + BodyA *Body + BodyB *Body + CollideConnected bool + Type JointType + UserData any + func DefaultJointDef() JointDef + func (def *JointDef) SetBodyA(body *Body) + func (def *JointDef) SetBodyB(body *Body) + func (def *JointDef) SetCollideConnected(flag bool) + func (def *JointDef) SetType(t JointType) + func (def *JointDef) SetUserData(userdata any) + func (def JointDef) GetBodyA() *Body + func (def JointDef) GetBodyB() *Body + func (def JointDef) GetType() JointType + func (def JointDef) GetUserData() any + func (def JointDef) IsCollideConnected() bool + type JointEdge struct + Joint IJoint + Next *JointEdge + Other *Body + Prev *JointEdge + type JointType uint8 + const DistanceJointType + const FrictionJointType + const GearJointType + const MotorJointType + const MouseJointType + const PrismaticJointType + const PulleyJointType + const RevoluteJointType + const UnknownJointType + const WeldJointType + const WheelJointType + type Manifold struct + LocalNormal Vec2 + LocalPoint Vec2 + PointCount int + Points [maxManifoldPoints]ManifoldPoint + Type ManifoldType + func NewManifold() *Manifold + type ManifoldPoint struct + Id ContactID + LocalPoint Vec2 + NormalImpulse float64 + TangentImpulse float64 + type ManifoldType uint8 + const Circles + const FaceA + const FaceB + type MassData struct + Center Vec2 + I float64 + Mass float64 + func MakeMassData() MassData + func NewMassData() *MassData + type Mat22 struct + Ex Vec2 + Ey Vec2 + func MakeMat22() Mat22 + func MakeMat22FromColumns(c1, c2 Vec2) Mat22 + func MakeMat22FromScalars(a11, a12, a21, a22 float64) Mat22 + func Mat22Abs(A Mat22) Mat22 + func Mat22Add(A, B Mat22) Mat22 + func Mat22Mul(A, B Mat22) Mat22 + func Mat22MulT(A, B Mat22) Mat22 + func NewMat22() *Mat22 + func NewMat22FromColumns(c1, c2 Vec2) *Mat22 + func NewMat22FromScalars(a11, a12, a21, a22 float64) *Mat22 + func (m *Mat22) Set(c1 Vec2, c2 Vec2) + func (m *Mat22) SetIdentity() + func (m *Mat22) SetZero() + func (m Mat22) GetInverse() Mat22 + func (m Mat22) Solve(b Vec2) Vec2 + type Mat33 struct + Ex Vec3 + Ey Vec3 + Ez Vec3 + func MakeMat33() Mat33 + func MakeMat33FromColumns(c1, c2, c3 Vec3) Mat33 + func NewMat33() *Mat33 + func NewMat33FromColumns(c1, c2, c3 Vec3) *Mat33 + func (m *Mat33) SetZero() + func (mat Mat33) GetInverse22(M *Mat33) + func (mat Mat33) GetSymInverse33(M *Mat33) + func (mat Mat33) Solve22(b Vec2) Vec2 + func (mat Mat33) Solve33(b Vec3) Vec3 + type MotorJoint struct + M_angularError float64 + M_angularImpulse float64 + M_angularMass float64 + M_angularOffset float64 + M_correctionFactor float64 + M_indexA int + M_indexB int + M_invIA float64 + M_invIB float64 + M_invMassA float64 + M_invMassB float64 + M_linearError Vec2 + M_linearImpulse Vec2 + M_linearMass Mat22 + M_linearOffset Vec2 + M_localCenterA Vec2 + M_localCenterB Vec2 + M_maxForce float64 + M_maxTorque float64 + M_rA Vec2 + M_rB Vec2 + func MakeMotorJoint(def *MotorJointDef) *MotorJoint + func (joint *MotorJoint) Dump() + func (joint *MotorJoint) InitVelocityConstraints(data SolverData) + func (joint *MotorJoint) SetAngularOffset(angularOffset float64) + func (joint *MotorJoint) SetCorrectionFactor(factor float64) + func (joint *MotorJoint) SetLinearOffset(linearOffset Vec2) + func (joint *MotorJoint) SetMaxForce(force float64) + func (joint *MotorJoint) SetMaxTorque(torque float64) + func (joint *MotorJoint) SolvePositionConstraints(data SolverData) bool + func (joint *MotorJoint) SolveVelocityConstraints(data SolverData) + func (joint MotorJoint) GetAnchorA() Vec2 + func (joint MotorJoint) GetAnchorB() Vec2 + func (joint MotorJoint) GetAngularOffset() float64 + func (joint MotorJoint) GetCorrectionFactor() float64 + func (joint MotorJoint) GetLinearOffset() Vec2 + func (joint MotorJoint) GetMaxForce() float64 + func (joint MotorJoint) GetMaxTorque() float64 + func (joint MotorJoint) GetReactionForce(inv_dt float64) Vec2 + func (joint MotorJoint) GetReactionTorque(inv_dt float64) float64 + type MotorJointDef struct + AngularOffset float64 + CorrectionFactor float64 + LinearOffset Vec2 + MaxForce float64 + MaxTorque float64 + func MakeMotorJointDef() MotorJointDef + func (def *MotorJointDef) Initialize(bA *Body, bB *Body) + type MouseJoint struct + M_C Vec2 + M_beta float64 + M_damping float64 + M_gamma float64 + M_impulse Vec2 + M_indexA int + M_indexB int + M_invIB float64 + M_invMassB float64 + M_localAnchorB Vec2 + M_localCenterB Vec2 + M_mass Mat22 + M_maxForce float64 + M_rB Vec2 + M_stiffness float64 + M_targetA Vec2 + func MakeMouseJoint(def *MouseJointDef) *MouseJoint + func (def *MouseJoint) Dump() + func (joint *MouseJoint) InitVelocityConstraints(data SolverData) + func (joint *MouseJoint) SetDamping(damping float64) + func (joint *MouseJoint) SetMaxForce(force float64) + func (joint *MouseJoint) SetStiffness(stiffness float64) + func (joint *MouseJoint) SetTarget(target Vec2) + func (joint *MouseJoint) ShiftOrigin(newOrigin Vec2) + func (joint *MouseJoint) SolvePositionConstraints(data SolverData) bool + func (joint *MouseJoint) SolveVelocityConstraints(data SolverData) + func (joint MouseJoint) GetAnchorA() Vec2 + func (joint MouseJoint) GetAnchorB() Vec2 + func (joint MouseJoint) GetDamping() float64 + func (joint MouseJoint) GetMaxForce() float64 + func (joint MouseJoint) GetReactionForce(inv_dt float64) Vec2 + func (joint MouseJoint) GetReactionTorque(inv_dt float64) float64 + func (joint MouseJoint) GetStiffness() float64 + func (joint MouseJoint) GetTarget() Vec2 + type MouseJointDef struct + Damping float64 + MaxForce float64 + Stiffness float64 + Target Vec2 + func MakeMouseJointDef() MouseJointDef + type Pair struct + ProxyIdA int + ProxyIdB int + type PairByLessThan []Pair + func (a PairByLessThan) Len() int + func (a PairByLessThan) Less(i, j int) bool + func (a PairByLessThan) Swap(i, j int) + type PolygonAndCircleContact struct + func (contact *PolygonAndCircleContact) Evaluate(manifold *Manifold, xfA Transform, xfB Transform) + type PolygonContact struct + func (contact *PolygonContact) Evaluate(manifold *Manifold, xfA Transform, xfB Transform) + type PolygonShape struct + Centroid Vec2 + Count int + Normals [MaxPolygonVertices]Vec2 + Vertices [MaxPolygonVertices]Vec2 + func MakePolygonShape() PolygonShape + func NewPolygonShape() *PolygonShape + func (edge *PolygonShape) Destroy() + func (poly *PolygonShape) GetVertex(index int) *Vec2 + func (poly *PolygonShape) Set(vertices []Vec2, count int) bool + func (poly *PolygonShape) SetAsBox(halfWidth float64, halfHeight float64) + func (poly *PolygonShape) SetAsBoxFromCenterAndAngle(hx float64, hy float64, center Vec2, angle float64) + func (poly *PolygonShape) SetAsHull(hull Hull) + func (poly PolygonShape) Clone() IShape + func (poly PolygonShape) ComputeAABB(aabb *AABB, xf Transform, childIndex int) + func (poly PolygonShape) ComputeMass(massData *MassData, density float64) + func (poly PolygonShape) GetChildCount() int + func (poly PolygonShape) RayCast(output *RayCastOutput, input RayCastInput, xf Transform, childIndex int) bool + func (poly PolygonShape) TestPoint(xf Transform, p Vec2) bool + func (poly PolygonShape) Validate() bool + type PositionSolverManifold struct + Normal Vec2 + Point Vec2 + Separation float64 + func MakePositionSolverManifold() PositionSolverManifold + func (solvermanifold *PositionSolverManifold) Initialize(pc *ContactPositionConstraint, xfA Transform, xfB Transform, index int) + type PrismaticJoint struct + M_K Mat22 + M_a1 float64 + M_a2 float64 + M_axialMass float64 + M_axis Vec2 + M_enableLimit bool + M_enableMotor bool + M_impulse Vec2 + M_indexA int + M_indexB int + M_invIA float64 + M_invIB float64 + M_invMassA float64 + M_invMassB float64 + M_localAnchorA Vec2 + M_localAnchorB Vec2 + M_localCenterA Vec2 + M_localCenterB Vec2 + M_localXAxisA Vec2 + M_localYAxisA Vec2 + M_lowerImpulse float64 + M_lowerTranslation float64 + M_maxMotorForce float64 + M_motorImpulse float64 + M_motorSpeed float64 + M_perp Vec2 + M_referenceAngle float64 + M_s1 float64 + M_s2 float64 + M_translation float64 + M_upperImpulse float64 + M_upperTranslation float64 + func MakePrismaticJoint(def *PrismaticJointDef) *PrismaticJoint + func (joint *PrismaticJoint) Dump() + func (joint *PrismaticJoint) EnableLimit(flag bool) + func (joint *PrismaticJoint) EnableMotor(flag bool) + func (joint *PrismaticJoint) InitVelocityConstraints(data SolverData) + func (joint *PrismaticJoint) SetLimits(lower float64, upper float64) + func (joint *PrismaticJoint) SetMaxMotorForce(force float64) + func (joint *PrismaticJoint) SetMotorSpeed(speed float64) + func (joint *PrismaticJoint) SolvePositionConstraints(data SolverData) bool + func (joint *PrismaticJoint) SolveVelocityConstraints(data SolverData) + func (joint PrismaticJoint) GetAnchorA() Vec2 + func (joint PrismaticJoint) GetAnchorB() Vec2 + func (joint PrismaticJoint) GetJointSpeed() float64 + func (joint PrismaticJoint) GetJointTranslation() float64 + func (joint PrismaticJoint) GetLocalAnchorA() Vec2 + func (joint PrismaticJoint) GetLocalAnchorB() Vec2 + func (joint PrismaticJoint) GetLocalAxisA() Vec2 + func (joint PrismaticJoint) GetLowerLimit() float64 + func (joint PrismaticJoint) GetMaxMotorForce() float64 + func (joint PrismaticJoint) GetMotorForce(inv_dt float64) float64 + func (joint PrismaticJoint) GetMotorSpeed() float64 + func (joint PrismaticJoint) GetReactionForce(inv_dt float64) Vec2 + func (joint PrismaticJoint) GetReactionTorque(inv_dt float64) float64 + func (joint PrismaticJoint) GetReferenceAngle() float64 + func (joint PrismaticJoint) GetUpperLimit() float64 + func (joint PrismaticJoint) IsLimitEnabled() bool + func (joint PrismaticJoint) IsMotorEnabled() bool + type PrismaticJointDef struct + EnableLimit bool + EnableMotor bool + LocalAnchorA Vec2 + LocalAnchorB Vec2 + LocalAxisA Vec2 + LowerTranslation float64 + MaxMotorForce float64 + MotorSpeed float64 + ReferenceAngle float64 + UpperTranslation float64 + func MakePrismaticJointDef() PrismaticJointDef + func (joint *PrismaticJointDef) Initialize(bA *Body, bB *Body, anchor Vec2, axis Vec2) + type Profile struct + Broadphase float64 + Collide float64 + Solve float64 + SolveInit float64 + SolvePosition float64 + SolveTOI float64 + SolveVelocity float64 + Step float64 + type PulleyJoint struct + M_constant float64 + M_groundAnchorA Vec2 + M_groundAnchorB Vec2 + M_impulse float64 + M_indexA int + M_indexB int + M_invIA float64 + M_invIB float64 + M_invMassA float64 + M_invMassB float64 + M_lengthA float64 + M_lengthB float64 + M_localAnchorA Vec2 + M_localAnchorB Vec2 + M_localCenterA Vec2 + M_localCenterB Vec2 + M_mass float64 + M_rA Vec2 + M_rB Vec2 + M_ratio float64 + M_uA Vec2 + M_uB Vec2 + func MakePulleyJoint(def *PulleyJointDef) *PulleyJoint + func (joint *PulleyJoint) Dump() + func (joint *PulleyJoint) InitVelocityConstraints(data SolverData) + func (joint *PulleyJoint) ShiftOrigin(newOrigin Vec2) + func (joint *PulleyJoint) SolvePositionConstraints(data SolverData) bool + func (joint *PulleyJoint) SolveVelocityConstraints(data SolverData) + func (joint PulleyJoint) GetAnchorA() Vec2 + func (joint PulleyJoint) GetAnchorB() Vec2 + func (joint PulleyJoint) GetCurrentLengthA() float64 + func (joint PulleyJoint) GetCurrentLengthB() float64 + func (joint PulleyJoint) GetGroundAnchorA() Vec2 + func (joint PulleyJoint) GetGroundAnchorB() Vec2 + func (joint PulleyJoint) GetLengthA() float64 + func (joint PulleyJoint) GetLengthB() float64 + func (joint PulleyJoint) GetRatio() float64 + func (joint PulleyJoint) GetReactionForce(inv_dt float64) Vec2 + func (joint PulleyJoint) GetReactionTorque(inv_dt float64) float64 + type PulleyJointDef struct + GroundAnchorA Vec2 + GroundAnchorB Vec2 + LengthA float64 + LengthB float64 + LocalAnchorA Vec2 + LocalAnchorB Vec2 + Ratio float64 + func MakePulleyJointDef() PulleyJointDef + func (def *PulleyJointDef) Initialize(bA *Body, bB *Body, groundA Vec2, groundB Vec2, anchorA Vec2, anchorB Vec2, ...) + type RayCastInput struct + MaxFraction float64 + P1 Vec2 + P2 Vec2 + type RayCastOutput struct + Fraction float64 + Normal Vec2 + func MakeRayCastOutput() RayCastOutput + type RaycastCallback func(fixture *Fixture, point Vec2, normal Vec2, fraction float64) float64 + type RevoluteJoint struct + M_K Mat22 + M_angle float64 + M_axialMass float64 + M_enableLimit bool + M_enableMotor bool + M_indexA int + M_indexB int + M_invIA float64 + M_invIB float64 + M_invMassA float64 + M_invMassB float64 + M_localAnchorA Vec2 + M_localAnchorB Vec2 + M_localCenterA Vec2 + M_localCenterB Vec2 + M_lowerAngle float64 + M_lowerImpulse float64 + M_maxMotorTorque float64 + M_motorImpulse float64 + M_motorSpeed float64 + M_rA Vec2 + M_rB Vec2 + M_referenceAngle float64 + M_upperAngle float64 + M_upperImpulse float64 + func MakeRevoluteJoint(def *RevoluteJointDef) *RevoluteJoint + func (joint *RevoluteJoint) Dump() + func (joint *RevoluteJoint) EnableLimit(flag bool) + func (joint *RevoluteJoint) EnableMotor(flag bool) + func (joint *RevoluteJoint) GetJointSpeed() float64 + func (joint *RevoluteJoint) InitVelocityConstraints(data SolverData) + func (joint *RevoluteJoint) SetLimits(lower float64, upper float64) + func (joint *RevoluteJoint) SetMaxMotorTorque(torque float64) + func (joint *RevoluteJoint) SetMotorSpeed(speed float64) + func (joint *RevoluteJoint) SolvePositionConstraints(data SolverData) bool + func (joint *RevoluteJoint) SolveVelocityConstraints(data SolverData) + func (joint RevoluteJoint) GetAnchorA() Vec2 + func (joint RevoluteJoint) GetAnchorB() Vec2 + func (joint RevoluteJoint) GetJointAngle() float64 + func (joint RevoluteJoint) GetLocalAnchorA() Vec2 + func (joint RevoluteJoint) GetLocalAnchorB() Vec2 + func (joint RevoluteJoint) GetLowerLimit() float64 + func (joint RevoluteJoint) GetMaxMotorTorque() float64 + func (joint RevoluteJoint) GetMotorSpeed() float64 + func (joint RevoluteJoint) GetMotorTorque(inv_dt float64) float64 + func (joint RevoluteJoint) GetReactionForce(inv_dt float64) Vec2 + func (joint RevoluteJoint) GetReactionTorque(inv_dt float64) float64 + func (joint RevoluteJoint) GetReferenceAngle() float64 + func (joint RevoluteJoint) GetUpperLimit() float64 + func (joint RevoluteJoint) IsLimitEnabled() bool + func (joint RevoluteJoint) IsMotorEnabled() bool + type RevoluteJointDef struct + EnableLimit bool + EnableMotor bool + LocalAnchorA Vec2 + LocalAnchorB Vec2 + LowerAngle float64 + MaxMotorTorque float64 + MotorSpeed float64 + ReferenceAngle float64 + UpperAngle float64 + func MakeRevoluteJointDef() RevoluteJointDef + func (def *RevoluteJointDef) Initialize(bA *Body, bB *Body, anchor Vec2) + type Rope struct + M_bendConstraints []RopeBend + M_bendCount int + M_bindPositions []Vec2 + M_count int + M_gravity Vec2 + M_invMasses []float64 + M_p0s []Vec2 + M_position Vec2 + M_ps []Vec2 + M_stretchConstraints []RopeStretch + M_stretchCount int + M_tuning RopeTuning + M_vs []Vec2 + func MakeRope() Rope + func (rope *Rope) ApplyBendForces(dt float64) + func (rope *Rope) Create(def *RopeDef) + func (rope *Rope) Destroy() + func (rope *Rope) Reset(position Vec2) + func (rope *Rope) SetTuning(tuning RopeTuning) + func (rope *Rope) SolveBend_PBD_Angle() + func (rope *Rope) SolveBend_PBD_Distance() + func (rope *Rope) SolveBend_PBD_Height() + func (rope *Rope) SolveBend_PBD_Triangle() + func (rope *Rope) SolveBend_XPBD_Angle(dt float64) + func (rope *Rope) SolveStretch_PBD() + func (rope *Rope) SolveStretch_XPBD(dt float64) + func (rope *Rope) Step(dt float64, iterations int, position Vec2) + func (rope Rope) GetVertexCount() int + func (rope Rope) GetVertices() []Vec2 + type RopeBend struct + Damper float64 + I1 int + I2 int + I3 int + InvEffectiveMass float64 + InvMass1 float64 + InvMass2 float64 + InvMass3 float64 + L1 float64 + L2 float64 + Lambda float64 + Spring float64 + type RopeDef struct + Count int + Gravity Vec2 + Masses []float64 + Position Vec2 + Tuning RopeTuning + Vertices []Vec2 + func MakeRopeDef() RopeDef + type RopeStretch struct + Damper float64 + I1 int + I2 int + InvMass1 float64 + InvMass2 float64 + L float64 + Lambda float64 + Spring float64 + type RopeTuning struct + BendDamping float64 + BendHertz float64 + BendStiffness float64 + BendingModel uint8 + Damping float64 + FixedEffectiveMass bool + Isometric bool + StretchDamping float64 + StretchHertz float64 + StretchStiffness float64 + StretchingModel uint8 + WarmStart bool + func MakeRopeTuning() RopeTuning + type Rot struct + Cosine float64 + Sine float64 + func MakeRotFromAngle(anglerad float64) Rot + func NewRotFromAngle(anglerad float64) *Rot + func RotMul(q, r Rot) Rot + func RotMulT(q, r Rot) Rot + func (r *Rot) Set(anglerad float64) + func (r *Rot) SetIdentity() + func (r Rot) GetAngle() float64 + func (r Rot) GetXAxis() Vec2 + func (r Rot) GetYAxis() Vec2 + type SeparationFunction struct + M_axis Vec2 + M_localPoint Vec2 + M_proxyA *DistanceProxy + M_proxyB *DistanceProxy + M_sweepA Sweep + M_sweepB Sweep + M_type uint8 + func (sepfunc *SeparationFunction) Evaluate(indexA int, indexB int, t float64) float64 + func (sepfunc *SeparationFunction) FindMinSeparation(indexA *int, indexB *int, t float64) float64 + func (sepfunc *SeparationFunction) Initialize(cache *simplexCache, proxyA *DistanceProxy, sweepA Sweep, ...) float64 + type Shape struct + func (shape *Shape) SetRadius(r float64) + func (shape Shape) GetRadius() float64 + func (shape Shape) GetType() ShapeType + type ShapeCastInput struct + ProxyA DistanceProxy + ProxyB DistanceProxy + TransformA Transform + TransformB Transform + TranslationB Vec2 + func MakeShapeCastInput() ShapeCastInput + type ShapeCastOutput struct + Iterations int + Lambda float64 + Normal Vec2 + Point Vec2 + type ShapeType uint8 + const Chain + const Circle + const Edge + const Polygon + type Simplex struct + M_count int + M_vs [3]SimplexVertex + func MakeSimplex() Simplex + func (simplex *Simplex) ReadCache(cache *simplexCache, proxyA *DistanceProxy, transformA Transform, ...) + func (simplex *Simplex) Solve2() + func (simplex *Simplex) Solve3() + func (simplex Simplex) GetClosestPoint() Vec2 + func (simplex Simplex) GetMetric() float64 + func (simplex Simplex) GetSearchDirection() Vec2 + func (simplex Simplex) GetWitnessPoints(pA *Vec2, pB *Vec2) + func (simplex Simplex) WriteCache(cache *simplexCache) + type SimplexVertex struct + A float64 + IndexA int + IndexB int + W Vec2 + WA Vec2 + WB Vec2 + func MakeSimplexVertex() SimplexVertex + type SolverData struct + Positions []position + Step TimeStep + Velocities []velocity + type Sweep struct + A float64 + A0 float64 + Alpha0 float64 + C Vec2 + C0 Vec2 + LocalCenter Vec2 + func (sweep *Sweep) Advance(alpha float64) + func (sweep *Sweep) Normalize() + func (sweep Sweep) GetTransform(xf *Transform, beta float64) + type TOIInput struct + ProxyA DistanceProxy + ProxyB DistanceProxy + SweepA Sweep + SweepB Sweep + TMax float64 + func MakeTOIInput() TOIInput + type TOIOutput struct + State ToiOutputState + T float64 + func MakeTOIOutput() TOIOutput + type TimeStep struct + Dt float64 + DtRatio float64 + Inv_dt float64 + PositionIterations int + VelocityIterations int + WarmStarting bool + func MakeTimeStep() TimeStep + type Timer struct + func MakeTimer() Timer + func (timer *Timer) Reset() + func (timer Timer) GetMilliseconds() float64 + type ToiOutputState uint8 + type Transform struct + P Vec2 + Q Rot + func MakeTransform() Transform + func MakeTransformByPositionAndRotation(position Vec2, rotation Rot) Transform + func NewTransform() *Transform + func NewTransformByPositionAndRotation(position Vec2, rotation Rot) *Transform + func TransformMul(A, B Transform) Transform + func TransformMulT(A, B Transform) Transform + func (t *Transform) Set(position Vec2, anglerad float64) + func (t *Transform) SetIdentity() + type TreeNode struct + Aabb AABB + Child1 int + Child2 int + Height int + Moved bool + Next int + Parent int + UserData any + func (node TreeNode) IsLeaf() bool + type TreeQueryCallback func(nodeId int) bool + type TreeRayCastCallback func(input RayCastInput, nodeId int) float64 + type Vec2 struct + X float64 + Y float64 + func ComputeCentroid(vs []Vec2, count int) Vec2 + func NewVec2(xIn, yIn float64) *Vec2 + func ProjectPointOnLine(v1 Vec2, v2 Vec2, p Vec2) Vec2 + func RotVec2Mul(q Rot, v Vec2) Vec2 + func RotVec2MulT(q Rot, v Vec2) Vec2 + func TransformVec2Mul(T Transform, v Vec2) Vec2 + func TransformVec2MulT(T Transform, v Vec2) Vec2 + func Vec2Abs(a Vec2) Vec2 + func Vec2Add(a, b Vec2) Vec2 + func Vec2Clamp(a, low, high Vec2) Vec2 + func Vec2CrossScalarVector(s float64, a Vec2) Vec2 + func Vec2CrossVectorScalar(a Vec2, s float64) Vec2 + func Vec2Mat22Mul(A Mat22, v Vec2) Vec2 + func Vec2Mat22MulT(A Mat22, v Vec2) Vec2 + func Vec2Max(a, b Vec2) Vec2 + func Vec2Min(a, b Vec2) Vec2 + func Vec2Mul22(A Mat33, v Vec2) Vec2 + func Vec2MulScalar(s float64, a Vec2) Vec2 + func Vec2Sub(a, b Vec2) Vec2 + func (v *Vec2) Normalize() float64 + func (v *Vec2) OperatorIndexSet(i int, value float64) + func (v *Vec2) OperatorMinusInplace(other Vec2) + func (v *Vec2) OperatorPlusInplace(other Vec2) + func (v *Vec2) OperatorScalarMulInplace(a float64) + func (v *Vec2) Set(x, y float64) + func (v *Vec2) SetZero() + func (v Vec2) IsValid() bool + func (v Vec2) Length() float64 + func (v Vec2) LengthSquared() float64 + func (v Vec2) OperatorIndexGet(i int) float64 + func (v Vec2) OperatorNegate() Vec2 + func (v Vec2) Skew() Vec2 + type Vec3 struct + X float64 + Y float64 + Z float64 + func MakeVec3(xIn, yIn, zIn float64) Vec3 + func NewVec3(xIn, yIn, zIn float64) *Vec3 + func Vec3Add(a, b Vec3) Vec3 + func Vec3Cross(a, b Vec3) Vec3 + func Vec3Mat33Mul(A Mat33, v Vec3) Vec3 + func Vec3MultScalar(s float64, a Vec3) Vec3 + func Vec3Sub(a, b Vec3) Vec3 + func (v *Vec3) OperatorMinusInplace(other Vec3) + func (v *Vec3) OperatorPlusInplace(other Vec3) + func (v *Vec3) OperatorScalarMulInplace(a float64) + func (v *Vec3) Set(x, y, z float64) + func (v *Vec3) SetZero() + func (v Vec3) OperatorNegate() Vec3 + type VelocityConstraintPoint struct + NormalImpulse float64 + NormalMass float64 + RA Vec2 + RB Vec2 + TangentImpulse float64 + TangentMass float64 + VelocityBias float64 + type WeldJoint struct + M_bias float64 + M_damping float64 + M_gamma float64 + M_impulse Vec3 + M_indexA int + M_indexB int + M_invIA float64 + M_invIB float64 + M_invMassA float64 + M_invMassB float64 + M_localAnchorA Vec2 + M_localAnchorB Vec2 + M_localCenterA Vec2 + M_localCenterB Vec2 + M_mass Mat33 + M_rA Vec2 + M_rB Vec2 + M_referenceAngle float64 + M_stiffness float64 + func MakeWeldJoint(def *WeldJointDef) *WeldJoint + func (joint *WeldJoint) Dump() + func (joint *WeldJoint) InitVelocityConstraints(data SolverData) + func (joint *WeldJoint) SetDamping(damping float64) + func (joint *WeldJoint) SetStiffness(stiffness float64) + func (joint *WeldJoint) SolvePositionConstraints(data SolverData) bool + func (joint *WeldJoint) SolveVelocityConstraints(data SolverData) + func (joint WeldJoint) GetAnchorA() Vec2 + func (joint WeldJoint) GetAnchorB() Vec2 + func (joint WeldJoint) GetDamping() float64 + func (joint WeldJoint) GetLocalAnchorA() Vec2 + func (joint WeldJoint) GetLocalAnchorB() Vec2 + func (joint WeldJoint) GetReactionForce(inv_dt float64) Vec2 + func (joint WeldJoint) GetReactionTorque(inv_dt float64) float64 + func (joint WeldJoint) GetReferenceAngle() float64 + func (joint WeldJoint) GetStiffness() float64 + type WeldJointDef struct + Damping float64 + LocalAnchorA Vec2 + LocalAnchorB Vec2 + ReferenceAngle float64 + Stiffness float64 + func MakeWeldJointDef() WeldJointDef + func (def *WeldJointDef) Initialize(bA *Body, bB *Body, anchor Vec2) + type WheelJoint struct + M_ax Vec2 + M_axialMass float64 + M_ay Vec2 + M_bias float64 + M_damping float64 + M_enableLimit bool + M_enableMotor bool + M_gamma float64 + M_impulse float64 + M_indexA int + M_indexB int + M_invIA float64 + M_invIB float64 + M_invMassA float64 + M_invMassB float64 + M_localAnchorA Vec2 + M_localAnchorB Vec2 + M_localCenterA Vec2 + M_localCenterB Vec2 + M_localXAxisA Vec2 + M_localYAxisA Vec2 + M_lowerImpulse float64 + M_lowerTranslation float64 + M_mass float64 + M_maxMotorTorque float64 + M_motorImpulse float64 + M_motorMass float64 + M_motorSpeed float64 + M_sAx float64 + M_sAy float64 + M_sBx float64 + M_sBy float64 + M_springImpulse float64 + M_springMass float64 + M_stiffness float64 + M_translation float64 + M_upperImpulse float64 + M_upperTranslation float64 + func MakeWheelJoint(def *WheelJointDef) *WheelJoint + func (joint *WheelJoint) Dump() + func (joint *WheelJoint) EnableMotor(flag bool) + func (joint *WheelJoint) InitVelocityConstraints(data SolverData) + func (joint *WheelJoint) SetDamping(damping float64) + func (joint *WheelJoint) SetMaxMotorTorque(torque float64) + func (joint *WheelJoint) SetMotorSpeed(speed float64) + func (joint *WheelJoint) SetStiffness(stiffness float64) + func (joint *WheelJoint) SolvePositionConstraints(data SolverData) bool + func (joint *WheelJoint) SolveVelocityConstraints(data SolverData) + func (joint WheelJoint) EnableLimit(flag bool) + func (joint WheelJoint) GetAnchorA() Vec2 + func (joint WheelJoint) GetAnchorB() Vec2 + func (joint WheelJoint) GetDamping() float64 + func (joint WheelJoint) GetJointAngle() float64 + func (joint WheelJoint) GetJointAngularSpeed() float64 + func (joint WheelJoint) GetJointLinearSpeed() float64 + func (joint WheelJoint) GetJointTranslation() float64 + func (joint WheelJoint) GetLocalAnchorA() Vec2 + func (joint WheelJoint) GetLocalAnchorB() Vec2 + func (joint WheelJoint) GetLocalAxisA() Vec2 + func (joint WheelJoint) GetLowerLimit() float64 + func (joint WheelJoint) GetMaxMotorTorque() float64 + func (joint WheelJoint) GetMotorSpeed() float64 + func (joint WheelJoint) GetMotorTorque(inv_dt float64) float64 + func (joint WheelJoint) GetReactionForce(inv_dt float64) Vec2 + func (joint WheelJoint) GetReactionTorque(inv_dt float64) float64 + func (joint WheelJoint) GetStiffness() float64 + func (joint WheelJoint) GetUpperLimit() float64 + func (joint WheelJoint) IsLimitEnabled() bool + func (joint WheelJoint) IsMotorEnabled() bool + func (joint WheelJoint) SetLimits(lower float64, upper float64) + type WheelJointDef struct + Damping float64 + EnableLimit bool + EnableMotor bool + LocalAnchorA Vec2 + LocalAnchorB Vec2 + LocalAxisA Vec2 + LowerTranslation float64 + MaxMotorTorque float64 + MotorSpeed float64 + Stiffness float64 + UpperTranslation float64 + func MakeWheelJointDef() WheelJointDef + func (def *WheelJointDef) Initialize(bA *Body, bB *Body, anchor Vec2, axis Vec2) + type World struct + func MakeWorld(gravity Vec2) World + func (world *World) ClearForces() + func (world *World) CreateBody(def *BodyDef) *Body + func (world *World) CreateJoint(def IJointDef) IJoint + func (world *World) Destroy() + func (world *World) DestroyBody(b *Body) + func (world *World) DestroyJoint(j IJoint) + func (world *World) Dump() + func (world *World) QueryAABB(callback BroadPhaseQueryCallback, aabb AABB) + func (world *World) RayCast(callback RaycastCallback, point1 Vec2, point2 Vec2) + func (world *World) SetAllowSleeping(flag bool) + func (world *World) SetAutoClearForces(flag bool) + func (world *World) SetContactFilter(filter IContactFilter) + func (world *World) SetContactListener(listener IContactListener) + func (world *World) SetDestructionListener(listener IDestructionListener) + func (world *World) SetGravity(gravity Vec2) + func (world *World) ShiftOrigin(newOrigin Vec2) + func (world *World) Solve(step TimeStep) + func (world *World) SolveTOI(step TimeStep) + func (world *World) Step(dt float64, velocityIterations int, positionIterations int) + func (world World) GetAutoClearForces() bool + func (world World) GetBodyCount() int + func (world World) GetBodyList() *Body + func (world World) GetContactCount() int + func (world World) GetContactList() IContact + func (world World) GetContactManager() ContactManager + func (world World) GetGravity() Vec2 + func (world World) GetJointCount() int + func (world World) GetJointList() IJoint + func (world World) GetProfile() Profile + func (world World) GetProxyCount() int + func (world World) GetTreeBalance() int + func (world World) GetTreeHeight() int + func (world World) GetTreeQuality() float64 + func (world World) IsLocked() bool + type WorldManifold struct + Normal Vec2 + Points [maxManifoldPoints]Vec2 + Separations [maxManifoldPoints]float64 + func (wm *WorldManifold) Initialize(mf *Manifold, xfA Transform, radiusA float64, xfB Transform, radiusB float64) + type WorldQueryWrapper struct + BroadPhase *BroadPhase + Callback BroadPhaseQueryCallback + func MakeWorldQueryWrapper() WorldQueryWrapper + func (query *WorldQueryWrapper) QueryCallback(proxyId int) bool