Exemplo n.º 1
0
        /// <summary>
        /// Конструктор сам задает функцию по указанной точке Лагранжа.
        /// </summary>
        ///
        /// <param name="lagrangianPoint"> Точка Лагранжа.</param>
        /// <param name="basis"> Базис.</param>
        /// <param name="julianDate"> Юлианская дата.</param>
        /// <param name="connectorVector"> Вектор средства связи в системе координат этого ретрранслятора.</param>
        /// <param name="connectorBasis"> Базис средства связи в системе координат этого ретрранслятора.</param>
        /// <param name="view"> Область видимости средства связи.</param>
        /// <param name="id"> Идентификатор.</param>
        ///
        /// <exception cref="ArgumentNullException">
        /// Вызывается при передаче null.
        /// </exception>
        public LagrangianRepeater(double julianDate, LagrangianPoint lagrangianPoint, string id,
                                  Basis basis, Vector connectorVector, Basis connectorBasis, View view) :
            base(UnitVector.UnitVectorX, basis, UnitVector.UnitVectorX)
        {
            switch (lagrangianPoint)
            {
            case LagrangianPoint.EM1: getParamsMethod += LagrangianPoints.GetEarthMoon1; referenceSystem = Planets.Earth; break;

            case LagrangianPoint.EM2: getParamsMethod += LagrangianPoints.GetEarthMoon2; referenceSystem = Planets.Earth; break;

            case LagrangianPoint.EM3: getParamsMethod += LagrangianPoints.GetEarthMoon3; referenceSystem = Planets.Earth; break;

            case LagrangianPoint.EM4: getParamsMethod += LagrangianPoints.GetEarthMoon4; referenceSystem = Planets.Earth; break;

            case LagrangianPoint.EM5: getParamsMethod += LagrangianPoints.GetEarthMoon5; referenceSystem = Planets.Earth; break;

            case LagrangianPoint.SE1: getParamsMethod += LagrangianPoints.GetSunEarth1; referenceSystem = Planets.Sun; break;

            case LagrangianPoint.SE2: getParamsMethod += LagrangianPoints.GetSunEarth2; referenceSystem = Planets.Sun; break;

            case LagrangianPoint.SE3: getParamsMethod += LagrangianPoints.GetSunEarth3; referenceSystem = Planets.Sun; break;

            case LagrangianPoint.SE4: getParamsMethod += LagrangianPoints.GetSunEarth4; referenceSystem = Planets.Sun; break;

            case LagrangianPoint.SE5: getParamsMethod += LagrangianPoints.GetSunEarth5; referenceSystem = Planets.Sun; break;
            }

            connector = new RepeaterConnector(id, connectorVector, connectorBasis, view, this);

            UpdateParams(julianDate);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Конструктор сам задает функцию по указанной точке Лагранжа.
        /// </summary>
        ///
        /// <param name="lagrangianPoint"> Точка Лагранжа.</param>
        /// <param name="connector"> Средство связи.</param>
        /// <param name="basis"> Базис.</param>
        /// <param name="vector"> Координаты.</param>
        /// <param name="velocity"> Скорость.</param>
        ///
        /// <exception cref="ArgumentNullException">
        /// Вызывается при передаче null.
        /// </exception>
        public LagrangianRepeater(LagrangianPoint lagrangianPoint, RepeaterConnector connector, Basis basis,
                                  Vector vector, Vector velocity) : base(connector, vector,
                                                                         basis, velocity, Planets.Sun)
        {
            switch (lagrangianPoint)
            {
            case LagrangianPoint.EM1: getParamsMethod += LagrangianPoints.GetEarthMoon1; referenceSystem = Planets.Earth; break;

            case LagrangianPoint.EM2: getParamsMethod += LagrangianPoints.GetEarthMoon2; referenceSystem = Planets.Earth; break;

            case LagrangianPoint.EM3: getParamsMethod += LagrangianPoints.GetEarthMoon3; referenceSystem = Planets.Earth; break;

            case LagrangianPoint.EM4: getParamsMethod += LagrangianPoints.GetEarthMoon4; referenceSystem = Planets.Earth; break;

            case LagrangianPoint.EM5: getParamsMethod += LagrangianPoints.GetEarthMoon5; referenceSystem = Planets.Earth; break;

            case LagrangianPoint.SE1: getParamsMethod += LagrangianPoints.GetSunEarth1; referenceSystem = Planets.Sun; break;

            case LagrangianPoint.SE2: getParamsMethod += LagrangianPoints.GetSunEarth2; referenceSystem = Planets.Sun; break;

            case LagrangianPoint.SE3: getParamsMethod += LagrangianPoints.GetSunEarth3; referenceSystem = Planets.Sun; break;

            case LagrangianPoint.SE4: getParamsMethod += LagrangianPoints.GetSunEarth4; referenceSystem = Planets.Sun; break;

            case LagrangianPoint.SE5: getParamsMethod += LagrangianPoints.GetSunEarth5; referenceSystem = Planets.Sun; break;
            }
        }
Exemplo n.º 3
0
 /// <summary>
 /// Конструктор задает полям переданные значения, но:<br/>
 /// id = connector.id<br/>
 /// </summary>
 ///
 /// <param name="connector"> Средство связи. Не должно быть null.</param>
 /// <param name="vector"> Вектор относительно базовой системы координат.</param>
 /// <param name="basis"> Базис относительно базовой системы координат.</param>
 /// <param name="velocity"> Скорость относительно базовой системы координат.</param>
 /// <param name="referenceSystem"> Базовая система координат. Если она null, то базовая система координат — гелиоцентрическая.</param>
 ///
 /// <exception cref="ArgumentNullException">
 /// Вызывается при передаче null.
 /// </exception>
 public Repeater(RepeaterConnector connector, Vector vector, Basis basis, Vector velocity,
                 CoordinateSystem referenceSystem = null) : base(connector.ID + " carrier", vector,
                                                                 basis, velocity, referenceSystem)
 {
     Connector         = connector;
     connector.Carrier = this;
     Body.bodies.Add(this);
     Body.bodies.Add(connector);
 }
Exemplo n.º 4
0
 /// <summary>
 /// Конструктор.
 /// </summary>
 ///
 /// <param name="function"> Функция, определяющая координаты и скорость точки.</param>
 /// <param name="connector"> Средство связи.</param>
 /// <param name="basis"> Базис.</param>
 /// <param name="vector"> Координаты.</param>
 /// <param name="velocity"> Скорость.</param>
 /// <param name="centralBody"> Тело, в системе отсчета которого заданы координаты.</param>
 ///
 /// <exception cref="ArgumentNullException">
 /// Вызывается при передаче null.
 /// </exception>
 public LagrangianRepeater(GetParams function, RepeaterConnector connector, Basis basis,
                           Vector vector, Vector velocity, Body centralBody) : base(connector, vector,
                                                                                    basis, velocity, centralBody)
 {
     if (function == null)
     {
         throw new ArgumentNullException("function mustn't be null");
     }
     getParamsMethod += function;
 }
Exemplo n.º 5
0
        /// <summary>
        /// Конструктор.
        /// </summary>
        ///
        /// <param name="function"> Функция, определяющая координаты и скорость точки.</param>
        /// <param name="basis"> Базис.</param>
        /// <param name="vector"> Координаты.</param>
        /// <param name="velocity"> Скорость.</param>
        /// <param name="referenceSystem"> Система координат, в которой задан ретранслятор.</param>
        /// <param name="connectorVector"> Вектор средства связи в системе координат этого ретрранслятора.</param>
        /// <param name="connectorBasis"> Базис средства связи в системе координат этого ретрранслятора.</param>
        /// <param name="view"> Область видимости средства связи.</param>
        /// <param name="id"> Идентификатор.</param>
        ///
        /// <exception cref="ArgumentNullException">
        /// Вызывается при передаче null.
        /// </exception>
        public LagrangianRepeater(GetParams function, string id, Vector vector, Basis basis, Vector velocity,
                                  CoordinateSystem referenceSystem, Vector connectorVector, Basis connectorBasis, View view) :
            base(vector, basis, velocity, referenceSystem)
        {
            if (function == null)
            {
                throw new ArgumentNullException("function mustn't be null");
            }
            getParamsMethod += function;

            connector = new RepeaterConnector(id, connectorVector, connectorBasis, view, this);
        }
 /// <summary>
 /// Конструктор задает полям значения:<br/>
 /// velocity — keplerian.Velocity<br/>
 /// vector — keplerian.Vector<br/>
 /// referenceSystem — keplerian.CentralBody<br/>
 /// connector — connector<br/>
 /// basis — basis<br/>
 /// </summary>
 ///
 /// <param name="keplerian">Keplerian, который хранит параметры орбиты. Не должен быть null.</param>
 /// <param name="basis"> Базис. Не должен быть null.</param>
 /// <param name="connector"> Средство связи. Не должно быть null.</param>
 ///
 /// <exception cref="ArgumentNullException">
 /// Вызывается при передаче null.
 /// </exception>
 public OrbitRepeater(EllipticKeplerian keplerian, Basis basis, RepeaterConnector connector) :
     base(connector, keplerian.Vector, basis, keplerian.Velocity, keplerian.CentralBody)
 {
     this.keplerian = keplerian;
 }
 /// <summary>
 /// Конструктор задает полям значения:<br/>
 /// velocity — keplerian.Velocity<br/>
 /// vector — keplerian.Vector<br/>
 /// referenceSystem — keplerian.CentralBody<br/>
 /// connector — connector<br/>
 /// basis — basis<br/>
 /// </summary>
 ///
 /// <param name="keplerian">Keplerian, который хранит параметры орбиты. Не должен быть null.</param>
 /// <param name="basis"> Базис. Не должен быть null.</param>
 /// <param name="connectorVector"> Вектор средства связи в системе координат этого ретрранслятора.</param>
 /// <param name="connectorBasis"> Базис средства связи в системе координат этого ретрранслятора.</param>
 /// <param name="view"> Область видимости средства связи.</param>
 /// <param name="id"> Идентификатор.</param>
 ///
 /// <exception cref="ArgumentNullException">
 /// Вызывается при передаче null.
 /// </exception>
 public OrbitRepeater(string id, EllipticKeplerian keplerian, Basis basis,
                      Vector connectorVector, Basis connectorBasis, View view) :
     base(keplerian.Vector, basis, keplerian.Velocity, keplerian.CentralBody)
 {
     connector = new RepeaterConnector(id, connectorVector, connectorBasis, view, this);
 }