All removed/modified interfaces. See specific sections for more details on what migration changes need to be made.
Old: public class MhFrameUpdateBayHeightFunction extends MhSystemEngineFunction { New: public class MhFrameHeightChangeUpdateBayFunction extends MhSystemEngineFunction { Old: public bool isBack2(Object o) { return evalClassification(o, sBack); } New: public bool isBack(Object o) { return evalClassification(o, sBack); } Old: public bool isBack(Object o) { return evalClassification(o, sBackRow); } New: public bool isBackRow(Object o) { return evalClassification(o, sBackRow); } Old: public MhSnapper[] getAllRowsRecursive(MhSnapper snapper, bool top=false, bool reverse=true, Snapper{} visited=null) { New: public MhSnapper[] getAllRowsRecursive(MhSnapper snapper, bool top=false, Snapper{} visited=null) { Old: public double mhCalculatedBayHeightForConstruction(MhSystemConfigurationItem this, MhSnapper bay, int numLevels, bool loadOnFloor=true, bool loadWithinLimit=true) { New: public double mhCalculatedBayHeightForConstruction(MhSystemConfigurationItem this, MhSnapper bay, int numLevels, bool loadOnFloor=true, bool loadWithinLimit=true, bool forceConstruct=false) { Old: public class MhDbgSpaceViewer extends DialogWindow { New: public class MhDebugSpaceViewerDialog extends DialogWindow { Old: public class MhBayCollisionAlternative extends MhDoubleStepRangeCollisionAlternative { New: public class MhRowChildCollisionAlternative extends MhSubSetCollisionAlternative { Old: public class MhDoubleStepRangeCollisionAlternative extends MhCollisionAlternative { New: public class MhSubSetCollisionAlternative extends MhCollisionAlternative { Old: public CollisionPrimitive localCollisionPrimitive(MhSnapper this) : inline, deprecated { Old: public CollisionPrimitive localCollisionPrimitive(MhSnapper this, MhCollisionFetchEnv env) : inline { New: public CollisionPrimitive localCollisionPrimitive(MhSnapper this, MhCollisionFetchEnv env=null) : inline { Removed: public bool isArm(Snapper snapper) { return evalClassification(snapper, sArm); } Removed: public void mhStorageRegisterFunctions(CxFunction[] functions, symbol pkg=null) { Removed: public void mhStoragePutNextPkgLookup(symbol pkg, symbol next) { Removed: public class MhBayAndPalletsGfxBehavior extends MhBayGfxBehavior { Removed: public class MhCollisionEntrySnapperFilter extends MhCollisionSnapperFilter : deprecated { Removed: public class MhBayStretchSymFunction extends MhSystemEngineFunction : deprecated { Removed: public class MhBayStretch3DFunction extends MhSystemEngineFunction : deprecated { Removed: public class MhDoubleDeepLevelLinkFunction extends MhSystemEngineFunction : deprecated { Removed: public class MhLevelLinkFunction extends MhSystemEngineFunction : deprecated { Removed: public class MhRowSystemSymFunction extends MhSystemEngineFunction : deprecated { Removed: public class MhRowSystem2DFunction extends MhRowSystemSymFunction : deprecated { Removed: public class MhRowSystem3DFunction extends MhRowSystemSymFunction : deprecated { Removed: public class MhUnitLoadFixedStepPrimPopulator2 extends MhPopulator : deprecated { Removed: public class MhUnitLoadStepPrimPopulator extends MhPopulator : deprecated { Removed: public class MhStorageEngineStretchVessel extends MhStretchVessel : deprecated { Removed: public class MhStorageEditorDifferentExtensionDialog extends ModalDialog : deprecated { Removed: public class MhEngineOverrideFunctionInfo { public class MhSnapper extends Snapper { - Removed: extend public box localBound(symbol[] symbols) : deprecated { - Removed: extend public CollisionPrimitive collisionPrimitive(Transform t, bool includeChildren, Object env=null) : deprecated { - Removed: extend public void putEngineEntryDim(str key, double v) : deprecated { - Old: extend public MhSnapper getSnapperReplacementForPickupApply() : deprecated { - Old: extend public MhSnapper getSnapperReplacementForPickupApply(CoreObject candidate) : deprecated { - New: extend public MhSnapper getSnapperReplacementForPickupApply(CoreObject candidate=null) { public class MhSnapperShape extends CorePropObj { - Old: extend public MhSnapper getSnapperReplacementForPickupApply() : deprecated { - Old: extend public MhSnapper getSnapperReplacementForPickupApply(CoreObject candidate) { - New: extend public MhSnapper getSnapperReplacementForPickupApply(CoreObject candidate=null) { public class MhBehavior extends CoreObject { - Removed: extend public bool allowTrySnap(MhSnapper snapper, MhTrySnapAlternative alternative) : deprecated { public class MhSystemConfiguration extends CoreObject { - Removed: extend public void showPackageInfoMismatchDialog() { } // See Old engine removal section - Removed: extend public symbol functionPath() { public class MhApplyColorFrameVessel extends MhSpreadColorFrameVessel { - Removed: extend public bool useStrictClassification() : deprecated { public class MhAssortment extends CorePropObj { - Removed: extend public MhEngine engine() : deprecated { - Removed: public symbol functionPath - Removed: public bool useEngineFuncG2 : stream=null - Removed: extend public bool useEngineFuncG2() { public class MhEngineManager extends CoreObject { - Removed: public MhEngine->MhEngineRun engineRuns : deprecated; - Removed: extend public bool useEngineFuncG2() { - Removed: extend public void ensureConfiguration(MhEngine engine, str->Object args) { } public class MhEngine extends CxEngine { - Removed: public void mhRegisterEngineFunction(MhEngine engine, CxFunction func, symbol pkg=null) { - Removed: public void mhPutEngineNextPkgLookup(MhEngine engine, symbol pkg, symbol next) { - Removed: final public symbol functionPath() { - Removed: final public void setFunctionPath(symbol functionPath) { public class MhEngineBehavior extends MhBehavior : inherit constructors { - Removed: extend public void putEngineEntryDim(MhSnapper snapper, str key, double v) : deprecated { - Removed: extend public symbol functionPath(MhSnapper snapper) { - Removed: extend public bool useEngineFuncG2(MhSnapper snapper) { - Removed: extend public void putEngineRunFunctions(MhSnapper snapper, symbol event="", Object env=null) { - Old: extend public void fetchEngineFunctionsRunG2(MhEngineFunctionRun[] functions, MhSnapper snapper, symbol event="", Object env=null) { - New: extend public void fetchEngineFunctionsRun(MhEngineFunctionRun[] functions, MhSnapper snapper, symbol event="", Object env=null) { - Old: extend public MhPreprocessArgsEnv preprocessFuncArgsG2(MhEngineFunctionRun[] functions, MhSnapper snapper, symbol event="", Object env=null) { - New: extend public MhPreprocessArgsEnv preprocessFuncArgs(MhEngineFunctionRun[] functions, MhSnapper snapper, symbol event="", Object env=null) { - Old: extend public str->Object engineFunctionArgsG2(MhSnapper snapper, MhEngineFunctionRun func, symbol event="", MhPreprocessArgsEnv preprocessArgs=null, Object env=null) { - New: extend public str->Object engineFunctionArgs(MhSnapper snapper, MhEngineFunctionRun func, symbol event="", MhPreprocessArgsEnv preprocessArgs=null, Object env=null) { - Old: extend public bool acceptFunctionRunG2(MhSnapper snapper, MhEngineFunctionRun func, symbol event="", Object env=null) { - New: extend public bool acceptFunctionRun(MhSnapper snapper, MhEngineFunctionRun func, symbol event="", Object env=null) { public class MhEngineFunctionLibrary extends CxFunctionLibrary { - Removed: public MhEngineOverrideFunctionInfo overrideInfo - Removed: public symbol->symbol nextFunctionLookupPkgs - Removed: extend public void register(CxFunction fun, symbol pkg) { - Removed: extend public void putNextPkgLookup(symbol path, symbol next) { - Removed: extend public void optimizeFunctionsOrder(MhSystemConfiguration config) { - Old: final public CxFunction getFunction(str key, symbol path, bool finalize) : deprecated { - Old: final public CxFunction getFunction(str key, symbol path) { - New: final public CxFunction getFunction(str key) { public class MhEngineSnapperEntry extends MhEngineBoxEntry : inherit constructors { - Removed: extend public MhEngineSnapperEntry zeroTransformSnapperEntry() : deprecated { public class MhSnapperApplyAnimation extends MhSnapperSpreadToolAnimation { - Removed: extend public MhSnapper snapperReplacement(MhSnapper pickedUp) : deprecated { public class MhBayBracingBehavior extends MhBehavior { - Removed: extend public bool topBracing(int bayIndex) : deprecated { return true; } - Removed: extend public bool backBracing(int bayIndex) : deprecated { return true; } - Old: extend public Graph cross2D(rect r) { - New: extend public Graph cross2D(rect r, double z) { public class MhRowAnimationEngineGfxBehavior extends MhGenericEngineGfxBehavior { - Removed: extend public GMaterial3D entryMaterial3D(MhEngineEntry entry) : deprecated { - Removed: extend public color entryColor(MhEngineEntry entry) : deprecated { public class MhLevelArrangeFunction extends MhSystemEngineFunction { - Removed: public Bool maintainLowestLevel : deprecated; - Removed: extend public double standOnZ(MhEngineEntry entry) : deprecated { - Removed: extend public MhPopulator populator(MhEngineEntry edit) : deprecated { - Removed: extend public bool shouldMoveLevel(MhEngine engine, MhEngineBoxEntry entry, MhEngineBoxEntry lastEntry, double diff, double fixedLimit, bool isLowestLevel) { - New: extend public bool shouldMoveLevel(MhEngine engine, MhEngineBoxEntry entry, MhEngineBoxEntry lastEntry, double diff, double fixedLimit) { public class MhAisleUpdateWidthFunction extends MhSystemEngineFunction { - Removed: extend public box localBoundIncludingChildren(MhEngineEntry entry, Transform t, MhEngine engine) { - Removed: extend public box localBoundIncludingChildren(MhEngineEntry entry, Transform t, MhEngine engine, LayerSet ls) { - New: extend public box localBoundIncludingChildren(MhEngineEntry entry, Transform t, MhEngine engine, LayerSet ls=null) { public class MhRowSystemCollisionAdjustToFlue extends MhRowSystemCollisionSolution { - Removed: extend public void alignYToColumns(MhEngineEntryBlock[] blocks, double columnY, bool up, int &lastIndex) : deprecated { - Removed: extend public int findBestFlueSpaceIndex(MhEngineEntryBlock[] blocks, double columnY, bool up, int lastIndex=0) : deprecated { public class MhLevelShape extends MhBoxSnapperShape { - Removed: extend public void unstreamStoredSpec(ObjectFormatter formatter) : deprecated { public class MhBayEditConfiguration extends MhStorageEditorConfiguration { - Removed: extend public void overrideFramesMaterial() : deprecated { - Removed: extend public void overrideFrameMaterial(Snapper snapper) : deprecated { public class MhBayLevelEditorItem extends MhBayEditorItem { - Removed: extend public MhClearanceBehavior bayEditorLevelClearanceBehavior(double newLevelClearance) : deprecated { - Removed: extend public int clearanceSpecId(World w=null) : deprecated { public class MhBayEditorLevelClearanceBehavior extends MhClearanceBehavior : unstreamable { - Removed: public constructor(double levelClearanceZ) : deprecated { public class MhSnapperSpreadVessel extends Vessel { - Old: extend public bool showIntervalProps(Object currentSpread=this."spreadPattern") - New: extend public bool showIntervalProps() public class MhRunEngineEnv { - Old: public constructor(bool cleanup=true, bool blockImport=false, bool blockExport=false, bool blockFinalize=true, bool removeFailedEntry=false, bool showProgressBar=false) { - New: public constructor(Space space=null, bool cleanup=true, bool blockImport=false, bool blockExport=false, bool blockFinalize=true, bool removeFailedEntry=false, MhSnapper initiator=null, bool showProgressBar=false) { } public class MhRowLegendInfoBehavior extends MhBehavior : abstract { - Removed: extend public MhGridColumnEnv[] columns(MhSnapper row) : abstract, deprecated { } - Removed: extend public str->MhRowLegendInfo[] getRowInfos(MhSnapper row) : abstract, deprecated { } public class MhRowLocationLegendBehavior extends MhRowLegendInfoBehavior { - Removed: extend public str{} getUniqueUnitLoadsKeys(MhSnapper[] rows) : deprecated { public class MhBayRowEngineBehavior extends MhEngineBehavior - Removed: extend public void putAisleUpdateFunctions(MhEngine engine, MhSnapper snapper, bool top) { - Removed: extend public void putAisleUpdateFunctions(MhEngine engine, MhSnapper snapper) { - Removed: extend public void putAisleUpdateFunctions(MhEngine engine, MhSnapper snapper, MhSnapper aisleRow, MhSnapper topRow, MhSnapper downRow) { - Old: extend public MhSnapper[] propagatingRows(MhSnapper snapper, MhSnapperChangedEnv env) - New: extend public MhSnapper{} propagatingRows(MhSnapper snapper, MhSnapperChangedEnv env) - Old: extend public void collectPropagatingRow(MhSnapper snapper, MhSnapperChangedEnv env, MhSnapper[] res) - New: extend public void collectPropagatingRow(MhSnapper snapper, MhSnapperChangedEnv env, MhSnapper{} res) - Old: extend public void collectSelectionPropagatingRow(MhSnapper snapper, MhSnapperChangedEnv env, MhSnapper[] res) - New: extend public void collectSelectionPropagatingRow(MhSnapper snapper, MhSnapperChangedEnv env, MhSnapper{} res) - Old: extend public void appendForcedPropagations(MhSnapperChangedEnv env, str key, MhSnapper[] res) - New: extend public void appendForcedPropagations(MhSnapperChangedEnv env, str key, MhSnapper{} res) - Old: extend public void appendSnapperPropagations(MhSnapper s, MhSnapperChangedEnv env, str key, MhSnapper[] res) - New: extend public void appendSnapperPropagations(MhSnapper s, MhSnapperChangedEnv env, str key, MhSnapper{} res) - Old: extend public void appendPropagationRowChildren(MhSnapper row, MhSnapperChangedEnv env, str key, MhSnapper[] res) - New: extend public void appendPropagationRowChildren(MhSnapper row, MhSnapperChangedEnv env, str key, MhSnapper{} res) - Old: extend public void finalizePropagatingSnappers(MhSnapperChangedEnv env, str key, MhSnapper[] res) - New: extend public void finalizePropagatingSnappers(MhSnapperChangedEnv env, str key, MhSnapper{} res) public class MhRowSnapperSpawner extends MhStorageSpawner { // This is replaced with normal `customEngineBehaviors` call. - Removed: extend public MhBehavior[] engineBehavior() { public class MhInsertHeightBehavior extends MhBehavior { - Removed: extend public SubSet heightDomain(MhSnapper toSnapper=null) { - New: extend public SubSet heightDomain(Snapper owner, MhSnapper toSnapper=null) { public class MhStorageConfiguration extends MhSystemConfiguration { - Old: extend public MhConfiguratorPreviewSpace previewSpace() - New: extend public MhConfiguratorPreviewSpace previewSpace(bool initIfNull=true) public class MhInsertHeightBehavior extends MhBehavior { - Removed: extend public double resolveZPos(MhSnapper owner, double z, MhCollisionAlternative alt, CollisionPrimitive ownerPrims, vector dir) { - New: extend public double resolveZPos(MhSnapper owner, double z, double elev, MhCollisionAlternative alt, CollisionPrimitive ownerPrims, vector dir) { - Removed: extend public CollisionSolution resolveZPosSolution(MhSnapper owner, double z, MhCollisionAlternative alt, CollisionPrimitive ownerPrims, vector dir) { - New: extend public CollisionSolution resolveZPosSolution(MhSnapper owner, double z, double elev, MhCollisionAlternative alt, CollisionPrimitive ownerPrims, vector dir) { - Removed: extend public CollisionSolution resolveZPosSolution(MhSnapper owner, double z, CollisionResolver resolver, CollisionPrimitive ownerPrims, vector dir) { - New: extend public CollisionSolution resolveZPosSolution(MhSnapper owner, double z, double elev, CollisionResolver resolver, CollisionPrimitive ownerPrims, vector dir) { public class MhLevelInsertHeightBehavior extends MhBehavior { - Removed: extend public bool updateHeightDomains(MhSnapper owner, MhSnapper toSnapper, Object env=null) { - Removed: extend public SubSet restrictedHeightDomain(MhSnapper firstAbove, MhSnapper firstBelow, MhSnapper owner, MhSnapper toSnapper, Object env) { - Removed: extend public <SubSet, SubSet> freeSpacesDomains(MhSnapper firstAbove, MhSnapper firstBelow, MhSnapper owner, MhSnapper toSnapper, Object env=null) { - Removed: extend public bool isConflicting(MhSnapper owner, double z, MhCollisionAlternative alt, CollisionPrimitiveSet ownerPrims) { - Removed: extend public void checkInsertHeightLocked(point& p, SubSet heightDomain) { - Removed: extend public void checkFreeSpaceAboveLocked(point& p, SubSet aboveDomain, MhSnapper firstAbove, MhSnapper owner, MhSnapper toSnapper) { - Removed: extend public void checkFreeSpaceBelowLocked(point& p, SubSet belowDomain, MhSnapper firstBelow, MhSnapper owner, MhSnapper toSnapper) { - Removed: extend public <Double, Double> calculateFreeSpaceAboveAndBelow(MhSnapper owner, MhSnapper toSnapper, double insertH, Snapper specificAboveSnapper=null, Snapper specificBelowSnapper=null) { - Removed: extend public box boundForCalculation(MhSnapper snapper, bool toSpace=false) { - Removed: extend public symbol[] geoSymbolsForCalculation() { - New: extend public void toggleLockProperties(bool lock, str except=null) { - New: extend public double updateFreeSpacesProperties(MhSnapper owner, MhSnapper toSnapper, Object env) { - New: extend public double updateElevationProperty(MhSnapper owner, MhSnapper toSnapper, Object env) { - New: extend public LayerSet collisionLayerToCollide() { - New: extend public LayerSet collisionLayerToIgnore() { public class MhConfigManager : unstreamable { - Removed: extend public void fixInconsistenciesIfNecessary() { - Use: extend public void updateConfigsAfterRestoredByUndo(MhSnapper current, MhSnapper original) {
Old: public bool isBack2(Object o) { return evalClassification(o, sBack); } New: public bool isBack(Object o) { return evalClassification(o, sBack); } Old: public bool isBack(Object o) { return evalClassification(o, sBackRow); } New: public bool isBackRow(Object o) { return evalClassification(o, sBackRow); }
Important to note is that the isBack()
function interface still exists but the logic has been updated as shown above, so it will not throw a compilation error. Ensure that you are calling the appropriate function.
Removed the bool reverse=true
argument from this function.
Old: public MhSnapper[] getAllRowsRecursive(MhSnapper snapper, bool top=false, bool reverse=true, Snapper{} visited=null) { New: public MhSnapper[] getAllRowsRecursive(MhSnapper snapper, bool top=false, Snapper{} visited=null) {
Added a new argument bool forceConstruct=false
argument to this function. Set it to true
if you want to use construction collision primitives in this function.
Old: public double mhCalculatedBayHeightForConstruction(MhSystemConfigurationItem this, MhSnapper bay, int numLevels, bool loadOnFloor=true, bool loadWithinLimit=true) { New: public double mhCalculatedBayHeightForConstruction(MhSystemConfigurationItem this, MhSnapper bay, int numLevels, bool loadOnFloor=true, bool loadWithinLimit=true, bool forceConstruct=false) {
The class MhDbgSpaceViewer
has been renamed to MhDebugSpaceViewerDialog
. Additionally it has been moved from cm.abstract.materialHandling.storage.tools.editor
to cm.abstract.materialHandling.debug
.
Replace all overrides and calls to localBound(symbol[] symbols)
with shapeBound(symbol[] symbols=null)
.
Removed: extend public box localBound(symbol[] symbols) : deprecated { Use: extend public box shapeBound(symbol[] symbols=null) {
Replace all overrides and calls to collisionPrimitive(Transform t, bool includeChildren, Object env=null)
with collisionPrimitive(MhCollisionFetchEnv env)
.
Removed: extend public CollisionPrimitive collisionPrimitive(Transform t, bool includeChildren, Object env=null) : deprecated { Use: extend public CollisionPrimitive collisionPrimitive(MhCollisionFetchEnv env) {
The deprecated method putEngineEntryDim(str key, double v)
has been removed. We have previously replaced calls to this method with updateEngineEntry()
instead.
Removed: extend public void putEngineEntryDim(str key, double v) : deprecated {
Replace all overrides and calls to getSnapperReplacementForPickupApply()
and getSnapperReplacementForPickupApply(CoreObject candidate)
with getSnapperReplacementForPickupApply(CoreObject candidate=null)
.
Removed: extend public MhSnapper getSnapperReplacementForPickupApply() : deprecated { Removed: extend public MhSnapper getSnapperReplacementForPickupApply(CoreObject candidate) : deprecated { New: extend public MhSnapper getSnapperReplacementForPickupApply(CoreObject candidate=null) {
New argument for invalidate engine.
Old: extend public void invalidateEngine() New: extend public void invalidateEngine(Object env=null)
Replace all overrides and calls to getSnapperReplacementForPickupApply()
and getSnapperReplacementForPickupApply(CoreObject candidate)
with getSnapperReplacementForPickupApply(CoreObject candidate=null)
.
Removed: extend public MhSnapper getSnapperReplacementForPickupApply() : deprecated { Removed: extend public MhSnapper getSnapperReplacementForPickupApply(CoreObject candidate) { New: extend public MhSnapper getSnapperReplacementForPickupApply(CoreObject candidate=null) {
Replace all overrides and calls to allowTrySnap(MhSnapper snapper, MhTrySnapAlternative alternative)
with allowTrySnap(MhSnapper snapper, MhTrySnapAlternative alternative, Animation anim)
.
Removed: extend public bool allowTrySnap(MhSnapper snapper, MhTrySnapAlternative alternative) : deprecated { Use: extend public bool allowTrySnap(MhSnapper snapper, MhTrySnapAlternative alternative, Animation anim) {
MhRunEngineEnv has two new arguments, initiator
and space
.
The initiator
argument is used to keep track of what started the engine run to determine if an actual change is needed (eg: level height increasing the bay height should not populate new levels and which should only happen if the bay is the initiator).
The space
argument is used to control what engine runs are executed. If space=null
, triggering mhRunEngines()
will run all collected engine runs, this is the current behavior. We have now added the ability to only run specific engine runs by passing in a space to MhRunEngineEnv
. See More control over which engine runs are executed using space
for more info.
Old: public constructor(bool cleanup=true, bool blockImport=false, bool blockExport=false, bool blockFinalize=true, bool removeFailedEntry=false, bool showProgressBar=false) { New: public constructor(Space space=null, bool cleanup=true, bool blockImport=false, bool blockExport=false, bool blockFinalize=true, bool removeFailedEntry=false, MhSnapper initiator=null, bool showProgressBar=false) {
Replace all overrides and calls to showPackageInfoMismatchDialog()
with showPackageInfoMismatchDialog(symbol packageInfo)
.
Removed: extend public void showPackageInfoMismatchDialog() { } Use: public void showPackageInfoMismatchDialog(symbol packageInfo) {}
Replace all overrides and calls to useStrictClassification()
with useStrictClassification(MhSnapper c)
.
Removed: extend public bool useStrictClassification() : deprecated { Use: extend public bool useStrictClassification(MhSnapper c) {
The deprecated method zeroTransformSnapperEntry()
has been removed as it is no longer needed for its original purpose which was to remove a roll angle from its transform.
We now handle it differently by unrolling the entry's CollisionPrimitive
. If you need to unroll CollisionPrimitive
objects,, call the function mhUnrollCollisionPrim(CollisionPrimitive prim)
.
Removed: extend public MhEngineSnapperEntry zeroTransformSnapperEntry() : deprecated {
Replace all overrides and calls to snapperReplacement(MhSnapper pickedUp)
with snapperReplacement(MhSnapper pickedUp, CoreObject candidate)
.
Removed: extend public MhSnapper snapperReplacement(MhSnapper pickedUp) : deprecated { Use: extend public MhSnapper snapperReplacement(MhSnapper pickedUp, CoreObject candidate) {
Replace all overrides and calls to topBracing(int bayIndex)
with topBracing(MhSnapper bay, int bayIndex)
.
Removed: extend public bool topBracing(int bayIndex) : deprecated { return true; } Use: extend public bool topBracing(MhSnapper bay, int bayIndex) { return true; }
Replace all overrides and calls to backBracing(int bayIndex)
with backBracing(MhSnapper bay, int bayIndex)
.
Removed: extend public bool backBracing(int bayIndex) : deprecated { return true; } Use: extend public bool backBracing(MhSnapper bay, int bayIndex) { return true; }
Replace all overrides and calls to cross2D(rect r)
with cross2D(rect r, double z)
.
Old: extend public Graph cross2D(rect r) { New: extend public Graph cross2D(rect r, double z) {
Replace all overrides and calls to entryMaterial3D(MhEngineEntry entry)
with entryMaterial3D(MhEngineEntry entry, MhEngine engine)
.
Removed: extend public GMaterial3D entryMaterial3D(MhEngineEntry entry) : deprecated { Use: extend public GMaterial3D entryMaterial3D(MhEngineEntry entry, MhEngine engine) {
Replace all overrides and calls to entryColor(MhEngineEntry entry)
with entryColor(MhEngineEntry entry, MhEngine engine)
.
Removed: extend public color entryColor(MhEngineEntry entry) : deprecated { Use: extend public color entryColor(MhEngineEntry entry, MhEngine engine) {
The field beamOffsetZ
(and its PropDef
) has been removed as it is not in use. If you have overridden this class and need this field, please add it back in as well as the PropDef
.
The value for beamOffsetZ
is no longer being passed in as a function argument in MhBayEngineBehavior
for the "levelArrange"
function. You will also need to override this behavior to pass in the argument if beamOffsetZ
is still needed by your function.
Old: /** * Gather function args. */ public str->Object engineFunctionArgsG2(MhSnapper snapper, MhEngineFunctionRun func, symbol event="", MhPreprocessArgsEnv preprocessArgs=null, Object env=null) { ... case "levelArrange" : { ... return props { snapper=snapper, holeZDomain=preprocessArgs.get(cMhHoleZDomainPK), additionalPrim=preprocessArgs.get(cMhAdditionalPrimPK), squeezeLevels=squeezeLevels, maintainBayHeight=maintainBayHeight, beamOffsetZ=beamOffsetZ(snapper) }; ... New: /** * Gather function args. */ public str->Object engineFunctionArgsG2(MhSnapper snapper, MhEngineFunctionRun func, symbol event="", MhPreprocessArgsEnv preprocessArgs=null, Object env=null) { ... case "levelArrange" : { ... return props { snapper=snapper, holeZDomain=preprocessArgs.get(cMhHoleZDomainPK), additionalPrim=preprocessArgs.get(cMhAdditionalPrimPK), squeezeLevels=squeezeLevels, maintainBayHeight=maintainBayHeight}; ...
Replace all overrides and calls to shouldMoveLevel(MhEngine engine, MhEngineBoxEntry entry, MhEngineBoxEntry lastEntry, double diff, double fixedLimit, bool isLowestLevel)
with shouldMoveLevel(MhEngine engine, MhEngineBoxEntry entry, MhEngineBoxEntry lastEntry, double diff, double fixedLimit)
.
Removed: extend public bool shouldMoveLevel(MhEngine engine, MhEngineBoxEntry entry, MhEngineBoxEntry lastEntry, double diff, double fixedLimit, bool isLowestLevel) { New: extend public bool shouldMoveLevel(MhEngine engine, MhEngineBoxEntry entry, MhEngineBoxEntry lastEntry, double diff, double fixedLimit) {
Replace all overrides and calls to alignYToColumns(MhEngineEntryBlock[] blocks, double columnY, bool up, int &lastIndex)
with alignYToColumns(MhEngineEntryBlock[] blocks, MhColumnCollisionEnv columnEnv, bool up, int &lastIndex)
.
Removed: extend public void alignYToColumns(MhEngineEntryBlock[] blocks, double columnY, bool up, int &lastIndex) : deprecated { Use: extend public void alignYToColumns(MhEngineEntryBlock[] blocks, MhColumnCollisionEnv columnEnv, bool up, int &lastIndex) {
Replace all overrides and calls to findBestFlueSpaceIndex(MhEngineEntryBlock[] blocks, double columnY, bool up, int lastIndex=0)
with findBestFlueSpaceIndex(MhEngineEntryBlock[] blocks, MhColumnCollisionEnv columnEnv, bool up, int lastIndex=0)
.
Removed: extend public int findBestFlueSpaceIndex(MhEngineEntryBlock[] blocks, double columnY, bool up, int lastIndex=0) : deprecated { Use: extend public int findBestFlueSpaceIndex(MhEngineEntryBlock[] blocks, MhColumnCollisionEnv columnEnv, bool up, int lastIndex=0) {
Replace all overrides and calls to unstreamStoredSpec(ObjectFormatter formatter)
with mhUnstreamStoredSpec(MhSnapperShape shape, ObjectFormatter formatter)
.
Removed: extend public void unstreamStoredSpec(ObjectFormatter formatter) : deprecated { Use: public void mhUnstreamStoredSpec(MhSnapperShape shape, ObjectFormatter formatter) {
Replace all overrides and calls to bayEditorLevelClearanceBehavior(double newLevelClearance)
with bayEditorLevelClearanceBehavior(double newLevelClearance, Box bottomPrim=null)
.
Removed: extend public MhClearanceBehavior bayEditorLevelClearanceBehavior(double newLevelClearance) : deprecated { Use: extend public MhClearanceBehavior bayEditorLevelClearanceBehavior(double newLevelClearance, Box bottomPrim=null) {
Replace all overrides and calls to constructor(double levelClearanceZ)
with constructor(double levelClearanceZ, Box bottomPrim=null)
.
Removed: public constructor(double levelClearanceZ) : deprecated { Use: public constructor(double levelClearanceZ, Box bottomPrim=null) {
Replace all overrides and calls to columns(MhSnapper row)
with columns(MhSnapper row, bool showDescription=false)
.
Removed: extend public MhGridColumnEnv[] columns(MhSnapper row) : abstract, deprecated { } Use: extend public MhGridColumnEnv[] columns(MhSnapper row, bool showDescription=false) : abstract { }
Replace all overrides and calls to getRowInfos(MhSnapper row)
with getRowInfos(MhSnapper row, bool showDescription=false)
.
Removed: extend public str->MhRowLegendInfo[] getRowInfos(MhSnapper row) : abstract, deprecated { } Use: extend public str->MhRowLegendInfo[] getRowInfos(MhSnapper row, bool showDescription=false) : abstract { }
Replace all overrides and calls to getUniqueUnitLoadsKeys(MhSnapper[] rows)
with getUniqueUnitLoadsKeys(MhSnapper[] rows, bool showDescription=false)
.
Removed: extend public str{} getUniqueUnitLoadsKeys(MhSnapper[] rows) : deprecated { Use: extend public str{} getUniqueUnitLoadsKeys(MhSnapper[] rows, bool showDescription=false) {
The following classes have been moved from cm.abstract.materialHandling.engine
to cm.abstract.materialHandling
:
public class MhConfigurationItemGroup { ... } public class MhSystemConfigurationManager { ... } public class MhConfigurationPullPropsVisitor extends PushPropsVisitor { ... } public class MhConfigurationPushPropsVisitor extends PushPropsVisitor { ... } public class MhPushPropsEnv extends PushPropsEnv { ... } public class MhFlexibleTypeCheck extends FlexibleTypeCheck { ... } public class MhSystemConfiguration extends CoreObject { ... } public class MhSystemConfigurationContainer { ... } public class MhSystemConfigurationItem extends CoreObject : abstract { ... }
Change collecting of propagate rows from seq to set for performance.
Old: extend public MhSnapper[] propagatingRows(MhSnapper snapper, MhSnapperChangedEnv env) New: extend public MhSnapper{} propagatingRows(MhSnapper snapper, MhSnapperChangedEnv env)
Old: extend public void collectPropagatingRow(MhSnapper snapper, MhSnapperChangedEnv env, MhSnapper[] res) New: extend public void collectPropagatingRow(MhSnapper snapper, MhSnapperChangedEnv env, MhSnapper{} res)
Old: extend public void collectSelectionPropagatingRow(MhSnapper snapper, MhSnapperChangedEnv env, MhSnapper[] res) New: extend public void collectSelectionPropagatingRow(MhSnapper snapper, MhSnapperChangedEnv env, MhSnapper{} res)
Old: extend public void appendForcedPropagations(MhSnapperChangedEnv env, str key, MhSnapper[] res) New: extend public void appendForcedPropagations(MhSnapperChangedEnv env, str key, MhSnapper{} res)
Old: extend public void appendSnapperPropagations(MhSnapper s, MhSnapperChangedEnv env, str key, MhSnapper[] res) New: extend public void appendSnapperPropagations(MhSnapper s, MhSnapperChangedEnv env, str key, MhSnapper{} res)
Old: extend public void appendPropagationRowChildren(MhSnapper row, MhSnapperChangedEnv env, str key, MhSnapper[] res) New: extend public void appendPropagationRowChildren(MhSnapper row, MhSnapperChangedEnv env, str key, MhSnapper{} res)
Old: extend public void finalizePropagatingSnappers(MhSnapperChangedEnv env, str key, MhSnapper[] res) New: extend public void finalizePropagatingSnappers(MhSnapperChangedEnv env, str key, MhSnapper{} res)
When accessing the configuration preview space, give the option whether to initialize the space or not. Also spaces are now removed from world when closing the configurator.
Old: extend public MhConfiguratorPreviewSpace previewSpace() New: extend public MhConfiguratorPreviewSpace previewSpace(bool initIfNull=true)
Bay collision alternative class, MhBayCollisionAlternative
has been renamed to make it more generic as it contains logic that is not specific only for bay.
Old: public class MhBayCollisionAlternative extends MhDoubleStepRangeCollisionAlternative { New: public class MhRowChildCollisionAlternative extends MhSubSetCollisionAlternative {
Old: public class MhDoubleStepRangeCollisionAlternative extends MhCollisionAlternative { New: public class MhSubSetCollisionAlternative extends MhCollisionAlternative {
Replace all overrides and calls to resolveZPos(MhSnapper owner, double z, MhCollisionAlternative alt, CollisionPrimitive ownerPrims, vector dir)
with resolveZPos(MhSnapper owner, double z, double elev, MhCollisionAlternative alt, CollisionPrimitive ownerPrims, vector dir)
so that it will take elevation into account.
Removed: extend public double resolveZPos(MhSnapper owner, double z, MhCollisionAlternative alt, CollisionPrimitive ownerPrims, vector dir) { New: extend public double resolveZPos(MhSnapper owner, double z, double elev, MhCollisionAlternative alt, CollisionPrimitive ownerPrims, vector dir) {
Replace all overrides and calls to resolveZPosSolution(MhSnapper owner, double z, MhCollisionAlternative alt, CollisionPrimitive ownerPrims, vector dir)
with resolveZPosSolution(MhSnapper owner, double z, double elev, MhCollisionAlternative alt, CollisionPrimitive ownerPrims, vector dir)
so that it will take elevation into account.
Removed: extend public CollisionSolution resolveZPosSolution(MhSnapper owner, double z, MhCollisionAlternative alt, CollisionPrimitive ownerPrims, vector dir) { New: extend public CollisionSolution resolveZPosSolution(MhSnapper owner, double z, double elev, MhCollisionAlternative alt, CollisionPrimitive ownerPrims, vector dir) {
Replace all overrides and calls to resolveZPosSolution(MhSnapper owner, double z, CollisionResolver resolver, CollisionPrimitive ownerPrims, vector dir)
with resolveZPosSolution(MhSnapper owner, double z, double elev, CollisionResolver resolver, CollisionPrimitive ownerPrims, vector dir)
so that it will take elevation into account.
Removed: extend public CollisionSolution resolveZPosSolution(MhSnapper owner, double z, CollisionResolver resolver, CollisionPrimitive ownerPrims, vector dir) { New: extend public CollisionSolution resolveZPosSolution(MhSnapper owner, double z, double elev, CollisionResolver resolver, CollisionPrimitive ownerPrims, vector dir) {
Some logic in this class, MhLevelInsertHeightBehavior
, has been changed/rewritten and simplified in order to support beams with no hole pitch domain e.g DistanceRange
, DoubleRange
.
Removed: extend public bool updateHeightDomains(MhSnapper owner, MhSnapper toSnapper, Object env=null) { Removed: extend public SubSet restrictedHeightDomain(MhSnapper firstAbove, MhSnapper firstBelow, MhSnapper owner, MhSnapper toSnapper, Object env) { Removed: extend public <SubSet, SubSet> freeSpacesDomains(MhSnapper firstAbove, MhSnapper firstBelow, MhSnapper owner, MhSnapper toSnapper, Object env=null) { Removed: extend public bool isConflicting(MhSnapper owner, double z, MhCollisionAlternative alt, CollisionPrimitiveSet ownerPrims) { Removed: extend public void checkInsertHeightLocked(point& p, SubSet heightDomain) { Removed: extend public void checkFreeSpaceAboveLocked(point& p, SubSet aboveDomain, MhSnapper firstAbove, MhSnapper owner, MhSnapper toSnapper) { Removed: extend public void checkFreeSpaceBelowLocked(point& p, SubSet belowDomain, MhSnapper firstBelow, MhSnapper owner, MhSnapper toSnapper) { Removed: extend public <Double, Double> calculateFreeSpaceAboveAndBelow(MhSnapper owner, MhSnapper toSnapper, double insertH, Snapper specificAboveSnapper=null, Snapper specificBelowSnapper=null) { Removed: extend public box boundForCalculation(MhSnapper snapper, bool toSpace=false) { Removed: extend public symbol[] geoSymbolsForCalculation() { New: extend public void toggleLockProperties(bool lock, str except=null) { New: extend public double updateFreeSpacesProperties(MhSnapper owner, MhSnapper toSnapper, Object env) { New: extend public double updateElevationProperty(MhSnapper owner, MhSnapper toSnapper, Object env) { New: extend public LayerSet collisionLayerToCollide() { New: extend public LayerSet collisionLayerToIgnore() {
Removed argument from show interval props since we can get the spreadPattern
directly.
Old: extend public bool showIntervalProps(Object currentSpread=this."spreadPattern") New: extend public bool showIntervalProps()
MhDoubleRowClassificationBehavior
has been moved from cm.abstract.materialHandling.storage.racking.behavior
to cm.abstract.materialHandling.storage.behavior
so it is accessible to non-racking products.
Old engine (G1) is now deprecated and removed.
Remove mhRegisterEngineFunction(MhEngine engine, CxFunction func, symbol pkg=null)
and mhPutEngineNextPkgLookup(MhEngine engine, symbol pkg, symbol next)
as they are meant for old engine.
Removed: public void mhRegisterEngineFunction(MhEngine engine, CxFunction func, symbol pkg=null) { Removed: public void mhPutEngineNextPkgLookup(MhEngine engine, symbol pkg, symbol next) {
Remove functionPath()
and setFunctionPath(symbol functionPath)
as they are meant for old engine.
Removed: final public symbol functionPath() { Removed: final public void setFunctionPath(symbol functionPath) {
Remove functionPath(MhSnapper snapper)
method as it is no longer needed to override an engine function.
Removed: extend public symbol functionPath(MhSnapper snapper) {
Remove useEngineFuncG2(MhSnapper snapper)
method as it is no longer an option to use old engine.
Removed: extend public bool useEngineFuncG2(MhSnapper snapper) {
Remove putEngineRunFunctions(MhSnapper snapper, symbol event="", Object env=null)
method as it is meant for old engine.
Removed: extend public void putEngineRunFunctions(MhSnapper snapper, symbol event="", Object env=null) {
As old engine has been removed, fetchEngineFunctionsRunG2
, preprocessFuncArgsG2
, engineFunctionArgsG2
, and acceptFunctionRunG2
have been renamed accordingly. All overriding methods and calls have been replaced.
Old: extend public void fetchEngineFunctionsRunG2(MhEngineFunctionRun[] functions, MhSnapper snapper, symbol event="", Object env=null) { Old: extend public MhPreprocessArgsEnv preprocessFuncArgsG2(MhEngineFunctionRun[] functions, MhSnapper snapper, symbol event="", Object env=null) { Old: extend public str->Object engineFunctionArgsG2(MhSnapper snapper, MhEngineFunctionRun func, symbol event="", MhPreprocessArgsEnv preprocessArgs=null, Object env=null) { Old: extend public bool acceptFunctionRunG2(MhSnapper snapper, MhEngineFunctionRun func, symbol event="", Object env=null) { New: extend public void fetchEngineFunctionsRun(MhEngineFunctionRun[] functions, MhSnapper snapper, symbol event="", Object env=null) { New: extend public MhPreprocessArgsEnv preprocessFuncArgs(MhEngineFunctionRun[] functions, MhSnapper snapper, symbol event="", Object env=null) { New: extend public str->Object engineFunctionArgs(MhSnapper snapper, MhEngineFunctionRun func, symbol event="", MhPreprocessArgsEnv preprocessArgs=null, Object env=null) { New: extend public bool acceptFunctionRun(MhSnapper snapper, MhEngineFunctionRun func, symbol event="", Object env=null) {
The fields overrideInfo
and extFunctionLookupPkgs
have been removed as it is no longer needed for the new engine. All calls to these fields have also been removed.
Removed: public MhEngineOverrideFunctionInfo overrideInfo Removed: public symbol->symbol nextFunctionLookupPkgs
Remove register(CxFunction fun, symbol pkg)
, putNextPkgLookup(symbol path, symbol next)
, and optimizeFunctionsOrder(MhSystemConfiguration config)
as it is no longer needed for the new engine.
Removed: extend public void register(CxFunction fun, symbol pkg) { Removed: extend public void putNextPkgLookup(symbol path, symbol next) { Removed: extend public void optimizeFunctionsOrder(MhSystemConfiguration config) {
Replace all overrides and calls to getFunction(str key, symbol path)
with getFunction(str key)
.
Removed: final public CxFunction getFunction(str key, symbol path) { New: final public CxFunction getFunction(str key) {
Remove deprecated methods getFunction(str key, symbol path, bool finalize)
.
Removed: final public CxFunction getFunction(str key, symbol path, bool finalize) : deprecated {
This class has been removed as it is no longer needed for the new engine.
Removed: public class MhEngineOverrideFunctionInfo {
Remove functionPath()
as it is no longer needed for the new engine.
Removed: extend public symbol functionPath() {
Replace all overrides and calls to engine()
with engine(Space space)
.
Removed: extend public MhEngine engine() : deprecated { Use: extend public MhEngine engine(Space space) {
Remove functionPath
and useEngineFuncG2
fields as it is no longer needed and no longer an option to use old engine.
Removed: public symbol functionPath Removed: public bool useEngineFuncG2 : stream=null
Remove useEngineFuncG2()
as it is no longer an option to use old engine.
Removed: extend public bool useEngineFuncG2() {
Replace all references to engineRuns
with engineRunList
.
Removed: public MhEngine->MhEngineRun engineRuns : deprecated; Use: public MhEngine->MhEngineRun[] engineRunList;
Remove useEngineFuncG2()
as it is no longer an option to use old engine.
Removed: extend public bool useEngineFuncG2() {
Remove ensureConfiguration(MhEngine engine, str->Object args)
as it is meant for old engine.
Removed: extend public void ensureConfiguration(MhEngine engine, str->Object args) {
Remove mhStorageRegisterFunctions(CxFunction[] functions, symbol pkg=null)
and mhStoragePutNextPkgLookup(symbol pkg, symbol next)
as they are no longer needed.
Removed: public void mhStorageRegisterFunctions(CxFunction[] functions, symbol pkg=null) { Removed: public void mhStoragePutNextPkgLookup(symbol pkg, symbol next) {
The functionality of fixInconsistenciesIfNecessary()
has been moved to a new function updateConfigsAfterRestoredByUndo(MhSnapper current, MhSnapper original)
.
The inconsistency is caused by the undo, so it makes more sense to be fixed right after the snapper is restored by undo.
- Removed: extend public void fixInconsistenciesIfNecessary() { - Use: extend public void updateConfigsAfterRestoredByUndo(MhSnapper current, MhSnapper original) {
Removed: public bool isPlatform(Object o) : deprecated { return isMobilePlatform(..); } Removed: public bool isEndPanel(Object o) : deprecated { return isMobileEndPanel(..); } Removed: public class MhMobileUpdateBehavior extends MhBehavior : deprecated { Removed: public mhLazyGlobal MhBehavior mhMobileUpdateBehavior = MhMobileUpdateBehavior();
Removed: public class MhUprightProtectorEngineBehavior extends MhEngineBehavior { Removed: public class MhSpacerLinkFrameFunction extends MhSystemEngineFunction : deprecated { Removed: public class MhLevelLinkTest extends MhTest {
Removed: public bool isArm(Snapper snapper) { return evalClassification(snapper, sArm); }
The function isArm(Snapper snapper)
has been removed due to it being redundant with isArm(Object o)
. You should still be able to call isArm(Object o)
without any compilation errors.
Old: extend public color bayColor2D() New: extend public Color bayColor2D()
public class MhDeepstorageNoOfSingleFramesFunction extends MhSystemEngineFunction { - Removed: extend public MhEngineEntry[] sortedFramesByPriority(MhEngineEntry[] sortedFrames) : deprecated {
Replace all overrides and calls to sortedFramesByPriority(MhEngineEntry[] sortedFrames)
with sortedFramesByPriority(bool rotated, MhEngineEntry[] sortedFrames)
.
Removed: extend public MhEngineEntry[] sortedFramesByPriority(MhEngineEntry[] sortedFrames) : deprecated { Use: extend public MhEngineEntry[] sortedFramesByPriority(bool rotated, MhEngineEntry[] sortedFrames) {
public class MhShelvingCompartmentConfigurationItem extends MhStorageConfigurationItem { - Old: public double levelHeight; - New: public Double levelHeight;
ProdPart
has the following changes to its methods, these allow for applying option adjustments:
Added: public void generateOptAdjustmentSifRows(SpecOption opt, str[] lines) {} Added: final public PartOptionAdjustment newOptionAdjustment(SpecOption option, Space space) {} Added: final public void putOptionAdjustment(PartOptionAdjustment adjustment, Space space) {} Added: final public PartOptionAdjustment optionAdjustment(SpecOption option, Space space) {}
Two renamer classes AbstractUnitLoadCollabG1Renamer
from the collabG1
folder and AbstractUnitLoadCollabG3Renamer
from the collabG3
folder have been removed. The reason for their removal is because they both were registered to be
the package stream renamer of the #"cm.abstract.unitLoad"
package, but each package should only have
one renamer. By having two renamers registered for the same package, only one renamer is used and the other is not.
It is also random as to which renamer is chosen.
To resolve this issue, both the classes mentioned above have been combined into a new class UnitLoadStreamRenamer
. So, any
existing class that extends from those removed classes can extend from this new class without the loss of functionality.
The class UnitLoadStackableTote
has been renamed to UnitLoadCaseTote
.
The reason for the change is because UnitLoadStackableTote
is actually a Case Tote
, and there is another type of unit load
called Stackable Tote
from MhStackableTote
class, which made it really confusing.
Unit load cache has been remove and this is replaced with a unit load repository instead. Unit load will still be accessible through function unitLoad(UnitLoad m)
but used unit loads will be put into repository map and unused objects will be cleaned up by gc
later on as by default it'll be added into a weak
collection. With repository it's possible to manually control the lifetime of a unit load object and can be done by calling public void use(UnitLoad this) {
which will promote unit load objects to not be collected by the garbage collector.
The following functions have been remove and replaced.
Old: public class UnitLoadCache { New: public class UnitLoadRepository : unstreamable {
New: public UnitLoadRepository unitLoadRepository() { Removed: public UnitLoadCache unitLoadCache() { // Lifetime will be handle by gc or manually remove if necessary. Removed: public void mhPreLoadClearUnitLoadCacheHook(WorldFileHeader header) { Removed: public void mhClearUnitLoadCacheHook(World world) { Removed: public bool usingUnitLoad(UnitLoad ul) {
Unit load function registration is now split into two in order to have better control of default and temporary objects to populate unit load domain.
Old: public void registerUnitLoad(UnitLoad ul, World w=null) { // Register it to container to populate unit load domain. New: public void registerUnitLoadToContainer(UnitLoad ul, World w=null) { // Will register unit load to be use as default. New: public void registerUnitLoadToDefault(UnitLoad ul) { // Include world to be more specific when looking for unitload container. Old: public UnitLoad unitLoad(guid unitGuid) { New: public UnitLoad unitLoad(guid unitGuid, World w=null) { Old: public UnitLoad unitLoadFromName(str name) { New: public UnitLoad unitLoadFromName(str name, World w=null) { // Better variable name. Old: public UnitLoad unitLoad(str unitKey, World w=null) { New: public UnitLoad unitLoad(str gidHex, World w=null) {
The following changes were made to support efforts in the facelift project:
CET's menubar now support nested menus items, which has required some changes to the menu item functions in cm/application/keyBindingMenu.cm
:
Removed: public void imageItem(MenuBar menuBar, str k, str label, Image image, MenubarCB callback, char c='\0', bool sys=false, KeyCode keyCode=null, SubMenuInfo subMenu=null, bool excludeFromVisibilityProfile=false) {} Added: public void imageItem(MenuBar menuBar, str k, str label, Image image, MenubarCB callback, char c='\0', bool sys=false, KeyCode keyCode=null, SubMenuInfo subMenu=null, str nestedKey=null, Removed: ADDED bool excludeFromVisibilityProfile=false) {} Removed: public void labelItem(MenuBar menuBar, str k, str label, MenubarCB callback, char c='\0', bool sys=false, KeyCode keyCode=null, SubMenuInfo subMenu=null, bool excludeFromVisibilityProfile=false) {} Added: public void labelItem(MenuBar menuBar, str k, str label, MenubarCB callback, char c='\0', bool sys=false, KeyCode keyCode=null, SubMenuInfo subMenu=null, str nestedKey=null, Removed: ADDED bool excludeFromVisibilityProfile=false) {}
The following functions have been moved to cm.win
:
str kilometerS(double, bool, int, bool, lcid, unitMagnitude)
str meterS(double, bool, int, bool, lcid, unitMagnitude)
str decimeterS(double, bool, int, bool, lcid, unitMagnitude)
str centimeterS(double, bool int, bool, lcid, unitMagnitude)
str millimeterS(double, bool, int, bool, lcid, unitMagnitude)
str inchesS(double, bool, lcid, int, unitMagnitude)
str inchesAndFractionsS(double, bool, int, lcid, unitMagnitude, bool)
str inchesAndDecimalsS(double, bool, int, bool, lcid, unitMagnitude)
str feetS(double, bool, lcid, unitMagnitude)
str feetAndInchesS(double, lcid, unitMagnitude)
str feetAndDecimalsS(double, bool, int, bool, lcid, unitMagnitude)
str feetAndInchesAndFractionsS(double, bool, int, lcid, unitMagnitude, bool)
str feetAndInchesAndDecimalsS(double, bool, int, bool, lcid, unitMagnitude)
str tsuboUnitS()
str tsuboS(double, bool, int, bool, lcid)
double realInchesWithMagnitude(double, unitMagnitude)
str showUnitHelper(str, unitMagnitude)
void showUnitHelper(StrBuf, unitMagnitude)
int->str precisionsToLabel(distanceUnit)
str unitS(double, distanceUnit, bool, bool, bool, int, bool, lcid, unitMagnitude)
str roundToPrecisionUnitS(double, distanceUnit, bool, bool, int, bool, lcid, unitMagnitude)
str meterConvertToUnitS(double, bool, bool, lcid, unitMagnitude, distanceUnit, int)
str kgfPermm2S(int, bool, bool, lcid)
str kgfPercm2S(int, bool, bool, lcid)
str lbfPerInches2S(int, bool, bool, lcid)
str lbfPerFeet2S(int, bool, bool, lcid)
str toS(pressureUnit, unt, bool, bool, lcid)
str toS(weightType, distanceUnit, int, bool, bool, lcid)
str toMetricS(int, bool, bool, lcid)
str toImperialS(int, bool, bool, lcid)
Removed the following functions because ensureSettings
did not do anything.
Remove: public void addCetQLParamsFromSnapper(Snapper z, bool ensureSettings) { Remove: public void removeCetQLParamsFromSnapper(Snapper z, bool ensureSettings) {
Removed: extend public void hideCircleMenu(AnimationMouseInfo mi=null) {
Replaced global variable with global function. Now there is no variable to set. The function checks if there is any visible circle menu.
Old: public bool inCircleMenu = false; New: public bool inCircleMenu() {
Old: public constructor(Window parent, Window owner, Brush brush=null, Skin skin0=null, FrameStyle frameStyle=noFrame, frame3DState frameState=frameStateUp, SrcRef src=#:src) { New: public constructor(Window parent, Window owner, str key=defaultCircleMenuKey, Brush brush=null, Skin skin0=null, FrameStyle frameStyle=noFrame, frame3DState frameState=frameStateUp, bool transparent=true, SrcRef src=#:src) {
Now you can retrieve a circle menu by its key.
Old: public CircleMenu circleMenu(Window w, bool includeHidden=false) { New: public CircleMenu circleMenu(str key) {
Comment: If you need to close a specific circle menu you can use the class member function instead.
Old: public void hideCircleMenu(Window w, bool fromUndo=false) { New: public void hideAllCircleMenus(bool fromUndo=false) {
The new function is in the same file but is no longer a member of CoreDistanceField
.
Old: final public Double scanAndCalculate(str text) { New: public Double scanAndCalculate(str text, distanceUnit defaultUnit) {
The following changes were made to support efforts in the Facelift project
The global setting enableV2ViewModeBar
and the class ViewModeBarV2
has been removed, as ViewModeBarV2
has been merged with its parent class.
cm/core/coreUIEffect.cm
has been moved to cm/win/uiEffect.cm
, which has effected the following classes and functions:
public class AbstractEffect; public class AbstractUIEffect; public double logEffectLambdaFunction(double lambda, AbstractEffect effect) {} public double expEffectLambdaFunction(double lambda, AbstractEffect effect) {} public double tanhEffectLambdaFunction(double lambda, AbstractEffect effect) {} public double oneEffectLambdaFunction(double lambda, AbstractEffect effect) {} public double bouncingEffectLambdaFunction(double lambda, AbstractEffect effect) {}
ViewModeButton
's constructor has been been modified as follows:
Removed: public constructor(Window parent, ViewMode mode, bool normal, SrcRef src=#:src) {} Added: public constructor(Window parent, ViewMode mode, SrcRef src=#:src) {}
BlockSnapper
has had the following changes to its methods:
Removed: extend public void edit() {} Added: extend public void edit(Space[] parentSpaces=null) {}
The following functions have been removed:
Removed: public bool acceptModifyBlockInSeveralAlternativeSpaces(Block block) { Removed: public bool acceptModifyBlockInSeveralAlternativeSpaces(Snapper snapper) {
Instead, a combination of these new functions can be used:
Added: public bool isAnyBlockInMultipleAlternatives(Snapper{} snappers) { Added: public bool isBlockInMultipleAlternatives(Snapper snapper) { Added: public bool isBlockInMultipleAlternatives(Block block) { Added: public bool isBlockInMultipleAlternatives(guid blockGuid) { Added: public void showModifyBlockInMultipleAlternativesWarningDialog() { Added: public int showModifyBlockInMultipleAlternativesWarningPromptDialog() {
The parameter PartInfoTree tree=null
was added to the constructor in CalcDoubleInputCell
and CalcGridCellPopup
to populate the new infoTree
field.
// calcDoubleInputCell.cm Old: public constructor(BasicPartColumn column, Part part, PartCache cache, Space space) New: public constructor(BasicPartColumn column, Part part, PartCache cache, Space space, PartInfoTree tree=null) calcGridCellPopup.cm Old: public constructor(Window parent, BasicPartColumn column, Part part, Space space, rectI cellBound) New: public constructor(Window parent, BasicPartColumn column, Part part, Space space, rectI cellBound, PartInfoTree tree=null)
Caching bound is now the responsibility of class DwgBspEntry
. Methods and members related to caching was removed.
Removed: public Graph->Rect boundCache(); Removed: final public rect bound(Graph g) : inline {
The following changes were made to support development efforts of the new UI.
The Library
and CompanyLibrary
constructors have been modified as follows:
// Library Removed: public constructor(LibraryLimb tree, symbol pkg, bool rebuildOnUserLevelChange=false, function() viewModeHook=null) {} Added: public constructor(LibraryLimb tree, symbol pkg, bool rebuildOnUserLevelChange=false, bool facelift=false, // ADDED LibraryHeaderBuilder headerBuilder=null, // ADDED function() viewModeHook=null) {} // CompanyLibrary Removed: public constructor(LibraryLimb tree, symbol pkg, bool rebuildOnUserLevelChange=false, str companyKey=null, version version=version(0, 0, 0), function() viewModeHook=null) {} Added: public constructor(LibraryLimb tree, symbol pkg, bool rebuildOnUserLevelChange=false, bool facelift=false, // ADDED LibraryHeaderBuilder headerBuilder=null, // ADDED str companyKey=null, version version=version(0, 0, 0), function() viewModeHook=null) {}
The constructor for LibraryLimb
has been changed, and LibraryLimb
now
stores a UIHint
in a field, so UIHint fields in subclasses have been removed:
// LibraryLimb Removed: public constructor(symbol pkg, str key, Image image=null, bool frame=true, str label=null, str toolTipText=null, Image toolTipImage=null, SectionButton[] buttons=null, SrcRef src=null) {} Added: public constructor(symbol pkg, str key, Image image=null, bool frame=true, str label=null, str toolTipText=null, Image toolTipImage=null, SectionButton[] buttons=null, // ADDED UIHint hint=null, // ADDED SrcRef src=null) {} // AutoGroupLimb Removed: public UIHint hint; // ComponentLimb Removed: public UIHint hint; // SettingLimb Removed: public UIHint hint; // VoidCallbackLimb Removed: public UIHint hint;
The UIHint
class and its child classes have changed in the following ways:
// UIHInt Removed: public constructor(bool showLabel=false, bool prefer3D=false, sizeI preferSize=(-1, -1)) {} Added: public constructor(bool showLabel=false, bool prefer3D=false, sizeI preferSize=(-1, -1), int columns=0, // ADDED alignment align=middle, // ADDED pointI margins=(-1, -1) // ADDED ) {} Deprecated: public class UIMarginsHint extends UIHint {} // UIFrameHint Removed: public pointI margins; // UITextSideHint Removed: public constructor(alignment textSide, bool showLabel=false, bool prefer3D=false, sizeI preferSize=(24, 24)) {} Added: public constructor(alignment textSide, bool showLabel=false, bool prefer3D=false, sizeI preferSize=(24, 24), alignment align=middle // ADDED ) {} // UIImageHint Removed: public pointI margins; Removed: public constructor(bool showLabel=false, Image image=null, alignment textSide=alignment.down, FrameStyle frameStyle=null, pointI margins=(-1, -1), sizeI preferSize=(-1, -1)) {} Added: public constructor(bool showLabel=false, Image image=null, alignment textSide=alignment.down, FrameStyle frameStyle=null, pointI margins=(-1, -1), sizeI preferSize=(-1, -1), int columns=0, // ADDED alignment align=middle // ADDED ) {} // UIBrushHoverHint Removed: public pointI margins;
UIBuilder
has had the following changes to its fields:
Removed: public int mg;
UIGroupBuilder
has had the following changes to its methods:
Removed: extend public Window build(UIBuilder uiBuilder, LibraryLimb limb, Window window) {} Added: extend public Window build(UIBuilder uiBuilder, LibraryLimb limb, Window window, bool subsection=false /** ADDED **/) {}
UIGroupOrganizerEnv
has had the following changes:
Removed: public int mg; Added: public Margins margins; Removed: final public int mg() {} Added: final public Margins mg() {}
OldSchoolGroupOrganizer
has been completely removed.
The parameter bool ignoreBlockSpace
was added to the adjustment interfaces in partAdjustment.cm
to determine if a PartAdjustment
should be stored or found on BlockSpace
s.
When set to true
, the functions will ignore the space
parameter if it is a BlockSpace
and use the Part
's space instead. When false, the functions will not ignore the space
parameter if it is a BlockSpace
.
// partAdjustment.cm Old: public Object adjustedValueIfAny(Part part, str key, Space space) : deprecated New: public Object adjustedValueIfAny(Part part, str key, Space space, bool ignoreBlockSpace=true) Old: public void adjustProperty(Part part, str key, Object value, Space space=null, bool createIfNull=true) : deprecated New: public void adjustProperty(Part part, str key, Object value, Space space=null, bool createIfNull=true, bool ignoreBlockSpace=true) Old: public bool isAdjusted(Part part, Space space, str key) : deprecated New: public bool isAdjusted(Part part, Space space, str key, bool ignoreBlockSpace=true)
The parameter bool ignoreBlockSpace
was added to the adjustment interfaces in Part
to determine if a PartAdjustment
should be stored in BlockSpace
s.
When set to true
, an adjusted Part
will store it's adjustment on the main Space
. When false, the adjustment will be stored on the BlockSpace
that it was made on.
// part.cm Old: extend public SinglePartAdjustment newAdjustment(Space space) : deprecated New: extend public SinglePartAdjustment newAdjustment(Space space, bool ignoreBlockSpace=true) Old: extend public void putAdjustment(SinglePartAdjustment adjustment, Space space) : deprecated New: extend public void putAdjustment(SinglePartAdjustment adjustment, Space space, bool ignoreBlockSpace=true) Old: extend public SinglePartAdjustment adjustment(Space space) : deprecated New: extend public SinglePartAdjustment adjustment(Space space, bool ignoreBlockSpace=true)
The columns()
function now returns PartColumn[]
rather than PartInfoColumn[]
.
This allows a PartInfoTree
to contain any type of PartColumn
.
Old: extend public PartInfoColumn[] columns() { New: extend public PartColumn[] columns() {
PropsSchemeDialog
Old: extend public void refreshSearchResult() New: final public void refreshSearchResult() // use the new refreshSearchResultFor for specificity New: extend public void refreshSearchResultFor(str{} keys)
PropsSchemeOptionLabel
Old: extend public void highlight(str target, bool ignoreCase=true) New: extend public void highlight(str target, color hc, bool ignoreCase=true) Old: extend public void highlight(str{} keys) New: extend public void highlight(str{} keys, color hc)
PropsSchemeOptionsSubWindow
Old: extend public void highlight(str target, bool ignoreCase=true) { New: extend public void highlight(str target, color hc, bool ignoreCase=true) { Old: extend public void highlight(str{} keys) { New: extend public void highlight(str{} keys, color hc) {
PropsSchemeSectionedLabel
Old: extend public void highlight(str target, bool ignoreCase=true) { New: extend public void highlight(str target, color hc, bool ignoreCase=true) { Old: extend public void highlight(str{} keys) { New: extend public void highlight(str{} keys, color hc) {
Visibility of TBQuickBarButton
has been changed from public
to private
.
The ToolboxSectionedLabel
constructor is no longer the same constructor as for Display
, with the following parameters:
public constructor(Window parent, Brush brush=noBrush, FrameStyle frameStyle=noFrame, frame3DState frameState=frameStateFlat, str key=null, str label=null, str tooltip=null, bool initFacelift=false, // pass true to enable new Facelift style SrcRef src=#:src) {}
The LazyBasicSnapperButton
constructor has been changed to not perform any auto sizing unless passed a size of (-1, -1)
. All subclasses should modify their constructor's default size parameter to match the new default in order to retain auto sizing.
Removed: public void deleteUserStyle(str styleKey) { Added: public void deleteUserStyle(UserStyle style) {
Removed: public bool saveUserStyle(UserStyle style) { Removed: public bool saveUserStyle(UserStyle style, Url url) { Added: public bool saveUserStyle(UserStyle style, bool newStyle=false, Url url=null) {
Old: public sorted str->UserStyle styles; New: private sorted str->UserStyle styles : public readable; Added: public void remove(str key) {
The new put method uses the key of the style. Consider using this if the key matches the key of the style.
Added: final public void put(UserStyle p) {
Old: public class UserStyle { New: public class UserStyle : abstract {
Replaces getStyleUrlPath
in RegTypeCard
.
Added: extend public Url getDefaultStyleUrlPath() {
Replaced with method in UserStyle
:
Removed: extend public Url getStyleUrlPath(UserStyle s) {
Removed: extend public bool addNewStyle(UserStyle s) { Removed: extend public bool saveStyle(UserStyle s) { Added: extend public bool saveStyle(UserStyle s, bool newStyle=false) {
Removed: extend public bool addNewStyle(UserStyle s) { Added: extend public bool saveStyle(UserStyle style, bool newStyle=false) {
Old: public bool edit; New: private bool edit;
The following colour constants have been moved to cm.win
:
public const color black(0, 0, 0); public const color white(255, 255, 255); public const color lightGray(220, 220, 220); public const color gray(198, 198, 198); public const color darkGray(145, 145, 145); public const color lightRed(235, 175, 175); public const color red(212, 151, 151); public const color darkRed(210, 120, 120); public const color brightRed(230, 100, 100); public const color strongRed(255, 0, 0); public const color lightGreen(114, 191, 134); public const color green(128, 163, 135); public const color darkGreen(110, 135, 110); public const color brightGreen(90, 190, 90); public const color strongGreen(0, 255, 0); public const color lightBlue(155, 197, 230); public const color blue(135, 177, 248); public const color darkBlue(126, 126, 200); public const color brightBlue(110, 110, 240); public const color strongBlue(0, 0, 255); public const color lightYellow(230, 231, 186); public const color yellow(229, 231, 164); public const color darkYellow(208, 203, 115); public const color brightYellow(235, 230, 90); public const color strongYellow(255, 255, 0); public const color lightBrown(211, 200, 169); public const color brown(192, 176, 138); public const color darkBrown(172, 153, 110); public const color lightBeige(205, 205, 180); public const color beige(224, 211, 175); public const color darkBeige(229, 204, 133); public const color lightOrange(238, 200, 140); public const color orange(245, 194, 98); public const color darkOrange(220, 170, 70); public const color brightOrange(246, 168, 33); public const color lightPurple(213, 183, 229); public const color purple(198, 137, 229); public const color darkPurple(165, 114, 191); public const color brightPurple(190, 108, 200); public const color strongPurple(255, 0, 255);
Removed unused field from DwgMaterialProp
constructor.
Old: public constructor(Url texturePath, CByteArray pixelData) New: public constructor(Url texturePath)
The following functions have been moved to cm.win
:
str inchesS(box, bool, lcid, int)
str inchesS(line, bool, lcid, int)
str inchesS(point, bool, lcid, int)
A field in this class has been changed to be more generic to handle more variants of SubSet.
public class CollisionLimitedVectorOption extends CollisionVectorOption { - Old: public DoubleStepRange steps; - New: public SubSet domain;
str inchesS(point2D, bool, lcid, int)
has been moved to cm.win
.
str inchesS(range, bool, lcid, int)
has been moved to cm.win
.
Removed the following deprecated definitions from the SelectedFloorControl
class.
Removed: public CoreDistanceField elevation; Removed: public CoreDistanceField floorT; Removed: public CoreDistanceField ceilingH;
The following constructors in FloorViewItem
has been changed. The remaining constructor should be enough for all known use-cases.
Old: public class FloorViewItem extends TreeViewItem { New: public class FloorViewItem extends LevelTreeViewItemBase { Old: public constructor(FloorsControl floorsControl, SpaceVolume v, SrcRef src=#:src) { New: public constructor(FloorsControl floorsControl, SpaceVolume v) { Removed: public constructor(FloorsControl floorsControl, symbol id, Space space, SrcRef src=#:src) {
The following fields in the FloorViewItem
class was made private and moved into the base class LevelTreeViewItemBase
. The fields can still be accessed through getter functions.
Old: public Space space : copy=reference; New: private Space _space : copy=reference; Old: public symbol volumeId; New: private symbol _volumeId;
The following methods in FloorViewItem
have been modified and moved into the new base class LevelTreeViewItemBase. In most cases this shouldn't require any action.
Old: extend public bool isOutside() { New: final public bool isOutside() { Old: extend public void setSpace(Space space) { New: extend public void setSpace(Space newSpace) { Old: extend private bool anyLevelsCreated() { New: final public bool anyLevelsCreated() { Old: extend public bool isVisible() { New: final public bool isVisible() { Old: extend public bool isLocked() { New: final public bool isLocked() { Old: extend public bool isSolid() { New: final public bool isSolid() { Old: extend public void toggleVisibility() { New: final public void toggleVisibility() { Old: extend public void toggleLocked() { New: final public void toggleLocked() { Old: extend public void toggleSolid() { New: final public void toggleSolid() {
The following method in FloorViewItem
has been moved to a standalone function outside of the class.
Removed: extend public void cloneFloor(bool onlyVolumeSnappers) { Added: package void undoableCloneLevel(SpaceVolume volume, Space space, bool onlyVolumeSnappers=false) {
The following definitions in cm/std/tools/library.cm
have been removed, as they are no longer used. If you still require some of the functionality, consider making a local copy of it.
Removed: package bool showMirror = false; Removed: public class ShowMirrorVisibility extends LibraryLimbVisibility { Removed: public str arrowHeadIndexToLabel(Object o) { Removed: public str precisionIndexToLabel(Object o) { Removed: public Object setInitialPrecision(ObjectSubSet seq, int key) {
The following definitions in cm/std/tools/library.cm
have been changed to private, as they were not used outside of the file.
Old: package int->str pToLCache = null; New: private int->str pToLCache; Old: package distanceUnit lastUnit = distanceUnit.none; New: private distanceUnit lastUnit = distanceUnit.none;
The following changes were made to support development efforts for the New UI.
SlimDoubleScrollBar
has been deprecated. Set the slim parameter in DoubleScrollBar
to true
instead.
The following changes were made to cm/win/cardWindow.cm
:
Removed: public bool delayToolboxPaint; Removed: public taskStatus cardWindowDrawFrameCB(Task task, timespan slot, Object arg) {} Removed: public taskStatus cardWindowDrawFlapsCB(Task task, timespan slot, Object arg) {}
FrameWindow
resizing has been split into 2 separate methods.
The first method resizing0
determines the frame borders and resizing1
should perform actual re-layout logic.
Deprecated: extend public rectI resizing(rectI r, bool left, bool right, bool top, bool bottom) Added: extend public rectI resizing0(rectI r, bool left, bool right, bool top, bool bottom) Added: extend public void resizing1(sizeI s)
CardWindow
has had the following changes:
Removed: public bool rebuildingInProgress; Added: public int rebuildNesting; Added: final public bool rebuildingInProgress() {} Removed: extend public bool drawFrame(WindowPixelDevice c, bool enqueue=true) {} Added: extend public bool drawFrame(WindowPixelDevice c) {} Removed: extend public void drawFlaps(WindowPixelDevice c, bool dragging=false, bool enqueue=true) {} Added: extend public void drawFlaps(WindowPixelDevice c, bool dragging=false) {}
FormattedTextArea
has the following methods removed:
Removed: final public void setText(null n) {}
All predefined LegacyFrame
s in cm/win/legacyFrame.cm
have been removed due to performance issues:
Removed: public FrameStyle redButtonFrame -> Migrate to redPenFrame Removed: public FrameStyle greenButtonFrame -> Migrate to greenPenFrame Removed: public FrameStyle blueButtonFrame -> Migrate to bluePenFrame Removed: public FrameStyle grayFrame -> Migrate to stdLightFrame Removed: public FrameStyle mediumGrayFrame -> Migrate to stdGrayFrame Removed: public FrameStyle darkGrayFrame -> Migrate to darkGrayPenFrame Removed: public FrameStyle unknownFrame -> Migrate to null
The fields in SubMenuInfo
have been changed:
Removed: public bool visible;
The following change in cm/win/distanceLabel.cm
was made to support adding yardage as a unit of measure.
Added: public str yardsS(double meters, bool showUnit=true, int decimals=2, bool decimalZeroes=false, lcid locale=lcid(-1), unitMagnitude magnitude=unitMagnitude.dist) {}