SlideShare a Scribd company logo
OpenCascade: (7.1.0)
OCAF (OpenCascade Application Framework)
王聖川
2017/9/4
Introduction
• OCAF, OpenCascade Application Framework. For rapidly
developing (CAD) application.
• Services:
• Uses modules:
• Modeling Data: shape implementation.
• Visualization: viewer.
• Modeling Algorithms: modeling functions implementation.
Development tasks Comments With OCAF
Creation of geometry Algorithm Calling the modeling libraries By developer
Data organization Including specific attributes and modeling process Simplified
Saving data in a file Notion of document Provided
Document-view management Provided
Application infrastructure New, Open, Close, Save and Save As File menus Provided
Undo-Redo Robust, multi-level Provided
Application-specific dialog boxes By developer
OCAF Architecture
• Application-Document-Attribute model.
Application-Document-Attribute
• Application: 管理documents.
• Documents: notifies data changes, updates external links,
saves/restores data, command transactions (undo/redo).
• Attributes: describes data. 描述資料屬性.
• Standard attributes: integer, real, string, …, tag, reference, tree
node.
• Shape attributes: shape, shape evolution.
• Geometric attributes: datums, constraints.
• User attributes: user-defined.
• Vis. Attributes: graphical data representation, 顯示資訊屬性.
• Function services: notification of data changes. 實作資料變更的事件
通知與傳遞機制.
Reference-Key
• 各種資料屬性, 透過reference-key機制做對應綁定(指定).
• 如下圖, face (topology) 幾何屬性, 與user texture, 貼圖屬性
都對應描述相同的referenc對象.
• face幾何資料重新計算時, user texture不用重新指定, 因為reference對
象不變.
Data Framework
• Tree structure實現reference-key model.
• Tag: Label的ID(整數), 可用在標示label的結構路徑位址.
• Label: Tree node. 屬性資料的reference來源節點. Label建立後不能被
刪除!?
• Attribute: 描述資料內容用的屬性物件. 儲存(綁定)在label中. 每種
attribute有自己獨特的GUID, 一個label可以加入多個attributes, 但相同
GUID的attribute不能重複.
User Defined Attribute
• Create new attribute class.
• 繼承TDF_Attribute class.
• 實作virtual methods: ID(), Restore(), Paste(), NewEmpty(), Dump().
• Read/write in XML or binary format: 參考官方說明. 實作plugin
packages (建立Xml*_*Driver class繼承XmlMDF_ADriver class ;
Bin*_*Driver class繼承BinMDF_ADriver class).
• Defined by UAttribute: 引用標準屬性, 組合出新屬性的資料
結構.
• 建立擁有獨特GUID之TDataStd_UAttribute物件.
• 針對新屬性設計的資料結構, 設計對應的child labels.
Compoud Document
• Xlink attribute.
• 描述外部文件連結資訊.
• Coffee machine文件中, 透過XLink引
用coffee pot文件資訊.
Document Transaction
• 軟體功能操作辦理機制.
• 每項操作辦理前, 會針對attributes做備份.
• 辦理確認有效後, 修改attributes, 備份銷毀.
• 操作辦理被中止或放棄時, 由備份還原attributes資料.
• 實現失敗還原 (功能操作遇到錯誤情況), 終止 (abort/cancel),
復原 (redo/undo)等軟體功能機制的開發.
Standard Document Service
• 一份document管理一份data framework.
• Application (TDocStd_Application class).
• 管理documents.
• Document (TDocStd_Document class).
• 管理labels (data framework).
• Storage format: DefineFormat() API定義軟體的檔案格式內容 (retrival
drivers, storage drivers). 也可透過resource file定義.
• Cut, copy, paste.
• External Links.
Standard Storage Formats
• Standard formats.
Format Persistent toolkit OCAF attributes covered
Legacy formats (read only)
OCC-StdLite TKStdL TKLCAF
MDTV-Standard TKStd TKLCAF + TKCAF
Binary formats
BinLOcaf TKBinL TKLCAF
BinOcaf TKBin TKLCAF + TKCAF
BinXCAF TKBinXCAF TKLCAF + TKCAF + TKXCAF
TObjBin TKBinTObj TKLCAF + TKTObj
XML formats
XmlLOcaf TKXmlL TKLCAF
XmlOcaf TKXml TKLCAF + TKCAF
XmlXCAF TKXmlXCAF TKLCAF + TKCAF + TKXCAF
TObjXml TKXmlTObj TKLCAF + TKTObj
Shape Attribute
• TNaming_UsedShape: root label中描述整個framework tree
中所有使用到的topological shapes.
• TNaming_NamedShape: 描述TNaming_UsedShape屬性中
對應shape的變更演變過程資訊.
• Old shape代表操作變更前; new shape代表操作變更後的結果.
• PRIMITIVE: 建立新的shape; old shape = null.
• MODIFY: 對shape作變更.
• DELETE: 刪除; new shape = null.
• SELECTED: old = new.
Topological Naming
• Modeling操作歷程. Algorithm需要提供對所有操作對象
(entities/sub-elements)的存取功能.
• Result label, modeling algorithm操作結果需要儲存操作變更演變資訊
(old shapes and new shapes).
• 任何當前的shape/sub-shapes結果, 可被選取.
• Selector將選取結果儲存在SELECTED _NamedShape, 在幾何
物件經過操作變更後, 引用TNaming_Selector::Solve() API可
自動更新對應的被選取對象.
Result type Type of sub-shapes to be returned by history of algorithm
Solid or closed shell Faces
Open shell or single face Faces and edges of opened boundaries only
Closed wire Edges
Opened wire Edges and ending vertexes
Edge Vertexes
Compound or CompSolid To be used consequentially the above declared rule applied to all sub-shapes of the first level
Naming Example
• Nail(釘子) and translation functionality.
• 透過選取頂點(in Face1)決定選取某個釘子.
• TNaming_Selector::Select()指定並儲存一個selected shape.
• TNaming_Selector::Solve()找到原選取的Face1, 和對應的變更
evolution, 計算出變更後的結果Face1’.
• TNaming_Selector::NamedShape()獲得被選取物件變更後的狀態結果
(Face1’). 接著軟體可對Face1’做操作.
Standard Attributes
• TDataStd, TDataXtd, TDF packages.
• Geometric attributes: axis, constraint, geometry, plane, …,
PatternStd(linear, circular, rectangular, …).
• General attributes: ASCII string, extended string, integer, real, Tick
(boolean), array, list, …, variable, Uattribute.
• Relationship attributes: reference, reference array/list, tree node.
• Auxiliary attributes: directory, tag source.
• Standard or custom attributes?
Visualization Attributes
• 引用並實作AIS (Application Interactive Service)模組功能.
• TPrsStd_AISViewer class, 定義interactive viewer.
• TPrsStd_AISPresentation class, 定義label對應的顯示資料屬
性.
• 透過繼承TPrsStd_Driver class, 建立開發者自訂的
presentation driver.
Function Service
• TFunction package. 提供函式功能與演算法之間的連結.
• TFunction_Function: 儲存function driver的連結屬性. 由
TFunction_Driver::Execute() 執行功能變更步驟.
• TFunction_Logbook: 儲存受function影響的label集合. Drivers由此存
取到一個function對應的參數對象 (arguments).
Function Service Example
• Create a rectangular planar face F with height 100 and width 200;
• Create prism P using face F as a basis;
• Create fillet L at the edge of the prism;
• Change the width of F from 200 to 300;
• Solver for the function of face F starts;
• Solver detects that an argument of the face F function has been
modified;
• Solver calls the driver of the face F function for a regeneration of the
face;
• Driver rebuilds face F and adds the label of the face width argument to
the logbook as touched and the label of the function of face F as
impacted;
• Solver detects the function of P – it depends on the function of F;
• Solver calls the driver of the prism P function;
• Driver rebuilds prism P and adds the label of this prism to the logbook
as impacted;
• Solver detects the function of L – it depends on the function of P;
• Solver calls the L function driver;
• Driver rebuilds fillet L and adds the label of the fillet to the logbook as
impacted.
Function Mechanism
• Nail: defined by 1 cone, 2 cylinders, the nail. 4 functions.
• 函式機制系統建立函式間的依賴圖, TFunction_Iterator class
依序走訪各個函式.
• 開發者實作TFunction_Driver class:
• Arguments()回傳函式對應參數對象.
• Results()回傳函式的結果對象.
• Execute()執行該函式.
XML Support
• 支援XML file I/O.
• 限制:
• No unicode support.
• 移除部分API: getPreviousSibling(), getParentNode().
• 不支援DTD.
• Types: LDOM_Element, LDOM_Attr, LDOM_Text, LDOM_Comment,
LDOM_CDATASection available only.
• 不支援namespaces. 使用prefixed names.
• 不支援DOMException.
• 不是重點, 懶得詳細整理了~

More Related Content

Similar to OpenCascade Technology Overview: OCAF

Software variability management - 2019
Software variability management - 2019Software variability management - 2019
Software variability management - 2019
XavierDevroey
 
Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...
Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...
Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...
Chester Chen
 
Distributed & Highly Available server applications in Java and Scala
Distributed & Highly Available server applications in Java and ScalaDistributed & Highly Available server applications in Java and Scala
Distributed & Highly Available server applications in Java and Scala
Max Alexejev
 
MySQL Replication
MySQL ReplicationMySQL Replication
MySQL Replication
Mark Swarbrick
 
Productionalizing ML : Real Experience
Productionalizing ML : Real ExperienceProductionalizing ML : Real Experience
Productionalizing ML : Real Experience
Ihor Bobak
 
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
HostedbyConfluent
 
Mainframe Technology Overview
Mainframe Technology OverviewMainframe Technology Overview
Mainframe Technology Overview
Haim Ben Zagmi
 
Java day2016 "Reinventing design patterns with java 8"
Java day2016 "Reinventing design patterns with java 8"Java day2016 "Reinventing design patterns with java 8"
Java day2016 "Reinventing design patterns with java 8"
Alexander Pashynskiy
 
Liferay (DXP) 7 Tech Meetup for Developers
Liferay (DXP) 7 Tech Meetup for DevelopersLiferay (DXP) 7 Tech Meetup for Developers
Liferay (DXP) 7 Tech Meetup for Developers
Azilen Technologies Pvt. Ltd.
 
Scala and Spring
Scala and SpringScala and Spring
Scala and Spring
Eberhard Wolff
 
Integration Monday - BizTalk Migrator Deep Dive
Integration Monday - BizTalk Migrator Deep DiveIntegration Monday - BizTalk Migrator Deep Dive
Integration Monday - BizTalk Migrator Deep Dive
BizTalk360
 
Eclipse e4
Eclipse e4Eclipse e4
Eclipse e4
Chris Aniszczyk
 
Salesforce lwc development workshops session #4
Salesforce lwc development workshops  session #4Salesforce lwc development workshops  session #4
Salesforce lwc development workshops session #4
Rahul Gawale
 
Using existing language skillsets to create large-scale, cloud-based analytics
Using existing language skillsets to create large-scale, cloud-based analyticsUsing existing language skillsets to create large-scale, cloud-based analytics
Using existing language skillsets to create large-scale, cloud-based analytics
Microsoft Tech Community
 
OOW09 Ebs Tuning Final
OOW09 Ebs Tuning FinalOOW09 Ebs Tuning Final
OOW09 Ebs Tuning Finaljucaab
 
Terraform modules restructured
Terraform modules restructuredTerraform modules restructured
Terraform modules restructured
Ami Mahloof
 
Terraform Modules Restructured
Terraform Modules RestructuredTerraform Modules Restructured
Terraform Modules Restructured
DoiT International
 
Spring Day | Spring and Scala | Eberhard Wolff
Spring Day | Spring and Scala | Eberhard WolffSpring Day | Spring and Scala | Eberhard Wolff
Spring Day | Spring and Scala | Eberhard Wolff
JAX London
 

Similar to OpenCascade Technology Overview: OCAF (20)

Software variability management - 2019
Software variability management - 2019Software variability management - 2019
Software variability management - 2019
 
Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...
Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...
Analytics Metrics delivery and ML Feature visualization: Evolution of Data Pl...
 
Distributed & Highly Available server applications in Java and Scala
Distributed & Highly Available server applications in Java and ScalaDistributed & Highly Available server applications in Java and Scala
Distributed & Highly Available server applications in Java and Scala
 
MySQL Replication
MySQL ReplicationMySQL Replication
MySQL Replication
 
Productionalizing ML : Real Experience
Productionalizing ML : Real ExperienceProductionalizing ML : Real Experience
Productionalizing ML : Real Experience
 
Java one2013
Java one2013Java one2013
Java one2013
 
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
Developing Kafka Streams Applications with Upgradability in Mind with Neil Bu...
 
Mainframe Technology Overview
Mainframe Technology OverviewMainframe Technology Overview
Mainframe Technology Overview
 
Java day2016 "Reinventing design patterns with java 8"
Java day2016 "Reinventing design patterns with java 8"Java day2016 "Reinventing design patterns with java 8"
Java day2016 "Reinventing design patterns with java 8"
 
Liferay (DXP) 7 Tech Meetup for Developers
Liferay (DXP) 7 Tech Meetup for DevelopersLiferay (DXP) 7 Tech Meetup for Developers
Liferay (DXP) 7 Tech Meetup for Developers
 
Scala and Spring
Scala and SpringScala and Spring
Scala and Spring
 
Integration Monday - BizTalk Migrator Deep Dive
Integration Monday - BizTalk Migrator Deep DiveIntegration Monday - BizTalk Migrator Deep Dive
Integration Monday - BizTalk Migrator Deep Dive
 
Eclipse e4
Eclipse e4Eclipse e4
Eclipse e4
 
Salesforce lwc development workshops session #4
Salesforce lwc development workshops  session #4Salesforce lwc development workshops  session #4
Salesforce lwc development workshops session #4
 
Using existing language skillsets to create large-scale, cloud-based analytics
Using existing language skillsets to create large-scale, cloud-based analyticsUsing existing language skillsets to create large-scale, cloud-based analytics
Using existing language skillsets to create large-scale, cloud-based analytics
 
JS Essence
JS EssenceJS Essence
JS Essence
 
OOW09 Ebs Tuning Final
OOW09 Ebs Tuning FinalOOW09 Ebs Tuning Final
OOW09 Ebs Tuning Final
 
Terraform modules restructured
Terraform modules restructuredTerraform modules restructured
Terraform modules restructured
 
Terraform Modules Restructured
Terraform Modules RestructuredTerraform Modules Restructured
Terraform Modules Restructured
 
Spring Day | Spring and Scala | Eberhard Wolff
Spring Day | Spring and Scala | Eberhard WolffSpring Day | Spring and Scala | Eberhard Wolff
Spring Day | Spring and Scala | Eberhard Wolff
 

More from River Wang

FairyGUISDK_UIPackage_Analysis.pptx
FairyGUISDK_UIPackage_Analysis.pptxFairyGUISDK_UIPackage_Analysis.pptx
FairyGUISDK_UIPackage_Analysis.pptx
River Wang
 
20220529_UniTask_Intro.pptx
20220529_UniTask_Intro.pptx20220529_UniTask_Intro.pptx
20220529_UniTask_Intro.pptx
River Wang
 
zenject extenject-intro
zenject extenject-introzenject extenject-intro
zenject extenject-intro
River Wang
 
Unity optimize mobile game performance
Unity optimize mobile game performanceUnity optimize mobile game performance
Unity optimize mobile game performance
River Wang
 
DoozyUI_基礎介紹教學
DoozyUI_基礎介紹教學DoozyUI_基礎介紹教學
DoozyUI_基礎介紹教學
River Wang
 
Gamedev: Multi-threaded animate model
Gamedev: Multi-threaded animate modelGamedev: Multi-threaded animate model
Gamedev: Multi-threaded animate model
River Wang
 
桌面應用工具軟體開發方案評估 (Based on Unity engine)
桌面應用工具軟體開發方案評估 (Based on Unity engine)桌面應用工具軟體開發方案評估 (Based on Unity engine)
桌面應用工具軟體開發方案評估 (Based on Unity engine)
River Wang
 
OGRE v2.1 manual - Technical Overview
OGRE v2.1 manual - Technical OverviewOGRE v2.1 manual - Technical Overview
OGRE v2.1 manual - Technical Overview
River Wang
 
OGRE v2.1 manual - Changes: Objects, Scene & Nodes
OGRE v2.1 manual - Changes: Objects, Scene & NodesOGRE v2.1 manual - Changes: Objects, Scene & Nodes
OGRE v2.1 manual - Changes: Objects, Scene & Nodes
River Wang
 
OGRE v1.10 manual - The Core Objects
OGRE v1.10 manual - The Core ObjectsOGRE v1.10 manual - The Core Objects
OGRE v1.10 manual - The Core Objects
River Wang
 
OpenCascade Technology Overview: Modeling Data
OpenCascade Technology Overview: Modeling DataOpenCascade Technology Overview: Modeling Data
OpenCascade Technology Overview: Modeling Data
River Wang
 
[breakdown] Shadow of the Colossus. (Chinese translation中譯)
[breakdown] Shadow of the Colossus. (Chinese translation中譯)[breakdown] Shadow of the Colossus. (Chinese translation中譯)
[breakdown] Shadow of the Colossus. (Chinese translation中譯)
River Wang
 
OpenCascade Technology Overview: Visualization
OpenCascade Technology Overview: VisualizationOpenCascade Technology Overview: Visualization
OpenCascade Technology Overview: Visualization
River Wang
 
OpenCascade Technology Overview: Foundation Classes
OpenCascade Technology Overview: Foundation ClassesOpenCascade Technology Overview: Foundation Classes
OpenCascade Technology Overview: Foundation Classes
River Wang
 
2017 graphics-01: 電腦圖學繪圖流程
2017 graphics-01: 電腦圖學繪圖流程2017 graphics-01: 電腦圖學繪圖流程
2017 graphics-01: 電腦圖學繪圖流程
River Wang
 
2017 unity5.5 manual_navigation
2017 unity5.5 manual_navigation2017 unity5.5 manual_navigation
2017 unity5.5 manual_navigation
River Wang
 
2017 unity5.5 manual_physics
2017 unity5.5 manual_physics2017 unity5.5 manual_physics
2017 unity5.5 manual_physics
River Wang
 
2017 unity5.5 manual_animation
2017 unity5.5 manual_animation2017 unity5.5 manual_animation
2017 unity5.5 manual_animation
River Wang
 
Shader forge設定說明文件
Shader forge設定說明文件Shader forge設定說明文件
Shader forge設定說明文件
River Wang
 
矩陣 轉換
矩陣   轉換矩陣   轉換
矩陣 轉換
River Wang
 

More from River Wang (20)

FairyGUISDK_UIPackage_Analysis.pptx
FairyGUISDK_UIPackage_Analysis.pptxFairyGUISDK_UIPackage_Analysis.pptx
FairyGUISDK_UIPackage_Analysis.pptx
 
20220529_UniTask_Intro.pptx
20220529_UniTask_Intro.pptx20220529_UniTask_Intro.pptx
20220529_UniTask_Intro.pptx
 
zenject extenject-intro
zenject extenject-introzenject extenject-intro
zenject extenject-intro
 
Unity optimize mobile game performance
Unity optimize mobile game performanceUnity optimize mobile game performance
Unity optimize mobile game performance
 
DoozyUI_基礎介紹教學
DoozyUI_基礎介紹教學DoozyUI_基礎介紹教學
DoozyUI_基礎介紹教學
 
Gamedev: Multi-threaded animate model
Gamedev: Multi-threaded animate modelGamedev: Multi-threaded animate model
Gamedev: Multi-threaded animate model
 
桌面應用工具軟體開發方案評估 (Based on Unity engine)
桌面應用工具軟體開發方案評估 (Based on Unity engine)桌面應用工具軟體開發方案評估 (Based on Unity engine)
桌面應用工具軟體開發方案評估 (Based on Unity engine)
 
OGRE v2.1 manual - Technical Overview
OGRE v2.1 manual - Technical OverviewOGRE v2.1 manual - Technical Overview
OGRE v2.1 manual - Technical Overview
 
OGRE v2.1 manual - Changes: Objects, Scene & Nodes
OGRE v2.1 manual - Changes: Objects, Scene & NodesOGRE v2.1 manual - Changes: Objects, Scene & Nodes
OGRE v2.1 manual - Changes: Objects, Scene & Nodes
 
OGRE v1.10 manual - The Core Objects
OGRE v1.10 manual - The Core ObjectsOGRE v1.10 manual - The Core Objects
OGRE v1.10 manual - The Core Objects
 
OpenCascade Technology Overview: Modeling Data
OpenCascade Technology Overview: Modeling DataOpenCascade Technology Overview: Modeling Data
OpenCascade Technology Overview: Modeling Data
 
[breakdown] Shadow of the Colossus. (Chinese translation中譯)
[breakdown] Shadow of the Colossus. (Chinese translation中譯)[breakdown] Shadow of the Colossus. (Chinese translation中譯)
[breakdown] Shadow of the Colossus. (Chinese translation中譯)
 
OpenCascade Technology Overview: Visualization
OpenCascade Technology Overview: VisualizationOpenCascade Technology Overview: Visualization
OpenCascade Technology Overview: Visualization
 
OpenCascade Technology Overview: Foundation Classes
OpenCascade Technology Overview: Foundation ClassesOpenCascade Technology Overview: Foundation Classes
OpenCascade Technology Overview: Foundation Classes
 
2017 graphics-01: 電腦圖學繪圖流程
2017 graphics-01: 電腦圖學繪圖流程2017 graphics-01: 電腦圖學繪圖流程
2017 graphics-01: 電腦圖學繪圖流程
 
2017 unity5.5 manual_navigation
2017 unity5.5 manual_navigation2017 unity5.5 manual_navigation
2017 unity5.5 manual_navigation
 
2017 unity5.5 manual_physics
2017 unity5.5 manual_physics2017 unity5.5 manual_physics
2017 unity5.5 manual_physics
 
2017 unity5.5 manual_animation
2017 unity5.5 manual_animation2017 unity5.5 manual_animation
2017 unity5.5 manual_animation
 
Shader forge設定說明文件
Shader forge設定說明文件Shader forge設定說明文件
Shader forge設定說明文件
 
矩陣 轉換
矩陣   轉換矩陣   轉換
矩陣 轉換
 

Recently uploaded

Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Hivelance Technology
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
Sharepoint Designs
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
KrzysztofKkol1
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
XfilesPro
 

Recently uploaded (20)

Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
Multiple Your Crypto Portfolio with the Innovative Features of Advanced Crypt...
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
 

OpenCascade Technology Overview: OCAF

  • 1. OpenCascade: (7.1.0) OCAF (OpenCascade Application Framework) 王聖川 2017/9/4
  • 2. Introduction • OCAF, OpenCascade Application Framework. For rapidly developing (CAD) application. • Services: • Uses modules: • Modeling Data: shape implementation. • Visualization: viewer. • Modeling Algorithms: modeling functions implementation. Development tasks Comments With OCAF Creation of geometry Algorithm Calling the modeling libraries By developer Data organization Including specific attributes and modeling process Simplified Saving data in a file Notion of document Provided Document-view management Provided Application infrastructure New, Open, Close, Save and Save As File menus Provided Undo-Redo Robust, multi-level Provided Application-specific dialog boxes By developer
  • 4. Application-Document-Attribute • Application: 管理documents. • Documents: notifies data changes, updates external links, saves/restores data, command transactions (undo/redo). • Attributes: describes data. 描述資料屬性. • Standard attributes: integer, real, string, …, tag, reference, tree node. • Shape attributes: shape, shape evolution. • Geometric attributes: datums, constraints. • User attributes: user-defined. • Vis. Attributes: graphical data representation, 顯示資訊屬性. • Function services: notification of data changes. 實作資料變更的事件 通知與傳遞機制.
  • 5. Reference-Key • 各種資料屬性, 透過reference-key機制做對應綁定(指定). • 如下圖, face (topology) 幾何屬性, 與user texture, 貼圖屬性 都對應描述相同的referenc對象. • face幾何資料重新計算時, user texture不用重新指定, 因為reference對 象不變.
  • 6. Data Framework • Tree structure實現reference-key model. • Tag: Label的ID(整數), 可用在標示label的結構路徑位址. • Label: Tree node. 屬性資料的reference來源節點. Label建立後不能被 刪除!? • Attribute: 描述資料內容用的屬性物件. 儲存(綁定)在label中. 每種 attribute有自己獨特的GUID, 一個label可以加入多個attributes, 但相同 GUID的attribute不能重複.
  • 7. User Defined Attribute • Create new attribute class. • 繼承TDF_Attribute class. • 實作virtual methods: ID(), Restore(), Paste(), NewEmpty(), Dump(). • Read/write in XML or binary format: 參考官方說明. 實作plugin packages (建立Xml*_*Driver class繼承XmlMDF_ADriver class ; Bin*_*Driver class繼承BinMDF_ADriver class). • Defined by UAttribute: 引用標準屬性, 組合出新屬性的資料 結構. • 建立擁有獨特GUID之TDataStd_UAttribute物件. • 針對新屬性設計的資料結構, 設計對應的child labels.
  • 8. Compoud Document • Xlink attribute. • 描述外部文件連結資訊. • Coffee machine文件中, 透過XLink引 用coffee pot文件資訊.
  • 9. Document Transaction • 軟體功能操作辦理機制. • 每項操作辦理前, 會針對attributes做備份. • 辦理確認有效後, 修改attributes, 備份銷毀. • 操作辦理被中止或放棄時, 由備份還原attributes資料. • 實現失敗還原 (功能操作遇到錯誤情況), 終止 (abort/cancel), 復原 (redo/undo)等軟體功能機制的開發.
  • 10. Standard Document Service • 一份document管理一份data framework. • Application (TDocStd_Application class). • 管理documents. • Document (TDocStd_Document class). • 管理labels (data framework). • Storage format: DefineFormat() API定義軟體的檔案格式內容 (retrival drivers, storage drivers). 也可透過resource file定義. • Cut, copy, paste. • External Links.
  • 11. Standard Storage Formats • Standard formats. Format Persistent toolkit OCAF attributes covered Legacy formats (read only) OCC-StdLite TKStdL TKLCAF MDTV-Standard TKStd TKLCAF + TKCAF Binary formats BinLOcaf TKBinL TKLCAF BinOcaf TKBin TKLCAF + TKCAF BinXCAF TKBinXCAF TKLCAF + TKCAF + TKXCAF TObjBin TKBinTObj TKLCAF + TKTObj XML formats XmlLOcaf TKXmlL TKLCAF XmlOcaf TKXml TKLCAF + TKCAF XmlXCAF TKXmlXCAF TKLCAF + TKCAF + TKXCAF TObjXml TKXmlTObj TKLCAF + TKTObj
  • 12. Shape Attribute • TNaming_UsedShape: root label中描述整個framework tree 中所有使用到的topological shapes. • TNaming_NamedShape: 描述TNaming_UsedShape屬性中 對應shape的變更演變過程資訊. • Old shape代表操作變更前; new shape代表操作變更後的結果. • PRIMITIVE: 建立新的shape; old shape = null. • MODIFY: 對shape作變更. • DELETE: 刪除; new shape = null. • SELECTED: old = new.
  • 13. Topological Naming • Modeling操作歷程. Algorithm需要提供對所有操作對象 (entities/sub-elements)的存取功能. • Result label, modeling algorithm操作結果需要儲存操作變更演變資訊 (old shapes and new shapes). • 任何當前的shape/sub-shapes結果, 可被選取. • Selector將選取結果儲存在SELECTED _NamedShape, 在幾何 物件經過操作變更後, 引用TNaming_Selector::Solve() API可 自動更新對應的被選取對象. Result type Type of sub-shapes to be returned by history of algorithm Solid or closed shell Faces Open shell or single face Faces and edges of opened boundaries only Closed wire Edges Opened wire Edges and ending vertexes Edge Vertexes Compound or CompSolid To be used consequentially the above declared rule applied to all sub-shapes of the first level
  • 14. Naming Example • Nail(釘子) and translation functionality. • 透過選取頂點(in Face1)決定選取某個釘子. • TNaming_Selector::Select()指定並儲存一個selected shape. • TNaming_Selector::Solve()找到原選取的Face1, 和對應的變更 evolution, 計算出變更後的結果Face1’. • TNaming_Selector::NamedShape()獲得被選取物件變更後的狀態結果 (Face1’). 接著軟體可對Face1’做操作.
  • 15. Standard Attributes • TDataStd, TDataXtd, TDF packages. • Geometric attributes: axis, constraint, geometry, plane, …, PatternStd(linear, circular, rectangular, …). • General attributes: ASCII string, extended string, integer, real, Tick (boolean), array, list, …, variable, Uattribute. • Relationship attributes: reference, reference array/list, tree node. • Auxiliary attributes: directory, tag source. • Standard or custom attributes?
  • 16. Visualization Attributes • 引用並實作AIS (Application Interactive Service)模組功能. • TPrsStd_AISViewer class, 定義interactive viewer. • TPrsStd_AISPresentation class, 定義label對應的顯示資料屬 性. • 透過繼承TPrsStd_Driver class, 建立開發者自訂的 presentation driver.
  • 17. Function Service • TFunction package. 提供函式功能與演算法之間的連結. • TFunction_Function: 儲存function driver的連結屬性. 由 TFunction_Driver::Execute() 執行功能變更步驟. • TFunction_Logbook: 儲存受function影響的label集合. Drivers由此存 取到一個function對應的參數對象 (arguments).
  • 18. Function Service Example • Create a rectangular planar face F with height 100 and width 200; • Create prism P using face F as a basis; • Create fillet L at the edge of the prism; • Change the width of F from 200 to 300; • Solver for the function of face F starts; • Solver detects that an argument of the face F function has been modified; • Solver calls the driver of the face F function for a regeneration of the face; • Driver rebuilds face F and adds the label of the face width argument to the logbook as touched and the label of the function of face F as impacted; • Solver detects the function of P – it depends on the function of F; • Solver calls the driver of the prism P function; • Driver rebuilds prism P and adds the label of this prism to the logbook as impacted; • Solver detects the function of L – it depends on the function of P; • Solver calls the L function driver; • Driver rebuilds fillet L and adds the label of the fillet to the logbook as impacted.
  • 19. Function Mechanism • Nail: defined by 1 cone, 2 cylinders, the nail. 4 functions. • 函式機制系統建立函式間的依賴圖, TFunction_Iterator class 依序走訪各個函式. • 開發者實作TFunction_Driver class: • Arguments()回傳函式對應參數對象. • Results()回傳函式的結果對象. • Execute()執行該函式.
  • 20. XML Support • 支援XML file I/O. • 限制: • No unicode support. • 移除部分API: getPreviousSibling(), getParentNode(). • 不支援DTD. • Types: LDOM_Element, LDOM_Attr, LDOM_Text, LDOM_Comment, LDOM_CDATASection available only. • 不支援namespaces. 使用prefixed names. • 不支援DOMException. • 不是重點, 懶得詳細整理了~