Release notes for each V4 beta release are gathered here.
V4 is a major rewrite with changes on many levels so please be on the lookout for any bugs.
The main new functionality is that MoI is now a 64-bit program for both Windows and Mac and the Mac version is a native build and doesn't use Wineskin anymore.
New system requirements are Windows 7/8/10 64-bit or macOS 10.8 - 10.13 .
Polygon conversion can now use all your system memory instead of running into 32-bit memory limits.
A lot of various little quirky things should be tuned up for the Mac version.
The only known areas still not quite working yet are snap text labels and dotted/dashed line styles in viewports and Mac trackpad gestures aren't fully functional yet.
Fix for the frozen UI bug when restoring a maximized main window from a minimized or hidden state. Please let me know if you see it again.
Fix Mac deployment issue that was preventing things from working on OS X 10.8 and 10.9, MoI should run ok there now.
Fix font name bug where MoI V4 would overwrite the UI font name property that V3 uses in moi.ini and so the V3 UI font changed after you ran V4. They should now stay separate.
Fix bug where dropdown controls in commands wouldn't reinitialize to their last used value. Reported by bemfarmer in the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8675.204
Fix construction line snapping bug reported in the forum by Moujiik here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8675.119
Not a whole lot of changes, normally I would have waited until a bit more were batched up but the frozen UI bug was pretty significant so I wanted to try and nail that one down soon.
Saving to IGES and STEP files - fixed a bug where using .stp or .igs file extensions wasn't working on Mac.
Mac full screen mode - fix for the problem where the view controls window would show on the desktop space, sending you back to the desktop the first time you moved the mouse over a viewport after going to full screen. Please let me know if you see it again.
Updated shortcut key editor - Make the "Key" column expand to whatever width is necessary to show the longest key combo. Fixes problem reported in the forum by Metin here: http://moi3d.com/forum/messages.php?webtag=MOI&msg=8682.42
Viewport toolbar - fixed a bug where doing view manipulation using the bottom viewport toolbar could miss the mouse up event and get stuck.
Orientation picker - fixed a sporadic drawing bug with the orientation picker reported on the forum by Max here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8682.16
Shortcut keys with Shift - Fixed a bug in shortcut keys using shift + number keys. V4 was generating Shift+1 as Shift+! which was incompatible with V3, V3 would convert it back to Shift+1 which was then not recognized by V4. V4 should now generate Shift+1 for that key combination and not Shift+! anymore. Fixes a bug reported on the forum by Marco here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8682.50
Background images - Fixed a crash when making a background image from a bitmap file with lower than 32-bit color depth. Reported on the forum by Vladimir here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8682.100
Undo - Fixed a bug where undo wouldn't find the proper object to restore in some cases. Reported on the forum by Val here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8682.83
moi.geometryDatabase.findStyle() - fixed a bug in the findStyle() function for the "create if not found" case, reported on the forum by Max here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8682.16
obj.getBoundingBox() - The boolean parameter for getting high accuracy bounds was marked as required in v4, while in v3 it was optional with a default of false. Updated v4 to match v3.
moi.filesystem.openFileStream - switch to use QTextStream for reading to get better unicode support. Unicode files with byte order marks should be supported now, the default will be UTF-8 if no byte order mark is found. Also added new methods .setWriteBOM( boolean ) which you can call to make writing a text file write the byte order mark at the front (default is no BOM), and .setCodec( name ) to have specific control over what encoding to use for reading or writing. Supported codecs are listed here: http://doc.qt.io/qt-5/qtextcodec.html#details .
moi://appdata/ - add support for moi://appdata/ URLs so you can load HTML resources like images from the MoI app data directory. moi://appdata/ will resolve to %AppData%\Moi on Windows and to ~/Library/Application Support/Moi on Mac.
String to integer conversion - Updated so a string value of "1.0" will be successfully converted to an integer value of 1 rather than rejecting it. Fixes a change in behavior from v3 to v4 that broke some of Brian's scripts.
factory.setValue() - switched to v3 behavior so sending the wrong object type doesn't trigger an exception. Fixes the SpurGearProfile script.
Bug fixes and changes:
Mac full screen mode - getting sent back to the desktop the first time you moved the mouse over each viewport after going to full screen mode should be finally fixed! Also Ctrl+Cmd+F shortcut key for full screen toggle should now work.
Mac trackpad and Magic Mouse - Finished implementing multitouch view navigation for the trackpad and Magic Mouse on Mac. Magic Mouse should be back to zooming instead of panning. The Zoom speed can be adjusted in moi.ini [MultiTouch] MagicMouseZoomSpeed=1.0 . Change this to something like 2.0 to make the default behavior faster or 0.5 to go slower. You can also hold down the Ctrl key to go slower as well.
Updated "On" object snap mechanics - Changed the way On object snap for curves works to get better accuracy with curves far from the origin.
Incorrect default values for some commands - Fixed a bug where the default values for the Text and Rebuild commands were incorrect on locales that use commas for the decimal separator. Reported by Vladimir on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8704.32
Trim - fixed a bug in the Edit > Trim command where if an object was set to be both an object to be trimmed as well as a cutting object it could get hidden unexpectedly.
Command button highlighting - Fix for command buttons remaining highlighted after command ends. Reported by Vladimir on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8704.32
Read-only file handling - Fix bug where using File > Save wasn't prompting for a new file name when the current opened file was set to read-only. Reported in the forum by mhasse here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8714.1
Crash fix for newer CPU/Older OS combination - Fix for 0xc000001d illegal instruction exception when running on Win7 SP0 with a newer AVX-capable CPU.
Hidden-line generation - Increase Canvas megapixel size limit from 175 to 1000.
Degenerate box error - fixed bug where a script error would be displayed if you made a degenerate rectangle in any of the Draw solid > Box commands.
Update text input fields - Text input fields were only applying typed in values when the input panel was open, or when the Enter or Tab keys were pressed, not if just clicking outside the field as they now will. Should fix a PDF export dialog bug reported by reported by Moujiik here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8704.15
viewport.setCameraAndTarget() - Fixed bug in viewport.setCameraAndTarget() function, reported in the forum by Ralf here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8704.25
Process memory use limit - Added option in moi.ini for limiting maximum memory use - Windows only. Can be set in moi.ini under [Settings] MaxProcessMemoryUse=x . Requested by Burr on the forum here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8704.26
moi.view.screenshot - Fix bug where the moi.view.screenshot() method was capturing the wrong area of the screen on Mac.
Enable setting default values for controls from shortcut keys. UI controls can now be triggered or initialized with custom values if the control's id is supplied in the command-line parameters for the command. For buttons, the presence of the button's id value in command line parameters will trigger a UI event for the button the first time that it is shown, this will have the same effect as clicking the button. For dropdowns and checkboxes, the presence of the control's id in an id=value pair will use that value to initialize the control rather than taking the last used or default value as normal.
This makes it possible to set up shortcut keys that package up different options within commands, for example:
Trim addtrimpoints removekeepmode=keep
Trim addtrimpoints removekeepmode=remove
Trim isocurve isodir=u
Trim isocurve isodir=v