This pull request rewrites all the places where HyPerCol needs to know which objects are layers, which are connections, etc. Instead, all the objects of the hierarchy are in the mObjectHierarchy data member, and HyPerCol only knows them as Observer objects.
HyPerCol::nonblockingLayerUpdate has been greatly simplified; the management of whether a layer receives input or updates V and A on a particular pass has been moved into the HyPerLayer respondLayerRecvSyapticLayer and respondLayerUpdateState methods.
This pull request rewrites all the places where HyPerCol needs to know which objects are layers, which are connections, etc. Instead, all the objects of the hierarchy are in the mObjectHierarchy data member, and HyPerCol only knows them as Observer objects.
HyPerCol::nonblockingLayerUpdate has been greatly simplified; the management of whether a layer receives input or updates V and A on a particular pass has been moved into the HyPerLayer respondLayerRecvSyapticLayer and respondLayerUpdateState methods.