Added apply methods to some common Vector containers

Added ColourMultiplier vertex modifier.
This commit is contained in:
Chicken Bones committed 2013-08-12 13:30:54 +10:00
1 parent 4bd5aab59a
commit 575ec57050
4 files changed
+61 -1

No files matched your search

+9 -1
View File
@@ -325,7 +325,7 @@ public class CCModel
public CCModel apply(Transformation t)
{
for(int k = 0; k < verts.length; k++)
t.apply(verts[k].vec);
verts[k].apply(t);
if(normals != null)
for(int k = 0; k < normals.length; k++)
@@ -333,6 +333,14 @@ public class CCModel
return this;
}
public CCModel apply(IUVTransformation uvt)
{
for(int k = 0; k < verts.length; k++)
verts[k].apply(uvt);
return this;
}
public void render()
{
@@ -0,0 +1,34 @@
package codechicken.lib.render;
import net.minecraft.client.renderer.Tessellator;
import codechicken.lib.colour.Colour;
import codechicken.lib.colour.ColourRGBA;
import codechicken.lib.vec.Vector3;
public class ColourMultiplier implements IVertexModifier
{
public Colour colour;
public ColourMultiplier(Colour colour)
{
this.colour = colour;
}
public ColourMultiplier(int colour)
{
this(new ColourRGBA(colour));
}
@Override
public void applyModifiers(CCModel m, Tessellator tess, Vector3 vec, UV uv, Vector3 normal, int i)
{
if(CCRenderState.useModelColours() && m != null && m.colours != null)
CCRenderState.vertexColour(new ColourRGBA(m.colours[i]).multiply(colour).rgba());
}
@Override
public boolean needsNormals()
{
return false;
}
}
+5
View File
@@ -11,6 +11,11 @@ public class UVScale implements IUVTransformation
sv = scalev;
}
public UVScale(double d)
{
this(d, d);
}
@Override
public void transform(UV uv)
{
+13
View File
@@ -4,6 +4,7 @@ import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;
import codechicken.lib.vec.Transformation;
import codechicken.lib.vec.Vector3;
public class Vertex5
@@ -54,4 +55,16 @@ public class Vertex5
MathContext cont = new MathContext(4, RoundingMode.HALF_UP);
return "Vertex: ("+new BigDecimal(vec.x, cont)+", "+new BigDecimal(vec.y, cont)+", "+new BigDecimal(vec.z, cont)+") ("+new BigDecimal(uv.u, cont)+", "+new BigDecimal(uv.v, cont)+")";
}
public Vertex5 apply(Transformation t)
{
vec.apply(t);
return this;
}
public Vertex5 apply(IUVTransformation t)
{
uv.apply(t);
return this;
}
}