                        =====================
                        ESP and OpenCSM To Do
                        =====================

17aug12  change @ to !

18aug12  allow multiple invocations of UDPs

18aug12  print out results of set and patbeg statements

18aug12  remove -recover from buildCSM

19aug12  return bodys on stack when an error occurs

21aug12  define @ibody, @nnode, @nedge, @nface,
                @xmin, @xmax, @ymin, @ymax, @zmin, @zmax,
                @xcg, @ycg, @zcg, @volume, @area,
                @Ixx, @Ixy, @Ixz, @Iyx, @Iyy, @Iyx, @Izx, @Izy, @Izz

22aug12  add more Faces for hollow

23aug12  change fillet to use edgelist array

23aug12  change chamfer to use edgelist array

24aug12  implement chamfers in EGADS

26aug12  reset "build not completed" message after successful build

24sep12  ocsmCheck to verify that branches are properly connected

24sep12  add ibrch argument to ocsmDelBrch

24sep12  add iafter argument to ocsmNewBrch

24sep12  reduce outlevel around EG_attributeDel command (import)

29sep12  suppressing Brch00005 fillet (tutorial) is incorrect

 1oct12  fix test_gem.py (in GEM/pyRite/test)

18aug12  move WebViewer files to subdirectory

26aug12  only send requests once

26aug12  respond to messages sent to serveCSM

 1sep12  implement editPmtr

 1sep12  implement addPmtr

 2sep12  implement editBrch

 3sep12  center editBrch dialog on screen

 3sep12  implement suspend/resume in editBrch

 3sep12  implement addBrch

 3sep12  implement delBrch

 4sep12  fix ESP error (demo2, xmin->-2, xmax->1.5, bogus edges)

 7sep12  "use strict" in all JavaScript

11sep12  edit-Brch does not work in GoogleChrome

11sep12  hide leading $ in editBrch

12sep12  feedback if connection to server is lost

19sep12  implement "Save"

19sep12  implement "Help"

19sep12  write ESP-help.html (excluding tutorial)

21sep12  adding SOLEND without SOLBEG causes seg fault

22sep12  allow user to enter hostname:port in ESP

22sep12  allow user to select hostname and/or port

22sep12  <esc> should not close server (FireFox)

23sep12  include switch to enable/disable editing of
             feature tree (Branches and Parameters)

23sep12  show internal Parameters but do not allow them
             to be editted

24sep12  implement journalling

24sep12  remove spaces from arguments in editBrch

25sep12  Chrome initialization

26sep12  implement "Add Branch after" in brch2_cmenu

26sep12  implement "Delete this Branch" in brch2_cemnu

26sep12  visual indication that Branch has been deleted

26sep12  do not highlight "rebuild" button if addBrch or delBrch
             failed

26sep12  show "inactive" for inactive Branches

29sep12  inactivate BOOLEAN if PRIMITIVE is suppressed

30sep12  inactivate APPLIED if BOOLEAN is inactive

30sep12  keep tree open upon rebuild

30sep12  do not inactivate Branches that are already suppressed

30sep12  start serveCSM without a file

 1oct12  show builtTo if build does not complete

 1oct12  suppressing a Branch should mark MODL as needing check

 1oct12  implement addAttr

 2oct12  implement editAttr

 2oct12  implement "Build to"

 3oct12  post "Re-built entire configuration, producing n Bodys"

 3oct12  "q" option should show attributes

 3oct12  ensure that hitting Cancel always works

 6oct12  implement UnDo

 6oct12  do not let OK be pressed if all fields are not filled

 7oct12  provide default values in newBrch

 7oct12  change tutorial.csm to have different weights

15oct12  write tutorial

*******  v1.0 release

22oct12  fix udpImport to copy to allow multiple imports

26oct12  remove unneeded Xlib.h include

 8nov12  reset rotation center

21nov12  return error for bad bodynumber in import

21nov12  import should take optional bodynumber

21nov12  make UDP arguments case insensitive

24nov12  add udpExtract and test cases

21dec12  add 4 spaces a beginning or ocsmPrint routines

25dec12  add home and arrow keys in ESP

25dec12  remove x X y Y z and Z options from ESP

25dec12  initial versions of ocsmSetDot and ocsmGetDot

26dec12  undo should reset sequence number

26dec12  undo should update tree

26dec12  fix typos (pmtrStats->pmtrStat and brchStats->brchStat)

26dec12  update ESP-help to have smaller images

26dec12  add Glossary to ESP-help

15jan13  protect sprintf and strcpy

18jan13  fix string overwrite in serveCSM

18jan13  remove all bodys and context at end of serveCSM

18jan13  fix nint(x) when x<0

19jan13  do not send bogus message at end of journal read

19jan13  check for zero length filename in ocsmLoad and ocsmSave

21jan13  protect against overflow if many bodys are returned

*******  v1.01 release

20mar13  remove ebody deletion in udpResetAll

20mar13  add udpBox with test cases

23mar13  add round corners to 3D boxes in udpBox

23mar13  add <home> and arrow keys in buildCSM

30mar13  do not update data when using <home> in buildCSM

31mar13  add udpBezier with test cases

20apr13  add global Attributes

20apr13  allow inline files for user-defined primitives

22apr13  add Debug option to udpBezier

22apr13  improve degeneracies in udpBezier

23apr13  if initial error encountered, show partial build in serveCSM

23apr13  add -recover option to buildCSM

24apr13  generalize degeneracies in udpBezier

29apr13  move removal of tmp_OpenCSM_XXX files to end of buildCSM and
         serveCSM

 7may13  update to rev 1.02 (but do not release yet)

 8may13  upgrade to OpenCASCADE 6.6.0

 8may13  report OpenCASCADE version in output

 8may13  adjust jmr3a, jmr3b, fighter1 for OCC 6.6.0

 9may13  add tolerance prints everytime Body is built

 9may13  add component names in vsp2csm

 9may13  automatically close Bodys in vsp2csm

 9may13  remove ifort references from Makefiles

 9may13  add vsp files to OpenCSM test suite

10may13  small edits during refactoring of vsp2csm

13may13  add vsp cases to test suite

18may13  fix iford for non-axis-aligned cylinders with EGADS

18may13  fix iford for non-axis-aligned cones with EGADS

18may13  add "select" statement

18may13  expand @-parameters and make them context sensitive

19may13  add test cases for select statement

19may13  add "faceID" attributes

19may13  add "edgeID" attributes

20may13  print entity prints for "q" option in buildCSM

20may13  order faceID/edgeID/nodeID by xyz-CG location

20may13  ensure buildCSM displays edgeID and faceID attributes

20may13  improve documentation of @-parameters (ESP-help)

21may13  ensure ESP displays edgeID and faceID attributes

21may13  add select statement in ESP

24may13  update ESP-help for version 1.02

*******  v1.02 release

21jun13  change internal version to 1.03

27jun13  fix iattr-1 errors in ocsmGetAttr

29jun13  add code to fix end slopes in spline1d (udpFreeform)

30jun13  add "toMark" optional argument to union statement

30jun13  document UDPs that ship with OpenCSM

 1jul13  add finite-diff slope and natural end conds in udpFreeform

 1jul13  add fly mode to buildCSM

 3jul13  implement FD end conds for 1D and 2D in udpFreeform

11jul13  add ocsmPrintAttrs

 3aug13  fix links to .js files in Makefiles

16sep13  convert transform matricies from 2d to 1d arrays

21sep13  add -batch option to serveCSM

21sep13  make <left> translate object left in fly-mode in buildCSM

21sep13  make <left> translate object left in fly-mode in ESP

21sep13  add <PgUp> and <PgDn> for zoom in/out in buildCSM

21sep13  add <PgUp> and <PgDn> for zoom in/out in ESP

21sep13  @-parameters should update after rebuild in ESP

25sep13  make output of udpBox contionuously differentiable

28sep13  make output of udpEllipse continuously differentiable

28sep13  blend and loft test cases

28sep13  loft with round leading- and/or trailing-edge

28sep13  hollow with thick=0 should convert SOLID to SHEET

28sep13  hollow with thick=0 should convert SHEET to WIRE

30sep13  improve lofts in EGADS

 9oct13  fighter4 does not work (face attributes lost)

 9oct13  remove absolute paths in Makefiles

10oct13  make sure all sketches have positive-facing normals

10oct13  convert loft to blend in several test cases

14oct13  str2val fails when compiled -O on DARWIN64

23oct13  simplify udpNaca to use latest EG_approximate

23oct13  make sure udpNaca always generates a +Z normal

23oct13  add nacawing2 test case (uses blend)

24oct13  always list external Parameters first in ESP

24oct13  when adding Branch in ESP, add to tree immediately

24oct13  when adding Param in ESP, add to tree immediately

*******  v1.03 release

26oct13  increase vesion number to 1.04

26oct13  fix DEBUG compilation warnings on DARWIN64

 6nov13  revolve with angle<0 produces wrong body

 9nov13  write udpParsec (from Justin's .c function)

 9nov13  add Sobiesky's parameters to udpParsec

10nov13  add Meanline parameter to udpParsec

10nov13  extend union to sew together SheetBodys into a SolidBody

12nov13  create test cases for vsp3.0 files

15nov13  implement ocsmGetUV and ocsmGetXYZ

15nov13  define selector types (NODE, EDGE, FACE, and VOLUME)

15nov13  implement ocsmSetDot

15nov13  implement 'p' and 'P' options in buildCSM

16nov13  implement ocsmGetDxyz

16nov13  compute velocities analytically for BOX and CYLINDER

16nov13  change UDP signature to get values back

16nov13  implement sensitivities in buildCSM ('d' and 'W' options)

16nov13  compute velocities for BOX and CYLINDER

17nov13  verify that vsp3.0 files can be read in OpenCSM

17nov13  allow use to select sensitivity types by numargs to 'W' in
             buildCSM

17nod13  implement derivatives in str2val

17nov13  account for TRANSLATE, ROTATEx, and SCALE in ocsmGetDxyz

18nov13  fix tutorial.jnl

18nov13  set dot=0 in ocsmSetValu

19nov13  ocsmBuild should create @-parameters for values returned from
             UDPs

19nov13  return @@numBodies from udpImport

23nov13  fix point velocity errors after ROTATEZ

25nov13  extend udpNaca to optionally input thickness and camber

25nov13  compute velocities for SPHERE

27nov13  fix "Non-aligned pointer being freed" error

28nov13  compute velocities for CONE

28nov13  if filename starts with "$/", it is relative to path of .csm
             file

29nov13  compute velocities at tess points if uv==NULL in ocsmGetDxyz

30nov13  fix velocities for SET statement

30nov13  only regenerate parts of tree that have changed

30nov13  fix derivative error for hypot(0,0)

30nov13  macbeg not deferred in second call to ocsmBuild

 1dec13  mark branches as dirty if value of any arguments have changed

 5dec13  remove spurious "unused" warning messages from compiler

 5dec13  fix / and \ incompatability in filenames in LINUX and WIN32

 6dec13  suppress/resume causes inappropriate "ERROR:: ibrch
             disagrees" message from recycleBody

 7dec13  compute derivatives or Xcent, Ycent, Xmidl, Ymidl, turnang,
             and tangent in str2val

 7dec13  fix error when recycling sketches

 7dec13  ocsmCheck does not account for patterns with 0 iterates
             (body3)

19dec13  add rotor1 and rotor2 test cases

21dec13  change copyright notices to 2014

22dec13  skip application of attributes to Faces if it contains ;

30dec13  extend definitions to SPRINT15

 1jan14  added udpSew

 1jan14  added "find unmatched Edges" option in buildCSM

14jan14  fix union error for body2, body3, and body4

25jan14  compute velocities via finite differences where needed

25jan14  redesign UDP sensitivity interface

25jan14  compute velocities analytically for udpBox

25jan14  cache perturbed Body when calculating sensitivities via
             finite differences

25jan14  return only normal velocities on Faces (rename ocsmGetDxyz as
             ocsmGetVel)

25jan14  rename ocsmSetDot to ocsmSetVel

25jan14  free up unused ebodys and etesses

26jan14  include udp.h into all UDPs

26jan14  update all UDPs to use new sensitivity interface

26jan14  set .ebody=NULL and .etess=NULL when deleting context in
             buildCSM

27jan14  make sure that all UDPs have stubs for all required routines

27jan14  add wing/body test case (design5)

27jan14  udprim is recycled even when argument(s) have changed

28jan14  reconfigure ESP with 4 windows

29jan14  buildCSM should tell user to 'B' before 'w'

29jan14  if dot=0 for all args, set dxyz=0 and skip analytic and
             finite differences

29jan14  in buildCSM, the 'B' ption should reuse etess if possible

29jan14  if UDP does not return sensitivity info, get velocity via
             finite differences

29jan14  finite differences do not work when there is more than one
             body on the stack

29jan14  add sensitivity tests to tutorial.jnl

31jan14  add sensitivity capability into ESP

 1feb14  option to allow changing scalar limits in ESP

 1feb14  fix editing of wrong parameter in ESP
             (journal change: setPmtr;ipmtr -> setPmtr;pmtrname)

 1feb14  add sensitivity tests to tutorial.jrnl

 2feb14  key window does not resize in ESP

 2feb14  reuse etess if it already exists

 2feb14  return only one error message to ESP if velocity calculation
             fails

 2feb14  remove "test" button in ESP

 4feb14  allow .jnl files in buildCSM

 4feb14  automate testing of sensitivities

 4feb14  add design test cases that exercise all ocsm primitives

 4feb14  add ribs and spars to design5

 4feb14  allow for very long arguments

 5feb14  design5 fails if area=10.001 or area=9.999

 5feb14  design7 seg faults when computing sensitivities

 5feb14  finite differences anly used  for ATTRREALSEN paramaters

 6feb14  print paramater velocities for UDPRIMs

 7feb14  many "identify;" messages sent to server during lengthy
             operations on server

10feb14  design5 has odd velocities on fuselage when DV(thick)=1

10feb14  ^A (0x01) in .jnl should exit buildCSM

21feb14  add slot to design2

21feb14  fillets return wrong sensitivities

 1mar14  remove "ibody" and "iford" attributes (never used)

 1mar14  document OpenCSM-generated EGADS attributes (in OpenCSM.h)

10mar14  NaN returned for velocity at vertex of cone

10mar14  update documentation of face-order for fillet, chamfer, and
             hollow

10mar14  seg fault when cleaning up UDPs (extract, freeform, parsec,
             and waffle)

10mar14  design6 and bottle2 depend on fixed face numbering (and not
             faceID)

10mar14  analytical design velocities fail for rotate

10mar14  suppressing transforms at end of design2 causes seg fault

10mar14  update design2 to have rotations in all directions

11mar14  add hollow8 which is a hollow of a hollow

11mar14  update for new fillet/chamfer/hollow API

12mar14  face-order for hollow Faces set based upon faceIDs of
             Faces that are offset

16mar14  store .x .y and .z for Nodes

16mar14  store .ibeg and .iend for Edges

16mar14  add boxywingbodyflap test case

16mar14  design6 fails due to hollow

18mar14  add SWEEP command (OpenCSM.h, OpenCSM.c, ESP-addBrch.html,
             ESP-editBrch.js, ESP-help.html, and test cases)

18mar14  allow non-planar open sketches

20mar14  update sheet11 to return all 5 face Bodys

20mar14  EG_mapBody not being called for all Bodys (design5 camber)

20mar14  document limitations of SWEEP in OpenCSM.h

20mar14  suppressing a branch does not inactivate branches that depend
             on it (that is, "serveCSM ../data/tutorial -jrnl
             ../data/tutorial.jrnl -batch" returns error -214)

20mar14  when computing sensitivity, change KeyWindow title to
             d(norm)/d(var) or d(norm)/d(***)

22mar14  change face_T.ibody and face_T.iford arrays into a scalars

25mar14  indexing bug in velocityOfFace

25mar14  remove vsp3.0 test cases

25mar14  change internal %11.6f to %lf

25mar14  ensure all UDPs have udpMesh routines

25mar14  include <unistd.h> in serveCSM even for WIN32

25mar14  be able to compute sensitivity with one click

26mar14  seg fault in "serveCSM ../data/basic/design2 CompSens Height"
             (compile OpenCSM.c with -O0 on gcc 4.0.1)

27mar14  legend in Key window is wrong if there is an internal
            parameter with a non-zero design velocity

29mar14  's' option in buildCSM should compute sensitivites
            for multi-valued parameters

29mar14  attribute values and velocities should be computed
            when Branch is executed (so that variable attributes
            are properly assigned within patterns)

29mar14  update ESP-help for key window and sensitivities

30mar14  sensitivity of nrib fails in design5

30mar14  sensitivity of nfin fails in design7

30mar14  ESP-editBrch mislabels arguments for udprim

30mar14  remove requirement for '!' in arguments to UDPs

30mar14  require argValue* to start with '$' if a string (such as a
             filename)

30mar14  cannot add a 'udprim' in ESP with fewer than 9 arguments

30mar14  cannot add a 'select' in ESP with fewer than 8 arguments

30mar14  update figures in ESP-help

31mar14  wrong velocity at degenerate edges due to lack of normal
             direction (ComputeSensitivity(xnose) in design5)

*******  v1.04 release

 6apr14  increase version number to 1.05

12apr14  fix face[].ileft and face[].irite to be consistent with
            direction of Edge

12apr14  add .nface to edge_T to keep track of number of Faces
             incident on each Edge

24apr14  return OCSM_NEED_TESSELLATION if tessellation is needed and
            there is none (can happen in ocsmGetVel)

24apr14  mark sketches as dirty if any of the components have changed
             (bottle2: change depth)

27apr14  ocsmGetVel returns wrong values if uv!=NULL

27apr14  add 'n' option to find sensitivity of one parameter in
             buildCSM

27apr14  update design0 test case

 1may14  add .ibody to node_T structure

 3may14  compute velocities for EDGEs

 5may14  compute velocities for NODEs

 5may14  add design0a, design0b, and design0c test cases

 6may14  fix DARWIN64 compiler warnings

 6may14  fix ocsmSetVel for irow=icol=0

 6may14  'n' option in buildCSM sets Parameter velocity for all rows
             and columns

 6may14  add CRM_NACA test case

 7may14  add design0d, design0e, design0f, and design0g test cases

 8may14  change udpSensitivity signature to add NODES and EDGES

 8may14  compute sensitivities in udpBox

 8may14  compute sensitivities in udpNaca

 9may14  fix typos in ESP-help.html (thanks to Bill Jones)

 9may14  do not return body[] if body == NULL

12may14  compute sensitivities for EXTRUDE

13may14  compute sensitivities in udpEllipse

14may14  fix NODE velocities after HOLLOW

15may14  fix two sensitivity errors (FD for face and TORUS)

16may14  fix compiler warning associated with CAPRI build

16may14  issue error messages when str2val fails

16may14  do not evaluate attributes that contain a semi-colon

17may14  add RULE command

18may14  suppress printing of "dots" if all zero

18may14  design5 fails sensitivity for 'camber'  [should create
             perturbation for MODL instead of for a Body]

18may14  design0g always returns zero sensitivities

19may14  bad edge mapping for non-manifold Edges (design0e and
             design0f)

19may14  fix Edge mapping in velocityOfEdge for non-manifold Edges

20may14  add FORCE_FINITE_DIFF compile flag to force all sensitivities
             to be computed via finite differences

20may14  externalize createPerturbation and removePerturbation (but do
             not prototype in OpenCSM.h) so that knowledgable user can
             force finite difference sensitivities at run-time

20may14  add quantitiative comparison of analytic and finite
             difference sensitivities to 's' option in buildCSM

20may14  add design0 test case to test effects of
             translate/rotate/scale on sensitivities

20may14  fix subtle sensitivity errors associated with
             translate/scale/rotate

21may14  errors not reported when perturbation fails in 's' option in
             buildCSM

21may14  error in UDPs when computing sensitivities by finite
             differences

21may14  check analytic vs. finite difference sensitivities in all
             design*.csm test cases

21may14  update CRM_NASA and design0g test cases to twist about 3/4
             chord point

22may14  analytic sensitivities for RULEd surfaces

22may14  if UDPRIM is driven by a variable that changes,
             velocityOfEdge and velocityOfface returns the value for
             last value only

26may14  add matchCSM program to optimize parameters so as to match
             to a comparison data set

26may14  add match1 and match2 test cases

26may14  change "%lf" to "%.15lf" within OpenCSM

28may14  surface velocities for RULEd end faces is switched

28may14  fix VALGRIND error when udprim statement has fewer than 9
             arguments

28may14  externalize (but do not publish) createPerturbation,
             removePerturbation, velocityOfNode, velocityOfEdge, and
             velocityOfFace

30may14  change "%.15lf" to "%.15le" within OpenCSM and add "number1"
             test case

31may14  implement "make test3" and "make test4" to facilitate testing

31may14  consolidate RunAllCsmFiles into Makefile.DARWIN,
             Makefile.DARWIN64, and Makefile.LINUX64

 3jun14  better error messages in 's' option in buildCSM

 3jun14  use EG_ruled function

 3jun14  clean up udp cache when Body is deleted

 3jun14  use steepest descent every n steps in matchCSM

 3jun14  use velocities in matchCSM

 3jun14  add PROFILE flag in Makefile.DARWIN and Makefile.DARWIN64

 4jun14  allow Nodes at beginning and/or end of RULEd body

 4jun14  prototype "include" statement

 4jun14  add complex_rotn* test cases

 4jun14  add rule* test cases

 4jun14  non-evaluated version of ocsmSetValu (ocsmSetValuD)

 4jun14  non-evaluated version of ocsmSetVel (ocsmSetVelD)

 4jun14  allow +/- cambers in udpNaca

 5jun14  use GV graphics for matchCSM

20jun14  update OpenCSM.h for mirror, store, restore, include, return,
             udparg, lbound, and ubound statements

21jun14  implement "mirror" statement and test cases

21jun14  implement "udparg" statement and test case

23jun14  finish up sensitivities for mirror

23jun14  disable context menu in Graphics Window in ESP

23jun14  fighter1 returns lots of "EG_context contents of topObj NOT
             context" errors

24jun14  large arguments not passes correctly to UDPs

26jun14  be able to pass doubles to/from UDPs

30jun14  remove X11 include from vsp2csm.c

30jun14  when finite differencing, erroneous velocities are computed
             when knot spacing differs

 1jul14  set @@numbodies for import statement

 2jul14  restructure UDPs to use common udpUtilities

 3jul14  multiple sensitivities in ESP fail when more than one Body is
             returned

 3jul14  t and uv not passed properly into finiteDifference from
             velocityOfEdge and velocityOfFace (caused GEM valgrind
             error)

 3jul14  added design0m test case to test sequential transformations

 3jul14  revolve command hangs in a loop that produces EG_checkOR
             errors in nosecone1

 4jul14  velocity for mirror is wrong (Bill Jones)

 4jul14  reduce nominal dtime for finite differences

 4jul14  document rules for Parameters in OpenCSM.h

 4jul14  sensitivity errors for udpBox (design0d, design4)

 4jul14  sensitivity errors for udpEllipse (design0h, design0i,
             design0j)

 6jul14  include loft deprecation message in OpenCSM.h

 6jul14  write gridCSM to test grid sensitivities

 6jul14  fix analytic sensitivities in udpNaca (use binary search to
             find s associated with given point)

 6jul14  implement optional "lbound" and "ubound" statements and add
             bounds test case

 6jul14  add ocsmGetBnds to OpenCSM API

 6jul14  fix gridCSM for planar Faces

 7jul14  use EG_getEdgeUV in gridCSM

 9jul14  editBranch in Chrome hangs ESP (known Chrome limitation
             associated with return value from showModalDialog)

 9jul14  show builtTo in ESP feature tree

 9jul14  update ESP-help

10jul14  activity in editBrch is wrong if Branch is inactive

14jul14  remove context-sensitivie menus from ESP

15jul14  update ESP-help for interface without modal dialogs and
             context-sensitive menus

15jul14  update pictures in ESP-help

15jul14  fix arrow keys in Chrome

15jul14  test ESP with Firefox, Chrome, and Safari

16jul14  distinguish four windows in ESP for cases where scrollbars
             are not displayed

16jul14  fillet should not depend on n*2 organization of multi-value
             Parameter (but should take values in pairs)

16jul14  multi-valued Local Variables should be expandable in ESP

19jul14  fillet should allow 1,2,3,4 as wel as multi-value Parameter

19jul14  negtive values in fillet's edgeList did not work properly

19jul14  add tutorial on fillets, chamfers, and hollows to ESP-help

20jul14  add fillet examples to the tutorial

21jul14  change $faceList in hollow to be consistent with $edgeList in
             fillet and chamfer  (and update test cases)

21jul14  allow user to edit .csm file from within ESP

21jul14  hollow has wrong template in ESP.js

21jul14  edit udprim fails

21jul14  changing noseList or tailList in blend does not rebuild (it
             erroneously recycles Body)

22jul14  ocsmSave strips leading character from udprim and blend
             arguments

22jul14  ocsmSave writes multi-value Parameters in wrong order

22jul14  editting large files fails (buffer length issue?)

23jul14  Bus error in design6 -jnl design.jnl (no tessellation
             after initial rebuild)

23jul14  design sensitivities sometimes do not converge in udpNaca

23jul14  ESP does not deactivate buttons while building

23jul14  add rule and blend examples in tutorial

23jul14  update ESP-help and ESP-fig*.png

*******  v1.05 release

 1aug14  update version number to 1.06

 2aug14  require that closed sketches be planar

 3aug14  face-order not correct for 360 deg revolve

 4aug14  fix typos in ESP-help (especially tutorial 2)

15aug14  ShowBody=0 attribute turns Edges/Faces inactive in buildCSM

16aug14  add .imark to Edges and Faces based upon "mark" attribute

 7sep14  add morph0 to morph2 test cases

 1oct14  add bodynum argument to udpSew

 1oct14  change default Face color to be less yellow

 3oct14  add -fineTess argument to buildCSM

 3oct14  change from DPRINT to SPRINT(2 in Sketcher

11oct14  check that sketches in blend have same number of segments

11oct14  add test cases (blend6, miter1, rule6, sketch2)

12oct14  add "join" command to combine Bodys at a common Face;
             union of two blends fails for coincident sketches fails
             in blend6b

12oct14  serveCSM crashes for "blend6b", "edit", add "translate 0 .001
             0" before first "union", "OK"  (reset MODL after
             ocsmLoad)

18oct14  add udpNaca456 and naca456.csm test case

19oct14  cannot build a sketch with a single closed spline (spline2)

19oct14  add blend8 test case to ensure blend executes properly with
             sketches made up of single spline

21oct14  document rules for numbers in OpenCSM.h and ESP-help.html

22oct14  udpSew should return a table of the number of faces in each
             body

24oct14  Face is invalid (EG_makeTopology)! Fault: Bad Orientation Of
             Subshape on case Mei/robins2.csm

26oct14  alphabetize command names in OpenCSM.h

26oct14  document booleans in OpenCSM.h

26oct14  remove velocities from attributes

26oct14  allow colon within a name

26oct14  allow strings as attribute values (with the leading $ not
             stored in the EGADS attribute)

26oct14  allow up to 4 name/value pairs in UPDARG statement

28oct14  add ceil() and floor() functions

29oct14  axis labels added in buildCSM

 2nov14  build initial test cases for CAPS component library

 5nov14  remove emodel after extracting Body in udpImport

 7nov14  odd-shaped nose in basic/robins2.csm

 9nov14  add +show-scan option for lint

17nov14  updated robins2 and added robins3 test cases

19nov14  make clang default compiler on DARWIN64

23nov14  when cirarc is converted to linseg, make sure that the
             printed argumets are correct

24nov14  code cleanups suggested by scan-build

26nov14  when creating perturbation, stop as soon as the number of
             Nodes, Edges, or Faces does not match the original

26nov14  update tutorial1 and tutorial1_new so that topology of
             perturbation is same as the base

27nov14  remove blend6 test case since it uses union where it should
             use join

28nov14  combine number1.csm and parsetest.csm into expressions.csm

28nov14  ifpos(1,ifTrue,ifFalse) should not bomb if ifFalse has an
             error

28nov14  add ifnan(test, ifTrue, ifFalse) function

28nov14  add assert command

 1dec14  modify grid sensitivity test cases

 6dec14  update tuft plotting in buildCSM

 7dec14  add bolt test case

 8dec14  shortcut for single digit argument to str2val

 9dec14  remove double evaluation in set statements

 9dec14  remove spurious operands from OP stack

 9dec14  allow icol=0 in ocsmGetValu, ocsmSetValu, ocsmSetValuD, and
            ocsmGetBnds (irow is index across rows)

 9dec14  allow single subscripts to arrays (across rows)

 9dec14  parser does not work if a function argument contains a
             subscripted variable (tested in expressions.csm)

 9dec14  initialize parameter values to -HUGEQ

 9dec14  if a despmtr statement tries to redefine a parameter, print
            out message that previous values will be used

 9dec14  add more tests (asserts) in expressions.csm

 9dec14  make sure clang's scan-build passes without warnings

 9dec14  add boxes4.csm (for Ovrcad3 testing)

 9dec14  allow filename argument in import statement to be in form
             $$/filename (to be consistent with udprim import)

 9dec14  normalize noselist and taillist vectors in blend

11dec14  add 'Q' (query attributes) command in buildCSM

11dec14  put global attributes on all ebodys

11dec14  put Branch attribute on ebody created by Branch

11dec14  add setattr command (and test with attribute.csm)

12dec14  convert setattr command to attributes on select statement

12dec14  ensure "Attribute Rules" section of OpenCSM.h is complete and
             correct

13dec14  clean up description of select statement

13dec14  add select1 test case

13dec14  assert command should list unevaluated expressions

13dec14  print comment lines that start with a space

15dec14  flush journal after each write in serveCSM

15dec14  report number of edges in blending message

15dec14  implement extract commnd

15dec14  flip sketches that are defined in clockwise direction

15dec14  added duct* test cases

15dec14  extrude should generate SHEET if extruding WIRE

16dec14  added scribe* test cases

16dec14  added joinblend* test cases

17dec14  tangency on blend and fixed knots in splines in the U
             direction

17dec14  implement scribe of SHEET and add test cases scribe8 and
            scribe9

17dec14  remove creation of spurious Body by join command

17dec14  make sure scribed Body has enough Edges

18dec14  added transition1 test case

18dec14  fix transition1 test case

18dec14  add transition2, transition3, and transition4 cases

18dec14  remove check on number of edges when scribing

20dec14  fix checking of noselist and taillist for blends

20dec14  update CAPS test cases

21dec14  add prototype include* test cases

22dec14  initial implementation of combine command

23dec14  add scribe10 test case

23dec14  allow design paramaters to be organized hierarchically

24dec14  add combine* test cases

24dec14  fix seg fault in EG_close in combine test cases

24dec14  add join test case

24dec14  blend should work for FACEBODYs and SHEETBODYs

26dec14  implement combine of FACEBODYs into SOLIDBODY

26dec14  remove "union 2" option (use combine instead)

26dec14  add combine5 test case

26dec14  add udcTest1* test cases (and udcBox.udc file)

27dec14  change copyright notices to 2015

28dec14  check for despmtr, lbound, and ubound statements in .udc file

28dec14  check for interface statements in .csm file

28dec14  allow more than one matched Face in join (join.csm)

28dec14  associate a level with each Parameter

28dec14  add interface statement

29dec14  add @@area and @@volume returns from udpBox

29dec14  treat @-parameters the same as other internal Parameters

29dec14  implement user-defined components

29dec14  check indentation in ocsmPrintBrchs

30dec14  add .indent to brch_T

30dec14  return @@-parameters from .udc file

30dec14  ocsmSave should follow style guidelines

30dec14  change ocsmSave to skip included files (via udprim)

30dec14  allow array inputs to .udc scripts

31dec14  add udcTest2 test case for nested .udc files

31dec14  update complex_rotn2 and myPlane test cases

31dec14  change arg2 of interface to in or out

 1jan15  add .nrow .ncol .size .sum .min and .max dot-suffixes

 1jan15  update udcTest2 to take advantge of .nrow and .ncol

 3jan15  import should not recycle Bodys

 4jan15  implement store/restore and add test cases

 5jan15  fix filename initialization bug in ocsmLoad

 5jan15  fix buffer overflow bug when extracting prefix.suffix from
             name in parser

 8jan15  allow udprim and udparg to be added without all the arguments
             filled in

 8jan15  add store and restore in ESP

 8jan15  when editing a Branch, highlight it in magenta, its parents in
             cyan, and its child in yellow

 8jan15  when editing a Parameter, highlight it in magenta

 8jan15  parent/child wrong for store (restore1)

 8jan15  add engines to myPlane

 9jan15  alternative exits from edit in ESP do not unhighlight
             Parameters and Branches

 9jan15  modify blend7 so that airfoil has 7 Edges

12jan15  indent branches in Tree Window

13jan15  do not allow > or spaces in Branch name

16jan15  scrolling tree in ESP should not scroll buttons

16jan15  clicking on Parameter should cancel editting of current
             Parameter

16jan15  clicking on Branch should cancel editting of current Branch

18jan15  add sign function

18jan15  add blend9* test cases

18jan15  add wireonly argument to skend to create wirebodys, even if
             closed

18jan15  add sketch3 test case

20jan15  tell ESP user when server terminates

21jan15  show axes with labels

23jan15  add debug plotting to udpFreeform (make USING_GRAFIC=1)

24jan15  make sure all errors have descriptive message

24jan15  print EGOs before complex operations if outLevel>=3

24jan15  clicking on an interface Branch in ESP does nothing

24jan15  do not let ESP user add a dimmension, despmtr, lbound,
             ubound, or interface statement

24jan15  print WARNING that string is converted to 0 in set statement

24jan15  add ID attribute to the components in CAPS/*.udc

24jan15  fidelity=1 does not work in CAPS/myPlane

24jan15  fidelity=2 does not work in CAPS/myPlane

24jan15  add rule7* test cases

25jan15  add blend7* test cases

25jan15  sketch flipping wrong for non-planar sketches

25jan15  remove constructs such as chararray[strlen(charlen)-1] = '\0'

25jan15  rule / blend / loft to use non-planar sketches

25jan15  add loft7* test cases

25jan15  cannot generate RULE between two non-planar Faces

26jan15  fix outLevel=3 messages for EG_blend

26jan15  only allow blanks in udparg and udprim at end

28jan15  fix ileft and irite for blends, rules, and lofts

28jan15  loft7e, loft7f, and loft7n are inconsistent with rule7*

28jan15  blend7p has unusually high tolerance

28jan15  add blend7q, rule7q, and loft7q test cases

29jan15  loft fails for fighter test cases

30jan15  add import4 test case

31jan15  update JSON(sgData) in ESP to strip off ,] and ,}

31jan15  add keyboard shortcuts to ESP viewer:
             ctrl-h   home     (same as <Home>)
             ctrl-i   zoom in  (same as <PgUp>)
             ctrl-o   zoom out (same as <PgDn>)
             ctrl-f   front    (same as <Home>)
             ctrl-t   top
             ctrl-b   bottom
             ctrl-l   leftside
             ctrl-r   riteside

 4feb15  update ESP-help and its pictures

*******  v1.06 release

 9feb15  increase version number to 1.07

14feb15  add buildCSM option to write binary .stl file

14feb15  add optional "trimList" to union operation to allow a user to
             union "up to" the closest intersection to the given point

14feb15  add pylons to myPlane testcase

19feb15  error when modifying a WV_LINE in WebViewer

26feb15  allow attribute statement to take the name of a (possibly
             multi-valued) variable or string (pre-pended by $)

26feb15  use latest values when applying attributes to ebody, eface,
             or eedge

26feb15  when serveCSM, post a message and turn MessageWindow pink
             instead of issuing an alert

26feb15  seg fault in rule for LBFD_rev11

26feb15  add avlAIM test case

27feb15  handle arguments properly when adding union in buildCSM

27feb15  add arguments to union command in empty.jnl

27feb15  cannot use SHEETBODY in revolve, even if it only contains a
             single face (ellipsoid2)

28fab15  add ellipsoid test cases

28feb15  generate warning if rotation axis is within face to be
             revolved, possibly generating an invalid Body

28feb15  size and/or placement of axes in ESP not correct after ctrl-h
             (wv.scale?)

 6mar15  add tolerance as optional argument to join command

 7mar15  branch indentation bug during sensitivites (cannot find
             sensitivity of sweep in myPlane)

 7mar15  add -tessFact command line argument to serveCSM

 9mar15  remove "WARNING:: indent=xx, but should be 0" if the closing
             end is missing

10mar15  check for more points created than array size in udpNaca456

11mar15  cannot edit an "end" branch in ESP

11mar15  add project command

11mar15  create spoilerz.udc and test cases

13mar15  print out oclass and mtype names within printEgo

13mar15  add nudge1 throough nudge6 test cases

13mar15  allow tolerances to be relaxed in union, subtract, and
             intersect commands

13mar15  raise error if attributing an assert, despmtr, dimension,
             end, interface, lbound, macbeg, macend, mark, patbeg,
             project, set, skbeg, solbeg, store, ubound, or udparg
             statement

13mar15  clean up udp storage at end of buildCSM and serveCSM

13mar15  add tessellation parametrs as global, body, face, and edge
             based attributes

13mar15  fix minor bug in FREE macro

17mar15  fix bug associated with nested udc's without end statements

17mar15  create popupz.udc and test cases

17mar15  return error if scribed Body has same number of edges as
             original Body

17mar15  fix bug in project command

18mar15  remove end statement if last Branch (since otherwise adding a
             Branch at the end will not be executed)

21mar15  fix bug that did not allow project command during rebuilds

21mar15  create flapz.udc and test cases

21mar15  remove CAPRI support

22mar15  fix typo in debug print statement in udpFreeform

22mar15  remove CAPRIINC from Makefiles

22mar15  start connect command

29mar15  remove repeated points within spline

30mar15  report number of Edges when Sketch is created

 2apr15  write connect command and test cases

 4apr15  use level information when finding faceList Parameter indices
            in connect command

 4apr15  allow variables to be dimensioned in interface statements

 4apr15  fix indx map bug in connect command

 4apr15  update flapz.udc (using connect statement)

 4apr15  connect should create a Solid Body

 4apr15  fix the Parameter levels associated with udc's

 4apr15  clearly define Parameter scoping

 5apr15  rotate Face in connect with faceList1.size==1

 5apr15  add connect4* test cases

 7apr15  add udpSupell and test cases

 9apr15  add openEnd option in flapz.udc and flap3, flap4 test cases

 9apr15  add sensitivities to udpSupell (and supell4 test case)

 9apr15  initial udpKulfan (no sensitivities) and test case

11apr15  set defaults sensitivity limits to -1 and +1 in ESP

12apr15  list all values/dots in multi-valued Parameters that are
             arguments to udparg and udprim statements

12apr15  add sensitivities to udpKulfan

14apr15  add ocsmPrintBrep function

14apr15  add -printBreps argument to serveCSM

15apr15  udpKulfan can fail in sensitivities at leading or trailing
             edge (because it contains terms such as log(s) and log(1-s)

17apr15  add zoom in/out via mouse roll in ESP

17apr15  modifications in preparation for refactoring of sensitivities

21apr15  make all lists semicolon-separated, including in blend,
             chamfer, connect, fillet, hollow, and union

22apr15  return 0 for 0^any in str2val

22apr15  add set1 test case

22apr15  change separator in .jrnl files from ; to |

26apr15  non-zero return value from serveCSM if running batch and an
             error is encountered

28apr15  add rule8 test case

28apr15  analytic sensitivities for rule command

30apr15  add design0n1, 0n2, 0o1, and 0o2 test cases

 1may15  add comments to OpenCSM.h to be specific about the command
             arguments for which sensitivities are computed

 3may15  check for obj==NULL in printEgo

 3may15  add reorder test cases

 3may15  add "reorder ishift iflip=0" command to alter the topology of
             WireBodys and SheetBodys

 4may15  sensitivities for extrusions do not re-initialize previous
             velocities (problem in udpUtilities.c)

 4may15  fix sensitivity problems with multi-valued parametrs in udps

 4may15  reorganize sensitivities for extrude and rule so that fewer
             calls to velocityOfEdge are made

 5may15  fix sensitivities for cases with multi-valued parameters
             (design0g, design0j, design0n2, and design0o2)

 6may15  increase MAX_EXPR_LEN to 512

 7may15  udc test cases fail (udcTest1b, udcTest2, myPlane)

 8may15  code was inadvertantly removed from recycleBody that caused
             tutorial1.jnl to fail

 8may15  arrays got flattened when being transferred to a udc

 8may15  add designA test case

13may15  remove unneeded calls to EG_getArea in udpNaca, udpNaca456,
             and udpParsec

13may15  loop may get modified when Face is being converted into a
             FaceBody (LBFD_rev1)

14may15  fix combine3 and combine4 test cases

14may15  add spinner test case

15may15  add copyright notices to ESP and ESP-sketch

17may15  rewrite ESP-sketch.html and ESP-sketch.js

17may15  add ESP-sketch.css

18may15  allow zero thickness trailing edge in udpKulfan

18may15  add profiling info to ocsmBuild

18may15  allow negative camber in naca456

19may15  add "Enter Sketcher" button in ESP for sketch statements

19may15  update OpenCSM.h for skvar, skcon, and cirarc with 4/5
             arguments

19may15  add sketch4 test case

20may15  move <time.h> into OpenCSM.h

20may15  add arc statement

20may15  add sketch4a, 4b, 5a, 5b, 6a, 6b test cases

20may15  add biconvex.udc and test case

20may15  add diamond.udc and test case

20may15  issue wrning if any SolidBody has a non-positive volume

20may15  demonstrate wing that is blend of diamond and naca6 airfoils

21may15  ensure that Bodys are not generated inside-out (rule)

21may15  parse expressions such as x[i+1]

21may15  add combine6a and 6b test cases

22may15  SheetBodys from blend with open sketches are classified as
             solid_body

23may15  compare OpenCASCADE 6.6.0, 6.7.1, 6.8.0, and 6.9.0 results

23may15  many fixups and cleanups in ESP-sketch

24may15  add rule10* and blend10* test cases

25may15  add reorder=0 option to rule and blend in ESP

26may15  add optional argument to rule/blend to alter loop topologies
             so as to minimze the resulting twist

26may15  change outLevel to -1 for all ERROR:: and WARNING::

27may15  fix bug that did not allow NODE at end of blend or rule

29may15  OpenCSM infinite loops when end statement in pattern
             with zero iterates

29may15  bug in reorderLoops when sketches not closely aligned to
             coordinate axes

29may15  blend10o yields twisted Body

29may15  add rule11* and blend11* test cases

30may15  add rule[12345][bs][bs] test cases

30may15  implement patbreak statement

31may15  start implementing skvar and skcon statements

 1jun15  add skcon* test cases

 3jun15  sketch not updated after being solved

 3jun15  skip over- or under-constrained sketches

 3jun15  check for misplaced set statements in sketches with a skvar
             statement

 4jun15  using the Edit button in ESP did not trigger a rebuild

 5jun15  redefine turnang function

 5jun15  convert function from using curvature to using disp

 5jun15  add seglen, incline, radius, sweep, and dip functions

 5jun15  add more skcon* test cases

 5jun15  start implementing bezier command

 7jun15  add more skcon* test cases

 8jun15  debug turnang and sweep functions

 9jun15  fix bugs so that all skcon test cases work

 9jun15  solve sketches with cirarc and arc statements

10jun15  solve sketches with splines

10jun15  recycle solved sketches if no changes were made

10jun15  implement bezier statement

10jun15  sketches with bezier cannot be solved

10jun15  add bezier7* test cases

10jun15  use EG_approximate in splines in sketches

10jun15  sketches on yz or zx plane cannot be solved

11jun15  initial integration of Sketcher into ESP

12jun15  ::x[] does not get cleared if a sketch is recycled

15jun15  allow sketches to be solved in ESP-sket

15jun15  add skcon0* test cases

16jun15  allow sketches to be saved in ESP

17jun15  full integration of Sketcher into ESP

19jun15  distinguish between "Save Sketch" and "Save File"

19jun15  backspace does not work in Chrome (switch to '<')

19jun15  escape does not work in Chrome (switch to '>')

19jun15  NaN sent to solver when open sketch drawn from scratch

19jun15  open sketch cannot be saved

20jun15  cannot draw arc from skcon0a

21jun15  turnang has discontinuous behavior near dip == length/2

21jun15  add turnang test case

23jun15  backspace does not work in editPmtr

23jun15  tab does not work in editBrch

23jun15  home (ctrl-h) option in Sketcher to recenter sketch

27jun15  vtail in wrong place in myPlane (fidelity=1 or 2)

27jun15  allow unsolvble sketch to be saved

27jun15  present list of options when in Sketcher (in key window?)

27jun15  big circle when going back to original point in Sketcher

27jun15  implement W option in Sketcher

27jun15  implement D option in Sketcher

27jun15  a failed sketch sometimes leaves ::x[] parameters

27jun15  for sketch statements, ileft is skbeg and ichld is skend

28jun15  blue-white-red spectrum in ESP

28jun15  add skcon9* test cases

28jun15  implement one level of undo in Sketcher

28jun15  adjust skbeg statement so that closed sketches stay closed

28jun15  allow user to go back to original variables after solving
             sketch (can be done with undo)

28jun15  SheetBody should have ibrch point to skend Branch

28jun15  add keep=0 option to store command

28jun15  add store1 test case

30jun15  sensitivity fails if using a udp with an integer or string
             argument

30jun15  add myGlider test case

 1jul15  inform user of sensitivity limit

 1jul15  <esc> in ESP should reset all modes

 1jul15  update Branches in ESP when Sketch is saved

 1jul15  edit points in sketch by dragging point (while constraining)

 1jul15  add ^H ^L ^R ^B ^T ^In and ^Out buttons (to handle cases
            where the Browser steals ctrl- key presses

 2jul15  add esp_logo to ESP-help.html

 3jul15  remove postMessage associated with scaling

 3jul15  add test cases associated with beziers

 3jul15  change from WV_START to ESP_START

 5jul15  skcon8f fails after solving sketch

 5jul15  B option in Sketcher should draw bezier

 6jul15  ^H button does not work in Sketcher

 6jul15  add the ESP logo to the brframe if not being used for
             spectrum or Sketcher

 7jul15  Out button not vsible on Safari (make buttons narrower)

 7jul15  make button window a little taller

 7jul15  change display.style=null to display.style="inline" for IE11

 7jul15  make scrollSize=24 for all Browsers

 8jul15  default velocity should be set to 0 (not -HUGEQ)

 8jul15  suggested radius is too small in ESP

 8jul15  check for dx=0 or dy=0 or dz=0 in BOX

 8jul15  check for radius=0 in SPHERE

 8jul15  check for vrtx=base or radius=0 in CONE

 8jul15  check for vrtx=base or radius=0 in CYLINDER

 8jul15  check for zero axis length or majorRad=0 or minorRad=0 in
             TORUS

 8jul15  check for zero axis length or angDeg in REVOLVE

 8jul15  check for zero extrusion distance in EXTRUDE

 8jul15  allow ::L[n] to refer to length of nth Segment in skcon

 8jul15  if error in first Branch, then return error message (instead
            of hanging in ESP)

 8jul15  gl.lineWidth not suppoprted on IE11

 8jul15  return more error info to ESP (such as how the solver fails)

 8jul15  "sketch cannot be loaded" should be more explicit as to
             reason

 9jul15  make L, R, B, T, In, and Out button work in Sketcher

 9jul15  change legends on buttons from In to + and Out to -

 9jul15  implement angle constraint in Sketcher

 9jul15  make ^H ^L ^R ^B ^T ^I and ^O work in Sketcher

10jul15  update ESP-help.html

11jul15  reformat comments in OpenCSM.h so that they do not causes
            excessive line lengths when transferred to ESP-help.html

11jul15  in Sketcher, "A" is added to point even if cancel is pressed

12jul15  put updated .png files into ESP-help.html

12jul15  add tutorial2.csm

12jul15  add new tutorial2 to ESP-help.html

12jul15  fixed file redirection error (<<) on Windows

*******  v1.07 release

14jul15  fix typos in ESP-help

14jul15  allow circle centers to be constrained in Sketcher

15jul15  add printEgo(ego foo) routine to udpUtilities to help with
            debugging

16jul15  increase size of thisArg in ocsmBulid (fixes seg fault)

17jul15  very large sketches overflow buffers

17jul15  added largeSketch test case

17jul15  inclination handled differently in ocsmSolveSketch and
            buildSketch

17jul15  added smallang function

17jul15  added smallang to sweep constraints in Sketcher

17jul15  added "@" option in Sketcher to read coordinates

17jul15  added "o" option in Sketcher to reset the origin

17jul15  added "*" option in Sketcher to reset scale factor

17jul15  fixed ESP bug which occurred if rebuild failed in first
           Branch

17jul15  redefined ocsmGetSketch to allow user-defined buffer sizes

17jul15  free up ::x[] before solving Sketch

17jul15  provide guidance when Sketcher fails

30jul15  increase version number to 1.08

 5aug15  data3/Heath/Nozzle_new seg faults when computing sensitivity
             on a_throat

 5aug15  saving a .csm file to a non-existant directory causes
             serveCSM to seg fault

 6aug15  add udc tests to expressions test case to verify correct
         passing of arguments into and out of .udc; verify that any
         combination of arguments can be in udparg and udprim
         statement

 8aug15  added boxudp6 test case to verify correct behavior for
         computing correct sensitivities for a udp called with various
         combinations or udparg and udprim statements

 8aug15  more than 1 name/value pairs in udprim statement (of a .udc)
             fails; test case boxudc6.csm and boxudc.udc added

10aug15  added designB1 through designB3 test cases

10aug15  move freeing of storage associated with arguments to before
             stack finalization

10aug15  update error numbers in udpSample.c and udpBox.c

11aug15  fixed bug when determining if udprim has velocities
             associated with its arguments

11aug15  analytic sensitivity of extrude is wrong if sketch is
             transformed before extrude

11aug15  analytic sensitivity of rule is wrong if sketch is
             transformed before rule

11aug15  added designB4 and designB5 test cases

11aug15  in design1, sensitivity wrt Nhole produces non-zero results

11aug15  infinite loop near bottom of xformToOriginal for Windows x64,
             Visual Studio 12.0

12aug15  added designC* test cases

12aug15  sensitivities for cylinders and cones not correct when axis
             is slightly mialigned with coordinate axis

12aug15  sensitivities for cylinders and cones not correct when axis
             is aligned with Z-axis

12aug15  edge sensitivities computed incorrectly in supell

12aug15  deleting all Branches still leaves sketches on screen

13aug15  saving file with global attribute causes -202 on re-read

14aug15  check for enough sketches in blend if nose and/or tail
             treatments

14aug15  modify designC* test cases; add designC0

14aug15  add blendjoin test cases

18aug15  leave NodeBodys on stack

18aug15  assign attributes to NodeBodys

18aug15  display NodeBodys in ESP

18aug15  add attributes to NodeBodys in blend[12345]

18aug15  FD sensitivities can be very wrong if orientation of
             perturbation is different from the base config (as can
             happen for a cylinder or cone)

18aug15  update OpenCSM.h to be explicit about iford for cones and
             cylinders

18aug15  modify select0* for new cylinder orientations

18aug15  use new tolerance in EG_matchFaceBodies

19aug15  fixed bug in sensitivities associated with endcaps in EXTRUDE
             and RULE

19aug15  fix 's' option error in buildCSM when there is more than one
             Body on the stack

19aug15  add designD* test cases

19aug15  edge sensitivities wrong in udpEllipse when DY=0

19aug15  change labels in debug print in serveCSM so that it is
             obvious which direction the messages are going

20aug15  write sensCSM program and incorporate into "make test3"

21aug15  add hypot3(x,y,z) function

21aug15  add mod(i,j) function

21aug15  add x.norm to return norm of array x

21aug15  allow one row or one column to be set in a despmtr statement

21aug15  allow one row or one column to be set in a lbound statement

21aug15  allow one row or one column to be set in a ubound statement

21aug15  add supell to help file

21aug15  add kulfan to help file

21aug15  add ocsmDelPmtr to delete a Parameter

21aug15  ensure that upper limit in Key window is larger than lower
             limit

21aug15  remove spaces from contraint expressions when saving sketch

21aug15  fix tab order in editBrchForm and editPmtrForm

21aug15  automatically call "OK" when <return> pressed in editBrchForm
             or editPmtrForm

22aug15  add "Delete Parameter" button to ESP

22aug15  do not remove all constraints, but give user a choice

22aug15  remove "o" option for origin in Sketcher

22aug15  do not allow zero-length segments to be accidentally drawn in
             Sketcher

22aug15  if <esc> pressed in Sketcher, do not leave the Sketcher

23aug15  add designE* text cases

25aug15  surfaces always grey when using Intel graphics

25aug15  prototype and stub for ocsmGetMvcSens

31aug15  set nnode=nedge=nface=0 on early return from finishBody

 7sep15  initial Node and Edge tessellation sensitivities

 8sep15  return error in serveCSM if fillTris did not succeed

 8sep15  use correct mappings when computing FD tessellation
             sensitivities in sensCSM

 9sep15  add/modify designD* test cases

10sep15  write udpBiconvex (with sensitivities)

11sep15  change tessellation tests in sensCSM to find maximum
            distance between analytical prediction and perturbed
            configuration

19sep15  implement analytic Node and Edge tessellation sensitivities
             and make them match finite difference results

19sep15  clean up MALLOC and CLING in sensCSM

20sep15  implement tessellation sensitivities on Faces and make them
             match finite difference results

21sep15  use EG_getTessLoops in sensCSM

23sep15  tutorial3: changing twist_h and rebuild causes seg fault
             (bug reported but cannot be duplicated)

24sep15  preselect all text when entering textbox in editBrchForm abd
             editPmtrForm

25sep15  add biconvex udprim to ESP-help

25sep15  clarify documentation on UDPs that generate airfoils

25sep15  udprim body is recycled even if argument in associated udparg
             statement changes (udparg1)

25sep15  add relative=0 argument to SKBEG so that sketch variables can
             be defined to be relative to the first point

25sep15  add skbeg1 and skbeg2 test cases

25sep15  return blank tokens in .jrnl files as zero (in serveCSM)

25sep15  new Design Parameters in ESP default to scalars

25sep15  add "Add row" and "Add column" buttons when creating a new
             Design Parameter

25sep15  automatically add a SKEND in ESP when a SKBEG is added

25sep15  editing values in udprim or udparg (that are not full)
             now correctly posts that changes were made

25sep15  no longer need to press OK before a udprim with only one
             argument can be deleted

25sep15  leaving empty boxes in UDP/UDC in ESP should no longer warns
             about blank entries

25sep15  delete entire sketch when ocsmDelBrch called on SKBEG

25sep15  do not allow arguments to be added to udparg, udprim, or
             select statements in ESP

26sep15  automatically enter Sketcher after adding a skbeg in ESP

26sep15  write Design Paramaters more compactly in ocsmSave

26sep15  do not allow a udprim associated with a UDC to be added
             in ESP

26sep15  do not allow a udprim associated with a UDC to have its
             primtype be added in ESP

26sep15  do not allow a udprim associated with a UDC to be deleted
             in ESP

26sep15  if Undo is pressed in Sketcher after solving, just undo the
             solve

27sep15  store up to "maxundo" levels of undo in Sketcher

27sep15  arrow keys and PgUp and PgDn transform image in Sketcher

27sep15  add option (z?) in Sketcher to create a zero-length segment

28sep15  change default to relative=1 when adding skbeg in ESP

28sep15  cannot change or delete X of Y constraint at first sketch
             point if in relative mode

28sep15  fixed memory leaks that showed up when valgrind was run on
             "serveCSM ../data/tutorial1_new -batch",
             "serveCSM ../data/tutorial2 -batch",
             "serveCSM ../data/tutorial3 -batch", and
             "sensCSM  ./data/basic/designE1"

28sep15  added data/training directory, which includes answers to the
             Training2015 exercises

28sep15  modified "make test2" to test the training exercises

29sep15  fix minor type in format associated with ocsmSave

29sep15  fix Face tessellation sensitivity bug

29sep15  convert printf to SPRINT in mvcInterp

30sep15  fix bug associated with order of calls at cleanup

 1oct15  improve method of finding number of incident Edges on a Node
             and Faces on an Edge

 2oct15  apply global attributes to NodeBodys

 2oct15  apply correct bodyID to WireBodys

 2oct15  store and use Edge degeneracy flag

 2oct15  add design0p and design0q test cases and compute configuration
             and tessellation sensitivities for non-manifold
             geometries

 2oct15  change final printout in sensCSM to reflect success or failure

 2oct15  improve method for detecting errors while running test suite
             (that is, improve caseStatus)

 2oct15  add body attributes directly to Edges if a WireBody (since
             the body attribute cannot be derived from incident Faces)

 2oct15  compute velocities on non-manifold Edges from either the one
             adjacent Face or set to zero

 2oct15  check that ileft or irite exists before updating duv (this
             can happen for non-manifold Edges)

 2oct15  scale tolerance by Face size when trying to figure out the
             relative orientations of t (in the Edge) and u (in the
             Face) when computing velocities for ruled Bodys

 7oct15  update training slides

 7oct15  refactor udpTire.c

 8oct15  add CAPS/*Alone.csm test cases

 8oct15  add umbrella* test cases

 9oct15  fix periodic seams in udpTire.c (in training material)

10oct15  suggest sign in W D R and S constraints based upon what user
             draws

10oct15  update release notes in ESP-help

10oct15  add training slides to svn

10oct15  add overview slides to svn

10oct15  fix ctrl-l, ctrl-r, ctrl-b, ctrl-t, ctrl-i, and ctrl-o in ESP

10oct15  update ESP-help for v1.08

10oct15  update ESP-fig* for v1.08

11oct15  fix journalling of sketches

11oct15  update MuddyCardsSorted.txt and add to svn

11oct15  updates to ESP-help

*******  v1.08 release

14oct15  increase version number to 1.09

14oct15  signal error if wrong Body types on stack during union

14oct15  change union of SHEET Bodys to use sew instead of solid
             boolean operator

14oct15  add wingBEM test case

15oct15  add RM-10 test case

15oct15  use the color attribute to specify rendering colors on Faces

15oct15  add color* test cases

16oct15  add capability to dump .stl files (and stl* test cases)

19oct15  add toMark argument to dump command and add test cases

19oct15  move matrices in buildSolver from stack to heap

20oct15  fix twist rotation error in wing.udc

20oct15  add wake.udc and add calls for fidelity=2 in myGlider

 2nov15  add "special" statement for quick-and-dirty tests

 4nov15  add toler=0 to assert statement

 7nov15  print mass properties for all Bodys on stack

 7nov15  add wingOML test case

 7nov15  render quads (instead of tris) in serveCSM if they exist

 7nov15  add wingOML test case

 8nov15  write BEM file for a Body

 8nov15  do not remove tessellation created within project command

 8nov15  add useEdges argument to project command to find projections
             on planar sheet Bodys

 8nov15  add project1 and project2 test cases

 9nov15  selecting a NodeBody with select statement causes error

10nov15  add verify=0 argument to assert command

10nov15  add -addVerify command line argument to serveCSM

11nov15  add -verify command line argument to serveCSM

12nov15  add "verification" assertions for all test suite cases

12nov15  add attributes to Faces created in udpWaffle

12nov15  add waffle4 test case

14nov15  prepend ocsm-generated attribute names with underscore (_)

14nov15  add NUMUDPINPUTBODYS to UDP interface

14nov15  generate quads if eface contains _makeQuads attribute

16nov15  design/implement user-defined functions

16nov15  if UDP uses any Bodys, link them to the Body produced

16nov15  add udfBemWriter

18nov15  fix .ibody for Edges associated with Body that is restored
             more than once

20nov15  fix .ibody for Edges associated with FILLET or CHAMFER

20nov15  create bullet and tutorial1_whole test cases

20nov15  add solver tests to expressions.csm

20nov15  identify verification tests and create
             VerificationCoverage.txt

20nov15  add "verify" target to Makefiles

21nov15  use maxtol when sewing during union of SheetBodys

22nov15  free up storage associated with global Parameters

22nov15  free storage returned from EG_getGeometry

22nov15  remove verification info from tutorial1

22nov15  fix verification info for demo4

23nov15  add udpPod and pod test cases

23nov15  fix .ibody for Edges after hollow and connect

25nov15  remove redundant EG_deleteObject calls during cleanup in
             serveCSM

25nov15  add connect5 test case and add to "make verify"

 1dec15  modify Makefiles to remove tcl support and slightly
             reorganize

12dec15  use new Makefile system

14dec15  add udfCreatePoly and test cases

14dec15  slightly reorganize Makefile and NMakefile

14dec15  add toMark option in dump command in ESP

14dec15  make copies of Bodys when passing as part of a Model
             into a UDF

15dec15  update command line arguments to serveCSM

 1jan16  change from 2015 to 2016

11jan16  add bbox test case

12jan16  fix surface labels in printEgo

16jan16  add verification tests to Jenkins

23jan16  modify verification info in some .csm files

23jan16  add pct err to assert output

23jan16  modify verification data in several test cases

26jan16  check for repeated Sketches in blend

26jan16  add blend13 test cases

27jan16  rename blend13 test cases

27jan16  changes to udpParsec to use Surreal sensitivities

30jan16  begin implementation of group statement

30jan16  add group1* test cases

31jan16  update all verification data

 1feb16  add naca4* test cases

 3feb16  add parsec*extrude test cases

 3feb16  update udpParsec.cpp

 4feb16  remove verification info from tutorial1

 4feb16  add udpSample

 4feb16  add sample1 and sample2 test cases

 4feb16  add void* data in UDPs for user data

 4feb16  add FREEUDPDATA macro to udpUtilities to allow user to
             cleanup void* data in UDPs

 5feb16  add nacaHiAR test case (originally from Darcy)

 7feb16  create stub of python interface to OpenCSM (pyOcsm)

 8feb16  print options at start of serveCSM and sensCSM

 8feb16  add -config flag to select configuration sensitivities in
             sensCSm (note: tessellation sensitivities are always on)

 8feb16  add -dtime command line argument in sensCSM

 9feb16  incorporate udp_cleanupAll into ocsmFree(NULL)

10feb16  enable verifiction testing for DARWIN64 and LINUX64 in
             Jenkins

10feb16  remove code that duplicates loop pointers into blend when
             multiplicity > 1

10feb16  add @igroup at-Parameter

10feb16  add group info in ocsmPrintBodys

10feb16  implement group statement

10feb16  apply attribute on group statement to all Bodys in the group

11feb16  fix bug associated with calling ocsmLoad after ocsmFree(NULL)
             if case uses a UDP

13feb16  add new blend13* test cases

13feb16  apply transformations to all Bodys in latest group

14feb16  apply store/restore to all Bodys in latest group

14feb16  add ocsmSetDtime function

15feb16  make createPerturbation and removePerturbation static in
             OpenCSM.c

15feb16  convert printEgo to ocsmPrintEgo

17feb16  fix typos in ESP-help.html for naca456 UDP

17feb16  add verification data to blend13* test cases

17feb16  create blend14* test cases with verification data

17feb16  update blend documentation in OpenCSM.h

17feb16  check for multiplicity=2 adjacent to rounded end(s) in blend

19feb16  prototype ifthen, elseif, else, and endif statements

20feb16  allow dimension statement to be executed at run time for
             local variables

20feb16  add run-time dimension checks to expressions.csm

20feb16  fix ocsmSave so that it writes select statements properly

20feb16  implement ifthen, elseif, else, and endif statements

20feb16  make sure patbeg and ifthen are properly nested in ocsmCheck

20feb16  fix indentation for patbreak statement

20feb16  add ifthen/elseif/else/endif checks expressions.csm

20feb16  add assert and group statements to ESP

20feb16  add ifthen, elseif, else, and endif statements to ESP

20feb16  add run-time dimension statement to ESP

20feb16  if unioning Faces in SheetBodys fails with EG_sewFaces, try
             unioning SheetBodys directly

21feb16  change blend13 and blend14 test cases to use ifthen structures

21feb16  remove indentation for marks in ocsmCheck

21feb16  add group2 to verification tests

22feb16  trap ocsmFree errors in serveCSM

22feb16  fix Jenkins.linux

22feb16  bug fix when udp_clean returned a EGADS_NOTMODEL error

23feb16  fix bug associated with adding/editing a udparg/udprim
             statement in ESP

23feb16  fix bug associated with adding/editing a select statement in
             ESP

24feb16  call ocsmCheck automatically from ocsmBuild if MODL is not
             already checked

24feb16  add indicator of Bodys on stack in ocsmPrintBodys

24feb16  prototype throw/catbeg/catend statements

25feb16  add sharpte option to udpNaca and add nacawing3 test case

25feb16  implement throw, catbeg, and catend statements

25feb16  make statements that cannot be attributed consistent between
             OpenCSM.c and the documentation

25feb16  remove macbeg/macend/recall from list of Branch types that
             can be added in ESP

25feb16  add throw/catbeg/catend in ESP

25feb16  add catch test cases

25feb16  post message in ESP telling name of .csm file

26feb16  consolidate .errorBuf and .sigMesg in OpenCSM.h

27feb16  document catchable signals in OpenCSM.h

27feb16  create catchable signals for primitive Branches

27feb16  create catchable signals for applied Branches

27feb16  create catchable signals for grown Branches

27feb16  create catchable signals for transform Branches

27feb16  create catchable signals for boolean Branches

27feb16  allow signal names to be input in catbeg statement

27feb16  add catbeg/catend to blend14r1*, blend14*1r, and blend14r22r
             test cases

28feb16  add throw/catbeg/catend tests to expressions.csm

 3mar16  change RPATH to FRPATH in Makefiles when using GRAFIC

 3mar16  change default .dtime with ocsmSetDtime

 6mar16  fix a few initialization bugs caught by LINUX compiler

 7mar16  move design1 to design1b and create design1a

 9mar16  add copyright statement to udp.h and udp.c

10mar16  start support for external grid generators (egg)

10mar16  add ocsmSetTess function

10mar16  add -egg flag to serveCSM (and call to ocsmSetTess)

11mar16  rename sensCSM2 to tessCSM (to test tessellation
             sensitivities)

11mar16  add dependences on udp.h to Makefiles

14mar16  add fun3d_demo.csm file

14mar16  add ability to dump .ugrid files

14mar16  update deprecation message in pyOcsm.c (1.7 to 1.8)

14mar16  reorganize OpenCSM.c to put all tessellation calls into a
             single function

15mar16  write initial version of fun3dCSM program

16mar16  fix initialization message if ESP has been started without
             a .csm file

17mar16  update myGlider to include AVL and BEM models

18mar16  change OCSM_VOLUME to OCSM_BODY in OpenCSM.h

18mar16  clicking on Body name in Tree window in ESP posts the Body's
             attributes

18mar16  add Body, Face Edge, and Node attribute printing in
             ocsmPrintBrep (which can be printed if -printBreps
             command line option is chosen in serveCSM)

20mar16  add ocsmGetNorm

20mar16  fix ocsmGetXYZ when uv=NULL

20mar16  in ocsmGetUV, if xyz==NULL, return uv at tessellation points

20mar16  set up external grid generator so that it is linked in at run
             time via a shared object/dll

21mar16  rename import.def to udp.def for Windoze build

21mar16  modify Makefile and NMakefile for external grid generator

21mar16  resolve some _clang_analyzer_ false positives

22mar16  add ocsmGetNorm, ocsmSetTess, and tessellate to ocsm.def

22mar16  convert egg function names from egg_foo to eggFoo

22mar16  change description of attribute statement from attrValue to
             attrList

22mar16  add global ID to all Edges and Faces

23mar16  attribute attrList can be a semicolon-separated list of
             scalar expressions

23mar16  in attribute statement, allow list of expressions in
             attrList

23mar16  "select face" applies attributes to all Faces in sel_body

23mar16  "select edge" applies attributes to all Edgee in sel_body

23mar16  "select node" applies attributes to all Nodes in sel_body

23mar16  allow command names either in lowercase or UPPERCASE

24mar16  be clear in documentation which Faces receive the Branch's
             Attributes

25mar16  fix problem associated with deleting Body if it is the only
             one going into a UDF

25mar16  automatically tessellate Bodys on stack in ocsmBuild

25mar16  make tessellate a static function in OpenCSM

26mar16  make ESP-localhost7681.html so that initial prompt can be
             skipped

27mar16  clean up call sequences associated with sensitivities

28mar16  fix lint-related typos in Makefiles

 1apr16  patch BLEND so that new tip treatment can be tested

 1apr16  add tiptreat* test cases

 2apr16  add tiptreat1e and 1f test cases

 2apr16  include option for rounded end-caps for BLEND

 3apr16  add blend15* test cases

 3apr16  fix multiplicity testing for BLEND

 3apr16  add verification data to tiptreat* test cases

 4apr16  fix bug associated with single digit attributes

 4apr16  fix memory leak associated with freeing udp data when
             udpClean is called

 4apr16  fix memory leak associated with over-writing attributes

 6apr16  update BLEND debug info for outLevel>=3

 7apr16  errors encountered by EG_intersection should signal an error

 7apr16  make sure all commands with catchable signals leave the stack
             unaltered if they encounter an error (throw a signal)

 7apr16  add hints in ESP if user is starting without a .csm file

 9apr16  fix Face sensitivity error in udpBox

 9apr16  add designD6* and designF* test cases

 9apr16  add POINT command and its analytical derivative

10apr16  add eccentricity info into begList and endList for rounded
             tips in BLEND

10apr16  do not complain if a call to udp_setVelocity tries to set
             vel=0 for an argument that is not a ATTRREALSENS

11apr16  add translations to designC6* and designF* test cases

12apr16  ensure all test cases have verification data or an explicit
             statement that it does not have verification data

12apr16  add oneFace argument to BLEND

13apr16  allow RESTORE of group that contains a Node

13apr16  fix .blendStrip error associated with rounded tip in BLEND

13apr16  upgrade to checker-278 for static analysis

14apr16  fix face-order for BLENDs with C0 (which used scribe)

14apr16  enable sensitivity calculations on rounded tips created by
             BLEND

14apr16  fix caught error in a few blend14* test cases

14apr16  check for multiplicity>1 in RULE

14apr16  signal catchable error if EG_ruled fails

14apr16  save BLEND sensitivity cache

15apr16  fix bug in SVD solver assertions

15apr16  fix bug associated with sensitivities on rounded BLEND tips

16apr16  allow semi-colon separated lists for any command that expects
             a multi-element argument

16apr16  fix secondary entry in _brch attribute for IFTHEN

16apr16  update verification data for cases with rounded tips from
             BLEND

18apr16  add a few -outLevel=2 prints for BLEND sensitivities

19apr16  add Viz and Grd to toplevel Display in ESP

19apr16  make waffle bigger in wing.udc to account for large dihedrals

19apr16  add cart3d_demo test case and modify fun3d_demo test case

19apr16  fix sensitivity error for end-caps in EXTRUDEs, RULEs, and
             BLENDs

19apr16  update error info for Edges in tessCSM

19apr16  add test3t target to Makefiles to run tessCSM

24apr16  mark all Branches as dirty if a global attribute is changed

24apr16  change ocsmBuild API such that if buildTo==-1, all Branches
            are marked as dirty (forcing a rebuild without recycling)

24apr16  allow complete rebuild (without recycling) in ESP by pressing
             "Up to date"

24apr16  add alerts to build button in ESP to provide useful info to
             the user

24apr16  use a lighter green in ESP's tree window to increase contrast

24apr16  add tooltips to ESP

28apr16  modify outLevel=2 outputs in tessCSM

29apr16  fix CHECK_STATUS statements in fun3dCSM

29apr16  change ocsmGetVel so that it returns vector sensitivities
             when called for OCSM_FACE (not backward compatable)

30apr16  make sure ocsmGetTessVels uses finite differences if there
             are any Branches for which analytical sensitivities
             are not available

30apr16  add (optional) plotting to eggPDT2 (and Makefile.DARWIN64)

 1may16  fix some memory leaks in eggPDT2

 1may16  fix bug in eggPDT2 associated with recovering boundary
             segments

 2may16  change design0k, design5, and design9  to use POINT instead
             of SKBEG

 2may16  fix bug associated with sensitivities for sharp ends in RULEs

 3may16  fix memory leak in sensitivities in udpEllipse

 4may16  free eggdata in ocsmFree

 9may16  fix EG_setTessFace error associated with multiple loops

10may16  check for NaN when plotting in serveCSM

11may16  create OpenCSM.help which is a compact help file for .csm
             files

14may16  fix typo in ocsmGetNorm

17may16  add design0r test case

22may16  update createTessVels

24may16  add axis labels to axes in lower-left corner

24may16  add (optional) light-grey axes centered at origin

25may16  add date command to Makefiles when running multiple cases

25may16  allow reading of .cpc (checkpoint) files

25may16  add udcTest2.cpc file to test suite

25may16  change Makefile to run .cpc cases

26may16  do not unselect the current Design Parameter when the "Clear
             Design Velocities" button is pressed

26may16  when a user presses "Compute Sensitivity" for a multi-valued
             Design Parameter, change the message to make it more
             useful

26may16  allow user to expand/collapse Branch list in ESP

28may16  Branch attribute can be deleted by setting its value to blank

29may16  reorganize way Branch arguments and Attributes are handled in
             ESP

30may16  update README for new method for handling Attributes in ESP

30may16  add command -sensTess command line argument to serveCSM

30may16  fix bug associated with new Attribute handling in ESP

30may16  add Slugs test cases

 6jun16  do not add END branch for END statement at end of .cpc file

20jun16  fix bug when finding extension in DUMP statement

21jun16  update error messages in tessCSM

21jun16  allow --version command line option to serveCSM, sensCSM, and
             tessCSM

22jun16  update OpenCSM.h to refer to all statements by their uppercase
             name

23jun16  add persistence.csm

23jun16  prototype CSYSTEM and APPLYCSYS statements

23jun16  add ocsmRetCsys, ocsmGetCsys, and ocsmSetCsys to API

                 24jun16  add csystem*.csm test cases

24jun16  partial implementation of CSYSTEM statement

24jun16  add POINT statement to tutorial3 so that it gets tested
             during verification tests

24jun16  map tessellation onto Bodys (if they exist) before passing
             them into a UDF

24jun16  update udfCreatePoly to use pre-existing tessellations

24jun16  add PROJECT statement to force tessellations before calling
             UDF in test cases poly1a and poly1b

24jun16  simplify code associated with pulling values out of either a
             semicolon-separated list or a multi-valued Parameter

25jun16  add Csystem to new Body and raise error if there is a
            conflict

25jun16  change definition of CSYSTEM statement and update test cases

25jun16  implement APPLYCSYS statement

26jun16  create csystem3 test case

26jun16  modify Makefiles so that "test3" runs tessCSM tests

26jun16  implement Csystems in ESP

27jun16  update ocsm.def for ocsmRetCsys, ocsmGetCsys, and ocsmSetCsys

27jun16  fix plotting of Csystems in ESP

27jun16  modify demo2.csm to use CSYSTEM and APPLYCSYS statements
             during verification tests

27jun16  add CENTER argument to udpSample in order to demonstrate how
             to deal with multi-valued Parameters

27jun16  add sample3.csm to test CENTER argument of udpSample

27jun16  document udpSample, udpPod, udfCreateBEM and udfCreatePoly in
             ESP-help

28jun16  subtract non-orthogonal part of dirn2 out in CSYSTEM
             statement

28jun16  add CONPMTR statement to define CONSTANT Parameters

28jun16  add "-dict dictname" command-line option to serveCSM to
             define constants after call to ocsmLoad

28jun16  add dictionary.csm test case and dictionary.txt

28jun16  test CONPMTR statement in expressions.csm test case

30jun16  mark Branch as dirty if an Attribute or Csystem changes

30jun16  fix ESP bug that did not show arguments after editing
             attributes or csystems

30jun16  in ESP, do not allow user to edit (in the tree window) any
             Branches within udc

30jun16  very long metadata gets truncated when sending from serveCSM
             to ESP

 4jul16  modify fun3d_demo.csm to optionally write .ugrid and .egg
             files

 4jul16  extend DUMP statement to write .egg files

 4jul16  update eggLoad and eggDump in eggPDT2

 4jul16  add progress info in fun3dCSM

 4jul16  compute Edge velocities correctly for cases where one of the
             normal directions is zero

 8jul16  fix bug extracting pathname from filenames that start with $/

 8jul16  use gcc-6 in Makefie.DARWIN64 to get gnu compiler

11jul16  modify format of .egg file so that grids can be regenerated

11jul16  extend DUMP statement to write .tess files

17jul16  check for non-NULL pointer in MALLOC macro

19jul16  fix memory leak associated with UDCs

20jul16  change Makefiles to use -dict flag when needed

21jul16  update fun3dCSM (without egg)

25jul16  cannot add Branch in ESP if starting from scratch

25jul16 do not allow UDCs to be added, deleted, or editted

25jul16  add "delete constraint from segment" to possible remedies
             when user presses Constraining... in ESP

25jul16  restructure OpenCSM.help

27jul16  fix memory leak in udfCreateBEM

27jul16  reformat command listing in ESP-help

27jul16  add APPLYCSYS to ESP

27jul16  document the new commands in ESP: POINT IFTEN ELSEIF ELSE
             ENDIF GROUP THROW CATBEG CATEND APPLYCSYS CSYSTEM

28jul16  fix up ocsmPrintEgo to print Models

29jul16  fix mmory leak associated with sewing failure in UNION

29jul16  change %lx formats to %llx for Windows

29jul16  mask "dereference with active objects" message since this can
             occur for Bodys that are restored

30jul16  add "valgrind" target to Makefile.LINUX64

30jul16  make green text in ESP a bit darker

30jul16  fix a few comment typos in OpenCSM.h

30jul16  update ESP-help

31jul16  make green a bit darker so that it copies better

31jul16  convert alert in ESP when missing PATEND, CATEND, or ENDIF to
             a posted warning

 3aug16  fix malloc problem in OpenCSM

*******  v1.09 release

 3aug16  fix typos in tutorials in ESP-help

 3aug16  make README consistent with tutorials

 4aug16  do not allow edit button to work if ESP is started without an
             input filename

 5aug16  make documentation of CSYSTEM statement clearer

 6aug16  uprev to v1.10

 8aug16  ocsmSave incorrectly writes ELSEIF instead of IFTHEN

 8aug16  initial sketch helper with restrictions
             - can only use straight lines
             - only uses X, Y, V, H, and L constraints
             - L constraint only uses dx or dy

 9aug16  add asserts to fix scan-build errors

 9aug16  update to throw error if sketch checker is skipped

11aug16  commit training_2016 with muddy cards

12aug16  distinguish between illegal_pmtr_name and
             func_arg_out_of_bounds in thrown errors

12aug16  show "skipped" in Tree window so user can more easily find an
             error

12aug16  update Makefile.DARWIN64 so the F90 only gets used to link
             fun3dCSM and tessCSM if USING_GRAFIC is set

13aug16  add intersectALL, subtractAll, and unionAll test cases

13aug16  add data/gallery

13aug16  wrong message thrown from EXTRUDE, REVOLVE, or SWEEP if
             missing Body on stack

13aug16  clear signal code in ocsmCheck

13aug16  fix message when deleting Parameter in ESP

13aug16  delPmtr sometimes removes wrong Parameter in ESP

13aug16  cancel editting of Pmtr or Brch when either a Pmtr or Brch is
             chosen in Tree window

16aug16  fix indexing error in fun3dCSM

16aug16  initial fun3dCSM input files

17aug16  show multiple hints at a point or segment when in sketch
             checker

18aug16  add skfix* test cases

18aug16  enable zooming in and out with "+" or "-" in Graphics window

18aug16  update sketch fixer so that it gives correct results when
             segments are nearly horizontal or vertical

19aug16  refactor sketch fixer and integrate with sketch solver

19aug16  initial implementation of File menu in ESP

20aug16  add Sketch menu to ESP (combine SaveSketch and QuitSketch)

20aug16  refactor constraints in solveSketch and fixSketch

21aug16  implement ::I[ ::R[ and ::S[ shorthands in sketch solver

21aug16  fix arrowhead size for CSYSTEMs

21aug16  change cursor shapes in various ESP frames

21aug16  check for self-intersecting sketches; add
             OCSM_SELF_INTERSECTING

21aug16  add insideOut test case

23aug16  use Body's _name attribute in Tree Window in ESP

24aug16  in ESP, highlight all Branches that explicitly use the
             Parameter being editted

24aug16  allow "Up to date" to be pressed as first action in ESP

24aug16  ensure all run-time errors call signalError (for example,
             self-intersecting sketches)

24aug16  make File and Sketch dropdowns disappear after selection

27aug16  add skfix5 test case

27aug16  add fun3d design input files

29aug16  remove WV_START from serveCSM

30aug16  add ESP logo to browser tag

 1sep16  document messages between client and server

 1sep16  add message debugger in ESP (wv.debugUI)

 1sep16  only send .csm file to browser during file->edit (speed
             enhancement)

 2sep16  add tutorial0 test case (for IMR)

 2sep16  implement file->new, file->open, and fix file->edit

 2sep16  allow editing when started without .csm file

 2sep16  do not activate build button if undo has nothing to undo

 2sep16  misc debugging in fun3dCSM

 3sep16  fix infinite loop when there is more than one ::L in a
             constraint

 3sep16  update training_2016 files and include session08

 4sep16  post help messages if ESP started without file or user
             selected File->New

 4sep16  add XOR operator to IFTHEN and ELSEIF statements

 4sep16  allow operators in IFTHEN and ELSEIF statements to be either
             lowercase or UPPERCASE

 5sep16  allow + - PgDn and PgUp keys to zoom-in and zoom-out in
             Sketcher

 5sep16  add skfix6 test case

 5sep16  provide constraint hints for CIRARCS

 5sep16  fix duplicated message when Sketch solver fails

 5sep16  add SPRINT3x and SPRINT4x macros

 5sep16  add solvable and incomplete versions of skfix* test cases

 9sep16  add more cases to data/gallery

 9sep16  add gallery of cases to ESP-help

 9sep16  remove J20* test cases from repository

 9sep16  update Makefiles to run gallery cases as part of automated
             testing

10sep16  add _tParams attribute to Bodys when they are tessellated

10sep16  reorganize fun3dCSM to eliminate many errors

11sep16  added EGG/PDT2 to fun3dCSM

12sep16  reorganize pictures for ESP-help

12sep16  edit _tParams documentation in OpenCSM.h

14sep16  update ESP-help for v1.10

15sep16  update pictures in ESP-help

16sep16  fix ESP so that open branches in Tree window stay open upon
             rebuilds

17sep16  update pictures in ESP-help

17sep16  update tutorial*.jrnl files

*******  v1.10 release

23sep16  uprev to v 1.11

23sep16  fix typos in comments in egg.h

24sep16  add kulfan4 test case

30sep16  update fun3dCSM files

 4oct16  more fun3dCSM updates

 4oct16  capitalize Attribute in comments in OpenCSM.c

 6oct16  add .vtk writer to fun3dCSM

 6oct16  fix bug: initialize stor.ibody=NULL before MALLOC

 7oct16  fix typo in ESP-help.html

 7oct16  initial design of udfPropAttr

 7oct16  add propAttr* test cases

 8oct16  modify MVC to include visibility condition

 9oct16  update fun3d input files so that design runs without
             generating negative volumes

11oct16  return EXIT_FAILURE for premature exits form fun3dCSM

14oct16  update fun3dCSM to properly account for mapped Bodys

16oct16  clean up mapping vectors and debug prints in fun3dCSM

16oct16  add CINT, CDOUBLE, and CCHAR definition to udpUtilities.h

16oct16  add ROUTINE, CHECK_STATUS, SET_STATUS, MALLOC, RALLOC, and
             FREE macros to udpUtilities.h

16oct16  use CHECK_STATUS2 in udfBezier to avoid conflicts

16oct16  initial implementation of udfPropAttr (no wildcards)

16oct16  fix propattr* test cases

16oct16  add propAttrEE and propAttrFF test cases

16oct16  add udfPropAttr description to ESP-help (and remove
             udfPropAttr.txt)

17oct16  fix mapping problem in fun3dCSM

19oct16  another mapping problem fix in fun3dCSM

19oct16  add fun3dCSM to lint target in Makefiles

19oct16  add ability in fun3dCSM to compute displacements from .ugrid
             file (if it exists)

19oct16  fix cell indexing problem in tecplot file in fun3dCSM

20oct16  add printing of Node attributes in ocsmPrintBrep

20oct16  add * + ? wildcards to attrName in udfPropAttr

20oct16  delete Attribute in udfPropAttr if propfrom==D

20oct16  add propAttrD and propAttrWild test cases

21oct16  add @@nchange output to udfPropAttr

21oct16  add assertions to all propAttr* test cases

21oct16  document output arguments for all UDPs and UDFs

22oct16  add gmgwCSM program (for GMGW-1 analyses of multi-block
             grids)

22oct16  update fun3d input files

24oct16  reorganize gmgwCSM

28oct16  print design parameter bounds in fun3dCSM

28oct16  add vr_mvc flag to mvcInterp in both OpenCSM and fun3dCSM

30oct16  change fun3d test case to minimize drag while holding lift

 1nov16  add fun3dCSM.summary file to fun3dCSM

 5nov16  move Slugs ToDo items to Slugs/ToDo.txt

 5nov16  add oneFace argument for BLEND in ESP

 6nov16  add plot to fun3dCSM to explain difference between
             displacement and sensitivity

 8nov16  add surface contours in fun3dCSM

 9nov16  include parent in signature to eggInfo

12nov16  add ocsmPerturb

12nov16  add -ptrb command line argument to serveCSM

13nov16  restructure fun3dCSM to use new ocsmPerturb function

17nov16  update OpenCSM to allow choice of sensitivity interpolation
             method

18nov16  add propAttr to Makefile and NMakefile

19nov16  clean up plotting info in fun3dCSM

21nov16  compute perturbed grid to be consistent with sensitivities in
             fun3dCSM

22nov16  add GRAFIC options in fun3dCSM

22nov16  add new tessellation morphing technique in fun3dCSM

23nov16  allow ENDIAN and BINARY/UNFORMATTED choices in gmgwCSM

24nov16  update fvbnd reading in gmgwCSM

25nov16  first implementation of histogram of distToFace in gmgwCSM

26nov16  document _name attribute in ESP-help

26nov16  refactor surface grid info in gmgwCSM

26nov16  add Grid display to Tree Window in ESP.js (for gmgwCSM)

26nov16  handle iblanks properly in gmgwCSM

26nov16  add octree/EG_invEvaluateGuess to greatly speed up inverse
            evaluations in gmgwCSM

29nov16  add IBLANK support in gmgwCSM

30nov16  ensure GPrims have unique names in gmgwCSM

30nov16  fix error messages in graphics in serveCSM and gmgwCSM

 2dec16  add gmgwCSM to Makefile.LINUX64

 2dec16  misc fixes to gmgwCSM

 3dec16  add timing info to gmgwCSM

 3dec16  add GRAFIC as option when compiling gmgwCSM

 3dec16  add plotPatchDist and plotPatchMap to gmgwCSM

 3dec16  use neighbor info to improve inverse evaluations in gmgwCSM

 4dec16  add grid quality histograms to gmgwCSM

 4dec16  add plotFaceMap to gmgwCSM

 5dec16  add gmgwCSM.txt

 6dec16  initial implementation of udpFitcurve and its test cases

 7dec16  initial inplementation of EG_fitBspline

 8dec16  allow multiple Edges to be defined in udpFitcurve

 8dec16  add fitcurve info to ESP-help

 9dec16  add prints of global extrema and MG levels in gmgwCSM

10dec16  add -plotOnly command line flag to gmgwCSM

10dec16  make serveCSM and gmgwCSM consistent

11dec16  add freeformBox test case

15dec16  fix bug that did not update the scene graph after rebuilds

16dec16  added attribute2 test case

19dec16  IFTHEN does not allow EQ (only eq)

22dec16  add freeformCyl test case

22dec16  restructure fun3dCSM to get rid of lint warnings

22dec16  start using the phrase "smart Geometry"

22dec16  fix potential memory leaks in fun3dCSM

23dec16  add verification to all .csm files

23dec16  list line numbers during ocsmLoad

23dev16  in UDPRIM, $$/ prefix means get UDC from ESP_ROOT/udc

23dec16  add udc directory

24dec16  move gen_rot.udc, flapz.udc, popupz.udc, and spoilerz.udc to
             ESP_ROOT/udc directory

25dec16  remove hard-coded Z values from flapz.udc

25dec16  add flap5 test case

25dec16  select last non-null Body at beginning of udc

25dec16  fix verification data for flap1-flap5 test cases

27dec16  update CAPS/myPlane test case to use $ESP_ROOT/udc/flapz

28dec16  document UDCs shipped with ESP (in $ESP_ROOT/udc)

29dec16  update myGlider_0.jrnl for Slugs

31dec16  add L1T2 test case to demonstrate fitcurve UDP

31dec16  add GRAFIC option to udpFitcurve

31dec16  fix bug if trying to write a .cpc file after ocsmBuild fails
             within a UDC (reset MODL->level=0 at end of ocsmBuild)

31dec16  fix bug if .cpc file contains a UDC that calls another UDC

31dec16  add M85_modified test case

31dec16  add propeller test case

31dec16  add ridge test case (for Boolean tests)

31dec16  add X29 test case

31dec16  add expressions.cpc test case

31dec16  change date from 2016 to 2017

 1jan17  move duct.udc, strut.udc, and wake.udc to udc directory

 1jan17  simplify listing for IFTHEN and ELSEIF Branches

 1jan17  rename data/gallery/components/*.udc to my*.udc

 1jan17  consolidate fuselage.udc into udc directory

 1jan17  consolidate wing.udc into udc directory

 2jan17  add udfEditAttr and associated test cases

 2jan17  add blend16* test cases

 2jan17  fix bug when adding verification info to .csm that has END
             (rather than end) statement

 2jan17  fix bug when Tree Window is not correct for NodeBodys created
             by SKBEG/SKEND statements (attribute2)

 2jan17  fix bug when Tree Window is not correct for NodeBodys created
             by POINT statement (attribute2)

 2jan17  fix bug that caused no attributes on NodeBodys created by
             POINT statement (attribute2)

 2jan17  add attribute3 test case

 3jan17  add attribute4 test case

 3jan17  add persistence of Edge attributes during regenerations
             (attribute4)

 3jan17  add subtract3* test cases

 3jan17  add abillity to subtract SolidBody from SheetBody
             (subtract3c)

 4jan17  fix subtractAll test case for new SUBTRACT capability

10jan17  remove uddPropAttr and test cases

13jan17  modify way ignored asserts are reported

14jan17  add interblock checks to gmgwCSM

14jan17  add ASCII histogram plots to gmgwCSM

14jan17  add -bigEndian, -hasIblanks, and -unformatted flags to
             gmgwCSM

24jan17  change tolerance associated with PROJECT command

28jan17  fix bug in serevCSM that erroneously tried to visualize Faces
             that have not triangles

28jan17  for any Face without triangles, print out warning info that
             contains bounding box and adjoining Edge info

29jan17  fix bug that causes ocsmLoad to prematurely exit when UDC's
             last statement is not END and does not have a terminal
             CR/LF; udate udcBox.udc to test this

30jan17  remove zero-length bezier segments from sketch

 1feb17  fix oscmSave bug when saving model that contains an inline
             file

 2feb17  add -makeFvbnd option to gmgwCSM

 3feb17  add printout of Patch points per Face in gmgwCSM

 3feb17  improve summary prints in gmgwCSM

 4feb17  add -flagDist command to gmgwCSM

 8feb17  add volume checker to gmgwCSM

11feb17  improve consistency of serveCSM and gmgwCSM

11feb17  add extrudeWithHoles, ruleWithHoles, revolveWithHoles, and
             blendWithHoles test cases

11feb17  allow EXTRUDE to work on Faces with holes

11feb17  fix octree bug in gmgwCSM

12feb17  fix mapping from point to Brep in gmgwCSM

14feb17  add warning about global grids when -makeFvbnd option is used
             in gmgwCSM

23feb17  add mass properties via tessellation to serveCSM

23feb17  optionally write .lite files in serveCSM

24feb17  initial implementation of liteCSM

24feb17  fix warning messages in liteCSM

25feb17  add inverse evaluation checks to serveCSM and liteCSM

27feb17  fix bugs in Makefile.DARWIN64 for make verify

27feb17  add mtype print in inverse evaluation checks in liteCSM

27feb16  make inverse evaluation checks consistent in liteCSM and
             serveCSM(CHECK_LITE)

27feb17  add verifyLite target to Makefile.DARWIN64

28feb17  use (long long) for pointers to avoid compiler warnings

 3mar17  print leading $ in arguments in ocsmPrintBrchs

 4mar17  add OCSM_PMTR_WRONG_TYPE

 4mar17  remove superfluous DPRINT statements in OpenCSM.c

 4mar17  support string-valued values in rpnEval

 5mar17  add maximums to histograms in gmgwCSM

 7mar17  fix stack overflow associated with evalRpn

 9mar17  add average and RMS summaries to histograms in gmgwCSM

11mar17  support string-valued parameters

12mar17  add ocsmGetValuS to OpenCSM api

15mar17  overload + to concatenate strings

15mar17  overload .size dot-suffix to return length of string

15mar17  add val2str, str2val, findstr, and slice functions

15mar17  add string checks to expressions.csm

15mar17  define allowable characters for strings

16mar17  document that you need more than one Edge in udpFitcurve

16mar17  allow UPPERCASE or lowercase arguments to ELSEIF statement

17mar17  change special Attribute name from color to _color

18mar17  fix documentation that RESTORE statement's Attributes
             are added to all associated Faces

19mar17  maintain sketch Attributes in EXTRUDE, REVOLVE, and SWEEP

22mar17  add to OpenCSM.h a list of commands that put Branch
             Attributes on the Faces that are created

22mar17  add Carrera test case

23mar17  color non-manifold Edges (.nface>2) orange in ESP

23mar17  color non-manifold Edges (.nface<2) brown in ESP

23mar17  edit ESP-help to document maxloc argument in UDPRIM naca

23mar17  edit ESP-help to document additional options for the
             overwrite argument in udfEditAttr

24mar17  fix bug in udpNaca for sensitivity at trailing edge Node
            if sharpte=1

25mar17  implement maxloc argument in udpNaca

25mar17  implement expanded overwrite argument in udfEditAttr

26mar17  prototype GETATTR command in ESP-help

26mar17  add editAttrOverwrite test case

26mar17  add verification data to Carrera, L1T2, blendWithHoles,
             ruleWithHoles, and F16

 1apr17  change fidelity.dict to intent.dict in Makefile.*

 1apr17  update verifyLite target in Makefile.DARWIN64

 1apr17  add valgrind target to Makefile.DARWIN64

 2apr17  add alternative inverse evaluator in liteCSM

 3apr17  add option to liteCSM to choose inverse evaluation type

 5apr17  use LM optimization to improve inverse evaluations in liteCSM

 5apr17  add EG_invEvaluate/EG_evaluate check to serveCSM if
             CHECK_LITE is chosen

 6apr17  fix bug in improved inverse evaluations in liteCSM

 7apr17  switch liteCSM to use new EG_invEvaluate in EGADS-lite

12apr17  separate CHECK_LITE and WRITE_LITE macros in serveCSM

12apr17  fix GRAFIC bug in udpFitcurve

13apr17  add fitCurve4a and fitCurve4b test cases

14apr17  add fitCurve4c to fitCurve4h test cases

15apr17  added ordered argument to udpFitcurve

18apr17  fixed bug when specifying partially-non-orthogonal CSYSTEMS

18apr17  added csystem4 test case

18apr17  return error when either direction in CSYSTEM has zero length

18apr17  be able to trap ILLEGAL_ATTRIBUTE and ILLEGAL_CSYSTEM errors

18apr17  fix LINT warning in udpNaca

19apr17  add fitCurve5a and fitCurve5b test cases

20apr17  add auto-scaling in udpFitcurve

21apr17  change udpFitcurve make WIREBODY if curves are not planar

22apr17  add tblade test case

22apr17  add PERIODIC argument to udpFitcurve

23apr17  modify tblade.csm to use more control points and periodicity

24apr17  add -plot command line option to serveCSM

25apr17  reorganize tblade test cases

30apr17  improve outLevel=3 reporting for HOLLOW

 1may17  add hollow9* test cases

 3may17  fix typo in hollow9f.csm

 4may17  in ocsmNewPmtr, remove INTERNAL Parameters before adding a
             new CONSTANT or EXTERNAL Parameter

 4may17  in ocsmSave, intermix CONSTANT and EXTERNAL Parameters at top
             of file being written

 4may17  when reading from dictionary, do not throw error if a CONSTANT
             Parameter with same value already exists

 4may17  in ocsmFindPmtr, return NAME_ALREADY_DEFINED error if name
             already exists but with different type, nrow, and/or ncol

 8may17  add ability to plot surface curvatures in serveCSM

 8may17  clarify documentation for HOLLOW

 8may17  update hollow9b and hollow9e test cases

 8may17  add hollow9g, hollow9h, and hollow9i test cases

11may17  add -plotCP option to serveCSM to plot BSPLINE control
             polygons

11may17  add blend17* test cases

11may17  add progress indicators for inverse evaluations in serveCSM
             when CHECK_LITE is defined

12may17  update verifyLite target in Makefile.DARWIN64

12may17  fix bug in liteCSM for cases when _tessMassProps is not
             defined

12may17  add GRAFIC to liteCSM for cases where inverse evaluations
             fail (for debugging)

12may17  add editAttrBug test case

13may17  fix bug that puts an Attribute back on an Edge after it is
             deleted in udfEditAttr

15may17  be specific in ESP-help that arguments to UDPRIM are
             name/value pairs and not positional

18may17  add getattr1 test case

19may17  initial implementation of GETATTR command

22may17  complete implementation of GETATTR command

22may17  document valid color names for _color attribute

22may17  add ifmatch string functions to OpenCSM

23may17  add DisplayType to TreeWindow to plot UV or curvature

23may17  write autosave.csm file when Branch, Parameter, or Attribute
             is added/editted/deleted in ESP/serveCSM

23may17  add A command in GraphicWindow to add an Attribute to the
             Face or Edge at the cursor

24may17  move autosave write to after addition/edit/deletion of
             Branch, Parameter, or Attribute

24may17  when adding an Attribute via A keypress, put SELECT
             statements after last executed Branch

24may17  fix bug to allow HOLLOW after SKEND

24may17  add hollowA test case

24may17  modify tblade_compressor and tblade_turbine to include
             cross-sectional WireBodys

24may17  adjust text height in buttons so that they take up less space
             and are less likely to overflow available space in ESP

25may17  reorganize tblade* test cases

26may17  add tblade_comp3 and tblade_turb3 test cases

26may17  initial implementation of udpTblade

26may17  in udpNaca, require finite difference sensitivities for
             MAXLOC

27may17  allow creation of Attribute (via A option) to start with
            a period (.) or underscore (_)

27may17  document A option in ESP-help

28may17  initial parallelization in gmgwCSM

29may17  set gmgwCSM up to use only one thread because of a contention
             problem in EGADS for multiple threads

31may17  fix bug in ESP.js that made tree window overlap with logo

 4jun17  add DESPMTRs to tblade_comp3 and tblade_turb3

 4jun17  modify Tblade to check before allocating arrays for multiple
             runs

 6jun17  fix bug that did not allow sensitivity calculations for
             vector inputs to a UDP

 7jun17  add ability to save view to and read view from a file in ESP

 8jun17  add udpTblade to Makefile.LINUX64

 8jun17  change all mentions of fidelity to intent in training
             material etc.

 9jun17  ensure Glossary in ESP-help is up to date

 9jun17  in ESP, File->Open (non-existant file), File->Edit causes seg
             fault and crash

 9jun17  update dates in all files

 9jun17  update ESP-help with latest info in OpenCSM.h, etc

 9jun17  add GETATTR to ESP

 9jun17  add AVERAGE argument to udpTblade

 9jun17  add first draft of training_2017

 9jun17  minor fixes to remove lint wrnings

10jun17  update verification info in tblade_ test cases

10jun17  update training/session07 test cases to change from fidelity
            to intent

10jun17  update ESP-help to include new A command to graphically add
            Attribute

10jun17  run tutorials and update pictures in ESP-help

10jun17  change version number in training_2017/session*.tex

*******  v1.11 release

18jun17  uprev to v1.12

18jun17  change Makefiles to allow udpTblade to be built with GRAFIC

18jun17  fix inci/devn bug in udpTblade

18jun17  remove mrel1 and sec_flow_ang overrides in udpTblade

18jun17  add cur4 override in udpTblade

18jun17  update Tblade/*.f90 to be consistent with GitHub version of
             Tblade on 17jun17

18jun17  add commentted-out main program in Tblade

18jun17  fix errors that valgrind found in Tblade

18jun17  fix vector_rotation in Tblade because of problems caused by
             using -cpp flag to gfortran

18jun17  add tblade_comp4 and tblade_turb4 test cases

20jun17  initial implementation for hub and tip walls in udpTblade

21jun17  in udpTblade, fit hub and tip to axisymmetric surfaces

22jun17  extend DUMP to write colored binary stl files (.bstl)

22jun17  for DUMP command, allow writing of multi-body .stl and .bstl
             files if toMark is set

22jun17  add bstl3, bstl4, and stl4 test cases

26jun17  add copyWingSections and copyFuselageSections test cases

26jun17  add -fno-recursive to Makefies in Tblade3

29jun17  add basic Slugs test cases (box, boxHole, cylinderHole,
             sphere, torus)

30jun17  update outLevel=3 info when subtracting SHEETBODY from
             SOLIDBODY

 1jul17  fix OpenCSM Makefiles for clean and clobber with Tblade3

 1jul17  fix bug associated with subtracting SHEETBODY from SOLIDBODY

 1jul17  fix debug error in writeAsciiStl

 3jul17  add/adjust Slugs test case files

 5jul17  initial version of udpLevelset and its test cases

 7jul17  update gmgwCSM to use EGADS-lite and run only as a batch
             process

 7jul17  add point, line, and grid plotting to serveCSM (-plot option)

 7jul17  write gmgwCSM.out file with grids and bad points

 7jul17  remove OpenCSM.o from links for gmgwCSM

 8jul17  update OpenCSM to use new EG_getBodyTopos signature

 8jul17  change BEM.dat to BEM.bdf to be consistent with NASTRAN docs

 8jul17  modify data/Slugs/cylinderHole to have 2 holes

 8jul17  modify data/Slugs/boxHole to have 2 holes

 8jul17  update Slugs test cases

 9jul17  allow Faces with holes in Slugs

 9jul17  change udpNaca to use EG_getRange instead of EG_invEvaluate
             to find trailing edge ts

 9jul17  ensure tend>tbeg for CIRARCs

 9jul17  update verification data in ncawing and project2 test cases

10jul17  add -Wshodow checks during compilation

10jul17  add eyeball test cases for Slugs

11jul17  add boxball test cases for Slugs

11jul17  misc cleanups in Slugs

12jul17  more cleanups in Slugs

13jul17  return number of iterations use in LM process in Slugs

13jul17  remove ability to add multiple copies of inner loop points
             when fitting in Slugs

13jul17  update verification data in Slugs test case files

16jul17  fix minor typos in comments in Slugs

17jul17  update verification data in Slugs test case files

18jul17  extend HOLLOW so that it can be applied to a FaceBody

18jul17  add hollowB test case

19jul17  add radius argument to HOLLOW for SheetBodys

19jul17  add/modify hollowB* and hollowC* test cases

20jul17  update HOLLOW documentation

21jul17  add verification data to hollowB* and hollowC* test cases

23jul17  fix Face planarity checks in Slugs

25jul17  update string evaluation checks in expressions.csm

25jul17  add radius argument to HOLLOW in ESP.js

25jul17  update documentation of .nrow and .ncol for string values

25jul17  update documentation of allowable characters in string
             expressions

25jul17  get latest version of Tblade3 from GitHub

25jul17  fix plotting data bug in Slugs for linear fits in fit1dCloud

25jul17  normalize data in fit1dCloud in Slugs

25jul17  modify udpTblade to put all temporary files into
             ./Tblade3_temp

25jul17  rename tblade_* data files to be consistent with required
             naming conventions in Tblade3

28jul17  modify udpTblade so that it does not use copyfile

28jul17  fix prodmax error in Slugs.c

29jul17  update DEBUG printing in udpTblade

 2aug17  incorporate latest version of Tblade3

 2aug17  update blend8.csm to avoid twisted RULEd surface

 3aug17  update list of characters allowed in strings, including
             escaped '+ ') and ',

 4aug17  update parser in OpenCSM to allow expressions of the forms:
             1+2, $1+2, 1+$2, $1+$2, and ifmatch($abc, $*c, 0, 1)

 4aug17  add string tests to expression.csm

 5aug17  update valgrind info in Makefile.DARWIN64

 5aug17  update verification data in gallery/F16

 5aug17  fix memory leak at OpenCSM.c:15164 (EG_getBodyTopos)

 7aug17  fix bug in way results of SET statement are reported

 7aug17  make concatenation of string and number produce different
             results depending on whether number is a whole integer

 7aug17  fix bug in slice() function

 7aug17  update expressions.csm

 9aug17  add latest Tblade3 updates/variables

10aug17  fix udpTblade bug

11aug17  prototype use of Attributes in SELECT statement

13aug17  toggle (v)izability, (g)rid, (t)ransparency, or
             (o)rientation via key presses in ESP

13aug17  fix bug related to persistence of attributes when two
             separate Edges have similar edge_IDs

15aug17  split verifyLite target in Makefile.DARWIN64

17aug17  use streaming version of EG_exportModel in serveCSM and
             liteCSM

19aug17  improve error messages returned from expression parser

19aug17  stop execution when uncaught expression signal is raised

19aug17  convert global ints interpVel and morphGrid to defines

19aug17  skip evalution on degenerate Edges when computing Node
             sensitivity

20aug17  prototype new ENTLIST statement

20aug17  prototype enhanced FILLET, CHAMFER, and HOLLOW statements

25aug17  change SELECT statement to not allow specification of face,
             edge, or node without any additional arguments

30aug17  move data/Slugs/sphere_0.csm to data/basic/sphereScribe.csm

30aug17  add data/Slugs/sphere_0.csm to be quarter of a sphere

31aug17  remove .lite files from gmgwCSM.c and Makefile.DARWIN64

 1sep17  fix seg fault in gmgwCSM (when acceptable point is not found)

 5sep17  add Slugs/wing_0 and Slugs/wing_1 test cases

 7sep17  update README to document cases that fail

11sep17  add designG1 and designG2 test cases

15sep17  update designG2 test case

18sep17  add group3 and group4 test cases

18sep17  fix GROUP bug during rebuilds with recycled Bodys

19sep17  start implementing entity list (via SELECT)

22sep17  refactor existing selection code

23sep17  cleanup SELECT command

23sep17  update select1 test case

23sep17  fix bugs in SELECT when one item in select list

23sep17  add select2 test case

23sep17  update RALLOC to work if pointer is NULL

24sep17  add GROUP to select1.csm

24sep17  fix bug in REORDER command for SHEETBODYs

24sep17  allow BODY, FACE, EGDE, or NODE as first argument to SELECT
             command

24sep17  rename select1.csm to select1a.csm and add select1b.csm

25sep17  implement multi-valued select list for Faces

27sep17  implement multi-valued select list for Edges and Nodes

27sep17  adjust mass properties with multi-valued select list

27sep17  update select2.csm

27sep17  add select3 test case

28sep17  fix @xmin for SELECT with single Edge

28sep17  implement SELECT ADD and SELECT SUB

28sep17  add select4 test case

28sep17  update description of HOLLOW statement

29sep17  update udpTblade to use Bspline control points around blade
             instead of sampling as done in BLEND (use new skinner)

30sep17  fix verification data in hollow7*.csm

30sep17  provide default thick=0 in HOLLOW command (and update
             associated test cases)

30sep17  change arguments to HOLLOW to allow both old and new styles
             for entList

30sep17  add new test cases to test both old and new listStyles in
             HOLLOW

30sep17  removed radius option from HOLLOW command and removed test
             cases that used it

30sep17  remove obsolete cmenu code in ESP.js

30sep17  extend SELECT ADD and SELECT SUB to choose by ibody/iford

30sep17  clean up udpTblade and verification data in its test cases

30sep17  add hollow0* test cases

30sep17  choose sharp corners when making HOLLOWs

30sep17  add hollowD* test cases

 1oct17  change EG_approximate method that is used in udpSupell

 1oct17  implement HOLLOW when applied to SheetBody

 2oct17  modify verification data in test case files that use udpSupell

 2oct17  allow user to filter display in ESP based upon attribute
             name/value pairs

 2oct17  change sense of airfoils generated by udpBiconvex

 3oct17  update F16 due to change in sense of biconvex airfoil

 4oct16  initial refactoring of method for handling graphical
             attributes in ESP

 7oct16  refactor method for handling graphical attributes in ESP

15oct17  fix sensitivity bug (segmentation fault) in udpNaca

22oct17  add ability to plot Loops when Face cannot be tessellated and
             GRAFIC is enabled

28oct17  update plotting of Loops when Face cannot be tessellated

 1nov17  make changing display attributes faster by delaying tree
             update until after all propagations

 3nov17  add channel test case

 3nov17  add gouge test case

 3nov17  add SELECT FACE, SELECT EDGE, and SELECT NODE to select all
             Faces, Edges, or Nodes in selected Body

 3nov17  update select2.csm to test new SELECT options

 3nov17  allow DIMENSION statement to redimension previous local
             variable

 4nov17  evaluate string expressions in ATTRIBUTE statements

 4nov17  update verification data in test cases that use .stp files
             that are written in inches

 6nov17  implement discrete displacement surfaces in serveCSM

 6nov17  add scribedCylinder test case

 6nov17  add gougedBox and gougedCylinder test cases

 8nov17  modify DUMP command to write .sens files (which is a
             tessellation file with sensitivity information)

11nov17  add joinSheets* test cases

13nov17  implement JOIN for SheetBodys

16nov17  fix bug in JOIN for SheetBodys

19nov17  add plateBEM, boxBEM, and cylinderBEM test cases

20nov17  update udfCreateBEM to write PSHELL and MAT1 cards

20nov17  fix typo in comment in OpenCSM.h

21nov17  allow contours to be drawn on the back of a Face

22nov17  update tblade_comp4.csm to make cur4 the correct size

23nov17  allow name[irow] on left side of SET statement and modify
             expressions.csm to test it

23nov17  add plateBeam test case

23nov17  make Edges wider (more prominant) when using DisplayFilter

23nov17  allow JOIN to work on SheetBodys when the inputs share a Face

23nov17  add joinSheets4c and joinSheet5* test cases

23nov17  add argument to GROUP to tell how many Bodys to group

23nov17  add group5 test case

23nov17  allow BOX command to create a SheetBody if dx, dy, or dz is 0

23nov17  add boxA test case

24nov17  add -dumpEgads flag to serveCSM to write Body_xxxxxx.egads
             files as a Body is created

26nov17  start implementation of StepThru mode in serveCSM

27nov17  fix bug asociated with UNDO in serveCSM

28nov17  update interface to ocsmSetValu, ocsmSetValuD, ocsmSetVel,
             and ocsmSetVelD

28nov17  update parseName to be able to index Parameters with single
             index (if icol==0)

29nov17  add -loadEgads flag to serveCSM to read Body_xxxxxx.egads
             files instead of actually creating a new Body (useful for
             debugging when used in combination with -dumpEgads flag)

30nov17  implement StepThru mode in serveCSM

 1dec17  fix bug that caused EGADS file to not be written if
             __noTopoChanges__ flag was set (in udfEditAttr)

 2dec17  check that argument values match before loading Egads file
             with -loadEgads flag and stop further reloading when
             non-match is found

 5dec17  add fins test case (for IRIT)

 6dec17  fixed bug that did not remove sceneGraph objects after
             deleting all Branches

 6dec17  fix bug in ESP.js that caused bad message if Re-bulding...
             button is pressed

 6dec17  fixed bug that caused ESP to remain in re-building mode if a
             typo is added to a .csm file when using File->Edit

 6dec17  fixed bug that did not clear scene graph (and occasionally
             seg faulted) after an error encountered during loading
             a .csm file (after File->Open or File->Edit)

 7dec17  add fauxFillet* test cases

 7dec17  added a catchable signal to FILLET and CHAMFER when an
             error is returned from EGADS

 7dec17  add code so that File->Edit uses as much recycling as
             possible

 8dec17  change process for drawing Edges in ESP to overcome the fact
             that browsers no long supporting the drawing of thick
             lines (change in WebViewer)

 8dec17  fix bug in SELECT statement that could seg fault if iseq was
             not specified

 8dec17  allow inline files in UDPARG statements

 8dec17  allow $$/ relative file references in UDPARG statements

 8dec17  modify L1T2 and import2 test cases to exercise new UDPARG
             capabilities

 8dec17  add fin1 test case and rename fins->fin2

 9dec17  add _hist Attribute to Faces to fix problem with traversing
             feature tree while computing sensitivities (designG1,2)

 9dec17  modify getattr1 test case to account for new _hist Attribute

 9dec17  add tufts to display when -sensTess is enabled and a
             sensitivity is being displayed

 9dec17  add rounded tip treatment description (for wings) to OpenCSM.h

 9dec17  add connect6* test cases

11dec17  allow CONNECT to work for single Faces with numEdges.ne.4
             (F16_SmoothWingFlaps.cpc)

11dec17  update messages in gmgwCSM

12dec17  fix bug in getattr1.csm

12dec17  clean up temporary egos in CONNECT

14dec17  remove erroneous message that was printed when SELECT Branch
             was not attributed

14dec17  fix bug in SELECT SUB

14dec17  update OpenCSM.h to describe when ATTRIBUTE statement adds
             Attributes to all Faces as well as Body

15dec17  update ESP-help with latest extracts from other files

17dec17  add wingTestAttr test case

18dec17  update ESP-help and its pictures for v1.12

19dec17  update README

20dec17  update Slugs input files

20dec17  update more Slugs input files

*******  v1.12 release

23dec17  uprev to version 1.13 and update dates to 2018

23dec17  add Slugs/duct test case

24dec17  add Slugs/conehole test case

24dec17  add nurbbody* and test cases

27dec17  add stag* test cases

27dec17  implement udpStag

30dec17  add -- command line argument to serveCSM

30dec17  change BAD_MALLOC to EGADS_MALLOC in udpUtilities.h

31dec17  add __markFaces__ special Attribute if OpenCSM is to mark
             Faces with current Branch after UDF

31dec17  add tile* test cases

31dec17  implement udfTile

 1jan18  update comments in stag* test case files

 1jan18  update comments in OpenCSM.h and OpenCSM.help

 2jan18  propagate colors from tile in udfTile

 2jan18  modify/add tile* test cases

 4jan18  modify Todo.txt to note version number and date in ocsm.rc

11jan18  update @-parameters in SELECT before applying attributes to
             selected entities

12jan18  add GMGW2 test cases

13jan18  add editAttrFile test case

13jan18  add filename argument to udfEditAttr to answer challenge
             questions (wingAttrTest.csm)

14jan18  move tile* test cases to TRADES

14jan18  add TRADES/tile6 test case

14jan18  add bodynum and @numbodys to udfTile

16jan18  convert Beziers to BSplines in udfTile

16jan18  add more TRADES test cases

20jan18  update OPAM1 test cases

21jan18  update plateBeam.csm to optionally give good triangles in
             interior

22jan18  add glass test case

22jan18  add comments to OpenCSM.c regarding the freeing of memory
             associated with Bodys

24jan18  update README to include CAPS and Slugs tests

26jan18  add debug info to udfTile

27jan18  highlight Branch associated with shown Body when in stepThru
            mode

28jan18  fix bug that did not allow user to change visibility of
            graphic objects specified in -plot plotfile

28jan18  add gyroid test case

28jan18  fix bug that did not change color when specified by SELECT
            face / ATTRIBUTE _color and no further processing done on
            Body

 1feb18  fix typo in comment in OpenCSM.h

 2feb18  add flowthru* and flowaround* test cases

 4feb18  implement JOIN for two WireBodys

 4feb18  add joinWires test case

 5feb18  add _nface Attribute to all Edges

 5feb18  add ADD keyword to udfEditAttr to append if a string
             Attribute already exists

11feb18  update README with results of OCC 6.6 and 6.8

13feb18  add print statements if tile not in unit cube in udfTile

14feb18  modify Makefile.DARWIN64 to test TRADES test cases

14feb18  update tile3.csm test case

15feb18  remove dummy Body created within udfTile (use NULL instead)

15feb18  add TRADES/simple test case

15feb18  fix memory leaks in udfTile

16feb18  initial version (0.1) of Gloves

16feb18  update error info associated with modified version of
             OCC6.8.0 on DARWIN64

16feb18  fix bug associated with reordering Loops for planar Faces

17feb18  fix bug associated with REORDER applied to planar Face
             (blend10o)

17feb18  add commented-out code to end of ESP.css that will change
             csm-file editor window to white text on black background

19feb18  add EVALUATE statement

19feb18  add evaluate* test cases

21feb18  fixed potential memory bug in ocsmLoad

21feb18  remove data/training/*/*.csm from Makefile.LINUX64

22feb18  allow user to use new-style quadding (by putting _makeQuads
             attribute on the Body)

22feb18  add quad* test cases

22feb18  change SPACE argument of createBEM to be absolute spacing

22feb18  update test cases that use createBEM

22feb18  update createBEM to use new-style quads

23feb18  move large char arrays from stack to heap in ocsmLoad

23feb18  add sanitize target to Makefile.DARWIN64

23feb18  changed a few formats to fix possible buffer overflows

23feb18  change error message associated with illegal parameter names
             when parsing expressions

23feb18  fix memory leak when a ocsmBuild does not complete and
             running in -batch in serveCSM

23feb18  fix bug to free up Body table when a problem occurs while
             applying a CSYSTEM

24feb18  fix small memory leaks that occur when an error is raised

24feb18  modify error reporting in -batch mode to support test suite
             analysis

24feb18  remove unused cleanup label in freeBody

24feb18  fix bug when trying to UNION wrong Body types

25feb18  fix udpPod so that it works properly under OCC6.8.1

25feb18  update verification data for DARWIN64/OCC6.8.1

26feb18  add union4* test cases

26fab18  update verification data in union4b*

26feb18  fix miscellaneous memory leaks that happen when a case fails
             in -batch mode

26feb18  update verification data for gallery/CanardFighter and X29

27feb18  fix FREE errors that crept in during previous memory leak fix

27feb18  fix memory leak if error is encountered during boolean
             operation

28feb18  add FJ2 to data/gallery

28feb18  add @nnode, @nedge, and @nface to verififcation data

 2mar18  add udpCsm and csm*.csm test cases

 2mar18  update Makefile.DARWIN64 and Makefile.LINUX64 to put
             libraries in ESP_ROOT/lib

 2mar18  remove Makefile.DARWIN (32 bit not supported)

 2mar18  fix uninitilized .body element in udpUtilities

 2mar18  clean up outLevel printouts in OpenCSM

 3mar18  fix Makefile for testing TRADES cases

 3mar18  add verification data to TRADES test cases

 3mar18  add udpHex and hex*.csm test cases

 3mar18  rewrite udfTile to get tile info from external .csm file

 3mar18  adjust udfTile to allow for constant thickesses

 4mar18  ocsmSetOutLevel return previous value

 4mar18  update variable names in Gloves

 5mar18  minor updates to udpCsm

 5mar18  update Jenkins verification script

 6mar18  add udpSpoke and spoke* test cases

 6mar18  allow for back-slash in strings (for Windoze)

 6mar18  fix memory leak that occurred when two filenames were given
             to serveCSM

 6mar18  fix memory leak when str2vals returns string (in ocsmBuild)

 6mar18  update Verification.sh to use -dict flag

 6mar18  add fuseStruct test case

 7mar18  remove levelset from makefiles; move sew and levelset test
             cases from data/basic

 7mar18  change from LOFT to BLEND in helix test case

 8mar18  update README with latest test suite results for DARWIN64 and
             LINUX64

 8mar18  add outLevel=2 printouts when generating a trimmed UNION

 8mar18  update how trimList works in UNION (and update strut1,
             strut2, and myPlane test cases)

10mar18  add -printBboxs flag to serveCSM

10mar18  fix bug when extracting non-existant Edge or Face

11mar18  add wingFuseBEM test case

12mar18  add @itype to tell if NodeBody, WireBody, SheetBody, or
             SolidBody

12mar18  add @itype assertions to verification tests

12mar18  allow graphical 3D transformations in Gloves

12mar18  add nocrod argument to udfCreateBEM

12mar18  update JOIN to use new EG_fuseSheets function

13mar18  add htail to Gloves

13mar18  add 3D mouse transformations to Gloves

13mar18  clean up memory associated with error string returned from
             udpErrorStr

13mar18  restore data/basic/sew.stp

13mar18  rename wingFuseBEM to wingFuseBEM1

13mar18  add n (next) and p (previous) keystrokes in StepThru mode

13mar18  add -checkMass flag to serveCSM

13mar18  dump ERROR_ebody*.egads upon errors if -dumpEgads flag is set

14mar18  create wingFuseBEM2

14mar18  rename udpSpoke to udpRadwaf

14mar18  fix int typo in Tblade3/lespline.f90

15mar18  add _nodeID and _nedge attributes to every Node

15mar18  add VBO for every Node and reflect in display list

15mar18  examine/set Node attributes in ESP

15mar18  change to BOOL_ERROR_*.egads when EG_solidBoolean returns an
             error

16mar18  add toler=0 argument to COMBINE

16mar18  add nquad argument to udSupell

16mar18  add supell5 test case

17mar18  fix assert @itype in serveCSM

17mar18  add TRADES/hx1 test case

18mar18  add frame and spoke attributes to radwaf

18mar18  update documentation for udpWaffle and udpSupell

18mar18  document udpCsm, udpHex, udfRadwaf, udfStag, and udpTblade in
             ESP-help

18mar18  add TRADES/hx2 and TRADES/hx3 test cases

18mar18  initial implementation of adding tablename argument to
             udfTile

18mar18  add assembly* test cases to demonstrate assemblies

19mar18  remove xsize argument from udpRadwaf (include in xframe
             instead)

19mar18  add TRADES/hx0 test case

20mar18  add naca3 (to test blunt TE sensitivities)

20mar18  change capitalization in editAttrFile.csm and
             wingAttrTest.csm (should be editAttr)

21mar18  fix possible gpname clash problem in serveCSM

21mar18  reorganize data/TRADES/hx* test cases

22mar18  adjust getattr1.csm to account for new Node attributes

22mar18  update udfTile to handle notched planar Faces

22mar18  issue WARNING if dumping .sens file and toMark argument is
             set

23mar18  update udfTile to handle split BSpline Faces

23mar18  update udfTile to get thicknesses via trilinear interpolation

23mar18  add TRADES/hx4* test cases

24mar18  fix bugs in udfTile

24mar18  fix @length for WireBodys

24mar18  change verification data associated with WireBodys

25mar18  fix bug that did not properly set @itype for NodeBodys

26mar18  fix error associated with testing for equality in naca456

26mar18  fix typos associated with sensitivities un udpUtilities.c

26mar18  fix rellocate error in udpUtilities when ATTRREALSEN variable
             has multiple values

26mar18  update all verification data

27mar18  fix memory leak when IMPORT fails

27mar18  add filenotfound test case (expected to fail)

27mar18  update verification data for TRADES/hx*b test cases

27mar18  remove TRADES/fixedThick* test cases

28mar18  remove verification data from tutorial1_new

28mar18  loosen up verification tolerances in X29 and CanardFighter

29mar18  add hex3 test case

29mar18  add uknots, vknots, and wknots arguments to udpHex

29mar18  fix bug that did not reset size=1 in udpReset

29mar18  add TRADES/demo1 and TRADES/demo_tile test case

29mar18  fix typo during mallocs in udfTile

29mar18  change assert in udfEditAttr to a recoverable error if
             nothing is selected

31mar18  add outlevel argument to udpTile

31mar18  update TRADES/demo* files

 1apr18  fix memory problem in udfTile

 3apr18  fix memory leak in setEgoAttribute

 5apr18  change .sens file to contain tessellation (not configuration)
             sensitivities

 5apr18  fix bug that caused infinite recursion if trying to generate
             a .sens file for a case that required finite difference
             sensitivities

 5apr18  add sens* test cases

 6apr18  remove verification data from tutorial1.csm

 7apr18  add DUMPEGADS argument to udfTile

 8apr18  modify ocsmPrintBrep to print adjacent topological objects

 9apr18  update TRADES/demo_tile to avoid poke-through

 9apr18  add TRADES/demo2 test case (auto-generated HX.csm file with
             verification added)

 9apr18  edit editAttrFile.csm to demonstrate that edit file can have
             leading white spaces

10apr18  change Slugs tutorial files to be consistent with OCC 6.8.1

10apr18  add outline for training_2016

10apr18  change 1D fitter in CAPS to only do one pass of LM

10apr18  add tutorial target to Makefile for Slugs

10apr18  fix typo in DEBUG statement in udfTile.c

11apr18  fix demo_tile.csm and add TRADES/demo3* test cases

12apr18  persist Node Attributes

12apr18  add persist* test cases

12apr18  add fillet8 test case (with many Edges)

12apr18  warn users that File->Save in ESP will cause the loss of
             user-supplied formatting and comments

13apr18  always mark Branches with inline files as dirty

15apr18  start doc/training_2018

16apr18  fix bug that caused divide by zero if abs(dab)==L/2 or
              abs(dbc)==L/2 in turnang fuction

16apr18  optionally nudge rite Body in solidBoolean operation to try
             to get around occasional internal OpenCASCADE error

16apr18  fix bug that caused divide by zero in ocsmGetVel when TdotT
             was zero

19apr18  cosmetic changes to tutorial1 to use best practices

19apr18  add temporary printouts to udpTblade to try to debug
             occasional regression errors

20apr18  upgrade ESP .csm code editor to use CodeMirror

20apr18  add fillet9 test case

21apr18  fix header in binary stl writer

21apr18  add hints to .csm editor in ESP

22apr18  when appropriate, inactivate buttons in .csm editor in ESP

23apr18  add imprint* test cases

23apr18  add OPAM1/baseline* test cases

24apr18  add sphereCone test case

24apr18  modify OPAM1/baseline3 to get tangency at the nose

24apr18  close journal file in cleanup section of serveCSM

24apr18  reorganize OPAM1 test cases

25apr18  fix ESP messages associated saving a .csm file

25apr18  update tutorial1 and tutorial3 to use best-practice
             indentation

26apr18  add block comments to .csm editor in ESP

26apr18  add auto indent to .csm editor in ESP

26apr18  add attrDemo test case

27apr18  fix strlen so that -Wsign-compare does not cause warnings

27apr18  update Makefile.DARWIN64 to use -Wsign-compare

29apr18  reorganize waffle test cases

29apr18  add waffle*b test cases

30apr18  allow filename inputs into udpWaffle

 1may18  add ocsmEvalExpr

 4mat18  increase padding around buttons in ESP

 6may18  use ! character to convert implicit strings (such as
             $primtype in UDPARG and UDPRIM statements) into
             expressions

 6may18  add implicitStrings test case

 6may18  ensure dictionary is reloaded after File->New, File->Open,
             and File->Edit->OK

 6may18  fix -Wformat-truncation errors in serveCSM

 6may18  add scribeWing test case

 6may18  update src/NMakefile to allow callbacks to OpenCSM from
             udpWaffle

 6may18  add ocsmEvalExpr to ocsm.def for Windoze

 6maya8  fix -Wformat-truncation errors in udfEditAttr

 6may18  change to -Wall in Makefile.DARWIN64

 6may18  change src/Makefile for udpWaffle to use -locsm

 7may18  allow REVOLVE to work on WireBodys

 7may18  fix faceOrder for EXTRUDE, REVOLVE, RULE, and BLEND from
             WireBody

 7may18  add wirebodyA, extrudeA, revolveA, ruleA, and blendA test
             cases

 7may18  reorganize ocsm.def

 7may18  fix waffle3a and waffle3b test cases

 7may18  fix snprintf warning in udpTblade

 7may18  fix code where snprintf uses same variable in both
             input and output (to eliminate -Wrestrict warnings)

 7may18  unblock-commenting region removes 5 characters even if not
             a block-comment

 8may18  add outLevel=3 info for single-digit short-cuts and Parameter
             matches in str2vals

 9may18  fix face-order for EXTRUDE, REVOLVE, RULE, and BLEND

 9may18  add faceOrder* test cases

 9may18  update hollowD3a and editAttrFile for new face-order when
             extruding from WireBody

 9may18  fix bug that did not allow UDC name in form /name

10may18  fix blendA, extrudeA, revolveA, and ruleA test cases to use
             new face-orders when starting at WireBody

10may18  add revolveB and revolveC test cases

10may18  add udcString test case

10may18  allow string-valued expression to be passed into UDC

11may18  mark Edges that come from a scribe (SUBTRACT) operation with
             the Face that made it

12may18  remove spurious commas in read/write statements in Tblade

14may18  implement user-specified attributes in udpWaffle from file

14may18  take care of bkden warnings in sparse matrix solver

16may18  implement ON variants in udpWaffle

17may18  add waffle5* test cases

17may18  provide ESP shortcuts -- 2 for @, 6 for ^, and 8 for *

17may18  change udpWaffle so that paths cut lines at intersections

17may18  remove SAMEX and SAMEY from udpWaffle

18may18  fix bug that did not remove previous .csm file from editor
             after File->New or File->Open

18may18  fix bug that crashed system after File->New, File->Edit, OK

19may18  in udpWaffle, PATHS do not cut LINES but POINTS do

21may18  list Design Parameters hierarchically in ESP

21may18  fix errors in formulae in OPAM1/baseline

21may18  update udfTile to use latest IRIT

21may18  fix typo in comment in ESP

22may18  start modifying udfTile to allow trimmed Faces

22may18  add TRADES/simple test cases

22may18  do not toggle visibility of Paste, Prev, and Next buttons

22may18  change size of heading in ESP .csm editor

22may18  make error message associated with loading a dictionary more
             understandable

22may18  fix pylon on OPAM1

22may18  add error if INTERFACE statement uses name of a CONPMTR

22may18  allow OPAM1 pylon to be swept

23may18  setup AT Parameters after sketch

23may18  allow user to choose sharp trailing edges in OPAM1/baseline

23may18  update ESP-help

24may18  fix memory leak of srf in udfTile

24may18  update Viewer Cursor option output for shortcuts

24may18  in ESP, fix g, o, t, v, n, and, p to only work when there is
             no modifier (such as Ctrl-)

24may18  move globval.o to beginning of TBLADELIST in Makefiles

24may18  add elbow* test cases

25maya8  update ESP-help

26may18  update Makefile.LINUX64 for waffle.so

25may18  fix bug associated with arguments to COMBINE command

28may18  enlarge pictures in ESP-help to make text more readable

28may18  update gallery pictures in ESP-help

28may18  add doc/training_2018

28may18  update data/training

28may18  create training/session07/simpleCSM

28may18  fix bug in ocsmGetBody when fewer than 9 arguments

29may18  update session07.tex to be consistent with code changes

*******  v1.13 release

31may18  uprev to v1.14

31may18  fix error statement associated with mis-matched argument in
             call to UDC

31may18  improve outLevel=2 info when calling UDC

31may18  upgrade file format for udpWaffle

 1jun18  fix nested PATBEG in udpWaffle

 1jun18  add optional GRAFICs to udpWaffle

 1jun18  add waffle6b test case

10jun18  add MuddyCards to training_2018

11jun18  add udfCompare and modify Makefiles

11jun18  add compare* test cases

12jun18  add sens3 test case

15jun18  modify sens3* test cases

15jun18  fix typos in error routines in OpenCSM

15jun18  add designH* test cases

16jun18  reorganize sensCSM code

17jun18  change .tParams in compare1b to avoid very big files

18jun18  add sphereCone2* test cases

18jun18  add fin3 test case

20jun18  use EG_alloc in debug GRAFICs in udpWaffle

22jun18  add Slugs/aneurysm test case

23jun18  left Csystem from rite Body override Csystem from left Body

23jun18  add snake test case

23jun18  add union5* test cases

23jun18  add -skipBuild command line option to serveCSM

24jun18  move snake.csm to snake1.csm and remove UNION

24jun18  update OPAM1/baseline and create several variations

25jun18  add -onormal command line option

25jun18  use abs(toler) if toler.lt.0 in INTERSECT, SUBTRACT, and
             UNION

26jun18  create GMGW2 presentation

27jun18  update GMGW2/OPAM1 presentation

29jun18  update Tblade3 local Makefiles

30jun18  add udfPrintBbox and remove -printBbox command line argument
             from serveCSM

30jun18  add udfPrintBrep and remove -printBrep command line argument
             from serveCSM

30jun18  add udfPrintTest test case

30jun18  rename sweep* test cases to sweep*a

30jun18  first implementation of udfSweep

 1jul18  change udfSweep to udfGuide

 1jul18  add guide* test cases

 1jul18  fix Makefile for new UDFs

 2jul18  update GMGW2 files and test cases

 3jul18  error messages now report what file was trying to be opened
             when file_not_found error is returned

 3jul18  fix bug in udfGuide

 3jul18  add cage test cases

 3jul18  start implementation of center arguments to SCALE

 4jul18  fix typo for highlighting CONNECT in code editor

 4jul18  create splitFlap test case

 5jul18  update cage* test cases

 6jul18  add status messages at level 2 to report results of all calls
             to EG_solidBoolean

 6jul18  in INTERFACE statement, change default to default=0

 7jul18  document .tParams (in OpenCSM.h)

 7jul18  remove -checkMass command line option from serveCSM

 7jul18  create ocsmLoadDict

 7jul18  implement INTERFACE . ALL for include-like UDC (which does
             not create a new scope)

 7jul18  add udcTest3 test case

 7jul18  allow lowercase or UPPERCASE arguments in INTERFACE statement

 7jul18  add supell6* test cases

 7jul18  add offset argument to udpSupell

 8jul18  add naca6* test cases

 8jul18  add offset argument to udpNaca

 9jul18  add hollowWing and hollowFuselage test cases

10jul18  add droop* test cases

11jul18  udfDroop to modify leading- or trailing- edges

13jul18  clean up Makefiles

15jul18  pre-load string variables with spaces in udpTblade (to fix
             occasional Windows error)

16jul18  allow SET and PATBEG statements within SKBEG/SKEND

18jul18  select a Body by Attribute and add select5 test case

18jul18  allow ALL in uppercase in INTERFACE statement

19jul18  allow $beg or $end as t in EVALUATE EDGE statement

19jul18  if $name is . (period) in STORE, then Body is popped off
             stack and nothing is stored

20jul18  allow BOX to create an axis-aligned WireBody

20jul18  add boxB test case

22jul18  make INTERSECT operation commutative

22jul18  allow INTERSECTion of SolidBody and WireBody

22jul18  add intersect2* test cases

23jul18  in flapz.udc, ensure that cutting curve is drawn in correct
             order (xmax,ymax), (xmin,ymax), (xmin,ymin), (xmax,ymin)

23jul18  add toMark argument to JOIN for WireBodys and SheetBodys

23jul18  add joinWires2* and joinSheets6a test cases

24jul18  add ability to attribute all Nodes, Edges, or Faces in
             udfEditAttr (has *=*)

24jul18  add ability to ignore Faces in udfCreateBEM

24jul18  fix bug in gen_rot when points are overhead or underfoot

24jul18  reorganize capsCsm files (and add simple fighter case)

24jul18  document .qParams (in OpenCSM.h)

24jul18  fix bug that caused Body_xxxxxx.egads to be loaded many
             times when -loadEgads flag is set

24jul18  fix bug that caused name_not_found if an empty file

25jul18  add filletA test case

25jul18  add reload1* test cases

26jul18  lazily evaluate arguments left-to-right in IFTHEN and ELSEIF
             statements

26jul18  allow attribute name to be an implicit string

26jul18  check for valid Face numbers in faceList in CONNECT

26jul18  rename capsCsm to capsExamples and update several of its
             files

26jul18  add transport.jrnl file

27jul18  change sense of rotation angles associated with hinges in
             capsExamples

28jul18  allow SELECT to select node by (x,y,z)

28jul18  add @nbors at-parameter

28jul18  add select6 test case

28jul18  change viewFullPot to label Faces associated with each hinge

30jul18  udates to capsExample/*

31jul18  fix bug associated with putting Attributes on NodeBodys

 1aug18  improve STORE to (..) remove Bodys to Mark or (...) all Bodys
             from stack

 1aug18  add store2 test case

 2aug18  make ESP-help.html consistent with OpenCSM.h

 3aug18  many capsExample updates

 3aug18  fix up file handing in capsExamples/astros pyCAPS files

 3aug18  fix indexing error for row-wise Parameters in ocsmSetVel(D)

 4aug18  fix type in OpenCSM.h and ESP-help

 4aug18  many fixes in capsExamples

 4aug18  adjust avl2.py to handle transport.csm case

 4aug18  fix infinte loop identified in store2.csm (for -outLevel 0)

 5aug18  many fixes in capsExamples

 6aug18  reorganize capsExamples files

10aug18  add effectOfFlaps to capsExamples

10aug18  create ESP_QuickReference

11aug18  modify ToDo to include all tasks identified after the CAPS
             training

11aug18  modify capsExamples files

12aug18  fix bug in writing PSHELL cards in createBEM when nocrod=1

12aug18  add attributes to Face-based comments in createBEM

12aug18  add createBEM test case

13aug18  add subtractError test case

15aug18  remove subtractError test case (just problem with not
             specifying .tParams)

17aug18  add generic_sls to gallery

19aug18  update Slugs data files

19aug18  remove intent.dict from Makefiles

21aug18  fix typos in OpenCSM.h

22aug18  replace genericl_sls with generic_launch_vehicle

22aug18  change class to bclass in OpenCSM.h and OpenCSM.c so that
             code can be compiled with c++ compiler

24aug18  add nodeAttribute test case

24aug18  update description of branches that set at-parameters in
             OpenCSM.h

25aug18  implement NodeBodys as degenerate WireBodys and reclaim
             memory after each Branch is processed

26aug18  fix bug that causes Node attribute to not persist properly
             (see nodeAttribute.csm)

27aug18  make cleanup of unattached egos optional (needed for udfTile)

28aug18  fix bug that gets wrong value for at-parameters in ATTRIBUTE
             statements (caused by attributes being assigned before
             at-parameters were computed)

28aug18  add attribute5 test case

29aug18  partial update of CAPS training examples (not attributed yet)

29aug18  add wing3 and wing4 test cases to capsExamples

30aug18  fix bug where pointers were not NULLed when a Parameter or
             Branch was deleted

31aug18  add .dot suffix to return velocity

31aug18  fix error that did not display Variables correctly in ESP if
             any Variable was string-valued

31aug18  fix bug that did not re-initialize size of local variables
             when rebuilding (such as when computing sensitivities)

31aug18  fix bug that does not allow a string value to be set for a
             local variables that previously held an array (modify
             expressions.csm to test)

31aug18  fix bug that does not allow one to set a single number to a
             local variable that previously held a string

31aug18  add tests to expressions.csm to test conversions to/from
             strings and to/from vectors

31aug18  fix bug that does not allow $pmtrName to be an implicit
             string in SET statement (modify implicitStrings.csm to
             test)

 1sep18  convert left-over variables to scalars instead of deleting
             them at start of ocsmBuild

 3sep18  fix bug that did not allow editing of .csm file after saving
             a view file

 4sep18  move Cancel and OK buttons to top of frames when editing
             Branch, Attribute, or Design Parameter

 4sep18  add list of files used during ocsmLoad

 7sep18  implement OUTPMTR statement and list output Parameters at end
             of serveCSM

 7sep18  reinitialize output Parameters at beg of ocsmBuild

 8sep18  add outpmtr1 test case

 8sep18  clean up error messages that are issued when a parse error
             occurs during a SET statement

 8sep18  add guide3 test case

 8sep18  move _LEN defines out of OpenCSM.c and into OpenCSM.h

 8sep18  improve speed of process for setting sequence numbers in
             finishBody

 8sep18  when multiple Bodys have the same name, produce a warning
             that latter ones will be referred to as Body X

 8sep18  mark Branch as dirty if any string-valued Attribute changes

 8sep18  add transport test case to make verify

 9sep18  make size of @edata dynamically sized

 9sep18  update evaluate* test cases to verify size of @edata

 9sep18  fix CaardFighter to not pass undefined variables to myAileron

 9sep18  add total time to profile output

 9sep18  add ability to edit .udc files from within ESP (incl .udc
             files added to .csm file via the editor)

 9sep18  change all mentions of FullPot to SansLIP in capsExamples

10sep18  fix bug that printed error messages when visualizing
             NodeBodys

10sep18  remove all hard-coded values in char declarations

10sep18  update documentation for maximum string lengths

10sep18  fix memory leaks associated with lazy evaluations of IFTHEN
             and ELSEIF statements

14sep18  fix bug in assignment of sequence numbers for _faceID and
             _edgeID attributes

16sep18  fix wirebodyA test case to be consistent with fixed method
             for setting up _edgeID Attribute

17sep18  fix bug in plotting NodeBodys in ESP

17sep18  add filletBox* and chamferBox* test cases

17sep18  apply FILLET or CHAMFER to all Edges if parent is RESTORE

18sep18  fix bug that occasionally crashed after using File->Edit on
             .csm file

21sep18  fix bug that did not properly update selbody when Body loaded
             via -loadEgads flag

23sep18  allow question mark in DisplayFilter in ESP to list all
             possibilities

24sep18  check for null aname or avalue in ATTRIBUTE statement

24sep18  fix attribution bug in FJ2.csm

24sep18  add -dumpEgads and -loadEgads flags to test cases in
             data/gallery and run them twice each in Makefile.DARWIN64

27sep18  fix bug that errored for -loadEgads and -dumpEgads flags for
             cases with UNION toMark=1

28sep18  remove __numRemaining__ after using it

28sep18  propagate Edge Attributes to Faces during EXTRUDE and REVOLVE

28sep18  fix bug that caused loadEgads/dumpEgads to not work after
             udpEditAttr

28sep18  allow CSYSTEMs to overwrite existing CSYSTEMs (just like
             ATTRIBUTEs)

30sep18  fix bug associated with degenerate Edges in udfCreateBEM

29sep18  fix bug that caused loadEgads/dumpEgads to not work with
             returned values from UDPs and UDFs

30sep18  fix bug that caused loadEgads/dumpEgads to not work with
             Groups

30sep18  fix bug that casued -dumpEgads to not work with booleans that
             required loosening of tolerances

30sep18  add farfield test case

 1oct18  modify ellipsoid1 test case so that it fails

 1oct18  fix strncat calls to make sure buffers do not overflow

 1oct18  update ellipsoid1 verification data with values from
             ellipsoid2

 3oct18  fix memory leak in unionAll

 4oct18  do not dump Egads file if it was just read (with both
             -loadEgads and -dumpEgads flags on)

 5oct18  add sketch4 test case

 5oct18  fix -loadEgads/-dumpEgads associated with Sketches

 5oct18  change internal implementation of NodeBodys

 5oct18  add FileMenu testing script to README

 5oct18  when MODL in iterface and .csm files are inconsistent, warn
             user about inconsistency instead of refusing to
             File->Edit the .csm file

 5oct18  add windtunnel* test cases (and modify csmOCCFailure.txt)

 6oct18  add sketch5 test case

 8oct18  fix undefined variable when using the BOX command to make a
             WireBody

 8oct18  remove Math.floor in sketcher so that sketches with very small
             dimensions do not cause errors

10oct18  add Cancel and OK button when creating a new Branch in ESP

11oct18  add file manipulation tests to README and ensure that all
             work as expeted

14oct18  update Makefile.DARWWIN64 to use new IRIT environment
             variables

15oct18  fix bug that ESP does not does not properly work when
             ComputeSensitivity or SetDesignVelocity is pressed for a
             Design Parameter whose name includes a colon

15oct18  fix bug that does not allow a user to add a Design Parameter
             with a colon from the ESP GUI

15oct18  add despmtr1 test case

15oct18  allow visibility of NodeBodys to be toggled in ESP

16oct18  modify gliderMultiModel to use IFTHEN instead of PATBEG

17oct18  fix IRIT_INC in Makefile.DARWIN64 for lint target

19oct18  update Makefile.* to copy include files to ESP_ROOT/include

20oct18  reorganize/debug template_* files in capsExamples

21oct18  update udfEditAttr to skip statements when nothing is
             selected

21oct18  update error numbers returned from udpEditAttr

21oct18  make size of sgMetaData adjustable to handle cases with many
             Attributes

23oct18  add copyright notices to template_*.py files

24oct18  restructure tempate_*.py scripts to make them more Pythonic

24oct18  add runAll.py to capsExamples to run all analyses on a single
             configuration

24oct18  add initial versions of template_avl.c and template_avl.make
             to capsExamples

25oct18  add -compatibility_version and -current_version to
             Makefile.DARWIN64

25oct18  add designI* (three boxes) test cases

26oct18  fix uninitialized varaible when ocsmSetVelD is called with
             all zero arguments

26oct18  handle reading of DOS-encoded .csm files correctly

26oct18  add verbose flag to editAttr

26oct18  in editAttr, allow attrName or attrValu to be an expression
             if it starts with an exclamation point; fix associated
             Makefiles

26oct18  add waffle7b test case to demonstrate naming of skin panels

26oct18  fix typos in data/capsExamples files

27oct18  fix Makefiles so that compilation with gcc-6 succeeds

27oct18  add RPATH to libocsm in Makefile.DARWIN64 and
             Makefile.LINUX64

28oct18  fix bug associated with <CR> characters in udpWaffle and
             udfEditAttr

28oct18  fix bug that did not recycle EXTRACTs properly

28oct18  report a warning (possible memory leak) if newBody() is
             called but the Body already exists

29oct18  make messages clearer if generated when a Body is removed from
             the stack

29oct18  reset recycling flag if no Bodys are produced during
             ocsmBuild

29oct18  fix typos in capsExamples/transport.jrnl

30oct18  fix another bug associated with <CR> characters in udpWaffle
             and udfEditAttr (for LINUX64 and WIN64)

30oct18  add sanitize target to Makefile.LINUX64 (and change to gcc-7)

30oct18  fix string buffer overflows associated with PlotLines:,
             PlotPoints:, and PlotGrid: in serveCSM

31oct18  make template_avl.c consistent with template_avl.py

31oct18  fix typos in some capsExamples files

 2nov18  reorganize template_avl.c

 2nov18  update waffle7b to define wing in terms of typical DESPMTRs

 4nov18  fix bug in udfEditAttr that ran one replicate of PATBEG even
             if count was not positive

 4nov18  add udfStiffener and stiffener* test cases

 4nov18  add panel* test cases

 5nov18  remove WARNING message associated with Edges that support
              more than 2 Faces and which do not have .ibody set

 5nov18  add edgerng and facerng to EVALUATE command

 7nov18  fix bug in udpStiffener when making the loop

 7nov18  fix memory leak associated with undo in serveCSM

 8nov18  fix message that gave some false positive indications of a
             possible memory leak

 8nov18  remove superfluous .jrnl files

 8nov18  fix bug in serveCSM associated with undo

 8nov18  add udfStiffener description to ESP-help

 9nov18  fix bug that could cause response buffer overflow in serveCSM

 9nov18  fix bug that caused bad ERROR message if File->Save in ESP
             returned an error from ocsmSave

 9nov18  only check for duplicate Body names in ESP for Bodys on the
             stack

10nov18  add ability to ignoreNode in udfCreateBEM

10nov18  change udfCreateBEM to only create GRIDs if used by a
             non-ignored Face, Edge, or Node

10nov18  add -plotBDF flag to serveCSM so that contents of BDF file
             can be visualized

12nov18  allow FILE, EDGE, or NODE statements in udfEditAttr without
             specifier

12nov18  add ANDNOT keyword to udfEditAttr and create editAttrFile2
             test case

12nov18  remove spurious debug info from udfEditAttr

12nov18  put Node, Edge, and Face Attributes in GRID section of BEM
         (instead of in CROD, CTRI3, and CQUAD4 sections)

12nov18  fix buffer overflow problem in serveCSM.c

14nov18  modify capsExamples files to work with new sansLIP

17nov18  update training pyCAPS scripts

18nov18  add _despmtr_ and _outpmtr_ Attributes to Model during DUMP

18nov18  update ESP-help with latest info from OpenCSM.h

18nov18  create exercise* files in data/capsExamples

20nov18  add xform argument to udpFitcurve and create fitCurve6 test
             case

20nov18  fix typos in hinge location calculation in wing2, wing4, and
             transport test cases

20nov18  fix memory bug when recycling cases with UDPARG statements

20nov18  fix compile bug in OpenCSM when compiled with GRAFIC enabled

24nov18  move CAPS training UDCs to $ESP_ROOT/udc

26nov18  update capsExample/transport to be able to run
             template_astrosModal.py and template_astrosStatic.py

26nov18  fix template_su2inviscid.py to account for SU2 aim changes

27nov18  update exercise_3_1.py to run mastros

27nov18  add mechanism1 test case

28nov18  update viewSansLIP.udc to work with latest version of the
             sansLIP AIM

28nov18  remove hard-coded control deflection setting from
             template_sansLIP.py

30nov18  add _bcolor and _gcolor Attributes to Faces to color backside
             and grid

30nov18  add _gcolor Attribute to Edges to color grid points

30nov18  fix Face and Edge coloring bugs in ESP

30nov18  add color2* test cases

30nov18  change aimPreAnalysis and aimPostAnalysis in training since
             they are deprecated

30nov18  add exceptions to template_astrosStatic.py and
            template_astrosModal.py when a structure is not found

30nov18  remove help() from runAll.py

30nov18  clean up obsolete files from capsExamples

 1dec18  clean up .py and .udc files associated with CAPS training

 1dec18  add capsExamples/template_dataTransfer.py

 1dec18  remove editAttr*.txt files at beginning rather than at end of
             template files (note that this will leave them around for
             debugging)

 1dec18  fix some typos in the tutorials

 2dec18  create exercise_3_2.py

 2dec18  upgrade CAPS training slides

 3dec18  fix bug that truncated last line in File->Edit if the line
             did not end with a CR

 3dec18  fix bug that caused seg fault if edit window was cleared in
             File->Edit

 3dec18  fix bug that could leave a .csm file open if a failure
             occurred during ocsmSave

 4dec18  update PythonQuickReference Lessons

 4dec18  add try/except blocks so that matplotlib does not abort
             during batch testing (Jenkins)

 5dec18  update CAPS training slides

 5dec18  fix bug that truncated long filenames in ESP Edit->File

 5dec18  add CapsTraining2018/session*.pdf files to svn

 7dec18  add message to CapsTraining2018/session2 to tell users that
             SU2 is not part of the distributed files

 8dec18  add statements in capsExample/exercise* to fix a problem that
             can happen with importing matplotlib on some systems

*******  v1.14 release

14dec18  uprev to version number to 1.15

14dec18  fix assertions in capsExamples/wing4 and
             capsExamples/transport when running sansLIP

14dec18  add verification case 15 (capsExamples/wing4 with -jrnl)
             to Verification.sh

18dec18  fix erroneous error message assoociated with UNION of
             SheetBodys or WireBodys with the tomark flag

20dec18  be able to toggle plotting of control points in ESP

31dec18  change dates to 2019

 6jan19  undo temp changes to data/TRADES/demo3b

 7jan19  add -histDist flag to serveCSM

12jan19  add distance between last two at-keypresses in message
             printed in ESP

12jan19  remove GMGW1 and GMGW2 files

12jan19  update dates in Gloves

16jan19  fix bugs in gen_rot associated with z-aligned rotations

16jan19  add gen_rot.csm to test suite

17jan19  in gen_rot, only perform calculations when rotang is non-zero

17jan19  small changes to some test cases to name .bdf and .poly files
             to be consistent with .csm filename

17jan19  remove memory leak associated with UDFs forgetting to remove
             tessellation objects

18jan19  fix redefined variables in serveCSM associated with -histDist
             flag

18jan19  update gen_rot so that zero rotations are not skipped

19jan19  add TRADES test cases that generated pictures for paper

20jan19  remove TRADES/demo3b_exploded files

24jan19  change MAXUDPINPUTBODYS to NUMUDPINPUTBODYS in several UDPs
             and UDFs (fix typo)

25jan19  added udfCatmull and catmull test cases

26jan19  set imax and jmax outputs from udpBezier when creating
             WireBody

26jan19  update bezier test cases to check outputs

26jan19  fix some memory leaks in sensCSM

28jan19  update udpImport to cache previous read in case we ask to
             reread the file

28jan19  add import5 test case

29jan19  revert sensCSM to avoid scan-build errors

29jan19  update sensCSM again to try to fix memory leaks and
             scan-build errors

30jan19  fix misspelling of CHAMFER in ocsmLoad

30jan19  add listStyle arguments to FILLET and CHAMFER

30jan19  add filletB test case

31jan19  update ESP_QuickReference.txt

31jan19  fix a few typos in chamfer-related error messages

31jan19  fix typo in description of ATTRIBUTE statement

 1feb19  move stack checking from ocsmCheck to ocsmBuild

 1feb19  check for existence of UDPs, UDFs, and UDCs during
             ocsmBuild and not during ocsmCheck

 1feb19  improve Branch status indications in ocsmPrintBrchs

 2feb19  fix parent/child indications in TreeWindow in ESP

 2feb19  move ocsmPrinBrchs to after ocsmBuild in serveCSM

 3feb19  allow INTERSECT and SUBTRACT to return multiple Bodys (if
             index=-1)

 3feb19  add intersect4*, intersect5*, intersect6*, subtract4*, and
             subtract5* test cases

 3feb19  change lint settings in Makefile.DARWIN64

 4feb19  update udpImport so that it can return all Bodys

 4feb19  update IMPORT and UDPRIM statements so that they can return
             multiple Bodys

 4feb19  split import4 test case and add import6* test cases

 5feb19  fix problems that were introduced in previous commit

 6feb19  fix parent pointers in UDFs that sometimes returned ibody=-4

 6feb19  fix bug so that multiple Bodys that were created by a single
             UDPRIM/IMPORT/SUBTRACT/INTERSECT Branch get loaded
             properly during -loadEgads

 7feb19  remove data/basic_test directory

 7feb19  delete Body*.egads files before running -dumpEgads and
             -loadEgads in Makefile.DARWIN64

 7feb19  add addVerify target to Makefile.DARWIN64

 7feb19  modify OpenCSM.c and serveCSM.c to create/use verification
             data from verify_*/*.vfy files

 7feb19  add assertions to OpenCSM to avoid scan-build false positives

 7feb19  create and populate verify_6.8.1 directories

 8feb19  create .vfy_hand files that contain verification info that is
             different from that generated by addVerify

 9feb19  fix writing of NodeBody info during -dumpEgads

 9feb19  fix typo in Makefile associated with clean target

10feb19  remove verification data from .csm files

11feb19  write compareVerify program to compare verification files
             associated with two different versions of OpenCASCADE

12feb19  add histDist documentation to serveCSM

12feb19  add loadEgads/dumpEgads to verify target in Makefile.DARWIN64
             and Makefile.LINUX64

12feb19  remove verify2 target from Makefile.DARWIN64

14feb19  fix bug in at-paramaters associated with NodeBodys

15feb19  add -checkMass flag to serveCSM

15feb19  create and populate verify_7.3.1 directories

16feb19  fix bug that wrote nedge=1 for NodeBodys during -addVerify

16feb19  fix unit box check in udfTile to use Body tolerance

16feb19  remove tblade from Makefile, NMakefile, and Makefile.LINUX64

16feb19  move tblade test cases out of basic directory

16feb19  update select1a and select1b test cases to use correct
             bounding boxes for cylinder

16feb19  add @signal to keep track of latest signal

16feb19  if sigCode=0 or $all in CATBEG, all signals are caught

16feb19  add signal1 test case

16feb19  add @nwarn to keep track of number of warnings

16feb19  report number of warnings from last build at end of serveCSM

18feb19  rename panel2.jrnl so that it is not automatically run by
             Jenkins

18feb19  change message associated with missing .vfy file from ERROR
             to WARNING

18jan19  remove tutorial1.vfy files

19feb19  loosen verification tolerances in CanardFighter (6.8.1) and
             X29 (6.8.1 and 7.3.1) to account for minor differences
             between OpenCASCADE on different operating systems

21feb19  check that DESPMTR, UBOUND, and LBOUND statements only
             contains proper numbers

21feb19  add despmtr2a and despmtr2b test cases (which should fail)

21feb19  treat tabs as spaces in OpenCSM, udpEditAttr, and udpWaffle

21feb19  fix bug that only colorized first Face after SELECT FACE

21feb19  fix bug that only colorized first Edge after SELECT EDGE

21feb19  add selectColor test case

22feb19  add ability to select color for NodeBodys

25feb19  break Sketcher out of ESP.js

25feb19  emulate dispatch table in ESP and ESP-sketch

26feb19  change wv.currentMode to wv.curAppl in ESP.js

27feb19  update blendjoin3 and blendjoin4 to use an absolute tolerance

27feb19  add blendjoin5 test case

27feb19  if .csm file calls a UDC, do not automatically rebuild after
             editing .csm or .udc file - activate the Re-build button
             instead

28feb19  reorganize ESP files to break ESP-sketch out of ESP

 2mar19  allow sketcher to be launched from within editPmtr or from
             button on top of Tree window

 4mar19  close .csm file if an error occurs during read

 4mar19  initial implementation (ver 0.2) of GLOVES integrated with
             ESP

 4mar19  remove stand-alone version of GLOVES

 7mar19  add nearbodygrid test case

 9mar19  update outLevel=2 printouts during determination of sequence
             numbers for Faces

 9mar19  update FJ2 to use best practices for SELECTing Faces to
             EXTRACT

10mar19  update project2.csm to include reference lines

10mar19  update verification data for project2, nacawing, F16, and FJ2

12mar19  modify PROJECT command results so that they lie on the
             analytical Curves/Surfaces and not the tessellation

12mar19  add more assertions to project1 and project2 test cases

12mar19  add project3 test case

13mar19  update verification data associated with cases that use the
             PROJECT command

14mar19  improve debug printout associated with reordering Loops

15mar19  allow recycling for CONNECT command

15mar19  in StepThru mode, keypress f (lowercase F) goes to first step
             and keypress l (lowercase L) goes to last step

15mar19  post help message when entering StepThru mode

18mar19  add sculpt0 test case

18mar19  initial addition of ESP code to manipulate wireframes

21mar19  fix bug that did not allow a NODE_BODY to be returned from a
             UDP or UDF

24mar19  implement wireframes in ESP based upon _wireframe attributes
            on Bodys

25mar19  add udpPoly and poly3 and poly4 test cases

28mar19  fix bug associated with statically allocated arrays in
             CONNECT command

29mar19  add draft of training_2019 syllabus

 3apr19  update documentation for 5-series airfoils in udpNaca456

 3apr19  minor typo fixes in comments

10apr19  add prebuiltTesting directory

11apr19  fix bug associated with uppercase OR in IFTHEN and ELSEIF
             statements

11apr19  fix bug that did not clear IFTHEN statement from
             pattern-stack while executing CATBEG (which causes an
             erroneous NESTED_TOO_DEEPLY error)

11apr19  update/add some naca6* test cases and their verification data

12apr19  do not allow search for CATBEG to enter a UDC or another
             block of code

12apr19  add catch5* test cases

12apr19  temporary fix to accomodate EGADS change that returns EGADS_DEGEN
             from EG_evaluate, EG_invEvaluate, and EG_getTessEdge when
             the Edge is degenerate

14apr19  add UDC calls to pattern list

15apr19  fix bug associated with errors thrown within a UDC

15apr19  fix bug that caused seg faults when UNION errors occurred

19apr19  allow APPLYCSYS to move Body so that its CSYS is moved to
            origin and aligned with axes

19apr19  add csystem5* test cases

19apr19  fix bug that did not let the visibility of Csystems be
             changed in ESP

20apr19  change to accomodate EGADS API change that does not allow
             EG_evaluate to be called for a degenerate Edge (ie, a
             NodeBody)

26apr19  fix bug that caused DUMP to fail if an OUTPMTR is a string

27apr19  update outpmtr1.csm to test various statement orderings

27apr19  modify DisplayFilter in ESP so that if Body has a matching
             attribute, all its constituents are shown

27apr19  add displayFilter test case

27apr19  when OFFSET>0 in udpNaca, extend the airfoil surfaces by
             OFFSET

27apr19  update verification data for naca6b, naca6d, naca6f, and
             naca6h

27apr19  fix OFFSET in udpNaca so that it does not generate a
             self-intersecting Body near the leading edge

27apr19  add naca6e and naca6g test cases

 1may19  fix bug that caused error if SELECTing a Body by Attribute in
             cases with a UDPARG statement

 2may19  fix bug that did not propagate sensitivity info correctly
             into a UDC in all cases

 2may19  add design0s test case

 2may19  make sure that ocsmGetVel(FACE) returns only the normal
             component

 2may19  rename design0parsec* test cases to be consistent with other
             cases

 4may19  clean up naming convention for targets in Makefile.DARWIN64

 6may19  update design0r* and designH* test cases

 6may19  use analytic sensitivities if produced by UDP/UDFs

 6may19  change default finite difference dtime to 1e-6

 6may19  in ocsmPrintBrchs, enclose printed arguments in braces
            instead of brackets

 6may19  if entity has _sensCheck attribute set to skip, sensCSM skips
             errors in that entity when computing overall error
             statistics

 6may19  fix bug associated with velocities from EXTRUDEs

 7may19  rename File->Save button to ExportFeatureTree and emphasize,
             in confirmation dialog, that previous file formatting
             will be lost

 7may19  rename editCSM->OK button to Save and remove confirmation
             dialog

 7may19  add package1 test case

 7may19  fix bug that could have incorrectly added file to the
             filelist, which would cause user to not be able to edit
             all UDCs in ESP

 8may19  report filename and line number when an error is detected

 8may19  change API description of ocsmNewBrch to add fileindx and
             linenum arguments

 8may19  add design0t* test cases

 9may19  use NODE velocities returned from UDP/UDFs

13may19  put braces around errors instead of parentheses to make it
             easier to parse errors in ESP

16may19  add active line highlighting to csm file editor

16may19  double-clicking in MessageWindow open up csm file editor at
             line that contained last error

16may19  fix erroneous messages that got reported in MessageWindow
             when a problem was encountered during a load/check/build

17may19  make , a synonym for Ctrl-< (read view from file) and . a
             synonym for Ctrl-> (save view to file) in ESP

17may19  use save.view as default filename in read view from file and
             save view to file

18may19  fix out-of-date message when ESP starts without a file or
             after File->New

17may19  instead of posting an alert when a load/check/build error
             occurs, turn the MessageWindow light yellow (to draw
             user's attentiom)

17may19  raise signals during ocsmLoad and ocsmCheck (to aid in
             debugging)

18may18  allow lowercase or UPPERCASE arguments in ARC command

18may19  remove incorrect error-checking code during input for CIRARC
             command

18may19  fix bug that did not properly check the number of arguments
             to the IFTHEN and ELSEIF commands

18may19  fix bug that improerly check for XOR operators in IFTHEN and
             ELSEIF commands

18may19  make optional argument mandatory in EXTRACT command

18may19  allow type argument in SKVAR be either lowercase or UPPERCASE

19may19  fix bug associated with JOINing WireBodys

19may19  allow StepThru mode to show WireBodys

20may19  change -histDist option in serveCSM to allow user to specify
             dtime

20may19  fix bug in -histDist option for degenerate Edges

21may19  fix bug that did not set .ibody correctly for NodeBodys

21may19  add printBacktrace fuction to OpenCSM.c

21may19  fix velocities for BOX command that produces a SheetBody

21may19  add sketch Attributes to ending Face of an EXTRUDE and
             REVOLVE

21may19  add designJ* test cases

22may19  add -showAll command line option to sensCSM

22may19  fix sensitivity bug associated with UDPARG/UDPRIM arguments

22may19  for Edges that are supported by only one Face, set the Edge
             velocity to the Face velocity

23may19  remove analytic computation of sensitivities from
             udpBiconvex, udpKulfan, and udpParsec

23may19  fix sensitivity from udpBox, udpEllipse, udpNaca, and
             udpSupell

23may19  add design0u, design0v, and design0w test cases for supell

24may19  fix sensitivity bug associated with lines that are EXTRUDEd

24may19  fix sensitivity bug associated with scaled planar Surfaces

24may19  force finite difference sensitivities for RESTORE command

25may19  fix typos associated with LINT in Makefile.DARWIN64

25may19  remove rad option to udpBox in designI3 and designI4 test
             cases to allow for finite difference sensitivities

27may19  fix typo in comment in OpenCSM.h

27may19  update date in ESP-help

29may19  update nominal dtime for finite difference sensitivities

*******  v1.15 release

30may19  update ESP-help.html

 1jun19  change testing scripts for new prebuilt file organization

 1jun19  add ESP_QuickReference

 1jun19  uprev to 1.16

 4jun19  fix bug in Sketcher to use atan2d for ::I[]

 8jun19  add inlet* test cases

 8jun19  add multiBody* test cases

 8jun19  add umbrella3 and umbrella4 test cases

12jun19  add (sorted) muddy cards to ToDo

12jun19  fix typos in training material

12jun19  incorporate hands-on exercises into sessions

12jun19  share solutions to the training hands-on example to the
             participants

12jun19  add legacy sketching to training

14jun19  allow CSYS info to be returned from GETATTR

14jun19  add bemTest* test cases

14jun19  implement SELECT SORT $xmin, $xmax, $xcg, ...,
             $area, $length

14jun19  add selectSort* test cases

14jun19  fix dbest initialization error in -histDist option to
             serveCSM

14jun19  put global Attributes on model when DUMPing

15jun19  add matchBody* test cases

15jun19  add udfMatchBodys to find Face, Edge, and Node matches
             between two Bodys

16jun19  fix memcheck error in sensCSM

16jun19  fix bug in udfMatchBodys

16jun19  add inclinedOval test case

16jun19  allow user to match/set numeric attributes in udfEditAttr

16jun19  add editAttrFile3 test case

16jun19  fix typo in confirmation message in ESP.js

17jun19  add one more level to printouts in ocsmPrintEgo so that
             Nodes get printed when the input is a Model

17jun19  add Attribute printing into to ocsmPrintEgo for outLevel=2

18jun19  fix minor typos in udpImport

23jun19  fix bug that caused Bodys to not be recycled after File->Edit

23jun19  add getattr2 test case

24jun19  in ocsmNewBrch, convert non-string arguments to strings if an
             implicit string is expected

24jun19  make ToolTips text more explicit

24jun19  only let t option in ESP toggle the transparency of Faces

24jun19  only let o option in ESP toggle the orientation of Edges

24jun19  fix bug to clear yellow background whenever a build is successful

24jun19  pressing Re-building... should allow user to reset the ESP
             interface

24jun19  fix bug so that pressing Constraining... suggests the needed
             constraints in Sketcher

24jun19  add scoop test case

26jun19  fix typo in help associated with CSYSTEM statement

28jun19  fix memory leak when a UDP or UDF returns multiple Bodys
             (such as in udfMatchBodys)

 1jul19  allow SOLCON to take a string variable as its input

 1jul19  add solver6a and solver6b test cases

 1jul19  partial update of ESP-help.html

 3jul19  allow SELECT BODY -n to the select the Body that is the nth
             from the top of the stack

 3jul19  add select7 test case

 3jul19  fix bug that did not make signals from EVALUATE, GETATTR, and
            SELECT catchable

 3jul19  update umbrella3 and umbrella4 test cases to list all bars
             that are associated with each CSYSTEM

 4jul19  fix bug that did not reorder loops properly in RULE and BLEND
             when the sketches had only two Nodes

 4jul19  add blend18 test case

 4jul19  add release notes to ESP-help for v1.15 and v1.16

 8jul19  allow STORE . to pop Mark from stack

 8jul19  if SELECT BODY -n points to Mark, return @selbody=0

 9jul19  add store3 test case

 9jul19  fix bug in finding setting sequence numbers associated with
             _edgeID and _faceID

 9jul19  fix bug that did not list LocalVariables properly if last
             last variable is string valued

 9jul19  fix bug that did not throw a catchable error when RESTORE
             could not find a matching Body that was STOREd

10jul19  fix bug associated with making a copy of the Body that was
             returned from a UDP, which forced finite difference
             sensitivities since the ebodys did not match

10jul19  remove MODL.isens since it forced finite differences too
             often

10jul19  allow -- command line option in sensCSM

10jul19  fix bug that caused seg fault when computing sensitivities in
             some cases with UDCs

11jul19  update designD*a test cases to put leading edge on axis

11jul19  implement analytic sensitivities in udpBiconvex

11jul19  update ESP_QuickReference

11jul19  fix bug that did not maintain correct velocities after a
             STORE/RESTORE

13jul19  fix bug that only allowed str2val to evalaute a string that
            was a number (and not ageneral expression)

13jul19  minor updates to ESP Quick Reference

14jul19  add matchBody4* test cases (hand editted for differences
             between OCC 6.8.1 and 7.3.1)

16jul19  if SELECTing Nodes, Edges, or Faces by attribute, if
             attrValue=*, then match entity that has any type of
             attribute

16jul19  add import7* test case

16jul19  fix bug associated with consecutive multi-Body IMPORTs from
             different files

17jul19  fix sensitivity bug for EXTRUDEs in which its sketch has been
             transformed

19jul19  update Makefile.LINUX64 for sanitizer

19jul19  fix memory leak in udfMatchBodys

20jul19  fix possible infinite loop when assigning sequence numbers
             for _edgeID or _faceID

23jul19  fix divide-by-zero bug for sensitivity at C0 Nodes of a BLEND

24jul19  fix test3* targets in Makefile.LINUX64

30jul19  improve accuracy of senitivities for RULEs

30jul19  fix divide by zero for Edges with C0 end in createTessVels

30jul19  allow spaces before comment/hash in udfEditAttr

31jul19  change date in ESP-help to August 2019

 2aug19  fix bug that did not update Local Variables after FILE->Edit
             in ESP

*******  v1.16 release

 6aug19  uprev to v1.17

 8aug19  uprev in ESP_QuickReference

 9aug19  initial/partial implementation of udfFlend

 9aug19  add flend* test cases

10aug19  add parallel1 test case

13aug19  fix bug that called EG_updateThread with NULL context

13aug19  update _brch attribute when UDP/UDF returns -1

13aug19  modify udfFlend so that all test cases work, but with C0 at
             flend edges

13aug19  allow 0 to be wildcard in SELECT face ibody1... and SELECT
             edge ibody1... statements

13aug19  add select8 test case

13aug19  update flend* test cases

14aug19  add geometry info in output produced by ocsmPrintEgo

14aug19  autogenerate autoStep.csm input file if user gives filename to
             serveCSM in the form *.stp, *.STP, *.step, or *.STEP

14aug19  autogenerate autoIges.csm input file if user gives filename to
             serveCSM in the form *.igs, *.IGS, *.iges, or *.IGES

14aug19  autogenerate autoEgads.csm input file if user gives filename
             to serveCSM in the form *.egads, or *.EGADS

18aug19  more udfFlend updates

21aug19  remove printEgo from udpUtilities (use ocsmPrintEgo instead)

21aug19  fix some typos in ESP-sketch

22aug19  update udfFlend and add verification data

23aug19  slightly better error checking in udfFlend

23aug19  add more flend test cases

25aug19  add summary CPU information to serveCSM

26aug19  add optional PRINT_TIMES to show user and system times in
             calls to EG_solidBoolean

27aug19  add CPU creation information to Bodys

28aug19  change udpPoly to create linear Bsplines instead of calling
             EG_isoCline

30aug19  change calls to EG_getGeometry to use NULL arguments

31aug19  separate out mass property calculations in serveCSM (and
             include CG calculations)

 1sep19  fix bug in udpPoly that did not remember ebody for
             sensitivities

 2sep19  fix bug that did not allow sensitivity calculations if there
             was a NodeBody on the stack

 3sep19  update verification data for rule10n for new EG_ruled

 4sep19  add PRINT_TIMES option to show CPU usage in boolean
             operations

 6sep19  generate @@-parameters for all model attributes in an
             IMPORTed .egads file

 6sep19  change udpNaca so that sensitivities wrt MAXLOC are forced to
             be finite differenced

 7sep19  fix udfFlend to improve surface smoothness

 8sep19  return build CPU time at end of ocsmPrintBodys

 9sep19  add rule9* test cases

 9sep19  fix memory leaks associated with fgets

 9sep19  allow rounded ends in BLEND when adjacent sketches are C1
             (and modify associated test cases)

 9sep19  update verification data for rule10n so that it works
            independent of the sign of @volume

 9sep19  restart (rewind) journal file whenever user issues FileNew,
             FileOpen, or FileEdit in ESP

 9sep19  remove explicit Edge numbering in attrDemo

10sep19  add verification data for sphereScribe test case

10sep19  add ocsmSetBnds

10sep19  return ILLEGAL_VALUE from ocsmSetValu, ocsmSetValuD, or
             ocsmSetBnds if value violates the bounds

11sep19  fix bug that do not allow import of .egads files with long
             Attribute names

11sep19  remove mallocs for non-DESPMTRs

13sep19  clean up data associated with all Bodys beyond nbody

14sep19  fix UBOUNDs in match1

15sep19  update files in data/basic that extract via explicit Edge or
             Face number

15sep19  modify verification data for files that use BLEND with a CO
             section

15sep19  remove hand-crafted verification data for
             capsExample/* cases

18sep19  use bounding box info in generating verification data for CG

18sep19  update some verification data

19sep19  revert poly3.csm, which was accidentally committed

20sep19  fix verification data for CG again

20sep19  fix bug that incorrectly set ichld for an EXTRACT

21sep19  check for negative radius in CYLINDER, CONE, and TORUS

22sep19  change Makefile.DARWIN64 so that OpenCSM.c is compiled -O

22sep19  update training/session08/myPlane to make it work for both
             6.8.1 and 7.3.1

22sep19  add -checkPara option to check for possible parallelism

23sep19  fix bug that sometimes listed a filename several times in
             filelist used in File->Edit

26sep19  fix bug that allowed only the first 12 files to be editted in
             ESP

27sep19  fix bug that created seg fault when modifying a DESPMTR after
             an error is encountered

27sep19  fix bug that sometime caused INTERFACE statement to use the
             wrong Parameter index during rebuilds

27sep19  fix bug that caused THROW to not raise a signal that ESP knew
             how to handle

27sep19  add flend6c and flend7* test cases

27sep19  add OPAM1 test case to data/gallery

27sep19  fix memory leak that did not clean up SketchBodys

27sep19  fix array bounds error associated with tesselation velocities
             for non-manifold Edges

27sep19  allow UDF to get 0, 1, or 2 Bodys (back to MARK)

27sep19  update verification data for Edge reordering in RULE

29sep19  clean up memory associated with NULL_BODYs

30sep19  fix problem with cleaning up info for RESTOREd Bodys

30sep19  remove hollow9e from automatic testing

 1oct19  change udfEditAttr, udfFreeform, and udpWaffle to recognize
             outLevel

 1oct19  fix bug that sometimes printed ego info after SUBTRACT, even
             when outLevel=0

 1oct19  fix several test cases (bezier*, catmull0x, editAttrFile2,
             waffle5a) so that they do not print progress info

 2oct19  remove flend6* and flend7* from automatic testing

 2oct19  update FLENDs to not use BLENDs

 8oct19  fix bug in ocsmFree that caused an error for a Body that was
             created and an error occurred in an attached CSYSTEM
             statement

12oct19  implement CFGPMTRs and associated test case

13oct19  use named constants in ESP.js

14oct19  add moments of inertia to -chcckMass option in serveCSM

14oct19  add primitives.csm test case

15oct19  change some DESPMTRs to CFGPMTRs in design* test cases and
             CAPS/training/2019 cases

15oct19  update verification on tiptreat* and FJ2 cases

17oct19  add new tiptreat4* and tiptreat5* test cases

17oct19  add new propeller* test cases

17oct19  update verification data for nudge6 and cutter2

17oct19  modify Makefiles to test studentGallery cases

18oct19  make updates to UNION to account for EGADS changes

19oct19  add udcMulti test case

21oct19  increase MAX_STACK_SIZE

21oct19  add checks to make sure stack does not exceed MAX_STACK_SIZE
             when Branch creates more than one Body

21oct19  update verification data for fighter1-4 and bemTest1-3

21oct19  make SOLEND errors catchable

21oct19  add catch6 test case

23oct19  change the way filenames are handled for UDCs to reduce CPU
             time during ocsmLoad

23oct19  update -checkPara option to serveCSM

23oct19  check for non-positive fact in SCALE

25oct19  change EGADS header printout to accomodate interim versions

25oct19  change way verification filenames are formed to accomodate
             new text returned from EG_version

25oct19  add parallel6 test case

26oct19  modify EXTRACT command to simultaneously extract several
             Faces (into SheetBody) or Edges (into WireBody)

26oct19  add extract2 test case

26oct19  fix memory leak associated with new filename handling

29oct19  update verification data associated with tip treatments

30oct19  increase MAX_STRVAL_LEN to allow long filenames

30oct19  fix bug in EXTRACT if some Face or Edge index is out of range

31oct19  get first phase of PLUGS working

 1nov19  add histDist1* test cases

 2nov19  add sliceWing test case

 3nov19  add at-stack at-parameter and store4 test case

 4nov19  add contains.udc and contains1 test case

 4nov19  add overlaps.udc and overlaps1 test case

 5nov19  change SOLEND to use levenberg-marquardt to improve its
             robustness

 6nov19  adjust verification data associated with SOLEND changes

 6nov19  update named errors in CATBEG statement

 6nov19  fix bug associated with at-stack and at-edata in ocsmCopy

 7nov19  update verification data because of changes in EG_evaluate

 8nov19  add solver4 verification data

 8nov19  remove histDist1.tess from repository

 8nov19  add plugs1* files to data/basic

 9nov19  update sketch solver to use levenberg-marquardt

10nov19  update T-Blade3 so that it works in both 6.8.1 and 7.3.1

11nov19  update 6.8 verification data to account for latest EGADS
             updates

13nov19  add initial verification data for 7.4.1

13nov19  update PLUGS/phase1 to update all DESPMTRs

20nov19  add plugs0*, plugs2*, and plugs3*  test cases

20nov19  implement PLUGS phase2

21nov19  improve speed of PLUGS phase2

21nov19  add plugs4* test cases

28nov19  upgrade for latest Tblade3

28nov19  upgrade udpHubWedge to scribe for FLENDs

30nov19  add FLEND to Tblade3 test case

 2dec19  modify plugs3d test case

 2dec19  make warning about overwriting storage only print at
             outLevel>0

 2dec19  fix bug that caused core dump for LBOUND or UBOUND associated
             with a CFGPMTR

 2dec19  disallow PLUGS to work if there is more than one Body on the
             stack

 2dec19  add printout of DESPMTRs in PLUGS when a build error occurs

 4dec19  allow pruning of points in PLUGS

 4dec19  allow multi-segment line plotting in serveCSM

 4dec19  do not abort PLUGS if optimizer picks an unbuildable config

 4dec19  optionally create .csm files at end of each PLUGS pass

 7dec19  update .csm, .stl, and .plot files for SLUGS test cases

 8dec19  extend DUMP to write .plot files

 9dec19  add winding* test cases

13dec19  add Slugs test to Makefile.DARWIN64

13dec19  fix fin2 test case to avoid glancing union

13dec19  split fin1 and fin2 test cases

23dec19  update rule11n verification data for 6.8.1

23dec19  update copyright date to 2020

23dec19  add parka.c and its test cases

23dec19  add automated testing of Plugs, Slugs, and parka to
             Makefile.DARWIN64 and Makefile.LINUX64

24dec19  fix errors in Plugs, Slugs, and parka that were detected by
             the sanitizer

25dec19  add path() function to return various path or file names;
             modify expressions.csm to test path() function

26dec19  allow DESPMTR, LBOUND, and UBOUND statements in include-type
             UDCs that operate at global scope

26dec19  add global=0 argument to GETATTR statement

26dec19  allow ATTRIBUTE statement on a SET statement to create a
             global Attribute if no Bodys have been created yet

28dec19  add ASSERTs to attribute test case

28dec19  document how to allow string variables to be passed into UDCs

28dec19  allow string variable returns from UDCs

28dec19  add despmtr3 and udcTest4 test cases

29dec19  fix slashes for Windoze when reading from ESP_ROOT/udc

29dec19  move WARNING outputs to outLevel=1

 1jan20  fix memory leak associated with GETATTR statement

 3jan20  allow Edge SELECTion by (x,y,z) of center

 3jan20  allow COMBINE to inflate single closed WireBody to SheetBody
             or single closed SheetBody to SolidBody

 3jan20  add combine7* test cases

 4jan20  add edgelist arguments to CONNECT command

 4jan20  allow CONNECT to connect SheetBodys

 4jan20  add connect7* and connect8* test cases

 4jan20  allow CFGPMTR statment in include-type UDC

 5jan20  fix typo associated with ALL argument to INTERFACE statement

10jan20  add designF*bb test cases

11jan20  add designG3 to designG6 test cases

13jan20  adopt new sensitivities for RULE and BLEND

13jan20  add designG0 test case

15jan20  fix sensitivities for EXTRUDEs with SCALEd sketches

16jan20  add studentGallery

16jan20  remove old BLEND sensitivity implementation

16jan20  do not use FUSESHEETS (for now)

16jan20  johnify splineVelocityOf* routines

16jan20  update Cessna162 verification data for 6.8.1

16jan20  print WARNING message about missing verification data at
             -outLevel 1

17jan20  improve implementation of sensitivities for BLEND

17jan20  tighten up default dtime in sensCSM

18jan20  update GRAFIC in udpNaca

18jan20  return error if nx=ny=nz=0 in MIRROR

19jan20  add design0o3 and design0o4 test cases

19jan20  fix sensitivities for RULE and BLEND

20jan20  minor code simplifications in sensitivities

21jan20  update verification data for design0o3

21jan20  update bottle and bottle2 test cases to adjust tessellation
             parameters

22jan20  change sketch solver to initially make it more Newton-like

22jan20  add sketch6 test case

22jan20  modify udfEditAttr to be able to delete an attribute

22jan20  add attrDelete test case

23jan20  rename test targets in Makefile.DARWIN64 and Makefile.LINUX64

23jan20  print message out outLevel=0 when an error is caught

24jan20  check for valid values for ibeg and iend in slice function

24jan20  allow illegal_pmtr_name, illegal_value, and
             func_out_of_bounds errors to be caught when evaluating
             expressions during ocsmBuild

27jan20  fix sanitize error in OpenCSM

27jan29  fix color_map typo in serveCSM

27jan20  fix valgrind error associated with ATTRIBUTES to a GROUP
             statement

27jan20  fix bug that did not free memory after an error was detected
             during argument evaluations

27jan20  fix sketcher so that all test cases converge

27jan20  re-enable sketch5 test case

30jan20  update ESP-help and tutorial

31jan20  remove VslidePlate from testing

31jan20  minor updates to tutorials

31jan20  update pictures in ESP-help

 1feb20  update documentation about continuity in BLENDs

 1feb20  update verification data for sphereCone2a for 6.8.1

 2feb20  update Dragon test case and its verification data

 2feb20  update verification data for generic_launch_vehicle for 6.8.1

 2feb20  update verification data for Cessna162 for 6.8.1

 4feb20  fix core dump associated with File->Open

 4feb20  fix sketch initialization for large sketches

 4feb20  fix bug associated with cleaning up during recycling

*******  v1.17 release

 6feb20  uprev to v1.18

 7feb20  update tutorial2 and its verification data

 7feb20  add ganged boolean test cases

 7feb20  throw error if sketch solver does not converge

 8feb20  update default tessellation parameters and remove ATTRIBUTE
             statements in bottle and bottle2

 8feb20  allow SELECTion of Nodes, Edges, and Faces by bounding boxes
             and add select9 test case

 8feb20  extend SUBTRACT to work on two coplanar SheetBodys and add
             subtract6* test cases

13feb20  fix bug in printing ibody argument to APPLYCSYS

13feb20  add applyTparams.udc put .tParams on Body based upon its size

13feb20  add coarseBox and boxWithSmallFeatures test cases

14feb20  temporary .tParams fix in jsc_config1 and
             CE13_LDI_Combustor_Test_Section_1 test cases so that we
             get green balls in Jenkins

14feb20  revert jsc_config1 and CE13_LDI_Combustor_Test_Section_1

18feb20  add calcCG.udc and the calcCG1 test case to compute CG of all
            Bodys on the stack

18feb20  update ESP_QuickReference

18feb20  add nedge and thbeg input parameters to udpEllipse and add
             ellipse1 test case

18feb20  remove .tParams Attribute from test cases for cases where it
             was included to get a valid tessellation

19feb20  add comments to orbiter1, fighter3, and fighter4 to tell that
             .tParams are set to get a valid tessellation

20feb20  add extract3 test case to demonstrate removing Face(s) from a
             SheetBody

20feb20  allow user to create a SELECT statement in ESP with any
             number of arguments

20feb20  allow user to add an EVALUATE statement from ESP interface

21feb20  add CFGPMTR highlighting and hints in ESP

21feb20  fix catmull0 test case

21feb20  fix typo in ESP-help

23feb20  add duct5 test case

24feb20  update method for writing verification data for CGs

24feb20  update sew.stp with a file that has bad geometry removed;
             update associated verification data

25feb20  generate degenerate Faces in CONNECT when edgeList* contains
             a zero

26feb20  add connect9* test cases

27feb20  update names of Makefile targets associated with sensCSM
            testing

27feb20  fix bug in udfPrintBrep which mistakenly printed info for the
             next-to-last Body on the stack

27feb20  add editAttrFile4 test case

28feb20  fix ESP bug that displayed the wrong file (such as wrong
             .udc) after saving with no changes

28feb20  allow PATBEG/PATEND in editAttr and modify editAttrFile4 test
             case to demonstrate its use

28feb20  add windtunnel7 test case (AIAA-2020-1309)

29feb20  allow SWEEP to work if input is a FaceBody

 1mar20  add udfGanged to perform ganged SUBTRACTs or UNIONs

 2mar20  update ganged* test cases

 2mar20  allow UDFs to receive any number of input Bodys (back to Mark
             or beginning of stack)

 2mar20  fix algorithm for finding of .ibody and .iford to avoid
             warnings

 4mar20  fix bug in path(csm) that returns wrong value if .csm file is
             in pwd

 5mar20  add udfGanged to Makefile and NMakefile

 5mar20  remove legacy timing includes from udfGanged

 5mar20  update PRINT_TIMES for sequential and ganged Booleans

 5mar20  print message alerting users of possible savings associated
            with ganged Boolean operations

 5mar20  add more ganged7* test cases

 7mar20  add wingSew* test cases

 7mar20  add transport* test cases to demonstrate COMBINE and udpSew

 7mar20  fix bug that did not store at-at-parameters when a Body is
             recycled

 9mar20  unpost File or Tool menu if File, Tool, StepThur, Help,
             UpToDate, or Undo button is pressed

 9mar20  in ESP, switch to new method for setting the charset
             attribute to UTF-8

10mar20  add ocsmUpdateDespmtrs to allow a user to update the DESPMTR
             values from a file

10mar20  add -despmtrs command line argument to serveCSM to use
             ocsmUpdateDespmtrs

11mar20  fix memory leaks in udpSew

16mar20  modify persist2 to remove ambiguity

17mar20  modify SCALE to allow a scaling center

17mar20  modify design1b to use SCALE with non-zero rotation center

17mar20  make groups for at- and at-at-parameters in ESP

17mar20  prototype SSLOPE statement

17mar20  add tessAtEnd to MODL structure to (optionally) skip
             tessellation at end of ocsmBuild

17mar20  disable -loadEgads when the user uses File->Edit

17mar20  update Makefile.DARWIN64 to test -loadEgads from wrong case

17mar20  add __filename__ to files processed by -loadEgads and
             -dumpEgads

17mar20  remove tmp_OpenCSM files at beginning of ocsmLoad

18mar20  update SELECT documentation for edge ibody1 0 ibody2 0

18mar20  Edges that come from Booleans no longer have the Attributes
            of possibly-coincident Edges in one of the parents

18mar20  Nodes in Booleans get all Attributes of any coincident Node
             in the parents

18mar20  add attribute6* and attribute7* test cases

18mar20  fix bug associated with Edge attributes

18mar20  speed up RESTORE (and other commands)

19mar20  make error message in udfGanged more explicit

19mar20  fix bug that did not ignore degenerate Edges in CONNECT

20mar20  fix bug that did not restore csystems in RESTORE command

21mar20  CONNECT wing halves in wingSew2

21mar20  add -skipTess command line argument to serveCSM

21mar20  do not delete Edge Attributes that are returned from a
             UDP/UDF

22mar20  fix ESP bug that stored wrong values for D and W options

22mar20  add feature in sensCSM to check accuracy against known
             errors (in *.csen and .tsen files)

22mar20  add -addData command line option to sensCSM to write .csen
             or .tsen files

22mar20  add *.csen files for all design test cases

23mar20  fix bug that does not re-set at-at-paraneters when UDP is
            called from UDC from File->Edit

24mar20  add INFO to sensCSM if maximum error decreased relative to
             value in .csen or .tsen file

27mar20  put a lower level on errors reported in sensCSM based upon
             values in .csen or .tsen files

27mar20  update sketch solver to use damped-Newton first

27mar20  change ERROR:: statement in sensCSM to only report an error
             if it is greater than an acceptable error (1e-7)

28mar20  implement SSLOPE statement and associated test cases

28mar20  incorporate EDGE_HIST_TRANSFORM test harness

30mar20  try Netwon before Levenberg-Marquardt in SOLEND statement

31mar20  fix bug that cause undefined behavior if a .csm file was
             edited in ESP and the new file became much shorter

 2apr20  add ability to only test sensitivities of only one element of
             a DESPMTR array in sensCSM

 2apr20  update some .csen files

 2apr20  relax tolerance in sensCSM for reporting errors

 3apr20  fix bug in sensCSM if .csen file did not exist and is not
             being added via the -addData flag

 3apr20  remove .tParams prescription in orbiter1

 4apr20  fix bug that did not add all Bodys to the stack that were
             recycled in a RESTORE command

 4apr20  test recycling for all data/basic test cases

 5apr20  fix bug that sometimes seg faulted when recycling after a
             CATBEG

 5apr20  fix bug that caused an error when recycling a case with a UDC
             that had a string-valued output paremeter

 7apr20  add (undocumented) recycle command to return an error if an
             error is encountered during a recycling test

 8apr20  fix bug that did not reinitialize the size of INTERNAL and
              OUTPUT Paremeters at the beginning of ocsmBuild

 8apr20  update serveCSM so that the -loadEgads flag can only be
             active on the first build

 8apr20  fix memory leak when EXTRACT detected an error

 9apr20  never recycle UDPARG statements

11apr20  avoid divide by zero while setting up at-parameters if no
             entities are selected

14apr20  update sensCSM to check for NaN being returned from analytic
             sensitivities

15apr20  improve internal documentation in udfTile.c

16apr20  modify script used to test ESPbeta.tgz releases

17apr20  modify sensCSM -tessel tests, including default dtime

18apr20  fix bugs in RBF interpolation

19apr20  update design7 test case so that shafts Edge is not
             coincident with a fin

20apr20  upgrade designH3 and designH4 test cases to convert some
             DESPMTRs to CFGPMTRs

20apr20  modify design0w to not use TFI interpolation in elliptic
             Faces

21apr20  maintain Edge attributes when IMPORTing .egads file

21apr20  add importAttr test case

22apr20  update .csen files for designH3 and designH4 to match current
             DESPMTRs

22apr20  improve documentation of ARC command

22apr20  add timing info to sensCSM

22apr20  fix memory leaks in sensCSM associated with suppressed tests

22apr20  in serveCSM -sensTess, show Face tufts in blue and Edge tufts
             in red

22feb20  in serveCSM -sensTess, allow use to change visibility of
             tufts

23apr20  extend COMBINE command to return a SheetBody if the Shell
             created is not closed

23apr20  add sew1 test case

24apr20  preserve Edge attributes when subtracting an in-plane
             FaceBody for a SheetBody

24apr20  add subtract6g, subtract6h, and subtract6i test cases

25apr20  fix bug associated with recycling when IMPORT or UDPRIM
             returns multiple Bodys

25apr20  fix bug that did not clear Bodys from stack when recycling in
             a JOIN

25apr20  add sew2 test case

26apr20  initial version of udfTile2

27apr20  add -printStack command line option to serveCSM

27apr20  remove Mark from stack when a UDPRIM that uses all Bodys to
             the Mark is recycled

27apr20  remove STOREage when ocsmBuild starts

27apr20  make variable names more expicit in udfTile2

30apr20  fix memory leak associated with clearing storage at the
             beginning of ocsmBuild

30apr20  fix bug when there is a sketch and the user SELECTs a Body
             via attributes

30apr20  persist Node attributes when IMPORTing; update importAttr.csm

30apr20  modify SELECT ADD so that Faces, Edges, or Nodes can be added
             by index

30apr20  modify SELECT SUB so that entities can be subtracted by index

30apr20  update udfTile2

30apr20  add option to ESP to turn on/off all Nodes, Edges, Faces, or
             Csystems

 1may20  fix bug that incorrectly identified a Body made by a REVOLVE
             as a Body made by an EXTRUDE

 1may20  when SELECTing via attributes, match if attribute values are
             a single integer or real

 1may20  modify GROUP statement to ungroup Bodys if ibody is negative

 4may20  fix bug associated with SELECTing via attributes

 5may20  add PRINT_FAULTS define to OpenCSM.c so that number of major
             and minor page faults associated with each Branch is
             printed

 6may20  add PRINT_PROGRESS define to OpenCSM.c so that progress of
             processes associated with finishing a Body can be viewed

 9may20  significatly speed up finishing all Bodys

 9may20  remove DPRINT macros

10may20  in serveCSM automatically select -batch if -skipTess is
             specified

11may20  reorganize Plugs data so that it can be tested by Jenkins

13may20  fix bug that did not sort the @sellist properly when Nodes
             are selected and the sort key is xcg, ycg, or zcg

13may20  fix bug that did not properly process tessellations for
             perturbed Body (for finite differences)

13may20  fix bug that did not skip degenerate Edges in createTessVels

13may20  add more plugs test cases

14may20  fix bug that did not close a -jrnl if an error was detected
             while the jrnl was being processed

14may20  return EXIT_FAILURE from plugs if verification test fails

16may20  add SSLOPE to ESP

16may20  add pictures from studentGallery to ESP-help

16may20  update ESP-help to be consistent with OpenCSM.h, etc.

17may20  add studentGallery pictures to ESP-help

17may20  add ToDo.txt information to ESP-help

17may20  make sure that all Bodys on stack get tessellations when
             requesting sensitivities, even when -skipTess flag is
             given

19may20  allow plotfile to contain triangles (if jmax==-2)

19may20  in sensCSM, write bad.triangles file with folded-over
             triangles

21may20 fix bug associated with tessellation sensitivities for an
             EXTRUDE, RULE, or BLEND when applied to a planar sketch
             that was scaled

22may20  add winding3 test case

23may20  add .tsen files for design*

23may20  force tessellation sensitivities to be computed via finite
             differences if a BLEND contains a C0

24may20  fix bug that hangs ESP if File->Open does not work

24may20  fix bug after File->Edit when one of the skteches in a RULE
             or BLEND could not be recycled

27may20  reorganize the way RULE/BLEND sensitivity caches are handled

27may20  first cut at 2020 ESP training material

29may20  finish 2020 ESP training material

29may20  add missing file in training_2020/data/session10

29may20  add verification data for data/training_2020/*/*/*.csm

29may20  reorganize data/training files

31may20  update ESP_QuickReference

31may20  update training/session01

31may20  add quick reference in ESP-help

 1jun20  update ESP-help and its pictures

 1jun20  update training materials

 1jun20  fix a few comments in OpenCSM.h to be consistent with
             training

*******  v1.18 release

 8jun20  uprev to v1.19 (ESP.html, ESP-localhost.html, ESP-help.html,
             OpenCSM.h, ocsm.rc)

 8jun20  update DARPA image in welcome slide for training_2020

 8jun20  add designK* test cases

 9jun20  implement simple and Laplace smoothing in createTessVels

11jun20  add sensitivity checks to verify target in Makefile.DARWIN64

11jun20  update training welcome slides

11jun20  fix tric bug in Laplace smoothing within createTessVels

14jun20  allow plotting of NodeBodys in StepThru mode

14jun20  fix bug in StepThru mode if configuration started off with a
             Sketch

14jun20  update training_2020/lecture slides

16jun20  allow comments to not start in column 1 in udpWaffle

16jun20  fix message in udpWaffle to list CPOINT as a valid statement
             type

16jun20  fix ESP indentation associated with CATEND in ESP editor

17jun20  add training_2020/exercises slides

17jun20  add a hint for PATBEG in ESP editor

17jun20  add @version at-parameter

17jun20  allow user to edit .csm if it only contains DESPMTR
             statements

18jun20  fix bug that did not clear local Parameters associated with a
             UDC if an error was thrown in a UDC

18jun20  add test cases for making training pictures: attribute8*,
             csystem6* sketch7*, tparams*, and waffle8*

18jun20  add swap.udc and swapTest.csm

18jun20  make assert_failed a catchable signal

18jun20  fix error in round_pat test case

18jun20  tell user which block is open when issuing error

19jun20  fix bug in constraint solver if given Incidence was not
             between -180 and +180

19jun20  fix bug in constraint solver if given Angle was not between
             -180 and +180

19jun20  fix documentation associated with IMPORT when numbodies
             argument is -1 (to return all Bodys in a Group)

21jun20  allow spaces and tabs before >> for inline files

22jun20  fix drawing of Axes in ESP so that they always extend to the
             origin

26jun20  add periodic argument to RULE and BLEND

26jun20  change error to warning if a RULE has a Xsect with
             multiplicity more than 1

26jun20  if begList and/or endList in BLEND contains 3 values, it
             specifiies the inward tangent vector

26jun20  add rule19*, blend19*, blend20*, and boend21* test cases

26jun20  improve description of BLEND in training slides

28jun20  update names of constants associated with Parameters

28jun20  make CFGPMTR statement exactly parallel the DESPMTR statement

28jun20  give CONPMTRs global scope

29jun20  ignore despmtr=0 argument to DIMENSION statment

29jun20  add dimension test case

29jun20  in ESP, report errors in ocsmLoad to user and set up
            GUI so that file can be editted

 1jul20  keep as many values as possible when resizing a Parameter via
             a DIMENSION statement; if after resizing the number of
             values is larger, repeat the last value

 1jul20  misc fixes to training_2020 files

 2jul20  fix bug in ocsmSave that wrote DIMENSIONs associated with
             DESPMTRs and CFGPMTRs twice

 3jul20  fix bug associated with DIMENSIONing a Parameter that had
             previously contained a string value

10jul20  allow RULE to work for two WireBodys with coincident
             endpoints

10jul20  add bentDisk* and shrinkwrap* test cases

11jul20  fix bug in COMBINE that restricted input SheetBodys to only
             have one Face each

11jul20  fix bug associated with EVALUATE EDGERNG and EVALUATE FACERNG

11jul20  new capability: in SUBTRACT, if Body2 is a NodeBody, split
             Edges in Body1 at Body2

11jul20  fix bug that used an undefined variable when returning from
             an include-type UDC

11jul20  update the fitter in Slugs

13jul20  add rule20* to rule26* test cases

13jul20  add creation of plugs.hist file

14jul20  add UBOUND statements to a few Plugs test cases to help them
             converge

14jul14  require DESPMTR or CFGPMTR statement before LBOUND or UBOUND
             is specified

14jul20  fix bug that caused segfault if bad value given in LBOUND or
             UBOUND statement

14jul20  upgrade to latest version of T-Blade3

16jul20  modify shrinkwrap1 test case to manually REORDER a WireBody

16jul20  add DESPMTR perturbation when Plugs stalls (in the hopes of
             unstalling it)

16jul20  fix iford for BOX with negative dimensions; add boxC test
             case

17jul20  update reordering in RULE/BLEND to handle case of WireBodys
             with coincident endpoints;  revert back to original
             version of shrinkwrap1 test case

18jul20  incorporate MIXED_TESS flag in serveCSM

24jul20  add verification data for 7.4.1

24jul20  fix bug in sensCSM that did not EG_mapBody when checking
             tessellation sensitivities

26jul20  update Gloves

27jul20  add many options to Gloves; add glovesTest.csm

28jul20  reorder ASSERT choices when writing verification data
             for @xcg, @ycg, @zcg

28jul20  add trange output in ocsmPrintEgo of an Edge

28jul20  add WARNINGs for apparently spurious Nodes

29jul20  change color of Faces in SheetBodys to a light pink

30jul20  add addVerify target to Makefile.DARWIN64

30jul20  update 7.4.1 verification data to account for removal of
             spurious Nodes

31jul20  update 7.3.1 verification data to account for removal of
             spurious Nodes

 1aug20  improve spurious Node checks

 1aug20  modify some 7.3.1 verification data to allow for differences
             in the treatment of spurious Nodes for different OSs

 2aug20  modify some test cases to account for latest changes to
             spurious Node code

 2aug20  add Node, Edge, and Face counts every time a Body is created

 6aug20  update and reorganize training_2020 materials

 6aug20  allow plotting of shaded triangles (jmax=-3) and
             quadrilaterals (jmax=-4) in the plotfile in ESP

 7aug20  change way color spectrum is defined in serveCSM

 8aug20  add split option to udpFitcurve

 8aug20  add equis option to udfFlend

 8aug20  modify Tblade3/hub_inflation test case

10aug20  update error checking in udfFlend

23aug20  update training slides to correct spacing when using tex2020

23aug20  get latest version of T-Blade3

23aug20  remove targets from Makfile.DARWIN64 and Makefile.LINUX64 that
             used gv (buildCSM, matchCSM, and gridCSM)

24aug20  add vlimits argument to udpTblade to optionally create a
             SheetBody with the hub, tip, or both clipped; add cliptest
             test case

26aug20  add equis, npnt, and slpfac arguments to udfFlend

27aug20  fix (long long) cast for windows in udfFlend

27aug20  add scribedSphere test case

28aug20  allow 0 as wildcard in any or all fields in SELECT FACE ibody
             iford iseq=1 statement

28aug20  allow 0 as wildcard in any or all fields in SELECT EDGE
             ibody1 iford1 ibody2 iford2 iseq=1 statement

28aug20  update LINT_FLAGS in Makefile.DARWIN64

28aug20  fix typo in udpTblade

29aug20  update test cases that broke when allowing wildcards in
             SELECT: atTest, attribute6a, flowaround*, flowthru*,
             select8, and shrinkwrap* (this occured when you were
             SELECTing a non-manifold Edge)

29aug20  allow any attribute matches in SELECT ADD and SELECT SUB

 4sep20  allow a DIMENSION statement (of a DESPMTR or CFGPMTR) to have
             an expression for nrow and/or ncol

 4sep20  update dimension test case

 9sep20  clarify rules for SET statement (in OpenCSM.h)

 9sep20  modify expressions test case with more SET tests

 9sep20  make illegal_pmtr_index a catchable signal

10sep20  allow SET to copy a whole parameter even if some of the
             elements are undefined

10sep20  allow ocsmUpdateDespmtrs to work with subscripted DESPMTRS

10sep20  add oscmSaveDespmtrs to save the current DESPMTRs

12sep20  add MESSAGE command to print message both to transcript and
             in the ESP MessageWindow; add message1 test case

13sep20  in ESP, use Bodys and plotdata to set initial view

13sep20  extend val2str to use e notation if ndigits is negative

13sep20  in the ESP .csm editor, return to the past location in the
             file when starting editor

16sep20  fix bug detected by sanitizer in MESSAGE command

16sep20  fix typo in udpRadwaf associated with DEBUG printing

16sep20  fix bug that properly reDIMENSIONs DESPMTRs if a CFGPMTR or
             another DESPMTR is changed

19sep20  add @toler to get largest tolerance associated with @sellist

19sep20  switch from EG_solidBoolean to EG_generalBoolean; update
             verification data where EG_generalBoolean produces fewer
             degeneracies than EG_solidBoolean; fix cases so that
             there are no sliver Faces

21sep20  add ocsmUpdateTess to overwrite a tessellation

21sep20  add -tess option to serveCSM

23sep20  add -dxdd flag to serveCSM to automatically generate a .sens
             file for the given DESPMTR

23sep20  fix bug in ESP that caused a iparent=-1 message if a DESPMTR
             and Body had the same name

24sep20  fix bug that could give nonsense message in MessageWindow if
             a bad file is read

24sep20  add ocsmRegSizeCB to OpenCSM API to register a callback that
             gets called if the size of a DESPMTR changes; add
             dimension2 test case

24sep20  update ESP so that changes in sizes of DESPMTRs are reflected
             in the TreeWindow

26sep20  fix error messages in ESP if problem occurs during ocsmLoad()

28sep20  add void* userdata to modl_T structure

30sep20  simplify the method for setting design velocities for
             multi-valued DESPMTRs in ESP

30sep20  add capability to ESP to show table of OUTPMTR values and
             velocities; add pmtrtest2 test case

30sep20  add printout of velocities of OUTPMTRs to serveCSMs output

 5oct20  fix indexing problem associated with changing the size of the
             last DESPMTR

 5oct20  allow CFGPMTRs to be changed in ocsmUpdateDespmtrs

 5oct20  fix bug in serveCSM to not use callback if WebViewer is not
             started (yet)

 5oct20  add pmtrtest3 test case and associated test in Makefile.DARWIN64

 8oct20  write CFGPMTRs in ocsmSaveDespmtrs

12oct20  allow the ESP DisplayFilter to numerically compare values if
             attrValue is numeric

12oct20  fix error handling when EG_hollowBody fails

12oct20  add message to serveCSM summary to tell if verification was
             requested but a .vfy file could not be found

13oct20  change message associated with locating to explicitly say
             that the reported value is approximate

14oct20  fix message returned to ESP when an error is detected while
             processing the arguments to a UDPRIM

14oct20  make messages returned to ESP by udpBox, udpImport, udpNaca,
             udpSample, udpSupell, udpWaffle, amd udfEditAttr more
             explanatory

15oct20  when changing DisplayType to 0 in ESP, do not ask for upper
             and lower limits

15oct20  improve ESP MessageWindow messages when there is a problem in
             a UDP/UDF

17oct20  allow the BOX command to create a NodeBody

17oct20  get velocities correct for the BOX command when generating a
             WireBody or NodeBody

17oct20  allow one to retrieve the velocities of the @parameters
             associated with the mass properties

17oct20  change MALLOC and FREE macros in common.h to use EG_alloc and
             EG_free

18oct20  add massprop* test cases

21oct20  update ocsmFindPmtr so that if type=0, it will not create a
             new Parameter and will return ipmtr=0 if Parameter is not
             found at the global scope

24oct20  add ocsmGetTessNpnt and ocsmGetEnt to OpenCSM API

25oct20  change function signatures of ocsmPrintAttrs, ocsmPrintBodys,
             ocsmPrintBrchs, ocsmPrintBrep and ocsmPrintPmtrs to use a
             filename instead of a file pointer

25oct20  rewrite pyOcsm to use python.ctypes (rather than the C code
             that only worked in Python 2.x)

25oct20  add testPyOcsm.py to test pyOcsm.py

28oct20  add assertions for all return values in testPyOcsm.py

28oct20  modify pyOcsm to make it more pythonic

29oct20  add ocsmGetEgo to OpenCSM API and pyOcsm

29oct20  add sketch8 test case (for testing sensitivities)

29oct20  fix ESP bug that accidentally disabled buttons in Sketcher and
             Gloves

30oct20  rename ocsmGetEnt to ocsmFindEnt to make its name more
             representative of what it does

30oct20  change way tmp_OpenCSM_ files are handled so that only those
             associated with a specific MODL are removed when ocsmFree
             is called; add pyOcsm/inline.csm and modify testPyOcsm.py
             to test

30oct20  fix for mkdir differences between LINUX and WIN64

 1nov20  test RegMesgCB and RegSizeCB in testPyOcsm.py

 2nov20  make Ocsm.attributes private in pyOcsm.py

 4nov20  modify sketch8* test cases

 6nov20  extend ocsmNewBrch to add all the appropriate Branches if a
             UDC is added

 6nov20  modify testPyOcsm to test adding a UDC via NewBrch

 8nov20  report an error if the child script in udpCsm.c does not
             leave a Body on the stack

 8nov20  extend CONPMTRs so that they can be arrays of numbers

 8nov20  modify ocsmLoadDict so that CONPMTRs can be defined with
             multiple values

 9nov20  cosmetic changes in pyOcsm

 9nov20  number tests in testPyOcsm

10nov20  fix bug in ocsmLoad if unrecognized filename is given

13nov20  disable recycling if a file edited in ESP editor changes the
             type, name, any arguments, or any attributes on a Branch

13nov20  add colors.dict, which defines the standard RGB color table,
             to the data directory

18nov20  fix bug in recycle checker when different Branch types are
             detected

24nov20  reformulate windtunnel7 test case to eliminate EGADS warnings

25nov20  use EG_fuseSheets when UNIONing SheetBodys; update
             verification tests to account for fewer Nodes

25nov20  modify JOIN so that it only works if there are common Edges
             in SheetBodys or Faces in SolidBodys

25nov20  add joinUnion* test cases

26nov20  update some verification data to be consistent with JOINs new
             rules

28nov20  fix output during execution of SELECT statement

30nov20  fix sensitivity bug when computed by sensitivities and the
             velocity of a mass property is needed

30nov20  add GetTessVel checks to pyOcsm

30nov20  update ocsmGetValu to get the correct dot for an OUTPMTR

 1dec20  fix bug in createTessVels that did not compute Node
             sensitivities correctly for WireBodys

 1dec20  add more sensitivity checks to testPyOcsm

 1dec20  fix memory leak in joinSheetBodys

 5dec20  extend RULE and BLEND to create WireBodys if all inputs are
             NodeBodys

 5dec20  check for repeated Xsects at beginning and end of RULE and
             BLEND

 5dec20  add rule27* and blend27* test cases

 6dec20  extend EXTRUDE to create a WireBody if its input is a
            NodeBody; add extrudeB test case

 6dec20  simplify sensitivity calculations for primitives

 6dec20  improve messages if error is encountered in sensCSM

 7dec20  add designL* test cases

 9dec20  change offset in Edge.iford from 100 to 10000; modify
             select1a, select1b, and select2 test cases

10dec20  add blend_nacelle test case

11dec20  add -allVels command line option to serveCSM to compute
             velocities for Edges and Nodes as well as Faces

11dec20  add _hist attribute to WireBodys

12dec20  add udfPrintEgo

12dec20  fix bug that did not reset hasC0blend flag in ocsmBuild

15dec20  update udpBiconvex so that there is no restriction on
             camber; improve sensitivity calculations

16dec20  return useful error message when SUBTRACTion of a SheetBody
             from a SolidBody fails during the imprint operation

16dec20  update some sensitivity verification data

16dec20  rename pyOcsm to pyOCSM

16dec20  update pyOCSM to use EGOs directly (instead of void pointers)

17dec20  add studentGallery/espRacer

18dec20  during sensitivities, get Edge history from adjoining Faces

18dec20  fix bug that sometimes incorrectly set the .ibody or .iford
             for Edges

18dec20  get velocity on Edges from PRIMITIVE or GROWN directly (ie,
             not via the adjoinig Faces)

21dec20  fix _edgeID for cases with a BOOLEAN after multiple RESTOREs

21dec20  fix sensitivities for some cases with LINES

21dec20  fix bug that occurred during a rebuild for a Parameter that
             was DIMENSIONed but not set

21dec20  increase MAX_NAME_LEN from 32 to 64

21dec20  automatically add missing semi-colon to end of argument in
             SOLBEG statement

21dec20  add designM* test cases

22dec20  compute sensitivities associated with SOLBEG/SOLEND; add
             designN* test cases

22dec20  add -skipHelp command line argument to test_pyOCSM

23dec20  fix memory leak in ocsmLoadDict

23dec20  add copyright statement to pyOCSM

23dec20  fix a few problems in pyOCSM

23dec20  remove all references to SUPIN from Makefiles

24dec20  fix bug in sensitivities for SOLBEG/SOLEND

24dec20  rename designL3* and designL4* test cases until recursive
             RULEs/BLENDs can be properly handled

24dec20  update 7.4.1 .csen files for design1b and design4

25dec20  do not check Body index in ocsmGetEgo is asking for context

25dec20  fix memory management in pyOCSM

26dec20  fix memory leaks associated with deleting an Attribute or
             Csystem

26dec20  move PrintEgo to top level in pyOCSM

27dec20  change ocsmGetEgo to return a copy of a Body, Tessellation,
             Face, Edge, or Node

27dec20  add ocsmSetBnds to ocsm.def

27dec20  update memory management in pyOCSM

28dec20  add more tests to test_pyOCSM.py

28dec20  produce useful error message if UDP/UDF cannot be loaded

29dec20  change copyright notice to 2021

 1jan21  add range to ocsmPrintBrep

 2jan21  refactor sensitivity code and remove redundant functions

 4jan21  update makeFace for upcoming EGADS update

 8jan21  add designP* test cases

 9jan21  fix EXTRUDE/SCALE sensitivity bug

 9jan21  compute Edge and Node sensitivity directly for EXTRUDE

10jan21  change sensCSM command line option from -addData to
             -addVerify

11jan21  change sensCSM to only look at Edge and Face sensitivities at
             interior points

11jan21  change serveCSM command line option from -sensTess to -tessel

12jan21  get Edge and Node sensitivities directly from the source
             rather than from the Faces

13jan21  simplify algorithm for find tessellation sensitivities on
             Edges

13jan21  remove testing of Face normals and Segment direction in
             -tessel checks in sensCSM

13jan20  fix numerous sensitivity bugs

14jan20  fix (recently-added) bug associated with skipping rebuild if
             there is an EVALUATE statement

14jan21  improve cloud point reclassification process in Plugs

15jan21  extend designP* test cases

15jan21  fix propagation of .hasdots for cases with multiple RESTOREs

16jan21  handle sensitivity case when WireBody is INTERSECTed or
             SUBTRACTed with a SolidBody

16jan21  require finite-difference sensitivities for cases with
             EVALUATE statements

17jan21  use internal _dots for Edges if it exists

17jan21  compute sensitivities for BLEND of all NodeBodys

17jan21  update .tsen and .csem files for all 7.3.1 and some 7.4.1 test
             cases

18jan21  remove _hist and __trace__ attributes from Bodys when importing

18jan21  update .csen and .tsen files for 7.4.1 for designP* test
             cases

18jan21  return EXIT_FAILURE if there is a problem with the .csen or
             .tsen file in sensCSM

19jan21  fix Slugs problems that were introduced by recent changes in
             EGADS

19jan21  add holes test case for Slugs

19jan21  add sense printout for Face children in ocsmPrintEgo

19jan21  update Plugs verification data for 7.3.1

19jan21  fix Slugs so that it no longer issues Face is Fixed messages

20jan21  fix warning messages generated by udpFitCurve, udpRadwaf,
             udpKulfan, and udfCatmull

20jan21  remove __trace__ warning for Nodes in a REVOLVE since they
              might not exist in the SolidBody if they were on the
              centerline

20jan21  do not run plugs if there is a pendingError

20jan21  allow user to skip phase1 in Plugs

20jan21  write plugs.despmtrs file at end of Plugs

20jan21  remove perturbation process in Plugs since it did not work,
             especially for cases without LBOUNDs and UBOUNDs

21jan21  fix bug when SWEEPing a WireBody; update sweep0a verification
             data

21jan21  fix Edge blue/green coloring in ESP

21jan21  update verification data for plugs1c, plugs4b, plugs7a, and
             plugs8a, since the results were close to the correct
             DESPMTRs

22jan21  add designP*d test cases

22jan21  use new Node-only versions of EG_ruled and EG_blend

22jan21  fix bug in Face orientation when SUBTRACTing two in-plane
             SheetBodys

25jan21  enable more spline functions in RULE/BLEND sensitivities

26jan21  improve Plugs messages for outLevel 0

26jan21  fix bug in velocityOfNode for a RULE/BLEND with a rotated
             Xsect

26jan21  fix typo in Edge tessellation sensitivities; fix affected
             .tsen files

26jan21  fix bug that drew too many things when showing tufts for
             tessellation sensitivities

27jan21  add udpProp and its test cases

28jan21  add perturbations in Plugs when LM fails to help avoid local
             minima

 4feb21  many changes in order to pass lint and scan-build tests

 6feb21  fix bug associated with CSYSTEMs that was introduced recently

 6feb21  a few more fixups to try to pass ESP_Stanalizer

 6feb21  update Makefile for lint options

 7feb21  fix bug introduced in last attempt to get around
             false-positives in stanizer

 7feb21  more changes to get around false-positives produced by
             stanalizer

 9feb21  add A12 to studentGallery

11feb21  (for now) disable _hist and __trace__ in Bodys that are
             returned from udpCsm (which means that we cannot get
             sensitivities on the Body returned from udpCsm)

11feb21  add etopo* test cases

12feb21  adjust tolerance for detecting colinear points in CIRARC in
             sketcher

13feb21  significant speedup in creating sceneGraphMetaData,
             especially for cases with many Faces and Edges

14feb21  add A12.png for ESP-help

16feb21  issue error message if problem generating SPLINE with
             specified SSLOPE

16feb21  fix bug associated with flipped Sketch containing an SSLOPE
             statement; add sslope5* test cases

19feb20  first implementation of ErepEd; add ereped* test cases

20feb21  add udfNuscale to non-uniformly scale a Body (after
             converting it to all BSPLINES); add nuscale* test cases

20feb21  fix typo in GetUV in pyOCSM

20feb21  add nasa_worm test case

21feb21  add udfPrintEgo to Makefile and NMakefile

22feb21  fix typos in ESP-ereped.js

24fab21  fix memory leaks in udfNuscale

25feb21  fix problems that were caused by incorrect fix of memory
             leaks in udfNuscale

25feb21  extend ocsmPrintEgo to work for EBodys, ...

25feb21  add ocsmMakeEBody to OpenCSM API

26feb21  next version of Erep Editor

26feb21  add erepAtEnd flag so that ocsmBuild builds EBodys at end
             based upon _erepAttr and _erepAngle attributes

26feb21  add new DisplayType (6) in ESP to visualize EBodys if they
             exist

27feb21  fix important bug in tessellation sensitivities for Faces

27feb21  allow configuration sensitivities on EEdges and EFaces

28feb21  add more features to Erep Editor; add ereped5 test case

28feb21  allow user to show either configuration or tessellation
             sensitivities in ESP (and make the -tessel flag obsolete
             in serveCSM)

 1mar21  update .tsen files to be consistent with fixed bug in
             tessellation sensitivities

 3mar21  fix some minor bugs when compiling with GRAFIC

 3mar21  update ESP for recent change to WebViewer

 3mar21  update Makefiles for requirement to compile with c++

 4mar21  minor update to parka to eliminate warning with old gcc

 5mar21  add waffle9a test case

 6mar21  refactor (simplify) tessellation sensitivities code; update
             .tsen files

 7mar21  add designQ* test cases

 9mar21  allow color names to be specified in either lowercase or
             UPPERCASE

 9mar21  fix bug that improperly colored Edges after call to
             udfEditAttr

11mar21  fix tessellation sensitivity bug along Edges

11mar21  add creation of a logdist.plot file that contains triangles
            with the log(distance) at every Face tessellation point
            (blue=1e-12, red=1e-03) if sensCSM is called with the
            -tessel and -despmtr flags

12mar21  add __hasC0blend__ Attribute so that finite differences are
             used for sensitivities if a C0 blend has been recycled

12mar21  update .tsen files

13mar21  allow UDP/UDF to get its << arguments from a stream instead
             of a tmp_OpenCSM_xx/yy file

13mar21  add udpInline* test cases

13mar21  update udfEditAttr to get its file from a stream

13mar21  fix bug that did not properly write inline files associated
             with a UDPARG statement

15mar21  simplify udfEditAttr code to accomodate stanalyzer

17mar21  add more info in key window printout when in ESP-sketch

19mar21  update Makefile.LINUX64 for use on new ubuntu 20.04 system

20mar21  add more DEBUG information in udfEditAttr

20mar21  fix bug that wrote Body_xxxxxx.egads file twice if from a UDF

20mar21  fix bug associated with Edge attributes when Body was
             recycled via -loadEgads

21mar21  update to udfEditAttr to account for the fact that windoze
             does not properly handle ftell() and fseek() if file is
             opened for read in text mode

23mar21  revise Makefile.DARWIN64 so that target testESP tests
             -dumpEgads and -loadEgads

24mar21  fix recently-added bug that did not put attributes on a Body
             that was recycled via -loadEgads

25mar21  fix bug in computing tessellation sensitivity at endpoints of
             Edges

25mar21  fix allocation bug in sensCSM -tessel; update some .tsen
             files

26mar21  fix bug in udfNuscale that caused an abort if input was a
             FaceBody; add nuscale4 test case

30mar21  compute tessellation sensitivities for EBodys

 2apr21  add udfSlices; add slices* test cases

 5apr21  fix scene graph bug associated with changing DisplayType to 6

 8apr21  fix bug where scene graphc meta data was not cleared after
             being transferred to the borwser

11apr21  fix bug in ocsmCopy to not malloc when minline=0

11apr21  update wingStruct test cases to use JOIN instead of UNION

11apr21  add many more flend* test cases

11apr21  add ability to apply flend to a single Body

11apr21  update flend to work even in cases where tangent vectors are
             (anti-)parallel

13apr21  signal an error when attempting to EXTRACT a degenerate Edge

14apr21  fix bug in JOIN if toMark is set but there is only one Body
             after the mark

15apr21  fix Tblade3 cases that use flends

16apr21  fix bug in flend that caused out-of-bounds error

16apr21  first cut at multi-user collaboration in ESP

17apr21  change all wv_sendText to wv_broadcastText in serveCSM

17apr21  update IMPORT to use tessellation if .egads file contains one
             or more tessellations

18apr21  update UDPRIM to use tessellation if returned model contains
             one or more tessellations

18apr18  fix bug in ocsmPrintEgo for cases where MODL contained a
             TESSELLATION or EBODY

18apr21  fix memory leaks in udfFlend

18apr21  improvements to multi-user collaboration

23apr21  fix memory leaks in udfFlend

24apr21  extend ocsmGetEgo to allow EBody or tessellation on EBody to
             be returned

25apr21  add options to udpSupell to get better end-slopes, which is
             sometimes needed for very large n abd high apsect ratios

25apr21  add droopInlet* test cases

25apr21  fix memory leak in sensCSM -tessel

27apr21  add lock in serveCSM so that browser messages do not
             interfere with each other when there are multiple browsers

27apr21  update pyOCSM for latest Windoze/Python 3.9 change

27apr21  fix SOLBEG iteration message

30apr21  fix bug in ocsmGetTessVels that did not rebuild perturbation
             for cases where a UDPARG contained an argument that could
             not be computed analytically

30apr21  add more droopInlet* test cases (rounded inlets)

30apr21  add appliedLate test case to show how to apply chamfers and
             fillets at the end of the build process

 1may21  fold case in argument names to UDPARG and UDPRIM

 2may21  update udpParsec; update parsec test cases; add designR* test
             cases

 2may21  in removeVels, remove sensitivity cache for any Body created
             by a UDPRIM (since we do not know what was done inside
             the UDP)

 3may21  remove 6.8.1 verification data

 3may21  minor changes to Makefile.DARWIN64 and Makefile.LINUX64

 4may21  update verification data for parsec2* on 7.3.1

 4may21  update udpWaffle to get its file from a stream; add waffle9b
             test case

 4may21  update udpBezier to get its file from a stream

 5may21  update udpFitcurve to get its file from a stream; modify
             fitCurve6* test cases

 5may21  update udpFreeform to get its file from a stream

 5may21  update udpNurbbody to get its file from a stream; add more
             nurbbody* test cases

 6may21  reorganize pyOCSM files so that python recognizes it as a
             package

 7may21  do not remove previous velocities if call to ocsmSetVel or
             ocsmSetVelD does not result in a change

 8may21  fix bug in STORE when overwriting a storage location with a
             GROUP that contains a different number of Bodys; add
             group6 test case

 9may21  fix bug that returned an error when IMPORTing an .egads file
             that contains a tessellation; add import8* test cases

 9may21  fix bug in ocsmSave when writing .csm file that has UDPARG
             statements associated with a UDC; add save1 test case

 9may21  add save2 test case to ensure that inline inputs to a UDP get
             saved correctly in ocsmSave

 9may21  fix out-of-bounds bug when processing inline files associated
             with a UDP/UDF

 9may21  change ocsmGetEgo so that it always returns the ego rather
             than a copy of the ego

 9may21  add ocsmSetEgo to OpenCSM API, pyOCSM, and test_pyOCSM

10may21  change the name of configuration sensitivities to geometric
             sensitivities

13may21  add imprint5 test case (which is expected to fail)

13may21  move data/tutorial* to data/legacy/tutorial*

15may21  add ExpandAll/CollapseAll button in ESP to expand listing of
             Branches

15may21  fix coloring of some Branches in ESP TreeWindow

15may21  add ExpandAll/CollapseAll buttons for DesignParameters and
             LocalVariables

16may21  RESTORE . (dot) now duplicates Body on top of stack; add
             restore2 test case

16may21  return an error from ESP if despmtr change is illegal (such
             as out of range)

16may21  modify contains.udc and overlaps.udc so that they leave the
             stack unchanged

16may21  update ESP-help (except tutorials)

16may21  update ESP_QuickReference

17may21  remove unneeded part of tutorial3

18may21  update scripts for testing ESPbeta and Esp pre-builts

19may21  allow selection of geometric and tessellation sensitivities
             for multi-valued DESPMTRs in ESP

19may21  update to tutorial files for cases when spindle is not
             created

20may21  fix coloring of children Branches when a DesignParameter is
             editted in ESP

20may21  first attempt at new tutorial descriptions

21may21  do not allow editing of .udc in ESP unless there is a
             matching .csm or .cpc

21may21  if ocsmSave is called to write a .udc file but there is no
             matching UDPRIM statement, write a include-type UDC

24may21  change DisplayFilter so that it posts help via an alert
             instead of the MessageWindow

24may21  update all tutorials in ESP-help.html

25may21  fix error when drawing outline in StepThru mode

26may21  fix core dump if opening file in ESP without a filename

26may21  fix bug in ESP that made commands not available if File->Open
             had more Branches than previous model

26may21  add description of MessageWindow background colors in
             Tutorial 1

27may21  update instructions for testing pre-builts

27may21  do not let .udc file be opened via File->Open

27may21  fix description of adding a sketch to Tutorial 3

*******  v1.19 release

 8jun21  uprev to v1.20 (ESP.html, ESP-localhost.html, ESP-help.html,
             OpenCSM.h, ocsm.rc)

 8jun21  fix ESP Hint associated with CONNECT command

 8jun21  extend CONNECT so that it can CONNECT Faces in a single Body
             if there is a Mark before the last SolidBody

 8jun21  improve detection of matching Edges in CONNECT

 8jun21  add inletWithWalls* test cases

10jun21  improve speed of udfEditAttr and udpWaffle (on LINUX) when
             script is very long

11jun21  add Makefile.DARWIN64.gcc for testing with gcc-10; modify
             testing procedure to also test against gcc-10

11jun21  fix memory error associated with reordering senses in loops
             (inletWithWalls1)

11jun21  fix seg fault if $order in INTERSECT is given as $xmin (and
             not xmin); check that only valid $order are given; fix
             test cases that used invalid $order

13jun21  upgrade to latest version ot Tblade3

14jun21  fix a few typos in the documentation

14jun21  update some training_2021 files

16jun21  fix comments in contains.udc and overlaps.udc

18jun21  add assembly3 and assembly4 test cases

18jun21  allow CATBEG to catch overconstrained and underconstrained
             errors

18jun21  generate underconstrained, overconstrained, or not_converged
             signals from SKEND

18jun21  add sketch9* test cases

18jun21  improve convergence tolerance in sketcher

20jun21  fix sign of dip to minimize residual for S and R constraints
             in sketcher

21jun21  ensure that sweep() function always gives sign that is the
             same as dab

22jun21  check if a user gave an illegal $order to SUBTRACT

23jun21  add eqn2body.udc and helix* and frustrum* test cases

24jun21  fix bugs associated with SSLOPE statement (especially when a
             sketch is flipped); add sketch10* test cases

24jun21  fix tolerance checking in sketch solvers

25jun21  add theta[] argument to udpEllipse; add ellipse2 test case

26jun21  fix eqn2body.udc so that it warns (as oposed to errors) if a
             local variable is being overwritten

26jun21  fix bug that prematurely exits if UDP does not exist and we
             are recycling

26jun21  add angle argument to applyTparams.udc

26jun21  add .tParams attribute to Body too in applyTparams.udc

26jun21  in udfSlices, if there is a .tParams attribute on the input
             Body, put it on the slices too

26jun21  change message in udc loader for cases where file is not
             found (to avoid Jenkins false positive)

27jun21  fix bug in latest commit associated with calling a
             non-existant UDP/UDF

27jun21  first version of massProps and adjointCSM

27jun21  fixed adjoint calculations in massProps

28jun21  add adjoint* test cases; add testAdjoint target to
             Makefile.DARWIN64

29jun21  fix token parsing associated with DOS CR (carriage return) in
             udpWaffle and udfEditAttr

30jun21  update tessellation sensitivity verification data

30jun21  fix bug in mass property derivatives

30jun21  update sew1, sew2, and import5 to account for improvements in
             IGES writer

30jun21  add Curve, Pcurve, and Surface printouts to ocsmPrintEgo

30jun21  add toler=0 argument to CONNECT command

 1jul21  break Makefile.DARWIN64 up so that test suite can be run in
             parallel

 3jul21  fix bug when starting serveCSM on Windoze from an .egads,
             .igs, or .stp  file for filename with backslashes; add
             autoStart test case

 4jul21  add ability to print call history during sensitivity
             calculations

 5jul21  add stickFuselage test case

 7jul21  extend COMBINE command to close WireBody if needed; add
             combine8* test cases

 7jul21  add splitFlap2* and splitFlap3* test cases

 8jul21  extend CONNECT to work with WireBodys

12jul21  fix bug associated with -dxdd option (incorrectly wrote .tess
             file instead of .sens file)

13jul21  add mechanism2 test case

16jul21  add esa_logo test case

16jul21  add normals to output from EVALUATE FACE command

16jul21  when SUBTRACTing co-planar SheetBodys, make sure result has
             same normal as the outer SheetBody; add subtract6j-k test
             cases

16jul21  allow -dxdd option to be applied to subscripted DESPMTRs

16jul21  fix memory leak associated when COMBINE closes a WireBody in
             order to make a SheetBody

16jul21  add plotting of normals to DisplayType

17jul21  fix First and last Node warnings associated with COMBINE and
             with esa_logo

17jul21  fix bug that did not readjust the level when returning from a
             UDC

19jul21  fix bug when the last line of a UDC (without an END
            statement) calls a UDC (with an END statement)

19jul21  add supell7* test cases

20jul21  match slopes and curvatures at seams in UDP supell when
             slpfact<0

21jul21  broadcast view matrix to partners when cursor leaves canvas
             before mouse up event

21jul21  reorganize mass property calculations

23jul21  update droopInlet* test cases to use slpfact=-1

23jul21  compute mass properties only when needed

23jul21  add warnings when recycling stops

24jul21  significantly speed up recycling

27jul21  fix CONNECT errors associated with non-contiguous Faces; add
             connect7f test case

27jul21  preserve orientation of Faces during EXTRACT; add extract4
             test case

28jul21  add sketch11* test cases

28jul21  do not include SSLOPE statments when determining if Sketch
             points are co-planar

30jul21  update OpenCSM to account for EGADS changes associated with
             making Faces and degenerate Edges

31jul21  fix bug in Slugs associated with recent EGADS topology
             changes

 2aug21  fix plugs bug for unclassified points during
             reinitialization; mark plugs1c as expected failure (for
             now)

 3aug21  more protections in plugs for cases with unclassified points

 4aug21  add PLUGS_CREATE_EGADS_FILES to serveCSM; add more info to
             plugs.hist fille; add data/plugs/showHistory.csm to help
             debug operation of Plugs

 4aug21  change number of reclassified points in Plugs to be the larger
             of 5 and a fraction of area associated with a Face

 5aug21  improve accuracy of udpFreeform; update associated
             verification data

 6aug21  initial version of serveESP

 6aug21  reorganize udp.c to serve as a pattern for serveESP

 8aug21  small updates to be consistent with recent EGADS changes

16aug21  fixed uninitialized variable in Slugs

19aug21  apply attributes on LINSEG, ARC, CIRARC, BEZIER, SPLINE, and
             SSLOPE Branches to the Edge that they create

19aug21  add attrSketch* test cases

20aug21  remove Gloves and ErepEd from serveCSM

21aug21  next version of serveESP that uses TIMs

21aug21  move ErepEd to a TIM in serveESP

21aug21  move Gloves to a TIM in serveESP

21aug21  create Mitten as a TIM example

24aug21  fix bug that sometimes uses FD sensitivities when analytic
             derivatives could be used instead (associated with UDPARG
             statements)

25aug21  change method for setting mass properties so that rebuild is
             not needed when changing spectrum limits in ESP

30aug21  remove inside-out test for SolidBodys to improve performance

31aug21  move Plugs to a TIM in serveESP

 1sep21  do not add _tParams attribute unless the Body will be
             tessellated; remove coarseBox test case

 2sep21  fix long delay when browser without ball syncs display

 2sep21  fix ocsmGetName prototype in ocsm.py

 2sep21  implement outLevel in timPlugs

 2sep21  improve -plugs option in serveCSM so that more cases work;
             mark plugs4c as successful in Jenkins

 3sep21  modify attribute and getattr1 test cases to account for fact
             that _tParams only exists when Body is recycled

 3sep21  add attrScribe test case

 3sep21  add udpParabaloid and test case

 5sep21  update ESP-help for v1.20

 6sep21  fix bug that did not allow a user to EXTRACT multiple Faces
             from a SolidBody that had an internal hole; add
             extractShells* test cases

 6sep21  fix memory leak in udpParabaloid

 6sep21  update ESP_QuickReference for v1.20

 8sep21  fix bug in JOIN associated with Faces that share Edges but
             which have bounding boxes that differ; add halfSpheres
             test case

 8sep21  remove spurious printout associated with SKEND command

 9sep21  disable timMitten for v1.20 release

10sep21  fix minor documentation typos

20sep21  fix bug in StepThru that was introduced when computation of
             _tParams was delayed

*******  v1.20 release

24sep21  uprev to v1.21 (ESP.html, ESP-localhost.html, ESP-help.html,
             OpenCSM.h, ocsm.rc)

24sep21  create unpublished routine convertToBSplines.  modify so that
             BSPLINES are not reconverted; modify udpParabaloid and
             udfNuscale to use convertToBSplines.  add DEBUG prints in
             udpNuscale; add sculpt* test cases

24sep21  add attrProp test case to show how Edge Attributes get
             propagated to Faces by EXTRUDE and REVOLVE but not by
             RULE and BLEND.  attrProp also shows that Edge Attributes
             are not carried forward by EXTRUDE, REVOLVE, RULE, or
             BLEND

24sep21  make INTERFACE DIM obsolete; issue WARNING to use DIMENSION
             statement instead

24sep21  add udfNacelle and udfNacelle* test cases

30sep21  allow pyOCSM to import an externally-generated MODL

 1oct21  enable timMitten

 3oct21  create timPython and data/python/test*

 3oct21  allow serveESP to start with a .py file

 5oct21  cosmetic fixes to udpSensitivity in many UDPs and UDFs

 5oct21  modify udfNacelle* test cases to use DESPMTRs

 9oct21  add splitWing* test cases

 9oct21  remove gallery/FJ2 from distribution

 9oct21  fix bug in udfGuide that did not work properly for an input
             SheetBody

 9oct21  add designS* test cases

 9oct21  fix bug that did not compute sensitivities correctly
             for UDFs when one (or more) of the input Bodys had
             non-zero velocities

11oct21  add udpTire testing to Makefile.DARWIN64

11oct21  compute sensitivity correctly with udfCreateBEM, udfCreatePoly,
             udfEditAttr, udfPrintBbox, udfPrintBrep, and udoPrintEgo;
             add designS3 test case

15oct21  fix bug associated with expressions that contain mass
             properties; add designT1 test case

15oct21  fix bug that causes an error to be raised if the mass
             property sensitivities are computed by FDs before the
             last Body is built; add designT2 test case

15oct21  add python mode to CodeMirror

16oct21  add esp.py

17oct21  enable esp.SetModl() to see MODL in serveESP after python
             finishes

19oct21  fix bug associated with (FD) sensitivities for a MODL with a
             OUTPMTR being set before a FILLET or CHAMFER

19oct21  remove code that protects against calls to EG_replaceFaces in
             SolidBodys with more than one Shell

22oct21  fix stdout sequencing in timPython

23oct21  get rid of global data in serveESP

23oct21  update data/python/test* files

23oct21  start getting ready for editing .py files

23oct21  separate loading and running in timPython

23oct21  run python in separate thread

24oct21  add @scope at-parameter; add scope test case

24oct21  fix pyOCSM test errors caused by addition of @scope

24oct21  change button to yellow and RunningPython while python is
             running

24oct21  update Makefile.DARWIN64 to get rpath correct when running a
             script directly in python (and not serveESP)

26oct21  allow CONPMTR statement if at top-level scope; update scope
             test case

26oct21  fix bug that did not compute sensitivity correctly when a
             DESPMTR was used in an include-type UDC

26oct21  fix bug that did not remove UDP cache entries when a Body was
             deleted (such as during recycling)

26oct21  do not consider DEGENERATE Edges when SELECTing either by
             bounding box of nearest-to

29oct21  fix hint for SCALE in ESP

29oct21  shorten hint time-out in ESP to 15 sec

29oct21  fix bug in timPython that did not register MesgCB and SizeCB
             after a timLoad (which caused a problem if started with a
             .py file)

 3nov21  add (not-yet-implemented) Debug option in ESP editor

 3nov21  update ESP editor so that users without the ball can see the
             edits as they happen

 3nov21  clean up unneeded routines in TIMs

 3nov21  add debug and debugged testcases

 4nov21  add designU* test cases

 5nov21  updates to way PYTHONHOME is found in timPython

 9nov21  add designV1 test case

12nov21  set sgFocus in timMitten so that it can start with an empty
             MODL

12nov21  add ocsmLoadFromModel function

12nov21  add withTess=0 argument to DUMP command; add dumpTest* test
             cases

13nov21  update Makefile.DARWIN64.gcc

13nov21  update timPython to post stdout to the MessageWindow while
             python is executing

13nov21  fix postMessage so that blanks lines between messages are
             eliminated

14nov21  remove tim_data from TIM interface (no longer needed)

17nov21  change NXSECT argument in udpGuide to ATTRREAL so that finite
             difference sensitivities are triggered

17nov21  remove RAD argument to udpBox in designI2 and designI4 so
             that finite differences are not triggered

17nov21  fix bug that re-computed velocities when re-computation was
             not necessary

17nov21  fix bug associated with sensitivities of mass properties

18nov21  update to latest version of Tblade3

19nov21  allow default xaxis=0, yaxis=0, and zaxis=0 in ROTATEX,
             ROTATEY, and ROTATEZ; add rotate1 test case

19nov21  add LAYOUT to udpWaffle; add waffle3* test case

19nov21  fix memory leak associated with mprp arrays

20nov21  add IFTHEN/ENDIF to udpWaffle; add waffleA* test cases

20nov21  update Makefile.LINUX64

20nov21  fix bug that lost ball if user with ball sends a message

21nov21  update timMesg so that it does not return a response

21nov21  allow non-*host* to initiate file editting

21nov21  fix bug that does not give appropriate error messages when
             having trouble opening a .py file from the command
             line

21nov21  fix bug that does not give appropriate error messages when
             timPython has trouble opening a file from Tools->Python

21nov21  improve sensitivities associated with tip treatments in
             BLEND;  update designG5 and designG6 test cases

22nov21  fix bug so that wv_broadcastText is not called by a TIM when
             running in batch mode

24nov21  fix typo in error message associated with COMBINE command

24nov21  make error messages from udpWaffle more explicit

24nov21  fix bug associated with MALLOCs in udpWaffle

25nov21  add closeBody* test cases

25nov21  add collab* test cases

26nov21  add documentation about what happens for a 0 in either SELECT
             ADD or SELECT SUB statement

27nov21  remove special sensitivity treatment for BLENDs with C0;
             update sensCSM verification data

27nov21  add blend22* and rule22 test cases

30nov21  use new BLEND C0 treatment, including in sensitivities

 1dec21  fix bug in timMitten associated with cleanup

 2dec21  reorganize way TIMs broadcast messages out to the browsers

 4dec21  do not change outLevel if ocsmSetOutLevel is called with
             negative argument

 4dec21  add printout for outLevel.ge.2 when TIM broadcasts a message
             to the browsers

 5dec21  add option to plot trim curves associated with all Faces

 9dec21  fix bug in udfNuscale when zscale=0

 9dec21  first cut at calling a TIM from the python TIM

10dec21  add timViewer and associated test cases

11dec21  create mechanism to allow a TIM to call a TIM

11dec21  fix a few typos in ESP-help

12dec21  fix mutex problems associated with tim_mesg

12dec21  change locking mechanism for tim_mesg to use ThreadWait
             instead of a mutex

14dec21  add ability to hold python execution while an overlay
             (viewer) is executing; update viewer.py

14dec15  update test.py to remove call to removed esp.ViewModl()

15dec21  update timViewer to be able to make changes to the scene
             graph

15dec21  add ocsmLoadFromModel to pyOCSM; add shapes test case

15dec21  fix initialization bug in ocsm.py

15dec21  create ESP-viewer.js

16dec21  pass callbacks to overlay if they exist

16dec21  reorganize python test cases

16dec21  change verification tests to include serveESP

17dec21  update documentation for DUMP in OpenCSM.h

18dec21  add ability of specifying color of items in a plotfile

18dec21  change udfCompare to group bad points based upon the
             magnitude of the error

18dec21  update udfCompare to check distances from Nodes and Edges as
             well as distances from Faces

19dec21  update Makefile.LINUX64

19dec21  fix typo in mitten2.py

22dec21  more improvements to udfCompare (and fix sanitizer error)

22dec21  update GRAFIC plots of trim curves to show the points on the
             Pcurves

22dec21  increase size of points in plotfile in serveESP

22dec21  add fixture* test cases

23dec21  check for proper result types from SWEEP

23dec21  check mass props before topology in verification files

23dec21  add verification data for OpenCASCADE 7.6.0

24dec21  change copyright to 2022

25dec21  give @version a value before the first Body is built

25dec21  allow DIMENSIONed variable to be returned from a UDC; update
             expressions test case to demonstrate multi-value returns

27dec21  fix bug if user with ball loaded a new .csm file and then
             editted (where user without ball saw wrong file)

27dec21  adjust closeBody2 test case to REORDER the Edges so that all
             the Faces point outward

27dec21  inform users if someone has joined or left a collaboration

27dec21  modify visualization of grids on Faces in serveESP
         * new-style quads if _makeQuads attribute on Body
             (.tessType==Quad or .tessType==Mixed)
         * old-style quads if _makeQuads attribute on Faces
             (npatch>0)
         * triangles oherwise

28dec21  fix valgrind error in sensCSM

30dec21  .py files are automatically edited in serveESP

31dec21  update CAPS/myPlane for intent 4 (avl) and 5 (bem)

31dec21  update to special plotting associated with Face velocities
             for INTERP_VEL=6

 3jan22  improve tessellation sensitivities for Edges and Faces that
             are not trimmed by a boolean operation; update .tsen
             files

 5jan22  fix bugs associated with running a .py file

 6jan22  implement Debug in .csm editor

 6jan22  fix a few bugs in parent/child Body pointers

 8jan22  update ESP_QuickReference

 8jan22  update ESP so that double-clicking in MessageWindow takes you
             to filename:linenum that is clicked on, else takes you to
             last filename:linenum in MessageWindow

10jan22  update sensCSM to use RMS errors; reduce ratio of
             errors for alerts from 5 to 2; update .gsen and .tsen
             files for 7.4.1 and 7.6.0

12jan22  index.lt.0 in RESTORE is now a wildcard, meaning that Bodys
             in all storages that match name are put onto the stack

13jan22  initial integration of CAPS into serveESP; remove serveESP
             from Makefile and NMakefile; create serveESP.make and
             serveESP.mak

15jan22  fix tessellation sensitivity bug associated with SheetBodys
             that are INTERSECTed with a SolidBody; add designP5* test
             cases

16jan22  fix Node sensitivity for two parallel Edges

16jan22  move timViewer from Makefile to serveESP.make

17jan22  add tufts for Nodes when displaying tessellation
             sesnitivities in serveESP

18jan22  ensure that tessellation sensitivities on the boundaries of
             Face and ends of Edges agree with Edge and Node
             sensitivities; update .tsen files

19jan22  modify timPython to get around numPy problems associated with
             Py_Finalize; modify tim interface to allow a tim to
             perform cleanup at the end of serveESP

20jan22  add growing3.py test case

21jan22  for a UDP/UDF, only use finite differences if one of its
             arguements is ATTRREAL and has non-zero dots

23jan22  do not show Branches in serveESP when in -caps mode

23jan22  allow serveESP to change .csm file when in -caps mode

23jan22  fix OpenCSM.c to remove stanalizer error

25jan22  update Caps Value handling in ESP

27jan22  fix errors that occur because Py_Finalize cannot be used more
             than once (because of a numpy bug)

27jan22  fix bug that did not show Cvals for -caps runs in serveESP and
             Brchs when running without -caps

29jan22  fix bug in ocsmPrintEgo when called on BSPLINE Curve or
             Surface

29jan22  require positive scale factors in udfNuscale when applied to
             a SolidBody

30jan22  add initial version of timPlotter and test cases

31jan22  change GetToken in tim.c so that tokens can have unlimited
             length

 2feb22  create hollowSheet and hollowSolid test cases to show all
             possibile uses of HOLLOW command; improve description of
             HOLLOW in OpenCSM.h; if HOLLOW fails, input Body is left
             on the stack; add hollowE* test cases to show some of the
             limitations of HOLLOW

 3feb22  change timPython to timPyscript to get around problems with
            linking with python on Windoze

 3feb22  have OpenCSM return SUCCESS even when all the Bodys have been
             recycled

 3feb22  put note in ESP-help and OpenCSM.h that warns users that
             results from HOLLOW and SWEEP may be unpredicable due to
             OpenCASCADE issues

 4feb22  add timPlotter and plotter* test cases

 5feb22  add SELECT LOOP to get Edges associated with a Loop in a Face

 5feb22  allow unary + or - in front of (multi-valued) Parameter when
             used alone in an expression

 5feb22  add sectionsWithHoles* test cases

 5feb22  add debug GRAFICs to udpKulfan

 5feb22  added numpts argument to udpKulfan, which helps avoid small
             dimples near the leading edge of a very thin section

 6feb22  improve the creation, editting, and removal of Caps Values in
              -caps mode; allow multi-valued Caps Values in ESP

 7feb22  add udfShadow and shadow* test cases

 7feb22  improve error message when project.csm exists before the
             project directorry when running serveESP in -caps mode

 9feb22  fix bug in esp.py to account for change from timPython to
             timPyscript

10feb22  fix bug that either hangs or seg faults serveESP if user
             closes browser while timPyscript is executing.  this is
             done by not calling Py_Finalize, which will result in a
             memory leak

10feb22  fix bug that occasionally does not show pyscript file when
             serveESP is starterd with a .py file

11feb22  extend STORE such that if index=-1, the first available index
             is used

15feb22  fix bug that generated two copies of Bodys on stack when
             RESTOREing with index<0

15feb22  if running serveESP in -caps mode, get MODL from CAPS
             (instead of building it in OpenCSM)

15feb22  extend timViewer to view Bodys associated with an AIM

17feb22  in timViewer, use a tessellation associated with the AIM if
             available, otherwise share the tessellation with OpenCSM

18feb22  add viewing of BOUNDS in timViewer

18feb22  allow GetToken in tim.c to work if the text string does not
             end in a delimiter

18feb22  improve error message generated when SKVAR does not contain
             triplets

18feb22  improve CAPS summary at end if running in -caps mode

19feb22  in timViewer, use smoothing shading when looking at BOUNDS

19feb22  allow wild-carding (with 0) in SELECT ADD and SELECT SUB;
             update connect9a and connect9b

19feb22  update Makefile.DARWIN64 for 3-way testing

21feb22  allow branching of Phases when running serveESP in -caps mode

23feb22  update statement descriptions in ESP-help

26feb22  display CAPS menu in ESP when running in -caps mode

28feb22  update Makefiles for cases without python

 3mar22  add many features to -caps mode

 4mar22  add data/ide/* to test -caps mode

 6mar22  fix many bugs in -caps mode

 6mar22  expose ocsmTessellate

 9mar22  extend ListHistory to GEOMETRYIN and GEOMETRYOUT

10mar22  do not let esp.UpdateESP rebuild (force rebuild in .py script)

11mar22  more improvements for ListHistory

11mar22  use caps_open in read-only mode in ListPhases and ListHistory

12mar22  add ocsmAdjustUDCs to OpenCSM API to copy all UDCs to the
             same directory as the .csm file

13mar22  implement File->New, File->Open, and File-Edit->OK in caps
             mode

15mar22  change -caps mode to accommodate both fore- and back-slashes
             in filenames

15mar22  use ocsmTessellate in serveESP

16mar22  update serveESP.make and serveESP.mak to define USING_CAPS
             (so that serveESP can be built without CAPS)

18mar22  remove unneeded code that generates a warning with new clang
             version

19mar22  use updated caps_open so that cases with UDCs work properly

19mar22  initial implementation of SuspendPhase to revert to non-caps
             mode

21mar22  fix bug in ocsmSave that did not write DIMENSION statements
             correctly when writing either a .csm or .cpc file with a
             variable nrow and/or ncol

21mar22  update calls to caps_open to handle UDCs

24mar22  fix bugs in File->Open and File->Edit for cases with and
             without UDCs

27mar22  allow nesting of TIMs to MAX_TIM_NESTING=10

30mar22  change display scaling so that if there is only one NodeBody
             it still gets displayed

30mar22  initial implementation of timCapsIde

 1apr22  allow for .py scripts to run both in serveESP -caps and in
             stand-alone python

 1apr22  add ocsmSetAuxPtr and ocsmGetAuxPtr in OpenCSM API

 2apr22  only allow one open ESP-help tab at a time

 3apr22  implement timFlowchart; modify interpolateUpper.py and
             conserveUpper.py to demonstrate flowcharting tool

 4apr22  remove unneeded windoze headers from tim.c

 5apr22  rename capsIde to capsMode

 7apr22  restrict SPHEREs to have a positive radius

 7apr22  allow multiple ESP-help tabs in browser

10apr22  partial implementation of timCapsMode

10apr22  remove temporary printf statements

11apr22  additional bugs fixed in timCapsMode

11apr22  add unequalRules test case to show how to RULE between xsects
             with different nnumber of Edges

15apr22  more modifications to support timCapsMode

17apr22  modify demo_caps.txt and demo_tim.txt; make changes needed to
             make both demos operate properly

18apr22  update demo_tim.txt

18apr22  fix ListHistory in timCapsMode

18apr22  add calls to caps_debug around List* messages in timCapsMode

18apr22  update data/ide/*.py to directly rebuild the geometry

19apr22  reorder Caps menu options

19apr22  add indication for Phases that are a predecessor of current
             Phase in ListPhases

20apr22  inform user when CAPS overrides .csm value(s)

20apr22  first attemp at re-running pyscript in continuation mode

21apr22  remove -caps command-line option (replaced by timCapsMode)

22apr22  add cleanup process in pyscript.py only between scripts (not
             at end)

22apr22  fix bug that did not profile MESSAGE statements

22apr22  reset profile info at beginning of ocsmBuild

22apr22  fix bug that did not print OUTPMTRs during call to
             ocsmPrintPmtrs

22apr22  protect non-script caps_ calls with caps_debug

23apr22  fix bug in timCapsMode that sometimes reverted to original
             .csm file; update demo_tim.txt

23apr22  remove duplicate entries from ListHistory

23apr22  fix typo in ESP-help associated with EVALUATE command

23apr22  add ocsmPrintProfile to explicitly print the profile of CPU
             usage (instead of printing automatically during
             ocsmBuild)

26apr22  automagically run pyscript.py when running in continuation
             mode

28apr22  change Cvals via script when in CAPS mode

28apr22  change DESPMTRs via script when in CAPS mode

30apr22  offer to steal capsLock in CAPS mode

30apr22  add ogive* test cases

 1may22  remove Gloves and Mitten from Tool menu

 4may22  remove try/catch from IDE demo pyscript files

 4may22  use skeletonAIM instead of jfd3AIM in IDE demo

 4may22  only show Display table entries (Node/Edge/Face/Csystem/Pips)
             if it contains any child entities

 5may22  fix sensitivity bug associated with UDP/UDFs that requires
             finite differences coupled with an OUTPMTR that is tied to
             a mass property; add udpTest

 5may22  initial commit of new timGloves and associated files

15may22  update EGADS thread during ocsmBuild

15may22  do not execute overlay (plotter, viewer, flowchart) when in
             continuation mode

15may22  move data/ide to data/tutorial6

16may22  timFlowchart, timPlotter, and timViewer hold pyscript by
             default (use nohold to run asynchronously)

17may22  add inflatedBody* test cases

17may22  explicitly document the rules associated with the propagation
             of Xsect Attributes during EXTRUDE and REVOLVE

19may22  fix memory leaks in buildSceneGraph and timPyscript

19may22  remove upper limit check on nedge in udpEllipse

20may22  add thickPrint* test cases

21may22  extend COMBINE to make a non-manifold WireBody for a set of
            connected WireBodys; add pipeNetwork* test cases

21may22  add sub03 and f104 to studentGallery

24may22  numerous updates to ESP-help

27may22  add .csm filename to ListPhases in the IDE

28may22  automagically add .py extension if omitted

28may22  add created/updated phase to ListAnalyses in the IDE

28may22  break model2 into model2a, model2b, model2

29may22  do not allow non-manifold WireBodys in RULE, BLEND, LOFT, and
             SWEEP; add nmWireBody test cases

29may22  list associated Analyses in ListBounds in the IDE

30may22  fix bug that did not persist attributes on scribed Edges
             during a boolean operation; add attribute9* test cases

 1jun22  add Insert button to ESP editor

 2jun22  fix bug in serveESP that did not update filename creating a
         new .csm file

 3jun22  change deprecated e.srcElement to e.target in .js files

 4jun22  limit size of inflatedBody2a to reduce its CPU time

         include tutorial6

 5jun22  suppress profile printing if outLevel==0

 5jun22  fix filename updates in ESP after saving new file and after
             exporting the feature tree

 6jun22  allow overlay to execute a mesg even when in TIM_EXECUTING

 7jun22  update tutorial6 files

 7jun22  fix bug associated with finishing non-manifold WireBodys

 7jun22  allow pyscripts to end without a newline

 7jun22  remove side effects from assert() statements, which work
             differently on Windoze

 8jun22  fix bug that did not allow sketches to be saved from serveESP

 9jun22  fix bug associated with EnterSketcher

11jun22  generate WARNING if importing an .egads file that has an
             Attribute that cannot be evaluated

13jun22  fix error message associated with not enough arguments to
             SPHERE

13jun22  fix bug when user double-clicks in MessageWindow (Chrome and Safari)

13jun22  add sanitize-thread target to Makefile.DARWIN64

13jun22  fix recently-added typo to timPyscript.c

15jun22  copy CFGPMTRs and DESPMTRs from temporary CAPS MODL back into
             the ESP MODL in CapsCommit and CapsSuspend

15jun22  automatically rebuild MODL in CapsCommit and CapsSuspend

17jun22  modify way python is initialized and finalized to work around
             a problem in numpy

19jun22  fix bug in ESP.js associated with clearing velocities for a
             scalar

20jun22  update tutorials 1 to 5 for v1.21

20jun22  fix threading for python

21jun22  fix bug that did not persist Edge Attributes to new
             non-manifold Edges that are generated by EXTRACTing
             Faces; add attributeA test case

21jun22  add duct6 test case

23jun22  fix bug in ESP.js that did not properly clear the display
             when velocities were cleared

23jun22  fix bug when visualizing new-style quads and .mixed=NULL

23jun22  do not process _makeQuads on a Face if the Body has a
             _makeQuads Attribute

24jun22  remove erroneous non-manifold warning associated with
             NodeBodys

24jun22  documentation updates

25jun22  more documentation updates

25jun22  first cut at tutorial6 write-up

26jun22  second cut at tutorial6 write-up

29jun22  fix bug in IDE that did not properly journal updates to the
             intent phrase

30jun22  allow asterisk as a wildcard in the DisplayFilter

 5jul22  third cut at tutorial6 write-up

 5jul22  finished draft of tutorial6 write-up

 5jul22  update date in ESP-help

 5jul22  try invEvaluateGuess for very hard cases in udfCompare;
             update compare1b test case

 6jul22  fix bug in computing tessellation sensitivities for a
             NodeBody

 6jul22  modify ESP-help to reflect the fact that legacy tutorials
             have been moved

 6jul22  update message when user quits a phase in the IDE

 7jul22  update compare1b.vfy

 8jul22  protect for degenerate Edges in sensCSM

 9jul22  fix ESP bug that dropped user out of CapsMode if a
             non-existant pyscript is attempted

 9jul22  update ESP_QuickReference

10jul22  add wingBEM2 test case

11jul22  add duct7 test case

11jul22  add replicate.udc and ereped6* and ereped7 test cases

12jul22  add sharpFin test case

12jul22  typo fix in documentation

14jul22  initialize *info in ocsmBodyDetails

14jul22  return sensible error message when a SET is applied to a
             CONPMTR, CFGPMTR, or DESPMTR

15jul22  fix bug that did not update at-parameters for REORDER command

15jul22  fix bug that changed the input Body to REORDER

15jul22  fix sensitivity bug whan a RULE/BLEND xsect is RESTOREd after
             being used

*******  v1.21 release

18jul22  uprev to v1.22

19jul22  implement udpEqn2body for WireBodys

19jul22  modify inflatedBody2b to use the replicate.udc

20jul22  implement udfOffset; create offset* test cases

20jul22  improve error handling associated with SELECT SORT

20jul22  modify flend5* test cases to use udfOffset

21jul22  fix hint associated with JOIN

22jul22  change COMBINE so that it only increases the topological
             order of its input WireBody or SheetBody

22jul22  change JOIN so that it can make non-manifold WireBodys;
             modify numWireBody* test cases

27jul22  create ELEVATE command, which only elevates WireBody to
            SheetBody and SheetBody to SolidBody;  remove COMBINE
            command and instruct user to use JOIN and ELEVATE instead

28jul22  update UNION and JOIN such that if toMark is set but the
             operation fails, the stack is left unaltered; add
             unionSolids* test cases

28jul22  fix typos in ESP-help (and OpenCSM.h)

 1aug22  update udfOffset for negative distance

 2aug22  add udfDumpPmtrs and associated test case

 2aug22  implement RESTORE .. (dot dot) to duplicate all Bodys (and
             Mark) back to the Mark and RESTORE ... (dot dot dot) to
             duplicate entire stack; add restore3 test case

 3aug22  allow UDF to not return a Body or Bodys

 3aug22  update udfOffset so that it can handle concave corners (but
             not case where Edges disappear)

 4aug22  allow very long message to be sent from browser to server;
             add setCsmFile instead of setScmFileBeg/Mid/End

 8aug22  if error occurs when processing a timMesg, put the tim back
             into READY mode

 8aug22  post message when erep is successfully generated

 8aug22  implement udpEqn2body for SheetBodys; update frustrum3 test
             case

21aug22  use __usedBodys__ attribute when computing velocity of Faces
             or Edges for RULE and BLEND

21aug22  fix bug in sensCSM that did not reset maximum errors for
             Bodys when in -tess mode

21aug22  fix big that did not copy .hasdots during RESTORE . (dot)

21aug22  remove use of _scaleuv Attribute

25aug22  fix bug that caused ereped to not work for a named Body

25aug22  fix bug that added bar at end of file that was being editted
            in ESP

25aug22  extend ereped so that it can be applied if there are multiple
             Bodys on the stack; add ereped8 test case

28aug22  fix ESP hint associated with ELEVATE command

29aug22  fix bug when SELECT EGDE with a bounding box was applied to a
             Body with degenerate Edges

30aug22  add extractBodys test case

30aug22  fix array bounds error in udpEqn2body

31aug22  fix bug in ereped initializations for a single Body

31aug22  add assert in udfOffset to eliminate warnings on gcc

 2sep22  allow OFFSET to function properly when the number of Edges in
             the offset is fewer than the original Body

 2sep22  fix escape-close-parenthesis in ESP_QuickReference

 3sep22  add ability to create periodic SPLINE in sketcher by using
             SSLOPE(0); add sslope6* test cases

 4sep22  fix memory leak when a UDF returns an error

 4sep22  remove extra prints when udfFlend or udfOffset detect an error

 4sep22  update sanitize targets in Makefile.LINUX

 5sep22  extend MESSAGE to optionally write to a file; modify message
             test case

 5sep22  update ESP-help and ESP_QuickReference

 5sep22  fix test_pyOCSM to account for updated MESSAGE statement

11sep22  initial version of udfDroop2

14sep22  next (still incomplete) version of udfDroop2

15sep22  next version of udfDroop2; first version of udfDroop3

16sep22  fix recently added bug in ereped that only allowed 9 colors

16sep22  remove timHold from viewBodys.py

16sep22  add batch flag to ESP structure

16sep22  add assert command in browserToServer

16sep22  add method of verifying ereped and plugs if running from
             journal and in -batch mode

16sep22  next versions of udfDroop2 and udfDroop3

16sep22  migrate testing in Makefile.DARWIN64 and Makefile.LINUX64
             from serveCSM to serveESP

17sep22  fix bug in esp.SetCaps() in pyESP

18sep22  move building of pyscript from Makefile to serveESP.make

20sep22  clean up usage of include files

20sep22  update dependencies in Makefile and NMakefile

21sep22  protect against string overflows in strncpy and strncat

22sep22  fix mesgCallbackFromOpenCSM so that it does not try to
             broadcast text when in batch mode

22sep22  initial version of udpNaca6mc

22sep22  fix DUMP x.sens for degenerate Edges

22sep22  add combine.udc so that old .csm scripts that used the (now
             deprecated) COMBINE command still work; add combine* test
             cases

24sep22  add makeErep journal entry so that ereped can be tested

24sep22  modify at-itype, at-nface, and at-nedge if there is an erep

24sep22  add POWLE and POWTE arguments to udfDroop; add new droop*
             test cases

24sep22  add udfNaca6mc to warp the input thickness distribution with
             the sum of multiple NACA 6-series meanlines; add naca6mc*
             test cases

27sep22  update Building button to show progress of build in ESP

28sep22  fix memory leak when ELEVATE command fails (like it often
             does in the combine.udc)

30sep22  extend SELECT command to SELECT all Faces/Edges/Nodes in
            current Body that match a Face in another Body

30sep22  add SELECT NOT to SELECT the Faces/Edges/Nodes not selected
             and vice versa

 2oct22  fix bug associated with determining if an Edge is a subset of
             another

 2oct22  update to account for change in EG_isEquivalent

 2oct22  fix bug that did not copy attributes from an Edge in a
             WireBody that was INTERSECTed with a SolidBody to the new
             Edge

 2oct22  add PRINT_LAST_EGO compile-time flag to print the last ego
             after every step in an ocsmBuild

 3oct22  fix bug in sensCSM when trying to remove .csm or .cpc
             extension from the casename when it did not exist

 3oct22  extend SELECT command to SELECT all Faces/Edges/Nodes in
            current Body that are within another Body

 4oct22  add ocsmRegBcstCB to ocsm.def

 4oct22  update to account for latest EGADS fix to EG_generalBoolean

 4oct22  clarify description of SELECT x -1 ibody1

10oct22  add PLOT_TESSSENS and PLOT_TEMPCOMPS flags to help in
             debugging tessellation sensitivities

11oct22  remove tessellation velocity calculation shortcut to make
             Edge and Face tessellation velocities consistent

12oct22  refactor signalError() and signalError2()

12oct22  allow plotTypes =7 for x-component, =8 for y-component, =9
             for z-component of sensitivity

14oct22  remember name of Pyscript file for next Tool->Pyscript

14oct22  clean up ESP messages after builds

14oct22  remove code in esp.timSetCaps that removed the _finalize
             method

15oct22  fix memory problem in timViewer for very long scene-graph
            meta-data buffers

15oct22  reset magic number to zero to catch cases when a MODL is
             tried to be used after ocsmFree

15oct22  modify IMPORT so that it properly marks NODE_BODYs

15oct22  force tessellation if needed in timViewer

16oct22  fix bug in ocsmLoadFromEgads that did not properly initialize
             the .ileft and .irite Branches

16oct22  remove underscore attributes in .egads files in
             ocsmLoadFromEgads

16oct22  force python garbage collection at end of each pyscript
             execution

17oct22  add interactive testScript

18oct22  remove data/ide (because it is redundant with data/tutorial6)

21oct22  eliminate automatic build when entering CAPS mode (depend on
             the lazy evaluation in CAPS)

25oct22  enable sensitivity calculations for scribes and trims; add
            designW* test cases

26oct22  fix bug that put wrong _edgeID on scribed Edges; update
         attrScribe, scribeWing, and scribedSphere test cases

29oct22  create splitEdges.udc; add splitEdges* test cases

31oct22  add ocsmAdjoint and testOcsmAdjoint (in serveESP)

31oct22  allow timPlotter to have two y-axes; add plotter3.py test
             case

 2nov22  fix bug in serveESP that did not properly update the build
             status message after File->Edit->Save

 9nov22  implement analytic sensitivities in udpWaffle; add designX*
             test cases

 9nov22  make sure userPointer gets reset after perturbation is
             removed

12nov22  add ocsmClearance; add clearance* test cases

14nov22  remove suppressions of sensitivity checks on designH2,
             designJ1c, designJ1d, and designJ5

14nov22  add suppressions of sensitivity checks to designG5 and
             designG6 (for rounded tips)

14nov22  fix valgrind error in sensitivities in udpWaffle

15nov22  fix bug where result of SPECIAL/clearance was not recycled

15nov22  update Verification.sh to use serveESP

15nov22  convert all sprintf calls to snprintf

18nov22  update verification data for clearance1 and clerance4 to
             allow for slight differenes due to chaotic behavior of
             the EGADS tessellator

18nov22  update testScript.txt

18nov22  fix possible buffer overflow in SPECIAL command

25nov22  add Trace button in .csm editor to trace all top-level
             Parameters

25nov22  reorganize session10 files to make it easier to build large,
             multi-component, multi-view models

26nov22  update ereped6a, hollowC6, hollowC7, hollowCA, hollowCB, and
            project 3 verification data on 7.6.0 (because of issues
            highlighted by Xcode 14 on M1)

26nov22  update ereped6a and project3 verification data on 7.4.1
            (because of issues highlighted by Xcode 14 on M1)

26nov22  add description of -dxdd flag to ESP-help

27nov22  update ereped6a and project verification data again

27nov22  fix recently-added bug that causes a memory fault for some
             non-manifold Edges

28nov22  account for forward- and backward-slashes when opening a .udc

 2dec22  update error handling in flapz.udc

 4dec22  first attempt at python files for new transport for CAPS
            training

 7dec22  put 1 second delay when opening a pyscript to make sure that
             the browser is ready to display the pyscript in the editor

 7dec22  do not change status of ESP if an error was found while
             executing a pyscript

 7dec22  update session10 training files to be consistent with new
             method for creating a large, multi-component,
             multi-discipline model; update Makefile.DARWIN64

 7dec22  update ESP_QuickReference

 8dec22  update testScript.txt

11dec22  fix problem where ESP sometimes posts pyscript file in
             MessageWindow instead of in the editor

*******  v1.22 release

13dec22  uprev to v1.23 (ESP.html, ESP-localhost.html, ESP-help.html,
             OpenCSM.h, ocsm.rc)

13dec22  fix bug so that a SCALE branch can be added via the TreeWindow

15dec22  fix bug that did not allow interactive use of Slugs

15dec22  add Kut triangles option in Slugs

15dec22  update testScript.txt to include interactive Slugs testing

15dec22  remove training/data/session10/version99/*

16dec22  add transform option to Slugs

16dec22  in Slugs, the KutTriangles option automatically creates a
             link

20dec22  add optional GRAFIC to cutTriangles in Slugs

 4jan23  lots of improvements to Slugs, especially for cases with very
             noisy .stl file

 5jan23  update copyright notices

 8jan23  change udfSlices to skip a slice if OpenCASCADE fails (rather
             than return an eror)

10jan23  add SET statement to udpWaffle;  add waffleB1 and waffleB2
             test cases

11jan23  fix bug in plotting of normals in serveESP and serveCSM

13jan23  add PRINT_RULE_KNOTS to print number of knots in BSPLINEs
             entering a RULE or BLEND

13jan23  allow -ATTRREALSENS to indicate a UDPRIM parameter that is
             intended to signal that Parameter is used within an
             included file; add waffleB3 test case to demonstrate this

15jan23  add waffleB3.jrnl to demonstrate generation of .sens file for
             every DESPMTR without rebuilds

21jan23  numerous updates to Slugs

27jan23  update header files to allow use of C++ main program; add
             simpleCSM.cpp and modify Makefile.DARWIN64 for testing

31jan23  allow number of rows and columns to be accessible in UDPs

31jan23  allow at-at-parameters from a UDP/UDF to be vectors or
             matricies

31jan23  add udp_error1 to udp_error9 as possible argument to CATBEG
             statement

 1feb23  fix bug that did not restore at-at-parameters when a UDP/UDF
             was recycled

 4feb22  refactor way UDP/UDF arguments are handled

 7feb23  add test.so to Makefiles

 7feb23  add diagnostic printouts when a Face does not tessellate

 9feb23  make sure all UDP/UDFs return output values to the numUdp
             instance

12feb23  allow at-at-parameters from a UDP/UDF to have velocities

12feb23  split udpTest into udfTester1 (to demonstrate matrix outputs
             from a UDP/UDF) and udpTester2 (to demonstrate output
             velocities from a UDP/UDF); adjust Makefiles and
             associated test cases

13feb23  fix bug associated with UDP/UDF outputs that change shape

14feb23  modify udfMatchBodys to transfer an Attribute from one Body
             to the other when the Nodes, Edges, or Faces match; add
             matchBody5 test case

14feb23  add arcLengths to ocsmPrintEgo

14feb23  fix bug in udfMatchBodys when tol was large

15feb23  improve test for matching Nodes in udfMatchBodys

15feb23  adjust matchBodys5 test case to check at-at-parameters

15feb23  add copyAttr=0 argument to RULE and BLEND to copy Edge
             Attributes in xsects onto RULE/BLEND Edges; add blend29
             and rule29 test cases

15feb23  fix memory leak in Slugs

15feb23  update Makefile.DARWIN64 in Slugs to have sanitize targets

17feb23  add EVALUATE EDGEKT, EVALUATE EDGECP, EVALUATE FACEUKT,
             EVALUATE FACEVKT, and EVALUATE FACECP; add evaluate3*
             test cases

18feb23  add multiRegions* test cases

19feb23  add SELECT FLIP to flip the order of entities in at-sellist

 2mar23  improve printing of Pcurves in ocsmPrintEgo

 4mar23  improve marking of Faces with _body and _brch Attributes when
             returned from a UDF

 6mar23  add PRINT_MAPPING_INFO define to OpenCSM

 7mar23  fix bug that did not account for Node and Edge sensitivities
             when report sensitivity range in serveESP

 7mar23  fix bug that occasionally did not properly compute Node
             tessellation sensitivities

20mar23  account for fact that Py_SetPythonHome was deprecated in
             Python 3.11

20mar23  update udfOffset so that it can generate offsets on
             SolidBodys (for FLENDs); add offset(I-R)* test cases

20mar23  use zebra stripe coloring for maximum curvature in ESP
             (displayType=4)

20mar23  update convertToBsplines to reuse Pcurves whenever possible

20mar23  add udpBspline and bspline* test cases

24mar23  fix problem erroneously flagged by lint in udpOffset

24mar23  update errors reported by udfFlend

24mar23  fix bug where wrong UDP storage was used in udfOffset (which
             caused problems when udpOffset was called more than once)

25mar23  remove SPECIAL test of EG_otherCurve

26mar23  document .multiNode use in RULE command

26mar23  fix bug where UDP storage is incorrectly cleared for an
             embedded UDP (in udpCsm)

27mar23  fix bug in udfFlend that sometimes did not correctly reverse
             one of the Loops

29mar23  fix memory leak in EVALUATE EDGEKT, EDGECP, FACEUKT, FACEVKT,
             and FACECP when a signal is raised

 2apr23  change flend fits to be better in some cases

 4apr23  track down memory leaks

 6apr23  update flend8* test cases and their verification data

 7apr23  add code to protect for UDFs that have references to
             its input Model

 7apr23  add (hidden) option to create timingReport.txt file

 8apr23  improve flends; add flend9* test cases

12apr23  further improvements to flends; add flend10* test cases

13apr23  fix memory leak when udfOffset encounters an error

14apr23  compute tessellation sensitivities correctly for a NodeBody

14apr23  set and report sensitivity range properly when looking at
             only one component of tessellation sensitivities

14apr23  add -forceFDs command line option to force finite difference
            sensitivities in serveESP

15apr23  create verification data for OCC 7.7.0

15apr23  make sure EVALUATE returns dot=0

16apr23  fix recently-added bug associated with FD tessellation
             sensitivities for NodeBodys

17apr23  allow cases with Edge-only tessellations to work; add
             edgeGrid* test cases

18apr23  update 7.7.0 verification data for imprint5 (should fail)

18apr23  add PLOT_DISPLACE to plot displaced Edges based upon
             tessellation sensitivities

18apr23  update ESP-help.html

19apr23  update data/capsExamples/verify_7.7.0 files

19apr23  fix typos in testScript.txt

19apr23  updates to avoid warnings in clang 14.0.3

19apr23  remove GLOVES from ESP menu (for now)

21apr23  add udfDeform to change BSpline control points associated
             with Faces (and Edges and Nodes) in a Body; add deform*
             test cases

21apr23  modify some verification data to account for differences
             between 7.6.0 and 7.7.0 on all operating systems

25apr23  fix bug that copied Csystems into a UDPRIM

28apr23  add udfMechanism and mechanism* test cases

 2may23  fix typo in text string in serveESP

 3may23  take shortcut when creating tessellation sensitivities for
             Faces that do not have Edges that are the result of
             Boolean operations; update .tsen files for both 7.6.0 and
             7.7.0

 5may23  fix bug that did not properly decrement the pattern counter
             for ENDIF statements after a PATBREAK was executed

 5may23  fix bug that returned error after SELECTing a degenerate Edge

 8may23  add ocsmTraceAttrs, ocsmTraceStors, ocsmGetFiletree, and
            ocsmShowTblOfContents

 9may23  add ability to trace Attributes, Storges, the FileTree, and
             the provided representations in the .csm editor

 9may23  limit number of files in File menu in ESP so that it does not
             overflow the display

 9may23  add SPECIAL provides statement to work with
             ocsmShowTblOfContents

16may23  update Makefile.LINUX64 to execute full test suite

23may23  add udfLinalg and linalg1 test case

23may23  add sketch12* test cases

28may23  update various testing scripts

29may23  added ability to double-click on python error to open pyscript
             editor at the correct line

*******  v1.23 release

 7jun23  uprev to v1.24 (ESP.html, ESP-localhost.html, ESP-help.html,
             OpenCSM.h, ocsm.rc)

10jun23  add support for BLENDs with .C1side Attributes; add blend23*
             test cases

12jun23  change serveESP.mak so that it does not error if PYTHONINC is
             not set

28jun23  change the SUBTRACTion of two co-planar SheetBodys such that if
             the Loop associated with the second Body does not cut a
             clean hole in the first Body, revert to the (default)
             scribing behavior for SheetBodys, that is scribe the
             first Body with the Edges from the second Body;  update
             the documentation for SUBTRACT; add scribe11* test cases

30jun23  fix occasional bug associated with analytical sensitivities
             when DUMPing a .sens file from with .csm script

 1jul23  fix error in serveESP.mak

 1jul23  fix debug code for windoze

 1jul23  initial, very early, preliminary version of udpVspFuse and
             associated test cases

 3jul23  start implementing analytic sensitivities for Sketches; add
             sketch13* test cases

 5jul23  analytic sensitivities for sketches; update .gsen and .tsen
             files; move sketch13* test cases to designY*

 6jul23  temporarily remove vspFuse* test cases

10jul23  add mincp argument to udpNuscale and convertToBSplines
             functions; add ablate* test cases, including using Plugs

11jul23  extend Plugs to be able to use DIMENSIONed DESPMTRs

13jul23  fix bug in velocityOfEdge for Edges with dots that have
             changing tranges

16jul23  fix bug that did not retain Edge attributes during an ELEVATE
             operation

 1aug23  first version of udpVspComp

10aug23  modify ocsmPrintBrep to show list Edges as degenerate rather
             than skipping them

10aug23  add SPECIAL printCPs command to print the control points
             associated with all Nurbs in the Body on the top of the
             stack

15aug23  add first version of udpVsp3

21aug23  ATTRRECYCLE forces UDPRIM to not be recycled

27aug23  fix printing of SELECT with attrValu a number

27aug23  update udpVsp3 to automatically run vsp

27aug23  add data/vsp3 test cases

27aug23  add propInteg*a test cases

29aug23  use _plugsIgnore on Faces that should be ignored during cloud
             point reclassifications in Plugs

30aug23  add udpWarp; add ablate0* test cases

 4sep23  properly rename vsp3 verification test cases

 4sep23  convert backslashes to forward slashes in filenames in
             udpVsp3 because anglescipt expects forward slashes

 7sep23  fix addressing bug in udpWarp

 8sep23  initial implementation of timVspSetup

 9sep23  fix valgrind error in timVspSetup.c

 9sep23  initialization update required by change in EG_mapBody

10sep23  add bentWaffle test case

11sep23  SELECT * xmin xmax ... finds closest entity if xmin=xmax ...

12sep23  remove X57_MAXWELL_CRM_v4.4.1 from svn (too big)

12sep23  make udpWaffle clean up temporary variables if an error
             occurs while processing a file

12sep23  add fitCurve8 test case

17sep23  return error from vspSetup if .vsp3 file does not exist

20sep23  add pylon/pod to vsp3/OPAM1* test cases

21sep23  add testAdjoint* test cases

24sep23  modify ocsmGetUV so that inverse evalaution starts at closest
             tessellation point if npnt is negative

25sep23  fix memory leak associated with testAdjoint*

25sep23  fix bug that allowed _hist and __trace__ to contain duplicate
             entries, which sometimes resulted in an infinite loop

25sep23  add uCRM test case to data/gallery

26sep23  fix bug that made had _edgeID point to scribing Face instead
             of its _faceID during a scribing operation. BEWARE:
             backward incompatability for some _edgeID

27sep23  Edges from a sketch should have _edgeID that identifies the
             Body and Edge number; fix scribeWing test case. BEWARE:
             backward incompatability for some _edgeID

27sep23  fix _edgeID for Edges that result from SUBTRACTing a
             SolidBody or planar SheetBody from a SheetBody. BEWARE:
             backward incompatability for some _edgeID

27sep23  add edgeIDtest* test cases

28sep23  add sleep to udpVsp3 to ensure that .stp file is ready for
             reading

29sep23  update waffle documentation to include rebuild input argument

29sep23  fix bug that caused a seg fault if last Body on stack had a
             degenerate Edge and the -dxdd option was used in serveESP

29sep23  add attrSpec test case to show how to apply compound string
             Attributes via the ATTRIBUTE command, via editAttr, and
             within the waffle

29sep23  relax restriction on number of SET statements within a
             waffle; allow PATBREAK in waffle; add waffleC1 test case

 2oct23  fix sanitize-address error in udpWaffle when progress=1

 3oct23  add simple.py to demonstrate a pyscript that can be run either
             from python prompt or from serveESP

 3oct23  modify OPAM1.udc to pass Jenkins tests

 7oct23  ensure _faceID and _edgeID sequence numbers are consistent
             when computing finite difference sensitivities

 9oct23  allow CSYSTEM name to be an expression; fix bug that did not
             apply csystems to SELECT BODY command; add csystem7* test
             cases

10oct23  clean up some debug printing during sensitivity calculations

10oct23  add missing data/vsp3 verification data for 7.6.0

11oct23  remove FILLETs from OPAM1.csm; add OPAM1_fillet test case

11oct23  fix typo in computation of analytic sensitivities for a CONE

12oct23  fix tessellation sensitivities when Node motion is
             perpendicular to end of Edge; add designZ* test cases

12oct23  update all verification data associated with
             data/basic/design* to account for the new (better)
             sensitivities

15oct23  update to use EG_mapBody2 to make sure Edges are mapped
             properly during sensitivity calculations

15oct23  update sensitivities (again) to improve Edges generated by
             boolean operations; update selected sensitivity
             verification data

17oct23  update method for assigning _edgeIDs associated with
             degenerate Edges

17oct23  slight improvement in tessellation sensitivities for some
             cases

18oct23  fix sanitize error in velocityOfEdge

18oct23  fix undefined variable warning

18oct23  remove OPAM1_fillet test case (because FILLET works
             differently on various platforms)

18oct23  add showsize option in udfNuScale

21oct23  fix bug in udfOffset for Bodys with degenerate Edges

21oct23  in udfEditAttr, allow attrValue to be a star in HAS
             statement, independent of whether the value is a string
             or a number

27oct23  add LRED, LGREEN, and LBLUE to list of possible colors

 5nov23  multi-thread ocsmAdjoint; add testAdjoint4 and testAdjoint5
             test cases

 5nov23  dynamically allocate arrays in testOcsmAdjoint

 8nov23  print Edge lengths in ocsmPrintBrep

10nov23  change signature of ocsmAdjoint to not automatically compute
            full Jacobian

11nov23  do not run testOcsmAdjoint if -loadEgads is enabled

11nov23  fix sensitivities bug if there is a UDP/UDF and the
             -loadEgads flag is set

12nov23  remove /../ patterns from .udc filenames

12nov23  fix bug in capsMode that did not allow .csm files to have
             .udc files in subdirectories

13nov23  add ability to put attrName/attrValue on control surfaces in
            udc/flapz

13nov23  prototype WaveFront .obj file writer

13nov23  fix sensitivity bug that returns zeros when UDPs are used and
             -loadEgads was enabled

14nov23  add quad output in .obj file writer

16nov23  add $grpName=. optional argument to DUMP command for .obj
             files

17nov23  fix implicit string defaults in ocsmMakeBrch

19nov23  temporarily disable filename compression

20nov23  fix bug in filename compression

21nov23  fix bug that did not restore the stack properly when a
             command returned multiple Bodys

22nov23  fix bug that did not clear display when plotter exits

22nov23  make MessageWindow light green to alert user that they need
             to exit an overlay

22nov23  allow TIM to reload (if state is TIM_READY)

22nov23  do not print warning that message is not broadcast because wv
             was not started (which can happen due to timing in
             multiple threads)

22nov23  add areaRule* test cases and python script

23nov23  change verification data for testAdjoint4 and testAdjoint5 to
             account for inconsistencies in number of spurious Nodes
             and Edges

23nov23  remove verification data for 7.3.1 and 7.4.1

24nov23  remove BWB.vsp3 test case since bug in OpenVSP sometimes
             causes OpenVSP to fail

24nov23  add Node tolerance checks when reporting tolerance associated
             with a Body

25nov23  adding _viz=off Attribute to a Face, Edge, or Node makes them
             initially not displayed in serveESP (although they can be
             toggled via the GUI)

25nov23  fix valgrind error associated with not initializing the
             output Body to EG_mapBody

27nov23  added _grd, _trn, and _ori attributes to change initial
             settings for Faces and Edges

28nov23  fix RALLOC so that it can be thread-safe

29nov23  fix bug that erroneously identified at-at-nchange as a real
             in udfEditAttr

29nov23  fixed bug when using a UDP/UDF that returns a value and
             finite difference sensitivities are being computed

29nov23  fix compiler warning associated with _viz attribute

29nov23  clean up memory at end of ocsmAdjoint

30nov23  make UDP/UDFs thread-safe.  THIS REQUIRED A CHANGE IN ALL
             UDP/UDFs.  See OpenCSM/src/udp.help for information

 2dec23  fix bug in the pattern counter when executing PATBREAK

 5dec23  fix the code that finds the (non-manifold) Edge velocities
             generated by a Boolean operation on SheetBodys as well as
             SolidBodys

 5dec23  update ESP to account for new arguments to DUMP command

 6dec23  fix bug in copying UDP/UDF data that was identified by
             memcheck

 8dec23  fix bug with optional last argument to DUMP

 8dec23  fix bug associated with copying bodyList in ocsmCopy

 8dec23  print triangle and quadrilateral count when writing .obj file

15dec23  refactor UDP/UDF global storage

17dec23  update udp.def for Windoze

18dec23  attempt to fix stanalizer errors

18dec23  fix bug in transferring Edge attributes when SUBTRACTing a
             SheetBody from another SheetBody (due to an OpenCASCADE
             error)

18dec23  fix bug that (erroneously) evalauted arguments to ELSEIF even
             when the matching IFTHEN evaluated to true

18dec23  provide udps.ndotchg to tell it any inputs to sensitivities
             have changed since previous call for sensitivities

18dec23  provide COPYUDPDATA to copy private data in UDP/UDFs

19dec23  try to eliminate duplicate library warnings when linking
             tile.so

19dec23  fix udp.def for udpPost

19dec23  re-add duplicate libraries for linking tile.so (even though
             latest linker will issue a warning)

19dec23  fix bug in ocsmCopy that seg faulted when a Branch name
             exceeded 11 characters

19dec23  update sensitivity calculations in udpParsec

19dec23  add capNacelle*, testAdjoint6, and testAdjoint7 test cases

19dec23  change copyright dates from 2023 to 2024

19dec23  add deprecation warnings to all .csm/.udc/.cpc files that use
             LOFT, MACBEG, MACEND, and RECALL

19dec23  fix undefined variable associated with degenerate Edges when
             using udfOffset

21dec23  allow assert_failed signal to be caught

21dec23  check that arguments to COMBINE command are all valid Edge
             and/or Face numbers

21dec23  fix bug in serveESP that seg faulted when a DESPMTR exceeded
             its LBOUND or UBOUND in the .csm file

21dec23  fix memory leak associated with private data in UDP/UDFs

21dec23  fix bug in GROUP command when ngroup was positive

22dec23  update group5 test case and its verification data

22dec23  start to modify ESP-help to include examples

25dec23  create test cases for examples

26dec23  add examples to ESP-help

26dec23  add shift-click option in ESP TreeWindow to change Viz, Grd,
             Trn, or Ori since last change

27dec23  modify example files so that they work on Firefox, Chrome,
             and Safari

30dec23  fix ESP bug that did not exit pyscript properly

30dec23  update version number in some tutorial files

30dec23  update testScript.txt

31dec23  update ESP-help, testScript, and ESP_QuickGuide

 1jan23  add ReleaseNotes.txt

*******  v1.24 release

11jan24  uprev to v1.25 (ESP.html, ESP-localhost.html, ESP-help.html,
             OpenCSM.h, ocsm.rc, ESP_QuickReference.tex)

11jan24  fix memory leak in RULE and BLEND when reorder=1 or -1 for
             open xsects; add rule30* and blend30* test cases

13jan24  fix bug that did not reorder xsects in RULE and BLEND when
             xsect contains only one Edge

14jan24  allow DisplayFilter to select everything that does not match
             a pattern; update ESP-help near end of tutorial 1; add
             displayFilter2 test case

16jan24  add metaMaterial test case

17jan24  allow tilde (~) in strings

17jan24  in BLEND, allow 3 consecutive C1 xsects if .C1side is
             specified on the middle one(s); add more blend23* test
             cases

18jan24  update udfDroop so that cross-section does not have to be in
             unit-chord standard position

18jan24  update udfDroop so that it works with a blunt trailing edge;
             add droop9* test cases

21jan24  allow arbitrary paths for UDCs; add udprim4 and udprim5 test
             cases (udprim1 to udprim3 have jfdannen absolute
             addresses and are not tested by Jenkins)

25jan24  increase number of iterations to match point count on
             opposite Edges in a Face in udfCreateBEM

28jan24  improve accuracy and robustness in ocsmClearance; modify
             clearance* test cases to make Bodys transparent

28jan24  add ocsm.Clearance() to pyOCSM

29jan24  update WAFFLE documentation in ESP-help

29jan24  add SPLITTER option to udfGanged to scribe a common Body

30jan24  remove velocity cache at beginning of build to avoid possible
             memory leaks

 6feb24  fix propagation of Edge attributes for Edges that are LINEs;
             add persist3* test cases

 7feb24  improve ocsmClearance

12feb24  improve formatting in ocsmPrinEgo when printing BEZIERs or
             BSPLINEs

13feb24  fix memory leak in ocsmClearance

13feb24  fix sensitivity bug in BLEND when tangency is specified; add
             blend31* test cases

13feb24  add winglet* test cases

14feb24  include notations in ESP-help for the commands that cause
             finite difference sensitivities (CHAMFER, CONNECT,
             EVALUATE, FILLET, HOLLOW, IMPORT, LOFT, REVOLVE, SSLOPE,
             SWEEP, TORUS)

14feb24  fix bug that did not compute mass-properties-dots if a group
             of Nodes, Edges, or Faces were selected (independent of
             the Body type)

15feb24  fix bug in udfNuscale that occurs for periodic Faces; add
             nuscale5-8 test cases

15feb24  fix stanalizer error in ocsmPrintEgo

15feb24  modify fatal error messages in include line number

16feb24  add ability to DUMP .vtk ASCII files

16feb24  fix memory leak in nuscale8* test cases

17feb24  loosen tolerance in convertToBSplines to overcome sloppy
             Pcurves on DARWIN_ARM64

18feb24  improve efficiency of .vtk ASCII file writer

21feb24  add checkVtk.c

21feb24  remove blank lines in .vtk writer

21feb24  add vtk2stl.c

22feb24  add blend32* test cases

22feb24  add more OPAM1* test cases

23feb24  add _vspID attribute to Faces in udpVsp3

26feb24  update nuscale* verification data

 3mar24  add OCC 7.8.0 verification data

 6mar24  pass flags from parent MODL into MODL created by udpCsm

11mar24  fix bug when selecting with xmin=xmax, ymin=ymax, and
             zmin=zmax; update bentWaffle test case

22mar24  fix bug that causes output from pyscript to be lost if the
             pyscript uses os.chdir

25mar24  fix bug that can lose attributes when SUBTRACTing two
             co-planar SheetBodys; add plateHoles* test cases

28mar24  update _edgeID documentation in OpenCSM.h and ESP-help

 2apr24  change SUBTRACTion of two co-planar SheetBodys so that the
             tool always pokes a hole in the source (instead of
             scribing the source as was previously done if the source
             and tool intersect); update scribe11* and subtract7* test
             cases

 2apr24  if any boolean fails, leave the stack unchanged

 4apr24  add scribeAll argument to SUBTRACT to scribe Edges even when
             they are coincident with a Face; add scribe12* test cases

15apr24  add lred, lgreen, and lblue to ESP-help

15apr24  adjust for new EG_matchBody* definitions; add joinSphereBox
             test case

15apr24  fix recently-added bug associated with scribing SolidBodys

18apr24  add verification testing for ESP/examples; add testExamples
             target to Makefile.DARWIN64

18apr24  in udpSew, do not report degenerate Edges as non-manifold

18apr24  keep user attributes on Edges of xsect after EXTRUDE and
             REVOLVE operations

18apr24  keep user attributes on Edges after EXTRACT operation

18apr24  update _edgeID for non-manifold Edges created by making a
             hole; update edgeIDtest* test cases

20apr24  take advantage of new EG_getInfo signature

24apr24  turn off debugging flag for tessellation sensitivities

29apr24  allow filename completion (via *) whenever ESP asks for the
             name of a file to read

29apr24  if outLevel=0, do not print info about signals that are
             caught

29apr24  do not report a Node as spurious if its Edges have different
             __scribeID_s; add scribe13* test cases

30apr24  change OpenCSM to account for change to
             EG_generalBoolean(SPLITTER) associated with internal
             failures

30apr24  upgrade to OpenVSP-3.38.0

 2may24  fix windoze bug in completeFilename

 3may24  fix sensitivity bug associated with scribes

 3may24  simplify plateHoles5 to make plateHoles6

 5may24  remove empty line printout if no active signals

 6may24  fix memory leaks

 6may24  fix bug that caused an error if a journal file did not have
             the correct number of arguments for a newBrch command

 6may24  fix erroneous stanalyzer error

 8may24  remove Bombardier_DASH8-Q100 test case since it works
             differently with OpenVSP-3.38.0 on viggen than other OSs

 8may24  increase number of allowable Bodys as input to udfGanged

 8may24  if a UDP/UDF has a ATTRRECYCLE, set hasdots to 1 to cause
             udpSensitivity to be executed

10may25  make ESP-help consistent with OpenCSM.h

13may25  change OPAM1_wing.udc to use relative pathname

14may24  make viewer respect _viz, _trn, _ori, and _grd attributes

17may24  update OPAM1_wing

23may23  fix memory allocation bug in mesgCallbackFromOpenCSM

23may24  update timVspSetup such that it uses a relative name if the
             vsp3 and udc filenames are in the same directory

23may24  fix a few typos in ESP-help

23may24  fix array bounds error in udfEditAttr

23may24  modify udpVsp3 such that if update udpVsp3
             verification data

24may24  add sensitivities to udpVsp3; add OPAM1_body and
             OPAM1_wingbody test cases

28may24  fix typo in timPyscript

29may24  small updates to testing scripts, etc.

29may24  remove watermark from ESP_QuickReference

29may24  fix memory leak in udpVsp3

29may24  fix another array bounds error in udfEditAttr

*******  v1.25 release

 2jun24  uprev to v1.26 (ESP.html, ESP-localhost.html, ESP-help.html,
             OpenCSM.h, ocsm.rc, ESP_QuickReference.tex)

 2jun24  fix infinite loop bug in compressFilename

 3jun24  fix typos in ESP-help

 3jun24  allow straight camber line to be generated in udpNaca (if
             thickness=0, camber=0, and series=0); modify nacas3 test
             case

 3jun24  add missing semi-colon in
             training/data/session03/fuselage.csm

 5jun24  update ReleaseNotes.txt

 7jun24  add importColor test case

10jun24  fix bug associated with writing VTK files for non-manifold
             Bodys; add fourSheets test case

11jun24  allow illegal_func_name error be caught in CATBEG

11jun24  error during the evaluation of an argument in IFTHEN and
             ELSEIF should jump after ENDIF; add evalError1* test
             cases

11jun24  error during the evaluation of an argument in PATBEG and
             PATBREAK should jump after PATEND; add evalError2* test
             cases

11jun24  error during the evaluation of an argument in SKBEG should
             jump after SKEND; add evalError3* test cases

11jun24  fix bug that did not update the at-parameters if a UDPARG was
             present

12jun24  fix bug when recycling and last recycled Branch is a UDPARG

12jun24  fix bug that did not transfer user-attributes from SheetBody
             on top of stack to result of a JOIN operation; add
             joinSheets7 test case

12jun24  add _vspID and _vspSurf attributes to Bodys in udpVsp3

13jun24  improve error detection for $pmtrName in SET; add set2 test
             case

13jun24  add EVALUATE EDGETESS and EVALUATE FACETESS to return the
             number of points and triangles in the tessellation of an
             Edge or Face; add tessSize test case

13jun24  pressing Building button allows the user to reset the
             interface

14jun24  improve error detection for $pmtrName in PATBEG; add patbeg1
             test case

14jun24  improve error detection for $pmtrName in GETATTR; add
             getattr3 test case

15jun25  fix malloc error while cleaning up UDP storage at end of
             serveESP

17jun24  allow inline comments in udfEditAttr and udpWaffle; modify
             editAttrFile and waffleC1 test cases

17jun24  if UDPRIM statment contains primtype=$$$/name, the .udc is
             found in the ESP_UDC_PATH directory; add udprim6 test
             case

17jun24  convert udpWarp to udfWarp so that it takes a Body from the
             Stack if egadsfile is not specified;  add warp2* and warp3
             test cases

17jun24  modify udfWarp to allow motion in normal-, X-, or Y-, or
             Z-direction; add warp1* test cases

18jun24  change signature of unpublished convertToBSplines routine

18jun24  add mindeg argument to udfNuscale so that B-spline order can
             be increased

18jun24  modify udfWarp so that it can be applied to a SheetBody; add
             warp4* and warp5* test cases

18jun24  add seqnum* test cases

20jun24  if Body has _newSeqnum attribute, use a new sequence numbering
             scheme for _edgeID and _faceID that is not based upon cg
             positions or areas

27jun24  do not mark a Node as potentially spurious if it has a _Keep
             attribute

29jun24  mark Nodes on axis of revolution of a REVOLVE command with a
             _Keep attribute

30jun24  mark Nodes in JOIN or UNION that are in common with both
              parents with a _Keep attribute

30jun24  mark new Nodes due to a scribe (via SUBTRACT a NodeBody or
             SheetBody) with a _Keep attribute

30jun24  mark Nodes at beginning and end of RULE and BLEND with a
             _Keep attribute

30jun24  add REMOVE_SPURIOUS compile-time option to remove spurious
             Nodes; add spurious* test cases

 3jul24  fix bug that made sensitivities of scribes susceptable to
             roundoff errors

 3jul24  fix documentation associated with SUBTRACT command

 4jul24  fix bug in ocsmFindPmtr that did not consider the scope when
             looking for existing names

 5jul24  add putcolors=0 option to DUMP so that _color attributes are
             written into STP/IGS file (as Color); add color4*
             test cases

 5jul24  add getcolors=0 option to IMPORT so that Color attributes
             in STP/IGS files are converted to _color

 5jul24  add getcolors=0 option to udpImport so that Color attributes
             in STP/IGS files are converted to _color

 5jul24  update ESP to acknowledge that Nodes are not initially
             visible

 8jul24  add hollowTube test case

 8jul24  add udcPrefix test case

 9jul24  have DUMP putcolors=1 apply to Edges when writing STP/IGS file;
             have IMPORT getcolors=1 apply to Edges when reading STP/IGS
             file

16jul24  update importColors.csm

16jul24  fix sensitivities in udpVsp3 to account for cases where Edges
             and Node numbering changes between the base and perturbed
             Bodys

16jul24  report sensitivity range in serveESP console

16jul24  commit udprim6 test case

17jul24  fix seg fault that happened when a BLEND has fewer than 2
             xsects

19jul24  add ubar and vbar as returns from EVALUATE FACEINV and
             tbar as return from EVALUATE EDGEINV; add evaluateInv
             test case

19jul24  add EVALUATE EDGEBBOX and EVALAUTE FACEBBOX to return
             bounding box info; add evaluateBbox test case

19jul24  add EVALUATE DIST to return the clearances between two Bodys;
             add evaluateDist* test cases

20jul24  allow SELECT to return EDGES or FACES that touch a bounding
             box; add selectBbox* test cases

22jul24  fix memory leak in udpVsp3

22jul24  add waffleRebuild test case

22jul24  upgrade to OCC 7.8.1; modify importColor test case

24jul24  add OCC 7.8.1 verification data

25jul24  allow default Face and Edges colors to be set via ColorFace
             and ColorEdge attributes; add importColor2 test case

25jul24  documentation updates

25jul24  update udpParsec.cpp because of changes in EGADS

*******  v1.26 release

 3aug24  uprev to v1.27 (ESP.html, ESP-localhost.html, ESP-help.html,
             OpenCSM.h, ocsm.rc, ESP_QuickReference.tex)

31jul24  modify GHV_flaps for openEnd=0

 4aug24  fix bug that did not set body.ichld for RULE, BLEND, and LOFT
             with -loadEgads

 4aug24  add ocsmPrintBmtrx to print N2-like matrix for the Bodys

 4aug24  add ocsmJacobian

 5aug24  add example BLEND test cases to demonstrate .C1side
             attribute

 5aug24  use bounding boxes to improve speed of UNION toMark=1

 6aug24  fix bug in udpBspline when udegree is not 3; add bspline3
             test case

 6aug24  modify udpSew to return all Bodys if bodynum=-1

 6aug24  add removedups argument to udpSew to remove duplicate Faces
             before sewing; add sew3* test cases

 7aug24  improve formatting of OUTPMTRs reported in ESP

 9aug24  add ability of adjusting tessellation on a Body through the
             _tessFactor Body attribute

12aug24  improve accuracy of sensitivity of mass properties

13aug24  fix bug in timVspSetup that added an extra character in the
             .udc file if the user prescribed .vsp3 and .udc filenames
             that did not contain a slash

15aug24  add sew3c test case that will work with previous versions of
             udpSew

20aug24  add section 5.9 (filename rules) to OpenCSM.h and ESP-help

20aug24  fix bug that did not recognize first argument to SPECIAL
             command as an implicit string during ExportFeatureTree
             operation

20aug24  fix bug in udpBspline that did not correctly create a ONENODE
             Edge if the first and last control points were the same;
             add bspline4 test case

20aug24  add M (exponent of y-equation) in udpSupell. add udpSupell8 test
             case

22aug24  add rebuild argument to udpEqn2body

24aug24  fix undefined variable in udpSupell

24au24   remove verification data for OCC 7.8.0

25aug24  add -macrovarprefixexclude option when splinting udpBspline.c

25aug24  add -macrovarprefixexclude option when splinting udpSupell.c

28aug24  add _nedge attribute to Faces

28aug24  allow editAttr to match attributes with integer values

30aug24  fix bug that did not close a sketch properly if only a
             zero-length segment existed

31aug24  improve accuracy of EVALUATE DIST; add more evaluateDist*
             test cases

 4sep24  document callback function signatures in OpenCSM.h

 4sep24  move temporary routines for creating Quad meshes out of
             OpenCSM and into an uncommitted udfCreateQuads.c

 5sep24  remove ocsmGenerateQuads from ocsm.def

 6sep24  use relative instead of absolute tolerance to determine when
             Edge attributes should be transferred

 7sep24  modify copyEdgeAttributes to use matchEdge()

 7sep24  use new sampling method in BLEND for high multiplicity knots;
             add blend33 test case

 7sep24  modify JOIN to use new Edge matching method; loosen JOIN
             tolerance in tutorial1 and tutorial5 (and ESP-help)

 9sep24  modify JOIN applied to SolidBodys to classify two Faces as
             the same based only on their Edges (not the shape of the
             Face); add joinBodys* test cases

 9sep24  modify stickFuselage test case to include tolerance on JOIN
             commands

10sep24  allow negative tolerance in JOIN to skip boundingbox check
             for Faces when JOINing SolidBodys

11sep24  remove joinSphereBox test case since its result is ambiguous

12sep24  add info in output to make it easier to follow entry into and
             exit from UDCs

20sep24  add diagnostic information when JOIN fails

21sep24  significant speed-up in persisting _edgeID for cases with many
             Edges

23sep24  add .osen files to sensCSM to check sensitivity of OUTPMTRs;
             add designAB test case

 1oct24  fix bug in sensitivities in RULE and BLEND with reorder=1;
             add designAA* test cases

 2oct24  fix bug that did not keep Face attributes on the end Face
             when RULE or BLEND was called with reorder=1

 4oct24  improve tracing of attributes via PRINT_ATTRIBUTES flag in
             OpenCSM.c

15oct24  add -printAttrs command line option in serveESP

26oct24  fix flaps on GHV_flaps

27oct24  add reverse option to REORDER to allow a user to reverse the
             sense of Edges in a Loop;  add reorder5* test cases

29oct24  update sensitivity test cases associated with REORDER command

29oct24  for now, force finite differences for a REORDER command that
             has reverse=1; add designAA9 and designAA10 test cases

30oct24  add -printPmtrs command line option to serveESP to print all
             Parameters at the end of each command

31oct24  fix bug that could cause a seg fault if SELECT FACE is chosen
             on a Body with no Faces

31oct24  fix bug that incorrectly set ibody/iford for a WireBody that
             results from a SUBTRACT command; add subtract7 test case

 2nov24  fix bugs in evaluateDist* and selectE test cases

 4nov24  update verification data for blend10n test case to be
             consistent with latest egadsTopo update

 5nov24  fix bug that did not set correct sellist size when SELECT was
             executed on a Body without Faces or Edges

 5nov24  make HUGEQ much larger; adjust a few associated test cases

 6nov24  fix memory leak assiciated with REORDER command

 6nov24  add verification data for designAA* and designAB test cases

 9nov24  modify attribute test case because EGADS now automatically
            copies Body attributes

10nov24  reorganize designAB* test cases

11nov24  fix bug in analytic sensitivities when last segment in a
             closed sketch is a CIRARC (designAB4)

13nov24  fix bug in sensitivities in udpBiconvex

13nov24  add designAB5 test case

15nov24  add debugging info in udpWaffle

15nov24  modify tolerances in udpWaffle

16nov24  output message that value is undefined when it is HUGEQ

20nov24  change Makefile for deprecated ifort

22nov24  fix bug in udpParsec sensitivity when dots do not already
             exist; add designR2f test case

29nov24  fix bug that reversed the order of Bodys on the Stack when a
             Group was RESTOREd; add restore4* test cases

30nov24  use analytic sensitivities in udpBiconvex; modify associated
             verification data

30nov24  add designAC* test cases

 6dec24  use analytic sensitivities in udpNaca; modify associated
             verification data

 6dec24  use analytic sensitivities in udpSupell; modify associated
             verification data

 6dec24  modify sensCSM to issue INFO if significant decrease in
             sensitivity errors

10dec24  clean up udp storage when recycling fails

11dec24  make sure that Plugs runs at least one optimization iteration
             after the design parameters are perturbed

11dec24  disable -plugs option in serveCSM

13dec24  remove assertion testing during Plugs

15dec25  temporarily change test_pyOCSM to pass Jenkins

15dec24  fix finite difference sensitivty calculations for mass
             properties

15dec24  update NMakefile for ifort

15dec24  return test_pyOCSM to original version

16dec24  fix memory leaks in udpBiconvex and udpNaca

24dec24  create miniCSM.c to read .csm and .pmtr files and write
             annotated .stp and .dots files (as a surrogate for Creo)

25dec24  create udpRunCAD.c to get sensitivities from an external CAD
             system (via a .dots file)

26dec24  use _dots if they exist on a Face

26dec24  debug tess sensitivities whan a Body has __fromCAD__

28dec24  update udpRunCAD and miniESP

29dec24  add 1 second delay in udpImport to make sure that a DUMP
             has chance to close file before the IMPORT is executed

30dec24  fix valgrind error

31dec24  add designAD* test cases

31dec24  add miniESP.c and modify Makefile

31dec24  fix SLEEP macro in udpImport

31dec24  change getline to fgets in udpRunCAD

31dec24  fix splint warnigns in miniESP

31dec24  fix stanaliyzer error in miniESP

 1jan25  change copyright dates from 2024 to 2025

 2jan25  fix to Makefile.LINUX64

 2jan25  add help/example for runCAD

 2jan25  update Template2 in ESP/examples

 5jan25  fix filename parsing in miniESP

 5jan25  fix valgrind error in ocsmSetVelD

 6jan25  fix slashes for casename in udpRunCAD

11jan25  add debugging info for udpRunESP on windoze

11jan25  fix backslashes in udpRunESP for windoze

12jan25  cleanup from debugging output from udpRunCAD and miniESP

12jan25  pass outLevel from OpenCSM into miniESP

12jan25  automatically remove tessellation velocity cache if the
             tessellation is changed (outside OpenCSM)

16jan25  fix bug that accidentally cleared _dots that were put on a
             Body by a UDPRIM

17jan25  fix stanalizer bug in udpRunCAD

18jan24  fix bug that caused only partial regeneration when generating
             a perturbation in ocsmAdjoint

18jan25  fix issue in sensitivities in udpNaca that was caused by
             Edges that were originally generated from the same Curve
             to somehow now point to two identical, but distinct,
             Curves

19jan25  modify last commit to use EG_copyGeometry_dot instead of
             calling EG_approximate_dot twice in udpNaca

20jan25  add -printStors command-line argument to serveESP

20jan25  compute sensitivities for maxloc analytically in udpNaca

21jan25  for IFTHEN and ELSEIF statements, make default op1=ne and
             val2=0

21jan25  from ocsmBuild, return in builtTo either the last successful
             Branch executed or the negative of the Branch that threw
             an uncaught error

21jan25  add filename option to udpBspline

22jan25  fix compiler warning for ibrchSave

31jan25  document _newSeqnum user-defined Body attribute

31jan25  eliminate dxyz mismatch warnings

 4feb25  fix bug that reset at-parameters when recycling sketch
             branches other than SKEND

 4feb25  fix typo in udfStiffner

 5feb25  remove __scribeID__ attribute in udpImport

 5feb25  allow EVALUATE DIST to work with NodeBody, WireBody,
             SheetBody and/or SolidBody; add evaluateDist5*,
             evaluateDist6*, and evaluateDist7* test cases; adjust
             verification data on other evaluateDist* test cases;
             remove clearance test cases (redundant)

 6feb25  add udfSplitFace and splitFace* test cases

 7feb25  update release date in ESP-help

10feb25  update evaluateDist1 and evaluateDist2 verification data

12feb25  add note about setting VSP3_ROOT in ESP-help.html

13feb25  update data/vsp3/* verification data to account for Body
            renumbering for propellers in OpenVSP

13feb25  fix valgrind error in udfSplitFace

14feb25  remove debugging printf in udfSplitFace

23feb25  improve error reporting in ocsmLoad and ocsmCheck

25feb25  fix memory leak that left tessellation objects laying around
             after ocsmBuild was called multiple times

26feb25  update release date in ESP-help

28feb25  update ESP/ReleaseNotes.txt

 3mar25  remove extra printf in udpParsec.cpp

 3mar25  fix threading problem in ocsmAdjoint

 4mar25  fix bug in RESTORE name -1 when recycling and Bodys have
             _dots

*******  v1.27 release

11mar25  uprev to v1.28 (ESP.html, ESP-localhost.html, ESP-help.html,
             OpenCSM.h, ocsm.rc, ESP_QuickReference.tex)

11mar25  remove verification data for OCC 7.6.0

11mar25  remove TRADES and associated test cases

22mar25  fix indexing bug in sensitivities in udpSupell

24mar25  fix bug that cleared UDP cache when the .csm file was changed
             in the integrated editor

 1apr25  fix documentation to include .igs files as possible inputs to
             udpSew

 3apr25  extend PATBREAK so that expr defaults to 1

 7apr25  add intrusion and protrusion test cases

14apr25  refactor plotfile handling in serveESP

15apr25  add note that naca456 is not available if ESP is compiled
             without a fortran compiler

18apr25  change -printAttr command-line argument so that user can only
             print one attribute after each Branch

19apr25  add attributeB* test cases

21apr25  add new Edge Attribute persistence algorithm as fall-back if
             original algorithm cannot find a match

22apr25  add _oldPersist Body Attribute to tell not to use new Edge
             Attribute persistence algorithm; modify viewCantilever
             and viewSimplySupport test cases

23apr25  add new mapping method in udfMatchBodys; add
             matchBodys_udf_2 test case for ESP-help

24apr25  fix recently-added tolerancing problem in udfMatchBodys

24apr25  fix sensitivity bug when finite differences are required and
            there is an at-parameter needed for the build

25apr25  add tester1.so to Makefile.DARWIN_ARM64

25apr25  modify verification data for new tessellation scheme

26apr25  update Makefile.DARWIN_ARM64.gcc

26apr25  update documentation on the way Attributes on Bodys are
             persisted; add bodyAttribute* test cases

26apr25  add -noSummary command-line option to serveESP

27apr25  update Makefiles for automated testing

 1may25  update attribute test case to account for the new way that
             Body attributes are copied during boolean operations

 1may25  change sensCSM so that it only outputs a message that the
             error has decreased if the new error is above the
             ACCEPTABLE_ERROR limit; revert to old .tsen files for
             designK* test cases
 
 2may25  add new healer to udpVsp3 to handle configurations with
             sliver Faces

 2may25  extend PATBREAK to have same arguments as IFTHEN and ELSEIF;
             add patbreak test case

 4may25  modify UNION toMark so that up to toMark SolidBodys can be
             returned; add unionToMark* test cases

 5may25  fix memory leak in serveESP associated with -printAttr
             command-line option

 9may25  fix bug that cleared UDP storage when quitting timPyscript

 9may25  fix bug that did not pop plotter off TIM stack when udata was
             not allocated
 
 9may25  fix warnings when compiling with clang 17

11may25  fix bug in call in udfSlices to fprintf

12may25  updates for testing Makefiles

12may25  update ESP-help with latest changes in OpenCSM.h

12may25  add Help button in csm editor that opens ESP-help at correct
             command

12may25  jump to arbitrary step with s keystroke in StepThru mode

12may25  do not require FD sensitivities for EVALUATE EDGETESS and
             EVALUATE FACETESS

12may25  adjust plugs verification data

15may25  do not require FD sensitivities for EVALUATE NODE, EVALUATE
             EDGE, EVALUATE EDGERNG, and EVALUATE FACE; add designAE*
             test cases

16may25  fix sensitivity bug associated with INTERSECTing a WireBody
             and a SolidBody

18may25  add PRINT_EDATA macro in OpenCSM.c

20may25  fix bug in sizing of at-edata during ocsmCopy

21may25  do not require FD sensitivities for EVALUATE EDGEKT, EVALUATE
             EDGECP, EVALUATE FACEUKT, EVALUATE FACEVKT, and EVALUATE
             FACECP

22may25  document persistence of Edge attributes during JOIN and UNION
             operations; add persist4* test cases

23may25  add protections for scan-build false positives

23may25  fix scan-build issues in Slugs

23may25  check input files for bar character; modify files in the test
             suite that contained bar characters

26may25  improve documentation of scribeAll option to SUBTRACT; add
             subtract_13 case to ESP/examples
             
31may25  add ability to resize top-left window in ESP

31may25  add wingFiller test case

 1jun25  fix slight bug associated with resizing top-left window in
             ESP

 2jun25  add PRINT_NONMANIFOLD compile-time option in OpenCSM.c
 
 2jun25  modify udpSew so that it leaves input fragmants together to
             improve robustness (and forces a SolidBody if closed)

 3jun25  fix memory leak associated with EVALUATE EDGEKT, ...

 4jun25  change from single-quotes to double-quotes in udfDumpPmtrs

 7jun25  change Edge attribute persistance rules to favor new Edges
             that exactly match an Edge in the left or rite parent

 9jun25  adjust designX4 and persist4* test cases to account for new
             Edge attribute persistance rules

10jun25  add persist4g test case

10jun25  update viewCanilever and viewSimplySupport (and verification)
             in data/training/data/session10/version16/unittest

12jun25  remove crochet and writePnl from Makefiles

16jun25  fix memory leak associated with SUBTRACTion of a SheetBody
             from a SheetBody or SolidBody

18jun25  add sample contributed.html to ESP-help

20jun25  create udpTemplate to serve as a template for training

21jun25  create udpTrain1 and udfTrain2 to act as training examples
             for 2025 developer training

25jun25  create udfRemoveNodes to remove spurious Nodes and its test
             cases

27jun25  finish updateHelp process for contributed UDPs and UDFs

28jun25  update template_1.png

28jun25  add ESP/contributed folder

30jun25  fix memory leak in udfRemoveNodes

 3jul25  add files to ESP/contributed

 7jul25  update ESP-help for v1.28

 7jul25  holding shift while pressing PressToRebuild gives user
             option of unlocking the interface

 7jul25  update folders associated with contributed UDPs and UDFs
 
*******  v1.28 release

19jul25  uprev to v1.29 (ESP.html, ESP-localhost.html, ESP-help.html,
             OpenCSM.h, ocsm.rc, ESP_QuickReference.tex)

27jul25  PluginTraining updates

27jul25      clarify directions associated with dirn input in
                 session03

27jul25      use small vector of Nodes in calls to
                 EG_makeTopotlogy(EDGE) in session04 (train1.c)
         
31jul25  training_user_2025 updates

27jul25      tell users about ESP/examples and data/basic (in
                 session03)
             
27jul25      add examples of *dip* in training/session03

27jul25      fix error that erroneously says that a parameter name can
                 include a tilde (session03)

27jul25      add documentation for .lengthUnits attribute including in
                 the training for units in DUMP of stp files (session04)

31jul25      enclosure test cases (fitter.py) did not work in
                 training/session06

27jul25      add ATTRIBUTE _newSeqnum to training/session08

27jul25      add description in training/session09 about why setting
                 vel=1 gives a sensitivity

27jul25      improve EVALUATE and GETATTR discussions in session13

31jul25      improve description of training/session10, slide 31
         
31jul25      fix bug in training/session11/runAflrInv.py caused by a
                 change in the AFLR4 AIM

31jul25      add description of caps attributes needed in
                 training/session12

28jul25      add description of caps attributes needed in
                 training/session14

28jul25  add navigation bar at top of ESP-help

28jul25  reorganize command, UDP/UDF, and UDC tables in ESP-help

 2aug25  fix bug that does not check if a string argument has changed
             when recycling; add recycleString test case

 2aug25  add faceID* test cases that demonstrate faceID for UNIONs
             where Face could have come from either parent

 2aug25  return good error message if DUMP command cannot write the
             file

 2aug25  add documentation for .lengthUnits attribute for units in
             DUMP of stp files

 2aug25  fix removeNodes bug when input Body is a SheetBody with only
             one Face; add removeNodes5* test cases

 2aug25  fix bug that does not let edits of pyscripts with bar
             characters to be editted with integrated editor

 6aug25  add OCSM_MISMATCHED_TOPOLOGIES error when a finite difference
             perturbation yields a topology change

 9aug25  interpolate Edge tessellation sensitivities based upon
             fractional arclength instead of fractional t, which is
             needed for very non-uniformly-spaced geometries

10aug25  refactor printing and plotting in createTessVels

12aug25  linearly interpolate only trim changes into interior for
             tessellation sensitivities on Faces

14aug25  switch to linear diffusion for tessellation sensitivities on
             Faces

14aug25  remove obsolete interpolation schemes in tessellation
             sensitivities on Faces

14aug25  fix ESP bug that did not work properly when changing several
             viz, grd, ori, or trn at the same time
         
14aug25  fix tessellation sensitivity bug associated with very
             non-uniformly-spaced xsects in BLEND that are then used
             in a UNION operation; add designAF* test cases
         
15aug25  remove error message when solveSketchOrig fails

15aug25  update .tsen for designAD* test cases on 7.8.1

15aug25  update designK*.tsen to match Intel results (which are looser
             than ARM results)

15aug15  update designK*.tsen for 7.7.0

19aug25  in udfEditAttr, if verbose is negative, only errors are
             reported
         
20aug25  improve speed of editAttr; add editAttrBig* test cases

21aug25  fix bug that computed incorrect at-parameter velocities when
             a Face, Edge, or Node was SELECTed; add designAG1 test
             case

21aug25  fix bug in sensCSM that did not compare analytic and finite
             difference sensitivities of OUTPMTRs; remove .osen files

22aug25  fix memory leak in udfEditAttr

23aug25  fix bug in udfDumpPmtrs that wrote improper JSON strings for
             column vectors; add dumpPmtrs2 test case

23aug25  fix bug that did not leave Body on stack after UNION toMark
             is recycled more than once

25aug25  modify DIMENSION statement so that ncol defaults to 1; add
             dimension3 test case

28aug25  partial implementation of PREFIX command; add prefix* test
             cases

29aug25  fix memcheck error in PREFIX

29aug25  complete PREFIX command by updating ESP and ESP-help; add
             prefix() function to return current prefix

 6sep25  update prefix() function so that it does not require an
             argument

13sep25  initial implementation of new offset method; add/modify
             offset* test cases

18sep25  add filename() function to return top .csm or .cdc filename

18sep25  modify slice(str,ibeg,iend) so that iend counts from the
             end of str if iend is negative

22sep25  modify udfOffset to attribute the Faces between the edgelist
             and the offset Edges

25sep25  fix stanalyzer bug in udfOffset

27sep25  fix typo in serveESP.make associated with python

28sep25  expand capability of despmtrs file; add testpmtr[456] test
             cases; add section 5.15 to ESP-help

29sep25  allow expressions in DIMENSION statements in
             ocsmUpdateDespmtrs

29sep25  loosen verification tolerance for offsetOd2 test case

29sep25  add debugging printouts in udfOffset

30sep25  more debugging prints in udfOffset

30sep25  improve robustness of contour extractor in udfOffset

 1oct25  more improvements to udfOffset and its test cases

 3oct25  add strlen() and token() functions; modify expressions test
             case

 4oct25  show string valued LocalVariables in treeWindow

 6oct25  fix documentation associated with CHAMFER command

10oct25  initial implementation of udfPatch and its test cases

12oct25  modify way Edges are listed for Faces in ocsmPrintBrep

13oct25  if __trace__ attribute already exists on an Edge and
             it starts at a lower Body number, do not overwrite

14oct25  initial implementation of udfCrochet and its test cases

14oct25  initial implementation of udfFlend3 and its test cases

14oct25  remove debug prints from udfCrochet

&&&&&&&&&&&&&&&&

         fix flend11u2 and flend11v2 test cases
         
         fix/document bug when starting in Safari (Macos/86) and it
             automatically starts in collab mode (with nothing
             returned when ListUsers is pressed)

         provide Help for ErepEd

         provide Help for Plugs

         add mechanism for adding default values for ATTRSTRING
             arguments

         determine why pyscript gives *ValueError: signal only works
             in main thread of the main interpreter* (caps.py:1130) on
             some windows 11 machines

         analytic sensitivities for REVOLVE

         improve speed of udfShadow and add sensitivities

         be able to redirect output to a file in ocsmBuild

         improve HOLLOW

         add ability to propagate Node attributes to Edges and Edge
             attribute to Faces during RULE and BLEND

         fix bug where catching an error is sketcher does not clear
             the signal

         fix bug associated with in-parameter of UDC having the same
             name as an OUTPMTR (only in pyCAPS)

         improve robustness of sketch solver; add more test cases

         investigate use of OpenVSP python package

         use docker for ESP distributions
         
-------------------

M        add INTERSECT option to udfGanged
         
M        modify JOIN to try to join SheetBodys before resorting to
             joining Faces

M        allow a user to overlay a plotfile via pyOCSM

M        created numbered autosaves in integrated editor; autosaves
             are removed when serveESP starts

M        add REVERT button in integrated editor to choose a numbered
             autosave

M        add optional resize=0 argument to SET to make left-hand size
             same as right-hand size

M        if OUTPMTR has more than one argument, treat it the same as
             SET

M        add setname argument in udpVsp3 to only select OpenVSP
             components in the given set

M        stop recycling when the ATTRIBUTEs on a Branch differ

M        allow recycling to continue when a signal is caught; add
             recycleSignal test case

M        make sure recycled Bodys get updated attributes

M        add ability to stop during a long build

M        add SKIN statement (or bundle skinning within BLEND)

M        be able to show contours of the X-, Y-, or Z-component of
             sensitivities

M        implement flend2
         * reasonable distribution of spine points
         * left and rite points given distance from spine
           left and rite points projected to adjacent Faces
           left and rite points beyond the adjacent Faces
           left and rite points at Nodes not at average normal when
              adjacent Edges share a Face
           left and rite points not on Edge shared by adjacent Faces
           Brep scribed by left and rite points
           flend Faces created

M        add ability to prescribe end slopes in udpFitcurve

M        modify DisplayFilter to allow user to show everything except
             with the given attribute

M        optionally redirect stdout to a file

L        sketcher improvements
         . delete any segment
         . split a segment
         . specify sslope
         . add a fillet
         . non-maifold WireBodys
         . trim a curve ??
         . move a point on the screen
         . mirror constraint
         . shadow background
         . construction lines
         . translate sketch (scroll-bars?)
         . better help when solver fails
         . parallel constraint
         . holes in sketch (multiple loops)

L        ask user with ball if someone can join

L        return sensitivity of OUTPMTRs in ocsmJacobian

L        allow user to automatically choose an unused port

L        add udfCaliper; add caliper* test cases

L        add CONARC statement

L        allow pmtrname to be in form A[i,*] in DESPMTR and SET
             statements to specify row i (errors if sizeof(values)
             does not match A.ncol).  for DESPMTR i must be a
             constant, but for SET i can be an expression

L        allow pmtrname to be in form A[*,j] in DESPMTR and SET
             statements to specify column j (errors if sizeof(values)
             noes not match A.nrow).  for DESPMTR j must be a
             constant, but for SET j can be an expression

L        allow pmtrname to be in form A[*,*] in DESPMTR and SET
             statements to specify all of A (errors if sizeof(values)
             does not match A.size)

L        add udfSpurious to automatically remove spurious Nodes (with
             a user-selected dihedral to determine if Node is spurious)

L        in ErepEd, add option to automatically color Faces based
             solely on dihedral angle


L         in Plugs, allow user to fix U and/or V at selected cloud
             point(s)

L        in Plugs, allow user to select a subset of DESPMTRs

L        in Plugs, allow user to select a subset of the cloud points

L        allow user to specify a .vsp3 file as input to serveESP
             (automatically run timVspSetup)

L        allow Windoze users to use WSL (Jason Byun 8/20/24)

L        add AutoFit option in ESP

L        add sash in ESP to resize windows

L        add a shortcut for "Press To Re-build"

L        add -view viewfile command line option to serveESP

L        respect edgeList in udfOffset for WireBodys and SheetBodys

L        add subsurfaces to udpVsp3

L        add ztail option to udpNaca456

L        incorporate Slugs ino ESP

L        when  DESPMTR is changed, the other user does not see that a
             change was made

L        pattern index available outside waffle

L        make sure DesignParameters, LocalVariables, and Branches are
             consistent with the MODL being displayed (especially when
             in a pyscript)

L        analytic sensitivities for udpKulfan

L        implement Caps->RestartPhase

L        implement sensitivities in udpEqn2body

L        add sensitivities to udpTblade

L        implement Caps->ListAttachments, Caps->AttachFile, and
             Caps->OpenAttachment for .png .pdf and .txt files

L        parse the waffle files to get variable dependency

L        be able to generate curved spars/rib in waffle

L        add thickness attribute in waffle to create thick-walled
             waffle

L        compute sensitivities for udpRadwaf analytically

L        add ability to edit included .csm files (from udpCsm)

L        try to add lightening holes to all rib Faces in a waffe test
             case

L        extend BLEND so that repeated sketch at beg/end sets slope to
             be normal-to-Face
