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>()); }
protected override sealed VFXExpression[] BuildExpression(VFXExpression[] inputExpression) { return(new[] { VFXOperatorUtility.PolarToRectangular(VFXOperatorUtility.DegToRad(inputExpression[0]), inputExpression[1]) }); }