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.

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

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

Public Static Methods

BiasDesiredVelocity (lines, desiredVelocity, targetPointInVelocitySpace, maxBiasRadians)

Bias towards the right side of agents.

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

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

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

Closest point on segment a to segment b.

DistanceInsideVOs (lines, velocity)

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

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

Sorts the array in place using insertion sort.

LinearProgram1D (lines, lineIndex, radius, optimalVelocity, directionOpt, result)
LinearProgram2D (lines, numLines, radius, optimalVelocity, directionOpt)
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.

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

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

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

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

det (vector1, vector2)

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

left (vector1, vector2)

True if vector2 is to the left of vector1.

leftOrColinear (vector1, vector2)

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

rightOrColinear (vector1, vector2)

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

rot90 (v)

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