SignalPath implementation for Radio branch and its relation to Path and Propagators
My intuition would say that the SignalPath class inherits from Path. So it is basically a more specialized version of a Path which in addition stores
- the optical path (or transmission time)
- the direction under which the emission is radiated
- the direction from which the emission is received
- possibly (at a later time) attenuation factors
Then, the SignalPath would inherit all the interface from Path, including things like AddPointToEnd(point). But it's a bit awkward because I don't think we want the SignalPath to calculate the optical path itself (the Propagator should do that), so the method would need to become AddPointToEnd(point, averagerefractiveindexoverlastsegment) or something like that. But then the original AddPointToEnd(point) interface must no longer be used.
That all sounds a bit awkward to me. How do you see all this? Should the SignalPath inherit from Path? How to deal with the optical path calculation then? Or do you see this as something separate from the Path class?