Code Monkey home page Code Monkey logo

voxel-io's Introduction

voxel-io

voxel-io is a C++17, MIT-licensed library for reading and writing various voxel formats. It also comes with various useful C++ utilities for math, bit-manipulation, logging, asserts and more.

voxel-io is lightweight in the sense that STL-includes are heavily optimized and only used where absolutely necessary. No third party dependencies exist, only single-header libraries (lodepng, miniz-cpp) were used.

Top-Level Structure

All sources can be found in src/. Headers can be found in include. src/format contains the readers/writers for various voxel formats.

src/3rd_party contains third-party libraries. These are implementation details and using them through voxel-io is not safe. They might be changed by voxel-io or they might be removed entirely in the future.

Build

To build using CMake:

mkdir build
cd build
cmake .. # -DCMAKE_BUILD_TYPE=DEBUG for debug builds, otherwise release is default
make # -j NUMBER_OF_THREADS

voxel-io should build in about 1-2 seconds with multithreading.

voxel-io's People

Contributors

eisenwave avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

voxel-io's Issues

Build Error on LInux Fedora gcc 11

Hey,

on testing this vox implementation i hit this Problem on Linux

-- The C compiler identification is GNU 11.0.1
-- The CXX compiler identification is GNU 11.0.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
Building voxel-io RELEASE
-- Configuring done
-- Generating don
Scanning dependencies of target voxelio
[  1%] Building CXX object src/CMakeFiles/voxelio.dir/assert.cpp.o
/home/arpu/Work/githubsources/voxel-io/src/assert.cpp: In Funktion »void voxelio::defaultAssertHandler()«:
/home/arpu/Work/githubsources/voxel-io/src/assert.cpp:13:10: Fehler: »terminate« ist kein Element von »std«; meinten Sie »hermite«?
   13 |     std::terminate();
      |          ^~~~~~~~~
      |          hermite
/home/arpu/Work/githubsources/voxel-io/src/assert.cpp:14:1: Warnung: »noreturn«-Funktion kehrt zurück
   14 | }
      | ^
make[2]: *** [src/CMakeFiles/voxelio.dir/build.make:82: src/CMakeFiles/voxelio.dir/assert.cpp.o] Fehler 1
make[1]: *** [CMakeFiles/Makefile2:175: src/CMakeFiles/voxelio.dir/all] Fehler 2
make: *** [Makefile:103: all] Fehler 2
❯ LANG=en
❯ make
[  1%] Building CXX object src/CMakeFiles/voxelio.dir/assert.cpp.o
/home/arpu/Work/githubsources/voxel-io/src/assert.cpp: In function 'void voxelio::defaultAssertHandler()':
/home/arpu/Work/githubsources/voxel-io/src/assert.cpp:13:10: error: 'terminate' is not a member of 'std'; did you mean 'hermite'?
   13 |     std::terminate();
      |          ^~~~~~~~~
      |          hermite
/home/arpu/Work/githubsources/voxel-io/src/assert.cpp:14:1: warning: 'noreturn' function does return
   14 | }
      | ^
make[2]: *** [src/CMakeFiles/voxelio.dir/build.make:82: src/CMakeFiles/voxelio.dir/assert.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:175: src/CMakeFiles/voxelio.dir/all] Error 2
make: *** [Makefile:103: all] Error 2

Compilation error with MSVC

When compiling obj2voxel I get the following error message. Any idea how to solve this?

..\obj2voxel\voxelio\include\voxelio\vec.hpp(53): error C2440: 'static_cast': cannot convert from '_Ty ' to 'T'
with
[
_Ty=tinyobj::real_t
]
and
[
T=float
]
..\obj2voxel\voxelio\include\voxelio\vec.hpp(53): note: There is no context in which this conversion is possible
......\main.cpp(114): note: see reference to function template instantiation 'voxelio::Vec<float,3>::Vec<_Ty
,0>(_Ty )' being compiled
with
[
_Ty=tinyobj::real_t
]
......\main.cpp(114): note: see reference to function template instantiation 'voxelio::Vec<float,3>::Vec<_Ty
,0>(_Ty *)' being compiled
with
[
_Ty=tinyobj::real_t
]

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.