SimpleJavaEngine/src/main/java/speiger/src/coreengine/rendering/tesselation/IVertexBuilder.java

38 lines
2.0 KiB
Java

package speiger.src.coreengine.rendering.tesselation;
import speiger.src.coreengine.math.misc.ColorUtils;
import speiger.src.coreengine.math.vector.floats.Vec2f;
import speiger.src.coreengine.math.vector.floats.Vec3f;
import speiger.src.coreengine.math.vector.floats.Vec4f;
public interface IVertexBuilder
{
public default IVertexBuilder pos(Vec2f vec) { return pos(vec.getX(), vec.getY()); }
public IVertexBuilder pos(float x, float y);
public default IVertexBuilder pos(Vec3f vec) { return pos(vec.getX(), vec.getY(), vec.getZ()); }
public IVertexBuilder pos(float x, float y, float z);
public default IVertexBuilder color3f(int color) { return color3f(ColorUtils.getRF(color), ColorUtils.getGF(color), ColorUtils.getBF(color)); }
public IVertexBuilder color3f(float r, float g, float b);
public default IVertexBuilder color4f(int color){ return color4f(ColorUtils.getRF(color), ColorUtils.getGF(color), ColorUtils.getBF(color), ColorUtils.getAF(color)); }
public default IVertexBuilder color4f(float r, float g, float b) { return color4f(r, g, b, 1F); }
public IVertexBuilder color4f(float r, float g, float b, float a);
public default IVertexBuilder tex(Vec2f vec) { return tex(vec.getX(), vec.getY()); }
public IVertexBuilder tex(float u, float v);
public default IVertexBuilder normal(Vec3f vec) { return normal(vec.getX(), vec.getY(), vec.getZ()); }
public IVertexBuilder normal(float x, float y, float z);
public IVertexBuilder custom(float x);
public default IVertexBuilder custom(Vec2f data) { return custom(data.getX(), data.getY()); }
public IVertexBuilder custom(float x, float y);
public default IVertexBuilder custom(Vec3f data) { return custom(data.getX(), data.getY(), data.getZ()); }
public IVertexBuilder custom(float x, float y, float z);
public default IVertexBuilder custom(Vec4f data) { return custom(data.getX(), data.getY(), data.getZ(), data.getW());}
public IVertexBuilder custom(float x, float y, float z, float w);
public IVertexBuilder endVertex();
}