Are there operations that are slow with this implementation? If space wasn't an issue (which it will be), I could see this being very practical.
I guess finding neighbors here is conditioned on a particular implementation of the sparse matrices, right? For example, if we just map each row to a linked list (like in a hashmap), then we wouldn't be able to perform queries of the form "for column j, which rows i satisfy A[i][j] = 1" quickly, which I think is necessary for figuring out neighbors?
How would you create the mapping from the vertex values to their enumeration? It seems that in this representation you are missing the actual location information, and would need an additional structure or method to encode this.
What dp the v, vn and f stand for in a typical .obj file? Are they related to implementation in incidence matrices?