Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions PoissonRecon.pro
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
QT -= core gui
INCLUDEPATH -= .

### begin mac specific part #################
# On OSX xcode clang does NOT support OpenMP.
# Use these two lines if you installed an alternative clang with macport
# (something like 'sudo port install clang-3.9')
# Note that on osx qtcreator could have just a vanilla path environment,
# so, if using the below option fails to find the port-installed compiler you should
# add the port bin folder to the qtcreator environment path
# (adding something like PATH="/opt/local/bin:/opt/local/sbin:$PATH" )
macx:QMAKE_CXX = clang++-mp-3.9
macx:QMAKE_LFLAGS += -L/opt/local/lib/libomp -lomp

# Use this if you want to use the standard clang distributed with xcode
# macx:QMAKE_CXXFLAGS-= -fopenmp

# Mac specific Config required to avoid to make application bundles
CONFIG -= app_bundle
### end of mac specific part #################

QMAKE_CXXFLAGS+=-fopenmp -Wsign-compare -O3 -DRELEASE -funroll-loops -ffast-math

CONFIG += console warn_off
TEMPLATE = app

SOURCES += Src/PoissonRecon.cpp \
Src/MarchingCubes.cpp \
Src/PlyFile.cpp \
Src/CmdLineParser.cpp \
Src/Factor.cpp \
Src/Geometry.cpp


TARGET=PoissonRecon

4 changes: 3 additions & 1 deletion Src/MultiGridOctreeData.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,9 @@ DAMAGE.
#define MAX_MEMORY_GB 0

#include <unordered_map>
#ifdef _OPENMP
#include <omp.h>
#endif // _OPENMP
#include "BSplineData.h"
#include "PointStream.h"
#include "Geometry.h"
Expand Down Expand Up @@ -336,7 +338,7 @@ struct DenseNodeData
Data& operator[]( const OctNode< TreeNodeData >* node ) { return _data[ node->nodeData.nodeIndex ]; }
Data* operator()( const OctNode< TreeNodeData >* node ) { return ( node==NULL || node->nodeData.nodeIndex>=(int)_sz ) ? NULL : &_data[ node->nodeData.nodeIndex ]; }
const Data* operator()( const OctNode< TreeNodeData >* node ) const { return ( node==NULL || node->nodeData.nodeIndex>=(int)_sz ) ? NULL : &_data[ node->nodeData.nodeIndex ]; }
int index( const OctNode< TreeNodeData >* node ) const { return ( !node || node->nodeData.nodeIndex<0 || node->nodeData.nodeIndex>=(int)_data.size() ) ? -1 : node->nodeData.nodeIndex; }
int index( const OctNode< TreeNodeData >* node ) const { return ( !node || node->nodeData.nodeIndex<0 || node->nodeData.nodeIndex>=(int)this->_data.size() ) ? -1 : node->nodeData.nodeIndex; }
protected:
size_t _sz;
void _resize( size_t sz ){ DeletePointer( _data ) ; if( sz ) _data = NewPointer< Data >( sz ) ; else _data = NullPointer( Data ) ; _sz = sz; }
Expand Down