示例#1
0
        protected override sealed VFXExpression[] BuildExpression(VFXExpression[] inputExpression)
        {
            if (GetNbOutputSlots() == 0)
            {
                return new VFXExpression[] { }
            }
            ;

            var outputSlot = GetOutputSlot(0);
            var slots      = outputSlot.GetVFXValueTypeSlots();

            var buffer = inputExpression[0];
            var index  = inputExpression[1];
            var count  = new VFXExpressionBufferCount(buffer);

            index = VFXOperatorUtility.ApplyAddressingMode(index, count, mode);
            var stride      = new VFXExpressionBufferStride(buffer);
            var expressions = new List <VFXExpression>();

            foreach (var slot in slots)
            {
                var path = ComputeSlotPath(slot);

                var current = new VFXExpressionSampleBuffer(m_Type, slot.valueType, path, buffer, index, stride, count);
                expressions.Add(current);
            }
            return(expressions.ToArray());
        }
    }
示例#2
0
        protected override sealed VFXExpression[] BuildExpression(VFXExpression[] inputExpression)
        {
            var count = new VFXExpressionBufferCount(inputExpression[0]);

            return(new VFXExpression[] { count });
        }