# 2.01.00 (30610) Apr 20, 2009 4/20/09 Batch deploy as part of IOM milestone with revision 30609 # 2.00.02 (29629) Mar 22, 2009 3/22/09 Batch deploy for Alpha Simulation Tests 2, svn 29628 3/12/09 #1453, remove unused strings from English localization file # 2.00.01 (28792) Feb 19, 2009 Batch deploy for alpha Simulation Tests, svn 28773 # 2.00.00 (27161) 01-12-2009 # 1.00.12 (26751) 12/18/08 - #998, autoscale y-axis of the "Glacier Length vs Time" graph, set min autoscale range to 0-3km 12/18/08 - #999, attempt to smooth out bump in glacier length vs time curve, still problematic between elax_x2 and elax_x1 > fix for glacier that retreat too quickly near the headwall 12/18/08 - #1051, add model fix for glacier retreating too fast near headwall (q_retreat_limit) 12/18/08 - modify variables in model.txt to match Java code (elax -> qelax, dqela -> delta_qela) 12/18/08 - new model.txt to address #1051 and #999 # 1.00.11 (26511) > fix for zero-length glacier that advances too slowly near the headwall 12/2/08 - #727, set q_advance_limit to constant -2, remove q_advance_limit from debug dialog # 1.00.10 (26488) 12/2/08 - #727, add deltaLength to debug display 11/19/08 - #836, complete and revised model.txt received from Archie # 1.00.09 (26322) 11/19/08 - remove viewport demo from developer menu 11/18/08 - #727, add dev dialog that shows values of internal variables in the glacier evolution model 11/17/08 - #851, flags can't be dragged from valley floor to ice surface while glacier is moving # 1.00.08 (25973) > fix for flags and debris on glacier surface that stop advancing when glacier is retreating 10/16/08 - [726] flags and debris on glacier surface stop advancing when glacier is retreating 10/15/08 - [849] workaround for sliver of blue sky that appears above snowfall ceiling (search for "Unfuddle 849" comment) 10/15/08 - organize imports 10/15/08 - compute MountainsAndValleyNode.F_70000 in terms of F_0, so that image alignment can be shifted by changing only F_0 10/15/08 - fix alignment of new SVG mountains image, Archie gave me a slightly smaller image 10/15/08 - [738] crop SVG mountains image to prevent OutOfMemoryException 10/15/08 - disable Help feature until [725] is addressed 10/8/08 - use PhetApplicationConfig.launchSim 10/8/08 - add project name constant 10/8/08 - moved list of rejected features to Unfuddle 796 10/2/08 - move default left edge of zoomed view to -3400m, so that there is more space to right of default terminus # 1.00.07 (24829) 9/29/08 - get rid of scale calls in BoreholeDrillNode, resize image files > borehole drill can be dragged by the fire button 9/29/08 - [750] make borehole drill draggable by fire button 9/29/08 - set hgap and vgap to zero for control panel FlowLayouts > changed default snowfall to 0.93m (was 0.95m) 9/29/08 - [730] change default snowfall to 0.93m (was 0.95m) so that entire default glacier fits in zoomed viewport at new x-axis scale 9/29/08 - [730] change x-axis scale from 0.062 to 0.1 so that 80km fills most of the birds-eye view > glacial budget meter is easier to use 9/29/08 - [733] glacial budget meter snap to valley floor and show values for x<0 ,like it does for x>=0 9/29/08 - [733] make glacial budget meter snap to glacier surface (or valley surface) when released, ala tracer flags > replaced "Show glacier picture" check box with "Show glacier picture" button 9/29/08 - [732] change glacier picture button to use text "Show glacier picture" 9/20/08 - reposition sample help items so they don't overlap any controls 9/20/08 - increase glacial budget meter snap threshold to 1.5x what it is now (150 meters) 9/20/08 - bugfix: Save should save zoomed viewport position 9/20/08 - bugfix: Reset All does not reset viewport position 9/20/08 - add tools to birds-eye view 9/16/08 - add help item for toolbox node in zoomed viewport 9/16/08 - fix common Help so that help ballons can be attached to nodes on any PLayer # 1.00.06 (24518) 9/16/08 - add bubbles to sample help items to demonstrate improved legibility # 1.00.05 (24516) 9/16/08 - add a couple of sample help items, with no help bubble as requested by Wendy 9/16/08 - set a fixed range for x-axis in "glacial budget vs elevation" chart 9/16/08 - fix: resizing window so that zoomed viewport size is zero fails assertion in GlaciersPlayArea.updateZoomedViewportBounds (assertion unnecessary) 9/16/08 - fix: resizing window very narrow fails assertion in DistanceAxisNode.setRange 9/16/08 - add ability to set minHeight of control panel via strings file, so that control panels in all modules will be same height 9/16/08 - fix layout problems with main control panel (bogus calls to BorderLayout) 9/16/08 - change "equilibrium" to "steady state" in MiscControlPanel so that terminology is consistent # 1.00.04 (24458) 9/15/08 - put default units on top in thermometer 9/15/08 - refactor ClimateControlPanel for English/metric feature 9/15/08 - switch climate controls between English & metric units # 1.00.03 (24300) 9/9/08 - completed: switch tools between English & metric units 9/9/08 - add support for changing units on tools that user has already dragged out of the toolbox 9/9/08 - add immutable support for units to tools (glacial budget meter, ice thickness tool, gps) 9/9/08 - bugfix: glacial budget meter should use meter/yr for all values 9/9/08 - convert existing data in time-based charts when switching units 9/9/08 - switch charts between English & metric units, any existing charts are closed and time-based data is lost 9/9/08 - change string keys for chart axes to accommodate switching between English and metric > added ability to switch between English and metric units 9/9/08 - completed: switch coordinates view between English & metric units 9/9/08 - add CoordinatesNode, parent node for distance and elevation axes 9/9/08 - rewrite ElevationAxisNode to handle English/metric switching 9/9/08 - hook up English/metric radio buttons to coordinate axes 9/9/08 - rewrite DistanceAxisNode to handle English/metric switching 9/9/08 - bugfix: fix loop start point in Valley elevation interpolation 9/9/08 - quick-&-dirty handling of meters-to-feet in DistanceAxisNode, tick spacing is not adjusted 9/9/08 - move all units conversions to UnitsConverter 9/9/08 - add englishUnits arg to constructors for coordinates feature 9/9/08 - simplify i18n for units, to accommodate switching between English and metric # 1.00.02 (24258) 9/8/08 - bugfix: snowfall gradient doesn't draw properly and crashes on Mac OS 10.4 (see Unfuddle #553) 9/8/08 - update snowfall shape based on bounds of both birds-eye and zoomed viewports, so that sky doesn't above snow in zoomed view on large monitors 9/8/08 - simplify shape of snowfall, don't use constructive area geometry > added File>Save and File>Load menu items 9/4/08 - implement Save/Load feature 9/4/08 - replace "glacier picture" check box with a button (icon on button, to left of steady state button) > added "Equilibrium Line Altitude vs Time" graph 9/4/08 - strip chart implementation for "ELA versus time" graph > show both ablation and negative ablabtion on "Glacial Budget vs Elevation" chart 9/4/08 - show both ablation (solid green) & negative ablation (dashed green) on "glacial budget vs elevation" chart 9/4/08 - revert change to names of time-based graphs made on 8/28/08 8/28/08 - rename time-based graph classes and labels, should be "time vs ...", not "... vs time" > added "Glaciers Length vs Time" graph 8/28/08 - make "glacier length vs time" graph a strip chart that keeps 1000 years worth of data 8/28/08 - draw valley floor for x<0 using Java 2D, to clean up snow/valley interface # 1.00.01 (23914) 8/26/08 - tweak MountainsAndValleyNode alignment to match new background image 8/26/08 - fix: valley is narrower near headwall in background image (new image file, still not exact, but close enough) 8/21/08 - fix "glacier budget vs elevation" chart so that SHOW_NEGATIVE_ABLATION flag works properly # 1.00.00 (23465) 7/23/08 - update screenshot 7/23/08 - add sim description (aka, abstract) # 0.00.39 (23459) 7/23/08 - fix: resetting the clock speed doesn't reset the clock speed slider 7/23/08 - fix: path for ice surface below ELA is missing the point at the terminus when the terminus is close to the ELA 7/23/08 - rename "ice surface ripple" to "ice ripple" throughout (I kept searching for the wrong class names) 7/23/08 - adjust z offset of ripples so that they are more evenly distributed across ice surface 7/23/08 - load Tonisa_Glacier.jpg statically in GlaciersImages 7/23/08 - rename glacierPicture.jpg to Tonisa_Glacier.jpg, to match asset filename 7/23/08 - convert real glacier picture from PNG to JPG (653KB versus 57KB, original asset was JPG) 7/23/08 - remove alignment points from background image, turn off alignment nodes in sim 7/23/08 - delete penguin image files, remove license file entry 7/23/08 - move background image alignment points to GlaciersConstants, generalize marker node creation 7/23/08 - move debug flags from GlaciersPlayArea to GlaciersConstants 7/23/08 - make ripples slightly darker above ELA so that they're easier to see when snowfall is visible 7/23/08 - increase default clock speed to 4fps # 0.00.38 (23437) 7/23/08 - add yaw to fake 3D perspective for ice, debris, ELA, ripples (see YAW_ROTATION, YAW_X_OFFSET) 7/23/08 - rename PERSPECTIVE_HEIGHT to PITCH_Y_OFFSET 7/23/08 - move PERSPECTIVE_HEIGHT constant from Valley to GlaciersConstants # 0.00.37 (23428) 7/23/08 - turn off "snap tools to headwall", so that tools behave the same on both sides of the headwall 7/23/08 - add a flag to turn "snap tools to headwall" on and off 7/23/08 - brute force workaround for valley elevation at x<0, linear interpolation between manually-created sample points # 0.00.36 (23398) 7/22/08 - hide icons for "coordinates" and "ice flow" check boxes in Intro tab 7/22/08 - verify that all feature for July 25 milestone work properly when clock is paused 7/22/08 - update SnowfallNode only when its visible 7/22/08 - clip SnowfallNode to the atmosphere 7/22/08 - lower the elevation where white-out occurs at max snowfall 7/22/08 - simulate snowfall using a rectangle that covers the valley, filled with a gradient paint, vary alpha based on snowfall (not clipped to atmosphere) 7/22/08 - fix: Reset All feature was broken in version 0.00.32, button didn't do anything # 0.00.35 (23376) 7/22/08 - make drill, thickness tool, thermometer, and flag snap to x=0 when dropped at x<0 7/22/08 - make glacial budget meter show "?" for x<0 # 0.00.34 (23372) 7/22/08 - workaround: for all x<0, use Valley.getElevation(0) (until we have a model for x<0 that matches background images and works with tools) 7/21/08 - fix: right arrow should have same maxX constraint as pan control # 0.00.33 (23363) 7/21/08 - size of mountains.png exceeds JVM heap space, chop down the image as much as possible 7/21/08 - make default clock speed 2 years per sec (2 fps) 7/21/08 - don't draw x coordinate axis for x < 0 7/21/08 - temporarily remove snowfall node 7/21/08 - remove tools from bird-eye view, they are too small to be usable 7/21/08 - move x=0 further to the right in birds-eye viewport 7/21/08 - show more mountains in zoomed view, using GlaciersConstants.ALIGNMENT_FACTOR_FOR_GLACIER_IN_ZOOMED_VIEWPORT 7/21/08 - realign new background image 7/21/08 - divide birds-eye view camera y-scale by Y_AXIS_SCALE_IN_IMAGE so we can see all 80km of valley 7/21/08 - multiply mvt y scale by Y_AXIS_SCALE_IN_IMAGE to match background image 7/21/08 - add GlaciersConstants.Y_AXIS_SCALE_IN_IMAGE to specify amount of y axis distortion in background image 7/21/08 - get new background image from Archie, add more to left of headwall, improve colors, add 3D cues, stretch y-axis of valley floor, reduce height of mountains to show more peaks 7/21/08 - add snowfall node # 0.00.32 (23355) 7/21/08 - temporarily remove snowfall node 7/21/08 - create ripples at random times, with random sizes and z offsets 7/21/08 - set up model & view for ripples to support random ripple size and z offset 7/18/08 - change snowfall visibility with snowfall check box 7/18/08 - create a temporary node for snowfall 7/18/08 - turn off help for modules, since we don't have any yet 7/18/08 - organize imports 7/18/08 - keep track of dialog positions, always reopen dialog where it was previously 7/18/08 - close & reopen graph windows when switching modules 7/18/08 - implement HelpButton, delete listener interface from MiscControlPanel 7/18/08 - pass dialog owner Frame to control panels 7/18/08 - use ResetAllButton in misc control panel 7/18/08 - move more constants to GlaciersConstants 7/18/08 - start distribution functionality between Intro and Advanced panels 7/18/08 - delete defaults classes, move constants to GlaciersConstants 7/18/08 - use a common model for all modules 7/18/08 - merge controller code into control panels to simplify and eliminate duplicate code, delete controller classes 7/18/08 - delete Experiments module classes, they were empty and in the way 7/18/08 - hide Experiments module, Save/Load, time-based graphs, English/metric radio buttons, for 7/25 deadline (search for "XXX hide") 7/18/08 - rename PlayArea to GlaciersPlayArea 7/17/08 - rename module.basic package to module.intro 7/17/08 - fix: very short advancing glacier starts off advancing very slowly, then speeds up (fixed by previous 2 changes) 7/17/08 - change timescale so that there is no difference between retreating and advancing (use retreating model for both) 7/17/08 - change timescale max to 200 7/17/08 - fix incorrect assert in setSteadyState # 0.00.31 (23129) 7/12/08 - replace penguin with bear 7/9/08 - rename "penguin" to "pan control" throughout, in anticipation of changing the penguin to something else 7/9/08 - change "Sea-level temperature" to "Sea-level air temperature" 7/9/08 - change x-axis and title to "air temperature" on "Temperature vs Elevation" chart 6/18/08 - make BoreholeDrillIconNode's drag offset independent of mvt scale 6/18/08 - if climate is changed while clock is paused, change equilibrium line and intersection with glacier surface 6/18/08 - bugfix: algorithm for ELA ice surface intersection was incorrect for intersections close to terminus 6/18/08 - change loop in Glacier.updateIceThickness, iterate until thickness==0 6/18/08 - remove Restart clock button, semantics don't make sense for this sim 6/18/08 - verify that "glacial budget vs elevation" graph looks OK with new climate model # 0.00.30 (22142) 6/9/08 - fix debris that was getting stuck on below the valley floor 6/9/08 - more changes to climate and glacier model from Archie 6/9/08 - fix infinite loop in IceNode that occurred when glacier length was less than DX # 0.00.29 (22088) 6/6/08 - ensure that ice thickness algorithm is only used between headwall and terminus, otherwise it hangs the sim 6/6/08 - compute a closer approximation of where the ELA intersects the ice surface 6/6/08 - compute ice thickness on demand instead of trying to interpolate between pre-computed samples 6/6/08 - when climate changes, compute several constants used in ice thickness model, reuse them elsewhere 6/6/08 - compute terminus location more accurately 6/6/08 - improve precision of ice visualization, drawing of the terminus and ELA contour where slightly off # 0.00.28 (22031) 6/5/08 - hide ELAValueNode 6/5/08 - change layout of View control panel to reduce its height, making more room for zoomed view 6/5/08 - bugfix: flags above the terminus can get created directly on the valley floor and then don't move 6/5/08 - bugfix: debris gets created directly on valley floor and never moves 6/5/08 - generate debris in entire cross-section, not just above ELA 6/5/08 - bugfix: disable dragging of borehole drill while its "fire" button is pressed 6/5/08 - hide trash can, put tools away by dragging them back to tool box 6/5/08 - create TrashCanDelegate, handles specifics of trashing tools independent of the node that represents the trash 6/5/08 - rename "Basic" tab to "Intro" 6/4/08 - bugfix: if ELA gets above headwall, Glacier q_advance_limit causes quasi-ELA to evolve in wrong direction forever # 0.00.27 (21967) 6/3/08 - add empty modules for Advanced and Climate Experiments, so we see the tabs 6/3/08 - revised ice thickness model to match model.txt 6/3/08 - rewrite Glacier timescale code to look more like model.txt 6/3/08 - change snowfall default value 6/3/08 - remove sqrt(snowfall) in Climate accumulation model (error in python code) 6/3/08 - add missing sqrt(snowfall) to Climate accumulation model (error in model.txt) 6/3/08 - change Climate.MELT_Z1 to 5200 (error in model.txt) 6/3/08 - document climate model constants by reading Python code 6/2/08 - implement new timescale model 6/2/08 - add Valley.getMaxElevation convenience method 6/2/08 - remove obsolete methods from anonymous ClimateChangeListeners 6/2/08 - fix ablation model, new specification was wrong, need to always add offset # 0.00.26 (21920) 6/2/08 - implement new climate model 6/2/08 - delete "snowfall reference elevation" property and control for climate 5/30/08 - add snowfall check box & icon to View control panel (not hooked up) 5/28/08 - move LiquidExpansionThermometerNode to piccolo-phet 5/28/08 - delete thermometer image and asset 5/28/08 - thermometer node: add scale marks, add inner wall of tube, move origin to upper left 5/28/08 - started working on thermometer node with dynamic mercury 5/28/08 - add units control to View control panel, does nothing 5/27/08 - trash tools if mouse cursor intersects the trash can icon 5/27/08 - move "perspective height" to Valley model 5/27/08 - calculate offset of background image based on location of markers in image file 5/27/08 - calculate scale of background image based on location of markers in image file 5/27/08 - add EndMoraine to model, prunes debris to prevent infinite accumulation in steady state 5/27/08 - extend debris listener interface to include notification of when debris hits the valley floor 5/27/08 - modify debris motion model so that x value is constrained to the glacier's terminus # 0.00.25 (21723) 5/23/08 - only constrain debris x value to terminus if previous x value was < terminus 5/23/08 - don't bother to attempt generation of debris or ripples for zero-length glacier 5/23/08 - improve "look" of ripples, patterned after ripples in design doc 5/23/08 - add ripples to ice surface 5/23/08 - keep glacial budget meter on surface as glacier evolves 5/23/08 - make glacial budget meter display "?" when it's not on the surface 5/23/08 - make it easy to drag glacial budget meter along surface of glacier, 200m "band" where it stays snapped to surface 5/23/08 - add a flag to hide "elevation" in glacial budget meter tool 5/23/08 - change text in GlacierPictureDialog 5/23/08 - fix layout of GlacierPictureDialog 5/22/08 - new image file and text for "glacier picture" feature # 0.00.24 (21673) 5/21/08 - prepare TracerFlag and Debris for handling large dt, constrain maximum x to the terminus 5/21/08 - implement clockTicked instead of simulationTimeChanged in all model code that cares about clock ticks 5/21/08 - bugfix: debris is not generated after Reset All 5/21/08 - make glacial budget meter snap to surface of glacier/valley, display "?" while dragging 5/21/08 - cleanup 3D debug code in DebrisNode 5/21/08 - move origin indicator on thermometer to be vertically aligned with center of bulb 5/20/08 - new mountains.svg image from Archie, removes yaw from perspective 5/20/08 - implement GlacierPictureDialog 5/20/08 - add "glacier picture" checkbox to View control panel, add stub in controller 5/20/08 - make ELAValueNode look a little better 5/20/08 - fix title on Graphs control panel # 0.00.23 (21544) 5/19/08 - make borehole drill bigger 5/19/08 - add license info for borehole drill image to images/LICENSE.txt 5/19/08 - make flags fall over (at random orientation) when they reach the valley floor 5/19/08 - add a drag offset to tool framework, so that borehole drill will be dragged out of toolbox by its handle 5/19/08 - line up tip of borehole drill's bit with it origin 5/19/08 - factor debris generation out of AbstractModel and into DebrisGenerator 5/19/08 - add 3rd dimesion to debris view 5/19/08 - add 3rd dimension to debris model 5/19/08 - add Point3D to phetcommon 5/19/08 - deposit rocks at terminus to create moraine 5/19/08 - delete rocks on valley floor when covered by an advancing glacier 5/19/08 - first pass at adding debris, only appears in the cross-section 5/19/08 - make tracer flags on the valley floor ignore clock ticks # 0.00.22 (21499) 5/19/08 - simplify borehole, prune any point that breaches the glacier's surface 5/19/08 - organize imports 5/19/08 - use alpha channel to visually represent filling in of borehole 5/19/08 - start to fill in borehole after 40 years, 20 years to fill in completely 5/19/08 - add model debug output for add/remove model elements 5/19/08 - prune borehole points so that at most one point is on the glacier surface 5/17/08 - add direction arrows to value display in GPS receiver tool 5/17/08 - use same layout manager for displaying values in all tools, so they look similar 5/17/08 - get common font and border for all tools from base class 5/17/08 - cleanup and move ToolTipNode to piccolo-phet 5/17/08 - add horizontal space between trash can and other toolbox icons 5/17/08 - replace tool icon labels with tool tips 5/17/08 - make flags on valley floor delete themselves when hit by advancing glacier 5/17/08 - add ability for tools to delete themselves to the tool framework 5/17/08 - add final modifier to appropriate instance data in all classes 5/17/08 - keep borehole drill on glacier's surface as the glacier evolves 5/17/08 - make GPS Receiver a permanent tool, add image, add distance/elevation display 5/16/08 - finalize ToolTipNode, use strategy pattern for placement, cleanup, javadoc 5/16/08 - second pass at ToolTipNode 5/16/08 - first pass at ToolTipNode 5/15/08 - parts of IceThicknessToolNode moves separately when dragged # 0.00.21 (21438) 5/14/08 - javadoc borehole-related work 5/14/08 - delete borehole when it passes the terminus 5/14/08 - create a borehole when drill button is pressed 5/14/08 - model borehole as a set of moving points, connected via line segments 5/13/08 - set View equilibrium line check box to off by default 5/13/08 - update data/glaciers/images/LICENSE.txt 5/13/08 - use solid colors for ice surface and cross-section, delete texture files 5/13/08 - increase precision of glacial budget meter displayed values to 0.01 meter 5/13/08 - create ticket #558: image returned by PPath.toImage is clipped on right and bottom edges 5/13/08 - add createImage method to all tool nodes, used to create icons 5/13/08 - add a button to borehole drill 5/13/08 - create ImageButtonNode and add to piccolo-phet 5/13/08 - make thermometer display "?" when advancing glacier overlaps a thermometer, or when in illegal drop location 5/13/08 - create ticket #557: PSwing doesn't compute its bounds reliably when it's component is a JPanel 5/13/07 - add PSwing bounds workaround to all tools that that display a JPanel of values 5/13/07 - bugfix: ice thickness tool's value display (JPanel wrapped in a PSwing) doesn't size itself reliably 5/13/07 - replace ice thickness tool image in toolbox, delete related image files 5/13/08 - bugfix: tools dropped in the trash incorrectly "snap" to their drop constraints before disappearing 5/13/08 - change ice thickness tool to "?" when drag starts, not during the drag 5/13/08 - do not call super.drag in drag handlers, it causes problems as noted in code comments 5/12/08 - first pass at resizable ice thickness tool, a little clunky looking 5/12/08 - delete unused images and assets # 0.00.20 (21338) 5/12/08 - move "max x" property out of glacier and into view; model has no such limit on x 5/12/08 - move headwall property to valley model 5/12/08 - change valley formula to better match the elevation left of the headwall in the image 5/9/08 - organize imports 5/9/08 - make ice thickness tool display "?" while it's being dragged # 0.00.19 (21308) 5/9/08 - add drop constraints for all other tools # 0.00.18 (21304) 5/9/08 - add drop constraints to tracer flag model, snap to legal position 5/8/08 - call cleanup on all tools and tool nodes when they are trashed 5/8/08 - reduce number of calls to Glacier.getSurfaceElevation in IceNode 5/8/08 - use same method of computation and precision for all geometry in IceNode 5/8/08 - remove ice thickness grid from public interface of Glacier model 5/8/08 - switch to double precision for computing geometry of surface below ELA 5/8/08 - make tools shrink to the center of the trash can # 0.00.17 (21262) 5/6/08 - first pass at making tools that are dropped in trash disappear by shrinking them 5/6/08 - write test program demonstrating use of PActivity to shrink tools that are dropped in trash 5/6/08 - change size of ice perspective to more closely match valley width in image 5/6/08 - add geometry for ice surface below ELA 5/6/08 - fix geometry for ice surface, it was looping through ice thickness samples in wrong upvalley order 5/1/08 - create preliminary image for "illegal drop location" cursor 5/1/08 - add textures and nodes for ice surface above and below ELA (no geometry added yet) 5/1/08 - add textures for ice cross-section and surface 5/1/08 - delete dirt texture, no longer used and unknown licensing 5/1/08 - add icons for View check boxes (equilibrium line, ice flow, coordinates) 5/1/08 - fix semantics of AbstractTool.isDragging, it was reversed 5/1/08 - ensure that flags drop to valley floor when glaciers recedes # 0.00.16 (21125) 4/30/08 - constrain flag to surface of glacier, so that it doesn't stop on the surface due to velocity direction that follows valley 4/30/08 - make tools know when they are being dragged 4/30/08 - add motion model for tracer flags 4/30/08 - explicitly set font styles & sizes for control panels 4/28/08 - add PhetLookAndFeel to main # 0.00.15 (20952) 4/24/08 - organized imports 4/24/08 - move tools and toolbox nodes to a new package 4/24/08 - first pass at dragging tools to the trash (doesn't work on initial drag that creates the tool) 4/24/08 - move origin indicator on thermometer to be vertically aligned with bottom of bulb 4/22/08 - swap colors for ice surface and cross-section 4/22/08 - draw equilibrium line across valley floor when terminus is above ela # 0.00.14 (20849) 4/22/08 - first pass at extruding the ice 4/22/08 - define 2D perspective height in MountainsAndValleyNode, height between foreground and background of valley boundaries 4/22/08 - make equilibrium line dynamically follow the contour of the glacier as it evolves 4/22/08 - add Valley.getX() to find x given an elevation 4/21/08 - draw equilibrium line in response to glacier ice thickness changes, so we can evolve contour line at leading edge of glacier 4/21/08 - when ELA > F(0), draw line from left-edge of birds-eye view to x=0 4/21/08 - use same colors in Glacial Budget chart and glacial budget meter 4/21/08 - add elevation display to glacial budget meter 4/21/08 - add ButtonEventHandler to piccolo-phet 4/21/08 - add left and right arrows to zoom view, as a secondary viewport control # 0.00.13 (20775) 4/16/08 - reuse some objects in model & view of ice velocity to improve performance 4/15/08 - delete ValleyNode, move path creation utility to model 4/15/08 - reduce stroke width of coordinate axes 4/15/08 - limit ELA to 8000 meters (above top of birds-eye view), so that we don't have a long wait to see glacier start growing 4/15/08 - scale and translate new mountains image that contains multiple marker points 4/15/08 - add more debugging marker points, for alignment with markers in mountains image file 4/15/08 - fix model to prevent negative ice thickness values caused by new H_max model 4/14/08 - add debug code for model problem that results in negative ice thickness 4/14/08 - fix computation of ice thickness samples when glacier length == 0 4/14/08 - add ELA value display for debugging range of Climate parameters 4/14/08 - increase precision of temperature text field 4/14/08 - remove obsolete Climate.setMaxSnowfall, make getMaxSnowfall private 4/14/08 - rename EquilibriumLineAltitude to ELA throughout Climate model 4/14/08 - fix for negative values in Glaciers.getMaxThickness 4/14/08 - fix resetAll in Basic module 4/14/08 - fix control panel setters, no op if value is not different 4/14/08 - reorganize the ice thickness model, improve efficiency and readability 4/14/08 - show ice velocity vectors in zoomed view only, they clutter the birds-eye view 4/11/08 - fix Climate.getAblation, always add offset so that ablation is never zero 4/11/08 - add flag for showing negative ablation in Glacial Budget chart 4/11/08 - change colors in Glacial Budget chart to match Archie's plots 4/11/08 - increase precision of snowfall textfield 4/11/08 - implement fix for negative glacier length in ice thickness model 4/9/08 - rename Glaciers.getX0 to Glaciers.getMinX, add Glaciers.getMaxX 4/9/08 - move 0-80km range details into Glacier class 4/9/08 - prevent *center* of zoomed viewport from being dragged any farther right than 80km 4/9/08 - prevent zoomed viewport from being dragged any farther right than 80km 3/25/08 - yet-another mountains image that doesn't line up (Archie is building scaling into the image!) 3/25/08 - new mountains image with alignment point, realign (valley floor contour is not correct) 3/25/08 - add alignment point for debugging alignment of mountains image 3/24/08 - new mountains image, realign (slightly off) 3/24/08 - add MountainsAndValleyNode to encapsulate image file 3/18/08 - first pass at using image for mountains and valley, offset via trial & error # 0.00.12 (20191) 3/7/08 - set some temporary axis ranges for time-based charts 3/7/08 - make headwall steeper 3/7/08 - show ice flow vectors in zoomed view only 3/7/08 - parameterize steepness and length of Valley with headwall 3/7/08 - visualization of ice velocity at stationary (x,z) locations 3/7/08 - bugfix in implementation of ice velocity model 3/6/08 - add all infrastructure and plumbing for ice velocities view 3/6/08 - custom paints and strokes for series in "glacial budget vs. elevation" graph 3/6/08 - change "v." to "vs." in all graph titles # 0.00.11 (20154) 3/5/08 - add horizontal (distance) coordinate axis, dynamically rebuilt as zoomed viewport changes 3/5/08 - add public method ValleyNode.createValleyFloorPath, for use by DistanceAxisNode 3/5/08 - add elevation axes on left and right edges of zoomed viewport 3/5/08 - wire up axes visibility to "coordinates" checkbox 3/5/08 - create vertical (elevation) coordinate axis, dynamically align with right edge of viewport 3/5/08 - make Reset All delete all tools 3/5/08 - tools don't need time information, remove knowledge of clock from tools' base class 3/5/08 - refactor common code for sub-panels of main control panel into a base class 3/5/08 - reduce vertical spacing in Climate control panel 3/5/08 - connect clock speed control to frame rate instead of dt, vary from 1 to 24 fps, use constant dt=1 year 3/5/08 - use fixed ranges for axes on graphs that involve elevation 3/5/08 - temporary fix for condition in ice thickness model that results in negative glacier length 3/5/08 - bugfix in GlacierNode, handle empty or null iceThickessSamples # 0.00.10 (20106) 3/3/08 - add Glacier.getLength 3/3/08 - change climate control ranges and defaults 3/3/08 - implement new ice thickness model (based on ELA interpolation) 3/3/08 - put temperate at top of climate control panel, it's the easiest to understand 3/3/08 - clean up climate ranges 2/29/08 - reset clock speed control when clock dt changes 2/29/08 - implement Reset All 2/29/08 - make thermometer display temperature in both C and F units 2/28/08 - turn off autoSort for time-related charts for performance reasons; sorted dataset will be provided 2/28/08 - bugfix: turn off autoSort for elevation-related graphs 2/28/08 - combine accumulation, ablation and glacial budget into 1 graph; delete individual graphs 2/28/08 - rename "ice flow" checkbox to "ice flow vectors" 2/28/08 - delete "snowfall" checkbox, snowfall should always be visible 2/27/08 - update "ELA v. time" graph every time the clock ticks (for discussion) 2/27/08 - add stubs for time-dependent graphs, until we figure out how we want these to work 2/27/08 - add a visual indication of origin for each measuring tool # 0.00.09 (20001) 2/27/08 - rename SnowfallAndTemperatureControlPanel to ClimateControlPanel 2/27/08 - "mass balance" control panel was dropped, delete panel and problematic model code 2/27/08 - "age of ice" feature was dropped, delete checkbox in View control panel 2/27/08 - display a proxy for mountains, 1000 meters above valley floor # 0.00.08 (19964) 2/25/08 - disable "steady state" button when glacier is in the steady state 2/25/08 - add time-dependence to glacier ice thickness model 2/25/08 - resolve climate-change timescale issues in model, always use ELA of current climate 2/25/08 - make all 1D grids a fixed size (adjustable via NUMBER_OF_X_SAMPLES) 2/25/08 - add additional 1D grids for handling temporal interpolation of ice thickness 2/25/08 - clean up glaciers model of length and thickness, in preparation for adding time dependence 2/25/08 - add accumulation and ablation curves to glacial budget chart (for discussion) # 0.00.07 (19949) 2/22/08 - add charts for "XXX v. elevation" graphs, where XXX=accumulation, ablation, glacial budget 2/22/08 - wire up real "temperature v. elevation" graph 2/22/08 - prototype "temperature v. elevation" graph 2/21/08 - change graphs control panel to use checkboxes 2/20/08 - set background color correctly for climate controls, make textfields appear to be editable # 0.00.06 (19893) 2/19/08 - disable ELA slider and wire it to the model, so we can see ELA range without domain mapping problems 2/19/08 - rewrite EquilibriumLineNode to show a dashed horizontal line at ELA 2/19/08 - move ELA model into Climate, delete EquilibriumLine class 2/19/08 - wire up Mass Balance max snowfall control, stub out wiring for ELA control 2/19/08 - cleanup Climate model and associated javadoc 2/19/08 - clean up controller for Basic module 2/19/08 - show snowfall reference elevation in meters with integer precision 2/19/08 - rewrite Mass Balance control panel for ELA and max snowfall controls 2/19/08 - add ELA to temp/snowfall conversion in climate model 2/19/08 - used DefaultDecimalFormat to get rid of -0 displays 2/19/08 - add 1 decimal place of precision to ice thickness tool display 2/19/08 - fix some control panel layout issues (still not perfect) 2/14/08 - update climate continuously while dragging sliders, performance is OK 2/14/08 - provide separate controls from snowfall and snowfall reference elevation, in model and control panels 2/14/08 - change mass balance climate control panel, based on Archies new spec (design still has problems) 2/14/08 - fix glacial budget meter, it should use the meter's elevation, not the valley floor elevation # 0.00.05 (19804) 2/13/08 - fix Valley floor model so that elevation is never < 0 2/13/08 - implement new climate model, as received from Archie on 2/11 2/11/08 - change min range of snowfall control from "none" to "little" # 0.00.04 (19749) 2/11/08 - simplify GlacierListener interface 2/11/08 - rewrite ice velocity model in terms of new strategy for computing ice thickness 2/11/08 - optimize Glacier.getIceThickness 2/11/08 - implement Glacier.getIceThickness as a linear interpolation between samples 2/11/08 - compute and cache ice thickness on a 1D grid 2/6/08 - update climate only when temperature or snowfall slider is released, continuous update is too expensive 2/6/08 - add first part of timescale model 2/1/08 - added glacier ice view, but disabled because model calculations are prohibitively expensive 2/1/08 - use steady-state methods for ice thickness and velocity to test immediate effect of climate change 2/1/08 - add ice velocity model, use speed for velocity magnitude, use valley floor slope for direction 2/1/08 - change ice velocity model functions to ice *speed* 1/31/08 - change canvas background color to "sky blue", so that white glacier will be visible 1/31/08 - shorten visible name of ice thickness tool 1/31/08 - javadoc EquilibriumLine 1/31/08 - create EquilibriumLine outside of Glacier 1/31/08 - make IceThicknessTool a GlacierListener, interested in ice thickness changes 1/31/08 - add ice volume flux, length, terminus, and ice thickness steady state to glacier model 1/31/08 - standardize on using iterators for listener lists 1/31/08 - javadoc Climate model 1/31/08 - add Climate.getTemperatureModernTimes for setting the default temperature 1/31/08 - adjust climate model to work with absolute temperature, versus temperature offset from modern times 1/31/08 - change temperature control to set temperature, not temperature offset from modern times 1/31/08 - rename "snowfall lapse rate" to "snowfall", document 1/31/08 - tweak equilibrium line model, allow equilibrium line to be at x < 0 1/31/08 - place minX/maxX limitations on ValleyNode 1/31/08 - remove minX/maxX from Valley model, it has no limitations # 0.00.03 (19554) 1/30/08 - wire up visibility control to equilibrium line node 1/30/08 - add equilibrium line model and temporary view 1/30/08 - update glacial budget meter when position, snowfall or temperature is changed 1/30/08 - add glacial budget (mass balance) to climate model 1/30/08 - add temperature, snowfall, accumulation and ablation to climate model 1/28/08 - wire up custom "Reset All" button 1/28/08 - wire up custom help button, make it work with Help menu item 1/28/08 - disable standard module HelpPane (we are using our own reset button) # 0.00.02 (19477) 1/23/08 - make the zoomed viewport's vertical position follow the contour of the valley 1/23/08 - extend Valley shape down to sea level 1/23/08 - add Graphs control panel to "Basic" module, so that we can test graphs during development of basic model 1/23/08 - stub out most of "Advanced" module, it will come later after some redesign 1/23/08 - delete AdvanceClimateControlPanel, this needs to be redesigned 1/23/08 - add MassBalanceControlPanel to basic climate controls 1/23/08 - add range constants for mass balance controls 1/22/08 - create MassBalanceControlPanel for controlling mass-balance model of climate 1/22/08 - pull SnowfallAndTemperatureControlPanel out of climate control panel 1/22/08 - grab DoubleSpinner from bound-states, refine 1/22/08 - moved controller responsibilities for "Basic" module to BasicController # 0.00.01 (19431) 1/16/08 - wire up basic climate controls (temperature and snowfall) 1/16/08 - use one set of images for tools and their icons in the toolbox 1/15/08 - add README file to deploy directory 1/15/08 - use dirt texture map to fill shape of valley floor 1/15/08 - render valley contour as a filled shape instead of a line 1/15/08 - in ValleyNode, replace image with a GeneralPath that draws the shape of the valley floor 1/15/08 - remove debug tracer flag that was placed at valley's highest point 1/15/08 - specify birds-eye viewport's position as an offset from the valley's highest point 1/15/08 - clean up initialization of viewport positions 1/15/08 - eliminate need to store birds-eye camera view offset 1/15/08 - specify zoomed viewport stroke width in pixels, transform to canvas view coordinates for setting actual stroke width 1/15/08 - add Valley.getHighestPoint 1/15/08 - improve layout and borders in play area 1/15/08 - remove default border that comes with PhetPCanvas, it affects canvas bounds, which we're using for viewport calculations 1/15/08 - change control panel background color to pale green 1/15/08 - in ToolIconNode use PDragEventHandler for all phases of drag sequence 1/15/08 - clean up and javadoc before moving to next phase of development 1/15/08 - add unit tests for MVT "flip sign" feature 1/14/08 - disable debug output for viewports and cameras 1/14/08 - scale x axis in MVT so that we can fit 80 meters in the birds-eye view window at 1024x768 1/14/08 - scale y axis in MVT so that we can fit 4100 meters of elevation in the zoomed view window at 1024x768 1/14/08 - flip sign of y axis in MVT so that model has +y up 1/14/08 - add "flip sign" option to MVT, reflection via negative scaling turned out to be problematic 1/14/08 - add listener that adjusts birds-eye view camera when birds-eye viewport changes 1/14/08 - dynamically compute translation of birds-eye view camera 1/14/08 - place ValleyNode at x=0, y=Valley.getElevation(0) 1/14/08 - bugfix in scale/offset of PenguinNode, improper use of mvt results in upside-down penguin when yscale=-1 1/14/08 - verified that order of transforms is correct in MVT constructor 1/14/08 - JUnit test case for ModelViewTransform 1/13/08 - move Viewport to model package because it uses model coordinates 1/13/08 - fix bug in penguin scaling 1/13/08 - add tracer flag at valley's high point, for debugging camera offset and MVT scaling 1/13/08 - add offset to birds-eye camera, use to compute birds-eye viewport 1/13/08 - move responsibility to penguin to handle its own layout (scale & offset) 1/13/08 - organize imports 1/13/08 - major simplification of MVT rectangle transforms at the expense of memory allocation 1/13/08 - fix penguin scaling and layout to handle MVT y translation 1/13/08 - refactor PlayArea.updateLayout, break into smaller methods 1/13/08 - remove MVT distance transforms, they don't work unless xScale=yScale 1/13/08 - bugfix: resizing window snaps zoomed viewport to far left 1/13/08 - add convenience setters to Viewpoint 1/13/08 - bugfix in setting zoomed viewport bounds in PlayArea.updateLayout, handle y translation in MVT 1/13/08 - use MVT to set penguin y-alignment & scale 1/13/08 - bugfix in MVT method for transforming distance 1/13/08 - bugfix in MVT methods that transform rectangles, previous version didn't handle translation and negative scaling 1/13/08 - refactor PlayArea's resize responsibility to PlayAreaResizeListener 1/11/08 - fix misc stuff in PlayArea viewport management to handle MVT x-coordinate translation 1/11/08 - bail on PlayArea.handlePlayAreaResize if the canvases don't have non-zero sizes 1/11/08 - make MVT distance transforms require positive values 1/11/08 - add convenience setters and getters to Viewport 1/11/08 - bugfix in MVT.viewToModel(double distance), need to know the offset between model and view origins 1/11/08 - change signature of MVT constructor to make it clearer 1/11/08 - move Viewport to model package, since it's in model coordinates 1/11/08 - use ComponentListener + AncestorListener for handling play area resize, this fixes problems with viewport transforms 1/10/08 - add default implementations for AbstractTool.handlePositionChanged and handleTimeChanged 1/9/08 - add named viewports, for debugging 1/9/08 - clean up ViewportListener interface 1/9/08 - add MVT to toolbox 1/9/08 - fix problems with viewport constrains when resizing main frame, should only consider left and right edges of viewport 1/9/08 - make it easier to drag viewport fully left or right 1/9/08 - add MVT to PenguinNode and ViewportNode 1/9/08 - scale PenguinNode to ensure that it is shorter than the birds-eye view; make it 75% of birds-eye height 1/9/08 - handle PenguinNode yOffset in PlayArea.handlePlayAreaResized 1/9/08 - bugfix: create tool using event.getPosition, not event.getCanvasPosition 1/9/08 - add GlacierNode, currently empty 1/9/08 - use model-view transform in management of viewports 1/9/08 - add model-view transform to nodes 1/9/08 - add identity model-view transform 1/9/08 - move ModelViewTransform to view package, model shouldn't know about it 1/9/08 - clean up add/remove listener interfaces 1/9/08 - use one viewport model for both birds-eye and zoomed views 1/9/08 - move Viewport to view package, it's not part of the physical model 1/9/08 - implement Valley elevation and width functions 1/8/08 - change strategy for adding/removing nodes, IToolProducer 1/8/08 - organize imports 1/8/08 - switch from ModelElement to ClockListener interface, because model is based on current time, not dt 1/8/08 - fix terminology: GPS -> GPS Receiver 1/8/08 - generalize layout of icons in toolbox 1/8/08 - show/hide GPS tool based on whether developer controls are enabled 1/8/08 - bugfix in Movable.setPosition(double,double), if expression should use "or" 1/8/08 - add GPS tool, for development testing 1/4/08 - add stubs to Glacier model for all required methods 1/4/08 - use sea level as default reference altitude for Climate 1/4/08 - flesh out basic Climate model 1/4/08 - add ModelViewTransform class (adapted from optical-tweezers) 1/3/08 - quick pass at glacier and atmosphere models 1/3/08 - add value formatters to tools 1/3/08 - simplify value display on thermometer node 1/3/08 - add value display to ice thickness tool 1/3/08 - sketch out model of ice thickness tool 1/3/08 - add position listeners to thermometer and glacial budget meter 1/3/08 - add cleanup methods to model and view elements 1/3/08 - add digital readout to glacial budget meter 1/3/08 - sketch model for glacial budget meter 1/3/08 - add round ball to bottom of trace flag's pole 1/3/08 - replace barrel of tracer flags with a single tracer flag in toolbox 1/2/08 - move resize listener to PlayArea panel to fix sequencing problem with setting of world and viewport bounds 1/2/08 - keep viewport in bounds when width of main window is reduced 1/2/08 - constrain viewport dragging to be horizontal 1/2/08 - use penguin for viewport control, put dashed vertical lines L&R of penguin to denote viewport bounds 1/2/08 - resize world based on size of top canvas 12/27/07 - add penguin, constrain dragging (not connected to viewport) 12/27/07 - convert penguin back to PImage 12/27/07 - increase size of valley image so that zoomed view scale~1 12/27/07 - integrate TestViewport example into sim's PlayArea 12/26/07 - set approximate registration points for each tool node 12/26/07 - add toolbox to Advanced panel 12/26/07 - refactor toolbox icons hierarchy 12/26/07 - organize imports 12/26/07 - refactor responsibility for creating tool-related model elements 12/26/07 - forward toolbox drag events to newly-created model elements 12/26/07 - rewrite model/view hierarchy for toolbox tools 12/26/07 - simplify toolbox 12/26/07 - convert graph control to combo box, radio button took up too much space 12/26/07 - create graphs control panel, start with radio buttons as requested 12/26/07 - in TestViewport, set magnification power for bottom view instead of using scale=1 12/24/07 - test app to demonstrate sharing of a layer between 2 canvases 12/20/07 - convert PenguinNode to be a test case for SVGNode 12/20/07 - extract missing SVG files from Archie's mockup, crop document size of other SVG images to fit 12/20/07 - check in Archie's SVG mockup of the user interface 12/20/07 - check in SVG images and license file, change penguin image 12/17/07 - add viewport demo to developer menu 12/17/07 - check in first version of model document 12/17/07 - clean up naming conventions for listeners 12/17/07 - listener interface for misc controls 12/17/07 - fix drag offset in ThermometerNode 12/17/07 - convert strings and images to statics 12/17/07 - move time units out of clock model 12/17/07 - add panning control to prototype, ala Google Maps 12/16/07 - started prototype for birds-eye and zoomed views of one model 12/12/07 - update thermometer view as thermometer model changes 12/12/07 - add basic thermometer model 12/11/07 - replace images for ice thickness tool 12/11/07 - add draggable tools to the canvas, no way to delete them yet 12/11/07 - first pass at ToolboxNode, no interactivity yet 12/10/07 - add all strings shown in design doc to localization file 12/10/07 - rename equilibrium button 12/10/07 - add BasicClimateControlPanel 12/6/07 - advanced vs basic climate controls 12/6/07 - add listener interface for View control panel 12/6/07 - rename localization properties related to clock 12/6/07 - delete View controls that were dropped, remove all icons from View controls 11/20/07 - review design doc #3 11/20/07 - add credits 11/20/07 - break into Basic and Advanced modules 11/14/07 - add stub for magnified view 11/14/07 - add drag handler to penguin, horizontally constrained 11/14/07 - add penguin as marker for which part of the valley we're zoomed in on 11/14/07 - remove example code 11/14/07 - stub for "birds eye view" of valley 11/14/07 - stubs for Climate Controls panel 11/14/07 - add icons to View controls 11/14/07 - add View controls (no icons) 11/14/07 - redo layout of clock control panel to have control over insets and justification (need to minimize space) 11/14/07 - first pass at clock control panel 11/14/07 - add a bunch of image files, extracted from SVG mockup 11/9/07 - move about.credits property to localization file 10/31/07 - review design doc #2 10/22/07 - review design doc #1 10/9/07 - inner classes for MVC observers 10/9/07 - add width and height controls to control panel 10/9/07 - flatten ExampleModelElement in preparation for replacing Observer pattern 10/9/07 - hook up developer controls for tab color and control panel color 10/9/07 - push more stuff into phetcommon 10/9/07 - migrate updateLayout to PhetPCanvas 10/9/07 - migrate "Reset All" and "set minimum width" features to phetcommon ControlPanel 10/8/07 - migrate XML persistence manager to phetcommon 10/3/07 - fold GlobalConfig into GlaciersConfig 10/3/07 - rewrite persistence code in preparation for migration to phetcommon 10/3/07 - constants for localized strings in GlaciersPersistenceManager 10/1/07 - add example model element, node, and control panel for demonstration 10/1/07 - package and class javadoc for skeleton 9/27/07 - set up simulation skeleton, check in to SVN