protected override void Prepare(ref ObstacleKDTreeJob job, float delta) { if (!TryGetFirstInGroup(out m_obstaclesProvider)) { throw new System.Exception("No IObstacleSplitProvider or IObstacleProvider in chain !"); } if (m_obstaclesProvider.recompute) { job.m_recompute = true; int obsCount = 2 * m_obstaclesProvider.referenceObstacles.Length; if (m_outputTree.Length != obsCount) { m_outputTree.Dispose(); m_outputTree = new NativeArray <ObstacleTreeNode>(obsCount, Allocator.Persistent); } } else { job.m_recompute = false; } job.m_inputObstacleInfos = m_obstaclesProvider.outputObstacleInfos; job.m_referenceObstacles = m_obstaclesProvider.referenceObstacles; job.m_inputObstacles = m_obstaclesProvider.outputObstacles; job.m_outputTree = m_outputTree; }
protected override void Apply(ref ObstacleKDTreeJob job) { }