Untitled
unknown
plain_text
20 days ago
4.2 kB
3
Indexable
FindIntersect(VehicleData:vehicle_data, Transform:transform)<transacts>:logic = DebugDraw:debug_draw = debug_draw{Channel := my_debug_draw} for: ComparisonVehicleData:VehicleDatas ComparisonVehicleData.Busy = true ComparisonVehicleData.AssignedPlayerOption? ComparisonVehicleData.AssignedPlayerOption <> VehicleData.AssignedPlayerOption CompareTransform := ComparisonVehicleData.CurrentVehicleOption?.GetTransform() do: var Continue:logic = false TopRightForwardVectorA := Transform.Translation + Transform.Rotation.GetLocalForward()*(1.0*VehicleData.VLength/2.0) + Transform.Rotation.GetLocalRight()*(1.0*VehicleData.VWidth/2.0) + Transform.Rotation.GetLocalUp()*(1.0*VehicleData.VHeight/2.0) BottomLeftBackwardVectorA := Transform.Translation - Transform.Rotation.GetLocalForward()*(1.0*VehicleData.VLength/2.0) - Transform.Rotation.GetLocalRight()*(1.0*VehicleData.VWidth/2.0) - Transform.Rotation.GetLocalUp()*(1.0*VehicleData.VHeight/2.0) TopRightForwardVectorB := CompareTransform.Translation + CompareTransform.Rotation.GetLocalForward()*(1.0*ComparisonVehicleData.VLength/2.0) + CompareTransform.Rotation.GetLocalRight()*(1.0*ComparisonVehicleData.VWidth/2.0) + CompareTransform.Rotation.GetLocalUp()*(1.0*ComparisonVehicleData.VHeight/2.0) BottomLeftBackwardVectorB := CompareTransform.Translation - CompareTransform.Rotation.GetLocalForward()*(1.0*ComparisonVehicleData.VLength/2.0) - CompareTransform.Rotation.GetLocalRight()*(1.0*ComparisonVehicleData.VWidth/2.0) - CompareTransform.Rotation.GetLocalUp()*(1.0*ComparisonVehicleData.VHeight/2.0) Print("======================================================") Print("TopRightForwardVectorA: {TopRightForwardVectorA}") Print("BottomLeftBackwardVectorA: {BottomLeftBackwardVectorA}") Print("TopRightForwardVectorB: {TopRightForwardVectorB}") Print("BottomLeftBackwardVectorB: {BottomLeftBackwardVectorB}") Print("======================================================") DebugDraw.DrawLine(TopRightForwardVectorA, BottomLeftBackwardVectorA , ?Color:=NamedColors.Blue, ?Thickness:= 10.0, ?DrawDurationPolicy := debug_draw_duration_policy.Persistent) DebugDraw.DrawLine(TopRightForwardVectorB, BottomLeftBackwardVectorB , ?Color:=NamedColors.Blue, ?Thickness:= 10.0, ?DrawDurationPolicy := debug_draw_duration_policy.Persistent) DebugDrawClampVector( Transform, 1.0*VehicleData.VLength, 1.0*VehicleData.VWidth, 1.0*VehicleData.VHeight ) DebugDrawClampVector( CompareTransform, 1.0*ComparisonVehicleData.VLength, 1.0*ComparisonVehicleData.VWidth, 1.0*ComparisonVehicleData.VHeight ) if: TopRightForwardVectorA.X < BottomLeftBackwardVectorB.X or BottomLeftBackwardVectorA.X > TopRightForwardVectorB.X then: set Continue = true if: TopRightForwardVectorA.Y < BottomLeftBackwardVectorB.Y or BottomLeftBackwardVectorA.Y > TopRightForwardVectorB.Y then: set Continue = true if: TopRightForwardVectorA.Z < BottomLeftBackwardVectorB.Z or BottomLeftBackwardVectorA.Z > TopRightForwardVectorB.Z then: set Continue = true if (Continue = false): Print("Found intersection with a player space") return true Print("Intersection Transform: {Transform.Translation}") DebugDrawClampVector( Transform, 1.0*VehicleData.VLength, 1.0*VehicleData.VWidth, 1.0*VehicleData.VHeight ) Print("No intersection with a player space found") return false
Editor is loading...
Leave a Comment