protected override VFXExpression[] BuildExpression(VFXExpression[] inputExpression) { //round(frac(x*F)) var expression = inputExpression[0] * inputExpression[1]; return(new[] { VFXOperatorUtility.Round(VFXOperatorUtility.Frac(expression)) }); }
protected override sealed VFXExpression[] BuildExpression(VFXExpression[] inputExpression) { //round(frac(x*F)) var expression = inputExpression[0] * inputExpression[1]; var res = VFXOperatorUtility.Round(VFXOperatorUtility.Frac(expression)); return(new[] { VFXOperatorUtility.Lerp(inputExpression[2], inputExpression[3], res) }); }
protected override VFXExpression[] BuildExpression(VFXExpression[] inputExpression) { // 2 * abs(round(frac(x*F)) - frac(x*F)) var expression = inputExpression[0] * inputExpression[1]; var dX = VFXOperatorUtility.Frac(expression); var slope = VFXOperatorUtility.Round(dX); var two = VFXOperatorUtility.TwoExpression[expression.valueType]; return(new[] { two *(new VFXExpressionAbs(slope - dX)) }); }
protected override sealed VFXExpression[] BuildExpression(VFXExpression[] inputExpression) { return(new[] { VFXOperatorUtility.Round(inputExpression[0]) }); }