Moved a method Transform loadDirectionXForm() down from UnitLoadPallet to UnitLoad.
public class UnitLoad extends CoreObject { /** * Transform for load direction. */ extend public Transform loadDirectionXForm() { return null; } }
Updated interface of method bool eq. Added a new optional argument str->Object args=null.
public class UnitLoad extends CoreObject { Old: extend public bool eq(UnitLoad m) { New: extend public bool eq(UnitLoad m, str->Object args=null) { }
At the moment, only one value in args is used in this method, "propsToIgnore"->str[] which can be used to ignore specific props in specific equality checks. It serves as an alternative to overriding str[] propsIgnoreEqCheck() which will ignore the props for all equality checks of that UnitLoad.
public class UnitLoad extends CoreObject { /** * Equal? */ extend public bool eq(UnitLoad m, str->Object args=null) { ... ?str[] propsToIgnore = args.?get("propsToIgnore"); if (propsToIgnore) propsToIgnore += propsIgnoreEqCheck(); else propsToIgnore = propsIgnoreEqCheck(); for (k in propDefs.order) { if (k in propsToIgnore) continue; ... } } }
As a result of this change, we have also removed the function bool unitLoadEq(UnitLoad unitLoad, UnitLoad l). Previous calls to this function have been replaced by directly calling the eq(UnitLoad m, str->Object args=null) method.
Removed: public bool unitLoadEq(UnitLoad unitLoad, UnitLoad l) { return unitLoad.eq(l); } Example usage: unitLoad.eq(l);
Added a new method MhPalletLoadSide getLoadDirection() so that UnitLoad can return a direction value. This value was previously only used in UnitLoadPallet but now there is an interface so that other unit load classes can return a direction as well.
public class UnitLoad extends CoreObject { /** * Get load direction. */ extend public MhPalletLoadSide getLoadDirection() { return null; } }
Updated the interface of method Primitive3D loadDir3D. The argument UnitLoadPallet pallet has been widened to UnitLoad ul.
public class UnitLoadPreviewSnapper extends UnitLoadSnapper { Old: extend public Primitive3D loadDir3D(UnitLoadPallet pallet) { New: extend public Primitive3D loadDir3D(UnitLoad ul) { }
Previous implementations of loadDir3D(UnitLoadPallet ul) would often access a direction value mhPalletLoadSide that was previously only available to UnitLoadPallet. You can switch those calls over to UnitLoad.getLoadDirection() instead without needing to cast to UnitLoadPallet.
Example: public class UnitLoadPreviewSnapper extends UnitLoadSnapper { /** * Load Direction Arrow 3D. */ extend public Primitive3D loadDir3D(UnitLoad ul) { MhPalletLoadSide dir = ul.getLoadDirection(); if (!dir) return null; ... } }
Updated the interface of method void zoomToPreview. The argument Snapper s has been removed. The reason for this is we have switched the previous implementation of zooming in to a specific snapper's bound to a zoomExtents of the view.
public class UnitLoadDialog extends DialogWindow { Old: extend public void zoomToPreview(Snapper s) { if (!preview3D or !preview3D.space) return; if (!s) { for (ns in preview3D.space.snappers) { s = ns; } } if (!s) return; disableUndo { preview3D.zoomBound(s.bound); } } New: extend public void zoomToPreview() { if (!preview3D or !preview3D.space) return; if (preview3D.space.snappers.empty) return; preview3D.zoomExtents(undoable=false); } }
Updated the interface of method void zoomToPreview. The argument Snapper s has been removed. The reason for this is we have switched the previous implementation of zooming in to a specific snapper's bound to a zoomExtents of the view.
public class UnitLoadTemplateSelectorDialog extends DialogWindow { Old: extend public void zoomToPreview(Snapper s) { if (!preview3D or !preview3D.space) return; if (!s) { for (ns in preview3D.space.snappers) { s = ns; } } if (!s) return; disableUndo { preview3D.zoomBound(s.bound); } } New: extend public void zoomToPreview() { if (!preview3D or !preview3D.space) return; if (preview3D.space.snappers.empty) return; preview3D.zoomExtents(undoable=false); } }
The class MhUserSettings has been renamed to UnitLoadUserSettings.
The global function MhUserSettings mhUserSettings() has been replaced by UnitLoadUserSettings ulUserSettings().
Old: public class MhUserSettings extends UserSettings { New: public class UnitLoadUserSettings extends UserSettings { Old: public MhUserSettings mhUserSettings() { New: public UnitLoadUserSettings ulUserSettings() {