コード例 #1
0
        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>());
        }
コード例 #2
0
 protected override sealed VFXExpression[] BuildExpression(VFXExpression[] inputExpression)
 {
     return(new[] { VFXOperatorUtility.SqrDistance(inputExpression[0], inputExpression[1]) });
 }