Пример #1
0
 protected override sealed VFXExpression[] BuildExpression(VFXExpression[] inputExpression)
 {
     if (safeNormalize)
     {
         return new[] { VFXOperatorUtility.SafeNormalize(inputExpression[0]) }
     }
     ;
     else
     {
         return new[] { VFXOperatorUtility.Normalize(inputExpression[0]) }
     };
 }
        public void ProcessOperatorNormalize()
        {
            var a      = new Vector3(0.2f, 0.3f, 0.4f);
            var result = a.normalized;

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

            var expression = VFXOperatorUtility.Normalize(value_a);

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

            Assert.AreEqual(0.0f, (result - resultExpression.Get <Vector3>()).magnitude, 0.001f);
            Assert.AreEqual(1.0f, resultExpression.Get <Vector3>().magnitude, 0.001f);
        }
Пример #3
0
        override protected VFXExpression[] BuildExpression(VFXExpression[] inputExpression)
        {
            VFXExpression from = inputExpression[0];
            VFXExpression to   = inputExpression[1];
            VFXExpression up   = inputExpression[2];

            VFXExpression viewVector = to - from;

            VFXExpression z = VFXOperatorUtility.Normalize(viewVector);
            VFXExpression x = VFXOperatorUtility.Normalize(VFXOperatorUtility.Cross(up, z));
            VFXExpression y = VFXOperatorUtility.Cross(z, x);

            VFXExpression matrix = new VFXExpressionVector3sToMatrix(x, y, z, from);

            return(new[] { matrix });
        }
Пример #4
0
 protected override sealed VFXExpression[] BuildExpression(VFXExpression[] inputExpression)
 {
     return(new[] { VFXOperatorUtility.Normalize(inputExpression[0]) });
 }