WebAssembly and multi-threading

Previous publication described first steps in running Draw Harness in a Browser as a WebAssembly module. As a result, the project was able to run complex Tcl scripts, to be embedded into web-site, to display objects in 3D Viewer and to run smooth animations.

The gallery of samples still has rough edges like ugly 3D Viewer layout, but even in its current state the project looks helpful to demonstrate OCCT usage and capabilities. The gallery is being slowly extended with new samples when I get some new question or idea about OCCT usage that I could demonstrate in Draw Harness.

Previous article indicated some further directions for improvements, and now we will experiment with multi-threading.

Continue reading

AIS object – computing presentation

Previous article provided an introduction into AIS (Application Interactive Services) from the high-level point of view. OCCT provides a strong set of built-in Interactive Objects for rapid application development, but the real power and flexibility of AIS could be revealed by subclassing and implementing custom presentations.

In this article we will focus on the development of a custom AIS_InteractiveObject and show the basics step by step. So that it will look more like a tutorial and you are encouraged to try to follow the described steps and repeat the experiment on your own.

Continue reading

Application Interactive Services or AIS

The previous article has given a short introduction to the Open CASCADE 3D Viewer with a Hello World C++ sample showing viewer initialization. Let’s now take a deeper look into AIS (Application Interactive Services) classes and its basic concepts.

The article could be useful to beginners to complement or strengthen understanding of terms from Visualization User’s Guide.

Continue reading

TKOpenGl Frame Render Graph

This article provides a high-level overview of a frame rendering graph implemented by TKOpenGl (OpenGl_GraphicDriver). Although it is named here as a “graph”, it’s not that flexible and the overall structure looks pretty flat, as could be seen later on diagrams.

The article might be useful to advanced OCCT users wanting to learn more about low-level OpenGL rendering aspects of OCCT 3D Viewer, to see a better correlation between high-level (AIS) and low-level (OpenGl) layers, to figure out how and where to implement tricky effects or to understand how to optimize application rendering performance.

Continue reading

OCCT Viewer and GTK

It’s been a while since I’ve written an application using the GTK framework. Developers of industrial cross-platform applications strongly prefer the Qt framework as it tries to mimic GUI per platform, while GTK brings the same uniform experience to all platforms. But apart from strange movements of GNOME developers in GNOME 3, GTK remains a strong framework for development of native Linux applications.

Open CASCADE Technology (OCCT) users may easily find code samples embedding OCCT 3D Viewer into Qt-based, MFC-based, WinForms-based and even WPF-based applications, but one may barely find any working sample based on GTK framework.

Following a recent question on this topic on StackOverflow, I’ve decided to take a look onto this problem and to prepare a simple Hello OCCT Viewer sample using gtkmm (GTK for C++).

Continue reading