本文整理汇总了Java中org.lwjgl.util.vector.Matrix3f.transform方法的典型用法代码示例。如果您正苦于以下问题:Java Matrix3f.transform方法的具体用法?Java Matrix3f.transform怎么用?Java Matrix3f.transform使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.lwjgl.util.vector.Matrix3f
的用法示例。
在下文中一共展示了Matrix3f.transform方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: render
import org.lwjgl.util.vector.Matrix3f; //导入方法依赖的package包/类
@SuppressWarnings("ObjectAllocationInLoop")
@Override
@SideOnly(Side.CLIENT)
public void render(VertexBuffer renderer, float scale)
{
if (quadList == null)
{
final List<TexturedQuad> outputQuads = Lists.newArrayList();
for (final FutureQuad<TexturedQuad> texturedQuads : allTexturedQuads) {
for (final TexturedQuad texturedQuad : texturedQuads.quads) {
final PositionTextureVertex[] newPositions = new PositionTextureVertex[4];
for (int i = 0; i < texturedQuad.vertexPositions.length; i++)
{
final PositionTextureVertex vertexPosition = texturedQuad.vertexPositions[i];
@SuppressWarnings("NumericCastThatLosesPrecision")
final Vector4f position = new Vector4f((float) vertexPosition.vector3D.xCoord,
(float) vertexPosition.vector3D.yCoord,
(float) vertexPosition.vector3D.zCoord, 1);
final Vector3f textureCoords = new Vector3f(
vertexPosition.texturePositionX,
vertexPosition.texturePositionY,
1);
final Vector4f transformedPosition = Matrix4f.transform(texturedQuads.positionTransform, position, null);
final Vector3f transformedTexture = Matrix3f.transform(texturedQuads.textureTransform, textureCoords, null);
newPositions[i] = new PositionTextureVertex(
transformedPosition.getX(),
transformedPosition.getY(),
transformedPosition.getZ(),
transformedTexture.getX(),
transformedTexture.getY()
);
}
outputQuads.add(new TexturedQuad(newPositions));
}
}
for (final FutureQuad<BakedQuad> bakedQuads : allBakedQuads)
{
for (final BakedQuad bakedQuad : bakedQuads.quads) {
try {
final VertexConsumer consumer = new VertexConsumer(bakedQuad.getFormat(), bakedQuads.positionTransform, bakedQuads.textureTransform);
bakedQuad.pipe(consumer);
outputQuads.add(consumer.getOutputQuad());
} catch (Exception e) {
if (!errored) {
LogManager.getLogger("ShearMadnessAPI").log(Level.ERROR, "Error creating chiseled model", e);
}
errored = true;
}
}
}
quadList = new TexturedQuad[outputQuads.size()];
quadList = outputQuads.toArray(quadList);
}
for (final TexturedQuad texturedquad : quadList)
{
texturedquad.draw(renderer, scale);
}
}
示例2: put
import org.lwjgl.util.vector.Matrix3f; //导入方法依赖的package包/类
@Override
public void put(int element, float... data)
{
if (element == 0)
{
++currentVertexIndex;
}
final VertexFormatElement element1 = vertexFormat.getElement(element);
switch (element1.getUsage())
{
case POSITION:
if (data.length < 3)
{
currentPosition = null;
return;
}
final Vector4f position = new Vector4f(data[0], data[1], data[2], 1);
final Vector4f transform = Matrix4f.transform(positionTransform, position, null);
currentPosition = new Vec3d(transform.x, transform.y, transform.z);
break;
case UV:
if (data.length < 2)
{
currentTexture = null;
return;
}
final Vector3f uvs = new Vector3f(data[0], data[1], 1);
final Vector3f transformedTexture = Matrix3f.transform(textureTransform, uvs, null);
currentTexture = new Vector3f(transformedTexture.x, transformedTexture.y, transformedTexture.z);
break;
default:
break;
}
if (element == vertexFormat.getElementCount() - 1)
{
if (currentPosition == null || currentTexture == null) {
String vertexInfo = "";
for (final VertexFormatElement vertexFormatElement : vertexFormat.getElements()) {
vertexInfo += String.format("Element %d - %s\n", vertexFormatElement.getIndex(), vertexFormatElement.getUsage());
}
throw new RuntimeException("Unexpected Vertex Format:\n" + vertexInfo);
}
vertices[currentVertexIndex] = new PositionTextureVertex(currentPosition, currentTexture.x, currentTexture.y);
currentPosition = null;
currentTexture = null;
}
}
示例3: rotate
import org.lwjgl.util.vector.Matrix3f; //导入方法依赖的package包/类
/**
*
* @param angle (in degrees)
* @param x
* @param y
* @param z
*/
public void rotate(float angle, float x, float y, float z){
Matrix3f rotationMatrix = rotationMatrix(angle, x, y, z);
for (Vertex vertex : vertices){
Matrix3f.transform(rotationMatrix, vertex.position, vertex.position);
}
}