From 0.42c to 0.42d [?]:

- UI-layout on Win32 improved.
- Allowed canceling of user scripts by redefining while, for,
  forAll and forAllT to watch the "Ctrl-C" key in the console.
- Changed the ICurve custom object to rely on a child NURBCurve
  to get the points to interpolate from, benefits: operations
  that mess with the NURB curves control points (revert, insert,
  delete, refine) are now available for the ICurve.
- Improved the beveling mechanism for the Extrude custom object
  to cope with multiple control points.
- Object names are now written as comments to the RIB.
- Added a new view action "zoomToObject" (shortcut "Ctrl+o")
  that zooms and moves the view so that it displays the selected
  object(s).
- Wrote an Export-PlugIn for sPatch, that outputs a Mops scene file.
- Added support for multiple control points to the NURB curve object.
  There are now two new NURB tools "Collapse" and "Explode", which
  create and destroy multiple points for NURB curves.
- Changed the meaning of the "Closed" attribute of NURB curves,
  closed curves now always have p (order-1) equal points (using
  multiple points from the previous paragraph) at the start
  and end of the curve and always a B-Spline or Custom knot vector.
  (A NURB circle is not a "closed" curve following this definition!)
- Several NURB modeling tools handle the "Closed" attribute and multiple
  points in different ways than previous versions. Please reread
  the documentation if you experience strange things.
- Added new preference setting "ReadRiOpt" that determines whether
  RiOptions should be read from scene files.
- Added a Save-Preferences facility, that saves the current preferences
  to the mopsrc.
- When a single object is selected, the origin of its local coordinate
  system is drawn as the three well known colored lines.
- Added Interpolation option to the Sweep custom object, if enabled,
  the Sweep will interpolate all section curves.
- The distributed executables of The Mops are now wrapped using
  the brilliant Wrap0.3; this means that the executable is in
  fact a self extracting zip-archive carrying the Tcl-scripts
  and the button images (no need to set MOPSLIB anymore).
- The semantics for the handling of shader paths completely changed.
  The new internal preference setting "Shaders" takes precedence over
  the environment variable "SHADERS" and can be easily configured
  via the Prefs property GUI.
- Help starts now a configurable help viewer (default is netscape -remote)
  with a configurable document.
- Using Shift and the rightmost mouse button you can now move the
  camera in the direction it is looking.
- Scanning for shaders is now more robust. It works now with
  multiple compiled files for one shader (resulting from DSO-shaders
  that appear in BMRT2.5).
- Made The Mops more compatible with array shader arguments.
  This is an "atleast, it does not crash"-hack, which means
  array arguments are simply ignored internally. Still thinking
  about an appropriate GUI-element for arrays, a string entry field?

From 0.42b to 0.42c [17 Sep 1999]:

- Added two options to the mopsrc ("mainGeom" and "toolBoxGeom")
  that allow to set the geometry of the main window and the toolbox
  on startup.
- Handling of providing objects and instances improved, it is now
  possible to e.g. revolve instances of NURB curves, and even instances
  of NURB curve providing objects.
- Since using instances as childs of e.g. the Revolve custom object
  breaks automatic notification, you can now force the notification
  of selected objects, or all objects in the scene, using the new
  command "forceNot".
- Added a procedure "printHotKeys" that creates a pretty listing
  of the current hot key configuration for printing as reference sheet.
- Added mouse wheel support (Unix only) for views (zooming) and the
  main window (scrolling).
- Added RIB-export option "RIStandard" that determines whether
  non RI standard options/attributes should be written into the RIB.
- Added a new command "splitNC" that splits a NURB curve at a given
  parameter value into two new curves using knot insertion.
- When switching from a perspective view to a parallel view The Mops
  keeps the zoom factor of the view now.
- Create-TrimRect creates now a simple closed rectangular curve, when
  the current level is not inside a NURBPatch.
- All Mops windows may be iconified at once using the new shortcut
  "Ctrl+z" (procedure: "hideMops").
- The toolbox has now much more buttons with nice icons and tooltips.
- Added a new command "refineNC", which refines the knot vector
  of a NURB curve.
- Added a new command "projectNC", which projects a point in space
  on a NURB curve.
- Added a new command "elevateNC", which elevates the degree of
  a NURB curve.
- 3DMF export can now export instances (but resolved!) and objects
  that provide e.g. NURB patches or NURB curves (revolve, sweep etc.).
- Added a new custom object named "Skin", that replaces the old
  "build from curves". In contrast to "build from curves", "Skin"
  is able to deal with curves of arbitrary length and order!
- Added "LazyNotify" preference setting. If this is enabled the
  interactive modeling actions will do the notification just once
  on release of the mouse button.
- Added new command "clampNC" that clamps the knot vector
  of e.g. a B-Spline curve.
- Added a new mode of interpolation (Global4D) to the ICurve custom object.
- Added a new action FindU, that returns a certain parametric
  value on a NURB curve according to a picked point on that curve.
- Added a SplitCurve action, that splits a NURB curve at
  a picked point on the curve.


From 0.42a5 to 0.42b [20 Jun 1999]:

- POTENTIAL INCOMPATIBILITY: The light objects have changed
  a lot again. Light positions/directions may get mangled
  when reading old scenes if:
  o the lights are of type point, spot, distant and
    "from" and "to" are in use (this affects nearly all lights, sorry)
  o the lights are of type custom and their transformation
    attributes are changed
  o the lights are in transformed levels
  But what changed? All lights may use the Transformations
  property to change position/direction. All lights may
  be transformed by transformed levels now.
  Lights of type point, distant and spot have a
  fixed "from" (0,0,0) and a fixed "to" (0,0,-10) now.
- The check for lights on RIB export may be switched off in
  the preferences now.
- The NURBCurveAttr and NURBPatchAttr properties are now
  much more careful with changed values, no illegal
  NURB specification (that could possibly crash GLU)
  will escape anymore.
- Changing the length of a NURBCurve will result in
  the new control points inserted between the old points now.
- Changing the width/height of a NURB patch is finally implemented.
- The new custom object ICurve creates interpolating
  splines. (It is statically compiled into The Mops.)
- A new mechanism allows custom objects of arbitrary types
  to "provide" objects of different types. The new ICurve custom
  object provides a NURBCurve and thus can be used as generating
  curve for revolve, extrude and sweep.
- mopsrc logic changed: if the environment variable "MOPSRC"
  exists this file will always be used,
  regardless of an existing ~/.mopsrc
- The Tag system now has a property GUI (a simple text widget).
- Objects may be hidden in the modeler using the new visibility
  attribute "Editor" (this helps a lot, when redraws of complex
  scenes are slow). Check "Hide"/"Show" in the Tools Menu.
- New object type "Instance". Instancing is a way to reduce
  storage requirements for scenes with lots of similar objects.
- Objects are now automatically selected when created.
- New tool "convert" calls the registered converter for the
  selected object, Instances are resolved, Revolve objects are
  exported to NURB patches etc.
- MoveView and ZoomView are now bound to Mouse3 and Mouse2
  permanently.
- Interactive rotation of views improved.
- Grids for parallel views are not limited to 100*100 lines anymore.
- There are two new RiOptions (Width and Height) that override
  the dimensions given by the View that is exported to RIB.
- New preference setting "UpdateTrafo" controls, whether
  interactive modeling actions should apply their changes to
  the Transformations property automatically.
- Custom Objects may now check the version of the Mops they
  are loaded into more easily.
- Installation procedure improved (there are now install/uninstall
  targets in the makefiles).
- Interactive movement of views improved.
- The revolve custom object has a new parameter: ThetaMax.
- The extrude custom object has been enhanced a lot:
  there are now holes and bevels (three types of beveling are
  available: round, linear, ridge) with adjustable radius.
- The documentation has been indexed.
- The Mops keeps just a configurable number of temporary files
  on disk now, see mopsrc.
  

From 0.42a4 to 0.42a5 [02 Feb 1999]:

- Shader lists are now sorted alphabetically.
- All shader property GUIs contain a "delete this shader"
  button now.
- The sample mopsrc contains now another little helper procedure:
  "reverseOrder".
- A new NURB tool that concatenates two NURB curves is
  available now.
- All interactive modeling actions have been changed to
  respect grids.
- Most keyboard shortcuts are now configurable through the
  file mopsrc.
- Three new commands for the Tcl scripting interface have
  been implemented: "movSel", "rotSel" and "scalSel" transform
  groups of selected points.
- When selecting points using a click and drag, the selected
  region is drawn as a rectangle now.
- The light objects have been improved a lot, lights can be
  switched off now and there are new types (point, distant
  and spot) of lights that may be transformed with
  the standard modeling actions.
- A tag system has been implemented, objects may have e.g. new non
  standard RenderMan Interface Attributes attached without the
  need to hack up the RIB export code.
  In fact, "RiAttrib" is the only tag type that has been
  implemented by now. There is no GUI interface to the tag system
  at present, just two commands in the scripting interface
  "setTags" and "getTags".


From 0.42a3 to 0.42a4 [22 Dec 1998]:

- Scene file format changed in an incompatible way.
  Use "tools/convert" to convert old scenes to the new format.
- Mops now saves the positions of the view windows in the scene files,
  (however, moving of windows to their original positions
  upon loading might not work well, depending on the
  window manager used).
- Saving of view windows may be omitted completely
  using the new preference setting "SaveViews".
- The new attributes (new in V2.4 of BMRT) for visibility
  are supported now.
- A new command "delegateTran" delegates all transformations
  of a level object to its child objects resetting
  the transformations of the level.
- The create custom object listbox has been converted
  to a cascaded menu.
- A new action "SelectPoints" allows selection of a group
  of points of a NURB curve, NURB patch or custom object
  by picking them.
- The new action "DeselectPoints" deletes such a group from
  an object.
- All interactive modeling actions have been rewritten to
  work with groups of selected points.
- There is a real two dimensional scale action now; the old
  "Scale2D" has been renamed to "Stretch2D".
- For groups of selected points only are the new actions
  "ScaleXWorld", "ScaleYWorld" and "ScaleZWorld"; hotkeys X, Y and Z.
- Direct point editing of multiple points (e.g. of closed curves)
  changes all points at once now.
- New interactive actions "ZoomView" and "RotateView" are available
  now, they were bound to keyboard commands (e.g. cursor keys) only
  in 0.42a3.
- The Quick-Rendering mechanism has been changed. It is now possible
  to define the exact command to be executed using the new
  preference settings "QRender" and "Render". The settings
  "RenderInBG", "QRenderer", "rglExtraArgs" and "rendribExtraArgs"
  are gone!
- Mops may now be linked with the simple RIB writer lib from the
  Affine Toolkit _and_ with libslcargs from BMRT.
- Mops has been ported to the Win32 platform. Due to the fact,
  that the libribout of BMRT2.4 still has C++ linkage, the
  available precompiled binaries for Windows are linked
  with the simple RIB writer from the Affine Toolkit.


From 0.42a2 to 0.42a3 [17 Nov 1998]:

- Many bugs fixed.
- The forAll Tcl command is now able to recurse through
  the scene.
- New command forAllT works like forAll but performs an
  additional typecheck.
- Objects may now have no color attribute setting with
  the introduction of the special color value "-1".
  (you may color a whole sub tree with just one color setting now)
- Color property GUI element improved: <Return> in any of the
  entries instantly updates the colored button.
- Insert and delete point actions do not break up closed curves anymore.
- Insert point performs knot insertion (where applicable):
  new control points may be added without changing the shape
  of the curve.
- New Tcl interface command "insKn" (insert knot) inserts
  a new knot at a given parameter value.
- Support for radiosity attributes (AverageColor, EmissionColor
  SpecularColor, PatchSize, ElemSize, MinSize, Zonal, HasCaustics) added.
- The interface of the delShader command has been improved.
  It directly accepts the arguments atmosphere, interior and exterior now.
- Mops may be called with a number of Mops scene files as
  arguments now. The first file specified will be loaded
  using replace the others using insert.
- Objects are now always created as last object of the
  current hierarchy level.
- Objects may exchange their position in the current hierarchy level
  using the new Swap menu entry in the edit menu.
- An interactive action named "Rotate About" has been added.
- The Revolve, Extrude and Sweep custom objects may be exported to
  ordinary NURB patches using the new commands "revolveCNP",
  "extrudeCNP" and "sweepCNP". Caps are exported too, if present.
- Mops online help (simply a text widget, that displays
  mops.txt from the doc subdirectory) has been added.
- A single level undo for the interactive actions has been implemented.
- A new custom object "Shell" for seashell objects is
  included in the distribution as demo version now.
- Tcl interface documentation improved again.
- As of release 2.4 of BMRT there is no "rendribv" anymore. "rendribv"
  is no longer available as quick rendering program in Mops, consequently.
- For full control of rendrib and rgl check mopsrc, it contains
  special variables named rendribExtraArgs and rglExtraArgs.
- Mops now automatically includes a lightsource of type
  distantlight at camera position, if the scene contains 
  no light objects when exporting to RIB.


From 0.42a1 to 0.42a2 [09 Oct 1998]:

- Some more bugs (including a really bad memory leak) fixed.
- Added support for closed B-Spline curves.
- Added support for AreaLights.
- RIBs do not contain PixelSamples _and_ PixelVariance directives anymore.
- Since some GLU implementations tend to crash if they see wrong
  knot sequences, the NURB Curve/Patch properties and delete and insert
  point actions are much more careful with the knots.
  They additionally convert the order(s) of a curve/patch if
  knot type is Bezier and the length (width, height) does not
  match the order(s).
- Added support for a file "~/.mopsrc" that will be sourced on startup.
- Mops scene file and dirname quirks while loading and saving resolved.
- New custom object Revolve (linked statically into the exe).
  Keeps the generating curve editable as child.
  Automagically generates caps.
- New custom object Extrude (linked statically into the exe).
  Keeps the generating curve editable as child.
  Automagically generates caps.
- New custom object Sweep (linked statically into the exe).
  Keeps the generating curves editable as child.
- Custom objects may be parents of other objects now.
- Added a notification mechanism to the custom object interface.
- Added createClosedBSpline tool.
- Objects may be named freely.
- Documentation for writing custom objects is available now in doc/sdk.
- Tcl scripting interface partially documented.


From 0.42a to 0.42a1 [15 Sep 1998]:

- Numerous bugs fixed.
- Views draw a colored coordinate system now
  X-axis - red, Y-axis - green, Z-axis blue.
- Selected objects will get drawn in white, the rest in a darker blue.
- Grids are drawn in a dark grey, 'under' everything else.
- Default camera settings of perspective views changed, (try Ctrl+p!).
- Picking should work much better now, as the picking handles
  are drawn 'on top' of everything now
- Quick Rendering may now use rgl.
- Quick Rendering is now per default in background, the scene will be
  written to a temporary file, then the appropriate renderer will
  be started in the background, thus leaving Mops usable while rendering.
  Control this feature with "RenderInBG" in the prefs.
- Views are now sub objects of the Scene object, their parameters
  (camera settings etc.) may now be copied from one view to another
  using the property clipboard, consequently.
- There is a new toplevel window named "Tools". Most interactive actions
  may be started from here.
- New actions: insert and delete points are available for NURB curves.
- New special RIB export filename "Scene" (this is the new default filename),
  the RIB file will get the same name as the currently loaded scene
  (with the last extension replaced by ".rib").
- Property GUI's are not completely redrawn for every apply, if they
  are static.
- Main window automagically resizes to current Property GUI,
  this can be switched off in the prefs.
- There is a new menuentry "Inverse Copy Prop" for copying just
  the marked parameters of a property.
- Shader-scene files are available for those that are without
  libribout and libslcargs on exotic platforms.

[17 Aug 1998 first public release]
