public void ThetaHat() { var c = new coordinates(2d, math.PI_DBL / 2d); // Increasing theta is in the negative-x direction. var expected = new double2(-1d, 0d); var actual = c.ThetaHat(); Assert.AreEqual(expected.x, actual.x, tolerance); Assert.AreEqual(expected.y, actual.y, tolerance); }
public void Convert( Entity entity, EntityManager manager, GameObjectConversionSystem conversionSystem ) { this._entity = entity; this._manager = manager; var position3 = GetComponent <Transform>().position; var position2 = new Vector2(position3.x, position3.y); var polarPosition = new coordinates(new double2(position2)); var polarVelocity = polarPosition.PolarTransform(polarPosition.ThetaHat() * velocity); var vectors = new Newtonian.Vectors { Position = polarPosition, Velocity = polarVelocity }; if (this.regime == Regime.Newtonian) { manager.AddComponentData(entity, vectors); logInitialState(gameObject.name, vectors); } else if (this.regime == Regime.Keplerian) { var elements = new Keplerian.Elements(vectors); manager.AddComponentData(entity, elements); logInitialState(gameObject.name, elements); } else { throw new NotImplementedException(); } }