Ejemplo n.º 1
0
        public List <YnvFile> Build(bool forVehicle)
        {
            NavGrid  = new SpaceNavGrid();
            YnvFiles = new List <YnvFile>();

            if (forVehicle) //for vehicle YNV, only need a single ynv, no splitting
            {
                AddVehiclePolys(PolyList);

                FinalizeYnvs(YnvFiles, true);
            }
            else //for static world ynv, need to split polys and generate a set of ynv's.
            {
                //1: split polys going over nav grid borders, first by X then by Y
                var splitpolysX = SplitPolys(PolyList, true);
                var splitpolysY = SplitPolys(splitpolysX, false);

                //2: assign polys into their new ynv's
                AddPolysIntoGrid(splitpolysY);


                //3: fix up generated ynv's
                FinalizeYnvs(YnvFiles, false);
            }

            return(YnvFiles);
        }