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 opencascade.js@beta
    

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
Python library for Minitel communication through serial port

Python library for Minitel communication through serial port

Noël 3 Aug 14, 2022
This is a Python 3.10 port of mock, a library for manipulating human-readable message strings.

This is a Python 3.10 port of mock, a library for manipulating human-readable message strings.

Alexander Bartolomey 1 Dec 31, 2021
Get you an ultimate lexer generator using Fable; port OCaml sedlex to FSharp, Python and more!

NOTE: currently we support interpreted mode and Python source code generation. It's EASY to compile compiled_unit into source code for C#, F# and othe

Taine Zhao 15 Aug 6, 2022
Todos os exercícios do Curso de Python, do canal Curso em Vídeo, resolvidos em Python, Javascript, Java, C++, C# e mais...

Exercícios - CeV Oferecido por Linguagens utilizadas atualmente O que vai encontrar aqui? ?? Esse repositório é dedicado a armazenar todos os enunciad

Coding in Community 43 Nov 10, 2022
run-js Goal: The Easiest Way to Run JavaScript in Python

run-js Goal: The Easiest Way to Run JavaScript in Python features Stateless Async JS Functions No Intermediary Files Functional Programming CommonJS a

Daniel J. Dufour 9 Aug 16, 2022
A collection of some leetcode challenges in python and JavaScript

Python and Javascript Coding Challenges Some leetcode questions I'm currently working on to open up my mind to better ways of problem solving. Impleme

Ted Ngeene 1 Dec 20, 2021
JSEngine is a simple wrapper of Javascript engines.

JSEngine This is a simple wrapper of Javascript engines, it wraps the Javascript interpreter for Python use. There are two ways to call interpreters,

null 11 Dec 18, 2022
Rufus port to linux, writed on Python3

Rufus-for-Linux Rufus port to linux, writed on Python3 Программа будет иметь тот же интерфейс что и оригинал, и тот же функционал. Программа создается

null 6 Jan 7, 2022
An universal linux port of deezer, supporting both Flatpak and AppImage

Deezer for linux This repo is an UNOFFICIAL linux port of the official windows-only Deezer app. Being based on the windows app, it allows downloading

Aurélien Hamy 154 Jan 6, 2023
Dump Data from FTDI Serial Port to Binary File on MacOS

Dump Data from FTDI Serial Port to Binary File on MacOS

pandy song 1 Nov 24, 2021
Rufus port to linux, writed on Python3

Rufus-for-Linux Rufus port to linux, writed on Python3 Программа будет иметь тот же интерфейс что и оригинал, и тот же функционал. Программа создается

null 10 May 12, 2022
This tool for beginner and help those people they gather information about Email Header Analysis, Instagram Information, Instagram Username Check, Ip Information, Phone Number Information, Port Scan

This tool for beginner and help those people they gather information about Email Header Analysis, Instagram Information, Instagram Username Check, Ip Information, Phone Number Information, Port Scan. This tool shows your hostname and public IP first, then user give input and according to option this tool work. This tool work diffrent Oprating system.

cb-kali 5 Feb 18, 2022
ASCII-Wordle - A port of the game Wordle to terminal emulators/CMD

ASCII-Wordle A 'port' of Wordle to text-based interfaces A near-feature complete

null 32 Jun 11, 2022
JLC2KICAD_lib is a python script that generate a component library for KiCad from the JLCPCB/easyEDA library.

JLC2KiCad_lib is a python script that generate a component library (schematic, footprint and 3D model) for KiCad from the JLCPCB/easyEDA library. This script requires Python 3.6 or higher.

Nicolas Toussaint 73 Dec 26, 2022
K2HASH Python library - NoSQL Key Value Store(KVS) library

k2hash_python Overview k2hash_python is an official python driver for k2hash. Install Firstly you must install the k2hash shared library: curl -o- htt

Yahoo! JAPAN 3 Oct 19, 2022
A practice program to find the LCM i.e Lowest Common Multiplication of two numbers using python without library.

Finding-LCM-using-python-from-scratch Here, I write a practice program to find the LCM i.e Lowest Common Multiplication of two numbers using python wi

Sachin Vinayak Dabhade 4 Sep 24, 2021
Library management using python & MySQL

Library management using python & MySQL Dev/Editor: Pavan Ananth Sharma & MK Akash Introduction: This is an intermediate project which is a user-frie

Pavan Ananth Sharma 2 Jul 5, 2022
Msgpack serialization/deserialization library for Python, written in Rust using PyO3 and rust-msgpack. Reboot of orjson. msgpack.org[Python]

ormsgpack ormsgpack is a fast msgpack library for Python. It is a fork/reboot of orjson It serializes faster than msgpack-python and deserializes a bi

Aviram Hassan 139 Dec 30, 2022