Ejemplo n.º 1
0
        public void PolarTransform_Vector()
        {
            var c        = new coordinates(1d, math.PI_DBL / 2d);
            var v_world  = new double2(-2d, 3d);
            var expected = new double2(2d, 3d);
            var actual   = c.PolarTransform(v_world);

            Assert.AreEqual(expected.x, actual.x, tolerance);
            Assert.AreEqual(expected.y, actual.y, tolerance);
        }
Ejemplo n.º 2
0
    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();
        }
    }