###################################################################
LATEST EMAIL UPDATE: 17 Oct 2014
###################################################################

A few new features, many small bug fixes.  Full details appended.

First, you can now locally patch a complex surface *cut* without
completely starting over, by using a label that covers the parts
of the cuts you don't want.  Do this by middle-clicking (instead
of default left-clicking) the "label:" line "D" (=display) button
(N.B. you have to make the label on an *uncut* surface :-} ).  You
can also kill a long running FILL with with cmd-F (i.e., shift-cmd-f).
Both of these are mainly useful for revising complex flattening
cuts on very large surfaces (e.g., my postmortem human cerebellum
with 5M vertices).

Second, there is a new, different "D" button on the "area:" line.
This one is used to calculate and display local areal distortion
(with the red/green curvature color scale) for any surface or patch.
The distortion is the area ratio of the current local vertexwise
area divided by original local area.  There is now a color scale
bar displayed for the red/green curvature color scale (which is
used to display the area ratios).  The top and bottom of the scalebar
are reported and controlled by the entries on either side of the
word "bar" (just above the fthresh entry), which is the same as
with all the other color scales.

I also rewrote nmovie from scatch because it was misbehaving on Mac
(no laptop left-click drag, arrow keys not working, dirty quit) and
it depended on many stale libraries.  The new one should work the
same as the MGH nmovie for rgb's and tiff's (MGH nmovie still
included as nmovieMGH).  The new one has no menu (click or space
bar to start/stop, left- or right-click-drag to scroll, right-click
or L/R arrows to stop/step, up/down arrows to speed up slow down).
With this inspiration, I added also added similar arrows/space
control (rewind, step, playback speed) to mpeg_play.

Finally, I added some crude hacks for direct manipulation of surface
pose in tksurfer.  First, click on the surface window, then with
control *and* shift depressed, you can rotate, scale, and translate
with a click-drag using the left, middle, and right mouse buttons.
This works best if you move in short straight strokes, releasing
after each stroke (esp for rotation).  I will code this more properly
one rainy day (hmmm... that would be most days here).  To make the
frame update faster, the surface color is cached during the movement
(because you can't adjust stat thresholds, etc during a movement...).

As always, bug reports appreciated.

### 17 Oct 2014 (patch cuts, display areal distortion, direct manip)
 1) local undo surface patch cuts using label (middle-click label "D" button)
 2) new "D" button for "area:" to calc+disp curr/orig area ratio (distortion)
 3) nmovie rewritten (Mac arrkeys, click-drag laptop scroll, static libtiff)
 4) new scripts: inflatemovie.tcl, flattenmovie.tcl
 5) direct manip/color-cache: clk surfwin, ctrl+shift + left/mid/right-clk drag

To install the new csurf:

  cd <dir-where-csurf-currently-installed>
  mv csurf csurf-YYMMDD
  tar xvfz csurf0.8-{mac,linux}-YYMMDD.tgz

cheers,
marty

##############
UPDATE DETAILS
##############

---------------- 17Oct2014 csurf0.8 tarballs --------------------------------
--nmovie.c/tksurfer.c/tkmedit.c/tkregister.c/mytoppm.c/sgiimagelib.c: iclose bug
--tksurfer.c: set_*_color functs cache calc'd col, use if move (overlay:spd=6x)
--tksurfer.c: make unselect vertex show up (was: not visible til next redraw)
--tksurfer.c: block shift-left-clk show curvim (vs select!) unless curvimloaded
--lib/help/csurf/tksurfer: update live rotate/zoom/translate
--mk0{.csh}: add new helpfile, Hiroshi's color LUTs to $CSURF_DIR/lib/lut
--lib/help/tksurfer/val_w3: new file
--tksurfer.tcl: add lib dir LUTs to "lut:" dropdown
--tksurfer.tcl: add w3 colscale to F3 interface, move jet up to make room
--tksurfer.c: better error on read non <float> <0-255> <0-255> <0-255> lut
--tksurfer.c: mv: req ctrl-shift-R-click-drag: don't overlap ctrlscale,tcourse
--tksurfer.c: Hiroshi magenta-blue-cyan-green-yellow-red mirr wheel
--tksurfer.c: direct right-click-drag up/down translate up/down
--tksurfer.c: direct mid-click-drag scale up/down around startclick
--tksurfer.c: direct left-click-drag surface rotate (curv:OK overlay:slow)
--csurf: add AFNI button to rawaverage panel
--tksurfer.tcl: expose noninteccendiskflag (ecc inset) "ecp" chk F3 interface
--tksurfer.tcl: expose logtransflag (for ecc inset) as "exp" chk F3 interface
--tksurfer.tcl: turn curv scalebar on automatically when displaying area ratios
--tksurfer.c: fix low brightness cm scale bar when not draw_colscalebar
--tksurfer.tcl: cmplx/olay/fixcolscale update bar/disk butt only scalebar=OFF
--tksurfer.tcl: init/change scalebar butt disk->bar if realval or no overlay
--lib/help/tksurfer/fill: HOWTO/why kill fill
--fourier.c: if !statssubsamp, faster clearer BRIK read (no stats,buff/unbuff)
--nmovie.c: space for start/stop loop, slightly diff logic than click
--mpeg_play: 'p' (or space) for play, 'l' for play+loop, better usage, defaults
--mpeg_play: live adj mpeg_play frame rate with up/down arrow
--movie360.tcl: run mpeg_play in background to not hang tksurfer interface
--tksurfer.tcl: init/change scalebar control button "disk"=>"bar" if real-val'd
--mk0{.csh}: add val_lt to mk all-in-one helpfile
--lib/help/tksurfer/val_lt: better explanation of colscale12->14
--tksurfer.tcl: unset overlayflag or calc arearatios: force redo autocolorscale
--tksurfer.c: display curvature color scalebar, autonorm scalebar limits
--tksurfer.tcl: "D" ops reinstate curr surf area (.area) compute_normals_areas
--lib/help/tksurfer/{area_disp,area_lab}: area_disp: new helpfile, revise a_lab
--tksurfer.tcl: change mid-clk overload area label to mid-clk overload of "D"
--lib/help/tksurfer/labelalpha: document change of "alph" to "tran" for squish
--tksurfer.tcl: "area:" line "D" button disp distortion w/curr2orig arearatio
--tksurfer.c: compute_curr2orig_area_ratio (write w/write_binary_areas)
--lib/help/csurf/tkmedit: hotkeys update
--tkmedit.c: change {cmd-}k to 1-time bigcursor, removed at next redraw
--inflatemovie.tcl: add rotpump option (multiple inf/def while rotating)
--nmovie.c: add -scale, -redrawframes options
--tksurfer.tcl: re-expose normalize_area function on F3 interface bottom
--mk0{.csh}: add flattenmovie.tcl to dist (skips missing intermediate)
--lib/tcl/flattenmovie.tcl: new script to make basic flatten movie
--lib/help/csurf/makenewsubj: update to reflect mostly MGH recon-all
--csurf: surfaces combo also filled with inflated????, sphere????
--setdefpatchview.tcl: make "occ*" (e.g., occsm) synonym of "occip"
--csurf: mghspherecmd: $bindir -> $mghbindir (never used!)
--csurf: ExpertPrefs reorder mris_flatten -distance parms into cmdline order
--csurf: block singlequote,redirects in runacmd cmd string, popup error
--lib/help/tksurfer/label_read: document overloaded "D" button
--tksurfer.tcl: overload "D" button with read_label_to_undo_cut
--tksurfer.c: read_label_to_undo_cut
--tksurfer.c: killfillflag for hi-res too-long-running fill
--mk0{.csh}: add inflatemovie.tcl to dist
--lib/tcl/inflatemovie.tcl: new script to make inf/def/inf/def movie loop
--tksurfer.tcl: tcl log: "turn ON/OFF" => "turned ON/OFF"
--lib/help/csurf/smoothcurvinflatesulc: fix stale other help ref
--csurf: widen "custom" translate fields 2->3 (too easy to miss 100)
--mk0{.csh}: compile new nmovie, mv/retain MGH version to nmovieMGH
--nmovie.c: write csurf vers: static tifflib, Mac click-drag works, clean quit
--mv dist/precompiled-other/lib/Darwin-x86_64/libX11.dylib back (XQuartz=vers10)
--lib/help/csurf/reconall: update (bash, MPRAGE TR, back to NIFTI example
--mpeg_play,mk0: mpeg_play ctrlbar.c patch for R-arrow=Step, L-arrow=Rewind
--csurf: runacmd explicitly blocks/warns single quote or redirect in $command
--movie360.tcl: redirect mpeg_play output to avoid write pipe error
---------------- 06Sep2014 FreeSurfer0.8/csurf0.8 tarballs -------------------
--FreeSurferEnv.sh: rm set disabling append Linux LD_LIBRARY_PATH for libjpeg62
--mv dist/precompiled/lib/Darwin-x86_64/libX11.dylib to precompiled-other (?)
...




