当前位置: 首页>>代码示例>>Java>>正文


Java Matrix3f类代码示例

本文整理汇总了Java中org.lwjgl.util.vector.Matrix3f的典型用法代码示例。如果您正苦于以下问题:Java Matrix3f类的具体用法?Java Matrix3f怎么用?Java Matrix3f使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


Matrix3f类属于org.lwjgl.util.vector包,在下文中一共展示了Matrix3f类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: rotationMatrix

import org.lwjgl.util.vector.Matrix3f; //导入依赖的package包/类
public static Matrix3f rotationMatrix(float angle, float x, float y, float z)
{
	angle *= (float)Math.PI/180f;
	Vector3f axis = new Vector3f(x,y,z);
	axis.normalise();
	float s = (float)Math.sin(angle);
	float c = (float)Math.cos(angle);
	float oc = 1.0f - c;

	Matrix3f mat = new Matrix3f();
	mat.m00 = oc * axis.x * axis.x + c;
	mat.m01 = oc * axis.x * axis.y - axis.z * s;
	mat.m02 = oc * axis.z * axis .x + axis.y * s;
	mat.m10 = oc * axis.x * axis.y + axis.z * s;
	mat.m11 = oc * axis.y * axis.y + c;
	mat.m12 = oc * axis.y * axis.z - axis.x * s;
	mat.m20 = oc * axis.z * axis.x - axis.y * s;
	mat.m21 = oc * axis.y * axis.z + axis.x * s;
	mat.m22 = oc * axis.z * axis.z + c;
	return mat;
}
 
开发者ID:ObsidianSuite,项目名称:ObsidianSuite,代码行数:22,代码来源:Shape.java

示例2: lookMatrix

import org.lwjgl.util.vector.Matrix3f; //导入依赖的package包/类
public static Matrix3f lookMatrix(Vector3 forward, Vector3 up) {
	Vector3 vector = forward.normalized();
	Vector3 vector2 = up.cross(vector).normalized();
	Vector3 vector3 = vector.cross(vector2);
	Matrix3f matrix = new Matrix3f();
	matrix.m00 = vector2.x;
	matrix.m01 = vector2.y;
	matrix.m02 = vector2.z;
	matrix.m10 = vector3.x;
	matrix.m11 = vector3.y;
	matrix.m12 = vector3.z;
	matrix.m20 = vector.x;
	matrix.m21 = vector.y;
	matrix.m22 = vector.z;
	return matrix;
}
 
开发者ID:Techjar,项目名称:VivecraftForgeExtensions,代码行数:17,代码来源:Vector3.java

示例3: rotationMatrix

import org.lwjgl.util.vector.Matrix3f; //导入依赖的package包/类
public static Matrix3f rotationMatrix(float angle, float x, float y, float z)
{
	angle *= (float)Math.PI/180f;
    Vector3f axis = new Vector3f(x,y,z);
    axis.normalise();
    float s = (float)Math.sin(angle);
    float c = (float)Math.cos(angle);
    float oc = 1.0f - c;
    
    Matrix3f mat = new Matrix3f();
	mat.m00 = oc * axis.x * axis.x + c;
	mat.m01 = oc * axis.x * axis.y - axis.z * s;
	mat.m02 = oc * axis.z * axis .x + axis.y * s;
       mat.m10 = oc * axis.x * axis.y + axis.z * s;
	mat.m11 = oc * axis.y * axis.y + c;
	mat.m12 = oc * axis.y * axis.z - axis.x * s;
	mat.m20 = oc * axis.z * axis.x - axis.y * s;
	mat.m21 = oc * axis.y * axis.z + axis.x * s;
	mat.m22 = oc * axis.z * axis.z + c;
    return mat;
}
 
开发者ID:GloomyFolken,项目名称:tcn2obj,代码行数:22,代码来源:Shape.java

示例4: defineParts

import org.lwjgl.util.vector.Matrix3f; //导入依赖的package包/类
@Override
public void defineParts() {
    final Matrix4f rotate = new Matrix4f().rotate((float) Math.toRadians(-90), new Vector3f(1, 0, 0));
    bodyPartDefinition = Optional.of(new PartDefinition(
            new Vector3f(0.0f, 5.0f, 2.0f),
            Matrix4f.mul(
                    createPartMatrix(
                            new Vector3f(12, 20, 10),
                            new Vector3f(0, -1, -6)), rotate, null),
            new Matrix3f()
    ));
}
 
开发者ID:AtomicBlom,项目名称:ShearMadness,代码行数:13,代码来源:ClothDeviceTransformations.java

示例5: defineParts

import org.lwjgl.util.vector.Matrix3f; //导入依赖的package包/类
@Override
public void defineParts() {
    final Matrix4f rotate = new Matrix4f().rotate((float) Math.toRadians(-90), new Vector3f(1, 0, 0));
    bodyPartDefinition = Optional.of(new PartDefinition(
            new Vector3f(0.0f, 5.0f, 2.0f),
            Matrix4f.mul(
                    createPartMatrix(
                            new Vector3f(32, 32, 32),
                            new Vector3f(0, -1, offsetY == null ? 0 : offsetY.get())), rotate, null),
            new Matrix3f()
    ));
}
 
开发者ID:AtomicBlom,项目名称:ShearMadness,代码行数:13,代码来源:TeslaCoilTransformations.java

示例6: addBakedQuads

import org.lwjgl.util.vector.Matrix3f; //导入依赖的package包/类
/**
 * Add a BakedQuad to the mesh. It will be processed in batch when the model is rendered for the first time.
 * @param bakedQuads the list of quads to add to the model
 */
public void addBakedQuads(Matrix4f positionTransform, Matrix3f textureTransform, Collection<BakedQuad> bakedQuads)
{
    if (bakedQuads != null && bakedQuads.size() > 0) {
        allBakedQuads.add(new FutureQuad<>(bakedQuads, positionTransform, textureTransform));
    }
}
 
开发者ID:AtomicBlom,项目名称:ShearMadness,代码行数:11,代码来源:EntityMesh.java

示例7: PartDefinition

import org.lwjgl.util.vector.Matrix3f; //导入依赖的package包/类
public PartDefinition(Vector3f rotationPoint, Matrix4f positionTransform, Matrix3f textureTransform)
{

    this.rotationPoint = rotationPoint;
    this.positionTransform = positionTransform;
    this.textureTransform = textureTransform;
}
 
开发者ID:AtomicBlom,项目名称:ShearMadness,代码行数:8,代码来源:PartDefinition.java

示例8: matrix3to4

import org.lwjgl.util.vector.Matrix3f; //导入依赖的package包/类
@SideOnly(Side.CLIENT)
public static Matrix4f matrix3to4(Matrix3f matrix) {
	Matrix4f mat = new Matrix4f();
	mat.m00 = matrix.m00;
	mat.m01 = matrix.m01;
	mat.m02 = matrix.m02;
	mat.m10 = matrix.m10;
	mat.m11 = matrix.m11;
	mat.m12 = matrix.m12;
	mat.m20 = matrix.m20;
	mat.m21 = matrix.m21;
	mat.m22 = matrix.m22;
	return mat;
}
 
开发者ID:Techjar,项目名称:VivecraftForgeExtensions,代码行数:15,代码来源:Util.java

示例9: setUniformMatrix

import org.lwjgl.util.vector.Matrix3f; //导入依赖的package包/类
public boolean setUniformMatrix(String key, Matrix matrix)
{
    if (shaderID <= 0 || !shaderActive)
    {
        return false;
    }

    int width;
    if (matrix instanceof Matrix2f)
        width = 2;
    else if (matrix instanceof Matrix3f)
        width = 3;
    else if (matrix instanceof Matrix4f)
        width = 4;
    else
        throw new IllegalArgumentException();

    FloatBuffer floatBuffer = BufferUtils.createFloatBuffer(width * width);
    matrix.store(floatBuffer);
    floatBuffer.position(0);

    switch (width)
    {
        case 2:
            OpenGlHelper.glUniformMatrix2(getUniformLocation(key), false, floatBuffer);
            break;
        case 3:
            OpenGlHelper.glUniformMatrix3(getUniformLocation(key), false, floatBuffer);
            break;
        default:
            OpenGlHelper.glUniformMatrix4(getUniformLocation(key), false, floatBuffer);
            break;
    }

    return true;
}
 
开发者ID:Ivorforce,项目名称:IvToolkit,代码行数:37,代码来源:IvShaderInstance.java

示例10: set

import org.lwjgl.util.vector.Matrix3f; //导入依赖的package包/类
public void set(Matrix3f m1){
	float ww=0.25f*(m1.m00+m1.m11+m1.m22+1.0f);
	
	if(ww>=0){
		if(ww>=EPS2){
			w=(float)Math.sqrt(ww);
			ww=0.25f/w;
			x=(m1.m21-m1.m12)*ww;
			y=(m1.m02-m1.m20)*ww;
			z=(m1.m10-m1.m01)*ww;
			return;
		}
	}else{
		w=x=y=z=1;
		return;
	}
	
	w=0;
	ww=-0.5f*(m1.m11+m1.m22);
	if(ww>=0){
		if(ww>=EPS2){
			x=(float)Math.sqrt(ww);
			ww=0.5f/x;
			y=m1.m10*ww;
			z=m1.m20*ww;
			return;
		}
	}else{
		x=0;
		y=0;
		z=1;
		return;
	}
	
	x=0;
	ww=0.5f*(1.0f-m1.m22);
	if(ww>=EPS2){
		y=(float)Math.sqrt(ww);
		z=m1.m21/(2.0f*y);
		return;
	}
	
	y=0;
	z=1;
}
 
开发者ID:LapisSea,项目名称:OpenGL-Bullet-engine,代码行数:46,代码来源:Quat4.java

示例11: createModel

import org.lwjgl.util.vector.Matrix3f; //导入依赖的package包/类
@Override
public ModelQuadruped createModel(ItemStack itemStack, EntityLivingBase entity)
{
    ModelQuadruped quadruped = super.createModel(itemStack, entity);

    quadruped.body = new ModelRenderer(new ModelSheep1(), 0, 0);
    quadruped.head = createModelRenderer(getTransforms().getHeadPartDefinition().get());
    
    final EntityMesh mesh = new EntityMesh(quadruped.head);
    quadruped.head.cubeList.add(mesh);

    final Matrix4f antenna1Matrix = new Matrix4f();

    antenna1Matrix.translate(new Vector3f(1, -3, -4));
    antenna1Matrix.scale(new Vector3f(20, -20, 20));
    antenna1Matrix.rotate(fifteenDegrees, new Vector3f(1, 0, 0));
    antenna1Matrix.rotate(-thirtyDegrees, new Vector3f(0, 0, 1));
    antenna1Matrix.rotate(-nintyDegrees, new Vector3f(0, 1, 0));
    antenna1Matrix.translate(new Vector3f(-0.5f, -0.5f, -0.5f));

    final IBakedModel bakedModelForItem = getBakedModelForItem(itemStack, entity);
    addBlockModelToEntityMesh(mesh,
            new PartDefinition(
                    new Vector3f(0, 0, 0),
                    antenna1Matrix,
                    new Matrix3f()),
            null,
            bakedModelForItem
    );

    final Matrix4f antenna2Matrix = new Matrix4f();

    antenna2Matrix.translate(new Vector3f(-1, -3, -4));
    antenna2Matrix.scale(new Vector3f(20, -20, 20));
    antenna2Matrix.rotate(fifteenDegrees, new Vector3f(1, 0, 0));
    antenna2Matrix.rotate(thirtyDegrees, new Vector3f(0, 0, 1));
    antenna2Matrix.rotate(nintyDegrees, new Vector3f(0, 1, 0));
    antenna2Matrix.translate(new Vector3f(-0.5f, -0.5f, -0.5f));

    addBlockModelToEntityMesh(mesh,
            new PartDefinition(
                    new Vector3f(0, 0, 0),
                    antenna2Matrix,
                    new Matrix3f()),
            null,
            bakedModelForItem
    );

    return quadruped;
}
 
开发者ID:AtomicBlom,项目名称:ShearMadness,代码行数:51,代码来源:ImmersiveEngineeringPostModelMaker.java

示例12: createModel

import org.lwjgl.util.vector.Matrix3f; //导入依赖的package包/类
@Override
public ModelQuadruped createModel(ItemStack itemStack, EntityLivingBase entity)
{
    ModelQuadruped quadruped = super.createModel(itemStack, entity);

    final float nintyDegrees = (float) Math.toRadians(90);

    quadruped.body = new ModelRenderer(new ModelSheep1(), 0, 0);
    quadruped.head = createModelRenderer(getTransforms().getHeadPartDefinition().get());

    final EntityMesh mesh = new EntityMesh(quadruped.head);
    quadruped.head.cubeList.add(mesh);

    final Matrix4f antenna1Matrix = new Matrix4f();

    antenna1Matrix.translate(new Vector3f(8, 0, -2));
    antenna1Matrix.scale(new Vector3f(20, -20, 20));
    antenna1Matrix.rotate(-nintyDegrees, new Vector3f(0, 1, 0));
    antenna1Matrix.translate(new Vector3f(-0.5f, -0.5f, -0.5f));

    final IBakedModel bakedModelForItem = getBakedModelForItem(itemStack, entity);
    addBlockModelToEntityMesh(mesh,
            new PartDefinition(
                    new Vector3f(0, 0, 0),
                    antenna1Matrix,
                    new Matrix3f()),
            null,
            bakedModelForItem
    );

    final Matrix4f antenna2Matrix = new Matrix4f();

    antenna2Matrix.translate(new Vector3f(-8, 0, -2));
    antenna2Matrix.scale(new Vector3f(20, -20, 20));
    antenna2Matrix.rotate(nintyDegrees, new Vector3f(0, 1, 0));
    antenna2Matrix.translate(new Vector3f(-0.5f, -0.5f, -0.5f));

    addBlockModelToEntityMesh(mesh,
            new PartDefinition(
                    new Vector3f(0, 0, 0),
                    antenna2Matrix,
                    new Matrix3f()),
            null,
            bakedModelForItem
    );

    return quadruped;
}
 
开发者ID:AtomicBlom,项目名称:ShearMadness,代码行数:49,代码来源:ImmersiveEngineeringWallMountModelMaker.java

示例13: addTexturedQuads

import org.lwjgl.util.vector.Matrix3f; //导入依赖的package包/类
public void addTexturedQuads(Matrix4f positionTransform, Matrix3f textureTransform, Collection<TexturedQuad> texturedQuads) {
    if (texturedQuads != null && texturedQuads.size() > 0) {
        allTexturedQuads.add(new FutureQuad<>(texturedQuads, positionTransform, textureTransform));
    }
}
 
开发者ID:AtomicBlom,项目名称:ShearMadness,代码行数:6,代码来源:EntityMesh.java

示例14: 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);
    }
}
 
开发者ID:AtomicBlom,项目名称:ShearMadness,代码行数:68,代码来源:EntityMesh.java

示例15: FutureQuad

import org.lwjgl.util.vector.Matrix3f; //导入依赖的package包/类
FutureQuad(Collection<T> quads, Matrix4f positionTransform, Matrix3f textureTransform) {
    this.quads = quads;
    this.positionTransform = positionTransform;
    this.textureTransform = textureTransform;
}
 
开发者ID:AtomicBlom,项目名称:ShearMadness,代码行数:6,代码来源:EntityMesh.java


注:本文中的org.lwjgl.util.vector.Matrix3f类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。