Struct JobRVO Extends IJobParallelForBatched

Public

Inner Types

A half-plane defined as the line splitting plane.

Public Methods

CalculateForwardClearance (neighbours, movementPlane, position, radius, targetDir)

Find the distance we can move towards our target without colliding with anything.

Public
Execute (startIndex, batchSize)
Public
ExecuteORCA (startIndex, batchSize)
Public
GenerateObstacleVOs (agentIndex, adjacentObstacleIdsScratch, adjacentObstacleVerticesScratch, segmentDistancesScratch, sortedVerticesScratch, orcaLines, orcaLineToAgent, numLines, movementPlane, optimalVelocity)

Generates ORCA half-planes for all obstacles near the agent.

Public

Public Static Methods

BiasDesiredVelocity (lines, desiredVelocity, targetPointInVelocitySpace, maxBiasRadians)

Bias towards the right side of agents.

Public Static
ClipBoundary (lines, lineIndex, radius, tLeft, tRight)
Public Static
ClipLine (line, clipper, tLeft, tRight)

Clip a line to the feasible region of the half-plane given by the clipper.

Public Static
ClosestPointOnSegment (a, dir, p, t0, t1)
Public Static
ClosestSegmentSegmentPointNonIntersecting (a, b, ta1, ta2, tb1, tb2)

Closest point on segment a to segment b.

Public Static
DistanceInsideVOs (lines, velocity)

Calculates how far inside the infeasible region of the ORCA half-planes the velocity is.

Public Static
DrawVO (draw, circleCenter, radius, origin, color)
Public Static
InsertionSort<T,U> (data, comparer)

Sorts the array in place using insertion sort.

Public Static
LinearProgram1D (lines, lineIndex, radius, optimalVelocity, directionOpt, result)
Public Static
LinearProgram2D (lines, numLines, radius, optimalVelocity, directionOpt)
Public Static
LinearProgram2DCollapsedSegment (lines, numLines, startLine, radius, currentResult, optimalVelocityStart, optimalVelocityDir, optimalTLeft, optimalTRight)

Like LinearProgram2D, but the optimal velocity space is a segment instead of a point, however the current result has collapsed to a point.

Public Static
LinearProgram2DSegment (lines, numLines, radius, optimalVelocityStart, optimalVelocityDir, optimalTLeft, optimalTRight, optimalT)

Like LinearProgram2D, but the optimal velocity space is a segment instead of a point.

Public Static
LinearProgram3D (lines, numLines, numFixedLines, beginLine, radius, result, scratchBuffer)

Finds the velocity with the smallest maximum penetration into the given half-planes.

Public Static
det (vector1, vector2)

Determinant of the 2x2 matrix defined by vector1 and vector2.

Public Static
left (vector1, vector2)

True if vector2 is to the left of vector1.

Public Static
leftOrColinear (vector1, vector2)

True if vector2 is to the left of vector1 or if they are colinear.

Public Static
right (vector1, vector2)

True if vector2 is to the right of vector1.

Public Static
rightOrColinear (vector1, vector2)

True if vector2 is to the right of vector1 or if they are colinear.

Public Static
rot90 (v)
Public Static

Public Variables

agentData
Public
allowBoundsChecks
Public
deltaTime
Public
draw
Public
navmeshEdgeData
output
Public
priorityMultiplier
Public
symmetryBreakingBias
Public
temporaryAgentData
Public
useNavmeshAsObstacle
Public

Public Static Variables

MaxObstacleCount
Public Static

Private/Protected Members

MarkerConvertObstacles1
Private Static Readonly
MarkerConvertObstacles2
Private Static Readonly