diff --git a/raylib/raylib_purego.go b/raylib/raylib_purego.go index 7e7a5a4..5682429 100644 --- a/raylib/raylib_purego.go +++ b/raylib/raylib_purego.go @@ -247,6 +247,7 @@ var getSplinePointBezierCubic func(p1 uintptr, c2 uintptr, c3 uintptr, p4 uintpt var checkCollisionRecs func(rec1 uintptr, rec2 uintptr) bool var checkCollisionCircles func(center1 uintptr, radius1 float32, center2 uintptr, radius2 float32) bool var checkCollisionCircleRec func(center uintptr, radius float32, rec uintptr) bool +var checkCollisionCircleLine func(center uintptr, radius float32, p1, p2 uintptr) bool var checkCollisionPointRec func(point uintptr, rec uintptr) bool var checkCollisionPointCircle func(point uintptr, center uintptr, radius float32) bool var checkCollisionPointTriangle func(point uintptr, p1 uintptr, p2 uintptr, p3 uintptr) bool @@ -751,6 +752,7 @@ func init() { purego.RegisterLibFunc(&checkCollisionRecs, raylibDll, "CheckCollisionRecs") purego.RegisterLibFunc(&checkCollisionCircles, raylibDll, "CheckCollisionCircles") purego.RegisterLibFunc(&checkCollisionCircleRec, raylibDll, "CheckCollisionCircleRec") + purego.RegisterLibFunc(&checkCollisionCircleLine, raylibDll, "CheckCollisionCircleLine") purego.RegisterLibFunc(&checkCollisionPointRec, raylibDll, "CheckCollisionPointRec") purego.RegisterLibFunc(&checkCollisionPointCircle, raylibDll, "CheckCollisionPointCircle") purego.RegisterLibFunc(&checkCollisionPointTriangle, raylibDll, "CheckCollisionPointTriangle") @@ -2283,6 +2285,11 @@ func CheckCollisionCircleRec(center Vector2, radius float32, rec Rectangle) bool return checkCollisionCircleRec(*(*uintptr)(unsafe.Pointer(¢er)), radius, uintptr(unsafe.Pointer(&rec))) } +// CheckCollisionCircleLine - Check if circle collides with a line created betweeen two points [p1] and [p2] +func CheckCollisionCircleLine(center Vector2, radius float32, p1, p2 Vector2) bool { + return checkCollisionCircleLine(*(*uintptr)(unsafe.Pointer(¢er)), radius, *(*uintptr)(unsafe.Pointer(&p1)), *(*uintptr)(unsafe.Pointer(&p2))) +} + // CheckCollisionPointRec - Check if point is inside rectangle func CheckCollisionPointRec(point Vector2, rec Rectangle) bool { return checkCollisionPointRec(*(*uintptr)(unsafe.Pointer(&point)), uintptr(unsafe.Pointer(&rec))) diff --git a/raylib/rshapes.go b/raylib/rshapes.go index ff95c37..4922b3a 100644 --- a/raylib/rshapes.go +++ b/raylib/rshapes.go @@ -561,6 +561,17 @@ func CheckCollisionCircleRec(center Vector2, radius float32, rec Rectangle) bool return v } +// CheckCollisionCircleLine - Check if circle collides with a line created betweeen two points [p1] and [p2] +func CheckCollisionCircleLine(center Vector2, radius float32, p1, p2 Vector2) bool { + ccenter := center.cptr() + cradius := (C.float)(radius) + cp1 := p1.cptr() + cp2 := p2.cptr() + ret := C.CheckCollisionCircleLine(*ccenter, cradius, *cp1, *cp2) + v := bool(ret) + return v +} + // CheckCollisionPointRec - Check if point is inside rectangle func CheckCollisionPointRec(point Vector2, rec Rectangle) bool { cpoint := point.cptr()