예제 #1
0
        public void TrySubdivideOver(WorldPos pos)
        {
            if (toGenerate == null)
            {
                toGenerate = new WeightedSegmentsList()
                {
                    cam = Camera
                }
            }
            ;
            toGenerate.Clear();

            ShadersReloadedCheck();

            foreach (var rootSegment in rootSegments)
            {
                if (rootSegment.GenerationBegan == false)
                {
                    // first generate rootCunks
                    toGenerate.Add(rootSegment, float.MaxValue);
                }
                else
                {
                    // then their children
                    GatherWeights(toGenerate, rootSegment, 0);
                }
            }


            Debug.AddValue("generation / segments to generate", toGenerate.Count);
            toGenerateOrdered = new Queue <Segment>(toGenerate.GetWeighted());
        }
    public void CalculateWorkQueue(SubdivisionData data)
    {
        toGenerate.Clear();
        toGenerate.data = data;

        foreach (var chunk in rootChildren)
        {
            GatherWeights(toGenerate, chunk, 0);
        }

        //toGenerateOrdered = new Queue<Segment>(toGenerate.GetWeighted());
    }