
com.gempukku.libgdx.graph.pipeline.producer.math.value.MergePipelineNodeProducer Maven / Gradle / Ivy
package com.gempukku.libgdx.graph.pipeline.producer.math.value;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.math.Vector3;
import com.badlogic.gdx.utils.JsonValue;
import com.badlogic.gdx.utils.ObjectMap;
import com.gempukku.libgdx.graph.pipeline.config.math.value.MergePipelineNodeConfiguration;
import com.gempukku.libgdx.graph.pipeline.producer.FloatFieldOutput;
import com.gempukku.libgdx.graph.pipeline.producer.PipelineRenderingContext;
import com.gempukku.libgdx.graph.pipeline.producer.node.OncePerFrameJobPipelineNode;
import com.gempukku.libgdx.graph.pipeline.producer.node.PipelineNode;
import com.gempukku.libgdx.graph.pipeline.producer.node.PipelineNodeProducerImpl;
import com.gempukku.libgdx.graph.pipeline.producer.node.PipelineRequirements;
public class MergePipelineNodeProducer extends PipelineNodeProducerImpl {
public MergePipelineNodeProducer() {
super(new MergePipelineNodeConfiguration());
}
@Override
public PipelineNode createNodeForSingleInputs(JsonValue data, ObjectMap> inputFields) {
PipelineNode.FieldOutput x = (PipelineNode.FieldOutput) inputFields.get("x");
PipelineNode.FieldOutput y = (PipelineNode.FieldOutput) inputFields.get("y");
PipelineNode.FieldOutput z = (PipelineNode.FieldOutput) inputFields.get("z");
PipelineNode.FieldOutput w = (PipelineNode.FieldOutput) inputFields.get("w");
if (x == null)
x = new FloatFieldOutput(0f);
if (y == null)
y = new FloatFieldOutput(0f);
if (z == null)
z = new FloatFieldOutput(0f);
if (w == null)
w = new FloatFieldOutput(0f);
final PipelineNode.FieldOutput finalX = x;
final PipelineNode.FieldOutput finalY = y;
final PipelineNode.FieldOutput finalZ = z;
final PipelineNode.FieldOutput finalW = w;
return new OncePerFrameJobPipelineNode(configuration, inputFields) {
@Override
protected void executeJob(PipelineRenderingContext pipelineRenderingContext, PipelineRequirements pipelineRequirements, ObjectMap outputValues) {
float xValue = finalX.getValue(pipelineRenderingContext, null);
float yValue = finalY.getValue(pipelineRenderingContext, null);
float zValue = finalZ.getValue(pipelineRenderingContext, null);
float wValue = finalW.getValue(pipelineRenderingContext, null);
OutputValue v2 = outputValues.get("v2");
if (v2 != null)
v2.setValue(new Vector2(xValue, yValue));
OutputValue v3 = outputValues.get("v3");
if (v3 != null)
v3.setValue(new Vector3(xValue, yValue, zValue));
OutputValue color = outputValues.get("color");
if (color != null)
color.setValue(new Color(xValue, yValue, zValue, wValue));
}
};
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy