# 1.10.01 (53877) Jul 8, 2011 7/7/11 > added "Excite Atom" button for getting Schrodinger atom out of the (2,0,0) metastable state 7/7/11 #2803, add Excite Atom button to Schrodinger view 7/7/11 #2803, more simplification of atom and gun listener interfaces 7/7/11 #2803, add Array to modified files to suppress warnings 7/7/11 #2803, simplify listener interface for photon absorption and emission 7/7/11 #2803, make MetaStableHandler a field in SchrodingerModel 7/7/11 #2803, add logger to MetaStableHandler, replace hardcoded state values with constants # 1.10.00 (51735) May 9, 2011 5/9/11 > added new translation credits features # 1.09.01 (51573) May 5, 2011 4/20/11 moved boilerplate code in AtomicModelSelector into ButtonNode inner class 4/20/11 use one ArrayList to determine dimensions of Atomic Model control panel 4/20/11 replace AbstractEnum with Java 1.5 enum (no usage changes required) > highlight wavelength slider knob whenever it's on an absorption wavelength 4/14/11 #2802, make wavelength slider thumb remain highlighted when the value is an absorption wavelength 2/15/11 Moved WavelengthControl and TestWavelengthControl to piccolo-phet 2/15/11 Added main to WavelengthControl to demonstrate usage 11/19/10 rename ModelViewTransform to HAModelViewTransform # 1.09.00 (38004) Jan 9, 2010 1/9/10 public version for milestone "full redeploy, 2010 Q1" # 1.08.01 (37358) Dec 11, 2009 12/11/09 test version for milestone "full redeploy, 2010 Q1" 12/4/09 #89, subclass PaintImmediateDialog instead of JDialog # 1.08.00 (30610) Apr 20, 2009 4/20/09 Batch deploy as part of IOM milestone with revision 30609 # 1.07.02 (29629) Mar 22, 2009 3/22/09 Batch deploy for Alpha Simulation Tests 2, svn 29628 # 1.07.01 (28794) Feb 19, 2009 Batch deploy for alpha Simulation Tests, svn 28773 12/11/08 - #1020, use new gun image created by Noah P. 12/8/08 - #1003, use closeButton.png from phetcommon 10/8/08 - use PhetApplicationConfig.launchSim 10/8/08 - moved list of rejected features to Unfuddle 802 6/24/08 - move SphericalNode to piccolo-phet 5/20/08 - replace Font with PhetFont # 1.07.00 (21248) # 1.06.01 (21223) 5/7/08 - pickup PhetDefaultFont support for Japanese preferred fonts [543] 4/4/08 - remove clock icon from HAClockControlPanel, animated icon was added to phetcommon 1/7/08 - replace "Lucida Sans" with PhetDefaultFont in test code # 1.06.00 (18580) 11/16/07 - Experiment atom was getting stuck in (2,0,0), needed to attached a MetastableHander to it (similar to Schrodinger) 11/9/07 - move about.credits property to localization file 8/29/07 - replace HAWiggleMe with piccolo-phet DefaultWiggleMe 8/29/07 - replace JLabel().getFont() with PhetDefaultFont 8/27/07 - migrated photon image creation and caching to piccolo-phet (PhotonImageFactory) # 1.05.00 (17033) 7/27/07 - new version published as part of new website deployment 7/24/07 - PhotonImageGenerator utility added by Sam Reid 7/10/07 - use -dev commandline arg to enable developer controls instead of javaws.phet.developer property 6/15/07 - convert description properties to well-formed HTML # 1.04.00 (15867) 6/13/07 - use property javaws.phet.developer to enable developer controls 6/13/07 - remove ARTS implementation (GPL) of associated Legendre polynomials, remove from credits 6/13/07 - integrate Sam Reid's solver for associated Legendre polynomials 5/14/07 - remove duplicate code by making HAClockControlPanel extend ClockControlPanel 5/14/07 - get clock.png from phetcommon 4/23/07 - delete SliderControl, not used 4/6/07 - organize imports 4/6/07 - set locale in Spanish JNLP file 4/6/07 - encapsulate loading of strings and images in HAResources 4/6/07 - convert from SimStrings to PhetProjectConfig # 1.03.00 (14208) 4/5/07 - change SolarSystemEnergyDiagram.MIN_RADIUS so electron's last position will be at bottom of chart for all clock speeds 4/4/07 - add energy model to Solar System energy diagram 4/3/07 - make Solar System energy diagram work correctly with variable clock speed 4/3/07 - add HAClock.getDt, rename setDt 3/27/07 - remove canvas argument from all ancestor nodes of PSwing in scenegraph 3/20/07 - move ColorChooserFactory to phetcommon 3/20/07 - move ArgUtils to phet.common.util.CommandLineUtils 3/15/07 - move ModelViewManager framework to its own package 3/15/07 - eliminate dependency of BoxOfHydrogenNode on AnimationBoxNode, reimplement tiny box # 1.02.00 (13772) 3/14/07 - rename SimStrings files to have basename hydrogenatom_strings 3/14/07 - move images to data/hydrogenatom/images to avoid namespace collisions 3/14/07 - get version and credits from properties file 3/13/07 - simplfy ModelViewTransform, improve javadoc 3/13/07 - change "photons and alpha particles" to "light" in About dialog description 3/12/07 - move RoundGradientPaint to phetcommon 3/12/07 - used PhetPCanvas.getWorldSize 3/12/07 - bug fix in MovingObject.setSpeed CVS tag: hydrogenatom-1-01-00-2007-02-16 (2/16/07) - add "Light controls" label at top of GunControlPanel (2/16/07) - hide alpha particles features in gun control panel (GunControlPanel.SHOW_ALPHA_PARTICLE_CONTROLS = false) (2/16/07) - hide dt value shown in clock control panel (HAClockControlPanel.DEBUG_SHOW_DT = false) (2/16/07) - choose 3 clock speeds: { 0.5, 2, 6 }, default to 2 (2/16/07) - change MetastableHandler.MAX_STUCK_SIM_TIME to 100 (2/16/07) - change BohrModel.MIN_TIME_IN_STATE to 50 (2/7/07) - very brief package level javadoc CVS tag: hydrogenatom-1-00-03-2007-02-05 (2/5/07) - AbstractHydrogenAtom.COLLISION_CLOSENESS should have double precision (2/5/07) - include electron radius in calculation of "collision closeness" threshold (2/5/07) - restore the wavelength cursor, make it white so it doesn't interfere with absorption wavelength marks (2/2/07) - change first column of Transitions dialog to "n transition" CVS tag: hydrogenatom-1-00-02-2007-02-02 (2/2/07) - bugfix: visibility of "Show absorption wavelength" checkbox is not correct (2/2/07) - use ActionListener for checkboxs in Gun control panel to prevent duplicate events (2/2/07) - make "Show absorption wavelengths" control visible only for relevant models (2/2/07) - fix alignment of wavelength knob & cursor, move origin to knob's tip and cursor's top-center (2/2/07) - mark ground state absorption wavelengths in wavelength control, use vertical black lines in track (2/2/07) - add interfaces to WavelengthControl to support adding marks to track CVS tag: hydrogenatom-1-00-01-2007-02-01 (2/2/07) - use sim time for time stuck in metastable state before firing a photon, add dev control (rollup) (2/1/07) - add "Show absorption wavelengths" checkbox below wavelength slider (not wired up) (2/1/07) - in deBroglie radial view, wave functions for all states should have same max amplitude (2/1/07) - do NOT reset gun to default wavelength each time monochromatic is selected (2/1/07) - remove intensity control for light and alpha particles (2/1/07) - GunTypeControl fix, should send notification for selected choice only (2/1/07) - LightTypeControl fix, should send notification for selected choice only (2/1/07) - reset gun to default wavelength each time monochromatic is selected (2/1/07) - change default wavelength to 94 nm (2/1/07) - change color of photon icon to 600 nm (2/1/07) - change deBroglie view choices to "radial view", "3D view", "brightness view" (2/1/07) - make legend visible only in Prediction mode (2/1/07) - remove photon and alpha particle from legend (2/1/07) - change Experiment box dimensions to 125x125 (2/1/07) - always show proton in Schrodinger (1/31/07) - add development team to credits (1/29/07) - add dt display to clock control panel for debugging (1/29/07) - add a bunch of clock speeds (0.5, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10) so Sam M. can pick 3 (1/29/07) - delete "amplitude magnitude -> brightness" option for deBroglie views (1/29/07) - change order of deBroglie views to: radial, 3D, brightness (1/29/07) - set default deBroglie view to radial (1/29/07) - add 2 faster clock speeds CVS tag hydrogenatom-1-00-00-2007-01-17 (1/17/07) - publish 1.0 to PhET website (1/17/07) - fix and test JNLP files in deploy/ CVS tag hydrogenatom-0-00-22-2007-01-16 (1/16/07) - create final thumbnail image, based on snapshot from Sam McKagan (1/16/07) - add description (abstract) to SimStrings file, translate to Spanish (1/16/07) - make period of energy squiggle a function of wavelength (1/16/07) - change energy squiggle stroke width from 2 to 1 in order to draw higher frequency squiggles (1/16/07) - add methods to ColorUtils for determining if a wavelength is UV, IR or visible (1/16/07) - use a darker gray for UV and IR, so that it shows up on both black and white backgrounds (1/16/07) - move Spectrometer close buttons up 2 pixels to look better on Windows (1/16/07) - bugfix: spectrometer Start/Stop and Reset buttons are fully transparent on Windows (1/16/07) - add spacing StateDisplayNode formats to improve readability on Windows (1/16/07) - remove test code from HADefaults, difficult to read, no longer needed (1/16/07) - add HAConstants.DEBROGLIE_VIEW_IN_MENUBAR for selecting which control (menu or combobox) to use (1/16/07) - hide "Options>deBroglie view" menu (1/16/07) - add deBroglie views combobox at inside-top-left of "box" (1/15/07) - reduce time to fire absorbable photon to 5 sec in MetastableHandler (1/15/07) - add n= state display to lower right for Bohr and deBroglie (1/15/07) - create StateDisplayNode for displaying electron state variabled, use throughout (1/15/07) - move state display flag to HAConstants (1/15/07) - move nlm display to lower right in Schrodginer (1/10/07) - verify that behavior is correct when clock is paused (1/10/07) - make DeBroglieBrightnessNode preallocate and reuse the objects that it uses to make the ring (1/10/07) - rename BohrModel.updateElectronPositon -> updateElectronOffset (1/10/07) - rename getElectronOffset to getElectronOffsetRef to indicate that it returns a reference (1/10/07) - add getElectronPositionRef to significantly reduce Point2D allocation (1/10/07) - add _electronPosition member to PlumPuddingModel to reduce Point2D allocation (1/10/07) - change HAModel and Model to use to use toArray for iterating over non-empty collections that may change (1/10/07) - reuse transform in EnergySquiggle (1/9/07) - make a new thumbnail image CVS tag hydrogenatom-0-00-21-2007-01-09 (1/9/07) - set probability of absorption and stimulated emission to 100% in Bohr/deBroglie/Schrodinger (1/9/07) - test Spanish translations (1/9/07) - run Schrodinger for 3.5 hours with white light, no problems (1/9/07) - bugfix: fix state transition implementation in SchrodingerModel, it was performing invalid transitions (1/9/07) - write test harness for phetcommon ProbabilisticChooser, used in SchrodingerModel (1/9/07) - major reorganization and cleanup of BohrModel to improve readability (1/9/07) - move inner class events and listeners to new "event" package (1/8/07) - examine all calls to "new" to identify possible memory optimizations (1/8/07) - make NotToScaleNode extend HTMLNode (1/8/07) - make the legend invisible (don't draw it) when the energy diagram is visible (1/8/07) - flatten BoxOfHydrogenNode to a single PImage (1/8/07) - use getPositionRef instead of getPosition throughout to minimize Point2D creation (1/8/07) - remove unnecessary Point2D creation from DeBroglieModel.collides3D (1/8/07) - remove SwitchAnimatorNode, it introduced new problems and looked odd (1/8/07) - wire SwitchAnimatorNode into HAModule (1/8/07) - write SwitchAnimatorNode for sliding atomic model selector panel up/down CVS tag hydrogenatom-0-00-20-2007-01-05 (1/6/07) - bugfix: gun is initialized to white light, but intensity slider shows a color (1/5/07) - position spectrometer snapshot based on position of most-recently created snapshot (1/5/07) - bugfix: gun defaults to white light but shows monochromatic controls (1/5/07) - diagonally stagger location of snapshots (1/5/07) - bugfix: hide spectrometer if default value is deselected (1/5/07) - add a flag for switching between test and production values in HADefaults (1/5/07) - add developer control for time that squiggle is visible (1/5/07) - put m= in upper-right corner of Schrodinger energy diagram (1/5/07) - javadoc energy diagrams (1/5/07) - make squiggles go away after 1.5 seconds (1/5/07) - javadoc EnergySquiggle (1/4/07) - add arrow and sinusoidal shape to squiggles (1/4/07) - align squiggle with center of state line (1/4/05) - add some missing stuff to HADefaults, document values for public release (1/4/05) - get absorption and emission squiggles working as solid straight lines that persist (1/4/05) - move setAtom and clearAtom out of energy diagram base class to eliminate need for casting (1/4/05) - simplify initialization of electron position in energy diagrams (1/3/07) - grab edu.colorado.phet.dischargelamps.view.EnergySquiggle (1/3/07) - javadoc AbstractEnergyDiagram base class (1/3/07) - javadoc Schrodinger energy diagram (1/3/07) - clean up layout of Schrodinger energy diagram (1/3/07) - javadoc Bohr energy diagram (1/3/07) - clean up layout of Bohr energy diagram (1/3/07) - fix layout of y-axis label in energy diagram, falls off bottom (1/3/07) - move n=6 label up slightly in energy diagrams to prevent collision with n=5 label (1/3/07) - refine distortion of energy levels in energies diagrams (1/3/07) - make energy diagram look like a window, with a border and titlebar (1/3/07) - remove gap between title and diagram in energy diagram (stroke around clipNode) (1/3/07) - bugfix: energy diagram checkbox is clickable through the energy diagram (1/3/07) - make spectrometer slightly wider (1/3/07) - add title and close button to energy diagram (1/3/07) - increase height of energy diagram (1/3/07) - make energy diagram cover its "show" checkbox (1/3/07) - make spectrometer cover its "show" checkbox (1/3/07) - use CloseButtonNode in spectrometer and its snapshots (1/3/07) - refactor close button code into CloseButtonNode CVS tag hydrogenatom-0-00-19-2007-01-02 (1/2/07) - add separate layers for state indicators and squiggles in energy diagrams (1/2/07) - implement Schrodinger energy diagram with no squiggles, no m= (1/2/07) - move common code for node creation and energy value calculation to AbstractEnergyDiagram (1/2/07) - implement Bohr/deBroglie energy diagram with no squiggles (1/2/07) - Solar System energy diagram must update electron offset even when the diagram is invisible (1/2/07) - rename SchrodingerUnstucker to MetastableHandler (12/29/06) - implement Solar System energy diagram (12/29/06) - set up infrastructure for energy diagrams to observe atom (12/29/06) - made DeBroglieEnergyDiagram extend BohrEnergyDiagram (12/29/06) - add CursorHandler to checkboxes that are on the canvas (12/29/06) - add CursorHandler to textfield in WavelengthControl (12/29/06) - add CursorHandler to all interactive controls in GunControlPanel (12/29/06) - add hand cursor to Spectrometer close button (12/29/06) - move default control settings to HADefaults (12/28/06) - use 1 image for entire spectrum in WavelengthControl, using SpectrumImageFactory (12/28/06) - add track size to WavelengthControl constructor (12/28/06) - scale "UV" and "IR" labels to fit WavelengthControl track height (12/28/06) - add WavelengthControl.setKnobSize(int width, int height) (12/28/06) - make SpectrumImageFactory more general, and move it to phetcommon (12/28/06) - generate spectrum image programmatically instead of using an image file (12/27/06) - when Schrodinger is in state (2,0,0) and gun is firing white light, fire an absorbable photon at the atom's center evry 15 sec (12/27/06) - add Gun method for firing one photon of a specific wavelength from the center of the gun's nozzle (12/27/06) - absorb photons with 100% probability when Schrodinger is in state (2,0,0) (12/27/06) - allow subclasses of BohrModel to override methods for determining probability of absorption and emission (12/26/06) - replace m,n state arguments with nOld,nNew in BohrModel methods (12/26/06) - scale down plumPudding.png image (12/26/06) - javadoc and cleanup SpectrometerNode (12/26/06) - check SchrodingerModel transition rules in a way that doesn't stop the program if a violation occurs (12/26/06) - add unit test program for SchrodingerNode, populates cache for all possible states (12/26/06) - bugfix: bad array initialization in SchrodingerNode.BrightnessCache constructor (12/26/06) - make tick labels on spectrometer larger and bold font CVS tag hydrogenatom-0-00-18-2006-12-21 (12/21/06) - bugfix: ArrayOutOfBoundsException in SchrodingerModel.chooseLowerElectronState, introduced in 0.00.16 (12/21/06) - in SchrodingerModel.chooseLowerElectronState, (n,0,0)->(1,0,0) is forbidden for all value of n (12/21/06) - make spectrometer "running" by default (12/21/06) - move SpectrometerNode to view package (12/21/06) - capture meter cells in spectrometer snapshot (12/21/06) - don't update the spectrometer when it's not visible (12/21/06) - update spectrometer display for each photon emitted (12/21/06) - move spectrometer button panel down below tick marks area (12/21/06) - flatten static stuff in spectrometer to an image (12/21/06) - spectrometer has labeled ticks at 90, 380, 500, 600, 780, 7500 (12/21/06) - spectrometer has unlabeled ticks at 50 nm increments in visible spectrum (12/21/06) - add ticks and labels to spectrometer (12/21/06) - set UV and IR portions of spectrometer similar to Discharge Lamps (~15% each) (12/21/06) - add color key strip along bottom of spectrometer display area (12/21/06) - add min/max wavelength range to spectrometer (12/21/06) - reset spectrometer when atomic model is changed (12/21/06) - make SpectrometerNode a PhotonEmittedListener, wire up to atomic model (12/21/06) - delete HAController, merge into HAModule (12/21/06) - major surgery to SpectrometerNode and HAModule (12/21/06) - delete SpectrometerListener, replace with ActionListeners on buttons (12/21/06) - make size of SpectrometerNode variable (12/21/06) - change Spectrometer image files, draw display area using Java2D (12/21/06) - change Schrodinger button to show ground state CVS tag hydrogenatom-0-00-17-2006-12-20 (12/20/06) - add "show traces" feature for alpha particles (12/20/06) - modify ModelViewManager to support multiple views of a ModelElement (12/20/06) - update images on atomic model selector buttons using screen snapshots CVS tag hydrogenatom-0-00-16-2006-12-19 (12/19/06) - javadoc for SchrodingerModel (12/19/06) - bugfix: HTML arrows don't work on Windows, replace with "->" and "<->" (12/19/06) - implement special cases for Schrodinger (2,0,0) state (12/19/06) - implement rules for Schrodinger (n,l,m) state transitions (12/19/06) - add hooks to BohrModel for subclasses to redefine how state transitions are chosen (12/18/06) - use float inside of double for Schrodinger brightness cache (12/18/06) - test feasibility of writing Schrodinger brightness cache to a file (12/15/06) - implement a brightness cache in Schrodinger, either populated on init or on demand (12/15/06) - change Schrodinger proton visibility threshold to 0.25 (12/15/06) - change Schrodinger so that spontaneous emission always occurs on a point on 1st Bohr orbit (12/15/06) - javadoc SchrodingerNode (12/15/06) - add developer control for Schrodinger proton visibility threshold (12/15/06) - show Schrodinger proton if brightness at center is less than some threshold (12/14/06) - increase default clock speed (12/14/06) - change gun's min wavelength to 92nm so that atom can't be ionized (ionization feature was dropped) CVS tag hydrogenatom-0-00-15-2006-12-13 (12/14/06) - turn off debug graphics on deBroglie 3D view (roll into 0.00.15) (12/14/06) - remove seams between quadrants of grid in SchrodingerNode (roll into 0.00.15) (12/13/06) - add proton to center of Schrodinger atom (12/13/06) - use ARTS function (GPL) for Associated Legendre Polynomial, add to credits (12/13/06) - compare Schrodinger to falstad.com/qmatom (looked at about a dozen, looks good) (12/13/06) - bugfix: bad loop index when calculating (x,y,z) coordinates for Schrodinger cube (12/13/06) - refactor StateNode in SchrodingerNode (12/13/06) - draw all 4 quadrants of Schrodinger using PImage so that they are properly aligned (12/12/06) - add state (n,l,m) display to SchrodingerNode (12/12/06) - rewrite how SchrodingerNode draws the atom (12/12/06) - calculate prob density for only 1/8 of Schrodinger cube (positive x,y,z values) (12/12/06) - debug SchrodingerModel (12/11/06) - first pass at Schrodinger view, throws exceptions (12/11/06) - first pass at Schrodinger model, essential information missing or incorrect in design doc (12/8/06) - handle AlphaParticle orientation in RutherfordScattering and AlphaParticleNode, disable in node (12/8/06) - handle Photon orientation in PhotonNode (12/8/06) - remove extra calls to ModelViewTransform inside OrbitNodeFactory, should be passed view radius (12/8/06) - use OrbitNodeFactory.createOrbitNodePerspective to create projections of 3D orbits for debugging (12/8/06) - model javadoc (12/8/06) - improve performance of deBroglie 3D view "rotate into place" animation, don't flatten orbits to image (12/7/06) - implement collision detection with deBroglie 3D orbits (12/7/06) - emit photons along deBroglie 3D orbits CVS tag hydrogenatom-0-00-14-2006-12-06 (12/6/06) - reduce probability of stimulated emission (12/6/06) - verified that emission is not favoring state=1 (looks like this because stimualted emission happens often!) (12/6/06) - add up/down arrow support in WavelengthControl textfield (12/6/06) - Unicode arrows don't display on Windows, replace with HTML entities (12/6/06) - verify that all calls to OrbitFactory apply ModelViewTransform to radius (12/6/06) - fix bounds hack in Wireframe3DNode (12/6/06) - notify Wireframe3DNode of changes to Wireframe3D bounds (12/6/06) - major changes to Wireframe3D to improve interface and performance, remove need to call "done" method (12/6/06) - fix color assignment in Wireframe3D (12/6/06) - add computation of transformed bounding box to Wireframe3D (12/6/06) - replace some of the obstuse code in Wireframe3D with more recent code from Sun (12/5/06) - bugfix: photon emission favors going back to state=1, all transitions should have equal probability (12/5/06) - make gun fire at center of atom 10% of the time (12/5/06) - make sure that all atom views apply ModelViewTransform (12/5/06) - add developer control for GunWavelengthControl hilite threshold (12/5/06) - create SpinnerControl to clean up develop controls dialog (12/5/06) - use same shade of "electron blue" for all deBroglie representations (12/5/06) - move common static methods to AbstractHydrogenAtom (12/5/06) - make WavelengthKnobManager an extension of WavelengthControl (GunWavelengthControl) (12/4/06) - make wavelength slider knob hilite when close to a transition wavelength, snap to closest transition wavelength (12/4/06) - remove isDragging method from WavelengthControl (12/4/06) - add isDragging method to WavelengthControl and ConstrainedDragHandler, test (12/4/06) - add ability to change knob stroke to WavelengthControl (12/4/06) - replace Color.WHITE with Color.BLACK in deBroglie brightness representations (11/30/06) - use a separate instance of Random for each task in Gun model (11/30/06) - rename SpectralLineTableDialog to TransitionsDialog, label "Transitions" (11/30/06) - change white light to be 60% random visible wavelengths, 40% transition wavelengths for state=1 CVS tag hydrogenatom-0-00-13-2006-11-29 (11/29/06) - add temp hack for deBroglie 3D bounds paint problem (11/29/06) - big reorg of DeBroglieHeight3DNode in order to optimize memory usage (11/29/06) - make Wireframe3D and Wireframe3DNode mutable, reuse where possible (11/29/06) - reuse Vertex3D[] where possible in 3D deBroglie view (11/29/06) - make deBroglie 3D view (optionally) rotate into place (11/29/06) - increase precision of Martrix3D transformation from int to float (11/29/06) - make DeBroglieHeight3DNode responsible for specifying how wireframe verticies are connected (11/29/06) - new constructors for Wireframe3D (11/29/06) - change Point3D to Vertex3D, put in its own class file, change names accordingly in client source (11/29/06) - move all wireframe code to wireframe package (was model3d package) (11/29/06) - make 3D orbits look like dashed lines by connecting every-other point in wireframe (11/29/06) - set width of stroke for Wireframe3D, adjust for stroke width when computing bounds (11/28/06) - major overhaul and bug fixes in Wireframe3D, get rid of parser (11/28/06) - set bounds of PNode3D based on bounds of its associated Wireframe3D (11/28/06) - draw 3D orbits using Wireframe3D (11/28/06) - add essential features to Wireframe3D (11/28/06) - change OrbitFactory to use y:x ratio when creating perspective orbits (11/28/06) - add ability to set front & back colors for wireframe model rendering, to provide visual depth cues (11/28/06) - add ability to set a color for wireframe model rendering (11/28/06) - first pass at 3D deBroglie view using Sun's Wireframe code (11/27/06) - setPickable(false) on all non-interactive nodes (11/27/06) - move OrbitNodeFactory to its own file CVS tag hydrogenatom-0-00-12-2006-11-22 (11/22/06) - remove n-dependence of oscillation frequency from deBroglie (make all levels oscillate at same frequency as n=1) CVS tag hydrogenatom-0-00-11-2006-11-21 (11/21/06) - fix DeBroglieModel to use COLLISION_CLOSENESS in its collision detection (11/21/06) - rename AbstractHydrogenAtom.ABSORPTION_CLOSENESS to COLLISION_CLOSENESS (11/21/06) - clean up Developer Controls dialog to make it clearer (11/21/06) - add developer controls for colors used in deBroglie brightness representations (11/21/06) - add developer control for radial amplitude view of deBroglie (11/21/06) - implement photon collision detection for deBroglie (collide with ring) (11/21/06) - modify Bohr model to allow subclasses to override photon collision detection (11/21/06) - use color interpolation to map amplitude to colors for DeBroglie brightness representation (11/21/06) - write ColorUtils.interpolateRGB (11/20/06) - 2nd pass at DeBroglie "brightness" and "brightness magnitude" representations (correct but slow) (11/20/06) - 1st pass at DeBroglie "brightness" and "brightness magnitude" representations (approx a ring using circles) (11/20/06) - implement DeBroglie "radial distance" representation (11/20/06) - remove temporary Schrodinger atom image, replace with "not implemented" text CVS tag hydrogenatom-0-00-10-2006-11-18 (11/18/06) - bugfix: Legend & Spectral Line Table dialogs can't be reopened if closed via window dressing (11/18/06) - create hierarchy of "view strategies" for use in DeBroglieNode (11/18/06) - hook up "deBrogile view" menu to DeBroglieNode via DeBroglieModel (11/18/06) - revise DeBrogileViewMenu and SimStrings (11/18/06) - create DeBroglieView enumeration (11/17/06) - increase range of "max particles in box" to [1,100] (11/17/06) - make generation of photons for white light be weighted towards wavelengths from the Bohr absorption spectrum (11/16/06) - add min time that electron must stay in a Bohr state before emission occurs, include dev control (11/16/06) - removed asset files that are no longer relevant (11/16/06) - make plum pudding 20% darker red (11/16/06) - set gun's default wavelength to 530 (11/16/06) - make legend font bigger (11/14/06) - fix AtomicModelSelector.getSelectionName so that labels don't contain HTML (11/14/06) - make ExperimentNode very dark gray instead of black (11/14/06) - put ExperimentNode in front of photons and alpha particles (11/14/06) - add layers to AnimationBoxNode (11/13/06) - change "animation region" to "animation box" throughout (11/13/06) - make PlumPuddingModel and BohrModel use separate instances of Random for absorb/emit probabilities (11/13/06) - make RandomUtils methods share an instance of Random, instead of using Math.random (11/13/06) - add developer control for setting "closeness" required for photon absorption (11/13/06) - change dev control for "max particles" to a JSpinner (11/13/06) - change default "max particles" to 20, default intensity to 50% (11/13/06) - specify gun firing rate as "max particles in box" (11/12/06) - ExperimentModel extends SchrodingerModel CVS tag hydrogenatom-0-00-09-2006-11-12 (11/12/06) - sync with phetcommon (11/12/06) - cache photon images (11/12/06) - tested Bohr state transitions, fixed bugs (11/12/06) - improve layout of Spectral Line Table dialog (11/10/06) - add dialog displaying spectral line table to menubar (11/10/06) - add developer controls for disabling parts of Bohr absorb/emit (11/10/06) - add stimulated emission to Bohr (11/10/06) - first pass at photon absorb/emit in Bohr (11/10/06) - reorg photon absorption code in PlumPuddingModel to be similar to BohrModel (11/10/06) - reduce radii of Bohr orbits 2-6 so that 6th orbit's dashed line fits fully in box (11/10/06) - make PlumPuddingNode automatically scale its image to match the model's radius (11/10/06) - reduce billiard ball and plum pudding radii to 30 (11/10/06) - tried to make plum pudding look like "red cotton candy" but failed, asked for example (11/9/06) - used canned values provide by Sam McKagan for Bohr orbit radii, don't compute (11/9/06) - start Bohr electron at a random angle (11/9/06) - remove ability to change animation box size from SimString file, too many things depend on its value (11/9/06) - constrain animation box to be square (11/9/06) - read animation box size from config file only in HAConstants (11/9/06) - reduce radius of plum pudding (11/9/06) - reduce radius of billiard ball (11/9/06) - add collided flag to Photon to prevent it from getting stuck inside the billiard ball (11/9/06) - don't remove all particles when switch the type of the gun (11/9/06) - fix "closeness" deflection workaround on left side of plum pudding atom (11/8/06) - add adhoc state change to Bohr absorb/emit, for testing electron motion (11/8/06) - add electron motion to Bohr model CVS tag hydrogenatom-0-00-08-2006-11-08 (11/8/06) - add Rutherford scattering to Schrodinger model (11/8/06) - add workaround for alpha particles that get stuck in center of plum pudding (11/8/06) - move all code related to D out of atom models and into RutherfordScattering class (11/8/06) - Rutherford Scattering working, but particles get stuck at center of plum pudding atom (11/8/06) - another attempt at Rutherford Scattering after Sam McKagan rewrote, still not working (11/8/06) - remove model dependency that ground state = 1 (11/8/06) - remove model stuff from DeBroglieNode (11/8/06) - move all PROPERTY constants to AbstractHydrogenAtom (11/8/06) - DeBroglieModel extends BohrModel (they are identical, different visual representation) (11/8/06) - move orbit and state stuff out of BohrNode and into BohrModel (11/7/06) - add basic code for moving particles and absorbing/emitting photons to BohrModel (11/7/06) - remove call to super.stepInTime in HAModel.stepInTime (11/7/06) - give HAModel responsibility for moving particles (11/7/06) - remove knowledge of atom from alpha particle model (11/7/06) - add developer control for Rutherford Scattering debug output (11/7/06) - add developer control for limiting the model to 1 particle (photon or alpha particle) (11/7/06) - add extensive debug output to Rutherford Scattering (11/7/06) - corrections to Rutherford Scattering, still doesn't work (11/6/06) - first attempt at Rutherford Scattering of alpha particles (coded to spec), doesn't work (11/6/06) - rearchitect model so that alpha particles move based on algorithm supplied by atom (11/6/06) - make photons and alpha particles subclasses of MovingObject (mutable postion, orientation, speed) (11/6/06) - make Gun and atoms subclasses of FixedObject (immutable position and orientation) (11/4/06) - switchable between 3 different "looks" for UV/IR photons CVS tag hydrogenatom-0-00-07-2006-11-04 (11/4/06) - remove UV/IR labels from photons, use colored crosshairs CVS tag hydrogenatom-0-00-06-2006-11-03 (11/4/06) - make UV/IR photons switchable in legend (roll in) (11/4/06) - make photon representations for UV/IR switchable (roll in) (11/3/06) - increase probability of photon emission in plum pudding (11/3/06) - reduce number of clock speeds, set default to a slower speed (11/3/06) - remove UV and IR photons from legend (11/3/06) - randomize the electron line in PlumPuddingModel (11/3/06) - change oscillation line each time PlumPudding's electron starts oscillating (11/3/06) - change plum pudding shape to a circle, in anticipation of Rutherford scattering (11/3/06) - make plum pudding electron go through 1 full oscillation before emitting (11/3/06) - after photon emission, make plum pudding electron complete its oscillation and stop at (0,0) (11/3/06) - replace crosshairs with labels on UV and IR photons (11/3/06) - add UV and IR photons to legend (11/2/06) - plum pudding should absorb only 1 photon (try to continue supporting N) (11/2/06) - remove support in model for multiple atoms (unnecessary complication) (11/2/06) - add a slower clock speed, remove the fastest one (11/2/06) - plum pudding should emit photons from electron location (11/2/06) - plum pudding should absorb photons when they are "close" to electron (11/2/06) - set UV photon crosshairs to violet (11/2/06) - set IR photon crosshairs to red (11/1/06) - change plum pudding image to be more elliptical (11/1/06) - add debug code to PlumPuddingNode to show model's bounds (11/1/06) - sync with phetcommon (11/1/06) - pick a random point inside plum pudding shape from which to emit photon (11/1/06) - change PlumPuddingModel shape to an ellipse (11/1/06) - make HAModel a PhotoAbsorbedListener and PhotonEmittedListener of its atom (11/1/06) - make HAModel a GunFiredListener and Observer of its gun (11/1/06) - move photon and alphaParticle management out of Space and into HAModel (11/1/06) - add _emitted flag to Photon, used to exclude emitted atoms from collision detection (11/1/06) - sync with piccolo-phet (10/31/06) - first pass at PlumbPuddingModel and electron animation in PlumPuddingNode (10/31/06) - specify SolarSystemModel's electron position relative to atom's center (10/31/06) - when SolarSystem atom is destroyed, replace proton & electron with "kaboom" image (10/26/06) - implement SolarSystemModel (10/26/06) - sync with phetcommon CVS tag hydrogenatom-0-00-05-2006-10-25 (10/25/06) - javadoc (10/25/06) - change BilliardBallNode to use shape instead of image file (10/25/06) - implement collision detection and handling for BilliardBallModel (10/25/06) - add collision detection interface to AbstractHydrogenAtom and HAModel (10/25/06) - move default implementation of stepInTime (no-op) into AbstractHydrogenAtom (10/25/06) - add model-view transform for distances (10/24/06) - HAModel extends Model and keeps separate lists of atoms, photons, alpha particles (10/24/06) - change model so that Model class is the only ClockListener, all other things are ModelElements (10/23/06) - add notification mechanism to AbstractHydrogenAtom for absorbing/emitting photons (10/23/06) - move all particle nodes to hydrogenatom.view.particle (10/23/06) - move all atom nodes to hydrogenatom.view.atom (10/23/06) - create atomic models dynamically in HAModule (10/23/06) - node factories for all atomic models (10/23/06) - stubs for all atomic models (10/23/06) - put a box around '?' in ExperimentAtomNode (10/23/06) - hack to workaroud problem with drag bounds of WavelengthControl not being updated (10/22/06) - add developer control for varying number of ticks between firing of photons and alpha particles (10/22/06) - create Developer Controls dialog (10/22/06) - create menu and dialog packages (10/22/06) - add enums for GunMode and LightType (10/20/06) - added Developer menu to menu bar (10/20/06) - add data/credits.html (10/19/06) - change sim title to "Models of the Hydrogen Atom" (10/5/06) - set default clock speed index = 2 (10/5/06) - attach wiggleme to gun's on/off button, remove wiggleme position from SimStrings CVS tag hydrogenatom-0-00-04-2006-10-04 (10/4/06) - center align icons in Legend (10/4/06) - don't reset the clock when sim speed is changed (10/4/06) - add very kludgy ModelViewTransform, photons & alpha particles animating in atom box (10/4/06) - implement Model (10/4/06) - IModelObject marker interface for all objects that are part of the model (10/4/06) - PhotonNodeFactory for creating pnodes for photon model elements (10/4/06) - steal ModelViewManager concepts from molecular-reactions sim (10/4/06) - add public interface for creating Image to PhotonNode and AlphaParticleNode (10/4/06) - make AlphaParticleNode observer of AlphaParticle (10/4/06) - make PhotonNode observer of Photon (10/3/06) - change model to use radians (instead of degrees) for direction and orientation (10/3/06) - add DebugUtils for looking at Photon and AlphaParticle properties (10/3/06) - model Space that things move in and interact in (10/3/06) - generate random start location for photons and alpha particles along nozzle of gun (10/3/06) - use intensity to determine number of photons and alpha particles fired (10/3/06) - generate random wavelengths when creating photons for white light (10/3/06) - add wavelength range to Gun model (10/3/06) - make GunControlPanel a ChangeListener of its subpanels, set Gun properties (10/3/06) - make GunControlPanel an Observer of Gun, set subpanels (10/3/06) - fix Gun subpanels so that the ChangeEvent source is the subpanel, not the individual JComponents (10/3/06) - add lightType property to Gun (10/2/06) - make GunNode and BeamNode observers of Gun model (10/2/06) - change PhotonGun to "Gun" and make it capable of firing alpha particles, too (10/2/06) - config wiggle me's position in SimStrings file (10/2/06) - add a wiggle me to the gun on/off button (10/2/06) - remove all specific default for font sizes from HAConstants, rely on SimStrings (10/2/06) - use bold for all text, specify as HAConstants.DEFAULT_FONT_STYLE (10/2/06) - lighten blue electron, increase size by 1 pixel (10/2/06) - check how photon looks with UV color (good) (10/2/06) - change magenta photons in GunTypeControl and LegendPanel to some visible color (green) (9/27/06) - add StationaryObject, MovingObject, Photon, AlphaParticle, PhotonGun to model (9/27/06) - delete photon image and asset files (9/27/06) - revise photon look based on feedback CVS tag hydrogenatom-0-00-03-2006-09-27 (9/27/06) - convert some shape-based nodes to images for performance (9/27/06) - write "orb of light" photon in Java 2D CVS tag hydrogenatom-0-00-02-2006-09-26 (9/26/06) - try using new photon image (9/26/06) - add an electron to the energy diagrams (9/26/06) - encapsulate "Drawings are not to scale" in its own class (9/26/06) - distort orbits so that 6 orbits fit in animation region (9/26/06) - factor common code out of Bohr and deBroglie nodes (9/26/06) - update Spanish translations to include new stuff (9/26/06) - add a legend to both play area and Help menu (9/26/06) - add SimStrings.getChar, use it to get menu item mnemonics (9/25/06) - darken gun type panel background (9/25/06) - lighten Spectrometer snapshot panels (9/25/06) - add Options menu to menubar, with "deBroglie wave view" choices (9/25/06) - change gun control panel color to match purple gun (9/25/06) - lighten ModeSwitch and AtomicModelSelector panels (9/25/06) - shorten the horizontal lines on ModeSwitch (9/25/06) - delete electron, proton and alphaParticle image files (9/25/06) - generate Swing icons using ProtonNode and AlphaParticleNode (9/25/06) - collapse ProtonNode, NeutronNode, ElectronNode into one superclass (9/25/06) - create proton, neutron, electron images programmatically (9/25/06) - create RoundGradientPaint (9/22/06) - add separate resources for ModeSwitch big and small font size (9/22/06) - vertically center labels in AtomicModelSelector's continuum subpanel (9/22/06) - PSwing changes with Sam Reid to resolve problem with drawing transparent JComponents CVS tag hydrogenatom-0-00-01-2006-09-21 (9/21/06) - Sam McKagan requested that I start publishing dev versions CVS tag hydrogenatom-sandbox-2006-09-20 (9/20/06) - bugfix: couldn't drag spectrometer snapshots (pickable was set to false) (9/20/06) - make all font sizes configurable via SimStrings file (9/20/06) - configure animation region size in SimStrings file (9/20/06) - major work on canvas layout code (9/20/06) - move some constants out of module and into HAConstants (9/20/06) - cleanup module code (9/20/06) - use one node to draw animation box and perform clipping (9/19/06) - add "view" representation of photon and alpha particle (9/19/06) - added "view" representations of each atomic model, no animation (9/19/06) - set pickable flag = false for all non-interactive nodes and their children (9/19/06) - combine gun on/off control into GunNode (9/19/06) - make gun nozzle smaller CVS tag hydrogenatom-sandbox-2006-09-19 (9/19/06) - bugfix: beam should be white when "white" light type is selected (9/19/06) - make beam straight, no fan-out (9/18/06) - show a zoomed-in view of a little section of the box of hydrogen (9/18/06) - delete BlackBox (9/18/06) - make gun shoots a beam, color is white or monochromatic color (for light), or gray (for alpha particle) (9/18/06) - point gun up at a 3D box of hydrogen (9/18/06) - test harness for WavelengthControl (9/18/06) - lots of fixes/enhancements to WavelengthControl (9/18/06) - change UV and IR label on wavelength control, center them in their area (SM request) (9/14/06) - change canvas background to black (9/14/06) - move spectrometer checkbox above right of spectrometer CVS tag hydrogenatom-sandbox-2006-09-14 (9/14/06) - translate to Spanish and test layout (9/14/06) - change size and color of spectrometer image so it doesn't look the control panels (9/14/06) - separate gun control panel out of GunNode (9/14/06) - redo gun control panel, integrate gun type control, add sexy background (9/14/06) - move spectrometer close button to upper left corner (ala Windows) (9/14/06) - canvas layout tweaks (9/13/06) - add close button to spectrometer, put "Show" button behind spectrometer (9/13/06) - tweak canvas layout (9/13/06) - make black box significantly larger (9/13/06) - make energy diagrams slightly narrower (9/13/06) - rewrite AtomicModelSelector, icon-based, vertical (9/13/06) - change color of plum pudding to Color.RED to indicate positive charge (Sam McKagan's request) (9/13/06) - redo mode switch to be more "fun" (9/13/06) - change color of plum pudding to "plum" (0x993399) (9/11/06) - add y-axis to energy diagram (9/11/06) - bigger energy diagrams ala Discharge Lamps sim, draw placeholders using Java2D, delete images (9/11/06) - create and manage spectrometers snapshots (9/11/06) - title spectrometer snapshots with model name and snapshot# (9/11/06) - title dynamic spectrometer with "Photons emitted" (9/11/06) - add close icon to spectrometer snapshot (9/11/06) - remove start/stop, reset, and camera buttons from spectrometer snapshot (9/11/06) - new image for spectrometer, with title area (9/11/06) - image for spectrometer close button (9/11/06) - new gun on/off buttons (9/8/06) - remove title from gun type control panel (9/8/06) - implement module reset method for controls (9/8/06) - refactor methods out of module into a controller class (9/8/06) - make Piccolo graphic for black box using Java2D (9/8/06) - make images for electron, neutron, billard ball, plum pudding (9/7/06) - verified requirement that everything in the play area should resize when sim window is resized (9/7/06) - bugfix: behavior of white and monochromatic radio buttons is reversed (9/7/06) - discussed behavior of the various atomic models with Sam McKagan (9/7/06) - replaced HANode with PhetPNode (9/7/06) - fixed the way PhetPNode handles visibile and pickable flags (9/6/06) - add placeholders for visual representation of atomic models (9/6/06) - placeholder for spectrometer (9/6/06) - extend PNode to handle pickable property in setVisible (9/6/06) - add placeholder images for energy diagrams (9/6/06) - add "Show electron energy level diagram" checkbox (9/6/06) - add "Show spectrometer" checkbox (9/6/06) - add "Drawings are not to scale" label (9/6/06) - add atomic model selection control (9/6/06) - add experiment/prediction mode switch (9/6/06) - move contruction of control panels inside HAGunNode (9/6/06) - hook up internal handlers in gun controls, to hide/show controls and set colors properly (9/6/06) - add ability to set background/foreground color scheme for gun controls (9/6/06) - rewrite gun control panels to be Piccolo nodes, not JPanels, so WavelengthControl can be added (9/5/06) - click on wavelength control track to move to a value (9/5/06) - bugfix: type a bogus value into wavelength control, it beeps but doesn't reset to previous value (9/5/06) - clamp dragging of wavelength control to min/max range (9/5/06) - test wavelength control with scale applied (9/5/06) - enable range check for wavelength arg in WavelengthControl.setWavelength (9/5/06) - fill wavelength control cursor with same color as knob (9/5/06) - fix wavelength slider, cursor drags past minWavelength, can't reach maxWavelength (off by 3 nm) (9/5/06) - integrate drag handling into wavelength control's ConstrainedDragHandler (9/5/06) - consolidate/simplify UI update code for wavelength control (9/5/06) - add cursor to wavelength control (8/30/06) - move units outside textfield in wavelength control (8/30/06) - set wavelength control range of 90-780 nm (far UV, no far IR) (8/30/06) - WavelengthControl, a rewrite of spectrum slider for Piccolo (8/29/06) - rewrite gun control panels (8/29/06) - add "Gun Type" control (light or alpha particles) (8/28/06) - continue fleshing out light gun controls (8/25/06) - add control cable and control panel for gun (8/25/06) - fix gun on/off button images (8/25/06) - fix gun image (8/24/06) - add basic gun graphic with on/off button (8/24/06) - acquire gun image from QWI simulation, licensing cleared by Sam Reid (8/24/06) - add custom clock control panel (8/24/06) - create HAModule (8/24/06) - create HAApplication (8/10/06) - set up CVS commit notification (8/10/06) - create JNLP and SimStrings files (8/10/06) - set up project in CVS