Forum archive

Refactoring

Technical discussions preserved from the public OCCT community forum.

Topics
26
Replies
133
Files
29

Discussions

Page 1 of 1

Showing 26 discussions, ordered by the latest archived activity.

Null pointer not handled in src/BRep/BRep_Tool.cxx

Hi, As a FreeCAD contributor I tracked a crash up to src/BRep/BRep_Tool.cxx and discovered that null pointers are not handle in many function. For example: Handle(Geom2d_Curve) BRep_Tool::CurveOnSurface(const TopoDS_Edge& E, const Handle(Geom_Surface)& S, const TopLoc_Location& L, Standard_Real& Fir

4 replies

Testing OCCT on Apple M1 (ARM64)

Apple has just released its first generation of ARM-based desktop computers. Macs used exclusively Intel CPUs since transition from IBM PowerPC in 2006, but now Apple believes that their own SoC, originally developed for mobile devices (iPhone and iPad), can replace Intel CPUs within the whole line

0 replies6 files

Redesign of Progress Indicator

OCCT 7.5.0 introduces a redesigned progress indication API with the Message_ProgressIndicator class as an entry point. The redesign was focused on the following objectives: Allow propagating a progress indicator to nested algorithms within multiple working threads. Handle various inconsistencies and

0 replies4 files

Refactoring of BRepMesh

We are glad to inform the community of Open CASCADE Technology about a complete overhaul of BRepMesh component that is waiting for release in the upcoming 7.4.0 version. This overhaul, constrained by the requirement to keep non-regression of test cases collected during the last 20 years, took a whil

1 reply12 files

c++11 support

Hello, everyone! I succeeded to build the OpenCascade v7.3.0 using various compilers (VS2010-VS2017, GCC4.8, GCC4.4) in various modes and everything finished great. However, when I tried to build my application (which previously used v6.9) with the v7.3.0 one, everything worked great on newer MS com

3 replies

class Standard collides with wpf namespace Standard

In PresentationFramework from .NET 4.5 a namespace called Standard has been added. Admittedly, there might not be too many out there using occt from c++/cli (or are there?), but for those which do and also use the PF, this will clash with the class Standard in the global namespace from occt. Looking

1 reply

Precompiled headers

Just wonder if precompiled headers will be something that will be implemented in the new cmake system? The speed gain (in MSVC at least) is *so* much that I wonder why you didn't do this before! It's a matter of minutes vs. hours! Also it's pretty easy to implement, and can be done out-of-source, I'

8 replies

Unification of diagnostic tools in OCCT

For many algorithms and tools to be usable in real applications, it is essential that these algorithms provide detailed information on the encountered problematic situations. In case of error, such details can be critically important for the user to be able to recognize the reason of the problem, an

5 replies

Add back reference in TopoDS_Shape

Dear OCCT Team, I find the Note in the Modeling Data document Page 31: that this data structure does not contain any back references. All references go from more complex underlying shapes to less complex ones. For example, If I have a vertex and want to know which Edge contains it, I can use TopExp:

1 reply

Prepare OCC for C++ module system

I’m talking about the proposed c++ modules here, not open cascade modules C++ Modules not getting in the vc17 standard but are a technical specification now. Many of the targeted compilers for OCC (Visual Studio, LLVM Clang and GCC) are working on compiler extensions probably ready in the 2017/18

0 replies

Revamp the OCCT Handle

Hello everyone, My name is FrГ©dГ©ric and I am in charge of the OCCT refactoring project. We started to look at solutions to replace the Handle classes with a more modern implementation. The mantis issue for this task is #24023 The different approaches we considered are: - re-write the current imple

12 replies

Better support XML Unicode storage in OCAF

There might be history reason, OCCT OCAF doesn't well support for Unicode XML. Unicode is essential in nowadays application. LDOMBasicString is mainly designed for ASCII string though it has Unicode encoding by adding prefix unreadable magic number ##feff. The encoded Unicode storage is not user fri

4 replies

Feedback on 7.0 - putting cache out of B-Spline

As explained in http://dev.opencascade.org/index.php?q=node/1091 and in #24682, motivation for removing the cache out of B-Spline was to improve performance by avoding mutex lock (which is required for ensuring thread-safe access). Although overhead was OK for x86 platforms, Istvan Csanady reported

15 replies

Feedback on 7.0 RTTI mechanism implementation

In current master (7.0 preview), DEFINE_STANDARD_RTTI macro includes declaration and inlined definition of the static and virtual method as follows (see Standard_Type.hxx): static const char* get_type_name () { return #Class; } \ virtual const Handle(Standard_Type)& DynamicType() const { return STAN

18 replies

Open CASCADE Technology 7.0 preview

Dear All, We have finalized development of several major new features for Open CASCADE Technology 7.0. The most essential changes -- removal of CDL and WOK -- have been raised to master branch of the OCCT Git repository last Friday, and we propose this version for public review, as "alpha" version o

30 replies

7.0 Upgrade tool

Hello Andrey, This is some early feedback on the 7.0 Upgrade tool . We are still in the progress of migration, so some comments may come later on. First off, the tool does help to reduce tedious work and thus speed up migration, so thank you for providing it. Some comments, not in any particular ord

3 replies

Removal of Persistent classes

Originally, the OCCT persistence was based on an object oriented database. In order to control what is actually stored, the applications had to define a database schema by mean of a set of persistent classes - classes inheriting from Persistent such as the ones from the PGeom and PTopoDS packages -

1 reply

Getting rid of plugin mechanism in OCAF persistence

Hi All, At the moment OCCT OCAF persistence uses plugin mechanism, when library providing persistent functionality for particular subset of OCAF attributes is loaded dynamically at runtime by OCAF. For that, the plugin library name and location must be properly defined with help of predefined set of

1 reply

First version of OCCT without WOK and CDL

Hello, We are steadily progressing in the refactoring tasks, and now have the first version of OCCT without WOK and CDL ready for review: see Git branch CR0_noCDL. Note that this is the first experimental version, thus please do not try to use it in your project! Here is some detail on the changes m

14 replies

Redesign of RTTI: performance comparison

Run-Time Type Information (RTTI) is C++ mechanism to access type information in code at runtime, including well-known dynamic_cast operator. Although this functionality is integral part of modern C++ standard, this was not true at OCCT foundation time. This is why OCCT has been designed with own RTT

0 replies4 files

Current progress in OCCT refactoring project

Hello, This year we are going to concentrate first on a task which perhaps is the longest-pending one in OCCT development - overall refactoring of the code and build system, getting rid of WOK and CDL. This change will form a basis of the next OCCT version, 7.0. break We have updated the project pag

1 reply

Using Grand Central Dispatch where available

Apple released GCD a two years ago. GCD is a basically parallel programming toolkit, with super-efficient, lightweight asynchronous tools, like dispatch queues, semaphores, asynchronous I/O tools etc. Here is the reference: https://developer.apple.com/library/Mac/DOCUMENTATION/Performance/Refere...

5 replies

OCCT 6.7.0: performance and stability

Hello All, During preparation of OCCT 6.7.0 we have made some improvements related to performance and stability of the code which I would like to describe here. Inspired by advice of our contributors, we have checked possibility to improve performance by tweaking relevant compiler options. The analy

2 replies2 files