Changes 6.2.0

From emergent
Jump to: navigation, search

Back to ChangeLog -- Svn Checkin Log for 6.2.0

This documents changes since 6.1.0 -- see Changes 6.1.0 for info on that release.

Major Changes

  • Complete overhaul of the entire codebase, and the maketa system for getting type information, breaking each of our previously-massive files into separate files for each class object. Also a massive renaming, especially of the gui classes, so that name follows function much more closely -- see Gui Overview. This makes project files saved in 6.2 not fully readable in prior versions -- the files will load, but some gui view information will not be loaded. The net result for the developer is that the typical recompile times will be relatively short, even though the full recompile time is actually quite a bit longer. And it is now deterministic to find where code is, and what it depends upon -- should make it much easier for people to access and understand the code. Also, the maketa parser was upgraded significantly to deal with a much broader swath of C++ code, including sub-classes within a class, and many more features of templates.
  • Any existing Plugins will need to be updated for this version -- see Plugins_v6.2 for all the details on what you need to do.
  • ClusterRun -- automatic cluster or other compute server job submission and management -- manage everything from within the emergent system using a convenient gui.
  • TwoD NetView mode -- lays out everything in one big flat panel -- can be easier to see everything at once in a big complicated network.

Minor Changes

  • Matrix now supports copying based on the slicing and other ways of specifying a subset of matrix elements -- this is incredibly powerful for composing larger patterns out of smaller matrix pattern pieces, and for replicating patterns in various ways. See docs under Matrix for full details.
  • Renamed all the ta_geometry classes to more standard names like taVector3f, taVector2i etc instead of things like FloatTDCoord and TwoDGeom -- these old names are still avail for backward compatibility, but please use the new names going forward. Also added a taQuaternion for more powerful rotation calculations.
  • VEBody and VEStatic can now be positioned, etc relative to other bodies -- often much easier than absolute coordinates.

Bug Fixes

  • Lots of fixes to Virtual Environment system: Much clearer naming of methods, e.g., Init instead of "SetValsToODE", better sync'ing with ODE and a CurToODE method for explicitly updating ODE from changes to current values. Support for Euler angles to specify rotation, and use of a taQuaternion class that provides direct access to all manner of handy 3D rotation functionality -- VEBody objs have an init_quat and a cur_quat that has this quaternion reflecting current state. Also handling of the long_axis of capsules and cylinders is now vastly improved -- dragging works as expected, updates are immediately reflected, and internally these are always in the ODE-consistent LONG_Z state.
  • LeabraLayerSpec unit-group shared inhibition flag gp_i (and associated gp_g) settings were not being properly migrated to the new unit_gp_inhib (same with layer_gp_inhib, which is even more rarely used) -- wasn't setting the spec unique flag so changes were being lost -- now fixed. Double-check any projects that might have used this (probably this would have been found already) to make sure this param was not lost..