It is a structure defined by XML. When program start first load the XML that describe the structure. The load function construct each object(all derived from WoaMember) and organized to a tree structure according to the XML, and set each property of each object, and hook each object together. WoaEnv is the node that group all objects that below it. WoaEnv is derived from WoaMember, so it also act as an ordinary WoaMember under upper WoaEnv. After the postinit method each object actually hooked each other according to the XML.
Every object inside the tree structure is equal. each object receive a pulse signal just go a small step according it's current condition and environment. many many different object cooperate together make a program functional.
As describe above, as a side effect of program organization, program may save to a XML file at any time, some times with a data file to save binary data. Afterwards you may load this XML file and postinit it, then the program have same condition as this program that save to the XML, exactly before save it. Namely you want debug program in certain stage, you save XML just before that time and you can load it times and times.
Back to 3D reconstruction, in order to prove my opinion quickly first restricted that take 3 pictures in same level to reduce complicity of my lib. In same horizontal level camera shotting is not required theoretically. Now let bezier curve to fit a discrete point sequence and do some other algorithm about bezier, let the curve fit edge accurately so easily match different part of each image, so easily get each parameter of 3 shots.