Java Code Examples for com.badlogic.gdx.math.Matrix4#rotate()
The following examples show how to use
com.badlogic.gdx.math.Matrix4#rotate() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: SpinEffectFactory.java From Klooni1010 with GNU General Public License v3.0 | 6 votes |
@Override public void draw(Batch batch) { age += Gdx.graphics.getDeltaTime(); final float progress = age * INV_LIFETIME; final float currentSize = Interpolation.pow2In.apply(size, 0, progress); final float currentRotation = Interpolation.sine.apply(0, TOTAL_ROTATION, progress); final Matrix4 original = batch.getTransformMatrix().cpy(); final Matrix4 rotated = batch.getTransformMatrix(); final float disp = +0.5f * (size - currentSize) // the smaller, the more we need to "push" to center + currentSize * 0.5f; // center the cell for rotation rotated.translate(pos.x + disp, pos.y + disp, 0); rotated.rotate(0, 0, 1, currentRotation); rotated.translate(currentSize * -0.5f, currentSize * -0.5f, 0); // revert centering for rotation batch.setTransformMatrix(rotated); Cell.draw(color, batch, 0, 0, currentSize); batch.setTransformMatrix(original); }
Example 2
Source File: GameWorldRenderer.java From uracer-kotd with Apache License 2.0 | 5 votes |
private void renderTilemapPlane () { ShaderProgram shader = shNormalDepthNoDiffuse; float meshZ = -(camPersp.far - camPersp.position.z) + (camPersp.far * (1 - (camOrtho.zoom))); float k = OrthographicAlignedStillModel.BlenderToURacer; float scalex = 6, scalez = 4; Matrix4 model = mtx; tmpvec.set(camPersp.position.x, camPersp.position.y, meshZ + 0.5f); model.idt(); model.translate(tmpvec); model.rotate(1, 0, 0, 90); model.scale(scalex * k, 1, scalez * k); mtx2.set(camPersp.view).mul(model); nmat.set(mtx2).inv().transpose(); shader.begin(); shader.setUniformf("inv_depth_scale", DefaultSsaoScale); shader.setUniformf("near", camPersp.near); shader.setUniformf("far", camPersp.far); shader.setUniformMatrix("proj", camPersp.projection); shader.setUniformMatrix("view", camPersp.view); shader.setUniformMatrix("nmat", nmat); shader.setUniformMatrix("model", model); plane.render(shader, GL20.GL_TRIANGLE_FAN); shader.end(); }
Example 3
Source File: WorldGenerator.java From Skyland with MIT License | 5 votes |
private static void placeCave(Vector3 island) { Matrix4 transform = new Matrix4(); transform.setToTranslation(new Vector3(-5.4f, -.45f, -2.9f).add(island)); transform.rotate(new Vector3(0, 1, 0), -35); Builder.setBuildModel(Models.MODEL_CAVE_PROTOTYPE); Builder.build(transform); }
Example 4
Source File: TrackTrees.java From uracer-kotd with Apache License 2.0 | 4 votes |
public void transform (PerspectiveCamera camPersp, OrthographicCamera camOrtho) { float meshZ = -(camPersp.far - camPersp.position.z) + (camPersp.far * (1 - (camOrtho.zoom))); for (int i = 0; i < models.size(); i++) { TreeStillModel m = models.get(i); Matrix4 transf = m.transformed; // compute position tmpvec.x = (m.positionOffsetPx.x - camPersp.position.x) + (camPersp.viewportWidth / 2) + m.positionPx.x; tmpvec.y = (m.positionOffsetPx.y + camPersp.position.y) + (camPersp.viewportHeight / 2) - m.positionPx.y; tmpvec.z = 1; tmpvec.x *= ScaleUtils.Scale; tmpvec.y *= ScaleUtils.Scale; tmpvec.x += ScaleUtils.CropX; tmpvec.y += ScaleUtils.CropY; // transform to world space camPersp.unproject(tmpvec, ScaleUtils.CropX, ScaleUtils.CropY, ScaleUtils.PlayWidth, ScaleUtils.PlayHeight); // build model matrix Matrix4 model = m.mtxmodel; tmpvec.z = meshZ; model.idt(); model.translate(tmpvec); model.rotate(m.iRotationAxis, m.iRotationAngle); model.scale(m.scaleAxis.x, m.scaleAxis.y, m.scaleAxis.z); // comb = (proj * view) * model (fast mul) transf.set(camPersp.combined).mul(m.mtxmodel); // transform the bounding box m.boundingBox.inf().set(m.localBoundingBox); m.boundingBox.mul(m.mtxmodel); // create an AABB out of the corners of the original // AABB transformed by the model matrix // bb.inf(); // Vector3[] corners = m.localBoundingBox.getCorners(); // for(int k = 0; k < corners.length; k++) // { // vtrans[k].x = corners[k].x; // vtrans[k].y = corners[k].y; // vtrans[k].z = corners[k].z; // vtrans[k].mul( tmpmtx ); // bb.ext(vtrans[k]); // } // // m.boundingBox.inf(); // m.boundingBox.set( bb ); } }