Search in sources :

Example 21 with Quat4f

use of javax.vecmath.Quat4f in project EnderIO by SleepyTrousers.

the class RotatingSmartItemModel method handlePerspective.

@Override
@Nonnull
public Pair<? extends IBakedModel, Matrix4f> handlePerspective(@Nonnull ItemCameraTransforms.TransformType cameraTransformType) {
    Pair<? extends IBakedModel, Matrix4f> perspective = parent.handlePerspective(cameraTransformType);
    double r = (EnderIO.proxy.getTickCount() % 360) + Minecraft.getMinecraft().getRenderPartialTicks();
    TRSRTransformation transformOrig = new TRSRTransformation(perspective.getRight());
    Quat4f leftRot = transformOrig.getLeftRot();
    Quat4f yRotation = new Quat4f();
    yRotation.set(new AxisAngle4d(0, 1, 0, Math.toRadians(r * speed)));
    leftRot.mul(yRotation);
    TRSRTransformation transformNew = new TRSRTransformation(transformOrig.getTranslation(), leftRot, transformOrig.getScale(), transformOrig.getRightRot());
    return Pair.of(perspective.getLeft(), transformNew.getMatrix());
}
Also used : TRSRTransformation(net.minecraftforge.common.model.TRSRTransformation) Matrix4f(javax.vecmath.Matrix4f) AxisAngle4d(javax.vecmath.AxisAngle4d) Quat4f(javax.vecmath.Quat4f) Nonnull(javax.annotation.Nonnull) ItemOverride(net.minecraft.client.renderer.block.model.ItemOverride)

Aggregations

Quat4f (javax.vecmath.Quat4f)21 Vector3f (javax.vecmath.Vector3f)9 Matrix4f (javax.vecmath.Matrix4f)6 Transform (com.bulletphysics.linearmath.Transform)5 Stack (com.bulletphysics.util.Stack)5 Matrix3f (javax.vecmath.Matrix3f)5 TRSRTransformation (net.minecraftforge.common.model.TRSRTransformation)3 CollisionWorld (com.bulletphysics.collision.dispatch.CollisionWorld)2 PairCachingGhostObject (com.bulletphysics.collision.dispatch.PairCachingGhostObject)2 TransformType (net.minecraft.client.renderer.block.model.ItemCameraTransforms.TransformType)2 ItemOverride (net.minecraft.client.renderer.block.model.ItemOverride)2 StaticAlloc (com.bulletphysics.util.StaticAlloc)1 ImmutableList (com.google.common.collect.ImmutableList)1 ImmutableMap (com.google.common.collect.ImmutableMap)1 Nonnull (javax.annotation.Nonnull)1 AxisAngle4d (javax.vecmath.AxisAngle4d)1 BakedQuad (net.minecraft.client.renderer.block.model.BakedQuad)1 IBakedModel (net.minecraft.client.renderer.block.model.IBakedModel)1 TextureAtlasSprite (net.minecraft.client.renderer.texture.TextureAtlasSprite)1 IModelPart (net.minecraftforge.common.model.IModelPart)1