public void ProcessOperatorPolarToRectangular()
        {
            var theta    = 0.5f;
            var distance = 0.2f;

            var rectangular = new Vector2(Mathf.Cos(theta), Mathf.Sin(theta)) * distance;

            var value_theta    = new VFXValue <float>(theta);
            var value_distance = new VFXValue <float>(distance);

            var expressionA = VFXOperatorUtility.PolarToRectangular(value_theta, value_distance);
            var expressionB = VFXOperatorUtility.RectangularToPolar(expressionA);

            var context            = new VFXExpression.Context(VFXExpressionContextOption.CPUEvaluation);
            var resultExpressionA  = context.Compile(expressionA);
            var resultExpressionB0 = context.Compile(expressionB[0]);
            var resultExpressionB1 = context.Compile(expressionB[1]);

            Assert.AreEqual(rectangular, resultExpressionA.Get <Vector2>());
            Assert.AreEqual(theta, resultExpressionB0.Get <float>());
            Assert.AreEqual(distance, resultExpressionB1.Get <float>());
        }
Ejemplo n.º 2
0
 protected override sealed VFXExpression[] BuildExpression(VFXExpression[] inputExpression)
 {
     return(new[] { VFXOperatorUtility.PolarToRectangular(VFXOperatorUtility.DegToRad(inputExpression[0]), inputExpression[1]) });
 }