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