//######################################################################################### #region 构造函数 /// <summary> /// 构造函数,缺省使用中心天体:地球(J2项系数为0) /// </summary> //public J2Gravity() // : base(RoleOfForce.Principal, KindOfForce.NewtonianSpecificForce) //{ // CentralBodiesFacet fromContext = CentralBodiesFacet.GetFromContext(); // this.m_centralBody = fromContext.Earth; // this.m_gravitationalParameter = WorldGeodeticSystem1984.GravitationalParameter; // this.J2ZonalHarmonicCoefficient = 0.0; // this.m_referenceDistance = m_centralBody.Shape.SemimajorAxisLength; //} /// <summary> /// 构造函数,缺省使用中心天体:地球(J2项系数为0) /// </summary> /// <param name="targetPoint">计算引力的瞬时点(位置、速度)</param> //public J2Gravity(Point targetPoint) // : this() //{ // this.m_targetPoint = targetPoint; //} /// <summary> /// 构造函数,从已有对象复制 /// </summary> /// <param name="existingInstance">已有对象</param> /// <param name="context">A CopyContext that controls the depth of the copy.</param> protected J2Gravity(J2Gravity existingInstance, CopyContext context) : base(existingInstance, context) { this.m_centralBody = context.UpdateReference <CentralBody>(existingInstance.m_centralBody); this.m_gravitationalParameter = existingInstance.m_gravitationalParameter; this.m_ignorePartials = existingInstance.m_ignorePartials; this.m_targetPoint = context.UpdateReference <Point>(existingInstance.m_targetPoint); this.m_j2ZonalHarmonicCoefficient = existingInstance.m_j2ZonalHarmonicCoefficient; this.m_referenceDistance = existingInstance.m_referenceDistance; }
//##################################################################################### /// <summary> /// 构造函数,从已有对象创建 /// </summary> /// <param name="existingInstance"></param> /// <param name="context"></param> private J2Evaluator(J2Evaluator existingInstance, CopyContext context) : base(existingInstance, context) { this.m_position = existingInstance.m_position; this.m_gravity = existingInstance.m_gravity; this.m_definedIn = context.UpdateReference <Axes>(existingInstance.m_definedIn); this.UpdateEvaluatorReferences(context); }