public void generateDebugTangents(Material mat) {
        for (int x = children.size(); --x >= 0;) {
            Spatial child = children.get(x);
            if (child instanceof TerrainQuad) {
                ((TerrainQuad)child).generateDebugTangents(mat);
            } else if (child instanceof TerrainPatch) {
                Geometry debug = new Geometry( "Debug " + name,
                        TangentUtils.genTbnLines(((TerrainPatch) child).getMesh(), 0.8f));
                attachChild(debug);
                debug.setLocalTranslation(child.getLocalTranslation());
                debug.setCullHint(CullHint.Never);
                debug.setMaterial(mat);
            }
        }
    }
Quadrants, world coordinates, and heightmap coordinates (Y-up):

        -z
     -u |
   -v  1|3
 -x ----+---- x
       2|4 u
        | v
        z
<code>createQuad</code> generates four new quads from this quad.
The heightmap's top left (0,0) coordinate is at the bottom, -x,-z
coordinate of the terrain, so it grows in the positive x.z direction.
jme3-terrain/src/main/java/com/jme3/terrain/geomipmap/TerrainQuad.java