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
KeyLogger cliente-servidor em Python para estudos

KeyLogger Esse projeto é apenas para estudos, não nos responsabilisamos por qualquer uso indevido ou prejudiciais do mesmo. Sobre O objetivo do projet

1 Dec 17, 2021
《practical python programming》的中文翻译

欢迎光临 大约 25 年前,当我第一次学习 Python 时,发现 Python 竟然可以被高效地应用到各种混乱的工作项目上,我立即被震惊了。15 年前,我自己也将这种乐趣教授给别人。教学的结果就是本课程——一门实用的学习 Python的课程。

编程人 125 Dec 17, 2022
A powerful and user-friendly binary analysis platform!

angr angr is a platform-agnostic binary analysis framework. It is brought to you by the Computer Security Lab at UC Santa Barbara, SEFCOM at Arizona S

6.3k Jan 02, 2023
Create Arrays (Working with For Loops)

DSA with Python Create Arrays (Working with For Loops) CREATING ARRAYS WITH USER INPUT Array is a collection of items stored at contiguous memory loca

1 Feb 08, 2022
Library for RadiaCode-101

RadiaCode Библиотека для работы с дозиметром RadiaCode-101, находится в разработке - API не стабилен и возможны изменения. Пример использования (backe

Maxim Andreev 56 Nov 29, 2022
A python package for batch import of resume attachments to be parsed in HrFlow.

HrFlow Importer Description A python package for batch import of resume attachments to be parsed in HrFlow. hrflow-importer is an open-source project

HrFlow.ai (ex: Riminder.net) 3 Nov 15, 2022
A python script to turn tabs into spaces the right way.

detab A python script to turn tabs into spaces the right way. detab turns all tabs into spaces, not just leading tabs. Not all tabs have the same leng

1 Jan 26, 2022
Python decorator for `TODO`s

Python decorator for `TODO`s. Don't let your TODOs rot in your python projects anymore !

Klemen Sever 74 Sep 13, 2022
A simple way to read and write LAPS passwords from linux.

A simple way to read and write LAPS passwords from linux. This script is a python setter/getter for property ms-Mcs-AdmPwd used by LAPS inspired by @s

Podalirius 36 Dec 09, 2022
Heads Down Application for Mac OSX

Heads Down A Mac app that lives in your ribbon—with a click of the mouse, temporarily block distracting websites and applications to encourage "heads

20 Mar 10, 2021
Modeval (or Modular Eval) is a modular and secure string evaluation library that can be used to create custom parsers or interpreters.

modeval Modeval (or Modular Eval) is a modular and secure string evaluation library that can be used to create custom parsers or interpreters. Basic U

2 Jan 01, 2022
Gaia: a chrome extension that curates environmental news of a company

Gaia - Gaia: Your Environment News Curator Call for Code 2021 Gaia: a chrome extension that curates environmental news of a company Explore the docs »

4 Mar 19, 2022
Collie is for uncovering RDMA NIC performance anomalies

Collie is for uncovering RDMA NIC performance anomalies. Overview Prerequ

Bytedance Inc. 34 Dec 11, 2022
Python communism - A module for initiating the communist revolution in each of our python modules

Python communist revolution A man once said to abolish the classes or something

758 Jan 03, 2023
HomeAssistant Linux Companion

Application to run on linux desktop computer to provide sensors data to homeasssistant, and get notifications as if it was a mobile device.

Javier Lopez 10 Dec 27, 2022
PORTSCANNING-IN-PYTHON - A python threaded portscanner to scan websites and ipaddresses

PORTSCANNING-IN-PYTHON This is a python threaded portscanner to scan websites an

1 Feb 16, 2022
Python samples for Google Cloud Platform products.

Google Cloud Platform Python Samples Python samples for Google Cloud Platform products. Setup Install pip and virtualenv if you do not already have th

Google Cloud Platform 6k Jan 03, 2023
A ULauncher/Albert extension that supports currency, units and date time conversion, as well as a calculator that supports complex numbers and functions.

Ulauncher/Albert Calculate Anything Ulauncher/Albert Calculate Anything is an extension for Ulauncher and Albert to calculate things like currency, ti

tchar 67 Jan 01, 2023
mrcal is a generic toolkit to solve calibration and SFM-like problems originating at NASA/JPL

mrcal is a generic toolkit to solve calibration and SFM-like problems originating at NASA/JPL. Functionality related to these problems is exposed as a set of C and Python libraries and some commandli

Dima Kogan 102 Dec 23, 2022
This an Anki add on that automatically converts Notion notes into Anki flash cards. Currently in development!

NotionFlash This is an Anki add on in development that will allow automatically convert your Notion study notes into Anki flash cards. The Anki deck c

Neeraj Patel 10 Oct 07, 2022