Giter Site home page Giter Site logo

wassimj / topologic Goto Github PK

View Code? Open in Web Editor NEW
70.0 6.0 25.0 123.21 MB

Topologic is a software modelling library enabling hierarchical and topological representations of architectural spaces, buildings and artefacts through non-manifold topology.

License: GNU Affero General Public License v3.0

CMake 1.57% C++ 92.85% Python 3.34% Shell 1.57% Batchfile 0.67%

topologic's Introduction

Topologic

Introduction

Topologic is a FOSS software modelling library enabling hierarchical and topological representations of architectural spaces, buildings and artefacts through non-manifold topology. Topologic is designed as a core library and additional plugins to visual data flow programming (VDFP) applications and parametric modelling platforms commonly used in architectural design practice. These applications provide workspaces with visual programming nodes and connections for architects to interact with Topologic and perform architectural design and analysis tasks.

Topologic is well-suited to create a lightweight representation of a building as an external envelope and the subdivision of the enclosed space into separate spaces and zones using zero-thickness internal surfaces. Because Topologic maintains topological consistency, a user can query these cellular spaces and surfaces regarding their topological data and thus conduct various analyses. For example, this lightweight and consistent representation was found to be well-matched with the input data requirements for energy analysis simulation software. Because Topologic allows entities with mixed dimensionalities and those that are optionally independent (e.g. a line, a surface, a volume) to co-exist, structural models can be represented in a coherent manner where lines can represent columns and beams, surfaces can represent walls and slabs, and volumes can represent solids. In addition, non-building entities, such as structural loads can be efficiently attached to the structure. This creates a lightweight model that is well-matched with the input data requirements for structural analysis simulation software.

Examples of use

Toplogic can be used to support energy modelling - say dimensioning the windows on different sides of a hospital to avoid summer overheating. Topologic can be be used to plot paths such as fire egress routes, the least disruptive route for a new service pipe or compute the most congested location in a city layout.

Rigorous Class Hierarchy

TopologicCore contains the following main classes:

  • Topology: A Topology is an abstract superclass that stores constructors, properties and methods used by other subclasses that extend it.
  • Vertex: A Vertex is a zero-dimensional entity equivalent to a geometry point.
  • Edge: An Edge is a one-dimensional entity defined by two vertices. It is important to note that while a topologic edge is made of two vertices, its geometry can be a curve with multiple control vertices.
  • Wire: A Wire is a contiguous collection of Edges where adjacent Edges are connected by shared Vertices. It may be open or closed and may be manifold or non-manifold.
  • Face: A Face is a two-dimensional region defined by a collection of closed Wires. The geometry of a face can be flat or undulating.
  • Shell: A Shell is a contiguous collection of Faces, where adjacent Faces are connected by shared Edges. It may be open or closed and may be manifold or non-manifold.
  • Cell: A Cell is a three-dimensional region defined by a collection of closed Shells. It may be manifold or non- manifold.
  • CellComplex: A CellComplex is a contiguous collection of Cells where adjacent Cells are connected by shared Faces. It is non- manifold.
  • Cluster: A Cluster is a collection of any topologic entities. It may be contiguous or not and may be manifold or non- manifold. Clusters can be nested within other Clusters.

Build Instructions

Get source code

Clone the repository, switch to the branch and initialize submodules (pybind11):

git clone https://github.com/wassimj/Topologic
cd Topologic
git submodule update --init

Use pre-made build recipes for Linux, Windows, and macOS

Prerequisites:

  • Anaconda or Miniconda (optional)
  • On Windows: Microsoft Visual Studio 2022 with "Desktop development with C++" workload installed

There are pre-made recipes to build Topologic Python bindings for Linux, macOS, and Windows which you may find in the directory recipe/.

Pre-made recipe for Linux x86_64

Compilation using Anaconda/Miniconda: recipe/build_linux_x86_64_conda.sh

This script installs Miniconda if it is not found in $HOME/miniconda and builds Topologic Python bindings for Linux with Miniconda. Currently, Miniconda runs with Python up to v3.12. Below commands should work (312 corresponds to Python v3.12, and so on):

recipe/build_linux_x86_64_conda.sh 312

recipe/build_linux_x86_64_conda.sh 311

recipe/build_linux_x86_64_conda.sh 310

recipe/build_linux_x86_64_conda.sh 39

recipe/build_linux_x86_64_conda.sh 38
Compilation without using Anaconda/Miniconda: recipe/build_linux_x86_64_noconda.sh

This script builds Topologic Python bindings for Linux without using Anaconda/Miniconda as it is not shipped with Python greater than 3.12 yet. Assumed, you have Python installed on your Linux machine, and it is added into your environment paths, so pip just works in command line.

The script will also download and build openCASCADE 7.8 what may take around 1h:

recipe/build_linux_x86_64_noconda.sh

To build only openCASCADE:

recipe/build_linux_x86_64_noconda.sh --only-deps

Do not build openCASCADE:

recipe/build_linux_x86_64_noconda.sh --no-deps

Pre-made recipe for macOS ARM64

Compilation using Anaconda/Miniconda: recipe/build_macos_arm64_conda.sh

This script installs Miniconda if it is not found in $HOME/miniconda and builds Topologic Python bindings for macOS with Miniconda. Currently, Miniconda runs with Python up to v3.12. Below commands should work (the build will target macOS 11.0; 312 corresponds to Python v3.12, and so on):

recipe/build_macos_arm64_conda.sh 312 11

recipe/build_macos_arm64_conda.sh 311 11

recipe/build_macos_arm64_conda.sh 310 11

recipe/build_macos_arm64_conda.sh 39 11

recipe/build_macos_arm64_conda.sh 38 11

Compilation without using Anaconda/Miniconda: recipe/build_macos_arm64_noconda.sh

This script builds Topologic Python bindings for macOS without Miniconda as it is not shipped with Python greater than 3.12 yet. Assumed, you have Python installed on your macOS machine, and it is added into your environment paths, so pip just works in command line. The build will target your current macOS version:

recipe/build_macos_arm64_noconda.sh

Pre-made recipe for Windows amd64

Compilation using Anaconda/Miniconda:recipe\build_win_amd64_conda.bat

This script installs Miniconda if it is not found in C:\Miniconda and builds Topologic Python bindings for Windows with Miniconda. Currently, Miniconda runs with Python up to v3.12. Below commands should work (312 corresponds to Python v3.12, and so on):

recipe\build_win_amd64_conda.bat /createenv 312
recipe\build_win_amd64_conda.bat /useenv 312

recipe\build_win_amd64_conda.bat /createenv 311
recipe\build_win_amd64_conda.bat /useenv 311

recipe\build_win_amd64_conda.bat /createenv 310
recipe\build_win_amd64_conda.bat /useenv 310

recipe\build_win_amd64_conda.bat /createenv 39
recipe\build_win_amd64_conda.bat /useenv 39

recipe\build_win_amd64_conda.bat /createenv 38
recipe\build_win_amd64_conda.bat /useenv 38

Compilation without using Anaconda/Miniconda: recipe\build_win_amd64_noconda.bat

This script builds Topologic Python bindings for Windows without Miniconda as it is not shipped with Python greater than 3.12 yet. Assumed, you have Python installed on your Windows machine, and it is added into your environment paths, so pip just works in command line.

The script will use compiled openCASCADE 7.8 for Windows AMD64 from the official portal:

recipe/build_win_amd64_noconda.bat

Alternative build instructions for Anaconda/Miniconda users and writers of alternative build recipes

If the above pre-made build recipes are not working for you for some reason, you may have Anaconda/Miniconda prepared your way.

Prerequisites:

  • Anaconda or Miniconda (mandatory)
  • On Windows: Microsoft Visual Studio 2022 with "Desktop development with C++" workload installed

The instructions for using purely with Anaconda/Miniconda

  1. Create the Conda-based build environment for the target Python version: the files conda_env_topologic_*.yml where * is py310, py311, etc. for Python 3.10, 3.11, etc. define Conda environments named topologic_py310, topologic_py311, etc. that contain the build dependencies, notably OpenCASCADE, and build tools.
    As of 20221217, Blender comes with Python 3.10; the following instructions are for this version.
conda env create -f conda_env_topologic_py310.yml

(Developer note: keep the contents of the conda_env_topologic_*.yml files in sync.)

  1. Activate the Conda environment:
conda activate topologic_py310
  1. To build TopologicCore separately, if needed:
python build.py --build-type Release --source-dir . --build-dir build --build-target TopologicCore

The built library is found in build/TopologicCore/.

  1. To build the Python extension:
  • Windows
cd TopologicPythonBindings
python build_windows.py
  • Linux
cd TopologicPythonBindings
python build_linux.py
  • MacOS
cd TopologicPythonBindings
python build_macos.py

Conclusion

The build output is found in wheelhouse/. The build output is a Python wheel that contains the extension module with TopologicCore linked into it and its OpenCASCADE dependecies "vendored-in" from the Conda-based build environment. It can be installed with pip or its contents can be unzipped.

topologic's People

Contributors

arlav avatar bariscelik avatar brunopostle avatar chenecharry avatar luzpaz avatar seulement55 avatar smartcodemaker avatar wassimj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

topologic's Issues

Dynamo 2.17 compatibility with Topology.Geometry node

Not sure if the Dynamo package is currently supported, but i found some unexpected behavior with geometry conversion in Dynamo 2.17.

Wires created from Circles, or wires derived from Circles (arcs), are converted back as NurbsCurves with a high number of knots. In 2.13 and previous, Topology.Geometry node would convert back to Dynamo as Circles, or Arcs.

ex:
image

I'm imprinting these curves into the surface which should create 4 faces. in 2.13, the resulting edges associated with the circle get converted as Arcs, but in 2.17 they are converted as NurbsCurves with ~130 knots which fail to convert from Dynamo Curves to Revit Curves

edit: i'm still trying to determine an exact cause of the behavior. If you get the geometry from the Wires or Edges, they are NurbsCurves in both 2.13 and 2.17. If you get the surface geometry from the faces, and then get the polycurves from the surface, then they're constructed as Arcs and Circles in 2.13, and NurbsCurves in 2.17.

It would be nice to keep using topologic because the Imprint function is exactly what i'm looking for.

Error when building for MacOS

(topologic_py310) ➜  TopologicPythonBindings git:(main) ✗ python build_macos.py

Processing /Users/sahil/code/Topologic/TopologicPythonBindings
  Running command python setup.py egg_info
  running egg_info
  creating /private/var/folders/jg/8nz0xtdx23x4l7fvjqkf0n5c0000gn/T/pip-pip-egg-info-70w37xcj/topologic.egg-info
  writing /private/var/folders/jg/8nz0xtdx23x4l7fvjqkf0n5c0000gn/T/pip-pip-egg-info-70w37xcj/topologic.egg-info/PKG-INFO
  writing dependency_links to /private/var/folders/jg/8nz0xtdx23x4l7fvjqkf0n5c0000gn/T/pip-pip-egg-info-70w37xcj/topologic.egg-info/dependency_links.txt
  writing top-level names to /private/var/folders/jg/8nz0xtdx23x4l7fvjqkf0n5c0000gn/T/pip-pip-egg-info-70w37xcj/topologic.egg-info/top_level.txt
  writing manifest file '/private/var/folders/jg/8nz0xtdx23x4l7fvjqkf0n5c0000gn/T/pip-pip-egg-info-70w37xcj/topologic.egg-info/SOURCES.txt'
  reading manifest file '/private/var/folders/jg/8nz0xtdx23x4l7fvjqkf0n5c0000gn/T/pip-pip-egg-info-70w37xcj/topologic.egg-info/SOURCES.txt'
  writing manifest file '/private/var/folders/jg/8nz0xtdx23x4l7fvjqkf0n5c0000gn/T/pip-pip-egg-info-70w37xcj/topologic.egg-info/SOURCES.txt'
  Preparing metadata (setup.py) ... done
Building wheels for collected packages: topologic
  Running command python setup.py bdist_wheel
  running bdist_wheel
  running build
  running build_py
  running build_ext
  INFO:build:syscmd: running subprocess: ['cmake', '-S', '/Users/sahil/code/Topologic/TopologicPythonBindings/..', '-G', 'Ninja', '-B', 'build/temp.macosx-10.9-x86_64-cpython-310/cmake-build-release', '-DCMAKE_BUILD_TYPE=Release', '-DTOPOLOGICCORE_BUILD_SHARED=OFF']
  -- The CXX compiler identification is Clang 14.0.6
  -- Detecting CXX compiler ABI info
  -- Detecting CXX compiler ABI info - done
  -- Check for working CXX compiler: /Users/sahil/opt/anaconda3/envs/topologic_py310/bin/x86_64-apple-darwin13.4.0-clang++ - skipped
  -- Detecting CXX compile features
  -- Detecting CXX compile features - done
  -- pybind11 v2.10.1
  -- Configuring done (5.8s)
  -- Generating done (0.0s)
  -- Build files have been written to: /Users/sahil/code/Topologic/TopologicPythonBindings/build/temp.macosx-10.9-x86_64-cpython-310/cmake-build-release
  INFO:build:syscmd: running subprocess: ['cmake', '--build', 'build/temp.macosx-10.9-x86_64-cpython-310/cmake-build-release', '--target', 'TopologicPythonBindings', '-v']
  [1/2] : && /Users/sahil/opt/anaconda3/envs/topologic_py310/bin/cmake -E rm -f TopologicCore/libTopologicCore.a && /Users/sahil/opt/anaconda3/envs/topologic_py310/bin/x86_64-apple-darwin13.4.0-ar qc TopologicCore/libTopologicCore.a  TopologicCore/CMakeFiles/TopologicCore.dir/src/About.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/Aperture.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/Cell.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/CellComplex.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/Cluster.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/ContentManager.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/Context.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/ContextManager.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/Dictionary.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/Edge.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/Face.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/GlobalCluster.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/Graph.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/InstanceGUIDManager.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/Shell.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/Topology.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/Utilities.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/Vertex.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/Wire.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/AttributeManager.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/DoubleAttribute.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/IntAttribute.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/ListAttribute.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/StringAttribute.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/ApertureFactory.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/CellComplexFactory.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/CellFactory.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/ClusterFactory.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/EdgeFactory.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/FaceFactory.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/ShellFactory.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/TopologyFactoryManager.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/VertexFactory.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/WireFactory.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/Geometry.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/Line.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/NurbsCurve.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/NurbsSurface.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/PlanarSurface.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/Surface.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/Bitwise.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/Utilities/CellUtility.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/Utilities/Direction.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/Utilities/EdgeUtility.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/Utilities/FaceUtility.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/Utilities/ShellUtility.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/Utilities/TopologyUtility.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/Utilities/TransformationMatrix2D.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/Utilities/Vector.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/Utilities/VertexUtility.cpp.o TopologicCore/CMakeFiles/TopologicCore.dir/src/Utilities/WireUtility.cpp.o && /Users/sahil/opt/anaconda3/envs/topologic_py310/bin/llvm-ranlib TopologicCore/libTopologicCore.a && /Users/sahil/opt/anaconda3/envs/topologic_py310/bin/cmake -E touch TopologicCore/libTopologicCore.a && :
  [2/2] : && /Users/sahil/opt/anaconda3/envs/topologic_py310/bin/x86_64-apple-darwin13.4.0-clang++ -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fPIE -fstack-protector-strong -O2 -pipe -stdlib=libc++ -fvisibility-inlines-hidden -fmessage-length=0 -isystem /Users/sahil/opt/anaconda3/envs/topologic_py310/include -O3 -DNDEBUG -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -bundle -Wl,-headerpad_max_install_names -Wl,-pie -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,/Users/sahil/opt/anaconda3/envs/topologic_py310/lib -L/Users/sahil/opt/anaconda3/envs/topologic_py310/lib   -Xlinker -undefined -Xlinker dynamic_lookup -o TopologicPythonBindings/topologic.cpython-310-darwin.so TopologicPythonBindings/CMakeFiles/TopologicPythonBindings.dir/src/TopologicalQuery.cppwg.cpp.o TopologicPythonBindings/CMakeFiles/TopologicPythonBindings.dir/src/Topology.cppwg.cpp.o TopologicPythonBindings/CMakeFiles/TopologicPythonBindings.dir/src/Vertex.cppwg.cpp.o TopologicPythonBindings/CMakeFiles/TopologicPythonBindings.dir/src/Edge.cppwg.cpp.o TopologicPythonBindings/CMakeFiles/TopologicPythonBindings.dir/src/Wire.cppwg.cpp.o TopologicPythonBindings/CMakeFiles/TopologicPythonBindings.dir/src/Face.cppwg.cpp.o TopologicPythonBindings/CMakeFiles/TopologicPythonBindings.dir/src/Shell.cppwg.cpp.o TopologicPythonBindings/CMakeFiles/TopologicPythonBindings.dir/src/Cell.cppwg.cpp.o TopologicPythonBindings/CMakeFiles/TopologicPythonBindings.dir/src/CellComplex.cppwg.cpp.o TopologicPythonBindings/CMakeFiles/TopologicPythonBindings.dir/src/Cluster.cppwg.cpp.o TopologicPythonBindings/CMakeFiles/TopologicPythonBindings.dir/src/Aperture.cppwg.cpp.o TopologicPythonBindings/CMakeFiles/TopologicPythonBindings.dir/src/Graph.cppwg.cpp.o TopologicPythonBindings/CMakeFiles/TopologicPythonBindings.dir/src/Attribute.cppwg.cpp.o TopologicPythonBindings/CMakeFiles/TopologicPythonBindings.dir/src/Dictionary.cppwg.cpp.o TopologicPythonBindings/CMakeFiles/TopologicPythonBindings.dir/src/ContentManager.cppwg.cpp.o TopologicPythonBindings/CMakeFiles/TopologicPythonBindings.dir/src/Context.cppwg.cpp.o TopologicPythonBindings/CMakeFiles/TopologicPythonBindings.dir/src/IntAttribute.cppwg.cpp.o TopologicPythonBindings/CMakeFiles/TopologicPythonBindings.dir/src/StringAttribute.cppwg.cpp.o TopologicPythonBindings/CMakeFiles/TopologicPythonBindings.dir/src/DoubleAttribute.cppwg.cpp.o TopologicPythonBindings/CMakeFiles/TopologicPythonBindings.dir/src/ListAttribute.cppwg.cpp.o TopologicPythonBindings/CMakeFiles/TopologicPythonBindings.dir/src/VertexUtility.Binding.cpp.o TopologicPythonBindings/CMakeFiles/TopologicPythonBindings.dir/src/EdgeUtility.Binding.cpp.o TopologicPythonBindings/CMakeFiles/TopologicPythonBindings.dir/src/WireUtility.Binding.cpp.o TopologicPythonBindings/CMakeFiles/TopologicPythonBindings.dir/src/ShellUtility.Binding.cpp.o TopologicPythonBindings/CMakeFiles/TopologicPythonBindings.dir/src/CellUtility.Binding.cpp.o TopologicPythonBindings/CMakeFiles/TopologicPythonBindings.dir/src/TopologyUtility.Binding.cpp.o TopologicPythonBindings/CMakeFiles/TopologicPythonBindings.dir/src/FaceUtility.Binding.cpp.o TopologicPythonBindings/CMakeFiles/TopologicPythonBindings.dir/src/GlobalCluster.Binding.cpp.o TopologicPythonBindings/CMakeFiles/TopologicPythonBindings.dir/src/main.cpp.o  TopologicCore/libTopologicCore.a  /Users/sahil/opt/anaconda3/envs/topologic_py310/lib/libTKOffset.7.7.0.dylib  /Users/sahil/opt/anaconda3/envs/topologic_py310/lib/libTKMesh.7.7.0.dylib  /Users/sahil/opt/anaconda3/envs/topologic_py310/lib/libTKFillet.7.7.0.dylib  /Users/sahil/opt/anaconda3/envs/topologic_py310/lib/libTKBool.7.7.0.dylib  /Users/sahil/opt/anaconda3/envs/topologic_py310/lib/libTKBO.7.7.0.dylib  /Users/sahil/opt/anaconda3/envs/topologic_py310/lib/libTKPrim.7.7.0.dylib  /Users/sahil/opt/anaconda3/envs/topologic_py310/lib/libTKShHealing.7.7.0.dylib  /Users/sahil/opt/anaconda3/envs/topologic_py310/lib/libTKTopAlgo.7.7.0.dylib  /Users/sahil/opt/anaconda3/envs/topologic_py310/lib/libTKGeomAlgo.7.7.0.dylib  /Users/sahil/opt/anaconda3/envs/topologic_py310/lib/libTKBRep.7.7.0.dylib  /Users/sahil/opt/anaconda3/envs/topologic_py310/lib/libTKGeomBase.7.7.0.dylib  /Users/sahil/opt/anaconda3/envs/topologic_py310/lib/libTKG3d.7.7.0.dylib  /Users/sahil/opt/anaconda3/envs/topologic_py310/lib/libTKG2d.7.7.0.dylib  /Users/sahil/opt/anaconda3/envs/topologic_py310/lib/libTKMath.7.7.0.dylib  /Users/sahil/opt/anaconda3/envs/topologic_py310/lib/libTKernel.7.7.0.dylib && cd /Users/sahil/code/Topologic/TopologicPythonBindings/build/temp.macosx-10.9-x86_64-cpython-310/cmake-build-release/TopologicPythonBindings && /Users/sahil/opt/anaconda3/envs/topologic_py310/bin/llvm-strip -x /Users/sahil/code/Topologic/TopologicPythonBindings/build/temp.macosx-10.9-x86_64-cpython-310/cmake-build-release/TopologicPythonBindings/topologic.cpython-310-darwin.so
  ld: warning: -pie being ignored. It is only used when linking a main executable
  INFO:build:syscmd: running subprocess: ['cmake', '--install', 'build/temp.macosx-10.9-x86_64-cpython-310/cmake-build-release', '--prefix', 'build/temp.macosx-10.9-x86_64-cpython-310/cmake-install-release', '--component', 'TopologicPythonBindings']
  -- Install configuration: "Release"
  -- Installing: /Users/sahil/code/Topologic/TopologicPythonBindings/build/temp.macosx-10.9-x86_64-cpython-310/cmake-install-release/lib/TopologicPythonBindings/topologic.cpython-310-darwin.so
  /Users/sahil/opt/anaconda3/envs/topologic_py310/lib/python3.10/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated.
  !!

          ********************************************************************************
          Please avoid running ``setup.py`` directly.
          Instead, use pypa/build, pypa/installer or other
          standards-based tools.

          See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.
          ********************************************************************************

  !!
    self.initialize_options()
  installing to build/bdist.macosx-10.9-x86_64/wheel
  running install
  running install_lib
  creating build/bdist.macosx-10.9-x86_64
  creating build/bdist.macosx-10.9-x86_64/wheel
  copying build/lib.macosx-10.9-x86_64-cpython-310/.DS_Store -> build/bdist.macosx-10.9-x86_64/wheel
  creating build/bdist.macosx-10.9-x86_64/wheel/topologic
  copying build/lib.macosx-10.9-x86_64-cpython-310/topologic/topologic.cpython-310-darwin.so -> build/bdist.macosx-10.9-x86_64/wheel/topologic
  copying build/lib.macosx-10.9-x86_64-cpython-310/topologic/__init__.py -> build/bdist.macosx-10.9-x86_64/wheel/topologic
  running install_egg_info
  running egg_info
  writing topologic.egg-info/PKG-INFO
  writing dependency_links to topologic.egg-info/dependency_links.txt
  writing top-level names to topologic.egg-info/top_level.txt
  reading manifest file 'topologic.egg-info/SOURCES.txt'
  writing manifest file 'topologic.egg-info/SOURCES.txt'
  Copying topologic.egg-info to build/bdist.macosx-10.9-x86_64/wheel/topologic-3.0.0-py3.10.egg-info
  running install_scripts
  [WARNING] This wheel needs a higher macOS version than the version your Python interpreter is compiled against.  To silence this warning, set MACOSX_DEPLOYMENT_TARGET to at least 13_0 or recreate these files with lower MACOSX_DEPLOYMENT_TARGET:
  build/bdist.macosx-10.9-x86_64/wheel/topologic/topologic.cpython-310-darwin.so[WARNING] This wheel needs a higher macOS version than the version your Python interpreter is compiled against.  To silence this warning, set MACOSX_DEPLOYMENT_TARGET to at least 13_0 or recreate these files with lower MACOSX_DEPLOYMENT_TARGET:
  build/bdist.macosx-10.9-x86_64/wheel/topologic/topologic.cpython-310-darwin.socreating build/bdist.macosx-10.9-x86_64/wheel/topologic-3.0.0.dist-info/WHEEL
  creating '/private/var/folders/jg/8nz0xtdx23x4l7fvjqkf0n5c0000gn/T/pip-wheel-500_8xv3/topologic-3.0.0-cp310-cp310-macosx_13_0_x86_64.whl' and adding 'build/bdist.macosx-10.9-x86_64/wheel' to it
  adding '.DS_Store'
  adding 'topologic/__init__.py'
  adding 'topologic/topologic.cpython-310-darwin.so'
  adding 'topologic-3.0.0.dist-info/METADATA'
  adding 'topologic-3.0.0.dist-info/WHEEL'
  adding 'topologic-3.0.0.dist-info/top_level.txt'
  adding 'topologic-3.0.0.dist-info/RECORD'
  removing build/bdist.macosx-10.9-x86_64/wheel
  Building wheel for topologic (setup.py) ... done
  Created wheel for topologic: filename=topologic-3.0.0-cp310-cp310-macosx_13_0_x86_64.whl size=673433 sha256=f7cfbd1e0fabe653598e403017a54fff78e1934d6051971105ed43034ba1f02a
  Stored in directory: /private/var/folders/jg/8nz0xtdx23x4l7fvjqkf0n5c0000gn/T/pip-ephem-wheel-cache-lofzh14a/wheels/f7/83/21/f169dde701e5e96c01ab7c78da56773fd6ffe58c16d059d312
Successfully built topologic
Traceback (most recent call last):
  File "/Users/sahil/code/Topologic/TopologicPythonBindings/build_macos.py", line 29, in <module>
    wheel = find_wheel(os.path.join(os.curdir, "dist"), "topologic")
  File "/Users/sahil/code/Topologic/TopologicPythonBindings/build_macos.py", line 17, in find_wheel
    raise FileNotFoundError(f"{wheel_pattern}")
FileNotFoundError: topologic-*-*310-*macosx_10_9_x86_64.whl

Breaks with opencascade-7.7.0: error: use of undeclared identifier 'BRepBndLib'

[ 79% 43/53] /usr/bin/c++ -DNDEBUG -DTOPOLOGICCORE_EXPORTS -DTopologicCore_EXPORTS -D_MBCS -D_WINDLL -I/wrkdirs/usr/ports/math/topologic/work/Topologic-0.6.0/TopologicCore/include -I/usr/local/include/OpenCASCADE -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/include -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/include  -DNDEBUG -flto=thin -fPIC -std=gnu++14 -MD -MT TopologicCore/CMakeFiles/TopologicCore.dir/src/Utilities/CellUtility.cpp.o -MF TopologicCore/CMakeFiles/TopologicCore.dir/src/Utilities/CellUtility.cpp.o.d -o TopologicCore/CMakeFiles/TopologicCore.dir/src/Utilities/CellUtility.cpp.o -c /wrkdirs/usr/ports/math/topologic/work/Topologic-0.6.0/TopologicCore/src/Utilities/CellUtility.cpp
FAILED: TopologicCore/CMakeFiles/TopologicCore.dir/src/Utilities/CellUtility.cpp.o 
/usr/bin/c++ -DNDEBUG -DTOPOLOGICCORE_EXPORTS -DTopologicCore_EXPORTS -D_MBCS -D_WINDLL -I/wrkdirs/usr/ports/math/topologic/work/Topologic-0.6.0/TopologicCore/include -I/usr/local/include/OpenCASCADE -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/include -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing  -isystem /usr/local/include  -DNDEBUG -flto=thin -fPIC -std=gnu++14 -MD -MT TopologicCore/CMakeFiles/TopologicCore.dir/src/Utilities/CellUtility.cpp.o -MF TopologicCore/CMakeFiles/TopologicCore.dir/src/Utilities/CellUtility.cpp.o.d -o TopologicCore/CMakeFiles/TopologicCore.dir/src/Utilities/CellUtility.cpp.o -c /wrkdirs/usr/ports/math/topologic/work/Topologic-0.6.0/TopologicCore/src/Utilities/CellUtility.cpp
/wrkdirs/usr/ports/math/topologic/work/Topologic-0.6.0/TopologicCore/src/Utilities/CellUtility.cpp:254:3: error: use of undeclared identifier 'BRepBndLib'
                BRepBndLib::Add(kpCell->GetOcctShape(), occtBoundingBox);
                ^
1 error generated.

Version: 0.6.0
clang-14
FreeBSD 13.1

installation on Linux

Could someone help me explaining the installation process for archlinux? is there an AUR package available?

Compile failure with pybind11 2.10.0

Transferring this bug report from #34

When trying to compile the Python bindings using pybind11 2.10.0, it fails at this point:

/src/Attribute.cppwg.cpp:16:9: error: void value not ignored as it ought to be
   16 |         PYBIND11_OVERLOAD_PURE(
      |         ^~~~~~~~~~~~~~~~~~~~~~

2.9.2 is ok

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.