anchor.diff:      Weight: Single;
     end;
   
  +  TNode = record
  +      Loc: TKMPoint;
  +      Nearby: array of Word; //Indexes of connected nodes
  +      Owner: array [0..MAX_HANDS-1] of Byte;
  +    end;
  +
  +  TPolygon = record
  +      CenterPoint: TKMPoint;
  +      NearbyCount: Byte; //could be 0 .. 3
  +      Indices: array [0..2] of Word; //Neighbour nodes
  +      Nearby: array [0..2] of Word; //Neighbour polygons
  +    end;
  +
  +  TNodeArray = array of TNode;
  +  TPolygonArray = array of TPolygon;
  +
     //NavMesh is used to acess the map on a higher level than tiles
     //terrain is represented as a mesh interconnected polygons
     TKMNavMesh = class
  
positive.code:   begin
      aTileOutlines.Shape[I].Nodes[K].X := aTileOutlines.Shape[I].Nodes[K].X + 1;
      aTileOutlines.Shape[I].Nodes[K].Y := aTileOutlines.Shape[I].Nodes[K].Y + 1;
    end;
  end;
  
  
negative.code:   public
      constructor Create(aInfluences: TKMInfluences);
  
      property Point2NodeArr: TKMWord2Array read fPoint2NodeArr;
      property Polygons: TPolygonArray read fPolygons;
      property Nodes: TNodeArray read fNodes;
  
      procedure Init;
      procedure GetDefenceOutline(aOwner: TKMHandIndex; out aOutline1, aOutline2: TKMWeightSegments);
  
  