Skip to content

Add utility module for collision detection #1222

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions utils/collision_detection.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
"""
This module contains utility functions for collision detection
"""

from enum import Enum
import numpy as np

Check notice

Code scanning / CodeQL

Unused import Note

Import of 'np' is not used.

Copilot Autofix

AI 21 days ago

To fix the issue, we will remove the unused numpy import from line 6. This will eliminate the unnecessary dependency and improve code readability. No other changes are required since the functionality of the code does not depend on numpy.

Suggested changeset 1
utils/collision_detection.py

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/utils/collision_detection.py b/utils/collision_detection.py
--- a/utils/collision_detection.py
+++ b/utils/collision_detection.py
@@ -5,3 +5,3 @@
 from enum import Enum
-import numpy as np
+
 
EOF
@@ -5,3 +5,3 @@
from enum import Enum
import numpy as np


Copilot is powered by AI and may make mistakes. Always verify output.


class PointPosition(Enum):
LEFT = -1
ON_LINE = 0
RIGHT = 1


def cal_point_orientation_to_line(point, line_start, line_end):
"""
Calculate the orientation of a point with respect to a line segment.

Args:
point (tuple): The point to check (x, y).
line_start (tuple): The start point of the line segment (x1, y1).
line_end (tuple): The end point of the line segment (x2, y2).

Returns:
PointPosition: The position of the point relative to the line segment.
"""
x1, y1 = line_start
x2, y2 = line_end
x0, y0 = point

# Calculate the cross-product
cross_product = (x2 - x1) * (y0 - y1) - (y2 - y1) * (x0 - x1)

if cross_product > 0:
return PointPosition.LEFT
elif cross_product < 0:
return PointPosition.RIGHT
else:
return PointPosition.ON_LINE