public Builder(SourceInfinityMode m, Vector3 pos_dir)
 {
     position(m == SourceInfinityMode.SourceAtInfinity
              // position of infinity source is only used for trace::Sequence
              // sort See
              // https://lists.gnu.org/archive/html/goptical/2013-06/msg00004.html
         ? new Vector3Pair(pos_dir.times(-1e9), pos_dir)
         : new Vector3Pair(pos_dir, Vector3.vector3_001));
     _mode = m;
 }
 public PointSource(int id, Vector3Pair p, Transform3 transform, double min_intensity, double max_intensity,
                    List <SpectralLine> spectrum, SourceInfinityMode mode) : base(id, p, transform, min_intensity, max_intensity,
                                                                                  spectrum)
 {
     _mode = mode;
 }