@easterngraphics/wcf
, please see breaking changesmodules/polyfill/core-js
which can be imported as a module to bundle the core-js polyfillprop/groupProperties()
utility to simplify and unify the property grouping in applicationsprop/PropertyValue.selectable
view/Viewer.handleWheelEvent
property which can be used to disable wheel
event handling and allow page scrollingaction/splitUpCompositeArticles()
CalculationManager.getExchangeRatesMap()
pReferenceCurrency
to CalculationManager.setExchangeRates()
AppInitOptions.stencilBuffer
is now enabled by default to circumvent an IOS bugwcfConfig.articleConfigurationOptions.trimPropText
)core-js
3.32.1 (see breaking changes)pep.js
as its no longer requiredjssha
as its no longer usednumber/toLocaleCurrencyString()
was not correct for some option combinationsbundles/eaiws.js
is now deprecated please use the modules insteadlibs/core-js
is now deprecated, modules/polyfill/core-js
should be imported intead@egr/wcf
to @easterngraphics/wcf
therefore all module imports have to be changedmdl/io/GltfScene
), GLTF export provided by EAIWS should be used insteadBasket.InitSessionGeneratedImageOptions()
(defaults are now defined in EAIWS server.cfg)ArticleElement.getCatalogImage()
by ArticleElement.getCatalogImageUrl()
string/hash()
and arraybuffer/hash()
now require a secure connection (HTTPS)wcfConfig.libsPath
and getLibsPath()
Log.eventWarn
and eventError
by callbacks onWarn
and onError
to prevent circular dependency errorscore-js
is now a custom build containing only stable ES and web standards for the last 3 browser versions.actions/relocateItems()
prop.AngleProperty
as new property typeSetArticleItem.setCollapsed()
NET_VALUE_ECO
to PricingProcedureLineTag
mdl/io/GltfScene
) is now deprecated, GLTF export provided by EAIWS should be used insteadloadDocumentFromContainer()
and saveDocumentToContainer()
no longer catch/hide AppModule
exceptionsaction/updateOfmlArticles()
does no longer throw article update errors as an exception. They are now collected and returned as part of the update result.EaiwsSession.uploadFileToUrl()
and uploadFile()
are now using utils/async/ajax()
instead of using XMLHttpRequest
directlyPriceProfileService
is now deprecated, use REST API of PriceProfile plugin (v1.5) instead.rendering/ShadowPlane
was missing after the WebGL context was restoredAddressData.countryCode
collapseSetArticles()
and expandSetArticles()
AppCallbacks.showMessage
(part of OAP 1.4)prop/PropertyValue.image
pArticle
of actions/insertArticle()
now also supports eaiws/basket/InsertInfo
as typeFolderItem.setLongText()
and FolderItem.getLongText()
TextItem.setLongText()
and TextItem.getLongText()
pArticle
of ArticleManager.insertArticle()
now also supports eaiws/basket/InsertInfo
as typepLineDistance
to utils/createGrid()
articleConfigurationOptions
to wcfConfig
which can be used to enable high resolution property iconssortItems()
function (used from actions/relocateItems()
and moveItems
)AppCallbacks.ShowActionChoiceOptions.goBack
ItemUpdateFlags.UserArticleDescription
is now deprecated, use ItemUpdateFlags.UserItemDescription
insteadBasket.loadFromSession()
by executing some requests in parallelactions/insertArticle()
when inserting ofml articles with many childrenBasket.checkConsistency()
optionally checks for calculation errors (enabled by default)Basket.loadFromSession()
optionally activates a given pricing procedure during loading (which is faster than doing it afterwards)BasketItem.setComments()
BasketItem.getInactiveState()
ItemLockFlags.OfmlArticleUpdate
async/ajax()
now also accepts HEAD
as request methodasync/fetchContentType()
image/getImageMimeType()
string/removeQueryString()
SoapService.onGetRequestOptions
which allows to define custom request options for different soap methodsBasket/View.root
now throws an exception if it was not initialized yet or already clearedBaseItem.children
is no longer undefined after an item was disposed, its now empty insteadunknown item id
error during execution of deleteItems()
actionactions/setItemAlternativeState()
is now deprecated, use actions/setItemInactiveState()
insteadstring/getFileExtension()
now always returns the extension lowercasestring/getFileExtension()
, getFilePath()
and getFileName()
now ignore the query string of the given urlpTimeout
of BasketService.getExportedGeometry
is now deprecated (use SoapService.onGetRequestOptions
instead)cf/ArticleManager.createArticleScreenshot()
Infinity
value returned from EAIWS for decimal
data typeegrWcf.eaiws.plugins.priceProfile.ConditionRule
has to be used as type instead of egrWcf.eaiws.plugins.PriceProfileService.ConditionRule
BoundingBoxDimensions
in case of offsetFactor
> 1MainArticleElement.getCompositeCalculation()
returned wrong price for alternative articlesArticleItem.getCompositeCalculation()
returned wrong price for alternative articlesimages
to catalog/CatalogItem
Viewer.fxaaEnabled
)mdl/PbrMaterial
to reduce aliasing of glossy materialsCameraControl.stopOrbitInertia()
MaterialManager.customEnvironmentUrl
prop/PropertyValue.surcharge
core/prop/PropertyValue.surcharge
(see breaking changes)ArticleManager.includeCalculationErrorsInInconsistencies
Basket.includeCalculationErrorsInInconsistencies
cfg/ArticleConfiguration.assignArticleImageCamera()
optionally updates article images immediatelyItemLockFlags.Quantity
(see breaking changes)pForce
parameter to View.update()
additionalDecimalPlaces
to number/toLocaleCurrencyString()
AppInitOptions.disableWebGL2Support
is now true
because of issues with WebGL 2 in some browsers (e.g. IOS 15.0 or some low-end Android devices)showMainElementSelection
or showSubElementSelection
of tool/SelectionDefault
will now update the current selectionViewer.antiAliasingQuality
was set to 0mdl/SceneElement.replaceNode()
didn't handle the case that the SceneElement was removed from the scene or was already disposedItemLockManager.isHeaderCalculationLocked()
returned true even if the calculation of an item was not lockedArticleElement.getArticleData()
scripts
are no longer part of the W-CF distribution (there is still an eaiws bundle), the application has to migrate to modules (see README.md
)Application.dataPath
use /utils/wcfConfig.dataPath
insteadAppInitOptions
for Application.initialize()
is now an interface instead of a classAppDocument
, import load/save functions from /core
instead (e.g. loadDocumentFromZip()
)view
to wcf-view
PecImport
is no longer available as a class, import functions from /cf/io
instead (e.g. importPec()
)core/prop/PropertyValue.surcharge
to get the surchargeBASKET_COLUMN_ID_USER_IMAGE
and BASKET_COLUMN_ID_EXT_ITEM_NUMBER
from Basket
class, can be imported from /bsk
insteadBasket
and View
, can be imported as individual functions from /bsk/actions
(e.g. insertArticle()
)configuration
property from Basket, /bsk/cfg/ArticleConfiguration
should be used insteadArticleItem.hasIndependentChildren()
cfg/ArticleConfiguration.loadPreConfigurationFromSession()
has to be called to restore the pre configurationcfg/ArticleConfiguration.assignArticleImageCamera()
is now a promise and the parameters have changedItemLockFlags.Calculation
no longer locks the article quantity, use ItemLockFlags.Quantity
insteadutils.wcfLibsPath
use /utils/wcfConfig.libsPath
insteadutils.dom.loadContentErrorHandler
use /utils/wcfConfig.loadContentErrorHandler
instead/utils/wcfConfig
image/load()
to loadImage()
array/remove()
to removeElement()
gfj path not found
error in pec import for some pec files if no eaiws session is availableCamera.setTarget()
resulting in rotated top view (introduced in 7.1.1)Camera.setTarget()
resulting in wrong camera rotationSortGroupSelector
ArticleItem.getCameraSetup()
and setCameraSetup()
Basket.PrepareBasketColumns()
UserArticleItem.setPurchasePrice()
UserArticleItem.setSalesPrice()
UserArticleItem.setPriceDate()
ProjectInfo.get/setDefaultPriceDate()
pPriceDate
parameter to Basket.updateOfmlArticles()
pPriceDate
parameter to MainArticleElement.updateOfmlArticle()
pImmediateResize
flag to Viewer.resize()
ItemProperties
and ArticleData
are now always using the eaiws option separateCurrencies
. The properties purchaseCurrency
and salesCurrency
have to be used instead of currency
.eventPropertiesChanged
wasn't triggered for articles which were indirectly changed by a property change of another subarticlerendering.ShadowMapping
which generates soft directional shadowsrendering.createShadowOnlyFloor()
helper function (to be used in combination with rendering.ShadowMapping
)Viewer.ssaoQuality
to disable it)Viewer.createScreenshot()
now supports all rendering effects of BabylonJS (e.g. shadows, post processing, gui)PecImportOptions.dataLanguage
ArticleManager.eventOapError
InsertArticleOptions
can be provided for ArticleManager.insertArticle()
and insertSubArticle()
BoundingBoxDimensions
is now public and can be used to show dimensions for a group of elementsInsertArticleOptions
can be provided for Basket.insertArticle()
showSubTotal
option to Basket.insertFolder()
CalculationManager.setItemConditionDescription()
ArticleItem.setShortText()
, setLongText()
or setFeatureText()
can be used for OFML articles to set a user defined article descriptionArticleItem.getUserDescription()
SoapError.methodName
AppInitOptions.preserveDrawingBuffer
is now true
AppInitOptions.disableWebGL2Support
is now false
rendering.ShadowPlane
to reduce z-fighting (not for IE 11 browser)mdl.io.UsdScene
exports only visible meshessetTaxInformation
, setPackagingVolume
and setPackagingNetWeight
from UserArticleItem
to ArticleItem
label
, shortText
, longText
or featureText
for an item is no longer language independentViewer.createScreenshot()
requires AppInitOptions.preserveDrawingBuffer
to be enabledViewer.view
is now the only available viewScreenshotView
, the different callbacks of ScreenshotOptions
should be used insteadpView
parameter from Viewer.createScreenshot()
BaseScreenshotOptions.onDrawBackground()
and onDrawOverlay()
are now asynchronousrendering.ShadowPlane
from 2mm to 0.5mm (rendering.ShadowPlane.planeYOffset
can be set to 0.0015 to get the old behavior)ArticleManager.offlineContext
, therefore article information in loaded documents is no longer available without an valid EAIWS sessionBasket.insertArticle()
didn't handle the varCodeType
of eaiws.catalog.ArticleCatalogItem
tool.SelectionDefault
mdl.io.UsdScene
to prevent exceptionsAppCallbacks.showMedia
FINAL_VALUE_NO_DISCOUNTS
tag to PricingProcedureLineTag
View.extraPriceInfoSelectors
property (requires EAIWS 4.8 beta 5)View.pickSceneWithFrustum()
if a line mesh was pickedBasket.pasteItems()
returned the original items instead of the pasted onesSoapError.detail
which contains additional error information (e.g. basket.BasketServiceFault
)INVISIBLE
and PURCHASE_CALC
tag to PricingProcedureLineTag
Basket.eventItemsPasted
ProjectInfo.getEffectiveProjectLanguages()
and eventEffectiveProjectLanguagesChanged
CalculationManager.updateConditionAmounts()
MainArticleElement.dimensionsColor
async.delay()
and async.delayForAnimation()
BasketItem.setTmText()
now uses the primary project language as default instead of the session localeProjectInfo.getProjectData()
returns the project texts in JSON
formatMainArticleElement
will be updated automatically if dimensionsColor
or dimensionsScaleFactor
changedpError
parameter to async.ajaxRejectedEvent
styles/pl.css
has to be loaded from the application if the pl
module is usedArticleConfiguration.assignArticleImageCamera()
only worked correctly for articles positioned at the originpIgnoreHeaderCalculation
parameter of BaseItem.getCalculation()
)mdl.io.GltfScene
(api and functionality may change)mdl.io.UsdScene
/libs/babylonjs/babylonjs.serializers.min.js
(only required by the GLTF scene export)string.joinPath()
contained double slashes in some casesCommandManager.executeCommand()
and ToolManager.startTool()
no longer hide/swallow exceptionsplanningHDR_512.env
was loaded even if not usedmutiLine
flag to prop.StringProperty
MaterialManager.environmentMode
CalculationManager.adjustConditionValue()
, adjustCalculationLineAmount()
and adjustCalculationLineValue()
(requires EAIWS 4.8 beta 1)Basket.addView()
now also accepts a view config to avoid an additional SOAP requestBasket.insertSetArticle()
if a folder is currently selected which is part of a set articleDefaultRotate
toolstring.hash()
and arraybuffer.hash()
string.encodeToUtf8()
arraybuffer.toHex()
async.ajaxResolvedEvent
and async.ajaxRejectedEvent
Basket.mergeArticles()
jsSHA
version 2.4.0, will be used as a fallback for hash generation and is loaded on-demandOnOff
(requires EAIWS 4.7.4)utils.wcfLibsPath
has to be defined or hash generation will fail under chrome if a non-secure connection is usedasync.ajaxResolvedEvent
and async.ajaxRejectedEvent
UserArticleItem.setNetWeight()
BaseItem.getPositionNumber()
blueimp-md5
is no longer used internally and therefore is no longer part of the W-CF distributionnumber.toLocaleLengthString()
returned wrong unit for LengthUnit.Kilometer
xml
type to AjaxOptions.responseType
SessionService.loadEmptySession()
didn't clear internal cachesChangeDim2Left
and ChangeDim2Right
didn't work in all sizesunknown item id
error during article configuration if nested sub articles got deleted that are not part of the main article hierarchyCalculationManager.setCurrency()
resets the ofml update state for UpToDate
articlestool.SelectionDefault
Basket.clear()
didn't reset the ProjectInfo
cacheConversion from OMATS1 to PBR
version 1.2tool.SelectionDefault.leftMouseButtonRectangleSelectEnabled
flagtool.SelectionDefault.rectangleSelectMode
view.CameraControl.leftMouseButtonEnabled
flag which can be used to disable left mouse button navigationMultiPropertyProvider
now provides an abortable progress while handling propertiesUserArticleItem.setPackagingVolume()
UserArticleItem.setPackagingNetWeight()
BaseItem.getItemNumber()
Basket.eventOfmlUpdateStateChanged
ProjectInfo.notifyProjectDataChanged()
Basket.updateOfmlArticles()
moveLimitMin
and moveLimitMax
property to Default
and TouchDefault
toolarray.chunk()
tabIndex
of viewer canvas from 1 to 0UserArticleItem.setNetWeight()
in favor of UserArticleItem.setPackagingNetWeight()
BaseItem.getPositionNumber()
in favor of BaseItem.getItemNumber()
Default
and TouchDefault
tool limit the object movement by default to an 40 meter area, see moveLimitMin
and moveLimitMax
propertiesSubArticles
weren't updated correctly after changing the quantity of a view itemBasket.updateOfmlArticles()
is called for many articlesBasket.fetchOfmlUpdateStates()
is called for many articlesArticleItem.ofmlUpdateState
wasn't always correctBasket.clear()
didn't reset the cached tax schemeBasketViewConfig.visibleColumns
was always undefineditemId
property to basket.ImageInfo
basket.getPriceCalculationSheets()
ItemLockManager
which can be used to lock certain item related operations.string.generateRandomUUID()
project.AddressData.countryCode
is empty when changing/adding an addressArticleItem.getCompositeCalculation()
now contains a quantity and has correct unit pricesMainArticleElement.getCompositeCalculation()
now contains a quantity and has correct unit pricesio.DocumentInputContext.getFile()
io.DocumentInputContext.listFiles()
tool.SelectionMenu.deactivateOnToolStart
propertytargetCanvas
option to view.BaseScreenshotOptions
CameraControl.zoomBy()
ModelManager.getElementLoader()
ArticleElement.hasInteractors()
async.ajax()
now returns an abortable promiseasync.ajax()
, dom.loadScript()
and dom.loadStyleSheet()
will automatically retry the request in case of network errors, up tp 3 times by defaultpAsync
parameter to dom.loadScript()
async.forEachParallel()
object.fromMap()
EaiwsSession.eventConnected
and eventDisconnected
EaiwsSession.eventSessionLocaleChanged
EaiwsSession.eventCatalogLanguagesChanged
EaiwsSession.eventBasketLanguagesChanged
SessionService.getSystemInformation()
now also available as non static functionSessionService.importFile()
CatalogService.getLanguages()
BasketService.getLanguages()
BasketService.moveItems()
BasketService
Basket.eventModified
Basket.updateSessionLanguage()
Basket.checkConsistency()
Basket.mergeArticles()
Basket.importPec()
Basket.moveItems()
and Basket.getPossibleMoveDirections()
BasketItem.setTmText()
FolderItem.setShowSubTotal()
CalculationManager.eventTaxSchemeChanged
CalculationManager.eventCurrencyChanged
CalculationManager.getReferenceCurrency()
ProjectInfo
ProjectInfo.getSettings()
and ProjectInfo.changeSettings()
are now marked as obsoleteArticleManager.insertArticle()
didn't handle the varCodeType
of eaiws.catalog.ArticleCatalogItem
OAP
processing which could lead to some side effectsOAP
interactors did only check the current child article instead of checking the whole main articleBasket.insertUserArticle()
OAPPropChangeAction
to basket serviceImport
to SessionCacheFileType
of session serviceio.DocumentContainer
have to implement the listFiles()
functionasync.ajaxError
into async.AjaxErrorInfo
async.ajaxError.debugInfo
into async.AjaxErrorInfo.requestInfo
async.ajaxErrorDebugInfo
into async.AjaxRequestInfo
async.AjaxErrorMessageCallback
into async.AjaxCustomErrorCallback
async.ajaxDefaultOptions
has to be used instead of qwest.setDefaultOptions()
object.className()
as its not working as intended for minified codeEaiwsSession.open()
SessionService
and all related types from eaiws
to eaiws.session
namespaceBasketService
and all related types from eaiws
to eaiws.basket
namespaceCatalogService
and all related types from eaiws
to eaiws.catalog
namespaceBasket.importObx()
may now return null
if the file upload was abortedBasket.moveItems()
to Basket.relocateItems()
styles/pl.css
from distributionqwest
is no longer used and therefore is no longer part of the W-CF distributionlibs/core-js/shim.min.js
is now named libs/core-js/minified.js
tool.SelectionDefault.eventBackgroundClick
was triggered even if an element was picked after a long touchArticleManager.initializeSession()
which has to be called to enable new OAP featuresMainArticleElement.fetchBasketItems()
ArticleElement.getBasketItem()
eaiws.ArticleData
in its user data, added ArticlePropertyHelpers.GetPropertyUserData()
to retrieve the user dataprop.MultiPropertyProvider.isPropertyValueUndetermined()
mdl.SceneElement.isSelectionHighlightEnabled()
)boundingBoxEnabled
flag to AppSnappingSettings
CommandManager.eventHistoryChanged
view.CameraControl.CameraZoomToFitOptions
ctrl
can be pressed to switch from orbit to panning)Basket.InitSessionGeneratedImageOptions()
BasketService.getItemFields()
BasketService.resetItemFields()
BasketService.setItemFields()
Array
to ReadonlyArray
async.Timer.isRunning
was always true after the timer was started oncemultiSelectAutoStartEnabled
and multiSelectDeselectAllEnabled
of tool.SelectionDefault
OAPActionListItem.action
is now optionalAppDocument.saveToContainer()
and saveToZip()
do no longer disable the rendering while savingsettings
to Application
which contain global settings for the snapping gridtool.SelectionMenu
class which can be used to provide a custom menu for the selected SceneElementsmdl.SceneElement.getSelectableParentElement()
mdl.ModelManager.selectParentSubElement()
mdl.SceneElement.boundingBoxVisible
which represents the visible bounds of an objecteventInteractorTriggered
to tool.ToolManager
eventMultiSelectModeChanged
to tool.SelectionDefault
eventElementClick
to tool.SelectionDefault
eventBackgroundClickImmediate
to tool.SelectionDefault
multiSelectAutoStartEnabled
to tool.SelectionDefault
multiSelectDeselectAllEnabled
to tool.SelectionDefault
addResourceFromCache()
to DocumentOutputContext
Color3
as new property typePATCH
as available AjaxMethod
pBeforeCallback
to async.ajax()
object.toMap()
object.shallowEqual()
dom.loadContentAsBlobUrl()
dom.submitForm()
retryCount
property to async.ajaxError
async.Timer()
async.DelayedTask()
RectangleSelect
tool no longer toggles the selection in multi selection mode (it only adds new elements)tool.TouchDefault
if camera controls are disabledListenableEvent
and AsyncListenableEvent
, event parameter may only be undefined if is type supports itview.CameraControl.zoomToFitMeshes()
ignored the pOptions
parameterprop.MultiPropertyProvider.setPropertyValueUndoable()
prop.MultiPropertyProvider
ignores property classes while merging properties (properties with different classes but same key are now identical)CalculationManager.getTaxSchemeId()
and setTaxSchemeId()
CalculationManager.getTaxScheme()
and getDefaultTaxScheme()
CalculationManager.setTaxRate()
CalculationManager.resetTaxRate()
and resetTaxScheme()
ArticleItem.getTaxInformation()
UserArticleItem.setTaxInformation()
BaseItem.childIndex
BaseItem.getPositionNumber()
ArticleConfiguration.startMultiConfiguration()
which starts configuration of multiple articlesBasket.fetchOfmlUpdateStates()
mdl.SceneElement.isDisposed
propertyBasketService.resetTaxConfiguration()
BasketService.resetTaxScheme()
BasketService.resetTaxRate()
BasketService.setTaxRate()
dom.loadScript()
dom.loadStyleSheet()
ArticleConfiguration.start()
(if started again for same article) by caching configuration related article dataeventPropertiesChanged
is now triggered from ArticleElement.setEaiwsPropertyValue()
after the article geometry was updated instead of beforepBasketItems
parameter to ArticleManager.createArticleById()
OAPPropEditAction
triggered an unknown item id
exception on EAIWS side in some edge casesOAP
actions didn't get executed during processing of action lists which include user interactionsOAP
actions didn't trigger the property changed event in some casesModelManager.eventModified
got triggered if an element not part of the scene was modifiedEaiwsSession.uploadFile()
and uploadFileToUrl()
wasn't working as intendedItemProperties.positionNumber
was declared as boolean
instead of string
ArticleConfiguration
from bsk
to bsk.cfg
namespacejs
subfolder for each library and moved javascript files to the root of each librarybabylon.max.js
is no longer part of the W-CF distributionCameraControl.setTarget()
and setDirection()
rendering.ShadowPlane
on Y axis can be changed (see setPlaneYPosition()
)rendering.ShadowPlane
can be changed (see setTransparency()
)MaterialManager.pbrImageProcessing
property which gives access to the image processing configuration of PBR materialsBaseScreenshotOptions.onDrawBackground
)tool.SelectionDefault
as a default tool which handles element selectionMultiPropertyProvider
can also show the union of all properties instead of the intersectionViewer.forceRenderFrame()
PricingProcedureInfo.getLineTags()
and CalculationSheetInfo.getLineTags()
descriptionMode
to ArticleProperties
and ArticleData
visibleOnly
and editableOnly
flag to OAPPropEditAction
tool.TouchDefault
)groundYPosition
to tool.Default
automaticInteractorVisibility
to tool.Default
ArticleConfiguration.assignArticleImageCamera()
)ArticleConfiguration.resetView()
ArticleConfiguration.getArticleImageCamera()
Basket.updateOfmlArticles()
Basket.eventOfmlArticleUpdated
Basket.projectInfo
Basket.generatedImageResolution
property to adjust size of server generated imagesViewItem.findSetArticle()
ViewArticleItem.findMainArticle()
CalculationManager.setConditionDescription()
CalculationManager.setConditionAmount()
CalculationManager.resetConditionAmount()
CalculationManager.getGroupCalculation()
CalculationManager.addManualCondition()
CalculationManager.removeCondition()
CalculationManager.setQuantityRelation()
CalculationManager.resetQuantityRelation()
cameraFov
to ArticleScreenshotOptions
ArticleManager.importFromSession()
and importObx()
now optionally load articles which do not have a positionasync.Lock.waitWhileLocked()
unknown
is used instead of any
in many casesmdl.ModelManager
no longer creates default lights as they are not required for PBR materialsdefaultHDR_256.dds
) with a compressed version to reduce file size and in the same time increase the resolutiontool.Default
is now derived from core.tool.SelectionDefault
GfjLoader
will clamp incoming color values to prevent potential errorsmdl.Material
, use mdl.PbrMaterial
insteadI18nManager
io.ZipDocumentContainer.newContainer()
into NewContainer()
io.ZipDocumentContainer.loadContainer()
into LoadContainer()
mdl.PbrMaterial.convertToPbrParameters()
into ConvertToPbrParameters()
mdl.BoundingBox.fromNode()
into FromNode()
mdl.BoundingBox.fromMesh()
into FromMesh()
mdl.BoundingBox.fromElements()
into FromElements()
mdl.io.GltfMesh.importFromUrl()
into ImportFromUrl()
mdl.io.GltfMesh.import()
into Import()
mdl.io.GltfMesh.export()
into Export()
mdl.NodeUserData.fromNode()
into FromNode()
mdl.NodeUserData.getData()
into GetData()
mdl.NodeUserData.setData()
into SetData()
mdl.SceneElement.fromNode()
into FromNode()
prop.StringProperty.convertValueToString()
into ConvertValueToString()
prop.BoolProperty.convertValueToBool()
into ConvertValueToBool()
prop.NumberProperty.convertValueToNumber()
into ConvertValueToNumber()
tool.SnapLine.fromAxis()
into FromAxis()
tool.SnapLine.snap()
into Snap()
tool.SnapPoint.snap()
into Snap()
view.CameraControl.setMeshCameraModeMask()
into SetMeshCameraModeMask()
view.CameraControl.getMeshCameraModeMask()
into GetMeshCameraModeMask()
view.InputState.isMousePointer()
into IsMousePointer()
view.InputState.isPrimaryMousePointer()
into IsPrimaryMousePointer()
ArticleElement.getEaiwsProperty()
into GetEaiwsProperty()
getOfmlUpdateState()
and getKnownOfmlUpdateState
from ArticleElement
to MainArticleElement
ArticleManager.importFromSession()
and importObx
has changedSoapService.logSoapErrors
into LogSoapErrors
SessionService.getSystemInformation()
into GetSystemInformation()
SessionService.openSession()
into OpenSession()
PricingProcedureInfo.createInfo()
into CreateInfo()
CalculationSheetInfo.vat
, unitVat
and vatAmount
because there can be multiple VATs, use CalculationSheetInfo.getLineTags()
insteadtool.Default.moveYBelowZeroEnabled
to tool.Default.moveYBelowGroundEnabled
i18next
rendering.ShadowPlane
was rendered incorrectly if the scenes clearColor was changedcore.tool.SelectionDefault
bounds calulationMaterialManager.pbrConversionEnabled
false to disable the conversion)Viewer.antiAliasingQuality
propertyCameraControl.setFov()
propertytool.Default.deselectionEnabled
)tool.Default.showElementInteractors
ArticleConfiguration.assignArticleImageCamera
can be used to define the camera which is used for the article image generationBasket.deleteItems()
Basket.insertFolder()
Basket.insertTextItem()
Basket.insertUserArticle()
Basket.insertSetArticle()
Basket.insertContainerItem()
Basket.copyItems()
Basket.pasteItems()
Basket.moveItems()
Basket.importObx()
Basket.beginSelectionChange()
and Basket.endSelectionChange()
Basket.setItemAlternativeState()
Basket.convertToUserArticles()
Basket.convertToSetArticle()
Basket.breakUpSetArticle()
pShouldFetchCallback
to BaseItem.fetchItemProperties()
and BaseItem.fetchCalculations()
eventHeaderCalculationChanged
to Basket and ViewArticleItem.hasIndependentChildren()
ArticleItem.getCompositeCalculation()
BaseItemManager.waitUntilItemsUpdated()
BaseItem.isExcludedFromCalculations()
CalculationManager.get/setExchangeRates()
MainArticleElement.getCompositeCalculation()
RotateNY90
and RotatePY90
OAP interactor symbolssessionId
property to EaiwsSession
plugins.PriceProfileService
as wrapper for the SOAP interface of the eaiws PriceProfile pluginmanufacturer
, program
and distributionRegion
to ArticleProperties
BasketService.changeAlternativePositionState()
BasketService.insertUserArticle()
BasketService.convertToUserArticles()
BasketService.removeFromSetArticle()
BasketService.breakUpSetArticle()
async.Lock
string.joinPath()
string.compare()
number.toLocaleCurrencyString()
mdl.Material
is now marked as deprecated and will be removed in later releases, use mdl.PbrMaterial
insteadAppCallbacks.showPropertyEditor()
has changedBasket.deleteItem()
, use Basket.deleteItems()
insteadinvalidateHeaderCalculation()
and getHeaderCalculation()
from CalculationManager
to Basket
BasketItemUpdateFlags
to ItemUpdateFlags
BasketItem.getMainArticleId()
returns undefined if BasketItem.mainArticleId
is undefinedpErrorMessageCallback
of the ajax
function now gets the thrown error as first argumentdev_utils
module was removed, the createAxisTrihedron
function is now part of the pl
module (see utils.planning.createAxisTrihedron()
)BasketService.getAllItems()
and BasketService.getItemProperties()
is now optionalValue
types in soap requestsAsyncListenableEvent.trigger()
is now prevented using async.Lock
moveYBelowZeroEnabled
property of default tool can be set to false to prevent moving objects below zeroAppInitOptions.disableWebGL2Support
BABYLON.TransformNode
CameraControl.zoomToFitElements()
and zoomToFitMeshes()
now support zoom based on the bounding sphereCameraZoomToFitOptions.minMarginPx
)providers
to MultiPropertyProvider
BABYLON.Camera.FOVMODE_HORIZONTAL_FIXED
)Application.eventAnimate
Application.theme.fontFamily
CameraControl.DEFAULT_CAMERA_POSITION
and CameraControl.DEFAULT_CAMERA_ORTHO
BaseScreenshotOptions.onDrawOverlay
BaseScreenshotOptions.pixelScaleFactor
to adjust scaling of certain elements like 2D textApplication.appCallbacks.showActionChoice
CameraControl.orthoOrbitSnappingEnabled
Application.dispose()
hideMainArticle
and visibleSubArticles
properties to MainArticleElement
to control article visibilityArticleManager.eventArticleAdded
and eventArticleRemoved
and eventArticleInstanceRestored
ArticleManager.createArticlesById()
ArticleManager.getArticleById()
ArticleManager.fatherItemId
propertyMainArticleElement.hasSubArticles()
MainArticleElement.highlightSubArticles()
MainArticleElement.showDimensions
showMainElementSelection
and showSubElementSelection
eventBackgroundClick
to default toolrelocateItems()
to basket soap interfacegetImages()
to basket soap interfacegetSessionProperty()
to session soap interfaceset/getProjectSettings()
to session soap interfaceconfigureSessionLog()
and getSessionLog()
to session soap interfacePricingProcedureInfo
and CalculationSheetInfo
SoapService.requestTimeout
object.Indexable
interfacestring.isNotNullOrEmpty()
newError()
and rejectError()
helper functionsAsyncListenableEvent
async.Lock
string.fromBlob()
optionally returns a data-uri instead of a textSceneElement.mesh
with SceneElement.node
SceneElement.getMeshes()
with SceneElement.getNodes()
SceneElement.cloneMesh()
with SceneElement.cloneNode()
BABYLON.Node.getChildTransformNodes()
should be used instead of BABYLON.Node.getChildMeshes()
to ensure correct handling of TransformNodespMargin
parameter of CameraControl.zoomToFitElements()
and zoomToFitMeshes()
with pOptions
parameterCameraControl.dblClickZoomToFitMargin
with dblClickZoomToFitOptions
propertySerializable
interface from core.io
to utils.object
namespacecore.util.CustomDataMap
to utils.GroupedMap
pImageData
parameter from BaseScreenshotOptions.onAfterRender
callbackApplication.appCallbacks.showPropertyEditor
has changedEaiwsManager
to ArticleManager
MainArticleElement.cacheItemProperties()
to fetchItemProperties()
simpleEditMode
from default tool, use rotateXEnabled = false
and rotateZEnabled = false
insteadERR_INVALID_ARGUMENT
exception is now thrownSoapService.isValid()
and SoapService.setSessionId()
SessionService.openSession()
is now a static member functionSessionService.getSystemInformation()
is now a static member functionoriginalItemIds
to PasteContainerResult
SceneElement.showInteractors()
)SceneElement.saveUndoData()
)SceneElement.getSelectionHighlightBoundingBox()
)view.CameraControl.setMeshCameraModeMask()
tool.InteractorManager.dispose()
I18nManager.lengthUnit
and I18nManager.setLengthUnit()
I18nManager.translate()
now supports fallback keys and interpolationApplication.theme
)Application.appCallbacks
)AppDocumentLoadOptions.onValidateDocument
)eventAfterLoad
and eventAfterSave
of AppDocument
ModelManager.eventBeginTransformElements
and eventEndTransformElements
(will be triggered from TransformElements command)Viewer.createScreenshot()
optionally returns the image as blob (pAsBlob
parameter)GltfMesh.import()
and importFromUrl()
also support glTF 2.0mdl.BasicElement
mdl.SceneElement.getSelectableElement()
setSessionProperty()
to session soap interfacenumber
namespaceobject.isNullOrEmpty()
io.PecImport
)ArticleElement.hasGeometry()
ArticleElement.getKnownOfmlUpdateState()
trim()
, trimLeft()
, trimRight()
, regExpEscape()
and fromBlob()
to string utilsrendering.ShadowPlane
is only visible in perspective and orthographic viewsrendering.ShadowPlane
ignores objects which are positioned at y = 0 and have zero height (eg. planes)EaiwsManager.setGfjMaxTextureSize()
)Interactor.customCssTransform
to define additional transformsGltfMesh.export()
exports glTF version 2.0 and uses a right handed coordinate systemEaiwsManager.importObx()
does no longer add the loaded articles to the ModelManager
automaticallyArticleElement.getArticleData()
has changedOfflineContext
and GfjLoader
to io
namespacedist/cf.css
is loadeddist/pl.css
is loadedprop.LengthProperty
didn't implement clone()
ThickLinesMesh
GltfMesh.import()
failed if glTF mesh did not had indicesEaiwsManager.synchronizeSession()
didn't save article transformations correctlyArticleElement
didn't handle intervals of eaiws propertiesutils.placeElementsAtFreePosition()
didn't consider given position if model was not emptymdl.GeometryManager
which handles geometry cachingAppDocument
for document handling (e.g. load, save)AppModule
at the applicationprop.Property.type
which returns the property type as enumThickLinesMesh
to mesh utilsdisableWebGL2Support
option to AppInitOptions
(default: false)EaiwsManager.importObx()
and exportObx()
document.clear()
should be used instead of model.clear()
to start a new document/projecteventBeforeClear
and eventAfterClear
from model to documenteventBeforeLoad
and eventAfterLoad
from model to documenteventBeforeSave
and eventAfterSave
from model to documentmdl.MaterialManager.getOrCreateTexture()
with createTexture()
and createResourceTexture()
mdl.MaterialManager
now operates on mdl.Material
instead of BABYLON.StandardMaterial
RoomManager
from room.mdl to room namespaceEaiwsManager.loadFromSession()
to importFromSession()
pSaveArticleTransformations
to EaiwsManager.synchronizeSession()
and saveToObk()
utils.math.orientationToLine2()
returned wrong resultsutils.planning.placeElementsInViewCenter()
and utils.planning.placeElementsAtFreePosition()
utils.planning.placeElementsInViewCenter()
view.CameraControl
to limit certain camera interactions (e.g. zoom)view.CameraControl.yawMin
and yawMax
rendering.ShadowPlane
is no longer limited to an 10x10m area, the area size will be updated automaticallyrendering.ShadowPlane
by 25% (from 16 MB to 12 MB)pMaxOriginDistance
parameter of utils.planning.placeElementsInViewCenter()
got replaced by pOptions
parameterpDesiredPos
parameter of utils.planning.placeElementsAtFreePosition()
is now of type Vector2 instead of Vector3pShouldMigrateCallback
of EaiwsManager.loadFromSession()
will be called for migratable and updatable articlesEaiwsManager.loadFromSession()
async.ajaxResolvedEvent
and async.ajaxRejectedEvent
ArrayBuffer
utility functionsmath.angleDistance()
which returns the signed distance between 2 anglesmdl.io.GltfMesh
class which provides import and export functionality for glTF meshesCatalogService.getCatalogPath()
async.ajax()
is now based on qwest instead of jQuerytool.SnapGrid.size
is now of type BABYLON.Vector3
instead of number
GltfMeshLoader
class, core.mdl.io.GltfMesh
can be used insteadarray.unique()
which returns the unique entries of a given arrayarray.isArray()
, string.isString()
, number.isNumber()
and boolean.isBoolean()
tool.Interactor.onBeforeUpdateViewPosition
callbackview.Viewer.onDemandRenderingEnabled
which can be used to enable permanent renderingview.Viewer.beginDisableRendering()
and view.Viewer.endDisableRendering()
mdl.LayerManager.getMeshesOnLayer()
which retrieves all meshes for a given layermdl.BoundingBox.intersectsPoint()
and mdl.BoundingBox.intersectsMinMax()
EaiwsManager.loadFromSession()
MainArticleElement.eventGeometryChanged
which will be triggered inside updateGeometry()MainArticleElement.waitUntilGeometryUpdated()
which waits for pending geometry updatesmath.quaternionFromAxis()
to math.quaternionFromAxes()
view.Viewer.renderingEnabled
is now readonly, use view.Viewer.beginDisableRendering()
and view.Viewer.endDisableRendering()
insteadpBorderIntersections
to mdl.BoundingBox.intersects()
to control
the behavior on the border of the bounding box. Use false
for behavior from previous version.pEpsilon
parameter default value of mdl.BoundingBox.intersects()
to utils.math.EPSILON
.
Use 0.0
for default behavior from previous version.math.roundTo()
returned NaN for very small valuesio.stringifyToJson()
Generated using TypeDoc