Frame and Extent data restructuring
New hierarchy:
Side, FramedSurface -> Frame (=Extent) -> (***)Mask
Sides and FramedSurfaces now both have Frame objects within themselves. Extent is an alias for Frame, since both structures have the same behaviour and purpose. Frame objects contain an id, which serves as an index for the appropriate mask array. There are several mask structures, one for each FrameType. For now, only Window, Ring and ZPhi masks have been implemented. Each is stored in a separate array. Each mask structure contains, besides the necessary data, a function for checking if a point in a local reference frame is within mask boundaries, and a function for getting the mask.
I have updated code in necessary spots and removed some redundant structures.
Edited by Dusan Cvijetic