#include #include "main.h" #include "axis.h" #include "map.h" Buffer edit_buffer = 0; Vec edit_vec = 0; int edit_size = 0; /* extract frame of data, given frame */ EditFrame (data,map1,map2,map3,frame,dist) Buffer data; Map map1, map2, map3; int frame; float dist[256]; { int inc2, i2, len1, len2; register int inc1; register Buffer data1, edata; inc1 = AxisStride (MapAxis (map1)); inc2 = AxisStride (MapAxis (map2)); len1 = MapWindow (map1) - 1; len2 = MapWindow (map2) - 1; data+=frame * AxisStride (MapAxis (map3)) + MapLow (map1) * inc1 + MapLow (map2) * inc2; for (i2=0; i2 0.) *high = i+1; if (i<255) dist[i+1]+=dist[i]; dist[i] /= n; if (dist[i] > 0. && *low == -1) *low = i; if (dist[i] > .5 && *median == -1) *median = i; } } /* extract sub volume given three map axes */ EditCube (data,map1,map2,map3,dist) Buffer data; Map map1, map2, map3; float dist[256]; { int i2, i3, inc2, inc3, len1, len2, len3, i; register int inc1; Buffer data2; register Buffer data1, edata; inc1 = AxisStride (MapAxis (map1)); inc2 = AxisStride (MapAxis (map2)); inc3 = AxisStride (MapAxis (map3)); len1 = MapWindow (map1); len2 = MapWindow (map2); for (i=0; i<256; i++) dist[i] = 0.; len3 = MapWindow (map3); data+=MapLow(map3) * inc3 + MapLow (map2) * inc2 + MapLow (map1) * inc1; for (i3=0; i3