Hello, devharlan!
Thank you for sharing this incredible tool and congratulations. It is a perfect complement to CamnShnappr, wich would not be practical in a real world enviroment without it. Awesome.
Regarding the bug encountered by cyberpatrolunit, I have found what causes it, because it also happened to me.
From time to time, the wasd controls would stop working and all points would reset, forcing me to reload the project and with no aparent cause. The thing is that sometimes only one axis would stop working and the others would be fine. Once this kicked in, no mather what you did the controls would be dead until a reload.
This is what is happening:
-In project1/geoMapSetup5 there is a table called PointSums that holds the updated point possitions and feeds the DatTo SOP.
-The first row of this table holds indications for the names of the axis: P(0), P(1), etc. Without them, the DatTo SOP cannot read the table and the positions will not change.
-For some reason, sometimes the arrowKeyHandlers DAT will not take a valid point index and will send a 0 as index, causing the names of the first row of the PointSums table to change (for example, P(1) will change to 0.3P(1) or 0.3). When this happens, all points in that axis will seem to reset (because the SOP can’t read them anymore) and further modifications in that axis will not seem to have any effect. This can happen on one or all columns at the same time.
-So, while apparently the controls have stopped working, it is misleading to say so because they are fine; the python code is executing correctly and all tables are beeing updated just fine. The problem is that the DatTo SOP cannot read the point data correctly.
While I dont know why the python reads 0 as a point index in the first place, an easy solution would be to check wether the index is 0 or not, and if it is do nothing, thus avoiding unwanted modifications to the table.
I would do the modification myself but honestly I am a little green in python and maybe someone will find a more elegant solutions to the real cause (the 0 point index). Sorry about that, I wish I could be more helpful.
If anyone encounters this problem while working, just go into the PointSums table and rename the first row to their original values. This will give you all your modifications back (the points where never really reset in the first place) and all the controls will work fine.
I have a couple of sugestions as well:
First, it would be nice to make the project more self contained for easy importing, because as it is now it is necesary to keep it in the root project or the custom variables will stop working.
Second, I didnt really find useful taking the same camera as CamShnapper for visualisation. CamShnapper generates a custom matrix for the camera. When this matrix differs a lot from the normal camera (this happened to me probably because of the lens I was using), vertpusher will not be able to select any point at all. Im guessing there is some raytracing happening under the hood and the altered projection matrix affects it.
To solve it it I had to use a different camera with the standard projection matrix. I also found myself changing this camera’s angle a lot to see occluded points and select them, sometimes having to zoom in a lot (there where a lot of points in my model).
I thing using a camera interface similar to that of CamShnapper would be more useful and make more sense. If the user needs to reproduce a similar angle to the used by CamShnapper, it would be really easy to do so.
Hope this helps, and thank you again for this amazing contribution.
All the best =)