static void buildNeighborsSlow(TriInfo pTriInfos[], final int piTriListIn[], final int iNrTrianglesIn) {
        
        for (int f = 0; f < iNrTrianglesIn; f++) {
            for (int i = 0; i < 3; i++) {
                // if unassigned
                if (pTriInfos[f].faceNeighbors[i] == -1) {
                    final int i0_A = piTriListIn[f * 3 + i];
                    final int i1_A = piTriListIn[f * 3 + (i < 2 ? (i + 1) : 0)];

                    // search for a neighbor
                    boolean bFound = false;
                    int t = 0, j = 0;
                    while (!bFound && t < iNrTrianglesIn) {
                        if (t != f) {
                            j = 0;
                            while (!bFound && j < 3) {
                                // in rev order
                                final int i1_B = piTriListIn[t * 3 + j];
                                final int i0_B = piTriListIn[t * 3 + (j < 2 ? (j + 1) : 0)];
                                //assert(!(i0_A==i1_B && i1_A==i0_B));
                                if (i0_A == i0_B && i1_A == i1_B) {
                                    bFound = true;
                                } else {
                                    ++j;
                                }
                            }
                        }

                        if (!bFound) {
                            ++t;
                        }
                    }

                    // assign neighbors
                    if (bFound) {
                        pTriInfos[f].faceNeighbors[i] = t;
                        //assert(pTriInfos[t].FaceNeighbors[j]==-1);
                        pTriInfos[t].faceNeighbors[j] = f;
                    }
                }
            }
        }
    }
A private constructor to inhibit instantiation of this class.
jme3-core/src/main/java/com/jme3/util/mikktspace/MikktspaceTangentGenerator.java