OCCT 8.0.0: Developer Insights #846
Replies: 1 comment 1 reply
-
|
The build123d team is very pleased to see strong progress in OCCT, and we’re excited about the ongoing improvements in robustness and new functionality. The new “Light OCCT” Python bindings are of particular interest to us. Build123d currently uses OCP, and we are curious about the long-term vision for these new bindings. Specifically: Is the goal for "Light OCCT" to eventually cover the full OCCT API, or is it intended to be a more focused subset? For context, build123d relies on the following OCP modules: We’re eager to understand how "Light OCCT" may evolve and how we might align with it in the future. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Dear OCCT Community,
With Version 8.0.0 on the horizon, I want to share some deep insights into our current development process and the technical evolution.
🚀 Development Insights: The Philosophy of 8.0.0
The primary focus of OCCT 8.0.0 is modernization, performance, and reliability.
We have undertaken extensive refactoring to clean up the architecture, remove deprecated methods, and align the library with modern C++ standards. While the core logic remains consistent - meaning applications will likely require adjustments rather than architectural rewrites - this modernization is a strategic move. It ensures OCCT remains maintainable, secure, and efficient for the long term.
Key Technical Changes
Here is a high-level look at how we are modernizing the codebase:
Standard_RealandStandard_Integerin favor of native types (double,int). This simplifies the code and improves compiler compatibility.Abs,Min, andMax. The codebase is being updated to use the standard STL library directly (e.g.,std::abs,std::min,std::max) to reduce redundancy.occnamespace to replaceopencascadefor brevity and modern styling.occ, current code samples may still utilize the fullopencascadenamespace during the transition.Handleare being replaced by direct template syntax using the new namespace.Handle(MyClass)occ::handle<MyClass>NCollectionaliases (e.g.,TColStd_SequenceOfReal) to encourage direct usage of template classes.occ::Seq<double>orNCollection_Sequence<double>occnamespace (e.g.,occ::Seq<T>forNCollection_Sequence<T>).Standard_NODISCARDwith standard C++ attributes:[[nodiscard]],[[maybe_unused]], etc.std::optionalfor return values, reducing reliance on exceptions for absent values.constexprandnoexceptspecifiers.Standard_Failure) and consolidating them into a centralized structure.🔮 Roadmap & Future Concepts
We are currently validating several major enhancements for the 8.0.0 release cycle. While these features are in various stages of planning and development, our roadmap includes:
std::exceptionto replaceStandard_Failure.🛠️ Extra Activities & "Light OCCT"
New Modules
Announcement: Light OCCT (Beta)
We are actively developing an Open Source wrapper named Light OCCT, scheduled for a beta release close to the OCCT 8.0.0 launch.
Light OCCT is designed to lower the barrier to entry by prioritizing usability, safety, and performance. Key goals for this wrapper include:
Stay tuned for more technical deep dives as we approach the release!
Best regards,
OCCT Dev Team.
Beta Was this translation helpful? Give feedback.
All reactions