I've written the first bit of code for this project in the form of the
WangSet class. The code can be found in my fork of Tiled in the branch "WangTiles".
A WangSet holds info connecting tiles of a TileSet to wangIds. These wang ids are an
unsigned int which can be parsed for info on the color of each corner edge. (More info on this on the git hub ticket for wang tiles here near the bottom). There are functions for basic info access/setting, as well for finding a tile in the set which matches a given wangTile. This finds all viable tiles, and returns one at random.
Another necessary functionality is to, given a tile, find that tile's wangId. Right now this is stored as a map from tileId to wangId. This isn't super ideal, as the info is being stored twice (the other in a map from wangId to tile). There are some reasons I think it's best to do it this way, but I'm open to ideas to streamline it a bit.
Also included in the header file are a number of functions which work with wangIds. Currently none are actually in use, but I went ahead and included them as I think they will be useful later on. Ill remove any unused functions if I continue not to use them.
The next steps in this project will be finalizing how wang tiles will work, and moving forward to make that happen.