Files
przygody-pana-cegly/addons/rmsmartshape/shapes/shape_closed.gd

59 lines
1.8 KiB
GDScript

@tool
@icon("../assets/closed_shape.png")
extends SS2D_Shape
class_name SS2D_Shape_Closed
## DEPRECATED: Use [SS2D_Shape] instead.
## @deprecated
# UNUSED FUNCTIONS:
## Returns true if line segment 'a1a2' and 'b1b2' intersect.[br]
## Find the four orientations needed for general and special cases.[br]
#func do_edges_intersect(a1: Vector2, a2: Vector2, b1: Vector2, b2: Vector2) -> bool:
# var o1: int = get_points_orientation([a1, a2, b1])
# var o2: int = get_points_orientation([a1, a2, b2])
# var o3: int = get_points_orientation([b1, b2, a1])
# var o4: int = get_points_orientation([b1, b2, a2])
#
# # General case
# if o1 != o2 and o3 != o4:
# return true
#
# # Special Cases
# # a1, a2 and b1 are colinear and b1 lies on segment p1q1
# if o1 == ORIENTATION.COLINEAR and on_segment(a1, b1, a2):
# return true
#
# # a1, a2 and b2 are colinear and b2 lies on segment p1q1
# if o2 == ORIENTATION.COLINEAR and on_segment(a1, b2, a2):
# return true
#
# # b1, b2 and a1 are colinear and a1 lies on segment p2q2
# if o3 == ORIENTATION.COLINEAR and on_segment(b1, a1, b2):
# return true
#
# # b1, b2 and a2 are colinear and a2 lies on segment p2q2
# if o4 == ORIENTATION.COLINEAR and on_segment(b1, a2, b2):
# return true
#
# # Doesn't fall in any of the above cases
# return false
#static func get_edge_intersection(a1: Vector2, a2: Vector2, b1: Vector2, b2: Vector2) -> Variant:
# var den: float = (b2.y - b1.y) * (a2.x - a1.x) - (b2.x - b1.x) * (a2.y - a1.y)
#
# # Check if lines are parallel or coincident
# if den == 0:
# return null
#
# var ua: float = ((b2.x - b1.x) * (a1.y - b1.y) - (b2.y - b1.y) * (a1.x - b1.x)) / den
# var ub: float = ((a2.x - a1.x) * (a1.y - b1.y) - (a2.y - a1.y) * (a1.x - b1.x)) / den
#
# if ua < 0 or ub < 0 or ua > 1 or ub > 1:
# return null
#
# return Vector2(a1.x + ua * (a2.x - a1.x), a1.y + ua * (a2.y - a1.y))