SlideShare a Scribd company logo
1 of 14
OpenCascade: (7.1.0)
Foundation Classes
王聖川
2017/8/22
Introduction
• Root classes.
• Collections.
• Vectors and matrices.
• Primitive Geometric Types.
• Math algorithms.
• Application services.
• 單位轉換 (UnitsAPI package); Interpreter of expressions
(ExprIntrp package); 多國語言支援(Resource and Message
packages); 運算處理進度回報機制.
Root Classes
• Fundmentals: Boolean, character, integer, real…
• Safe handles. Auto reference counting. 物件參考使用
狀態的自動化管理.
• Configurable optimized memory manager. 記憶體最
佳化管理方案.
• Extended runtime type information (RTTI)
mechanism. 執行期間類別資訊判斷機制.
• Exceptions management.
• Strings.
• Mainly implemented in Standard and MMgr
packages.
Primitive Types
• Manipulated by value.
C++ Types OCCT Types
int Standard_Integer
double Standard_Real
float Standard_ShortReal
unsigned int Standard_Boolean
char Standard_Character
short Standard_ExtCharacter
char* Standard_CString
void* Standard_Address
short* Standard_ExtString
Value or Handle
• Avoid cyclic handles. 避免多個handle形成互相參考的情況
發生, 會導致彼此皆無法解構或被釋放.
RTTI
• Standard_Type singleton物件負責類別定義的描述資訊.
• 用法:
• 執行期間型別判斷:
Memory Management
• OCCT自己實現的記憶體管理機制, 用在記憶體存取的效
能優化目的.
• 物件被配置和建構, 被釋放以及解構的時機點, 皆透過memory
manager, 避免反覆做真實的記憶體配置.
• Configure: 設定環境變數(?黑人問號).
• MMGT_OPT, MMGT_CELLSIZE, MMGT_THRESHOLD, …
• 可透過改source code. Standard.cxx 中 #define
OCCT_MMGT_OPT_DEFAULT 0  1
• 缺點: 有可能被誤認出現memory leaks, 建議在密集配置物件後,
呼叫 Standard::Purge() .
Exception
• OCCT實作自己的例外處理機制, 用法語C++ exception
處理機制類似.
• DomainError::Raise(“error message”); 丟出例外.
• 在try – catch區塊中處理例外.
• Root exception class: Standard_Failure.
Collections
• Collection component處理可變數量之集合類型資料.
• Generic (C++ template-like) class implementation.
• Arrays.
• TCollection_Array1(一維陣列), TCollection_Array2(二維陣列), …
• Sequences. 整體集合中只儲存有意義資料, 節省記憶體空間.
• Maps. 透過key-value配對來快速存取資料元素.
• *_DataMap, *_IndexedMap, *_DoubleMap, …
• Lists.
• Iterators. 逐步探索collections的實作類別.
• *_*MapIterator, *_*SetIterator, *_*ListIterator, …
NCollections
• NCollections component implements TCollections with
additional features.
• Array1, Array2, List, Sequence, Map, IndexedMap, DataMap, …
• Other types: Vector, UBTree(unbalanced binary tree),
SparseArray, CellFilter(for sorting geometries).
• Features:
• Iterator: Init(), More(), Next(), Value(), ChangeValue().
• BaseCollection class: abstract collection of item with base class. API:
CreateIterator(), Size(), Assign().
• Heterogeneous Assign: accept assignment via other collection
type.
• Allocator: 預設allocator實現Standard::Allocate()與Standard::Free().
NCollection_IncAllocator是另一個allocator實作選項.
Vectors and Matrices
• 矩陣運算. Calculations involving vectors and matrices.
• Eigenvalues and Eigenvectors of a squared matrix.
• Solvers for linear algebraic equations.
• Find roots of a set of non-linear equations.
• Find minimum function of independent variables.
Primitive Geometric Types
• STEP-compliant implementation:
• Geometric shapes: points, vectors, lines, circles, conics,
planes and elementary surfaces.
• Geometric transformations: translation, rotation, symmetry,
scaling, composed transformations.
• Geometric processor package “gp”.
• Objects are manipulated by value.
• gp curves/surfaces are analytic (no parameterization and
orientation). Use Geom entities for parameterization.
• EICLib package: point  parameter on gp curves.
• EISLib package: point  parameter on gp surfaces.
Math Algorithms
• Solvers for linear algebraic (前面提過).
• Ex: Bissec + Newton.
• Find root of F(x)=x^2 – 4,in [1.5, 2.5]
Precision
• 每個物件擁有自己個別的精確度資訊.
• 判斷數值相等: if( abs(x2 – x1) < precision ) …
• Parametric space, 精準度常被要求在參數空間與真實座
標空間結果一致.
• Precision package:
• Angular: compare angles.
• Confusion: compare distances.
• Intersection: used by intersection algorithms.
• Approximation: used by approximation algorithms.
• Parametric: derived from 3D space precision.

More Related Content

What's hot

Constructor and destructor
Constructor and destructorConstructor and destructor
Constructor and destructorrajshreemuthiah
 
Session 05 - Strings in Java
Session 05 - Strings in JavaSession 05 - Strings in Java
Session 05 - Strings in JavaPawanMM
 
Machine Learning - Dataset Preparation
Machine Learning - Dataset PreparationMachine Learning - Dataset Preparation
Machine Learning - Dataset PreparationAndrew Ferlitsch
 
Machine Learning - Dummy Variable Conversion
Machine Learning - Dummy Variable ConversionMachine Learning - Dummy Variable Conversion
Machine Learning - Dummy Variable ConversionAndrew Ferlitsch
 
Stl (standard template library)
Stl (standard template library)Stl (standard template library)
Stl (standard template library)Hemant Jain
 
Session 14 - Object Class
Session 14 - Object ClassSession 14 - Object Class
Session 14 - Object ClassPawanMM
 
Stl Containers
Stl ContainersStl Containers
Stl Containersppd1961
 
Chapter2 array of objects
Chapter2 array of objectsChapter2 array of objects
Chapter2 array of objectsMahmoud Alfarra
 
Sperasoft‬ talks j point 2015
Sperasoft‬ talks j point 2015Sperasoft‬ talks j point 2015
Sperasoft‬ talks j point 2015Sperasoft
 
Session 15 - Collections - Array List
Session 15 - Collections - Array ListSession 15 - Collections - Array List
Session 15 - Collections - Array ListPawanMM
 
London useR Meeting 21-Jul-09
London useR Meeting 21-Jul-09London useR Meeting 21-Jul-09
London useR Meeting 21-Jul-09bwhitcher
 
Interface result set
Interface result setInterface result set
Interface result setmyrajendra
 
Learn ActionScript programming myassignmenthelp.net
Learn ActionScript programming myassignmenthelp.netLearn ActionScript programming myassignmenthelp.net
Learn ActionScript programming myassignmenthelp.netwww.myassignmenthelp.net
 
Strings in Java
Strings in Java Strings in Java
Strings in Java Hitesh-Java
 

What's hot (20)

Reflection
ReflectionReflection
Reflection
 
Constructor and destructor
Constructor and destructorConstructor and destructor
Constructor and destructor
 
Session 05 - Strings in Java
Session 05 - Strings in JavaSession 05 - Strings in Java
Session 05 - Strings in Java
 
Arrays in Java
Arrays in Java Arrays in Java
Arrays in Java
 
Machine Learning - Dataset Preparation
Machine Learning - Dataset PreparationMachine Learning - Dataset Preparation
Machine Learning - Dataset Preparation
 
Machine Learning - Dummy Variable Conversion
Machine Learning - Dummy Variable ConversionMachine Learning - Dummy Variable Conversion
Machine Learning - Dummy Variable Conversion
 
C++ STL 概觀
C++ STL 概觀C++ STL 概觀
C++ STL 概觀
 
Java Wrapper Classes and I/O Mechanisms
Java Wrapper Classes and I/O MechanismsJava Wrapper Classes and I/O Mechanisms
Java Wrapper Classes and I/O Mechanisms
 
Stl (standard template library)
Stl (standard template library)Stl (standard template library)
Stl (standard template library)
 
Session 14 - Object Class
Session 14 - Object ClassSession 14 - Object Class
Session 14 - Object Class
 
Stl Containers
Stl ContainersStl Containers
Stl Containers
 
Arrays
ArraysArrays
Arrays
 
Chapter2 array of objects
Chapter2 array of objectsChapter2 array of objects
Chapter2 array of objects
 
Sperasoft‬ talks j point 2015
Sperasoft‬ talks j point 2015Sperasoft‬ talks j point 2015
Sperasoft‬ talks j point 2015
 
STL in C++
STL in C++STL in C++
STL in C++
 
Session 15 - Collections - Array List
Session 15 - Collections - Array ListSession 15 - Collections - Array List
Session 15 - Collections - Array List
 
London useR Meeting 21-Jul-09
London useR Meeting 21-Jul-09London useR Meeting 21-Jul-09
London useR Meeting 21-Jul-09
 
Interface result set
Interface result setInterface result set
Interface result set
 
Learn ActionScript programming myassignmenthelp.net
Learn ActionScript programming myassignmenthelp.netLearn ActionScript programming myassignmenthelp.net
Learn ActionScript programming myassignmenthelp.net
 
Strings in Java
Strings in Java Strings in Java
Strings in Java
 

Similar to OpenCascade Technology Overview: Foundation Classes

Implementing a JavaScript Engine
Implementing a JavaScript EngineImplementing a JavaScript Engine
Implementing a JavaScript EngineKris Mok
 
Predictable reactive state management - ngrx
Predictable reactive state management - ngrxPredictable reactive state management - ngrx
Predictable reactive state management - ngrxIlia Idakiev
 
Learning core java
Learning core javaLearning core java
Learning core javaAbhay Bharti
 
Fantastic ML apps and how to build them
Fantastic ML apps and how to build themFantastic ML apps and how to build them
Fantastic ML apps and how to build themMatthew Tovbin
 
Oop c++class(final).ppt
Oop c++class(final).pptOop c++class(final).ppt
Oop c++class(final).pptAlok Kumar
 
Performance van Java 8 en verder - Jeroen Borgers
Performance van Java 8 en verder - Jeroen BorgersPerformance van Java 8 en verder - Jeroen Borgers
Performance van Java 8 en verder - Jeroen BorgersNLJUG
 
Why quants love NAG & NAG from Excel
Why quants love NAG & NAG from ExcelWhy quants love NAG & NAG from Excel
Why quants love NAG & NAG from ExcelMarcin Krzysztofik
 
Clojure - An Introduction for Java Programmers
Clojure - An Introduction for Java ProgrammersClojure - An Introduction for Java Programmers
Clojure - An Introduction for Java Programmerselliando dias
 
JavaScript Robotics
JavaScript RoboticsJavaScript Robotics
JavaScript RoboticsAnna Gerber
 
OpenCascade Technology Overview: Visualization
OpenCascade Technology Overview: VisualizationOpenCascade Technology Overview: Visualization
OpenCascade Technology Overview: VisualizationRiver Wang
 
Data Handling and Function
Data Handling and FunctionData Handling and Function
Data Handling and FunctionRatnaJava
 
The Case for Learned Index Structures
The Case for Learned Index StructuresThe Case for Learned Index Structures
The Case for Learned Index Structures宇 傅
 
Programming in java basics
Programming in java  basicsProgramming in java  basics
Programming in java basicsLovelitJose
 
CS4443 - Modern Programming Language - I Lecture (2)
CS4443 - Modern Programming Language - I  Lecture (2)CS4443 - Modern Programming Language - I  Lecture (2)
CS4443 - Modern Programming Language - I Lecture (2)Dilawar Khan
 
Session 1 of programming
Session 1 of programmingSession 1 of programming
Session 1 of programmingRamy F. Radwan
 

Similar to OpenCascade Technology Overview: Foundation Classes (20)

R user group meeting 25th jan 2017
R user group meeting 25th jan 2017R user group meeting 25th jan 2017
R user group meeting 25th jan 2017
 
Implementing a JavaScript Engine
Implementing a JavaScript EngineImplementing a JavaScript Engine
Implementing a JavaScript Engine
 
Predictable reactive state management - ngrx
Predictable reactive state management - ngrxPredictable reactive state management - ngrx
Predictable reactive state management - ngrx
 
Learning core java
Learning core javaLearning core java
Learning core java
 
Fantastic ML apps and how to build them
Fantastic ML apps and how to build themFantastic ML apps and how to build them
Fantastic ML apps and how to build them
 
Oop c++class(final).ppt
Oop c++class(final).pptOop c++class(final).ppt
Oop c++class(final).ppt
 
Java ce241
Java ce241Java ce241
Java ce241
 
Net framework
Net frameworkNet framework
Net framework
 
Performance van Java 8 en verder - Jeroen Borgers
Performance van Java 8 en verder - Jeroen BorgersPerformance van Java 8 en verder - Jeroen Borgers
Performance van Java 8 en verder - Jeroen Borgers
 
Why quants love NAG & NAG from Excel
Why quants love NAG & NAG from ExcelWhy quants love NAG & NAG from Excel
Why quants love NAG & NAG from Excel
 
chapter 5.ppt
chapter 5.pptchapter 5.ppt
chapter 5.ppt
 
Clojure - An Introduction for Java Programmers
Clojure - An Introduction for Java ProgrammersClojure - An Introduction for Java Programmers
Clojure - An Introduction for Java Programmers
 
JavaScript Robotics
JavaScript RoboticsJavaScript Robotics
JavaScript Robotics
 
OpenCascade Technology Overview: Visualization
OpenCascade Technology Overview: VisualizationOpenCascade Technology Overview: Visualization
OpenCascade Technology Overview: Visualization
 
Data Handling and Function
Data Handling and FunctionData Handling and Function
Data Handling and Function
 
The Case for Learned Index Structures
The Case for Learned Index StructuresThe Case for Learned Index Structures
The Case for Learned Index Structures
 
Programming in java basics
Programming in java  basicsProgramming in java  basics
Programming in java basics
 
Jpa
JpaJpa
Jpa
 
CS4443 - Modern Programming Language - I Lecture (2)
CS4443 - Modern Programming Language - I  Lecture (2)CS4443 - Modern Programming Language - I  Lecture (2)
CS4443 - Modern Programming Language - I Lecture (2)
 
Session 1 of programming
Session 1 of programmingSession 1 of programming
Session 1 of programming
 

More from River Wang

FairyGUISDK_UIPackage_Analysis.pptx
FairyGUISDK_UIPackage_Analysis.pptxFairyGUISDK_UIPackage_Analysis.pptx
FairyGUISDK_UIPackage_Analysis.pptxRiver Wang
 
20220529_UniTask_Intro.pptx
20220529_UniTask_Intro.pptx20220529_UniTask_Intro.pptx
20220529_UniTask_Intro.pptxRiver Wang
 
zenject extenject-intro
zenject extenject-introzenject extenject-intro
zenject extenject-introRiver Wang
 
Unity optimize mobile game performance
Unity optimize mobile game performanceUnity optimize mobile game performance
Unity optimize mobile game performanceRiver 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 modelRiver 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 OverviewRiver 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 & NodesRiver 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 ObjectsRiver Wang
 
OpenCascade Technology Overview: Modeling Data
OpenCascade Technology Overview: Modeling DataOpenCascade Technology Overview: Modeling Data
OpenCascade Technology Overview: Modeling DataRiver Wang
 
OpenCascade Technology Overview: OCAF
OpenCascade Technology Overview: OCAFOpenCascade Technology Overview: OCAF
OpenCascade Technology Overview: OCAFRiver 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
 
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_navigationRiver Wang
 
2017 unity5.5 manual_physics
2017 unity5.5 manual_physics2017 unity5.5 manual_physics
2017 unity5.5 manual_physicsRiver Wang
 
2017 unity5.5 manual_animation
2017 unity5.5 manual_animation2017 unity5.5 manual_animation
2017 unity5.5 manual_animationRiver 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
 
OpenCascade Technology Overview: OCAF
OpenCascade Technology Overview: OCAFOpenCascade Technology Overview: OCAF
OpenCascade Technology Overview: OCAF
 
[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中譯)
 
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

(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 

Recently uploaded (20)

(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 

OpenCascade Technology Overview: Foundation Classes

  • 2. Introduction • Root classes. • Collections. • Vectors and matrices. • Primitive Geometric Types. • Math algorithms. • Application services. • 單位轉換 (UnitsAPI package); Interpreter of expressions (ExprIntrp package); 多國語言支援(Resource and Message packages); 運算處理進度回報機制.
  • 3. Root Classes • Fundmentals: Boolean, character, integer, real… • Safe handles. Auto reference counting. 物件參考使用 狀態的自動化管理. • Configurable optimized memory manager. 記憶體最 佳化管理方案. • Extended runtime type information (RTTI) mechanism. 執行期間類別資訊判斷機制. • Exceptions management. • Strings. • Mainly implemented in Standard and MMgr packages.
  • 4. Primitive Types • Manipulated by value. C++ Types OCCT Types int Standard_Integer double Standard_Real float Standard_ShortReal unsigned int Standard_Boolean char Standard_Character short Standard_ExtCharacter char* Standard_CString void* Standard_Address short* Standard_ExtString
  • 5. Value or Handle • Avoid cyclic handles. 避免多個handle形成互相參考的情況 發生, 會導致彼此皆無法解構或被釋放.
  • 7. Memory Management • OCCT自己實現的記憶體管理機制, 用在記憶體存取的效 能優化目的. • 物件被配置和建構, 被釋放以及解構的時機點, 皆透過memory manager, 避免反覆做真實的記憶體配置. • Configure: 設定環境變數(?黑人問號). • MMGT_OPT, MMGT_CELLSIZE, MMGT_THRESHOLD, … • 可透過改source code. Standard.cxx 中 #define OCCT_MMGT_OPT_DEFAULT 0  1 • 缺點: 有可能被誤認出現memory leaks, 建議在密集配置物件後, 呼叫 Standard::Purge() .
  • 8. Exception • OCCT實作自己的例外處理機制, 用法語C++ exception 處理機制類似. • DomainError::Raise(“error message”); 丟出例外. • 在try – catch區塊中處理例外. • Root exception class: Standard_Failure.
  • 9. Collections • Collection component處理可變數量之集合類型資料. • Generic (C++ template-like) class implementation. • Arrays. • TCollection_Array1(一維陣列), TCollection_Array2(二維陣列), … • Sequences. 整體集合中只儲存有意義資料, 節省記憶體空間. • Maps. 透過key-value配對來快速存取資料元素. • *_DataMap, *_IndexedMap, *_DoubleMap, … • Lists. • Iterators. 逐步探索collections的實作類別. • *_*MapIterator, *_*SetIterator, *_*ListIterator, …
  • 10. NCollections • NCollections component implements TCollections with additional features. • Array1, Array2, List, Sequence, Map, IndexedMap, DataMap, … • Other types: Vector, UBTree(unbalanced binary tree), SparseArray, CellFilter(for sorting geometries). • Features: • Iterator: Init(), More(), Next(), Value(), ChangeValue(). • BaseCollection class: abstract collection of item with base class. API: CreateIterator(), Size(), Assign(). • Heterogeneous Assign: accept assignment via other collection type. • Allocator: 預設allocator實現Standard::Allocate()與Standard::Free(). NCollection_IncAllocator是另一個allocator實作選項.
  • 11. Vectors and Matrices • 矩陣運算. Calculations involving vectors and matrices. • Eigenvalues and Eigenvectors of a squared matrix. • Solvers for linear algebraic equations. • Find roots of a set of non-linear equations. • Find minimum function of independent variables.
  • 12. Primitive Geometric Types • STEP-compliant implementation: • Geometric shapes: points, vectors, lines, circles, conics, planes and elementary surfaces. • Geometric transformations: translation, rotation, symmetry, scaling, composed transformations. • Geometric processor package “gp”. • Objects are manipulated by value. • gp curves/surfaces are analytic (no parameterization and orientation). Use Geom entities for parameterization. • EICLib package: point  parameter on gp curves. • EISLib package: point  parameter on gp surfaces.
  • 13. Math Algorithms • Solvers for linear algebraic (前面提過). • Ex: Bissec + Newton. • Find root of F(x)=x^2 – 4,in [1.5, 2.5]
  • 14. Precision • 每個物件擁有自己個別的精確度資訊. • 判斷數值相等: if( abs(x2 – x1) < precision ) … • Parametric space, 精準度常被要求在參數空間與真實座 標空間結果一致. • Precision package: • Angular: compare angles. • Confusion: compare distances. • Intersection: used by intersection algorithms. • Approximation: used by approximation algorithms. • Parametric: derived from 3D space precision.