-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdebug.odin
More file actions
53 lines (38 loc) · 1.4 KB
/
Copy pathdebug.odin
File metadata and controls
53 lines (38 loc) · 1.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package mouniverse
import "core:c"
import "base:runtime"
import b2 "vendor:box2d"
import k2 "../karl2d"
draw_segment :: proc "c" (p1, p2: b2.Vec2, color: b2.HexColor, ctx: rawptr) {
context = runtime.default_context()
k2.draw_line(p1, p2, 1, k2.GREEN)
}
draw_polygon :: proc "c" (vertices: [^]b2.Vec2, vertexCount: c.int, color: b2.HexColor, ctx: rawptr) {
context = runtime.default_context()
for i in 0 ..< vertexCount - 1 {
v1 := vertices[i]
v2 := vertices[i + 1]
k2.draw_line({ v1.x, -v1.y }, { v2.x, -v2.y }, 1, k2.GREEN)
}
v1 := vertices[vertexCount - 1]
v2 := vertices[0]
k2.draw_line({ v1.x, -v1.y }, { v2.x, -v2.y }, 1, k2.GREEN)
}
draw_solid_polygon :: proc "c" (transform: b2.Transform, vertices: [^]b2.Vec2, vertexCount: c.int, radius: f32,
color: b2.HexColor, ctx: rawptr) {
context = runtime.default_context()
for i := 0; i < int(vertexCount); i += 1 {
next_idx := i + 1 == int(vertexCount) ? 0 : i + 1
p0: b2.Vec2 = b2.TransformPoint(transform, vertices[i])
p1: b2.Vec2 = b2.TransformPoint(transform, vertices[next_idx])
x0: f32 = meters_to_pixels(p0.x)
y0: f32 = meters_to_pixels(p0.y)
x1: f32 = meters_to_pixels(p1.x)
y1: f32 = meters_to_pixels(p1.y)
k2.draw_line({ x0, y0 }, { x1, y1 }, 1, k2.GREEN)
}
}
draw_point :: proc "c" (p: b2.Vec2, size: f32, color: b2.HexColor, ctx: rawptr) {
context = runtime.default_context()
k2.draw_circle(p, size, k2.GREEN)
}