Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions physics/physics.go
Original file line number Diff line number Diff line change
Expand Up @@ -935,7 +935,7 @@ func solveCircleToCircle(manifold *Manifold) {
// Calculate translational vector, which is normal
var normal rl.Vector2 = rl.Vector2Subtract(bodyB.Position, bodyA.Position)

distSqr := rl.Vector2LenSqr(normal)
distSqr := rl.Vector2LengthSqr(normal)
radius := bodyA.Shape.Radius + bodyB.Shape.Radius

// Check if circles are not in contact
Expand Down Expand Up @@ -1246,7 +1246,7 @@ func initializeManifolds(manifold *Manifold) {
// The idea is if the only thing moving this object is gravity, then the collision should be
// performed without any restitution
rad := rl.NewVector2(gravityForce.X*deltaTime/1000, gravityForce.Y*deltaTime/1000)
if rl.Vector2LenSqr(radiusV) < (rl.Vector2LenSqr(rad) + epsilon) {
if rl.Vector2LengthSqr(radiusV) < (rl.Vector2LengthSqr(rad) + epsilon) {
manifold.Restitution = 0
}
}
Expand Down
27 changes: 27 additions & 0 deletions raylib/internal/cmd/genraymath/binding.go.tmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
// Code generated by ./internal/cmd/genraymath DO NOT EDIT.

package rl

//#include "raymath.h"
import "C"

import "unsafe"

{{ range . -}}
{{ if .SkipBinding }}{{ continue }}{{ end }}
{{ $fn := .Name }}
func c{{ .Name }}({{ template "params" . }}) {{ .ReturnType }} {
{{- range $param := .Params }}
{{- range $param.Names }}
c{{ . }} := {{ $param.CType . }}
{{- end }}
{{- end }}
{{- if .ReturnType }}
ret := C.{{ $fn }}({{ template "cargs" . }})
return {{ .ReturnValue }}
{{- else }}
C.{{ $fn }}({{ template "cargs" . }})
{{- end }}
}

{{ end }}
160 changes: 160 additions & 0 deletions raylib/internal/cmd/genraymath/helper.go.tmpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
{{ define "params" }}
{{- range $i, $param := .Params -}}
{{- range $j, $name := .Names -}}
{{- if or $i $j }}, {{ end -}}
{{ $name }}
{{- end }} {{ $param.TypeName }}
{{- end -}}
{{ end }}

{{ define "args" }}
{{- range $i, $param := .Params -}}
{{- range $j, $name := .Names -}}
{{- if or $i $j }}, {{ end -}}
{{ $name }}
{{- end -}}
{{- end -}}
{{ end }}

{{ define "testargs" }}
{{- range $i, $param := .Params -}}
{{- range $j, $name := .Names -}}
{{- if or $i $j }}, {{ end -}}
{{ testvar $name }}
{{- end -}}
{{- end -}}
{{ end }}

{{ define "methodparams" }}
{{- $comma := false -}}
{{- range $i, $param := .Params -}}
{{- range $j, $name := .Names -}}
{{- if or $i $j -}}
{{- if $comma }} ,{{ end -}}
{{- $comma = true -}}
{{ $name }}
{{- end -}}
{{- end -}}
{{- if or $i (gt (len .Names) 1) }} {{ $param.TypeName }}{{- end -}}
{{- end -}}
{{ end }}

{{ define "methodargs" }}
{{- range $i, $param := .Params -}}
{{- range $j, $name := .Names -}}
{{- if or $i $j }}, {{ $name }}
{{- end -}}
{{- end -}}
{{- end -}}
{{ end }}

{{ define "cargs" }}
{{- range $i, $param := .Params -}}
{{- range $j, $name := .Names -}}
{{- if or $i $j }}, {{ end -}}
c{{ $name }}
{{- end -}}
{{- end -}}
{{ end }}

{{ define "fuzzparams" }}
{{- range $i, $param := .Params -}}
{{- range $j, $name := .Names -}}
{{- if eq $param.TypeName "Vector2" }}
{{ $name }}X, {{ $name }}Y float32,
{{- else if eq $param.TypeName "Vector3" }}
{{ $name }}X, {{ $name }}Y, {{ $name }}Z float32,
{{- else if eq $param.TypeName "Vector4" }}
{{ $name }}X, {{ $name }}Y, {{ $name }}Z, {{$name}}W float32,
{{- else if eq $param.TypeName "Quaternion" }}
{{ $name }}X, {{ $name }}Y, {{ $name }}Z, {{$name}}W float32,
{{- else if eq $param.TypeName "Mat2" }}
{{ $name }}M00, {{ $name }}M01, {{ $name }}M10, {{$name}}M11 float32,
{{- else if eq $param.TypeName "Matrix" }}
{{ $name }}M0, {{ $name }}M4, {{ $name }}M8, {{ $name }}M12,
{{ $name }}M1, {{ $name }}M5, {{ $name }}M9, {{ $name }}M13,
{{ $name }}M2, {{ $name }}M6, {{ $name }}M10, {{ $name }}M14,
{{ $name }}M3, {{ $name }}M7, {{ $name }}M11, {{ $name }}M15 float32,
{{- else }}
{{ testvar $name }} {{ $param.TypeName }},
{{- end -}}
{{- end -}}
{{- end }}
{{ end }}

{{- define "fuzzvars" -}}
{{- range $i, $param := .Params -}}
{{- range $j, $name := .Names -}}
{{- if eq $param.TypeName "Vector2" }}
{{ testvar $name }} := NewVector2({{ $name }}X, {{ $name }}Y)
{{- else if eq $param.TypeName "Vector3" }}
{{ testvar $name }} := NewVector3({{ $name }}X, {{ $name }}Y, {{ $name }}Z)
{{- else if eq $param.TypeName "Vector4" }}
{{ testvar $name }} := NewVector4({{ $name }}X, {{ $name }}Y, {{ $name }}Z, {{$name}}W)
{{- else if eq $param.TypeName "Quaternion" }}
{{ testvar $name }} := NewQuaternion({{ $name }}X, {{ $name }}Y, {{ $name }}Z, {{$name}}W)
{{- else if eq $param.TypeName "Mat2" }}
{{ testvar $name }} := NewMat2({{ $name }}M00, {{ $name }}M01, {{ $name }}M10, {{$name}}M11)
{{- else if eq $param.TypeName "Matrix" }}
{{ testvar $name }} := NewMatrix(
{{ $name }}M0, {{ $name }}M4, {{ $name }}M8, {{ $name }}M12,
{{ $name }}M1, {{ $name }}M5, {{ $name }}M9, {{ $name }}M13,
{{ $name }}M2, {{ $name }}M6, {{ $name }}M10, {{ $name }}M14,
{{ $name }}M3, {{ $name }}M7, {{ $name }}M11, {{ $name }}M15,
)
{{- end -}}
{{- if $param.Normalize }}
{{ testvar $name }} = {{ $param.TypeName}}Normalize({{ testvar $name }})
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}

{{- define "fuzzcorpus" -}}
f.Add(
{{ range $i, $param := .Params -}}
{{- range $j, $name := .Names -}}
{{- if eq $param.TypeName "Vector2" -}}
float32(1), float32(2),
{{ else if eq $param.TypeName "Vector3" -}}
float32(1), float32(2), float32(3),
{{ else if eq $param.TypeName "Vector4" -}}
float32(1), float32(2), float32(3), float32(4),
{{ else if eq $param.TypeName "Quaternion" -}}
float32(1), float32(2), float32(3), float32(4),
{{ else if eq $param.TypeName "Mat2" -}}
float32(1), float32(2), float32(3), float32(4),
{{ else if eq $param.TypeName "Matrix" -}}
float32(1), float32(2), float32(3), float32(4),
float32(1), float32(2), float32(3), float32(4),
float32(1), float32(2), float32(3), float32(4),
float32(1), float32(2), float32(3), float32(4),
{{ else -}}
float32({{ add $j 1 }}),
{{ end -}}
{{- end -}}
{{- end -}}
)
{{- end -}}

{{- define "quickvars" -}}
{{- range $i, $param := .Params -}}
{{- range $j, $name := .Names }}
{{ testvar $name }} := {{ if eq $param.TypeName "Vector2" -}}
NewVector2(1, 2)
{{- else if eq $param.TypeName "Vector3" -}}
NewVector3(1, 2, 3)
{{- else if eq $param.TypeName "Vector4" -}}
NewVector4(1, 2, 3, 4)
{{- else if eq $param.TypeName "Quaternion" -}}
NewQuaternion(1, 2, 3, 4)
{{- else if eq $param.TypeName "Mat2" -}}
NewMat2(1, 2, 3, 4)
{{- else if eq $param.TypeName "Matrix" -}}
NewMatrix(1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4)
{{- else -}}
float32({{ add $j 1 }})
{{- end -}}
{{- end -}}
{{- end -}}
{{- end -}}
Loading