public OrbitIconBase(EntityState entityState, List <List <UserOrbitSettings> > settings) : base(entityState.Entity.GetDataBlob <PositionDB>()) { BodyType = entityState.BodyType; entityState.OrbitIcon = this; _mgr = entityState.Entity.Manager; _userOrbitSettingsMtx = settings; _orbitDB = entityState.Entity.GetDataBlob <OrbitDB>(); if (entityState.Entity.HasDataBlob <OrbitUpdateOftenDB>()) { _orbitDB = entityState.Entity.GetDataBlob <OrbitUpdateOftenDB>(); } BodyPositionDB = entityState.Position; //entityState.Entity.GetDataBlob<PositionDB>(); if (_orbitDB.Parent == null) //primary star { _positionDB = BodyPositionDB; } else { _positionDB = _orbitDB.Parent.GetDataBlob <PositionDB>(); //orbit's position is parent's body position. } SemiMaj = (float)_orbitDB.SemiMajorAxis_AU; SemiMinor = (float)EllipseMath.SemiMinorAxis(_orbitDB.SemiMajorAxis_AU, _orbitDB.Eccentricity); _linearEccentricity = (float)(_orbitDB.Eccentricity * _orbitDB.SemiMajorAxis_AU); //linear ecentricity if (_orbitDB.Inclination_Degrees > 90 && _orbitDB.Inclination_Degrees < 270) //orbitDB is in degrees. { IsRetrogradeOrbit = true; //_loP_Degrees = (float)(_orbitDB.LongitudeOfAscendingNode - _orbitDB.ArgumentOfPeriapsis); } /* * else * { * * _loP_Degrees = (float)(_orbitDB.LongitudeOfAscendingNode + _orbitDB.ArgumentOfPeriapsis); * } * _loP_radians = (float)(Angle.ToRadians(_loP_Degrees)); */ var i = _orbitDB.Inclination; var _aoP = _orbitDB.ArgumentOfPeriapsis; var loan = _orbitDB.LongitudeOfAscendingNode; var lop = OrbitMath.GetLongditudeOfPeriapsis(i, _aoP, loan); _loP_radians = (float)lop; _loP_Degrees = (float)Angle.ToDegrees(lop); }
public OrbitOrderWiget(OrbitDB orbitDB) : base(orbitDB.Parent.GetDataBlob <PositionDB>()) { var targetEntity = orbitDB.Parent; _bodyPositionDB = targetEntity.GetDataBlob <PositionDB>(); OrbitEllipseSemiMaj_m = (float)orbitDB.SemiMajorAxis; _eccentricity = orbitDB.Eccentricity; EllipseMath.SemiMinorAxis(OrbitEllipseSemiMaj_m, _eccentricity); _linearEccentricity_m = (float)(orbitDB.Eccentricity * OrbitEllipseSemiMaj_m); _soiWorldRadius_AU = OrbitProcessor.GetSOI_AU(targetEntity); _targetWorldRadius_AU = targetEntity.GetDataBlob <MassVolumeDB>().RadiusInAU; Setup(); }
public OrbitOrderWiget(OrbitDB orbitDB) : base(orbitDB.Parent.GetDataBlob <PositionDB>()) { var targetEntity = orbitDB.Parent; _bodyPositionDB = targetEntity.GetDataBlob <PositionDB>(); OrbitEllipseSemiMaj = (float)orbitDB.SemiMajorAxis; _eccentricity = orbitDB.Eccentricity; EllipseMath.SemiMinorAxis(OrbitEllipseSemiMaj, _eccentricity); _linearEccentricity = (float)(orbitDB.Eccentricity * OrbitEllipseSemiMaj); _soiWorldRadius = GMath.GetSOI(targetEntity); Setup(); }
public OrbitIconBase(EntityState entityState, List <List <UserOrbitSettings> > settings) : base(entityState.Entity.GetDataBlob <PositionDB>()) { BodyType = entityState.BodyType; entityState.OrbitIcon = this; _mgr = entityState.Entity.Manager; _userOrbitSettingsMtx = settings; _orbitDB = entityState.Entity.GetDataBlob <OrbitDB>(); BodyPositionDB = entityState.Position; //entityState.Entity.GetDataBlob<PositionDB>(); if (_orbitDB.Parent == null) //primary star { _positionDB = BodyPositionDB; } else { _positionDB = _orbitDB.Parent.GetDataBlob <PositionDB>(); //orbit's position is parent's body position. } SemiMaj = (float)_orbitDB.SemiMajorAxis; SemiMinor = (float)EllipseMath.SemiMinorAxis(_orbitDB.SemiMajorAxis, _orbitDB.Eccentricity); _linearEccentricity = (float)(_orbitDB.Eccentricity * _orbitDB.SemiMajorAxis); //linear ecentricity /* * if (_orbitDB.Inclination > 90 && _orbitDB.Inclination < 270) //orbitDB is in degrees. * { * IsClockwiseOrbit = false; * _loP_Degrees = (float)(_orbitDB.LongitudeOfAscendingNode - _orbitDB.ArgumentOfPeriapsis); * } * else * { * * _loP_Degrees = (float)(_orbitDB.LongitudeOfAscendingNode + _orbitDB.ArgumentOfPeriapsis); * } * _loP_radians = (float)(Angle.ToRadians(_loP_Degrees)); */ var i = Angle.ToRadians(_orbitDB.Inclination); var aop = Angle.ToRadians(_orbitDB.ArgumentOfPeriapsis); var loan = Angle.ToRadians(_orbitDB.LongitudeOfAscendingNode); var lop = OrbitMath.GetLongditudeOfPeriapsis(i, aop, loan); _loP_radians = (float)lop; _loP_Degrees = (float)Angle.ToDegrees(lop); }
internal OrbitIcon(ref EntityState entityState, UserOrbitSettings settings) : base(entityState.Entity.GetDataBlob <PositionDB>()) { entityState.OrbitIcon = this; _userSettings = settings; _orbitDB = entityState.Entity.GetDataBlob <OrbitDB>(); _bodyPositionDB = entityState.Entity.GetDataBlob <PositionDB>(); if (_orbitDB.Parent == null) //primary star { _positionDB = _bodyPositionDB; } else { _positionDB = _orbitDB.Parent.GetDataBlob <PositionDB>(); //orbit's position is parent's body position. } _orbitEllipseSemiMaj = (float)_orbitDB.SemiMajorAxis; _orbitEllipseMajor = _orbitEllipseSemiMaj * 2; _orbitEllipseSemiMinor = (float)EllipseMath.SemiMinorAxis(_orbitDB.SemiMajorAxis, _orbitDB.Eccentricity); _orbitEllipseMinor = _orbitEllipseSemiMinor * 2; _linearEccentricity = (float)(_orbitDB.Eccentricity * _orbitDB.SemiMajorAxis); //linear ecentricity if (_orbitDB.Inclination > 90 && _orbitDB.Inclination < 270) //orbitDB is in degrees. { IsClockwiseOrbit = false; _orbitAngleDegrees = (float)(_orbitDB.LongitudeOfAscendingNode - _orbitDB.ArgumentOfPeriapsis); } else { _orbitAngleDegrees = (float)(_orbitDB.LongitudeOfAscendingNode + _orbitDB.ArgumentOfPeriapsis); } _orbitAngleRadians = (float)(Angle.ToRadians(_orbitAngleDegrees)); UpdateUserSettings(); CreatePointArray(); OnPhysicsUpdate(); }