@Override public void draw(Camera cam) { Matrix.setIdentityM(modelMatrix, 0); Matrix.rotateM(modelMatrix, 0, angle, 0.0f, 1.0f, 0.0f); Camera updCam = new Camera(cam); updCam.setPos( cam.getPos() .rotate( -angle, 0.0f, 1.0f, 0.0f)); // camera position is changed WITHOUT updating matrices computeNodeSocketsPositions(updCam.getPos()); // TODO: redo enable/disable switch when performance optimizations are done // GLES20.glDisable(GLES20.GL_DEPTH_TEST); // GLES20.glEnable(GLES20.GL_DEPTH_TEST); drawConnections(updCam); // GLES20.glDisable(GLES20.GL_DEPTH_TEST); // GLES20.glEnable(GLES20.GL_DEPTH_TEST); drawNodes(updCam); // GLES20.glEnable(GLES20.GL_DEPTH_TEST); }