protected void updateGeometry(Vector3f start, Vector3f[] ends) {
        float[] pos = new float[ends.length * 3 + 3];
        pos[0] = start.x;
        pos[1] = start.y;
        pos[2] = start.z;
        int index;
        for (int i = 0; i < ends.length; i++) {
            index = i * 3 + 3;
            pos[index] = ends[i].x;
            pos[index + 1] = ends[i].y;
            pos[index + 2] = ends[i].z;
        }
        setBuffer(Type.Position, 3, pos);

        float[] texCoord = new float[ends.length * 2 + 2];
        texCoord[0] = 0;
        texCoord[1] = 0;
        for (int i = 0; i < ends.length * 2; i++) {
            texCoord[i + 2] = tmp.set(start).subtractLocal(ends[i / 2]).length();
        }
        setBuffer(Type.TexCoord, 2, texCoord);

        float[] normal = new float[ends.length * 3 + 3];
        for (int i = 0; i < ends.length * 3 + 3; i += 3) {
            normal[i] = start.x;
            normal[i + 1] = start.y;
            normal[i + 2] = start.z;
        }
        setBuffer(Type.Normal, 3, normal);

        short[] id = new short[ends.length * 2];
        index = 1;
        for (int i = 0; i < ends.length * 2; i += 2) {
            id[i] = 0;
            id[i + 1] = (short) (index);
            index++;
        }
        setBuffer(Type.Index, 2, id);
        updateBound();
    }
For serialization only. Do not use.
jme3-core/src/main/java/com/jme3/scene/debug/custom/ArmatureInterJointsWire.java