SAP UI5 sap.ui.vk 命名空间内的控件介绍
SAP 電商云 Spartacus UI 里的 spare part 3D 模型展示,使用的控件來自 SAP UI5 sap.ui.vk 下的控件。
sap.ui.vk 庫為應(yīng)用程序中 2D 和 3D 模型的可視化和操作提供了控件。
應(yīng)用程序使用 sap.ui.vk 命名空間。 所有其他命名空間(sap.ui.vk.dvl、sap.ui.vk.threejs、sap.ui.svg)都是特定于特定實現(xiàn)的,應(yīng)被視為私有 API。
使用傳統(tǒng) DVL 或 ThreeJs 渲染引擎啟用 3D 查看。
3D 渲染引擎的選擇是使用 sap.ui.vk.ContentResource 對象及其參數(shù) sourceType 完成的。
要使用舊版 DVL 渲染引擎,請將 sourceType 參數(shù)設(shè)置為 vds。
要使用 ThreeJs 渲染引擎,請將 sourceType 參數(shù)設(shè)置為 vds4。
舊版 DVL 渲染引擎已棄用,將在即將發(fā)布的版本中刪除。
許多新功能不適用于舊版 DVL 渲染引擎。 例如,抽屜工具欄中可用的大多數(shù)工具僅適用于 ThreeJs 渲染。
Native Viewport
Native Viewport 控件 ( sap.ui.vk.NativeViewport ) 為加載到 Viewer 應(yīng)用程序中的 2D 圖像提供渲染畫布。
Native Viewport 控件 (sap.ui.vk.NativeViewport) 使用標準 HTML 和 CSS 將瀏覽器本機支持的圖像文件加載到查看區(qū)域。 標準 VIT 平移和縮放手勢支持增強了加載圖像的查看。
sap.ui.vk.NativeViewport 控件可以占據(jù)全部或部分用戶界面。
Scene Tree
sap.ui.vk.SceneTree 控件呈現(xiàn)給定場景中節(jié)點的分層視圖。
Viewport 控件的主要功能是為所有或部分加載的場景提供渲染表面。 視口可以占據(jù)用戶界面的全部或部分。
View Gallery
sap.ui.vk.ViewGallery 控件替換了 sap.ui.vk.StepNavigation 控件,該控件支持導(dǎo)航和激活包含在單個 3D 場景中的過程和步驟。 sap.ui.vk.StepNavigation 控件已棄用,因為它僅與 DVL 渲染引擎一起使用。
Viewer
此控件旨在幫助應(yīng)用程序開發(fā)人員通過連接、配置和呈現(xiàn)基本 Visualization Toolkit 控件作為單個復(fù)合控件,在其應(yīng)用程序中包含簡單的 3D 可視化功能。
Viewport 可以連接到 ViewStateManager 對象以處理場景中節(jié)點的選擇和可見性狀態(tài)。 這意味著當(dāng)在場景中選擇一個節(jié)點時,該節(jié)點將被突出顯示。 此外,如果視口連接到場景樹控件,則在視口中選擇節(jié)點將突出顯示場景樹中的關(guān)聯(lián)項。
當(dāng)視口連接到場景樹,或者創(chuàng)建 DrawerToolbar 并啟用顯示/隱藏按鈕時,可以更改節(jié)點的可見性狀態(tài)。 可以使用場景樹功能或抽屜工具欄按鈕在視口中隱藏或顯示節(jié)點。
動態(tài)創(chuàng)建 viewer port 的代碼:
private addViewport(): Observable<void> {return new Observable((subscriber) => {sap.ui.require(['sap/ui/vk/ViewManager','sap/ui/vk/Viewport','sap/ui/vk/ViewStateManager','sap/ui/vk/AnimationPlayer','sap/ui/vk/ContentConnector','sap/ui/vk/DrawerToolbar',],(sap_ui_vk_ViewManager: any,sap_ui_vk_Viewport: any,sap_ui_vk_ViewStateManager: any,sap_ui_vk_AnimationPlayer: any,sap_ui_vk_ContentConnector: any,sap_ui_vk_DrawerToolbar: any) => {const core: Core = this.getCore();const uiArea: UIArea = core.getUIArea(this.elementRef.nativeElement);if (uiArea) {const oldViewport = uiArea.getContent()[0] as Viewport;this.destroyViewportAssociations(oldViewport);uiArea.destroyContent();}this.viewport = new sap_ui_vk_Viewport({ visible: false });this.viewport.placeAt(this.elementRef.nativeElement);this.contentConnector = new sap_ui_vk_ContentConnector();this.contentConnector.attachContentChangesStarted(this.onContentChangesStarted,this);this.contentConnector.attachContentChangesFinished(this.onContentChangesFinished,this);this.contentConnector.attachContentLoadingFinished(this.onContentLoadingFinished,this);this.viewStateManager = new sap_ui_vk_ViewStateManager({contentConnector: this.contentConnector,});this.viewport.setContentConnector(this.contentConnector);this.viewport.setViewStateManager(this.viewStateManager);this.animationPlayer = new sap_ui_vk_AnimationPlayer();this.animationPlayer.setViewStateManager(this.viewStateManager);this.animationPlayer.attachViewActivated(this.onViewActivated, this);this.animationPlayer.attachTimeChanged(this.onTimeChanged, this);this.viewManager = new sap_ui_vk_ViewManager({contentConnector: this.contentConnector,animationPlayer: this.animationPlayer,});this.viewStateManager.setViewManager(this.viewManager);this.viewStateManager.attachSelectionChanged(this.onSelectionChanged,this);this.viewStateManager.attachOutliningChanged(this.onOutliningChanged,this);this.drawerToolbar = new sap_ui_vk_DrawerToolbar({viewport: this.viewport,visible: false,});this.viewport.addDependent(this.drawerToolbar);subscriber.next();subscriber.complete();});});}最終生成的 view port 效果如下:
總結(jié)
以上是生活随笔為你收集整理的SAP UI5 sap.ui.vk 命名空间内的控件介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三类银行卡是什么卡
- 下一篇: SAP UI5 应用开发教程之五十八 -