diff --git a/generated/clib/sk_clib.cpp b/generated/clib/sk_clib.cpp index 5954b998..6cefb335 100644 --- a/generated/clib/sk_clib.cpp +++ b/generated/clib/sk_clib.cpp @@ -566,11 +566,35 @@ __sklib_circle __sklib__circle_at__double__double__double(double x, double y, do circle __skreturn = circle_at(__skparam__x, __skparam__y, __skparam__radius); return __sklib__to_sklib_circle(__skreturn); } +int __sklib__circle_quad_intersect__circle_ref__quad_ref(const __sklib_circle c, const __sklib_quad q) { + circle __skparam__c = __sklib__to_circle(c); + quad __skparam__q = __sklib__to_quad(q); + bool __skreturn = circle_quad_intersect(__skparam__c, __skparam__q); + return __sklib__to_int(__skreturn); +} float __sklib__circle_radius__circle(const __sklib_circle c) { const circle __skparam__c = __sklib__to_circle(c); float __skreturn = circle_radius(__skparam__c); return __sklib__to_float(__skreturn); } +int __sklib__circle_ray_intersection__point_2d_ref__vector_2d_ref__circle_ref(const __sklib_point_2d origin, const __sklib_vector_2d heading, const __sklib_circle circ) { + point_2d __skparam__origin = __sklib__to_point_2d(origin); + vector_2d __skparam__heading = __sklib__to_vector_2d(heading); + circle __skparam__circ = __sklib__to_circle(circ); + bool __skreturn = circle_ray_intersection(__skparam__origin, __skparam__heading, __skparam__circ); + return __sklib__to_int(__skreturn); +} +int __sklib__circle_ray_intersection__point_2d_ref__vector_2d_ref__circle_ref__point_2d_ref__double_ref(const __sklib_point_2d origin, const __sklib_vector_2d heading, const __sklib_circle circ, __sklib_point_2d *hit_point, double *hit_distance) { + point_2d __skparam__origin = __sklib__to_point_2d(origin); + vector_2d __skparam__heading = __sklib__to_vector_2d(heading); + circle __skparam__circ = __sklib__to_circle(circ); + point_2d __skparam__hit_point = __sklib__to_point_2d(*hit_point); + double __skparam__hit_distance = __sklib__to_double(*hit_distance); + bool __skreturn = circle_ray_intersection(__skparam__origin, __skparam__heading, __skparam__circ, __skparam__hit_point, __skparam__hit_distance); + *hit_point = __sklib__to_sklib_point_2d(__skparam__hit_point); + *hit_distance = __sklib__to_double(__skparam__hit_distance); + return __sklib__to_int(__skreturn); +} int __sklib__circle_triangle_intersect__circle_ref__triangle_ref(const __sklib_circle c, const __sklib_triangle tri) { circle __skparam__c = __sklib__to_circle(c); triangle __skparam__tri = __sklib__to_triangle(tri); @@ -879,6 +903,21 @@ int __sklib__bitmap_point_collision__bitmap__int__double__double__double__double bool __skreturn = bitmap_point_collision(__skparam__bmp, __skparam__cell, __skparam__bmp_x, __skparam__bmp_y, __skparam__x, __skparam__y); return __sklib__to_int(__skreturn); } +int __sklib__bitmap_quad_collision__bitmap__point_2d_ref__quad_ref(__sklib_bitmap bmp, const __sklib_point_2d pt, const __sklib_quad q) { + bitmap __skparam__bmp = __sklib__to_bitmap(bmp); + point_2d __skparam__pt = __sklib__to_point_2d(pt); + quad __skparam__q = __sklib__to_quad(q); + bool __skreturn = bitmap_quad_collision(__skparam__bmp, __skparam__pt, __skparam__q); + return __sklib__to_int(__skreturn); +} +int __sklib__bitmap_quad_collision__bitmap__double__double__quad_ref(__sklib_bitmap bmp, double x, double y, const __sklib_quad q) { + bitmap __skparam__bmp = __sklib__to_bitmap(bmp); + double __skparam__x = __sklib__to_double(x); + double __skparam__y = __sklib__to_double(y); + quad __skparam__q = __sklib__to_quad(q); + bool __skreturn = bitmap_quad_collision(__skparam__bmp, __skparam__x, __skparam__y, __skparam__q); + return __sklib__to_int(__skreturn); +} int __sklib__bitmap_quad_collision__bitmap__int__matrix_2d_ref__quad_ref(__sklib_bitmap bmp, int cell, const __sklib_matrix_2d translation, const __sklib_quad q) { bitmap __skparam__bmp = __sklib__to_bitmap(bmp); int __skparam__cell = __sklib__to_int(cell); @@ -887,6 +926,23 @@ int __sklib__bitmap_quad_collision__bitmap__int__matrix_2d_ref__quad_ref(__sklib bool __skreturn = bitmap_quad_collision(__skparam__bmp, __skparam__cell, __skparam__translation, __skparam__q); return __sklib__to_int(__skreturn); } +int __sklib__bitmap_quad_collision__bitmap__int__point_2d_ref__quad_ref(__sklib_bitmap bmp, int cell, const __sklib_point_2d pt, const __sklib_quad q) { + bitmap __skparam__bmp = __sklib__to_bitmap(bmp); + int __skparam__cell = __sklib__to_int(cell); + point_2d __skparam__pt = __sklib__to_point_2d(pt); + quad __skparam__q = __sklib__to_quad(q); + bool __skreturn = bitmap_quad_collision(__skparam__bmp, __skparam__cell, __skparam__pt, __skparam__q); + return __sklib__to_int(__skreturn); +} +int __sklib__bitmap_quad_collision__bitmap__int__double__double__quad_ref(__sklib_bitmap bmp, int cell, double x, double y, const __sklib_quad q) { + bitmap __skparam__bmp = __sklib__to_bitmap(bmp); + int __skparam__cell = __sklib__to_int(cell); + double __skparam__x = __sklib__to_double(x); + double __skparam__y = __sklib__to_double(y); + quad __skparam__q = __sklib__to_quad(q); + bool __skreturn = bitmap_quad_collision(__skparam__bmp, __skparam__cell, __skparam__x, __skparam__y, __skparam__q); + return __sklib__to_int(__skreturn); +} int __sklib__bitmap_ray_collision__bitmap__point_2d_ref__point_2d_ref__vector_2d_ref(__sklib_bitmap bmp, const __sklib_point_2d pt, const __sklib_point_2d origin, const __sklib_vector_2d heading) { bitmap __skparam__bmp = __sklib__to_bitmap(bmp); point_2d __skparam__pt = __sklib__to_point_2d(pt); @@ -972,6 +1028,391 @@ int __sklib__bitmap_rectangle_collision__bitmap__int__double__double__rectangle_ bool __skreturn = bitmap_rectangle_collision(__skparam__bmp, __skparam__cell, __skparam__x, __skparam__y, __skparam__rect); return __sklib__to_int(__skreturn); } +int __sklib__bitmap_triangle_collision__bitmap__point_2d_ref__triangle_ref(__sklib_bitmap bmp, const __sklib_point_2d pt, const __sklib_triangle tri) { + bitmap __skparam__bmp = __sklib__to_bitmap(bmp); + point_2d __skparam__pt = __sklib__to_point_2d(pt); + triangle __skparam__tri = __sklib__to_triangle(tri); + bool __skreturn = bitmap_triangle_collision(__skparam__bmp, __skparam__pt, __skparam__tri); + return __sklib__to_int(__skreturn); +} +int __sklib__bitmap_triangle_collision__bitmap__double__double__triangle_ref(__sklib_bitmap bmp, double x, double y, const __sklib_triangle tri) { + bitmap __skparam__bmp = __sklib__to_bitmap(bmp); + double __skparam__x = __sklib__to_double(x); + double __skparam__y = __sklib__to_double(y); + triangle __skparam__tri = __sklib__to_triangle(tri); + bool __skreturn = bitmap_triangle_collision(__skparam__bmp, __skparam__x, __skparam__y, __skparam__tri); + return __sklib__to_int(__skreturn); +} +int __sklib__bitmap_triangle_collision__bitmap__int__matrix_2d_ref__triangle_ref(__sklib_bitmap bmp, int cell, const __sklib_matrix_2d translation, const __sklib_triangle tri) { + bitmap __skparam__bmp = __sklib__to_bitmap(bmp); + int __skparam__cell = __sklib__to_int(cell); + matrix_2d __skparam__translation = __sklib__to_matrix_2d(translation); + triangle __skparam__tri = __sklib__to_triangle(tri); + bool __skreturn = bitmap_triangle_collision(__skparam__bmp, __skparam__cell, __skparam__translation, __skparam__tri); + return __sklib__to_int(__skreturn); +} +int __sklib__bitmap_triangle_collision__bitmap__int__point_2d_ref__triangle_ref(__sklib_bitmap bmp, int cell, const __sklib_point_2d pt, const __sklib_triangle tri) { + bitmap __skparam__bmp = __sklib__to_bitmap(bmp); + int __skparam__cell = __sklib__to_int(cell); + point_2d __skparam__pt = __sklib__to_point_2d(pt); + triangle __skparam__tri = __sklib__to_triangle(tri); + bool __skreturn = bitmap_triangle_collision(__skparam__bmp, __skparam__cell, __skparam__pt, __skparam__tri); + return __sklib__to_int(__skreturn); +} +int __sklib__bitmap_triangle_collision__bitmap__int__double__double__triangle_ref(__sklib_bitmap bmp, int cell, double x, double y, const __sklib_triangle tri) { + bitmap __skparam__bmp = __sklib__to_bitmap(bmp); + int __skparam__cell = __sklib__to_int(cell); + double __skparam__x = __sklib__to_double(x); + double __skparam__y = __sklib__to_double(y); + triangle __skparam__tri = __sklib__to_triangle(tri); + bool __skreturn = bitmap_triangle_collision(__skparam__bmp, __skparam__cell, __skparam__x, __skparam__y, __skparam__tri); + return __sklib__to_int(__skreturn); +} +__sklib_vector_2d __sklib__calculate_collision_direction__quad_ref__quad_ref(const __sklib_quad collider, const __sklib_quad collidee) { + quad __skparam__collider = __sklib__to_quad(collider); + quad __skparam__collidee = __sklib__to_quad(collidee); + vector_2d __skreturn = calculate_collision_direction(__skparam__collider, __skparam__collidee); + return __sklib__to_sklib_vector_2d(__skreturn); +} +__sklib_vector_2d __sklib__calculate_collision_direction__circle_ref__circle_ref(const __sklib_circle collider, const __sklib_circle collidee) { + circle __skparam__collider = __sklib__to_circle(collider); + circle __skparam__collidee = __sklib__to_circle(collidee); + vector_2d __skreturn = calculate_collision_direction(__skparam__collider, __skparam__collidee); + return __sklib__to_sklib_vector_2d(__skreturn); +} +__sklib_vector_2d __sklib__calculate_collision_direction__circle_ref__quad_ref(const __sklib_circle collider, const __sklib_quad collidee) { + circle __skparam__collider = __sklib__to_circle(collider); + quad __skparam__collidee = __sklib__to_quad(collidee); + vector_2d __skreturn = calculate_collision_direction(__skparam__collider, __skparam__collidee); + return __sklib__to_sklib_vector_2d(__skreturn); +} +__sklib_vector_2d __sklib__calculate_collision_direction__circle_ref__rectangle_ref(const __sklib_circle collider, const __sklib_rectangle collidee) { + circle __skparam__collider = __sklib__to_circle(collider); + rectangle __skparam__collidee = __sklib__to_rectangle(collidee); + vector_2d __skreturn = calculate_collision_direction(__skparam__collider, __skparam__collidee); + return __sklib__to_sklib_vector_2d(__skreturn); +} +__sklib_vector_2d __sklib__calculate_collision_direction__circle_ref__sprite(const __sklib_circle collider, const __sklib_sprite collidee) { + circle __skparam__collider = __sklib__to_circle(collider); + const sprite __skparam__collidee = __sklib__to_sprite(collidee); + vector_2d __skreturn = calculate_collision_direction(__skparam__collider, __skparam__collidee); + return __sklib__to_sklib_vector_2d(__skreturn); +} +__sklib_vector_2d __sklib__calculate_collision_direction__circle_ref__triangle_ref(const __sklib_circle collider, const __sklib_triangle collidee) { + circle __skparam__collider = __sklib__to_circle(collider); + triangle __skparam__collidee = __sklib__to_triangle(collidee); + vector_2d __skreturn = calculate_collision_direction(__skparam__collider, __skparam__collidee); + return __sklib__to_sklib_vector_2d(__skreturn); +} +__sklib_vector_2d __sklib__calculate_collision_direction__quad_ref__circle_ref(const __sklib_quad collider, const __sklib_circle collidee) { + quad __skparam__collider = __sklib__to_quad(collider); + circle __skparam__collidee = __sklib__to_circle(collidee); + vector_2d __skreturn = calculate_collision_direction(__skparam__collider, __skparam__collidee); + return __sklib__to_sklib_vector_2d(__skreturn); +} +__sklib_vector_2d __sklib__calculate_collision_direction__quad_ref__rectangle_ref(const __sklib_quad collider, const __sklib_rectangle collidee) { + quad __skparam__collider = __sklib__to_quad(collider); + rectangle __skparam__collidee = __sklib__to_rectangle(collidee); + vector_2d __skreturn = calculate_collision_direction(__skparam__collider, __skparam__collidee); + return __sklib__to_sklib_vector_2d(__skreturn); +} +__sklib_vector_2d __sklib__calculate_collision_direction__quad_ref__sprite(const __sklib_quad collider, const __sklib_sprite collidee) { + quad __skparam__collider = __sklib__to_quad(collider); + const sprite __skparam__collidee = __sklib__to_sprite(collidee); + vector_2d __skreturn = calculate_collision_direction(__skparam__collider, __skparam__collidee); + return __sklib__to_sklib_vector_2d(__skreturn); +} +__sklib_vector_2d __sklib__calculate_collision_direction__quad_ref__triangle_ref(const __sklib_quad collider, const __sklib_triangle collidee) { + quad __skparam__collider = __sklib__to_quad(collider); + triangle __skparam__collidee = __sklib__to_triangle(collidee); + vector_2d __skreturn = calculate_collision_direction(__skparam__collider, __skparam__collidee); + return __sklib__to_sklib_vector_2d(__skreturn); +} +__sklib_vector_2d __sklib__calculate_collision_direction__rectangle_ref__circle_ref(const __sklib_rectangle collider, const __sklib_circle collidee) { + rectangle __skparam__collider = __sklib__to_rectangle(collider); + circle __skparam__collidee = __sklib__to_circle(collidee); + vector_2d __skreturn = calculate_collision_direction(__skparam__collider, __skparam__collidee); + return __sklib__to_sklib_vector_2d(__skreturn); +} +__sklib_vector_2d __sklib__calculate_collision_direction__rectangle_ref__quad_ref(const __sklib_rectangle collider, const __sklib_quad collidee) { + rectangle __skparam__collider = __sklib__to_rectangle(collider); + quad __skparam__collidee = __sklib__to_quad(collidee); + vector_2d __skreturn = calculate_collision_direction(__skparam__collider, __skparam__collidee); + return __sklib__to_sklib_vector_2d(__skreturn); +} +__sklib_vector_2d __sklib__calculate_collision_direction__rectangle_ref__rectangle_ref(const __sklib_rectangle collider, const __sklib_rectangle collidee) { + rectangle __skparam__collider = __sklib__to_rectangle(collider); + rectangle __skparam__collidee = __sklib__to_rectangle(collidee); + vector_2d __skreturn = calculate_collision_direction(__skparam__collider, __skparam__collidee); + return __sklib__to_sklib_vector_2d(__skreturn); +} +__sklib_vector_2d __sklib__calculate_collision_direction__rectangle_ref__sprite(const __sklib_rectangle collider, const __sklib_sprite collidee) { + rectangle __skparam__collider = __sklib__to_rectangle(collider); + const sprite __skparam__collidee = __sklib__to_sprite(collidee); + vector_2d __skreturn = calculate_collision_direction(__skparam__collider, __skparam__collidee); + return __sklib__to_sklib_vector_2d(__skreturn); +} +__sklib_vector_2d __sklib__calculate_collision_direction__rectangle_ref__triangle_ref(const __sklib_rectangle collider, const __sklib_triangle collidee) { + rectangle __skparam__collider = __sklib__to_rectangle(collider); + triangle __skparam__collidee = __sklib__to_triangle(collidee); + vector_2d __skreturn = calculate_collision_direction(__skparam__collider, __skparam__collidee); + return __sklib__to_sklib_vector_2d(__skreturn); +} +__sklib_vector_2d __sklib__calculate_collision_direction__sprite__circle_ref(const __sklib_sprite collider, const __sklib_circle collidee) { + const sprite __skparam__collider = __sklib__to_sprite(collider); + circle __skparam__collidee = __sklib__to_circle(collidee); + vector_2d __skreturn = calculate_collision_direction(__skparam__collider, __skparam__collidee); + return __sklib__to_sklib_vector_2d(__skreturn); +} +__sklib_vector_2d __sklib__calculate_collision_direction__sprite__quad_ref(const __sklib_sprite collider, const __sklib_quad collidee) { + const sprite __skparam__collider = __sklib__to_sprite(collider); + quad __skparam__collidee = __sklib__to_quad(collidee); + vector_2d __skreturn = calculate_collision_direction(__skparam__collider, __skparam__collidee); + return __sklib__to_sklib_vector_2d(__skreturn); +} +__sklib_vector_2d __sklib__calculate_collision_direction__sprite__rectangle_ref(const __sklib_sprite collider, const __sklib_rectangle collidee) { + const sprite __skparam__collider = __sklib__to_sprite(collider); + rectangle __skparam__collidee = __sklib__to_rectangle(collidee); + vector_2d __skreturn = calculate_collision_direction(__skparam__collider, __skparam__collidee); + return __sklib__to_sklib_vector_2d(__skreturn); +} +__sklib_vector_2d __sklib__calculate_collision_direction__sprite__sprite(const __sklib_sprite collider, const __sklib_sprite collidee) { + const sprite __skparam__collider = __sklib__to_sprite(collider); + const sprite __skparam__collidee = __sklib__to_sprite(collidee); + vector_2d __skreturn = calculate_collision_direction(__skparam__collider, __skparam__collidee); + return __sklib__to_sklib_vector_2d(__skreturn); +} +__sklib_vector_2d __sklib__calculate_collision_direction__sprite__triangle_ref(const __sklib_sprite collider, const __sklib_triangle collidee) { + const sprite __skparam__collider = __sklib__to_sprite(collider); + triangle __skparam__collidee = __sklib__to_triangle(collidee); + vector_2d __skreturn = calculate_collision_direction(__skparam__collider, __skparam__collidee); + return __sklib__to_sklib_vector_2d(__skreturn); +} +__sklib_vector_2d __sklib__calculate_collision_direction__triangle_ref__circle_ref(const __sklib_triangle collider, const __sklib_circle collidee) { + triangle __skparam__collider = __sklib__to_triangle(collider); + circle __skparam__collidee = __sklib__to_circle(collidee); + vector_2d __skreturn = calculate_collision_direction(__skparam__collider, __skparam__collidee); + return __sklib__to_sklib_vector_2d(__skreturn); +} +__sklib_vector_2d __sklib__calculate_collision_direction__triangle_ref__quad_ref(const __sklib_triangle collider, const __sklib_quad collidee) { + triangle __skparam__collider = __sklib__to_triangle(collider); + quad __skparam__collidee = __sklib__to_quad(collidee); + vector_2d __skreturn = calculate_collision_direction(__skparam__collider, __skparam__collidee); + return __sklib__to_sklib_vector_2d(__skreturn); +} +__sklib_vector_2d __sklib__calculate_collision_direction__triangle_ref__rectangle_ref(const __sklib_triangle collider, const __sklib_rectangle collidee) { + triangle __skparam__collider = __sklib__to_triangle(collider); + rectangle __skparam__collidee = __sklib__to_rectangle(collidee); + vector_2d __skreturn = calculate_collision_direction(__skparam__collider, __skparam__collidee); + return __sklib__to_sklib_vector_2d(__skreturn); +} +__sklib_vector_2d __sklib__calculate_collision_direction__triangle_ref__sprite(const __sklib_triangle collider, const __sklib_sprite collidee) { + triangle __skparam__collider = __sklib__to_triangle(collider); + const sprite __skparam__collidee = __sklib__to_sprite(collidee); + vector_2d __skreturn = calculate_collision_direction(__skparam__collider, __skparam__collidee); + return __sklib__to_sklib_vector_2d(__skreturn); +} +__sklib_vector_2d __sklib__calculate_collision_direction__triangle_ref__triangle_ref(const __sklib_triangle collider, const __sklib_triangle collidee) { + triangle __skparam__collider = __sklib__to_triangle(collider); + triangle __skparam__collidee = __sklib__to_triangle(collidee); + vector_2d __skreturn = calculate_collision_direction(__skparam__collider, __skparam__collidee); + return __sklib__to_sklib_vector_2d(__skreturn); +} +int __sklib__resolve_collision__quad_ref__quad_ref__vector_2d_ref(__sklib_quad *collider, const __sklib_quad collidee, const __sklib_vector_2d direction) { + quad __skparam__collider = __sklib__to_quad(*collider); + quad __skparam__collidee = __sklib__to_quad(collidee); + vector_2d __skparam__direction = __sklib__to_vector_2d(direction); + bool __skreturn = resolve_collision(__skparam__collider, __skparam__collidee, __skparam__direction); + *collider = __sklib__to_sklib_quad(__skparam__collider); + return __sklib__to_int(__skreturn); +} +int __sklib__resolve_collision__circle_ref__circle_ref__vector_2d_ref(__sklib_circle *collider, const __sklib_circle collidee, const __sklib_vector_2d direction) { + circle __skparam__collider = __sklib__to_circle(*collider); + circle __skparam__collidee = __sklib__to_circle(collidee); + vector_2d __skparam__direction = __sklib__to_vector_2d(direction); + bool __skreturn = resolve_collision(__skparam__collider, __skparam__collidee, __skparam__direction); + *collider = __sklib__to_sklib_circle(__skparam__collider); + return __sklib__to_int(__skreturn); +} +int __sklib__resolve_collision__circle_ref__quad_ref__vector_2d_ref(__sklib_circle *collider, const __sklib_quad collidee, const __sklib_vector_2d direction) { + circle __skparam__collider = __sklib__to_circle(*collider); + quad __skparam__collidee = __sklib__to_quad(collidee); + vector_2d __skparam__direction = __sklib__to_vector_2d(direction); + bool __skreturn = resolve_collision(__skparam__collider, __skparam__collidee, __skparam__direction); + *collider = __sklib__to_sklib_circle(__skparam__collider); + return __sklib__to_int(__skreturn); +} +int __sklib__resolve_collision__circle_ref__rectangle_ref__vector_2d_ref(__sklib_circle *collider, const __sklib_rectangle collidee, const __sklib_vector_2d direction) { + circle __skparam__collider = __sklib__to_circle(*collider); + rectangle __skparam__collidee = __sklib__to_rectangle(collidee); + vector_2d __skparam__direction = __sklib__to_vector_2d(direction); + bool __skreturn = resolve_collision(__skparam__collider, __skparam__collidee, __skparam__direction); + *collider = __sklib__to_sklib_circle(__skparam__collider); + return __sklib__to_int(__skreturn); +} +int __sklib__resolve_collision__circle_ref__sprite__vector_2d_ref(__sklib_circle *collider, const __sklib_sprite collidee, const __sklib_vector_2d direction) { + circle __skparam__collider = __sklib__to_circle(*collider); + const sprite __skparam__collidee = __sklib__to_sprite(collidee); + vector_2d __skparam__direction = __sklib__to_vector_2d(direction); + bool __skreturn = resolve_collision(__skparam__collider, __skparam__collidee, __skparam__direction); + *collider = __sklib__to_sklib_circle(__skparam__collider); + return __sklib__to_int(__skreturn); +} +int __sklib__resolve_collision__circle_ref__triangle_ref__vector_2d_ref(__sklib_circle *collider, const __sklib_triangle collidee, const __sklib_vector_2d direction) { + circle __skparam__collider = __sklib__to_circle(*collider); + triangle __skparam__collidee = __sklib__to_triangle(collidee); + vector_2d __skparam__direction = __sklib__to_vector_2d(direction); + bool __skreturn = resolve_collision(__skparam__collider, __skparam__collidee, __skparam__direction); + *collider = __sklib__to_sklib_circle(__skparam__collider); + return __sklib__to_int(__skreturn); +} +int __sklib__resolve_collision__quad_ref__circle_ref__vector_2d_ref(__sklib_quad *collider, const __sklib_circle collidee, const __sklib_vector_2d direction) { + quad __skparam__collider = __sklib__to_quad(*collider); + circle __skparam__collidee = __sklib__to_circle(collidee); + vector_2d __skparam__direction = __sklib__to_vector_2d(direction); + bool __skreturn = resolve_collision(__skparam__collider, __skparam__collidee, __skparam__direction); + *collider = __sklib__to_sklib_quad(__skparam__collider); + return __sklib__to_int(__skreturn); +} +int __sklib__resolve_collision__quad_ref__rectangle_ref__vector_2d_ref(__sklib_quad *collider, const __sklib_rectangle collidee, const __sklib_vector_2d direction) { + quad __skparam__collider = __sklib__to_quad(*collider); + rectangle __skparam__collidee = __sklib__to_rectangle(collidee); + vector_2d __skparam__direction = __sklib__to_vector_2d(direction); + bool __skreturn = resolve_collision(__skparam__collider, __skparam__collidee, __skparam__direction); + *collider = __sklib__to_sklib_quad(__skparam__collider); + return __sklib__to_int(__skreturn); +} +int __sklib__resolve_collision__quad_ref__sprite__vector_2d_ref(__sklib_quad *collider, const __sklib_sprite collidee, const __sklib_vector_2d direction) { + quad __skparam__collider = __sklib__to_quad(*collider); + const sprite __skparam__collidee = __sklib__to_sprite(collidee); + vector_2d __skparam__direction = __sklib__to_vector_2d(direction); + bool __skreturn = resolve_collision(__skparam__collider, __skparam__collidee, __skparam__direction); + *collider = __sklib__to_sklib_quad(__skparam__collider); + return __sklib__to_int(__skreturn); +} +int __sklib__resolve_collision__quad_ref__triangle_ref__vector_2d_ref(__sklib_quad *collider, const __sklib_triangle collidee, const __sklib_vector_2d direction) { + quad __skparam__collider = __sklib__to_quad(*collider); + triangle __skparam__collidee = __sklib__to_triangle(collidee); + vector_2d __skparam__direction = __sklib__to_vector_2d(direction); + bool __skreturn = resolve_collision(__skparam__collider, __skparam__collidee, __skparam__direction); + *collider = __sklib__to_sklib_quad(__skparam__collider); + return __sklib__to_int(__skreturn); +} +int __sklib__resolve_collision__rectangle_ref__circle_ref__vector_2d_ref(__sklib_rectangle *collider, const __sklib_circle collidee, const __sklib_vector_2d direction) { + rectangle __skparam__collider = __sklib__to_rectangle(*collider); + circle __skparam__collidee = __sklib__to_circle(collidee); + vector_2d __skparam__direction = __sklib__to_vector_2d(direction); + bool __skreturn = resolve_collision(__skparam__collider, __skparam__collidee, __skparam__direction); + *collider = __sklib__to_sklib_rectangle(__skparam__collider); + return __sklib__to_int(__skreturn); +} +int __sklib__resolve_collision__rectangle_ref__quad_ref__vector_2d_ref(__sklib_rectangle *collider, const __sklib_quad collidee, const __sklib_vector_2d direction) { + rectangle __skparam__collider = __sklib__to_rectangle(*collider); + quad __skparam__collidee = __sklib__to_quad(collidee); + vector_2d __skparam__direction = __sklib__to_vector_2d(direction); + bool __skreturn = resolve_collision(__skparam__collider, __skparam__collidee, __skparam__direction); + *collider = __sklib__to_sklib_rectangle(__skparam__collider); + return __sklib__to_int(__skreturn); +} +int __sklib__resolve_collision__rectangle_ref__rectangle_ref__vector_2d_ref(__sklib_rectangle *collider, const __sklib_rectangle collidee, const __sklib_vector_2d direction) { + rectangle __skparam__collider = __sklib__to_rectangle(*collider); + rectangle __skparam__collidee = __sklib__to_rectangle(collidee); + vector_2d __skparam__direction = __sklib__to_vector_2d(direction); + bool __skreturn = resolve_collision(__skparam__collider, __skparam__collidee, __skparam__direction); + *collider = __sklib__to_sklib_rectangle(__skparam__collider); + return __sklib__to_int(__skreturn); +} +int __sklib__resolve_collision__rectangle_ref__sprite__vector_2d_ref(__sklib_rectangle *collider, const __sklib_sprite collidee, const __sklib_vector_2d direction) { + rectangle __skparam__collider = __sklib__to_rectangle(*collider); + const sprite __skparam__collidee = __sklib__to_sprite(collidee); + vector_2d __skparam__direction = __sklib__to_vector_2d(direction); + bool __skreturn = resolve_collision(__skparam__collider, __skparam__collidee, __skparam__direction); + *collider = __sklib__to_sklib_rectangle(__skparam__collider); + return __sklib__to_int(__skreturn); +} +int __sklib__resolve_collision__rectangle_ref__triangle_ref__vector_2d_ref(__sklib_rectangle *collider, const __sklib_triangle collidee, const __sklib_vector_2d direction) { + rectangle __skparam__collider = __sklib__to_rectangle(*collider); + triangle __skparam__collidee = __sklib__to_triangle(collidee); + vector_2d __skparam__direction = __sklib__to_vector_2d(direction); + bool __skreturn = resolve_collision(__skparam__collider, __skparam__collidee, __skparam__direction); + *collider = __sklib__to_sklib_rectangle(__skparam__collider); + return __sklib__to_int(__skreturn); +} +int __sklib__resolve_collision__sprite__circle_ref__vector_2d_ref(__sklib_sprite collider, const __sklib_circle collidee, const __sklib_vector_2d direction) { + sprite __skparam__collider = __sklib__to_sprite(collider); + circle __skparam__collidee = __sklib__to_circle(collidee); + vector_2d __skparam__direction = __sklib__to_vector_2d(direction); + bool __skreturn = resolve_collision(__skparam__collider, __skparam__collidee, __skparam__direction); + return __sklib__to_int(__skreturn); +} +int __sklib__resolve_collision__sprite__quad_ref__vector_2d_ref(__sklib_sprite collider, const __sklib_quad collidee, const __sklib_vector_2d direction) { + sprite __skparam__collider = __sklib__to_sprite(collider); + quad __skparam__collidee = __sklib__to_quad(collidee); + vector_2d __skparam__direction = __sklib__to_vector_2d(direction); + bool __skreturn = resolve_collision(__skparam__collider, __skparam__collidee, __skparam__direction); + return __sklib__to_int(__skreturn); +} +int __sklib__resolve_collision__sprite__rectangle_ref__vector_2d_ref(__sklib_sprite collider, const __sklib_rectangle collidee, const __sklib_vector_2d direction) { + sprite __skparam__collider = __sklib__to_sprite(collider); + rectangle __skparam__collidee = __sklib__to_rectangle(collidee); + vector_2d __skparam__direction = __sklib__to_vector_2d(direction); + bool __skreturn = resolve_collision(__skparam__collider, __skparam__collidee, __skparam__direction); + return __sklib__to_int(__skreturn); +} +int __sklib__resolve_collision__sprite__sprite__vector_2d_ref(__sklib_sprite collider, const __sklib_sprite collidee, const __sklib_vector_2d direction) { + sprite __skparam__collider = __sklib__to_sprite(collider); + const sprite __skparam__collidee = __sklib__to_sprite(collidee); + vector_2d __skparam__direction = __sklib__to_vector_2d(direction); + bool __skreturn = resolve_collision(__skparam__collider, __skparam__collidee, __skparam__direction); + return __sklib__to_int(__skreturn); +} +int __sklib__resolve_collision__sprite__triangle_ref__vector_2d_ref(__sklib_sprite collider, const __sklib_triangle collidee, const __sklib_vector_2d direction) { + sprite __skparam__collider = __sklib__to_sprite(collider); + triangle __skparam__collidee = __sklib__to_triangle(collidee); + vector_2d __skparam__direction = __sklib__to_vector_2d(direction); + bool __skreturn = resolve_collision(__skparam__collider, __skparam__collidee, __skparam__direction); + return __sklib__to_int(__skreturn); +} +int __sklib__resolve_collision__triangle_ref__circle_ref__vector_2d_ref(__sklib_triangle *collider, const __sklib_circle collidee, const __sklib_vector_2d direction) { + triangle __skparam__collider = __sklib__to_triangle(*collider); + circle __skparam__collidee = __sklib__to_circle(collidee); + vector_2d __skparam__direction = __sklib__to_vector_2d(direction); + bool __skreturn = resolve_collision(__skparam__collider, __skparam__collidee, __skparam__direction); + *collider = __sklib__to_sklib_triangle(__skparam__collider); + return __sklib__to_int(__skreturn); +} +int __sklib__resolve_collision__triangle_ref__quad_ref__vector_2d_ref(__sklib_triangle *collider, const __sklib_quad collidee, const __sklib_vector_2d direction) { + triangle __skparam__collider = __sklib__to_triangle(*collider); + quad __skparam__collidee = __sklib__to_quad(collidee); + vector_2d __skparam__direction = __sklib__to_vector_2d(direction); + bool __skreturn = resolve_collision(__skparam__collider, __skparam__collidee, __skparam__direction); + *collider = __sklib__to_sklib_triangle(__skparam__collider); + return __sklib__to_int(__skreturn); +} +int __sklib__resolve_collision__triangle_ref__rectangle_ref__vector_2d_ref(__sklib_triangle *collider, const __sklib_rectangle collidee, const __sklib_vector_2d direction) { + triangle __skparam__collider = __sklib__to_triangle(*collider); + rectangle __skparam__collidee = __sklib__to_rectangle(collidee); + vector_2d __skparam__direction = __sklib__to_vector_2d(direction); + bool __skreturn = resolve_collision(__skparam__collider, __skparam__collidee, __skparam__direction); + *collider = __sklib__to_sklib_triangle(__skparam__collider); + return __sklib__to_int(__skreturn); +} +int __sklib__resolve_collision__triangle_ref__sprite__vector_2d_ref(__sklib_triangle *collider, const __sklib_sprite collidee, const __sklib_vector_2d direction) { + triangle __skparam__collider = __sklib__to_triangle(*collider); + const sprite __skparam__collidee = __sklib__to_sprite(collidee); + vector_2d __skparam__direction = __sklib__to_vector_2d(direction); + bool __skreturn = resolve_collision(__skparam__collider, __skparam__collidee, __skparam__direction); + *collider = __sklib__to_sklib_triangle(__skparam__collider); + return __sklib__to_int(__skreturn); +} +int __sklib__resolve_collision__triangle_ref__triangle_ref__vector_2d_ref(__sklib_triangle *collider, const __sklib_triangle collidee, const __sklib_vector_2d direction) { + triangle __skparam__collider = __sklib__to_triangle(*collider); + triangle __skparam__collidee = __sklib__to_triangle(collidee); + vector_2d __skparam__direction = __sklib__to_vector_2d(direction); + bool __skreturn = resolve_collision(__skparam__collider, __skparam__collidee, __skparam__direction); + *collider = __sklib__to_sklib_triangle(__skparam__collider); + return __sklib__to_int(__skreturn); +} int __sklib__sprite_bitmap_collision__sprite__bitmap__double__double(__sklib_sprite s, __sklib_bitmap bmp, double x, double y) { sprite __skparam__s = __sklib__to_sprite(s); bitmap __skparam__bmp = __sklib__to_bitmap(bmp); @@ -997,6 +1438,12 @@ int __sklib__sprite_bitmap_collision__sprite__bitmap__int__double__double(__skli bool __skreturn = sprite_bitmap_collision(__skparam__s, __skparam__bmp, __skparam__cell, __skparam__x, __skparam__y); return __sklib__to_int(__skreturn); } +int __sklib__sprite_circle_collision__sprite__circle_ref(__sklib_sprite s, const __sklib_circle c) { + sprite __skparam__s = __sklib__to_sprite(s); + circle __skparam__c = __sklib__to_circle(c); + bool __skreturn = sprite_circle_collision(__skparam__s, __skparam__c); + return __sklib__to_int(__skreturn); +} int __sklib__sprite_collision__sprite__sprite(__sklib_sprite s1, __sklib_sprite s2) { sprite __skparam__s1 = __sklib__to_sprite(s1); sprite __skparam__s2 = __sklib__to_sprite(s2); @@ -1009,6 +1456,12 @@ int __sklib__sprite_point_collision__sprite__point_2d_ref(__sklib_sprite s, cons bool __skreturn = sprite_point_collision(__skparam__s, __skparam__pt); return __sklib__to_int(__skreturn); } +int __sklib__sprite_quad_collision__sprite__quad_ref(__sklib_sprite s, const __sklib_quad q) { + sprite __skparam__s = __sklib__to_sprite(s); + quad __skparam__q = __sklib__to_quad(q); + bool __skreturn = sprite_quad_collision(__skparam__s, __skparam__q); + return __sklib__to_int(__skreturn); +} int __sklib__sprite_ray_collision__sprite__point_2d_ref__vector_2d_ref(__sklib_sprite s, const __sklib_point_2d origin, const __sklib_vector_2d heading) { sprite __skparam__s = __sklib__to_sprite(s); point_2d __skparam__origin = __sklib__to_point_2d(origin); @@ -1022,6 +1475,12 @@ int __sklib__sprite_rectangle_collision__sprite__rectangle_ref(__sklib_sprite s, bool __skreturn = sprite_rectangle_collision(__skparam__s, __skparam__rect); return __sklib__to_int(__skreturn); } +int __sklib__sprite_triangle_collision__sprite__triangle_ref(__sklib_sprite s, const __sklib_triangle t) { + sprite __skparam__s = __sklib__to_sprite(s); + triangle __skparam__t = __sklib__to_triangle(t); + bool __skreturn = sprite_triangle_collision(__skparam__s, __skparam__t); + return __sklib__to_int(__skreturn); +} int __sklib__alpha_of__color(__sklib_color c) { color __skparam__c = __sklib__to_color(c); int __skreturn = alpha_of(__skparam__c); @@ -3660,6 +4119,11 @@ __sklib_string __sklib__dec_to_hex__unsigned_int(unsigned int a_dec) { string __skreturn = dec_to_hex(__skparam__a_dec); return __sklib__to_sklib_string(__skreturn); } +__sklib_string __sklib__dec_to_ipv4__unsigned_int(unsigned int ip) { + unsigned int __skparam__ip = __sklib__to_unsigned_int(ip); + string __skreturn = dec_to_ipv4(__skparam__ip); + return __sklib__to_sklib_string(__skreturn); +} __sklib_connection __sklib__fetch_new_connection__server_socket(__sklib_server_socket server) { server_socket __skparam__server = __sklib__to_server_socket(server); connection __skreturn = fetch_new_connection(__skparam__server); @@ -3718,11 +4182,6 @@ __sklib_string __sklib__ipv4_to_hex__string_ref(const __sklib_string a_ip) { string __skreturn = ipv4_to_hex(__skparam__a_ip); return __sklib__to_sklib_string(__skreturn); } -__sklib_string __sklib__ipv4_to_str__unsigned_int(unsigned int ip) { - unsigned int __skparam__ip = __sklib__to_unsigned_int(ip); - string __skreturn = ipv4_to_str(__skparam__ip); - return __sklib__to_sklib_string(__skreturn); -} int __sklib__is_connection_open__connection(__sklib_connection con) { connection __skparam__con = __sklib__to_connection(con); bool __skreturn = is_connection_open(__skparam__con); @@ -4207,6 +4666,24 @@ __sklib_quad __sklib__quad_from__double__double__double__double__double__double_ quad __skreturn = quad_from(__skparam__x_top_left, __skparam__y_top_left, __skparam__x_top_right, __skparam__y_top_right, __skparam__x_bottom_left, __skparam__y_bottom_left, __skparam__x_bottom_right, __skparam__y_bottom_right); return __sklib__to_sklib_quad(__skreturn); } +int __sklib__quad_ray_intersection__point_2d_ref__vector_2d_ref__quad_ref(const __sklib_point_2d origin, const __sklib_vector_2d heading, const __sklib_quad q) { + point_2d __skparam__origin = __sklib__to_point_2d(origin); + vector_2d __skparam__heading = __sklib__to_vector_2d(heading); + quad __skparam__q = __sklib__to_quad(q); + bool __skreturn = quad_ray_intersection(__skparam__origin, __skparam__heading, __skparam__q); + return __sklib__to_int(__skreturn); +} +int __sklib__quad_ray_intersection__point_2d_ref__vector_2d_ref__quad_ref__point_2d_ref__double_ref(const __sklib_point_2d origin, const __sklib_vector_2d heading, const __sklib_quad q, __sklib_point_2d *hit_point, double *hit_distance) { + point_2d __skparam__origin = __sklib__to_point_2d(origin); + vector_2d __skparam__heading = __sklib__to_vector_2d(heading); + quad __skparam__q = __sklib__to_quad(q); + point_2d __skparam__hit_point = __sklib__to_point_2d(*hit_point); + double __skparam__hit_distance = __sklib__to_double(*hit_distance); + bool __skreturn = quad_ray_intersection(__skparam__origin, __skparam__heading, __skparam__q, __skparam__hit_point, __skparam__hit_distance); + *hit_point = __sklib__to_sklib_point_2d(__skparam__hit_point); + *hit_distance = __sklib__to_double(__skparam__hit_distance); + return __sklib__to_int(__skreturn); +} int __sklib__quads_intersect__quad_ref__quad_ref(const __sklib_quad q1, const __sklib_quad q2) { quad __skparam__q1 = __sklib__to_quad(q1); quad __skparam__q2 = __sklib__to_quad(q2); @@ -4285,6 +4762,26 @@ void __sklib__raspi_set_pwm_range__pins__int(int pin, int range) { int __skparam__range = __sklib__to_int(range); raspi_set_pwm_range(__skparam__pin, __skparam__range); } +int __sklib__raspi_spi_close__int(int handle) { + int __skparam__handle = __sklib__to_int(handle); + int __skreturn = raspi_spi_close(__skparam__handle); + return __sklib__to_int(__skreturn); +} +int __sklib__raspi_spi_open__int__int__int(int channel, int speed, int spi_flags) { + int __skparam__channel = __sklib__to_int(channel); + int __skparam__speed = __sklib__to_int(speed); + int __skparam__spi_flags = __sklib__to_int(spi_flags); + int __skreturn = raspi_spi_open(__skparam__channel, __skparam__speed, __skparam__spi_flags); + return __sklib__to_int(__skreturn); +} +int __sklib__raspi_spi_transfer__int__string__string__int(int handle, __sklib_string sendBuf, __sklib_string recvBuf, int count) { + int __skparam__handle = __sklib__to_int(handle); + string __skparam__sendBuf = __sklib__to_string(sendBuf); + string __skparam__recvBuf = __sklib__to_string(recvBuf); + int __skparam__count = __sklib__to_int(count); + int __skreturn = raspi_spi_transfer(__skparam__handle, __skparam__sendBuf, __skparam__recvBuf, __skparam__count); + return __sklib__to_int(__skreturn); +} void __sklib__raspi_write__pins__pin_values(int pin, int value) { pins __skparam__pin = __sklib__to_pins(pin); pin_values __skparam__value = __sklib__to_pin_values(value); @@ -4590,6 +5087,12 @@ __sklib_point_2d __sklib__rectangle_center__rectangle_ref(const __sklib_rectangl point_2d __skreturn = rectangle_center(__skparam__rect); return __sklib__to_sklib_point_2d(__skreturn); } +int __sklib__rectangle_circle_intersect__rectangle_ref__circle_ref(const __sklib_rectangle rect, const __sklib_circle c) { + rectangle __skparam__rect = __sklib__to_rectangle(rect); + circle __skparam__c = __sklib__to_circle(c); + bool __skreturn = rectangle_circle_intersect(__skparam__rect, __skparam__c); + return __sklib__to_int(__skreturn); +} __sklib_rectangle __sklib__rectangle_from__point_2d__double__double(const __sklib_point_2d pt, const double width, const double height) { const point_2d __skparam__pt = __sklib__to_point_2d(pt); const double __skparam__width = __sklib__to_double(width); @@ -4622,6 +5125,24 @@ __sklib_rectangle __sklib__rectangle_offset_by__rectangle_ref__vector_2d_ref(con rectangle __skreturn = rectangle_offset_by(__skparam__rect, __skparam__offset); return __sklib__to_sklib_rectangle(__skreturn); } +int __sklib__rectangle_ray_intersection__point_2d_ref__vector_2d_ref__rectangle_ref(const __sklib_point_2d origin, const __sklib_vector_2d heading, const __sklib_rectangle rect) { + point_2d __skparam__origin = __sklib__to_point_2d(origin); + vector_2d __skparam__heading = __sklib__to_vector_2d(heading); + rectangle __skparam__rect = __sklib__to_rectangle(rect); + bool __skreturn = rectangle_ray_intersection(__skparam__origin, __skparam__heading, __skparam__rect); + return __sklib__to_int(__skreturn); +} +int __sklib__rectangle_ray_intersection__point_2d_ref__vector_2d_ref__rectangle_ref__point_2d_ref__double_ref(const __sklib_point_2d origin, const __sklib_vector_2d heading, const __sklib_rectangle rect, __sklib_point_2d *hit_point, double *hit_distance) { + point_2d __skparam__origin = __sklib__to_point_2d(origin); + vector_2d __skparam__heading = __sklib__to_vector_2d(heading); + rectangle __skparam__rect = __sklib__to_rectangle(rect); + point_2d __skparam__hit_point = __sklib__to_point_2d(*hit_point); + double __skparam__hit_distance = __sklib__to_double(*hit_distance); + bool __skreturn = rectangle_ray_intersection(__skparam__origin, __skparam__heading, __skparam__rect, __skparam__hit_point, __skparam__hit_distance); + *hit_point = __sklib__to_sklib_point_2d(__skparam__hit_point); + *hit_distance = __sklib__to_double(__skparam__hit_distance); + return __sklib__to_int(__skreturn); +} double __sklib__rectangle_right__rectangle_ref(const __sklib_rectangle rect) { rectangle __skparam__rect = __sklib__to_rectangle(rect); double __skreturn = rectangle_right(__skparam__rect); @@ -6190,6 +6711,30 @@ __sklib_triangle __sklib__triangle_from__double__double__double__double__double_ triangle __skreturn = triangle_from(__skparam__x1, __skparam__y1, __skparam__x2, __skparam__y2, __skparam__x3, __skparam__y3); return __sklib__to_sklib_triangle(__skreturn); } +int __sklib__triangle_quad_intersect__triangle_ref__quad_ref(const __sklib_triangle tri, const __sklib_quad q) { + triangle __skparam__tri = __sklib__to_triangle(tri); + quad __skparam__q = __sklib__to_quad(q); + bool __skreturn = triangle_quad_intersect(__skparam__tri, __skparam__q); + return __sklib__to_int(__skreturn); +} +int __sklib__triangle_ray_intersection__point_2d_ref__vector_2d_ref__triangle_ref(const __sklib_point_2d origin, const __sklib_vector_2d heading, const __sklib_triangle tri) { + point_2d __skparam__origin = __sklib__to_point_2d(origin); + vector_2d __skparam__heading = __sklib__to_vector_2d(heading); + triangle __skparam__tri = __sklib__to_triangle(tri); + bool __skreturn = triangle_ray_intersection(__skparam__origin, __skparam__heading, __skparam__tri); + return __sklib__to_int(__skreturn); +} +int __sklib__triangle_ray_intersection__point_2d_ref__vector_2d_ref__triangle_ref__point_2d_ref__double_ref(const __sklib_point_2d origin, const __sklib_vector_2d heading, const __sklib_triangle tri, __sklib_point_2d *hit_point, double *hit_distance) { + point_2d __skparam__origin = __sklib__to_point_2d(origin); + vector_2d __skparam__heading = __sklib__to_vector_2d(heading); + triangle __skparam__tri = __sklib__to_triangle(tri); + point_2d __skparam__hit_point = __sklib__to_point_2d(*hit_point); + double __skparam__hit_distance = __sklib__to_double(*hit_distance); + bool __skreturn = triangle_ray_intersection(__skparam__origin, __skparam__heading, __skparam__tri, __skparam__hit_point, __skparam__hit_distance); + *hit_point = __sklib__to_sklib_point_2d(__skparam__hit_point); + *hit_distance = __sklib__to_double(__skparam__hit_distance); + return __sklib__to_int(__skreturn); +} int __sklib__triangle_rectangle_intersect__triangle_ref__rectangle_ref(const __sklib_triangle tri, const __sklib_rectangle rect) { triangle __skparam__tri = __sklib__to_triangle(tri); rectangle __skparam__rect = __sklib__to_rectangle(rect); diff --git a/generated/clib/sk_clib.h b/generated/clib/sk_clib.h index 6d214719..447d256a 100644 --- a/generated/clib/sk_clib.h +++ b/generated/clib/sk_clib.h @@ -273,7 +273,10 @@ void __sklib__fill_circle_on_window__window__color__double__double__double__draw __sklib_point_2d __sklib__center_point__circle_ref(const __sklib_circle c); __sklib_circle __sklib__circle_at__point_2d_ref__double(const __sklib_point_2d pt, double radius); __sklib_circle __sklib__circle_at__double__double__double(double x, double y, double radius); +int __sklib__circle_quad_intersect__circle_ref__quad_ref(const __sklib_circle c, const __sklib_quad q); float __sklib__circle_radius__circle(const __sklib_circle c); +int __sklib__circle_ray_intersection__point_2d_ref__vector_2d_ref__circle_ref(const __sklib_point_2d origin, const __sklib_vector_2d heading, const __sklib_circle circ); +int __sklib__circle_ray_intersection__point_2d_ref__vector_2d_ref__circle_ref__point_2d_ref__double_ref(const __sklib_point_2d origin, const __sklib_vector_2d heading, const __sklib_circle circ, __sklib_point_2d *hit_point, double *hit_distance); int __sklib__circle_triangle_intersect__circle_ref__triangle_ref(const __sklib_circle c, const __sklib_triangle tri); int __sklib__circle_triangle_intersect__circle_ref__triangle_ref__point_2d_ref(const __sklib_circle c, const __sklib_triangle tri, __sklib_point_2d *p); float __sklib__circle_x__circle_ref(const __sklib_circle c); @@ -320,7 +323,11 @@ int __sklib__bitmap_point_collision__bitmap__double__double__double__double(__sk int __sklib__bitmap_point_collision__bitmap__int__matrix_2d_ref__point_2d_ref(__sklib_bitmap bmp, int cell, const __sklib_matrix_2d translation, const __sklib_point_2d pt); int __sklib__bitmap_point_collision__bitmap__int__point_2d_ref__point_2d_ref(__sklib_bitmap bmp, int cell, const __sklib_point_2d bmp_pt, const __sklib_point_2d pt); int __sklib__bitmap_point_collision__bitmap__int__double__double__double__double(__sklib_bitmap bmp, int cell, double bmp_x, double bmp_y, double x, double y); +int __sklib__bitmap_quad_collision__bitmap__point_2d_ref__quad_ref(__sklib_bitmap bmp, const __sklib_point_2d pt, const __sklib_quad q); +int __sklib__bitmap_quad_collision__bitmap__double__double__quad_ref(__sklib_bitmap bmp, double x, double y, const __sklib_quad q); int __sklib__bitmap_quad_collision__bitmap__int__matrix_2d_ref__quad_ref(__sklib_bitmap bmp, int cell, const __sklib_matrix_2d translation, const __sklib_quad q); +int __sklib__bitmap_quad_collision__bitmap__int__point_2d_ref__quad_ref(__sklib_bitmap bmp, int cell, const __sklib_point_2d pt, const __sklib_quad q); +int __sklib__bitmap_quad_collision__bitmap__int__double__double__quad_ref(__sklib_bitmap bmp, int cell, double x, double y, const __sklib_quad q); int __sklib__bitmap_ray_collision__bitmap__point_2d_ref__point_2d_ref__vector_2d_ref(__sklib_bitmap bmp, const __sklib_point_2d pt, const __sklib_point_2d origin, const __sklib_vector_2d heading); int __sklib__bitmap_ray_collision__bitmap__double__double__point_2d_ref__vector_2d_ref(__sklib_bitmap bmp, double x, double y, const __sklib_point_2d origin, const __sklib_vector_2d heading); int __sklib__bitmap_ray_collision__bitmap__int__matrix_2d_ref__point_2d_ref__vector_2d_ref(__sklib_bitmap bmp, int cell, const __sklib_matrix_2d translation, const __sklib_point_2d origin, const __sklib_vector_2d heading); @@ -331,13 +338,71 @@ int __sklib__bitmap_rectangle_collision__bitmap__double__double__rectangle_ref(_ int __sklib__bitmap_rectangle_collision__bitmap__int__matrix_2d_ref__rectangle_ref(__sklib_bitmap bmp, int cell, const __sklib_matrix_2d translation, const __sklib_rectangle rect); int __sklib__bitmap_rectangle_collision__bitmap__int__point_2d_ref__rectangle_ref(__sklib_bitmap bmp, int cell, const __sklib_point_2d pt, const __sklib_rectangle rect); int __sklib__bitmap_rectangle_collision__bitmap__int__double__double__rectangle_ref(__sklib_bitmap bmp, int cell, double x, double y, const __sklib_rectangle rect); +int __sklib__bitmap_triangle_collision__bitmap__point_2d_ref__triangle_ref(__sklib_bitmap bmp, const __sklib_point_2d pt, const __sklib_triangle tri); +int __sklib__bitmap_triangle_collision__bitmap__double__double__triangle_ref(__sklib_bitmap bmp, double x, double y, const __sklib_triangle tri); +int __sklib__bitmap_triangle_collision__bitmap__int__matrix_2d_ref__triangle_ref(__sklib_bitmap bmp, int cell, const __sklib_matrix_2d translation, const __sklib_triangle tri); +int __sklib__bitmap_triangle_collision__bitmap__int__point_2d_ref__triangle_ref(__sklib_bitmap bmp, int cell, const __sklib_point_2d pt, const __sklib_triangle tri); +int __sklib__bitmap_triangle_collision__bitmap__int__double__double__triangle_ref(__sklib_bitmap bmp, int cell, double x, double y, const __sklib_triangle tri); +__sklib_vector_2d __sklib__calculate_collision_direction__quad_ref__quad_ref(const __sklib_quad collider, const __sklib_quad collidee); +__sklib_vector_2d __sklib__calculate_collision_direction__circle_ref__circle_ref(const __sklib_circle collider, const __sklib_circle collidee); +__sklib_vector_2d __sklib__calculate_collision_direction__circle_ref__quad_ref(const __sklib_circle collider, const __sklib_quad collidee); +__sklib_vector_2d __sklib__calculate_collision_direction__circle_ref__rectangle_ref(const __sklib_circle collider, const __sklib_rectangle collidee); +__sklib_vector_2d __sklib__calculate_collision_direction__circle_ref__sprite(const __sklib_circle collider, const __sklib_sprite collidee); +__sklib_vector_2d __sklib__calculate_collision_direction__circle_ref__triangle_ref(const __sklib_circle collider, const __sklib_triangle collidee); +__sklib_vector_2d __sklib__calculate_collision_direction__quad_ref__circle_ref(const __sklib_quad collider, const __sklib_circle collidee); +__sklib_vector_2d __sklib__calculate_collision_direction__quad_ref__rectangle_ref(const __sklib_quad collider, const __sklib_rectangle collidee); +__sklib_vector_2d __sklib__calculate_collision_direction__quad_ref__sprite(const __sklib_quad collider, const __sklib_sprite collidee); +__sklib_vector_2d __sklib__calculate_collision_direction__quad_ref__triangle_ref(const __sklib_quad collider, const __sklib_triangle collidee); +__sklib_vector_2d __sklib__calculate_collision_direction__rectangle_ref__circle_ref(const __sklib_rectangle collider, const __sklib_circle collidee); +__sklib_vector_2d __sklib__calculate_collision_direction__rectangle_ref__quad_ref(const __sklib_rectangle collider, const __sklib_quad collidee); +__sklib_vector_2d __sklib__calculate_collision_direction__rectangle_ref__rectangle_ref(const __sklib_rectangle collider, const __sklib_rectangle collidee); +__sklib_vector_2d __sklib__calculate_collision_direction__rectangle_ref__sprite(const __sklib_rectangle collider, const __sklib_sprite collidee); +__sklib_vector_2d __sklib__calculate_collision_direction__rectangle_ref__triangle_ref(const __sklib_rectangle collider, const __sklib_triangle collidee); +__sklib_vector_2d __sklib__calculate_collision_direction__sprite__circle_ref(const __sklib_sprite collider, const __sklib_circle collidee); +__sklib_vector_2d __sklib__calculate_collision_direction__sprite__quad_ref(const __sklib_sprite collider, const __sklib_quad collidee); +__sklib_vector_2d __sklib__calculate_collision_direction__sprite__rectangle_ref(const __sklib_sprite collider, const __sklib_rectangle collidee); +__sklib_vector_2d __sklib__calculate_collision_direction__sprite__sprite(const __sklib_sprite collider, const __sklib_sprite collidee); +__sklib_vector_2d __sklib__calculate_collision_direction__sprite__triangle_ref(const __sklib_sprite collider, const __sklib_triangle collidee); +__sklib_vector_2d __sklib__calculate_collision_direction__triangle_ref__circle_ref(const __sklib_triangle collider, const __sklib_circle collidee); +__sklib_vector_2d __sklib__calculate_collision_direction__triangle_ref__quad_ref(const __sklib_triangle collider, const __sklib_quad collidee); +__sklib_vector_2d __sklib__calculate_collision_direction__triangle_ref__rectangle_ref(const __sklib_triangle collider, const __sklib_rectangle collidee); +__sklib_vector_2d __sklib__calculate_collision_direction__triangle_ref__sprite(const __sklib_triangle collider, const __sklib_sprite collidee); +__sklib_vector_2d __sklib__calculate_collision_direction__triangle_ref__triangle_ref(const __sklib_triangle collider, const __sklib_triangle collidee); +int __sklib__resolve_collision__quad_ref__quad_ref__vector_2d_ref(__sklib_quad *collider, const __sklib_quad collidee, const __sklib_vector_2d direction); +int __sklib__resolve_collision__circle_ref__circle_ref__vector_2d_ref(__sklib_circle *collider, const __sklib_circle collidee, const __sklib_vector_2d direction); +int __sklib__resolve_collision__circle_ref__quad_ref__vector_2d_ref(__sklib_circle *collider, const __sklib_quad collidee, const __sklib_vector_2d direction); +int __sklib__resolve_collision__circle_ref__rectangle_ref__vector_2d_ref(__sklib_circle *collider, const __sklib_rectangle collidee, const __sklib_vector_2d direction); +int __sklib__resolve_collision__circle_ref__sprite__vector_2d_ref(__sklib_circle *collider, const __sklib_sprite collidee, const __sklib_vector_2d direction); +int __sklib__resolve_collision__circle_ref__triangle_ref__vector_2d_ref(__sklib_circle *collider, const __sklib_triangle collidee, const __sklib_vector_2d direction); +int __sklib__resolve_collision__quad_ref__circle_ref__vector_2d_ref(__sklib_quad *collider, const __sklib_circle collidee, const __sklib_vector_2d direction); +int __sklib__resolve_collision__quad_ref__rectangle_ref__vector_2d_ref(__sklib_quad *collider, const __sklib_rectangle collidee, const __sklib_vector_2d direction); +int __sklib__resolve_collision__quad_ref__sprite__vector_2d_ref(__sklib_quad *collider, const __sklib_sprite collidee, const __sklib_vector_2d direction); +int __sklib__resolve_collision__quad_ref__triangle_ref__vector_2d_ref(__sklib_quad *collider, const __sklib_triangle collidee, const __sklib_vector_2d direction); +int __sklib__resolve_collision__rectangle_ref__circle_ref__vector_2d_ref(__sklib_rectangle *collider, const __sklib_circle collidee, const __sklib_vector_2d direction); +int __sklib__resolve_collision__rectangle_ref__quad_ref__vector_2d_ref(__sklib_rectangle *collider, const __sklib_quad collidee, const __sklib_vector_2d direction); +int __sklib__resolve_collision__rectangle_ref__rectangle_ref__vector_2d_ref(__sklib_rectangle *collider, const __sklib_rectangle collidee, const __sklib_vector_2d direction); +int __sklib__resolve_collision__rectangle_ref__sprite__vector_2d_ref(__sklib_rectangle *collider, const __sklib_sprite collidee, const __sklib_vector_2d direction); +int __sklib__resolve_collision__rectangle_ref__triangle_ref__vector_2d_ref(__sklib_rectangle *collider, const __sklib_triangle collidee, const __sklib_vector_2d direction); +int __sklib__resolve_collision__sprite__circle_ref__vector_2d_ref(__sklib_sprite collider, const __sklib_circle collidee, const __sklib_vector_2d direction); +int __sklib__resolve_collision__sprite__quad_ref__vector_2d_ref(__sklib_sprite collider, const __sklib_quad collidee, const __sklib_vector_2d direction); +int __sklib__resolve_collision__sprite__rectangle_ref__vector_2d_ref(__sklib_sprite collider, const __sklib_rectangle collidee, const __sklib_vector_2d direction); +int __sklib__resolve_collision__sprite__sprite__vector_2d_ref(__sklib_sprite collider, const __sklib_sprite collidee, const __sklib_vector_2d direction); +int __sklib__resolve_collision__sprite__triangle_ref__vector_2d_ref(__sklib_sprite collider, const __sklib_triangle collidee, const __sklib_vector_2d direction); +int __sklib__resolve_collision__triangle_ref__circle_ref__vector_2d_ref(__sklib_triangle *collider, const __sklib_circle collidee, const __sklib_vector_2d direction); +int __sklib__resolve_collision__triangle_ref__quad_ref__vector_2d_ref(__sklib_triangle *collider, const __sklib_quad collidee, const __sklib_vector_2d direction); +int __sklib__resolve_collision__triangle_ref__rectangle_ref__vector_2d_ref(__sklib_triangle *collider, const __sklib_rectangle collidee, const __sklib_vector_2d direction); +int __sklib__resolve_collision__triangle_ref__sprite__vector_2d_ref(__sklib_triangle *collider, const __sklib_sprite collidee, const __sklib_vector_2d direction); +int __sklib__resolve_collision__triangle_ref__triangle_ref__vector_2d_ref(__sklib_triangle *collider, const __sklib_triangle collidee, const __sklib_vector_2d direction); int __sklib__sprite_bitmap_collision__sprite__bitmap__double__double(__sklib_sprite s, __sklib_bitmap bmp, double x, double y); int __sklib__sprite_bitmap_collision__sprite__bitmap__int__point_2d_ref(__sklib_sprite s, __sklib_bitmap bmp, int cell, const __sklib_point_2d pt); int __sklib__sprite_bitmap_collision__sprite__bitmap__int__double__double(__sklib_sprite s, __sklib_bitmap bmp, int cell, double x, double y); +int __sklib__sprite_circle_collision__sprite__circle_ref(__sklib_sprite s, const __sklib_circle c); int __sklib__sprite_collision__sprite__sprite(__sklib_sprite s1, __sklib_sprite s2); int __sklib__sprite_point_collision__sprite__point_2d_ref(__sklib_sprite s, const __sklib_point_2d pt); +int __sklib__sprite_quad_collision__sprite__quad_ref(__sklib_sprite s, const __sklib_quad q); int __sklib__sprite_ray_collision__sprite__point_2d_ref__vector_2d_ref(__sklib_sprite s, const __sklib_point_2d origin, const __sklib_vector_2d heading); int __sklib__sprite_rectangle_collision__sprite__rectangle_ref(__sklib_sprite s, const __sklib_rectangle rect); +int __sklib__sprite_triangle_collision__sprite__triangle_ref(__sklib_sprite s, const __sklib_triangle t); int __sklib__alpha_of__color(__sklib_color c); int __sklib__blue_of__color(__sklib_color c); double __sklib__brightness_of__color(__sklib_color c); @@ -862,6 +927,7 @@ unsigned short __sklib__connection_port__string_ref(const __sklib_string name); __sklib_server_socket __sklib__create_server__string_ref__unsigned_short(const __sklib_string name, unsigned short port); __sklib_server_socket __sklib__create_server__string_ref__unsigned_short__connection_type(const __sklib_string name, unsigned short port, int protocol); __sklib_string __sklib__dec_to_hex__unsigned_int(unsigned int a_dec); +__sklib_string __sklib__dec_to_ipv4__unsigned_int(unsigned int ip); __sklib_connection __sklib__fetch_new_connection__server_socket(__sklib_server_socket server); int __sklib__has_connection__string_ref(const __sklib_string name); int __sklib__has_messages(); @@ -874,7 +940,6 @@ __sklib_string __sklib__hex_str_to_ipv4__string_ref(const __sklib_string a_hex); __sklib_string __sklib__hex_to_dec_string__string_ref(const __sklib_string a_hex); unsigned int __sklib__ipv4_to_dec__string_ref(const __sklib_string a_ip); __sklib_string __sklib__ipv4_to_hex__string_ref(const __sklib_string a_ip); -__sklib_string __sklib__ipv4_to_str__unsigned_int(unsigned int ip); int __sklib__is_connection_open__connection(__sklib_connection con); int __sklib__is_connection_open__string_ref(const __sklib_string name); int __sklib__is_valid_ipv4__string_ref(const __sklib_string ip); @@ -959,6 +1024,8 @@ __sklib_quad __sklib__quad_from__point_2d_ref__point_2d_ref__point_2d_ref__point __sklib_quad __sklib__quad_from__rectangle_ref(const __sklib_rectangle rect); __sklib_quad __sklib__quad_from__rectangle_ref__matrix_2d_ref(const __sklib_rectangle rect, const __sklib_matrix_2d transform); __sklib_quad __sklib__quad_from__double__double__double__double__double__double__double__double(double x_top_left, double y_top_left, double x_top_right, double y_top_right, double x_bottom_left, double y_bottom_left, double x_bottom_right, double y_bottom_right); +int __sklib__quad_ray_intersection__point_2d_ref__vector_2d_ref__quad_ref(const __sklib_point_2d origin, const __sklib_vector_2d heading, const __sklib_quad q); +int __sklib__quad_ray_intersection__point_2d_ref__vector_2d_ref__quad_ref__point_2d_ref__double_ref(const __sklib_point_2d origin, const __sklib_vector_2d heading, const __sklib_quad q, __sklib_point_2d *hit_point, double *hit_distance); int __sklib__quads_intersect__quad_ref__quad_ref(const __sklib_quad q1, const __sklib_quad q2); void __sklib__set_quad_point__quad_ref__int__point_2d_ref(__sklib_quad *q, int idx, const __sklib_point_2d value); __sklib_vector_triangle __sklib__triangles_from__quad_ref(const __sklib_quad q); @@ -975,6 +1042,9 @@ void __sklib__raspi_set_pull_up_down__pins__pull_up_down(int pin, int pud); void __sklib__raspi_set_pwm_dutycycle__pins__int(int pin, int dutycycle); void __sklib__raspi_set_pwm_frequency__pins__int(int pin, int frequency); void __sklib__raspi_set_pwm_range__pins__int(int pin, int range); +int __sklib__raspi_spi_close__int(int handle); +int __sklib__raspi_spi_open__int__int__int(int channel, int speed, int spi_flags); +int __sklib__raspi_spi_transfer__int__string__string__int(int handle, __sklib_string sendBuf, __sklib_string recvBuf, int count); void __sklib__raspi_write__pins__pin_values(int pin, int value); void __sklib__draw_quad__color__quad_ref(__sklib_color clr, const __sklib_quad q); void __sklib__draw_quad__color__quad_ref__drawing_options_ref(__sklib_color clr, const __sklib_quad q, const __sklib_drawing_options opts); @@ -1020,11 +1090,14 @@ __sklib_rectangle __sklib__rectangle_around__quad_ref(const __sklib_quad q); __sklib_rectangle __sklib__rectangle_around__triangle_ref(const __sklib_triangle t); double __sklib__rectangle_bottom__rectangle_ref(const __sklib_rectangle rect); __sklib_point_2d __sklib__rectangle_center__rectangle_ref(const __sklib_rectangle rect); +int __sklib__rectangle_circle_intersect__rectangle_ref__circle_ref(const __sklib_rectangle rect, const __sklib_circle c); __sklib_rectangle __sklib__rectangle_from__point_2d__double__double(const __sklib_point_2d pt, const double width, const double height); __sklib_rectangle __sklib__rectangle_from__point_2d__point_2d(const __sklib_point_2d pt1, const __sklib_point_2d pt2); __sklib_rectangle __sklib__rectangle_from__double__double__double__double(double x, double y, double width, double height); double __sklib__rectangle_left__rectangle_ref(const __sklib_rectangle rect); __sklib_rectangle __sklib__rectangle_offset_by__rectangle_ref__vector_2d_ref(const __sklib_rectangle rect, const __sklib_vector_2d offset); +int __sklib__rectangle_ray_intersection__point_2d_ref__vector_2d_ref__rectangle_ref(const __sklib_point_2d origin, const __sklib_vector_2d heading, const __sklib_rectangle rect); +int __sklib__rectangle_ray_intersection__point_2d_ref__vector_2d_ref__rectangle_ref__point_2d_ref__double_ref(const __sklib_point_2d origin, const __sklib_vector_2d heading, const __sklib_rectangle rect, __sklib_point_2d *hit_point, double *hit_distance); double __sklib__rectangle_right__rectangle_ref(const __sklib_rectangle rect); __sklib_string __sklib__rectangle_to_string__rectangle_ref(const __sklib_rectangle rect); double __sklib__rectangle_top__rectangle_ref(const __sklib_rectangle rect); @@ -1304,6 +1377,9 @@ void __sklib__fill_triangle_on_window__window__color__double__double__double__do __sklib_point_2d __sklib__triangle_barycenter__triangle_ref(const __sklib_triangle tri); __sklib_triangle __sklib__triangle_from__point_2d_ref__point_2d_ref__point_2d_ref(const __sklib_point_2d p1, const __sklib_point_2d p2, const __sklib_point_2d p3); __sklib_triangle __sklib__triangle_from__double__double__double__double__double__double(double x1, double y1, double x2, double y2, double x3, double y3); +int __sklib__triangle_quad_intersect__triangle_ref__quad_ref(const __sklib_triangle tri, const __sklib_quad q); +int __sklib__triangle_ray_intersection__point_2d_ref__vector_2d_ref__triangle_ref(const __sklib_point_2d origin, const __sklib_vector_2d heading, const __sklib_triangle tri); +int __sklib__triangle_ray_intersection__point_2d_ref__vector_2d_ref__triangle_ref__point_2d_ref__double_ref(const __sklib_point_2d origin, const __sklib_vector_2d heading, const __sklib_triangle tri, __sklib_point_2d *hit_point, double *hit_distance); int __sklib__triangle_rectangle_intersect__triangle_ref__rectangle_ref(const __sklib_triangle tri, const __sklib_rectangle rect); __sklib_string __sklib__triangle_to_string__triangle_ref(const __sklib_triangle tri); int __sklib__triangles_intersect__triangle_ref__triangle_ref(const __sklib_triangle t1, const __sklib_triangle t2); diff --git a/generated/cpp/circle_geometry.h b/generated/cpp/circle_geometry.h index cfa80d8e..856466fd 100644 --- a/generated/cpp/circle_geometry.h +++ b/generated/cpp/circle_geometry.h @@ -16,7 +16,10 @@ using std::vector; point_2d center_point(const circle &c); circle circle_at(const point_2d &pt, double radius); circle circle_at(double x, double y, double radius); +bool circle_quad_intersect(const circle &c, const quad &q); float circle_radius(const circle c); +bool circle_ray_intersection(const point_2d &origin, const vector_2d &heading, const circle &circ); +bool circle_ray_intersection(const point_2d &origin, const vector_2d &heading, const circle &circ, point_2d &hit_point, double &hit_distance); bool circle_triangle_intersect(const circle &c, const triangle &tri); bool circle_triangle_intersect(const circle &c, const triangle &tri, point_2d &p); float circle_x(const circle &c); diff --git a/generated/cpp/collisions.h b/generated/cpp/collisions.h index 82688bb0..372834ba 100644 --- a/generated/cpp/collisions.h +++ b/generated/cpp/collisions.h @@ -31,7 +31,11 @@ bool bitmap_point_collision(bitmap bmp, double bmp_x, double bmp_y, double x, do bool bitmap_point_collision(bitmap bmp, int cell, const matrix_2d &translation, const point_2d &pt); bool bitmap_point_collision(bitmap bmp, int cell, const point_2d &bmp_pt, const point_2d &pt); bool bitmap_point_collision(bitmap bmp, int cell, double bmp_x, double bmp_y, double x, double y); +bool bitmap_quad_collision(bitmap bmp, const point_2d &pt, const quad &q); +bool bitmap_quad_collision(bitmap bmp, double x, double y, const quad &q); bool bitmap_quad_collision(bitmap bmp, int cell, const matrix_2d &translation, const quad &q); +bool bitmap_quad_collision(bitmap bmp, int cell, const point_2d &pt, const quad &q); +bool bitmap_quad_collision(bitmap bmp, int cell, double x, double y, const quad &q); bool bitmap_ray_collision(bitmap bmp, const point_2d &pt, const point_2d &origin, const vector_2d &heading); bool bitmap_ray_collision(bitmap bmp, double x, double y, const point_2d &origin, const vector_2d &heading); bool bitmap_ray_collision(bitmap bmp, int cell, const matrix_2d &translation, const point_2d &origin, const vector_2d &heading); @@ -42,12 +46,70 @@ bool bitmap_rectangle_collision(bitmap bmp, double x, double y, const rectangle bool bitmap_rectangle_collision(bitmap bmp, int cell, const matrix_2d &translation, const rectangle &rect); bool bitmap_rectangle_collision(bitmap bmp, int cell, const point_2d &pt, const rectangle &rect); bool bitmap_rectangle_collision(bitmap bmp, int cell, double x, double y, const rectangle &rect); +bool bitmap_triangle_collision(bitmap bmp, const point_2d &pt, const triangle &tri); +bool bitmap_triangle_collision(bitmap bmp, double x, double y, const triangle &tri); +bool bitmap_triangle_collision(bitmap bmp, int cell, const matrix_2d &translation, const triangle &tri); +bool bitmap_triangle_collision(bitmap bmp, int cell, const point_2d &pt, const triangle &tri); +bool bitmap_triangle_collision(bitmap bmp, int cell, double x, double y, const triangle &tri); +vector_2d calculate_collision_direction(const quad &collider, const quad &collidee); +vector_2d calculate_collision_direction(const circle &collider, const circle &collidee); +vector_2d calculate_collision_direction(const circle &collider, const quad &collidee); +vector_2d calculate_collision_direction(const circle &collider, const rectangle &collidee); +vector_2d calculate_collision_direction(const circle &collider, const sprite collidee); +vector_2d calculate_collision_direction(const circle &collider, const triangle &collidee); +vector_2d calculate_collision_direction(const quad &collider, const circle &collidee); +vector_2d calculate_collision_direction(const quad &collider, const rectangle &collidee); +vector_2d calculate_collision_direction(const quad &collider, const sprite collidee); +vector_2d calculate_collision_direction(const quad &collider, const triangle &collidee); +vector_2d calculate_collision_direction(const rectangle &collider, const circle &collidee); +vector_2d calculate_collision_direction(const rectangle &collider, const quad &collidee); +vector_2d calculate_collision_direction(const rectangle &collider, const rectangle &collidee); +vector_2d calculate_collision_direction(const rectangle &collider, const sprite collidee); +vector_2d calculate_collision_direction(const rectangle &collider, const triangle &collidee); +vector_2d calculate_collision_direction(const sprite collider, const circle &collidee); +vector_2d calculate_collision_direction(const sprite collider, const quad &collidee); +vector_2d calculate_collision_direction(const sprite collider, const rectangle &collidee); +vector_2d calculate_collision_direction(const sprite collider, const sprite collidee); +vector_2d calculate_collision_direction(const sprite collider, const triangle &collidee); +vector_2d calculate_collision_direction(const triangle &collider, const circle &collidee); +vector_2d calculate_collision_direction(const triangle &collider, const quad &collidee); +vector_2d calculate_collision_direction(const triangle &collider, const rectangle &collidee); +vector_2d calculate_collision_direction(const triangle &collider, const sprite collidee); +vector_2d calculate_collision_direction(const triangle &collider, const triangle &collidee); +bool resolve_collision(quad &collider, const quad &collidee, const vector_2d &direction); +bool resolve_collision(circle &collider, const circle &collidee, const vector_2d &direction); +bool resolve_collision(circle &collider, const quad &collidee, const vector_2d &direction); +bool resolve_collision(circle &collider, const rectangle &collidee, const vector_2d &direction); +bool resolve_collision(circle &collider, const sprite collidee, const vector_2d &direction); +bool resolve_collision(circle &collider, const triangle &collidee, const vector_2d &direction); +bool resolve_collision(quad &collider, const circle &collidee, const vector_2d &direction); +bool resolve_collision(quad &collider, const rectangle &collidee, const vector_2d &direction); +bool resolve_collision(quad &collider, const sprite collidee, const vector_2d &direction); +bool resolve_collision(quad &collider, const triangle &collidee, const vector_2d &direction); +bool resolve_collision(rectangle &collider, const circle &collidee, const vector_2d &direction); +bool resolve_collision(rectangle &collider, const quad &collidee, const vector_2d &direction); +bool resolve_collision(rectangle &collider, const rectangle &collidee, const vector_2d &direction); +bool resolve_collision(rectangle &collider, const sprite collidee, const vector_2d &direction); +bool resolve_collision(rectangle &collider, const triangle &collidee, const vector_2d &direction); +bool resolve_collision(sprite collider, const circle &collidee, const vector_2d &direction); +bool resolve_collision(sprite collider, const quad &collidee, const vector_2d &direction); +bool resolve_collision(sprite collider, const rectangle &collidee, const vector_2d &direction); +bool resolve_collision(sprite collider, const sprite collidee, const vector_2d &direction); +bool resolve_collision(sprite collider, const triangle &collidee, const vector_2d &direction); +bool resolve_collision(triangle &collider, const circle &collidee, const vector_2d &direction); +bool resolve_collision(triangle &collider, const quad &collidee, const vector_2d &direction); +bool resolve_collision(triangle &collider, const rectangle &collidee, const vector_2d &direction); +bool resolve_collision(triangle &collider, const sprite collidee, const vector_2d &direction); +bool resolve_collision(triangle &collider, const triangle &collidee, const vector_2d &direction); bool sprite_bitmap_collision(sprite s, bitmap bmp, double x, double y); bool sprite_bitmap_collision(sprite s, bitmap bmp, int cell, const point_2d &pt); bool sprite_bitmap_collision(sprite s, bitmap bmp, int cell, double x, double y); +bool sprite_circle_collision(sprite s, const circle &c); bool sprite_collision(sprite s1, sprite s2); bool sprite_point_collision(sprite s, const point_2d &pt); +bool sprite_quad_collision(sprite s, const quad &q); bool sprite_ray_collision(sprite s, const point_2d &origin, const vector_2d &heading); bool sprite_rectangle_collision(sprite s, const rectangle &rect); +bool sprite_triangle_collision(sprite s, const triangle &t); #endif /* __collisions_h */ diff --git a/generated/cpp/networking.h b/generated/cpp/networking.h index ba789e30..4cf281ed 100644 --- a/generated/cpp/networking.h +++ b/generated/cpp/networking.h @@ -49,6 +49,7 @@ unsigned short connection_port(const string &name); server_socket create_server(const string &name, unsigned short port); server_socket create_server(const string &name, unsigned short port, connection_type protocol); string dec_to_hex(unsigned int a_dec); +string dec_to_ipv4(unsigned int ip); connection fetch_new_connection(server_socket server); bool has_connection(const string &name); bool has_messages(); @@ -61,7 +62,6 @@ string hex_str_to_ipv4(const string &a_hex); string hex_to_dec_string(const string &a_hex); unsigned int ipv4_to_dec(const string &a_ip); string ipv4_to_hex(const string &a_ip); -string ipv4_to_str(unsigned int ip); bool is_connection_open(connection con); bool is_connection_open(const string &name); bool is_valid_ipv4(const string &ip); diff --git a/generated/cpp/quad_geometry.h b/generated/cpp/quad_geometry.h index 8713bb0a..a637a5cc 100644 --- a/generated/cpp/quad_geometry.h +++ b/generated/cpp/quad_geometry.h @@ -19,6 +19,8 @@ quad quad_from(const point_2d &p1, const point_2d &p2, const point_2d &p3, const quad quad_from(const rectangle &rect); quad quad_from(const rectangle &rect, const matrix_2d &transform); quad quad_from(double x_top_left, double y_top_left, double x_top_right, double y_top_right, double x_bottom_left, double y_bottom_left, double x_bottom_right, double y_bottom_right); +bool quad_ray_intersection(const point_2d &origin, const vector_2d &heading, const quad &q); +bool quad_ray_intersection(const point_2d &origin, const vector_2d &heading, const quad &q, point_2d &hit_point, double &hit_distance); bool quads_intersect(const quad &q1, const quad &q2); void set_quad_point(quad &q, int idx, const point_2d &value); vector triangles_from(const quad &q); diff --git a/generated/cpp/raspi_gpio.h b/generated/cpp/raspi_gpio.h index bea531b9..75570716 100644 --- a/generated/cpp/raspi_gpio.h +++ b/generated/cpp/raspi_gpio.h @@ -23,6 +23,9 @@ void raspi_set_pull_up_down(pins pin, pull_up_down pud); void raspi_set_pwm_dutycycle(pins pin, int dutycycle); void raspi_set_pwm_frequency(pins pin, int frequency); void raspi_set_pwm_range(pins pin, int range); +int raspi_spi_close(int handle); +int raspi_spi_open(int channel, int speed, int spi_flags); +int raspi_spi_transfer(int handle, string sendBuf, string recvBuf, int count); void raspi_write(pins pin, pin_values value); #endif /* __raspi_gpio_h */ diff --git a/generated/cpp/rectangle_geometry.h b/generated/cpp/rectangle_geometry.h index b60edca9..a2ea558a 100644 --- a/generated/cpp/rectangle_geometry.h +++ b/generated/cpp/rectangle_geometry.h @@ -21,11 +21,14 @@ rectangle rectangle_around(const quad &q); rectangle rectangle_around(const triangle &t); double rectangle_bottom(const rectangle &rect); point_2d rectangle_center(const rectangle &rect); +bool rectangle_circle_intersect(const rectangle &rect, const circle &c); rectangle rectangle_from(const point_2d pt, const double width, const double height); rectangle rectangle_from(const point_2d pt1, const point_2d pt2); rectangle rectangle_from(double x, double y, double width, double height); double rectangle_left(const rectangle &rect); rectangle rectangle_offset_by(const rectangle &rect, const vector_2d &offset); +bool rectangle_ray_intersection(const point_2d &origin, const vector_2d &heading, const rectangle &rect); +bool rectangle_ray_intersection(const point_2d &origin, const vector_2d &heading, const rectangle &rect, point_2d &hit_point, double &hit_distance); double rectangle_right(const rectangle &rect); string rectangle_to_string(const rectangle &rect); double rectangle_top(const rectangle &rect); diff --git a/generated/cpp/splashkit.cpp b/generated/cpp/splashkit.cpp index 490d3425..03417291 100644 --- a/generated/cpp/splashkit.cpp +++ b/generated/cpp/splashkit.cpp @@ -609,11 +609,35 @@ circle circle_at(double x, double y, double radius) { __sklib_circle __skreturn = __sklib__circle_at__double__double__double(__skparam__x, __skparam__y, __skparam__radius); return __skadapter__to_circle(__skreturn); } +bool circle_quad_intersect(const circle &c, const quad &q) { + const __sklib_circle __skparam__c = __skadapter__to_sklib_circle(c); + const __sklib_quad __skparam__q = __skadapter__to_sklib_quad(q); + int __skreturn = __sklib__circle_quad_intersect__circle_ref__quad_ref(__skparam__c, __skparam__q); + return __skadapter__to_bool(__skreturn); +} float circle_radius(const circle c) { const __sklib_circle __skparam__c = __skadapter__to_sklib_circle(c); float __skreturn = __sklib__circle_radius__circle(__skparam__c); return __skadapter__to_float(__skreturn); } +bool circle_ray_intersection(const point_2d &origin, const vector_2d &heading, const circle &circ) { + const __sklib_point_2d __skparam__origin = __skadapter__to_sklib_point_2d(origin); + const __sklib_vector_2d __skparam__heading = __skadapter__to_sklib_vector_2d(heading); + const __sklib_circle __skparam__circ = __skadapter__to_sklib_circle(circ); + int __skreturn = __sklib__circle_ray_intersection__point_2d_ref__vector_2d_ref__circle_ref(__skparam__origin, __skparam__heading, __skparam__circ); + return __skadapter__to_bool(__skreturn); +} +bool circle_ray_intersection(const point_2d &origin, const vector_2d &heading, const circle &circ, point_2d &hit_point, double &hit_distance) { + const __sklib_point_2d __skparam__origin = __skadapter__to_sklib_point_2d(origin); + const __sklib_vector_2d __skparam__heading = __skadapter__to_sklib_vector_2d(heading); + const __sklib_circle __skparam__circ = __skadapter__to_sklib_circle(circ); + __sklib_point_2d __skparam__hit_point = __skadapter__to_sklib_point_2d(hit_point); + double __skparam__hit_distance = __skadapter__to_double(hit_distance); + int __skreturn = __sklib__circle_ray_intersection__point_2d_ref__vector_2d_ref__circle_ref__point_2d_ref__double_ref(__skparam__origin, __skparam__heading, __skparam__circ, &__skparam__hit_point, &__skparam__hit_distance); + hit_point = __skadapter__to_point_2d(__skparam__hit_point); + hit_distance = __skadapter__to_double(__skparam__hit_distance); + return __skadapter__to_bool(__skreturn); +} bool circle_triangle_intersect(const circle &c, const triangle &tri) { const __sklib_circle __skparam__c = __skadapter__to_sklib_circle(c); const __sklib_triangle __skparam__tri = __skadapter__to_sklib_triangle(tri); @@ -922,6 +946,21 @@ bool bitmap_point_collision(bitmap bmp, int cell, double bmp_x, double bmp_y, do int __skreturn = __sklib__bitmap_point_collision__bitmap__int__double__double__double__double(__skparam__bmp, __skparam__cell, __skparam__bmp_x, __skparam__bmp_y, __skparam__x, __skparam__y); return __skadapter__to_bool(__skreturn); } +bool bitmap_quad_collision(bitmap bmp, const point_2d &pt, const quad &q) { + __sklib_bitmap __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); + const __sklib_point_2d __skparam__pt = __skadapter__to_sklib_point_2d(pt); + const __sklib_quad __skparam__q = __skadapter__to_sklib_quad(q); + int __skreturn = __sklib__bitmap_quad_collision__bitmap__point_2d_ref__quad_ref(__skparam__bmp, __skparam__pt, __skparam__q); + return __skadapter__to_bool(__skreturn); +} +bool bitmap_quad_collision(bitmap bmp, double x, double y, const quad &q) { + __sklib_bitmap __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); + double __skparam__x = __skadapter__to_double(x); + double __skparam__y = __skadapter__to_double(y); + const __sklib_quad __skparam__q = __skadapter__to_sklib_quad(q); + int __skreturn = __sklib__bitmap_quad_collision__bitmap__double__double__quad_ref(__skparam__bmp, __skparam__x, __skparam__y, __skparam__q); + return __skadapter__to_bool(__skreturn); +} bool bitmap_quad_collision(bitmap bmp, int cell, const matrix_2d &translation, const quad &q) { __sklib_bitmap __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); int __skparam__cell = __skadapter__to_int(cell); @@ -930,6 +969,23 @@ bool bitmap_quad_collision(bitmap bmp, int cell, const matrix_2d &translation, c int __skreturn = __sklib__bitmap_quad_collision__bitmap__int__matrix_2d_ref__quad_ref(__skparam__bmp, __skparam__cell, __skparam__translation, __skparam__q); return __skadapter__to_bool(__skreturn); } +bool bitmap_quad_collision(bitmap bmp, int cell, const point_2d &pt, const quad &q) { + __sklib_bitmap __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); + int __skparam__cell = __skadapter__to_int(cell); + const __sklib_point_2d __skparam__pt = __skadapter__to_sklib_point_2d(pt); + const __sklib_quad __skparam__q = __skadapter__to_sklib_quad(q); + int __skreturn = __sklib__bitmap_quad_collision__bitmap__int__point_2d_ref__quad_ref(__skparam__bmp, __skparam__cell, __skparam__pt, __skparam__q); + return __skadapter__to_bool(__skreturn); +} +bool bitmap_quad_collision(bitmap bmp, int cell, double x, double y, const quad &q) { + __sklib_bitmap __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); + int __skparam__cell = __skadapter__to_int(cell); + double __skparam__x = __skadapter__to_double(x); + double __skparam__y = __skadapter__to_double(y); + const __sklib_quad __skparam__q = __skadapter__to_sklib_quad(q); + int __skreturn = __sklib__bitmap_quad_collision__bitmap__int__double__double__quad_ref(__skparam__bmp, __skparam__cell, __skparam__x, __skparam__y, __skparam__q); + return __skadapter__to_bool(__skreturn); +} bool bitmap_ray_collision(bitmap bmp, const point_2d &pt, const point_2d &origin, const vector_2d &heading) { __sklib_bitmap __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); const __sklib_point_2d __skparam__pt = __skadapter__to_sklib_point_2d(pt); @@ -1015,6 +1071,391 @@ bool bitmap_rectangle_collision(bitmap bmp, int cell, double x, double y, const int __skreturn = __sklib__bitmap_rectangle_collision__bitmap__int__double__double__rectangle_ref(__skparam__bmp, __skparam__cell, __skparam__x, __skparam__y, __skparam__rect); return __skadapter__to_bool(__skreturn); } +bool bitmap_triangle_collision(bitmap bmp, const point_2d &pt, const triangle &tri) { + __sklib_bitmap __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); + const __sklib_point_2d __skparam__pt = __skadapter__to_sklib_point_2d(pt); + const __sklib_triangle __skparam__tri = __skadapter__to_sklib_triangle(tri); + int __skreturn = __sklib__bitmap_triangle_collision__bitmap__point_2d_ref__triangle_ref(__skparam__bmp, __skparam__pt, __skparam__tri); + return __skadapter__to_bool(__skreturn); +} +bool bitmap_triangle_collision(bitmap bmp, double x, double y, const triangle &tri) { + __sklib_bitmap __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); + double __skparam__x = __skadapter__to_double(x); + double __skparam__y = __skadapter__to_double(y); + const __sklib_triangle __skparam__tri = __skadapter__to_sklib_triangle(tri); + int __skreturn = __sklib__bitmap_triangle_collision__bitmap__double__double__triangle_ref(__skparam__bmp, __skparam__x, __skparam__y, __skparam__tri); + return __skadapter__to_bool(__skreturn); +} +bool bitmap_triangle_collision(bitmap bmp, int cell, const matrix_2d &translation, const triangle &tri) { + __sklib_bitmap __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); + int __skparam__cell = __skadapter__to_int(cell); + const __sklib_matrix_2d __skparam__translation = __skadapter__to_sklib_matrix_2d(translation); + const __sklib_triangle __skparam__tri = __skadapter__to_sklib_triangle(tri); + int __skreturn = __sklib__bitmap_triangle_collision__bitmap__int__matrix_2d_ref__triangle_ref(__skparam__bmp, __skparam__cell, __skparam__translation, __skparam__tri); + return __skadapter__to_bool(__skreturn); +} +bool bitmap_triangle_collision(bitmap bmp, int cell, const point_2d &pt, const triangle &tri) { + __sklib_bitmap __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); + int __skparam__cell = __skadapter__to_int(cell); + const __sklib_point_2d __skparam__pt = __skadapter__to_sklib_point_2d(pt); + const __sklib_triangle __skparam__tri = __skadapter__to_sklib_triangle(tri); + int __skreturn = __sklib__bitmap_triangle_collision__bitmap__int__point_2d_ref__triangle_ref(__skparam__bmp, __skparam__cell, __skparam__pt, __skparam__tri); + return __skadapter__to_bool(__skreturn); +} +bool bitmap_triangle_collision(bitmap bmp, int cell, double x, double y, const triangle &tri) { + __sklib_bitmap __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); + int __skparam__cell = __skadapter__to_int(cell); + double __skparam__x = __skadapter__to_double(x); + double __skparam__y = __skadapter__to_double(y); + const __sklib_triangle __skparam__tri = __skadapter__to_sklib_triangle(tri); + int __skreturn = __sklib__bitmap_triangle_collision__bitmap__int__double__double__triangle_ref(__skparam__bmp, __skparam__cell, __skparam__x, __skparam__y, __skparam__tri); + return __skadapter__to_bool(__skreturn); +} +vector_2d calculate_collision_direction(const quad &collider, const quad &collidee) { + const __sklib_quad __skparam__collider = __skadapter__to_sklib_quad(collider); + const __sklib_quad __skparam__collidee = __skadapter__to_sklib_quad(collidee); + __sklib_vector_2d __skreturn = __sklib__calculate_collision_direction__quad_ref__quad_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); +} +vector_2d calculate_collision_direction(const circle &collider, const circle &collidee) { + const __sklib_circle __skparam__collider = __skadapter__to_sklib_circle(collider); + const __sklib_circle __skparam__collidee = __skadapter__to_sklib_circle(collidee); + __sklib_vector_2d __skreturn = __sklib__calculate_collision_direction__circle_ref__circle_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); +} +vector_2d calculate_collision_direction(const circle &collider, const quad &collidee) { + const __sklib_circle __skparam__collider = __skadapter__to_sklib_circle(collider); + const __sklib_quad __skparam__collidee = __skadapter__to_sklib_quad(collidee); + __sklib_vector_2d __skreturn = __sklib__calculate_collision_direction__circle_ref__quad_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); +} +vector_2d calculate_collision_direction(const circle &collider, const rectangle &collidee) { + const __sklib_circle __skparam__collider = __skadapter__to_sklib_circle(collider); + const __sklib_rectangle __skparam__collidee = __skadapter__to_sklib_rectangle(collidee); + __sklib_vector_2d __skreturn = __sklib__calculate_collision_direction__circle_ref__rectangle_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); +} +vector_2d calculate_collision_direction(const circle &collider, const sprite collidee) { + const __sklib_circle __skparam__collider = __skadapter__to_sklib_circle(collider); + const __sklib_sprite __skparam__collidee = __skadapter__to_sklib_sprite(collidee); + __sklib_vector_2d __skreturn = __sklib__calculate_collision_direction__circle_ref__sprite(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); +} +vector_2d calculate_collision_direction(const circle &collider, const triangle &collidee) { + const __sklib_circle __skparam__collider = __skadapter__to_sklib_circle(collider); + const __sklib_triangle __skparam__collidee = __skadapter__to_sklib_triangle(collidee); + __sklib_vector_2d __skreturn = __sklib__calculate_collision_direction__circle_ref__triangle_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); +} +vector_2d calculate_collision_direction(const quad &collider, const circle &collidee) { + const __sklib_quad __skparam__collider = __skadapter__to_sklib_quad(collider); + const __sklib_circle __skparam__collidee = __skadapter__to_sklib_circle(collidee); + __sklib_vector_2d __skreturn = __sklib__calculate_collision_direction__quad_ref__circle_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); +} +vector_2d calculate_collision_direction(const quad &collider, const rectangle &collidee) { + const __sklib_quad __skparam__collider = __skadapter__to_sklib_quad(collider); + const __sklib_rectangle __skparam__collidee = __skadapter__to_sklib_rectangle(collidee); + __sklib_vector_2d __skreturn = __sklib__calculate_collision_direction__quad_ref__rectangle_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); +} +vector_2d calculate_collision_direction(const quad &collider, const sprite collidee) { + const __sklib_quad __skparam__collider = __skadapter__to_sklib_quad(collider); + const __sklib_sprite __skparam__collidee = __skadapter__to_sklib_sprite(collidee); + __sklib_vector_2d __skreturn = __sklib__calculate_collision_direction__quad_ref__sprite(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); +} +vector_2d calculate_collision_direction(const quad &collider, const triangle &collidee) { + const __sklib_quad __skparam__collider = __skadapter__to_sklib_quad(collider); + const __sklib_triangle __skparam__collidee = __skadapter__to_sklib_triangle(collidee); + __sklib_vector_2d __skreturn = __sklib__calculate_collision_direction__quad_ref__triangle_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); +} +vector_2d calculate_collision_direction(const rectangle &collider, const circle &collidee) { + const __sklib_rectangle __skparam__collider = __skadapter__to_sklib_rectangle(collider); + const __sklib_circle __skparam__collidee = __skadapter__to_sklib_circle(collidee); + __sklib_vector_2d __skreturn = __sklib__calculate_collision_direction__rectangle_ref__circle_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); +} +vector_2d calculate_collision_direction(const rectangle &collider, const quad &collidee) { + const __sklib_rectangle __skparam__collider = __skadapter__to_sklib_rectangle(collider); + const __sklib_quad __skparam__collidee = __skadapter__to_sklib_quad(collidee); + __sklib_vector_2d __skreturn = __sklib__calculate_collision_direction__rectangle_ref__quad_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); +} +vector_2d calculate_collision_direction(const rectangle &collider, const rectangle &collidee) { + const __sklib_rectangle __skparam__collider = __skadapter__to_sklib_rectangle(collider); + const __sklib_rectangle __skparam__collidee = __skadapter__to_sklib_rectangle(collidee); + __sklib_vector_2d __skreturn = __sklib__calculate_collision_direction__rectangle_ref__rectangle_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); +} +vector_2d calculate_collision_direction(const rectangle &collider, const sprite collidee) { + const __sklib_rectangle __skparam__collider = __skadapter__to_sklib_rectangle(collider); + const __sklib_sprite __skparam__collidee = __skadapter__to_sklib_sprite(collidee); + __sklib_vector_2d __skreturn = __sklib__calculate_collision_direction__rectangle_ref__sprite(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); +} +vector_2d calculate_collision_direction(const rectangle &collider, const triangle &collidee) { + const __sklib_rectangle __skparam__collider = __skadapter__to_sklib_rectangle(collider); + const __sklib_triangle __skparam__collidee = __skadapter__to_sklib_triangle(collidee); + __sklib_vector_2d __skreturn = __sklib__calculate_collision_direction__rectangle_ref__triangle_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); +} +vector_2d calculate_collision_direction(const sprite collider, const circle &collidee) { + const __sklib_sprite __skparam__collider = __skadapter__to_sklib_sprite(collider); + const __sklib_circle __skparam__collidee = __skadapter__to_sklib_circle(collidee); + __sklib_vector_2d __skreturn = __sklib__calculate_collision_direction__sprite__circle_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); +} +vector_2d calculate_collision_direction(const sprite collider, const quad &collidee) { + const __sklib_sprite __skparam__collider = __skadapter__to_sklib_sprite(collider); + const __sklib_quad __skparam__collidee = __skadapter__to_sklib_quad(collidee); + __sklib_vector_2d __skreturn = __sklib__calculate_collision_direction__sprite__quad_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); +} +vector_2d calculate_collision_direction(const sprite collider, const rectangle &collidee) { + const __sklib_sprite __skparam__collider = __skadapter__to_sklib_sprite(collider); + const __sklib_rectangle __skparam__collidee = __skadapter__to_sklib_rectangle(collidee); + __sklib_vector_2d __skreturn = __sklib__calculate_collision_direction__sprite__rectangle_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); +} +vector_2d calculate_collision_direction(const sprite collider, const sprite collidee) { + const __sklib_sprite __skparam__collider = __skadapter__to_sklib_sprite(collider); + const __sklib_sprite __skparam__collidee = __skadapter__to_sklib_sprite(collidee); + __sklib_vector_2d __skreturn = __sklib__calculate_collision_direction__sprite__sprite(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); +} +vector_2d calculate_collision_direction(const sprite collider, const triangle &collidee) { + const __sklib_sprite __skparam__collider = __skadapter__to_sklib_sprite(collider); + const __sklib_triangle __skparam__collidee = __skadapter__to_sklib_triangle(collidee); + __sklib_vector_2d __skreturn = __sklib__calculate_collision_direction__sprite__triangle_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); +} +vector_2d calculate_collision_direction(const triangle &collider, const circle &collidee) { + const __sklib_triangle __skparam__collider = __skadapter__to_sklib_triangle(collider); + const __sklib_circle __skparam__collidee = __skadapter__to_sklib_circle(collidee); + __sklib_vector_2d __skreturn = __sklib__calculate_collision_direction__triangle_ref__circle_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); +} +vector_2d calculate_collision_direction(const triangle &collider, const quad &collidee) { + const __sklib_triangle __skparam__collider = __skadapter__to_sklib_triangle(collider); + const __sklib_quad __skparam__collidee = __skadapter__to_sklib_quad(collidee); + __sklib_vector_2d __skreturn = __sklib__calculate_collision_direction__triangle_ref__quad_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); +} +vector_2d calculate_collision_direction(const triangle &collider, const rectangle &collidee) { + const __sklib_triangle __skparam__collider = __skadapter__to_sklib_triangle(collider); + const __sklib_rectangle __skparam__collidee = __skadapter__to_sklib_rectangle(collidee); + __sklib_vector_2d __skreturn = __sklib__calculate_collision_direction__triangle_ref__rectangle_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); +} +vector_2d calculate_collision_direction(const triangle &collider, const sprite collidee) { + const __sklib_triangle __skparam__collider = __skadapter__to_sklib_triangle(collider); + const __sklib_sprite __skparam__collidee = __skadapter__to_sklib_sprite(collidee); + __sklib_vector_2d __skreturn = __sklib__calculate_collision_direction__triangle_ref__sprite(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); +} +vector_2d calculate_collision_direction(const triangle &collider, const triangle &collidee) { + const __sklib_triangle __skparam__collider = __skadapter__to_sklib_triangle(collider); + const __sklib_triangle __skparam__collidee = __skadapter__to_sklib_triangle(collidee); + __sklib_vector_2d __skreturn = __sklib__calculate_collision_direction__triangle_ref__triangle_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); +} +bool resolve_collision(quad &collider, const quad &collidee, const vector_2d &direction) { + __sklib_quad __skparam__collider = __skadapter__to_sklib_quad(collider); + const __sklib_quad __skparam__collidee = __skadapter__to_sklib_quad(collidee); + const __sklib_vector_2d __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + int __skreturn = __sklib__resolve_collision__quad_ref__quad_ref__vector_2d_ref(&__skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_quad(__skparam__collider); + return __skadapter__to_bool(__skreturn); +} +bool resolve_collision(circle &collider, const circle &collidee, const vector_2d &direction) { + __sklib_circle __skparam__collider = __skadapter__to_sklib_circle(collider); + const __sklib_circle __skparam__collidee = __skadapter__to_sklib_circle(collidee); + const __sklib_vector_2d __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + int __skreturn = __sklib__resolve_collision__circle_ref__circle_ref__vector_2d_ref(&__skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_circle(__skparam__collider); + return __skadapter__to_bool(__skreturn); +} +bool resolve_collision(circle &collider, const quad &collidee, const vector_2d &direction) { + __sklib_circle __skparam__collider = __skadapter__to_sklib_circle(collider); + const __sklib_quad __skparam__collidee = __skadapter__to_sklib_quad(collidee); + const __sklib_vector_2d __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + int __skreturn = __sklib__resolve_collision__circle_ref__quad_ref__vector_2d_ref(&__skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_circle(__skparam__collider); + return __skadapter__to_bool(__skreturn); +} +bool resolve_collision(circle &collider, const rectangle &collidee, const vector_2d &direction) { + __sklib_circle __skparam__collider = __skadapter__to_sklib_circle(collider); + const __sklib_rectangle __skparam__collidee = __skadapter__to_sklib_rectangle(collidee); + const __sklib_vector_2d __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + int __skreturn = __sklib__resolve_collision__circle_ref__rectangle_ref__vector_2d_ref(&__skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_circle(__skparam__collider); + return __skadapter__to_bool(__skreturn); +} +bool resolve_collision(circle &collider, const sprite collidee, const vector_2d &direction) { + __sklib_circle __skparam__collider = __skadapter__to_sklib_circle(collider); + const __sklib_sprite __skparam__collidee = __skadapter__to_sklib_sprite(collidee); + const __sklib_vector_2d __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + int __skreturn = __sklib__resolve_collision__circle_ref__sprite__vector_2d_ref(&__skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_circle(__skparam__collider); + return __skadapter__to_bool(__skreturn); +} +bool resolve_collision(circle &collider, const triangle &collidee, const vector_2d &direction) { + __sklib_circle __skparam__collider = __skadapter__to_sklib_circle(collider); + const __sklib_triangle __skparam__collidee = __skadapter__to_sklib_triangle(collidee); + const __sklib_vector_2d __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + int __skreturn = __sklib__resolve_collision__circle_ref__triangle_ref__vector_2d_ref(&__skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_circle(__skparam__collider); + return __skadapter__to_bool(__skreturn); +} +bool resolve_collision(quad &collider, const circle &collidee, const vector_2d &direction) { + __sklib_quad __skparam__collider = __skadapter__to_sklib_quad(collider); + const __sklib_circle __skparam__collidee = __skadapter__to_sklib_circle(collidee); + const __sklib_vector_2d __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + int __skreturn = __sklib__resolve_collision__quad_ref__circle_ref__vector_2d_ref(&__skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_quad(__skparam__collider); + return __skadapter__to_bool(__skreturn); +} +bool resolve_collision(quad &collider, const rectangle &collidee, const vector_2d &direction) { + __sklib_quad __skparam__collider = __skadapter__to_sklib_quad(collider); + const __sklib_rectangle __skparam__collidee = __skadapter__to_sklib_rectangle(collidee); + const __sklib_vector_2d __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + int __skreturn = __sklib__resolve_collision__quad_ref__rectangle_ref__vector_2d_ref(&__skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_quad(__skparam__collider); + return __skadapter__to_bool(__skreturn); +} +bool resolve_collision(quad &collider, const sprite collidee, const vector_2d &direction) { + __sklib_quad __skparam__collider = __skadapter__to_sklib_quad(collider); + const __sklib_sprite __skparam__collidee = __skadapter__to_sklib_sprite(collidee); + const __sklib_vector_2d __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + int __skreturn = __sklib__resolve_collision__quad_ref__sprite__vector_2d_ref(&__skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_quad(__skparam__collider); + return __skadapter__to_bool(__skreturn); +} +bool resolve_collision(quad &collider, const triangle &collidee, const vector_2d &direction) { + __sklib_quad __skparam__collider = __skadapter__to_sklib_quad(collider); + const __sklib_triangle __skparam__collidee = __skadapter__to_sklib_triangle(collidee); + const __sklib_vector_2d __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + int __skreturn = __sklib__resolve_collision__quad_ref__triangle_ref__vector_2d_ref(&__skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_quad(__skparam__collider); + return __skadapter__to_bool(__skreturn); +} +bool resolve_collision(rectangle &collider, const circle &collidee, const vector_2d &direction) { + __sklib_rectangle __skparam__collider = __skadapter__to_sklib_rectangle(collider); + const __sklib_circle __skparam__collidee = __skadapter__to_sklib_circle(collidee); + const __sklib_vector_2d __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + int __skreturn = __sklib__resolve_collision__rectangle_ref__circle_ref__vector_2d_ref(&__skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_rectangle(__skparam__collider); + return __skadapter__to_bool(__skreturn); +} +bool resolve_collision(rectangle &collider, const quad &collidee, const vector_2d &direction) { + __sklib_rectangle __skparam__collider = __skadapter__to_sklib_rectangle(collider); + const __sklib_quad __skparam__collidee = __skadapter__to_sklib_quad(collidee); + const __sklib_vector_2d __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + int __skreturn = __sklib__resolve_collision__rectangle_ref__quad_ref__vector_2d_ref(&__skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_rectangle(__skparam__collider); + return __skadapter__to_bool(__skreturn); +} +bool resolve_collision(rectangle &collider, const rectangle &collidee, const vector_2d &direction) { + __sklib_rectangle __skparam__collider = __skadapter__to_sklib_rectangle(collider); + const __sklib_rectangle __skparam__collidee = __skadapter__to_sklib_rectangle(collidee); + const __sklib_vector_2d __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + int __skreturn = __sklib__resolve_collision__rectangle_ref__rectangle_ref__vector_2d_ref(&__skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_rectangle(__skparam__collider); + return __skadapter__to_bool(__skreturn); +} +bool resolve_collision(rectangle &collider, const sprite collidee, const vector_2d &direction) { + __sklib_rectangle __skparam__collider = __skadapter__to_sklib_rectangle(collider); + const __sklib_sprite __skparam__collidee = __skadapter__to_sklib_sprite(collidee); + const __sklib_vector_2d __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + int __skreturn = __sklib__resolve_collision__rectangle_ref__sprite__vector_2d_ref(&__skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_rectangle(__skparam__collider); + return __skadapter__to_bool(__skreturn); +} +bool resolve_collision(rectangle &collider, const triangle &collidee, const vector_2d &direction) { + __sklib_rectangle __skparam__collider = __skadapter__to_sklib_rectangle(collider); + const __sklib_triangle __skparam__collidee = __skadapter__to_sklib_triangle(collidee); + const __sklib_vector_2d __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + int __skreturn = __sklib__resolve_collision__rectangle_ref__triangle_ref__vector_2d_ref(&__skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_rectangle(__skparam__collider); + return __skadapter__to_bool(__skreturn); +} +bool resolve_collision(sprite collider, const circle &collidee, const vector_2d &direction) { + __sklib_sprite __skparam__collider = __skadapter__to_sklib_sprite(collider); + const __sklib_circle __skparam__collidee = __skadapter__to_sklib_circle(collidee); + const __sklib_vector_2d __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + int __skreturn = __sklib__resolve_collision__sprite__circle_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); + return __skadapter__to_bool(__skreturn); +} +bool resolve_collision(sprite collider, const quad &collidee, const vector_2d &direction) { + __sklib_sprite __skparam__collider = __skadapter__to_sklib_sprite(collider); + const __sklib_quad __skparam__collidee = __skadapter__to_sklib_quad(collidee); + const __sklib_vector_2d __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + int __skreturn = __sklib__resolve_collision__sprite__quad_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); + return __skadapter__to_bool(__skreturn); +} +bool resolve_collision(sprite collider, const rectangle &collidee, const vector_2d &direction) { + __sklib_sprite __skparam__collider = __skadapter__to_sklib_sprite(collider); + const __sklib_rectangle __skparam__collidee = __skadapter__to_sklib_rectangle(collidee); + const __sklib_vector_2d __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + int __skreturn = __sklib__resolve_collision__sprite__rectangle_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); + return __skadapter__to_bool(__skreturn); +} +bool resolve_collision(sprite collider, const sprite collidee, const vector_2d &direction) { + __sklib_sprite __skparam__collider = __skadapter__to_sklib_sprite(collider); + const __sklib_sprite __skparam__collidee = __skadapter__to_sklib_sprite(collidee); + const __sklib_vector_2d __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + int __skreturn = __sklib__resolve_collision__sprite__sprite__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); + return __skadapter__to_bool(__skreturn); +} +bool resolve_collision(sprite collider, const triangle &collidee, const vector_2d &direction) { + __sklib_sprite __skparam__collider = __skadapter__to_sklib_sprite(collider); + const __sklib_triangle __skparam__collidee = __skadapter__to_sklib_triangle(collidee); + const __sklib_vector_2d __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + int __skreturn = __sklib__resolve_collision__sprite__triangle_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); + return __skadapter__to_bool(__skreturn); +} +bool resolve_collision(triangle &collider, const circle &collidee, const vector_2d &direction) { + __sklib_triangle __skparam__collider = __skadapter__to_sklib_triangle(collider); + const __sklib_circle __skparam__collidee = __skadapter__to_sklib_circle(collidee); + const __sklib_vector_2d __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + int __skreturn = __sklib__resolve_collision__triangle_ref__circle_ref__vector_2d_ref(&__skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_triangle(__skparam__collider); + return __skadapter__to_bool(__skreturn); +} +bool resolve_collision(triangle &collider, const quad &collidee, const vector_2d &direction) { + __sklib_triangle __skparam__collider = __skadapter__to_sklib_triangle(collider); + const __sklib_quad __skparam__collidee = __skadapter__to_sklib_quad(collidee); + const __sklib_vector_2d __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + int __skreturn = __sklib__resolve_collision__triangle_ref__quad_ref__vector_2d_ref(&__skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_triangle(__skparam__collider); + return __skadapter__to_bool(__skreturn); +} +bool resolve_collision(triangle &collider, const rectangle &collidee, const vector_2d &direction) { + __sklib_triangle __skparam__collider = __skadapter__to_sklib_triangle(collider); + const __sklib_rectangle __skparam__collidee = __skadapter__to_sklib_rectangle(collidee); + const __sklib_vector_2d __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + int __skreturn = __sklib__resolve_collision__triangle_ref__rectangle_ref__vector_2d_ref(&__skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_triangle(__skparam__collider); + return __skadapter__to_bool(__skreturn); +} +bool resolve_collision(triangle &collider, const sprite collidee, const vector_2d &direction) { + __sklib_triangle __skparam__collider = __skadapter__to_sklib_triangle(collider); + const __sklib_sprite __skparam__collidee = __skadapter__to_sklib_sprite(collidee); + const __sklib_vector_2d __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + int __skreturn = __sklib__resolve_collision__triangle_ref__sprite__vector_2d_ref(&__skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_triangle(__skparam__collider); + return __skadapter__to_bool(__skreturn); +} +bool resolve_collision(triangle &collider, const triangle &collidee, const vector_2d &direction) { + __sklib_triangle __skparam__collider = __skadapter__to_sklib_triangle(collider); + const __sklib_triangle __skparam__collidee = __skadapter__to_sklib_triangle(collidee); + const __sklib_vector_2d __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + int __skreturn = __sklib__resolve_collision__triangle_ref__triangle_ref__vector_2d_ref(&__skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_triangle(__skparam__collider); + return __skadapter__to_bool(__skreturn); +} bool sprite_bitmap_collision(sprite s, bitmap bmp, double x, double y) { __sklib_sprite __skparam__s = __skadapter__to_sklib_sprite(s); __sklib_bitmap __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); @@ -1040,6 +1481,12 @@ bool sprite_bitmap_collision(sprite s, bitmap bmp, int cell, double x, double y) int __skreturn = __sklib__sprite_bitmap_collision__sprite__bitmap__int__double__double(__skparam__s, __skparam__bmp, __skparam__cell, __skparam__x, __skparam__y); return __skadapter__to_bool(__skreturn); } +bool sprite_circle_collision(sprite s, const circle &c) { + __sklib_sprite __skparam__s = __skadapter__to_sklib_sprite(s); + const __sklib_circle __skparam__c = __skadapter__to_sklib_circle(c); + int __skreturn = __sklib__sprite_circle_collision__sprite__circle_ref(__skparam__s, __skparam__c); + return __skadapter__to_bool(__skreturn); +} bool sprite_collision(sprite s1, sprite s2) { __sklib_sprite __skparam__s1 = __skadapter__to_sklib_sprite(s1); __sklib_sprite __skparam__s2 = __skadapter__to_sklib_sprite(s2); @@ -1052,6 +1499,12 @@ bool sprite_point_collision(sprite s, const point_2d &pt) { int __skreturn = __sklib__sprite_point_collision__sprite__point_2d_ref(__skparam__s, __skparam__pt); return __skadapter__to_bool(__skreturn); } +bool sprite_quad_collision(sprite s, const quad &q) { + __sklib_sprite __skparam__s = __skadapter__to_sklib_sprite(s); + const __sklib_quad __skparam__q = __skadapter__to_sklib_quad(q); + int __skreturn = __sklib__sprite_quad_collision__sprite__quad_ref(__skparam__s, __skparam__q); + return __skadapter__to_bool(__skreturn); +} bool sprite_ray_collision(sprite s, const point_2d &origin, const vector_2d &heading) { __sklib_sprite __skparam__s = __skadapter__to_sklib_sprite(s); const __sklib_point_2d __skparam__origin = __skadapter__to_sklib_point_2d(origin); @@ -1065,6 +1518,12 @@ bool sprite_rectangle_collision(sprite s, const rectangle &rect) { int __skreturn = __sklib__sprite_rectangle_collision__sprite__rectangle_ref(__skparam__s, __skparam__rect); return __skadapter__to_bool(__skreturn); } +bool sprite_triangle_collision(sprite s, const triangle &t) { + __sklib_sprite __skparam__s = __skadapter__to_sklib_sprite(s); + const __sklib_triangle __skparam__t = __skadapter__to_sklib_triangle(t); + int __skreturn = __sklib__sprite_triangle_collision__sprite__triangle_ref(__skparam__s, __skparam__t); + return __skadapter__to_bool(__skreturn); +} int alpha_of(color c) { __sklib_color __skparam__c = __skadapter__to_sklib_color(c); int __skreturn = __sklib__alpha_of__color(__skparam__c); @@ -3810,6 +4269,11 @@ string dec_to_hex(unsigned int a_dec) { __sklib_string __skreturn = __sklib__dec_to_hex__unsigned_int(__skparam__a_dec); return __skadapter__to_string(__skreturn); } +string dec_to_ipv4(unsigned int ip) { + unsigned int __skparam__ip = __skadapter__to_unsigned_int(ip); + __sklib_string __skreturn = __sklib__dec_to_ipv4__unsigned_int(__skparam__ip); + return __skadapter__to_string(__skreturn); +} connection fetch_new_connection(server_socket server) { __sklib_server_socket __skparam__server = __skadapter__to_sklib_server_socket(server); __sklib_connection __skreturn = __sklib__fetch_new_connection__server_socket(__skparam__server); @@ -3875,11 +4339,6 @@ string ipv4_to_hex(const string &a_ip) { __skadapter__free__sklib_string(__skparam__a_ip); return __skadapter__to_string(__skreturn); } -string ipv4_to_str(unsigned int ip) { - unsigned int __skparam__ip = __skadapter__to_unsigned_int(ip); - __sklib_string __skreturn = __sklib__ipv4_to_str__unsigned_int(__skparam__ip); - return __skadapter__to_string(__skreturn); -} bool is_connection_open(connection con) { __sklib_connection __skparam__con = __skadapter__to_sklib_connection(con); int __skreturn = __sklib__is_connection_open__connection(__skparam__con); @@ -4382,6 +4841,24 @@ quad quad_from(double x_top_left, double y_top_left, double x_top_right, double __sklib_quad __skreturn = __sklib__quad_from__double__double__double__double__double__double__double__double(__skparam__x_top_left, __skparam__y_top_left, __skparam__x_top_right, __skparam__y_top_right, __skparam__x_bottom_left, __skparam__y_bottom_left, __skparam__x_bottom_right, __skparam__y_bottom_right); return __skadapter__to_quad(__skreturn); } +bool quad_ray_intersection(const point_2d &origin, const vector_2d &heading, const quad &q) { + const __sklib_point_2d __skparam__origin = __skadapter__to_sklib_point_2d(origin); + const __sklib_vector_2d __skparam__heading = __skadapter__to_sklib_vector_2d(heading); + const __sklib_quad __skparam__q = __skadapter__to_sklib_quad(q); + int __skreturn = __sklib__quad_ray_intersection__point_2d_ref__vector_2d_ref__quad_ref(__skparam__origin, __skparam__heading, __skparam__q); + return __skadapter__to_bool(__skreturn); +} +bool quad_ray_intersection(const point_2d &origin, const vector_2d &heading, const quad &q, point_2d &hit_point, double &hit_distance) { + const __sklib_point_2d __skparam__origin = __skadapter__to_sklib_point_2d(origin); + const __sklib_vector_2d __skparam__heading = __skadapter__to_sklib_vector_2d(heading); + const __sklib_quad __skparam__q = __skadapter__to_sklib_quad(q); + __sklib_point_2d __skparam__hit_point = __skadapter__to_sklib_point_2d(hit_point); + double __skparam__hit_distance = __skadapter__to_double(hit_distance); + int __skreturn = __sklib__quad_ray_intersection__point_2d_ref__vector_2d_ref__quad_ref__point_2d_ref__double_ref(__skparam__origin, __skparam__heading, __skparam__q, &__skparam__hit_point, &__skparam__hit_distance); + hit_point = __skadapter__to_point_2d(__skparam__hit_point); + hit_distance = __skadapter__to_double(__skparam__hit_distance); + return __skadapter__to_bool(__skreturn); +} bool quads_intersect(const quad &q1, const quad &q2) { const __sklib_quad __skparam__q1 = __skadapter__to_sklib_quad(q1); const __sklib_quad __skparam__q2 = __skadapter__to_sklib_quad(q2); @@ -4460,6 +4937,28 @@ void raspi_set_pwm_range(pins pin, int range) { int __skparam__range = __skadapter__to_int(range); __sklib__raspi_set_pwm_range__pins__int(__skparam__pin, __skparam__range); } +int raspi_spi_close(int handle) { + int __skparam__handle = __skadapter__to_int(handle); + int __skreturn = __sklib__raspi_spi_close__int(__skparam__handle); + return __skadapter__to_int(__skreturn); +} +int raspi_spi_open(int channel, int speed, int spi_flags) { + int __skparam__channel = __skadapter__to_int(channel); + int __skparam__speed = __skadapter__to_int(speed); + int __skparam__spi_flags = __skadapter__to_int(spi_flags); + int __skreturn = __sklib__raspi_spi_open__int__int__int(__skparam__channel, __skparam__speed, __skparam__spi_flags); + return __skadapter__to_int(__skreturn); +} +int raspi_spi_transfer(int handle, string sendBuf, string recvBuf, int count) { + int __skparam__handle = __skadapter__to_int(handle); + __sklib_string __skparam__sendBuf = __skadapter__to_sklib_string(sendBuf); + __sklib_string __skparam__recvBuf = __skadapter__to_sklib_string(recvBuf); + int __skparam__count = __skadapter__to_int(count); + int __skreturn = __sklib__raspi_spi_transfer__int__string__string__int(__skparam__handle, __skparam__sendBuf, __skparam__recvBuf, __skparam__count); + __skadapter__free__sklib_string(__skparam__sendBuf); + __skadapter__free__sklib_string(__skparam__recvBuf); + return __skadapter__to_int(__skreturn); +} void raspi_write(pins pin, pin_values value) { int __skparam__pin = __skadapter__to_int(pin); int __skparam__value = __skadapter__to_int(value); @@ -4765,6 +5264,12 @@ point_2d rectangle_center(const rectangle &rect) { __sklib_point_2d __skreturn = __sklib__rectangle_center__rectangle_ref(__skparam__rect); return __skadapter__to_point_2d(__skreturn); } +bool rectangle_circle_intersect(const rectangle &rect, const circle &c) { + const __sklib_rectangle __skparam__rect = __skadapter__to_sklib_rectangle(rect); + const __sklib_circle __skparam__c = __skadapter__to_sklib_circle(c); + int __skreturn = __sklib__rectangle_circle_intersect__rectangle_ref__circle_ref(__skparam__rect, __skparam__c); + return __skadapter__to_bool(__skreturn); +} rectangle rectangle_from(const point_2d pt, const double width, const double height) { const __sklib_point_2d __skparam__pt = __skadapter__to_sklib_point_2d(pt); const double __skparam__width = __skadapter__to_double(width); @@ -4797,6 +5302,24 @@ rectangle rectangle_offset_by(const rectangle &rect, const vector_2d &offset) { __sklib_rectangle __skreturn = __sklib__rectangle_offset_by__rectangle_ref__vector_2d_ref(__skparam__rect, __skparam__offset); return __skadapter__to_rectangle(__skreturn); } +bool rectangle_ray_intersection(const point_2d &origin, const vector_2d &heading, const rectangle &rect) { + const __sklib_point_2d __skparam__origin = __skadapter__to_sklib_point_2d(origin); + const __sklib_vector_2d __skparam__heading = __skadapter__to_sklib_vector_2d(heading); + const __sklib_rectangle __skparam__rect = __skadapter__to_sklib_rectangle(rect); + int __skreturn = __sklib__rectangle_ray_intersection__point_2d_ref__vector_2d_ref__rectangle_ref(__skparam__origin, __skparam__heading, __skparam__rect); + return __skadapter__to_bool(__skreturn); +} +bool rectangle_ray_intersection(const point_2d &origin, const vector_2d &heading, const rectangle &rect, point_2d &hit_point, double &hit_distance) { + const __sklib_point_2d __skparam__origin = __skadapter__to_sklib_point_2d(origin); + const __sklib_vector_2d __skparam__heading = __skadapter__to_sklib_vector_2d(heading); + const __sklib_rectangle __skparam__rect = __skadapter__to_sklib_rectangle(rect); + __sklib_point_2d __skparam__hit_point = __skadapter__to_sklib_point_2d(hit_point); + double __skparam__hit_distance = __skadapter__to_double(hit_distance); + int __skreturn = __sklib__rectangle_ray_intersection__point_2d_ref__vector_2d_ref__rectangle_ref__point_2d_ref__double_ref(__skparam__origin, __skparam__heading, __skparam__rect, &__skparam__hit_point, &__skparam__hit_distance); + hit_point = __skadapter__to_point_2d(__skparam__hit_point); + hit_distance = __skadapter__to_double(__skparam__hit_distance); + return __skadapter__to_bool(__skreturn); +} double rectangle_right(const rectangle &rect) { const __sklib_rectangle __skparam__rect = __skadapter__to_sklib_rectangle(rect); double __skreturn = __sklib__rectangle_right__rectangle_ref(__skparam__rect); @@ -6461,6 +6984,30 @@ triangle triangle_from(double x1, double y1, double x2, double y2, double x3, do __sklib_triangle __skreturn = __sklib__triangle_from__double__double__double__double__double__double(__skparam__x1, __skparam__y1, __skparam__x2, __skparam__y2, __skparam__x3, __skparam__y3); return __skadapter__to_triangle(__skreturn); } +bool triangle_quad_intersect(const triangle &tri, const quad &q) { + const __sklib_triangle __skparam__tri = __skadapter__to_sklib_triangle(tri); + const __sklib_quad __skparam__q = __skadapter__to_sklib_quad(q); + int __skreturn = __sklib__triangle_quad_intersect__triangle_ref__quad_ref(__skparam__tri, __skparam__q); + return __skadapter__to_bool(__skreturn); +} +bool triangle_ray_intersection(const point_2d &origin, const vector_2d &heading, const triangle &tri) { + const __sklib_point_2d __skparam__origin = __skadapter__to_sklib_point_2d(origin); + const __sklib_vector_2d __skparam__heading = __skadapter__to_sklib_vector_2d(heading); + const __sklib_triangle __skparam__tri = __skadapter__to_sklib_triangle(tri); + int __skreturn = __sklib__triangle_ray_intersection__point_2d_ref__vector_2d_ref__triangle_ref(__skparam__origin, __skparam__heading, __skparam__tri); + return __skadapter__to_bool(__skreturn); +} +bool triangle_ray_intersection(const point_2d &origin, const vector_2d &heading, const triangle &tri, point_2d &hit_point, double &hit_distance) { + const __sklib_point_2d __skparam__origin = __skadapter__to_sklib_point_2d(origin); + const __sklib_vector_2d __skparam__heading = __skadapter__to_sklib_vector_2d(heading); + const __sklib_triangle __skparam__tri = __skadapter__to_sklib_triangle(tri); + __sklib_point_2d __skparam__hit_point = __skadapter__to_sklib_point_2d(hit_point); + double __skparam__hit_distance = __skadapter__to_double(hit_distance); + int __skreturn = __sklib__triangle_ray_intersection__point_2d_ref__vector_2d_ref__triangle_ref__point_2d_ref__double_ref(__skparam__origin, __skparam__heading, __skparam__tri, &__skparam__hit_point, &__skparam__hit_distance); + hit_point = __skadapter__to_point_2d(__skparam__hit_point); + hit_distance = __skadapter__to_double(__skparam__hit_distance); + return __skadapter__to_bool(__skreturn); +} bool triangle_rectangle_intersect(const triangle &tri, const rectangle &rect) { const __sklib_triangle __skparam__tri = __skadapter__to_sklib_triangle(tri); const __sklib_rectangle __skparam__rect = __skadapter__to_sklib_rectangle(rect); diff --git a/generated/cpp/triangle_geometry.h b/generated/cpp/triangle_geometry.h index d29727e5..a22f6d55 100644 --- a/generated/cpp/triangle_geometry.h +++ b/generated/cpp/triangle_geometry.h @@ -16,6 +16,9 @@ using std::vector; point_2d triangle_barycenter(const triangle &tri); triangle triangle_from(const point_2d &p1, const point_2d &p2, const point_2d &p3); triangle triangle_from(double x1, double y1, double x2, double y2, double x3, double y3); +bool triangle_quad_intersect(const triangle &tri, const quad &q); +bool triangle_ray_intersection(const point_2d &origin, const vector_2d &heading, const triangle &tri); +bool triangle_ray_intersection(const point_2d &origin, const vector_2d &heading, const triangle &tri, point_2d &hit_point, double &hit_distance); bool triangle_rectangle_intersect(const triangle &tri, const rectangle &rect); string triangle_to_string(const triangle &tri); bool triangles_intersect(const triangle &t1, const triangle &t2); diff --git a/generated/csharp/SplashKit.cs b/generated/csharp/SplashKit.cs index e279d41c..b38afa3d 100644 --- a/generated/csharp/SplashKit.cs +++ b/generated/csharp/SplashKit.cs @@ -1338,9 +1338,18 @@ private static void __skadapter__update_from_vector_bool(ref __sklib_vector_bool [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__circle_at__double__double__double", CharSet=CharSet.Ansi)] private static extern __sklib_circle __sklib__circle_at__double__double__double(double x, double y, double radius); + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__circle_quad_intersect__circle_ref__quad_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__circle_quad_intersect__circle_ref__quad_ref(__sklib_circle c, __sklib_quad q); + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__circle_radius__circle", CharSet=CharSet.Ansi)] private static extern float __sklib__circle_radius__circle(__sklib_circle c); + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__circle_ray_intersection__point_2d_ref__vector_2d_ref__circle_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__circle_ray_intersection__point_2d_ref__vector_2d_ref__circle_ref(__sklib_point_2d origin, __sklib_vector_2d heading, __sklib_circle circ); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__circle_ray_intersection__point_2d_ref__vector_2d_ref__circle_ref__point_2d_ref__double_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__circle_ray_intersection__point_2d_ref__vector_2d_ref__circle_ref__point_2d_ref__double_ref(__sklib_point_2d origin, __sklib_vector_2d heading, __sklib_circle circ, ref __sklib_point_2d hitPoint, ref double hitDistance); + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__circle_triangle_intersect__circle_ref__triangle_ref", CharSet=CharSet.Ansi)] private static extern int __sklib__circle_triangle_intersect__circle_ref__triangle_ref(__sklib_circle c, __sklib_triangle tri); @@ -1479,9 +1488,21 @@ private static void __skadapter__update_from_vector_bool(ref __sklib_vector_bool [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__bitmap_point_collision__bitmap__int__double__double__double__double", CharSet=CharSet.Ansi)] private static extern int __sklib__bitmap_point_collision__bitmap__int__double__double__double__double(__sklib_ptr bmp, int cell, double bmpX, double bmpY, double x, double y); + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__bitmap_quad_collision__bitmap__point_2d_ref__quad_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__bitmap_quad_collision__bitmap__point_2d_ref__quad_ref(__sklib_ptr bmp, __sklib_point_2d pt, __sklib_quad q); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__bitmap_quad_collision__bitmap__double__double__quad_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__bitmap_quad_collision__bitmap__double__double__quad_ref(__sklib_ptr bmp, double x, double y, __sklib_quad q); + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__bitmap_quad_collision__bitmap__int__matrix_2d_ref__quad_ref", CharSet=CharSet.Ansi)] private static extern int __sklib__bitmap_quad_collision__bitmap__int__matrix_2d_ref__quad_ref(__sklib_ptr bmp, int cell, __sklib_matrix_2d translation, __sklib_quad q); + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__bitmap_quad_collision__bitmap__int__point_2d_ref__quad_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__bitmap_quad_collision__bitmap__int__point_2d_ref__quad_ref(__sklib_ptr bmp, int cell, __sklib_point_2d pt, __sklib_quad q); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__bitmap_quad_collision__bitmap__int__double__double__quad_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__bitmap_quad_collision__bitmap__int__double__double__quad_ref(__sklib_ptr bmp, int cell, double x, double y, __sklib_quad q); + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__bitmap_ray_collision__bitmap__point_2d_ref__point_2d_ref__vector_2d_ref", CharSet=CharSet.Ansi)] private static extern int __sklib__bitmap_ray_collision__bitmap__point_2d_ref__point_2d_ref__vector_2d_ref(__sklib_ptr bmp, __sklib_point_2d pt, __sklib_point_2d origin, __sklib_vector_2d heading); @@ -1512,6 +1533,171 @@ private static void __skadapter__update_from_vector_bool(ref __sklib_vector_bool [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__bitmap_rectangle_collision__bitmap__int__double__double__rectangle_ref", CharSet=CharSet.Ansi)] private static extern int __sklib__bitmap_rectangle_collision__bitmap__int__double__double__rectangle_ref(__sklib_ptr bmp, int cell, double x, double y, __sklib_rectangle rect); + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__bitmap_triangle_collision__bitmap__point_2d_ref__triangle_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__bitmap_triangle_collision__bitmap__point_2d_ref__triangle_ref(__sklib_ptr bmp, __sklib_point_2d pt, __sklib_triangle tri); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__bitmap_triangle_collision__bitmap__double__double__triangle_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__bitmap_triangle_collision__bitmap__double__double__triangle_ref(__sklib_ptr bmp, double x, double y, __sklib_triangle tri); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__bitmap_triangle_collision__bitmap__int__matrix_2d_ref__triangle_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__bitmap_triangle_collision__bitmap__int__matrix_2d_ref__triangle_ref(__sklib_ptr bmp, int cell, __sklib_matrix_2d translation, __sklib_triangle tri); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__bitmap_triangle_collision__bitmap__int__point_2d_ref__triangle_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__bitmap_triangle_collision__bitmap__int__point_2d_ref__triangle_ref(__sklib_ptr bmp, int cell, __sklib_point_2d pt, __sklib_triangle tri); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__bitmap_triangle_collision__bitmap__int__double__double__triangle_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__bitmap_triangle_collision__bitmap__int__double__double__triangle_ref(__sklib_ptr bmp, int cell, double x, double y, __sklib_triangle tri); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__calculate_collision_direction__quad_ref__quad_ref", CharSet=CharSet.Ansi)] + private static extern __sklib_vector_2d __sklib__calculate_collision_direction__quad_ref__quad_ref(__sklib_quad collider, __sklib_quad collidee); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__calculate_collision_direction__circle_ref__circle_ref", CharSet=CharSet.Ansi)] + private static extern __sklib_vector_2d __sklib__calculate_collision_direction__circle_ref__circle_ref(__sklib_circle collider, __sklib_circle collidee); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__calculate_collision_direction__circle_ref__quad_ref", CharSet=CharSet.Ansi)] + private static extern __sklib_vector_2d __sklib__calculate_collision_direction__circle_ref__quad_ref(__sklib_circle collider, __sklib_quad collidee); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__calculate_collision_direction__circle_ref__rectangle_ref", CharSet=CharSet.Ansi)] + private static extern __sklib_vector_2d __sklib__calculate_collision_direction__circle_ref__rectangle_ref(__sklib_circle collider, __sklib_rectangle collidee); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__calculate_collision_direction__circle_ref__sprite", CharSet=CharSet.Ansi)] + private static extern __sklib_vector_2d __sklib__calculate_collision_direction__circle_ref__sprite(__sklib_circle collider, __sklib_ptr collidee); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__calculate_collision_direction__circle_ref__triangle_ref", CharSet=CharSet.Ansi)] + private static extern __sklib_vector_2d __sklib__calculate_collision_direction__circle_ref__triangle_ref(__sklib_circle collider, __sklib_triangle collidee); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__calculate_collision_direction__quad_ref__circle_ref", CharSet=CharSet.Ansi)] + private static extern __sklib_vector_2d __sklib__calculate_collision_direction__quad_ref__circle_ref(__sklib_quad collider, __sklib_circle collidee); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__calculate_collision_direction__quad_ref__rectangle_ref", CharSet=CharSet.Ansi)] + private static extern __sklib_vector_2d __sklib__calculate_collision_direction__quad_ref__rectangle_ref(__sklib_quad collider, __sklib_rectangle collidee); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__calculate_collision_direction__quad_ref__sprite", CharSet=CharSet.Ansi)] + private static extern __sklib_vector_2d __sklib__calculate_collision_direction__quad_ref__sprite(__sklib_quad collider, __sklib_ptr collidee); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__calculate_collision_direction__quad_ref__triangle_ref", CharSet=CharSet.Ansi)] + private static extern __sklib_vector_2d __sklib__calculate_collision_direction__quad_ref__triangle_ref(__sklib_quad collider, __sklib_triangle collidee); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__calculate_collision_direction__rectangle_ref__circle_ref", CharSet=CharSet.Ansi)] + private static extern __sklib_vector_2d __sklib__calculate_collision_direction__rectangle_ref__circle_ref(__sklib_rectangle collider, __sklib_circle collidee); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__calculate_collision_direction__rectangle_ref__quad_ref", CharSet=CharSet.Ansi)] + private static extern __sklib_vector_2d __sklib__calculate_collision_direction__rectangle_ref__quad_ref(__sklib_rectangle collider, __sklib_quad collidee); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__calculate_collision_direction__rectangle_ref__rectangle_ref", CharSet=CharSet.Ansi)] + private static extern __sklib_vector_2d __sklib__calculate_collision_direction__rectangle_ref__rectangle_ref(__sklib_rectangle collider, __sklib_rectangle collidee); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__calculate_collision_direction__rectangle_ref__sprite", CharSet=CharSet.Ansi)] + private static extern __sklib_vector_2d __sklib__calculate_collision_direction__rectangle_ref__sprite(__sklib_rectangle collider, __sklib_ptr collidee); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__calculate_collision_direction__rectangle_ref__triangle_ref", CharSet=CharSet.Ansi)] + private static extern __sklib_vector_2d __sklib__calculate_collision_direction__rectangle_ref__triangle_ref(__sklib_rectangle collider, __sklib_triangle collidee); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__calculate_collision_direction__sprite__circle_ref", CharSet=CharSet.Ansi)] + private static extern __sklib_vector_2d __sklib__calculate_collision_direction__sprite__circle_ref(__sklib_ptr collider, __sklib_circle collidee); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__calculate_collision_direction__sprite__quad_ref", CharSet=CharSet.Ansi)] + private static extern __sklib_vector_2d __sklib__calculate_collision_direction__sprite__quad_ref(__sklib_ptr collider, __sklib_quad collidee); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__calculate_collision_direction__sprite__rectangle_ref", CharSet=CharSet.Ansi)] + private static extern __sklib_vector_2d __sklib__calculate_collision_direction__sprite__rectangle_ref(__sklib_ptr collider, __sklib_rectangle collidee); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__calculate_collision_direction__sprite__sprite", CharSet=CharSet.Ansi)] + private static extern __sklib_vector_2d __sklib__calculate_collision_direction__sprite__sprite(__sklib_ptr collider, __sklib_ptr collidee); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__calculate_collision_direction__sprite__triangle_ref", CharSet=CharSet.Ansi)] + private static extern __sklib_vector_2d __sklib__calculate_collision_direction__sprite__triangle_ref(__sklib_ptr collider, __sklib_triangle collidee); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__calculate_collision_direction__triangle_ref__circle_ref", CharSet=CharSet.Ansi)] + private static extern __sklib_vector_2d __sklib__calculate_collision_direction__triangle_ref__circle_ref(__sklib_triangle collider, __sklib_circle collidee); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__calculate_collision_direction__triangle_ref__quad_ref", CharSet=CharSet.Ansi)] + private static extern __sklib_vector_2d __sklib__calculate_collision_direction__triangle_ref__quad_ref(__sklib_triangle collider, __sklib_quad collidee); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__calculate_collision_direction__triangle_ref__rectangle_ref", CharSet=CharSet.Ansi)] + private static extern __sklib_vector_2d __sklib__calculate_collision_direction__triangle_ref__rectangle_ref(__sklib_triangle collider, __sklib_rectangle collidee); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__calculate_collision_direction__triangle_ref__sprite", CharSet=CharSet.Ansi)] + private static extern __sklib_vector_2d __sklib__calculate_collision_direction__triangle_ref__sprite(__sklib_triangle collider, __sklib_ptr collidee); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__calculate_collision_direction__triangle_ref__triangle_ref", CharSet=CharSet.Ansi)] + private static extern __sklib_vector_2d __sklib__calculate_collision_direction__triangle_ref__triangle_ref(__sklib_triangle collider, __sklib_triangle collidee); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__resolve_collision__quad_ref__quad_ref__vector_2d_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__resolve_collision__quad_ref__quad_ref__vector_2d_ref(ref __sklib_quad collider, __sklib_quad collidee, __sklib_vector_2d direction); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__resolve_collision__circle_ref__circle_ref__vector_2d_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__resolve_collision__circle_ref__circle_ref__vector_2d_ref(ref __sklib_circle collider, __sklib_circle collidee, __sklib_vector_2d direction); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__resolve_collision__circle_ref__quad_ref__vector_2d_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__resolve_collision__circle_ref__quad_ref__vector_2d_ref(ref __sklib_circle collider, __sklib_quad collidee, __sklib_vector_2d direction); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__resolve_collision__circle_ref__rectangle_ref__vector_2d_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__resolve_collision__circle_ref__rectangle_ref__vector_2d_ref(ref __sklib_circle collider, __sklib_rectangle collidee, __sklib_vector_2d direction); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__resolve_collision__circle_ref__sprite__vector_2d_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__resolve_collision__circle_ref__sprite__vector_2d_ref(ref __sklib_circle collider, __sklib_ptr collidee, __sklib_vector_2d direction); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__resolve_collision__circle_ref__triangle_ref__vector_2d_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__resolve_collision__circle_ref__triangle_ref__vector_2d_ref(ref __sklib_circle collider, __sklib_triangle collidee, __sklib_vector_2d direction); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__resolve_collision__quad_ref__circle_ref__vector_2d_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__resolve_collision__quad_ref__circle_ref__vector_2d_ref(ref __sklib_quad collider, __sklib_circle collidee, __sklib_vector_2d direction); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__resolve_collision__quad_ref__rectangle_ref__vector_2d_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__resolve_collision__quad_ref__rectangle_ref__vector_2d_ref(ref __sklib_quad collider, __sklib_rectangle collidee, __sklib_vector_2d direction); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__resolve_collision__quad_ref__sprite__vector_2d_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__resolve_collision__quad_ref__sprite__vector_2d_ref(ref __sklib_quad collider, __sklib_ptr collidee, __sklib_vector_2d direction); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__resolve_collision__quad_ref__triangle_ref__vector_2d_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__resolve_collision__quad_ref__triangle_ref__vector_2d_ref(ref __sklib_quad collider, __sklib_triangle collidee, __sklib_vector_2d direction); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__resolve_collision__rectangle_ref__circle_ref__vector_2d_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__resolve_collision__rectangle_ref__circle_ref__vector_2d_ref(ref __sklib_rectangle collider, __sklib_circle collidee, __sklib_vector_2d direction); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__resolve_collision__rectangle_ref__quad_ref__vector_2d_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__resolve_collision__rectangle_ref__quad_ref__vector_2d_ref(ref __sklib_rectangle collider, __sklib_quad collidee, __sklib_vector_2d direction); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__resolve_collision__rectangle_ref__rectangle_ref__vector_2d_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__resolve_collision__rectangle_ref__rectangle_ref__vector_2d_ref(ref __sklib_rectangle collider, __sklib_rectangle collidee, __sklib_vector_2d direction); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__resolve_collision__rectangle_ref__sprite__vector_2d_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__resolve_collision__rectangle_ref__sprite__vector_2d_ref(ref __sklib_rectangle collider, __sklib_ptr collidee, __sklib_vector_2d direction); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__resolve_collision__rectangle_ref__triangle_ref__vector_2d_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__resolve_collision__rectangle_ref__triangle_ref__vector_2d_ref(ref __sklib_rectangle collider, __sklib_triangle collidee, __sklib_vector_2d direction); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__resolve_collision__sprite__circle_ref__vector_2d_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__resolve_collision__sprite__circle_ref__vector_2d_ref(__sklib_ptr collider, __sklib_circle collidee, __sklib_vector_2d direction); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__resolve_collision__sprite__quad_ref__vector_2d_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__resolve_collision__sprite__quad_ref__vector_2d_ref(__sklib_ptr collider, __sklib_quad collidee, __sklib_vector_2d direction); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__resolve_collision__sprite__rectangle_ref__vector_2d_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__resolve_collision__sprite__rectangle_ref__vector_2d_ref(__sklib_ptr collider, __sklib_rectangle collidee, __sklib_vector_2d direction); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__resolve_collision__sprite__sprite__vector_2d_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__resolve_collision__sprite__sprite__vector_2d_ref(__sklib_ptr collider, __sklib_ptr collidee, __sklib_vector_2d direction); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__resolve_collision__sprite__triangle_ref__vector_2d_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__resolve_collision__sprite__triangle_ref__vector_2d_ref(__sklib_ptr collider, __sklib_triangle collidee, __sklib_vector_2d direction); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__resolve_collision__triangle_ref__circle_ref__vector_2d_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__resolve_collision__triangle_ref__circle_ref__vector_2d_ref(ref __sklib_triangle collider, __sklib_circle collidee, __sklib_vector_2d direction); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__resolve_collision__triangle_ref__quad_ref__vector_2d_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__resolve_collision__triangle_ref__quad_ref__vector_2d_ref(ref __sklib_triangle collider, __sklib_quad collidee, __sklib_vector_2d direction); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__resolve_collision__triangle_ref__rectangle_ref__vector_2d_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__resolve_collision__triangle_ref__rectangle_ref__vector_2d_ref(ref __sklib_triangle collider, __sklib_rectangle collidee, __sklib_vector_2d direction); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__resolve_collision__triangle_ref__sprite__vector_2d_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__resolve_collision__triangle_ref__sprite__vector_2d_ref(ref __sklib_triangle collider, __sklib_ptr collidee, __sklib_vector_2d direction); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__resolve_collision__triangle_ref__triangle_ref__vector_2d_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__resolve_collision__triangle_ref__triangle_ref__vector_2d_ref(ref __sklib_triangle collider, __sklib_triangle collidee, __sklib_vector_2d direction); + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__sprite_bitmap_collision__sprite__bitmap__double__double", CharSet=CharSet.Ansi)] private static extern int __sklib__sprite_bitmap_collision__sprite__bitmap__double__double(__sklib_ptr s, __sklib_ptr bmp, double x, double y); @@ -1521,18 +1707,27 @@ private static void __skadapter__update_from_vector_bool(ref __sklib_vector_bool [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__sprite_bitmap_collision__sprite__bitmap__int__double__double", CharSet=CharSet.Ansi)] private static extern int __sklib__sprite_bitmap_collision__sprite__bitmap__int__double__double(__sklib_ptr s, __sklib_ptr bmp, int cell, double x, double y); + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__sprite_circle_collision__sprite__circle_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__sprite_circle_collision__sprite__circle_ref(__sklib_ptr s, __sklib_circle c); + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__sprite_collision__sprite__sprite", CharSet=CharSet.Ansi)] private static extern int __sklib__sprite_collision__sprite__sprite(__sklib_ptr s1, __sklib_ptr s2); [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__sprite_point_collision__sprite__point_2d_ref", CharSet=CharSet.Ansi)] private static extern int __sklib__sprite_point_collision__sprite__point_2d_ref(__sklib_ptr s, __sklib_point_2d pt); + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__sprite_quad_collision__sprite__quad_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__sprite_quad_collision__sprite__quad_ref(__sklib_ptr s, __sklib_quad q); + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__sprite_ray_collision__sprite__point_2d_ref__vector_2d_ref", CharSet=CharSet.Ansi)] private static extern int __sklib__sprite_ray_collision__sprite__point_2d_ref__vector_2d_ref(__sklib_ptr s, __sklib_point_2d origin, __sklib_vector_2d heading); [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__sprite_rectangle_collision__sprite__rectangle_ref", CharSet=CharSet.Ansi)] private static extern int __sklib__sprite_rectangle_collision__sprite__rectangle_ref(__sklib_ptr s, __sklib_rectangle rect); + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__sprite_triangle_collision__sprite__triangle_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__sprite_triangle_collision__sprite__triangle_ref(__sklib_ptr s, __sklib_triangle t); + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__alpha_of__color", CharSet=CharSet.Ansi)] private static extern int __sklib__alpha_of__color(__sklib_color c); @@ -3105,6 +3300,9 @@ private static void __skadapter__update_from_vector_bool(ref __sklib_vector_bool [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__dec_to_hex__unsigned_int", CharSet=CharSet.Ansi)] private static extern __sklib_string __sklib__dec_to_hex__unsigned_int(uint aDec); + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__dec_to_ipv4__unsigned_int", CharSet=CharSet.Ansi)] + private static extern __sklib_string __sklib__dec_to_ipv4__unsigned_int(uint ip); + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__fetch_new_connection__server_socket", CharSet=CharSet.Ansi)] private static extern __sklib_ptr __sklib__fetch_new_connection__server_socket(__sklib_ptr server); @@ -3141,9 +3339,6 @@ private static void __skadapter__update_from_vector_bool(ref __sklib_vector_bool [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__ipv4_to_hex__string_ref", CharSet=CharSet.Ansi)] private static extern __sklib_string __sklib__ipv4_to_hex__string_ref(__sklib_string aIP); - [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__ipv4_to_str__unsigned_int", CharSet=CharSet.Ansi)] - private static extern __sklib_string __sklib__ipv4_to_str__unsigned_int(uint ip); - [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__is_connection_open__connection", CharSet=CharSet.Ansi)] private static extern int __sklib__is_connection_open__connection(__sklib_ptr con); @@ -3396,6 +3591,12 @@ private static void __skadapter__update_from_vector_bool(ref __sklib_vector_bool [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__quad_from__double__double__double__double__double__double__double__double", CharSet=CharSet.Ansi)] private static extern __sklib_quad __sklib__quad_from__double__double__double__double__double__double__double__double(double xTopLeft, double yTopLeft, double xTopRight, double yTopRight, double xBottomLeft, double yBottomLeft, double xBottomRight, double yBottomRight); + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__quad_ray_intersection__point_2d_ref__vector_2d_ref__quad_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__quad_ray_intersection__point_2d_ref__vector_2d_ref__quad_ref(__sklib_point_2d origin, __sklib_vector_2d heading, __sklib_quad q); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__quad_ray_intersection__point_2d_ref__vector_2d_ref__quad_ref__point_2d_ref__double_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__quad_ray_intersection__point_2d_ref__vector_2d_ref__quad_ref__point_2d_ref__double_ref(__sklib_point_2d origin, __sklib_vector_2d heading, __sklib_quad q, ref __sklib_point_2d hitPoint, ref double hitDistance); + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__quads_intersect__quad_ref__quad_ref", CharSet=CharSet.Ansi)] private static extern int __sklib__quads_intersect__quad_ref__quad_ref(__sklib_quad q1, __sklib_quad q2); @@ -3444,6 +3645,15 @@ private static void __skadapter__update_from_vector_bool(ref __sklib_vector_bool [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__raspi_set_pwm_range__pins__int", CharSet=CharSet.Ansi)] private static extern void __sklib__raspi_set_pwm_range__pins__int(int pin, int range); + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__raspi_spi_close__int", CharSet=CharSet.Ansi)] + private static extern int __sklib__raspi_spi_close__int(int handle); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__raspi_spi_open__int__int__int", CharSet=CharSet.Ansi)] + private static extern int __sklib__raspi_spi_open__int__int__int(int channel, int speed, int spiFlags); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__raspi_spi_transfer__int__string__string__int", CharSet=CharSet.Ansi)] + private static extern int __sklib__raspi_spi_transfer__int__string__string__int(int handle, __sklib_string sendbuf, __sklib_string recvbuf, int count); + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__raspi_write__pins__pin_values", CharSet=CharSet.Ansi)] private static extern void __sklib__raspi_write__pins__pin_values(int pin, int value); @@ -3579,6 +3789,9 @@ private static void __skadapter__update_from_vector_bool(ref __sklib_vector_bool [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__rectangle_center__rectangle_ref", CharSet=CharSet.Ansi)] private static extern __sklib_point_2d __sklib__rectangle_center__rectangle_ref(__sklib_rectangle rect); + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__rectangle_circle_intersect__rectangle_ref__circle_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__rectangle_circle_intersect__rectangle_ref__circle_ref(__sklib_rectangle rect, __sklib_circle c); + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__rectangle_from__point_2d__double__double", CharSet=CharSet.Ansi)] private static extern __sklib_rectangle __sklib__rectangle_from__point_2d__double__double(__sklib_point_2d pt, double width, double height); @@ -3594,6 +3807,12 @@ private static void __skadapter__update_from_vector_bool(ref __sklib_vector_bool [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__rectangle_offset_by__rectangle_ref__vector_2d_ref", CharSet=CharSet.Ansi)] private static extern __sklib_rectangle __sklib__rectangle_offset_by__rectangle_ref__vector_2d_ref(__sklib_rectangle rect, __sklib_vector_2d offset); + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__rectangle_ray_intersection__point_2d_ref__vector_2d_ref__rectangle_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__rectangle_ray_intersection__point_2d_ref__vector_2d_ref__rectangle_ref(__sklib_point_2d origin, __sklib_vector_2d heading, __sklib_rectangle rect); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__rectangle_ray_intersection__point_2d_ref__vector_2d_ref__rectangle_ref__point_2d_ref__double_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__rectangle_ray_intersection__point_2d_ref__vector_2d_ref__rectangle_ref__point_2d_ref__double_ref(__sklib_point_2d origin, __sklib_vector_2d heading, __sklib_rectangle rect, ref __sklib_point_2d hitPoint, ref double hitDistance); + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__rectangle_right__rectangle_ref", CharSet=CharSet.Ansi)] private static extern double __sklib__rectangle_right__rectangle_ref(__sklib_rectangle rect); @@ -4431,6 +4650,15 @@ private static void __skadapter__update_from_vector_bool(ref __sklib_vector_bool [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__triangle_from__double__double__double__double__double__double", CharSet=CharSet.Ansi)] private static extern __sklib_triangle __sklib__triangle_from__double__double__double__double__double__double(double x1, double y1, double x2, double y2, double x3, double y3); + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__triangle_quad_intersect__triangle_ref__quad_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__triangle_quad_intersect__triangle_ref__quad_ref(__sklib_triangle tri, __sklib_quad q); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__triangle_ray_intersection__point_2d_ref__vector_2d_ref__triangle_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__triangle_ray_intersection__point_2d_ref__vector_2d_ref__triangle_ref(__sklib_point_2d origin, __sklib_vector_2d heading, __sklib_triangle tri); + + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__triangle_ray_intersection__point_2d_ref__vector_2d_ref__triangle_ref__point_2d_ref__double_ref", CharSet=CharSet.Ansi)] + private static extern int __sklib__triangle_ray_intersection__point_2d_ref__vector_2d_ref__triangle_ref__point_2d_ref__double_ref(__sklib_point_2d origin, __sklib_vector_2d heading, __sklib_triangle tri, ref __sklib_point_2d hitPoint, ref double hitDistance); + [DllImport("SplashKit", CallingConvention=CallingConvention.Cdecl, EntryPoint="__sklib__triangle_rectangle_intersect__triangle_ref__rectangle_ref", CharSet=CharSet.Ansi)] private static extern int __sklib__triangle_rectangle_intersect__triangle_ref__rectangle_ref(__sklib_triangle tri, __sklib_rectangle rect); @@ -5779,6 +6007,16 @@ public static Circle CircleAt(double x, double y, double radius) __skreturn = __sklib__circle_at__double__double__double(__skparam__x, __skparam__y, __skparam__radius); return __skadapter__to_circle(__skreturn); } + public static bool CircleQuadIntersect(Circle c, Quad q) + { + __sklib_circle __skparam__c; + __sklib_quad __skparam__q; + int __skreturn; + __skparam__c = __skadapter__to_sklib_circle(c); + __skparam__q = __skadapter__to_sklib_quad(q); + __skreturn = __sklib__circle_quad_intersect__circle_ref__quad_ref(__skparam__c, __skparam__q); + return __skadapter__to_bool(__skreturn); + } public static float CircleRadius(Circle c) { __sklib_circle __skparam__c; @@ -5787,6 +6025,36 @@ public static float CircleRadius(Circle c) __skreturn = __sklib__circle_radius__circle(__skparam__c); return __skadapter__to_float(__skreturn); } + public static bool CircleRayIntersection(Point2D origin, Vector2D heading, Circle circ) + { + __sklib_point_2d __skparam__origin; + __sklib_vector_2d __skparam__heading; + __sklib_circle __skparam__circ; + int __skreturn; + __skparam__origin = __skadapter__to_sklib_point_2d(origin); + __skparam__heading = __skadapter__to_sklib_vector_2d(heading); + __skparam__circ = __skadapter__to_sklib_circle(circ); + __skreturn = __sklib__circle_ray_intersection__point_2d_ref__vector_2d_ref__circle_ref(__skparam__origin, __skparam__heading, __skparam__circ); + return __skadapter__to_bool(__skreturn); + } + public static bool CircleRayIntersection(Point2D origin, Vector2D heading, Circle circ, ref Point2D hitPoint, ref double hitDistance) + { + __sklib_point_2d __skparam__origin; + __sklib_vector_2d __skparam__heading; + __sklib_circle __skparam__circ; + __sklib_point_2d __skparam__hit_point; + double __skparam__hit_distance; + int __skreturn; + __skparam__origin = __skadapter__to_sklib_point_2d(origin); + __skparam__heading = __skadapter__to_sklib_vector_2d(heading); + __skparam__circ = __skadapter__to_sklib_circle(circ); + __skparam__hit_point = __skadapter__to_sklib_point_2d(hitPoint); + __skparam__hit_distance = __skadapter__to_sklib_double(hitDistance); + __skreturn = __sklib__circle_ray_intersection__point_2d_ref__vector_2d_ref__circle_ref__point_2d_ref__double_ref(__skparam__origin, __skparam__heading, __skparam__circ, ref __skparam__hit_point, ref __skparam__hit_distance); + hitPoint = __skadapter__to_point_2d(__skparam__hit_point); + hitDistance = __skadapter__to_double(__skparam__hit_distance); + return __skadapter__to_bool(__skreturn); + } public static bool CircleTriangleIntersect(Circle c, Triangle tri) { __sklib_circle __skparam__c; @@ -6305,6 +6573,32 @@ public static bool BitmapPointCollision(Bitmap bmp, int cell, double bmpX, doubl __skreturn = __sklib__bitmap_point_collision__bitmap__int__double__double__double__double(__skparam__bmp, __skparam__cell, __skparam__bmp_x, __skparam__bmp_y, __skparam__x, __skparam__y); return __skadapter__to_bool(__skreturn); } + public static bool BitmapQuadCollision(Bitmap bmp, Point2D pt, Quad q) + { + __sklib_ptr __skparam__bmp; + __sklib_point_2d __skparam__pt; + __sklib_quad __skparam__q; + int __skreturn; + __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); + __skparam__pt = __skadapter__to_sklib_point_2d(pt); + __skparam__q = __skadapter__to_sklib_quad(q); + __skreturn = __sklib__bitmap_quad_collision__bitmap__point_2d_ref__quad_ref(__skparam__bmp, __skparam__pt, __skparam__q); + return __skadapter__to_bool(__skreturn); + } + public static bool BitmapQuadCollision(Bitmap bmp, double x, double y, Quad q) + { + __sklib_ptr __skparam__bmp; + double __skparam__x; + double __skparam__y; + __sklib_quad __skparam__q; + int __skreturn; + __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); + __skparam__x = __skadapter__to_sklib_double(x); + __skparam__y = __skadapter__to_sklib_double(y); + __skparam__q = __skadapter__to_sklib_quad(q); + __skreturn = __sklib__bitmap_quad_collision__bitmap__double__double__quad_ref(__skparam__bmp, __skparam__x, __skparam__y, __skparam__q); + return __skadapter__to_bool(__skreturn); + } public static bool BitmapQuadCollision(Bitmap bmp, int cell, Matrix2D translation, Quad q) { __sklib_ptr __skparam__bmp; @@ -6319,6 +6613,36 @@ public static bool BitmapQuadCollision(Bitmap bmp, int cell, Matrix2D translatio __skreturn = __sklib__bitmap_quad_collision__bitmap__int__matrix_2d_ref__quad_ref(__skparam__bmp, __skparam__cell, __skparam__translation, __skparam__q); return __skadapter__to_bool(__skreturn); } + public static bool BitmapQuadCollision(Bitmap bmp, int cell, Point2D pt, Quad q) + { + __sklib_ptr __skparam__bmp; + int __skparam__cell; + __sklib_point_2d __skparam__pt; + __sklib_quad __skparam__q; + int __skreturn; + __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); + __skparam__cell = __skadapter__to_sklib_int(cell); + __skparam__pt = __skadapter__to_sklib_point_2d(pt); + __skparam__q = __skadapter__to_sklib_quad(q); + __skreturn = __sklib__bitmap_quad_collision__bitmap__int__point_2d_ref__quad_ref(__skparam__bmp, __skparam__cell, __skparam__pt, __skparam__q); + return __skadapter__to_bool(__skreturn); + } + public static bool BitmapQuadCollision(Bitmap bmp, int cell, double x, double y, Quad q) + { + __sklib_ptr __skparam__bmp; + int __skparam__cell; + double __skparam__x; + double __skparam__y; + __sklib_quad __skparam__q; + int __skreturn; + __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); + __skparam__cell = __skadapter__to_sklib_int(cell); + __skparam__x = __skadapter__to_sklib_double(x); + __skparam__y = __skadapter__to_sklib_double(y); + __skparam__q = __skadapter__to_sklib_quad(q); + __skreturn = __sklib__bitmap_quad_collision__bitmap__int__double__double__quad_ref(__skparam__bmp, __skparam__cell, __skparam__x, __skparam__y, __skparam__q); + return __skadapter__to_bool(__skreturn); + } public static bool BitmapRayCollision(Bitmap bmp, Point2D pt, Point2D origin, Vector2D heading) { __sklib_ptr __skparam__bmp; @@ -6357,116 +6681,756 @@ public static bool BitmapRayCollision(Bitmap bmp, int cell, Matrix2D translation __sklib_point_2d __skparam__origin; __sklib_vector_2d __skparam__heading; int __skreturn; - __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); - __skparam__cell = __skadapter__to_sklib_int(cell); - __skparam__translation = __skadapter__to_sklib_matrix_2d(translation); - __skparam__origin = __skadapter__to_sklib_point_2d(origin); - __skparam__heading = __skadapter__to_sklib_vector_2d(heading); - __skreturn = __sklib__bitmap_ray_collision__bitmap__int__matrix_2d_ref__point_2d_ref__vector_2d_ref(__skparam__bmp, __skparam__cell, __skparam__translation, __skparam__origin, __skparam__heading); + __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); + __skparam__cell = __skadapter__to_sklib_int(cell); + __skparam__translation = __skadapter__to_sklib_matrix_2d(translation); + __skparam__origin = __skadapter__to_sklib_point_2d(origin); + __skparam__heading = __skadapter__to_sklib_vector_2d(heading); + __skreturn = __sklib__bitmap_ray_collision__bitmap__int__matrix_2d_ref__point_2d_ref__vector_2d_ref(__skparam__bmp, __skparam__cell, __skparam__translation, __skparam__origin, __skparam__heading); + return __skadapter__to_bool(__skreturn); + } + public static bool BitmapRayCollision(Bitmap bmp, int cell, Point2D pt, Point2D origin, Vector2D heading) + { + __sklib_ptr __skparam__bmp; + int __skparam__cell; + __sklib_point_2d __skparam__pt; + __sklib_point_2d __skparam__origin; + __sklib_vector_2d __skparam__heading; + int __skreturn; + __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); + __skparam__cell = __skadapter__to_sklib_int(cell); + __skparam__pt = __skadapter__to_sklib_point_2d(pt); + __skparam__origin = __skadapter__to_sklib_point_2d(origin); + __skparam__heading = __skadapter__to_sklib_vector_2d(heading); + __skreturn = __sklib__bitmap_ray_collision__bitmap__int__point_2d_ref__point_2d_ref__vector_2d_ref(__skparam__bmp, __skparam__cell, __skparam__pt, __skparam__origin, __skparam__heading); + return __skadapter__to_bool(__skreturn); + } + public static bool BitmapRayCollision(Bitmap bmp, int cell, double x, double y, Point2D origin, Vector2D heading) + { + __sklib_ptr __skparam__bmp; + int __skparam__cell; + double __skparam__x; + double __skparam__y; + __sklib_point_2d __skparam__origin; + __sklib_vector_2d __skparam__heading; + int __skreturn; + __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); + __skparam__cell = __skadapter__to_sklib_int(cell); + __skparam__x = __skadapter__to_sklib_double(x); + __skparam__y = __skadapter__to_sklib_double(y); + __skparam__origin = __skadapter__to_sklib_point_2d(origin); + __skparam__heading = __skadapter__to_sklib_vector_2d(heading); + __skreturn = __sklib__bitmap_ray_collision__bitmap__int__double__double__point_2d_ref__vector_2d_ref(__skparam__bmp, __skparam__cell, __skparam__x, __skparam__y, __skparam__origin, __skparam__heading); + return __skadapter__to_bool(__skreturn); + } + public static bool BitmapRectangleCollision(Bitmap bmp, Point2D pt, Rectangle rect) + { + __sklib_ptr __skparam__bmp; + __sklib_point_2d __skparam__pt; + __sklib_rectangle __skparam__rect; + int __skreturn; + __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); + __skparam__pt = __skadapter__to_sklib_point_2d(pt); + __skparam__rect = __skadapter__to_sklib_rectangle(rect); + __skreturn = __sklib__bitmap_rectangle_collision__bitmap__point_2d_ref__rectangle_ref(__skparam__bmp, __skparam__pt, __skparam__rect); + return __skadapter__to_bool(__skreturn); + } + public static bool BitmapRectangleCollision(Bitmap bmp, double x, double y, Rectangle rect) + { + __sklib_ptr __skparam__bmp; + double __skparam__x; + double __skparam__y; + __sklib_rectangle __skparam__rect; + int __skreturn; + __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); + __skparam__x = __skadapter__to_sklib_double(x); + __skparam__y = __skadapter__to_sklib_double(y); + __skparam__rect = __skadapter__to_sklib_rectangle(rect); + __skreturn = __sklib__bitmap_rectangle_collision__bitmap__double__double__rectangle_ref(__skparam__bmp, __skparam__x, __skparam__y, __skparam__rect); + return __skadapter__to_bool(__skreturn); + } + public static bool BitmapRectangleCollision(Bitmap bmp, int cell, Matrix2D translation, Rectangle rect) + { + __sklib_ptr __skparam__bmp; + int __skparam__cell; + __sklib_matrix_2d __skparam__translation; + __sklib_rectangle __skparam__rect; + int __skreturn; + __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); + __skparam__cell = __skadapter__to_sklib_int(cell); + __skparam__translation = __skadapter__to_sklib_matrix_2d(translation); + __skparam__rect = __skadapter__to_sklib_rectangle(rect); + __skreturn = __sklib__bitmap_rectangle_collision__bitmap__int__matrix_2d_ref__rectangle_ref(__skparam__bmp, __skparam__cell, __skparam__translation, __skparam__rect); + return __skadapter__to_bool(__skreturn); + } + public static bool BitmapRectangleCollision(Bitmap bmp, int cell, Point2D pt, Rectangle rect) + { + __sklib_ptr __skparam__bmp; + int __skparam__cell; + __sklib_point_2d __skparam__pt; + __sklib_rectangle __skparam__rect; + int __skreturn; + __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); + __skparam__cell = __skadapter__to_sklib_int(cell); + __skparam__pt = __skadapter__to_sklib_point_2d(pt); + __skparam__rect = __skadapter__to_sklib_rectangle(rect); + __skreturn = __sklib__bitmap_rectangle_collision__bitmap__int__point_2d_ref__rectangle_ref(__skparam__bmp, __skparam__cell, __skparam__pt, __skparam__rect); + return __skadapter__to_bool(__skreturn); + } + public static bool BitmapRectangleCollision(Bitmap bmp, int cell, double x, double y, Rectangle rect) + { + __sklib_ptr __skparam__bmp; + int __skparam__cell; + double __skparam__x; + double __skparam__y; + __sklib_rectangle __skparam__rect; + int __skreturn; + __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); + __skparam__cell = __skadapter__to_sklib_int(cell); + __skparam__x = __skadapter__to_sklib_double(x); + __skparam__y = __skadapter__to_sklib_double(y); + __skparam__rect = __skadapter__to_sklib_rectangle(rect); + __skreturn = __sklib__bitmap_rectangle_collision__bitmap__int__double__double__rectangle_ref(__skparam__bmp, __skparam__cell, __skparam__x, __skparam__y, __skparam__rect); + return __skadapter__to_bool(__skreturn); + } + public static bool BitmapTriangleCollision(Bitmap bmp, Point2D pt, Triangle tri) + { + __sklib_ptr __skparam__bmp; + __sklib_point_2d __skparam__pt; + __sklib_triangle __skparam__tri; + int __skreturn; + __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); + __skparam__pt = __skadapter__to_sklib_point_2d(pt); + __skparam__tri = __skadapter__to_sklib_triangle(tri); + __skreturn = __sklib__bitmap_triangle_collision__bitmap__point_2d_ref__triangle_ref(__skparam__bmp, __skparam__pt, __skparam__tri); + return __skadapter__to_bool(__skreturn); + } + public static bool BitmapTriangleCollision(Bitmap bmp, double x, double y, Triangle tri) + { + __sklib_ptr __skparam__bmp; + double __skparam__x; + double __skparam__y; + __sklib_triangle __skparam__tri; + int __skreturn; + __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); + __skparam__x = __skadapter__to_sklib_double(x); + __skparam__y = __skadapter__to_sklib_double(y); + __skparam__tri = __skadapter__to_sklib_triangle(tri); + __skreturn = __sklib__bitmap_triangle_collision__bitmap__double__double__triangle_ref(__skparam__bmp, __skparam__x, __skparam__y, __skparam__tri); + return __skadapter__to_bool(__skreturn); + } + public static bool BitmapTriangleCollision(Bitmap bmp, int cell, Matrix2D translation, Triangle tri) + { + __sklib_ptr __skparam__bmp; + int __skparam__cell; + __sklib_matrix_2d __skparam__translation; + __sklib_triangle __skparam__tri; + int __skreturn; + __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); + __skparam__cell = __skadapter__to_sklib_int(cell); + __skparam__translation = __skadapter__to_sklib_matrix_2d(translation); + __skparam__tri = __skadapter__to_sklib_triangle(tri); + __skreturn = __sklib__bitmap_triangle_collision__bitmap__int__matrix_2d_ref__triangle_ref(__skparam__bmp, __skparam__cell, __skparam__translation, __skparam__tri); + return __skadapter__to_bool(__skreturn); + } + public static bool BitmapTriangleCollision(Bitmap bmp, int cell, Point2D pt, Triangle tri) + { + __sklib_ptr __skparam__bmp; + int __skparam__cell; + __sklib_point_2d __skparam__pt; + __sklib_triangle __skparam__tri; + int __skreturn; + __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); + __skparam__cell = __skadapter__to_sklib_int(cell); + __skparam__pt = __skadapter__to_sklib_point_2d(pt); + __skparam__tri = __skadapter__to_sklib_triangle(tri); + __skreturn = __sklib__bitmap_triangle_collision__bitmap__int__point_2d_ref__triangle_ref(__skparam__bmp, __skparam__cell, __skparam__pt, __skparam__tri); + return __skadapter__to_bool(__skreturn); + } + public static bool BitmapTriangleCollision(Bitmap bmp, int cell, double x, double y, Triangle tri) + { + __sklib_ptr __skparam__bmp; + int __skparam__cell; + double __skparam__x; + double __skparam__y; + __sklib_triangle __skparam__tri; + int __skreturn; + __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); + __skparam__cell = __skadapter__to_sklib_int(cell); + __skparam__x = __skadapter__to_sklib_double(x); + __skparam__y = __skadapter__to_sklib_double(y); + __skparam__tri = __skadapter__to_sklib_triangle(tri); + __skreturn = __sklib__bitmap_triangle_collision__bitmap__int__double__double__triangle_ref(__skparam__bmp, __skparam__cell, __skparam__x, __skparam__y, __skparam__tri); + return __skadapter__to_bool(__skreturn); + } + public static Vector2D CalculateCollisionDirection(Quad collider, Quad collidee) + { + __sklib_quad __skparam__collider; + __sklib_quad __skparam__collidee; + __sklib_vector_2d __skreturn; + __skparam__collider = __skadapter__to_sklib_quad(collider); + __skparam__collidee = __skadapter__to_sklib_quad(collidee); + __skreturn = __sklib__calculate_collision_direction__quad_ref__quad_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); + } + public static Vector2D CalculateCollisionDirection(Circle collider, Circle collidee) + { + __sklib_circle __skparam__collider; + __sklib_circle __skparam__collidee; + __sklib_vector_2d __skreturn; + __skparam__collider = __skadapter__to_sklib_circle(collider); + __skparam__collidee = __skadapter__to_sklib_circle(collidee); + __skreturn = __sklib__calculate_collision_direction__circle_ref__circle_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); + } + public static Vector2D CalculateCollisionDirection(Circle collider, Quad collidee) + { + __sklib_circle __skparam__collider; + __sklib_quad __skparam__collidee; + __sklib_vector_2d __skreturn; + __skparam__collider = __skadapter__to_sklib_circle(collider); + __skparam__collidee = __skadapter__to_sklib_quad(collidee); + __skreturn = __sklib__calculate_collision_direction__circle_ref__quad_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); + } + public static Vector2D CalculateCollisionDirection(Circle collider, Rectangle collidee) + { + __sklib_circle __skparam__collider; + __sklib_rectangle __skparam__collidee; + __sklib_vector_2d __skreturn; + __skparam__collider = __skadapter__to_sklib_circle(collider); + __skparam__collidee = __skadapter__to_sklib_rectangle(collidee); + __skreturn = __sklib__calculate_collision_direction__circle_ref__rectangle_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); + } + public static Vector2D CalculateCollisionDirection(Circle collider, Sprite collidee) + { + __sklib_circle __skparam__collider; + __sklib_ptr __skparam__collidee; + __sklib_vector_2d __skreturn; + __skparam__collider = __skadapter__to_sklib_circle(collider); + __skparam__collidee = __skadapter__to_sklib_sprite(collidee); + __skreturn = __sklib__calculate_collision_direction__circle_ref__sprite(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); + } + public static Vector2D CalculateCollisionDirection(Circle collider, Triangle collidee) + { + __sklib_circle __skparam__collider; + __sklib_triangle __skparam__collidee; + __sklib_vector_2d __skreturn; + __skparam__collider = __skadapter__to_sklib_circle(collider); + __skparam__collidee = __skadapter__to_sklib_triangle(collidee); + __skreturn = __sklib__calculate_collision_direction__circle_ref__triangle_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); + } + public static Vector2D CalculateCollisionDirection(Quad collider, Circle collidee) + { + __sklib_quad __skparam__collider; + __sklib_circle __skparam__collidee; + __sklib_vector_2d __skreturn; + __skparam__collider = __skadapter__to_sklib_quad(collider); + __skparam__collidee = __skadapter__to_sklib_circle(collidee); + __skreturn = __sklib__calculate_collision_direction__quad_ref__circle_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); + } + public static Vector2D CalculateCollisionDirection(Quad collider, Rectangle collidee) + { + __sklib_quad __skparam__collider; + __sklib_rectangle __skparam__collidee; + __sklib_vector_2d __skreturn; + __skparam__collider = __skadapter__to_sklib_quad(collider); + __skparam__collidee = __skadapter__to_sklib_rectangle(collidee); + __skreturn = __sklib__calculate_collision_direction__quad_ref__rectangle_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); + } + public static Vector2D CalculateCollisionDirection(Quad collider, Sprite collidee) + { + __sklib_quad __skparam__collider; + __sklib_ptr __skparam__collidee; + __sklib_vector_2d __skreturn; + __skparam__collider = __skadapter__to_sklib_quad(collider); + __skparam__collidee = __skadapter__to_sklib_sprite(collidee); + __skreturn = __sklib__calculate_collision_direction__quad_ref__sprite(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); + } + public static Vector2D CalculateCollisionDirection(Quad collider, Triangle collidee) + { + __sklib_quad __skparam__collider; + __sklib_triangle __skparam__collidee; + __sklib_vector_2d __skreturn; + __skparam__collider = __skadapter__to_sklib_quad(collider); + __skparam__collidee = __skadapter__to_sklib_triangle(collidee); + __skreturn = __sklib__calculate_collision_direction__quad_ref__triangle_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); + } + public static Vector2D CalculateCollisionDirection(Rectangle collider, Circle collidee) + { + __sklib_rectangle __skparam__collider; + __sklib_circle __skparam__collidee; + __sklib_vector_2d __skreturn; + __skparam__collider = __skadapter__to_sklib_rectangle(collider); + __skparam__collidee = __skadapter__to_sklib_circle(collidee); + __skreturn = __sklib__calculate_collision_direction__rectangle_ref__circle_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); + } + public static Vector2D CalculateCollisionDirection(Rectangle collider, Quad collidee) + { + __sklib_rectangle __skparam__collider; + __sklib_quad __skparam__collidee; + __sklib_vector_2d __skreturn; + __skparam__collider = __skadapter__to_sklib_rectangle(collider); + __skparam__collidee = __skadapter__to_sklib_quad(collidee); + __skreturn = __sklib__calculate_collision_direction__rectangle_ref__quad_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); + } + public static Vector2D CalculateCollisionDirection(Rectangle collider, Rectangle collidee) + { + __sklib_rectangle __skparam__collider; + __sklib_rectangle __skparam__collidee; + __sklib_vector_2d __skreturn; + __skparam__collider = __skadapter__to_sklib_rectangle(collider); + __skparam__collidee = __skadapter__to_sklib_rectangle(collidee); + __skreturn = __sklib__calculate_collision_direction__rectangle_ref__rectangle_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); + } + public static Vector2D CalculateCollisionDirection(Rectangle collider, Sprite collidee) + { + __sklib_rectangle __skparam__collider; + __sklib_ptr __skparam__collidee; + __sklib_vector_2d __skreturn; + __skparam__collider = __skadapter__to_sklib_rectangle(collider); + __skparam__collidee = __skadapter__to_sklib_sprite(collidee); + __skreturn = __sklib__calculate_collision_direction__rectangle_ref__sprite(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); + } + public static Vector2D CalculateCollisionDirection(Rectangle collider, Triangle collidee) + { + __sklib_rectangle __skparam__collider; + __sklib_triangle __skparam__collidee; + __sklib_vector_2d __skreturn; + __skparam__collider = __skadapter__to_sklib_rectangle(collider); + __skparam__collidee = __skadapter__to_sklib_triangle(collidee); + __skreturn = __sklib__calculate_collision_direction__rectangle_ref__triangle_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); + } + public static Vector2D CalculateCollisionDirection(Sprite collider, Circle collidee) + { + __sklib_ptr __skparam__collider; + __sklib_circle __skparam__collidee; + __sklib_vector_2d __skreturn; + __skparam__collider = __skadapter__to_sklib_sprite(collider); + __skparam__collidee = __skadapter__to_sklib_circle(collidee); + __skreturn = __sklib__calculate_collision_direction__sprite__circle_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); + } + public static Vector2D CalculateCollisionDirection(Sprite collider, Quad collidee) + { + __sklib_ptr __skparam__collider; + __sklib_quad __skparam__collidee; + __sklib_vector_2d __skreturn; + __skparam__collider = __skadapter__to_sklib_sprite(collider); + __skparam__collidee = __skadapter__to_sklib_quad(collidee); + __skreturn = __sklib__calculate_collision_direction__sprite__quad_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); + } + public static Vector2D CalculateCollisionDirection(Sprite collider, Rectangle collidee) + { + __sklib_ptr __skparam__collider; + __sklib_rectangle __skparam__collidee; + __sklib_vector_2d __skreturn; + __skparam__collider = __skadapter__to_sklib_sprite(collider); + __skparam__collidee = __skadapter__to_sklib_rectangle(collidee); + __skreturn = __sklib__calculate_collision_direction__sprite__rectangle_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); + } + public static Vector2D CalculateCollisionDirection(Sprite collider, Sprite collidee) + { + __sklib_ptr __skparam__collider; + __sklib_ptr __skparam__collidee; + __sklib_vector_2d __skreturn; + __skparam__collider = __skadapter__to_sklib_sprite(collider); + __skparam__collidee = __skadapter__to_sklib_sprite(collidee); + __skreturn = __sklib__calculate_collision_direction__sprite__sprite(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); + } + public static Vector2D CalculateCollisionDirection(Sprite collider, Triangle collidee) + { + __sklib_ptr __skparam__collider; + __sklib_triangle __skparam__collidee; + __sklib_vector_2d __skreturn; + __skparam__collider = __skadapter__to_sklib_sprite(collider); + __skparam__collidee = __skadapter__to_sklib_triangle(collidee); + __skreturn = __sklib__calculate_collision_direction__sprite__triangle_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); + } + public static Vector2D CalculateCollisionDirection(Triangle collider, Circle collidee) + { + __sklib_triangle __skparam__collider; + __sklib_circle __skparam__collidee; + __sklib_vector_2d __skreturn; + __skparam__collider = __skadapter__to_sklib_triangle(collider); + __skparam__collidee = __skadapter__to_sklib_circle(collidee); + __skreturn = __sklib__calculate_collision_direction__triangle_ref__circle_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); + } + public static Vector2D CalculateCollisionDirection(Triangle collider, Quad collidee) + { + __sklib_triangle __skparam__collider; + __sklib_quad __skparam__collidee; + __sklib_vector_2d __skreturn; + __skparam__collider = __skadapter__to_sklib_triangle(collider); + __skparam__collidee = __skadapter__to_sklib_quad(collidee); + __skreturn = __sklib__calculate_collision_direction__triangle_ref__quad_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); + } + public static Vector2D CalculateCollisionDirection(Triangle collider, Rectangle collidee) + { + __sklib_triangle __skparam__collider; + __sklib_rectangle __skparam__collidee; + __sklib_vector_2d __skreturn; + __skparam__collider = __skadapter__to_sklib_triangle(collider); + __skparam__collidee = __skadapter__to_sklib_rectangle(collidee); + __skreturn = __sklib__calculate_collision_direction__triangle_ref__rectangle_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); + } + public static Vector2D CalculateCollisionDirection(Triangle collider, Sprite collidee) + { + __sklib_triangle __skparam__collider; + __sklib_ptr __skparam__collidee; + __sklib_vector_2d __skreturn; + __skparam__collider = __skadapter__to_sklib_triangle(collider); + __skparam__collidee = __skadapter__to_sklib_sprite(collidee); + __skreturn = __sklib__calculate_collision_direction__triangle_ref__sprite(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); + } + public static Vector2D CalculateCollisionDirection(Triangle collider, Triangle collidee) + { + __sklib_triangle __skparam__collider; + __sklib_triangle __skparam__collidee; + __sklib_vector_2d __skreturn; + __skparam__collider = __skadapter__to_sklib_triangle(collider); + __skparam__collidee = __skadapter__to_sklib_triangle(collidee); + __skreturn = __sklib__calculate_collision_direction__triangle_ref__triangle_ref(__skparam__collider, __skparam__collidee); + return __skadapter__to_vector_2d(__skreturn); + } + public static bool ResolveCollision(ref Quad collider, Quad collidee, Vector2D direction) + { + __sklib_quad __skparam__collider; + __sklib_quad __skparam__collidee; + __sklib_vector_2d __skparam__direction; + int __skreturn; + __skparam__collider = __skadapter__to_sklib_quad(collider); + __skparam__collidee = __skadapter__to_sklib_quad(collidee); + __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + __skreturn = __sklib__resolve_collision__quad_ref__quad_ref__vector_2d_ref(ref __skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_quad(__skparam__collider); + return __skadapter__to_bool(__skreturn); + } + public static bool ResolveCollision(ref Circle collider, Circle collidee, Vector2D direction) + { + __sklib_circle __skparam__collider; + __sklib_circle __skparam__collidee; + __sklib_vector_2d __skparam__direction; + int __skreturn; + __skparam__collider = __skadapter__to_sklib_circle(collider); + __skparam__collidee = __skadapter__to_sklib_circle(collidee); + __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + __skreturn = __sklib__resolve_collision__circle_ref__circle_ref__vector_2d_ref(ref __skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_circle(__skparam__collider); + return __skadapter__to_bool(__skreturn); + } + public static bool ResolveCollision(ref Circle collider, Quad collidee, Vector2D direction) + { + __sklib_circle __skparam__collider; + __sklib_quad __skparam__collidee; + __sklib_vector_2d __skparam__direction; + int __skreturn; + __skparam__collider = __skadapter__to_sklib_circle(collider); + __skparam__collidee = __skadapter__to_sklib_quad(collidee); + __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + __skreturn = __sklib__resolve_collision__circle_ref__quad_ref__vector_2d_ref(ref __skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_circle(__skparam__collider); + return __skadapter__to_bool(__skreturn); + } + public static bool ResolveCollision(ref Circle collider, Rectangle collidee, Vector2D direction) + { + __sklib_circle __skparam__collider; + __sklib_rectangle __skparam__collidee; + __sklib_vector_2d __skparam__direction; + int __skreturn; + __skparam__collider = __skadapter__to_sklib_circle(collider); + __skparam__collidee = __skadapter__to_sklib_rectangle(collidee); + __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + __skreturn = __sklib__resolve_collision__circle_ref__rectangle_ref__vector_2d_ref(ref __skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_circle(__skparam__collider); + return __skadapter__to_bool(__skreturn); + } + public static bool ResolveCollision(ref Circle collider, Sprite collidee, Vector2D direction) + { + __sklib_circle __skparam__collider; + __sklib_ptr __skparam__collidee; + __sklib_vector_2d __skparam__direction; + int __skreturn; + __skparam__collider = __skadapter__to_sklib_circle(collider); + __skparam__collidee = __skadapter__to_sklib_sprite(collidee); + __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + __skreturn = __sklib__resolve_collision__circle_ref__sprite__vector_2d_ref(ref __skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_circle(__skparam__collider); + return __skadapter__to_bool(__skreturn); + } + public static bool ResolveCollision(ref Circle collider, Triangle collidee, Vector2D direction) + { + __sklib_circle __skparam__collider; + __sklib_triangle __skparam__collidee; + __sklib_vector_2d __skparam__direction; + int __skreturn; + __skparam__collider = __skadapter__to_sklib_circle(collider); + __skparam__collidee = __skadapter__to_sklib_triangle(collidee); + __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + __skreturn = __sklib__resolve_collision__circle_ref__triangle_ref__vector_2d_ref(ref __skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_circle(__skparam__collider); + return __skadapter__to_bool(__skreturn); + } + public static bool ResolveCollision(ref Quad collider, Circle collidee, Vector2D direction) + { + __sklib_quad __skparam__collider; + __sklib_circle __skparam__collidee; + __sklib_vector_2d __skparam__direction; + int __skreturn; + __skparam__collider = __skadapter__to_sklib_quad(collider); + __skparam__collidee = __skadapter__to_sklib_circle(collidee); + __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + __skreturn = __sklib__resolve_collision__quad_ref__circle_ref__vector_2d_ref(ref __skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_quad(__skparam__collider); + return __skadapter__to_bool(__skreturn); + } + public static bool ResolveCollision(ref Quad collider, Rectangle collidee, Vector2D direction) + { + __sklib_quad __skparam__collider; + __sklib_rectangle __skparam__collidee; + __sklib_vector_2d __skparam__direction; + int __skreturn; + __skparam__collider = __skadapter__to_sklib_quad(collider); + __skparam__collidee = __skadapter__to_sklib_rectangle(collidee); + __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + __skreturn = __sklib__resolve_collision__quad_ref__rectangle_ref__vector_2d_ref(ref __skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_quad(__skparam__collider); + return __skadapter__to_bool(__skreturn); + } + public static bool ResolveCollision(ref Quad collider, Sprite collidee, Vector2D direction) + { + __sklib_quad __skparam__collider; + __sklib_ptr __skparam__collidee; + __sklib_vector_2d __skparam__direction; + int __skreturn; + __skparam__collider = __skadapter__to_sklib_quad(collider); + __skparam__collidee = __skadapter__to_sklib_sprite(collidee); + __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + __skreturn = __sklib__resolve_collision__quad_ref__sprite__vector_2d_ref(ref __skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_quad(__skparam__collider); + return __skadapter__to_bool(__skreturn); + } + public static bool ResolveCollision(ref Quad collider, Triangle collidee, Vector2D direction) + { + __sklib_quad __skparam__collider; + __sklib_triangle __skparam__collidee; + __sklib_vector_2d __skparam__direction; + int __skreturn; + __skparam__collider = __skadapter__to_sklib_quad(collider); + __skparam__collidee = __skadapter__to_sklib_triangle(collidee); + __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + __skreturn = __sklib__resolve_collision__quad_ref__triangle_ref__vector_2d_ref(ref __skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_quad(__skparam__collider); + return __skadapter__to_bool(__skreturn); + } + public static bool ResolveCollision(ref Rectangle collider, Circle collidee, Vector2D direction) + { + __sklib_rectangle __skparam__collider; + __sklib_circle __skparam__collidee; + __sklib_vector_2d __skparam__direction; + int __skreturn; + __skparam__collider = __skadapter__to_sklib_rectangle(collider); + __skparam__collidee = __skadapter__to_sklib_circle(collidee); + __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + __skreturn = __sklib__resolve_collision__rectangle_ref__circle_ref__vector_2d_ref(ref __skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_rectangle(__skparam__collider); + return __skadapter__to_bool(__skreturn); + } + public static bool ResolveCollision(ref Rectangle collider, Quad collidee, Vector2D direction) + { + __sklib_rectangle __skparam__collider; + __sklib_quad __skparam__collidee; + __sklib_vector_2d __skparam__direction; + int __skreturn; + __skparam__collider = __skadapter__to_sklib_rectangle(collider); + __skparam__collidee = __skadapter__to_sklib_quad(collidee); + __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + __skreturn = __sklib__resolve_collision__rectangle_ref__quad_ref__vector_2d_ref(ref __skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_rectangle(__skparam__collider); + return __skadapter__to_bool(__skreturn); + } + public static bool ResolveCollision(ref Rectangle collider, Rectangle collidee, Vector2D direction) + { + __sklib_rectangle __skparam__collider; + __sklib_rectangle __skparam__collidee; + __sklib_vector_2d __skparam__direction; + int __skreturn; + __skparam__collider = __skadapter__to_sklib_rectangle(collider); + __skparam__collidee = __skadapter__to_sklib_rectangle(collidee); + __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + __skreturn = __sklib__resolve_collision__rectangle_ref__rectangle_ref__vector_2d_ref(ref __skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_rectangle(__skparam__collider); + return __skadapter__to_bool(__skreturn); + } + public static bool ResolveCollision(ref Rectangle collider, Sprite collidee, Vector2D direction) + { + __sklib_rectangle __skparam__collider; + __sklib_ptr __skparam__collidee; + __sklib_vector_2d __skparam__direction; + int __skreturn; + __skparam__collider = __skadapter__to_sklib_rectangle(collider); + __skparam__collidee = __skadapter__to_sklib_sprite(collidee); + __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + __skreturn = __sklib__resolve_collision__rectangle_ref__sprite__vector_2d_ref(ref __skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_rectangle(__skparam__collider); + return __skadapter__to_bool(__skreturn); + } + public static bool ResolveCollision(ref Rectangle collider, Triangle collidee, Vector2D direction) + { + __sklib_rectangle __skparam__collider; + __sklib_triangle __skparam__collidee; + __sklib_vector_2d __skparam__direction; + int __skreturn; + __skparam__collider = __skadapter__to_sklib_rectangle(collider); + __skparam__collidee = __skadapter__to_sklib_triangle(collidee); + __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + __skreturn = __sklib__resolve_collision__rectangle_ref__triangle_ref__vector_2d_ref(ref __skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_rectangle(__skparam__collider); + return __skadapter__to_bool(__skreturn); + } + public static bool ResolveCollision(Sprite collider, Circle collidee, Vector2D direction) + { + __sklib_ptr __skparam__collider; + __sklib_circle __skparam__collidee; + __sklib_vector_2d __skparam__direction; + int __skreturn; + __skparam__collider = __skadapter__to_sklib_sprite(collider); + __skparam__collidee = __skadapter__to_sklib_circle(collidee); + __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + __skreturn = __sklib__resolve_collision__sprite__circle_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); + return __skadapter__to_bool(__skreturn); + } + public static bool ResolveCollision(Sprite collider, Quad collidee, Vector2D direction) + { + __sklib_ptr __skparam__collider; + __sklib_quad __skparam__collidee; + __sklib_vector_2d __skparam__direction; + int __skreturn; + __skparam__collider = __skadapter__to_sklib_sprite(collider); + __skparam__collidee = __skadapter__to_sklib_quad(collidee); + __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + __skreturn = __sklib__resolve_collision__sprite__quad_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); + return __skadapter__to_bool(__skreturn); + } + public static bool ResolveCollision(Sprite collider, Rectangle collidee, Vector2D direction) + { + __sklib_ptr __skparam__collider; + __sklib_rectangle __skparam__collidee; + __sklib_vector_2d __skparam__direction; + int __skreturn; + __skparam__collider = __skadapter__to_sklib_sprite(collider); + __skparam__collidee = __skadapter__to_sklib_rectangle(collidee); + __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + __skreturn = __sklib__resolve_collision__sprite__rectangle_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); return __skadapter__to_bool(__skreturn); } - public static bool BitmapRayCollision(Bitmap bmp, int cell, Point2D pt, Point2D origin, Vector2D heading) + public static bool ResolveCollision(Sprite collider, Sprite collidee, Vector2D direction) { - __sklib_ptr __skparam__bmp; - int __skparam__cell; - __sklib_point_2d __skparam__pt; - __sklib_point_2d __skparam__origin; - __sklib_vector_2d __skparam__heading; + __sklib_ptr __skparam__collider; + __sklib_ptr __skparam__collidee; + __sklib_vector_2d __skparam__direction; int __skreturn; - __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); - __skparam__cell = __skadapter__to_sklib_int(cell); - __skparam__pt = __skadapter__to_sklib_point_2d(pt); - __skparam__origin = __skadapter__to_sklib_point_2d(origin); - __skparam__heading = __skadapter__to_sklib_vector_2d(heading); - __skreturn = __sklib__bitmap_ray_collision__bitmap__int__point_2d_ref__point_2d_ref__vector_2d_ref(__skparam__bmp, __skparam__cell, __skparam__pt, __skparam__origin, __skparam__heading); + __skparam__collider = __skadapter__to_sklib_sprite(collider); + __skparam__collidee = __skadapter__to_sklib_sprite(collidee); + __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + __skreturn = __sklib__resolve_collision__sprite__sprite__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); return __skadapter__to_bool(__skreturn); } - public static bool BitmapRayCollision(Bitmap bmp, int cell, double x, double y, Point2D origin, Vector2D heading) + public static bool ResolveCollision(Sprite collider, Triangle collidee, Vector2D direction) { - __sklib_ptr __skparam__bmp; - int __skparam__cell; - double __skparam__x; - double __skparam__y; - __sklib_point_2d __skparam__origin; - __sklib_vector_2d __skparam__heading; + __sklib_ptr __skparam__collider; + __sklib_triangle __skparam__collidee; + __sklib_vector_2d __skparam__direction; int __skreturn; - __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); - __skparam__cell = __skadapter__to_sklib_int(cell); - __skparam__x = __skadapter__to_sklib_double(x); - __skparam__y = __skadapter__to_sklib_double(y); - __skparam__origin = __skadapter__to_sklib_point_2d(origin); - __skparam__heading = __skadapter__to_sklib_vector_2d(heading); - __skreturn = __sklib__bitmap_ray_collision__bitmap__int__double__double__point_2d_ref__vector_2d_ref(__skparam__bmp, __skparam__cell, __skparam__x, __skparam__y, __skparam__origin, __skparam__heading); + __skparam__collider = __skadapter__to_sklib_sprite(collider); + __skparam__collidee = __skadapter__to_sklib_triangle(collidee); + __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + __skreturn = __sklib__resolve_collision__sprite__triangle_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); return __skadapter__to_bool(__skreturn); } - public static bool BitmapRectangleCollision(Bitmap bmp, Point2D pt, Rectangle rect) + public static bool ResolveCollision(ref Triangle collider, Circle collidee, Vector2D direction) { - __sklib_ptr __skparam__bmp; - __sklib_point_2d __skparam__pt; - __sklib_rectangle __skparam__rect; + __sklib_triangle __skparam__collider; + __sklib_circle __skparam__collidee; + __sklib_vector_2d __skparam__direction; int __skreturn; - __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); - __skparam__pt = __skadapter__to_sklib_point_2d(pt); - __skparam__rect = __skadapter__to_sklib_rectangle(rect); - __skreturn = __sklib__bitmap_rectangle_collision__bitmap__point_2d_ref__rectangle_ref(__skparam__bmp, __skparam__pt, __skparam__rect); + __skparam__collider = __skadapter__to_sklib_triangle(collider); + __skparam__collidee = __skadapter__to_sklib_circle(collidee); + __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + __skreturn = __sklib__resolve_collision__triangle_ref__circle_ref__vector_2d_ref(ref __skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_triangle(__skparam__collider); return __skadapter__to_bool(__skreturn); } - public static bool BitmapRectangleCollision(Bitmap bmp, double x, double y, Rectangle rect) + public static bool ResolveCollision(ref Triangle collider, Quad collidee, Vector2D direction) { - __sklib_ptr __skparam__bmp; - double __skparam__x; - double __skparam__y; - __sklib_rectangle __skparam__rect; + __sklib_triangle __skparam__collider; + __sklib_quad __skparam__collidee; + __sklib_vector_2d __skparam__direction; int __skreturn; - __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); - __skparam__x = __skadapter__to_sklib_double(x); - __skparam__y = __skadapter__to_sklib_double(y); - __skparam__rect = __skadapter__to_sklib_rectangle(rect); - __skreturn = __sklib__bitmap_rectangle_collision__bitmap__double__double__rectangle_ref(__skparam__bmp, __skparam__x, __skparam__y, __skparam__rect); + __skparam__collider = __skadapter__to_sklib_triangle(collider); + __skparam__collidee = __skadapter__to_sklib_quad(collidee); + __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + __skreturn = __sklib__resolve_collision__triangle_ref__quad_ref__vector_2d_ref(ref __skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_triangle(__skparam__collider); return __skadapter__to_bool(__skreturn); } - public static bool BitmapRectangleCollision(Bitmap bmp, int cell, Matrix2D translation, Rectangle rect) + public static bool ResolveCollision(ref Triangle collider, Rectangle collidee, Vector2D direction) { - __sklib_ptr __skparam__bmp; - int __skparam__cell; - __sklib_matrix_2d __skparam__translation; - __sklib_rectangle __skparam__rect; + __sklib_triangle __skparam__collider; + __sklib_rectangle __skparam__collidee; + __sklib_vector_2d __skparam__direction; int __skreturn; - __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); - __skparam__cell = __skadapter__to_sklib_int(cell); - __skparam__translation = __skadapter__to_sklib_matrix_2d(translation); - __skparam__rect = __skadapter__to_sklib_rectangle(rect); - __skreturn = __sklib__bitmap_rectangle_collision__bitmap__int__matrix_2d_ref__rectangle_ref(__skparam__bmp, __skparam__cell, __skparam__translation, __skparam__rect); + __skparam__collider = __skadapter__to_sklib_triangle(collider); + __skparam__collidee = __skadapter__to_sklib_rectangle(collidee); + __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + __skreturn = __sklib__resolve_collision__triangle_ref__rectangle_ref__vector_2d_ref(ref __skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_triangle(__skparam__collider); return __skadapter__to_bool(__skreturn); } - public static bool BitmapRectangleCollision(Bitmap bmp, int cell, Point2D pt, Rectangle rect) + public static bool ResolveCollision(ref Triangle collider, Sprite collidee, Vector2D direction) { - __sklib_ptr __skparam__bmp; - int __skparam__cell; - __sklib_point_2d __skparam__pt; - __sklib_rectangle __skparam__rect; + __sklib_triangle __skparam__collider; + __sklib_ptr __skparam__collidee; + __sklib_vector_2d __skparam__direction; int __skreturn; - __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); - __skparam__cell = __skadapter__to_sklib_int(cell); - __skparam__pt = __skadapter__to_sklib_point_2d(pt); - __skparam__rect = __skadapter__to_sklib_rectangle(rect); - __skreturn = __sklib__bitmap_rectangle_collision__bitmap__int__point_2d_ref__rectangle_ref(__skparam__bmp, __skparam__cell, __skparam__pt, __skparam__rect); + __skparam__collider = __skadapter__to_sklib_triangle(collider); + __skparam__collidee = __skadapter__to_sklib_sprite(collidee); + __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + __skreturn = __sklib__resolve_collision__triangle_ref__sprite__vector_2d_ref(ref __skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_triangle(__skparam__collider); return __skadapter__to_bool(__skreturn); } - public static bool BitmapRectangleCollision(Bitmap bmp, int cell, double x, double y, Rectangle rect) + public static bool ResolveCollision(ref Triangle collider, Triangle collidee, Vector2D direction) { - __sklib_ptr __skparam__bmp; - int __skparam__cell; - double __skparam__x; - double __skparam__y; - __sklib_rectangle __skparam__rect; + __sklib_triangle __skparam__collider; + __sklib_triangle __skparam__collidee; + __sklib_vector_2d __skparam__direction; int __skreturn; - __skparam__bmp = __skadapter__to_sklib_bitmap(bmp); - __skparam__cell = __skadapter__to_sklib_int(cell); - __skparam__x = __skadapter__to_sklib_double(x); - __skparam__y = __skadapter__to_sklib_double(y); - __skparam__rect = __skadapter__to_sklib_rectangle(rect); - __skreturn = __sklib__bitmap_rectangle_collision__bitmap__int__double__double__rectangle_ref(__skparam__bmp, __skparam__cell, __skparam__x, __skparam__y, __skparam__rect); + __skparam__collider = __skadapter__to_sklib_triangle(collider); + __skparam__collidee = __skadapter__to_sklib_triangle(collidee); + __skparam__direction = __skadapter__to_sklib_vector_2d(direction); + __skreturn = __sklib__resolve_collision__triangle_ref__triangle_ref__vector_2d_ref(ref __skparam__collider, __skparam__collidee, __skparam__direction); + collider = __skadapter__to_triangle(__skparam__collider); return __skadapter__to_bool(__skreturn); } public static bool SpriteBitmapCollision(Sprite s, Bitmap bmp, double x, double y) @@ -6513,6 +7477,16 @@ public static bool SpriteBitmapCollision(Sprite s, Bitmap bmp, int cell, double __skreturn = __sklib__sprite_bitmap_collision__sprite__bitmap__int__double__double(__skparam__s, __skparam__bmp, __skparam__cell, __skparam__x, __skparam__y); return __skadapter__to_bool(__skreturn); } + public static bool SpriteCircleCollision(Sprite s, Circle c) + { + __sklib_ptr __skparam__s; + __sklib_circle __skparam__c; + int __skreturn; + __skparam__s = __skadapter__to_sklib_sprite(s); + __skparam__c = __skadapter__to_sklib_circle(c); + __skreturn = __sklib__sprite_circle_collision__sprite__circle_ref(__skparam__s, __skparam__c); + return __skadapter__to_bool(__skreturn); + } public static bool SpriteCollision(Sprite s1, Sprite s2) { __sklib_ptr __skparam__s1; @@ -6533,6 +7507,16 @@ public static bool SpritePointCollision(Sprite s, Point2D pt) __skreturn = __sklib__sprite_point_collision__sprite__point_2d_ref(__skparam__s, __skparam__pt); return __skadapter__to_bool(__skreturn); } + public static bool SpriteQuadCollision(Sprite s, Quad q) + { + __sklib_ptr __skparam__s; + __sklib_quad __skparam__q; + int __skreturn; + __skparam__s = __skadapter__to_sklib_sprite(s); + __skparam__q = __skadapter__to_sklib_quad(q); + __skreturn = __sklib__sprite_quad_collision__sprite__quad_ref(__skparam__s, __skparam__q); + return __skadapter__to_bool(__skreturn); + } public static bool SpriteRayCollision(Sprite s, Point2D origin, Vector2D heading) { __sklib_ptr __skparam__s; @@ -6555,6 +7539,16 @@ public static bool SpriteRectangleCollision(Sprite s, Rectangle rect) __skreturn = __sklib__sprite_rectangle_collision__sprite__rectangle_ref(__skparam__s, __skparam__rect); return __skadapter__to_bool(__skreturn); } + public static bool SpriteTriangleCollision(Sprite s, Triangle t) + { + __sklib_ptr __skparam__s; + __sklib_triangle __skparam__t; + int __skreturn; + __skparam__s = __skadapter__to_sklib_sprite(s); + __skparam__t = __skadapter__to_sklib_triangle(t); + __skreturn = __sklib__sprite_triangle_collision__sprite__triangle_ref(__skparam__s, __skparam__t); + return __skadapter__to_bool(__skreturn); + } public static int AlphaOf(Color c) { __sklib_color __skparam__c; @@ -10882,6 +11876,14 @@ public static string DecToHex(uint aDec) __skreturn = __sklib__dec_to_hex__unsigned_int(__skparam__a_dec); return __skadapter__to_string(__skreturn); } + public static string DecToIpv4(uint ip) + { + uint __skparam__ip; + __sklib_string __skreturn; + __skparam__ip = __skadapter__to_sklib_unsigned_int(ip); + __skreturn = __sklib__dec_to_ipv4__unsigned_int(__skparam__ip); + return __skadapter__to_string(__skreturn); + } public static Connection FetchNewConnection(ServerSocket server) { __sklib_ptr __skparam__server; @@ -10981,14 +11983,6 @@ public static string Ipv4ToHex(string aIP) __skadapter__free__sklib_string(ref __skparam__a_ip); return __skadapter__to_string(__skreturn); } - public static string Ipv4ToStr(uint ip) - { - uint __skparam__ip; - __sklib_string __skreturn; - __skparam__ip = __skadapter__to_sklib_unsigned_int(ip); - __skreturn = __sklib__ipv4_to_str__unsigned_int(__skparam__ip); - return __skadapter__to_string(__skreturn); - } public static bool IsConnectionOpen(Connection con) { __sklib_ptr __skparam__con; @@ -11807,6 +12801,36 @@ public static Quad QuadFrom(double xTopLeft, double yTopLeft, double xTopRight, __skreturn = __sklib__quad_from__double__double__double__double__double__double__double__double(__skparam__x_top_left, __skparam__y_top_left, __skparam__x_top_right, __skparam__y_top_right, __skparam__x_bottom_left, __skparam__y_bottom_left, __skparam__x_bottom_right, __skparam__y_bottom_right); return __skadapter__to_quad(__skreturn); } + public static bool QuadRayIntersection(Point2D origin, Vector2D heading, Quad q) + { + __sklib_point_2d __skparam__origin; + __sklib_vector_2d __skparam__heading; + __sklib_quad __skparam__q; + int __skreturn; + __skparam__origin = __skadapter__to_sklib_point_2d(origin); + __skparam__heading = __skadapter__to_sklib_vector_2d(heading); + __skparam__q = __skadapter__to_sklib_quad(q); + __skreturn = __sklib__quad_ray_intersection__point_2d_ref__vector_2d_ref__quad_ref(__skparam__origin, __skparam__heading, __skparam__q); + return __skadapter__to_bool(__skreturn); + } + public static bool QuadRayIntersection(Point2D origin, Vector2D heading, Quad q, ref Point2D hitPoint, ref double hitDistance) + { + __sklib_point_2d __skparam__origin; + __sklib_vector_2d __skparam__heading; + __sklib_quad __skparam__q; + __sklib_point_2d __skparam__hit_point; + double __skparam__hit_distance; + int __skreturn; + __skparam__origin = __skadapter__to_sklib_point_2d(origin); + __skparam__heading = __skadapter__to_sklib_vector_2d(heading); + __skparam__q = __skadapter__to_sklib_quad(q); + __skparam__hit_point = __skadapter__to_sklib_point_2d(hitPoint); + __skparam__hit_distance = __skadapter__to_sklib_double(hitDistance); + __skreturn = __sklib__quad_ray_intersection__point_2d_ref__vector_2d_ref__quad_ref__point_2d_ref__double_ref(__skparam__origin, __skparam__heading, __skparam__q, ref __skparam__hit_point, ref __skparam__hit_distance); + hitPoint = __skadapter__to_point_2d(__skparam__hit_point); + hitDistance = __skadapter__to_double(__skparam__hit_distance); + return __skadapter__to_bool(__skreturn); + } public static bool QuadsIntersect(Quad q1, Quad q2) { __sklib_quad __skparam__q1; @@ -11930,6 +12954,42 @@ public static void RaspiSetPwmRange(Pins pin, int range) __skparam__range = __skadapter__to_sklib_int(range); __sklib__raspi_set_pwm_range__pins__int(__skparam__pin, __skparam__range); } + public static int RaspiSpiClose(int handle) + { + int __skparam__handle; + int __skreturn; + __skparam__handle = __skadapter__to_sklib_int(handle); + __skreturn = __sklib__raspi_spi_close__int(__skparam__handle); + return __skadapter__to_int(__skreturn); + } + public static int RaspiSpiOpen(int channel, int speed, int spiFlags) + { + int __skparam__channel; + int __skparam__speed; + int __skparam__spi_flags; + int __skreturn; + __skparam__channel = __skadapter__to_sklib_int(channel); + __skparam__speed = __skadapter__to_sklib_int(speed); + __skparam__spi_flags = __skadapter__to_sklib_int(spiFlags); + __skreturn = __sklib__raspi_spi_open__int__int__int(__skparam__channel, __skparam__speed, __skparam__spi_flags); + return __skadapter__to_int(__skreturn); + } + public static int RaspiSpiTransfer(int handle, string sendbuf, string recvbuf, int count) + { + int __skparam__handle; + __sklib_string __skparam__sendBuf; + __sklib_string __skparam__recvBuf; + int __skparam__count; + int __skreturn; + __skparam__handle = __skadapter__to_sklib_int(handle); + __skparam__sendBuf = __skadapter__to_sklib_string(sendbuf); + __skparam__recvBuf = __skadapter__to_sklib_string(recvbuf); + __skparam__count = __skadapter__to_sklib_int(count); + __skreturn = __sklib__raspi_spi_transfer__int__string__string__int(__skparam__handle, __skparam__sendBuf, __skparam__recvBuf, __skparam__count); + __skadapter__free__sklib_string(ref __skparam__sendBuf); + __skadapter__free__sklib_string(ref __skparam__recvBuf); + return __skadapter__to_int(__skreturn); + } public static void RaspiWrite(Pins pin, PinValues value) { int __skparam__pin; @@ -12450,6 +13510,16 @@ public static Point2D RectangleCenter(Rectangle rect) __skreturn = __sklib__rectangle_center__rectangle_ref(__skparam__rect); return __skadapter__to_point_2d(__skreturn); } + public static bool RectangleCircleIntersect(Rectangle rect, Circle c) + { + __sklib_rectangle __skparam__rect; + __sklib_circle __skparam__c; + int __skreturn; + __skparam__rect = __skadapter__to_sklib_rectangle(rect); + __skparam__c = __skadapter__to_sklib_circle(c); + __skreturn = __sklib__rectangle_circle_intersect__rectangle_ref__circle_ref(__skparam__rect, __skparam__c); + return __skadapter__to_bool(__skreturn); + } public static Rectangle RectangleFrom(Point2D pt, double width, double height) { __sklib_point_2d __skparam__pt; @@ -12504,6 +13574,36 @@ public static Rectangle RectangleOffsetBy(Rectangle rect, Vector2D offset) __skreturn = __sklib__rectangle_offset_by__rectangle_ref__vector_2d_ref(__skparam__rect, __skparam__offset); return __skadapter__to_rectangle(__skreturn); } + public static bool RectangleRayIntersection(Point2D origin, Vector2D heading, Rectangle rect) + { + __sklib_point_2d __skparam__origin; + __sklib_vector_2d __skparam__heading; + __sklib_rectangle __skparam__rect; + int __skreturn; + __skparam__origin = __skadapter__to_sklib_point_2d(origin); + __skparam__heading = __skadapter__to_sklib_vector_2d(heading); + __skparam__rect = __skadapter__to_sklib_rectangle(rect); + __skreturn = __sklib__rectangle_ray_intersection__point_2d_ref__vector_2d_ref__rectangle_ref(__skparam__origin, __skparam__heading, __skparam__rect); + return __skadapter__to_bool(__skreturn); + } + public static bool RectangleRayIntersection(Point2D origin, Vector2D heading, Rectangle rect, ref Point2D hitPoint, ref double hitDistance) + { + __sklib_point_2d __skparam__origin; + __sklib_vector_2d __skparam__heading; + __sklib_rectangle __skparam__rect; + __sklib_point_2d __skparam__hit_point; + double __skparam__hit_distance; + int __skreturn; + __skparam__origin = __skadapter__to_sklib_point_2d(origin); + __skparam__heading = __skadapter__to_sklib_vector_2d(heading); + __skparam__rect = __skadapter__to_sklib_rectangle(rect); + __skparam__hit_point = __skadapter__to_sklib_point_2d(hitPoint); + __skparam__hit_distance = __skadapter__to_sklib_double(hitDistance); + __skreturn = __sklib__rectangle_ray_intersection__point_2d_ref__vector_2d_ref__rectangle_ref__point_2d_ref__double_ref(__skparam__origin, __skparam__heading, __skparam__rect, ref __skparam__hit_point, ref __skparam__hit_distance); + hitPoint = __skadapter__to_point_2d(__skparam__hit_point); + hitDistance = __skadapter__to_double(__skparam__hit_distance); + return __skadapter__to_bool(__skreturn); + } public static double RectangleRight(Rectangle rect) { __sklib_rectangle __skparam__rect; @@ -15178,6 +16278,46 @@ public static Triangle TriangleFrom(double x1, double y1, double x2, double y2, __skreturn = __sklib__triangle_from__double__double__double__double__double__double(__skparam__x1, __skparam__y1, __skparam__x2, __skparam__y2, __skparam__x3, __skparam__y3); return __skadapter__to_triangle(__skreturn); } + public static bool TriangleQuadIntersect(Triangle tri, Quad q) + { + __sklib_triangle __skparam__tri; + __sklib_quad __skparam__q; + int __skreturn; + __skparam__tri = __skadapter__to_sklib_triangle(tri); + __skparam__q = __skadapter__to_sklib_quad(q); + __skreturn = __sklib__triangle_quad_intersect__triangle_ref__quad_ref(__skparam__tri, __skparam__q); + return __skadapter__to_bool(__skreturn); + } + public static bool TriangleRayIntersection(Point2D origin, Vector2D heading, Triangle tri) + { + __sklib_point_2d __skparam__origin; + __sklib_vector_2d __skparam__heading; + __sklib_triangle __skparam__tri; + int __skreturn; + __skparam__origin = __skadapter__to_sklib_point_2d(origin); + __skparam__heading = __skadapter__to_sklib_vector_2d(heading); + __skparam__tri = __skadapter__to_sklib_triangle(tri); + __skreturn = __sklib__triangle_ray_intersection__point_2d_ref__vector_2d_ref__triangle_ref(__skparam__origin, __skparam__heading, __skparam__tri); + return __skadapter__to_bool(__skreturn); + } + public static bool TriangleRayIntersection(Point2D origin, Vector2D heading, Triangle tri, ref Point2D hitPoint, ref double hitDistance) + { + __sklib_point_2d __skparam__origin; + __sklib_vector_2d __skparam__heading; + __sklib_triangle __skparam__tri; + __sklib_point_2d __skparam__hit_point; + double __skparam__hit_distance; + int __skreturn; + __skparam__origin = __skadapter__to_sklib_point_2d(origin); + __skparam__heading = __skadapter__to_sklib_vector_2d(heading); + __skparam__tri = __skadapter__to_sklib_triangle(tri); + __skparam__hit_point = __skadapter__to_sklib_point_2d(hitPoint); + __skparam__hit_distance = __skadapter__to_sklib_double(hitDistance); + __skreturn = __sklib__triangle_ray_intersection__point_2d_ref__vector_2d_ref__triangle_ref__point_2d_ref__double_ref(__skparam__origin, __skparam__heading, __skparam__tri, ref __skparam__hit_point, ref __skparam__hit_distance); + hitPoint = __skadapter__to_point_2d(__skparam__hit_point); + hitDistance = __skadapter__to_double(__skparam__hit_distance); + return __skadapter__to_bool(__skreturn); + } public static bool TriangleRectangleIntersect(Triangle tri, Rectangle rect) { __sklib_triangle __skparam__tri; @@ -18250,6 +19390,12 @@ public bool BitmapCollision(Bitmap bmp, int cell, double x, double y) } + public bool CircleCollision(Circle c) + { + return SplashKit.SpriteCircleCollision(this, c); + } + + public bool SpriteCollision(Sprite s2) { return SplashKit.SpriteCollision(this, s2); @@ -18262,6 +19408,12 @@ public bool PointCollision(Point2D pt) } + public bool QuadCollision(Quad q) + { + return SplashKit.SpriteQuadCollision(this, q); + } + + public bool RayCollision(Point2D origin, Vector2D heading) { return SplashKit.SpriteRayCollision(this, origin, heading); @@ -18274,6 +19426,12 @@ public bool RectangleCollision(Rectangle rect) } + public bool TriangleCollision(Triangle t) + { + return SplashKit.SpriteTriangleCollision(this, t); + } + + public void Draw(Vector2D offset) { SplashKit.DrawSprite(this, offset); @@ -19205,12 +20363,36 @@ public bool PointCollision(int cell, double bmpX, double bmpY, double x, double } + public bool QuadCollision(Point2D pt, Quad q) + { + return SplashKit.BitmapQuadCollision(this, pt, q); + } + + + public bool QuadCollision(double x, double y, Quad q) + { + return SplashKit.BitmapQuadCollision(this, x, y, q); + } + + public bool QuadCollision(int cell, Matrix2D translation, Quad q) { return SplashKit.BitmapQuadCollision(this, cell, translation, q); } + public bool QuadCollision(int cell, Point2D pt, Quad q) + { + return SplashKit.BitmapQuadCollision(this, cell, pt, q); + } + + + public bool QuadCollision(int cell, double x, double y, Quad q) + { + return SplashKit.BitmapQuadCollision(this, cell, x, y, q); + } + + public bool RayCollision(Point2D pt, Point2D origin, Vector2D heading) { return SplashKit.BitmapRayCollision(this, pt, origin, heading); @@ -19271,6 +20453,36 @@ public bool RectangleCollision(int cell, double x, double y, Rectangle rect) } + public bool TriangleCollision(Point2D pt, Triangle tri) + { + return SplashKit.BitmapTriangleCollision(this, pt, tri); + } + + + public bool TriangleCollision(double x, double y, Triangle tri) + { + return SplashKit.BitmapTriangleCollision(this, x, y, tri); + } + + + public bool TriangleCollision(int cell, Matrix2D translation, Triangle tri) + { + return SplashKit.BitmapTriangleCollision(this, cell, translation, tri); + } + + + public bool TriangleCollision(int cell, Point2D pt, Triangle tri) + { + return SplashKit.BitmapTriangleCollision(this, cell, pt, tri); + } + + + public bool TriangleCollision(int cell, double x, double y, Triangle tri) + { + return SplashKit.BitmapTriangleCollision(this, cell, x, y, tri); + } + + public void DrawEllipse(Color clr, Rectangle rect) { SplashKit.DrawEllipseOnBitmap(this, clr, rect); diff --git a/generated/docs/api.json b/generated/docs/api.json index 4fcb232a..cb2ec10e 100644 --- a/generated/docs/api.json +++ b/generated/docs/api.json @@ -14674,6 +14674,70 @@ ] } }, + { + "signature": "bool circle_quad_intersect(const circle &c,const quad &q);", + "name": "circle_quad_intersect", + "method_name": null, + "unique_global_name": "circle_quad_intersect", + "unique_method_name": null, + "suffix_name": null, + "description": "Detects if a circle intersects with a quad.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the circle and quad intersect, false otherwise", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "c": { + "type": "circle", + "description": "The circle to test", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "q": { + "type": "quad", + "description": "The quad to test", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "group": "geometry", + "static": "geometry" + }, + "signatures": { + "python": [ + "def circle_quad_intersect(c, q):" + ], + "csharp": [ + "public static bool SplashKit.CircleQuadIntersect(Circle c, Quad q);" + ], + "cpp": [ + "bool circle_quad_intersect(const circle &c, const quad &q)" + ], + "pascal": [ + "function CircleQuadIntersect(const c: Circle; const q: Quad): Boolean" + ] + } + }, { "signature": "float circle_radius(const circle c);", "name": "circle_radius", @@ -14725,6 +14789,187 @@ ] } }, + { + "signature": "bool circle_ray_intersection(const point_2d &origin,const vector_2d &heading,const circle &circ);", + "name": "circle_ray_intersection", + "method_name": null, + "unique_global_name": "circle_ray_intersection", + "unique_method_name": null, + "suffix_name": null, + "description": "Detects if a ray intersects a circle.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the ray intersects the circle, false otherwise", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "origin": { + "type": "point_2d", + "description": "The starting point of the ray", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "heading": { + "type": "vector_2d", + "description": "The direction of the ray as a vector", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "circ": { + "type": "circle", + "description": "The circle to check for intersection", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "group": "geometry", + "static": "geometry" + }, + "signatures": { + "python": [ + "def circle_ray_intersection(origin, heading, circ):" + ], + "csharp": [ + "public static bool SplashKit.CircleRayIntersection(Point2D origin, Vector2D heading, Circle circ);" + ], + "cpp": [ + "bool circle_ray_intersection(const point_2d &origin, const vector_2d &heading, const circle &circ)" + ], + "pascal": [ + "function CircleRayIntersection(const origin: Point2D; const heading: Vector2D; const circ: Circle): Boolean" + ] + } + }, + { + "signature": "bool circle_ray_intersection(const point_2d &origin,const vector_2d &heading,const circle &circ,point_2d &hit_point,double &hit_distance);", + "name": "circle_ray_intersection", + "method_name": null, + "unique_global_name": "circle_ray_intersection_with_hit_point_and_distance", + "unique_method_name": null, + "suffix_name": null, + "description": "Detects if a ray intersects a circle. If an intersection is found, the\n`hit_point` and `hit_distance` are set to the point of intersection and the\ndistance from the ray's origin to the intersection point. If the ray's `origin`\nis contained within the circle, `hit_point` is set to the `origin` and `hit_distance`\nis set to 0. If no intersection is found, `hit_point` and `hit_distance` are not modified.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the ray intersects the circle, false otherwise", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "origin": { + "type": "point_2d", + "description": "The starting point of the ray", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "heading": { + "type": "vector_2d", + "description": "The direction of the ray as a vector", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "circ": { + "type": "circle", + "description": "The circle to check for intersection", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "hit_point": { + "type": "point_2d", + "description": "The point to set to where the ray intersects the circle", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "hit_distance": { + "type": "double", + "description": "The double to set to the distance from the ray's origin to\nthe intersection point", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "with_hit_point_and_distance", + "group": "geometry", + "static": "geometry" + }, + "signatures": { + "python": [ + "def circle_ray_intersection_with_hit_point_and_distance(origin, heading, circ, hit_point, hit_distance):" + ], + "csharp": [ + "public static bool SplashKit.CircleRayIntersection(Point2D origin, Vector2D heading, Circle circ, ref Point2D hitPoint, ref double hitDistance);" + ], + "cpp": [ + "bool circle_ray_intersection(const point_2d &origin, const vector_2d &heading, const circle &circ, point_2d &hit_point, double &hit_distance)" + ], + "pascal": [ + "function CircleRayIntersection(const origin: Point2D; const heading: Vector2D; const circ: Circle; var hitPoint: Point2D; var hitDistance: Double): Boolean" + ] + } + }, { "signature": "bool circle_triangle_intersect(const circle &c,const triangle &tri);", "name": "circle_triangle_intersect", @@ -18786,6 +19031,187 @@ ] } }, + { + "signature": "bool quad_ray_intersection(const point_2d &origin,const vector_2d &heading,const quad &q);", + "name": "quad_ray_intersection", + "method_name": null, + "unique_global_name": "quad_ray_intersection", + "unique_method_name": null, + "suffix_name": null, + "description": "Detects if a ray intersects a quad.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the ray intersects the quad, false otherwise", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "origin": { + "type": "point_2d", + "description": "The starting point of the ray", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "heading": { + "type": "vector_2d", + "description": "The direction of the ray as a vector", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "q": { + "type": "quad", + "description": "The quad to check for intersection", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "group": "geometry", + "static": "geometry" + }, + "signatures": { + "python": [ + "def quad_ray_intersection(origin, heading, q):" + ], + "csharp": [ + "public static bool SplashKit.QuadRayIntersection(Point2D origin, Vector2D heading, Quad q);" + ], + "cpp": [ + "bool quad_ray_intersection(const point_2d &origin, const vector_2d &heading, const quad &q)" + ], + "pascal": [ + "function QuadRayIntersection(const origin: Point2D; const heading: Vector2D; const q: Quad): Boolean" + ] + } + }, + { + "signature": "bool quad_ray_intersection(const point_2d &origin,const vector_2d &heading,const quad &q,point_2d &hit_point,double &hit_distance);", + "name": "quad_ray_intersection", + "method_name": null, + "unique_global_name": "quad_ray_intersection_with_hit_point_and_distance", + "unique_method_name": null, + "suffix_name": null, + "description": "Detects if a ray intersects a quad. If an intersection is found, the\n`hit_point` and `hit_distance` are set to the point of intersection and the\ndistance from the ray's origin to the intersection point. If the ray's `origin`\nis contained within the quad, `hit_point` is set to the `origin` and `hit_distance`\nis set to 0. If no intersection is found, `hit_point` and `hit_distance` are not modified.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the ray intersects the quad, false otherwise", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "origin": { + "type": "point_2d", + "description": "The starting point of the ray", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "heading": { + "type": "vector_2d", + "description": "The direction of the ray as a vector", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "q": { + "type": "quad", + "description": "The quad to check for intersection", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "hit_point": { + "type": "point_2d", + "description": "The point to set to where the ray intersects the quad", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "hit_distance": { + "type": "double", + "description": "The double to set to the distance from the ray's origin to\nthe intersection point", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "with_hit_point_and_distance", + "group": "geometry", + "static": "geometry" + }, + "signatures": { + "python": [ + "def quad_ray_intersection_with_hit_point_and_distance(origin, heading, q, hit_point, hit_distance):" + ], + "csharp": [ + "public static bool SplashKit.QuadRayIntersection(Point2D origin, Vector2D heading, Quad q, ref Point2D hitPoint, ref double hitDistance);" + ], + "cpp": [ + "bool quad_ray_intersection(const point_2d &origin, const vector_2d &heading, const quad &q, point_2d &hit_point, double &hit_distance)" + ], + "pascal": [ + "function QuadRayIntersection(const origin: Point2D; const heading: Vector2D; const q: Quad; var hitPoint: Point2D; var hitDistance: Double): Boolean" + ] + } + }, { "signature": "bool quads_intersect(const quad &q1,const quad &q2);", "name": "quads_intersect", @@ -19416,6 +19842,70 @@ ] } }, + { + "signature": "bool rectangle_circle_intersect(const rectangle &rect,const circle &c);", + "name": "rectangle_circle_intersect", + "method_name": null, + "unique_global_name": "rectangle_circle_intersect", + "unique_method_name": null, + "suffix_name": null, + "description": "Detects if a rectangle intersects with a circle.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the rectangle and circle intersect, false otherwise", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "rect": { + "type": "rectangle", + "description": "The rectangle to test", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "c": { + "type": "circle", + "description": "The circle to test", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "group": "geometry", + "static": "geometry" + }, + "signatures": { + "python": [ + "def rectangle_circle_intersect(rect, c):" + ], + "csharp": [ + "public static bool SplashKit.RectangleCircleIntersect(Rectangle rect, Circle c);" + ], + "cpp": [ + "bool rectangle_circle_intersect(const rectangle &rect, const circle &c)" + ], + "pascal": [ + "function RectangleCircleIntersect(const rect: Rectangle; const c: Circle): Boolean" + ] + } + }, { "signature": "rectangle rectangle_from(const point_2d pt,const double width,const double height);", "name": "rectangle_from", @@ -19764,6 +20254,187 @@ ] } }, + { + "signature": "bool rectangle_ray_intersection(const point_2d &origin,const vector_2d &heading,const rectangle &rect);", + "name": "rectangle_ray_intersection", + "method_name": null, + "unique_global_name": "rectangle_ray_intersection", + "unique_method_name": null, + "suffix_name": null, + "description": "Detects if a ray intersects a rectangle.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the ray intersects the rectangle, false otherwise", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "origin": { + "type": "point_2d", + "description": "The starting point of the ray", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "heading": { + "type": "vector_2d", + "description": "The direction of the ray as a vector", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "rect": { + "type": "rectangle", + "description": "The rectangle to check for intersection", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "group": "geometry", + "static": "geometry" + }, + "signatures": { + "python": [ + "def rectangle_ray_intersection(origin, heading, rect):" + ], + "csharp": [ + "public static bool SplashKit.RectangleRayIntersection(Point2D origin, Vector2D heading, Rectangle rect);" + ], + "cpp": [ + "bool rectangle_ray_intersection(const point_2d &origin, const vector_2d &heading, const rectangle &rect)" + ], + "pascal": [ + "function RectangleRayIntersection(const origin: Point2D; const heading: Vector2D; const rect: Rectangle): Boolean" + ] + } + }, + { + "signature": "bool rectangle_ray_intersection(const point_2d &origin,const vector_2d &heading,const rectangle &rect,point_2d &hit_point,double &hit_distance);", + "name": "rectangle_ray_intersection", + "method_name": null, + "unique_global_name": "rectangle_ray_intersection_with_hit_point_and_distance", + "unique_method_name": null, + "suffix_name": null, + "description": "Detects if a ray intersects a rectangle. If an intersection is found, the\n`hit_point` and `hit_distance` are set to the point of intersection and the\ndistance from the ray's origin to the intersection point. If the ray's `origin`\nis contained within the rectangle, `hit_point` is set to the `origin` and `hit_distance`\nis set to 0. If no intersection is found, `hit_point` and `hit_distance` are not modified.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the ray intersects the rectangle, false otherwise", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "origin": { + "type": "point_2d", + "description": "The starting point of the ray", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "heading": { + "type": "vector_2d", + "description": "The direction of the ray as a vector", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "rect": { + "type": "rectangle", + "description": "The rectangle to check for intersection", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "hit_point": { + "type": "point_2d", + "description": "The point to set to where the ray intersects the rectangle", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "hit_distance": { + "type": "double", + "description": "The double to set to the distance from the ray's origin to\nthe intersection point", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "with_hit_point_and_distance", + "group": "geometry", + "static": "geometry" + }, + "signatures": { + "python": [ + "def rectangle_ray_intersection_with_hit_point_and_distance(origin, heading, rect, hit_point, hit_distance):" + ], + "csharp": [ + "public static bool SplashKit.RectangleRayIntersection(Point2D origin, Vector2D heading, Rectangle rect, ref Point2D hitPoint, ref double hitDistance);" + ], + "cpp": [ + "bool rectangle_ray_intersection(const point_2d &origin, const vector_2d &heading, const rectangle &rect, point_2d &hit_point, double &hit_distance)" + ], + "pascal": [ + "function RectangleRayIntersection(const origin: Point2D; const heading: Vector2D; const rect: Rectangle; var hitPoint: Point2D; var hitDistance: Double): Boolean" + ] + } + }, { "signature": "double rectangle_right(const rectangle &rect);", "name": "rectangle_right", @@ -20226,6 +20897,251 @@ ] } }, + { + "signature": "bool triangle_quad_intersect(const triangle &tri,const quad &q);", + "name": "triangle_quad_intersect", + "method_name": null, + "unique_global_name": "triangle_quad_intersect", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns true if the triangle intersects with the quad.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the triangle and quad intersect", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "tri": { + "type": "triangle", + "description": "The triangle to test", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "q": { + "type": "quad", + "description": "The quad to test", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "group": "geometry", + "static": "geometry" + }, + "signatures": { + "python": [ + "def triangle_quad_intersect(tri, q):" + ], + "csharp": [ + "public static bool SplashKit.TriangleQuadIntersect(Triangle tri, Quad q);" + ], + "cpp": [ + "bool triangle_quad_intersect(const triangle &tri, const quad &q)" + ], + "pascal": [ + "function TriangleQuadIntersect(const tri: Triangle; const q: Quad): Boolean" + ] + } + }, + { + "signature": "bool triangle_ray_intersection(const point_2d &origin,const vector_2d &heading,const triangle &tri);", + "name": "triangle_ray_intersection", + "method_name": null, + "unique_global_name": "triangle_ray_intersection", + "unique_method_name": null, + "suffix_name": null, + "description": "Detects if a ray intersects a triangle.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the ray intersects the triangle, false otherwise", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "origin": { + "type": "point_2d", + "description": "The starting point of the ray", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "heading": { + "type": "vector_2d", + "description": "The direction of the ray as a vector", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "tri": { + "type": "triangle", + "description": "The triangle to check for intersection", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "group": "geometry", + "static": "geometry" + }, + "signatures": { + "python": [ + "def triangle_ray_intersection(origin, heading, tri):" + ], + "csharp": [ + "public static bool SplashKit.TriangleRayIntersection(Point2D origin, Vector2D heading, Triangle tri);" + ], + "cpp": [ + "bool triangle_ray_intersection(const point_2d &origin, const vector_2d &heading, const triangle &tri)" + ], + "pascal": [ + "function TriangleRayIntersection(const origin: Point2D; const heading: Vector2D; const tri: Triangle): Boolean" + ] + } + }, + { + "signature": "bool triangle_ray_intersection(const point_2d &origin,const vector_2d &heading,const triangle &tri,point_2d &hit_point,double &hit_distance);", + "name": "triangle_ray_intersection", + "method_name": null, + "unique_global_name": "triangle_ray_intersection_with_hit_point_and_distance", + "unique_method_name": null, + "suffix_name": null, + "description": "Detects if a ray intersects a triangle. If an intersection is found, the\n`hit_point` and `hit_distance` are set to the point of intersection and the\ndistance from the ray's origin to the intersection point. If the ray's `origin`\nis contained within the triangle, `hit_point` is set to the `origin` and `hit_distance`\nis set to 0. If no intersection is found, `hit_point` and `hit_distance` are not modified.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the ray intersects the triangle, false otherwise", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "origin": { + "type": "point_2d", + "description": "The starting point of the ray", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "heading": { + "type": "vector_2d", + "description": "The direction of the ray as a vector", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "tri": { + "type": "triangle", + "description": "The triangle to check for intersection", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "hit_point": { + "type": "point_2d", + "description": "The point to set to where the ray intersects the triangle", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "hit_distance": { + "type": "double", + "description": "The double to set to the distance from the ray's origin to\nthe intersection point", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "with_hit_point_and_distance", + "group": "geometry", + "static": "geometry" + }, + "signatures": { + "python": [ + "def triangle_ray_intersection_with_hit_point_and_distance(origin, heading, tri, hit_point, hit_distance):" + ], + "csharp": [ + "public static bool SplashKit.TriangleRayIntersection(Point2D origin, Vector2D heading, Triangle tri, ref Point2D hitPoint, ref double hitDistance);" + ], + "cpp": [ + "bool triangle_ray_intersection(const point_2d &origin, const vector_2d &heading, const triangle &tri, point_2d &hit_point, double &hit_distance)" + ], + "pascal": [ + "function TriangleRayIntersection(const origin: Point2D; const heading: Vector2D; const tri: Triangle; var hitPoint: Point2D; var hitDistance: Double): Boolean" + ] + } + }, { "signature": "bool triangle_rectangle_intersect(const triangle &tri,const rectangle &rect);", "name": "triangle_rectangle_intersect", @@ -55040,6 +55956,57 @@ ] } }, + { + "signature": "string dec_to_ipv4(unsigned int ip);", + "name": "dec_to_ipv4", + "method_name": null, + "unique_global_name": "dec_to_ipv4", + "unique_method_name": null, + "suffix_name": null, + "description": "Decodes the supplied unsigned 32-bit integer into its ipv4 address form\ne.g. 2130706433 into 127.0.0.1", + "brief": "Decodes an integer into its ipv4 address representation", + "return": { + "type": "string", + "description": "ipv4 address string in X.X.X.X format", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "ip": { + "type": "unsigned int", + "description": "integer to be decoded", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "group": "networking", + "static": "networking" + }, + "signatures": { + "python": [ + "def dec_to_ipv4(ip):" + ], + "csharp": [ + "public static string SplashKit.DecToIpv4(uint ip);" + ], + "cpp": [ + "string dec_to_ipv4(unsigned int ip)" + ], + "pascal": [ + "function DecToIpv4(ip: Cardinal): String" + ] + } + }, { "signature": "connection fetch_new_connection(server_socket server);", "name": "fetch_new_connection", @@ -55643,57 +56610,6 @@ ] } }, - { - "signature": "string ipv4_to_str(unsigned int ip);", - "name": "ipv4_to_str", - "method_name": null, - "unique_global_name": "ipv4_to_str", - "unique_method_name": null, - "suffix_name": null, - "description": "Decodes the supplied unsigned 32 bit integer into it's ipv4 address form\ne.g. 2130706433 into 127.0.0.1", - "brief": "Decodes an integer into it's ipv4 address representation", - "return": { - "type": "string", - "description": "ipv4 address string in X.X.X.X format", - "is_pointer": false, - "is_reference": false, - "is_vector": false, - "type_parameter": null - }, - "parameters": { - "ip": { - "type": "unsigned int", - "description": "integer to be decoded", - "is_pointer": false, - "is_const": false, - "is_reference": false, - "is_array": false, - "array_dimension_sizes": [ - - ], - "is_vector": false, - "type_parameter": null - } - }, - "attributes": { - "group": "networking", - "static": "networking" - }, - "signatures": { - "python": [ - "def ipv4_to_str(ip):" - ], - "csharp": [ - "public static string SplashKit.Ipv4ToStr(uint ip);" - ], - "cpp": [ - "string ipv4_to_str(unsigned int ip)" - ], - "pascal": [ - "function Ipv4ToStr(ip: Cardinal): String" - ] - } - }, { "signature": "bool is_connection_open(connection con);", "name": "is_connection_open", @@ -60857,7 +61773,7 @@ "description": "", "functions": [ { - "signature": "bool bitmap_circle_collision(bitmap bmp,const point_2d& pt,const circle& circ);", + "signature": "bool bitmap_circle_collision(bitmap bmp,const point_2d &pt,const circle &circ);", "name": "bitmap_circle_collision", "method_name": "circle_collision", "unique_global_name": "bitmap_circle_collision_at_point", @@ -60939,7 +61855,7 @@ } }, { - "signature": "bool bitmap_circle_collision(bitmap bmp,double x,double y,const circle& circ);", + "signature": "bool bitmap_circle_collision(bitmap bmp,double x,double y,const circle &circ);", "name": "bitmap_circle_collision", "method_name": "circle_collision", "unique_global_name": "bitmap_circle_collision", @@ -61033,7 +61949,7 @@ } }, { - "signature": "bool bitmap_circle_collision(bitmap bmp,int cell,const matrix_2d& translation,const circle& circ);", + "signature": "bool bitmap_circle_collision(bitmap bmp,int cell,const matrix_2d &translation,const circle &circ);", "name": "bitmap_circle_collision", "method_name": "circle_collision", "unique_global_name": "bitmap_circle_collision_for_cell_with_translation", @@ -61128,7 +62044,7 @@ } }, { - "signature": "bool bitmap_circle_collision(bitmap bmp,int cell,const point_2d& pt,const circle& circ);", + "signature": "bool bitmap_circle_collision(bitmap bmp,int cell,const point_2d &pt,const circle &circ);", "name": "bitmap_circle_collision", "method_name": "circle_collision", "unique_global_name": "bitmap_circle_collision_for_cell_at_point", @@ -61223,7 +62139,7 @@ } }, { - "signature": "bool bitmap_circle_collision(bitmap bmp,int cell,double x,double y,const circle& circ);", + "signature": "bool bitmap_circle_collision(bitmap bmp,int cell,double x,double y,const circle &circ);", "name": "bitmap_circle_collision", "method_name": "circle_collision", "unique_global_name": "bitmap_circle_collision_for_cell", @@ -61935,7 +62851,7 @@ } }, { - "signature": "bool bitmap_point_collision(bitmap bmp,const matrix_2d& translation,const point_2d& pt);", + "signature": "bool bitmap_point_collision(bitmap bmp,const matrix_2d &translation,const point_2d &pt);", "name": "bitmap_point_collision", "method_name": "point_collision", "unique_global_name": "bitmap_point_collision_with_translation", @@ -62017,7 +62933,7 @@ } }, { - "signature": "bool bitmap_point_collision(bitmap bmp,const point_2d &bmp_pt,const point_2d& pt);", + "signature": "bool bitmap_point_collision(bitmap bmp,const point_2d &bmp_pt,const point_2d &pt);", "name": "bitmap_point_collision", "method_name": "point_collision", "unique_global_name": "bitmap_point_collision_at_point", @@ -62105,7 +63021,7 @@ "unique_global_name": "bitmap_point_collision", "unique_method_name": "bitmap.point_collision", "suffix_name": null, - "description": "Tests if a bitmap drawn at x,y would draw a pixel at the passed in point. Use \nto check collisions between a point and a bitmap.", + "description": "Tests if a bitmap drawn at x,y would draw a pixel at the passed in point. Use\nto check collisions between a point and a bitmap.", "brief": null, "return": { "type": "bool", @@ -62206,7 +63122,7 @@ } }, { - "signature": "bool bitmap_point_collision(bitmap bmp,int cell,const matrix_2d& translation,const point_2d& pt);", + "signature": "bool bitmap_point_collision(bitmap bmp,int cell,const matrix_2d &translation,const point_2d &pt);", "name": "bitmap_point_collision", "method_name": "point_collision", "unique_global_name": "bitmap_point_collision_for_cell_with_translation", @@ -62301,7 +63217,7 @@ } }, { - "signature": "bool bitmap_point_collision(bitmap bmp,int cell,const point_2d &bmp_pt,const point_2d& pt);", + "signature": "bool bitmap_point_collision(bitmap bmp,int cell,const point_2d &bmp_pt,const point_2d &pt);", "name": "bitmap_point_collision", "method_name": "point_collision", "unique_global_name": "bitmap_point_collision_for_cell_at_point", @@ -62517,13 +63433,13 @@ } }, { - "signature": "bool bitmap_quad_collision(bitmap bmp,int cell,const matrix_2d &translation,const quad &q);", + "signature": "bool bitmap_quad_collision(bitmap bmp,const point_2d &pt,const quad &q);", "name": "bitmap_quad_collision", "method_name": "quad_collision", - "unique_global_name": "bitmap_quad_collision_for_cell_with_translation", - "unique_method_name": "bitmap.quad_collision_for_cell_with_translation", + "unique_global_name": "bitmap_quad_collision_at_point", + "unique_method_name": "bitmap.quad_collision_at_point", "suffix_name": null, - "description": "Tests if a bitmap cell drawn using a passed in translation, will\nintersect with a quad. You can use this to detect collisions between\nbitmaps and quads.", + "description": "Tests if a bitmap drawn at `pt` would intersect with a quad.", "brief": null, "return": { "type": "bool", @@ -62547,22 +63463,9 @@ "is_vector": false, "type_parameter": null }, - "cell": { - "type": "int", - "description": "The cell of the bitmap to check", - "is_pointer": false, - "is_const": false, - "is_reference": false, - "is_array": false, - "array_dimension_sizes": [ - - ], - "is_vector": false, - "type_parameter": null - }, - "translation": { - "type": "matrix_2d", - "description": "The matrix used to transfrom the bitmap when drawing", + "pt": { + "type": "point_2d", + "description": "The location where the bitmap is drawn", "is_pointer": false, "is_const": true, "is_reference": true, @@ -62590,39 +63493,39 @@ "attributes": { "class": "bitmap", "method": "quad_collision", - "suffix": "for_cell_with_translation", + "suffix": "at_point", "group": "physics", "static": "collisions", "self": "bmp" }, "signatures": { "python": [ - "def bitmap_quad_collision_for_cell_with_translation(bmp, cell, translation, q):" + "def bitmap_quad_collision_at_point(bmp, pt, q):" ], "csharp": [ - "public bool Bitmap.QuadCollision(int cell, Matrix2D translation, Quad q);", - "public static bool SplashKit.BitmapQuadCollision(Bitmap bmp, int cell, Matrix2D translation, Quad q);" + "public bool Bitmap.QuadCollision(Point2D pt, Quad q);", + "public static bool SplashKit.BitmapQuadCollision(Bitmap bmp, Point2D pt, Quad q);" ], "cpp": [ - "bool bitmap_quad_collision(bitmap bmp, int cell, const matrix_2d &translation, const quad &q)" + "bool bitmap_quad_collision(bitmap bmp, const point_2d &pt, const quad &q)" ], "pascal": [ - "function BitmapQuadCollision(bmp: Bitmap; cell: Integer; const translation: Matrix2D; const q: Quad): Boolean" + "function BitmapQuadCollision(bmp: Bitmap; const pt: Point2D; const q: Quad): Boolean" ] } }, { - "signature": "bool bitmap_ray_collision(bitmap bmp,const point_2d& pt,const point_2d& origin,const vector_2d& heading);", - "name": "bitmap_ray_collision", - "method_name": "ray_collision", - "unique_global_name": "bitmap_ray_collision_at_point", - "unique_method_name": "bitmap.ray_collision_at_point", + "signature": "bool bitmap_quad_collision(bitmap bmp,double x,double y,const quad &q);", + "name": "bitmap_quad_collision", + "method_name": "quad_collision", + "unique_global_name": "bitmap_quad_collision", + "unique_method_name": "bitmap.quad_collision", "suffix_name": null, - "description": "Tests if a bitmap drawn at `pt` would intersect with a ray.", + "description": "Tests if a bitmap drawn at `x`, `y` would intersect with a quad.", "brief": null, "return": { "type": "bool", - "description": "True if a drawn pixel in the cell of the bitmap will\nintersect with the ray when drawn.", + "description": "True if a drawn pixel in the bitmap will\nintersect with `q` when drawn.", "is_pointer": false, "is_reference": false, "is_vector": false, @@ -62642,12 +63545,12 @@ "is_vector": false, "type_parameter": null }, - "pt": { - "type": "point_2d", - "description": "The location where the bitmap is drawn", + "x": { + "type": "double", + "description": "The x location where the bitmap is drawn", "is_pointer": false, - "is_const": true, - "is_reference": true, + "is_const": false, + "is_reference": false, "is_array": false, "array_dimension_sizes": [ @@ -62655,12 +63558,12 @@ "is_vector": false, "type_parameter": null }, - "origin": { - "type": "point_2d", - "description": "The origin of the ray", + "y": { + "type": "double", + "description": "The y location where the bitmap is drawn", "is_pointer": false, - "is_const": true, - "is_reference": true, + "is_const": false, + "is_reference": false, "is_array": false, "array_dimension_sizes": [ @@ -62668,9 +63571,9 @@ "is_vector": false, "type_parameter": null }, - "heading": { - "type": "vector_2d", - "description": "The heading of the ray", + "q": { + "type": "quad", + "description": "The quad to test", "is_pointer": false, "is_const": true, "is_reference": true, @@ -62684,40 +63587,39 @@ }, "attributes": { "class": "bitmap", - "method": "ray_collision", - "suffix": "at_point", + "method": "quad_collision", "group": "physics", "static": "collisions", "self": "bmp" }, "signatures": { "python": [ - "def bitmap_ray_collision_at_point(bmp, pt, origin, heading):" + "def bitmap_quad_collision(bmp, x, y, q):" ], "csharp": [ - "public bool Bitmap.RayCollision(Point2D pt, Point2D origin, Vector2D heading);", - "public static bool SplashKit.BitmapRayCollision(Bitmap bmp, Point2D pt, Point2D origin, Vector2D heading);" + "public bool Bitmap.QuadCollision(double x, double y, Quad q);", + "public static bool SplashKit.BitmapQuadCollision(Bitmap bmp, double x, double y, Quad q);" ], "cpp": [ - "bool bitmap_ray_collision(bitmap bmp, const point_2d &pt, const point_2d &origin, const vector_2d &heading)" + "bool bitmap_quad_collision(bitmap bmp, double x, double y, const quad &q)" ], "pascal": [ - "function BitmapRayCollision(bmp: Bitmap; const pt: Point2D; const origin: Point2D; const heading: Vector2D): Boolean" + "function BitmapQuadCollision(bmp: Bitmap; x: Double; y: Double; const q: Quad): Boolean" ] } }, { - "signature": "bool bitmap_ray_collision(bitmap bmp,double x,double y,const point_2d& origin,const vector_2d& heading);", - "name": "bitmap_ray_collision", - "method_name": "ray_collision", - "unique_global_name": "bitmap_ray_collision", - "unique_method_name": "bitmap.ray_collision", + "signature": "bool bitmap_quad_collision(bitmap bmp,int cell,const matrix_2d &translation,const quad &q);", + "name": "bitmap_quad_collision", + "method_name": "quad_collision", + "unique_global_name": "bitmap_quad_collision_for_cell_with_translation", + "unique_method_name": "bitmap.quad_collision_for_cell_with_translation", "suffix_name": null, - "description": "Tests if a bitmap drawn at `x`, `y` would intersect with a ray.", + "description": "Tests if a bitmap cell drawn using a passed in translation, will\nintersect with a quad. You can use this to detect collisions between\nbitmaps and quads.", "brief": null, "return": { "type": "bool", - "description": "True if a drawn pixel in the bitmap will\nintersect with the ray when drawn.", + "description": "True if a drawn pixel in the cell of the bitmap will\nintersect with `q` when drawn.", "is_pointer": false, "is_reference": false, "is_vector": false, @@ -62737,22 +63639,9 @@ "is_vector": false, "type_parameter": null }, - "x": { - "type": "double", - "description": "The x location where the bitmap is drawn", - "is_pointer": false, - "is_const": false, - "is_reference": false, - "is_array": false, - "array_dimension_sizes": [ - - ], - "is_vector": false, - "type_parameter": null - }, - "y": { - "type": "double", - "description": "The y location where the bitmap is drawn", + "cell": { + "type": "int", + "description": "The cell of the bitmap to check", "is_pointer": false, "is_const": false, "is_reference": false, @@ -62763,9 +63652,9 @@ "is_vector": false, "type_parameter": null }, - "origin": { - "type": "point_2d", - "description": "The origin of the ray", + "translation": { + "type": "matrix_2d", + "description": "The matrix used to transfrom the bitmap when drawing", "is_pointer": false, "is_const": true, "is_reference": true, @@ -62776,9 +63665,9 @@ "is_vector": false, "type_parameter": null }, - "heading": { - "type": "vector_2d", - "description": "The heading of the ray", + "q": { + "type": "quad", + "description": "The quad to test", "is_pointer": false, "is_const": true, "is_reference": true, @@ -62792,39 +63681,40 @@ }, "attributes": { "class": "bitmap", - "method": "ray_collision", + "method": "quad_collision", + "suffix": "for_cell_with_translation", "group": "physics", "static": "collisions", "self": "bmp" }, "signatures": { "python": [ - "def bitmap_ray_collision(bmp, x, y, origin, heading):" + "def bitmap_quad_collision_for_cell_with_translation(bmp, cell, translation, q):" ], "csharp": [ - "public bool Bitmap.RayCollision(double x, double y, Point2D origin, Vector2D heading);", - "public static bool SplashKit.BitmapRayCollision(Bitmap bmp, double x, double y, Point2D origin, Vector2D heading);" + "public bool Bitmap.QuadCollision(int cell, Matrix2D translation, Quad q);", + "public static bool SplashKit.BitmapQuadCollision(Bitmap bmp, int cell, Matrix2D translation, Quad q);" ], "cpp": [ - "bool bitmap_ray_collision(bitmap bmp, double x, double y, const point_2d &origin, const vector_2d &heading)" + "bool bitmap_quad_collision(bitmap bmp, int cell, const matrix_2d &translation, const quad &q)" ], "pascal": [ - "function BitmapRayCollision(bmp: Bitmap; x: Double; y: Double; const origin: Point2D; const heading: Vector2D): Boolean" + "function BitmapQuadCollision(bmp: Bitmap; cell: Integer; const translation: Matrix2D; const q: Quad): Boolean" ] } }, { - "signature": "bool bitmap_ray_collision(bitmap bmp,int cell,const matrix_2d& translation,const point_2d& origin,const vector_2d& heading);", - "name": "bitmap_ray_collision", - "method_name": "ray_collision", - "unique_global_name": "bitmap_ray_collision_for_cell_with_translation", - "unique_method_name": "bitmap.ray_collision_for_cell_with_translation", + "signature": "bool bitmap_quad_collision(bitmap bmp,int cell,const point_2d &pt,const quad &q);", + "name": "bitmap_quad_collision", + "method_name": "quad_collision", + "unique_global_name": "bitmap_quad_collision_for_cell_at_point", + "unique_method_name": "bitmap.quad_collision_for_cell_at_point", "suffix_name": null, - "description": "Tests if a bitmap cell drawn using a passed in translation, will\nintersect with a ray. You can use this to detect collisions between\nbitmaps and rays.", + "description": "Tests if a bitmap cell drawn at `pt` would intersect with a quad.", "brief": null, "return": { "type": "bool", - "description": "True if a drawn pixel in the cell of the bitmap will\nintersect with the ray when drawn.", + "description": "True if a drawn pixel in the cell of the bitmap will\nintersect with `q` when drawn.", "is_pointer": false, "is_reference": false, "is_vector": false, @@ -62857,22 +63747,9 @@ "is_vector": false, "type_parameter": null }, - "translation": { - "type": "matrix_2d", - "description": "The matrix used to transfrom the bitmap when drawing", - "is_pointer": false, - "is_const": true, - "is_reference": true, - "is_array": false, - "array_dimension_sizes": [ - - ], - "is_vector": false, - "type_parameter": null - }, - "origin": { + "pt": { "type": "point_2d", - "description": "The origin of the ray", + "description": "The location where the bitmap is drawn", "is_pointer": false, "is_const": true, "is_reference": true, @@ -62883,9 +63760,9 @@ "is_vector": false, "type_parameter": null }, - "heading": { - "type": "vector_2d", - "description": "The heading of the ray", + "q": { + "type": "quad", + "description": "The quad to test", "is_pointer": false, "is_const": true, "is_reference": true, @@ -62899,40 +63776,458 @@ }, "attributes": { "class": "bitmap", - "method": "ray_collision", - "suffix": "for_cell_with_translation", + "method": "quad_collision", + "suffix": "for_cell_at_point", "group": "physics", "static": "collisions", "self": "bmp" }, "signatures": { "python": [ - "def bitmap_ray_collision_for_cell_with_translation(bmp, cell, translation, origin, heading):" + "def bitmap_quad_collision_for_cell_at_point(bmp, cell, pt, q):" ], "csharp": [ - "public bool Bitmap.RayCollision(int cell, Matrix2D translation, Point2D origin, Vector2D heading);", - "public static bool SplashKit.BitmapRayCollision(Bitmap bmp, int cell, Matrix2D translation, Point2D origin, Vector2D heading);" + "public bool Bitmap.QuadCollision(int cell, Point2D pt, Quad q);", + "public static bool SplashKit.BitmapQuadCollision(Bitmap bmp, int cell, Point2D pt, Quad q);" ], "cpp": [ - "bool bitmap_ray_collision(bitmap bmp, int cell, const matrix_2d &translation, const point_2d &origin, const vector_2d &heading)" + "bool bitmap_quad_collision(bitmap bmp, int cell, const point_2d &pt, const quad &q)" ], "pascal": [ - "function BitmapRayCollision(bmp: Bitmap; cell: Integer; const translation: Matrix2D; const origin: Point2D; const heading: Vector2D): Boolean" + "function BitmapQuadCollision(bmp: Bitmap; cell: Integer; const pt: Point2D; const q: Quad): Boolean" ] } }, { - "signature": "bool bitmap_ray_collision(bitmap bmp,int cell,const point_2d& pt,const point_2d& origin,const vector_2d& heading);", - "name": "bitmap_ray_collision", - "method_name": "ray_collision", - "unique_global_name": "bitmap_ray_collision_for_cell_at_point", - "unique_method_name": "bitmap.ray_collision_for_cell_at_point", + "signature": "bool bitmap_quad_collision(bitmap bmp,int cell,double x,double y,const quad &q);", + "name": "bitmap_quad_collision", + "method_name": "quad_collision", + "unique_global_name": "bitmap_quad_collision_for_cell", + "unique_method_name": "bitmap.quad_collision_for_cell", "suffix_name": null, - "description": "Tests if a bitmap cell drawn at `pt` would intersect with a ray.", + "description": "Tests if a bitmap cell drawn at `x`, `y` would intersect with a quad.", "brief": null, "return": { "type": "bool", - "description": "True if a drawn pixel in the cell of the bitmap will\nintersect with the ray when drawn.", + "description": "True if a drawn pixel in the bitmap will\nintersect with `q` when drawn.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "bmp": { + "type": "bitmap", + "description": "The bitmap to test", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "cell": { + "type": "int", + "description": "The cell of the bitmap to check", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "x": { + "type": "double", + "description": "The x location where the bitmap is drawn", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "y": { + "type": "double", + "description": "The y location where the bitmap is drawn", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "q": { + "type": "quad", + "description": "The quad to test", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "bitmap", + "method": "quad_collision", + "suffix": "for_cell", + "group": "physics", + "static": "collisions", + "self": "bmp" + }, + "signatures": { + "python": [ + "def bitmap_quad_collision_for_cell(bmp, cell, x, y, q):" + ], + "csharp": [ + "public bool Bitmap.QuadCollision(int cell, double x, double y, Quad q);", + "public static bool SplashKit.BitmapQuadCollision(Bitmap bmp, int cell, double x, double y, Quad q);" + ], + "cpp": [ + "bool bitmap_quad_collision(bitmap bmp, int cell, double x, double y, const quad &q)" + ], + "pascal": [ + "function BitmapQuadCollision(bmp: Bitmap; cell: Integer; x: Double; y: Double; const q: Quad): Boolean" + ] + } + }, + { + "signature": "bool bitmap_ray_collision(bitmap bmp,const point_2d &pt,const point_2d &origin,const vector_2d &heading);", + "name": "bitmap_ray_collision", + "method_name": "ray_collision", + "unique_global_name": "bitmap_ray_collision_at_point", + "unique_method_name": "bitmap.ray_collision_at_point", + "suffix_name": null, + "description": "Tests if a bitmap drawn at `pt` would intersect with a ray.", + "brief": null, + "return": { + "type": "bool", + "description": "True if a drawn pixel in the cell of the bitmap will\nintersect with the ray when drawn.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "bmp": { + "type": "bitmap", + "description": "The bitmap to test", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "pt": { + "type": "point_2d", + "description": "The location where the bitmap is drawn", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "origin": { + "type": "point_2d", + "description": "The origin of the ray", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "heading": { + "type": "vector_2d", + "description": "The heading of the ray", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "bitmap", + "method": "ray_collision", + "suffix": "at_point", + "group": "physics", + "static": "collisions", + "self": "bmp" + }, + "signatures": { + "python": [ + "def bitmap_ray_collision_at_point(bmp, pt, origin, heading):" + ], + "csharp": [ + "public bool Bitmap.RayCollision(Point2D pt, Point2D origin, Vector2D heading);", + "public static bool SplashKit.BitmapRayCollision(Bitmap bmp, Point2D pt, Point2D origin, Vector2D heading);" + ], + "cpp": [ + "bool bitmap_ray_collision(bitmap bmp, const point_2d &pt, const point_2d &origin, const vector_2d &heading)" + ], + "pascal": [ + "function BitmapRayCollision(bmp: Bitmap; const pt: Point2D; const origin: Point2D; const heading: Vector2D): Boolean" + ] + } + }, + { + "signature": "bool bitmap_ray_collision(bitmap bmp,double x,double y,const point_2d &origin,const vector_2d &heading);", + "name": "bitmap_ray_collision", + "method_name": "ray_collision", + "unique_global_name": "bitmap_ray_collision", + "unique_method_name": "bitmap.ray_collision", + "suffix_name": null, + "description": "Tests if a bitmap drawn at `x`, `y` would intersect with a ray.", + "brief": null, + "return": { + "type": "bool", + "description": "True if a drawn pixel in the bitmap will\nintersect with the ray when drawn.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "bmp": { + "type": "bitmap", + "description": "The bitmap to test", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "x": { + "type": "double", + "description": "The x location where the bitmap is drawn", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "y": { + "type": "double", + "description": "The y location where the bitmap is drawn", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "origin": { + "type": "point_2d", + "description": "The origin of the ray", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "heading": { + "type": "vector_2d", + "description": "The heading of the ray", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "bitmap", + "method": "ray_collision", + "group": "physics", + "static": "collisions", + "self": "bmp" + }, + "signatures": { + "python": [ + "def bitmap_ray_collision(bmp, x, y, origin, heading):" + ], + "csharp": [ + "public bool Bitmap.RayCollision(double x, double y, Point2D origin, Vector2D heading);", + "public static bool SplashKit.BitmapRayCollision(Bitmap bmp, double x, double y, Point2D origin, Vector2D heading);" + ], + "cpp": [ + "bool bitmap_ray_collision(bitmap bmp, double x, double y, const point_2d &origin, const vector_2d &heading)" + ], + "pascal": [ + "function BitmapRayCollision(bmp: Bitmap; x: Double; y: Double; const origin: Point2D; const heading: Vector2D): Boolean" + ] + } + }, + { + "signature": "bool bitmap_ray_collision(bitmap bmp,int cell,const matrix_2d &translation,const point_2d &origin,const vector_2d &heading);", + "name": "bitmap_ray_collision", + "method_name": "ray_collision", + "unique_global_name": "bitmap_ray_collision_for_cell_with_translation", + "unique_method_name": "bitmap.ray_collision_for_cell_with_translation", + "suffix_name": null, + "description": "Tests if a bitmap cell drawn using a passed in translation, will\nintersect with a ray. You can use this to detect collisions between\nbitmaps and rays.", + "brief": null, + "return": { + "type": "bool", + "description": "True if a drawn pixel in the cell of the bitmap will\nintersect with the ray when drawn.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "bmp": { + "type": "bitmap", + "description": "The bitmap to test", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "cell": { + "type": "int", + "description": "The cell of the bitmap to check", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "translation": { + "type": "matrix_2d", + "description": "The matrix used to transfrom the bitmap when drawing", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "origin": { + "type": "point_2d", + "description": "The origin of the ray", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "heading": { + "type": "vector_2d", + "description": "The heading of the ray", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "bitmap", + "method": "ray_collision", + "suffix": "for_cell_with_translation", + "group": "physics", + "static": "collisions", + "self": "bmp" + }, + "signatures": { + "python": [ + "def bitmap_ray_collision_for_cell_with_translation(bmp, cell, translation, origin, heading):" + ], + "csharp": [ + "public bool Bitmap.RayCollision(int cell, Matrix2D translation, Point2D origin, Vector2D heading);", + "public static bool SplashKit.BitmapRayCollision(Bitmap bmp, int cell, Matrix2D translation, Point2D origin, Vector2D heading);" + ], + "cpp": [ + "bool bitmap_ray_collision(bitmap bmp, int cell, const matrix_2d &translation, const point_2d &origin, const vector_2d &heading)" + ], + "pascal": [ + "function BitmapRayCollision(bmp: Bitmap; cell: Integer; const translation: Matrix2D; const origin: Point2D; const heading: Vector2D): Boolean" + ] + } + }, + { + "signature": "bool bitmap_ray_collision(bitmap bmp,int cell,const point_2d &pt,const point_2d &origin,const vector_2d &heading);", + "name": "bitmap_ray_collision", + "method_name": "ray_collision", + "unique_global_name": "bitmap_ray_collision_for_cell_at_point", + "unique_method_name": "bitmap.ray_collision_for_cell_at_point", + "suffix_name": null, + "description": "Tests if a bitmap cell drawn at `pt` would intersect with a ray.", + "brief": null, + "return": { + "type": "bool", + "description": "True if a drawn pixel in the cell of the bitmap will\nintersect with the ray when drawn.", "is_pointer": false, "is_reference": false, "is_vector": false, @@ -63030,7 +64325,7 @@ } }, { - "signature": "bool bitmap_ray_collision(bitmap bmp,int cell,double x,double y,const point_2d& origin,const vector_2d& heading);", + "signature": "bool bitmap_ray_collision(bitmap bmp,int cell,double x,double y,const point_2d &origin,const vector_2d &heading);", "name": "bitmap_ray_collision", "method_name": "ray_collision", "unique_global_name": "bitmap_ray_collision_for_cell", @@ -63151,7 +64446,7 @@ } }, { - "signature": "bool bitmap_rectangle_collision(bitmap bmp,const point_2d& pt,const rectangle& rect);", + "signature": "bool bitmap_rectangle_collision(bitmap bmp,const point_2d &pt,const rectangle &rect);", "name": "bitmap_rectangle_collision", "method_name": "rectangle_collision", "unique_global_name": "bitmap_rectangle_collision_at_point", @@ -63233,7 +64528,7 @@ } }, { - "signature": "bool bitmap_rectangle_collision(bitmap bmp,double x,double y,const rectangle& rect);", + "signature": "bool bitmap_rectangle_collision(bitmap bmp,double x,double y,const rectangle &rect);", "name": "bitmap_rectangle_collision", "method_name": "rectangle_collision", "unique_global_name": "bitmap_rectangle_collision", @@ -63327,7 +64622,7 @@ } }, { - "signature": "bool bitmap_rectangle_collision(bitmap bmp,int cell,const matrix_2d& translation,const rectangle& rect);", + "signature": "bool bitmap_rectangle_collision(bitmap bmp,int cell,const matrix_2d &translation,const rectangle &rect);", "name": "bitmap_rectangle_collision", "method_name": "rectangle_collision", "unique_global_name": "bitmap_rectangle_collision_for_cell_with_translation", @@ -63422,7 +64717,7 @@ } }, { - "signature": "bool bitmap_rectangle_collision(bitmap bmp,int cell,const point_2d& pt,const rectangle& rect);", + "signature": "bool bitmap_rectangle_collision(bitmap bmp,int cell,const point_2d &pt,const rectangle &rect);", "name": "bitmap_rectangle_collision", "method_name": "rectangle_collision", "unique_global_name": "bitmap_rectangle_collision_for_cell_at_point", @@ -63517,7 +64812,7 @@ } }, { - "signature": "bool bitmap_rectangle_collision(bitmap bmp,int cell,double x,double y,const rectangle& rect);", + "signature": "bool bitmap_rectangle_collision(bitmap bmp,int cell,double x,double y,const rectangle &rect);", "name": "bitmap_rectangle_collision", "method_name": "rectangle_collision", "unique_global_name": "bitmap_rectangle_collision_for_cell", @@ -63625,36 +64920,23 @@ } }, { - "signature": "bool sprite_bitmap_collision(sprite s,bitmap bmp,double x,double y);", - "name": "sprite_bitmap_collision", - "method_name": "bitmap_collision", - "unique_global_name": "sprite_bitmap_collision", - "unique_method_name": "sprite.bitmap_collision", + "signature": "bool bitmap_triangle_collision(bitmap bmp,const point_2d &pt,const triangle &tri);", + "name": "bitmap_triangle_collision", + "method_name": "triangle_collision", + "unique_global_name": "bitmap_triangle_collision_at_point", + "unique_method_name": "bitmap.triangle_collision_at_point", "suffix_name": null, - "description": "Tests if a sprite will collide with a bitmap drawn at the indicated\nlocation.", + "description": "Tests if a bitmap drawn at `pt` would intersect with a triangle.", "brief": null, "return": { "type": "bool", - "description": "True if the sprite collides with the bitmap when drawn\nat the indicated location.", + "description": "True if a drawn pixel in the cell of the bitmap will\nintersect with `tri` when drawn.", "is_pointer": false, "is_reference": false, "is_vector": false, "type_parameter": null }, "parameters": { - "s": { - "type": "sprite", - "description": "The sprite to test", - "is_pointer": false, - "is_const": false, - "is_reference": false, - "is_array": false, - "array_dimension_sizes": [ - - ], - "is_vector": false, - "type_parameter": null - }, "bmp": { "type": "bitmap", "description": "The bitmap to test", @@ -63668,12 +64950,12 @@ "is_vector": false, "type_parameter": null }, - "x": { - "type": "double", - "description": "The x location where the bitmap is drawn", + "pt": { + "type": "point_2d", + "description": "The location where the bitmap is drawn", "is_pointer": false, - "is_const": false, - "is_reference": false, + "is_const": true, + "is_reference": true, "is_array": false, "array_dimension_sizes": [ @@ -63681,12 +64963,12 @@ "is_vector": false, "type_parameter": null }, - "y": { - "type": "double", - "description": "The y location where the bitmap is drawn", + "tri": { + "type": "triangle", + "description": "The triangle to test", "is_pointer": false, - "is_const": false, - "is_reference": false, + "is_const": true, + "is_reference": true, "is_array": false, "array_dimension_sizes": [ @@ -63696,49 +64978,50 @@ } }, "attributes": { - "class": "sprite", - "method": "bitmap_collision", + "class": "bitmap", + "method": "triangle_collision", + "suffix": "at_point", "group": "physics", "static": "collisions", - "self": "s" + "self": "bmp" }, "signatures": { "python": [ - "def sprite_bitmap_collision(s, bmp, x, y):" + "def bitmap_triangle_collision_at_point(bmp, pt, tri):" ], "csharp": [ - "public bool Sprite.BitmapCollision(Bitmap bmp, double x, double y);", - "public static bool SplashKit.SpriteBitmapCollision(Sprite s, Bitmap bmp, double x, double y);" + "public bool Bitmap.TriangleCollision(Point2D pt, Triangle tri);", + "public static bool SplashKit.BitmapTriangleCollision(Bitmap bmp, Point2D pt, Triangle tri);" ], "cpp": [ - "bool sprite_bitmap_collision(sprite s, bitmap bmp, double x, double y)" + "bool bitmap_triangle_collision(bitmap bmp, const point_2d &pt, const triangle &tri)" ], "pascal": [ - "function SpriteBitmapCollision(s: Sprite; bmp: Bitmap; x: Double; y: Double): Boolean" + "function BitmapTriangleCollision(bmp: Bitmap; const pt: Point2D; const tri: Triangle): Boolean" ] } }, { - "signature": "bool sprite_bitmap_collision(sprite s,bitmap bmp,int cell,const point_2d &pt);", - "name": "sprite_bitmap_collision", - "method_name": "bitmap_collision", - "unique_global_name": "sprite_bitmap_collision_with_cell_at_point", - "unique_method_name": "sprite.bitmap_collision_with_cell_at_point", + "signature": "bool bitmap_triangle_collision(bitmap bmp,double x,double y,const triangle &tri);", + "name": "bitmap_triangle_collision", + "method_name": "triangle_collision", + "unique_global_name": "bitmap_triangle_collision", + "unique_method_name": "bitmap.triangle_collision", "suffix_name": null, - "description": "Tests if a sprite will collide with a bitmap drawn at the indicated\nlocation.", + "description": "Tests if a bitmap drawn at `x`, `y` would intersect with a triangle.", "brief": null, "return": { "type": "bool", - "description": "True if the sprite collides with the bitmap cell when drawn\nat the indicated location.", + "description": "True if a drawn pixel in the bitmap will\nintersect with `tri` when drawn.", "is_pointer": false, "is_reference": false, "is_vector": false, "type_parameter": null }, "parameters": { - "s": { - "type": "sprite", - "description": "The sprite to test", + "bmp": { + "type": "bitmap", + "description": "The bitmap to test", "is_pointer": false, "is_const": false, "is_reference": false, @@ -63749,9 +65032,9 @@ "is_vector": false, "type_parameter": null }, - "bmp": { - "type": "bitmap", - "description": "The bitmap to test", + "x": { + "type": "double", + "description": "The x location where the bitmap is drawn", "is_pointer": false, "is_const": false, "is_reference": false, @@ -63762,9 +65045,9 @@ "is_vector": false, "type_parameter": null }, - "cell": { - "type": "int", - "description": "The cell of the bitmap to check", + "y": { + "type": "double", + "description": "The y location where the bitmap is drawn", "is_pointer": false, "is_const": false, "is_reference": false, @@ -63775,9 +65058,9 @@ "is_vector": false, "type_parameter": null }, - "pt": { - "type": "point_2d", - "description": "The point where the bitmap is drawn", + "tri": { + "type": "triangle", + "description": "The triangle to test", "is_pointer": false, "is_const": true, "is_reference": true, @@ -63790,50 +65073,4136 @@ } }, "attributes": { - "class": "sprite", - "method": "bitmap_collision", - "suffix": "with_cell_at_point", + "class": "bitmap", + "method": "triangle_collision", "group": "physics", "static": "collisions", - "self": "s" + "self": "bmp" }, "signatures": { "python": [ - "def sprite_bitmap_collision_with_cell_at_point(s, bmp, cell, pt):" + "def bitmap_triangle_collision(bmp, x, y, tri):" ], "csharp": [ - "public bool Sprite.BitmapCollision(Bitmap bmp, int cell, Point2D pt);", - "public static bool SplashKit.SpriteBitmapCollision(Sprite s, Bitmap bmp, int cell, Point2D pt);" + "public bool Bitmap.TriangleCollision(double x, double y, Triangle tri);", + "public static bool SplashKit.BitmapTriangleCollision(Bitmap bmp, double x, double y, Triangle tri);" ], "cpp": [ - "bool sprite_bitmap_collision(sprite s, bitmap bmp, int cell, const point_2d &pt)" + "bool bitmap_triangle_collision(bitmap bmp, double x, double y, const triangle &tri)" ], "pascal": [ - "function SpriteBitmapCollision(s: Sprite; bmp: Bitmap; cell: Integer; const pt: Point2D): Boolean" + "function BitmapTriangleCollision(bmp: Bitmap; x: Double; y: Double; const tri: Triangle): Boolean" ] } }, { - "signature": "bool sprite_bitmap_collision(sprite s,bitmap bmp,int cell,double x,double y);", - "name": "sprite_bitmap_collision", - "method_name": "bitmap_collision", - "unique_global_name": "sprite_bitmap_collision_with_cell", - "unique_method_name": "sprite.bitmap_collision_with_cell", + "signature": "bool bitmap_triangle_collision(bitmap bmp,int cell,const matrix_2d &translation,const triangle &tri);", + "name": "bitmap_triangle_collision", + "method_name": "triangle_collision", + "unique_global_name": "bitmap_triangle_collision_for_cell_with_translation", + "unique_method_name": "bitmap.triangle_collision_for_cell_with_translation", "suffix_name": null, - "description": "Tests if a sprite will collide with a bitmap drawn at the indicated\nlocation.", + "description": "Tests if a bitmap cell drawn using a passed in translation, will\nintersect with a triangle. You can use this to detect collisions between\nbitmaps and triangles.", "brief": null, "return": { "type": "bool", - "description": "True if the sprite collides with the bitmap cell when drawn\nat the indicated location.", + "description": "True if a drawn pixel in the cell of the bitmap will\nintersect with `tri` when drawn.", "is_pointer": false, "is_reference": false, "is_vector": false, "type_parameter": null }, "parameters": { - "s": { - "type": "sprite", - "description": "The sprite to test", + "bmp": { + "type": "bitmap", + "description": "The bitmap to test", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "cell": { + "type": "int", + "description": "The cell of the bitmap to check", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "translation": { + "type": "matrix_2d", + "description": "The matrix used to transfrom the bitmap when drawing", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "tri": { + "type": "triangle", + "description": "The triangle to test", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "bitmap", + "method": "triangle_collision", + "suffix": "for_cell_with_translation", + "group": "physics", + "static": "collisions", + "self": "bmp" + }, + "signatures": { + "python": [ + "def bitmap_triangle_collision_for_cell_with_translation(bmp, cell, translation, tri):" + ], + "csharp": [ + "public bool Bitmap.TriangleCollision(int cell, Matrix2D translation, Triangle tri);", + "public static bool SplashKit.BitmapTriangleCollision(Bitmap bmp, int cell, Matrix2D translation, Triangle tri);" + ], + "cpp": [ + "bool bitmap_triangle_collision(bitmap bmp, int cell, const matrix_2d &translation, const triangle &tri)" + ], + "pascal": [ + "function BitmapTriangleCollision(bmp: Bitmap; cell: Integer; const translation: Matrix2D; const tri: Triangle): Boolean" + ] + } + }, + { + "signature": "bool bitmap_triangle_collision(bitmap bmp,int cell,const point_2d &pt,const triangle &tri);", + "name": "bitmap_triangle_collision", + "method_name": "triangle_collision", + "unique_global_name": "bitmap_triangle_collision_for_cell_at_point", + "unique_method_name": "bitmap.triangle_collision_for_cell_at_point", + "suffix_name": null, + "description": "Tests if a bitmap cell drawn at `pt` would intersect with a triangle.", + "brief": null, + "return": { + "type": "bool", + "description": "True if a drawn pixel in the cell of the bitmap will\nintersect with `tri` when drawn.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "bmp": { + "type": "bitmap", + "description": "The bitmap to test", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "cell": { + "type": "int", + "description": "The cell of the bitmap to check", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "pt": { + "type": "point_2d", + "description": "The location where the bitmap is drawn", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "tri": { + "type": "triangle", + "description": "The triangle to test", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "bitmap", + "method": "triangle_collision", + "suffix": "for_cell_at_point", + "group": "physics", + "static": "collisions", + "self": "bmp" + }, + "signatures": { + "python": [ + "def bitmap_triangle_collision_for_cell_at_point(bmp, cell, pt, tri):" + ], + "csharp": [ + "public bool Bitmap.TriangleCollision(int cell, Point2D pt, Triangle tri);", + "public static bool SplashKit.BitmapTriangleCollision(Bitmap bmp, int cell, Point2D pt, Triangle tri);" + ], + "cpp": [ + "bool bitmap_triangle_collision(bitmap bmp, int cell, const point_2d &pt, const triangle &tri)" + ], + "pascal": [ + "function BitmapTriangleCollision(bmp: Bitmap; cell: Integer; const pt: Point2D; const tri: Triangle): Boolean" + ] + } + }, + { + "signature": "bool bitmap_triangle_collision(bitmap bmp,int cell,double x,double y,const triangle &tri);", + "name": "bitmap_triangle_collision", + "method_name": "triangle_collision", + "unique_global_name": "bitmap_triangle_collision_for_cell", + "unique_method_name": "bitmap.triangle_collision_for_cell", + "suffix_name": null, + "description": "Tests if a bitmap cell drawn at `x`, `y` would intersect with a triangle.", + "brief": null, + "return": { + "type": "bool", + "description": "True if a drawn pixel in the bitmap will\nintersect with `tri` when drawn.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "bmp": { + "type": "bitmap", + "description": "The bitmap to test", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "cell": { + "type": "int", + "description": "The cell of the bitmap to check", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "x": { + "type": "double", + "description": "The x location where the bitmap is drawn", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "y": { + "type": "double", + "description": "The y location where the bitmap is drawn", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "tri": { + "type": "triangle", + "description": "The triangle to test", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "bitmap", + "method": "triangle_collision", + "suffix": "for_cell", + "group": "physics", + "static": "collisions", + "self": "bmp" + }, + "signatures": { + "python": [ + "def bitmap_triangle_collision_for_cell(bmp, cell, x, y, tri):" + ], + "csharp": [ + "public bool Bitmap.TriangleCollision(int cell, double x, double y, Triangle tri);", + "public static bool SplashKit.BitmapTriangleCollision(Bitmap bmp, int cell, double x, double y, Triangle tri);" + ], + "cpp": [ + "bool bitmap_triangle_collision(bitmap bmp, int cell, double x, double y, const triangle &tri)" + ], + "pascal": [ + "function BitmapTriangleCollision(bmp: Bitmap; cell: Integer; x: Double; y: Double; const tri: Triangle): Boolean" + ] + } + }, + { + "signature": "vector_2d calculate_collision_direction(const quad &collider,const quad &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_quads", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a collider quad\nand a collidee quad relative to the collider quad. If the quads are not\ncolliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the collider quad,\nexpressed as a unit vector. If the quads are not colliding, this function\nwill return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "quad", + "description": "The quad that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "quad", + "description": "The quad that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "quad", + "suffix": "between_quads", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def calculate_collision_direction_between_quads(collider, collidee):" + ], + "csharp": [ + "public static Vector2D SplashKit.CalculateCollisionDirection(Quad collider, Quad collidee);" + ], + "cpp": [ + "vector_2d calculate_collision_direction(const quad &collider, const quad &collidee)" + ], + "pascal": [ + "function CalculateCollisionDirection(const collider: Quad; const collidee: Quad): Vector2D" + ] + } + }, + { + "signature": "vector_2d calculate_collision_direction(const circle &collider,const circle &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_circles", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a collider circle\nand a collidee circle relative to the collider circle. If the circles are not\ncolliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the collider circle,\nexpressed as a unit vector. If the circles are not colliding, this function\nwill return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "circle", + "description": "The circle that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "circle", + "description": "The circle that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "circle", + "suffix": "between_circles", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def calculate_collision_direction_between_circles(collider, collidee):" + ], + "csharp": [ + "public static Vector2D SplashKit.CalculateCollisionDirection(Circle collider, Circle collidee);" + ], + "cpp": [ + "vector_2d calculate_collision_direction(const circle &collider, const circle &collidee)" + ], + "pascal": [ + "function CalculateCollisionDirection(const collider: Circle; const collidee: Circle): Vector2D" + ] + } + }, + { + "signature": "vector_2d calculate_collision_direction(const circle &collider,const quad &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_circle_and_quad", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a circle\nand a quad relative to the circle. If the circle and\nquad are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the circle,\nexpressed as a unit vector. If the circle and quad are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "circle", + "description": "The circle that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "quad", + "description": "The quad that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "circle", + "suffix": "between_circle_and_quad", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def calculate_collision_direction_between_circle_and_quad(collider, collidee):" + ], + "csharp": [ + "public static Vector2D SplashKit.CalculateCollisionDirection(Circle collider, Quad collidee);" + ], + "cpp": [ + "vector_2d calculate_collision_direction(const circle &collider, const quad &collidee)" + ], + "pascal": [ + "function CalculateCollisionDirection(const collider: Circle; const collidee: Quad): Vector2D" + ] + } + }, + { + "signature": "vector_2d calculate_collision_direction(const circle &collider,const rectangle &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_circle_and_rectangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a circle\nand a rectangle relative to the circle. If the circle and\nrectangle are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the circle,\nexpressed as a unit vector. If the circle and rectangle are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "circle", + "description": "The circle that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "rectangle", + "description": "The rectangle that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "circle", + "suffix": "between_circle_and_rectangle", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def calculate_collision_direction_between_circle_and_rectangle(collider, collidee):" + ], + "csharp": [ + "public static Vector2D SplashKit.CalculateCollisionDirection(Circle collider, Rectangle collidee);" + ], + "cpp": [ + "vector_2d calculate_collision_direction(const circle &collider, const rectangle &collidee)" + ], + "pascal": [ + "function CalculateCollisionDirection(const collider: Circle; const collidee: Rectangle): Vector2D" + ] + } + }, + { + "signature": "vector_2d calculate_collision_direction(const circle &collider,const sprite collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_circle_and_sprite", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a circle\nand a sprite relative to the circle. If the circle and\nsprite are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the circle,\nexpressed as a unit vector. If the circle and sprite are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "circle", + "description": "The circle that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "sprite", + "description": "The sprite that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "circle", + "suffix": "between_circle_and_sprite", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def calculate_collision_direction_between_circle_and_sprite(collider, collidee):" + ], + "csharp": [ + "public static Vector2D SplashKit.CalculateCollisionDirection(Circle collider, Sprite collidee);" + ], + "cpp": [ + "vector_2d calculate_collision_direction(const circle &collider, const sprite collidee)" + ], + "pascal": [ + "function CalculateCollisionDirection(const collider: Circle; collidee: Sprite): Vector2D" + ] + } + }, + { + "signature": "vector_2d calculate_collision_direction(const circle &collider,const triangle &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_circle_and_triangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a circle\nand a triangle relative to the circle. If the circle and\ntriangle are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the circle,\nexpressed as a unit vector. If the circle and triangle are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "circle", + "description": "The circle that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "triangle", + "description": "The triangle that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "circle", + "suffix": "between_circle_and_triangle", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def calculate_collision_direction_between_circle_and_triangle(collider, collidee):" + ], + "csharp": [ + "public static Vector2D SplashKit.CalculateCollisionDirection(Circle collider, Triangle collidee);" + ], + "cpp": [ + "vector_2d calculate_collision_direction(const circle &collider, const triangle &collidee)" + ], + "pascal": [ + "function CalculateCollisionDirection(const collider: Circle; const collidee: Triangle): Vector2D" + ] + } + }, + { + "signature": "vector_2d calculate_collision_direction(const quad &collider,const circle &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_quad_and_circle", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a quad\nand a circle relative to the quad. If the quad and\ncircle are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the quad,\nexpressed as a unit vector. If the quad and circle are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "quad", + "description": "The quad that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "circle", + "description": "The circle that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "quad", + "suffix": "between_quad_and_circle", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def calculate_collision_direction_between_quad_and_circle(collider, collidee):" + ], + "csharp": [ + "public static Vector2D SplashKit.CalculateCollisionDirection(Quad collider, Circle collidee);" + ], + "cpp": [ + "vector_2d calculate_collision_direction(const quad &collider, const circle &collidee)" + ], + "pascal": [ + "function CalculateCollisionDirection(const collider: Quad; const collidee: Circle): Vector2D" + ] + } + }, + { + "signature": "vector_2d calculate_collision_direction(const quad &collider,const rectangle &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_quad_and_rectangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a quad\nand a rectangle relative to the quad. If the quad and\nrectangle are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the quad,\nexpressed as a unit vector. If the quad and rectangle are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "quad", + "description": "The quad that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "rectangle", + "description": "The rectangle that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "quad", + "suffix": "between_quad_and_rectangle", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def calculate_collision_direction_between_quad_and_rectangle(collider, collidee):" + ], + "csharp": [ + "public static Vector2D SplashKit.CalculateCollisionDirection(Quad collider, Rectangle collidee);" + ], + "cpp": [ + "vector_2d calculate_collision_direction(const quad &collider, const rectangle &collidee)" + ], + "pascal": [ + "function CalculateCollisionDirection(const collider: Quad; const collidee: Rectangle): Vector2D" + ] + } + }, + { + "signature": "vector_2d calculate_collision_direction(const quad &collider,const sprite collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_quad_and_sprite", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a quad\nand a sprite relative to the quad. If the quad and\nsprite are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the quad,\nexpressed as a unit vector. If the quad and sprite are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "quad", + "description": "The quad that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "sprite", + "description": "The sprite that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "quad", + "suffix": "between_quad_and_sprite", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def calculate_collision_direction_between_quad_and_sprite(collider, collidee):" + ], + "csharp": [ + "public static Vector2D SplashKit.CalculateCollisionDirection(Quad collider, Sprite collidee);" + ], + "cpp": [ + "vector_2d calculate_collision_direction(const quad &collider, const sprite collidee)" + ], + "pascal": [ + "function CalculateCollisionDirection(const collider: Quad; collidee: Sprite): Vector2D" + ] + } + }, + { + "signature": "vector_2d calculate_collision_direction(const quad &collider,const triangle &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_quad_and_triangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a quad\nand a triangle relative to the quad. If the quad and\ntriangle are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the quad,\nexpressed as a unit vector. If the quad and triangle are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "quad", + "description": "The quad that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "triangle", + "description": "The triangle that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "quad", + "suffix": "between_quad_and_triangle", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def calculate_collision_direction_between_quad_and_triangle(collider, collidee):" + ], + "csharp": [ + "public static Vector2D SplashKit.CalculateCollisionDirection(Quad collider, Triangle collidee);" + ], + "cpp": [ + "vector_2d calculate_collision_direction(const quad &collider, const triangle &collidee)" + ], + "pascal": [ + "function CalculateCollisionDirection(const collider: Quad; const collidee: Triangle): Vector2D" + ] + } + }, + { + "signature": "vector_2d calculate_collision_direction(const rectangle &collider,const circle &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_rectangle_and_circle", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a rectangle\nand a circle relative to the rectangle. If the rectangle and\nsprite are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the rectangle,\nexpressed as a unit vector. If the rectangle and circle are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "rectangle", + "description": "The rectangle that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "circle", + "description": "The circle that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "rectangle", + "suffix": "between_rectangle_and_circle", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def calculate_collision_direction_between_rectangle_and_circle(collider, collidee):" + ], + "csharp": [ + "public static Vector2D SplashKit.CalculateCollisionDirection(Rectangle collider, Circle collidee);" + ], + "cpp": [ + "vector_2d calculate_collision_direction(const rectangle &collider, const circle &collidee)" + ], + "pascal": [ + "function CalculateCollisionDirection(const collider: Rectangle; const collidee: Circle): Vector2D" + ] + } + }, + { + "signature": "vector_2d calculate_collision_direction(const rectangle &collider,const quad &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_rectangle_and_quad", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a rectangle\nand a quad relative to the rectangle. If the rectangle and\nsprite are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the rectangle,\nexpressed as a unit vector. If the rectangle and quad are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "rectangle", + "description": "The rectangle that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "quad", + "description": "The quad that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "rectangle", + "suffix": "between_rectangle_and_quad", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def calculate_collision_direction_between_rectangle_and_quad(collider, collidee):" + ], + "csharp": [ + "public static Vector2D SplashKit.CalculateCollisionDirection(Rectangle collider, Quad collidee);" + ], + "cpp": [ + "vector_2d calculate_collision_direction(const rectangle &collider, const quad &collidee)" + ], + "pascal": [ + "function CalculateCollisionDirection(const collider: Rectangle; const collidee: Quad): Vector2D" + ] + } + }, + { + "signature": "vector_2d calculate_collision_direction(const rectangle &collider,const rectangle &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_rectangles", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a collider rectangle\nand a collidee rectangle relative to the collider rectangle. If the rectangles are not\ncolliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the collider rectangle,\nexpressed as a unit vector. If the rectangles are not colliding, this function\nwill return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "rectangle", + "description": "The rectangle that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "rectangle", + "description": "The rectangle that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "rectangle", + "suffix": "between_rectangles", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def calculate_collision_direction_between_rectangles(collider, collidee):" + ], + "csharp": [ + "public static Vector2D SplashKit.CalculateCollisionDirection(Rectangle collider, Rectangle collidee);" + ], + "cpp": [ + "vector_2d calculate_collision_direction(const rectangle &collider, const rectangle &collidee)" + ], + "pascal": [ + "function CalculateCollisionDirection(const collider: Rectangle; const collidee: Rectangle): Vector2D" + ] + } + }, + { + "signature": "vector_2d calculate_collision_direction(const rectangle &collider,const sprite collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_rectangle_and_sprite", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a rectangle\nand a sprite relative to the rectangle. If the rectangle and\nsprite are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the rectangle,\nexpressed as a unit vector. If the rectangle and sprite are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "rectangle", + "description": "The rectangle that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "sprite", + "description": "The sprite that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "rectangle", + "suffix": "between_rectangle_and_sprite", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def calculate_collision_direction_between_rectangle_and_sprite(collider, collidee):" + ], + "csharp": [ + "public static Vector2D SplashKit.CalculateCollisionDirection(Rectangle collider, Sprite collidee);" + ], + "cpp": [ + "vector_2d calculate_collision_direction(const rectangle &collider, const sprite collidee)" + ], + "pascal": [ + "function CalculateCollisionDirection(const collider: Rectangle; collidee: Sprite): Vector2D" + ] + } + }, + { + "signature": "vector_2d calculate_collision_direction(const rectangle &collider,const triangle &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_rectangle_and_triangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a rectangle\nand a triangle relative to the rectangle. If the rectangle and\nsprite are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the rectangle,\nexpressed as a unit vector. If the rectangle and triangle are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "rectangle", + "description": "The rectangle that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "triangle", + "description": "The triangle that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "rectangle", + "suffix": "between_rectangle_and_triangle", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def calculate_collision_direction_between_rectangle_and_triangle(collider, collidee):" + ], + "csharp": [ + "public static Vector2D SplashKit.CalculateCollisionDirection(Rectangle collider, Triangle collidee);" + ], + "cpp": [ + "vector_2d calculate_collision_direction(const rectangle &collider, const triangle &collidee)" + ], + "pascal": [ + "function CalculateCollisionDirection(const collider: Rectangle; const collidee: Triangle): Vector2D" + ] + } + }, + { + "signature": "vector_2d calculate_collision_direction(const sprite collider,const circle &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_sprite_and_circle", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a sprite\nand a circle relative to the sprite. If the sprite and\ncircle are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the sprite,\nexpressed as a unit vector. If the sprite and circle are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "sprite", + "description": "The sprite that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "circle", + "description": "The circle that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "sprite", + "suffix": "between_sprite_and_circle", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def calculate_collision_direction_between_sprite_and_circle(collider, collidee):" + ], + "csharp": [ + "public static Vector2D SplashKit.CalculateCollisionDirection(Sprite collider, Circle collidee);" + ], + "cpp": [ + "vector_2d calculate_collision_direction(const sprite collider, const circle &collidee)" + ], + "pascal": [ + "function CalculateCollisionDirection(collider: Sprite; const collidee: Circle): Vector2D" + ] + } + }, + { + "signature": "vector_2d calculate_collision_direction(const sprite collider,const quad &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_sprite_and_quad", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a sprite\nand a quad relative to the sprite. If the sprite and\nquad are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the sprite,\nexpressed as a unit vector. If the sprite and quad are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "sprite", + "description": "The sprite that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "quad", + "description": "The quad that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "sprite", + "suffix": "between_sprite_and_quad", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def calculate_collision_direction_between_sprite_and_quad(collider, collidee):" + ], + "csharp": [ + "public static Vector2D SplashKit.CalculateCollisionDirection(Sprite collider, Quad collidee);" + ], + "cpp": [ + "vector_2d calculate_collision_direction(const sprite collider, const quad &collidee)" + ], + "pascal": [ + "function CalculateCollisionDirection(collider: Sprite; const collidee: Quad): Vector2D" + ] + } + }, + { + "signature": "vector_2d calculate_collision_direction(const sprite collider,const rectangle &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_sprite_and_rectangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a sprite\nand a rectangle relative to the sprite. If the sprite and\nrectangle are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the sprite,\nexpressed as a unit vector. If the sprite and rectangle are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "sprite", + "description": "The sprite that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "rectangle", + "description": "The rectangle that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "sprite", + "suffix": "between_sprite_and_rectangle", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def calculate_collision_direction_between_sprite_and_rectangle(collider, collidee):" + ], + "csharp": [ + "public static Vector2D SplashKit.CalculateCollisionDirection(Sprite collider, Rectangle collidee);" + ], + "cpp": [ + "vector_2d calculate_collision_direction(const sprite collider, const rectangle &collidee)" + ], + "pascal": [ + "function CalculateCollisionDirection(collider: Sprite; const collidee: Rectangle): Vector2D" + ] + } + }, + { + "signature": "vector_2d calculate_collision_direction(const sprite collider,const sprite collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_sprites", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between two sprites\nrelative to the collider sprite. If the sprites are not colliding,\nthis function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the collider sprite,\nexpressed as a unit vector. If the sprites are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "sprite", + "description": "The sprite that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "sprite", + "description": "The sprite that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "sprite", + "suffix": "between_sprites", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def calculate_collision_direction_between_sprites(collider, collidee):" + ], + "csharp": [ + "public static Vector2D SplashKit.CalculateCollisionDirection(Sprite collider, Sprite collidee);" + ], + "cpp": [ + "vector_2d calculate_collision_direction(const sprite collider, const sprite collidee)" + ], + "pascal": [ + "function CalculateCollisionDirection(collider: Sprite; collidee: Sprite): Vector2D" + ] + } + }, + { + "signature": "vector_2d calculate_collision_direction(const sprite collider,const triangle &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_sprite_and_triangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a sprite\nand a triangle relative to the sprite. If the sprite and\ntriangle are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the sprite,\nexpressed as a unit vector. If the sprite and triangle are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "sprite", + "description": "The sprite that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "triangle", + "description": "The triangle that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "sprite", + "suffix": "between_sprite_and_triangle", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def calculate_collision_direction_between_sprite_and_triangle(collider, collidee):" + ], + "csharp": [ + "public static Vector2D SplashKit.CalculateCollisionDirection(Sprite collider, Triangle collidee);" + ], + "cpp": [ + "vector_2d calculate_collision_direction(const sprite collider, const triangle &collidee)" + ], + "pascal": [ + "function CalculateCollisionDirection(collider: Sprite; const collidee: Triangle): Vector2D" + ] + } + }, + { + "signature": "vector_2d calculate_collision_direction(const triangle &collider,const circle &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_triangle_and_circle", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a triangle\nand a circle relative to the triangle. If the triangle and\ncircle are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the triangle,\nexpressed as a unit vector. If the triangle and circle are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "triangle", + "description": "The triangle that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "circle", + "description": "The circle that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "triangle", + "suffix": "between_triangle_and_circle", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def calculate_collision_direction_between_triangle_and_circle(collider, collidee):" + ], + "csharp": [ + "public static Vector2D SplashKit.CalculateCollisionDirection(Triangle collider, Circle collidee);" + ], + "cpp": [ + "vector_2d calculate_collision_direction(const triangle &collider, const circle &collidee)" + ], + "pascal": [ + "function CalculateCollisionDirection(const collider: Triangle; const collidee: Circle): Vector2D" + ] + } + }, + { + "signature": "vector_2d calculate_collision_direction(const triangle &collider,const quad &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_triangle_and_quad", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a triangle\nand a quad relative to the triangle. If the triangle and\nquad are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the triangle,\nexpressed as a unit vector. If the triangle and quad are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "triangle", + "description": "The triangle that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "quad", + "description": "The quad that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "triangle", + "suffix": "between_triangle_and_quad", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def calculate_collision_direction_between_triangle_and_quad(collider, collidee):" + ], + "csharp": [ + "public static Vector2D SplashKit.CalculateCollisionDirection(Triangle collider, Quad collidee);" + ], + "cpp": [ + "vector_2d calculate_collision_direction(const triangle &collider, const quad &collidee)" + ], + "pascal": [ + "function CalculateCollisionDirection(const collider: Triangle; const collidee: Quad): Vector2D" + ] + } + }, + { + "signature": "vector_2d calculate_collision_direction(const triangle &collider,const rectangle &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_triangle_and_rectangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a triangle\nand a rectangle relative to the triangle. If the triangle and\nrectangle are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the triangle,\nexpressed as a unit vector. If the triangle and rectangle are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "triangle", + "description": "The triangle that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "rectangle", + "description": "The rectangle that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "triangle", + "suffix": "between_triangle_and_rectangle", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def calculate_collision_direction_between_triangle_and_rectangle(collider, collidee):" + ], + "csharp": [ + "public static Vector2D SplashKit.CalculateCollisionDirection(Triangle collider, Rectangle collidee);" + ], + "cpp": [ + "vector_2d calculate_collision_direction(const triangle &collider, const rectangle &collidee)" + ], + "pascal": [ + "function CalculateCollisionDirection(const collider: Triangle; const collidee: Rectangle): Vector2D" + ] + } + }, + { + "signature": "vector_2d calculate_collision_direction(const triangle &collider,const sprite collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_triangle_and_sprite", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a triangle\nand a sprite relative to the triangle. If the triangle and\nsprite are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the triangle,\nexpressed as a unit vector. If the triangle and sprite are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "triangle", + "description": "The triangle that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "sprite", + "description": "The sprite that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "triangle", + "suffix": "between_triangle_and_sprite", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def calculate_collision_direction_between_triangle_and_sprite(collider, collidee):" + ], + "csharp": [ + "public static Vector2D SplashKit.CalculateCollisionDirection(Triangle collider, Sprite collidee);" + ], + "cpp": [ + "vector_2d calculate_collision_direction(const triangle &collider, const sprite collidee)" + ], + "pascal": [ + "function CalculateCollisionDirection(const collider: Triangle; collidee: Sprite): Vector2D" + ] + } + }, + { + "signature": "vector_2d calculate_collision_direction(const triangle &collider,const triangle &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_triangles", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a collider triangle\nand a collidee triangle relative to the collider triangle. If the triangles are not\ncolliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the collider triangle,\nexpressed as a unit vector. If the triangles are not colliding, this function\nwill return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "triangle", + "description": "The triangle that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "triangle", + "description": "The triangle that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "triangle", + "suffix": "between_triangles", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def calculate_collision_direction_between_triangles(collider, collidee):" + ], + "csharp": [ + "public static Vector2D SplashKit.CalculateCollisionDirection(Triangle collider, Triangle collidee);" + ], + "cpp": [ + "vector_2d calculate_collision_direction(const triangle &collider, const triangle &collidee)" + ], + "pascal": [ + "function CalculateCollisionDirection(const collider: Triangle; const collidee: Triangle): Vector2D" + ] + } + }, + { + "signature": "bool resolve_collision(quad &collider,const quad &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_quads", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a collider quad and a collidee quad by moving the\ncollider quad to the edge of the collidee quad. The direction of the\nresolution is determined by the `direction` parameter. If the quads are not\ncolliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the quads are colliding and the collision was resolved,\nfalse if the quads are not colliding\n\n@atrribute class quad", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "quad", + "description": "The quad which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "quad", + "description": "The quad which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the collider quad,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_quads", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def resolve_collision_between_quads(collider, collidee, direction):" + ], + "csharp": [ + "public static bool SplashKit.ResolveCollision(ref Quad collider, Quad collidee, Vector2D direction);" + ], + "cpp": [ + "bool resolve_collision(quad &collider, const quad &collidee, const vector_2d &direction)" + ], + "pascal": [ + "function ResolveCollision(var collider: Quad; const collidee: Quad; const direction: Vector2D): Boolean" + ] + } + }, + { + "signature": "bool resolve_collision(circle &collider,const circle &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_circles", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a collider circle and a collidee circle by moving the\ncollider circle to the edge of the collidee circle. The direction of the\nresolution is determined by the `direction` parameter. If the circles are not\ncolliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the circles are colliding and the collision was resolved,\nfalse if the circles are not colliding\n\n@atrribute class circle", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "circle", + "description": "The circle which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "circle", + "description": "The circle which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the collider circle,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_circles", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def resolve_collision_between_circles(collider, collidee, direction):" + ], + "csharp": [ + "public static bool SplashKit.ResolveCollision(ref Circle collider, Circle collidee, Vector2D direction);" + ], + "cpp": [ + "bool resolve_collision(circle &collider, const circle &collidee, const vector_2d &direction)" + ], + "pascal": [ + "function ResolveCollision(var collider: Circle; const collidee: Circle; const direction: Vector2D): Boolean" + ] + } + }, + { + "signature": "bool resolve_collision(circle &collider,const quad &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_circle_and_quad", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a circle and a quad by moving the\ncircle to the edge of the quad. The direction of the\nresolution is determined by the `direction` parameter. If the circle and\nquad are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the circle and quad are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class circle", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "circle", + "description": "The circle which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "quad", + "description": "The quad which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the circle,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_circle_and_quad", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def resolve_collision_between_circle_and_quad(collider, collidee, direction):" + ], + "csharp": [ + "public static bool SplashKit.ResolveCollision(ref Circle collider, Quad collidee, Vector2D direction);" + ], + "cpp": [ + "bool resolve_collision(circle &collider, const quad &collidee, const vector_2d &direction)" + ], + "pascal": [ + "function ResolveCollision(var collider: Circle; const collidee: Quad; const direction: Vector2D): Boolean" + ] + } + }, + { + "signature": "bool resolve_collision(circle &collider,const rectangle &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_circle_and_rectangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a circle and a rectangle by moving the\ncircle to the edge of the rectangle. The direction of the\nresolution is determined by the `direction` parameter. If the circle and\nrectangle are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the circle and rectangle are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class circle", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "circle", + "description": "The circle which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "rectangle", + "description": "The rectangle which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the circle,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_circle_and_rectangle", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def resolve_collision_between_circle_and_rectangle(collider, collidee, direction):" + ], + "csharp": [ + "public static bool SplashKit.ResolveCollision(ref Circle collider, Rectangle collidee, Vector2D direction);" + ], + "cpp": [ + "bool resolve_collision(circle &collider, const rectangle &collidee, const vector_2d &direction)" + ], + "pascal": [ + "function ResolveCollision(var collider: Circle; const collidee: Rectangle; const direction: Vector2D): Boolean" + ] + } + }, + { + "signature": "bool resolve_collision(circle &collider,const sprite collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_circle_and_sprite", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a circle and a sprite by moving the\ncircle to the edge of the sprite. The direction of the\nresolution is determined by the `direction` parameter. If the circle and\nsprite are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the circle and sprite are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class circle", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "circle", + "description": "The circle which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "sprite", + "description": "The sprite which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the circle,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_circle_and_sprite", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def resolve_collision_between_circle_and_sprite(collider, collidee, direction):" + ], + "csharp": [ + "public static bool SplashKit.ResolveCollision(ref Circle collider, Sprite collidee, Vector2D direction);" + ], + "cpp": [ + "bool resolve_collision(circle &collider, const sprite collidee, const vector_2d &direction)" + ], + "pascal": [ + "function ResolveCollision(var collider: Circle; collidee: Sprite; const direction: Vector2D): Boolean" + ] + } + }, + { + "signature": "bool resolve_collision(circle &collider,const triangle &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_circle_and_triangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a circle and a triangle by moving the\ncircle to the edge of the triangle. The direction of the\nresolution is determined by the `direction` parameter. If the circle and\ntriangle are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the circle and triangle are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class circle", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "circle", + "description": "The circle which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "triangle", + "description": "The triangle which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the circle,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_circle_and_triangle", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def resolve_collision_between_circle_and_triangle(collider, collidee, direction):" + ], + "csharp": [ + "public static bool SplashKit.ResolveCollision(ref Circle collider, Triangle collidee, Vector2D direction);" + ], + "cpp": [ + "bool resolve_collision(circle &collider, const triangle &collidee, const vector_2d &direction)" + ], + "pascal": [ + "function ResolveCollision(var collider: Circle; const collidee: Triangle; const direction: Vector2D): Boolean" + ] + } + }, + { + "signature": "bool resolve_collision(quad &collider,const circle &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_quad_and_circle", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a quad and a circle by moving the\nquad to the edge of the circle. The direction of the\nresolution is determined by the `direction` parameter. If the quad and\ncircle are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the quad and circle are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class quad", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "quad", + "description": "The quad which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "circle", + "description": "The circle which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the quad,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_quad_and_circle", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def resolve_collision_between_quad_and_circle(collider, collidee, direction):" + ], + "csharp": [ + "public static bool SplashKit.ResolveCollision(ref Quad collider, Circle collidee, Vector2D direction);" + ], + "cpp": [ + "bool resolve_collision(quad &collider, const circle &collidee, const vector_2d &direction)" + ], + "pascal": [ + "function ResolveCollision(var collider: Quad; const collidee: Circle; const direction: Vector2D): Boolean" + ] + } + }, + { + "signature": "bool resolve_collision(quad &collider,const rectangle &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_quad_and_rectangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a quad and a rectangle by moving the\nquad to the edge of the rectangle. The direction of the\nresolution is determined by the `direction` parameter. If the quad and\nrectangle are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the quad and rectangle are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class quad", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "quad", + "description": "The quad which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "rectangle", + "description": "The rectangle which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the quad,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_quad_and_rectangle", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def resolve_collision_between_quad_and_rectangle(collider, collidee, direction):" + ], + "csharp": [ + "public static bool SplashKit.ResolveCollision(ref Quad collider, Rectangle collidee, Vector2D direction);" + ], + "cpp": [ + "bool resolve_collision(quad &collider, const rectangle &collidee, const vector_2d &direction)" + ], + "pascal": [ + "function ResolveCollision(var collider: Quad; const collidee: Rectangle; const direction: Vector2D): Boolean" + ] + } + }, + { + "signature": "bool resolve_collision(quad &collider,const sprite collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_quad_and_sprite", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a quad and a sprite by moving the\nquad to the edge of the sprite. The direction of the\nresolution is determined by the `direction` parameter. If the quad and\nsprite are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the quad and sprite are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class quad", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "quad", + "description": "The quad which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "sprite", + "description": "The sprite which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the quad,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_quad_and_sprite", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def resolve_collision_between_quad_and_sprite(collider, collidee, direction):" + ], + "csharp": [ + "public static bool SplashKit.ResolveCollision(ref Quad collider, Sprite collidee, Vector2D direction);" + ], + "cpp": [ + "bool resolve_collision(quad &collider, const sprite collidee, const vector_2d &direction)" + ], + "pascal": [ + "function ResolveCollision(var collider: Quad; collidee: Sprite; const direction: Vector2D): Boolean" + ] + } + }, + { + "signature": "bool resolve_collision(quad &collider,const triangle &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_quad_and_triangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a quad and a triangle by moving the\nquad to the edge of the triangle. The direction of the\nresolution is determined by the `direction` parameter. If the quad and\ntriangle are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the quad and triangle are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class quad", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "quad", + "description": "The quad which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "triangle", + "description": "The triangle which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the quad,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_quad_and_triangle", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def resolve_collision_between_quad_and_triangle(collider, collidee, direction):" + ], + "csharp": [ + "public static bool SplashKit.ResolveCollision(ref Quad collider, Triangle collidee, Vector2D direction);" + ], + "cpp": [ + "bool resolve_collision(quad &collider, const triangle &collidee, const vector_2d &direction)" + ], + "pascal": [ + "function ResolveCollision(var collider: Quad; const collidee: Triangle; const direction: Vector2D): Boolean" + ] + } + }, + { + "signature": "bool resolve_collision(rectangle &collider,const circle &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_rectangle_and_circle", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a rectangle and a circle by moving the\nrectangle to the edge of the circle. The direction of the\nresolution is determined by the `direction` parameter. If the rectangle and\ncircle are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the rectangle and circle are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class rectangle", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "rectangle", + "description": "The rectangle which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "circle", + "description": "The circle which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the rectangle,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_rectangle_and_circle", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def resolve_collision_between_rectangle_and_circle(collider, collidee, direction):" + ], + "csharp": [ + "public static bool SplashKit.ResolveCollision(ref Rectangle collider, Circle collidee, Vector2D direction);" + ], + "cpp": [ + "bool resolve_collision(rectangle &collider, const circle &collidee, const vector_2d &direction)" + ], + "pascal": [ + "function ResolveCollision(var collider: Rectangle; const collidee: Circle; const direction: Vector2D): Boolean" + ] + } + }, + { + "signature": "bool resolve_collision(rectangle &collider,const quad &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_rectangle_and_quad", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a rectangle and a quad by moving the\nrectangle to the edge of the quad. The direction of the\nresolution is determined by the `direction` parameter. If the rectangle and\nquad are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the rectangle and quad are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class rectangle", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "rectangle", + "description": "The rectangle which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "quad", + "description": "The quad which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the rectangle,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_rectangle_and_quad", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def resolve_collision_between_rectangle_and_quad(collider, collidee, direction):" + ], + "csharp": [ + "public static bool SplashKit.ResolveCollision(ref Rectangle collider, Quad collidee, Vector2D direction);" + ], + "cpp": [ + "bool resolve_collision(rectangle &collider, const quad &collidee, const vector_2d &direction)" + ], + "pascal": [ + "function ResolveCollision(var collider: Rectangle; const collidee: Quad; const direction: Vector2D): Boolean" + ] + } + }, + { + "signature": "bool resolve_collision(rectangle &collider,const rectangle &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_rectangles", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between two rectangles by moving the\ncollider rectangle to the edge of the collidee rectangle. The direction of the\nresolution is determined by the `direction` parameter. If the rectangles are not\ncolliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the rectangles are colliding and the collision was resolved,\nfalse if the rectangles are not colliding\n\n@atrribute class rectangle", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "rectangle", + "description": "The rectangle which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "rectangle", + "description": "The rectangle which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the collider rectangle,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_rectangles", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def resolve_collision_between_rectangles(collider, collidee, direction):" + ], + "csharp": [ + "public static bool SplashKit.ResolveCollision(ref Rectangle collider, Rectangle collidee, Vector2D direction);" + ], + "cpp": [ + "bool resolve_collision(rectangle &collider, const rectangle &collidee, const vector_2d &direction)" + ], + "pascal": [ + "function ResolveCollision(var collider: Rectangle; const collidee: Rectangle; const direction: Vector2D): Boolean" + ] + } + }, + { + "signature": "bool resolve_collision(rectangle &collider,const sprite collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_rectangle_and_sprite", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a rectangle and a sprite by moving the\nrectangle to the edge of the sprite. The direction of the\nresolution is determined by the `direction` parameter. If the rectangle and\nsprite are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the rectangle and sprite are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class rectangle", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "rectangle", + "description": "The rectangle which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "sprite", + "description": "The sprite which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the rectangle,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_rectangle_and_sprite", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def resolve_collision_between_rectangle_and_sprite(collider, collidee, direction):" + ], + "csharp": [ + "public static bool SplashKit.ResolveCollision(ref Rectangle collider, Sprite collidee, Vector2D direction);" + ], + "cpp": [ + "bool resolve_collision(rectangle &collider, const sprite collidee, const vector_2d &direction)" + ], + "pascal": [ + "function ResolveCollision(var collider: Rectangle; collidee: Sprite; const direction: Vector2D): Boolean" + ] + } + }, + { + "signature": "bool resolve_collision(rectangle &collider,const triangle &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_rectangle_and_triangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a rectangle and a triangle by moving the\nrectangle to the edge of the triangle. The direction of the\nresolution is determined by the `direction` parameter. If the rectangle and\ntriangle are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the rectangle and triangle are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class rectangle", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "rectangle", + "description": "The rectangle which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "triangle", + "description": "The triangle which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the rectangle,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_rectangle_and_triangle", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def resolve_collision_between_rectangle_and_triangle(collider, collidee, direction):" + ], + "csharp": [ + "public static bool SplashKit.ResolveCollision(ref Rectangle collider, Triangle collidee, Vector2D direction);" + ], + "cpp": [ + "bool resolve_collision(rectangle &collider, const triangle &collidee, const vector_2d &direction)" + ], + "pascal": [ + "function ResolveCollision(var collider: Rectangle; const collidee: Triangle; const direction: Vector2D): Boolean" + ] + } + }, + { + "signature": "bool resolve_collision(sprite collider,const circle &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_sprite_and_circle", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a sprite and a circle by moving the\nsprite to the edge of the circle. The direction of the\nresolution is determined by the `direction` parameter. If the sprite and\ncircle are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the sprite and circle are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class sprite", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "sprite", + "description": "The sprite which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "circle", + "description": "The circle which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the sprite,\nexpressed as a vector. If a zero vector is passed,\nthe function will not resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_sprite_and_circle", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def resolve_collision_between_sprite_and_circle(collider, collidee, direction):" + ], + "csharp": [ + "public static bool SplashKit.ResolveCollision(Sprite collider, Circle collidee, Vector2D direction);" + ], + "cpp": [ + "bool resolve_collision(sprite collider, const circle &collidee, const vector_2d &direction)" + ], + "pascal": [ + "function ResolveCollision(collider: Sprite; const collidee: Circle; const direction: Vector2D): Boolean" + ] + } + }, + { + "signature": "bool resolve_collision(sprite collider,const quad &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_sprite_and_quad", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a sprite and a quad by moving the\nsprite to the edge of the quad. The direction of the\nresolution is determined by the `direction` parameter. If the sprite and\nquad are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the sprite and quad are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class sprite", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "sprite", + "description": "The sprite which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "quad", + "description": "The quad which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the sprite,\nexpressed as a vector. If a zero vector is passed,\nthe function will not resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_sprite_and_quad", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def resolve_collision_between_sprite_and_quad(collider, collidee, direction):" + ], + "csharp": [ + "public static bool SplashKit.ResolveCollision(Sprite collider, Quad collidee, Vector2D direction);" + ], + "cpp": [ + "bool resolve_collision(sprite collider, const quad &collidee, const vector_2d &direction)" + ], + "pascal": [ + "function ResolveCollision(collider: Sprite; const collidee: Quad; const direction: Vector2D): Boolean" + ] + } + }, + { + "signature": "bool resolve_collision(sprite collider,const rectangle &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_sprite_and_rectangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a sprite and a rectangle by moving the\nsprite to the edge of the rectangle. The direction of the\nresolution is determined by the `direction` parameter. If the sprite and\nrectangle are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the sprite and rectangle are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class sprite", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "sprite", + "description": "The sprite which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "rectangle", + "description": "The rectangle which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the sprite,\nexpressed as a vector. If a zero vector is passed,\nthe function will not resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_sprite_and_rectangle", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def resolve_collision_between_sprite_and_rectangle(collider, collidee, direction):" + ], + "csharp": [ + "public static bool SplashKit.ResolveCollision(Sprite collider, Rectangle collidee, Vector2D direction);" + ], + "cpp": [ + "bool resolve_collision(sprite collider, const rectangle &collidee, const vector_2d &direction)" + ], + "pascal": [ + "function ResolveCollision(collider: Sprite; const collidee: Rectangle; const direction: Vector2D): Boolean" + ] + } + }, + { + "signature": "bool resolve_collision(sprite collider,const sprite collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_sprites", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between two sprites by moving the\ncollider sprite to the edge of the collidee sprite. The direction of the\nresolution is determined by the `direction` parameter. If the sprites are not\ncolliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the sprites are colliding and the collision was resolved,\nfalse if the sprites are not colliding\n\n@atrribute class sprite", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "sprite", + "description": "The sprite which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "sprite", + "description": "The sprite which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the collider sprite,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_sprites", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def resolve_collision_between_sprites(collider, collidee, direction):" + ], + "csharp": [ + "public static bool SplashKit.ResolveCollision(Sprite collider, Sprite collidee, Vector2D direction);" + ], + "cpp": [ + "bool resolve_collision(sprite collider, const sprite collidee, const vector_2d &direction)" + ], + "pascal": [ + "function ResolveCollision(collider: Sprite; collidee: Sprite; const direction: Vector2D): Boolean" + ] + } + }, + { + "signature": "bool resolve_collision(sprite collider,const triangle &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_sprite_and_triangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a sprite and a triangle by moving the\nsprite to the edge of the triangle. The direction of the\nresolution is determined by the `direction` parameter. If the sprite and\ntriangle are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the sprite and triangle are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class sprite", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "sprite", + "description": "The sprite which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "triangle", + "description": "The triangle which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the sprite,\nexpressed as a vector. If a zero vector is passed,\nthe function will not resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_sprite_and_triangle", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def resolve_collision_between_sprite_and_triangle(collider, collidee, direction):" + ], + "csharp": [ + "public static bool SplashKit.ResolveCollision(Sprite collider, Triangle collidee, Vector2D direction);" + ], + "cpp": [ + "bool resolve_collision(sprite collider, const triangle &collidee, const vector_2d &direction)" + ], + "pascal": [ + "function ResolveCollision(collider: Sprite; const collidee: Triangle; const direction: Vector2D): Boolean" + ] + } + }, + { + "signature": "bool resolve_collision(triangle &collider,const circle &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_triangle_and_circle", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a triangle and a circle by moving the\ntriangle to the edge of the circle. The direction of the\nresolution is determined by the `direction` parameter. If the triangle and\ncircle are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the triangle and circle are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class triangle", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "triangle", + "description": "The triangle which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "circle", + "description": "The circle which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the triangle,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_triangle_and_circle", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def resolve_collision_between_triangle_and_circle(collider, collidee, direction):" + ], + "csharp": [ + "public static bool SplashKit.ResolveCollision(ref Triangle collider, Circle collidee, Vector2D direction);" + ], + "cpp": [ + "bool resolve_collision(triangle &collider, const circle &collidee, const vector_2d &direction)" + ], + "pascal": [ + "function ResolveCollision(var collider: Triangle; const collidee: Circle; const direction: Vector2D): Boolean" + ] + } + }, + { + "signature": "bool resolve_collision(triangle &collider,const quad &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_triangle_and_quad", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a triangle and a quad by moving the\ntriangle to the edge of the quad. The direction of the\nresolution is determined by the `direction` parameter. If the triangle and\nquad are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the triangle and quad are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class triangle", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "triangle", + "description": "The triangle which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "quad", + "description": "The quad which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the triangle,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_triangle_and_quad", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def resolve_collision_between_triangle_and_quad(collider, collidee, direction):" + ], + "csharp": [ + "public static bool SplashKit.ResolveCollision(ref Triangle collider, Quad collidee, Vector2D direction);" + ], + "cpp": [ + "bool resolve_collision(triangle &collider, const quad &collidee, const vector_2d &direction)" + ], + "pascal": [ + "function ResolveCollision(var collider: Triangle; const collidee: Quad; const direction: Vector2D): Boolean" + ] + } + }, + { + "signature": "bool resolve_collision(triangle &collider,const rectangle &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_triangle_and_rectangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a triangle and a rectangle by moving the\ntriangle to the edge of the rectangle. The direction of the\nresolution is determined by the `direction` parameter. If the triangle and\nrectangle are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the triangle and rectangle are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class triangle", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "triangle", + "description": "The triangle which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "rectangle", + "description": "The rectangle which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the triangle,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_triangle_and_rectangle", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def resolve_collision_between_triangle_and_rectangle(collider, collidee, direction):" + ], + "csharp": [ + "public static bool SplashKit.ResolveCollision(ref Triangle collider, Rectangle collidee, Vector2D direction);" + ], + "cpp": [ + "bool resolve_collision(triangle &collider, const rectangle &collidee, const vector_2d &direction)" + ], + "pascal": [ + "function ResolveCollision(var collider: Triangle; const collidee: Rectangle; const direction: Vector2D): Boolean" + ] + } + }, + { + "signature": "bool resolve_collision(triangle &collider,const sprite collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_triangle_and_sprite", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a triangle and a sprite by moving the\ntriangle to the edge of the sprite. The direction of the\nresolution is determined by the `direction` parameter. If the triangle and\nsprite are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the triangle and sprite are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class triangle", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "triangle", + "description": "The triangle which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "sprite", + "description": "The sprite which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the triangle,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_triangle_and_sprite", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def resolve_collision_between_triangle_and_sprite(collider, collidee, direction):" + ], + "csharp": [ + "public static bool SplashKit.ResolveCollision(ref Triangle collider, Sprite collidee, Vector2D direction);" + ], + "cpp": [ + "bool resolve_collision(triangle &collider, const sprite collidee, const vector_2d &direction)" + ], + "pascal": [ + "function ResolveCollision(var collider: Triangle; collidee: Sprite; const direction: Vector2D): Boolean" + ] + } + }, + { + "signature": "bool resolve_collision(triangle &collider,const triangle &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_triangles", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a collider triangle and a collidee triangle by moving the\ncollider triangle to the edge of the collidee triangle. The direction of the\nresolution is determined by the `direction` parameter. If the triangles are not\ncolliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the triangles are colliding and the collision was resolved,\nfalse if the triangles are not colliding\n\n@atrribute class triangle", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "triangle", + "description": "The triangle which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "triangle", + "description": "The triangle which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the collider triangle,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_triangles", + "group": "physics", + "static": "collisions" + }, + "signatures": { + "python": [ + "def resolve_collision_between_triangles(collider, collidee, direction):" + ], + "csharp": [ + "public static bool SplashKit.ResolveCollision(ref Triangle collider, Triangle collidee, Vector2D direction);" + ], + "cpp": [ + "bool resolve_collision(triangle &collider, const triangle &collidee, const vector_2d &direction)" + ], + "pascal": [ + "function ResolveCollision(var collider: Triangle; const collidee: Triangle; const direction: Vector2D): Boolean" + ] + } + }, + { + "signature": "bool sprite_bitmap_collision(sprite s,bitmap bmp,double x,double y);", + "name": "sprite_bitmap_collision", + "method_name": "bitmap_collision", + "unique_global_name": "sprite_bitmap_collision", + "unique_method_name": "sprite.bitmap_collision", + "suffix_name": null, + "description": "Tests if a sprite will collide with a bitmap drawn at the indicated\nlocation.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the sprite collides with the bitmap when drawn\nat the indicated location.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "s": { + "type": "sprite", + "description": "The sprite to test", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "bmp": { + "type": "bitmap", + "description": "The bitmap to test", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "x": { + "type": "double", + "description": "The x location where the bitmap is drawn", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "y": { + "type": "double", + "description": "The y location where the bitmap is drawn", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "sprite", + "method": "bitmap_collision", + "group": "physics", + "static": "collisions", + "self": "s" + }, + "signatures": { + "python": [ + "def sprite_bitmap_collision(s, bmp, x, y):" + ], + "csharp": [ + "public bool Sprite.BitmapCollision(Bitmap bmp, double x, double y);", + "public static bool SplashKit.SpriteBitmapCollision(Sprite s, Bitmap bmp, double x, double y);" + ], + "cpp": [ + "bool sprite_bitmap_collision(sprite s, bitmap bmp, double x, double y)" + ], + "pascal": [ + "function SpriteBitmapCollision(s: Sprite; bmp: Bitmap; x: Double; y: Double): Boolean" + ] + } + }, + { + "signature": "bool sprite_bitmap_collision(sprite s,bitmap bmp,int cell,const point_2d &pt);", + "name": "sprite_bitmap_collision", + "method_name": "bitmap_collision", + "unique_global_name": "sprite_bitmap_collision_with_cell_at_point", + "unique_method_name": "sprite.bitmap_collision_with_cell_at_point", + "suffix_name": null, + "description": "Tests if a sprite will collide with a bitmap drawn at the indicated\nlocation.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the sprite collides with the bitmap cell when drawn\nat the indicated location.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "s": { + "type": "sprite", + "description": "The sprite to test", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "bmp": { + "type": "bitmap", + "description": "The bitmap to test", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "cell": { + "type": "int", + "description": "The cell of the bitmap to check", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "pt": { + "type": "point_2d", + "description": "The point where the bitmap is drawn", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "sprite", + "method": "bitmap_collision", + "suffix": "with_cell_at_point", + "group": "physics", + "static": "collisions", + "self": "s" + }, + "signatures": { + "python": [ + "def sprite_bitmap_collision_with_cell_at_point(s, bmp, cell, pt):" + ], + "csharp": [ + "public bool Sprite.BitmapCollision(Bitmap bmp, int cell, Point2D pt);", + "public static bool SplashKit.SpriteBitmapCollision(Sprite s, Bitmap bmp, int cell, Point2D pt);" + ], + "cpp": [ + "bool sprite_bitmap_collision(sprite s, bitmap bmp, int cell, const point_2d &pt)" + ], + "pascal": [ + "function SpriteBitmapCollision(s: Sprite; bmp: Bitmap; cell: Integer; const pt: Point2D): Boolean" + ] + } + }, + { + "signature": "bool sprite_bitmap_collision(sprite s,bitmap bmp,int cell,double x,double y);", + "name": "sprite_bitmap_collision", + "method_name": "bitmap_collision", + "unique_global_name": "sprite_bitmap_collision_with_cell", + "unique_method_name": "sprite.bitmap_collision_with_cell", + "suffix_name": null, + "description": "Tests if a sprite will collide with a bitmap drawn at the indicated\nlocation.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the sprite collides with the bitmap cell when drawn\nat the indicated location.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "s": { + "type": "sprite", + "description": "The sprite to test", "is_pointer": false, "is_const": false, "is_reference": false, @@ -63921,6 +69290,74 @@ ] } }, + { + "signature": "bool sprite_circle_collision(sprite s,const circle &c);", + "name": "sprite_circle_collision", + "method_name": "circle_collision", + "unique_global_name": "sprite_circle_collision", + "unique_method_name": "sprite.circle_collision", + "suffix_name": null, + "description": "Tests if a sprite is drawn within an given area (circle).", + "brief": null, + "return": { + "type": "bool", + "description": "True if the sprite it drawn in the circle area", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "s": { + "type": "sprite", + "description": "The sprite to test", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "c": { + "type": "circle", + "description": "The circle to check", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "sprite", + "method": "circle_collision", + "group": "physics", + "static": "collisions", + "self": "s" + }, + "signatures": { + "python": [ + "def sprite_circle_collision(s, c):" + ], + "csharp": [ + "public bool Sprite.CircleCollision(Circle c);", + "public static bool SplashKit.SpriteCircleCollision(Sprite s, Circle c);" + ], + "cpp": [ + "bool sprite_circle_collision(sprite s, const circle &c)" + ], + "pascal": [ + "function SpriteCircleCollision(s: Sprite; const c: Circle): Boolean" + ] + } + }, { "signature": "bool sprite_collision(sprite s1,sprite s2);", "name": "sprite_collision", @@ -63990,7 +69427,7 @@ } }, { - "signature": "bool sprite_point_collision(sprite s,const point_2d& pt);", + "signature": "bool sprite_point_collision(sprite s,const point_2d &pt);", "name": "sprite_point_collision", "method_name": "point_collision", "unique_global_name": "sprite_point_collision", @@ -64058,7 +69495,75 @@ } }, { - "signature": "bool sprite_ray_collision(sprite s,const point_2d& origin,const vector_2d& heading);", + "signature": "bool sprite_quad_collision(sprite s,const quad &q);", + "name": "sprite_quad_collision", + "method_name": "quad_collision", + "unique_global_name": "sprite_quad_collision", + "unique_method_name": "sprite.quad_collision", + "suffix_name": null, + "description": "Tests if a sprite is drawn within an given area (quad).", + "brief": null, + "return": { + "type": "bool", + "description": "True if the sprite it drawn in the quad area", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "s": { + "type": "sprite", + "description": "The sprite to test", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "q": { + "type": "quad", + "description": "The quad to check", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "sprite", + "method": "quad_collision", + "group": "physics", + "static": "collisions", + "self": "s" + }, + "signatures": { + "python": [ + "def sprite_quad_collision(s, q):" + ], + "csharp": [ + "public bool Sprite.QuadCollision(Quad q);", + "public static bool SplashKit.SpriteQuadCollision(Sprite s, Quad q);" + ], + "cpp": [ + "bool sprite_quad_collision(sprite s, const quad &q)" + ], + "pascal": [ + "function SpriteQuadCollision(s: Sprite; const q: Quad): Boolean" + ] + } + }, + { + "signature": "bool sprite_ray_collision(sprite s,const point_2d &origin,const vector_2d &heading);", "name": "sprite_ray_collision", "method_name": "ray_collision", "unique_global_name": "sprite_ray_collision", @@ -64139,7 +69644,7 @@ } }, { - "signature": "bool sprite_rectangle_collision(sprite s,const rectangle& rect);", + "signature": "bool sprite_rectangle_collision(sprite s,const rectangle &rect);", "name": "sprite_rectangle_collision", "method_name": "rectangle_collision", "unique_global_name": "sprite_rectangle_collision", @@ -64206,6 +69711,74 @@ ] } }, + { + "signature": "bool sprite_triangle_collision(sprite s,const triangle &t);", + "name": "sprite_triangle_collision", + "method_name": "triangle_collision", + "unique_global_name": "sprite_triangle_collision", + "unique_method_name": "sprite.triangle_collision", + "suffix_name": null, + "description": "Tests if a sprite is drawn within an given area (triangle).", + "brief": null, + "return": { + "type": "bool", + "description": "True if the sprite it drawn in the triangle area", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "s": { + "type": "sprite", + "description": "The sprite to test", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "t": { + "type": "triangle", + "description": "The triangle to check", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "sprite", + "method": "triangle_collision", + "group": "physics", + "static": "collisions", + "self": "s" + }, + "signatures": { + "python": [ + "def sprite_triangle_collision(s, t):" + ], + "csharp": [ + "public bool Sprite.TriangleCollision(Triangle t);", + "public static bool SplashKit.SpriteTriangleCollision(Sprite s, Triangle t);" + ], + "cpp": [ + "bool sprite_triangle_collision(sprite s, const triangle &t)" + ], + "pascal": [ + "function SpriteTriangleCollision(s: Sprite; const t: Triangle): Boolean" + ] + } + }, { "signature": "void apply_matrix(const matrix_2d &matrix,quad &q);", "name": "apply_matrix", @@ -67529,6 +73102,224 @@ ] } }, + { + "signature": "int raspi_spi_close(int handle);", + "name": "raspi_spi_close", + "method_name": null, + "unique_global_name": "raspi_spi_close", + "unique_method_name": null, + "suffix_name": null, + "description": "This function closes SPI communication on a particular channel.", + "brief": "Closes SPI communication on selected channel. It will return -1 if not using Raspberry Pi.", + "return": { + "type": "int", + "description": "A value indicating success or failure.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "handle": { + "type": "int", + "description": "A reference to the specific SPI connection to close.", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "group": "raspberry", + "static": "raspberry" + }, + "signatures": { + "python": [ + "def raspi_spi_close(handle):" + ], + "csharp": [ + "public static int SplashKit.RaspiSpiClose(int handle);" + ], + "cpp": [ + "int raspi_spi_close(int handle)" + ], + "pascal": [ + "function RaspiSpiClose(handle: Integer): Integer" + ] + } + }, + { + "signature": "int raspi_spi_open(int channel,int speed,int spi_flags);", + "name": "raspi_spi_open", + "method_name": null, + "unique_global_name": "raspi_spi_open", + "unique_method_name": null, + "suffix_name": null, + "description": "This function opens SPI communication on a particular channel. It will return -1 if not using Raspberry Pi.", + "brief": "Opens SPI communication on selected channel.", + "return": { + "type": "int", + "description": "The handle referencing this particular connection.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "channel": { + "type": "int", + "description": "The SPI channel to use.", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "speed": { + "type": "int", + "description": "The speed of data transfer (in baud).", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "spi_flags": { + "type": "int", + "description": "Optional flags for the SPI modes and settings.", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "group": "raspberry", + "static": "raspberry" + }, + "signatures": { + "python": [ + "def raspi_spi_open(channel, speed, spi_flags):" + ], + "csharp": [ + "public static int SplashKit.RaspiSpiOpen(int channel, int speed, int spiFlags);" + ], + "cpp": [ + "int raspi_spi_open(int channel, int speed, int spi_flags)" + ], + "pascal": [ + "function RaspiSpiOpen(channel: Integer; speed: Integer; spiFlags: Integer): Integer" + ] + } + }, + { + "signature": "int raspi_spi_transfer(int handle,string sendBuf,string recvBuf,int count);", + "name": "raspi_spi_transfer", + "method_name": null, + "unique_global_name": "raspi_spi_transfer", + "unique_method_name": null, + "suffix_name": null, + "description": "This function transfers data through SPI, it sends data from sendBuf and receives it into recvBuf.", + "brief": "Transfers data on specified SPI connection. It will return -1 if not using Raspberry Pi.", + "return": { + "type": "int", + "description": "The number of bytes that have actually been transfered.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "handle": { + "type": "int", + "description": "The reference for a specific SPI connection.", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "sendBuf": { + "type": "string", + "description": "The memory buffer for sending data.", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "recvBuf": { + "type": "string", + "description": "The memory buffer for receiving data.", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "count": { + "type": "int", + "description": "The number of bytes to be transferred.", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "group": "raspberry", + "static": "raspberry" + }, + "signatures": { + "python": [ + "def raspi_spi_transfer(handle, sendBuf, recvBuf, count):" + ], + "csharp": [ + "public static int SplashKit.RaspiSpiTransfer(int handle, string sendbuf, string recvbuf, int count);" + ], + "cpp": [ + "int raspi_spi_transfer(int handle, string sendBuf, string recvBuf, int count)" + ], + "pascal": [ + "function RaspiSpiTransfer(handle: Integer; sendbuf: String; recvbuf: String; count: Integer): Integer" + ] + } + }, { "signature": "void raspi_write(pins pin,pin_values value);", "name": "raspi_write", diff --git a/generated/pascal/splashkit.pas b/generated/pascal/splashkit.pas index f2ab51a6..2178194e 100644 --- a/generated/pascal/splashkit.pas +++ b/generated/pascal/splashkit.pas @@ -492,7 +492,10 @@ procedure FillCircleOnWindow(destination: Window; clr: Color; x: Double; y: Doub function CenterPoint(const c: Circle): Point2D; function CircleAt(const pt: Point2D; radius: Double): Circle; function CircleAt(x: Double; y: Double; radius: Double): Circle; +function CircleQuadIntersect(const c: Circle; const q: Quad): Boolean; function CircleRadius(c: Circle): Single; +function CircleRayIntersection(const origin: Point2D; const heading: Vector2D; const circ: Circle): Boolean; +function CircleRayIntersection(const origin: Point2D; const heading: Vector2D; const circ: Circle; var hitPoint: Point2D; var hitDistance: Double): Boolean; function CircleTriangleIntersect(const c: Circle; const tri: Triangle): Boolean; function CircleTriangleIntersect(const c: Circle; const tri: Triangle; var p: Point2D): Boolean; function CircleX(const c: Circle): Single; @@ -539,7 +542,11 @@ function BitmapPointCollision(bmp: Bitmap; bmpX: Double; bmpY: Double; x: Double function BitmapPointCollision(bmp: Bitmap; cell: Integer; const translation: Matrix2D; const pt: Point2D): Boolean; function BitmapPointCollision(bmp: Bitmap; cell: Integer; const bmpPt: Point2D; const pt: Point2D): Boolean; function BitmapPointCollision(bmp: Bitmap; cell: Integer; bmpX: Double; bmpY: Double; x: Double; y: Double): Boolean; +function BitmapQuadCollision(bmp: Bitmap; const pt: Point2D; const q: Quad): Boolean; +function BitmapQuadCollision(bmp: Bitmap; x: Double; y: Double; const q: Quad): Boolean; function BitmapQuadCollision(bmp: Bitmap; cell: Integer; const translation: Matrix2D; const q: Quad): Boolean; +function BitmapQuadCollision(bmp: Bitmap; cell: Integer; const pt: Point2D; const q: Quad): Boolean; +function BitmapQuadCollision(bmp: Bitmap; cell: Integer; x: Double; y: Double; const q: Quad): Boolean; function BitmapRayCollision(bmp: Bitmap; const pt: Point2D; const origin: Point2D; const heading: Vector2D): Boolean; function BitmapRayCollision(bmp: Bitmap; x: Double; y: Double; const origin: Point2D; const heading: Vector2D): Boolean; function BitmapRayCollision(bmp: Bitmap; cell: Integer; const translation: Matrix2D; const origin: Point2D; const heading: Vector2D): Boolean; @@ -550,13 +557,71 @@ function BitmapRectangleCollision(bmp: Bitmap; x: Double; y: Double; const rect: function BitmapRectangleCollision(bmp: Bitmap; cell: Integer; const translation: Matrix2D; const rect: Rectangle): Boolean; function BitmapRectangleCollision(bmp: Bitmap; cell: Integer; const pt: Point2D; const rect: Rectangle): Boolean; function BitmapRectangleCollision(bmp: Bitmap; cell: Integer; x: Double; y: Double; const rect: Rectangle): Boolean; +function BitmapTriangleCollision(bmp: Bitmap; const pt: Point2D; const tri: Triangle): Boolean; +function BitmapTriangleCollision(bmp: Bitmap; x: Double; y: Double; const tri: Triangle): Boolean; +function BitmapTriangleCollision(bmp: Bitmap; cell: Integer; const translation: Matrix2D; const tri: Triangle): Boolean; +function BitmapTriangleCollision(bmp: Bitmap; cell: Integer; const pt: Point2D; const tri: Triangle): Boolean; +function BitmapTriangleCollision(bmp: Bitmap; cell: Integer; x: Double; y: Double; const tri: Triangle): Boolean; +function CalculateCollisionDirection(const collider: Quad; const collidee: Quad): Vector2D; +function CalculateCollisionDirection(const collider: Circle; const collidee: Circle): Vector2D; +function CalculateCollisionDirection(const collider: Circle; const collidee: Quad): Vector2D; +function CalculateCollisionDirection(const collider: Circle; const collidee: Rectangle): Vector2D; +function CalculateCollisionDirection(const collider: Circle; collidee: Sprite): Vector2D; +function CalculateCollisionDirection(const collider: Circle; const collidee: Triangle): Vector2D; +function CalculateCollisionDirection(const collider: Quad; const collidee: Circle): Vector2D; +function CalculateCollisionDirection(const collider: Quad; const collidee: Rectangle): Vector2D; +function CalculateCollisionDirection(const collider: Quad; collidee: Sprite): Vector2D; +function CalculateCollisionDirection(const collider: Quad; const collidee: Triangle): Vector2D; +function CalculateCollisionDirection(const collider: Rectangle; const collidee: Circle): Vector2D; +function CalculateCollisionDirection(const collider: Rectangle; const collidee: Quad): Vector2D; +function CalculateCollisionDirection(const collider: Rectangle; const collidee: Rectangle): Vector2D; +function CalculateCollisionDirection(const collider: Rectangle; collidee: Sprite): Vector2D; +function CalculateCollisionDirection(const collider: Rectangle; const collidee: Triangle): Vector2D; +function CalculateCollisionDirection(collider: Sprite; const collidee: Circle): Vector2D; +function CalculateCollisionDirection(collider: Sprite; const collidee: Quad): Vector2D; +function CalculateCollisionDirection(collider: Sprite; const collidee: Rectangle): Vector2D; +function CalculateCollisionDirection(collider: Sprite; collidee: Sprite): Vector2D; +function CalculateCollisionDirection(collider: Sprite; const collidee: Triangle): Vector2D; +function CalculateCollisionDirection(const collider: Triangle; const collidee: Circle): Vector2D; +function CalculateCollisionDirection(const collider: Triangle; const collidee: Quad): Vector2D; +function CalculateCollisionDirection(const collider: Triangle; const collidee: Rectangle): Vector2D; +function CalculateCollisionDirection(const collider: Triangle; collidee: Sprite): Vector2D; +function CalculateCollisionDirection(const collider: Triangle; const collidee: Triangle): Vector2D; +function ResolveCollision(var collider: Quad; const collidee: Quad; const direction: Vector2D): Boolean; +function ResolveCollision(var collider: Circle; const collidee: Circle; const direction: Vector2D): Boolean; +function ResolveCollision(var collider: Circle; const collidee: Quad; const direction: Vector2D): Boolean; +function ResolveCollision(var collider: Circle; const collidee: Rectangle; const direction: Vector2D): Boolean; +function ResolveCollision(var collider: Circle; collidee: Sprite; const direction: Vector2D): Boolean; +function ResolveCollision(var collider: Circle; const collidee: Triangle; const direction: Vector2D): Boolean; +function ResolveCollision(var collider: Quad; const collidee: Circle; const direction: Vector2D): Boolean; +function ResolveCollision(var collider: Quad; const collidee: Rectangle; const direction: Vector2D): Boolean; +function ResolveCollision(var collider: Quad; collidee: Sprite; const direction: Vector2D): Boolean; +function ResolveCollision(var collider: Quad; const collidee: Triangle; const direction: Vector2D): Boolean; +function ResolveCollision(var collider: Rectangle; const collidee: Circle; const direction: Vector2D): Boolean; +function ResolveCollision(var collider: Rectangle; const collidee: Quad; const direction: Vector2D): Boolean; +function ResolveCollision(var collider: Rectangle; const collidee: Rectangle; const direction: Vector2D): Boolean; +function ResolveCollision(var collider: Rectangle; collidee: Sprite; const direction: Vector2D): Boolean; +function ResolveCollision(var collider: Rectangle; const collidee: Triangle; const direction: Vector2D): Boolean; +function ResolveCollision(collider: Sprite; const collidee: Circle; const direction: Vector2D): Boolean; +function ResolveCollision(collider: Sprite; const collidee: Quad; const direction: Vector2D): Boolean; +function ResolveCollision(collider: Sprite; const collidee: Rectangle; const direction: Vector2D): Boolean; +function ResolveCollision(collider: Sprite; collidee: Sprite; const direction: Vector2D): Boolean; +function ResolveCollision(collider: Sprite; const collidee: Triangle; const direction: Vector2D): Boolean; +function ResolveCollision(var collider: Triangle; const collidee: Circle; const direction: Vector2D): Boolean; +function ResolveCollision(var collider: Triangle; const collidee: Quad; const direction: Vector2D): Boolean; +function ResolveCollision(var collider: Triangle; const collidee: Rectangle; const direction: Vector2D): Boolean; +function ResolveCollision(var collider: Triangle; collidee: Sprite; const direction: Vector2D): Boolean; +function ResolveCollision(var collider: Triangle; const collidee: Triangle; const direction: Vector2D): Boolean; function SpriteBitmapCollision(s: Sprite; bmp: Bitmap; x: Double; y: Double): Boolean; function SpriteBitmapCollision(s: Sprite; bmp: Bitmap; cell: Integer; const pt: Point2D): Boolean; function SpriteBitmapCollision(s: Sprite; bmp: Bitmap; cell: Integer; x: Double; y: Double): Boolean; +function SpriteCircleCollision(s: Sprite; const c: Circle): Boolean; function SpriteCollision(s1: Sprite; s2: Sprite): Boolean; function SpritePointCollision(s: Sprite; const pt: Point2D): Boolean; +function SpriteQuadCollision(s: Sprite; const q: Quad): Boolean; function SpriteRayCollision(s: Sprite; const origin: Point2D; const heading: Vector2D): Boolean; function SpriteRectangleCollision(s: Sprite; const rect: Rectangle): Boolean; +function SpriteTriangleCollision(s: Sprite; const t: Triangle): Boolean; function AlphaOf(c: Color): Integer; function BlueOf(c: Color): Integer; function BrightnessOf(c: Color): Double; @@ -1081,6 +1146,7 @@ function ConnectionPort(const name: String): Word; function CreateServer(const name: String; port: Word): ServerSocket; function CreateServer(const name: String; port: Word; protocol: ConnectionType): ServerSocket; function DecToHex(aDec: Cardinal): String; +function DecToIpv4(ip: Cardinal): String; function FetchNewConnection(server: ServerSocket): Connection; function HasConnection(const name: String): Boolean; function HasMessages(): Boolean; @@ -1093,7 +1159,6 @@ function HexStrToIpv4(const aHex: String): String; function HexToDecString(const aHex: String): String; function Ipv4ToDec(const aIP: String): Cardinal; function Ipv4ToHex(const aIP: String): String; -function Ipv4ToStr(ip: Cardinal): String; function IsConnectionOpen(con: Connection): Boolean; function IsConnectionOpen(const name: String): Boolean; function IsValidIpv4(const ip: String): Boolean; @@ -1178,6 +1243,8 @@ function QuadFrom(const p1: Point2D; const p2: Point2D; const p3: Point2D; const function QuadFrom(const rect: Rectangle): Quad; function QuadFrom(const rect: Rectangle; const transform: Matrix2D): Quad; function QuadFrom(xTopLeft: Double; yTopLeft: Double; xTopRight: Double; yTopRight: Double; xBottomLeft: Double; yBottomLeft: Double; xBottomRight: Double; yBottomRight: Double): Quad; +function QuadRayIntersection(const origin: Point2D; const heading: Vector2D; const q: Quad): Boolean; +function QuadRayIntersection(const origin: Point2D; const heading: Vector2D; const q: Quad; var hitPoint: Point2D; var hitDistance: Double): Boolean; function QuadsIntersect(const q1: Quad; const q2: Quad): Boolean; procedure SetQuadPoint(var q: Quad; idx: Integer; const value: Point2D); function TrianglesFrom(const q: Quad): ArrayOfTriangle; @@ -1194,6 +1261,9 @@ procedure RaspiSetPullUpDown(pin: Pins; pud: PullUpDown); procedure RaspiSetPwmDutycycle(pin: Pins; dutycycle: Integer); procedure RaspiSetPwmFrequency(pin: Pins; frequency: Integer); procedure RaspiSetPwmRange(pin: Pins; range: Integer); +function RaspiSpiClose(handle: Integer): Integer; +function RaspiSpiOpen(channel: Integer; speed: Integer; spiFlags: Integer): Integer; +function RaspiSpiTransfer(handle: Integer; sendbuf: String; recvbuf: String; count: Integer): Integer; procedure RaspiWrite(pin: Pins; value: PinValues); procedure DrawQuad(clr: Color; const q: Quad); procedure DrawQuad(clr: Color; const q: Quad; const opts: DrawingOptions); @@ -1239,11 +1309,14 @@ function RectangleAround(const q: Quad): Rectangle; function RectangleAround(const t: Triangle): Rectangle; function RectangleBottom(const rect: Rectangle): Double; function RectangleCenter(const rect: Rectangle): Point2D; +function RectangleCircleIntersect(const rect: Rectangle; const c: Circle): Boolean; function RectangleFrom(pt: Point2D; width: Double; height: Double): Rectangle; function RectangleFrom(pt1: Point2D; pt2: Point2D): Rectangle; function RectangleFrom(x: Double; y: Double; width: Double; height: Double): Rectangle; function RectangleLeft(const rect: Rectangle): Double; function RectangleOffsetBy(const rect: Rectangle; const offset: Vector2D): Rectangle; +function RectangleRayIntersection(const origin: Point2D; const heading: Vector2D; const rect: Rectangle): Boolean; +function RectangleRayIntersection(const origin: Point2D; const heading: Vector2D; const rect: Rectangle; var hitPoint: Point2D; var hitDistance: Double): Boolean; function RectangleRight(const rect: Rectangle): Double; function RectangleToString(const rect: Rectangle): String; function RectangleTop(const rect: Rectangle): Double; @@ -1523,6 +1596,9 @@ procedure FillTriangleOnWindow(destination: Window; clr: Color; x1: Double; y1: function TriangleBarycenter(const tri: Triangle): Point2D; function TriangleFrom(const p1: Point2D; const p2: Point2D; const p3: Point2D): Triangle; function TriangleFrom(x1: Double; y1: Double; x2: Double; y2: Double; x3: Double; y3: Double): Triangle; +function TriangleQuadIntersect(const tri: Triangle; const q: Quad): Boolean; +function TriangleRayIntersection(const origin: Point2D; const heading: Vector2D; const tri: Triangle): Boolean; +function TriangleRayIntersection(const origin: Point2D; const heading: Vector2D; const tri: Triangle; var hitPoint: Point2D; var hitDistance: Double): Boolean; function TriangleRectangleIntersect(const tri: Triangle; const rect: Rectangle): Boolean; function TriangleToString(const tri: Triangle): String; function TrianglesIntersect(const t1: Triangle; const t2: Triangle): Boolean; @@ -2716,7 +2792,10 @@ procedure __sklib__fill_circle_on_window__window__color__double__double__double_ function __sklib__center_point__circle_ref(const c: __sklib_circle): __sklib_point_2d; cdecl; external; function __sklib__circle_at__point_2d_ref__double(const pt: __sklib_point_2d; radius: Double): __sklib_circle; cdecl; external; function __sklib__circle_at__double__double__double(x: Double; y: Double; radius: Double): __sklib_circle; cdecl; external; +function __sklib__circle_quad_intersect__circle_ref__quad_ref(const c: __sklib_circle; const q: __sklib_quad): LongInt; cdecl; external; function __sklib__circle_radius__circle(c: __sklib_circle): Single; cdecl; external; +function __sklib__circle_ray_intersection__point_2d_ref__vector_2d_ref__circle_ref(const origin: __sklib_point_2d; const heading: __sklib_vector_2d; const circ: __sklib_circle): LongInt; cdecl; external; +function __sklib__circle_ray_intersection__point_2d_ref__vector_2d_ref__circle_ref__point_2d_ref__double_ref(const origin: __sklib_point_2d; const heading: __sklib_vector_2d; const circ: __sklib_circle; var hitPoint: __sklib_point_2d; var hitDistance: Double): LongInt; cdecl; external; function __sklib__circle_triangle_intersect__circle_ref__triangle_ref(const c: __sklib_circle; const tri: __sklib_triangle): LongInt; cdecl; external; function __sklib__circle_triangle_intersect__circle_ref__triangle_ref__point_2d_ref(const c: __sklib_circle; const tri: __sklib_triangle; var p: __sklib_point_2d): LongInt; cdecl; external; function __sklib__circle_x__circle_ref(const c: __sklib_circle): Single; cdecl; external; @@ -2763,7 +2842,11 @@ function __sklib__bitmap_point_collision__bitmap__double__double__double__double function __sklib__bitmap_point_collision__bitmap__int__matrix_2d_ref__point_2d_ref(bmp: __sklib_ptr; cell: Integer; const translation: __sklib_matrix_2d; const pt: __sklib_point_2d): LongInt; cdecl; external; function __sklib__bitmap_point_collision__bitmap__int__point_2d_ref__point_2d_ref(bmp: __sklib_ptr; cell: Integer; const bmpPt: __sklib_point_2d; const pt: __sklib_point_2d): LongInt; cdecl; external; function __sklib__bitmap_point_collision__bitmap__int__double__double__double__double(bmp: __sklib_ptr; cell: Integer; bmpX: Double; bmpY: Double; x: Double; y: Double): LongInt; cdecl; external; +function __sklib__bitmap_quad_collision__bitmap__point_2d_ref__quad_ref(bmp: __sklib_ptr; const pt: __sklib_point_2d; const q: __sklib_quad): LongInt; cdecl; external; +function __sklib__bitmap_quad_collision__bitmap__double__double__quad_ref(bmp: __sklib_ptr; x: Double; y: Double; const q: __sklib_quad): LongInt; cdecl; external; function __sklib__bitmap_quad_collision__bitmap__int__matrix_2d_ref__quad_ref(bmp: __sklib_ptr; cell: Integer; const translation: __sklib_matrix_2d; const q: __sklib_quad): LongInt; cdecl; external; +function __sklib__bitmap_quad_collision__bitmap__int__point_2d_ref__quad_ref(bmp: __sklib_ptr; cell: Integer; const pt: __sklib_point_2d; const q: __sklib_quad): LongInt; cdecl; external; +function __sklib__bitmap_quad_collision__bitmap__int__double__double__quad_ref(bmp: __sklib_ptr; cell: Integer; x: Double; y: Double; const q: __sklib_quad): LongInt; cdecl; external; function __sklib__bitmap_ray_collision__bitmap__point_2d_ref__point_2d_ref__vector_2d_ref(bmp: __sklib_ptr; const pt: __sklib_point_2d; const origin: __sklib_point_2d; const heading: __sklib_vector_2d): LongInt; cdecl; external; function __sklib__bitmap_ray_collision__bitmap__double__double__point_2d_ref__vector_2d_ref(bmp: __sklib_ptr; x: Double; y: Double; const origin: __sklib_point_2d; const heading: __sklib_vector_2d): LongInt; cdecl; external; function __sklib__bitmap_ray_collision__bitmap__int__matrix_2d_ref__point_2d_ref__vector_2d_ref(bmp: __sklib_ptr; cell: Integer; const translation: __sklib_matrix_2d; const origin: __sklib_point_2d; const heading: __sklib_vector_2d): LongInt; cdecl; external; @@ -2774,13 +2857,71 @@ function __sklib__bitmap_rectangle_collision__bitmap__double__double__rectangle_ function __sklib__bitmap_rectangle_collision__bitmap__int__matrix_2d_ref__rectangle_ref(bmp: __sklib_ptr; cell: Integer; const translation: __sklib_matrix_2d; const rect: __sklib_rectangle): LongInt; cdecl; external; function __sklib__bitmap_rectangle_collision__bitmap__int__point_2d_ref__rectangle_ref(bmp: __sklib_ptr; cell: Integer; const pt: __sklib_point_2d; const rect: __sklib_rectangle): LongInt; cdecl; external; function __sklib__bitmap_rectangle_collision__bitmap__int__double__double__rectangle_ref(bmp: __sklib_ptr; cell: Integer; x: Double; y: Double; const rect: __sklib_rectangle): LongInt; cdecl; external; +function __sklib__bitmap_triangle_collision__bitmap__point_2d_ref__triangle_ref(bmp: __sklib_ptr; const pt: __sklib_point_2d; const tri: __sklib_triangle): LongInt; cdecl; external; +function __sklib__bitmap_triangle_collision__bitmap__double__double__triangle_ref(bmp: __sklib_ptr; x: Double; y: Double; const tri: __sklib_triangle): LongInt; cdecl; external; +function __sklib__bitmap_triangle_collision__bitmap__int__matrix_2d_ref__triangle_ref(bmp: __sklib_ptr; cell: Integer; const translation: __sklib_matrix_2d; const tri: __sklib_triangle): LongInt; cdecl; external; +function __sklib__bitmap_triangle_collision__bitmap__int__point_2d_ref__triangle_ref(bmp: __sklib_ptr; cell: Integer; const pt: __sklib_point_2d; const tri: __sklib_triangle): LongInt; cdecl; external; +function __sklib__bitmap_triangle_collision__bitmap__int__double__double__triangle_ref(bmp: __sklib_ptr; cell: Integer; x: Double; y: Double; const tri: __sklib_triangle): LongInt; cdecl; external; +function __sklib__calculate_collision_direction__quad_ref__quad_ref(const collider: __sklib_quad; const collidee: __sklib_quad): __sklib_vector_2d; cdecl; external; +function __sklib__calculate_collision_direction__circle_ref__circle_ref(const collider: __sklib_circle; const collidee: __sklib_circle): __sklib_vector_2d; cdecl; external; +function __sklib__calculate_collision_direction__circle_ref__quad_ref(const collider: __sklib_circle; const collidee: __sklib_quad): __sklib_vector_2d; cdecl; external; +function __sklib__calculate_collision_direction__circle_ref__rectangle_ref(const collider: __sklib_circle; const collidee: __sklib_rectangle): __sklib_vector_2d; cdecl; external; +function __sklib__calculate_collision_direction__circle_ref__sprite(const collider: __sklib_circle; collidee: __sklib_ptr): __sklib_vector_2d; cdecl; external; +function __sklib__calculate_collision_direction__circle_ref__triangle_ref(const collider: __sklib_circle; const collidee: __sklib_triangle): __sklib_vector_2d; cdecl; external; +function __sklib__calculate_collision_direction__quad_ref__circle_ref(const collider: __sklib_quad; const collidee: __sklib_circle): __sklib_vector_2d; cdecl; external; +function __sklib__calculate_collision_direction__quad_ref__rectangle_ref(const collider: __sklib_quad; const collidee: __sklib_rectangle): __sklib_vector_2d; cdecl; external; +function __sklib__calculate_collision_direction__quad_ref__sprite(const collider: __sklib_quad; collidee: __sklib_ptr): __sklib_vector_2d; cdecl; external; +function __sklib__calculate_collision_direction__quad_ref__triangle_ref(const collider: __sklib_quad; const collidee: __sklib_triangle): __sklib_vector_2d; cdecl; external; +function __sklib__calculate_collision_direction__rectangle_ref__circle_ref(const collider: __sklib_rectangle; const collidee: __sklib_circle): __sklib_vector_2d; cdecl; external; +function __sklib__calculate_collision_direction__rectangle_ref__quad_ref(const collider: __sklib_rectangle; const collidee: __sklib_quad): __sklib_vector_2d; cdecl; external; +function __sklib__calculate_collision_direction__rectangle_ref__rectangle_ref(const collider: __sklib_rectangle; const collidee: __sklib_rectangle): __sklib_vector_2d; cdecl; external; +function __sklib__calculate_collision_direction__rectangle_ref__sprite(const collider: __sklib_rectangle; collidee: __sklib_ptr): __sklib_vector_2d; cdecl; external; +function __sklib__calculate_collision_direction__rectangle_ref__triangle_ref(const collider: __sklib_rectangle; const collidee: __sklib_triangle): __sklib_vector_2d; cdecl; external; +function __sklib__calculate_collision_direction__sprite__circle_ref(collider: __sklib_ptr; const collidee: __sklib_circle): __sklib_vector_2d; cdecl; external; +function __sklib__calculate_collision_direction__sprite__quad_ref(collider: __sklib_ptr; const collidee: __sklib_quad): __sklib_vector_2d; cdecl; external; +function __sklib__calculate_collision_direction__sprite__rectangle_ref(collider: __sklib_ptr; const collidee: __sklib_rectangle): __sklib_vector_2d; cdecl; external; +function __sklib__calculate_collision_direction__sprite__sprite(collider: __sklib_ptr; collidee: __sklib_ptr): __sklib_vector_2d; cdecl; external; +function __sklib__calculate_collision_direction__sprite__triangle_ref(collider: __sklib_ptr; const collidee: __sklib_triangle): __sklib_vector_2d; cdecl; external; +function __sklib__calculate_collision_direction__triangle_ref__circle_ref(const collider: __sklib_triangle; const collidee: __sklib_circle): __sklib_vector_2d; cdecl; external; +function __sklib__calculate_collision_direction__triangle_ref__quad_ref(const collider: __sklib_triangle; const collidee: __sklib_quad): __sklib_vector_2d; cdecl; external; +function __sklib__calculate_collision_direction__triangle_ref__rectangle_ref(const collider: __sklib_triangle; const collidee: __sklib_rectangle): __sklib_vector_2d; cdecl; external; +function __sklib__calculate_collision_direction__triangle_ref__sprite(const collider: __sklib_triangle; collidee: __sklib_ptr): __sklib_vector_2d; cdecl; external; +function __sklib__calculate_collision_direction__triangle_ref__triangle_ref(const collider: __sklib_triangle; const collidee: __sklib_triangle): __sklib_vector_2d; cdecl; external; +function __sklib__resolve_collision__quad_ref__quad_ref__vector_2d_ref(var collider: __sklib_quad; const collidee: __sklib_quad; const direction: __sklib_vector_2d): LongInt; cdecl; external; +function __sklib__resolve_collision__circle_ref__circle_ref__vector_2d_ref(var collider: __sklib_circle; const collidee: __sklib_circle; const direction: __sklib_vector_2d): LongInt; cdecl; external; +function __sklib__resolve_collision__circle_ref__quad_ref__vector_2d_ref(var collider: __sklib_circle; const collidee: __sklib_quad; const direction: __sklib_vector_2d): LongInt; cdecl; external; +function __sklib__resolve_collision__circle_ref__rectangle_ref__vector_2d_ref(var collider: __sklib_circle; const collidee: __sklib_rectangle; const direction: __sklib_vector_2d): LongInt; cdecl; external; +function __sklib__resolve_collision__circle_ref__sprite__vector_2d_ref(var collider: __sklib_circle; collidee: __sklib_ptr; const direction: __sklib_vector_2d): LongInt; cdecl; external; +function __sklib__resolve_collision__circle_ref__triangle_ref__vector_2d_ref(var collider: __sklib_circle; const collidee: __sklib_triangle; const direction: __sklib_vector_2d): LongInt; cdecl; external; +function __sklib__resolve_collision__quad_ref__circle_ref__vector_2d_ref(var collider: __sklib_quad; const collidee: __sklib_circle; const direction: __sklib_vector_2d): LongInt; cdecl; external; +function __sklib__resolve_collision__quad_ref__rectangle_ref__vector_2d_ref(var collider: __sklib_quad; const collidee: __sklib_rectangle; const direction: __sklib_vector_2d): LongInt; cdecl; external; +function __sklib__resolve_collision__quad_ref__sprite__vector_2d_ref(var collider: __sklib_quad; collidee: __sklib_ptr; const direction: __sklib_vector_2d): LongInt; cdecl; external; +function __sklib__resolve_collision__quad_ref__triangle_ref__vector_2d_ref(var collider: __sklib_quad; const collidee: __sklib_triangle; const direction: __sklib_vector_2d): LongInt; cdecl; external; +function __sklib__resolve_collision__rectangle_ref__circle_ref__vector_2d_ref(var collider: __sklib_rectangle; const collidee: __sklib_circle; const direction: __sklib_vector_2d): LongInt; cdecl; external; +function __sklib__resolve_collision__rectangle_ref__quad_ref__vector_2d_ref(var collider: __sklib_rectangle; const collidee: __sklib_quad; const direction: __sklib_vector_2d): LongInt; cdecl; external; +function __sklib__resolve_collision__rectangle_ref__rectangle_ref__vector_2d_ref(var collider: __sklib_rectangle; const collidee: __sklib_rectangle; const direction: __sklib_vector_2d): LongInt; cdecl; external; +function __sklib__resolve_collision__rectangle_ref__sprite__vector_2d_ref(var collider: __sklib_rectangle; collidee: __sklib_ptr; const direction: __sklib_vector_2d): LongInt; cdecl; external; +function __sklib__resolve_collision__rectangle_ref__triangle_ref__vector_2d_ref(var collider: __sklib_rectangle; const collidee: __sklib_triangle; const direction: __sklib_vector_2d): LongInt; cdecl; external; +function __sklib__resolve_collision__sprite__circle_ref__vector_2d_ref(collider: __sklib_ptr; const collidee: __sklib_circle; const direction: __sklib_vector_2d): LongInt; cdecl; external; +function __sklib__resolve_collision__sprite__quad_ref__vector_2d_ref(collider: __sklib_ptr; const collidee: __sklib_quad; const direction: __sklib_vector_2d): LongInt; cdecl; external; +function __sklib__resolve_collision__sprite__rectangle_ref__vector_2d_ref(collider: __sklib_ptr; const collidee: __sklib_rectangle; const direction: __sklib_vector_2d): LongInt; cdecl; external; +function __sklib__resolve_collision__sprite__sprite__vector_2d_ref(collider: __sklib_ptr; collidee: __sklib_ptr; const direction: __sklib_vector_2d): LongInt; cdecl; external; +function __sklib__resolve_collision__sprite__triangle_ref__vector_2d_ref(collider: __sklib_ptr; const collidee: __sklib_triangle; const direction: __sklib_vector_2d): LongInt; cdecl; external; +function __sklib__resolve_collision__triangle_ref__circle_ref__vector_2d_ref(var collider: __sklib_triangle; const collidee: __sklib_circle; const direction: __sklib_vector_2d): LongInt; cdecl; external; +function __sklib__resolve_collision__triangle_ref__quad_ref__vector_2d_ref(var collider: __sklib_triangle; const collidee: __sklib_quad; const direction: __sklib_vector_2d): LongInt; cdecl; external; +function __sklib__resolve_collision__triangle_ref__rectangle_ref__vector_2d_ref(var collider: __sklib_triangle; const collidee: __sklib_rectangle; const direction: __sklib_vector_2d): LongInt; cdecl; external; +function __sklib__resolve_collision__triangle_ref__sprite__vector_2d_ref(var collider: __sklib_triangle; collidee: __sklib_ptr; const direction: __sklib_vector_2d): LongInt; cdecl; external; +function __sklib__resolve_collision__triangle_ref__triangle_ref__vector_2d_ref(var collider: __sklib_triangle; const collidee: __sklib_triangle; const direction: __sklib_vector_2d): LongInt; cdecl; external; function __sklib__sprite_bitmap_collision__sprite__bitmap__double__double(s: __sklib_ptr; bmp: __sklib_ptr; x: Double; y: Double): LongInt; cdecl; external; function __sklib__sprite_bitmap_collision__sprite__bitmap__int__point_2d_ref(s: __sklib_ptr; bmp: __sklib_ptr; cell: Integer; const pt: __sklib_point_2d): LongInt; cdecl; external; function __sklib__sprite_bitmap_collision__sprite__bitmap__int__double__double(s: __sklib_ptr; bmp: __sklib_ptr; cell: Integer; x: Double; y: Double): LongInt; cdecl; external; +function __sklib__sprite_circle_collision__sprite__circle_ref(s: __sklib_ptr; const c: __sklib_circle): LongInt; cdecl; external; function __sklib__sprite_collision__sprite__sprite(s1: __sklib_ptr; s2: __sklib_ptr): LongInt; cdecl; external; function __sklib__sprite_point_collision__sprite__point_2d_ref(s: __sklib_ptr; const pt: __sklib_point_2d): LongInt; cdecl; external; +function __sklib__sprite_quad_collision__sprite__quad_ref(s: __sklib_ptr; const q: __sklib_quad): LongInt; cdecl; external; function __sklib__sprite_ray_collision__sprite__point_2d_ref__vector_2d_ref(s: __sklib_ptr; const origin: __sklib_point_2d; const heading: __sklib_vector_2d): LongInt; cdecl; external; function __sklib__sprite_rectangle_collision__sprite__rectangle_ref(s: __sklib_ptr; const rect: __sklib_rectangle): LongInt; cdecl; external; +function __sklib__sprite_triangle_collision__sprite__triangle_ref(s: __sklib_ptr; const t: __sklib_triangle): LongInt; cdecl; external; function __sklib__alpha_of__color(c: __sklib_color): Integer; cdecl; external; function __sklib__blue_of__color(c: __sklib_color): Integer; cdecl; external; function __sklib__brightness_of__color(c: __sklib_color): Double; cdecl; external; @@ -3305,6 +3446,7 @@ function __sklib__connection_port__string_ref(const name: __sklib_string): Word; function __sklib__create_server__string_ref__unsigned_short(const name: __sklib_string; port: Word): __sklib_ptr; cdecl; external; function __sklib__create_server__string_ref__unsigned_short__connection_type(const name: __sklib_string; port: Word; protocol: LongInt): __sklib_ptr; cdecl; external; function __sklib__dec_to_hex__unsigned_int(aDec: Cardinal): __sklib_string; cdecl; external; +function __sklib__dec_to_ipv4__unsigned_int(ip: Cardinal): __sklib_string; cdecl; external; function __sklib__fetch_new_connection__server_socket(server: __sklib_ptr): __sklib_ptr; cdecl; external; function __sklib__has_connection__string_ref(const name: __sklib_string): LongInt; cdecl; external; function __sklib__has_messages(): LongInt; cdecl; external; @@ -3317,7 +3459,6 @@ function __sklib__hex_str_to_ipv4__string_ref(const aHex: __sklib_string): __skl function __sklib__hex_to_dec_string__string_ref(const aHex: __sklib_string): __sklib_string; cdecl; external; function __sklib__ipv4_to_dec__string_ref(const aIP: __sklib_string): Cardinal; cdecl; external; function __sklib__ipv4_to_hex__string_ref(const aIP: __sklib_string): __sklib_string; cdecl; external; -function __sklib__ipv4_to_str__unsigned_int(ip: Cardinal): __sklib_string; cdecl; external; function __sklib__is_connection_open__connection(con: __sklib_ptr): LongInt; cdecl; external; function __sklib__is_connection_open__string_ref(const name: __sklib_string): LongInt; cdecl; external; function __sklib__is_valid_ipv4__string_ref(const ip: __sklib_string): LongInt; cdecl; external; @@ -3402,6 +3543,8 @@ function __sklib__quad_from__point_2d_ref__point_2d_ref__point_2d_ref__point_2d_ function __sklib__quad_from__rectangle_ref(const rect: __sklib_rectangle): __sklib_quad; cdecl; external; function __sklib__quad_from__rectangle_ref__matrix_2d_ref(const rect: __sklib_rectangle; const transform: __sklib_matrix_2d): __sklib_quad; cdecl; external; function __sklib__quad_from__double__double__double__double__double__double__double__double(xTopLeft: Double; yTopLeft: Double; xTopRight: Double; yTopRight: Double; xBottomLeft: Double; yBottomLeft: Double; xBottomRight: Double; yBottomRight: Double): __sklib_quad; cdecl; external; +function __sklib__quad_ray_intersection__point_2d_ref__vector_2d_ref__quad_ref(const origin: __sklib_point_2d; const heading: __sklib_vector_2d; const q: __sklib_quad): LongInt; cdecl; external; +function __sklib__quad_ray_intersection__point_2d_ref__vector_2d_ref__quad_ref__point_2d_ref__double_ref(const origin: __sklib_point_2d; const heading: __sklib_vector_2d; const q: __sklib_quad; var hitPoint: __sklib_point_2d; var hitDistance: Double): LongInt; cdecl; external; function __sklib__quads_intersect__quad_ref__quad_ref(const q1: __sklib_quad; const q2: __sklib_quad): LongInt; cdecl; external; procedure __sklib__set_quad_point__quad_ref__int__point_2d_ref(var q: __sklib_quad; idx: Integer; const value: __sklib_point_2d); cdecl; external; function __sklib__triangles_from__quad_ref(const q: __sklib_quad): __sklib_vector_triangle; cdecl; external; @@ -3418,6 +3561,9 @@ procedure __sklib__raspi_set_pull_up_down__pins__pull_up_down(pin: LongInt; pud: procedure __sklib__raspi_set_pwm_dutycycle__pins__int(pin: LongInt; dutycycle: Integer); cdecl; external; procedure __sklib__raspi_set_pwm_frequency__pins__int(pin: LongInt; frequency: Integer); cdecl; external; procedure __sklib__raspi_set_pwm_range__pins__int(pin: LongInt; range: Integer); cdecl; external; +function __sklib__raspi_spi_close__int(handle: Integer): Integer; cdecl; external; +function __sklib__raspi_spi_open__int__int__int(channel: Integer; speed: Integer; spiFlags: Integer): Integer; cdecl; external; +function __sklib__raspi_spi_transfer__int__string__string__int(handle: Integer; sendbuf: __sklib_string; recvbuf: __sklib_string; count: Integer): Integer; cdecl; external; procedure __sklib__raspi_write__pins__pin_values(pin: LongInt; value: LongInt); cdecl; external; procedure __sklib__draw_quad__color__quad_ref(clr: __sklib_color; const q: __sklib_quad); cdecl; external; procedure __sklib__draw_quad__color__quad_ref__drawing_options_ref(clr: __sklib_color; const q: __sklib_quad; const opts: __sklib_drawing_options); cdecl; external; @@ -3463,11 +3609,14 @@ function __sklib__rectangle_around__quad_ref(const q: __sklib_quad): __sklib_rec function __sklib__rectangle_around__triangle_ref(const t: __sklib_triangle): __sklib_rectangle; cdecl; external; function __sklib__rectangle_bottom__rectangle_ref(const rect: __sklib_rectangle): Double; cdecl; external; function __sklib__rectangle_center__rectangle_ref(const rect: __sklib_rectangle): __sklib_point_2d; cdecl; external; +function __sklib__rectangle_circle_intersect__rectangle_ref__circle_ref(const rect: __sklib_rectangle; const c: __sklib_circle): LongInt; cdecl; external; function __sklib__rectangle_from__point_2d__double__double(pt: __sklib_point_2d; width: Double; height: Double): __sklib_rectangle; cdecl; external; function __sklib__rectangle_from__point_2d__point_2d(pt1: __sklib_point_2d; pt2: __sklib_point_2d): __sklib_rectangle; cdecl; external; function __sklib__rectangle_from__double__double__double__double(x: Double; y: Double; width: Double; height: Double): __sklib_rectangle; cdecl; external; function __sklib__rectangle_left__rectangle_ref(const rect: __sklib_rectangle): Double; cdecl; external; function __sklib__rectangle_offset_by__rectangle_ref__vector_2d_ref(const rect: __sklib_rectangle; const offset: __sklib_vector_2d): __sklib_rectangle; cdecl; external; +function __sklib__rectangle_ray_intersection__point_2d_ref__vector_2d_ref__rectangle_ref(const origin: __sklib_point_2d; const heading: __sklib_vector_2d; const rect: __sklib_rectangle): LongInt; cdecl; external; +function __sklib__rectangle_ray_intersection__point_2d_ref__vector_2d_ref__rectangle_ref__point_2d_ref__double_ref(const origin: __sklib_point_2d; const heading: __sklib_vector_2d; const rect: __sklib_rectangle; var hitPoint: __sklib_point_2d; var hitDistance: Double): LongInt; cdecl; external; function __sklib__rectangle_right__rectangle_ref(const rect: __sklib_rectangle): Double; cdecl; external; function __sklib__rectangle_to_string__rectangle_ref(const rect: __sklib_rectangle): __sklib_string; cdecl; external; function __sklib__rectangle_top__rectangle_ref(const rect: __sklib_rectangle): Double; cdecl; external; @@ -3747,6 +3896,9 @@ procedure __sklib__fill_triangle_on_window__window__color__double__double__doubl function __sklib__triangle_barycenter__triangle_ref(const tri: __sklib_triangle): __sklib_point_2d; cdecl; external; function __sklib__triangle_from__point_2d_ref__point_2d_ref__point_2d_ref(const p1: __sklib_point_2d; const p2: __sklib_point_2d; const p3: __sklib_point_2d): __sklib_triangle; cdecl; external; function __sklib__triangle_from__double__double__double__double__double__double(x1: Double; y1: Double; x2: Double; y2: Double; x3: Double; y3: Double): __sklib_triangle; cdecl; external; +function __sklib__triangle_quad_intersect__triangle_ref__quad_ref(const tri: __sklib_triangle; const q: __sklib_quad): LongInt; cdecl; external; +function __sklib__triangle_ray_intersection__point_2d_ref__vector_2d_ref__triangle_ref(const origin: __sklib_point_2d; const heading: __sklib_vector_2d; const tri: __sklib_triangle): LongInt; cdecl; external; +function __sklib__triangle_ray_intersection__point_2d_ref__vector_2d_ref__triangle_ref__point_2d_ref__double_ref(const origin: __sklib_point_2d; const heading: __sklib_vector_2d; const tri: __sklib_triangle; var hitPoint: __sklib_point_2d; var hitDistance: Double): LongInt; cdecl; external; function __sklib__triangle_rectangle_intersect__triangle_ref__rectangle_ref(const tri: __sklib_triangle; const rect: __sklib_rectangle): LongInt; cdecl; external; function __sklib__triangle_to_string__triangle_ref(const tri: __sklib_triangle): __sklib_string; cdecl; external; function __sklib__triangles_intersect__triangle_ref__triangle_ref(const t1: __sklib_triangle; const t2: __sklib_triangle): LongInt; cdecl; external; @@ -4892,6 +5044,17 @@ function CircleAt(x: Double; y: Double; radius: Double): Circle; __skreturn := __sklib__circle_at__double__double__double(__skparam__x, __skparam__y, __skparam__radius); result := __skadapter__to_circle(__skreturn); end; +function CircleQuadIntersect(const c: Circle; const q: Quad): Boolean; +var + __skparam__c: __sklib_circle; + __skparam__q: __sklib_quad; + __skreturn: LongInt; +begin + __skparam__c := __skadapter__to_sklib_circle(c); + __skparam__q := __skadapter__to_sklib_quad(q); + __skreturn := __sklib__circle_quad_intersect__circle_ref__quad_ref(__skparam__c, __skparam__q); + result := __skadapter__to_bool(__skreturn); +end; function CircleRadius(c: Circle): Single; var __skparam__c: __sklib_circle; @@ -4901,6 +5064,38 @@ function CircleRadius(c: Circle): Single; __skreturn := __sklib__circle_radius__circle(__skparam__c); result := __skadapter__to_float(__skreturn); end; +function CircleRayIntersection(const origin: Point2D; const heading: Vector2D; const circ: Circle): Boolean; +var + __skparam__origin: __sklib_point_2d; + __skparam__heading: __sklib_vector_2d; + __skparam__circ: __sklib_circle; + __skreturn: LongInt; +begin + __skparam__origin := __skadapter__to_sklib_point_2d(origin); + __skparam__heading := __skadapter__to_sklib_vector_2d(heading); + __skparam__circ := __skadapter__to_sklib_circle(circ); + __skreturn := __sklib__circle_ray_intersection__point_2d_ref__vector_2d_ref__circle_ref(__skparam__origin, __skparam__heading, __skparam__circ); + result := __skadapter__to_bool(__skreturn); +end; +function CircleRayIntersection(const origin: Point2D; const heading: Vector2D; const circ: Circle; var hitPoint: Point2D; var hitDistance: Double): Boolean; +var + __skparam__origin: __sklib_point_2d; + __skparam__heading: __sklib_vector_2d; + __skparam__circ: __sklib_circle; + __skparam__hit_point: __sklib_point_2d; + __skparam__hit_distance: Double; + __skreturn: LongInt; +begin + __skparam__origin := __skadapter__to_sklib_point_2d(origin); + __skparam__heading := __skadapter__to_sklib_vector_2d(heading); + __skparam__circ := __skadapter__to_sklib_circle(circ); + __skparam__hit_point := __skadapter__to_sklib_point_2d(hitPoint); + __skparam__hit_distance := __skadapter__to_sklib_double(hitDistance); + __skreturn := __sklib__circle_ray_intersection__point_2d_ref__vector_2d_ref__circle_ref__point_2d_ref__double_ref(__skparam__origin, __skparam__heading, __skparam__circ, __skparam__hit_point, __skparam__hit_distance); + hitPoint := __skadapter__to_point_2d(__skparam__hit_point); + hitDistance := __skadapter__to_double(__skparam__hit_distance); + result := __skadapter__to_bool(__skreturn); +end; function CircleTriangleIntersect(const c: Circle; const tri: Triangle): Boolean; var __skparam__c: __sklib_circle; @@ -5463,6 +5658,34 @@ function BitmapPointCollision(bmp: Bitmap; cell: Integer; bmpX: Double; bmpY: Do __skreturn := __sklib__bitmap_point_collision__bitmap__int__double__double__double__double(__skparam__bmp, __skparam__cell, __skparam__bmp_x, __skparam__bmp_y, __skparam__x, __skparam__y); result := __skadapter__to_bool(__skreturn); end; +function BitmapQuadCollision(bmp: Bitmap; const pt: Point2D; const q: Quad): Boolean; +var + __skparam__bmp: __sklib_ptr; + __skparam__pt: __sklib_point_2d; + __skparam__q: __sklib_quad; + __skreturn: LongInt; +begin + __skparam__bmp := __skadapter__to_sklib_bitmap(bmp); + __skparam__pt := __skadapter__to_sklib_point_2d(pt); + __skparam__q := __skadapter__to_sklib_quad(q); + __skreturn := __sklib__bitmap_quad_collision__bitmap__point_2d_ref__quad_ref(__skparam__bmp, __skparam__pt, __skparam__q); + result := __skadapter__to_bool(__skreturn); +end; +function BitmapQuadCollision(bmp: Bitmap; x: Double; y: Double; const q: Quad): Boolean; +var + __skparam__bmp: __sklib_ptr; + __skparam__x: Double; + __skparam__y: Double; + __skparam__q: __sklib_quad; + __skreturn: LongInt; +begin + __skparam__bmp := __skadapter__to_sklib_bitmap(bmp); + __skparam__x := __skadapter__to_sklib_double(x); + __skparam__y := __skadapter__to_sklib_double(y); + __skparam__q := __skadapter__to_sklib_quad(q); + __skreturn := __sklib__bitmap_quad_collision__bitmap__double__double__quad_ref(__skparam__bmp, __skparam__x, __skparam__y, __skparam__q); + result := __skadapter__to_bool(__skreturn); +end; function BitmapQuadCollision(bmp: Bitmap; cell: Integer; const translation: Matrix2D; const q: Quad): Boolean; var __skparam__bmp: __sklib_ptr; @@ -5478,164 +5701,891 @@ function BitmapQuadCollision(bmp: Bitmap; cell: Integer; const translation: Matr __skreturn := __sklib__bitmap_quad_collision__bitmap__int__matrix_2d_ref__quad_ref(__skparam__bmp, __skparam__cell, __skparam__translation, __skparam__q); result := __skadapter__to_bool(__skreturn); end; -function BitmapRayCollision(bmp: Bitmap; const pt: Point2D; const origin: Point2D; const heading: Vector2D): Boolean; +function BitmapQuadCollision(bmp: Bitmap; cell: Integer; const pt: Point2D; const q: Quad): Boolean; +var + __skparam__bmp: __sklib_ptr; + __skparam__cell: Integer; + __skparam__pt: __sklib_point_2d; + __skparam__q: __sklib_quad; + __skreturn: LongInt; +begin + __skparam__bmp := __skadapter__to_sklib_bitmap(bmp); + __skparam__cell := __skadapter__to_sklib_int(cell); + __skparam__pt := __skadapter__to_sklib_point_2d(pt); + __skparam__q := __skadapter__to_sklib_quad(q); + __skreturn := __sklib__bitmap_quad_collision__bitmap__int__point_2d_ref__quad_ref(__skparam__bmp, __skparam__cell, __skparam__pt, __skparam__q); + result := __skadapter__to_bool(__skreturn); +end; +function BitmapQuadCollision(bmp: Bitmap; cell: Integer; x: Double; y: Double; const q: Quad): Boolean; +var + __skparam__bmp: __sklib_ptr; + __skparam__cell: Integer; + __skparam__x: Double; + __skparam__y: Double; + __skparam__q: __sklib_quad; + __skreturn: LongInt; +begin + __skparam__bmp := __skadapter__to_sklib_bitmap(bmp); + __skparam__cell := __skadapter__to_sklib_int(cell); + __skparam__x := __skadapter__to_sklib_double(x); + __skparam__y := __skadapter__to_sklib_double(y); + __skparam__q := __skadapter__to_sklib_quad(q); + __skreturn := __sklib__bitmap_quad_collision__bitmap__int__double__double__quad_ref(__skparam__bmp, __skparam__cell, __skparam__x, __skparam__y, __skparam__q); + result := __skadapter__to_bool(__skreturn); +end; +function BitmapRayCollision(bmp: Bitmap; const pt: Point2D; const origin: Point2D; const heading: Vector2D): Boolean; +var + __skparam__bmp: __sklib_ptr; + __skparam__pt: __sklib_point_2d; + __skparam__origin: __sklib_point_2d; + __skparam__heading: __sklib_vector_2d; + __skreturn: LongInt; +begin + __skparam__bmp := __skadapter__to_sklib_bitmap(bmp); + __skparam__pt := __skadapter__to_sklib_point_2d(pt); + __skparam__origin := __skadapter__to_sklib_point_2d(origin); + __skparam__heading := __skadapter__to_sklib_vector_2d(heading); + __skreturn := __sklib__bitmap_ray_collision__bitmap__point_2d_ref__point_2d_ref__vector_2d_ref(__skparam__bmp, __skparam__pt, __skparam__origin, __skparam__heading); + result := __skadapter__to_bool(__skreturn); +end; +function BitmapRayCollision(bmp: Bitmap; x: Double; y: Double; const origin: Point2D; const heading: Vector2D): Boolean; +var + __skparam__bmp: __sklib_ptr; + __skparam__x: Double; + __skparam__y: Double; + __skparam__origin: __sklib_point_2d; + __skparam__heading: __sklib_vector_2d; + __skreturn: LongInt; +begin + __skparam__bmp := __skadapter__to_sklib_bitmap(bmp); + __skparam__x := __skadapter__to_sklib_double(x); + __skparam__y := __skadapter__to_sklib_double(y); + __skparam__origin := __skadapter__to_sklib_point_2d(origin); + __skparam__heading := __skadapter__to_sklib_vector_2d(heading); + __skreturn := __sklib__bitmap_ray_collision__bitmap__double__double__point_2d_ref__vector_2d_ref(__skparam__bmp, __skparam__x, __skparam__y, __skparam__origin, __skparam__heading); + result := __skadapter__to_bool(__skreturn); +end; +function BitmapRayCollision(bmp: Bitmap; cell: Integer; const translation: Matrix2D; const origin: Point2D; const heading: Vector2D): Boolean; +var + __skparam__bmp: __sklib_ptr; + __skparam__cell: Integer; + __skparam__translation: __sklib_matrix_2d; + __skparam__origin: __sklib_point_2d; + __skparam__heading: __sklib_vector_2d; + __skreturn: LongInt; +begin + __skparam__bmp := __skadapter__to_sklib_bitmap(bmp); + __skparam__cell := __skadapter__to_sklib_int(cell); + __skparam__translation := __skadapter__to_sklib_matrix_2d(translation); + __skparam__origin := __skadapter__to_sklib_point_2d(origin); + __skparam__heading := __skadapter__to_sklib_vector_2d(heading); + __skreturn := __sklib__bitmap_ray_collision__bitmap__int__matrix_2d_ref__point_2d_ref__vector_2d_ref(__skparam__bmp, __skparam__cell, __skparam__translation, __skparam__origin, __skparam__heading); + result := __skadapter__to_bool(__skreturn); +end; +function BitmapRayCollision(bmp: Bitmap; cell: Integer; const pt: Point2D; const origin: Point2D; const heading: Vector2D): Boolean; +var + __skparam__bmp: __sklib_ptr; + __skparam__cell: Integer; + __skparam__pt: __sklib_point_2d; + __skparam__origin: __sklib_point_2d; + __skparam__heading: __sklib_vector_2d; + __skreturn: LongInt; +begin + __skparam__bmp := __skadapter__to_sklib_bitmap(bmp); + __skparam__cell := __skadapter__to_sklib_int(cell); + __skparam__pt := __skadapter__to_sklib_point_2d(pt); + __skparam__origin := __skadapter__to_sklib_point_2d(origin); + __skparam__heading := __skadapter__to_sklib_vector_2d(heading); + __skreturn := __sklib__bitmap_ray_collision__bitmap__int__point_2d_ref__point_2d_ref__vector_2d_ref(__skparam__bmp, __skparam__cell, __skparam__pt, __skparam__origin, __skparam__heading); + result := __skadapter__to_bool(__skreturn); +end; +function BitmapRayCollision(bmp: Bitmap; cell: Integer; x: Double; y: Double; const origin: Point2D; const heading: Vector2D): Boolean; +var + __skparam__bmp: __sklib_ptr; + __skparam__cell: Integer; + __skparam__x: Double; + __skparam__y: Double; + __skparam__origin: __sklib_point_2d; + __skparam__heading: __sklib_vector_2d; + __skreturn: LongInt; +begin + __skparam__bmp := __skadapter__to_sklib_bitmap(bmp); + __skparam__cell := __skadapter__to_sklib_int(cell); + __skparam__x := __skadapter__to_sklib_double(x); + __skparam__y := __skadapter__to_sklib_double(y); + __skparam__origin := __skadapter__to_sklib_point_2d(origin); + __skparam__heading := __skadapter__to_sklib_vector_2d(heading); + __skreturn := __sklib__bitmap_ray_collision__bitmap__int__double__double__point_2d_ref__vector_2d_ref(__skparam__bmp, __skparam__cell, __skparam__x, __skparam__y, __skparam__origin, __skparam__heading); + result := __skadapter__to_bool(__skreturn); +end; +function BitmapRectangleCollision(bmp: Bitmap; const pt: Point2D; const rect: Rectangle): Boolean; +var + __skparam__bmp: __sklib_ptr; + __skparam__pt: __sklib_point_2d; + __skparam__rect: __sklib_rectangle; + __skreturn: LongInt; +begin + __skparam__bmp := __skadapter__to_sklib_bitmap(bmp); + __skparam__pt := __skadapter__to_sklib_point_2d(pt); + __skparam__rect := __skadapter__to_sklib_rectangle(rect); + __skreturn := __sklib__bitmap_rectangle_collision__bitmap__point_2d_ref__rectangle_ref(__skparam__bmp, __skparam__pt, __skparam__rect); + result := __skadapter__to_bool(__skreturn); +end; +function BitmapRectangleCollision(bmp: Bitmap; x: Double; y: Double; const rect: Rectangle): Boolean; +var + __skparam__bmp: __sklib_ptr; + __skparam__x: Double; + __skparam__y: Double; + __skparam__rect: __sklib_rectangle; + __skreturn: LongInt; +begin + __skparam__bmp := __skadapter__to_sklib_bitmap(bmp); + __skparam__x := __skadapter__to_sklib_double(x); + __skparam__y := __skadapter__to_sklib_double(y); + __skparam__rect := __skadapter__to_sklib_rectangle(rect); + __skreturn := __sklib__bitmap_rectangle_collision__bitmap__double__double__rectangle_ref(__skparam__bmp, __skparam__x, __skparam__y, __skparam__rect); + result := __skadapter__to_bool(__skreturn); +end; +function BitmapRectangleCollision(bmp: Bitmap; cell: Integer; const translation: Matrix2D; const rect: Rectangle): Boolean; +var + __skparam__bmp: __sklib_ptr; + __skparam__cell: Integer; + __skparam__translation: __sklib_matrix_2d; + __skparam__rect: __sklib_rectangle; + __skreturn: LongInt; +begin + __skparam__bmp := __skadapter__to_sklib_bitmap(bmp); + __skparam__cell := __skadapter__to_sklib_int(cell); + __skparam__translation := __skadapter__to_sklib_matrix_2d(translation); + __skparam__rect := __skadapter__to_sklib_rectangle(rect); + __skreturn := __sklib__bitmap_rectangle_collision__bitmap__int__matrix_2d_ref__rectangle_ref(__skparam__bmp, __skparam__cell, __skparam__translation, __skparam__rect); + result := __skadapter__to_bool(__skreturn); +end; +function BitmapRectangleCollision(bmp: Bitmap; cell: Integer; const pt: Point2D; const rect: Rectangle): Boolean; +var + __skparam__bmp: __sklib_ptr; + __skparam__cell: Integer; + __skparam__pt: __sklib_point_2d; + __skparam__rect: __sklib_rectangle; + __skreturn: LongInt; +begin + __skparam__bmp := __skadapter__to_sklib_bitmap(bmp); + __skparam__cell := __skadapter__to_sklib_int(cell); + __skparam__pt := __skadapter__to_sklib_point_2d(pt); + __skparam__rect := __skadapter__to_sklib_rectangle(rect); + __skreturn := __sklib__bitmap_rectangle_collision__bitmap__int__point_2d_ref__rectangle_ref(__skparam__bmp, __skparam__cell, __skparam__pt, __skparam__rect); + result := __skadapter__to_bool(__skreturn); +end; +function BitmapRectangleCollision(bmp: Bitmap; cell: Integer; x: Double; y: Double; const rect: Rectangle): Boolean; +var + __skparam__bmp: __sklib_ptr; + __skparam__cell: Integer; + __skparam__x: Double; + __skparam__y: Double; + __skparam__rect: __sklib_rectangle; + __skreturn: LongInt; +begin + __skparam__bmp := __skadapter__to_sklib_bitmap(bmp); + __skparam__cell := __skadapter__to_sklib_int(cell); + __skparam__x := __skadapter__to_sklib_double(x); + __skparam__y := __skadapter__to_sklib_double(y); + __skparam__rect := __skadapter__to_sklib_rectangle(rect); + __skreturn := __sklib__bitmap_rectangle_collision__bitmap__int__double__double__rectangle_ref(__skparam__bmp, __skparam__cell, __skparam__x, __skparam__y, __skparam__rect); + result := __skadapter__to_bool(__skreturn); +end; +function BitmapTriangleCollision(bmp: Bitmap; const pt: Point2D; const tri: Triangle): Boolean; +var + __skparam__bmp: __sklib_ptr; + __skparam__pt: __sklib_point_2d; + __skparam__tri: __sklib_triangle; + __skreturn: LongInt; +begin + __skparam__bmp := __skadapter__to_sklib_bitmap(bmp); + __skparam__pt := __skadapter__to_sklib_point_2d(pt); + __skparam__tri := __skadapter__to_sklib_triangle(tri); + __skreturn := __sklib__bitmap_triangle_collision__bitmap__point_2d_ref__triangle_ref(__skparam__bmp, __skparam__pt, __skparam__tri); + result := __skadapter__to_bool(__skreturn); +end; +function BitmapTriangleCollision(bmp: Bitmap; x: Double; y: Double; const tri: Triangle): Boolean; +var + __skparam__bmp: __sklib_ptr; + __skparam__x: Double; + __skparam__y: Double; + __skparam__tri: __sklib_triangle; + __skreturn: LongInt; +begin + __skparam__bmp := __skadapter__to_sklib_bitmap(bmp); + __skparam__x := __skadapter__to_sklib_double(x); + __skparam__y := __skadapter__to_sklib_double(y); + __skparam__tri := __skadapter__to_sklib_triangle(tri); + __skreturn := __sklib__bitmap_triangle_collision__bitmap__double__double__triangle_ref(__skparam__bmp, __skparam__x, __skparam__y, __skparam__tri); + result := __skadapter__to_bool(__skreturn); +end; +function BitmapTriangleCollision(bmp: Bitmap; cell: Integer; const translation: Matrix2D; const tri: Triangle): Boolean; +var + __skparam__bmp: __sklib_ptr; + __skparam__cell: Integer; + __skparam__translation: __sklib_matrix_2d; + __skparam__tri: __sklib_triangle; + __skreturn: LongInt; +begin + __skparam__bmp := __skadapter__to_sklib_bitmap(bmp); + __skparam__cell := __skadapter__to_sklib_int(cell); + __skparam__translation := __skadapter__to_sklib_matrix_2d(translation); + __skparam__tri := __skadapter__to_sklib_triangle(tri); + __skreturn := __sklib__bitmap_triangle_collision__bitmap__int__matrix_2d_ref__triangle_ref(__skparam__bmp, __skparam__cell, __skparam__translation, __skparam__tri); + result := __skadapter__to_bool(__skreturn); +end; +function BitmapTriangleCollision(bmp: Bitmap; cell: Integer; const pt: Point2D; const tri: Triangle): Boolean; +var + __skparam__bmp: __sklib_ptr; + __skparam__cell: Integer; + __skparam__pt: __sklib_point_2d; + __skparam__tri: __sklib_triangle; + __skreturn: LongInt; +begin + __skparam__bmp := __skadapter__to_sklib_bitmap(bmp); + __skparam__cell := __skadapter__to_sklib_int(cell); + __skparam__pt := __skadapter__to_sklib_point_2d(pt); + __skparam__tri := __skadapter__to_sklib_triangle(tri); + __skreturn := __sklib__bitmap_triangle_collision__bitmap__int__point_2d_ref__triangle_ref(__skparam__bmp, __skparam__cell, __skparam__pt, __skparam__tri); + result := __skadapter__to_bool(__skreturn); +end; +function BitmapTriangleCollision(bmp: Bitmap; cell: Integer; x: Double; y: Double; const tri: Triangle): Boolean; +var + __skparam__bmp: __sklib_ptr; + __skparam__cell: Integer; + __skparam__x: Double; + __skparam__y: Double; + __skparam__tri: __sklib_triangle; + __skreturn: LongInt; +begin + __skparam__bmp := __skadapter__to_sklib_bitmap(bmp); + __skparam__cell := __skadapter__to_sklib_int(cell); + __skparam__x := __skadapter__to_sklib_double(x); + __skparam__y := __skadapter__to_sklib_double(y); + __skparam__tri := __skadapter__to_sklib_triangle(tri); + __skreturn := __sklib__bitmap_triangle_collision__bitmap__int__double__double__triangle_ref(__skparam__bmp, __skparam__cell, __skparam__x, __skparam__y, __skparam__tri); + result := __skadapter__to_bool(__skreturn); +end; +function CalculateCollisionDirection(const collider: Quad; const collidee: Quad): Vector2D; +var + __skparam__collider: __sklib_quad; + __skparam__collidee: __sklib_quad; + __skreturn: __sklib_vector_2d; +begin + __skparam__collider := __skadapter__to_sklib_quad(collider); + __skparam__collidee := __skadapter__to_sklib_quad(collidee); + __skreturn := __sklib__calculate_collision_direction__quad_ref__quad_ref(__skparam__collider, __skparam__collidee); + result := __skadapter__to_vector_2d(__skreturn); +end; +function CalculateCollisionDirection(const collider: Circle; const collidee: Circle): Vector2D; +var + __skparam__collider: __sklib_circle; + __skparam__collidee: __sklib_circle; + __skreturn: __sklib_vector_2d; +begin + __skparam__collider := __skadapter__to_sklib_circle(collider); + __skparam__collidee := __skadapter__to_sklib_circle(collidee); + __skreturn := __sklib__calculate_collision_direction__circle_ref__circle_ref(__skparam__collider, __skparam__collidee); + result := __skadapter__to_vector_2d(__skreturn); +end; +function CalculateCollisionDirection(const collider: Circle; const collidee: Quad): Vector2D; +var + __skparam__collider: __sklib_circle; + __skparam__collidee: __sklib_quad; + __skreturn: __sklib_vector_2d; +begin + __skparam__collider := __skadapter__to_sklib_circle(collider); + __skparam__collidee := __skadapter__to_sklib_quad(collidee); + __skreturn := __sklib__calculate_collision_direction__circle_ref__quad_ref(__skparam__collider, __skparam__collidee); + result := __skadapter__to_vector_2d(__skreturn); +end; +function CalculateCollisionDirection(const collider: Circle; const collidee: Rectangle): Vector2D; +var + __skparam__collider: __sklib_circle; + __skparam__collidee: __sklib_rectangle; + __skreturn: __sklib_vector_2d; +begin + __skparam__collider := __skadapter__to_sklib_circle(collider); + __skparam__collidee := __skadapter__to_sklib_rectangle(collidee); + __skreturn := __sklib__calculate_collision_direction__circle_ref__rectangle_ref(__skparam__collider, __skparam__collidee); + result := __skadapter__to_vector_2d(__skreturn); +end; +function CalculateCollisionDirection(const collider: Circle; collidee: Sprite): Vector2D; +var + __skparam__collider: __sklib_circle; + __skparam__collidee: __sklib_ptr; + __skreturn: __sklib_vector_2d; +begin + __skparam__collider := __skadapter__to_sklib_circle(collider); + __skparam__collidee := __skadapter__to_sklib_sprite(collidee); + __skreturn := __sklib__calculate_collision_direction__circle_ref__sprite(__skparam__collider, __skparam__collidee); + result := __skadapter__to_vector_2d(__skreturn); +end; +function CalculateCollisionDirection(const collider: Circle; const collidee: Triangle): Vector2D; +var + __skparam__collider: __sklib_circle; + __skparam__collidee: __sklib_triangle; + __skreturn: __sklib_vector_2d; +begin + __skparam__collider := __skadapter__to_sklib_circle(collider); + __skparam__collidee := __skadapter__to_sklib_triangle(collidee); + __skreturn := __sklib__calculate_collision_direction__circle_ref__triangle_ref(__skparam__collider, __skparam__collidee); + result := __skadapter__to_vector_2d(__skreturn); +end; +function CalculateCollisionDirection(const collider: Quad; const collidee: Circle): Vector2D; +var + __skparam__collider: __sklib_quad; + __skparam__collidee: __sklib_circle; + __skreturn: __sklib_vector_2d; +begin + __skparam__collider := __skadapter__to_sklib_quad(collider); + __skparam__collidee := __skadapter__to_sklib_circle(collidee); + __skreturn := __sklib__calculate_collision_direction__quad_ref__circle_ref(__skparam__collider, __skparam__collidee); + result := __skadapter__to_vector_2d(__skreturn); +end; +function CalculateCollisionDirection(const collider: Quad; const collidee: Rectangle): Vector2D; +var + __skparam__collider: __sklib_quad; + __skparam__collidee: __sklib_rectangle; + __skreturn: __sklib_vector_2d; +begin + __skparam__collider := __skadapter__to_sklib_quad(collider); + __skparam__collidee := __skadapter__to_sklib_rectangle(collidee); + __skreturn := __sklib__calculate_collision_direction__quad_ref__rectangle_ref(__skparam__collider, __skparam__collidee); + result := __skadapter__to_vector_2d(__skreturn); +end; +function CalculateCollisionDirection(const collider: Quad; collidee: Sprite): Vector2D; +var + __skparam__collider: __sklib_quad; + __skparam__collidee: __sklib_ptr; + __skreturn: __sklib_vector_2d; +begin + __skparam__collider := __skadapter__to_sklib_quad(collider); + __skparam__collidee := __skadapter__to_sklib_sprite(collidee); + __skreturn := __sklib__calculate_collision_direction__quad_ref__sprite(__skparam__collider, __skparam__collidee); + result := __skadapter__to_vector_2d(__skreturn); +end; +function CalculateCollisionDirection(const collider: Quad; const collidee: Triangle): Vector2D; +var + __skparam__collider: __sklib_quad; + __skparam__collidee: __sklib_triangle; + __skreturn: __sklib_vector_2d; +begin + __skparam__collider := __skadapter__to_sklib_quad(collider); + __skparam__collidee := __skadapter__to_sklib_triangle(collidee); + __skreturn := __sklib__calculate_collision_direction__quad_ref__triangle_ref(__skparam__collider, __skparam__collidee); + result := __skadapter__to_vector_2d(__skreturn); +end; +function CalculateCollisionDirection(const collider: Rectangle; const collidee: Circle): Vector2D; +var + __skparam__collider: __sklib_rectangle; + __skparam__collidee: __sklib_circle; + __skreturn: __sklib_vector_2d; +begin + __skparam__collider := __skadapter__to_sklib_rectangle(collider); + __skparam__collidee := __skadapter__to_sklib_circle(collidee); + __skreturn := __sklib__calculate_collision_direction__rectangle_ref__circle_ref(__skparam__collider, __skparam__collidee); + result := __skadapter__to_vector_2d(__skreturn); +end; +function CalculateCollisionDirection(const collider: Rectangle; const collidee: Quad): Vector2D; +var + __skparam__collider: __sklib_rectangle; + __skparam__collidee: __sklib_quad; + __skreturn: __sklib_vector_2d; +begin + __skparam__collider := __skadapter__to_sklib_rectangle(collider); + __skparam__collidee := __skadapter__to_sklib_quad(collidee); + __skreturn := __sklib__calculate_collision_direction__rectangle_ref__quad_ref(__skparam__collider, __skparam__collidee); + result := __skadapter__to_vector_2d(__skreturn); +end; +function CalculateCollisionDirection(const collider: Rectangle; const collidee: Rectangle): Vector2D; +var + __skparam__collider: __sklib_rectangle; + __skparam__collidee: __sklib_rectangle; + __skreturn: __sklib_vector_2d; +begin + __skparam__collider := __skadapter__to_sklib_rectangle(collider); + __skparam__collidee := __skadapter__to_sklib_rectangle(collidee); + __skreturn := __sklib__calculate_collision_direction__rectangle_ref__rectangle_ref(__skparam__collider, __skparam__collidee); + result := __skadapter__to_vector_2d(__skreturn); +end; +function CalculateCollisionDirection(const collider: Rectangle; collidee: Sprite): Vector2D; +var + __skparam__collider: __sklib_rectangle; + __skparam__collidee: __sklib_ptr; + __skreturn: __sklib_vector_2d; +begin + __skparam__collider := __skadapter__to_sklib_rectangle(collider); + __skparam__collidee := __skadapter__to_sklib_sprite(collidee); + __skreturn := __sklib__calculate_collision_direction__rectangle_ref__sprite(__skparam__collider, __skparam__collidee); + result := __skadapter__to_vector_2d(__skreturn); +end; +function CalculateCollisionDirection(const collider: Rectangle; const collidee: Triangle): Vector2D; +var + __skparam__collider: __sklib_rectangle; + __skparam__collidee: __sklib_triangle; + __skreturn: __sklib_vector_2d; +begin + __skparam__collider := __skadapter__to_sklib_rectangle(collider); + __skparam__collidee := __skadapter__to_sklib_triangle(collidee); + __skreturn := __sklib__calculate_collision_direction__rectangle_ref__triangle_ref(__skparam__collider, __skparam__collidee); + result := __skadapter__to_vector_2d(__skreturn); +end; +function CalculateCollisionDirection(collider: Sprite; const collidee: Circle): Vector2D; +var + __skparam__collider: __sklib_ptr; + __skparam__collidee: __sklib_circle; + __skreturn: __sklib_vector_2d; +begin + __skparam__collider := __skadapter__to_sklib_sprite(collider); + __skparam__collidee := __skadapter__to_sklib_circle(collidee); + __skreturn := __sklib__calculate_collision_direction__sprite__circle_ref(__skparam__collider, __skparam__collidee); + result := __skadapter__to_vector_2d(__skreturn); +end; +function CalculateCollisionDirection(collider: Sprite; const collidee: Quad): Vector2D; +var + __skparam__collider: __sklib_ptr; + __skparam__collidee: __sklib_quad; + __skreturn: __sklib_vector_2d; +begin + __skparam__collider := __skadapter__to_sklib_sprite(collider); + __skparam__collidee := __skadapter__to_sklib_quad(collidee); + __skreturn := __sklib__calculate_collision_direction__sprite__quad_ref(__skparam__collider, __skparam__collidee); + result := __skadapter__to_vector_2d(__skreturn); +end; +function CalculateCollisionDirection(collider: Sprite; const collidee: Rectangle): Vector2D; +var + __skparam__collider: __sklib_ptr; + __skparam__collidee: __sklib_rectangle; + __skreturn: __sklib_vector_2d; +begin + __skparam__collider := __skadapter__to_sklib_sprite(collider); + __skparam__collidee := __skadapter__to_sklib_rectangle(collidee); + __skreturn := __sklib__calculate_collision_direction__sprite__rectangle_ref(__skparam__collider, __skparam__collidee); + result := __skadapter__to_vector_2d(__skreturn); +end; +function CalculateCollisionDirection(collider: Sprite; collidee: Sprite): Vector2D; +var + __skparam__collider: __sklib_ptr; + __skparam__collidee: __sklib_ptr; + __skreturn: __sklib_vector_2d; +begin + __skparam__collider := __skadapter__to_sklib_sprite(collider); + __skparam__collidee := __skadapter__to_sklib_sprite(collidee); + __skreturn := __sklib__calculate_collision_direction__sprite__sprite(__skparam__collider, __skparam__collidee); + result := __skadapter__to_vector_2d(__skreturn); +end; +function CalculateCollisionDirection(collider: Sprite; const collidee: Triangle): Vector2D; +var + __skparam__collider: __sklib_ptr; + __skparam__collidee: __sklib_triangle; + __skreturn: __sklib_vector_2d; +begin + __skparam__collider := __skadapter__to_sklib_sprite(collider); + __skparam__collidee := __skadapter__to_sklib_triangle(collidee); + __skreturn := __sklib__calculate_collision_direction__sprite__triangle_ref(__skparam__collider, __skparam__collidee); + result := __skadapter__to_vector_2d(__skreturn); +end; +function CalculateCollisionDirection(const collider: Triangle; const collidee: Circle): Vector2D; +var + __skparam__collider: __sklib_triangle; + __skparam__collidee: __sklib_circle; + __skreturn: __sklib_vector_2d; +begin + __skparam__collider := __skadapter__to_sklib_triangle(collider); + __skparam__collidee := __skadapter__to_sklib_circle(collidee); + __skreturn := __sklib__calculate_collision_direction__triangle_ref__circle_ref(__skparam__collider, __skparam__collidee); + result := __skadapter__to_vector_2d(__skreturn); +end; +function CalculateCollisionDirection(const collider: Triangle; const collidee: Quad): Vector2D; +var + __skparam__collider: __sklib_triangle; + __skparam__collidee: __sklib_quad; + __skreturn: __sklib_vector_2d; +begin + __skparam__collider := __skadapter__to_sklib_triangle(collider); + __skparam__collidee := __skadapter__to_sklib_quad(collidee); + __skreturn := __sklib__calculate_collision_direction__triangle_ref__quad_ref(__skparam__collider, __skparam__collidee); + result := __skadapter__to_vector_2d(__skreturn); +end; +function CalculateCollisionDirection(const collider: Triangle; const collidee: Rectangle): Vector2D; +var + __skparam__collider: __sklib_triangle; + __skparam__collidee: __sklib_rectangle; + __skreturn: __sklib_vector_2d; +begin + __skparam__collider := __skadapter__to_sklib_triangle(collider); + __skparam__collidee := __skadapter__to_sklib_rectangle(collidee); + __skreturn := __sklib__calculate_collision_direction__triangle_ref__rectangle_ref(__skparam__collider, __skparam__collidee); + result := __skadapter__to_vector_2d(__skreturn); +end; +function CalculateCollisionDirection(const collider: Triangle; collidee: Sprite): Vector2D; +var + __skparam__collider: __sklib_triangle; + __skparam__collidee: __sklib_ptr; + __skreturn: __sklib_vector_2d; +begin + __skparam__collider := __skadapter__to_sklib_triangle(collider); + __skparam__collidee := __skadapter__to_sklib_sprite(collidee); + __skreturn := __sklib__calculate_collision_direction__triangle_ref__sprite(__skparam__collider, __skparam__collidee); + result := __skadapter__to_vector_2d(__skreturn); +end; +function CalculateCollisionDirection(const collider: Triangle; const collidee: Triangle): Vector2D; +var + __skparam__collider: __sklib_triangle; + __skparam__collidee: __sklib_triangle; + __skreturn: __sklib_vector_2d; +begin + __skparam__collider := __skadapter__to_sklib_triangle(collider); + __skparam__collidee := __skadapter__to_sklib_triangle(collidee); + __skreturn := __sklib__calculate_collision_direction__triangle_ref__triangle_ref(__skparam__collider, __skparam__collidee); + result := __skadapter__to_vector_2d(__skreturn); +end; +function ResolveCollision(var collider: Quad; const collidee: Quad; const direction: Vector2D): Boolean; +var + __skparam__collider: __sklib_quad; + __skparam__collidee: __sklib_quad; + __skparam__direction: __sklib_vector_2d; + __skreturn: LongInt; +begin + __skparam__collider := __skadapter__to_sklib_quad(collider); + __skparam__collidee := __skadapter__to_sklib_quad(collidee); + __skparam__direction := __skadapter__to_sklib_vector_2d(direction); + __skreturn := __sklib__resolve_collision__quad_ref__quad_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); + collider := __skadapter__to_quad(__skparam__collider); + result := __skadapter__to_bool(__skreturn); +end; +function ResolveCollision(var collider: Circle; const collidee: Circle; const direction: Vector2D): Boolean; +var + __skparam__collider: __sklib_circle; + __skparam__collidee: __sklib_circle; + __skparam__direction: __sklib_vector_2d; + __skreturn: LongInt; +begin + __skparam__collider := __skadapter__to_sklib_circle(collider); + __skparam__collidee := __skadapter__to_sklib_circle(collidee); + __skparam__direction := __skadapter__to_sklib_vector_2d(direction); + __skreturn := __sklib__resolve_collision__circle_ref__circle_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); + collider := __skadapter__to_circle(__skparam__collider); + result := __skadapter__to_bool(__skreturn); +end; +function ResolveCollision(var collider: Circle; const collidee: Quad; const direction: Vector2D): Boolean; +var + __skparam__collider: __sklib_circle; + __skparam__collidee: __sklib_quad; + __skparam__direction: __sklib_vector_2d; + __skreturn: LongInt; +begin + __skparam__collider := __skadapter__to_sklib_circle(collider); + __skparam__collidee := __skadapter__to_sklib_quad(collidee); + __skparam__direction := __skadapter__to_sklib_vector_2d(direction); + __skreturn := __sklib__resolve_collision__circle_ref__quad_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); + collider := __skadapter__to_circle(__skparam__collider); + result := __skadapter__to_bool(__skreturn); +end; +function ResolveCollision(var collider: Circle; const collidee: Rectangle; const direction: Vector2D): Boolean; +var + __skparam__collider: __sklib_circle; + __skparam__collidee: __sklib_rectangle; + __skparam__direction: __sklib_vector_2d; + __skreturn: LongInt; +begin + __skparam__collider := __skadapter__to_sklib_circle(collider); + __skparam__collidee := __skadapter__to_sklib_rectangle(collidee); + __skparam__direction := __skadapter__to_sklib_vector_2d(direction); + __skreturn := __sklib__resolve_collision__circle_ref__rectangle_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); + collider := __skadapter__to_circle(__skparam__collider); + result := __skadapter__to_bool(__skreturn); +end; +function ResolveCollision(var collider: Circle; collidee: Sprite; const direction: Vector2D): Boolean; +var + __skparam__collider: __sklib_circle; + __skparam__collidee: __sklib_ptr; + __skparam__direction: __sklib_vector_2d; + __skreturn: LongInt; +begin + __skparam__collider := __skadapter__to_sklib_circle(collider); + __skparam__collidee := __skadapter__to_sklib_sprite(collidee); + __skparam__direction := __skadapter__to_sklib_vector_2d(direction); + __skreturn := __sklib__resolve_collision__circle_ref__sprite__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); + collider := __skadapter__to_circle(__skparam__collider); + result := __skadapter__to_bool(__skreturn); +end; +function ResolveCollision(var collider: Circle; const collidee: Triangle; const direction: Vector2D): Boolean; +var + __skparam__collider: __sklib_circle; + __skparam__collidee: __sklib_triangle; + __skparam__direction: __sklib_vector_2d; + __skreturn: LongInt; +begin + __skparam__collider := __skadapter__to_sklib_circle(collider); + __skparam__collidee := __skadapter__to_sklib_triangle(collidee); + __skparam__direction := __skadapter__to_sklib_vector_2d(direction); + __skreturn := __sklib__resolve_collision__circle_ref__triangle_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); + collider := __skadapter__to_circle(__skparam__collider); + result := __skadapter__to_bool(__skreturn); +end; +function ResolveCollision(var collider: Quad; const collidee: Circle; const direction: Vector2D): Boolean; +var + __skparam__collider: __sklib_quad; + __skparam__collidee: __sklib_circle; + __skparam__direction: __sklib_vector_2d; + __skreturn: LongInt; +begin + __skparam__collider := __skadapter__to_sklib_quad(collider); + __skparam__collidee := __skadapter__to_sklib_circle(collidee); + __skparam__direction := __skadapter__to_sklib_vector_2d(direction); + __skreturn := __sklib__resolve_collision__quad_ref__circle_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); + collider := __skadapter__to_quad(__skparam__collider); + result := __skadapter__to_bool(__skreturn); +end; +function ResolveCollision(var collider: Quad; const collidee: Rectangle; const direction: Vector2D): Boolean; +var + __skparam__collider: __sklib_quad; + __skparam__collidee: __sklib_rectangle; + __skparam__direction: __sklib_vector_2d; + __skreturn: LongInt; +begin + __skparam__collider := __skadapter__to_sklib_quad(collider); + __skparam__collidee := __skadapter__to_sklib_rectangle(collidee); + __skparam__direction := __skadapter__to_sklib_vector_2d(direction); + __skreturn := __sklib__resolve_collision__quad_ref__rectangle_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); + collider := __skadapter__to_quad(__skparam__collider); + result := __skadapter__to_bool(__skreturn); +end; +function ResolveCollision(var collider: Quad; collidee: Sprite; const direction: Vector2D): Boolean; +var + __skparam__collider: __sklib_quad; + __skparam__collidee: __sklib_ptr; + __skparam__direction: __sklib_vector_2d; + __skreturn: LongInt; +begin + __skparam__collider := __skadapter__to_sklib_quad(collider); + __skparam__collidee := __skadapter__to_sklib_sprite(collidee); + __skparam__direction := __skadapter__to_sklib_vector_2d(direction); + __skreturn := __sklib__resolve_collision__quad_ref__sprite__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); + collider := __skadapter__to_quad(__skparam__collider); + result := __skadapter__to_bool(__skreturn); +end; +function ResolveCollision(var collider: Quad; const collidee: Triangle; const direction: Vector2D): Boolean; +var + __skparam__collider: __sklib_quad; + __skparam__collidee: __sklib_triangle; + __skparam__direction: __sklib_vector_2d; + __skreturn: LongInt; +begin + __skparam__collider := __skadapter__to_sklib_quad(collider); + __skparam__collidee := __skadapter__to_sklib_triangle(collidee); + __skparam__direction := __skadapter__to_sklib_vector_2d(direction); + __skreturn := __sklib__resolve_collision__quad_ref__triangle_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); + collider := __skadapter__to_quad(__skparam__collider); + result := __skadapter__to_bool(__skreturn); +end; +function ResolveCollision(var collider: Rectangle; const collidee: Circle; const direction: Vector2D): Boolean; +var + __skparam__collider: __sklib_rectangle; + __skparam__collidee: __sklib_circle; + __skparam__direction: __sklib_vector_2d; + __skreturn: LongInt; +begin + __skparam__collider := __skadapter__to_sklib_rectangle(collider); + __skparam__collidee := __skadapter__to_sklib_circle(collidee); + __skparam__direction := __skadapter__to_sklib_vector_2d(direction); + __skreturn := __sklib__resolve_collision__rectangle_ref__circle_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); + collider := __skadapter__to_rectangle(__skparam__collider); + result := __skadapter__to_bool(__skreturn); +end; +function ResolveCollision(var collider: Rectangle; const collidee: Quad; const direction: Vector2D): Boolean; +var + __skparam__collider: __sklib_rectangle; + __skparam__collidee: __sklib_quad; + __skparam__direction: __sklib_vector_2d; + __skreturn: LongInt; +begin + __skparam__collider := __skadapter__to_sklib_rectangle(collider); + __skparam__collidee := __skadapter__to_sklib_quad(collidee); + __skparam__direction := __skadapter__to_sklib_vector_2d(direction); + __skreturn := __sklib__resolve_collision__rectangle_ref__quad_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); + collider := __skadapter__to_rectangle(__skparam__collider); + result := __skadapter__to_bool(__skreturn); +end; +function ResolveCollision(var collider: Rectangle; const collidee: Rectangle; const direction: Vector2D): Boolean; +var + __skparam__collider: __sklib_rectangle; + __skparam__collidee: __sklib_rectangle; + __skparam__direction: __sklib_vector_2d; + __skreturn: LongInt; +begin + __skparam__collider := __skadapter__to_sklib_rectangle(collider); + __skparam__collidee := __skadapter__to_sklib_rectangle(collidee); + __skparam__direction := __skadapter__to_sklib_vector_2d(direction); + __skreturn := __sklib__resolve_collision__rectangle_ref__rectangle_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); + collider := __skadapter__to_rectangle(__skparam__collider); + result := __skadapter__to_bool(__skreturn); +end; +function ResolveCollision(var collider: Rectangle; collidee: Sprite; const direction: Vector2D): Boolean; +var + __skparam__collider: __sklib_rectangle; + __skparam__collidee: __sklib_ptr; + __skparam__direction: __sklib_vector_2d; + __skreturn: LongInt; +begin + __skparam__collider := __skadapter__to_sklib_rectangle(collider); + __skparam__collidee := __skadapter__to_sklib_sprite(collidee); + __skparam__direction := __skadapter__to_sklib_vector_2d(direction); + __skreturn := __sklib__resolve_collision__rectangle_ref__sprite__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); + collider := __skadapter__to_rectangle(__skparam__collider); + result := __skadapter__to_bool(__skreturn); +end; +function ResolveCollision(var collider: Rectangle; const collidee: Triangle; const direction: Vector2D): Boolean; +var + __skparam__collider: __sklib_rectangle; + __skparam__collidee: __sklib_triangle; + __skparam__direction: __sklib_vector_2d; + __skreturn: LongInt; +begin + __skparam__collider := __skadapter__to_sklib_rectangle(collider); + __skparam__collidee := __skadapter__to_sklib_triangle(collidee); + __skparam__direction := __skadapter__to_sklib_vector_2d(direction); + __skreturn := __sklib__resolve_collision__rectangle_ref__triangle_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); + collider := __skadapter__to_rectangle(__skparam__collider); + result := __skadapter__to_bool(__skreturn); +end; +function ResolveCollision(collider: Sprite; const collidee: Circle; const direction: Vector2D): Boolean; var - __skparam__bmp: __sklib_ptr; - __skparam__pt: __sklib_point_2d; - __skparam__origin: __sklib_point_2d; - __skparam__heading: __sklib_vector_2d; + __skparam__collider: __sklib_ptr; + __skparam__collidee: __sklib_circle; + __skparam__direction: __sklib_vector_2d; __skreturn: LongInt; begin - __skparam__bmp := __skadapter__to_sklib_bitmap(bmp); - __skparam__pt := __skadapter__to_sklib_point_2d(pt); - __skparam__origin := __skadapter__to_sklib_point_2d(origin); - __skparam__heading := __skadapter__to_sklib_vector_2d(heading); - __skreturn := __sklib__bitmap_ray_collision__bitmap__point_2d_ref__point_2d_ref__vector_2d_ref(__skparam__bmp, __skparam__pt, __skparam__origin, __skparam__heading); + __skparam__collider := __skadapter__to_sklib_sprite(collider); + __skparam__collidee := __skadapter__to_sklib_circle(collidee); + __skparam__direction := __skadapter__to_sklib_vector_2d(direction); + __skreturn := __sklib__resolve_collision__sprite__circle_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); result := __skadapter__to_bool(__skreturn); end; -function BitmapRayCollision(bmp: Bitmap; x: Double; y: Double; const origin: Point2D; const heading: Vector2D): Boolean; +function ResolveCollision(collider: Sprite; const collidee: Quad; const direction: Vector2D): Boolean; var - __skparam__bmp: __sklib_ptr; - __skparam__x: Double; - __skparam__y: Double; - __skparam__origin: __sklib_point_2d; - __skparam__heading: __sklib_vector_2d; + __skparam__collider: __sklib_ptr; + __skparam__collidee: __sklib_quad; + __skparam__direction: __sklib_vector_2d; __skreturn: LongInt; begin - __skparam__bmp := __skadapter__to_sklib_bitmap(bmp); - __skparam__x := __skadapter__to_sklib_double(x); - __skparam__y := __skadapter__to_sklib_double(y); - __skparam__origin := __skadapter__to_sklib_point_2d(origin); - __skparam__heading := __skadapter__to_sklib_vector_2d(heading); - __skreturn := __sklib__bitmap_ray_collision__bitmap__double__double__point_2d_ref__vector_2d_ref(__skparam__bmp, __skparam__x, __skparam__y, __skparam__origin, __skparam__heading); + __skparam__collider := __skadapter__to_sklib_sprite(collider); + __skparam__collidee := __skadapter__to_sklib_quad(collidee); + __skparam__direction := __skadapter__to_sklib_vector_2d(direction); + __skreturn := __sklib__resolve_collision__sprite__quad_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); result := __skadapter__to_bool(__skreturn); end; -function BitmapRayCollision(bmp: Bitmap; cell: Integer; const translation: Matrix2D; const origin: Point2D; const heading: Vector2D): Boolean; +function ResolveCollision(collider: Sprite; const collidee: Rectangle; const direction: Vector2D): Boolean; var - __skparam__bmp: __sklib_ptr; - __skparam__cell: Integer; - __skparam__translation: __sklib_matrix_2d; - __skparam__origin: __sklib_point_2d; - __skparam__heading: __sklib_vector_2d; + __skparam__collider: __sklib_ptr; + __skparam__collidee: __sklib_rectangle; + __skparam__direction: __sklib_vector_2d; __skreturn: LongInt; begin - __skparam__bmp := __skadapter__to_sklib_bitmap(bmp); - __skparam__cell := __skadapter__to_sklib_int(cell); - __skparam__translation := __skadapter__to_sklib_matrix_2d(translation); - __skparam__origin := __skadapter__to_sklib_point_2d(origin); - __skparam__heading := __skadapter__to_sklib_vector_2d(heading); - __skreturn := __sklib__bitmap_ray_collision__bitmap__int__matrix_2d_ref__point_2d_ref__vector_2d_ref(__skparam__bmp, __skparam__cell, __skparam__translation, __skparam__origin, __skparam__heading); + __skparam__collider := __skadapter__to_sklib_sprite(collider); + __skparam__collidee := __skadapter__to_sklib_rectangle(collidee); + __skparam__direction := __skadapter__to_sklib_vector_2d(direction); + __skreturn := __sklib__resolve_collision__sprite__rectangle_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); result := __skadapter__to_bool(__skreturn); end; -function BitmapRayCollision(bmp: Bitmap; cell: Integer; const pt: Point2D; const origin: Point2D; const heading: Vector2D): Boolean; +function ResolveCollision(collider: Sprite; collidee: Sprite; const direction: Vector2D): Boolean; var - __skparam__bmp: __sklib_ptr; - __skparam__cell: Integer; - __skparam__pt: __sklib_point_2d; - __skparam__origin: __sklib_point_2d; - __skparam__heading: __sklib_vector_2d; + __skparam__collider: __sklib_ptr; + __skparam__collidee: __sklib_ptr; + __skparam__direction: __sklib_vector_2d; __skreturn: LongInt; begin - __skparam__bmp := __skadapter__to_sklib_bitmap(bmp); - __skparam__cell := __skadapter__to_sklib_int(cell); - __skparam__pt := __skadapter__to_sklib_point_2d(pt); - __skparam__origin := __skadapter__to_sklib_point_2d(origin); - __skparam__heading := __skadapter__to_sklib_vector_2d(heading); - __skreturn := __sklib__bitmap_ray_collision__bitmap__int__point_2d_ref__point_2d_ref__vector_2d_ref(__skparam__bmp, __skparam__cell, __skparam__pt, __skparam__origin, __skparam__heading); + __skparam__collider := __skadapter__to_sklib_sprite(collider); + __skparam__collidee := __skadapter__to_sklib_sprite(collidee); + __skparam__direction := __skadapter__to_sklib_vector_2d(direction); + __skreturn := __sklib__resolve_collision__sprite__sprite__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); result := __skadapter__to_bool(__skreturn); end; -function BitmapRayCollision(bmp: Bitmap; cell: Integer; x: Double; y: Double; const origin: Point2D; const heading: Vector2D): Boolean; +function ResolveCollision(collider: Sprite; const collidee: Triangle; const direction: Vector2D): Boolean; var - __skparam__bmp: __sklib_ptr; - __skparam__cell: Integer; - __skparam__x: Double; - __skparam__y: Double; - __skparam__origin: __sklib_point_2d; - __skparam__heading: __sklib_vector_2d; + __skparam__collider: __sklib_ptr; + __skparam__collidee: __sklib_triangle; + __skparam__direction: __sklib_vector_2d; __skreturn: LongInt; begin - __skparam__bmp := __skadapter__to_sklib_bitmap(bmp); - __skparam__cell := __skadapter__to_sklib_int(cell); - __skparam__x := __skadapter__to_sklib_double(x); - __skparam__y := __skadapter__to_sklib_double(y); - __skparam__origin := __skadapter__to_sklib_point_2d(origin); - __skparam__heading := __skadapter__to_sklib_vector_2d(heading); - __skreturn := __sklib__bitmap_ray_collision__bitmap__int__double__double__point_2d_ref__vector_2d_ref(__skparam__bmp, __skparam__cell, __skparam__x, __skparam__y, __skparam__origin, __skparam__heading); + __skparam__collider := __skadapter__to_sklib_sprite(collider); + __skparam__collidee := __skadapter__to_sklib_triangle(collidee); + __skparam__direction := __skadapter__to_sklib_vector_2d(direction); + __skreturn := __sklib__resolve_collision__sprite__triangle_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); result := __skadapter__to_bool(__skreturn); end; -function BitmapRectangleCollision(bmp: Bitmap; const pt: Point2D; const rect: Rectangle): Boolean; +function ResolveCollision(var collider: Triangle; const collidee: Circle; const direction: Vector2D): Boolean; var - __skparam__bmp: __sklib_ptr; - __skparam__pt: __sklib_point_2d; - __skparam__rect: __sklib_rectangle; + __skparam__collider: __sklib_triangle; + __skparam__collidee: __sklib_circle; + __skparam__direction: __sklib_vector_2d; __skreturn: LongInt; begin - __skparam__bmp := __skadapter__to_sklib_bitmap(bmp); - __skparam__pt := __skadapter__to_sklib_point_2d(pt); - __skparam__rect := __skadapter__to_sklib_rectangle(rect); - __skreturn := __sklib__bitmap_rectangle_collision__bitmap__point_2d_ref__rectangle_ref(__skparam__bmp, __skparam__pt, __skparam__rect); + __skparam__collider := __skadapter__to_sklib_triangle(collider); + __skparam__collidee := __skadapter__to_sklib_circle(collidee); + __skparam__direction := __skadapter__to_sklib_vector_2d(direction); + __skreturn := __sklib__resolve_collision__triangle_ref__circle_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); + collider := __skadapter__to_triangle(__skparam__collider); result := __skadapter__to_bool(__skreturn); end; -function BitmapRectangleCollision(bmp: Bitmap; x: Double; y: Double; const rect: Rectangle): Boolean; +function ResolveCollision(var collider: Triangle; const collidee: Quad; const direction: Vector2D): Boolean; var - __skparam__bmp: __sklib_ptr; - __skparam__x: Double; - __skparam__y: Double; - __skparam__rect: __sklib_rectangle; + __skparam__collider: __sklib_triangle; + __skparam__collidee: __sklib_quad; + __skparam__direction: __sklib_vector_2d; __skreturn: LongInt; begin - __skparam__bmp := __skadapter__to_sklib_bitmap(bmp); - __skparam__x := __skadapter__to_sklib_double(x); - __skparam__y := __skadapter__to_sklib_double(y); - __skparam__rect := __skadapter__to_sklib_rectangle(rect); - __skreturn := __sklib__bitmap_rectangle_collision__bitmap__double__double__rectangle_ref(__skparam__bmp, __skparam__x, __skparam__y, __skparam__rect); + __skparam__collider := __skadapter__to_sklib_triangle(collider); + __skparam__collidee := __skadapter__to_sklib_quad(collidee); + __skparam__direction := __skadapter__to_sklib_vector_2d(direction); + __skreturn := __sklib__resolve_collision__triangle_ref__quad_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); + collider := __skadapter__to_triangle(__skparam__collider); result := __skadapter__to_bool(__skreturn); end; -function BitmapRectangleCollision(bmp: Bitmap; cell: Integer; const translation: Matrix2D; const rect: Rectangle): Boolean; +function ResolveCollision(var collider: Triangle; const collidee: Rectangle; const direction: Vector2D): Boolean; var - __skparam__bmp: __sklib_ptr; - __skparam__cell: Integer; - __skparam__translation: __sklib_matrix_2d; - __skparam__rect: __sklib_rectangle; + __skparam__collider: __sklib_triangle; + __skparam__collidee: __sklib_rectangle; + __skparam__direction: __sklib_vector_2d; __skreturn: LongInt; begin - __skparam__bmp := __skadapter__to_sklib_bitmap(bmp); - __skparam__cell := __skadapter__to_sklib_int(cell); - __skparam__translation := __skadapter__to_sklib_matrix_2d(translation); - __skparam__rect := __skadapter__to_sklib_rectangle(rect); - __skreturn := __sklib__bitmap_rectangle_collision__bitmap__int__matrix_2d_ref__rectangle_ref(__skparam__bmp, __skparam__cell, __skparam__translation, __skparam__rect); + __skparam__collider := __skadapter__to_sklib_triangle(collider); + __skparam__collidee := __skadapter__to_sklib_rectangle(collidee); + __skparam__direction := __skadapter__to_sklib_vector_2d(direction); + __skreturn := __sklib__resolve_collision__triangle_ref__rectangle_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); + collider := __skadapter__to_triangle(__skparam__collider); result := __skadapter__to_bool(__skreturn); end; -function BitmapRectangleCollision(bmp: Bitmap; cell: Integer; const pt: Point2D; const rect: Rectangle): Boolean; +function ResolveCollision(var collider: Triangle; collidee: Sprite; const direction: Vector2D): Boolean; var - __skparam__bmp: __sklib_ptr; - __skparam__cell: Integer; - __skparam__pt: __sklib_point_2d; - __skparam__rect: __sklib_rectangle; + __skparam__collider: __sklib_triangle; + __skparam__collidee: __sklib_ptr; + __skparam__direction: __sklib_vector_2d; __skreturn: LongInt; begin - __skparam__bmp := __skadapter__to_sklib_bitmap(bmp); - __skparam__cell := __skadapter__to_sklib_int(cell); - __skparam__pt := __skadapter__to_sklib_point_2d(pt); - __skparam__rect := __skadapter__to_sklib_rectangle(rect); - __skreturn := __sklib__bitmap_rectangle_collision__bitmap__int__point_2d_ref__rectangle_ref(__skparam__bmp, __skparam__cell, __skparam__pt, __skparam__rect); + __skparam__collider := __skadapter__to_sklib_triangle(collider); + __skparam__collidee := __skadapter__to_sklib_sprite(collidee); + __skparam__direction := __skadapter__to_sklib_vector_2d(direction); + __skreturn := __sklib__resolve_collision__triangle_ref__sprite__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); + collider := __skadapter__to_triangle(__skparam__collider); result := __skadapter__to_bool(__skreturn); end; -function BitmapRectangleCollision(bmp: Bitmap; cell: Integer; x: Double; y: Double; const rect: Rectangle): Boolean; +function ResolveCollision(var collider: Triangle; const collidee: Triangle; const direction: Vector2D): Boolean; var - __skparam__bmp: __sklib_ptr; - __skparam__cell: Integer; - __skparam__x: Double; - __skparam__y: Double; - __skparam__rect: __sklib_rectangle; + __skparam__collider: __sklib_triangle; + __skparam__collidee: __sklib_triangle; + __skparam__direction: __sklib_vector_2d; __skreturn: LongInt; begin - __skparam__bmp := __skadapter__to_sklib_bitmap(bmp); - __skparam__cell := __skadapter__to_sklib_int(cell); - __skparam__x := __skadapter__to_sklib_double(x); - __skparam__y := __skadapter__to_sklib_double(y); - __skparam__rect := __skadapter__to_sklib_rectangle(rect); - __skreturn := __sklib__bitmap_rectangle_collision__bitmap__int__double__double__rectangle_ref(__skparam__bmp, __skparam__cell, __skparam__x, __skparam__y, __skparam__rect); + __skparam__collider := __skadapter__to_sklib_triangle(collider); + __skparam__collidee := __skadapter__to_sklib_triangle(collidee); + __skparam__direction := __skadapter__to_sklib_vector_2d(direction); + __skreturn := __sklib__resolve_collision__triangle_ref__triangle_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction); + collider := __skadapter__to_triangle(__skparam__collider); result := __skadapter__to_bool(__skreturn); end; function SpriteBitmapCollision(s: Sprite; bmp: Bitmap; x: Double; y: Double): Boolean; @@ -5685,6 +6635,17 @@ function SpriteBitmapCollision(s: Sprite; bmp: Bitmap; cell: Integer; x: Double; __skreturn := __sklib__sprite_bitmap_collision__sprite__bitmap__int__double__double(__skparam__s, __skparam__bmp, __skparam__cell, __skparam__x, __skparam__y); result := __skadapter__to_bool(__skreturn); end; +function SpriteCircleCollision(s: Sprite; const c: Circle): Boolean; +var + __skparam__s: __sklib_ptr; + __skparam__c: __sklib_circle; + __skreturn: LongInt; +begin + __skparam__s := __skadapter__to_sklib_sprite(s); + __skparam__c := __skadapter__to_sklib_circle(c); + __skreturn := __sklib__sprite_circle_collision__sprite__circle_ref(__skparam__s, __skparam__c); + result := __skadapter__to_bool(__skreturn); +end; function SpriteCollision(s1: Sprite; s2: Sprite): Boolean; var __skparam__s1: __sklib_ptr; @@ -5707,6 +6668,17 @@ function SpritePointCollision(s: Sprite; const pt: Point2D): Boolean; __skreturn := __sklib__sprite_point_collision__sprite__point_2d_ref(__skparam__s, __skparam__pt); result := __skadapter__to_bool(__skreturn); end; +function SpriteQuadCollision(s: Sprite; const q: Quad): Boolean; +var + __skparam__s: __sklib_ptr; + __skparam__q: __sklib_quad; + __skreturn: LongInt; +begin + __skparam__s := __skadapter__to_sklib_sprite(s); + __skparam__q := __skadapter__to_sklib_quad(q); + __skreturn := __sklib__sprite_quad_collision__sprite__quad_ref(__skparam__s, __skparam__q); + result := __skadapter__to_bool(__skreturn); +end; function SpriteRayCollision(s: Sprite; const origin: Point2D; const heading: Vector2D): Boolean; var __skparam__s: __sklib_ptr; @@ -5731,6 +6703,17 @@ function SpriteRectangleCollision(s: Sprite; const rect: Rectangle): Boolean; __skreturn := __sklib__sprite_rectangle_collision__sprite__rectangle_ref(__skparam__s, __skparam__rect); result := __skadapter__to_bool(__skreturn); end; +function SpriteTriangleCollision(s: Sprite; const t: Triangle): Boolean; +var + __skparam__s: __sklib_ptr; + __skparam__t: __sklib_triangle; + __skreturn: LongInt; +begin + __skparam__s := __skadapter__to_sklib_sprite(s); + __skparam__t := __skadapter__to_sklib_triangle(t); + __skreturn := __sklib__sprite_triangle_collision__sprite__triangle_ref(__skparam__s, __skparam__t); + result := __skadapter__to_bool(__skreturn); +end; function AlphaOf(c: Color): Integer; var __skparam__c: __sklib_color; @@ -10451,6 +11434,15 @@ function DecToHex(aDec: Cardinal): String; __skreturn := __sklib__dec_to_hex__unsigned_int(__skparam__a_dec); result := __skadapter__to_string(__skreturn); end; +function DecToIpv4(ip: Cardinal): String; +var + __skparam__ip: Cardinal; + __skreturn: __sklib_string; +begin + __skparam__ip := __skadapter__to_sklib_unsigned_int(ip); + __skreturn := __sklib__dec_to_ipv4__unsigned_int(__skparam__ip); + result := __skadapter__to_string(__skreturn); +end; function FetchNewConnection(server: ServerSocket): Connection; var __skparam__server: __sklib_ptr; @@ -10555,15 +11547,6 @@ function Ipv4ToHex(const aIP: String): String; __skreturn := __sklib__ipv4_to_hex__string_ref(__skparam__a_ip); result := __skadapter__to_string(__skreturn); end; -function Ipv4ToStr(ip: Cardinal): String; -var - __skparam__ip: Cardinal; - __skreturn: __sklib_string; -begin - __skparam__ip := __skadapter__to_sklib_unsigned_int(ip); - __skreturn := __sklib__ipv4_to_str__unsigned_int(__skparam__ip); - result := __skadapter__to_string(__skreturn); -end; function IsConnectionOpen(con: Connection): Boolean; var __skparam__con: __sklib_ptr; @@ -11447,6 +12430,38 @@ function QuadFrom(xTopLeft: Double; yTopLeft: Double; xTopRight: Double; yTopRig __skreturn := __sklib__quad_from__double__double__double__double__double__double__double__double(__skparam__x_top_left, __skparam__y_top_left, __skparam__x_top_right, __skparam__y_top_right, __skparam__x_bottom_left, __skparam__y_bottom_left, __skparam__x_bottom_right, __skparam__y_bottom_right); result := __skadapter__to_quad(__skreturn); end; +function QuadRayIntersection(const origin: Point2D; const heading: Vector2D; const q: Quad): Boolean; +var + __skparam__origin: __sklib_point_2d; + __skparam__heading: __sklib_vector_2d; + __skparam__q: __sklib_quad; + __skreturn: LongInt; +begin + __skparam__origin := __skadapter__to_sklib_point_2d(origin); + __skparam__heading := __skadapter__to_sklib_vector_2d(heading); + __skparam__q := __skadapter__to_sklib_quad(q); + __skreturn := __sklib__quad_ray_intersection__point_2d_ref__vector_2d_ref__quad_ref(__skparam__origin, __skparam__heading, __skparam__q); + result := __skadapter__to_bool(__skreturn); +end; +function QuadRayIntersection(const origin: Point2D; const heading: Vector2D; const q: Quad; var hitPoint: Point2D; var hitDistance: Double): Boolean; +var + __skparam__origin: __sklib_point_2d; + __skparam__heading: __sklib_vector_2d; + __skparam__q: __sklib_quad; + __skparam__hit_point: __sklib_point_2d; + __skparam__hit_distance: Double; + __skreturn: LongInt; +begin + __skparam__origin := __skadapter__to_sklib_point_2d(origin); + __skparam__heading := __skadapter__to_sklib_vector_2d(heading); + __skparam__q := __skadapter__to_sklib_quad(q); + __skparam__hit_point := __skadapter__to_sklib_point_2d(hitPoint); + __skparam__hit_distance := __skadapter__to_sklib_double(hitDistance); + __skreturn := __sklib__quad_ray_intersection__point_2d_ref__vector_2d_ref__quad_ref__point_2d_ref__double_ref(__skparam__origin, __skparam__heading, __skparam__q, __skparam__hit_point, __skparam__hit_distance); + hitPoint := __skadapter__to_point_2d(__skparam__hit_point); + hitDistance := __skadapter__to_double(__skparam__hit_distance); + result := __skadapter__to_bool(__skreturn); +end; function QuadsIntersect(const q1: Quad; const q2: Quad): Boolean; var __skparam__q1: __sklib_quad; @@ -11584,6 +12599,43 @@ procedure RaspiSetPwmRange(pin: Pins; range: Integer); __skparam__range := __skadapter__to_sklib_int(range); __sklib__raspi_set_pwm_range__pins__int(__skparam__pin, __skparam__range); end; +function RaspiSpiClose(handle: Integer): Integer; +var + __skparam__handle: Integer; + __skreturn: Integer; +begin + __skparam__handle := __skadapter__to_sklib_int(handle); + __skreturn := __sklib__raspi_spi_close__int(__skparam__handle); + result := __skadapter__to_int(__skreturn); +end; +function RaspiSpiOpen(channel: Integer; speed: Integer; spiFlags: Integer): Integer; +var + __skparam__channel: Integer; + __skparam__speed: Integer; + __skparam__spi_flags: Integer; + __skreturn: Integer; +begin + __skparam__channel := __skadapter__to_sklib_int(channel); + __skparam__speed := __skadapter__to_sklib_int(speed); + __skparam__spi_flags := __skadapter__to_sklib_int(spiFlags); + __skreturn := __sklib__raspi_spi_open__int__int__int(__skparam__channel, __skparam__speed, __skparam__spi_flags); + result := __skadapter__to_int(__skreturn); +end; +function RaspiSpiTransfer(handle: Integer; sendbuf: String; recvbuf: String; count: Integer): Integer; +var + __skparam__handle: Integer; + __skparam__sendBuf: __sklib_string; + __skparam__recvBuf: __sklib_string; + __skparam__count: Integer; + __skreturn: Integer; +begin + __skparam__handle := __skadapter__to_sklib_int(handle); + __skparam__sendBuf := __skadapter__to_sklib_string(sendbuf); + __skparam__recvBuf := __skadapter__to_sklib_string(recvbuf); + __skparam__count := __skadapter__to_sklib_int(count); + __skreturn := __sklib__raspi_spi_transfer__int__string__string__int(__skparam__handle, __skparam__sendBuf, __skparam__recvBuf, __skparam__count); + result := __skadapter__to_int(__skreturn); +end; procedure RaspiWrite(pin: Pins; value: PinValues); var __skparam__pin: LongInt; @@ -12149,6 +13201,17 @@ function RectangleCenter(const rect: Rectangle): Point2D; __skreturn := __sklib__rectangle_center__rectangle_ref(__skparam__rect); result := __skadapter__to_point_2d(__skreturn); end; +function RectangleCircleIntersect(const rect: Rectangle; const c: Circle): Boolean; +var + __skparam__rect: __sklib_rectangle; + __skparam__c: __sklib_circle; + __skreturn: LongInt; +begin + __skparam__rect := __skadapter__to_sklib_rectangle(rect); + __skparam__c := __skadapter__to_sklib_circle(c); + __skreturn := __sklib__rectangle_circle_intersect__rectangle_ref__circle_ref(__skparam__rect, __skparam__c); + result := __skadapter__to_bool(__skreturn); +end; function RectangleFrom(pt: Point2D; width: Double; height: Double): Rectangle; var __skparam__pt: __sklib_point_2d; @@ -12208,6 +13271,38 @@ function RectangleOffsetBy(const rect: Rectangle; const offset: Vector2D): Recta __skreturn := __sklib__rectangle_offset_by__rectangle_ref__vector_2d_ref(__skparam__rect, __skparam__offset); result := __skadapter__to_rectangle(__skreturn); end; +function RectangleRayIntersection(const origin: Point2D; const heading: Vector2D; const rect: Rectangle): Boolean; +var + __skparam__origin: __sklib_point_2d; + __skparam__heading: __sklib_vector_2d; + __skparam__rect: __sklib_rectangle; + __skreturn: LongInt; +begin + __skparam__origin := __skadapter__to_sklib_point_2d(origin); + __skparam__heading := __skadapter__to_sklib_vector_2d(heading); + __skparam__rect := __skadapter__to_sklib_rectangle(rect); + __skreturn := __sklib__rectangle_ray_intersection__point_2d_ref__vector_2d_ref__rectangle_ref(__skparam__origin, __skparam__heading, __skparam__rect); + result := __skadapter__to_bool(__skreturn); +end; +function RectangleRayIntersection(const origin: Point2D; const heading: Vector2D; const rect: Rectangle; var hitPoint: Point2D; var hitDistance: Double): Boolean; +var + __skparam__origin: __sklib_point_2d; + __skparam__heading: __sklib_vector_2d; + __skparam__rect: __sklib_rectangle; + __skparam__hit_point: __sklib_point_2d; + __skparam__hit_distance: Double; + __skreturn: LongInt; +begin + __skparam__origin := __skadapter__to_sklib_point_2d(origin); + __skparam__heading := __skadapter__to_sklib_vector_2d(heading); + __skparam__rect := __skadapter__to_sklib_rectangle(rect); + __skparam__hit_point := __skadapter__to_sklib_point_2d(hitPoint); + __skparam__hit_distance := __skadapter__to_sklib_double(hitDistance); + __skreturn := __sklib__rectangle_ray_intersection__point_2d_ref__vector_2d_ref__rectangle_ref__point_2d_ref__double_ref(__skparam__origin, __skparam__heading, __skparam__rect, __skparam__hit_point, __skparam__hit_distance); + hitPoint := __skadapter__to_point_2d(__skparam__hit_point); + hitDistance := __skadapter__to_double(__skparam__hit_distance); + result := __skadapter__to_bool(__skreturn); +end; function RectangleRight(const rect: Rectangle): Double; var __skparam__rect: __sklib_rectangle; @@ -15057,6 +16152,49 @@ function TriangleFrom(x1: Double; y1: Double; x2: Double; y2: Double; x3: Double __skreturn := __sklib__triangle_from__double__double__double__double__double__double(__skparam__x1, __skparam__y1, __skparam__x2, __skparam__y2, __skparam__x3, __skparam__y3); result := __skadapter__to_triangle(__skreturn); end; +function TriangleQuadIntersect(const tri: Triangle; const q: Quad): Boolean; +var + __skparam__tri: __sklib_triangle; + __skparam__q: __sklib_quad; + __skreturn: LongInt; +begin + __skparam__tri := __skadapter__to_sklib_triangle(tri); + __skparam__q := __skadapter__to_sklib_quad(q); + __skreturn := __sklib__triangle_quad_intersect__triangle_ref__quad_ref(__skparam__tri, __skparam__q); + result := __skadapter__to_bool(__skreturn); +end; +function TriangleRayIntersection(const origin: Point2D; const heading: Vector2D; const tri: Triangle): Boolean; +var + __skparam__origin: __sklib_point_2d; + __skparam__heading: __sklib_vector_2d; + __skparam__tri: __sklib_triangle; + __skreturn: LongInt; +begin + __skparam__origin := __skadapter__to_sklib_point_2d(origin); + __skparam__heading := __skadapter__to_sklib_vector_2d(heading); + __skparam__tri := __skadapter__to_sklib_triangle(tri); + __skreturn := __sklib__triangle_ray_intersection__point_2d_ref__vector_2d_ref__triangle_ref(__skparam__origin, __skparam__heading, __skparam__tri); + result := __skadapter__to_bool(__skreturn); +end; +function TriangleRayIntersection(const origin: Point2D; const heading: Vector2D; const tri: Triangle; var hitPoint: Point2D; var hitDistance: Double): Boolean; +var + __skparam__origin: __sklib_point_2d; + __skparam__heading: __sklib_vector_2d; + __skparam__tri: __sklib_triangle; + __skparam__hit_point: __sklib_point_2d; + __skparam__hit_distance: Double; + __skreturn: LongInt; +begin + __skparam__origin := __skadapter__to_sklib_point_2d(origin); + __skparam__heading := __skadapter__to_sklib_vector_2d(heading); + __skparam__tri := __skadapter__to_sklib_triangle(tri); + __skparam__hit_point := __skadapter__to_sklib_point_2d(hitPoint); + __skparam__hit_distance := __skadapter__to_sklib_double(hitDistance); + __skreturn := __sklib__triangle_ray_intersection__point_2d_ref__vector_2d_ref__triangle_ref__point_2d_ref__double_ref(__skparam__origin, __skparam__heading, __skparam__tri, __skparam__hit_point, __skparam__hit_distance); + hitPoint := __skadapter__to_point_2d(__skparam__hit_point); + hitDistance := __skadapter__to_double(__skparam__hit_distance); + result := __skadapter__to_bool(__skreturn); +end; function TriangleRectangleIntersect(const tri: Triangle; const rect: Rectangle): Boolean; var __skparam__tri: __sklib_triangle; diff --git a/generated/python/splashkit.py b/generated/python/splashkit.py index 8526c749..654dcb94 100644 --- a/generated/python/splashkit.py +++ b/generated/python/splashkit.py @@ -1596,8 +1596,14 @@ def __skadapter__to_sklib_window(v): sklib.__sklib__circle_at__point_2d_ref__double.restype = _sklib_circle sklib.__sklib__circle_at__double__double__double.argtypes = [ c_double, c_double, c_double ] sklib.__sklib__circle_at__double__double__double.restype = _sklib_circle +sklib.__sklib__circle_quad_intersect__circle_ref__quad_ref.argtypes = [ _sklib_circle, _sklib_quad ] +sklib.__sklib__circle_quad_intersect__circle_ref__quad_ref.restype = c_bool sklib.__sklib__circle_radius__circle.argtypes = [ _sklib_circle ] sklib.__sklib__circle_radius__circle.restype = c_float +sklib.__sklib__circle_ray_intersection__point_2d_ref__vector_2d_ref__circle_ref.argtypes = [ _sklib_point_2d, _sklib_vector_2d, _sklib_circle ] +sklib.__sklib__circle_ray_intersection__point_2d_ref__vector_2d_ref__circle_ref.restype = c_bool +sklib.__sklib__circle_ray_intersection__point_2d_ref__vector_2d_ref__circle_ref__point_2d_ref__double_ref.argtypes = [ _sklib_point_2d, _sklib_vector_2d, _sklib_circle, POINTER(_sklib_point_2d), POINTER(c_double) ] +sklib.__sklib__circle_ray_intersection__point_2d_ref__vector_2d_ref__circle_ref__point_2d_ref__double_ref.restype = c_bool sklib.__sklib__circle_triangle_intersect__circle_ref__triangle_ref.argtypes = [ _sklib_circle, _sklib_triangle ] sklib.__sklib__circle_triangle_intersect__circle_ref__triangle_ref.restype = c_bool sklib.__sklib__circle_triangle_intersect__circle_ref__triangle_ref__point_2d_ref.argtypes = [ _sklib_circle, _sklib_triangle, POINTER(_sklib_point_2d) ] @@ -1690,8 +1696,16 @@ def __skadapter__to_sklib_window(v): sklib.__sklib__bitmap_point_collision__bitmap__int__point_2d_ref__point_2d_ref.restype = c_bool sklib.__sklib__bitmap_point_collision__bitmap__int__double__double__double__double.argtypes = [ c_void_p, c_int, c_double, c_double, c_double, c_double ] sklib.__sklib__bitmap_point_collision__bitmap__int__double__double__double__double.restype = c_bool +sklib.__sklib__bitmap_quad_collision__bitmap__point_2d_ref__quad_ref.argtypes = [ c_void_p, _sklib_point_2d, _sklib_quad ] +sklib.__sklib__bitmap_quad_collision__bitmap__point_2d_ref__quad_ref.restype = c_bool +sklib.__sklib__bitmap_quad_collision__bitmap__double__double__quad_ref.argtypes = [ c_void_p, c_double, c_double, _sklib_quad ] +sklib.__sklib__bitmap_quad_collision__bitmap__double__double__quad_ref.restype = c_bool sklib.__sklib__bitmap_quad_collision__bitmap__int__matrix_2d_ref__quad_ref.argtypes = [ c_void_p, c_int, _sklib_matrix_2d, _sklib_quad ] sklib.__sklib__bitmap_quad_collision__bitmap__int__matrix_2d_ref__quad_ref.restype = c_bool +sklib.__sklib__bitmap_quad_collision__bitmap__int__point_2d_ref__quad_ref.argtypes = [ c_void_p, c_int, _sklib_point_2d, _sklib_quad ] +sklib.__sklib__bitmap_quad_collision__bitmap__int__point_2d_ref__quad_ref.restype = c_bool +sklib.__sklib__bitmap_quad_collision__bitmap__int__double__double__quad_ref.argtypes = [ c_void_p, c_int, c_double, c_double, _sklib_quad ] +sklib.__sklib__bitmap_quad_collision__bitmap__int__double__double__quad_ref.restype = c_bool sklib.__sklib__bitmap_ray_collision__bitmap__point_2d_ref__point_2d_ref__vector_2d_ref.argtypes = [ c_void_p, _sklib_point_2d, _sklib_point_2d, _sklib_vector_2d ] sklib.__sklib__bitmap_ray_collision__bitmap__point_2d_ref__point_2d_ref__vector_2d_ref.restype = c_bool sklib.__sklib__bitmap_ray_collision__bitmap__double__double__point_2d_ref__vector_2d_ref.argtypes = [ c_void_p, c_double, c_double, _sklib_point_2d, _sklib_vector_2d ] @@ -1712,20 +1726,136 @@ def __skadapter__to_sklib_window(v): sklib.__sklib__bitmap_rectangle_collision__bitmap__int__point_2d_ref__rectangle_ref.restype = c_bool sklib.__sklib__bitmap_rectangle_collision__bitmap__int__double__double__rectangle_ref.argtypes = [ c_void_p, c_int, c_double, c_double, _sklib_rectangle ] sklib.__sklib__bitmap_rectangle_collision__bitmap__int__double__double__rectangle_ref.restype = c_bool +sklib.__sklib__bitmap_triangle_collision__bitmap__point_2d_ref__triangle_ref.argtypes = [ c_void_p, _sklib_point_2d, _sklib_triangle ] +sklib.__sklib__bitmap_triangle_collision__bitmap__point_2d_ref__triangle_ref.restype = c_bool +sklib.__sklib__bitmap_triangle_collision__bitmap__double__double__triangle_ref.argtypes = [ c_void_p, c_double, c_double, _sklib_triangle ] +sklib.__sklib__bitmap_triangle_collision__bitmap__double__double__triangle_ref.restype = c_bool +sklib.__sklib__bitmap_triangle_collision__bitmap__int__matrix_2d_ref__triangle_ref.argtypes = [ c_void_p, c_int, _sklib_matrix_2d, _sklib_triangle ] +sklib.__sklib__bitmap_triangle_collision__bitmap__int__matrix_2d_ref__triangle_ref.restype = c_bool +sklib.__sklib__bitmap_triangle_collision__bitmap__int__point_2d_ref__triangle_ref.argtypes = [ c_void_p, c_int, _sklib_point_2d, _sklib_triangle ] +sklib.__sklib__bitmap_triangle_collision__bitmap__int__point_2d_ref__triangle_ref.restype = c_bool +sklib.__sklib__bitmap_triangle_collision__bitmap__int__double__double__triangle_ref.argtypes = [ c_void_p, c_int, c_double, c_double, _sklib_triangle ] +sklib.__sklib__bitmap_triangle_collision__bitmap__int__double__double__triangle_ref.restype = c_bool +sklib.__sklib__calculate_collision_direction__quad_ref__quad_ref.argtypes = [ _sklib_quad, _sklib_quad ] +sklib.__sklib__calculate_collision_direction__quad_ref__quad_ref.restype = _sklib_vector_2d +sklib.__sklib__calculate_collision_direction__circle_ref__circle_ref.argtypes = [ _sklib_circle, _sklib_circle ] +sklib.__sklib__calculate_collision_direction__circle_ref__circle_ref.restype = _sklib_vector_2d +sklib.__sklib__calculate_collision_direction__circle_ref__quad_ref.argtypes = [ _sklib_circle, _sklib_quad ] +sklib.__sklib__calculate_collision_direction__circle_ref__quad_ref.restype = _sklib_vector_2d +sklib.__sklib__calculate_collision_direction__circle_ref__rectangle_ref.argtypes = [ _sklib_circle, _sklib_rectangle ] +sklib.__sklib__calculate_collision_direction__circle_ref__rectangle_ref.restype = _sklib_vector_2d +sklib.__sklib__calculate_collision_direction__circle_ref__sprite.argtypes = [ _sklib_circle, c_void_p ] +sklib.__sklib__calculate_collision_direction__circle_ref__sprite.restype = _sklib_vector_2d +sklib.__sklib__calculate_collision_direction__circle_ref__triangle_ref.argtypes = [ _sklib_circle, _sklib_triangle ] +sklib.__sklib__calculate_collision_direction__circle_ref__triangle_ref.restype = _sklib_vector_2d +sklib.__sklib__calculate_collision_direction__quad_ref__circle_ref.argtypes = [ _sklib_quad, _sklib_circle ] +sklib.__sklib__calculate_collision_direction__quad_ref__circle_ref.restype = _sklib_vector_2d +sklib.__sklib__calculate_collision_direction__quad_ref__rectangle_ref.argtypes = [ _sklib_quad, _sklib_rectangle ] +sklib.__sklib__calculate_collision_direction__quad_ref__rectangle_ref.restype = _sklib_vector_2d +sklib.__sklib__calculate_collision_direction__quad_ref__sprite.argtypes = [ _sklib_quad, c_void_p ] +sklib.__sklib__calculate_collision_direction__quad_ref__sprite.restype = _sklib_vector_2d +sklib.__sklib__calculate_collision_direction__quad_ref__triangle_ref.argtypes = [ _sklib_quad, _sklib_triangle ] +sklib.__sklib__calculate_collision_direction__quad_ref__triangle_ref.restype = _sklib_vector_2d +sklib.__sklib__calculate_collision_direction__rectangle_ref__circle_ref.argtypes = [ _sklib_rectangle, _sklib_circle ] +sklib.__sklib__calculate_collision_direction__rectangle_ref__circle_ref.restype = _sklib_vector_2d +sklib.__sklib__calculate_collision_direction__rectangle_ref__quad_ref.argtypes = [ _sklib_rectangle, _sklib_quad ] +sklib.__sklib__calculate_collision_direction__rectangle_ref__quad_ref.restype = _sklib_vector_2d +sklib.__sklib__calculate_collision_direction__rectangle_ref__rectangle_ref.argtypes = [ _sklib_rectangle, _sklib_rectangle ] +sklib.__sklib__calculate_collision_direction__rectangle_ref__rectangle_ref.restype = _sklib_vector_2d +sklib.__sklib__calculate_collision_direction__rectangle_ref__sprite.argtypes = [ _sklib_rectangle, c_void_p ] +sklib.__sklib__calculate_collision_direction__rectangle_ref__sprite.restype = _sklib_vector_2d +sklib.__sklib__calculate_collision_direction__rectangle_ref__triangle_ref.argtypes = [ _sklib_rectangle, _sklib_triangle ] +sklib.__sklib__calculate_collision_direction__rectangle_ref__triangle_ref.restype = _sklib_vector_2d +sklib.__sklib__calculate_collision_direction__sprite__circle_ref.argtypes = [ c_void_p, _sklib_circle ] +sklib.__sklib__calculate_collision_direction__sprite__circle_ref.restype = _sklib_vector_2d +sklib.__sklib__calculate_collision_direction__sprite__quad_ref.argtypes = [ c_void_p, _sklib_quad ] +sklib.__sklib__calculate_collision_direction__sprite__quad_ref.restype = _sklib_vector_2d +sklib.__sklib__calculate_collision_direction__sprite__rectangle_ref.argtypes = [ c_void_p, _sklib_rectangle ] +sklib.__sklib__calculate_collision_direction__sprite__rectangle_ref.restype = _sklib_vector_2d +sklib.__sklib__calculate_collision_direction__sprite__sprite.argtypes = [ c_void_p, c_void_p ] +sklib.__sklib__calculate_collision_direction__sprite__sprite.restype = _sklib_vector_2d +sklib.__sklib__calculate_collision_direction__sprite__triangle_ref.argtypes = [ c_void_p, _sklib_triangle ] +sklib.__sklib__calculate_collision_direction__sprite__triangle_ref.restype = _sklib_vector_2d +sklib.__sklib__calculate_collision_direction__triangle_ref__circle_ref.argtypes = [ _sklib_triangle, _sklib_circle ] +sklib.__sklib__calculate_collision_direction__triangle_ref__circle_ref.restype = _sklib_vector_2d +sklib.__sklib__calculate_collision_direction__triangle_ref__quad_ref.argtypes = [ _sklib_triangle, _sklib_quad ] +sklib.__sklib__calculate_collision_direction__triangle_ref__quad_ref.restype = _sklib_vector_2d +sklib.__sklib__calculate_collision_direction__triangle_ref__rectangle_ref.argtypes = [ _sklib_triangle, _sklib_rectangle ] +sklib.__sklib__calculate_collision_direction__triangle_ref__rectangle_ref.restype = _sklib_vector_2d +sklib.__sklib__calculate_collision_direction__triangle_ref__sprite.argtypes = [ _sklib_triangle, c_void_p ] +sklib.__sklib__calculate_collision_direction__triangle_ref__sprite.restype = _sklib_vector_2d +sklib.__sklib__calculate_collision_direction__triangle_ref__triangle_ref.argtypes = [ _sklib_triangle, _sklib_triangle ] +sklib.__sklib__calculate_collision_direction__triangle_ref__triangle_ref.restype = _sklib_vector_2d +sklib.__sklib__resolve_collision__quad_ref__quad_ref__vector_2d_ref.argtypes = [ POINTER(_sklib_quad), _sklib_quad, _sklib_vector_2d ] +sklib.__sklib__resolve_collision__quad_ref__quad_ref__vector_2d_ref.restype = c_bool +sklib.__sklib__resolve_collision__circle_ref__circle_ref__vector_2d_ref.argtypes = [ POINTER(_sklib_circle), _sklib_circle, _sklib_vector_2d ] +sklib.__sklib__resolve_collision__circle_ref__circle_ref__vector_2d_ref.restype = c_bool +sklib.__sklib__resolve_collision__circle_ref__quad_ref__vector_2d_ref.argtypes = [ POINTER(_sklib_circle), _sklib_quad, _sklib_vector_2d ] +sklib.__sklib__resolve_collision__circle_ref__quad_ref__vector_2d_ref.restype = c_bool +sklib.__sklib__resolve_collision__circle_ref__rectangle_ref__vector_2d_ref.argtypes = [ POINTER(_sklib_circle), _sklib_rectangle, _sklib_vector_2d ] +sklib.__sklib__resolve_collision__circle_ref__rectangle_ref__vector_2d_ref.restype = c_bool +sklib.__sklib__resolve_collision__circle_ref__sprite__vector_2d_ref.argtypes = [ POINTER(_sklib_circle), c_void_p, _sklib_vector_2d ] +sklib.__sklib__resolve_collision__circle_ref__sprite__vector_2d_ref.restype = c_bool +sklib.__sklib__resolve_collision__circle_ref__triangle_ref__vector_2d_ref.argtypes = [ POINTER(_sklib_circle), _sklib_triangle, _sklib_vector_2d ] +sklib.__sklib__resolve_collision__circle_ref__triangle_ref__vector_2d_ref.restype = c_bool +sklib.__sklib__resolve_collision__quad_ref__circle_ref__vector_2d_ref.argtypes = [ POINTER(_sklib_quad), _sklib_circle, _sklib_vector_2d ] +sklib.__sklib__resolve_collision__quad_ref__circle_ref__vector_2d_ref.restype = c_bool +sklib.__sklib__resolve_collision__quad_ref__rectangle_ref__vector_2d_ref.argtypes = [ POINTER(_sklib_quad), _sklib_rectangle, _sklib_vector_2d ] +sklib.__sklib__resolve_collision__quad_ref__rectangle_ref__vector_2d_ref.restype = c_bool +sklib.__sklib__resolve_collision__quad_ref__sprite__vector_2d_ref.argtypes = [ POINTER(_sklib_quad), c_void_p, _sklib_vector_2d ] +sklib.__sklib__resolve_collision__quad_ref__sprite__vector_2d_ref.restype = c_bool +sklib.__sklib__resolve_collision__quad_ref__triangle_ref__vector_2d_ref.argtypes = [ POINTER(_sklib_quad), _sklib_triangle, _sklib_vector_2d ] +sklib.__sklib__resolve_collision__quad_ref__triangle_ref__vector_2d_ref.restype = c_bool +sklib.__sklib__resolve_collision__rectangle_ref__circle_ref__vector_2d_ref.argtypes = [ POINTER(_sklib_rectangle), _sklib_circle, _sklib_vector_2d ] +sklib.__sklib__resolve_collision__rectangle_ref__circle_ref__vector_2d_ref.restype = c_bool +sklib.__sklib__resolve_collision__rectangle_ref__quad_ref__vector_2d_ref.argtypes = [ POINTER(_sklib_rectangle), _sklib_quad, _sklib_vector_2d ] +sklib.__sklib__resolve_collision__rectangle_ref__quad_ref__vector_2d_ref.restype = c_bool +sklib.__sklib__resolve_collision__rectangle_ref__rectangle_ref__vector_2d_ref.argtypes = [ POINTER(_sklib_rectangle), _sklib_rectangle, _sklib_vector_2d ] +sklib.__sklib__resolve_collision__rectangle_ref__rectangle_ref__vector_2d_ref.restype = c_bool +sklib.__sklib__resolve_collision__rectangle_ref__sprite__vector_2d_ref.argtypes = [ POINTER(_sklib_rectangle), c_void_p, _sklib_vector_2d ] +sklib.__sklib__resolve_collision__rectangle_ref__sprite__vector_2d_ref.restype = c_bool +sklib.__sklib__resolve_collision__rectangle_ref__triangle_ref__vector_2d_ref.argtypes = [ POINTER(_sklib_rectangle), _sklib_triangle, _sklib_vector_2d ] +sklib.__sklib__resolve_collision__rectangle_ref__triangle_ref__vector_2d_ref.restype = c_bool +sklib.__sklib__resolve_collision__sprite__circle_ref__vector_2d_ref.argtypes = [ c_void_p, _sklib_circle, _sklib_vector_2d ] +sklib.__sklib__resolve_collision__sprite__circle_ref__vector_2d_ref.restype = c_bool +sklib.__sklib__resolve_collision__sprite__quad_ref__vector_2d_ref.argtypes = [ c_void_p, _sklib_quad, _sklib_vector_2d ] +sklib.__sklib__resolve_collision__sprite__quad_ref__vector_2d_ref.restype = c_bool +sklib.__sklib__resolve_collision__sprite__rectangle_ref__vector_2d_ref.argtypes = [ c_void_p, _sklib_rectangle, _sklib_vector_2d ] +sklib.__sklib__resolve_collision__sprite__rectangle_ref__vector_2d_ref.restype = c_bool +sklib.__sklib__resolve_collision__sprite__sprite__vector_2d_ref.argtypes = [ c_void_p, c_void_p, _sklib_vector_2d ] +sklib.__sklib__resolve_collision__sprite__sprite__vector_2d_ref.restype = c_bool +sklib.__sklib__resolve_collision__sprite__triangle_ref__vector_2d_ref.argtypes = [ c_void_p, _sklib_triangle, _sklib_vector_2d ] +sklib.__sklib__resolve_collision__sprite__triangle_ref__vector_2d_ref.restype = c_bool +sklib.__sklib__resolve_collision__triangle_ref__circle_ref__vector_2d_ref.argtypes = [ POINTER(_sklib_triangle), _sklib_circle, _sklib_vector_2d ] +sklib.__sklib__resolve_collision__triangle_ref__circle_ref__vector_2d_ref.restype = c_bool +sklib.__sklib__resolve_collision__triangle_ref__quad_ref__vector_2d_ref.argtypes = [ POINTER(_sklib_triangle), _sklib_quad, _sklib_vector_2d ] +sklib.__sklib__resolve_collision__triangle_ref__quad_ref__vector_2d_ref.restype = c_bool +sklib.__sklib__resolve_collision__triangle_ref__rectangle_ref__vector_2d_ref.argtypes = [ POINTER(_sklib_triangle), _sklib_rectangle, _sklib_vector_2d ] +sklib.__sklib__resolve_collision__triangle_ref__rectangle_ref__vector_2d_ref.restype = c_bool +sklib.__sklib__resolve_collision__triangle_ref__sprite__vector_2d_ref.argtypes = [ POINTER(_sklib_triangle), c_void_p, _sklib_vector_2d ] +sklib.__sklib__resolve_collision__triangle_ref__sprite__vector_2d_ref.restype = c_bool +sklib.__sklib__resolve_collision__triangle_ref__triangle_ref__vector_2d_ref.argtypes = [ POINTER(_sklib_triangle), _sklib_triangle, _sklib_vector_2d ] +sklib.__sklib__resolve_collision__triangle_ref__triangle_ref__vector_2d_ref.restype = c_bool sklib.__sklib__sprite_bitmap_collision__sprite__bitmap__double__double.argtypes = [ c_void_p, c_void_p, c_double, c_double ] sklib.__sklib__sprite_bitmap_collision__sprite__bitmap__double__double.restype = c_bool sklib.__sklib__sprite_bitmap_collision__sprite__bitmap__int__point_2d_ref.argtypes = [ c_void_p, c_void_p, c_int, _sklib_point_2d ] sklib.__sklib__sprite_bitmap_collision__sprite__bitmap__int__point_2d_ref.restype = c_bool sklib.__sklib__sprite_bitmap_collision__sprite__bitmap__int__double__double.argtypes = [ c_void_p, c_void_p, c_int, c_double, c_double ] sklib.__sklib__sprite_bitmap_collision__sprite__bitmap__int__double__double.restype = c_bool +sklib.__sklib__sprite_circle_collision__sprite__circle_ref.argtypes = [ c_void_p, _sklib_circle ] +sklib.__sklib__sprite_circle_collision__sprite__circle_ref.restype = c_bool sklib.__sklib__sprite_collision__sprite__sprite.argtypes = [ c_void_p, c_void_p ] sklib.__sklib__sprite_collision__sprite__sprite.restype = c_bool sklib.__sklib__sprite_point_collision__sprite__point_2d_ref.argtypes = [ c_void_p, _sklib_point_2d ] sklib.__sklib__sprite_point_collision__sprite__point_2d_ref.restype = c_bool +sklib.__sklib__sprite_quad_collision__sprite__quad_ref.argtypes = [ c_void_p, _sklib_quad ] +sklib.__sklib__sprite_quad_collision__sprite__quad_ref.restype = c_bool sklib.__sklib__sprite_ray_collision__sprite__point_2d_ref__vector_2d_ref.argtypes = [ c_void_p, _sklib_point_2d, _sklib_vector_2d ] sklib.__sklib__sprite_ray_collision__sprite__point_2d_ref__vector_2d_ref.restype = c_bool sklib.__sklib__sprite_rectangle_collision__sprite__rectangle_ref.argtypes = [ c_void_p, _sklib_rectangle ] sklib.__sklib__sprite_rectangle_collision__sprite__rectangle_ref.restype = c_bool +sklib.__sklib__sprite_triangle_collision__sprite__triangle_ref.argtypes = [ c_void_p, _sklib_triangle ] +sklib.__sklib__sprite_triangle_collision__sprite__triangle_ref.restype = c_bool sklib.__sklib__alpha_of__color.argtypes = [ _sklib_color ] sklib.__sklib__alpha_of__color.restype = c_int sklib.__sklib__blue_of__color.argtypes = [ _sklib_color ] @@ -2774,6 +2904,8 @@ def __skadapter__to_sklib_window(v): sklib.__sklib__create_server__string_ref__unsigned_short__connection_type.restype = c_void_p sklib.__sklib__dec_to_hex__unsigned_int.argtypes = [ c_uint ] sklib.__sklib__dec_to_hex__unsigned_int.restype = _sklib_string +sklib.__sklib__dec_to_ipv4__unsigned_int.argtypes = [ c_uint ] +sklib.__sklib__dec_to_ipv4__unsigned_int.restype = _sklib_string sklib.__sklib__fetch_new_connection__server_socket.argtypes = [ c_void_p ] sklib.__sklib__fetch_new_connection__server_socket.restype = c_void_p sklib.__sklib__has_connection__string_ref.argtypes = [ _sklib_string ] @@ -2798,8 +2930,6 @@ def __skadapter__to_sklib_window(v): sklib.__sklib__ipv4_to_dec__string_ref.restype = c_uint sklib.__sklib__ipv4_to_hex__string_ref.argtypes = [ _sklib_string ] sklib.__sklib__ipv4_to_hex__string_ref.restype = _sklib_string -sklib.__sklib__ipv4_to_str__unsigned_int.argtypes = [ c_uint ] -sklib.__sklib__ipv4_to_str__unsigned_int.restype = _sklib_string sklib.__sklib__is_connection_open__connection.argtypes = [ c_void_p ] sklib.__sklib__is_connection_open__connection.restype = c_bool sklib.__sklib__is_connection_open__string_ref.argtypes = [ _sklib_string ] @@ -2968,6 +3098,10 @@ def __skadapter__to_sklib_window(v): sklib.__sklib__quad_from__rectangle_ref__matrix_2d_ref.restype = _sklib_quad sklib.__sklib__quad_from__double__double__double__double__double__double__double__double.argtypes = [ c_double, c_double, c_double, c_double, c_double, c_double, c_double, c_double ] sklib.__sklib__quad_from__double__double__double__double__double__double__double__double.restype = _sklib_quad +sklib.__sklib__quad_ray_intersection__point_2d_ref__vector_2d_ref__quad_ref.argtypes = [ _sklib_point_2d, _sklib_vector_2d, _sklib_quad ] +sklib.__sklib__quad_ray_intersection__point_2d_ref__vector_2d_ref__quad_ref.restype = c_bool +sklib.__sklib__quad_ray_intersection__point_2d_ref__vector_2d_ref__quad_ref__point_2d_ref__double_ref.argtypes = [ _sklib_point_2d, _sklib_vector_2d, _sklib_quad, POINTER(_sklib_point_2d), POINTER(c_double) ] +sklib.__sklib__quad_ray_intersection__point_2d_ref__vector_2d_ref__quad_ref__point_2d_ref__double_ref.restype = c_bool sklib.__sklib__quads_intersect__quad_ref__quad_ref.argtypes = [ _sklib_quad, _sklib_quad ] sklib.__sklib__quads_intersect__quad_ref__quad_ref.restype = c_bool sklib.__sklib__set_quad_point__quad_ref__int__point_2d_ref.argtypes = [ POINTER(_sklib_quad), c_int, _sklib_point_2d ] @@ -3000,6 +3134,12 @@ def __skadapter__to_sklib_window(v): sklib.__sklib__raspi_set_pwm_frequency__pins__int.restype = None sklib.__sklib__raspi_set_pwm_range__pins__int.argtypes = [ c_int, c_int ] sklib.__sklib__raspi_set_pwm_range__pins__int.restype = None +sklib.__sklib__raspi_spi_close__int.argtypes = [ c_int ] +sklib.__sklib__raspi_spi_close__int.restype = c_int +sklib.__sklib__raspi_spi_open__int__int__int.argtypes = [ c_int, c_int, c_int ] +sklib.__sklib__raspi_spi_open__int__int__int.restype = c_int +sklib.__sklib__raspi_spi_transfer__int__string__string__int.argtypes = [ c_int, _sklib_string, _sklib_string, c_int ] +sklib.__sklib__raspi_spi_transfer__int__string__string__int.restype = c_int sklib.__sklib__raspi_write__pins__pin_values.argtypes = [ c_int, c_int ] sklib.__sklib__raspi_write__pins__pin_values.restype = None sklib.__sklib__draw_quad__color__quad_ref.argtypes = [ _sklib_color, _sklib_quad ] @@ -3090,6 +3230,8 @@ def __skadapter__to_sklib_window(v): sklib.__sklib__rectangle_bottom__rectangle_ref.restype = c_double sklib.__sklib__rectangle_center__rectangle_ref.argtypes = [ _sklib_rectangle ] sklib.__sklib__rectangle_center__rectangle_ref.restype = _sklib_point_2d +sklib.__sklib__rectangle_circle_intersect__rectangle_ref__circle_ref.argtypes = [ _sklib_rectangle, _sklib_circle ] +sklib.__sklib__rectangle_circle_intersect__rectangle_ref__circle_ref.restype = c_bool sklib.__sklib__rectangle_from__point_2d__double__double.argtypes = [ _sklib_point_2d, c_double, c_double ] sklib.__sklib__rectangle_from__point_2d__double__double.restype = _sklib_rectangle sklib.__sklib__rectangle_from__point_2d__point_2d.argtypes = [ _sklib_point_2d, _sklib_point_2d ] @@ -3100,6 +3242,10 @@ def __skadapter__to_sklib_window(v): sklib.__sklib__rectangle_left__rectangle_ref.restype = c_double sklib.__sklib__rectangle_offset_by__rectangle_ref__vector_2d_ref.argtypes = [ _sklib_rectangle, _sklib_vector_2d ] sklib.__sklib__rectangle_offset_by__rectangle_ref__vector_2d_ref.restype = _sklib_rectangle +sklib.__sklib__rectangle_ray_intersection__point_2d_ref__vector_2d_ref__rectangle_ref.argtypes = [ _sklib_point_2d, _sklib_vector_2d, _sklib_rectangle ] +sklib.__sklib__rectangle_ray_intersection__point_2d_ref__vector_2d_ref__rectangle_ref.restype = c_bool +sklib.__sklib__rectangle_ray_intersection__point_2d_ref__vector_2d_ref__rectangle_ref__point_2d_ref__double_ref.argtypes = [ _sklib_point_2d, _sklib_vector_2d, _sklib_rectangle, POINTER(_sklib_point_2d), POINTER(c_double) ] +sklib.__sklib__rectangle_ray_intersection__point_2d_ref__vector_2d_ref__rectangle_ref__point_2d_ref__double_ref.restype = c_bool sklib.__sklib__rectangle_right__rectangle_ref.argtypes = [ _sklib_rectangle ] sklib.__sklib__rectangle_right__rectangle_ref.restype = c_double sklib.__sklib__rectangle_to_string__rectangle_ref.argtypes = [ _sklib_rectangle ] @@ -3658,6 +3804,12 @@ def __skadapter__to_sklib_window(v): sklib.__sklib__triangle_from__point_2d_ref__point_2d_ref__point_2d_ref.restype = _sklib_triangle sklib.__sklib__triangle_from__double__double__double__double__double__double.argtypes = [ c_double, c_double, c_double, c_double, c_double, c_double ] sklib.__sklib__triangle_from__double__double__double__double__double__double.restype = _sklib_triangle +sklib.__sklib__triangle_quad_intersect__triangle_ref__quad_ref.argtypes = [ _sklib_triangle, _sklib_quad ] +sklib.__sklib__triangle_quad_intersect__triangle_ref__quad_ref.restype = c_bool +sklib.__sklib__triangle_ray_intersection__point_2d_ref__vector_2d_ref__triangle_ref.argtypes = [ _sklib_point_2d, _sklib_vector_2d, _sklib_triangle ] +sklib.__sklib__triangle_ray_intersection__point_2d_ref__vector_2d_ref__triangle_ref.restype = c_bool +sklib.__sklib__triangle_ray_intersection__point_2d_ref__vector_2d_ref__triangle_ref__point_2d_ref__double_ref.argtypes = [ _sklib_point_2d, _sklib_vector_2d, _sklib_triangle, POINTER(_sklib_point_2d), POINTER(c_double) ] +sklib.__sklib__triangle_ray_intersection__point_2d_ref__vector_2d_ref__triangle_ref__point_2d_ref__double_ref.restype = c_bool sklib.__sklib__triangle_rectangle_intersect__triangle_ref__rectangle_ref.argtypes = [ _sklib_triangle, _sklib_rectangle ] sklib.__sklib__triangle_rectangle_intersect__triangle_ref__rectangle_ref.restype = c_bool sklib.__sklib__triangle_to_string__triangle_ref.argtypes = [ _sklib_triangle ] @@ -4377,10 +4529,31 @@ def circle_at_from_points ( x, y, radius ): __skparam__radius = __skadapter__to_sklib_double(radius) __skreturn = sklib.__sklib__circle_at__double__double__double(__skparam__x, __skparam__y, __skparam__radius) return __skadapter__to_circle(__skreturn) +def circle_quad_intersect ( c, q ): + __skparam__c = __skadapter__to_sklib_circle(c) + __skparam__q = __skadapter__to_sklib_quad(q) + __skreturn = sklib.__sklib__circle_quad_intersect__circle_ref__quad_ref(__skparam__c, __skparam__q) + return __skadapter__to_bool(__skreturn) def circle_radius ( c ): __skparam__c = __skadapter__to_sklib_circle(c) __skreturn = sklib.__sklib__circle_radius__circle(__skparam__c) return __skadapter__to_float(__skreturn) +def circle_ray_intersection ( origin, heading, circ ): + __skparam__origin = __skadapter__to_sklib_point_2d(origin) + __skparam__heading = __skadapter__to_sklib_vector_2d(heading) + __skparam__circ = __skadapter__to_sklib_circle(circ) + __skreturn = sklib.__sklib__circle_ray_intersection__point_2d_ref__vector_2d_ref__circle_ref(__skparam__origin, __skparam__heading, __skparam__circ) + return __skadapter__to_bool(__skreturn) +def circle_ray_intersection_with_hit_point_and_distance ( origin, heading, circ, hit_point, hit_distance ): + __skparam__origin = __skadapter__to_sklib_point_2d(origin) + __skparam__heading = __skadapter__to_sklib_vector_2d(heading) + __skparam__circ = __skadapter__to_sklib_circle(circ) + __skparam__hit_point = __skadapter__to_sklib_point_2d(hit_point) + __skparam__hit_distance = __skadapter__to_sklib_double(hit_distance) + __skreturn = sklib.__sklib__circle_ray_intersection__point_2d_ref__vector_2d_ref__circle_ref__point_2d_ref__double_ref(__skparam__origin, __skparam__heading, __skparam__circ, byref(__skparam__hit_point), byref(__skparam__hit_distance)) + hit_point = __skadapter__to_point_2d(__skparam__hit_point) + hit_distance = __skadapter__to_double(__skparam__hit_distance) + return __skadapter__to_bool(__skreturn) def circle_triangle_intersect ( c, tri ): __skparam__c = __skadapter__to_sklib_circle(c) __skparam__tri = __skadapter__to_sklib_triangle(tri) @@ -4643,6 +4816,19 @@ def bitmap_point_collision_for_cell ( bmp, cell, bmp_x, bmp_y, x, y ): __skparam__y = __skadapter__to_sklib_double(y) __skreturn = sklib.__sklib__bitmap_point_collision__bitmap__int__double__double__double__double(__skparam__bmp, __skparam__cell, __skparam__bmp_x, __skparam__bmp_y, __skparam__x, __skparam__y) return __skadapter__to_bool(__skreturn) +def bitmap_quad_collision_at_point ( bmp, pt, q ): + __skparam__bmp = __skadapter__to_sklib_bitmap(bmp) + __skparam__pt = __skadapter__to_sklib_point_2d(pt) + __skparam__q = __skadapter__to_sklib_quad(q) + __skreturn = sklib.__sklib__bitmap_quad_collision__bitmap__point_2d_ref__quad_ref(__skparam__bmp, __skparam__pt, __skparam__q) + return __skadapter__to_bool(__skreturn) +def bitmap_quad_collision ( bmp, x, y, q ): + __skparam__bmp = __skadapter__to_sklib_bitmap(bmp) + __skparam__x = __skadapter__to_sklib_double(x) + __skparam__y = __skadapter__to_sklib_double(y) + __skparam__q = __skadapter__to_sklib_quad(q) + __skreturn = sklib.__sklib__bitmap_quad_collision__bitmap__double__double__quad_ref(__skparam__bmp, __skparam__x, __skparam__y, __skparam__q) + return __skadapter__to_bool(__skreturn) def bitmap_quad_collision_for_cell_with_translation ( bmp, cell, translation, q ): __skparam__bmp = __skadapter__to_sklib_bitmap(bmp) __skparam__cell = __skadapter__to_sklib_int(cell) @@ -4650,6 +4836,21 @@ def bitmap_quad_collision_for_cell_with_translation ( bmp, cell, translation, q __skparam__q = __skadapter__to_sklib_quad(q) __skreturn = sklib.__sklib__bitmap_quad_collision__bitmap__int__matrix_2d_ref__quad_ref(__skparam__bmp, __skparam__cell, __skparam__translation, __skparam__q) return __skadapter__to_bool(__skreturn) +def bitmap_quad_collision_for_cell_at_point ( bmp, cell, pt, q ): + __skparam__bmp = __skadapter__to_sklib_bitmap(bmp) + __skparam__cell = __skadapter__to_sklib_int(cell) + __skparam__pt = __skadapter__to_sklib_point_2d(pt) + __skparam__q = __skadapter__to_sklib_quad(q) + __skreturn = sklib.__sklib__bitmap_quad_collision__bitmap__int__point_2d_ref__quad_ref(__skparam__bmp, __skparam__cell, __skparam__pt, __skparam__q) + return __skadapter__to_bool(__skreturn) +def bitmap_quad_collision_for_cell ( bmp, cell, x, y, q ): + __skparam__bmp = __skadapter__to_sklib_bitmap(bmp) + __skparam__cell = __skadapter__to_sklib_int(cell) + __skparam__x = __skadapter__to_sklib_double(x) + __skparam__y = __skadapter__to_sklib_double(y) + __skparam__q = __skadapter__to_sklib_quad(q) + __skreturn = sklib.__sklib__bitmap_quad_collision__bitmap__int__double__double__quad_ref(__skparam__bmp, __skparam__cell, __skparam__x, __skparam__y, __skparam__q) + return __skadapter__to_bool(__skreturn) def bitmap_ray_collision_at_point ( bmp, pt, origin, heading ): __skparam__bmp = __skadapter__to_sklib_bitmap(bmp) __skparam__pt = __skadapter__to_sklib_point_2d(pt) @@ -4725,6 +4926,336 @@ def bitmap_rectangle_collision_for_cell ( bmp, cell, x, y, rect ): __skparam__rect = __skadapter__to_sklib_rectangle(rect) __skreturn = sklib.__sklib__bitmap_rectangle_collision__bitmap__int__double__double__rectangle_ref(__skparam__bmp, __skparam__cell, __skparam__x, __skparam__y, __skparam__rect) return __skadapter__to_bool(__skreturn) +def bitmap_triangle_collision_at_point ( bmp, pt, tri ): + __skparam__bmp = __skadapter__to_sklib_bitmap(bmp) + __skparam__pt = __skadapter__to_sklib_point_2d(pt) + __skparam__tri = __skadapter__to_sklib_triangle(tri) + __skreturn = sklib.__sklib__bitmap_triangle_collision__bitmap__point_2d_ref__triangle_ref(__skparam__bmp, __skparam__pt, __skparam__tri) + return __skadapter__to_bool(__skreturn) +def bitmap_triangle_collision ( bmp, x, y, tri ): + __skparam__bmp = __skadapter__to_sklib_bitmap(bmp) + __skparam__x = __skadapter__to_sklib_double(x) + __skparam__y = __skadapter__to_sklib_double(y) + __skparam__tri = __skadapter__to_sklib_triangle(tri) + __skreturn = sklib.__sklib__bitmap_triangle_collision__bitmap__double__double__triangle_ref(__skparam__bmp, __skparam__x, __skparam__y, __skparam__tri) + return __skadapter__to_bool(__skreturn) +def bitmap_triangle_collision_for_cell_with_translation ( bmp, cell, translation, tri ): + __skparam__bmp = __skadapter__to_sklib_bitmap(bmp) + __skparam__cell = __skadapter__to_sklib_int(cell) + __skparam__translation = __skadapter__to_sklib_matrix_2d(translation) + __skparam__tri = __skadapter__to_sklib_triangle(tri) + __skreturn = sklib.__sklib__bitmap_triangle_collision__bitmap__int__matrix_2d_ref__triangle_ref(__skparam__bmp, __skparam__cell, __skparam__translation, __skparam__tri) + return __skadapter__to_bool(__skreturn) +def bitmap_triangle_collision_for_cell_at_point ( bmp, cell, pt, tri ): + __skparam__bmp = __skadapter__to_sklib_bitmap(bmp) + __skparam__cell = __skadapter__to_sklib_int(cell) + __skparam__pt = __skadapter__to_sklib_point_2d(pt) + __skparam__tri = __skadapter__to_sklib_triangle(tri) + __skreturn = sklib.__sklib__bitmap_triangle_collision__bitmap__int__point_2d_ref__triangle_ref(__skparam__bmp, __skparam__cell, __skparam__pt, __skparam__tri) + return __skadapter__to_bool(__skreturn) +def bitmap_triangle_collision_for_cell ( bmp, cell, x, y, tri ): + __skparam__bmp = __skadapter__to_sklib_bitmap(bmp) + __skparam__cell = __skadapter__to_sklib_int(cell) + __skparam__x = __skadapter__to_sklib_double(x) + __skparam__y = __skadapter__to_sklib_double(y) + __skparam__tri = __skadapter__to_sklib_triangle(tri) + __skreturn = sklib.__sklib__bitmap_triangle_collision__bitmap__int__double__double__triangle_ref(__skparam__bmp, __skparam__cell, __skparam__x, __skparam__y, __skparam__tri) + return __skadapter__to_bool(__skreturn) +def calculate_collision_direction_between_quads ( collider, collidee ): + __skparam__collider = __skadapter__to_sklib_quad(collider) + __skparam__collidee = __skadapter__to_sklib_quad(collidee) + __skreturn = sklib.__sklib__calculate_collision_direction__quad_ref__quad_ref(__skparam__collider, __skparam__collidee) + return __skadapter__to_vector_2d(__skreturn) +def calculate_collision_direction_between_circles ( collider, collidee ): + __skparam__collider = __skadapter__to_sklib_circle(collider) + __skparam__collidee = __skadapter__to_sklib_circle(collidee) + __skreturn = sklib.__sklib__calculate_collision_direction__circle_ref__circle_ref(__skparam__collider, __skparam__collidee) + return __skadapter__to_vector_2d(__skreturn) +def calculate_collision_direction_between_circle_and_quad ( collider, collidee ): + __skparam__collider = __skadapter__to_sklib_circle(collider) + __skparam__collidee = __skadapter__to_sklib_quad(collidee) + __skreturn = sklib.__sklib__calculate_collision_direction__circle_ref__quad_ref(__skparam__collider, __skparam__collidee) + return __skadapter__to_vector_2d(__skreturn) +def calculate_collision_direction_between_circle_and_rectangle ( collider, collidee ): + __skparam__collider = __skadapter__to_sklib_circle(collider) + __skparam__collidee = __skadapter__to_sklib_rectangle(collidee) + __skreturn = sklib.__sklib__calculate_collision_direction__circle_ref__rectangle_ref(__skparam__collider, __skparam__collidee) + return __skadapter__to_vector_2d(__skreturn) +def calculate_collision_direction_between_circle_and_sprite ( collider, collidee ): + __skparam__collider = __skadapter__to_sklib_circle(collider) + __skparam__collidee = __skadapter__to_sklib_sprite(collidee) + __skreturn = sklib.__sklib__calculate_collision_direction__circle_ref__sprite(__skparam__collider, __skparam__collidee) + return __skadapter__to_vector_2d(__skreturn) +def calculate_collision_direction_between_circle_and_triangle ( collider, collidee ): + __skparam__collider = __skadapter__to_sklib_circle(collider) + __skparam__collidee = __skadapter__to_sklib_triangle(collidee) + __skreturn = sklib.__sklib__calculate_collision_direction__circle_ref__triangle_ref(__skparam__collider, __skparam__collidee) + return __skadapter__to_vector_2d(__skreturn) +def calculate_collision_direction_between_quad_and_circle ( collider, collidee ): + __skparam__collider = __skadapter__to_sklib_quad(collider) + __skparam__collidee = __skadapter__to_sklib_circle(collidee) + __skreturn = sklib.__sklib__calculate_collision_direction__quad_ref__circle_ref(__skparam__collider, __skparam__collidee) + return __skadapter__to_vector_2d(__skreturn) +def calculate_collision_direction_between_quad_and_rectangle ( collider, collidee ): + __skparam__collider = __skadapter__to_sklib_quad(collider) + __skparam__collidee = __skadapter__to_sklib_rectangle(collidee) + __skreturn = sklib.__sklib__calculate_collision_direction__quad_ref__rectangle_ref(__skparam__collider, __skparam__collidee) + return __skadapter__to_vector_2d(__skreturn) +def calculate_collision_direction_between_quad_and_sprite ( collider, collidee ): + __skparam__collider = __skadapter__to_sklib_quad(collider) + __skparam__collidee = __skadapter__to_sklib_sprite(collidee) + __skreturn = sklib.__sklib__calculate_collision_direction__quad_ref__sprite(__skparam__collider, __skparam__collidee) + return __skadapter__to_vector_2d(__skreturn) +def calculate_collision_direction_between_quad_and_triangle ( collider, collidee ): + __skparam__collider = __skadapter__to_sklib_quad(collider) + __skparam__collidee = __skadapter__to_sklib_triangle(collidee) + __skreturn = sklib.__sklib__calculate_collision_direction__quad_ref__triangle_ref(__skparam__collider, __skparam__collidee) + return __skadapter__to_vector_2d(__skreturn) +def calculate_collision_direction_between_rectangle_and_circle ( collider, collidee ): + __skparam__collider = __skadapter__to_sklib_rectangle(collider) + __skparam__collidee = __skadapter__to_sklib_circle(collidee) + __skreturn = sklib.__sklib__calculate_collision_direction__rectangle_ref__circle_ref(__skparam__collider, __skparam__collidee) + return __skadapter__to_vector_2d(__skreturn) +def calculate_collision_direction_between_rectangle_and_quad ( collider, collidee ): + __skparam__collider = __skadapter__to_sklib_rectangle(collider) + __skparam__collidee = __skadapter__to_sklib_quad(collidee) + __skreturn = sklib.__sklib__calculate_collision_direction__rectangle_ref__quad_ref(__skparam__collider, __skparam__collidee) + return __skadapter__to_vector_2d(__skreturn) +def calculate_collision_direction_between_rectangles ( collider, collidee ): + __skparam__collider = __skadapter__to_sklib_rectangle(collider) + __skparam__collidee = __skadapter__to_sklib_rectangle(collidee) + __skreturn = sklib.__sklib__calculate_collision_direction__rectangle_ref__rectangle_ref(__skparam__collider, __skparam__collidee) + return __skadapter__to_vector_2d(__skreturn) +def calculate_collision_direction_between_rectangle_and_sprite ( collider, collidee ): + __skparam__collider = __skadapter__to_sklib_rectangle(collider) + __skparam__collidee = __skadapter__to_sklib_sprite(collidee) + __skreturn = sklib.__sklib__calculate_collision_direction__rectangle_ref__sprite(__skparam__collider, __skparam__collidee) + return __skadapter__to_vector_2d(__skreturn) +def calculate_collision_direction_between_rectangle_and_triangle ( collider, collidee ): + __skparam__collider = __skadapter__to_sklib_rectangle(collider) + __skparam__collidee = __skadapter__to_sklib_triangle(collidee) + __skreturn = sklib.__sklib__calculate_collision_direction__rectangle_ref__triangle_ref(__skparam__collider, __skparam__collidee) + return __skadapter__to_vector_2d(__skreturn) +def calculate_collision_direction_between_sprite_and_circle ( collider, collidee ): + __skparam__collider = __skadapter__to_sklib_sprite(collider) + __skparam__collidee = __skadapter__to_sklib_circle(collidee) + __skreturn = sklib.__sklib__calculate_collision_direction__sprite__circle_ref(__skparam__collider, __skparam__collidee) + return __skadapter__to_vector_2d(__skreturn) +def calculate_collision_direction_between_sprite_and_quad ( collider, collidee ): + __skparam__collider = __skadapter__to_sklib_sprite(collider) + __skparam__collidee = __skadapter__to_sklib_quad(collidee) + __skreturn = sklib.__sklib__calculate_collision_direction__sprite__quad_ref(__skparam__collider, __skparam__collidee) + return __skadapter__to_vector_2d(__skreturn) +def calculate_collision_direction_between_sprite_and_rectangle ( collider, collidee ): + __skparam__collider = __skadapter__to_sklib_sprite(collider) + __skparam__collidee = __skadapter__to_sklib_rectangle(collidee) + __skreturn = sklib.__sklib__calculate_collision_direction__sprite__rectangle_ref(__skparam__collider, __skparam__collidee) + return __skadapter__to_vector_2d(__skreturn) +def calculate_collision_direction_between_sprites ( collider, collidee ): + __skparam__collider = __skadapter__to_sklib_sprite(collider) + __skparam__collidee = __skadapter__to_sklib_sprite(collidee) + __skreturn = sklib.__sklib__calculate_collision_direction__sprite__sprite(__skparam__collider, __skparam__collidee) + return __skadapter__to_vector_2d(__skreturn) +def calculate_collision_direction_between_sprite_and_triangle ( collider, collidee ): + __skparam__collider = __skadapter__to_sklib_sprite(collider) + __skparam__collidee = __skadapter__to_sklib_triangle(collidee) + __skreturn = sklib.__sklib__calculate_collision_direction__sprite__triangle_ref(__skparam__collider, __skparam__collidee) + return __skadapter__to_vector_2d(__skreturn) +def calculate_collision_direction_between_triangle_and_circle ( collider, collidee ): + __skparam__collider = __skadapter__to_sklib_triangle(collider) + __skparam__collidee = __skadapter__to_sklib_circle(collidee) + __skreturn = sklib.__sklib__calculate_collision_direction__triangle_ref__circle_ref(__skparam__collider, __skparam__collidee) + return __skadapter__to_vector_2d(__skreturn) +def calculate_collision_direction_between_triangle_and_quad ( collider, collidee ): + __skparam__collider = __skadapter__to_sklib_triangle(collider) + __skparam__collidee = __skadapter__to_sklib_quad(collidee) + __skreturn = sklib.__sklib__calculate_collision_direction__triangle_ref__quad_ref(__skparam__collider, __skparam__collidee) + return __skadapter__to_vector_2d(__skreturn) +def calculate_collision_direction_between_triangle_and_rectangle ( collider, collidee ): + __skparam__collider = __skadapter__to_sklib_triangle(collider) + __skparam__collidee = __skadapter__to_sklib_rectangle(collidee) + __skreturn = sklib.__sklib__calculate_collision_direction__triangle_ref__rectangle_ref(__skparam__collider, __skparam__collidee) + return __skadapter__to_vector_2d(__skreturn) +def calculate_collision_direction_between_triangle_and_sprite ( collider, collidee ): + __skparam__collider = __skadapter__to_sklib_triangle(collider) + __skparam__collidee = __skadapter__to_sklib_sprite(collidee) + __skreturn = sklib.__sklib__calculate_collision_direction__triangle_ref__sprite(__skparam__collider, __skparam__collidee) + return __skadapter__to_vector_2d(__skreturn) +def calculate_collision_direction_between_triangles ( collider, collidee ): + __skparam__collider = __skadapter__to_sklib_triangle(collider) + __skparam__collidee = __skadapter__to_sklib_triangle(collidee) + __skreturn = sklib.__sklib__calculate_collision_direction__triangle_ref__triangle_ref(__skparam__collider, __skparam__collidee) + return __skadapter__to_vector_2d(__skreturn) +def resolve_collision_between_quads ( collider, collidee, direction ): + __skparam__collider = __skadapter__to_sklib_quad(collider) + __skparam__collidee = __skadapter__to_sklib_quad(collidee) + __skparam__direction = __skadapter__to_sklib_vector_2d(direction) + __skreturn = sklib.__sklib__resolve_collision__quad_ref__quad_ref__vector_2d_ref(byref(__skparam__collider), __skparam__collidee, __skparam__direction) + collider = __skadapter__to_quad(__skparam__collider) + return __skadapter__to_bool(__skreturn) +def resolve_collision_between_circles ( collider, collidee, direction ): + __skparam__collider = __skadapter__to_sklib_circle(collider) + __skparam__collidee = __skadapter__to_sklib_circle(collidee) + __skparam__direction = __skadapter__to_sklib_vector_2d(direction) + __skreturn = sklib.__sklib__resolve_collision__circle_ref__circle_ref__vector_2d_ref(byref(__skparam__collider), __skparam__collidee, __skparam__direction) + collider = __skadapter__to_circle(__skparam__collider) + return __skadapter__to_bool(__skreturn) +def resolve_collision_between_circle_and_quad ( collider, collidee, direction ): + __skparam__collider = __skadapter__to_sklib_circle(collider) + __skparam__collidee = __skadapter__to_sklib_quad(collidee) + __skparam__direction = __skadapter__to_sklib_vector_2d(direction) + __skreturn = sklib.__sklib__resolve_collision__circle_ref__quad_ref__vector_2d_ref(byref(__skparam__collider), __skparam__collidee, __skparam__direction) + collider = __skadapter__to_circle(__skparam__collider) + return __skadapter__to_bool(__skreturn) +def resolve_collision_between_circle_and_rectangle ( collider, collidee, direction ): + __skparam__collider = __skadapter__to_sklib_circle(collider) + __skparam__collidee = __skadapter__to_sklib_rectangle(collidee) + __skparam__direction = __skadapter__to_sklib_vector_2d(direction) + __skreturn = sklib.__sklib__resolve_collision__circle_ref__rectangle_ref__vector_2d_ref(byref(__skparam__collider), __skparam__collidee, __skparam__direction) + collider = __skadapter__to_circle(__skparam__collider) + return __skadapter__to_bool(__skreturn) +def resolve_collision_between_circle_and_sprite ( collider, collidee, direction ): + __skparam__collider = __skadapter__to_sklib_circle(collider) + __skparam__collidee = __skadapter__to_sklib_sprite(collidee) + __skparam__direction = __skadapter__to_sklib_vector_2d(direction) + __skreturn = sklib.__sklib__resolve_collision__circle_ref__sprite__vector_2d_ref(byref(__skparam__collider), __skparam__collidee, __skparam__direction) + collider = __skadapter__to_circle(__skparam__collider) + return __skadapter__to_bool(__skreturn) +def resolve_collision_between_circle_and_triangle ( collider, collidee, direction ): + __skparam__collider = __skadapter__to_sklib_circle(collider) + __skparam__collidee = __skadapter__to_sklib_triangle(collidee) + __skparam__direction = __skadapter__to_sklib_vector_2d(direction) + __skreturn = sklib.__sklib__resolve_collision__circle_ref__triangle_ref__vector_2d_ref(byref(__skparam__collider), __skparam__collidee, __skparam__direction) + collider = __skadapter__to_circle(__skparam__collider) + return __skadapter__to_bool(__skreturn) +def resolve_collision_between_quad_and_circle ( collider, collidee, direction ): + __skparam__collider = __skadapter__to_sklib_quad(collider) + __skparam__collidee = __skadapter__to_sklib_circle(collidee) + __skparam__direction = __skadapter__to_sklib_vector_2d(direction) + __skreturn = sklib.__sklib__resolve_collision__quad_ref__circle_ref__vector_2d_ref(byref(__skparam__collider), __skparam__collidee, __skparam__direction) + collider = __skadapter__to_quad(__skparam__collider) + return __skadapter__to_bool(__skreturn) +def resolve_collision_between_quad_and_rectangle ( collider, collidee, direction ): + __skparam__collider = __skadapter__to_sklib_quad(collider) + __skparam__collidee = __skadapter__to_sklib_rectangle(collidee) + __skparam__direction = __skadapter__to_sklib_vector_2d(direction) + __skreturn = sklib.__sklib__resolve_collision__quad_ref__rectangle_ref__vector_2d_ref(byref(__skparam__collider), __skparam__collidee, __skparam__direction) + collider = __skadapter__to_quad(__skparam__collider) + return __skadapter__to_bool(__skreturn) +def resolve_collision_between_quad_and_sprite ( collider, collidee, direction ): + __skparam__collider = __skadapter__to_sklib_quad(collider) + __skparam__collidee = __skadapter__to_sklib_sprite(collidee) + __skparam__direction = __skadapter__to_sklib_vector_2d(direction) + __skreturn = sklib.__sklib__resolve_collision__quad_ref__sprite__vector_2d_ref(byref(__skparam__collider), __skparam__collidee, __skparam__direction) + collider = __skadapter__to_quad(__skparam__collider) + return __skadapter__to_bool(__skreturn) +def resolve_collision_between_quad_and_triangle ( collider, collidee, direction ): + __skparam__collider = __skadapter__to_sklib_quad(collider) + __skparam__collidee = __skadapter__to_sklib_triangle(collidee) + __skparam__direction = __skadapter__to_sklib_vector_2d(direction) + __skreturn = sklib.__sklib__resolve_collision__quad_ref__triangle_ref__vector_2d_ref(byref(__skparam__collider), __skparam__collidee, __skparam__direction) + collider = __skadapter__to_quad(__skparam__collider) + return __skadapter__to_bool(__skreturn) +def resolve_collision_between_rectangle_and_circle ( collider, collidee, direction ): + __skparam__collider = __skadapter__to_sklib_rectangle(collider) + __skparam__collidee = __skadapter__to_sklib_circle(collidee) + __skparam__direction = __skadapter__to_sklib_vector_2d(direction) + __skreturn = sklib.__sklib__resolve_collision__rectangle_ref__circle_ref__vector_2d_ref(byref(__skparam__collider), __skparam__collidee, __skparam__direction) + collider = __skadapter__to_rectangle(__skparam__collider) + return __skadapter__to_bool(__skreturn) +def resolve_collision_between_rectangle_and_quad ( collider, collidee, direction ): + __skparam__collider = __skadapter__to_sklib_rectangle(collider) + __skparam__collidee = __skadapter__to_sklib_quad(collidee) + __skparam__direction = __skadapter__to_sklib_vector_2d(direction) + __skreturn = sklib.__sklib__resolve_collision__rectangle_ref__quad_ref__vector_2d_ref(byref(__skparam__collider), __skparam__collidee, __skparam__direction) + collider = __skadapter__to_rectangle(__skparam__collider) + return __skadapter__to_bool(__skreturn) +def resolve_collision_between_rectangles ( collider, collidee, direction ): + __skparam__collider = __skadapter__to_sklib_rectangle(collider) + __skparam__collidee = __skadapter__to_sklib_rectangle(collidee) + __skparam__direction = __skadapter__to_sklib_vector_2d(direction) + __skreturn = sklib.__sklib__resolve_collision__rectangle_ref__rectangle_ref__vector_2d_ref(byref(__skparam__collider), __skparam__collidee, __skparam__direction) + collider = __skadapter__to_rectangle(__skparam__collider) + return __skadapter__to_bool(__skreturn) +def resolve_collision_between_rectangle_and_sprite ( collider, collidee, direction ): + __skparam__collider = __skadapter__to_sklib_rectangle(collider) + __skparam__collidee = __skadapter__to_sklib_sprite(collidee) + __skparam__direction = __skadapter__to_sklib_vector_2d(direction) + __skreturn = sklib.__sklib__resolve_collision__rectangle_ref__sprite__vector_2d_ref(byref(__skparam__collider), __skparam__collidee, __skparam__direction) + collider = __skadapter__to_rectangle(__skparam__collider) + return __skadapter__to_bool(__skreturn) +def resolve_collision_between_rectangle_and_triangle ( collider, collidee, direction ): + __skparam__collider = __skadapter__to_sklib_rectangle(collider) + __skparam__collidee = __skadapter__to_sklib_triangle(collidee) + __skparam__direction = __skadapter__to_sklib_vector_2d(direction) + __skreturn = sklib.__sklib__resolve_collision__rectangle_ref__triangle_ref__vector_2d_ref(byref(__skparam__collider), __skparam__collidee, __skparam__direction) + collider = __skadapter__to_rectangle(__skparam__collider) + return __skadapter__to_bool(__skreturn) +def resolve_collision_between_sprite_and_circle ( collider, collidee, direction ): + __skparam__collider = __skadapter__to_sklib_sprite(collider) + __skparam__collidee = __skadapter__to_sklib_circle(collidee) + __skparam__direction = __skadapter__to_sklib_vector_2d(direction) + __skreturn = sklib.__sklib__resolve_collision__sprite__circle_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction) + return __skadapter__to_bool(__skreturn) +def resolve_collision_between_sprite_and_quad ( collider, collidee, direction ): + __skparam__collider = __skadapter__to_sklib_sprite(collider) + __skparam__collidee = __skadapter__to_sklib_quad(collidee) + __skparam__direction = __skadapter__to_sklib_vector_2d(direction) + __skreturn = sklib.__sklib__resolve_collision__sprite__quad_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction) + return __skadapter__to_bool(__skreturn) +def resolve_collision_between_sprite_and_rectangle ( collider, collidee, direction ): + __skparam__collider = __skadapter__to_sklib_sprite(collider) + __skparam__collidee = __skadapter__to_sklib_rectangle(collidee) + __skparam__direction = __skadapter__to_sklib_vector_2d(direction) + __skreturn = sklib.__sklib__resolve_collision__sprite__rectangle_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction) + return __skadapter__to_bool(__skreturn) +def resolve_collision_between_sprites ( collider, collidee, direction ): + __skparam__collider = __skadapter__to_sklib_sprite(collider) + __skparam__collidee = __skadapter__to_sklib_sprite(collidee) + __skparam__direction = __skadapter__to_sklib_vector_2d(direction) + __skreturn = sklib.__sklib__resolve_collision__sprite__sprite__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction) + return __skadapter__to_bool(__skreturn) +def resolve_collision_between_sprite_and_triangle ( collider, collidee, direction ): + __skparam__collider = __skadapter__to_sklib_sprite(collider) + __skparam__collidee = __skadapter__to_sklib_triangle(collidee) + __skparam__direction = __skadapter__to_sklib_vector_2d(direction) + __skreturn = sklib.__sklib__resolve_collision__sprite__triangle_ref__vector_2d_ref(__skparam__collider, __skparam__collidee, __skparam__direction) + return __skadapter__to_bool(__skreturn) +def resolve_collision_between_triangle_and_circle ( collider, collidee, direction ): + __skparam__collider = __skadapter__to_sklib_triangle(collider) + __skparam__collidee = __skadapter__to_sklib_circle(collidee) + __skparam__direction = __skadapter__to_sklib_vector_2d(direction) + __skreturn = sklib.__sklib__resolve_collision__triangle_ref__circle_ref__vector_2d_ref(byref(__skparam__collider), __skparam__collidee, __skparam__direction) + collider = __skadapter__to_triangle(__skparam__collider) + return __skadapter__to_bool(__skreturn) +def resolve_collision_between_triangle_and_quad ( collider, collidee, direction ): + __skparam__collider = __skadapter__to_sklib_triangle(collider) + __skparam__collidee = __skadapter__to_sklib_quad(collidee) + __skparam__direction = __skadapter__to_sklib_vector_2d(direction) + __skreturn = sklib.__sklib__resolve_collision__triangle_ref__quad_ref__vector_2d_ref(byref(__skparam__collider), __skparam__collidee, __skparam__direction) + collider = __skadapter__to_triangle(__skparam__collider) + return __skadapter__to_bool(__skreturn) +def resolve_collision_between_triangle_and_rectangle ( collider, collidee, direction ): + __skparam__collider = __skadapter__to_sklib_triangle(collider) + __skparam__collidee = __skadapter__to_sklib_rectangle(collidee) + __skparam__direction = __skadapter__to_sklib_vector_2d(direction) + __skreturn = sklib.__sklib__resolve_collision__triangle_ref__rectangle_ref__vector_2d_ref(byref(__skparam__collider), __skparam__collidee, __skparam__direction) + collider = __skadapter__to_triangle(__skparam__collider) + return __skadapter__to_bool(__skreturn) +def resolve_collision_between_triangle_and_sprite ( collider, collidee, direction ): + __skparam__collider = __skadapter__to_sklib_triangle(collider) + __skparam__collidee = __skadapter__to_sklib_sprite(collidee) + __skparam__direction = __skadapter__to_sklib_vector_2d(direction) + __skreturn = sklib.__sklib__resolve_collision__triangle_ref__sprite__vector_2d_ref(byref(__skparam__collider), __skparam__collidee, __skparam__direction) + collider = __skadapter__to_triangle(__skparam__collider) + return __skadapter__to_bool(__skreturn) +def resolve_collision_between_triangles ( collider, collidee, direction ): + __skparam__collider = __skadapter__to_sklib_triangle(collider) + __skparam__collidee = __skadapter__to_sklib_triangle(collidee) + __skparam__direction = __skadapter__to_sklib_vector_2d(direction) + __skreturn = sklib.__sklib__resolve_collision__triangle_ref__triangle_ref__vector_2d_ref(byref(__skparam__collider), __skparam__collidee, __skparam__direction) + collider = __skadapter__to_triangle(__skparam__collider) + return __skadapter__to_bool(__skreturn) def sprite_bitmap_collision ( s, bmp, x, y ): __skparam__s = __skadapter__to_sklib_sprite(s) __skparam__bmp = __skadapter__to_sklib_bitmap(bmp) @@ -4747,6 +5278,11 @@ def sprite_bitmap_collision_with_cell ( s, bmp, cell, x, y ): __skparam__y = __skadapter__to_sklib_double(y) __skreturn = sklib.__sklib__sprite_bitmap_collision__sprite__bitmap__int__double__double(__skparam__s, __skparam__bmp, __skparam__cell, __skparam__x, __skparam__y) return __skadapter__to_bool(__skreturn) +def sprite_circle_collision ( s, c ): + __skparam__s = __skadapter__to_sklib_sprite(s) + __skparam__c = __skadapter__to_sklib_circle(c) + __skreturn = sklib.__sklib__sprite_circle_collision__sprite__circle_ref(__skparam__s, __skparam__c) + return __skadapter__to_bool(__skreturn) def sprite_collision ( s1, s2 ): __skparam__s1 = __skadapter__to_sklib_sprite(s1) __skparam__s2 = __skadapter__to_sklib_sprite(s2) @@ -4757,6 +5293,11 @@ def sprite_point_collision ( s, pt ): __skparam__pt = __skadapter__to_sklib_point_2d(pt) __skreturn = sklib.__sklib__sprite_point_collision__sprite__point_2d_ref(__skparam__s, __skparam__pt) return __skadapter__to_bool(__skreturn) +def sprite_quad_collision ( s, q ): + __skparam__s = __skadapter__to_sklib_sprite(s) + __skparam__q = __skadapter__to_sklib_quad(q) + __skreturn = sklib.__sklib__sprite_quad_collision__sprite__quad_ref(__skparam__s, __skparam__q) + return __skadapter__to_bool(__skreturn) def sprite_ray_collision ( s, origin, heading ): __skparam__s = __skadapter__to_sklib_sprite(s) __skparam__origin = __skadapter__to_sklib_point_2d(origin) @@ -4768,6 +5309,11 @@ def sprite_rectangle_collision ( s, rect ): __skparam__rect = __skadapter__to_sklib_rectangle(rect) __skreturn = sklib.__sklib__sprite_rectangle_collision__sprite__rectangle_ref(__skparam__s, __skparam__rect) return __skadapter__to_bool(__skreturn) +def sprite_triangle_collision ( s, t ): + __skparam__s = __skadapter__to_sklib_sprite(s) + __skparam__t = __skadapter__to_sklib_triangle(t) + __skreturn = sklib.__sklib__sprite_triangle_collision__sprite__triangle_ref(__skparam__s, __skparam__t) + return __skadapter__to_bool(__skreturn) def alpha_of ( c ): __skparam__c = __skadapter__to_sklib_color(c) __skreturn = sklib.__sklib__alpha_of__color(__skparam__c) @@ -6882,6 +7428,10 @@ def dec_to_hex ( a_dec ): __skparam__a_dec = __skadapter__to_sklib_unsigned_int(a_dec) __skreturn = sklib.__sklib__dec_to_hex__unsigned_int(__skparam__a_dec) return __skadapter__to_string(__skreturn) +def dec_to_ipv4 ( ip ): + __skparam__ip = __skadapter__to_sklib_unsigned_int(ip) + __skreturn = sklib.__sklib__dec_to_ipv4__unsigned_int(__skparam__ip) + return __skadapter__to_string(__skreturn) def fetch_new_connection ( server ): __skparam__server = __skadapter__to_sklib_server_socket(server) __skreturn = sklib.__sklib__fetch_new_connection__server_socket(__skparam__server) @@ -6928,10 +7478,6 @@ def ipv4_to_hex ( a_ip ): __skparam__a_ip = __skadapter__to_sklib_string(a_ip) __skreturn = sklib.__sklib__ipv4_to_hex__string_ref(__skparam__a_ip) return __skadapter__to_string(__skreturn) -def ipv4_to_str ( ip ): - __skparam__ip = __skadapter__to_sklib_unsigned_int(ip) - __skreturn = sklib.__sklib__ipv4_to_str__unsigned_int(__skparam__ip) - return __skadapter__to_string(__skreturn) def is_connection_open ( con ): __skparam__con = __skadapter__to_sklib_connection(con) __skreturn = sklib.__sklib__is_connection_open__connection(__skparam__con) @@ -7332,6 +7878,22 @@ def quad_from ( x_top_left, y_top_left, x_top_right, y_top_right, x_bottom_left, __skparam__y_bottom_right = __skadapter__to_sklib_double(y_bottom_right) __skreturn = sklib.__sklib__quad_from__double__double__double__double__double__double__double__double(__skparam__x_top_left, __skparam__y_top_left, __skparam__x_top_right, __skparam__y_top_right, __skparam__x_bottom_left, __skparam__y_bottom_left, __skparam__x_bottom_right, __skparam__y_bottom_right) return __skadapter__to_quad(__skreturn) +def quad_ray_intersection ( origin, heading, q ): + __skparam__origin = __skadapter__to_sklib_point_2d(origin) + __skparam__heading = __skadapter__to_sklib_vector_2d(heading) + __skparam__q = __skadapter__to_sklib_quad(q) + __skreturn = sklib.__sklib__quad_ray_intersection__point_2d_ref__vector_2d_ref__quad_ref(__skparam__origin, __skparam__heading, __skparam__q) + return __skadapter__to_bool(__skreturn) +def quad_ray_intersection_with_hit_point_and_distance ( origin, heading, q, hit_point, hit_distance ): + __skparam__origin = __skadapter__to_sklib_point_2d(origin) + __skparam__heading = __skadapter__to_sklib_vector_2d(heading) + __skparam__q = __skadapter__to_sklib_quad(q) + __skparam__hit_point = __skadapter__to_sklib_point_2d(hit_point) + __skparam__hit_distance = __skadapter__to_sklib_double(hit_distance) + __skreturn = sklib.__sklib__quad_ray_intersection__point_2d_ref__vector_2d_ref__quad_ref__point_2d_ref__double_ref(__skparam__origin, __skparam__heading, __skparam__q, byref(__skparam__hit_point), byref(__skparam__hit_distance)) + hit_point = __skadapter__to_point_2d(__skparam__hit_point) + hit_distance = __skadapter__to_double(__skparam__hit_distance) + return __skadapter__to_bool(__skreturn) def quads_intersect ( q1, q2 ): __skparam__q1 = __skadapter__to_sklib_quad(q1) __skparam__q2 = __skadapter__to_sklib_quad(q2) @@ -7394,6 +7956,23 @@ def raspi_set_pwm_range ( pin, range ): __skparam__pin = __skadapter__to_sklib_pins(pin) __skparam__range = __skadapter__to_sklib_int(range) sklib.__sklib__raspi_set_pwm_range__pins__int(__skparam__pin, __skparam__range) +def raspi_spi_close ( handle ): + __skparam__handle = __skadapter__to_sklib_int(handle) + __skreturn = sklib.__sklib__raspi_spi_close__int(__skparam__handle) + return __skadapter__to_int(__skreturn) +def raspi_spi_open ( channel, speed, spi_flags ): + __skparam__channel = __skadapter__to_sklib_int(channel) + __skparam__speed = __skadapter__to_sklib_int(speed) + __skparam__spi_flags = __skadapter__to_sklib_int(spi_flags) + __skreturn = sklib.__sklib__raspi_spi_open__int__int__int(__skparam__channel, __skparam__speed, __skparam__spi_flags) + return __skadapter__to_int(__skreturn) +def raspi_spi_transfer ( handle, sendBuf, recvBuf, count ): + __skparam__handle = __skadapter__to_sklib_int(handle) + __skparam__sendBuf = __skadapter__to_sklib_string(sendbuf) + __skparam__recvBuf = __skadapter__to_sklib_string(recvbuf) + __skparam__count = __skadapter__to_sklib_int(count) + __skreturn = sklib.__sklib__raspi_spi_transfer__int__string__string__int(__skparam__handle, __skparam__sendBuf, __skparam__recvBuf, __skparam__count) + return __skadapter__to_int(__skreturn) def raspi_write ( pin, value ): __skparam__pin = __skadapter__to_sklib_pins(pin) __skparam__value = __skadapter__to_sklib_pin_values(value) @@ -7654,6 +8233,11 @@ def rectangle_center ( rect ): __skparam__rect = __skadapter__to_sklib_rectangle(rect) __skreturn = sklib.__sklib__rectangle_center__rectangle_ref(__skparam__rect) return __skadapter__to_point_2d(__skreturn) +def rectangle_circle_intersect ( rect, c ): + __skparam__rect = __skadapter__to_sklib_rectangle(rect) + __skparam__c = __skadapter__to_sklib_circle(c) + __skreturn = sklib.__sklib__rectangle_circle_intersect__rectangle_ref__circle_ref(__skparam__rect, __skparam__c) + return __skadapter__to_bool(__skreturn) def rectangle_from_point_and_size ( pt, width, height ): __skparam__pt = __skadapter__to_sklib_point_2d(pt) __skparam__width = __skadapter__to_sklib_double(width) @@ -7681,6 +8265,22 @@ def rectangle_offset_by ( rect, offset ): __skparam__offset = __skadapter__to_sklib_vector_2d(offset) __skreturn = sklib.__sklib__rectangle_offset_by__rectangle_ref__vector_2d_ref(__skparam__rect, __skparam__offset) return __skadapter__to_rectangle(__skreturn) +def rectangle_ray_intersection ( origin, heading, rect ): + __skparam__origin = __skadapter__to_sklib_point_2d(origin) + __skparam__heading = __skadapter__to_sklib_vector_2d(heading) + __skparam__rect = __skadapter__to_sklib_rectangle(rect) + __skreturn = sklib.__sklib__rectangle_ray_intersection__point_2d_ref__vector_2d_ref__rectangle_ref(__skparam__origin, __skparam__heading, __skparam__rect) + return __skadapter__to_bool(__skreturn) +def rectangle_ray_intersection_with_hit_point_and_distance ( origin, heading, rect, hit_point, hit_distance ): + __skparam__origin = __skadapter__to_sklib_point_2d(origin) + __skparam__heading = __skadapter__to_sklib_vector_2d(heading) + __skparam__rect = __skadapter__to_sklib_rectangle(rect) + __skparam__hit_point = __skadapter__to_sklib_point_2d(hit_point) + __skparam__hit_distance = __skadapter__to_sklib_double(hit_distance) + __skreturn = sklib.__sklib__rectangle_ray_intersection__point_2d_ref__vector_2d_ref__rectangle_ref__point_2d_ref__double_ref(__skparam__origin, __skparam__heading, __skparam__rect, byref(__skparam__hit_point), byref(__skparam__hit_distance)) + hit_point = __skadapter__to_point_2d(__skparam__hit_point) + hit_distance = __skadapter__to_double(__skparam__hit_distance) + return __skadapter__to_bool(__skreturn) def rectangle_right ( rect ): __skparam__rect = __skadapter__to_sklib_rectangle(rect) __skreturn = sklib.__sklib__rectangle_right__rectangle_ref(__skparam__rect) @@ -8970,6 +9570,27 @@ def triangle_from_coordinates ( x1, y1, x2, y2, x3, y3 ): __skparam__y3 = __skadapter__to_sklib_double(y3) __skreturn = sklib.__sklib__triangle_from__double__double__double__double__double__double(__skparam__x1, __skparam__y1, __skparam__x2, __skparam__y2, __skparam__x3, __skparam__y3) return __skadapter__to_triangle(__skreturn) +def triangle_quad_intersect ( tri, q ): + __skparam__tri = __skadapter__to_sklib_triangle(tri) + __skparam__q = __skadapter__to_sklib_quad(q) + __skreturn = sklib.__sklib__triangle_quad_intersect__triangle_ref__quad_ref(__skparam__tri, __skparam__q) + return __skadapter__to_bool(__skreturn) +def triangle_ray_intersection ( origin, heading, tri ): + __skparam__origin = __skadapter__to_sklib_point_2d(origin) + __skparam__heading = __skadapter__to_sklib_vector_2d(heading) + __skparam__tri = __skadapter__to_sklib_triangle(tri) + __skreturn = sklib.__sklib__triangle_ray_intersection__point_2d_ref__vector_2d_ref__triangle_ref(__skparam__origin, __skparam__heading, __skparam__tri) + return __skadapter__to_bool(__skreturn) +def triangle_ray_intersection_with_hit_point_and_distance ( origin, heading, tri, hit_point, hit_distance ): + __skparam__origin = __skadapter__to_sklib_point_2d(origin) + __skparam__heading = __skadapter__to_sklib_vector_2d(heading) + __skparam__tri = __skadapter__to_sklib_triangle(tri) + __skparam__hit_point = __skadapter__to_sklib_point_2d(hit_point) + __skparam__hit_distance = __skadapter__to_sklib_double(hit_distance) + __skreturn = sklib.__sklib__triangle_ray_intersection__point_2d_ref__vector_2d_ref__triangle_ref__point_2d_ref__double_ref(__skparam__origin, __skparam__heading, __skparam__tri, byref(__skparam__hit_point), byref(__skparam__hit_distance)) + hit_point = __skadapter__to_point_2d(__skparam__hit_point) + hit_distance = __skadapter__to_double(__skparam__hit_distance) + return __skadapter__to_bool(__skreturn) def triangle_rectangle_intersect ( tri, rect ): __skparam__tri = __skadapter__to_sklib_triangle(tri) __skparam__rect = __skadapter__to_sklib_rectangle(rect) diff --git a/generated/translator_cache.json b/generated/translator_cache.json index a36c1905..63c55952 100644 --- a/generated/translator_cache.json +++ b/generated/translator_cache.json @@ -3,7 +3,7 @@ "group": "animations", "brief": "Animations in SplashKit can be used to move between cells in\nbitmaps and sprites. Each animation generates a number sequence\nthat can then be used when drawing bitmaps.", "description": null, - "parsed_at": 1738487274, + "parsed_at": 1740904843, "path": "coresdk/src/coresdk/animations.h", "functions": [ { @@ -1951,7 +1951,7 @@ "group": "audio", "brief": "SplashKit Audio allows you to load and play music and sound effects.", "description": "SplashKit's audio library allows you to easily load and play music and\nsound effects within your programs. To get started with audio the first\nthing you need to do is load a sound effect or music file. You can do this\nby calling the `load_sound_effect(string name)` function to the\n`load_music(string name)` function.", - "parsed_at": 1738487274, + "parsed_at": 1740904843, "path": "coresdk/src/coresdk/audio.h", "functions": [ { @@ -2045,7 +2045,7 @@ "group": "utilities", "brief": "SplashKit provides some basic data manipulation functions to\nhelp make it easy to get some basic tasks performed.", "description": null, - "parsed_at": 1740541625, + "parsed_at": 1740904843, "path": "coresdk/src/coresdk/basics.h", "functions": [ { @@ -2612,7 +2612,7 @@ "group": "resource_bundles", "brief": "SplashKit resource bundles allow you to quickly and easily load a\nnumber of resources in the `Resources` folder.", "description": "Supports the loading and freeing of game resource bundles. Resource types\ninclude images, sounds, music and animation files to name a few. Resource\nfiles must be saved in specific locations of a `Resources` folder for\nyour game.", - "parsed_at": 1738487275, + "parsed_at": 1740904843, "path": "coresdk/src/coresdk/bundles.h", "functions": [ { @@ -2757,7 +2757,7 @@ "group": "camera", "brief": "SplashKit camera functionality allows you to move a virtual camera\naround in your world.", "description": "Splashkit camera functionality allows you to move a virtual camera around in\nyour world. This camera projects to the users window, allowing you to\ndraw things to the screen in your world coordinates.", - "parsed_at": 1738487275, + "parsed_at": 1740904844, "path": "coresdk/src/coresdk/camera.h", "functions": [ { @@ -3824,7 +3824,7 @@ "group": "graphics", "brief": null, "description": null, - "parsed_at": 1738487276, + "parsed_at": 1740904844, "path": "coresdk/src/coresdk/circle_drawing.h", "functions": [ { @@ -5195,7 +5195,7 @@ "group": "geometry", "brief": null, "description": null, - "parsed_at": 1740541626, + "parsed_at": 1740904845, "path": "coresdk/src/coresdk/circle_geometry.h", "functions": [ { @@ -5349,6 +5349,56 @@ "static": "geometry" } }, + { + "signature": "bool circle_quad_intersect(const circle &c,const quad &q);", + "name": "circle_quad_intersect", + "method_name": null, + "unique_global_name": "circle_quad_intersect", + "unique_method_name": null, + "suffix_name": null, + "description": "Detects if a circle intersects with a quad.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the circle and quad intersect, false otherwise", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "c": { + "type": "circle", + "description": "The circle to test", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "q": { + "type": "quad", + "description": "The quad to test", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "group": "geometry", + "static": "geometry" + } + }, { "signature": "float circle_radius(const circle c);", "name": "circle_radius", @@ -5386,6 +5436,159 @@ "static": "geometry" } }, + { + "signature": "bool circle_ray_intersection(const point_2d &origin,const vector_2d &heading,const circle &circ);", + "name": "circle_ray_intersection", + "method_name": null, + "unique_global_name": "circle_ray_intersection", + "unique_method_name": null, + "suffix_name": null, + "description": "Detects if a ray intersects a circle.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the ray intersects the circle, false otherwise", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "origin": { + "type": "point_2d", + "description": "The starting point of the ray", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "heading": { + "type": "vector_2d", + "description": "The direction of the ray as a vector", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "circ": { + "type": "circle", + "description": "The circle to check for intersection", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "group": "geometry", + "static": "geometry" + } + }, + { + "signature": "bool circle_ray_intersection(const point_2d &origin,const vector_2d &heading,const circle &circ,point_2d &hit_point,double &hit_distance);", + "name": "circle_ray_intersection", + "method_name": null, + "unique_global_name": "circle_ray_intersection_with_hit_point_and_distance", + "unique_method_name": null, + "suffix_name": null, + "description": "Detects if a ray intersects a circle. If an intersection is found, the\n`hit_point` and `hit_distance` are set to the point of intersection and the\ndistance from the ray's origin to the intersection point. If the ray's `origin`\nis contained within the circle, `hit_point` is set to the `origin` and `hit_distance`\nis set to 0. If no intersection is found, `hit_point` and `hit_distance` are not modified.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the ray intersects the circle, false otherwise", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "origin": { + "type": "point_2d", + "description": "The starting point of the ray", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "heading": { + "type": "vector_2d", + "description": "The direction of the ray as a vector", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "circ": { + "type": "circle", + "description": "The circle to check for intersection", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "hit_point": { + "type": "point_2d", + "description": "The point to set to where the ray intersects the circle", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "hit_distance": { + "type": "double", + "description": "The double to set to the distance from the ray's origin to\nthe intersection point", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "with_hit_point_and_distance", + "group": "geometry", + "static": "geometry" + } + }, { "signature": "bool circle_triangle_intersect(const circle &c,const triangle &tri);", "name": "circle_triangle_intersect", @@ -6286,7 +6489,7 @@ "group": "graphics", "brief": null, "description": null, - "parsed_at": 1738487276, + "parsed_at": 1740904845, "path": "coresdk/src/coresdk/clipping.h", "functions": [ { @@ -6870,11 +7073,11 @@ "group": "physics", "brief": "SplashKit Collisions library allow you to perform tests between\nbitmaps, sprites and shapes to determin if a collision has occured.", "description": null, - "parsed_at": 1740541627, + "parsed_at": 1740904847, "path": "coresdk/src/coresdk/collisions.h", "functions": [ { - "signature": "bool bitmap_circle_collision(bitmap bmp,const point_2d& pt,const circle& circ);", + "signature": "bool bitmap_circle_collision(bitmap bmp,const point_2d &pt,const circle &circ);", "name": "bitmap_circle_collision", "method_name": "circle_collision", "unique_global_name": "bitmap_circle_collision_at_point", @@ -6941,7 +7144,7 @@ } }, { - "signature": "bool bitmap_circle_collision(bitmap bmp,double x,double y,const circle& circ);", + "signature": "bool bitmap_circle_collision(bitmap bmp,double x,double y,const circle &circ);", "name": "bitmap_circle_collision", "method_name": "circle_collision", "unique_global_name": "bitmap_circle_collision", @@ -7020,7 +7223,7 @@ } }, { - "signature": "bool bitmap_circle_collision(bitmap bmp,int cell,const matrix_2d& translation,const circle& circ);", + "signature": "bool bitmap_circle_collision(bitmap bmp,int cell,const matrix_2d &translation,const circle &circ);", "name": "bitmap_circle_collision", "method_name": "circle_collision", "unique_global_name": "bitmap_circle_collision_for_cell_with_translation", @@ -7100,7 +7303,7 @@ } }, { - "signature": "bool bitmap_circle_collision(bitmap bmp,int cell,const point_2d& pt,const circle& circ);", + "signature": "bool bitmap_circle_collision(bitmap bmp,int cell,const point_2d &pt,const circle &circ);", "name": "bitmap_circle_collision", "method_name": "circle_collision", "unique_global_name": "bitmap_circle_collision_for_cell_at_point", @@ -7180,7 +7383,7 @@ } }, { - "signature": "bool bitmap_circle_collision(bitmap bmp,int cell,double x,double y,const circle& circ);", + "signature": "bool bitmap_circle_collision(bitmap bmp,int cell,double x,double y,const circle &circ);", "name": "bitmap_circle_collision", "method_name": "circle_collision", "unique_global_name": "bitmap_circle_collision_for_cell", @@ -7802,7 +8005,7 @@ } }, { - "signature": "bool bitmap_point_collision(bitmap bmp,const matrix_2d& translation,const point_2d& pt);", + "signature": "bool bitmap_point_collision(bitmap bmp,const matrix_2d &translation,const point_2d &pt);", "name": "bitmap_point_collision", "method_name": "point_collision", "unique_global_name": "bitmap_point_collision_with_translation", @@ -7869,7 +8072,7 @@ } }, { - "signature": "bool bitmap_point_collision(bitmap bmp,const point_2d &bmp_pt,const point_2d& pt);", + "signature": "bool bitmap_point_collision(bitmap bmp,const point_2d &bmp_pt,const point_2d &pt);", "name": "bitmap_point_collision", "method_name": "point_collision", "unique_global_name": "bitmap_point_collision_at_point", @@ -7942,7 +8145,7 @@ "unique_global_name": "bitmap_point_collision", "unique_method_name": "bitmap.point_collision", "suffix_name": null, - "description": "Tests if a bitmap drawn at x,y would draw a pixel at the passed in point. Use \nto check collisions between a point and a bitmap.", + "description": "Tests if a bitmap drawn at x,y would draw a pixel at the passed in point. Use\nto check collisions between a point and a bitmap.", "brief": null, "return": { "type": "bool", @@ -8028,7 +8231,7 @@ } }, { - "signature": "bool bitmap_point_collision(bitmap bmp,int cell,const matrix_2d& translation,const point_2d& pt);", + "signature": "bool bitmap_point_collision(bitmap bmp,int cell,const matrix_2d &translation,const point_2d &pt);", "name": "bitmap_point_collision", "method_name": "point_collision", "unique_global_name": "bitmap_point_collision_for_cell_with_translation", @@ -8108,7 +8311,7 @@ } }, { - "signature": "bool bitmap_point_collision(bitmap bmp,int cell,const point_2d &bmp_pt,const point_2d& pt);", + "signature": "bool bitmap_point_collision(bitmap bmp,int cell,const point_2d &bmp_pt,const point_2d &pt);", "name": "bitmap_point_collision", "method_name": "point_collision", "unique_global_name": "bitmap_point_collision_for_cell_at_point", @@ -8294,13 +8497,13 @@ } }, { - "signature": "bool bitmap_quad_collision(bitmap bmp,int cell,const matrix_2d &translation,const quad &q);", + "signature": "bool bitmap_quad_collision(bitmap bmp,const point_2d &pt,const quad &q);", "name": "bitmap_quad_collision", "method_name": "quad_collision", - "unique_global_name": "bitmap_quad_collision_for_cell_with_translation", - "unique_method_name": "bitmap.quad_collision_for_cell_with_translation", + "unique_global_name": "bitmap_quad_collision_at_point", + "unique_method_name": "bitmap.quad_collision_at_point", "suffix_name": null, - "description": "Tests if a bitmap cell drawn using a passed in translation, will\nintersect with a quad. You can use this to detect collisions between\nbitmaps and quads.", + "description": "Tests if a bitmap drawn at `pt` would intersect with a quad.", "brief": null, "return": { "type": "bool", @@ -8324,22 +8527,9 @@ "is_vector": false, "type_parameter": null }, - "cell": { - "type": "int", - "description": "The cell of the bitmap to check", - "is_pointer": false, - "is_const": false, - "is_reference": false, - "is_array": false, - "array_dimension_sizes": [ - - ], - "is_vector": false, - "type_parameter": null - }, - "translation": { - "type": "matrix_2d", - "description": "The matrix used to transfrom the bitmap when drawing", + "pt": { + "type": "point_2d", + "description": "The location where the bitmap is drawn", "is_pointer": false, "is_const": true, "is_reference": true, @@ -8367,86 +8557,6 @@ "attributes": { "class": "bitmap", "method": "quad_collision", - "suffix": "for_cell_with_translation", - "group": "physics", - "static": "collisions", - "self": "bmp" - } - }, - { - "signature": "bool bitmap_ray_collision(bitmap bmp,const point_2d& pt,const point_2d& origin,const vector_2d& heading);", - "name": "bitmap_ray_collision", - "method_name": "ray_collision", - "unique_global_name": "bitmap_ray_collision_at_point", - "unique_method_name": "bitmap.ray_collision_at_point", - "suffix_name": null, - "description": "Tests if a bitmap drawn at `pt` would intersect with a ray.", - "brief": null, - "return": { - "type": "bool", - "description": "True if a drawn pixel in the cell of the bitmap will\nintersect with the ray when drawn.", - "is_pointer": false, - "is_reference": false, - "is_vector": false, - "type_parameter": null - }, - "parameters": { - "bmp": { - "type": "bitmap", - "description": "The bitmap to test", - "is_pointer": false, - "is_const": false, - "is_reference": false, - "is_array": false, - "array_dimension_sizes": [ - - ], - "is_vector": false, - "type_parameter": null - }, - "pt": { - "type": "point_2d", - "description": "The location where the bitmap is drawn", - "is_pointer": false, - "is_const": true, - "is_reference": true, - "is_array": false, - "array_dimension_sizes": [ - - ], - "is_vector": false, - "type_parameter": null - }, - "origin": { - "type": "point_2d", - "description": "The origin of the ray", - "is_pointer": false, - "is_const": true, - "is_reference": true, - "is_array": false, - "array_dimension_sizes": [ - - ], - "is_vector": false, - "type_parameter": null - }, - "heading": { - "type": "vector_2d", - "description": "The heading of the ray", - "is_pointer": false, - "is_const": true, - "is_reference": true, - "is_array": false, - "array_dimension_sizes": [ - - ], - "is_vector": false, - "type_parameter": null - } - }, - "attributes": { - "class": "bitmap", - "method": "ray_collision", "suffix": "at_point", "group": "physics", "static": "collisions", @@ -8454,17 +8564,17 @@ } }, { - "signature": "bool bitmap_ray_collision(bitmap bmp,double x,double y,const point_2d& origin,const vector_2d& heading);", - "name": "bitmap_ray_collision", - "method_name": "ray_collision", - "unique_global_name": "bitmap_ray_collision", - "unique_method_name": "bitmap.ray_collision", + "signature": "bool bitmap_quad_collision(bitmap bmp,double x,double y,const quad &q);", + "name": "bitmap_quad_collision", + "method_name": "quad_collision", + "unique_global_name": "bitmap_quad_collision", + "unique_method_name": "bitmap.quad_collision", "suffix_name": null, - "description": "Tests if a bitmap drawn at `x`, `y` would intersect with a ray.", + "description": "Tests if a bitmap drawn at `x`, `y` would intersect with a quad.", "brief": null, "return": { "type": "bool", - "description": "True if a drawn pixel in the bitmap will\nintersect with the ray when drawn.", + "description": "True if a drawn pixel in the bitmap will\nintersect with `q` when drawn.", "is_pointer": false, "is_reference": false, "is_vector": false, @@ -8510,22 +8620,9 @@ "is_vector": false, "type_parameter": null }, - "origin": { - "type": "point_2d", - "description": "The origin of the ray", - "is_pointer": false, - "is_const": true, - "is_reference": true, - "is_array": false, - "array_dimension_sizes": [ - - ], - "is_vector": false, - "type_parameter": null - }, - "heading": { - "type": "vector_2d", - "description": "The heading of the ray", + "q": { + "type": "quad", + "description": "The quad to test", "is_pointer": false, "is_const": true, "is_reference": true, @@ -8539,24 +8636,24 @@ }, "attributes": { "class": "bitmap", - "method": "ray_collision", + "method": "quad_collision", "group": "physics", "static": "collisions", "self": "bmp" } }, { - "signature": "bool bitmap_ray_collision(bitmap bmp,int cell,const matrix_2d& translation,const point_2d& origin,const vector_2d& heading);", - "name": "bitmap_ray_collision", - "method_name": "ray_collision", - "unique_global_name": "bitmap_ray_collision_for_cell_with_translation", - "unique_method_name": "bitmap.ray_collision_for_cell_with_translation", + "signature": "bool bitmap_quad_collision(bitmap bmp,int cell,const matrix_2d &translation,const quad &q);", + "name": "bitmap_quad_collision", + "method_name": "quad_collision", + "unique_global_name": "bitmap_quad_collision_for_cell_with_translation", + "unique_method_name": "bitmap.quad_collision_for_cell_with_translation", "suffix_name": null, - "description": "Tests if a bitmap cell drawn using a passed in translation, will\nintersect with a ray. You can use this to detect collisions between\nbitmaps and rays.", + "description": "Tests if a bitmap cell drawn using a passed in translation, will\nintersect with a quad. You can use this to detect collisions between\nbitmaps and quads.", "brief": null, "return": { "type": "bool", - "description": "True if a drawn pixel in the cell of the bitmap will\nintersect with the ray when drawn.", + "description": "True if a drawn pixel in the cell of the bitmap will\nintersect with `q` when drawn.", "is_pointer": false, "is_reference": false, "is_vector": false, @@ -8602,22 +8699,9 @@ "is_vector": false, "type_parameter": null }, - "origin": { - "type": "point_2d", - "description": "The origin of the ray", - "is_pointer": false, - "is_const": true, - "is_reference": true, - "is_array": false, - "array_dimension_sizes": [ - - ], - "is_vector": false, - "type_parameter": null - }, - "heading": { - "type": "vector_2d", - "description": "The heading of the ray", + "q": { + "type": "quad", + "description": "The quad to test", "is_pointer": false, "is_const": true, "is_reference": true, @@ -8631,7 +8715,7 @@ }, "attributes": { "class": "bitmap", - "method": "ray_collision", + "method": "quad_collision", "suffix": "for_cell_with_translation", "group": "physics", "static": "collisions", @@ -8639,17 +8723,17 @@ } }, { - "signature": "bool bitmap_ray_collision(bitmap bmp,int cell,const point_2d& pt,const point_2d& origin,const vector_2d& heading);", - "name": "bitmap_ray_collision", - "method_name": "ray_collision", - "unique_global_name": "bitmap_ray_collision_for_cell_at_point", - "unique_method_name": "bitmap.ray_collision_for_cell_at_point", + "signature": "bool bitmap_quad_collision(bitmap bmp,int cell,const point_2d &pt,const quad &q);", + "name": "bitmap_quad_collision", + "method_name": "quad_collision", + "unique_global_name": "bitmap_quad_collision_for_cell_at_point", + "unique_method_name": "bitmap.quad_collision_for_cell_at_point", "suffix_name": null, - "description": "Tests if a bitmap cell drawn at `pt` would intersect with a ray.", + "description": "Tests if a bitmap cell drawn at `pt` would intersect with a quad.", "brief": null, "return": { "type": "bool", - "description": "True if a drawn pixel in the cell of the bitmap will\nintersect with the ray when drawn.", + "description": "True if a drawn pixel in the cell of the bitmap will\nintersect with `q` when drawn.", "is_pointer": false, "is_reference": false, "is_vector": false, @@ -8695,22 +8779,9 @@ "is_vector": false, "type_parameter": null }, - "origin": { - "type": "point_2d", - "description": "The origin of the ray", - "is_pointer": false, - "is_const": true, - "is_reference": true, - "is_array": false, - "array_dimension_sizes": [ - - ], - "is_vector": false, - "type_parameter": null - }, - "heading": { - "type": "vector_2d", - "description": "The heading of the ray", + "q": { + "type": "quad", + "description": "The quad to test", "is_pointer": false, "is_const": true, "is_reference": true, @@ -8724,7 +8795,7 @@ }, "attributes": { "class": "bitmap", - "method": "ray_collision", + "method": "quad_collision", "suffix": "for_cell_at_point", "group": "physics", "static": "collisions", @@ -8732,17 +8803,17 @@ } }, { - "signature": "bool bitmap_ray_collision(bitmap bmp,int cell,double x,double y,const point_2d& origin,const vector_2d& heading);", - "name": "bitmap_ray_collision", - "method_name": "ray_collision", - "unique_global_name": "bitmap_ray_collision_for_cell", - "unique_method_name": "bitmap.ray_collision_for_cell", + "signature": "bool bitmap_quad_collision(bitmap bmp,int cell,double x,double y,const quad &q);", + "name": "bitmap_quad_collision", + "method_name": "quad_collision", + "unique_global_name": "bitmap_quad_collision_for_cell", + "unique_method_name": "bitmap.quad_collision_for_cell", "suffix_name": null, - "description": "Tests if a bitmap cell drawn at `x`, `y` would intersect with a ray.", + "description": "Tests if a bitmap cell drawn at `x`, `y` would intersect with a quad.", "brief": null, "return": { "type": "bool", - "description": "True if a drawn pixel in the cell of the bitmap will\nintersect with the ray when drawn.", + "description": "True if a drawn pixel in the bitmap will\nintersect with `q` when drawn.", "is_pointer": false, "is_reference": false, "is_vector": false, @@ -8801,22 +8872,9 @@ "is_vector": false, "type_parameter": null }, - "origin": { - "type": "point_2d", - "description": "The origin of the ray", - "is_pointer": false, - "is_const": true, - "is_reference": true, - "is_array": false, - "array_dimension_sizes": [ - - ], - "is_vector": false, - "type_parameter": null - }, - "heading": { - "type": "vector_2d", - "description": "The heading of the ray", + "q": { + "type": "quad", + "description": "The quad to test", "is_pointer": false, "is_const": true, "is_reference": true, @@ -8830,7 +8888,7 @@ }, "attributes": { "class": "bitmap", - "method": "ray_collision", + "method": "quad_collision", "suffix": "for_cell", "group": "physics", "static": "collisions", @@ -8838,17 +8896,17 @@ } }, { - "signature": "bool bitmap_rectangle_collision(bitmap bmp,const point_2d& pt,const rectangle& rect);", - "name": "bitmap_rectangle_collision", - "method_name": "rectangle_collision", - "unique_global_name": "bitmap_rectangle_collision_at_point", - "unique_method_name": "bitmap.rectangle_collision_at_point", + "signature": "bool bitmap_ray_collision(bitmap bmp,const point_2d &pt,const point_2d &origin,const vector_2d &heading);", + "name": "bitmap_ray_collision", + "method_name": "ray_collision", + "unique_global_name": "bitmap_ray_collision_at_point", + "unique_method_name": "bitmap.ray_collision_at_point", "suffix_name": null, - "description": "Tests if a bitmap drawn at `pt` would intersect with a rectangle.", + "description": "Tests if a bitmap drawn at `pt` would intersect with a ray.", "brief": null, "return": { "type": "bool", - "description": "True if a drawn pixel in the cell of the bitmap will\nintersect with `rect` when drawn.", + "description": "True if a drawn pixel in the cell of the bitmap will\nintersect with the ray when drawn.", "is_pointer": false, "is_reference": false, "is_vector": false, @@ -8881,9 +8939,22 @@ "is_vector": false, "type_parameter": null }, - "rect": { - "type": "rectangle", - "description": "The rectangle to test", + "origin": { + "type": "point_2d", + "description": "The origin of the ray", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "heading": { + "type": "vector_2d", + "description": "The heading of the ray", "is_pointer": false, "is_const": true, "is_reference": true, @@ -8897,7 +8968,7 @@ }, "attributes": { "class": "bitmap", - "method": "rectangle_collision", + "method": "ray_collision", "suffix": "at_point", "group": "physics", "static": "collisions", @@ -8905,17 +8976,17 @@ } }, { - "signature": "bool bitmap_rectangle_collision(bitmap bmp,double x,double y,const rectangle& rect);", - "name": "bitmap_rectangle_collision", - "method_name": "rectangle_collision", - "unique_global_name": "bitmap_rectangle_collision", - "unique_method_name": "bitmap.rectangle_collision", + "signature": "bool bitmap_ray_collision(bitmap bmp,double x,double y,const point_2d &origin,const vector_2d &heading);", + "name": "bitmap_ray_collision", + "method_name": "ray_collision", + "unique_global_name": "bitmap_ray_collision", + "unique_method_name": "bitmap.ray_collision", "suffix_name": null, - "description": "Tests if a bitmap drawn at `x`, `y` would intersect with a rectangle.", + "description": "Tests if a bitmap drawn at `x`, `y` would intersect with a ray.", "brief": null, "return": { "type": "bool", - "description": "True if a drawn pixel in the bitmap will\nintersect with `rect` when drawn.", + "description": "True if a drawn pixel in the bitmap will\nintersect with the ray when drawn.", "is_pointer": false, "is_reference": false, "is_vector": false, @@ -8961,9 +9032,22 @@ "is_vector": false, "type_parameter": null }, - "rect": { - "type": "rectangle", - "description": "The rectangle to test", + "origin": { + "type": "point_2d", + "description": "The origin of the ray", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "heading": { + "type": "vector_2d", + "description": "The heading of the ray", "is_pointer": false, "is_const": true, "is_reference": true, @@ -8977,24 +9061,24 @@ }, "attributes": { "class": "bitmap", - "method": "rectangle_collision", + "method": "ray_collision", "group": "physics", "static": "collisions", "self": "bmp" } }, { - "signature": "bool bitmap_rectangle_collision(bitmap bmp,int cell,const matrix_2d& translation,const rectangle& rect);", - "name": "bitmap_rectangle_collision", - "method_name": "rectangle_collision", - "unique_global_name": "bitmap_rectangle_collision_for_cell_with_translation", - "unique_method_name": "bitmap.rectangle_collision_for_cell_with_translation", + "signature": "bool bitmap_ray_collision(bitmap bmp,int cell,const matrix_2d &translation,const point_2d &origin,const vector_2d &heading);", + "name": "bitmap_ray_collision", + "method_name": "ray_collision", + "unique_global_name": "bitmap_ray_collision_for_cell_with_translation", + "unique_method_name": "bitmap.ray_collision_for_cell_with_translation", "suffix_name": null, - "description": "Tests if a bitmap cell drawn using a passed in translation, will\nintersect with a rectangle. You can use this to detect collisions between\nbitmaps and rectangles.", + "description": "Tests if a bitmap cell drawn using a passed in translation, will\nintersect with a ray. You can use this to detect collisions between\nbitmaps and rays.", "brief": null, "return": { "type": "bool", - "description": "True if a drawn pixel in the cell of the bitmap will\nintersect with `rect` when drawn.", + "description": "True if a drawn pixel in the cell of the bitmap will\nintersect with the ray when drawn.", "is_pointer": false, "is_reference": false, "is_vector": false, @@ -9040,9 +9124,22 @@ "is_vector": false, "type_parameter": null }, - "rect": { - "type": "rectangle", - "description": "The rectangle to test", + "origin": { + "type": "point_2d", + "description": "The origin of the ray", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "heading": { + "type": "vector_2d", + "description": "The heading of the ray", "is_pointer": false, "is_const": true, "is_reference": true, @@ -9056,7 +9153,7 @@ }, "attributes": { "class": "bitmap", - "method": "rectangle_collision", + "method": "ray_collision", "suffix": "for_cell_with_translation", "group": "physics", "static": "collisions", @@ -9064,17 +9161,17 @@ } }, { - "signature": "bool bitmap_rectangle_collision(bitmap bmp,int cell,const point_2d& pt,const rectangle& rect);", - "name": "bitmap_rectangle_collision", - "method_name": "rectangle_collision", - "unique_global_name": "bitmap_rectangle_collision_for_cell_at_point", - "unique_method_name": "bitmap.rectangle_collision_for_cell_at_point", + "signature": "bool bitmap_ray_collision(bitmap bmp,int cell,const point_2d &pt,const point_2d &origin,const vector_2d &heading);", + "name": "bitmap_ray_collision", + "method_name": "ray_collision", + "unique_global_name": "bitmap_ray_collision_for_cell_at_point", + "unique_method_name": "bitmap.ray_collision_for_cell_at_point", "suffix_name": null, - "description": "Tests if a bitmap cell drawn at `pt` would intersect with a rectangle.", + "description": "Tests if a bitmap cell drawn at `pt` would intersect with a ray.", "brief": null, "return": { "type": "bool", - "description": "True if a drawn pixel in the cell of the bitmap will\nintersect with `rect` when drawn.", + "description": "True if a drawn pixel in the cell of the bitmap will\nintersect with the ray when drawn.", "is_pointer": false, "is_reference": false, "is_vector": false, @@ -9120,9 +9217,22 @@ "is_vector": false, "type_parameter": null }, - "rect": { - "type": "rectangle", - "description": "The rectangle to test", + "origin": { + "type": "point_2d", + "description": "The origin of the ray", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "heading": { + "type": "vector_2d", + "description": "The heading of the ray", "is_pointer": false, "is_const": true, "is_reference": true, @@ -9136,7 +9246,7 @@ }, "attributes": { "class": "bitmap", - "method": "rectangle_collision", + "method": "ray_collision", "suffix": "for_cell_at_point", "group": "physics", "static": "collisions", @@ -9144,17 +9254,429 @@ } }, { - "signature": "bool bitmap_rectangle_collision(bitmap bmp,int cell,double x,double y,const rectangle& rect);", - "name": "bitmap_rectangle_collision", - "method_name": "rectangle_collision", - "unique_global_name": "bitmap_rectangle_collision_for_cell", - "unique_method_name": "bitmap.rectangle_collision_for_cell", + "signature": "bool bitmap_ray_collision(bitmap bmp,int cell,double x,double y,const point_2d &origin,const vector_2d &heading);", + "name": "bitmap_ray_collision", + "method_name": "ray_collision", + "unique_global_name": "bitmap_ray_collision_for_cell", + "unique_method_name": "bitmap.ray_collision_for_cell", "suffix_name": null, - "description": "Tests if a cell of the bitmap drawn at `x`, `y` would intersect with a rectangle.", + "description": "Tests if a bitmap cell drawn at `x`, `y` would intersect with a ray.", "brief": null, "return": { "type": "bool", - "description": "True if a drawn pixel in the bitmap will\nintersect with `rect` when drawn.", + "description": "True if a drawn pixel in the cell of the bitmap will\nintersect with the ray when drawn.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "bmp": { + "type": "bitmap", + "description": "The bitmap to test", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "cell": { + "type": "int", + "description": "The cell of the bitmap to check", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "x": { + "type": "double", + "description": "The x location where the bitmap is drawn", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "y": { + "type": "double", + "description": "The y location where the bitmap is drawn", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "origin": { + "type": "point_2d", + "description": "The origin of the ray", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "heading": { + "type": "vector_2d", + "description": "The heading of the ray", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "bitmap", + "method": "ray_collision", + "suffix": "for_cell", + "group": "physics", + "static": "collisions", + "self": "bmp" + } + }, + { + "signature": "bool bitmap_rectangle_collision(bitmap bmp,const point_2d &pt,const rectangle &rect);", + "name": "bitmap_rectangle_collision", + "method_name": "rectangle_collision", + "unique_global_name": "bitmap_rectangle_collision_at_point", + "unique_method_name": "bitmap.rectangle_collision_at_point", + "suffix_name": null, + "description": "Tests if a bitmap drawn at `pt` would intersect with a rectangle.", + "brief": null, + "return": { + "type": "bool", + "description": "True if a drawn pixel in the cell of the bitmap will\nintersect with `rect` when drawn.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "bmp": { + "type": "bitmap", + "description": "The bitmap to test", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "pt": { + "type": "point_2d", + "description": "The location where the bitmap is drawn", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "rect": { + "type": "rectangle", + "description": "The rectangle to test", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "bitmap", + "method": "rectangle_collision", + "suffix": "at_point", + "group": "physics", + "static": "collisions", + "self": "bmp" + } + }, + { + "signature": "bool bitmap_rectangle_collision(bitmap bmp,double x,double y,const rectangle &rect);", + "name": "bitmap_rectangle_collision", + "method_name": "rectangle_collision", + "unique_global_name": "bitmap_rectangle_collision", + "unique_method_name": "bitmap.rectangle_collision", + "suffix_name": null, + "description": "Tests if a bitmap drawn at `x`, `y` would intersect with a rectangle.", + "brief": null, + "return": { + "type": "bool", + "description": "True if a drawn pixel in the bitmap will\nintersect with `rect` when drawn.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "bmp": { + "type": "bitmap", + "description": "The bitmap to test", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "x": { + "type": "double", + "description": "The x location where the bitmap is drawn", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "y": { + "type": "double", + "description": "The y location where the bitmap is drawn", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "rect": { + "type": "rectangle", + "description": "The rectangle to test", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "bitmap", + "method": "rectangle_collision", + "group": "physics", + "static": "collisions", + "self": "bmp" + } + }, + { + "signature": "bool bitmap_rectangle_collision(bitmap bmp,int cell,const matrix_2d &translation,const rectangle &rect);", + "name": "bitmap_rectangle_collision", + "method_name": "rectangle_collision", + "unique_global_name": "bitmap_rectangle_collision_for_cell_with_translation", + "unique_method_name": "bitmap.rectangle_collision_for_cell_with_translation", + "suffix_name": null, + "description": "Tests if a bitmap cell drawn using a passed in translation, will\nintersect with a rectangle. You can use this to detect collisions between\nbitmaps and rectangles.", + "brief": null, + "return": { + "type": "bool", + "description": "True if a drawn pixel in the cell of the bitmap will\nintersect with `rect` when drawn.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "bmp": { + "type": "bitmap", + "description": "The bitmap to test", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "cell": { + "type": "int", + "description": "The cell of the bitmap to check", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "translation": { + "type": "matrix_2d", + "description": "The matrix used to transfrom the bitmap when drawing", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "rect": { + "type": "rectangle", + "description": "The rectangle to test", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "bitmap", + "method": "rectangle_collision", + "suffix": "for_cell_with_translation", + "group": "physics", + "static": "collisions", + "self": "bmp" + } + }, + { + "signature": "bool bitmap_rectangle_collision(bitmap bmp,int cell,const point_2d &pt,const rectangle &rect);", + "name": "bitmap_rectangle_collision", + "method_name": "rectangle_collision", + "unique_global_name": "bitmap_rectangle_collision_for_cell_at_point", + "unique_method_name": "bitmap.rectangle_collision_for_cell_at_point", + "suffix_name": null, + "description": "Tests if a bitmap cell drawn at `pt` would intersect with a rectangle.", + "brief": null, + "return": { + "type": "bool", + "description": "True if a drawn pixel in the cell of the bitmap will\nintersect with `rect` when drawn.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "bmp": { + "type": "bitmap", + "description": "The bitmap to test", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "cell": { + "type": "int", + "description": "The cell of the bitmap to check", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "pt": { + "type": "point_2d", + "description": "The location where the bitmap is drawn", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "rect": { + "type": "rectangle", + "description": "The rectangle to test", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "bitmap", + "method": "rectangle_collision", + "suffix": "for_cell_at_point", + "group": "physics", + "static": "collisions", + "self": "bmp" + } + }, + { + "signature": "bool bitmap_rectangle_collision(bitmap bmp,int cell,double x,double y,const rectangle &rect);", + "name": "bitmap_rectangle_collision", + "method_name": "rectangle_collision", + "unique_global_name": "bitmap_rectangle_collision_for_cell", + "unique_method_name": "bitmap.rectangle_collision_for_cell", + "suffix_name": null, + "description": "Tests if a cell of the bitmap drawn at `x`, `y` would intersect with a rectangle.", + "brief": null, + "return": { + "type": "bool", + "description": "True if a drawn pixel in the bitmap will\nintersect with `rect` when drawn.", "is_pointer": false, "is_reference": false, "is_vector": false, @@ -9215,7 +9737,2861 @@ }, "rect": { "type": "rectangle", - "description": "The rectangle to test", + "description": "The rectangle to test", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "bitmap", + "method": "rectangle_collision", + "suffix": "for_cell", + "group": "physics", + "static": "collisions", + "self": "bmp" + } + }, + { + "signature": "bool bitmap_triangle_collision(bitmap bmp,const point_2d &pt,const triangle &tri);", + "name": "bitmap_triangle_collision", + "method_name": "triangle_collision", + "unique_global_name": "bitmap_triangle_collision_at_point", + "unique_method_name": "bitmap.triangle_collision_at_point", + "suffix_name": null, + "description": "Tests if a bitmap drawn at `pt` would intersect with a triangle.", + "brief": null, + "return": { + "type": "bool", + "description": "True if a drawn pixel in the cell of the bitmap will\nintersect with `tri` when drawn.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "bmp": { + "type": "bitmap", + "description": "The bitmap to test", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "pt": { + "type": "point_2d", + "description": "The location where the bitmap is drawn", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "tri": { + "type": "triangle", + "description": "The triangle to test", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "bitmap", + "method": "triangle_collision", + "suffix": "at_point", + "group": "physics", + "static": "collisions", + "self": "bmp" + } + }, + { + "signature": "bool bitmap_triangle_collision(bitmap bmp,double x,double y,const triangle &tri);", + "name": "bitmap_triangle_collision", + "method_name": "triangle_collision", + "unique_global_name": "bitmap_triangle_collision", + "unique_method_name": "bitmap.triangle_collision", + "suffix_name": null, + "description": "Tests if a bitmap drawn at `x`, `y` would intersect with a triangle.", + "brief": null, + "return": { + "type": "bool", + "description": "True if a drawn pixel in the bitmap will\nintersect with `tri` when drawn.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "bmp": { + "type": "bitmap", + "description": "The bitmap to test", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "x": { + "type": "double", + "description": "The x location where the bitmap is drawn", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "y": { + "type": "double", + "description": "The y location where the bitmap is drawn", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "tri": { + "type": "triangle", + "description": "The triangle to test", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "bitmap", + "method": "triangle_collision", + "group": "physics", + "static": "collisions", + "self": "bmp" + } + }, + { + "signature": "bool bitmap_triangle_collision(bitmap bmp,int cell,const matrix_2d &translation,const triangle &tri);", + "name": "bitmap_triangle_collision", + "method_name": "triangle_collision", + "unique_global_name": "bitmap_triangle_collision_for_cell_with_translation", + "unique_method_name": "bitmap.triangle_collision_for_cell_with_translation", + "suffix_name": null, + "description": "Tests if a bitmap cell drawn using a passed in translation, will\nintersect with a triangle. You can use this to detect collisions between\nbitmaps and triangles.", + "brief": null, + "return": { + "type": "bool", + "description": "True if a drawn pixel in the cell of the bitmap will\nintersect with `tri` when drawn.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "bmp": { + "type": "bitmap", + "description": "The bitmap to test", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "cell": { + "type": "int", + "description": "The cell of the bitmap to check", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "translation": { + "type": "matrix_2d", + "description": "The matrix used to transfrom the bitmap when drawing", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "tri": { + "type": "triangle", + "description": "The triangle to test", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "bitmap", + "method": "triangle_collision", + "suffix": "for_cell_with_translation", + "group": "physics", + "static": "collisions", + "self": "bmp" + } + }, + { + "signature": "bool bitmap_triangle_collision(bitmap bmp,int cell,const point_2d &pt,const triangle &tri);", + "name": "bitmap_triangle_collision", + "method_name": "triangle_collision", + "unique_global_name": "bitmap_triangle_collision_for_cell_at_point", + "unique_method_name": "bitmap.triangle_collision_for_cell_at_point", + "suffix_name": null, + "description": "Tests if a bitmap cell drawn at `pt` would intersect with a triangle.", + "brief": null, + "return": { + "type": "bool", + "description": "True if a drawn pixel in the cell of the bitmap will\nintersect with `tri` when drawn.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "bmp": { + "type": "bitmap", + "description": "The bitmap to test", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "cell": { + "type": "int", + "description": "The cell of the bitmap to check", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "pt": { + "type": "point_2d", + "description": "The location where the bitmap is drawn", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "tri": { + "type": "triangle", + "description": "The triangle to test", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "bitmap", + "method": "triangle_collision", + "suffix": "for_cell_at_point", + "group": "physics", + "static": "collisions", + "self": "bmp" + } + }, + { + "signature": "bool bitmap_triangle_collision(bitmap bmp,int cell,double x,double y,const triangle &tri);", + "name": "bitmap_triangle_collision", + "method_name": "triangle_collision", + "unique_global_name": "bitmap_triangle_collision_for_cell", + "unique_method_name": "bitmap.triangle_collision_for_cell", + "suffix_name": null, + "description": "Tests if a bitmap cell drawn at `x`, `y` would intersect with a triangle.", + "brief": null, + "return": { + "type": "bool", + "description": "True if a drawn pixel in the bitmap will\nintersect with `tri` when drawn.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "bmp": { + "type": "bitmap", + "description": "The bitmap to test", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "cell": { + "type": "int", + "description": "The cell of the bitmap to check", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "x": { + "type": "double", + "description": "The x location where the bitmap is drawn", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "y": { + "type": "double", + "description": "The y location where the bitmap is drawn", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "tri": { + "type": "triangle", + "description": "The triangle to test", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "bitmap", + "method": "triangle_collision", + "suffix": "for_cell", + "group": "physics", + "static": "collisions", + "self": "bmp" + } + }, + { + "signature": "vector_2d calculate_collision_direction(const quad &collider,const quad &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_quads", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a collider quad\nand a collidee quad relative to the collider quad. If the quads are not\ncolliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the collider quad,\nexpressed as a unit vector. If the quads are not colliding, this function\nwill return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "quad", + "description": "The quad that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "quad", + "description": "The quad that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "quad", + "suffix": "between_quads", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "vector_2d calculate_collision_direction(const circle &collider,const circle &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_circles", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a collider circle\nand a collidee circle relative to the collider circle. If the circles are not\ncolliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the collider circle,\nexpressed as a unit vector. If the circles are not colliding, this function\nwill return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "circle", + "description": "The circle that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "circle", + "description": "The circle that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "circle", + "suffix": "between_circles", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "vector_2d calculate_collision_direction(const circle &collider,const quad &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_circle_and_quad", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a circle\nand a quad relative to the circle. If the circle and\nquad are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the circle,\nexpressed as a unit vector. If the circle and quad are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "circle", + "description": "The circle that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "quad", + "description": "The quad that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "circle", + "suffix": "between_circle_and_quad", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "vector_2d calculate_collision_direction(const circle &collider,const rectangle &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_circle_and_rectangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a circle\nand a rectangle relative to the circle. If the circle and\nrectangle are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the circle,\nexpressed as a unit vector. If the circle and rectangle are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "circle", + "description": "The circle that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "rectangle", + "description": "The rectangle that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "circle", + "suffix": "between_circle_and_rectangle", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "vector_2d calculate_collision_direction(const circle &collider,const sprite collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_circle_and_sprite", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a circle\nand a sprite relative to the circle. If the circle and\nsprite are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the circle,\nexpressed as a unit vector. If the circle and sprite are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "circle", + "description": "The circle that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "sprite", + "description": "The sprite that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "circle", + "suffix": "between_circle_and_sprite", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "vector_2d calculate_collision_direction(const circle &collider,const triangle &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_circle_and_triangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a circle\nand a triangle relative to the circle. If the circle and\ntriangle are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the circle,\nexpressed as a unit vector. If the circle and triangle are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "circle", + "description": "The circle that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "triangle", + "description": "The triangle that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "circle", + "suffix": "between_circle_and_triangle", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "vector_2d calculate_collision_direction(const quad &collider,const circle &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_quad_and_circle", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a quad\nand a circle relative to the quad. If the quad and\ncircle are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the quad,\nexpressed as a unit vector. If the quad and circle are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "quad", + "description": "The quad that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "circle", + "description": "The circle that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "quad", + "suffix": "between_quad_and_circle", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "vector_2d calculate_collision_direction(const quad &collider,const rectangle &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_quad_and_rectangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a quad\nand a rectangle relative to the quad. If the quad and\nrectangle are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the quad,\nexpressed as a unit vector. If the quad and rectangle are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "quad", + "description": "The quad that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "rectangle", + "description": "The rectangle that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "quad", + "suffix": "between_quad_and_rectangle", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "vector_2d calculate_collision_direction(const quad &collider,const sprite collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_quad_and_sprite", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a quad\nand a sprite relative to the quad. If the quad and\nsprite are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the quad,\nexpressed as a unit vector. If the quad and sprite are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "quad", + "description": "The quad that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "sprite", + "description": "The sprite that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "quad", + "suffix": "between_quad_and_sprite", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "vector_2d calculate_collision_direction(const quad &collider,const triangle &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_quad_and_triangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a quad\nand a triangle relative to the quad. If the quad and\ntriangle are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the quad,\nexpressed as a unit vector. If the quad and triangle are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "quad", + "description": "The quad that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "triangle", + "description": "The triangle that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "quad", + "suffix": "between_quad_and_triangle", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "vector_2d calculate_collision_direction(const rectangle &collider,const circle &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_rectangle_and_circle", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a rectangle\nand a circle relative to the rectangle. If the rectangle and\nsprite are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the rectangle,\nexpressed as a unit vector. If the rectangle and circle are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "rectangle", + "description": "The rectangle that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "circle", + "description": "The circle that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "rectangle", + "suffix": "between_rectangle_and_circle", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "vector_2d calculate_collision_direction(const rectangle &collider,const quad &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_rectangle_and_quad", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a rectangle\nand a quad relative to the rectangle. If the rectangle and\nsprite are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the rectangle,\nexpressed as a unit vector. If the rectangle and quad are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "rectangle", + "description": "The rectangle that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "quad", + "description": "The quad that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "rectangle", + "suffix": "between_rectangle_and_quad", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "vector_2d calculate_collision_direction(const rectangle &collider,const rectangle &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_rectangles", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a collider rectangle\nand a collidee rectangle relative to the collider rectangle. If the rectangles are not\ncolliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the collider rectangle,\nexpressed as a unit vector. If the rectangles are not colliding, this function\nwill return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "rectangle", + "description": "The rectangle that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "rectangle", + "description": "The rectangle that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "rectangle", + "suffix": "between_rectangles", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "vector_2d calculate_collision_direction(const rectangle &collider,const sprite collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_rectangle_and_sprite", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a rectangle\nand a sprite relative to the rectangle. If the rectangle and\nsprite are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the rectangle,\nexpressed as a unit vector. If the rectangle and sprite are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "rectangle", + "description": "The rectangle that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "sprite", + "description": "The sprite that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "rectangle", + "suffix": "between_rectangle_and_sprite", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "vector_2d calculate_collision_direction(const rectangle &collider,const triangle &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_rectangle_and_triangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a rectangle\nand a triangle relative to the rectangle. If the rectangle and\nsprite are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the rectangle,\nexpressed as a unit vector. If the rectangle and triangle are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "rectangle", + "description": "The rectangle that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "triangle", + "description": "The triangle that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "rectangle", + "suffix": "between_rectangle_and_triangle", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "vector_2d calculate_collision_direction(const sprite collider,const circle &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_sprite_and_circle", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a sprite\nand a circle relative to the sprite. If the sprite and\ncircle are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the sprite,\nexpressed as a unit vector. If the sprite and circle are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "sprite", + "description": "The sprite that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "circle", + "description": "The circle that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "sprite", + "suffix": "between_sprite_and_circle", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "vector_2d calculate_collision_direction(const sprite collider,const quad &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_sprite_and_quad", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a sprite\nand a quad relative to the sprite. If the sprite and\nquad are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the sprite,\nexpressed as a unit vector. If the sprite and quad are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "sprite", + "description": "The sprite that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "quad", + "description": "The quad that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "sprite", + "suffix": "between_sprite_and_quad", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "vector_2d calculate_collision_direction(const sprite collider,const rectangle &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_sprite_and_rectangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a sprite\nand a rectangle relative to the sprite. If the sprite and\nrectangle are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the sprite,\nexpressed as a unit vector. If the sprite and rectangle are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "sprite", + "description": "The sprite that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "rectangle", + "description": "The rectangle that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "sprite", + "suffix": "between_sprite_and_rectangle", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "vector_2d calculate_collision_direction(const sprite collider,const sprite collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_sprites", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between two sprites\nrelative to the collider sprite. If the sprites are not colliding,\nthis function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the collider sprite,\nexpressed as a unit vector. If the sprites are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "sprite", + "description": "The sprite that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "sprite", + "description": "The sprite that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "sprite", + "suffix": "between_sprites", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "vector_2d calculate_collision_direction(const sprite collider,const triangle &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_sprite_and_triangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a sprite\nand a triangle relative to the sprite. If the sprite and\ntriangle are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the sprite,\nexpressed as a unit vector. If the sprite and triangle are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "sprite", + "description": "The sprite that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "triangle", + "description": "The triangle that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "sprite", + "suffix": "between_sprite_and_triangle", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "vector_2d calculate_collision_direction(const triangle &collider,const circle &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_triangle_and_circle", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a triangle\nand a circle relative to the triangle. If the triangle and\ncircle are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the triangle,\nexpressed as a unit vector. If the triangle and circle are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "triangle", + "description": "The triangle that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "circle", + "description": "The circle that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "triangle", + "suffix": "between_triangle_and_circle", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "vector_2d calculate_collision_direction(const triangle &collider,const quad &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_triangle_and_quad", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a triangle\nand a quad relative to the triangle. If the triangle and\nquad are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the triangle,\nexpressed as a unit vector. If the triangle and quad are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "triangle", + "description": "The triangle that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "quad", + "description": "The quad that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "triangle", + "suffix": "between_triangle_and_quad", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "vector_2d calculate_collision_direction(const triangle &collider,const rectangle &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_triangle_and_rectangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a triangle\nand a rectangle relative to the triangle. If the triangle and\nrectangle are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the triangle,\nexpressed as a unit vector. If the triangle and rectangle are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "triangle", + "description": "The triangle that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "rectangle", + "description": "The rectangle that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "triangle", + "suffix": "between_triangle_and_rectangle", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "vector_2d calculate_collision_direction(const triangle &collider,const sprite collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_triangle_and_sprite", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a triangle\nand a sprite relative to the triangle. If the triangle and\nsprite are not colliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the triangle,\nexpressed as a unit vector. If the triangle and sprite are not colliding,\nthis function will return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "triangle", + "description": "The triangle that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "sprite", + "description": "The sprite that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "triangle", + "suffix": "between_triangle_and_sprite", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "vector_2d calculate_collision_direction(const triangle &collider,const triangle &collidee);", + "name": "calculate_collision_direction", + "method_name": null, + "unique_global_name": "calculate_collision_direction_between_triangles", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns the direction of the collision between a collider triangle\nand a collidee triangle relative to the collider triangle. If the triangles are not\ncolliding, this function will return a zero vector.", + "brief": null, + "return": { + "type": "vector_2d", + "description": "The direction of the collision relative to the collider triangle,\nexpressed as a unit vector. If the triangles are not colliding, this function\nwill return a zero vector.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "triangle", + "description": "The triangle that is colliding", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "triangle", + "description": "The triangle that is being collided with", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "triangle", + "suffix": "between_triangles", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "bool resolve_collision(quad &collider,const quad &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_quads", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a collider quad and a collidee quad by moving the\ncollider quad to the edge of the collidee quad. The direction of the\nresolution is determined by the `direction` parameter. If the quads are not\ncolliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the quads are colliding and the collision was resolved,\nfalse if the quads are not colliding\n\n@atrribute class quad", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "quad", + "description": "The quad which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "quad", + "description": "The quad which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the collider quad,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_quads", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "bool resolve_collision(circle &collider,const circle &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_circles", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a collider circle and a collidee circle by moving the\ncollider circle to the edge of the collidee circle. The direction of the\nresolution is determined by the `direction` parameter. If the circles are not\ncolliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the circles are colliding and the collision was resolved,\nfalse if the circles are not colliding\n\n@atrribute class circle", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "circle", + "description": "The circle which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "circle", + "description": "The circle which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the collider circle,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_circles", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "bool resolve_collision(circle &collider,const quad &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_circle_and_quad", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a circle and a quad by moving the\ncircle to the edge of the quad. The direction of the\nresolution is determined by the `direction` parameter. If the circle and\nquad are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the circle and quad are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class circle", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "circle", + "description": "The circle which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "quad", + "description": "The quad which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the circle,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_circle_and_quad", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "bool resolve_collision(circle &collider,const rectangle &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_circle_and_rectangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a circle and a rectangle by moving the\ncircle to the edge of the rectangle. The direction of the\nresolution is determined by the `direction` parameter. If the circle and\nrectangle are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the circle and rectangle are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class circle", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "circle", + "description": "The circle which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "rectangle", + "description": "The rectangle which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the circle,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_circle_and_rectangle", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "bool resolve_collision(circle &collider,const sprite collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_circle_and_sprite", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a circle and a sprite by moving the\ncircle to the edge of the sprite. The direction of the\nresolution is determined by the `direction` parameter. If the circle and\nsprite are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the circle and sprite are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class circle", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "circle", + "description": "The circle which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "sprite", + "description": "The sprite which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the circle,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_circle_and_sprite", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "bool resolve_collision(circle &collider,const triangle &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_circle_and_triangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a circle and a triangle by moving the\ncircle to the edge of the triangle. The direction of the\nresolution is determined by the `direction` parameter. If the circle and\ntriangle are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the circle and triangle are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class circle", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "circle", + "description": "The circle which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "triangle", + "description": "The triangle which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the circle,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_circle_and_triangle", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "bool resolve_collision(quad &collider,const circle &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_quad_and_circle", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a quad and a circle by moving the\nquad to the edge of the circle. The direction of the\nresolution is determined by the `direction` parameter. If the quad and\ncircle are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the quad and circle are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class quad", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "quad", + "description": "The quad which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "circle", + "description": "The circle which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the quad,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_quad_and_circle", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "bool resolve_collision(quad &collider,const rectangle &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_quad_and_rectangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a quad and a rectangle by moving the\nquad to the edge of the rectangle. The direction of the\nresolution is determined by the `direction` parameter. If the quad and\nrectangle are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the quad and rectangle are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class quad", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "quad", + "description": "The quad which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "rectangle", + "description": "The rectangle which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the quad,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_quad_and_rectangle", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "bool resolve_collision(quad &collider,const sprite collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_quad_and_sprite", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a quad and a sprite by moving the\nquad to the edge of the sprite. The direction of the\nresolution is determined by the `direction` parameter. If the quad and\nsprite are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the quad and sprite are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class quad", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "quad", + "description": "The quad which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "sprite", + "description": "The sprite which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the quad,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_quad_and_sprite", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "bool resolve_collision(quad &collider,const triangle &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_quad_and_triangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a quad and a triangle by moving the\nquad to the edge of the triangle. The direction of the\nresolution is determined by the `direction` parameter. If the quad and\ntriangle are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the quad and triangle are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class quad", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "quad", + "description": "The quad which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "triangle", + "description": "The triangle which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the quad,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_quad_and_triangle", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "bool resolve_collision(rectangle &collider,const circle &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_rectangle_and_circle", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a rectangle and a circle by moving the\nrectangle to the edge of the circle. The direction of the\nresolution is determined by the `direction` parameter. If the rectangle and\ncircle are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the rectangle and circle are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class rectangle", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "rectangle", + "description": "The rectangle which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "circle", + "description": "The circle which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the rectangle,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_rectangle_and_circle", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "bool resolve_collision(rectangle &collider,const quad &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_rectangle_and_quad", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a rectangle and a quad by moving the\nrectangle to the edge of the quad. The direction of the\nresolution is determined by the `direction` parameter. If the rectangle and\nquad are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the rectangle and quad are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class rectangle", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "rectangle", + "description": "The rectangle which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "quad", + "description": "The quad which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the rectangle,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_rectangle_and_quad", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "bool resolve_collision(rectangle &collider,const rectangle &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_rectangles", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between two rectangles by moving the\ncollider rectangle to the edge of the collidee rectangle. The direction of the\nresolution is determined by the `direction` parameter. If the rectangles are not\ncolliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the rectangles are colliding and the collision was resolved,\nfalse if the rectangles are not colliding\n\n@atrribute class rectangle", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "rectangle", + "description": "The rectangle which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "rectangle", + "description": "The rectangle which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the collider rectangle,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_rectangles", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "bool resolve_collision(rectangle &collider,const sprite collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_rectangle_and_sprite", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a rectangle and a sprite by moving the\nrectangle to the edge of the sprite. The direction of the\nresolution is determined by the `direction` parameter. If the rectangle and\nsprite are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the rectangle and sprite are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class rectangle", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "rectangle", + "description": "The rectangle which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "sprite", + "description": "The sprite which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the rectangle,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_rectangle_and_sprite", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "bool resolve_collision(rectangle &collider,const triangle &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_rectangle_and_triangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a rectangle and a triangle by moving the\nrectangle to the edge of the triangle. The direction of the\nresolution is determined by the `direction` parameter. If the rectangle and\ntriangle are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the rectangle and triangle are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class rectangle", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "rectangle", + "description": "The rectangle which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "triangle", + "description": "The triangle which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the rectangle,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_rectangle_and_triangle", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "bool resolve_collision(sprite collider,const circle &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_sprite_and_circle", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a sprite and a circle by moving the\nsprite to the edge of the circle. The direction of the\nresolution is determined by the `direction` parameter. If the sprite and\ncircle are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the sprite and circle are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class sprite", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "sprite", + "description": "The sprite which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "circle", + "description": "The circle which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the sprite,\nexpressed as a vector. If a zero vector is passed,\nthe function will not resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_sprite_and_circle", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "bool resolve_collision(sprite collider,const quad &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_sprite_and_quad", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a sprite and a quad by moving the\nsprite to the edge of the quad. The direction of the\nresolution is determined by the `direction` parameter. If the sprite and\nquad are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the sprite and quad are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class sprite", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "sprite", + "description": "The sprite which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "quad", + "description": "The quad which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the sprite,\nexpressed as a vector. If a zero vector is passed,\nthe function will not resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_sprite_and_quad", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "bool resolve_collision(sprite collider,const rectangle &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_sprite_and_rectangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a sprite and a rectangle by moving the\nsprite to the edge of the rectangle. The direction of the\nresolution is determined by the `direction` parameter. If the sprite and\nrectangle are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the sprite and rectangle are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class sprite", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "sprite", + "description": "The sprite which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "rectangle", + "description": "The rectangle which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the sprite,\nexpressed as a vector. If a zero vector is passed,\nthe function will not resolve the collision.", "is_pointer": false, "is_const": true, "is_reference": true, @@ -9228,12 +12604,457 @@ } }, "attributes": { - "class": "bitmap", - "method": "rectangle_collision", - "suffix": "for_cell", + "suffix": "between_sprite_and_rectangle", "group": "physics", - "static": "collisions", - "self": "bmp" + "static": "collisions" + } + }, + { + "signature": "bool resolve_collision(sprite collider,const sprite collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_sprites", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between two sprites by moving the\ncollider sprite to the edge of the collidee sprite. The direction of the\nresolution is determined by the `direction` parameter. If the sprites are not\ncolliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the sprites are colliding and the collision was resolved,\nfalse if the sprites are not colliding\n\n@atrribute class sprite", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "sprite", + "description": "The sprite which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "sprite", + "description": "The sprite which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the collider sprite,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_sprites", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "bool resolve_collision(sprite collider,const triangle &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_sprite_and_triangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a sprite and a triangle by moving the\nsprite to the edge of the triangle. The direction of the\nresolution is determined by the `direction` parameter. If the sprite and\ntriangle are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the sprite and triangle are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class sprite", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "sprite", + "description": "The sprite which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "triangle", + "description": "The triangle which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the sprite,\nexpressed as a vector. If a zero vector is passed,\nthe function will not resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_sprite_and_triangle", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "bool resolve_collision(triangle &collider,const circle &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_triangle_and_circle", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a triangle and a circle by moving the\ntriangle to the edge of the circle. The direction of the\nresolution is determined by the `direction` parameter. If the triangle and\ncircle are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the triangle and circle are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class triangle", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "triangle", + "description": "The triangle which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "circle", + "description": "The circle which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the triangle,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_triangle_and_circle", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "bool resolve_collision(triangle &collider,const quad &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_triangle_and_quad", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a triangle and a quad by moving the\ntriangle to the edge of the quad. The direction of the\nresolution is determined by the `direction` parameter. If the triangle and\nquad are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the triangle and quad are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class triangle", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "triangle", + "description": "The triangle which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "quad", + "description": "The quad which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the triangle,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_triangle_and_quad", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "bool resolve_collision(triangle &collider,const rectangle &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_triangle_and_rectangle", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a triangle and a rectangle by moving the\ntriangle to the edge of the rectangle. The direction of the\nresolution is determined by the `direction` parameter. If the triangle and\nrectangle are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the triangle and rectangle are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class triangle", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "triangle", + "description": "The triangle which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "rectangle", + "description": "The rectangle which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the triangle,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_triangle_and_rectangle", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "bool resolve_collision(triangle &collider,const sprite collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_triangle_and_sprite", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a triangle and a sprite by moving the\ntriangle to the edge of the sprite. The direction of the\nresolution is determined by the `direction` parameter. If the triangle and\nsprite are not colliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the triangle and sprite are colliding and the collision\nwas resolved, false if they are not colliding\n\n@atrribute class triangle", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "triangle", + "description": "The triangle which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "sprite", + "description": "The sprite which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the triangle,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_triangle_and_sprite", + "group": "physics", + "static": "collisions" + } + }, + { + "signature": "bool resolve_collision(triangle &collider,const triangle &collidee,const vector_2d &direction);", + "name": "resolve_collision", + "method_name": null, + "unique_global_name": "resolve_collision_between_triangles", + "unique_method_name": null, + "suffix_name": null, + "description": "Resolves the collision between a collider triangle and a collidee triangle by moving the\ncollider triangle to the edge of the collidee triangle. The direction of the\nresolution is determined by the `direction` parameter. If the triangles are not\ncolliding, this function will return false.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the triangles are colliding and the collision was resolved,\nfalse if the triangles are not colliding\n\n@atrribute class triangle", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "collider": { + "type": "triangle", + "description": "The triangle which will be altered if there is a collision", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "collidee": { + "type": "triangle", + "description": "The triangle which will not be altered", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "direction": { + "type": "vector_2d", + "description": "The direction of the collision relative to the collider triangle,\nexpressed as a vector. If a zero vector is passed, the function will\nnot resolve the collision.", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "between_triangles", + "group": "physics", + "static": "collisions" } }, { @@ -9280,9 +13101,88 @@ "is_vector": false, "type_parameter": null }, - "x": { - "type": "double", - "description": "The x location where the bitmap is drawn", + "x": { + "type": "double", + "description": "The x location where the bitmap is drawn", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "y": { + "type": "double", + "description": "The y location where the bitmap is drawn", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "sprite", + "method": "bitmap_collision", + "group": "physics", + "static": "collisions", + "self": "s" + } + }, + { + "signature": "bool sprite_bitmap_collision(sprite s,bitmap bmp,int cell,const point_2d &pt);", + "name": "sprite_bitmap_collision", + "method_name": "bitmap_collision", + "unique_global_name": "sprite_bitmap_collision_with_cell_at_point", + "unique_method_name": "sprite.bitmap_collision_with_cell_at_point", + "suffix_name": null, + "description": "Tests if a sprite will collide with a bitmap drawn at the indicated\nlocation.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the sprite collides with the bitmap cell when drawn\nat the indicated location.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "s": { + "type": "sprite", + "description": "The sprite to test", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "bmp": { + "type": "bitmap", + "description": "The bitmap to test", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "cell": { + "type": "int", + "description": "The cell of the bitmap to check", "is_pointer": false, "is_const": false, "is_reference": false, @@ -9293,12 +13193,12 @@ "is_vector": false, "type_parameter": null }, - "y": { - "type": "double", - "description": "The y location where the bitmap is drawn", + "pt": { + "type": "point_2d", + "description": "The point where the bitmap is drawn", "is_pointer": false, - "is_const": false, - "is_reference": false, + "is_const": true, + "is_reference": true, "is_array": false, "array_dimension_sizes": [ @@ -9310,17 +13210,18 @@ "attributes": { "class": "sprite", "method": "bitmap_collision", + "suffix": "with_cell_at_point", "group": "physics", "static": "collisions", "self": "s" } }, { - "signature": "bool sprite_bitmap_collision(sprite s,bitmap bmp,int cell,const point_2d &pt);", + "signature": "bool sprite_bitmap_collision(sprite s,bitmap bmp,int cell,double x,double y);", "name": "sprite_bitmap_collision", "method_name": "bitmap_collision", - "unique_global_name": "sprite_bitmap_collision_with_cell_at_point", - "unique_method_name": "sprite.bitmap_collision_with_cell_at_point", + "unique_global_name": "sprite_bitmap_collision_with_cell", + "unique_method_name": "sprite.bitmap_collision_with_cell", "suffix_name": null, "description": "Tests if a sprite will collide with a bitmap drawn at the indicated\nlocation.", "brief": null, @@ -9372,12 +13273,25 @@ "is_vector": false, "type_parameter": null }, - "pt": { - "type": "point_2d", - "description": "The point where the bitmap is drawn", + "x": { + "type": "double", + "description": "The x location where the bitmap is drawn", "is_pointer": false, - "is_const": true, - "is_reference": true, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "y": { + "type": "double", + "description": "The y location where the bitmap is drawn", + "is_pointer": false, + "is_const": false, + "is_reference": false, "is_array": false, "array_dimension_sizes": [ @@ -9389,24 +13303,24 @@ "attributes": { "class": "sprite", "method": "bitmap_collision", - "suffix": "with_cell_at_point", + "suffix": "with_cell", "group": "physics", "static": "collisions", "self": "s" } }, { - "signature": "bool sprite_bitmap_collision(sprite s,bitmap bmp,int cell,double x,double y);", - "name": "sprite_bitmap_collision", - "method_name": "bitmap_collision", - "unique_global_name": "sprite_bitmap_collision_with_cell", - "unique_method_name": "sprite.bitmap_collision_with_cell", + "signature": "bool sprite_circle_collision(sprite s,const circle &c);", + "name": "sprite_circle_collision", + "method_name": "circle_collision", + "unique_global_name": "sprite_circle_collision", + "unique_method_name": "sprite.circle_collision", "suffix_name": null, - "description": "Tests if a sprite will collide with a bitmap drawn at the indicated\nlocation.", + "description": "Tests if a sprite is drawn within an given area (circle).", "brief": null, "return": { "type": "bool", - "description": "True if the sprite collides with the bitmap cell when drawn\nat the indicated location.", + "description": "True if the sprite it drawn in the circle area", "is_pointer": false, "is_reference": false, "is_vector": false, @@ -9426,51 +13340,12 @@ "is_vector": false, "type_parameter": null }, - "bmp": { - "type": "bitmap", - "description": "The bitmap to test", - "is_pointer": false, - "is_const": false, - "is_reference": false, - "is_array": false, - "array_dimension_sizes": [ - - ], - "is_vector": false, - "type_parameter": null - }, - "cell": { - "type": "int", - "description": "The cell of the bitmap to check", - "is_pointer": false, - "is_const": false, - "is_reference": false, - "is_array": false, - "array_dimension_sizes": [ - - ], - "is_vector": false, - "type_parameter": null - }, - "x": { - "type": "double", - "description": "The x location where the bitmap is drawn", - "is_pointer": false, - "is_const": false, - "is_reference": false, - "is_array": false, - "array_dimension_sizes": [ - - ], - "is_vector": false, - "type_parameter": null - }, - "y": { - "type": "double", - "description": "The y location where the bitmap is drawn", + "c": { + "type": "circle", + "description": "The circle to check", "is_pointer": false, - "is_const": false, - "is_reference": false, + "is_const": true, + "is_reference": true, "is_array": false, "array_dimension_sizes": [ @@ -9481,8 +13356,7 @@ }, "attributes": { "class": "sprite", - "method": "bitmap_collision", - "suffix": "with_cell", + "method": "circle_collision", "group": "physics", "static": "collisions", "self": "s" @@ -9542,7 +13416,7 @@ } }, { - "signature": "bool sprite_point_collision(sprite s,const point_2d& pt);", + "signature": "bool sprite_point_collision(sprite s,const point_2d &pt);", "name": "sprite_point_collision", "method_name": "point_collision", "unique_global_name": "sprite_point_collision", @@ -9595,7 +13469,60 @@ } }, { - "signature": "bool sprite_ray_collision(sprite s,const point_2d& origin,const vector_2d& heading);", + "signature": "bool sprite_quad_collision(sprite s,const quad &q);", + "name": "sprite_quad_collision", + "method_name": "quad_collision", + "unique_global_name": "sprite_quad_collision", + "unique_method_name": "sprite.quad_collision", + "suffix_name": null, + "description": "Tests if a sprite is drawn within an given area (quad).", + "brief": null, + "return": { + "type": "bool", + "description": "True if the sprite it drawn in the quad area", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "s": { + "type": "sprite", + "description": "The sprite to test", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "q": { + "type": "quad", + "description": "The quad to check", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "sprite", + "method": "quad_collision", + "group": "physics", + "static": "collisions", + "self": "s" + } + }, + { + "signature": "bool sprite_ray_collision(sprite s,const point_2d &origin,const vector_2d &heading);", "name": "sprite_ray_collision", "method_name": "ray_collision", "unique_global_name": "sprite_ray_collision", @@ -9661,7 +13588,7 @@ } }, { - "signature": "bool sprite_rectangle_collision(sprite s,const rectangle& rect);", + "signature": "bool sprite_rectangle_collision(sprite s,const rectangle &rect);", "name": "sprite_rectangle_collision", "method_name": "rectangle_collision", "unique_global_name": "sprite_rectangle_collision", @@ -9712,6 +13639,59 @@ "static": "collisions", "self": "s" } + }, + { + "signature": "bool sprite_triangle_collision(sprite s,const triangle &t);", + "name": "sprite_triangle_collision", + "method_name": "triangle_collision", + "unique_global_name": "sprite_triangle_collision", + "unique_method_name": "sprite.triangle_collision", + "suffix_name": null, + "description": "Tests if a sprite is drawn within an given area (triangle).", + "brief": null, + "return": { + "type": "bool", + "description": "True if the sprite it drawn in the triangle area", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "s": { + "type": "sprite", + "description": "The sprite to test", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "t": { + "type": "triangle", + "description": "The triangle to check", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "class": "sprite", + "method": "triangle_collision", + "group": "physics", + "static": "collisions", + "self": "s" + } } ], "typedefs": [ @@ -9731,7 +13711,7 @@ "group": "color", "brief": "SplashKit simplifies color manipulation in graphical applications for developers, ensuring ease of use and efficiency.", "description": null, - "parsed_at": 1738487280, + "parsed_at": 1740904850, "path": "coresdk/src/coresdk/color.h", "functions": [ { @@ -14931,7 +18911,7 @@ "group": "graphics", "brief": null, "description": null, - "parsed_at": 1738487281, + "parsed_at": 1740904850, "path": "coresdk/src/coresdk/drawing_options.h", "functions": [ { @@ -16295,7 +20275,7 @@ "group": "graphics", "brief": null, "description": null, - "parsed_at": 1738487282, + "parsed_at": 1740904851, "path": "coresdk/src/coresdk/ellipse_drawing.h", "functions": [ { @@ -18390,7 +22370,7 @@ "group": "geometry", "brief": "SplashKit's geometry functions assist with geometry-related computations.", "description": null, - "parsed_at": 1738487282, + "parsed_at": 1740904852, "path": "coresdk/src/coresdk/geometry.h", "functions": [ { @@ -18522,7 +22502,7 @@ "group": "graphics", "brief": null, "description": null, - "parsed_at": 1738487282, + "parsed_at": 1740904852, "path": "coresdk/src/coresdk/graphics.h", "functions": [ { @@ -19098,7 +23078,7 @@ "group": "graphics", "brief": "SplashKit Images allow drawing of bitmaps and sprites to graphic windows.", "description": null, - "parsed_at": 1738487283, + "parsed_at": 1740905669, "path": "coresdk/src/coresdk/images.h", "functions": [ { @@ -21623,7 +25603,7 @@ "group": "input", "brief": "Input handles user interaction and events such as keypresses.", "description": null, - "parsed_at": 1738487283, + "parsed_at": 1740904854, "path": "coresdk/src/coresdk/input.h", "functions": [ { @@ -21716,7 +25696,7 @@ "group": "interface", "brief": "SplashKit Interface provides functions to create user interfaces, with elements such as draggable panels, buttons and text boxes.", "description": "SplashKit`s interface library provides various functions for creating\npanels, and drawing interface elements such as buttons, text boxes, and more", - "parsed_at": 1738484103, + "parsed_at": 1740904855, "path": "coresdk/src/coresdk/interface.h", "functions": [ { @@ -25158,7 +29138,7 @@ "group": "json", "brief": "SplashKit Json allows you to create and read JSON objects.", "description": "Splashkit's JSON library allows you to easily create or read JSON objects and\nmanipulate them to/from a JSON string or from a file containing a JSON\nstring. Create a new JSON object with a call to `create_json()` and\nread or write data to it by calling methods like\n`json_add_string(json j, string key, string value)` and\n`json_read_string(json j, string key)`.", - "parsed_at": 1738487284, + "parsed_at": 1740904856, "path": "coresdk/src/coresdk/json.h", "functions": [ { @@ -26910,7 +30890,7 @@ "group": "input", "brief": null, "description": null, - "parsed_at": 1738487285, + "parsed_at": 1740904858, "path": "coresdk/src/coresdk/keyboard_input.h", "functions": [ { @@ -27908,7 +31888,7 @@ "group": "graphics", "brief": null, "description": null, - "parsed_at": 1738487286, + "parsed_at": 1740904858, "path": "coresdk/src/coresdk/line_drawing.h", "functions": [ { @@ -29447,7 +33427,7 @@ "group": "geometry", "brief": null, "description": null, - "parsed_at": 1738487286, + "parsed_at": 1740904859, "path": "coresdk/src/coresdk/line_geometry.h", "functions": [ { @@ -30321,7 +34301,7 @@ "group": "logging", "brief": "SplashKit Logging facilitates streamlined logging with customizable severity levels and modes.", "description": "SplashKit Logging module, allows users to initialize a custom logger with specified log levels and modes (console, file, or both). \nThe module provides functions to log messages at different severity levels (INFO, DEBUG, WARNING, ERROR, FATAL) with timestamped entries. \nUsers can close the logging process as needed, and the module handles customization for console and file output.", - "parsed_at": 1740541627, + "parsed_at": 1740904859, "path": "coresdk/src/coresdk/logging.h", "functions": [ { @@ -30570,7 +34550,7 @@ "group": "physics", "brief": "Provides matrix functions to work on 2d coordinates.", "description": null, - "parsed_at": 1738487287, + "parsed_at": 1740904859, "path": "coresdk/src/coresdk/matrix_2d.h", "functions": [ { @@ -31308,7 +35288,7 @@ "group": "input", "brief": null, "description": null, - "parsed_at": 1738487287, + "parsed_at": 1740904860, "path": "coresdk/src/coresdk/mouse_input.h", "functions": [ { @@ -31795,7 +35775,7 @@ "group": "audio", "brief": null, "description": null, - "parsed_at": 1738484104, + "parsed_at": 1740904860, "path": "coresdk/src/coresdk/music.h", "functions": [ { @@ -32825,7 +36805,7 @@ "group": "networking", "brief": "SplashKit's network-related functions allow you to communicate data\nacross networks.", "description": null, - "parsed_at": 1740541628, + "parsed_at": 1740904862, "path": "coresdk/src/coresdk/networking.h", "functions": [ { @@ -33852,6 +37832,43 @@ "static": "networking" } }, + { + "signature": "string dec_to_ipv4(unsigned int ip);", + "name": "dec_to_ipv4", + "method_name": null, + "unique_global_name": "dec_to_ipv4", + "unique_method_name": null, + "suffix_name": null, + "description": "Decodes the supplied unsigned 32-bit integer into its ipv4 address form\ne.g. 2130706433 into 127.0.0.1", + "brief": "Decodes an integer into its ipv4 address representation", + "return": { + "type": "string", + "description": "ipv4 address string in X.X.X.X format", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "ip": { + "type": "unsigned int", + "description": "integer to be decoded", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "group": "networking", + "static": "networking" + } + }, { "signature": "connection fetch_new_connection(server_socket server);", "name": "fetch_new_connection", @@ -34283,43 +38300,6 @@ "static": "networking" } }, - { - "signature": "string ipv4_to_str(unsigned int ip);", - "name": "ipv4_to_str", - "method_name": null, - "unique_global_name": "ipv4_to_str", - "unique_method_name": null, - "suffix_name": null, - "description": "Decodes the supplied unsigned 32 bit integer into it's ipv4 address form\ne.g. 2130706433 into 127.0.0.1", - "brief": "Decodes an integer into it's ipv4 address representation", - "return": { - "type": "string", - "description": "ipv4 address string in X.X.X.X format", - "is_pointer": false, - "is_reference": false, - "is_vector": false, - "type_parameter": null - }, - "parameters": { - "ip": { - "type": "unsigned int", - "description": "integer to be decoded", - "is_pointer": false, - "is_const": false, - "is_reference": false, - "is_array": false, - "array_dimension_sizes": [ - - ], - "is_vector": false, - "type_parameter": null - } - }, - "attributes": { - "group": "networking", - "static": "networking" - } - }, { "signature": "bool is_connection_open(connection con);", "name": "is_connection_open", @@ -36006,7 +39986,7 @@ "group": "physics", "brief": null, "description": null, - "parsed_at": 1738487288, + "parsed_at": 1740904862, "path": "coresdk/src/coresdk/physics.h", "functions": [ @@ -36028,7 +40008,7 @@ "group": "graphics", "brief": null, "description": null, - "parsed_at": 1738487289, + "parsed_at": 1740904863, "path": "coresdk/src/coresdk/point_drawing.h", "functions": [ { @@ -37348,7 +41328,7 @@ "group": "geometry", "brief": null, "description": null, - "parsed_at": 1740541629, + "parsed_at": 1740904863, "path": "coresdk/src/coresdk/point_geometry.h", "functions": [ { @@ -38372,7 +42352,7 @@ "group": "geometry", "brief": null, "description": null, - "parsed_at": 1740541629, + "parsed_at": 1740904864, "path": "coresdk/src/coresdk/quad_geometry.h", "functions": [ { @@ -38733,6 +42713,159 @@ "static": "geometry" } }, + { + "signature": "bool quad_ray_intersection(const point_2d &origin,const vector_2d &heading,const quad &q);", + "name": "quad_ray_intersection", + "method_name": null, + "unique_global_name": "quad_ray_intersection", + "unique_method_name": null, + "suffix_name": null, + "description": "Detects if a ray intersects a quad.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the ray intersects the quad, false otherwise", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "origin": { + "type": "point_2d", + "description": "The starting point of the ray", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "heading": { + "type": "vector_2d", + "description": "The direction of the ray as a vector", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "q": { + "type": "quad", + "description": "The quad to check for intersection", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "group": "geometry", + "static": "geometry" + } + }, + { + "signature": "bool quad_ray_intersection(const point_2d &origin,const vector_2d &heading,const quad &q,point_2d &hit_point,double &hit_distance);", + "name": "quad_ray_intersection", + "method_name": null, + "unique_global_name": "quad_ray_intersection_with_hit_point_and_distance", + "unique_method_name": null, + "suffix_name": null, + "description": "Detects if a ray intersects a quad. If an intersection is found, the\n`hit_point` and `hit_distance` are set to the point of intersection and the\ndistance from the ray's origin to the intersection point. If the ray's `origin`\nis contained within the quad, `hit_point` is set to the `origin` and `hit_distance`\nis set to 0. If no intersection is found, `hit_point` and `hit_distance` are not modified.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the ray intersects the quad, false otherwise", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "origin": { + "type": "point_2d", + "description": "The starting point of the ray", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "heading": { + "type": "vector_2d", + "description": "The direction of the ray as a vector", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "q": { + "type": "quad", + "description": "The quad to check for intersection", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "hit_point": { + "type": "point_2d", + "description": "The point to set to where the ray intersects the quad", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "hit_distance": { + "type": "double", + "description": "The double to set to the distance from the ray's origin to\nthe intersection point", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "with_hit_point_and_distance", + "group": "geometry", + "static": "geometry" + } + }, { "signature": "bool quads_intersect(const quad &q1,const quad &q2);", "name": "quads_intersect", @@ -38901,7 +43034,7 @@ "group": "utilities", "brief": "SplashKit random provides a simple implementation of random.", "description": "The SplashKit`s random library provides two rnd methods, a `rnd()` which generates\na random number between 0 and 1, and `rnd(int ubound)` which\ngenerates a random number between 0 and the value scpeficied in `ubound`.", - "parsed_at": 1738487290, + "parsed_at": 1740904864, "path": "coresdk/src/coresdk/random.h", "functions": [ { @@ -39035,7 +43168,7 @@ "group": "raspberry", "brief": "Splashkit allows you to read and write to the GPIO pins on the Raspberry Pi.", "description": null, - "parsed_at": 1729338085, + "parsed_at": 1740904864, "path": "coresdk/src/coresdk/raspi_gpio.h", "functions": [ { @@ -39434,6 +43567,182 @@ "static": "raspberry" } }, + { + "signature": "int raspi_spi_close(int handle);", + "name": "raspi_spi_close", + "method_name": null, + "unique_global_name": "raspi_spi_close", + "unique_method_name": null, + "suffix_name": null, + "description": "This function closes SPI communication on a particular channel.", + "brief": "Closes SPI communication on selected channel. It will return -1 if not using Raspberry Pi.", + "return": { + "type": "int", + "description": "A value indicating success or failure.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "handle": { + "type": "int", + "description": "A reference to the specific SPI connection to close.", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "group": "raspberry", + "static": "raspberry" + } + }, + { + "signature": "int raspi_spi_open(int channel,int speed,int spi_flags);", + "name": "raspi_spi_open", + "method_name": null, + "unique_global_name": "raspi_spi_open", + "unique_method_name": null, + "suffix_name": null, + "description": "This function opens SPI communication on a particular channel. It will return -1 if not using Raspberry Pi.", + "brief": "Opens SPI communication on selected channel.", + "return": { + "type": "int", + "description": "The handle referencing this particular connection.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "channel": { + "type": "int", + "description": "The SPI channel to use.", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "speed": { + "type": "int", + "description": "The speed of data transfer (in baud).", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "spi_flags": { + "type": "int", + "description": "Optional flags for the SPI modes and settings.", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "group": "raspberry", + "static": "raspberry" + } + }, + { + "signature": "int raspi_spi_transfer(int handle,string sendBuf,string recvBuf,int count);", + "name": "raspi_spi_transfer", + "method_name": null, + "unique_global_name": "raspi_spi_transfer", + "unique_method_name": null, + "suffix_name": null, + "description": "This function transfers data through SPI, it sends data from sendBuf and receives it into recvBuf.", + "brief": "Transfers data on specified SPI connection. It will return -1 if not using Raspberry Pi.", + "return": { + "type": "int", + "description": "The number of bytes that have actually been transfered.", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "handle": { + "type": "int", + "description": "The reference for a specific SPI connection.", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "sendBuf": { + "type": "string", + "description": "The memory buffer for sending data.", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "recvBuf": { + "type": "string", + "description": "The memory buffer for receiving data.", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "count": { + "type": "int", + "description": "The number of bytes to be transferred.", + "is_pointer": false, + "is_const": false, + "is_reference": false, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "group": "raspberry", + "static": "raspberry" + } + }, { "signature": "void raspi_write(pins pin,pin_values value);", "name": "raspi_write", @@ -39502,7 +43811,7 @@ "group": "graphics", "brief": null, "description": null, - "parsed_at": 1738487291, + "parsed_at": 1740904865, "path": "coresdk/src/coresdk/rectangle_drawing.h", "functions": [ { @@ -42395,7 +46704,7 @@ "group": "geometry", "brief": null, "description": null, - "parsed_at": 1740541630, + "parsed_at": 1740904866, "path": "coresdk/src/coresdk/rectangle_geometry.h", "functions": [ { @@ -42724,6 +47033,56 @@ "static": "geometry" } }, + { + "signature": "bool rectangle_circle_intersect(const rectangle &rect,const circle &c);", + "name": "rectangle_circle_intersect", + "method_name": null, + "unique_global_name": "rectangle_circle_intersect", + "unique_method_name": null, + "suffix_name": null, + "description": "Detects if a rectangle intersects with a circle.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the rectangle and circle intersect, false otherwise", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "rect": { + "type": "rectangle", + "description": "The rectangle to test", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "c": { + "type": "circle", + "description": "The circle to test", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "group": "geometry", + "static": "geometry" + } + }, { "signature": "rectangle rectangle_from(const point_2d pt,const double width,const double height);", "name": "rectangle_from", @@ -43002,6 +47361,159 @@ "static": "geometry" } }, + { + "signature": "bool rectangle_ray_intersection(const point_2d &origin,const vector_2d &heading,const rectangle &rect);", + "name": "rectangle_ray_intersection", + "method_name": null, + "unique_global_name": "rectangle_ray_intersection", + "unique_method_name": null, + "suffix_name": null, + "description": "Detects if a ray intersects a rectangle.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the ray intersects the rectangle, false otherwise", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "origin": { + "type": "point_2d", + "description": "The starting point of the ray", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "heading": { + "type": "vector_2d", + "description": "The direction of the ray as a vector", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "rect": { + "type": "rectangle", + "description": "The rectangle to check for intersection", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "group": "geometry", + "static": "geometry" + } + }, + { + "signature": "bool rectangle_ray_intersection(const point_2d &origin,const vector_2d &heading,const rectangle &rect,point_2d &hit_point,double &hit_distance);", + "name": "rectangle_ray_intersection", + "method_name": null, + "unique_global_name": "rectangle_ray_intersection_with_hit_point_and_distance", + "unique_method_name": null, + "suffix_name": null, + "description": "Detects if a ray intersects a rectangle. If an intersection is found, the\n`hit_point` and `hit_distance` are set to the point of intersection and the\ndistance from the ray's origin to the intersection point. If the ray's `origin`\nis contained within the rectangle, `hit_point` is set to the `origin` and `hit_distance`\nis set to 0. If no intersection is found, `hit_point` and `hit_distance` are not modified.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the ray intersects the rectangle, false otherwise", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "origin": { + "type": "point_2d", + "description": "The starting point of the ray", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "heading": { + "type": "vector_2d", + "description": "The direction of the ray as a vector", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "rect": { + "type": "rectangle", + "description": "The rectangle to check for intersection", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "hit_point": { + "type": "point_2d", + "description": "The point to set to where the ray intersects the rectangle", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "hit_distance": { + "type": "double", + "description": "The double to set to the distance from the ray's origin to\nthe intersection point", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "with_hit_point_and_distance", + "group": "geometry", + "static": "geometry" + } + }, { "signature": "double rectangle_right(const rectangle &rect);", "name": "rectangle_right", @@ -43181,7 +47693,7 @@ "group": "resources", "brief": "SplashKit resource functions allow you to locate resources in a\nproject's `Resources` folder.", "description": null, - "parsed_at": 1738487291, + "parsed_at": 1740904866, "path": "coresdk/src/coresdk/resources.h", "functions": [ { @@ -43499,7 +48011,7 @@ "group": "audio", "brief": null, "description": null, - "parsed_at": 1738484104, + "parsed_at": 1740904866, "path": "coresdk/src/coresdk/sound.h", "functions": [ { @@ -44508,7 +49020,7 @@ "group": "sprites", "brief": "SplashKit Sprites allows you to create images you can easily\nmove and animate.", "description": "SplashKit sprites are game elements that can be moved, and animated. Sprites\nare located at a position in the game, have a velocity, and an animation.\nThe sprite can also have arbitary data associated with it for game specific\npurposes.", - "parsed_at": 1740541632, + "parsed_at": 1740904869, "path": "coresdk/src/coresdk/sprites.h", "functions": [ { @@ -51384,7 +55896,7 @@ "group": "terminal", "brief": "SplashKit Terminal allows you to read and write values to the\nterminal in a consistent manner.", "description": null, - "parsed_at": 1738487294, + "parsed_at": 1740904869, "path": "coresdk/src/coresdk/terminal.h", "functions": [ { @@ -51804,7 +56316,7 @@ "group": "graphics", "brief": "SplashKit Text allows for drawing text in a variety of ways to\ngraphic windows.", "description": null, - "parsed_at": 1738484105, + "parsed_at": 1740904870, "path": "coresdk/src/coresdk/text.h", "functions": [ { @@ -54731,7 +59243,7 @@ "group": "input", "brief": null, "description": null, - "parsed_at": 1738487294, + "parsed_at": 1740904870, "path": "coresdk/src/coresdk/text_input.h", "functions": [ { @@ -55266,7 +59778,7 @@ "group": "timers", "brief": "Timers in SplashKit can be used to track the passing of time.", "description": null, - "parsed_at": 1740541633, + "parsed_at": 1740904871, "path": "coresdk/src/coresdk/timers.h", "functions": [ { @@ -56104,7 +60616,7 @@ "group": "graphics", "brief": null, "description": null, - "parsed_at": 1738487295, + "parsed_at": 1740904871, "path": "coresdk/src/coresdk/triangle_drawing.h", "functions": [ { @@ -58511,7 +63023,7 @@ "group": "geometry", "brief": null, "description": null, - "parsed_at": 1740541633, + "parsed_at": 1740904872, "path": "coresdk/src/coresdk/triangle_geometry.h", "functions": [ { @@ -58717,6 +63229,209 @@ "static": "geometry" } }, + { + "signature": "bool triangle_quad_intersect(const triangle &tri,const quad &q);", + "name": "triangle_quad_intersect", + "method_name": null, + "unique_global_name": "triangle_quad_intersect", + "unique_method_name": null, + "suffix_name": null, + "description": "Returns true if the triangle intersects with the quad.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the triangle and quad intersect", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "tri": { + "type": "triangle", + "description": "The triangle to test", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "q": { + "type": "quad", + "description": "The quad to test", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "group": "geometry", + "static": "geometry" + } + }, + { + "signature": "bool triangle_ray_intersection(const point_2d &origin,const vector_2d &heading,const triangle &tri);", + "name": "triangle_ray_intersection", + "method_name": null, + "unique_global_name": "triangle_ray_intersection", + "unique_method_name": null, + "suffix_name": null, + "description": "Detects if a ray intersects a triangle.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the ray intersects the triangle, false otherwise", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "origin": { + "type": "point_2d", + "description": "The starting point of the ray", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "heading": { + "type": "vector_2d", + "description": "The direction of the ray as a vector", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "tri": { + "type": "triangle", + "description": "The triangle to check for intersection", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "group": "geometry", + "static": "geometry" + } + }, + { + "signature": "bool triangle_ray_intersection(const point_2d &origin,const vector_2d &heading,const triangle &tri,point_2d &hit_point,double &hit_distance);", + "name": "triangle_ray_intersection", + "method_name": null, + "unique_global_name": "triangle_ray_intersection_with_hit_point_and_distance", + "unique_method_name": null, + "suffix_name": null, + "description": "Detects if a ray intersects a triangle. If an intersection is found, the\n`hit_point` and `hit_distance` are set to the point of intersection and the\ndistance from the ray's origin to the intersection point. If the ray's `origin`\nis contained within the triangle, `hit_point` is set to the `origin` and `hit_distance`\nis set to 0. If no intersection is found, `hit_point` and `hit_distance` are not modified.", + "brief": null, + "return": { + "type": "bool", + "description": "True if the ray intersects the triangle, false otherwise", + "is_pointer": false, + "is_reference": false, + "is_vector": false, + "type_parameter": null + }, + "parameters": { + "origin": { + "type": "point_2d", + "description": "The starting point of the ray", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "heading": { + "type": "vector_2d", + "description": "The direction of the ray as a vector", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "tri": { + "type": "triangle", + "description": "The triangle to check for intersection", + "is_pointer": false, + "is_const": true, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "hit_point": { + "type": "point_2d", + "description": "The point to set to where the ray intersects the triangle", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + }, + "hit_distance": { + "type": "double", + "description": "The double to set to the distance from the ray's origin to\nthe intersection point", + "is_pointer": false, + "is_const": false, + "is_reference": true, + "is_array": false, + "array_dimension_sizes": [ + + ], + "is_vector": false, + "type_parameter": null + } + }, + "attributes": { + "suffix": "with_hit_point_and_distance", + "group": "geometry", + "static": "geometry" + } + }, { "signature": "bool triangle_rectangle_intersect(const triangle &tri,const rectangle &rect);", "name": "triangle_rectangle_intersect", @@ -58872,7 +63587,7 @@ "group": "types", "brief": "SplashKit Types simplifies data type creation and management for streamlined programming.", "description": null, - "parsed_at": 1738484106, + "parsed_at": 1740904873, "path": "coresdk/src/coresdk/types.h", "functions": [ @@ -59903,7 +64618,7 @@ "group": "utilities", "brief": "SplashKit provides miscellaneous utilities for unclassified functionality.", "description": null, - "parsed_at": 1738487295, + "parsed_at": 1740904873, "path": "coresdk/src/coresdk/utils.h", "functions": [ { @@ -60111,7 +64826,7 @@ "group": "physics", "brief": "Provides vector functions to work on vectors.", "description": null, - "parsed_at": 1738484107, + "parsed_at": 1740904873, "path": "coresdk/src/coresdk/vector_2d.h", "functions": [ { @@ -61544,7 +66259,7 @@ "group": "networking", "brief": null, "description": null, - "parsed_at": 1738484107, + "parsed_at": 1740904874, "path": "coresdk/src/coresdk/web_client.h", "functions": [ { @@ -62139,7 +66854,7 @@ "group": "networking", "brief": null, "description": null, - "parsed_at": 1740541634, + "parsed_at": 1740904874, "path": "coresdk/src/coresdk/web_server.h", "functions": [ { @@ -63858,7 +68573,7 @@ "group": "windows", "brief": "Window Manager in SplashKit can be used create, and manipulate\ngraphics windows", "description": null, - "parsed_at": 1738487297, + "parsed_at": 1740904875, "path": "coresdk/src/coresdk/window_manager.h", "functions": [ {