Esempio n. 1
0
        protected override sealed VFXExpression[] BuildExpression(VFXExpression[] inputExpression)
        {
            var t = new VFXExpressionSharedRandom(inputExpression[1] * VFXValue.Constant(2u) + VFXValue.Constant(1u)) * VFXValue.Constant(Mathf.PI * 2);
            var z = new VFXExpressionSharedRandom(inputExpression[1] * VFXValue.Constant(2u)) * VFXValue.Constant(2.0f) - VFXValue.Constant(1.0f);
            var w = VFXOperatorUtility.Sqrt(VFXValue.Constant(1.0f) - z * z);

            return(new[] { new VFXExpressionCombine(new VFXExpressionCos(t) * w, new VFXExpressionSin(t) * w, z) * VFXOperatorUtility.CastFloat(inputExpression[0], VFXValueType.Float3) });
        }
        public void ProcessOperatorSqrt()
        {
            var a      = 0.2f;
            var result = Mathf.Sqrt(a);

            var value_a = new VFXValue <float>(a);

            var expression = VFXOperatorUtility.Sqrt(value_a);

            var context          = new VFXExpression.Context(VFXExpressionContextOption.CPUEvaluation);
            var resultExpression = context.Compile(expression);

            Assert.AreEqual(result, resultExpression.Get <float>());
        }
Esempio n. 3
0
 protected override sealed VFXExpression[] BuildExpression(VFXExpression[] inputExpression)
 {
     return(new[] { VFXOperatorUtility.Sqrt(inputExpression[0]) });
 }