Skip to main content


Have a look at progressIndicator.test.ts for a working example.

OpenCascade offers support for progress indicators and cancellation of long-running processes ("user break") via the Message_ProgressIndicator base class. Specializations of this base class can be used in calls to certain methods (e.g. BRepAlgoAPI_Fuse::BRepAlgoAPI_Fuse) to report the progress of a long-running operation or to cancel it. Since OpenCascade requires the user to derive a custom class based on Message_ProgressIndicator (called MyProgressIndicator from here) which isn't currently supported by OpenCascade.js, using those features in OpenCascade.js requires creating a custom build.

When deriving your specialized MyProgressIndicator class, you have to override 1 - 3 methods.

Show: This method must be overriden, as it is a purely virtual method. It is called by OpenCascade internally, whenever there is an update to the value of the progress of the current operation.

UserBreak: This method can be overriden if required. It returns a boolean value, indicating if a long-running process should be cancelled. By default, it returns false.

Reset: This method can be overriden if required. It is called when a new long-running process is started.