From bda48858ba824d69995488ce409884307d6ba8d6 Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Sun, 3 Mar 2019 21:54:41 +0100 Subject: [PATCH] Poi3D models: correct flip axis on loading (#687) --- vtm-gdx-poi3d/src/org/oscim/gdx/poi3d/GdxModelLayer.java | 4 +++- vtm-gdx-poi3d/src/org/oscim/gdx/poi3d/GdxRenderer3D2.java | 6 ++++-- vtm-gdx-poi3d/src/org/oscim/gdx/poi3d/Poi3DLayer.java | 4 +++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/vtm-gdx-poi3d/src/org/oscim/gdx/poi3d/GdxModelLayer.java b/vtm-gdx-poi3d/src/org/oscim/gdx/poi3d/GdxModelLayer.java index e29d89cb..27e496dd 100644 --- a/vtm-gdx-poi3d/src/org/oscim/gdx/poi3d/GdxModelLayer.java +++ b/vtm-gdx-poi3d/src/org/oscim/gdx/poi3d/GdxModelLayer.java @@ -1,6 +1,6 @@ /* * Copyright 2014 Hannes Janetzek - * Copyright 2018 Gustl22 + * Copyright 2018-2019 Gustl22 * * This program is free software: you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License as published by the Free Software @@ -106,8 +106,10 @@ public class GdxModelLayer extends Layer implements Map.UpdateListener { model.nodes.removeIndex(0); model.nodes.add(node); } + node.scale.set(1, 1, -1); node.rotation.setFromAxis(1, 0, 0, 90); } + model.calculateTransforms(); poiModel.setModel(model); } diff --git a/vtm-gdx-poi3d/src/org/oscim/gdx/poi3d/GdxRenderer3D2.java b/vtm-gdx-poi3d/src/org/oscim/gdx/poi3d/GdxRenderer3D2.java index 0ab4a9da..b14b0544 100644 --- a/vtm-gdx-poi3d/src/org/oscim/gdx/poi3d/GdxRenderer3D2.java +++ b/vtm-gdx-poi3d/src/org/oscim/gdx/poi3d/GdxRenderer3D2.java @@ -116,8 +116,9 @@ public class GdxRenderer3D2 extends LayerRenderer { GLState.test(false, false); GLState.blend(false); - // GL.cullFace(GL20.BACK); - // GL.frontFace(GL20.CW); + //gl.cullFace(GL.BACK); + /* flip front face cause of mirror inverted y-axis */ + gl.frontFace(GL.CCW); cam.update(v); long time = System.currentTimeMillis(); @@ -160,6 +161,7 @@ public class GdxRenderer3D2 extends LayerRenderer { // GLUtils.checkGlError("<" + TAG); + gl.frontFace(GL.CW); gl.depthMask(false); GLState.bindElementBuffer(GLState.UNBIND); GLState.bindBuffer(GL.ARRAY_BUFFER, GLState.UNBIND); diff --git a/vtm-gdx-poi3d/src/org/oscim/gdx/poi3d/Poi3DLayer.java b/vtm-gdx-poi3d/src/org/oscim/gdx/poi3d/Poi3DLayer.java index a8935f5d..39c2fe09 100644 --- a/vtm-gdx-poi3d/src/org/oscim/gdx/poi3d/Poi3DLayer.java +++ b/vtm-gdx-poi3d/src/org/oscim/gdx/poi3d/Poi3DLayer.java @@ -1,6 +1,6 @@ /* * Copyright 2014 Hannes Janetzek - * Copyright 2018 Gustl22 + * Copyright 2018-2019 Gustl22 * * This program is free software: you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License as published by the Free Software @@ -307,8 +307,10 @@ public class Poi3DLayer extends Layer implements Map.UpdateListener, ZoomLimiter model.nodes.removeIndex(0); model.nodes.add(node); } + node.scale.set(1, 1, -1); node.rotation.setFromAxis(1, 0, 0, 90); } + model.calculateTransforms(); holder.setModel(model); } }