public void ProcessOperatorDistance() { var a = new Vector3(0.2f, 0.3f, 0.4f); var b = new Vector3(1.0f, 2.3f, 5.4f); var resultA = Vector3.Distance(a, b); var resultB = Vector3.Dot(a - b, a - b); var value_a = new VFXValue <Vector3>(a); var value_b = new VFXValue <Vector3>(b); var expressionA = VFXOperatorUtility.Distance(value_a, value_b); var expressionB = VFXOperatorUtility.SqrDistance(value_a, value_b); var context = new VFXExpression.Context(VFXExpressionContextOption.CPUEvaluation); var resultExpressionA = context.Compile(expressionA); var resultExpressionB = context.Compile(expressionB); Assert.AreEqual(resultA, resultExpressionA.Get <float>()); Assert.AreEqual(resultB, resultExpressionB.Get <float>()); }
protected override sealed VFXExpression[] BuildExpression(VFXExpression[] inputExpression) { return(new[] { VFXOperatorUtility.SqrDistance(inputExpression[0], inputExpression[1]) }); }