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(); }