public void ForceDeallocate()
        {
            var A = 0;

            for (A = 0; A <= NodeCount - 1; A++)
            {
                Nodes[A].ForceDeallocate();
            }

            Nodes       = null;
            Connections = null;
            Network     = null;
            ParentLayer = null;
        }
Beispiel #2
0
        public PathfinderNode(PathfinderNetwork ParentNetwork)
        {
            var tmpLayer = default(PathfinderLayer);

            if (ParentNetwork.NodeLayerCount == 0)
            {
                tmpLayer = new PathfinderLayer(ParentNetwork);
            }
            else
            {
                tmpLayer = ParentNetwork.NodeLayers[0];
            }

            Layer = tmpLayer;
            tmpLayer.Node_Add(this);
        }
Beispiel #3
0
        public void Resize(PathfinderNetwork NetworkForSize)
        {
            var NewSize = 0;

            if (NetworkForSize.NodeLayerCount > 0)
            {
                NewSize = NetworkForSize.NodeLayers[0].NodeCount;
            }
            else
            {
                NewSize = 0;
            }
            if (Size < NewSize)
            {
                var Num = 0;
                Size             = (NewSize * SizeEnlargementRatio).ToInt();
                Num              = Size - 1;
                Nodes_Booleans   = new bool[Num + 1];
                Nodes_ValuesA    = new float[Num + 1];
                Nodes_ValuesB    = new float[Num + 1];
                Nodes_Booleans   = new bool[Num + 1];
                Nodes_Path.Nodes = new PathfinderNode[Num + 1];
                Nodes_Nodes      = new PathfinderNode[Num + 1];
            }
            else
            {
                if (Size > NewSize * SizeReductionRatio)
                {
                    var Num = 0;
                    Size             = (NewSize * SizeEnlargementRatio).ToInt();
                    Num              = Size - 1;
                    Nodes_Booleans   = new bool[Num + 1];
                    Nodes_ValuesA    = new float[Num + 1];
                    Nodes_ValuesB    = new float[Num + 1];
                    Nodes_Booleans   = new bool[Num + 1];
                    Nodes_Path.Nodes = new PathfinderNode[Num + 1];
                    Nodes_Nodes      = new PathfinderNode[Num + 1];
                }
            }
        }
 public PathfinderLayer(PathfinderNetwork NewParentNetwork)
 {
     Network = NewParentNetwork;
     Network.NodeLayer_Add(this);
 }