Skip to content

Commit dfb6b12

Browse files
authored
Merge pull request #515 from djfinlay/raymath
Align raymath functions with C versions
2 parents cab7881 + 6b2b83a commit dfb6b12

File tree

33 files changed

+7657
-248
lines changed

33 files changed

+7657
-248
lines changed

physics/physics.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -935,7 +935,7 @@ func solveCircleToCircle(manifold *Manifold) {
935935
// Calculate translational vector, which is normal
936936
var normal rl.Vector2 = rl.Vector2Subtract(bodyB.Position, bodyA.Position)
937937

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

941941
// Check if circles are not in contact
@@ -1246,7 +1246,7 @@ func initializeManifolds(manifold *Manifold) {
12461246
// The idea is if the only thing moving this object is gravity, then the collision should be
12471247
// performed without any restitution
12481248
rad := rl.NewVector2(gravityForce.X*deltaTime/1000, gravityForce.Y*deltaTime/1000)
1249-
if rl.Vector2LenSqr(radiusV) < (rl.Vector2LenSqr(rad) + epsilon) {
1249+
if rl.Vector2LengthSqr(radiusV) < (rl.Vector2LengthSqr(rad) + epsilon) {
12501250
manifold.Restitution = 0
12511251
}
12521252
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
// Code generated by ./internal/cmd/genraymath DO NOT EDIT.
2+
3+
package rl
4+
5+
//#include "raymath.h"
6+
import "C"
7+
8+
import "unsafe"
9+
10+
{{ range . -}}
11+
{{ if .SkipBinding }}{{ continue }}{{ end }}
12+
{{ $fn := .Name }}
13+
func c{{ .Name }}({{ template "params" . }}) {{ .ReturnType }} {
14+
{{- range $param := .Params }}
15+
{{- range $param.Names }}
16+
c{{ . }} := {{ $param.CType . }}
17+
{{- end }}
18+
{{- end }}
19+
{{- if .ReturnType }}
20+
ret := C.{{ $fn }}({{ template "cargs" . }})
21+
return {{ .ReturnValue }}
22+
{{- else }}
23+
C.{{ $fn }}({{ template "cargs" . }})
24+
{{- end }}
25+
}
26+
27+
{{ end }}
Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
{{ define "params" }}
2+
{{- range $i, $param := .Params -}}
3+
{{- range $j, $name := .Names -}}
4+
{{- if or $i $j }}, {{ end -}}
5+
{{ $name }}
6+
{{- end }} {{ $param.TypeName }}
7+
{{- end -}}
8+
{{ end }}
9+
10+
{{ define "args" }}
11+
{{- range $i, $param := .Params -}}
12+
{{- range $j, $name := .Names -}}
13+
{{- if or $i $j }}, {{ end -}}
14+
{{ $name }}
15+
{{- end -}}
16+
{{- end -}}
17+
{{ end }}
18+
19+
{{ define "testargs" }}
20+
{{- range $i, $param := .Params -}}
21+
{{- range $j, $name := .Names -}}
22+
{{- if or $i $j }}, {{ end -}}
23+
{{ testvar $name }}
24+
{{- end -}}
25+
{{- end -}}
26+
{{ end }}
27+
28+
{{ define "methodparams" }}
29+
{{- $comma := false -}}
30+
{{- range $i, $param := .Params -}}
31+
{{- range $j, $name := .Names -}}
32+
{{- if or $i $j -}}
33+
{{- if $comma }} ,{{ end -}}
34+
{{- $comma = true -}}
35+
{{ $name }}
36+
{{- end -}}
37+
{{- end -}}
38+
{{- if or $i (gt (len .Names) 1) }} {{ $param.TypeName }}{{- end -}}
39+
{{- end -}}
40+
{{ end }}
41+
42+
{{ define "methodargs" }}
43+
{{- range $i, $param := .Params -}}
44+
{{- range $j, $name := .Names -}}
45+
{{- if or $i $j }}, {{ $name }}
46+
{{- end -}}
47+
{{- end -}}
48+
{{- end -}}
49+
{{ end }}
50+
51+
{{ define "cargs" }}
52+
{{- range $i, $param := .Params -}}
53+
{{- range $j, $name := .Names -}}
54+
{{- if or $i $j }}, {{ end -}}
55+
c{{ $name }}
56+
{{- end -}}
57+
{{- end -}}
58+
{{ end }}
59+
60+
{{ define "fuzzparams" }}
61+
{{- range $i, $param := .Params -}}
62+
{{- range $j, $name := .Names -}}
63+
{{- if eq $param.TypeName "Vector2" }}
64+
{{ $name }}X, {{ $name }}Y float32,
65+
{{- else if eq $param.TypeName "Vector3" }}
66+
{{ $name }}X, {{ $name }}Y, {{ $name }}Z float32,
67+
{{- else if eq $param.TypeName "Vector4" }}
68+
{{ $name }}X, {{ $name }}Y, {{ $name }}Z, {{$name}}W float32,
69+
{{- else if eq $param.TypeName "Quaternion" }}
70+
{{ $name }}X, {{ $name }}Y, {{ $name }}Z, {{$name}}W float32,
71+
{{- else if eq $param.TypeName "Mat2" }}
72+
{{ $name }}M00, {{ $name }}M01, {{ $name }}M10, {{$name}}M11 float32,
73+
{{- else if eq $param.TypeName "Matrix" }}
74+
{{ $name }}M0, {{ $name }}M4, {{ $name }}M8, {{ $name }}M12,
75+
{{ $name }}M1, {{ $name }}M5, {{ $name }}M9, {{ $name }}M13,
76+
{{ $name }}M2, {{ $name }}M6, {{ $name }}M10, {{ $name }}M14,
77+
{{ $name }}M3, {{ $name }}M7, {{ $name }}M11, {{ $name }}M15 float32,
78+
{{- else }}
79+
{{ testvar $name }} {{ $param.TypeName }},
80+
{{- end -}}
81+
{{- end -}}
82+
{{- end }}
83+
{{ end }}
84+
85+
{{- define "fuzzvars" -}}
86+
{{- range $i, $param := .Params -}}
87+
{{- range $j, $name := .Names -}}
88+
{{- if eq $param.TypeName "Vector2" }}
89+
{{ testvar $name }} := NewVector2({{ $name }}X, {{ $name }}Y)
90+
{{- else if eq $param.TypeName "Vector3" }}
91+
{{ testvar $name }} := NewVector3({{ $name }}X, {{ $name }}Y, {{ $name }}Z)
92+
{{- else if eq $param.TypeName "Vector4" }}
93+
{{ testvar $name }} := NewVector4({{ $name }}X, {{ $name }}Y, {{ $name }}Z, {{$name}}W)
94+
{{- else if eq $param.TypeName "Quaternion" }}
95+
{{ testvar $name }} := NewQuaternion({{ $name }}X, {{ $name }}Y, {{ $name }}Z, {{$name}}W)
96+
{{- else if eq $param.TypeName "Mat2" }}
97+
{{ testvar $name }} := NewMat2({{ $name }}M00, {{ $name }}M01, {{ $name }}M10, {{$name}}M11)
98+
{{- else if eq $param.TypeName "Matrix" }}
99+
{{ testvar $name }} := NewMatrix(
100+
{{ $name }}M0, {{ $name }}M4, {{ $name }}M8, {{ $name }}M12,
101+
{{ $name }}M1, {{ $name }}M5, {{ $name }}M9, {{ $name }}M13,
102+
{{ $name }}M2, {{ $name }}M6, {{ $name }}M10, {{ $name }}M14,
103+
{{ $name }}M3, {{ $name }}M7, {{ $name }}M11, {{ $name }}M15,
104+
)
105+
{{- end -}}
106+
{{- if $param.Normalize }}
107+
{{ testvar $name }} = {{ $param.TypeName}}Normalize({{ testvar $name }})
108+
{{- end -}}
109+
{{- end -}}
110+
{{- end -}}
111+
{{- end -}}
112+
113+
{{- define "fuzzcorpus" -}}
114+
f.Add(
115+
{{ range $i, $param := .Params -}}
116+
{{- range $j, $name := .Names -}}
117+
{{- if eq $param.TypeName "Vector2" -}}
118+
float32(1), float32(2),
119+
{{ else if eq $param.TypeName "Vector3" -}}
120+
float32(1), float32(2), float32(3),
121+
{{ else if eq $param.TypeName "Vector4" -}}
122+
float32(1), float32(2), float32(3), float32(4),
123+
{{ else if eq $param.TypeName "Quaternion" -}}
124+
float32(1), float32(2), float32(3), float32(4),
125+
{{ else if eq $param.TypeName "Mat2" -}}
126+
float32(1), float32(2), float32(3), float32(4),
127+
{{ else if eq $param.TypeName "Matrix" -}}
128+
float32(1), float32(2), float32(3), float32(4),
129+
float32(1), float32(2), float32(3), float32(4),
130+
float32(1), float32(2), float32(3), float32(4),
131+
float32(1), float32(2), float32(3), float32(4),
132+
{{ else -}}
133+
float32({{ add $j 1 }}),
134+
{{ end -}}
135+
{{- end -}}
136+
{{- end -}}
137+
)
138+
{{- end -}}
139+
140+
{{- define "quickvars" -}}
141+
{{- range $i, $param := .Params -}}
142+
{{- range $j, $name := .Names }}
143+
{{ testvar $name }} := {{ if eq $param.TypeName "Vector2" -}}
144+
NewVector2(1, 2)
145+
{{- else if eq $param.TypeName "Vector3" -}}
146+
NewVector3(1, 2, 3)
147+
{{- else if eq $param.TypeName "Vector4" -}}
148+
NewVector4(1, 2, 3, 4)
149+
{{- else if eq $param.TypeName "Quaternion" -}}
150+
NewQuaternion(1, 2, 3, 4)
151+
{{- else if eq $param.TypeName "Mat2" -}}
152+
NewMat2(1, 2, 3, 4)
153+
{{- else if eq $param.TypeName "Matrix" -}}
154+
NewMatrix(1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4)
155+
{{- else -}}
156+
float32({{ add $j 1 }})
157+
{{- end -}}
158+
{{- end -}}
159+
{{- end -}}
160+
{{- end -}}

0 commit comments

Comments
 (0)