Mario Meissner SOCIS 2017 Logs
Moving task over to rtexample. Including Voronoi tesselation. 0 and 1 points working, including user input (no hardcoded points).
Continued working on n-point Voronoi. Todays code doesn't compile yet.
12-8 & 13-8
Continue working on n-point Voronoi.
Finished initial Voronoi point implementation.
Will now continue working on implementing vectors.
Working on read_density_points to support vector input.
Finished read_density_points vector update and will now give support to transitions (vectors) with arbitrary 'rate' inside segment_density calculations.
Moved old logs to a separate page (http://brlcad.org/wiki/User:Mariomeissner/logs/old) to keep this one clean.
Left the code in a more stable shape. Fixed some bugs, projections are now skipping.
Finally set myself up in Germany. New objective: test out code and fix any more bugs. Took my time to set up dev environment, but couldnt work because of compilation issues.
Testing and fixing code. Found major flaw in projection skipping.
Worked on a new model to properly skip projections.
Implemented the new projection skipping model and re-ran the tests. Everything seems to work correctly for now.
Cleaning code and moving over to rtweight. Once I moved I will run rtweight tests to see if mass is correctly computed for simple shapes.
Found some more mistakes in the code.
Preparing the move to rtweight.
Moving code to rtweight. It's harder than expected and things don't work yet. I tried cleaning out most of the code that was used to read densities from the file, and rely only on my own function call (so that I can avoid the stupid segmentation fault I can't get rid of).
Mass returns as NaN so something is wrong somewhere. Debugging.
Had several compilation problems. I can now compile on VS again. Density file loads. Mass now returns 0.
Investigating cause of negative densities that end up causing the final mass to be 0.
20-9 & 21-9
Because of course registration and orientation events, busy. Break.
Fixing code in rtweight.
Fixed several issues, mass now computes, but wrongly.
Trying to learn to use the VS debugger.
Starting to get a feel on why things don't work. I'm finding and polishing several issues. I also noticed that I am not correctly handling two edge cases for segment density:
-First point should be a skip (for now I had assumed first point would never be one, without really thinking about it).
-First bunch of points or last bunch of points' projections lay outside the segment. They should receive special consideration.
From today I will try to approach the final step of my code in a slightly different way, in order to correctly handle projections outside the segment, but who's boundaries actually lay inside. I will use intersections to compute a list of boundaries, and then just loop through them once to calculate avg density. I will not use the projection point in this stage (I will still use it to predict a skip).
I know I should write complete code, but this overhaul will take some time. I will try to release in-progress working stages if I can. I really think this new version cleans up the mess quite a lot, simplifies the concepts, makes it all more readable, and most importantly, will support more situations than before, removing several flaws.
The whole projection concept wasn't that good of an idea to begin with, I shouldn't have stuck to it for so long. It's only useful for predicting skips.
24-9 to 1-10 Holiday (trip).
Refactoring stage 1.
Desiging new algorithm for stage one.
Designed and published new algorithm and published it.
Starting with implementation.
Broke down implementation steps. Got rid of intersection function, replaced by a new, more complete function that tells us if a point's region will be crossed or not, directly. Computes the intersection, checks if it lays inside the segment and checks distances to evaluate if the boundary is crossed by the segment or not, returns a boundary_t struct.
Implementing new algorithm step 1.
Finished and submitted new algorithm, tested for 0, 1 and 2 points.
Hunting for bugs and removing old/unused variables and code blocks.
11-10 && 12-10
Testing more cases and making sure no more bugs are present.
Moving code over to rtweight (again).