Example usage for net.minecraftforge.client.model.pipeline VertexTransformer VertexTransformer

List of usage examples for net.minecraftforge.client.model.pipeline VertexTransformer VertexTransformer

Introduction

In this page you can find the example usage for net.minecraftforge.client.model.pipeline VertexTransformer VertexTransformer.

Prototype

public VertexTransformer(IVertexConsumer parent) 

Source Link

Usage

From source file:vazkii.botania.client.model.FloatingFlowerModel.java

License:Open Source License

protected static BakedQuad transform(BakedQuad quad, final TRSRTransformation transform) {
    UnpackedBakedQuad.Builder builder = new UnpackedBakedQuad.Builder(DefaultVertexFormats.ITEM);
    final IVertexConsumer consumer = new VertexTransformer(builder) {
        @Override//  ww  w  .j  a  v a2 s  .  c om
        public void put(int element, float... data) {
            VertexFormatElement formatElement = DefaultVertexFormats.ITEM.getElement(element);
            switch (formatElement.getUsage()) {
            case POSITION: {
                float[] newData = new float[4];
                Vector4f vec = new Vector4f(data);
                transform.getMatrix().transform(vec);
                vec.get(newData);
                parent.put(element, newData);
                break;
            }
            default: {
                parent.put(element, data);
                break;
            }
            }
        }
    };
    quad.pipe(consumer);
    return builder.build();
}