コード例 #1
0
ファイル: Path.cs プロジェクト: flofe104/MarchingCubes
 public Path(PathTriangle current, Path parent, float distanceToNode)
 {
     depth            = parent.depth + 1;
     this.current     = current;
     target           = parent.target;
     this.parent      = parent;
     previousDistance = distanceToNode;
     distance         = current.DistanceToTarget(target);
 }
コード例 #2
0
        private MarchingCubesPathfinder(PathTriangle start, PathTriangle target, PathAccuracy accuracy, float estimatedStepProgress = 0.5f)
        {
            this.start   = start;
            this.target  = target;
            pathAccuracy = AccuracyFactor(accuracy);
            float estimatedLength    = start.DistanceToTarget(target);
            int   estimatedQueueSize = (int)Mathf.Clamp(estimatedStepProgress * estimatedLength * (1 - (pathAccuracy / 2)), 10, 10000);

            pathTails      = new BinaryHeap <float, PathTriangle>(float.MinValue, float.MaxValue, estimatedQueueSize / 2);
            backwardsTails = new BinaryHeap <float, PathTriangle>(float.MinValue, float.MaxValue, estimatedQueueSize / 2);
        }
コード例 #3
0
        public void AddTailUnchecked(PathTriangle p, BinaryHeap <float, PathTriangle> addHere)
        {
            float key = p.prevDistance * pathAccuracy + p.DistanceToTarget(target);

            addHere.Enqueue(key, p);
        }