Port of the OpenCascade library to JavaScript / WebAssembly using Emscripten

Overview

opencascade.js - Build Library OpenCascade Version

Logo

OpenCascade.js

A port of the OpenCascade CAD library to JavaScript and WebAssembly via Emscripten.
Explore the docs »

Examples · Issues · Discuss

Projects & Examples:

Getting Started

(These instructions are for the upcoming @beta release. All information is likely to change. See here for instructions of the v1.1.1 release.)

  1. Add the library as a dependency to your project

    npm install [email protected]
    

Option A: If you're using a bundler like Webpack (browser-based and server-side applications)

  1. Configure your bundler to load .wasm files as URLs. If you don't want to use a bundler, you can manually pass in the URLs to the WASM files in the next step.

    For webpack, first add the file-loader dependency.

    npm install file-loader --save-dev
    

    Then add the following configuration to your webpack.config.js.

    module: {
      rules: [
        {
          test: /\.wasm$/,
          type: "javascript/auto",
          loader: "file-loader"
        }
      ]
    },
    // For Webpack 4, you have to add the following properties to the "node" object (e.g. Create-React-App, ...)
    node: {
      fs: "empty"
    }
    // For Webpack 5, you you have to add the following properties to the "fallback" object (e.g. NextJs, ...)
    fallback: {
      fs: false,
      perf_hooks: false,
      os: false,
      worker_threads: false,
      crypto: false,
      stream: false
    }

    If you're using create-react-app, you'll need to install react-app-rewired, then save the following as config-overrides.js

    module.exports = {
      webpack: (config) => {
        config.module.rules.find(k => k.oneOf !== undefined).oneOf.unshift(
          {
            test: /\.wasm$/,
            type: "javascript/auto",
            loader: "file-loader",
            options: {
              name: "static/js/[name].[contenthash:8].[ext]",
            },
          }
        );
        return config;
      },
    };

    A CRA+opencascade.js reference example is available here.

  2. In your JavaScript file, instantiate the library:

    { // Check out the examples on how to use this library! });">
    import initOpenCascade from "opencascade.js";
    
    initOpenCascade().then(oc => {
      // Check out the examples on how to use this library!
    });

Option B: If you're using Node.js without a bundler in a server-side application

  1. In this case, you can import the library directly without having to configure your bundler

    { // Check out the examples on how to use this library! });">
    import initOpenCascade from "opencascade.js/dist/node.js";
    
    initOpenCascade().then(oc => {
      // Check out the examples on how to use this library!
    });

FAQ

Is this a fork of the OpenCascade library?

No. This project is making no changes to the OpenCascade library, apart from few very small modifications which are applied as patches. All this project does is

  • Download a tagged commit from the OpenCascade git server.
  • Compile the OpenCascade library using the Emscripten compiler.
  • Analyze the OpenCascade headers using libclang and auto-generate bind-code to expose the library to JavaScript.
  • Link the WASM-binaries and provide some convenience functions so that you can easily use the library in your JavaScript projects.

Who is going to keep this project up-to-date with the OpenCascade library?

This project is (hopefully) keeping itself (mostly) up-to-date with the OpenCascade library, since most bindings are generated automatically.

Contributing

Contributions are welcome! Feel free to have a look at the todo-list if you need some inspiration on what else needs to be done.

Comments
  • Use Embind instead of WebIDL

    Use Embind instead of WebIDL

    This pull request will implement the bindings to OCCT using Emscripten's Embind instead of the current WebIDL approach.

    The advantages:

    • All overloaded functions and constructors can be exposed. You don't have to decide which overloads you want to use and / or recompile the library.
    • All operators can be exposed.
    • The binding code is a bit cleaner and less verbose than with the WebIDL approach (at least for non-overloaded functions).
    • It seems like Emscripten offers better error messages now (but that could also be due to an Emscripten update I made).

    Code conventions / How-To:

    • I wrote down a few ideas on how I would organize and name things (like overloaded functions, overloaded constructors, operators) in this document.
    • Look inside the embind folder. Start with main.cpp and then look at the header files in that folder.

    Current limitations:

    • Only a few classes have been exposed so far. However, I wanted to have this pull-request here, so that there is a place to discuss (if there is any need for that...).
    • I could not find any solution to generate Typescript types using the Embind workflow. This is a huge drawback at the moment. Currently, I see following options on how to resolve that.
      1. Write the typescript definitions by hand (ew...)
      2. Use something like cppast to analyze the OCCT source files and auto-generate typescript bindings from those files. If there is the need for manual adjustments after this step, we might be able to use patch-files?!
      3. Wait until someone else creates a method to generate types from Embind definitions

    Other improvements:

    • Updated Emscripten
    • Updated OCCT
    • Updated Python
    • Actions push to the respective branch, now

    Next steps:

    1. Continue to expose all APIs required for running the bottle example and make that work with the new system
    2. Expose everything that is currently implemented using WebIDL (also from @zalo's branch)
    3. Merge

    Any comments would be welcome, particularly from @zalo, @guidovanhilst, @ancorasir, @Johnly1986 (because you guys have actually already used this library :slightly_smiling_face:)

    opened by donalffons 44
  • How to get the hierarchy of STP?

    How to get the hierarchy of STP?

    I can only get one shape when use STEPControl_Reader to load a stp as in the opencascade-excample and CascadeStudio. I found a way to implement it in C++, but I can't do it in js the code:

    const fileText = await loadFileAsync(inputFile)
      const fileName = inputFile.name
      // Writes the uploaded file to Emscripten's Virtual Filesystem
      openCascade.FS.createDataFile('/', fileName, fileText, true, true)
    
      const aDoc = new openCascade.Handle_TDocStd_Document_1()
      console.log(aDoc)
    
      // XCAFApp is unsupported in API.md
      // const anApp = new openCascade.Handle_XCAFApp_Application_1().get()
      // console.log(anApp)
    
      const reader = new openCascade.STEPCAFControl_Reader_1()
      reader.SetColorMode(true)
      reader.SetNameMode(true)
    
      reader.ReadFile(fileName)
    
      console.log(reader)
      console.log(reader.NbRootsForTransfer())
    
      reader.Transfer_1(aDoc)
    
      const label = aDoc.get().Main()
    
      console.log(label)
    

    the error in reader.Transfer_1(aDoc)

    Is it the wrong way I use it, or is it not supported here ?

    opened by zjc0707 17
  • GeomAPI_Interpolate seems to be missing from 1.1.4 and 2.0.x

    GeomAPI_Interpolate seems to be missing from 1.1.4 and 2.0.x

    Hi @donalffons, I hope you're doing good :) I was trying to use GeomAPI_Interpolate, but it seems like it is missing during the runtime, it is listed in Supported APIs.md file of 1.1.4 node_modules. Is there something special about this API? Would it appear if I would try out v2 beta?

    opened by bitbybit-dev 13
  • Unable to load slightly complex STP in opencascade-example

    Unable to load slightly complex STP in opencascade-example

    image

    I have many STP files, but none of them can be loaded except box. But I can load all of them in CascadeStudio.

    I find the api is different, how can I use it ?

    opened by zjc0707 12
  • Typescript Definitions from the WebIDL

    Typescript Definitions from the WebIDL

    webidl2ts can be used to automatically generate typescript definitions from the .idl file here (ensure that the "-emscripten" mode is active).

    Typescript definitions are included in the package by adding "types": "dist/opencascade.d.ts", to the package.json.

    This enables Intellisense completions in VS Code (and related editors) in both Javascript AND Typescript.

    Here is an example generated typescript definitions file: https://gist.github.com/zalo/0277def37489ef8c3ce47fc551aa243b

    opened by zalo 12
  • Error while launching Docker container

    Error while launching Docker container

    HI. When running donalffons/opencascade.js using Docker Desktop, the following error occurs:

    File "/opencascade.js/src/buildFromYaml.py", line 16, in <module>
    buildConfig = yaml.safe_load(open(sys.argv[1], "r"))
    IndexError: list index out of range
    

    How can this be fixed?

    opened by womaas 11
  • "UnboundTypeError" for custom builds

    I was trying to create a custom build - the build worked, but there is an issue with the build result. I have the following message in the console:

    "Cannot call gp_Vec.XYZ due to unbound types: 6gp_XYZ"
    

    From what I understand you are adding already adding "raw pointers" in order to avoid this kind of error. What am I missing?

    My custom build setup is the following:

    cadeau_single.js:
      bindings:
        - symbol: Message_ProgressRange
        - symbol: TColgp_Array1OfDir
    
        - symbol: gp_XYZ
        - symbol: gp_Vec
        - symbol: gp_Pnt
        - symbol: gp_Dir
        - symbol: gp_Ax2
        - symbol: gp_Ax3
        - symbol: gp_GTrsf
    
        - symbol: TopoDS
        - symbol: TopAbs_ShapeEnum
        - symbol: TopTools_ListOfShape
        - symbol: TopAbs_Orientation
        - symbol: TopLoc_Location
        - symbol: TopExp_Explorer
    
        - symbol: Poly_Connect
        - symbol: StdPrs_ToolTriangulatedShape
    
        - symbol: BRep_Tool
        - symbol: BRepTools
        - symbol: BRepGProp
        - symbol: BRepGProp_Face
        - symbol: GProp_GProps
        - symbol: BRepMesh_IncrementalMesh
    
        - symbol: BRepAdaptor_Curve
        - symbol: BRepAdaptor_CompCurve
        - symbol: GeomAbs_CurveType
    
        - symbol: StlAPI_Writer
    
        - symbol: BRepAlgoAPI_Cut
        - symbol: BRepAlgoAPI_Fuse
    
        - symbol: BRepBuilderAPI_Transform
        - symbol: BRepCheck_Analyzer
        - symbol: BRepPrimAPI_MakePrism
        - symbol: BRepOffsetAPI_MakeThickSolid
        - symbol: BRepOffsetAPI_MakeOffset
        - symbol: BRepOffset_Mode
        - symbol: BRepFilletAPI_MakeChamfer
        - symbol: ChFi3d_FilletShape
        - symbol: GeomAbs_JoinType
        - symbol: cadeau
      additionalCppCode: |
        #include <emscripten/val.h>
        class cadeau: public BRepTools {
        public:
          static emscripten::val UVBounds(const TopoDS_Face &f) {
            Standard_Real uMin;
            Standard_Real uMax;
            Standard_Real vMin;
            Standard_Real vMax;
            BRepTools::UVBounds(f, uMin, uMax, vMin, vMax);
            emscripten::val ret(emscripten::val::object());
            ret.set("uMin", emscripten::val(uMin));
            ret.set("uMax", emscripten::val(uMax));
            ret.set("vMin", emscripten::val(vMin));
            ret.set("vMax", emscripten::val(vMax));
            return ret;
          }
    
          static emscripten::val projectPointOnSurface( 
            const gp_Pnt & P,
            const opencascade::handle<Geom_Surface> & Surface
          ) {
    
            GeomAPI_ProjectPointOnSurf projectedPoint (P, Surface);
    
            Standard_Real u;
            Standard_Real v;
    
            projectedPoint.LowerDistanceParameters(u, v);
    
            emscripten::val ret(emscripten::val::object());
            ret.set("u", emscripten::val(u));
            ret.set("v", emscripten::val(v));
            return ret;
          }
        };
      emccFlags:
        - -sEXPORT_ES6=1
        - -sUSE_ES6_IMPORT_META=0
        - -sEXPORTED_RUNTIME_METHODS=["FS"]
        - -O3
    

    P.S. If you want to have a look at what I am building, you can find a preview here

    opened by sgenoud 11
  • embind pointer-to-reference conversion question

    embind pointer-to-reference conversion question

    This is working until it gets to makeFace.Add(wire).

    I can't figure out if I'm doing this wrong, or if there is a problem in the bindings.

    makeFace.Add's binding entry is

    .function("Add", static_cast<void (BRepBuilderAPI_MakeFace::*) (const TopoDS_Wire &) >(&BRepBuilderAPI_MakeFace::Add), allow_raw_pointers())
    

    So it's weird that it's complaining that it wants a conversion to TopoDS_Wire.

    Any idea?

    This is using the embind branch

    test('Offset', async t => {
      const oc = await getOc();
      const path = [[0, 0, 0], [1, 0, 0], [1, 1, 0]].map(([x, y, z]) => new oc.gp_Pnt_3(x, y, z));
      const makePolygon = new oc.BRepBuilderAPI_MakePolygon_1();
      for (let nth = 0; nth < path.length; nth++) {
        makePolygon.Add_1(path[nth]);
      }
      const wire = makePolygon.Wire();
      const makeFace = new oc.BRepBuilderAPI_MakeFace_1();
      makeFace.Add(wire);
    /*
      @Object {
        message: 'Cannot convert argument of type TopoDS_Wire const* to parameter type TopoDS_Wire',
        name: 'BindingError',
        stack: `BindingError: Cannot convert argument of type TopoDS_Wire const* to parameter type TopoDS_Wire␊
            at Object.eval (webpack-internal:///../../../opencascade.js/dist/opencascade.wasm.js:12:79850)␊
            at new eval (webpack-internal:///../../../opencascade.js/dist/opencascade.wasm.js:12:79667)␊
            at throwBindingError (webpack-internal:///../../../opencascade.js/dist/opencascade.wasm.js:12:80291)␊
            at RegisteredPointer.genericPointerToWireType [as toWireType] (webpack-internal:///../../../opencascade.js/dist/opencascade.wasm.js:12:88943)␊
            at Object.eval [as Add] (webpack-internal:///../../../opencascade.js/dist/opencascade.wasm.js:12:100147)␊
    
    */
    });
    
    opened by pentacular 10
  • Pass by reference APIs

    Pass by reference APIs

    I was trying to retries the UV bounds of a face using this API. From what I understand in C++ you need to pass a reference to a real, and the function update the value pointed.

    Is there a way to do this with opencascade.js? I have tried something like this:

      let u0 = 0;
      let u1 = 0;
      let v0 = 0;
      let v1 = 0;
      new oc.BRepTools.UVBounds_1(face, u0, u1, v0, v1);
      console.log(u0, u1, v0, v1);
    

    but it fails miserably with a RuntimeError: function signature mismatch.

    Am I missing a way to retrieve the values?

    opened by sgenoud 9
  • Export to STEP with STEPCAFControl_Writer

    Export to STEP with STEPCAFControl_Writer

    I'm currently in the process of exporting to STEP but I have a segmentation fault error with STEPCAFControl_Writer. Below you can find detailed steps for what I'm doing so far. I'm using the latest docker image to compile, below more details of what I'm using

    • Using Open Cascade version 7.6.1 │ Commit d2abb6d844231cb8f29be6894440874a4700e4a5
    • https://hub.docker.com/layers/opencascade.js/donalffons/opencascade.js/latest/images/sha256-f92022555539f04251de09fcf6c91f29d346c439eeab5b1a6212e7279a609a20?context=explore

    Made a simple cube in Blender and exported as Gltf (Below an image of the settings) https://siasky.net/OADjO_xqTABc1CTM_z_W59_QQEft7yrWaBXOuekTcAaTUA

    // Setup XCAF document
    const app = new openCascade.TDocStd_Application();
    const doc = new openCascade.Handle_TDocStd_Document_1();
    const format = new openCascade.TCollection_ExtendedString_2("MDTV-XCAF", true);
    app.NewDocument_2(format, doc);
    
    // Create data file
    var fileString = this.file // imported gltf file
    openCascade.FS.createDataFile("/", "file.gltf", fileString, true, true);
    
    // Read Gltf file
    var readerGltf = new openCascade.RWGltf_CafReader()
    readerGltf.SetSkipEmptyNodes(false)
    readerGltf.SetMeshNameAsFallback(true)
    readerGltf.Metadata()
    readerGltf.SetDocument(doc)
    
    // Translation to OCCT model
    const str = new openCascade.TCollection_ExtendedString_2("/file.gltf", true);
    const fileStr = new openCascade.TCollection_AsciiString_13(str, 0);
    const progress = new openCascade.Message_ProgressRange_1()
    
    readerGltf.Perform(fileStr, progress)
    

    So far so good. I can get all the shapes with GetFreeShapes and loop through them to get naming and assembly structure. So I know the document has the shapes.

    The problem I have is with STEPCAFControl_Writer.Transfer_1 and STEPCAFControl_Writer.Perform_2. I tested both and first I got a null error. I added -sASSERTION=1, SAFE_HEAP=1 and -sNO_DISABLE_EXCEPTION_CATCHING to the compiler settings and then I got the segmentation fault error.

    I tested Transfer_1 with STEPControl_AsIs and Perform_2. These 2 give the same "segmentation fault" error. With Transfer_1 and STEPControl_ManifoldSolidBrep it exports the STEP file with the right assembly structure but the STEP is empty because I pass a string to multi and therefore uses external STEP files that are not exported with the root step file. I also have no idea how I can access them to check if they where exported correctly.

    This is from the docs

    Transfers a document (or single label) to a STEP model The mode of translation of shape is AsIs If multi is not null pointer, it switches to multifile mode (with external refs), and string pointed by gives prefix for names of extern files (can be empty string) Returns True if translation is OK.

    Below the code to export to STEP

    // Export to STEP
    var fileLocation = "/model.step"
    var writerCAF = new openCascade.STEPCAFControl_Writer_1()
    writerCAF.SetColorMode(true);
    writerCAF.SetNameMode(true);
    
    openCascade.Interface_Static.SetIVal("write.precision.mode", 1);
    openCascade.Interface_Static.SetIVal("write.precision.val", 0.1);
    openCascade.Interface_Static.SetIVal("write.step.assembly", 1);
    openCascade.Interface_Static.SetIVal("write.step.unit", this.units[unit].index);
    openCascade.Interface_Static.SetIVal("write.step.schema", 4);
    openCascade.Interface_Static.SetIVal("write.step.vertex.mode", 0);
    openCascade.Interface_Static.SetIVal("write.surfacecurve.mode", 1);
    openCascade.Interface_Static.SetIVal("write.stepcaf.subshapes.name", 1);
    
    var progressOutput = new openCascade.Message_ProgressRange_1()
    
    //var written = writerCAF.Transfer_1(doc, openCascade.STEPControl_StepModelType.STEPControl_AsIs, "", progressOutput);
    //var written = writerCAF.Transfer_1(doc, openCascade.STEPControl_StepModelType.STEPControl_ManifoldSolidBrep, "", progressOutput);
    var written = writerCAF.Perform_2(doc, fileLocation, progressOutput)
    

    I also tested by constructing a simple shape with occt. Everything above is the same but I removed the imported gltf file and added a simple shape to the doc. This was successful so I think it has something to do with the imported gltf to the occt model conversion?

    // Added OCCT model to test export
    var sphere_radius = 1.0
    var sphere_angle = Math.atan(0.5);
    var org = new openCascade.gp_Pnt_3(0,0,0)
    var direction = new openCascade.gp_Dir_4(0,0,1)
    var sphere_origin = new openCascade.gp_Ax2_3(org, direction);
    var sphere_shape = new openCascade.BRepPrimAPI_MakeSphere_11(sphere_origin, sphere_radius, -sphere_angle, sphere_angle).Shape();
    var aLabel = shapeTool.get().NewShape()
    shapeTool.get().SetShape(aLabel, sphere_shape)
    
    opened by JonOsterman19 8
  • Add Github Actions Build and Fix Regressions

    Add Github Actions Build and Fix Regressions

    This PR sets up a Github Action that automatically builds the opencascade.js library upon each push, and pushes the resulting build products in dist back to master. It takes about 2 hours and 45 minutes to build the first time, and then about 25 minutes each subsequent time (since it is able to lean on the cache).

    The PR also exposes some new functionality relating to Trasnsforms in the IDL, which enable moving, scaling, and rotating objects (common OpenSCAD operations). There are also improvements for Intersection Booleans, MakePrism, a few 2D edge definition commands, and more (though I wasn't able to get PolygonOnTriangulation to return anything, so the outlines are mismatched from the mesh unfortunately :( ).

    On the line where the workflow logs into the Github Package Registry, you'll probably want to change my username to yours.

    Please ignore/squash the commit history in the merge; it turns out that once you have a working CI system you tend to use it to test changes in broad daylight 🙃

    These changes are live in the editor at https://zalo.github.io/CascadeStudio/

    opened by zalo 8
  • Bump json5, webpack and nuxt in /starter-templates/ocjs-create-nuxt-app

    Bump json5, webpack and nuxt in /starter-templates/ocjs-create-nuxt-app

    Bumps json5 to 2.2.3 and updates ancestor dependencies json5, webpack and nuxt. These dependencies need to be updated together.

    Updates json5 from 2.2.1 to 2.2.3

    Release notes

    Sourced from json5's releases.

    v2.2.3

    v2.2.2

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).
    Changelog

    Sourced from json5's changelog.

    v2.2.3 [code, diff]

    v2.2.2 [code, diff]

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).
    Commits
    • c3a7524 2.2.3
    • 94fd06d docs: update CHANGELOG for v2.2.3
    • 3b8cebf docs(security): use GitHub security advisories
    • f0fd9e1 docs: publish a security policy
    • 6a91a05 docs(template): bug -> bug report
    • 14f8cb1 2.2.2
    • 10cc7ca docs: update CHANGELOG for v2.2.2
    • 7774c10 fix: add proto to objects and arrays
    • edde30a Readme: slight tweak to intro
    • 97286f8 Improve example in readme
    • Additional commits viewable in compare view

    Updates webpack from 4.46.0 to 5.75.0

    Release notes

    Sourced from webpack's releases.

    v5.75.0

    Bugfixes

    • experiments.* normalize to false when opt-out
    • avoid NaN%
    • show the correct error when using a conflicting chunk name in code
    • HMR code tests existance of window before trying to access it
    • fix eval-nosources-* actually exclude sources
    • fix race condition where no module is returned from processing module
    • fix position of standalong semicolon in runtime code

    Features

    • add support for @import to extenal CSS when using experimental CSS in node
    • add i64 support to the deprecated WASM implementation

    Developer Experience

    • expose EnableWasmLoadingPlugin
    • add more typings
    • generate getters instead of readonly properties in typings to allow overriding them

    v5.74.0

    Features

    • add resolve.extensionAlias option which allows to alias extensions
      • This is useful when you are forced to add the .js extension to imports when the file really has a .ts extension (typescript + "type": "module")
    • add support for ES2022 features like static blocks
    • add Tree Shaking support for ProvidePlugin

    Bugfixes

    • fix persistent cache when some build dependencies are on a different windows drive
    • make order of evaluation of side-effect-free modules deterministic between concatenated and non-concatenated modules
    • remove left-over from debugging in TLA/async modules runtime code
    • remove unneeded extra 1s timestamp offset during watching when files are actually untouched
      • This sometimes caused an additional second build which are not really needed
    • fix shareScope option for ModuleFederationPlugin
    • set "use-credentials" also for same origin scripts

    Performance

    • Improve memory usage and performance of aggregating needed files/directories for watching
      • This affects rebuild performance

    Extensibility

    • export HarmonyImportDependency for plugins

    v5.73.0

    ... (truncated)

    Commits

    Updates nuxt from 2.15.8 to 3.0.0

    Release notes

    Sourced from nuxt's releases.

    Nuxt 3.0 stable

    Official Release Announcenment

    💬 Release Discussion

    📝 Changelog

    Check out v3.0.0-rc.14 for other recent changes.

    🩹 Fixes

    • nuxt: Removed auto imports (#9045)
    • schema: Initialise runtimeConfig.public with empty object (#9050)
    • cli: Upgrade with latest tag (#9060)
    • nuxt: Allow union type arguments for useAsyncData (#9061)

    📖 Documentation

    • New website design (#9007)
    • Update website theme version (819deb89)
    • Minor style improvements (9ab069b2)
    • Update website-theme (780b17b1)
    • Add warning about definePageMeta issues with transitions and NuxtLoadingIndicator (#9055)
    • Add missing agencies (#9059)

    🏡 Chore

    • Update readme design (#9048)
    • Ignore parse5 for renovate update (#9046)

    ❤️ Contributors

    v3.0.0-rc.14

    Note This is the last release candidate for Nuxt v3! Are you ready? 👀

    👉 Release Discussion

    Changelog

    compare changes

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • How to iterate over NCollection_List?

    How to iterate over NCollection_List?

    I can't use the iterator from NCollection_List.begin(), because of UnboundTypeError

    I made this somewhat hacky workaround:

    function MoveListToJs(list: TopTools_ListOfShape){
        let res = []
        while(list.Size() > 0){
            res.push(list.First_1())
            list.RemoveFirst()
        }
        list.delete()
        return res
    }
    

    Is there a better solution?

    opened by kerimcharfi 0
  • Build emcc crashes

    Build emcc crashes

    I can't build it using docker

    docker run \
                -v $(pwd):/src \
                -u $(id -u):$(id -g) \
                donalffons/opencascade.js \
                /src/builds/opencascade.full.yml
    

    Logs:

    2023-01-01 16:21:20   /emsdk/upstream/emscripten/system/lib/libcxx/include/__support/musl/xlocale.h:42:34: error: static declaration of 'wcstoull_l' follows non-static declaration
    2023-01-01 16:21:20   /emsdk/upstream/emscripten/system/lib/libcxx/include/__support/musl/xlocale.h:48:27: error: static declaration of 'wcstold_l' follows non-static declaration
    2023-01-01 16:21:20   /emsdk/upstream/emscripten/system/lib/libcxx/include/locale:752:26: error: call to 'strtoll_l' is ambiguous
    2023-01-01 16:21:20   /emsdk/upstream/emscripten/system/lib/libcxx/include/locale:792:35: error: call to 'strtoull_l' is ambiguous
    2023-01-01 16:21:34 Diagnostic Messages:
    2023-01-01 16:21:34   /emsdk/upstream/emscripten/system/lib/libcxx/include/__support/musl/xlocale.h:27:25: error: static declaration of 'strtoll_l' follows non-static declaration
    2023-01-01 16:21:34   /emsdk/upstream/emscripten/system/lib/libcxx/include/__support/musl/xlocale.h:32:34: error: static declaration of 'strtoull_l' follows non-static declaration
    2023-01-01 16:21:34   /emsdk/upstream/emscripten/system/lib/libcxx/include/__support/musl/xlocale.h:37:25: error: static declaration of 'wcstoll_l' follows non-static declaration
    2023-01-01 16:21:34   /emsdk/upstream/emscripten/system/lib/libcxx/include/__support/musl/xlocale.h:42:34: error: static declaration of 'wcstoull_l' follows non-static declaration
    2023-01-01 16:21:34   /emsdk/upstream/emscripten/system/lib/libcxx/include/__support/musl/xlocale.h:48:27: error: static declaration of 'wcstold_l' follows non-static declaration
    2023-01-01 16:21:34   /emsdk/upstream/emscripten/system/lib/libcxx/include/locale:752:26: error: call to 'strtoll_l' is ambiguous
    2023-01-01 16:21:34   /emsdk/upstream/emscripten/system/lib/libcxx/include/locale:792:35: error: call to 'strtoull_l' is ambiguous
    2023-01-01 16:21:35 building /opencascade.js/build/bindings/myMain.h/Handle_IMeshTools_Context.cpp
    2023-01-01 16:21:35 building /opencascade.js/build/bindings/myMain.h/OCJS.cpp
    2023-01-01 16:21:50 building /opencascade.js/build/additionalBindCode/opencascade.full.js.cpp
    2023-01-01 16:21:50 Running build: opencascade.full.js
    2023-01-01 16:21:54 ports:INFO: retrieving port: freetype from https://github.com/emscripten-ports/FreeType/archive/version_1.zip
    2023-01-01 16:21:55 ports:INFO: unpacking port: freetype
    
    .....
    
    cache:INFO: generating system library: sysroot/lib/wasm32-emscripten/lto/libcompiler_rt.a... (this will be cached in "/emsdk/upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/lto/libcompiler_rt.a" for subsequent builds)
    cache:INFO:  - ok
    cache:INFO: generating system library: sysroot/lib/wasm32-emscripten/lto/libc++.a... (this will be cached in "/emsdk/upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/lto/libc++.a" for subsequent builds)
    cache:INFO:  - ok
    cache:INFO: generating system library: sysroot/lib/wasm32-emscripten/lto/libc++abi.a... (this will be cached in "/emsdk/upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/lto/libc++abi.a" for subsequent builds)
    cache:INFO:  - ok
    cache:INFO: generating system library: sysroot/lib/wasm32-emscripten/lto/libsockets.a... (this will be cached in "/emsdk/upstream/emscripten/cache/sysroot/lib/wasm32-emscripten/lto/libsockets.a" for subsequent builds)
    cache:INFO:  - ok
     emcc: error: '/emsdk/upstream/bin/wasm-ld @/tmp/emscripten_f_zc1vqr.rsp.utf-8' failed (received SIGKILL (-9))
    Traceback (most recent call last):
     File "/opencascade.js/src/buildFromYaml.py", line 127, in <module>
     runBuild(buildConfig["mainBuild"])
    File "/opencascade.js/src/buildFromYaml.py", line 118, in runBuild
    subprocess.check_call([
    File "/usr/lib/python3.8/subprocess.py", line 364, in check_call
    raise CalledProcessError(retcode, cmd)
    

    I tried on WSL and Ubuntu github actions

    https://github.com/kerimcharfi/opencascade.js/actions/runs/3817610186

    opened by kerimcharfi 0
  • Bump decode-uri-component from 0.2.0 to 0.2.2 in /starter-templates/ocjs-create-react-app-typescript

    Bump decode-uri-component from 0.2.0 to 0.2.2 in /starter-templates/ocjs-create-react-app-typescript

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump decode-uri-component from 0.2.0 to 0.2.2 in /starter-templates/ocjs-create-react-app-web-worker

    Bump decode-uri-component from 0.2.0 to 0.2.2 in /starter-templates/ocjs-create-react-app-web-worker

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump decode-uri-component from 0.2.0 to 0.2.2 in /starter-templates/ocjs-create-react-app-5

    Bump decode-uri-component from 0.2.0 to 0.2.2 in /starter-templates/ocjs-create-react-app-5

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
Releases(v1.1.1)
  • v1.1.1(Sep 27, 2020)

  • v1.1.0(Sep 27, 2020)

    This build is unusable due to an error during the initialization phase.

    • More accurate way of counting supported and unsupported classes
    • Removed support for classes Aspect_Background, Aspect_CircularGrid, Aspect_GenId, Aspect_GradientBackground, Aspect_Grid, Aspect_RectangularGrid, Aspect_Touch, Aspect_VKeySet, Aspect_Window, math_Householder, math_IntegerVector, math_Matrix, math_Vector due to an error (breaking change)
    • Added support for classes IntPatch_ALine, IntPatch_ALineToWLine, IntPatch_ArcFunction, IntPatch_CSFunction, IntPatch_CurvIntSurf, IntPatch_GLine, IntPatch_HCurve2dTool, IntPatch_HInterTool, IntPatch_ImpImpIntersection, IntPatch_ImpPrmIntersection, IntPatch_InterferencePolyhedron, IntPatch_LineConstructor, IntPatch_PolyArc, IntPatch_PolyLine, IntPatch_Polygo, IntPatch_PolyhedronTool, IntPatch_PrmPrmIntersection, IntPatch_PrmPrmIntersection_T3Bits, IntPatch_SpecialPoints, IntPatch_TheIWLineOfTheIWalking, IntPatch_TheIWalking, IntPatch_ThePathPointOfTheSOnBounds, IntPatch_TheSOnBounds, IntPatch_TheSearchInside, IntPatch_TheSegmentOfTheSOnBounds, IntPatch_TheSurfFunction, IntPatch_WLineTool, Interface_Category, Interface_CheckFailure, Interface_CheckTool, Interface_CopyMap, Interface_EntityCluster, Interface_FileParameter, Interface_GTool, Interface_GlobalNodeOfGeneralLib, Interface_GlobalNodeOfReaderLib, Interface_IntVal, Interface_InterfaceMismatch, Interface_NodeOfGeneralLib, Interface_NodeOfReaderLib, Interface_ParamList, Interface_ParamSet, Interface_ReportEntity, Interface_STAT, Interface_ShareFlags, Interface_ShareTool, Interface_SignLabel, Interface_Static, Interface_TypedValue, Interface_UndefinedContent, OSD, OSD_Directory, OSD_DirectoryIterator, OSD_Disk, OSD_Environment, OSD_Exception, OSD_Exception_ACCESS_VIOLATION, OSD_Exception_ARRAY_BOUNDS_EXCEEDED, OSD_Exception_CTRL_BREAK, OSD_Exception_FLT_DENORMAL_OPERAND, OSD_Exception_FLT_DIVIDE_BY_ZERO, OSD_Exception_FLT_INEXACT_RESULT, OSD_Exception_FLT_INVALID_OPERATION, OSD_Exception_FLT_OVERFLOW, OSD_Exception_FLT_STACK_CHECK, OSD_Exception_FLT_UNDERFLOW, OSD_Exception_ILLEGAL_INSTRUCTION, OSD_Exception_INT_DIVIDE_BY_ZERO, OSD_Exception_INT_OVERFLOW, OSD_Exception_INVALID_DISPOSITION, OSD_Exception_IN_PAGE_ERROR, OSD_Exception_NONCONTINUABLE_EXCEPTION, OSD_Exception_PRIV_INSTRUCTION, OSD_Exception_STACK_OVERFLOW, OSD_Exception_STATUS_NO_MEMORY, OSD_FileIterator, OSD_Host, OSD_MAllocHook, OSD_MemInfo, OSD_OSDError, OSD_PerfMeter, OSD_Process, OSD_Protection, OSD_SIGBUS, OSD_SIGHUP, OSD_SIGILL, OSD_SIGINT, OSD_SIGKILL, OSD_SIGQUIT, OSD_SIGSEGV, OSD_SIGSYS, OSD_SharedLibrary, OSD_Signal, OpenGl_Aspects, OpenGl_AspectsProgram, OpenGl_AspectsSprite, OpenGl_AspectsTextureSet, OpenGl_BackgroundArray, OpenGl_CappingAlgo, OpenGl_CappingPlaneResource, OpenGl_Caps, OpenGl_Clipping, OpenGl_ClippingIterator, OpenGl_ClippingState, OpenGl_Context, OpenGl_Element, OpenGl_Flipper, OpenGl_Font, OpenGl_FrameBuffer, OpenGl_FrameStats, OpenGl_FrameStatsPrs, OpenGl_GraduatedTrihedron, OpenGl_GraphicDriver, OpenGl_Group, OpenGl_IndexBuffer, OpenGl_LayerList, OpenGl_LightSourceState, OpenGl_LineAttributes, OpenGl_MaterialState, OpenGl_ModelWorldState, OpenGl_NamedResource, OpenGl_OitState, OpenGl_PointSprite, OpenGl_PrimitiveArray, OpenGl_ProjectionState, OpenGl_RaytraceGeometry, OpenGl_Resource, OpenGl_Sampler, OpenGl_SetOfPrograms, OpenGl_SetOfShaderPrograms, OpenGl_ShaderManager, OpenGl_ShaderObject, OpenGl_ShaderProgram, OpenGl_ShaderUniformLocation, OpenGl_StateCounter, OpenGl_StateInterface, OpenGl_StencilTest, OpenGl_Structure, OpenGl_StructureShadow, OpenGl_Text, OpenGl_TextBuilder, OpenGl_Texture, OpenGl_TextureBufferArb, OpenGl_TextureFormat, OpenGl_TextureSet, OpenGl_TriangleSet, OpenGl_VariableSetterSelector, OpenGl_VertexBuffer, OpenGl_VertexBufferCompat, OpenGl_Window, OpenGl_Workspace, OpenGl_WorldViewState, WNT_ClassDefinitionError
    • Added supported for the following specializations of the NCollection_Array1 template class: TColStd_Array1OfByte, Graphic3d_Array1OfAttribute, TColgp_Array1OfPnt, TColgp_Array1OfPnt2d, Poly_Array1OfTriangle, TColStd_Array1OfInteger, TShort_Array1OfShortReal, Quantity_Array1OfColor, TColgp_Array1OfDir, TColStd_Array1OfTransient, TColStd_Array1OfAsciiString, Interface_Array1OfHAsciiString, TColStd_Array1OfReal, TColGeom_Array1OfSurface, AppParCurves_Array1OfMultiPoint, TColgp_Array1OfVec, TColgp_Array1OfVec2d, AppDef_Array1OfMultiPointConstraint, AppParCurves_Array1OfConstraintCouple, AppParCurves_Array1OfMultiBSpCurve, AppParCurves_Array1OfMultiCurve, Approx_Array1OfAdHSurface, Approx_Array1OfGTrsf2d, BOPDS_VectorOfPave, BRepAdaptor_Array1OfCurve, TColStd_Array1OfBoolean, Extrema_Array1OfPOnCurv, Extrema_Array1OfPOnSurf, Bnd_Array1OfSphere, GeomFill_Array1OfLocationLaw, TopTools_Array1OfShape, GeomPlate_Array1OfSequenceOfReal, Plate_Array1OfPinpointConstraint, TColgp_Array1OfXYZ, GeomPlate_Array1OfHCurve, TColGeom2d_Array1OfCurve, GeomFill_Array1OfSectionLaw, ChFiDS_SecArray1, Bnd_Array1OfBox, Message_ArrayOfMsg, Bnd_Array1OfBox2d, TColStd_Array1OfListOfInteger, ChFiDS_StripeArray1, Expr_Array1OfNamedUnknown, Expr_Array1OfGeneralExpression, Expr_Array1OfSingleRelation, Extrema_Array1OfPOnCurv2d, TColgp_Array1OfXY, TColgp_Array1OfCirc2d, GccEnt_Array1OfPosition, TColgp_Array1OfLin2d, TColGeom2d_Array1OfBSplineCurve, TColGeom2d_Array1OfBezierCurve, TColGeom_Array1OfBSplineCurve, TColGeom_Array1OfBezierCurve, GeomLib_Array1OfMat, Graphic3d_ArrayOfIndexedMapOfStructure, HLRAlgo_Array1OfPHDat, HLRAlgo_Array1OfPINod, HLRAlgo_Array1OfPISeg, HLRAlgo_Array1OfTData, HLRBRep_Array1OfEData, HLRBRep_Array1OfFData, Intf_Array1OfLin, IGESAppli_Array1OfNode, IGESAppli_Array1OfFiniteElement, IGESData_Array1OfIGESEntity, IGESDraw_Array1OfConnectPoint, IGESGraph_Array1OfTextDisplayTemplate, IGESAppli_Array1OfFlow, IGESDefs_Array1OfTabularData, IGESGraph_Array1OfTextFontDef, IGESDimen_Array1OfGeneralNote, IGESBasic_Array1OfLineFontEntity, IGESData_Array1OfDirPart, IGESDimen_Array1OfLeaderArrow, IGESDraw_Array1OfViewKindEntity, IGESGraph_Array1OfColor, IGESGeom_Array1OfBoundary, IGESGeom_Array1OfCurveOnSurface, IGESGeom_Array1OfTransformationMatrix, IGESSolid_Array1OfLoop, IGESSolid_Array1OfFace, IGESSolid_Array1OfShell, IGESSolid_Array1OfVertexList, IntTools_Array1OfRange, IntTools_Array1OfRoots, Interface_Array1OfFileParameter, MeshVS_Array1OfSequenceOfInteger, StepDimTol_Array1OfDatumReferenceModifier, StepRepr_Array1OfRepresentationItem, StepVisual_Array1OfTessellatedItem, StepDimTol_Array1OfDatumSystemOrReference, StepVisual_Array1OfPresentationStyleSelect, StepVisual_Array1OfPresentationStyleAssignment, TColgp_Array1OfDir2d, TColGeom_Array1OfCurve, TColStd_Array1OfExtendedString, TDataStd_LabelArray1, TDataXtd_Array1OfTrsf, StepAP203_Array1OfApprovedItem, StepAP203_Array1OfCertifiedItem, StepAP203_Array1OfChangeRequestItem, StepAP203_Array1OfClassifiedItem, StepAP203_Array1OfContractedItem, StepAP203_Array1OfDateTimeItem, StepAP203_Array1OfPersonOrganizationItem, StepAP203_Array1OfSpecifiedItem, StepAP203_Array1OfStartRequestItem, StepAP203_Array1OfWorkItem, StepRepr_Array1OfMaterialPropertyRepresentation, StepFEA_Array1OfNodeRepresentation, StepAP214_Array1OfApprovalItem, StepAP214_Array1OfDateAndTimeItem, StepAP214_Array1OfDateItem, StepAP214_Array1OfDocumentReferenceItem, StepAP214_Array1OfExternalIdentificationItem, StepAP214_Array1OfGroupItem, StepAP214_Array1OfOrganizationItem, StepAP214_Array1OfPersonAndOrganizationItem, StepAP214_Array1OfPresentedItemSelect, StepAP214_Array1OfSecurityClassificationItem, StepAP214_Array1OfAutoDesignDateAndPersonItem, StepAP214_Array1OfAutoDesignDateAndTimeItem, StepAP214_Array1OfAutoDesignDatedItem, StepAP214_Array1OfAutoDesignGeneralOrgItem, StepAP214_Array1OfAutoDesignGroupedItem, StepAP214_Array1OfAutoDesignPresentedItemSelect, StepAP214_Array1OfAutoDesignReferencingItem, StepBasic_Array1OfApproval, StepBasic_Array1OfDerivedUnitElement, StepBasic_Array1OfDocument, StepBasic_Array1OfNamedUnit, StepBasic_Array1OfOrganization, StepBasic_Array1OfPerson, StepBasic_Array1OfProductContext, StepBasic_Array1OfProduct, StepBasic_Array1OfProductDefinition, StepBasic_Array1OfUncertaintyMeasureWithUnit, StepData_Array1OfField, StepDimTol_Array1OfDatumReference, StepDimTol_Array1OfDatumReferenceCompartment, StepDimTol_Array1OfDatumReferenceElement, StepDimTol_Array1OfGeometricToleranceModifier, StepDimTol_Array1OfToleranceZoneTarget, StepRepr_Array1OfShapeAspect, StepElement_Array1OfCurveElementEndReleasePacket, StepElement_Array1OfCurveElementSectionDefinition, StepElement_Array1OfHSequenceOfCurveElementPurposeMember, StepElement_Array1OfHSequenceOfSurfaceElementPurposeMember, StepElement_Array1OfMeasureOrUnspecifiedValue, StepElement_Array1OfSurfaceSection, StepElement_Array1OfVolumeElementPurpose, StepElement_Array1OfVolumeElementPurposeMember, StepFEA_Array1OfCurveElementEndOffset, StepFEA_Array1OfCurveElementEndRelease, StepFEA_Array1OfCurveElementInterval, StepFEA_Array1OfDegreeOfFreedom, StepFEA_Array1OfElementRepresentation, StepGeom_Array1OfCompositeCurveSegment, StepGeom_Array1OfBoundaryCurve, StepGeom_Array1OfCartesianPoint, StepGeom_Array1OfCurve, StepGeom_Array1OfPcurveOrSurface, StepGeom_Array1OfSurfaceBoundary, StepGeom_Array1OfTrimmingSelect, StepRepr_Array1OfPropertyDefinitionRepresentation, StepShape_Array1OfFaceBound, StepShape_Array1OfEdge, StepShape_Array1OfConnectedEdgeSet, StepShape_Array1OfFace, StepShape_Array1OfConnectedFaceSet, StepShape_Array1OfGeometricSetSelect, StepShape_Array1OfOrientedClosedShell, StepShape_Array1OfOrientedEdge, StepShape_Array1OfShapeDimensionRepresentationItem, StepShape_Array1OfShell, StepShape_Array1OfValueQualifier, StepVisual_Array1OfAnnotationPlaneElement, StepVisual_Array1OfBoxCharacteristicSelect, StepVisual_Array1OfCameraModelD3MultiClippingInterectionSelect, StepVisual_Array1OfCameraModelD3MultiClippingUnionSelect, StepVisual_Array1OfCurveStyleFontPattern, StepVisual_Array1OfDirectionCountSelect, StepVisual_Array1OfDraughtingCalloutElement, StepVisual_Array1OfFillStyleSelect, StepVisual_Array1OfInvisibleItem, StepVisual_Array1OfLayeredItem, StepVisual_Array1OfStyleContextSelect, StepVisual_Array1OfSurfaceStyleElementSelect, StepVisual_Array1OfTextOrCharacter, Storage_ArrayOfCallBack, Storage_ArrayOfSchema, Storage_PArray, TColQuantity_Array1OfLength, TColStd_Array1OfCharacter, TDF_AttributeArray1, TFunction_Array1OfDataMapOfGUIDDriver, TopOpeBRep_Array1OfVPointInter, TopOpeBRep_Array1OfLineInter, TopTools_Array1OfListOfShape, TopOpeBRepDS_Array1OfDataMapOfIntegerListOfInterference, math_Array1OfValueAndWeight
    • Added supported for the following specializations of the NCollection_List template class: TColStd_ListOfInteger, PrsMgr_ListOfPresentations, PrsMgr_ListOfPresentableObjects, SelectMgr_TriangFrustums, TopoDS_ListOfShape, AIS_ListOfInteractive, AIS_NListOfEntityOwner, SelectMgr_ListOfFilter, TopTools_ListOfShape, TColStd_ListOfTransient, V3d_ListOfLight, V3d_ListOfView, Message_ListOfAlert, BOPAlgo_ListOfCheckResult, BOPDS_ListOfPave, BOPDS_ListOfPaveBlock, IntSurf_ListOfPntOn2S, BOPTools_ListOfConnexityBlock, TopTools_ListOfListOfShape, BRep_ListOfPointRepresentation, BOPAlgo_ListOfEdgeInfo, DBRep_ListOfEdge, DBRep_ListOfFace, HLRBRep_ListOfBPoint, DBRep_ListOfHideData, BOPTools_ListOfCoupleOfShape, BRep_ListOfCurveRepresentation, BRepCheck_ListOfStatus, BRepFill_ListOfOffsetWire, ChFiDS_ListOfStripe, ChFiDS_Regularities, BRepOffset_ListOfInterval, TDF_LabelList, CDM_ListOfReferences, CDM_ListOfDocument, TColStd_ListOfReal, TopOpeBRepDS_ListOfInterference, ChFiDS_ListOfHElSpine, Law_Laws, DDF_TransactionStack, ExprIntrp_StackOfGeneralExpression, ExprIntrp_StackOfGeneralRelation, ExprIntrp_StackOfGeneralFunction, TColStd_ListOfAsciiString, FEmTool_ListOfVectors, Font_NListOfSystemFont, HLRAlgo_InterferenceList, HLRAlgo_ListOfBPoint, HLRBRep_ListOfBPnt2D, HLRTopoBRep_ListOfVData, IntAna_ListOfCurve, IntPolyh_ListOfCouples, IntTools_ListOfCurveRangeSample, IntTools_ListOfSurfaceRangeSample, IntTools_ListOfBox, MeshVS_PolyhedronVerts, Message_ListOfMsg, NLPlate_StackOfPlate, Poly_ListOfTriangulation, Prs3d_NListOfSequenceOfPnt, QANCollection_ListOfPnt, TDataStd_ListOfExtendedString, TDataStd_ListOfByte, TDF_AttributeList, TNaming_ListOfNamedShape, TDF_AttributeDeltaList, TDF_IDList, TDF_DeltaList, TNaming_ListOfIndexedDataMapOfShapeListOfShape, TNaming_ListOfMapOfShape, TopBas_ListOfTestInterference, TopOpeBRep_ListOfBipoint, TopOpeBRepBuild_ListOfLoop, TopOpeBRepBuild_ListOfListOfLoop, TopOpeBRepBuild_ListOfShapeListOfShape, TopOpeBRepBuild_ListOfPave, TopOpeBRepTool_ListOfC2DF, VrmlData_ListOfNode
    Source code(tar.gz)
    Source code(zip)
  • v1.0.2(Sep 25, 2020)

  • v1.0.1(Sep 25, 2020)

  • v1.0.0(Sep 24, 2020)

    • First version using Embind and automatically generated bindings.
    • Lots of breaking changes in this version. Most notably:
      • Overloaded methods and constructors are now fully supported (on all supported classes). Please have a look at the conventions for details.
      • Static methods have a slightly different interface. Before, you would call them via openCascade.ClassName.prototype.staticMethod(). Now, you call them via openCascade.ClassName.staticMethod().
    • Largely improved coverage of the OpenCascade API
    Source code(tar.gz)
    Source code(zip)
  • v0.1.19(Sep 24, 2020)

Owner
Sebastian Alff
Sebastian Alff
Zeus is an open source flight intellingence tool which supports more than 13,000+ airlines and 250+ countries.

Zeus Zeus is an open source flight intellingence tool which supports more than 13,000+ airlines and 250+ countries. Any flight worldwide, at your fing

DeVickey 1 Oct 22, 2021
TrackGen - The simplest tropical cyclone track map generator

TrackGen - The simplest tropical cyclone track map generator Usage Each line is a point to be plotted on the map Each field gives information about th

TrackGen 6 Jul 20, 2022
kodi addon 115网盘

plugin.video.115 kodi addon 115网盘 插件,需要kodi 18以上版本,原码播放需配合 https://github.com/feelfar/115proxy-for-kodi 使用 安装 HEAD 由于release包尚未释出,可直接下载源代码zip包

109 Dec 29, 2022
Medical appointments No-Show classifier

Medical Appointments No-shows Why do 20% of patients miss their scheduled appointments? A person makes a doctor appointment, receives all the instruct

4 Apr 20, 2022
An example of Connecting a MySQL Database with Python Code

An example of Connecting a MySQL Database with Python Code And How to install Table of contents General info Technologies Setup General info In this p

Mohammad Hosseinzadeh 1 Nov 23, 2021
Repository specifically for tcss503-22-wi Students

TCSS503: Algorithms and Problem Solving for Software Developers Course Description Introduces advanced data structures and key algorithmic techniques

Kevin E. Anderson 3 Nov 08, 2022
Python bindings for `ign-msgs` and `ign-transport`

Python Ignition This project aims to provide Python bindings for ignition-msgs and ignition-transport. It is a work in progress... C++ and Python libr

Rhys Mainwaring 3 Nov 08, 2022
A patch and keygen tools for typora.

A patch and keygen tools for typora.

Mason Shi 1.4k Apr 12, 2022
Easily Generate Revolut Business Cards

RevBusinessCardGen Easily Generate Revolut Business Cards Prerequisites Before you begin, ensure you have met the following requirements: You have ins

Younes™ 35 Dec 14, 2022
全局指针统一处理嵌套与非嵌套NER

GlobalPointer 全局指针统一处理嵌套与非嵌套NER。 介绍 博客:https://kexue.fm/archives/8373 效果 人民日报NER 验证集F1 测试集F1 训练速度 预测速度 CRF 96.39% 95.46% 1x 1x GlobalPointer (w/o RoPE

苏剑林(Jianlin Su) 183 Jan 06, 2023
SimilarWeb for Team ACT v.0.0.1

SimilarWeb for Team ACT v.0.0.1 This module has been built to provide a better environment specifically for Similarweb in Team ACT. This module itself

Sunkyeong Lee 0 Dec 29, 2021
My qtile config with a fresh-looking bar and pywal support

QtileConfig My qtile config with a fresh-looking bar and pywal support. Note: This is my first rice and first github repo. Please excuse my poor codin

Eden 4 Nov 10, 2021
Automatic and platform-independent unpacker for Windows binaries based on emulation

_ _ __ _ __ _ | | | | / / (_) \ \ | | | | | |_ __ | | _ | | _ __ __ _ ___| | _____ _ __

514 Dec 21, 2022
Security-related flags and options for C compilers

Getting the maximum of your C compiler, for security

135 Nov 11, 2022
A Python package for searching journal publications and researchers

scholarpy A python package for searching journal publications and researchers Free software: MIT license Documentation: https://giswqs.github.io/schol

Qiusheng Wu 8 Mar 12, 2022
Make creating Excel XLSX files fun again

Poi: Make creating Excel XLSX files fun again. Poi helps you write Excel sheet in a declarative way, ensuring you have a better Excel writing experien

Ryan Wang 11 Apr 01, 2022
UFDR2DIR - A script to convert a Cellebrite UFDR to the original file structure

UFDR2DIR A script to convert a Cellebrite UFDR to it's original file and directo

DFIRScience 25 Oct 24, 2022
Vaccine for STOP/DJVU ransomware, prevents encryption

STOP/DJVU Ransomware Vaccine Prevents STOP/DJVU Ransomware from encrypting your files. This tool does not prevent the infection itself. STOP ransomwar

Karsten Hahn 16 May 31, 2022
Mmr image postbot - Бот для создания изображений с новыми релизами в сообщество ВК MMR Aggregator

Mmr image postbot - Бот для создания изображений с новыми релизами в сообщество ВК MMR Aggregator

Max 3 Jan 07, 2022
A python library for writing parser-based interactive fiction.

About IntFicPy A python library for writing parser-based interactive fiction. Currently in early development. IntFicPy Docs Parser-based interactive f

Rita Lester 31 Nov 23, 2022