I implemented the plots as per request, sample output (from integration test) is attached. Note that in the 1D plot, two lines are apparent - the grey line is the volume extent in z at all points, the black line is the volume extent in z on-axis. For the 2D plot, note the coloured rectangles are "bounding boxes" in z and r, i.e. I calculate the smallest possible rectangle that can encompass all points and plot this. Doing a "convex hull" or similar is quite difficult and beyond the scope of this feature.


For the "diff"ing of two geometries, I made a volume bounding box json output file. User then has to manually inspect the output file for differences (well more likely they would make a script). This works as long as the CAD import has stable volume names for this version or that version. I attach a sample output, format is something like:
{
<string volume name>: {
"z_min": <float minimum z of steps in volume>,
"z_max": <float maximum z of steps in volume>,
"r_min": <float minimum radius of steps in volume>,
"r_max": <float maximum radius of steps in volume>,
"material": <string material name>
},
...
}
e.g.
"Vol14": {
"z_max": 320.0,
"r_min": 0.0,
"material": "G4_Al",
"r_max": 2.23606806280132,
"z_min": 280.0
},
...
I will run it through test and if it goes smoothly commit later today.