Compile Time Changes

The following functions have been added.

// retrieves a set of all materials applied to a `Snapper` without loading symbol materials
Added: extend public Material{} appliedMaterials(Snapper snapper) {}

// removes COM from applied COM materials and (optionally) cached COM materials
Added: extend public void removeCOM(str comID, bool removeFromCache=false) {}

function buildDsRedirectWarning

The following deprecated method has been removed:

Removed: public void buildDsRedirectWarning(DsPdata data,
                                            LibraryLimb parent,
                                            symbol pkg,
                                            int cid,
                                            str ofdaCode)

The following method has been updated to take in a facelift flag. Setting this to true will construct a facelifted version of data symbol redirect warning.

Old: public void buildDsRedirectWarning(DsPData data,
                                        LibraryLimb parent,
                                        symbol pkg,
                                        int cid,
                                        str ofdaCode,
                                        bool allowClearAllRedirects=true)
New: public void buildDsRedirectWarning(DsPData data,
                                        LibraryLimb parent,
                                        symbol pkg,
                                        int cid,
                                        str ofdaCode,
                                        bool allowClearAllRedirects=true,
                                        bool facelift=false)

class DsUILibraryLimb

The constructor for 'DsUILibraryLimb' has been adjusted to accept a 'facelift' flag, 'preferDesc' flag, 'btnHint' enum, 'src' reference.

Old: public constructor(symbol pkg, str key, DataCatalog cat, Image image=null, bool frame=true, str label=null, str toolTipText=null, Image toolTipImage=null, str{} visibleCats=null)
New: public constructor(symbol pkg, str key, DataCatalog cat,
                        LibraryLimbVisibility vs=null, Image image=null,
                        bool frame=true, str label=null, str toolTipText=null, Image toolTipImage=null,
                        str{} visibleCats=null, bool facelift=false, bool preferDesc=false,  // bool facelift, bool preferDesc are new
                        dsBtnHint btnHint=dsBtnHint.mediumSquare3D, SrcRef src=#:src)        // dsBtnHint btnHint and SrcRef src are new

Old: public constructor(LibraryLimb parent, symbol pkg, str key, DataCatalog cat, LibraryLimbVisibility vs=null, Image image=null, bool frame=true, str label=null, str toolTipText=null, Image toolTipImage=null, str{} visibleCats=null)
New: public constructor(LibraryLimb parent,
                        symbol pkg, str key, DataCatalog cat,
                        LibraryLimbVisibility vs=null, Image image=null,
                        bool frame=true, str label=null, str toolTipText=null, Image toolTipImage=null,
                        str{} visibleCats=null, bool facelift=false, bool preferDesc=false,
                        str{} visibleCats=null, bool facelift=false, bool preferDesc=false,  // bool facelift, bool preferDesc are new
                        dsBtnHint btnHint=dsBtnHint.mediumSquare3D, SrcRef src=#:src)        // dsBtnHint btnHint and SrcRef src are new

Runtime/Behavior Changes

The fields I1 (part base price) and O1 (option price) have been added to SIF exports for parts. OL for option price has been removed.

final package str[] generateConfiguraSifRows(DsPart part, Space space) {
	
	...
	
	// I1= base price (without option upcharges)
	addSifRow(env, "I1", part.basePrice().toS());
	
	...
	
	//Options
	for (DsPDataOption pO in sortedSelOptions, index=index) {
		...
		addSifRow(env, "O1", o.price(this).toS);
		...
	}
	
	...
}

The fields I1 (part base price) and O1 (option price) have been added to SIF exports for parts, leading to these additions in DsFreeformPData:

public str[] generateSifRows(DsPart part, Space space) {
	
	...
	
	// I1= base price (without option upcharges)
	addSifRow(env, "I1", part.basePrice().toS());
	
	...
	
	//Options
	for (pO in sortedSelOptions, index=index) if (pO as DsPDataOption) {
		...
		addSifRow(env, "O1", o.price(this).toS);
		...
	}
	
	...
}

cDsFreeformMeasTypeSubSet now excludes enum types unknown, mirrorPointX, mirrorPointY, and insertElevation. This means these columns are no longer available as columns in the freeform picklist.