public List <Segment> getSegments(Segment seg) { List <Segment> segments = new List <Segment>(); List <Vector2> squares = Collisions.getSquares(seg, cellSize); foreach (RectCollisionHull col in Hulls) { if (!col.Static) { col.genBounds(); } foreach (Vector2 square in squares) { if (col.boundMin.X <(square.X *cellSize) + cellSize& col.boundMax.X> square.X * cellSize & col.boundMax.Y > (square.Y * cellSize) & col.boundMin.Y < (square.Y * cellSize) + cellSize) { segments.AddRange(col.getSegments()); break; } } } return(segments); }
public List <Segment> getSegmentsHash(Segment seg) { List <Segment> segments = new List <Segment>(); List <Vector2> squares = Collisions.getSquares(seg, cellSize); foreach (Vector2 square in squares) { List <CollisionHull> hulls = table.getHulls(square); if (hulls != null) { foreach (CollisionHull h in hulls) { segments.AddRange(h.getSegments()); } } } return(segments); }