public void RemoveSpatialMemeber(SpatialObjectKey resourceName, ISpatialIndexMember member) { if (IsLeafNode && SpatialIndexMembers[resourceName] != null) { if (SpatialIndexMembers[resourceName].Contains(member)) { SpatialIndexMembers[resourceName].Remove(member); ChangeResourceCount(resourceName, -1); } } }
public void CheckChangeSection(Point newPosition, ISpatialIndexMember objectToMove, SpatialObjectKey spatialObjectType) { SpatialTreeNode leafNodeToRemoveFrom = PositionToLeafNode(objectToMove.SpatialIndexPosition); SpatialTreeNode leafNodeToAdd = PositionToLeafNode(newPosition); if (leafNodeToRemoveFrom != leafNodeToAdd) { RemoveFromSection(objectToMove, spatialObjectType); leafNodeToAdd.AddSpatialMemeber(spatialObjectType, objectToMove); } }
public void AddSpatialMemeber(SpatialObjectKey resourceName, ISpatialIndexMember member) { if (IsLeafNode) { if (!SpatialIndexMembers.ContainsKey(resourceName)) { SpatialIndexMembers[resourceName] = new List <ISpatialIndexMember>(); } SpatialIndexMembers[resourceName].Add(member); ChangeResourceCount(resourceName, 1); } }
public void RemoveFromSection(ISpatialIndexMember objectToRemove, SpatialObjectKey spatialObjectType) { SpatialTreeNode leafNodeToRemoveFrom = PositionToLeafNode(objectToRemove.SpatialIndexPosition); leafNodeToRemoveFrom.RemoveSpatialMemeber(spatialObjectType, objectToRemove); }
public void AddToSection(ISpatialIndexMember objectToAdd, SpatialObjectKey spatialObjectType) { SpatialTreeNode leafNodeToAdd = PositionToLeafNode(objectToAdd.SpatialIndexPosition); leafNodeToAdd.AddSpatialMemeber(spatialObjectType, objectToAdd); }