├── .gitignore ├── README.md ├── copyfiles.py ├── example-empty ├── .gitignore ├── Project.xcconfig ├── bin │ └── data │ │ └── .gitignore ├── example-empty.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ └── contents.xcworkspacedata │ └── xcshareddata │ │ └── xcschemes │ │ ├── Debug.xcscheme │ │ └── Release.xcscheme ├── openFrameworks-Info.plist └── src │ ├── main.cpp │ ├── testApp.cpp │ └── testApp.h ├── example-extract-indices ├── CMakeLists.txt ├── Project.xcconfig ├── bin │ └── data │ │ └── .gitignore ├── example-extract-indices.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ └── contents.xcworkspacedata │ └── xcshareddata │ │ └── xcschemes │ │ ├── Debug.xcscheme │ │ └── Release.xcscheme ├── openFrameworks-Info.plist └── src │ ├── main.cpp │ ├── testApp.cpp │ └── testApp.h ├── example-greedy-projection ├── CMakeLists.txt ├── Project.xcconfig ├── bin │ └── data │ │ └── .gitignore ├── example-greedy-projection.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ └── contents.xcworkspacedata │ └── xcshareddata │ │ └── xcschemes │ │ ├── Debug.xcscheme │ │ └── Release.xcscheme ├── openFrameworks-Info.plist └── src │ ├── main.cpp │ ├── testApp.cpp │ └── testApp.h ├── example-resampling ├── CMakeLists.txt ├── Project.xcconfig ├── bin │ └── data │ │ └── .gitignore ├── example-resampling.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ └── contents.xcworkspacedata │ └── xcshareddata │ │ └── xcschemes │ │ ├── Debug.xcscheme │ │ └── Release.xcscheme ├── openFrameworks-Info.plist └── src │ ├── main.cpp │ ├── testApp.cpp │ └── testApp.h ├── example-statistical-removal ├── CMakeLists.txt ├── Project.xcconfig ├── bin │ └── data │ │ └── .gitignore ├── example-statistical-removal.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ └── contents.xcworkspacedata │ └── xcshareddata │ │ └── xcschemes │ │ ├── Debug.xcscheme │ │ └── Release.xcscheme ├── openFrameworks-Info.plist └── src │ ├── main.cpp │ ├── testApp.cpp │ └── testApp.h ├── example-voxel-grid ├── CMakeLists.txt ├── Project.xcconfig ├── bin │ └── data │ │ └── .gitignore ├── example-voxel-grid.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ └── contents.xcworkspacedata │ └── xcshareddata │ │ └── xcschemes │ │ ├── Debug.xcscheme │ │ └── Release.xcscheme ├── openFrameworks-Info.plist └── src │ ├── main.cpp │ ├── testApp.cpp │ └── testApp.h ├── libs └── .gitignore └── src ├── Tree.h ├── Types.h ├── Utility.cpp ├── Utility.h ├── ofxPCL.cpp └── ofxPCL.h /.gitignore: -------------------------------------------------------------------------------- 1 | .svn 2 | .hg 3 | .cvs 4 | 5 | # osx 6 | *.app 7 | *.mode1v3 8 | *.pbxuser 9 | .DS_Store 10 | build 11 | xcuserdata 12 | DerivedData 13 | 14 | # ofxPCL 15 | deps 16 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Setup instruction (OS X) 2 | 3 | 1. Get dependencies (96.9 MB) and extract them to ofxPCL folder. 4 | 5 | $ curl -O -L http://cl.ly/1D1Q3G072q3D/download/ofxpcl_16_libs.zip 6 | $ unzip ofxpcl_16_libs.zip 7 | 8 | 9 | 1. Change `Project.xcconfig` like 10 | 11 | OFXPCL_PATH = $(OF_PATH)/addons/ofxPCL 12 | 13 | OFXPCL_OTHER_LDFLAGS = -L$(OFXPCL_PATH)/libs/pcl/lib/osx -lpcl_common -lpcl_features -lpcl_filters -lpcl_geometry -lpcl_io -lpcl_io_ply -lpcl_kdtree -lpcl_keypoints -lpcl_octree -lpcl_registration -lpcl_sample_consensus -lpcl_search -lpcl_segmentation -lpcl_surface -lpcl_tracking -lqhull 14 | 15 | OFXPCL_HEADER_SEARCH_PATHS = $(OFXPCL_PATH)/libs/pcl/include/ $(OFXPCL_PATH)/libs/pcl/include/eigen3 $(OFXPCL_PATH)/libs/pcl/include/pcl-1.6 16 | 17 | OFXPCL_LD_RUNPATH_SEARCH_PATHS = @executable_path/../../../../../../../addons/ofxPCL/libs/pcl/lib/osx @executable_path/../../../data/pcl/lib 18 | 19 | LD_RUNPATH_SEARCH_PATHS = $(OFXPCL_LD_RUNPATH_SEARCH_PATHS) 20 | 21 | OTHER_LDFLAGS = $(OF_CORE_LIBS) $(OFXPCL_OTHER_LDFLAGS) 22 | HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS) $(OFXPCL_HEADER_SEARCH_PATHS) 23 | 24 | 1. Add ofxPCL/src filder to Xcode project. 25 | 26 | 1. Copy libraries to data folder 27 | 28 | $ python copyfiles.py PATH_TO_YOUR_PROJECT 29 | -------------------------------------------------------------------------------- /copyfiles.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import sys 4 | import os 5 | import shutil 6 | 7 | if not sys.platform in ['darwin']: 8 | sys.exit(-1) 9 | 10 | if len(sys.argv) != 2: 11 | print '$ copylibs.py [PATH_TO_YOUR_OF_PROJECT]' 12 | sys.exit(1) 13 | 14 | target_path = os.path.abspath(sys.argv[1]) 15 | os.chdir(os.path.dirname(sys.argv[0])) 16 | 17 | if not os.path.exists(target_path): 18 | print 'err: project dir not found' 19 | sys.exit(-1) 20 | 21 | lib_base_path = 'libs/pcl/lib/osx' 22 | lib_target_path = os.path.join(target_path, 'bin/data/pcl/lib') 23 | 24 | print 'target_project =', target_path 25 | 26 | if not os.path.exists(lib_target_path): 27 | os.makedirs(lib_target_path) 28 | 29 | for i in os.listdir(lib_base_path): 30 | if not i.endswith('.dylib'): continue 31 | src = os.path.join(lib_base_path, i) 32 | dst = os.path.join(lib_target_path, i) 33 | print 'copy %s => %s' % (i, dst) 34 | 35 | shutil.copy(src, lib_target_path) 36 | -------------------------------------------------------------------------------- /example-empty/.gitignore: -------------------------------------------------------------------------------- 1 | .svn 2 | .hg 3 | .cvs 4 | 5 | # osx 6 | *.app 7 | *.mode1v3 8 | *.pbxuser 9 | .DS_Store 10 | build/ 11 | xcuserdata/ 12 | DerivedData/ 13 | project.xcworkspace 14 | 15 | # vs2010 16 | ipch/ 17 | obj/ 18 | *.sdf 19 | -------------------------------------------------------------------------------- /example-empty/Project.xcconfig: -------------------------------------------------------------------------------- 1 | //THE PATH TO THE ROOT OF OUR OF PATH RELATIVE TO THIS PROJECT. 2 | //THIS NEEDS TO BE DEFINED BEFORE CoreOF.xcconfig IS INCLUDED 3 | OF_PATH = ../../.. 4 | 5 | //THIS HAS ALL THE HEADER AND LIBS FOR OF CORE 6 | #include "../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig" 7 | 8 | OFXPCL_PATH = $(OF_PATH)/addons/ofxPCL 9 | 10 | OFXPCL_OTHER_LDFLAGS = -L$(OFXPCL_PATH)/libs/pcl/lib/osx -lpcl_common -lpcl_features -lpcl_filters -lpcl_geometry -lpcl_io -lpcl_io_ply -lpcl_kdtree -lpcl_keypoints -lpcl_octree -lpcl_registration -lpcl_sample_consensus -lpcl_search -lpcl_segmentation -lpcl_surface -lpcl_tracking -lqhull 11 | 12 | OFXPCL_HEADER_SEARCH_PATHS = $(OFXPCL_PATH)/libs/pcl/include/ $(OFXPCL_PATH)/libs/pcl/include/eigen3 $(OFXPCL_PATH)/libs/pcl/include/pcl-1.6 13 | 14 | OFXPCL_LD_RUNPATH_SEARCH_PATHS = @executable_path/../../../../../../../addons/ofxPCL/libs/pcl/lib/osx @executable_path/../../../data/pcl/lib 15 | 16 | LD_RUNPATH_SEARCH_PATHS = $(OFXPCL_LD_RUNPATH_SEARCH_PATHS) 17 | 18 | OTHER_LDFLAGS = $(OF_CORE_LIBS) $(OFXPCL_OTHER_LDFLAGS) 19 | HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS) $(OFXPCL_HEADER_SEARCH_PATHS) 20 | -------------------------------------------------------------------------------- /example-empty/bin/data/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in here apart from the .gitignore file 2 | * 3 | !.gitignore -------------------------------------------------------------------------------- /example-empty/example-empty.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 42; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 6019175D16E1E02D00A7FCEB /* ofxPCL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6019175716E1E02D00A7FCEB /* ofxPCL.cpp */; }; 11 | 6019175E16E1E02D00A7FCEB /* Utility.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6019175B16E1E02D00A7FCEB /* Utility.cpp */; }; 12 | BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; }; 13 | E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4328148138ABC890047C5CB /* openFrameworksDebug.a */; }; 14 | E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9710E8CC7DD009D7055 /* AGL.framework */; }; 15 | E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */; }; 16 | E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */; }; 17 | E45BE97E0E8CC7DD009D7055 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9740E8CC7DD009D7055 /* Carbon.framework */; }; 18 | E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */; }; 19 | E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */; }; 20 | E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9770E8CC7DD009D7055 /* CoreServices.framework */; }; 21 | E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9790E8CC7DD009D7055 /* OpenGL.framework */; }; 22 | E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */; }; 23 | E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1D0A3A1BDC003C02F2 /* main.cpp */; }; 24 | E4B69E210A3A1BDC003C02F2 /* testApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */; }; 25 | E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424410CC5A17004149E2 /* AppKit.framework */; }; 26 | E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424510CC5A17004149E2 /* Cocoa.framework */; }; 27 | E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424610CC5A17004149E2 /* IOKit.framework */; }; 28 | E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; }; 29 | E7E077E515D3B63C0020DFD4 /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */; }; 30 | E7E077E815D3B6510020DFD4 /* QTKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7E077E715D3B6510020DFD4 /* QTKit.framework */; }; 31 | E7F985F815E0DEA3003869B5 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7F985F515E0DE99003869B5 /* Accelerate.framework */; }; 32 | /* End PBXBuildFile section */ 33 | 34 | /* Begin PBXContainerItemProxy section */ 35 | E4328147138ABC890047C5CB /* PBXContainerItemProxy */ = { 36 | isa = PBXContainerItemProxy; 37 | containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; 38 | proxyType = 2; 39 | remoteGlobalIDString = E4B27C1510CBEB8E00536013; 40 | remoteInfo = openFrameworks; 41 | }; 42 | E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */ = { 43 | isa = PBXContainerItemProxy; 44 | containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; 45 | proxyType = 1; 46 | remoteGlobalIDString = E4B27C1410CBEB8E00536013; 47 | remoteInfo = openFrameworks; 48 | }; 49 | /* End PBXContainerItemProxy section */ 50 | 51 | /* Begin PBXCopyFilesBuildPhase section */ 52 | E4C2427710CC5ABF004149E2 /* CopyFiles */ = { 53 | isa = PBXCopyFilesBuildPhase; 54 | buildActionMask = 2147483647; 55 | dstPath = ""; 56 | dstSubfolderSpec = 10; 57 | files = ( 58 | BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */, 59 | ); 60 | runOnlyForDeploymentPostprocessing = 0; 61 | }; 62 | /* End PBXCopyFilesBuildPhase section */ 63 | 64 | /* Begin PBXFileReference section */ 65 | 6019175716E1E02D00A7FCEB /* ofxPCL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxPCL.cpp; sourceTree = ""; }; 66 | 6019175816E1E02D00A7FCEB /* ofxPCL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxPCL.h; sourceTree = ""; }; 67 | 6019175916E1E02D00A7FCEB /* Tree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Tree.h; sourceTree = ""; }; 68 | 6019175A16E1E02D00A7FCEB /* Types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Types.h; sourceTree = ""; }; 69 | 6019175B16E1E02D00A7FCEB /* Utility.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Utility.cpp; sourceTree = ""; }; 70 | 6019175C16E1E02D00A7FCEB /* Utility.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utility.h; sourceTree = ""; }; 71 | BBAB23BE13894E4700AA2426 /* GLUT.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLUT.framework; path = ../../../libs/glut/lib/osx/GLUT.framework; sourceTree = ""; }; 72 | E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = openFrameworksLib.xcodeproj; path = ../../../libs/openFrameworksCompiled/project/osx/openFrameworksLib.xcodeproj; sourceTree = SOURCE_ROOT; }; 73 | E45BE9710E8CC7DD009D7055 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = ""; }; 74 | E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = ""; }; 75 | E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = ""; }; 76 | E45BE9740E8CC7DD009D7055 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = ""; }; 77 | E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = ""; }; 78 | E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = ""; }; 79 | E45BE9770E8CC7DD009D7055 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = ""; }; 80 | E45BE9790E8CC7DD009D7055 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = ""; }; 81 | E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = ""; }; 82 | E4B69B5B0A3A1756003C02F2 /* example-emptyDebug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "example-emptyDebug.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 83 | E4B69E1D0A3A1BDC003C02F2 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = src/main.cpp; sourceTree = SOURCE_ROOT; }; 84 | E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = testApp.cpp; path = src/testApp.cpp; sourceTree = SOURCE_ROOT; }; 85 | E4B69E1F0A3A1BDC003C02F2 /* testApp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = testApp.h; path = src/testApp.h; sourceTree = SOURCE_ROOT; }; 86 | E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = "openFrameworks-Info.plist"; sourceTree = ""; }; 87 | E4C2424410CC5A17004149E2 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; 88 | E4C2424510CC5A17004149E2 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; 89 | E4C2424610CC5A17004149E2 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = ""; }; 90 | E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = CoreOF.xcconfig; path = ../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig; sourceTree = SOURCE_ROOT; }; 91 | E4EB6923138AFD0F00A09F29 /* Project.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Project.xcconfig; sourceTree = ""; }; 92 | E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = /System/Library/Frameworks/CoreVideo.framework; sourceTree = ""; }; 93 | E7E077E715D3B6510020DFD4 /* QTKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = /System/Library/Frameworks/QTKit.framework; sourceTree = ""; }; 94 | E7F985F515E0DE99003869B5 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = /System/Library/Frameworks/Accelerate.framework; sourceTree = ""; }; 95 | /* End PBXFileReference section */ 96 | 97 | /* Begin PBXFrameworksBuildPhase section */ 98 | E4B69B590A3A1756003C02F2 /* Frameworks */ = { 99 | isa = PBXFrameworksBuildPhase; 100 | buildActionMask = 2147483647; 101 | files = ( 102 | E7F985F815E0DEA3003869B5 /* Accelerate.framework in Frameworks */, 103 | E7E077E815D3B6510020DFD4 /* QTKit.framework in Frameworks */, 104 | E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */, 105 | E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */, 106 | E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */, 107 | E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */, 108 | E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */, 109 | E45BE97E0E8CC7DD009D7055 /* Carbon.framework in Frameworks */, 110 | E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */, 111 | E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */, 112 | E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */, 113 | E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */, 114 | E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */, 115 | E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */, 116 | E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */, 117 | E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */, 118 | E7E077E515D3B63C0020DFD4 /* CoreVideo.framework in Frameworks */, 119 | ); 120 | runOnlyForDeploymentPostprocessing = 0; 121 | }; 122 | /* End PBXFrameworksBuildPhase section */ 123 | 124 | /* Begin PBXGroup section */ 125 | 6019175516E1E02500A7FCEB /* ofxPCL */ = { 126 | isa = PBXGroup; 127 | children = ( 128 | 6019175616E1E02D00A7FCEB /* src */, 129 | ); 130 | name = ofxPCL; 131 | sourceTree = ""; 132 | }; 133 | 6019175616E1E02D00A7FCEB /* src */ = { 134 | isa = PBXGroup; 135 | children = ( 136 | 6019175716E1E02D00A7FCEB /* ofxPCL.cpp */, 137 | 6019175816E1E02D00A7FCEB /* ofxPCL.h */, 138 | 6019175916E1E02D00A7FCEB /* Tree.h */, 139 | 6019175A16E1E02D00A7FCEB /* Types.h */, 140 | 6019175B16E1E02D00A7FCEB /* Utility.cpp */, 141 | 6019175C16E1E02D00A7FCEB /* Utility.h */, 142 | ); 143 | name = src; 144 | path = ../src; 145 | sourceTree = ""; 146 | }; 147 | BB4B014C10F69532006C3DED /* addons */ = { 148 | isa = PBXGroup; 149 | children = ( 150 | 6019175516E1E02500A7FCEB /* ofxPCL */, 151 | ); 152 | name = addons; 153 | sourceTree = ""; 154 | }; 155 | BBAB23C913894ECA00AA2426 /* system frameworks */ = { 156 | isa = PBXGroup; 157 | children = ( 158 | E7F985F515E0DE99003869B5 /* Accelerate.framework */, 159 | E4C2424410CC5A17004149E2 /* AppKit.framework */, 160 | E4C2424510CC5A17004149E2 /* Cocoa.framework */, 161 | E4C2424610CC5A17004149E2 /* IOKit.framework */, 162 | E45BE9710E8CC7DD009D7055 /* AGL.framework */, 163 | E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */, 164 | E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */, 165 | E45BE9740E8CC7DD009D7055 /* Carbon.framework */, 166 | E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */, 167 | E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */, 168 | E45BE9770E8CC7DD009D7055 /* CoreServices.framework */, 169 | E45BE9790E8CC7DD009D7055 /* OpenGL.framework */, 170 | E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */, 171 | E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */, 172 | E7E077E715D3B6510020DFD4 /* QTKit.framework */, 173 | ); 174 | name = "system frameworks"; 175 | sourceTree = ""; 176 | }; 177 | BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */ = { 178 | isa = PBXGroup; 179 | children = ( 180 | BBAB23BE13894E4700AA2426 /* GLUT.framework */, 181 | ); 182 | name = "3rd party frameworks"; 183 | sourceTree = ""; 184 | }; 185 | E4328144138ABC890047C5CB /* Products */ = { 186 | isa = PBXGroup; 187 | children = ( 188 | E4328148138ABC890047C5CB /* openFrameworksDebug.a */, 189 | ); 190 | name = Products; 191 | sourceTree = ""; 192 | }; 193 | E45BE5980E8CC70C009D7055 /* frameworks */ = { 194 | isa = PBXGroup; 195 | children = ( 196 | BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */, 197 | BBAB23C913894ECA00AA2426 /* system frameworks */, 198 | ); 199 | name = frameworks; 200 | sourceTree = ""; 201 | }; 202 | E4B69B4A0A3A1720003C02F2 = { 203 | isa = PBXGroup; 204 | children = ( 205 | E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */, 206 | E4EB6923138AFD0F00A09F29 /* Project.xcconfig */, 207 | E4B69E1C0A3A1BDC003C02F2 /* src */, 208 | E4EEC9E9138DF44700A80321 /* openFrameworks */, 209 | BB4B014C10F69532006C3DED /* addons */, 210 | E45BE5980E8CC70C009D7055 /* frameworks */, 211 | E4B69B5B0A3A1756003C02F2 /* example-emptyDebug.app */, 212 | ); 213 | sourceTree = ""; 214 | }; 215 | E4B69E1C0A3A1BDC003C02F2 /* src */ = { 216 | isa = PBXGroup; 217 | children = ( 218 | E4B69E1D0A3A1BDC003C02F2 /* main.cpp */, 219 | E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */, 220 | E4B69E1F0A3A1BDC003C02F2 /* testApp.h */, 221 | ); 222 | path = src; 223 | sourceTree = SOURCE_ROOT; 224 | }; 225 | E4EEC9E9138DF44700A80321 /* openFrameworks */ = { 226 | isa = PBXGroup; 227 | children = ( 228 | E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */, 229 | E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */, 230 | ); 231 | name = openFrameworks; 232 | sourceTree = ""; 233 | }; 234 | /* End PBXGroup section */ 235 | 236 | /* Begin PBXNativeTarget section */ 237 | E4B69B5A0A3A1756003C02F2 /* example-empty */ = { 238 | isa = PBXNativeTarget; 239 | buildConfigurationList = E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "example-empty" */; 240 | buildPhases = ( 241 | E4B69B580A3A1756003C02F2 /* Sources */, 242 | E4B69B590A3A1756003C02F2 /* Frameworks */, 243 | E4B6FFFD0C3F9AB9008CF71C /* ShellScript */, 244 | E4C2427710CC5ABF004149E2 /* CopyFiles */, 245 | ); 246 | buildRules = ( 247 | ); 248 | dependencies = ( 249 | E4EEB9AC138B136A00A80321 /* PBXTargetDependency */, 250 | ); 251 | name = "example-empty"; 252 | productName = myOFApp; 253 | productReference = E4B69B5B0A3A1756003C02F2 /* example-emptyDebug.app */; 254 | productType = "com.apple.product-type.application"; 255 | }; 256 | /* End PBXNativeTarget section */ 257 | 258 | /* Begin PBXProject section */ 259 | E4B69B4C0A3A1720003C02F2 /* Project object */ = { 260 | isa = PBXProject; 261 | buildConfigurationList = E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "example-empty" */; 262 | compatibilityVersion = "Xcode 2.4"; 263 | developmentRegion = English; 264 | hasScannedForEncodings = 0; 265 | knownRegions = ( 266 | English, 267 | Japanese, 268 | French, 269 | German, 270 | ); 271 | mainGroup = E4B69B4A0A3A1720003C02F2; 272 | productRefGroup = E4B69B4A0A3A1720003C02F2; 273 | projectDirPath = ""; 274 | projectReferences = ( 275 | { 276 | ProductGroup = E4328144138ABC890047C5CB /* Products */; 277 | ProjectRef = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; 278 | }, 279 | ); 280 | projectRoot = ""; 281 | targets = ( 282 | E4B69B5A0A3A1756003C02F2 /* example-empty */, 283 | ); 284 | }; 285 | /* End PBXProject section */ 286 | 287 | /* Begin PBXReferenceProxy section */ 288 | E4328148138ABC890047C5CB /* openFrameworksDebug.a */ = { 289 | isa = PBXReferenceProxy; 290 | fileType = archive.ar; 291 | path = openFrameworksDebug.a; 292 | remoteRef = E4328147138ABC890047C5CB /* PBXContainerItemProxy */; 293 | sourceTree = BUILT_PRODUCTS_DIR; 294 | }; 295 | /* End PBXReferenceProxy section */ 296 | 297 | /* Begin PBXShellScriptBuildPhase section */ 298 | E4B6FFFD0C3F9AB9008CF71C /* ShellScript */ = { 299 | isa = PBXShellScriptBuildPhase; 300 | buildActionMask = 2147483647; 301 | files = ( 302 | ); 303 | inputPaths = ( 304 | ); 305 | outputPaths = ( 306 | ); 307 | runOnlyForDeploymentPostprocessing = 0; 308 | shellPath = /bin/sh; 309 | shellScript = "cp -f ../../../libs/fmodex/lib/osx/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/libfmodex.dylib\"; install_name_tool -change ./libfmodex.dylib @executable_path/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME\";"; 310 | }; 311 | /* End PBXShellScriptBuildPhase section */ 312 | 313 | /* Begin PBXSourcesBuildPhase section */ 314 | E4B69B580A3A1756003C02F2 /* Sources */ = { 315 | isa = PBXSourcesBuildPhase; 316 | buildActionMask = 2147483647; 317 | files = ( 318 | E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */, 319 | E4B69E210A3A1BDC003C02F2 /* testApp.cpp in Sources */, 320 | 6019175D16E1E02D00A7FCEB /* ofxPCL.cpp in Sources */, 321 | 6019175E16E1E02D00A7FCEB /* Utility.cpp in Sources */, 322 | ); 323 | runOnlyForDeploymentPostprocessing = 0; 324 | }; 325 | /* End PBXSourcesBuildPhase section */ 326 | 327 | /* Begin PBXTargetDependency section */ 328 | E4EEB9AC138B136A00A80321 /* PBXTargetDependency */ = { 329 | isa = PBXTargetDependency; 330 | name = openFrameworks; 331 | targetProxy = E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */; 332 | }; 333 | /* End PBXTargetDependency section */ 334 | 335 | /* Begin XCBuildConfiguration section */ 336 | E4B69B4E0A3A1720003C02F2 /* Debug */ = { 337 | isa = XCBuildConfiguration; 338 | baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; 339 | buildSettings = { 340 | ARCHS = "$(NATIVE_ARCH)"; 341 | CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/"; 342 | COPY_PHASE_STRIP = NO; 343 | DEAD_CODE_STRIPPING = YES; 344 | GCC_AUTO_VECTORIZATION = YES; 345 | GCC_ENABLE_SSE3_EXTENSIONS = YES; 346 | GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; 347 | GCC_INLINES_ARE_PRIVATE_EXTERN = NO; 348 | GCC_OPTIMIZATION_LEVEL = 0; 349 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 350 | GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES; 351 | GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; 352 | GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO; 353 | GCC_WARN_UNINITIALIZED_AUTOS = NO; 354 | GCC_WARN_UNUSED_VALUE = NO; 355 | GCC_WARN_UNUSED_VARIABLE = NO; 356 | OTHER_CPLUSPLUSFLAGS = ( 357 | "-D__MACOSX_CORE__", 358 | "-lpthread", 359 | "-mtune=native", 360 | ); 361 | SDKROOT = macosx; 362 | }; 363 | name = Debug; 364 | }; 365 | E4B69B4F0A3A1720003C02F2 /* Release */ = { 366 | isa = XCBuildConfiguration; 367 | baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; 368 | buildSettings = { 369 | ARCHS = "$(NATIVE_ARCH)"; 370 | CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/"; 371 | COPY_PHASE_STRIP = YES; 372 | DEAD_CODE_STRIPPING = YES; 373 | GCC_AUTO_VECTORIZATION = YES; 374 | GCC_ENABLE_SSE3_EXTENSIONS = YES; 375 | GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; 376 | GCC_INLINES_ARE_PRIVATE_EXTERN = NO; 377 | GCC_OPTIMIZATION_LEVEL = 3; 378 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 379 | GCC_UNROLL_LOOPS = YES; 380 | GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES; 381 | GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; 382 | GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO; 383 | GCC_WARN_UNINITIALIZED_AUTOS = NO; 384 | GCC_WARN_UNUSED_VALUE = NO; 385 | GCC_WARN_UNUSED_VARIABLE = NO; 386 | OTHER_CPLUSPLUSFLAGS = ( 387 | "-D__MACOSX_CORE__", 388 | "-lpthread", 389 | "-mtune=native", 390 | ); 391 | SDKROOT = macosx; 392 | }; 393 | name = Release; 394 | }; 395 | E4B69B600A3A1757003C02F2 /* Debug */ = { 396 | isa = XCBuildConfiguration; 397 | buildSettings = { 398 | COPY_PHASE_STRIP = NO; 399 | FRAMEWORK_SEARCH_PATHS = ( 400 | "$(inherited)", 401 | "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 402 | ); 403 | FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\""; 404 | GCC_DYNAMIC_NO_PIC = NO; 405 | GCC_ENABLE_FIX_AND_CONTINUE = YES; 406 | GCC_GENERATE_DEBUGGING_SYMBOLS = YES; 407 | GCC_MODEL_TUNING = NONE; 408 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 409 | GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h"; 410 | INFOPLIST_FILE = "openFrameworks-Info.plist"; 411 | INSTALL_PATH = "$(HOME)/Applications"; 412 | LIBRARY_SEARCH_PATHS = ( 413 | "$(inherited)", 414 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 415 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 416 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 417 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)", 418 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)", 419 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)", 420 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 421 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 422 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 423 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 424 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 425 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 426 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 427 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)", 428 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)", 429 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 430 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 431 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 432 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 433 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 434 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 435 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 436 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 437 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 438 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)", 439 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)", 440 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)", 441 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)", 442 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)", 443 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)", 444 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)", 445 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)", 446 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)", 447 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)", 448 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)", 449 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)", 450 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)", 451 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)", 452 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)", 453 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)", 454 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)", 455 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)", 456 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)", 457 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)", 458 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)", 459 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)", 460 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)", 461 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)", 462 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)", 463 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)", 464 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)", 465 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)", 466 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)", 467 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)", 468 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)", 469 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)", 470 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)", 471 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)", 472 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)", 473 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)", 474 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_52)", 475 | ); 476 | PREBINDING = NO; 477 | PRODUCT_NAME = "example-emptyDebug"; 478 | WRAPPER_EXTENSION = app; 479 | }; 480 | name = Debug; 481 | }; 482 | E4B69B610A3A1757003C02F2 /* Release */ = { 483 | isa = XCBuildConfiguration; 484 | buildSettings = { 485 | COPY_PHASE_STRIP = YES; 486 | FRAMEWORK_SEARCH_PATHS = ( 487 | "$(inherited)", 488 | "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 489 | ); 490 | FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\""; 491 | GCC_ENABLE_FIX_AND_CONTINUE = NO; 492 | GCC_GENERATE_DEBUGGING_SYMBOLS = YES; 493 | GCC_MODEL_TUNING = NONE; 494 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 495 | GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h"; 496 | INFOPLIST_FILE = "openFrameworks-Info.plist"; 497 | INSTALL_PATH = "$(HOME)/Applications"; 498 | LIBRARY_SEARCH_PATHS = ( 499 | "$(inherited)", 500 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 501 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 502 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 503 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)", 504 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)", 505 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)", 506 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 507 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 508 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 509 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 510 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 511 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 512 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 513 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)", 514 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)", 515 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 516 | "$(LIBRARY_SEARCH_PATHS_QUOTED_1)", 517 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 518 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 519 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 520 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 521 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 522 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 523 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 524 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 525 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)", 526 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)", 527 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)", 528 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)", 529 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)", 530 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)", 531 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)", 532 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)", 533 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)", 534 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)", 535 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)", 536 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)", 537 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)", 538 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)", 539 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)", 540 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)", 541 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)", 542 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)", 543 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)", 544 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)", 545 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)", 546 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)", 547 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)", 548 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)", 549 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)", 550 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)", 551 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)", 552 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)", 553 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)", 554 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)", 555 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)", 556 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)", 557 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)", 558 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)", 559 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)", 560 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)", 561 | ); 562 | PREBINDING = NO; 563 | PRODUCT_NAME = "example-empty"; 564 | WRAPPER_EXTENSION = app; 565 | }; 566 | name = Release; 567 | }; 568 | /* End XCBuildConfiguration section */ 569 | 570 | /* Begin XCConfigurationList section */ 571 | E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "example-empty" */ = { 572 | isa = XCConfigurationList; 573 | buildConfigurations = ( 574 | E4B69B4E0A3A1720003C02F2 /* Debug */, 575 | E4B69B4F0A3A1720003C02F2 /* Release */, 576 | ); 577 | defaultConfigurationIsVisible = 0; 578 | defaultConfigurationName = Release; 579 | }; 580 | E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "example-empty" */ = { 581 | isa = XCConfigurationList; 582 | buildConfigurations = ( 583 | E4B69B600A3A1757003C02F2 /* Debug */, 584 | E4B69B610A3A1757003C02F2 /* Release */, 585 | ); 586 | defaultConfigurationIsVisible = 0; 587 | defaultConfigurationName = Release; 588 | }; 589 | /* End XCConfigurationList section */ 590 | }; 591 | rootObject = E4B69B4C0A3A1720003C02F2 /* Project object */; 592 | } 593 | -------------------------------------------------------------------------------- /example-empty/example-empty.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /example-empty/example-empty.xcodeproj/xcshareddata/xcschemes/Debug.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 14 | 20 | 21 | 22 | 23 | 24 | 29 | 30 | 31 | 32 | 38 | 39 | 40 | 41 | 50 | 51 | 57 | 58 | 59 | 60 | 61 | 62 | 68 | 69 | 75 | 76 | 77 | 78 | 80 | 81 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /example-empty/example-empty.xcodeproj/xcshareddata/xcschemes/Release.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 14 | 20 | 21 | 22 | 23 | 24 | 29 | 30 | 31 | 32 | 38 | 39 | 40 | 41 | 50 | 51 | 57 | 58 | 59 | 60 | 61 | 62 | 68 | 69 | 75 | 76 | 77 | 78 | 80 | 81 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /example-empty/openFrameworks-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.yourcompany.openFrameworks 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | APPL 15 | CFBundleSignature 16 | ???? 17 | CFBundleVersion 18 | 1.0 19 | 20 | 21 | -------------------------------------------------------------------------------- /example-empty/src/main.cpp: -------------------------------------------------------------------------------- 1 | #include "testApp.h" 2 | #include "ofAppGlutWindow.h" 3 | 4 | //-------------------------------------------------------------- 5 | int main() 6 | { 7 | ofAppGlutWindow window; // create a window 8 | // set width, height, mode (OF_WINDOW or OF_FULLSCREEN) 9 | ofSetupOpenGL(&window, 1024, 768, OF_WINDOW); 10 | ofRunApp(new testApp()); // start the app 11 | } -------------------------------------------------------------------------------- /example-empty/src/testApp.cpp: -------------------------------------------------------------------------------- 1 | #include "testApp.h" 2 | 3 | //-------------------------------------------------------------- 4 | void testApp::setup() 5 | { 6 | 7 | } 8 | 9 | //-------------------------------------------------------------- 10 | void testApp::update() 11 | { 12 | 13 | } 14 | 15 | //-------------------------------------------------------------- 16 | void testApp::draw() 17 | { 18 | 19 | } 20 | 21 | //-------------------------------------------------------------- 22 | void testApp::keyPressed(int key) 23 | { 24 | 25 | } 26 | 27 | //-------------------------------------------------------------- 28 | void testApp::keyReleased(int key) 29 | { 30 | 31 | } 32 | 33 | //-------------------------------------------------------------- 34 | void testApp::mouseMoved(int x, int y) 35 | { 36 | 37 | } 38 | 39 | //-------------------------------------------------------------- 40 | void testApp::mouseDragged(int x, int y, int button) 41 | { 42 | 43 | } 44 | 45 | //-------------------------------------------------------------- 46 | void testApp::mousePressed(int x, int y, int button) 47 | { 48 | 49 | } 50 | 51 | //-------------------------------------------------------------- 52 | void testApp::mouseReleased(int x, int y, int button) 53 | { 54 | 55 | } 56 | 57 | //-------------------------------------------------------------- 58 | void testApp::windowResized(int w, int h) 59 | { 60 | 61 | } 62 | 63 | //-------------------------------------------------------------- 64 | void testApp::gotMessage(ofMessage msg) 65 | { 66 | 67 | } 68 | 69 | //-------------------------------------------------------------- 70 | void testApp::dragEvent(ofDragInfo dragInfo) 71 | { 72 | 73 | } -------------------------------------------------------------------------------- /example-empty/src/testApp.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "ofMain.h" 4 | 5 | #include "ofxPCL.h" 6 | 7 | class testApp : public ofBaseApp 8 | { 9 | public: 10 | void setup(); 11 | void update(); 12 | void draw(); 13 | 14 | void keyPressed(int key); 15 | void keyReleased(int key); 16 | void mouseMoved(int x, int y); 17 | void mouseDragged(int x, int y, int button); 18 | void mousePressed(int x, int y, int button); 19 | void mouseReleased(int x, int y, int button); 20 | void windowResized(int w, int h); 21 | void dragEvent(ofDragInfo dragInfo); 22 | void gotMessage(ofMessage msg); 23 | }; -------------------------------------------------------------------------------- /example-extract-indices/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | # KidTsunami - Professional. Live. Video. 3 | # 4 | # File: CMakeLists.txt 5 | # Author: Alexander Eichhorn 6 | # Contents: Template CMake file libopenframeworks project 7 | # 8 | # 9 | # Copyright 2012 KidTsunami. All Rights Reserved. 10 | # 11 | # Licensed under the Apache License, Version 2.0 (the "License"); 12 | # you may not use this file except in compliance with the License. 13 | # You may obtain a copy of the License at 14 | # 15 | # http://www.apache.org/licenses/LICENSE-2.0 16 | # 17 | # Unless required by applicable law or agreed to in writing, software 18 | # distributed under the License is distributed on an "AS IS" BASIS, 19 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 20 | # See the License for the specific language governing permissions and 21 | # limitations under the License. 22 | # 23 | ############################################################################# 24 | 25 | # minimum cmake version required 26 | cmake_minimum_required(VERSION 2.8) 27 | 28 | # give the project a name 29 | project (example_project) 30 | 31 | # Search for libopenframeworks package (will search for OFConfig.cmake, 32 | # of-config.cmake and FindOF.cmake) - we use of-config.cmake which gets 33 | # installed under CMAKE_INSTALL_PREFIX/lib/cmake/of. 34 | # 35 | # You MUST tell cmake where to search for the configuration, either by 36 | # 37 | # cmake -DCMAKE_PREFIX_PATH=/lib/cmake/of 38 | # 39 | # or by setting the environment variable OF_DIR to the above directory. 40 | # 41 | find_package(OF REQUIRED) 42 | include(FindPackageHandleStandardArgs) 43 | 44 | # set include directories 45 | include_directories (${OF_INCLUDES} ../SharedCode) 46 | 47 | # set cflags 48 | add_definitions (${OF_CFLAGS}) 49 | 50 | # add link search directories 51 | link_directories (${OF_LIBRARY_DIRS}) 52 | 53 | # define sources 54 | add_executable(${CMAKE_PROJECT_NAME} 55 | src/main.cpp 56 | src/testApp.cpp 57 | ) 58 | 59 | # link target against libopenframeworks (and implicitly against all depending 60 | # 3rd-party libraries) 61 | target_link_libraries(${CMAKE_PROJECT_NAME} ${OF_LIBRARIES}) 62 | 63 | # if applicable, set LDFLAGS 64 | if (OF_LDFLAGS) 65 | set_target_properties(${target_name} PROPERTIES LINK_FLAGS ${OF_LDFLAGS}) 66 | endif () 67 | 68 | # soft-link shared data into build directory 69 | 70 | # make sure EXTRA_DATA_OUTPUT_DIRECTORY (without the last name part) exists 71 | #get_filename_component(_SHARE_PATH_BASE ${EXTRA_DATA_OUTPUT_DIRECTORY} PATH) 72 | 73 | # create base directory 74 | #file(MAKE_DIRECTORY ${_SHARE_PATH_BASE}) 75 | 76 | # link shared/ from source tree to build tree 77 | execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink 78 | ${CMAKE_SOURCE_DIR}/share ${CMAKE_BINARY_DIR}/share) 79 | -------------------------------------------------------------------------------- /example-extract-indices/Project.xcconfig: -------------------------------------------------------------------------------- 1 | //THE PATH TO THE ROOT OF OUR OF PATH RELATIVE TO THIS PROJECT. 2 | //THIS NEEDS TO BE DEFINED BEFORE CoreOF.xcconfig IS INCLUDED 3 | OF_PATH = ../../.. 4 | 5 | //THIS HAS ALL THE HEADER AND LIBS FOR OF CORE 6 | #include "../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig" 7 | 8 | OFXPCL_PATH = $(OF_PATH)/addons/ofxPCL 9 | 10 | OFXPCL_OTHER_LDFLAGS = -L$(OFXPCL_PATH)/libs/pcl/lib/osx -lpcl_common -lpcl_features -lpcl_filters -lpcl_geometry -lpcl_io -lpcl_io_ply -lpcl_kdtree -lpcl_keypoints -lpcl_octree -lpcl_registration -lpcl_sample_consensus -lpcl_search -lpcl_segmentation -lpcl_surface -lpcl_tracking -lqhull 11 | 12 | OFXPCL_HEADER_SEARCH_PATHS = $(OFXPCL_PATH)/libs/pcl/include/ $(OFXPCL_PATH)/libs/pcl/include/eigen3 $(OFXPCL_PATH)/libs/pcl/include/pcl-1.6 13 | 14 | OFXPCL_LD_RUNPATH_SEARCH_PATHS = @executable_path/../../../../../../../addons/ofxPCL/libs/pcl/lib/osx @executable_path/../../../data/pcl/lib 15 | 16 | LD_RUNPATH_SEARCH_PATHS = $(OFXPCL_LD_RUNPATH_SEARCH_PATHS) 17 | 18 | OTHER_LDFLAGS = $(OF_CORE_LIBS) $(OFXPCL_OTHER_LDFLAGS) 19 | HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS) $(OFXPCL_HEADER_SEARCH_PATHS) 20 | -------------------------------------------------------------------------------- /example-extract-indices/bin/data/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in here apart from the .gitignore file 2 | * 3 | !.gitignore -------------------------------------------------------------------------------- /example-extract-indices/example-extract-indices.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /example-extract-indices/example-extract-indices.xcodeproj/xcshareddata/xcschemes/Debug.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 14 | 20 | 21 | 22 | 23 | 24 | 29 | 30 | 31 | 32 | 38 | 39 | 40 | 41 | 50 | 51 | 57 | 58 | 59 | 60 | 61 | 62 | 68 | 69 | 75 | 76 | 77 | 78 | 80 | 81 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /example-extract-indices/example-extract-indices.xcodeproj/xcshareddata/xcschemes/Release.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 14 | 20 | 21 | 22 | 23 | 24 | 29 | 30 | 31 | 32 | 38 | 39 | 40 | 41 | 50 | 51 | 57 | 58 | 59 | 60 | 61 | 62 | 68 | 69 | 75 | 76 | 77 | 78 | 80 | 81 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /example-extract-indices/openFrameworks-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.yourcompany.openFrameworks 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | APPL 15 | CFBundleSignature 16 | ???? 17 | CFBundleVersion 18 | 1.0 19 | 20 | 21 | -------------------------------------------------------------------------------- /example-extract-indices/src/main.cpp: -------------------------------------------------------------------------------- 1 | #include "ofMain.h" 2 | #include "testApp.h" 3 | #include "ofAppGlutWindow.h" 4 | 5 | //======================================================================== 6 | int main( ) 7 | { 8 | 9 | ofAppGlutWindow window; 10 | ofSetupOpenGL(&window, 1024, 768, OF_WINDOW); 11 | 12 | // this kicks off the running of my app 13 | // can be OF_WINDOW or OF_FULLSCREEN 14 | // pass in width and height too: 15 | ofRunApp(new testApp()); 16 | 17 | } -------------------------------------------------------------------------------- /example-extract-indices/src/testApp.cpp: -------------------------------------------------------------------------------- 1 | // Example from http://pointclouds.org/documentation/tutorials/extract_indices.php 2 | 3 | #include 4 | #include "testApp.h" 5 | 6 | //-------------------------------------------------------------- 7 | void testApp::setup() 8 | { 9 | ofxPCL::PointCloud cloud(new ofxPCL::PointCloud::value_type); 10 | vector clouds; 11 | 12 | cloud = ofxPCL::loadPointCloud("table_scene_lms400.pcd"); 13 | 14 | std::cerr << "PointCloud before filtering: " << cloud->width * cloud->height 15 | << " data points (" << pcl::getFieldsList (*cloud) << ")." << endl; 16 | 17 | ofxPCL::downsample(cloud, ofVec3f(0.01f, 0.01f, 0.01f)); 18 | 19 | std::cerr << "PointCloud after filtering: " << cloud->width * cloud->height 20 | << " data points (" << pcl::getFieldsList (*cloud) << ")." << endl; 21 | 22 | ofxPCL::savePointCloud("table_scene_lms400_inliers.pcd", cloud); 23 | 24 | clouds = ofxPCL::segmentation(cloud, pcl::SACMODEL_PLANE, 0.01, 10, 30); 25 | 26 | meshes.push_back(ofxPCL::toOF(cloud)); 27 | for( int i = 0; i < clouds.size(); i++ ) { 28 | meshes.push_back(ofxPCL::toOF(clouds[i])); 29 | } 30 | mit = meshes.begin(); 31 | } 32 | 33 | //-------------------------------------------------------------- 34 | void testApp::update() 35 | { 36 | 37 | } 38 | 39 | //-------------------------------------------------------------- 40 | void testApp::draw() 41 | { 42 | ofBackground(0); 43 | 44 | cam.begin(); 45 | ofScale(100, 100, 100); 46 | glEnable(GL_DEPTH_TEST); 47 | 48 | mit->drawVertices(); 49 | 50 | cam.end(); 51 | } 52 | 53 | //-------------------------------------------------------------- 54 | void testApp::keyPressed(int key) 55 | { 56 | if(key == ' ') { 57 | advance(mit, 1); 58 | if( mit == meshes.end() ) { 59 | mit = meshes.begin(); 60 | } 61 | } 62 | } 63 | 64 | //-------------------------------------------------------------- 65 | void testApp::keyReleased(int key) 66 | { 67 | 68 | } 69 | 70 | //-------------------------------------------------------------- 71 | void testApp::mouseMoved(int x, int y) 72 | { 73 | 74 | } 75 | 76 | //-------------------------------------------------------------- 77 | void testApp::mouseDragged(int x, int y, int button) 78 | { 79 | 80 | } 81 | 82 | //-------------------------------------------------------------- 83 | void testApp::mousePressed(int x, int y, int button) 84 | { 85 | 86 | } 87 | 88 | //-------------------------------------------------------------- 89 | void testApp::mouseReleased(int x, int y, int button) 90 | { 91 | 92 | } 93 | 94 | //-------------------------------------------------------------- 95 | void testApp::windowResized(int w, int h) 96 | { 97 | 98 | } 99 | 100 | //-------------------------------------------------------------- 101 | void testApp::gotMessage(ofMessage msg) 102 | { 103 | 104 | } 105 | 106 | //-------------------------------------------------------------- 107 | void testApp::dragEvent(ofDragInfo dragInfo) 108 | { 109 | 110 | } -------------------------------------------------------------------------------- /example-extract-indices/src/testApp.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "ofMain.h" 4 | 5 | #include "ofxPCL.h" 6 | 7 | class testApp : public ofBaseApp 8 | { 9 | 10 | public: 11 | void setup(); 12 | void update(); 13 | void draw(); 14 | 15 | void keyPressed(int key); 16 | void keyReleased(int key); 17 | void mouseMoved(int x, int y); 18 | void mouseDragged(int x, int y, int button); 19 | void mousePressed(int x, int y, int button); 20 | void mouseReleased(int x, int y, int button); 21 | void windowResized(int w, int h); 22 | void dragEvent(ofDragInfo dragInfo); 23 | void gotMessage(ofMessage msg); 24 | 25 | ofEasyCam cam; 26 | vector meshes; 27 | vector::iterator mit; 28 | }; 29 | -------------------------------------------------------------------------------- /example-greedy-projection/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | # KidTsunami - Professional. Live. Video. 3 | # 4 | # File: CMakeLists.txt 5 | # Author: Alexander Eichhorn 6 | # Contents: Template CMake file libopenframeworks project 7 | # 8 | # 9 | # Copyright 2012 KidTsunami. All Rights Reserved. 10 | # 11 | # Licensed under the Apache License, Version 2.0 (the "License"); 12 | # you may not use this file except in compliance with the License. 13 | # You may obtain a copy of the License at 14 | # 15 | # http://www.apache.org/licenses/LICENSE-2.0 16 | # 17 | # Unless required by applicable law or agreed to in writing, software 18 | # distributed under the License is distributed on an "AS IS" BASIS, 19 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 20 | # See the License for the specific language governing permissions and 21 | # limitations under the License. 22 | # 23 | ############################################################################# 24 | 25 | # minimum cmake version required 26 | cmake_minimum_required(VERSION 2.8) 27 | 28 | # give the project a name 29 | project (example_project) 30 | 31 | # Search for libopenframeworks package (will search for OFConfig.cmake, 32 | # of-config.cmake and FindOF.cmake) - we use of-config.cmake which gets 33 | # installed under CMAKE_INSTALL_PREFIX/lib/cmake/of. 34 | # 35 | # You MUST tell cmake where to search for the configuration, either by 36 | # 37 | # cmake -DCMAKE_PREFIX_PATH=/lib/cmake/of 38 | # 39 | # or by setting the environment variable OF_DIR to the above directory. 40 | # 41 | find_package(OF REQUIRED) 42 | include(FindPackageHandleStandardArgs) 43 | 44 | # set include directories 45 | include_directories (${OF_INCLUDES} ../SharedCode) 46 | 47 | # set cflags 48 | add_definitions (${OF_CFLAGS}) 49 | 50 | # add link search directories 51 | link_directories (${OF_LIBRARY_DIRS}) 52 | 53 | # define sources 54 | add_executable(${CMAKE_PROJECT_NAME} 55 | src/main.cpp 56 | src/testApp.cpp 57 | ) 58 | 59 | # link target against libopenframeworks (and implicitly against all depending 60 | # 3rd-party libraries) 61 | target_link_libraries(${CMAKE_PROJECT_NAME} ${OF_LIBRARIES}) 62 | 63 | # if applicable, set LDFLAGS 64 | if (OF_LDFLAGS) 65 | set_target_properties(${target_name} PROPERTIES LINK_FLAGS ${OF_LDFLAGS}) 66 | endif () 67 | 68 | # soft-link shared data into build directory 69 | 70 | # make sure EXTRA_DATA_OUTPUT_DIRECTORY (without the last name part) exists 71 | #get_filename_component(_SHARE_PATH_BASE ${EXTRA_DATA_OUTPUT_DIRECTORY} PATH) 72 | 73 | # create base directory 74 | #file(MAKE_DIRECTORY ${_SHARE_PATH_BASE}) 75 | 76 | # link shared/ from source tree to build tree 77 | execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink 78 | ${CMAKE_SOURCE_DIR}/share ${CMAKE_BINARY_DIR}/share) 79 | -------------------------------------------------------------------------------- /example-greedy-projection/Project.xcconfig: -------------------------------------------------------------------------------- 1 | //THE PATH TO THE ROOT OF OUR OF PATH RELATIVE TO THIS PROJECT. 2 | //THIS NEEDS TO BE DEFINED BEFORE CoreOF.xcconfig IS INCLUDED 3 | OF_PATH = ../../.. 4 | 5 | //THIS HAS ALL THE HEADER AND LIBS FOR OF CORE 6 | #include "../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig" 7 | 8 | OFXPCL_PATH = $(OF_PATH)/addons/ofxPCL 9 | 10 | OFXPCL_OTHER_LDFLAGS = -L$(OFXPCL_PATH)/libs/pcl/lib/osx -lpcl_common -lpcl_features -lpcl_filters -lpcl_geometry -lpcl_io -lpcl_io_ply -lpcl_kdtree -lpcl_keypoints -lpcl_octree -lpcl_registration -lpcl_sample_consensus -lpcl_search -lpcl_segmentation -lpcl_surface -lpcl_tracking -lqhull 11 | 12 | OFXPCL_HEADER_SEARCH_PATHS = $(OFXPCL_PATH)/libs/pcl/include/ $(OFXPCL_PATH)/libs/pcl/include/eigen3 $(OFXPCL_PATH)/libs/pcl/include/pcl-1.6 13 | 14 | OFXPCL_LD_RUNPATH_SEARCH_PATHS = @executable_path/../../../../../../../addons/ofxPCL/libs/pcl/lib/osx @executable_path/../../../data/pcl/lib 15 | 16 | LD_RUNPATH_SEARCH_PATHS = $(OFXPCL_LD_RUNPATH_SEARCH_PATHS) 17 | 18 | OTHER_LDFLAGS = $(OF_CORE_LIBS) $(OFXPCL_OTHER_LDFLAGS) 19 | HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS) $(OFXPCL_HEADER_SEARCH_PATHS) 20 | -------------------------------------------------------------------------------- /example-greedy-projection/bin/data/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in here apart from the .gitignore file 2 | * 3 | !.gitignore -------------------------------------------------------------------------------- /example-greedy-projection/example-greedy-projection.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /example-greedy-projection/example-greedy-projection.xcodeproj/xcshareddata/xcschemes/Debug.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 14 | 20 | 21 | 22 | 23 | 24 | 29 | 30 | 31 | 32 | 38 | 39 | 40 | 41 | 50 | 51 | 57 | 58 | 59 | 60 | 61 | 62 | 68 | 69 | 75 | 76 | 77 | 78 | 80 | 81 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /example-greedy-projection/example-greedy-projection.xcodeproj/xcshareddata/xcschemes/Release.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 14 | 20 | 21 | 22 | 23 | 24 | 29 | 30 | 31 | 32 | 38 | 39 | 40 | 41 | 50 | 51 | 57 | 58 | 59 | 60 | 61 | 62 | 68 | 69 | 75 | 76 | 77 | 78 | 80 | 81 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /example-greedy-projection/openFrameworks-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.yourcompany.openFrameworks 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | APPL 15 | CFBundleSignature 16 | ???? 17 | CFBundleVersion 18 | 1.0 19 | 20 | 21 | -------------------------------------------------------------------------------- /example-greedy-projection/src/main.cpp: -------------------------------------------------------------------------------- 1 | #include "ofMain.h" 2 | #include "testApp.h" 3 | #include "ofAppGlutWindow.h" 4 | 5 | //======================================================================== 6 | int main( ) 7 | { 8 | 9 | ofAppGlutWindow window; 10 | ofSetupOpenGL(&window, 1024, 768, OF_WINDOW); 11 | 12 | // this kicks off the running of my app 13 | // can be OF_WINDOW or OF_FULLSCREEN 14 | // pass in width and height too: 15 | ofRunApp(new testApp()); 16 | 17 | } -------------------------------------------------------------------------------- /example-greedy-projection/src/testApp.cpp: -------------------------------------------------------------------------------- 1 | // Example from http://pointclouds.org/documentation/tutorials/greedy_projection.php 2 | 3 | #include 4 | #include "testApp.h" 5 | 6 | //-------------------------------------------------------------- 7 | void testApp::setup() 8 | { 9 | dispRaw = false; 10 | 11 | ofxPCL::PointCloud cloud(new ofxPCL::PointCloud::value_type); 12 | ofxPCL::PointNormalPointCloud cloud_with_normals(new ofxPCL::PointNormalPointCloud::value_type); 13 | 14 | cloud = ofxPCL::loadPointCloud("bun0.pcd"); 15 | 16 | meshraw = ofxPCL::toOF(cloud); 17 | 18 | ofxPCL::normalEstimation(cloud, cloud_with_normals); 19 | 20 | mesh = ofxPCL::triangulate(cloud_with_normals, 0.025); 21 | } 22 | 23 | //-------------------------------------------------------------- 24 | void testApp::update() 25 | { 26 | 27 | } 28 | 29 | //-------------------------------------------------------------- 30 | void testApp::draw() 31 | { 32 | ofBackground(0); 33 | 34 | cam.begin(); 35 | 36 | ofScale(100, 100, 100); 37 | 38 | glEnable(GL_DEPTH_TEST); 39 | 40 | if( dispRaw ) { 41 | meshraw.drawVertices(); 42 | } else { 43 | mesh.draw(); 44 | } 45 | 46 | cam.end(); 47 | } 48 | 49 | //-------------------------------------------------------------- 50 | void testApp::keyPressed(int key) 51 | { 52 | if(key == ' ') { 53 | dispRaw = !dispRaw; 54 | } 55 | } 56 | 57 | //-------------------------------------------------------------- 58 | void testApp::keyReleased(int key) 59 | { 60 | 61 | } 62 | 63 | //-------------------------------------------------------------- 64 | void testApp::mouseMoved(int x, int y) 65 | { 66 | 67 | } 68 | 69 | //-------------------------------------------------------------- 70 | void testApp::mouseDragged(int x, int y, int button) 71 | { 72 | 73 | } 74 | 75 | //-------------------------------------------------------------- 76 | void testApp::mousePressed(int x, int y, int button) 77 | { 78 | 79 | } 80 | 81 | //-------------------------------------------------------------- 82 | void testApp::mouseReleased(int x, int y, int button) 83 | { 84 | 85 | } 86 | 87 | //-------------------------------------------------------------- 88 | void testApp::windowResized(int w, int h) 89 | { 90 | 91 | } 92 | 93 | //-------------------------------------------------------------- 94 | void testApp::gotMessage(ofMessage msg) 95 | { 96 | 97 | } 98 | 99 | //-------------------------------------------------------------- 100 | void testApp::dragEvent(ofDragInfo dragInfo) 101 | { 102 | 103 | } -------------------------------------------------------------------------------- /example-greedy-projection/src/testApp.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "ofMain.h" 4 | #include "ofxPCL.h" 5 | 6 | class testApp : public ofBaseApp 7 | { 8 | 9 | public: 10 | void setup(); 11 | void update(); 12 | void draw(); 13 | 14 | void keyPressed(int key); 15 | void keyReleased(int key); 16 | void mouseMoved(int x, int y); 17 | void mouseDragged(int x, int y, int button); 18 | void mousePressed(int x, int y, int button); 19 | void mouseReleased(int x, int y, int button); 20 | void windowResized(int w, int h); 21 | void dragEvent(ofDragInfo dragInfo); 22 | void gotMessage(ofMessage msg); 23 | 24 | ofEasyCam cam; 25 | ofVboMesh mesh, meshraw; 26 | bool dispRaw; 27 | }; -------------------------------------------------------------------------------- /example-resampling/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | # KidTsunami - Professional. Live. Video. 3 | # 4 | # File: CMakeLists.txt 5 | # Author: Alexander Eichhorn 6 | # Contents: Template CMake file libopenframeworks project 7 | # 8 | # 9 | # Copyright 2012 KidTsunami. All Rights Reserved. 10 | # 11 | # Licensed under the Apache License, Version 2.0 (the "License"); 12 | # you may not use this file except in compliance with the License. 13 | # You may obtain a copy of the License at 14 | # 15 | # http://www.apache.org/licenses/LICENSE-2.0 16 | # 17 | # Unless required by applicable law or agreed to in writing, software 18 | # distributed under the License is distributed on an "AS IS" BASIS, 19 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 20 | # See the License for the specific language governing permissions and 21 | # limitations under the License. 22 | # 23 | ############################################################################# 24 | 25 | # minimum cmake version required 26 | cmake_minimum_required(VERSION 2.8) 27 | 28 | # give the project a name 29 | project (example_project) 30 | 31 | # Search for libopenframeworks package (will search for OFConfig.cmake, 32 | # of-config.cmake and FindOF.cmake) - we use of-config.cmake which gets 33 | # installed under CMAKE_INSTALL_PREFIX/lib/cmake/of. 34 | # 35 | # You MUST tell cmake where to search for the configuration, either by 36 | # 37 | # cmake -DCMAKE_PREFIX_PATH=/lib/cmake/of 38 | # 39 | # or by setting the environment variable OF_DIR to the above directory. 40 | # 41 | find_package(OF REQUIRED) 42 | include(FindPackageHandleStandardArgs) 43 | 44 | # set include directories 45 | include_directories (${OF_INCLUDES} ../SharedCode) 46 | 47 | # set cflags 48 | add_definitions (${OF_CFLAGS}) 49 | 50 | # add link search directories 51 | link_directories (${OF_LIBRARY_DIRS}) 52 | 53 | # define sources 54 | add_executable(${CMAKE_PROJECT_NAME} 55 | src/main.cpp 56 | src/testApp.cpp 57 | ) 58 | 59 | # link target against libopenframeworks (and implicitly against all depending 60 | # 3rd-party libraries) 61 | target_link_libraries(${CMAKE_PROJECT_NAME} ${OF_LIBRARIES}) 62 | 63 | # if applicable, set LDFLAGS 64 | if (OF_LDFLAGS) 65 | set_target_properties(${target_name} PROPERTIES LINK_FLAGS ${OF_LDFLAGS}) 66 | endif () 67 | 68 | # soft-link shared data into build directory 69 | 70 | # make sure EXTRA_DATA_OUTPUT_DIRECTORY (without the last name part) exists 71 | #get_filename_component(_SHARE_PATH_BASE ${EXTRA_DATA_OUTPUT_DIRECTORY} PATH) 72 | 73 | # create base directory 74 | #file(MAKE_DIRECTORY ${_SHARE_PATH_BASE}) 75 | 76 | # link shared/ from source tree to build tree 77 | execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink 78 | ${CMAKE_SOURCE_DIR}/share ${CMAKE_BINARY_DIR}/share) 79 | -------------------------------------------------------------------------------- /example-resampling/Project.xcconfig: -------------------------------------------------------------------------------- 1 | //THE PATH TO THE ROOT OF OUR OF PATH RELATIVE TO THIS PROJECT. 2 | //THIS NEEDS TO BE DEFINED BEFORE CoreOF.xcconfig IS INCLUDED 3 | OF_PATH = ../../.. 4 | 5 | //THIS HAS ALL THE HEADER AND LIBS FOR OF CORE 6 | #include "../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig" 7 | 8 | OFXPCL_PATH = $(OF_PATH)/addons/ofxPCL 9 | 10 | OFXPCL_OTHER_LDFLAGS = -L$(OFXPCL_PATH)/libs/pcl/lib/osx -lpcl_common -lpcl_features -lpcl_filters -lpcl_geometry -lpcl_io -lpcl_io_ply -lpcl_kdtree -lpcl_keypoints -lpcl_octree -lpcl_registration -lpcl_sample_consensus -lpcl_search -lpcl_segmentation -lpcl_surface -lpcl_tracking -lqhull 11 | 12 | OFXPCL_HEADER_SEARCH_PATHS = $(OFXPCL_PATH)/libs/pcl/include/ $(OFXPCL_PATH)/libs/pcl/include/eigen3 $(OFXPCL_PATH)/libs/pcl/include/pcl-1.6 13 | 14 | OFXPCL_LD_RUNPATH_SEARCH_PATHS = @executable_path/../../../../../../../addons/ofxPCL/libs/pcl/lib/osx @executable_path/../../../data/pcl/lib 15 | 16 | LD_RUNPATH_SEARCH_PATHS = $(OFXPCL_LD_RUNPATH_SEARCH_PATHS) 17 | 18 | OTHER_LDFLAGS = $(OF_CORE_LIBS) $(OFXPCL_OTHER_LDFLAGS) 19 | HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS) $(OFXPCL_HEADER_SEARCH_PATHS) 20 | -------------------------------------------------------------------------------- /example-resampling/bin/data/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in here apart from the .gitignore file 2 | * 3 | !.gitignore -------------------------------------------------------------------------------- /example-resampling/example-resampling.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 42; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 6019175D16E1E02D00A7FCEB /* ofxPCL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6019175716E1E02D00A7FCEB /* ofxPCL.cpp */; }; 11 | 6019175E16E1E02D00A7FCEB /* Utility.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6019175B16E1E02D00A7FCEB /* Utility.cpp */; }; 12 | BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; }; 13 | E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4328148138ABC890047C5CB /* openFrameworksDebug.a */; }; 14 | E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9710E8CC7DD009D7055 /* AGL.framework */; }; 15 | E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */; }; 16 | E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */; }; 17 | E45BE97E0E8CC7DD009D7055 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9740E8CC7DD009D7055 /* Carbon.framework */; }; 18 | E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */; }; 19 | E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */; }; 20 | E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9770E8CC7DD009D7055 /* CoreServices.framework */; }; 21 | E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9790E8CC7DD009D7055 /* OpenGL.framework */; }; 22 | E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */; }; 23 | E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1D0A3A1BDC003C02F2 /* main.cpp */; }; 24 | E4B69E210A3A1BDC003C02F2 /* testApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */; }; 25 | E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424410CC5A17004149E2 /* AppKit.framework */; }; 26 | E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424510CC5A17004149E2 /* Cocoa.framework */; }; 27 | E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424610CC5A17004149E2 /* IOKit.framework */; }; 28 | E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; }; 29 | E7E077E515D3B63C0020DFD4 /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */; }; 30 | E7E077E815D3B6510020DFD4 /* QTKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7E077E715D3B6510020DFD4 /* QTKit.framework */; }; 31 | E7F985F815E0DEA3003869B5 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7F985F515E0DE99003869B5 /* Accelerate.framework */; }; 32 | /* End PBXBuildFile section */ 33 | 34 | /* Begin PBXContainerItemProxy section */ 35 | E4328147138ABC890047C5CB /* PBXContainerItemProxy */ = { 36 | isa = PBXContainerItemProxy; 37 | containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; 38 | proxyType = 2; 39 | remoteGlobalIDString = E4B27C1510CBEB8E00536013; 40 | remoteInfo = openFrameworks; 41 | }; 42 | E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */ = { 43 | isa = PBXContainerItemProxy; 44 | containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; 45 | proxyType = 1; 46 | remoteGlobalIDString = E4B27C1410CBEB8E00536013; 47 | remoteInfo = openFrameworks; 48 | }; 49 | /* End PBXContainerItemProxy section */ 50 | 51 | /* Begin PBXCopyFilesBuildPhase section */ 52 | E4C2427710CC5ABF004149E2 /* CopyFiles */ = { 53 | isa = PBXCopyFilesBuildPhase; 54 | buildActionMask = 2147483647; 55 | dstPath = ""; 56 | dstSubfolderSpec = 10; 57 | files = ( 58 | BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */, 59 | ); 60 | runOnlyForDeploymentPostprocessing = 0; 61 | }; 62 | /* End PBXCopyFilesBuildPhase section */ 63 | 64 | /* Begin PBXFileReference section */ 65 | 6019175716E1E02D00A7FCEB /* ofxPCL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxPCL.cpp; sourceTree = ""; }; 66 | 6019175816E1E02D00A7FCEB /* ofxPCL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxPCL.h; sourceTree = ""; }; 67 | 6019175916E1E02D00A7FCEB /* Tree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Tree.h; sourceTree = ""; }; 68 | 6019175A16E1E02D00A7FCEB /* Types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Types.h; sourceTree = ""; }; 69 | 6019175B16E1E02D00A7FCEB /* Utility.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Utility.cpp; sourceTree = ""; }; 70 | 6019175C16E1E02D00A7FCEB /* Utility.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utility.h; sourceTree = ""; }; 71 | BBAB23BE13894E4700AA2426 /* GLUT.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLUT.framework; path = ../../../libs/glut/lib/osx/GLUT.framework; sourceTree = ""; }; 72 | E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = openFrameworksLib.xcodeproj; path = ../../../libs/openFrameworksCompiled/project/osx/openFrameworksLib.xcodeproj; sourceTree = SOURCE_ROOT; }; 73 | E45BE9710E8CC7DD009D7055 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = ""; }; 74 | E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = ""; }; 75 | E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = ""; }; 76 | E45BE9740E8CC7DD009D7055 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = ""; }; 77 | E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = ""; }; 78 | E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = ""; }; 79 | E45BE9770E8CC7DD009D7055 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = ""; }; 80 | E45BE9790E8CC7DD009D7055 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = ""; }; 81 | E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = ""; }; 82 | E4B69B5B0A3A1756003C02F2 /* example-resamplingDebug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "example-resamplingDebug.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 83 | E4B69E1D0A3A1BDC003C02F2 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = src/main.cpp; sourceTree = SOURCE_ROOT; }; 84 | E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = testApp.cpp; path = src/testApp.cpp; sourceTree = SOURCE_ROOT; }; 85 | E4B69E1F0A3A1BDC003C02F2 /* testApp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = testApp.h; path = src/testApp.h; sourceTree = SOURCE_ROOT; }; 86 | E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = "openFrameworks-Info.plist"; sourceTree = ""; }; 87 | E4C2424410CC5A17004149E2 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; 88 | E4C2424510CC5A17004149E2 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; 89 | E4C2424610CC5A17004149E2 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = ""; }; 90 | E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = CoreOF.xcconfig; path = ../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig; sourceTree = SOURCE_ROOT; }; 91 | E4EB6923138AFD0F00A09F29 /* Project.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Project.xcconfig; sourceTree = ""; }; 92 | E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = /System/Library/Frameworks/CoreVideo.framework; sourceTree = ""; }; 93 | E7E077E715D3B6510020DFD4 /* QTKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = /System/Library/Frameworks/QTKit.framework; sourceTree = ""; }; 94 | E7F985F515E0DE99003869B5 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = /System/Library/Frameworks/Accelerate.framework; sourceTree = ""; }; 95 | /* End PBXFileReference section */ 96 | 97 | /* Begin PBXFrameworksBuildPhase section */ 98 | E4B69B590A3A1756003C02F2 /* Frameworks */ = { 99 | isa = PBXFrameworksBuildPhase; 100 | buildActionMask = 2147483647; 101 | files = ( 102 | E7F985F815E0DEA3003869B5 /* Accelerate.framework in Frameworks */, 103 | E7E077E815D3B6510020DFD4 /* QTKit.framework in Frameworks */, 104 | E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */, 105 | E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */, 106 | E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */, 107 | E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */, 108 | E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */, 109 | E45BE97E0E8CC7DD009D7055 /* Carbon.framework in Frameworks */, 110 | E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */, 111 | E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */, 112 | E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */, 113 | E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */, 114 | E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */, 115 | E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */, 116 | E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */, 117 | E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */, 118 | E7E077E515D3B63C0020DFD4 /* CoreVideo.framework in Frameworks */, 119 | ); 120 | runOnlyForDeploymentPostprocessing = 0; 121 | }; 122 | /* End PBXFrameworksBuildPhase section */ 123 | 124 | /* Begin PBXGroup section */ 125 | 6019175516E1E02500A7FCEB /* ofxPCL */ = { 126 | isa = PBXGroup; 127 | children = ( 128 | 6019175616E1E02D00A7FCEB /* src */, 129 | ); 130 | name = ofxPCL; 131 | sourceTree = ""; 132 | }; 133 | 6019175616E1E02D00A7FCEB /* src */ = { 134 | isa = PBXGroup; 135 | children = ( 136 | 6019175716E1E02D00A7FCEB /* ofxPCL.cpp */, 137 | 6019175816E1E02D00A7FCEB /* ofxPCL.h */, 138 | 6019175916E1E02D00A7FCEB /* Tree.h */, 139 | 6019175A16E1E02D00A7FCEB /* Types.h */, 140 | 6019175B16E1E02D00A7FCEB /* Utility.cpp */, 141 | 6019175C16E1E02D00A7FCEB /* Utility.h */, 142 | ); 143 | name = src; 144 | path = ../src; 145 | sourceTree = ""; 146 | }; 147 | BB4B014C10F69532006C3DED /* addons */ = { 148 | isa = PBXGroup; 149 | children = ( 150 | 6019175516E1E02500A7FCEB /* ofxPCL */, 151 | ); 152 | name = addons; 153 | sourceTree = ""; 154 | }; 155 | BBAB23C913894ECA00AA2426 /* system frameworks */ = { 156 | isa = PBXGroup; 157 | children = ( 158 | E7F985F515E0DE99003869B5 /* Accelerate.framework */, 159 | E4C2424410CC5A17004149E2 /* AppKit.framework */, 160 | E4C2424510CC5A17004149E2 /* Cocoa.framework */, 161 | E4C2424610CC5A17004149E2 /* IOKit.framework */, 162 | E45BE9710E8CC7DD009D7055 /* AGL.framework */, 163 | E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */, 164 | E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */, 165 | E45BE9740E8CC7DD009D7055 /* Carbon.framework */, 166 | E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */, 167 | E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */, 168 | E45BE9770E8CC7DD009D7055 /* CoreServices.framework */, 169 | E45BE9790E8CC7DD009D7055 /* OpenGL.framework */, 170 | E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */, 171 | E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */, 172 | E7E077E715D3B6510020DFD4 /* QTKit.framework */, 173 | ); 174 | name = "system frameworks"; 175 | sourceTree = ""; 176 | }; 177 | BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */ = { 178 | isa = PBXGroup; 179 | children = ( 180 | BBAB23BE13894E4700AA2426 /* GLUT.framework */, 181 | ); 182 | name = "3rd party frameworks"; 183 | sourceTree = ""; 184 | }; 185 | E4328144138ABC890047C5CB /* Products */ = { 186 | isa = PBXGroup; 187 | children = ( 188 | E4328148138ABC890047C5CB /* openFrameworksDebug.a */, 189 | ); 190 | name = Products; 191 | sourceTree = ""; 192 | }; 193 | E45BE5980E8CC70C009D7055 /* frameworks */ = { 194 | isa = PBXGroup; 195 | children = ( 196 | BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */, 197 | BBAB23C913894ECA00AA2426 /* system frameworks */, 198 | ); 199 | name = frameworks; 200 | sourceTree = ""; 201 | }; 202 | E4B69B4A0A3A1720003C02F2 = { 203 | isa = PBXGroup; 204 | children = ( 205 | E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */, 206 | E4EB6923138AFD0F00A09F29 /* Project.xcconfig */, 207 | E4B69E1C0A3A1BDC003C02F2 /* src */, 208 | E4EEC9E9138DF44700A80321 /* openFrameworks */, 209 | BB4B014C10F69532006C3DED /* addons */, 210 | E45BE5980E8CC70C009D7055 /* frameworks */, 211 | E4B69B5B0A3A1756003C02F2 /* example-resamplingDebug.app */, 212 | ); 213 | sourceTree = ""; 214 | }; 215 | E4B69E1C0A3A1BDC003C02F2 /* src */ = { 216 | isa = PBXGroup; 217 | children = ( 218 | E4B69E1D0A3A1BDC003C02F2 /* main.cpp */, 219 | E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */, 220 | E4B69E1F0A3A1BDC003C02F2 /* testApp.h */, 221 | ); 222 | path = src; 223 | sourceTree = SOURCE_ROOT; 224 | }; 225 | E4EEC9E9138DF44700A80321 /* openFrameworks */ = { 226 | isa = PBXGroup; 227 | children = ( 228 | E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */, 229 | E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */, 230 | ); 231 | name = openFrameworks; 232 | sourceTree = ""; 233 | }; 234 | /* End PBXGroup section */ 235 | 236 | /* Begin PBXNativeTarget section */ 237 | E4B69B5A0A3A1756003C02F2 /* example-resampling */ = { 238 | isa = PBXNativeTarget; 239 | buildConfigurationList = E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "example-resampling" */; 240 | buildPhases = ( 241 | E4B69B580A3A1756003C02F2 /* Sources */, 242 | E4B69B590A3A1756003C02F2 /* Frameworks */, 243 | E4B6FFFD0C3F9AB9008CF71C /* ShellScript */, 244 | E4C2427710CC5ABF004149E2 /* CopyFiles */, 245 | ); 246 | buildRules = ( 247 | ); 248 | dependencies = ( 249 | E4EEB9AC138B136A00A80321 /* PBXTargetDependency */, 250 | ); 251 | name = "example-resampling"; 252 | productName = myOFApp; 253 | productReference = E4B69B5B0A3A1756003C02F2 /* example-resamplingDebug.app */; 254 | productType = "com.apple.product-type.application"; 255 | }; 256 | /* End PBXNativeTarget section */ 257 | 258 | /* Begin PBXProject section */ 259 | E4B69B4C0A3A1720003C02F2 /* Project object */ = { 260 | isa = PBXProject; 261 | buildConfigurationList = E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "example-resampling" */; 262 | compatibilityVersion = "Xcode 2.4"; 263 | developmentRegion = English; 264 | hasScannedForEncodings = 0; 265 | knownRegions = ( 266 | English, 267 | Japanese, 268 | French, 269 | German, 270 | ); 271 | mainGroup = E4B69B4A0A3A1720003C02F2; 272 | productRefGroup = E4B69B4A0A3A1720003C02F2; 273 | projectDirPath = ""; 274 | projectReferences = ( 275 | { 276 | ProductGroup = E4328144138ABC890047C5CB /* Products */; 277 | ProjectRef = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; 278 | }, 279 | ); 280 | projectRoot = ""; 281 | targets = ( 282 | E4B69B5A0A3A1756003C02F2 /* example-resampling */, 283 | ); 284 | }; 285 | /* End PBXProject section */ 286 | 287 | /* Begin PBXReferenceProxy section */ 288 | E4328148138ABC890047C5CB /* openFrameworksDebug.a */ = { 289 | isa = PBXReferenceProxy; 290 | fileType = archive.ar; 291 | path = openFrameworksDebug.a; 292 | remoteRef = E4328147138ABC890047C5CB /* PBXContainerItemProxy */; 293 | sourceTree = BUILT_PRODUCTS_DIR; 294 | }; 295 | /* End PBXReferenceProxy section */ 296 | 297 | /* Begin PBXShellScriptBuildPhase section */ 298 | E4B6FFFD0C3F9AB9008CF71C /* ShellScript */ = { 299 | isa = PBXShellScriptBuildPhase; 300 | buildActionMask = 2147483647; 301 | files = ( 302 | ); 303 | inputPaths = ( 304 | ); 305 | outputPaths = ( 306 | ); 307 | runOnlyForDeploymentPostprocessing = 0; 308 | shellPath = /bin/sh; 309 | shellScript = "cp -f ../../../libs/fmodex/lib/osx/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/libfmodex.dylib\"; install_name_tool -change ./libfmodex.dylib @executable_path/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME\";"; 310 | }; 311 | /* End PBXShellScriptBuildPhase section */ 312 | 313 | /* Begin PBXSourcesBuildPhase section */ 314 | E4B69B580A3A1756003C02F2 /* Sources */ = { 315 | isa = PBXSourcesBuildPhase; 316 | buildActionMask = 2147483647; 317 | files = ( 318 | E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */, 319 | E4B69E210A3A1BDC003C02F2 /* testApp.cpp in Sources */, 320 | 6019175D16E1E02D00A7FCEB /* ofxPCL.cpp in Sources */, 321 | 6019175E16E1E02D00A7FCEB /* Utility.cpp in Sources */, 322 | ); 323 | runOnlyForDeploymentPostprocessing = 0; 324 | }; 325 | /* End PBXSourcesBuildPhase section */ 326 | 327 | /* Begin PBXTargetDependency section */ 328 | E4EEB9AC138B136A00A80321 /* PBXTargetDependency */ = { 329 | isa = PBXTargetDependency; 330 | name = openFrameworks; 331 | targetProxy = E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */; 332 | }; 333 | /* End PBXTargetDependency section */ 334 | 335 | /* Begin XCBuildConfiguration section */ 336 | E4B69B4E0A3A1720003C02F2 /* Debug */ = { 337 | isa = XCBuildConfiguration; 338 | baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; 339 | buildSettings = { 340 | ARCHS = "$(NATIVE_ARCH)"; 341 | CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/"; 342 | COPY_PHASE_STRIP = NO; 343 | DEAD_CODE_STRIPPING = YES; 344 | GCC_AUTO_VECTORIZATION = YES; 345 | GCC_ENABLE_SSE3_EXTENSIONS = YES; 346 | GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; 347 | GCC_INLINES_ARE_PRIVATE_EXTERN = NO; 348 | GCC_OPTIMIZATION_LEVEL = 0; 349 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 350 | GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES; 351 | GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; 352 | GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO; 353 | GCC_WARN_UNINITIALIZED_AUTOS = NO; 354 | GCC_WARN_UNUSED_VALUE = NO; 355 | GCC_WARN_UNUSED_VARIABLE = NO; 356 | OTHER_CPLUSPLUSFLAGS = ( 357 | "-D__MACOSX_CORE__", 358 | "-lpthread", 359 | "-mtune=native", 360 | ); 361 | SDKROOT = macosx; 362 | }; 363 | name = Debug; 364 | }; 365 | E4B69B4F0A3A1720003C02F2 /* Release */ = { 366 | isa = XCBuildConfiguration; 367 | baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; 368 | buildSettings = { 369 | ARCHS = "$(NATIVE_ARCH)"; 370 | CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/"; 371 | COPY_PHASE_STRIP = YES; 372 | DEAD_CODE_STRIPPING = YES; 373 | GCC_AUTO_VECTORIZATION = YES; 374 | GCC_ENABLE_SSE3_EXTENSIONS = YES; 375 | GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; 376 | GCC_INLINES_ARE_PRIVATE_EXTERN = NO; 377 | GCC_OPTIMIZATION_LEVEL = 3; 378 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 379 | GCC_UNROLL_LOOPS = YES; 380 | GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES; 381 | GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; 382 | GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO; 383 | GCC_WARN_UNINITIALIZED_AUTOS = NO; 384 | GCC_WARN_UNUSED_VALUE = NO; 385 | GCC_WARN_UNUSED_VARIABLE = NO; 386 | OTHER_CPLUSPLUSFLAGS = ( 387 | "-D__MACOSX_CORE__", 388 | "-lpthread", 389 | "-mtune=native", 390 | ); 391 | SDKROOT = macosx; 392 | }; 393 | name = Release; 394 | }; 395 | E4B69B600A3A1757003C02F2 /* Debug */ = { 396 | isa = XCBuildConfiguration; 397 | buildSettings = { 398 | COPY_PHASE_STRIP = NO; 399 | FRAMEWORK_SEARCH_PATHS = ( 400 | "$(inherited)", 401 | "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 402 | ); 403 | FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\""; 404 | GCC_DYNAMIC_NO_PIC = NO; 405 | GCC_ENABLE_FIX_AND_CONTINUE = YES; 406 | GCC_GENERATE_DEBUGGING_SYMBOLS = YES; 407 | GCC_MODEL_TUNING = NONE; 408 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 409 | GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h"; 410 | INFOPLIST_FILE = "openFrameworks-Info.plist"; 411 | INSTALL_PATH = "$(HOME)/Applications"; 412 | LIBRARY_SEARCH_PATHS = ( 413 | "$(inherited)", 414 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 415 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 416 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 417 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)", 418 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)", 419 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)", 420 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 421 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 422 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 423 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 424 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 425 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 426 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 427 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)", 428 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)", 429 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 430 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 431 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 432 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 433 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 434 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 435 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 436 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 437 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 438 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)", 439 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)", 440 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)", 441 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)", 442 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)", 443 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)", 444 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)", 445 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)", 446 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)", 447 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)", 448 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)", 449 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)", 450 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)", 451 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)", 452 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)", 453 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)", 454 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)", 455 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)", 456 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)", 457 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)", 458 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)", 459 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)", 460 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)", 461 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)", 462 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)", 463 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)", 464 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)", 465 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)", 466 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)", 467 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)", 468 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)", 469 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)", 470 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)", 471 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)", 472 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)", 473 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)", 474 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_52)", 475 | ); 476 | PREBINDING = NO; 477 | PRODUCT_NAME = "example-resamplingDebug"; 478 | WRAPPER_EXTENSION = app; 479 | }; 480 | name = Debug; 481 | }; 482 | E4B69B610A3A1757003C02F2 /* Release */ = { 483 | isa = XCBuildConfiguration; 484 | buildSettings = { 485 | COPY_PHASE_STRIP = YES; 486 | FRAMEWORK_SEARCH_PATHS = ( 487 | "$(inherited)", 488 | "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 489 | ); 490 | FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\""; 491 | GCC_ENABLE_FIX_AND_CONTINUE = NO; 492 | GCC_GENERATE_DEBUGGING_SYMBOLS = YES; 493 | GCC_MODEL_TUNING = NONE; 494 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 495 | GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h"; 496 | INFOPLIST_FILE = "openFrameworks-Info.plist"; 497 | INSTALL_PATH = "$(HOME)/Applications"; 498 | LIBRARY_SEARCH_PATHS = ( 499 | "$(inherited)", 500 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 501 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 502 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 503 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)", 504 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)", 505 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)", 506 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 507 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 508 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 509 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 510 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 511 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 512 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 513 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)", 514 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)", 515 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 516 | "$(LIBRARY_SEARCH_PATHS_QUOTED_1)", 517 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 518 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 519 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 520 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 521 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 522 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 523 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 524 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 525 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)", 526 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)", 527 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)", 528 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)", 529 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)", 530 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)", 531 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)", 532 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)", 533 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)", 534 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)", 535 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)", 536 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)", 537 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)", 538 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)", 539 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)", 540 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)", 541 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)", 542 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)", 543 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)", 544 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)", 545 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)", 546 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)", 547 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)", 548 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)", 549 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)", 550 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)", 551 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)", 552 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)", 553 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)", 554 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)", 555 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)", 556 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)", 557 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)", 558 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)", 559 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)", 560 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)", 561 | ); 562 | PREBINDING = NO; 563 | PRODUCT_NAME = "example-resampling"; 564 | WRAPPER_EXTENSION = app; 565 | }; 566 | name = Release; 567 | }; 568 | /* End XCBuildConfiguration section */ 569 | 570 | /* Begin XCConfigurationList section */ 571 | E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "example-resampling" */ = { 572 | isa = XCConfigurationList; 573 | buildConfigurations = ( 574 | E4B69B4E0A3A1720003C02F2 /* Debug */, 575 | E4B69B4F0A3A1720003C02F2 /* Release */, 576 | ); 577 | defaultConfigurationIsVisible = 0; 578 | defaultConfigurationName = Release; 579 | }; 580 | E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "example-resampling" */ = { 581 | isa = XCConfigurationList; 582 | buildConfigurations = ( 583 | E4B69B600A3A1757003C02F2 /* Debug */, 584 | E4B69B610A3A1757003C02F2 /* Release */, 585 | ); 586 | defaultConfigurationIsVisible = 0; 587 | defaultConfigurationName = Release; 588 | }; 589 | /* End XCConfigurationList section */ 590 | }; 591 | rootObject = E4B69B4C0A3A1720003C02F2 /* Project object */; 592 | } 593 | -------------------------------------------------------------------------------- /example-resampling/example-resampling.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /example-resampling/example-resampling.xcodeproj/xcshareddata/xcschemes/Debug.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 14 | 20 | 21 | 22 | 23 | 24 | 29 | 30 | 31 | 32 | 38 | 39 | 40 | 41 | 50 | 51 | 57 | 58 | 59 | 60 | 61 | 62 | 68 | 69 | 75 | 76 | 77 | 78 | 80 | 81 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /example-resampling/example-resampling.xcodeproj/xcshareddata/xcschemes/Release.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 14 | 20 | 21 | 22 | 23 | 24 | 29 | 30 | 31 | 32 | 38 | 39 | 40 | 41 | 50 | 51 | 57 | 58 | 59 | 60 | 61 | 62 | 68 | 69 | 75 | 76 | 77 | 78 | 80 | 81 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /example-resampling/openFrameworks-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.yourcompany.openFrameworks 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | APPL 15 | CFBundleSignature 16 | ???? 17 | CFBundleVersion 18 | 1.0 19 | 20 | 21 | -------------------------------------------------------------------------------- /example-resampling/src/main.cpp: -------------------------------------------------------------------------------- 1 | #include "ofMain.h" 2 | #include "testApp.h" 3 | #include "ofAppGlutWindow.h" 4 | 5 | //======================================================================== 6 | int main( ) 7 | { 8 | 9 | ofAppGlutWindow window; 10 | ofSetupOpenGL(&window, 1024, 768, OF_WINDOW); 11 | 12 | // this kicks off the running of my app 13 | // can be OF_WINDOW or OF_FULLSCREEN 14 | // pass in width and height too: 15 | ofRunApp(new testApp()); 16 | 17 | } -------------------------------------------------------------------------------- /example-resampling/src/testApp.cpp: -------------------------------------------------------------------------------- 1 | // Example from http://pointclouds.org/documentation/tutorials/resampling.php 2 | 3 | #include 4 | #include "testApp.h" 5 | 6 | //-------------------------------------------------------------- 7 | void testApp::setup() 8 | { 9 | dispRaw = false; 10 | 11 | ofxPCL::PointCloud cloud(new ofxPCL::PointCloud::value_type); 12 | ofxPCL::PointNormalPointCloud mls_points(new ofxPCL::PointNormalPointCloud::value_type); 13 | 14 | cloud = ofxPCL::loadPointCloud("bun0.pcd"); 15 | 16 | meshraw = ofxPCL::toOF(cloud); 17 | 18 | ofxPCL::movingLeastSquares(cloud, mls_points, 0.03); 19 | 20 | mesh = ofxPCL::toOF(mls_points); 21 | } 22 | 23 | //-------------------------------------------------------------- 24 | void testApp::update() 25 | { 26 | 27 | } 28 | 29 | void drawNormals(ofVboMesh &mesh) 30 | { 31 | for (int i = 0; i < mesh.getNumVertices(); i++) 32 | { 33 | ofVec3f v = mesh.getVertex(i); 34 | ofVec3f n = mesh.getNormal(i); 35 | 36 | ofLine(v, v + n * 0.01); 37 | } 38 | } 39 | 40 | //-------------------------------------------------------------- 41 | void testApp::draw() 42 | { 43 | ofEnableAlphaBlending(); 44 | 45 | ofBackground(0); 46 | 47 | cam.begin(); 48 | ofScale(1000, 1000, 1000); 49 | glEnable(GL_DEPTH_TEST); 50 | 51 | if( dispRaw ) { 52 | ofSetColor(255); 53 | meshraw.drawVertices(); 54 | } else { 55 | ofSetColor(255); 56 | mesh.drawVertices(); 57 | 58 | ofSetColor(255, 0, 0, 127); 59 | drawNormals(mesh); 60 | } 61 | 62 | cam.end(); 63 | } 64 | 65 | //-------------------------------------------------------------- 66 | void testApp::keyPressed(int key) 67 | { 68 | if(key == ' ') { 69 | dispRaw = !dispRaw; 70 | } 71 | } 72 | 73 | //-------------------------------------------------------------- 74 | void testApp::keyReleased(int key) 75 | { 76 | 77 | } 78 | 79 | //-------------------------------------------------------------- 80 | void testApp::mouseMoved(int x, int y) 81 | { 82 | 83 | } 84 | 85 | //-------------------------------------------------------------- 86 | void testApp::mouseDragged(int x, int y, int button) 87 | { 88 | 89 | } 90 | 91 | //-------------------------------------------------------------- 92 | void testApp::mousePressed(int x, int y, int button) 93 | { 94 | 95 | } 96 | 97 | //-------------------------------------------------------------- 98 | void testApp::mouseReleased(int x, int y, int button) 99 | { 100 | 101 | } 102 | 103 | //-------------------------------------------------------------- 104 | void testApp::windowResized(int w, int h) 105 | { 106 | 107 | } 108 | 109 | //-------------------------------------------------------------- 110 | void testApp::gotMessage(ofMessage msg) 111 | { 112 | 113 | } 114 | 115 | //-------------------------------------------------------------- 116 | void testApp::dragEvent(ofDragInfo dragInfo) 117 | { 118 | 119 | } -------------------------------------------------------------------------------- /example-resampling/src/testApp.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "ofMain.h" 4 | #include "ofxPCL.h" 5 | 6 | class testApp : public ofBaseApp 7 | { 8 | 9 | public: 10 | void setup(); 11 | void update(); 12 | void draw(); 13 | 14 | void keyPressed(int key); 15 | void keyReleased(int key); 16 | void mouseMoved(int x, int y); 17 | void mouseDragged(int x, int y, int button); 18 | void mousePressed(int x, int y, int button); 19 | void mouseReleased(int x, int y, int button); 20 | void windowResized(int w, int h); 21 | void dragEvent(ofDragInfo dragInfo); 22 | void gotMessage(ofMessage msg); 23 | 24 | ofEasyCam cam; 25 | ofVboMesh mesh, meshraw; 26 | bool dispRaw; 27 | }; -------------------------------------------------------------------------------- /example-statistical-removal/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | # KidTsunami - Professional. Live. Video. 3 | # 4 | # File: CMakeLists.txt 5 | # Author: Alexander Eichhorn 6 | # Contents: Template CMake file libopenframeworks project 7 | # 8 | # 9 | # Copyright 2012 KidTsunami. All Rights Reserved. 10 | # 11 | # Licensed under the Apache License, Version 2.0 (the "License"); 12 | # you may not use this file except in compliance with the License. 13 | # You may obtain a copy of the License at 14 | # 15 | # http://www.apache.org/licenses/LICENSE-2.0 16 | # 17 | # Unless required by applicable law or agreed to in writing, software 18 | # distributed under the License is distributed on an "AS IS" BASIS, 19 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 20 | # See the License for the specific language governing permissions and 21 | # limitations under the License. 22 | # 23 | ############################################################################# 24 | 25 | # minimum cmake version required 26 | cmake_minimum_required(VERSION 2.8) 27 | 28 | # give the project a name 29 | project (example_project) 30 | 31 | # Search for libopenframeworks package (will search for OFConfig.cmake, 32 | # of-config.cmake and FindOF.cmake) - we use of-config.cmake which gets 33 | # installed under CMAKE_INSTALL_PREFIX/lib/cmake/of. 34 | # 35 | # You MUST tell cmake where to search for the configuration, either by 36 | # 37 | # cmake -DCMAKE_PREFIX_PATH=/lib/cmake/of 38 | # 39 | # or by setting the environment variable OF_DIR to the above directory. 40 | # 41 | find_package(OF REQUIRED) 42 | include(FindPackageHandleStandardArgs) 43 | 44 | # set include directories 45 | include_directories (${OF_INCLUDES} ../SharedCode) 46 | 47 | # set cflags 48 | add_definitions (${OF_CFLAGS}) 49 | 50 | # add link search directories 51 | link_directories (${OF_LIBRARY_DIRS}) 52 | 53 | # define sources 54 | add_executable(${CMAKE_PROJECT_NAME} 55 | src/main.cpp 56 | src/testApp.cpp 57 | ) 58 | 59 | # link target against libopenframeworks (and implicitly against all depending 60 | # 3rd-party libraries) 61 | target_link_libraries(${CMAKE_PROJECT_NAME} ${OF_LIBRARIES}) 62 | 63 | # if applicable, set LDFLAGS 64 | if (OF_LDFLAGS) 65 | set_target_properties(${target_name} PROPERTIES LINK_FLAGS ${OF_LDFLAGS}) 66 | endif () 67 | 68 | # soft-link shared data into build directory 69 | 70 | # make sure EXTRA_DATA_OUTPUT_DIRECTORY (without the last name part) exists 71 | #get_filename_component(_SHARE_PATH_BASE ${EXTRA_DATA_OUTPUT_DIRECTORY} PATH) 72 | 73 | # create base directory 74 | #file(MAKE_DIRECTORY ${_SHARE_PATH_BASE}) 75 | 76 | # link shared/ from source tree to build tree 77 | execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink 78 | ${CMAKE_SOURCE_DIR}/share ${CMAKE_BINARY_DIR}/share) 79 | -------------------------------------------------------------------------------- /example-statistical-removal/Project.xcconfig: -------------------------------------------------------------------------------- 1 | //THE PATH TO THE ROOT OF OUR OF PATH RELATIVE TO THIS PROJECT. 2 | //THIS NEEDS TO BE DEFINED BEFORE CoreOF.xcconfig IS INCLUDED 3 | OF_PATH = ../../.. 4 | 5 | //THIS HAS ALL THE HEADER AND LIBS FOR OF CORE 6 | #include "../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig" 7 | 8 | OFXPCL_PATH = $(OF_PATH)/addons/ofxPCL 9 | 10 | OFXPCL_OTHER_LDFLAGS = -L$(OFXPCL_PATH)/libs/pcl/lib/osx -lpcl_common -lpcl_features -lpcl_filters -lpcl_geometry -lpcl_io -lpcl_io_ply -lpcl_kdtree -lpcl_keypoints -lpcl_octree -lpcl_registration -lpcl_sample_consensus -lpcl_search -lpcl_segmentation -lpcl_surface -lpcl_tracking -lqhull 11 | 12 | OFXPCL_HEADER_SEARCH_PATHS = $(OFXPCL_PATH)/libs/pcl/include/ $(OFXPCL_PATH)/libs/pcl/include/eigen3 $(OFXPCL_PATH)/libs/pcl/include/pcl-1.6 13 | 14 | OFXPCL_LD_RUNPATH_SEARCH_PATHS = @executable_path/../../../../../../../addons/ofxPCL/libs/pcl/lib/osx @executable_path/../../../data/pcl/lib 15 | 16 | LD_RUNPATH_SEARCH_PATHS = $(OFXPCL_LD_RUNPATH_SEARCH_PATHS) 17 | 18 | OTHER_LDFLAGS = $(OF_CORE_LIBS) $(OFXPCL_OTHER_LDFLAGS) 19 | HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS) $(OFXPCL_HEADER_SEARCH_PATHS) 20 | -------------------------------------------------------------------------------- /example-statistical-removal/bin/data/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in here apart from the .gitignore file 2 | * 3 | !.gitignore -------------------------------------------------------------------------------- /example-statistical-removal/example-statistical-removal.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /example-statistical-removal/example-statistical-removal.xcodeproj/xcshareddata/xcschemes/Debug.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 14 | 20 | 21 | 22 | 23 | 24 | 29 | 30 | 31 | 32 | 38 | 39 | 40 | 41 | 50 | 51 | 57 | 58 | 59 | 60 | 61 | 62 | 68 | 69 | 75 | 76 | 77 | 78 | 80 | 81 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /example-statistical-removal/example-statistical-removal.xcodeproj/xcshareddata/xcschemes/Release.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 14 | 20 | 21 | 22 | 23 | 24 | 29 | 30 | 31 | 32 | 38 | 39 | 40 | 41 | 50 | 51 | 57 | 58 | 59 | 60 | 61 | 62 | 68 | 69 | 75 | 76 | 77 | 78 | 80 | 81 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /example-statistical-removal/openFrameworks-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.yourcompany.openFrameworks 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | APPL 15 | CFBundleSignature 16 | ???? 17 | CFBundleVersion 18 | 1.0 19 | 20 | 21 | -------------------------------------------------------------------------------- /example-statistical-removal/src/main.cpp: -------------------------------------------------------------------------------- 1 | #include "ofMain.h" 2 | #include "testApp.h" 3 | #include "ofAppGlutWindow.h" 4 | 5 | //======================================================================== 6 | int main( ) 7 | { 8 | 9 | ofAppGlutWindow window; 10 | ofSetupOpenGL(&window, 1024, 768, OF_WINDOW); 11 | 12 | // this kicks off the running of my app 13 | // can be OF_WINDOW or OF_FULLSCREEN 14 | // pass in width and height too: 15 | ofRunApp(new testApp()); 16 | 17 | } -------------------------------------------------------------------------------- /example-statistical-removal/src/testApp.cpp: -------------------------------------------------------------------------------- 1 | // Example from http://pointclouds.org/documentation/tutorials/statistical_outlier.php 2 | 3 | #include 4 | #include "testApp.h" 5 | 6 | //-------------------------------------------------------------- 7 | void testApp::setup() 8 | { 9 | dispRaw = false; 10 | 11 | ofxPCL::PointCloud cloud(new ofxPCL::PointCloud::value_type); 12 | 13 | cloud = ofxPCL::loadPointCloud(string("table_scene_lms400.pcd")); 14 | 15 | meshraw = ofxPCL::toOF(cloud); 16 | 17 | std::cerr << "PointCloud before filtering: " << cloud->width * cloud->height 18 | << " data points (" << pcl::getFieldsList (*cloud) << ")." << endl; 19 | 20 | ofxPCL::statisticalOutlierRemoval(cloud, 50, 1.0); 21 | 22 | std::cerr << "PointCloud after filtering: " << cloud->width * cloud->height 23 | << " data points (" << pcl::getFieldsList (*cloud) << ")." << endl; 24 | 25 | ofxPCL::savePointCloud("table_scene_lms400_inliers.pcd", cloud); 26 | 27 | mesh = ofxPCL::toOF(cloud); 28 | } 29 | 30 | //-------------------------------------------------------------- 31 | void testApp::update() 32 | { 33 | 34 | } 35 | 36 | //-------------------------------------------------------------- 37 | void testApp::draw() 38 | { 39 | ofBackground(0); 40 | 41 | cam.begin(); 42 | ofScale(100, 100, 100); 43 | glEnable(GL_DEPTH_TEST); 44 | 45 | if( dispRaw ) { 46 | meshraw.drawVertices(); 47 | } else { 48 | mesh.drawVertices(); 49 | } 50 | 51 | cam.end(); 52 | } 53 | 54 | //-------------------------------------------------------------- 55 | void testApp::keyPressed(int key) 56 | { 57 | if(key == ' ') { 58 | dispRaw = !dispRaw; 59 | } 60 | } 61 | 62 | //-------------------------------------------------------------- 63 | void testApp::keyReleased(int key) 64 | { 65 | 66 | } 67 | 68 | //-------------------------------------------------------------- 69 | void testApp::mouseMoved(int x, int y) 70 | { 71 | 72 | } 73 | 74 | //-------------------------------------------------------------- 75 | void testApp::mouseDragged(int x, int y, int button) 76 | { 77 | 78 | } 79 | 80 | //-------------------------------------------------------------- 81 | void testApp::mousePressed(int x, int y, int button) 82 | { 83 | 84 | } 85 | 86 | //-------------------------------------------------------------- 87 | void testApp::mouseReleased(int x, int y, int button) 88 | { 89 | 90 | } 91 | 92 | //-------------------------------------------------------------- 93 | void testApp::windowResized(int w, int h) 94 | { 95 | 96 | } 97 | 98 | //-------------------------------------------------------------- 99 | void testApp::gotMessage(ofMessage msg) 100 | { 101 | 102 | } 103 | 104 | //-------------------------------------------------------------- 105 | void testApp::dragEvent(ofDragInfo dragInfo) 106 | { 107 | 108 | } -------------------------------------------------------------------------------- /example-statistical-removal/src/testApp.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #define nil Boost_nil 4 | #define Nil Boost_Nil 5 | #include "ofMain.h" 6 | #include "ofxPCL.h" 7 | #undef Nil 8 | #undef nil 9 | 10 | class testApp : public ofBaseApp 11 | { 12 | 13 | public: 14 | void setup(); 15 | void update(); 16 | void draw(); 17 | 18 | void keyPressed(int key); 19 | void keyReleased(int key); 20 | void mouseMoved(int x, int y); 21 | void mouseDragged(int x, int y, int button); 22 | void mousePressed(int x, int y, int button); 23 | void mouseReleased(int x, int y, int button); 24 | void windowResized(int w, int h); 25 | void dragEvent(ofDragInfo dragInfo); 26 | void gotMessage(ofMessage msg); 27 | 28 | ofEasyCam cam; 29 | ofVboMesh mesh, meshraw; 30 | bool dispRaw; 31 | }; -------------------------------------------------------------------------------- /example-voxel-grid/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | # KidTsunami - Professional. Live. Video. 3 | # 4 | # File: CMakeLists.txt 5 | # Author: Alexander Eichhorn 6 | # Contents: Template CMake file libopenframeworks project 7 | # 8 | # 9 | # Copyright 2012 KidTsunami. All Rights Reserved. 10 | # 11 | # Licensed under the Apache License, Version 2.0 (the "License"); 12 | # you may not use this file except in compliance with the License. 13 | # You may obtain a copy of the License at 14 | # 15 | # http://www.apache.org/licenses/LICENSE-2.0 16 | # 17 | # Unless required by applicable law or agreed to in writing, software 18 | # distributed under the License is distributed on an "AS IS" BASIS, 19 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 20 | # See the License for the specific language governing permissions and 21 | # limitations under the License. 22 | # 23 | ############################################################################# 24 | 25 | # minimum cmake version required 26 | cmake_minimum_required(VERSION 2.8) 27 | 28 | # give the project a name 29 | project (example_project) 30 | 31 | # Search for libopenframeworks package (will search for OFConfig.cmake, 32 | # of-config.cmake and FindOF.cmake) - we use of-config.cmake which gets 33 | # installed under CMAKE_INSTALL_PREFIX/lib/cmake/of. 34 | # 35 | # You MUST tell cmake where to search for the configuration, either by 36 | # 37 | # cmake -DCMAKE_PREFIX_PATH=/lib/cmake/of 38 | # 39 | # or by setting the environment variable OF_DIR to the above directory. 40 | # 41 | find_package(OF REQUIRED) 42 | include(FindPackageHandleStandardArgs) 43 | 44 | # set include directories 45 | include_directories (${OF_INCLUDES} ../SharedCode) 46 | 47 | # set cflags 48 | add_definitions (${OF_CFLAGS}) 49 | 50 | # add link search directories 51 | link_directories (${OF_LIBRARY_DIRS}) 52 | 53 | # define sources 54 | add_executable(${CMAKE_PROJECT_NAME} 55 | src/main.cpp 56 | src/testApp.cpp 57 | ) 58 | 59 | # link target against libopenframeworks (and implicitly against all depending 60 | # 3rd-party libraries) 61 | target_link_libraries(${CMAKE_PROJECT_NAME} ${OF_LIBRARIES}) 62 | 63 | # if applicable, set LDFLAGS 64 | if (OF_LDFLAGS) 65 | set_target_properties(${target_name} PROPERTIES LINK_FLAGS ${OF_LDFLAGS}) 66 | endif () 67 | 68 | # soft-link shared data into build directory 69 | 70 | # make sure EXTRA_DATA_OUTPUT_DIRECTORY (without the last name part) exists 71 | #get_filename_component(_SHARE_PATH_BASE ${EXTRA_DATA_OUTPUT_DIRECTORY} PATH) 72 | 73 | # create base directory 74 | #file(MAKE_DIRECTORY ${_SHARE_PATH_BASE}) 75 | 76 | # link shared/ from source tree to build tree 77 | execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink 78 | ${CMAKE_SOURCE_DIR}/share ${CMAKE_BINARY_DIR}/share) 79 | -------------------------------------------------------------------------------- /example-voxel-grid/Project.xcconfig: -------------------------------------------------------------------------------- 1 | //THE PATH TO THE ROOT OF OUR OF PATH RELATIVE TO THIS PROJECT. 2 | //THIS NEEDS TO BE DEFINED BEFORE CoreOF.xcconfig IS INCLUDED 3 | OF_PATH = ../../.. 4 | 5 | //THIS HAS ALL THE HEADER AND LIBS FOR OF CORE 6 | #include "../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig" 7 | 8 | OFXPCL_PATH = $(OF_PATH)/addons/ofxPCL 9 | 10 | OFXPCL_OTHER_LDFLAGS = -L$(OFXPCL_PATH)/libs/pcl/lib/osx -lpcl_common -lpcl_features -lpcl_filters -lpcl_geometry -lpcl_io -lpcl_io_ply -lpcl_kdtree -lpcl_keypoints -lpcl_octree -lpcl_registration -lpcl_sample_consensus -lpcl_search -lpcl_segmentation -lpcl_surface -lpcl_tracking -lqhull 11 | 12 | OFXPCL_HEADER_SEARCH_PATHS = $(OFXPCL_PATH)/libs/pcl/include/ $(OFXPCL_PATH)/libs/pcl/include/eigen3 $(OFXPCL_PATH)/libs/pcl/include/pcl-1.6 13 | 14 | OFXPCL_LD_RUNPATH_SEARCH_PATHS = @executable_path/../../../../../../../addons/ofxPCL/libs/pcl/lib/osx @executable_path/../../../data/pcl/lib 15 | 16 | LD_RUNPATH_SEARCH_PATHS = $(OFXPCL_LD_RUNPATH_SEARCH_PATHS) 17 | 18 | OTHER_LDFLAGS = $(OF_CORE_LIBS) $(OFXPCL_OTHER_LDFLAGS) 19 | HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS) $(OFXPCL_HEADER_SEARCH_PATHS) 20 | -------------------------------------------------------------------------------- /example-voxel-grid/bin/data/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in here apart from the .gitignore file 2 | * 3 | !.gitignore -------------------------------------------------------------------------------- /example-voxel-grid/example-voxel-grid.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 42; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 6019175D16E1E02D00A7FCEB /* ofxPCL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6019175716E1E02D00A7FCEB /* ofxPCL.cpp */; }; 11 | 6019175E16E1E02D00A7FCEB /* Utility.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6019175B16E1E02D00A7FCEB /* Utility.cpp */; }; 12 | BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; }; 13 | E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4328148138ABC890047C5CB /* openFrameworksDebug.a */; }; 14 | E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9710E8CC7DD009D7055 /* AGL.framework */; }; 15 | E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */; }; 16 | E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */; }; 17 | E45BE97E0E8CC7DD009D7055 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9740E8CC7DD009D7055 /* Carbon.framework */; }; 18 | E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */; }; 19 | E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */; }; 20 | E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9770E8CC7DD009D7055 /* CoreServices.framework */; }; 21 | E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9790E8CC7DD009D7055 /* OpenGL.framework */; }; 22 | E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */; }; 23 | E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1D0A3A1BDC003C02F2 /* main.cpp */; }; 24 | E4B69E210A3A1BDC003C02F2 /* testApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */; }; 25 | E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424410CC5A17004149E2 /* AppKit.framework */; }; 26 | E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424510CC5A17004149E2 /* Cocoa.framework */; }; 27 | E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424610CC5A17004149E2 /* IOKit.framework */; }; 28 | E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; }; 29 | E7E077E515D3B63C0020DFD4 /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */; }; 30 | E7E077E815D3B6510020DFD4 /* QTKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7E077E715D3B6510020DFD4 /* QTKit.framework */; }; 31 | E7F985F815E0DEA3003869B5 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7F985F515E0DE99003869B5 /* Accelerate.framework */; }; 32 | /* End PBXBuildFile section */ 33 | 34 | /* Begin PBXContainerItemProxy section */ 35 | E4328147138ABC890047C5CB /* PBXContainerItemProxy */ = { 36 | isa = PBXContainerItemProxy; 37 | containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; 38 | proxyType = 2; 39 | remoteGlobalIDString = E4B27C1510CBEB8E00536013; 40 | remoteInfo = openFrameworks; 41 | }; 42 | E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */ = { 43 | isa = PBXContainerItemProxy; 44 | containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; 45 | proxyType = 1; 46 | remoteGlobalIDString = E4B27C1410CBEB8E00536013; 47 | remoteInfo = openFrameworks; 48 | }; 49 | /* End PBXContainerItemProxy section */ 50 | 51 | /* Begin PBXCopyFilesBuildPhase section */ 52 | E4C2427710CC5ABF004149E2 /* CopyFiles */ = { 53 | isa = PBXCopyFilesBuildPhase; 54 | buildActionMask = 2147483647; 55 | dstPath = ""; 56 | dstSubfolderSpec = 10; 57 | files = ( 58 | BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */, 59 | ); 60 | runOnlyForDeploymentPostprocessing = 0; 61 | }; 62 | /* End PBXCopyFilesBuildPhase section */ 63 | 64 | /* Begin PBXFileReference section */ 65 | 6019175716E1E02D00A7FCEB /* ofxPCL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxPCL.cpp; sourceTree = ""; }; 66 | 6019175816E1E02D00A7FCEB /* ofxPCL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxPCL.h; sourceTree = ""; }; 67 | 6019175916E1E02D00A7FCEB /* Tree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Tree.h; sourceTree = ""; }; 68 | 6019175A16E1E02D00A7FCEB /* Types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Types.h; sourceTree = ""; }; 69 | 6019175B16E1E02D00A7FCEB /* Utility.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Utility.cpp; sourceTree = ""; }; 70 | 6019175C16E1E02D00A7FCEB /* Utility.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utility.h; sourceTree = ""; }; 71 | BBAB23BE13894E4700AA2426 /* GLUT.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLUT.framework; path = ../../../libs/glut/lib/osx/GLUT.framework; sourceTree = ""; }; 72 | E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = openFrameworksLib.xcodeproj; path = ../../../libs/openFrameworksCompiled/project/osx/openFrameworksLib.xcodeproj; sourceTree = SOURCE_ROOT; }; 73 | E45BE9710E8CC7DD009D7055 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = ""; }; 74 | E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = ""; }; 75 | E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = ""; }; 76 | E45BE9740E8CC7DD009D7055 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = ""; }; 77 | E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = ""; }; 78 | E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = ""; }; 79 | E45BE9770E8CC7DD009D7055 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = ""; }; 80 | E45BE9790E8CC7DD009D7055 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = ""; }; 81 | E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = ""; }; 82 | E4B69B5B0A3A1756003C02F2 /* example-voxel-gridDebug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "example-voxel-gridDebug.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 83 | E4B69E1D0A3A1BDC003C02F2 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = src/main.cpp; sourceTree = SOURCE_ROOT; }; 84 | E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = testApp.cpp; path = src/testApp.cpp; sourceTree = SOURCE_ROOT; }; 85 | E4B69E1F0A3A1BDC003C02F2 /* testApp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = testApp.h; path = src/testApp.h; sourceTree = SOURCE_ROOT; }; 86 | E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = "openFrameworks-Info.plist"; sourceTree = ""; }; 87 | E4C2424410CC5A17004149E2 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; 88 | E4C2424510CC5A17004149E2 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; 89 | E4C2424610CC5A17004149E2 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = ""; }; 90 | E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = CoreOF.xcconfig; path = ../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig; sourceTree = SOURCE_ROOT; }; 91 | E4EB6923138AFD0F00A09F29 /* Project.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Project.xcconfig; sourceTree = ""; }; 92 | E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = /System/Library/Frameworks/CoreVideo.framework; sourceTree = ""; }; 93 | E7E077E715D3B6510020DFD4 /* QTKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = /System/Library/Frameworks/QTKit.framework; sourceTree = ""; }; 94 | E7F985F515E0DE99003869B5 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = /System/Library/Frameworks/Accelerate.framework; sourceTree = ""; }; 95 | /* End PBXFileReference section */ 96 | 97 | /* Begin PBXFrameworksBuildPhase section */ 98 | E4B69B590A3A1756003C02F2 /* Frameworks */ = { 99 | isa = PBXFrameworksBuildPhase; 100 | buildActionMask = 2147483647; 101 | files = ( 102 | E7F985F815E0DEA3003869B5 /* Accelerate.framework in Frameworks */, 103 | E7E077E815D3B6510020DFD4 /* QTKit.framework in Frameworks */, 104 | E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */, 105 | E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */, 106 | E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */, 107 | E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */, 108 | E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */, 109 | E45BE97E0E8CC7DD009D7055 /* Carbon.framework in Frameworks */, 110 | E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */, 111 | E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */, 112 | E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */, 113 | E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */, 114 | E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */, 115 | E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */, 116 | E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */, 117 | E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */, 118 | E7E077E515D3B63C0020DFD4 /* CoreVideo.framework in Frameworks */, 119 | ); 120 | runOnlyForDeploymentPostprocessing = 0; 121 | }; 122 | /* End PBXFrameworksBuildPhase section */ 123 | 124 | /* Begin PBXGroup section */ 125 | 6019175516E1E02500A7FCEB /* ofxPCL */ = { 126 | isa = PBXGroup; 127 | children = ( 128 | 6019175616E1E02D00A7FCEB /* src */, 129 | ); 130 | name = ofxPCL; 131 | sourceTree = ""; 132 | }; 133 | 6019175616E1E02D00A7FCEB /* src */ = { 134 | isa = PBXGroup; 135 | children = ( 136 | 6019175716E1E02D00A7FCEB /* ofxPCL.cpp */, 137 | 6019175816E1E02D00A7FCEB /* ofxPCL.h */, 138 | 6019175916E1E02D00A7FCEB /* Tree.h */, 139 | 6019175A16E1E02D00A7FCEB /* Types.h */, 140 | 6019175B16E1E02D00A7FCEB /* Utility.cpp */, 141 | 6019175C16E1E02D00A7FCEB /* Utility.h */, 142 | ); 143 | name = src; 144 | path = ../src; 145 | sourceTree = ""; 146 | }; 147 | BB4B014C10F69532006C3DED /* addons */ = { 148 | isa = PBXGroup; 149 | children = ( 150 | 6019175516E1E02500A7FCEB /* ofxPCL */, 151 | ); 152 | name = addons; 153 | sourceTree = ""; 154 | }; 155 | BBAB23C913894ECA00AA2426 /* system frameworks */ = { 156 | isa = PBXGroup; 157 | children = ( 158 | E7F985F515E0DE99003869B5 /* Accelerate.framework */, 159 | E4C2424410CC5A17004149E2 /* AppKit.framework */, 160 | E4C2424510CC5A17004149E2 /* Cocoa.framework */, 161 | E4C2424610CC5A17004149E2 /* IOKit.framework */, 162 | E45BE9710E8CC7DD009D7055 /* AGL.framework */, 163 | E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */, 164 | E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */, 165 | E45BE9740E8CC7DD009D7055 /* Carbon.framework */, 166 | E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */, 167 | E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */, 168 | E45BE9770E8CC7DD009D7055 /* CoreServices.framework */, 169 | E45BE9790E8CC7DD009D7055 /* OpenGL.framework */, 170 | E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */, 171 | E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */, 172 | E7E077E715D3B6510020DFD4 /* QTKit.framework */, 173 | ); 174 | name = "system frameworks"; 175 | sourceTree = ""; 176 | }; 177 | BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */ = { 178 | isa = PBXGroup; 179 | children = ( 180 | BBAB23BE13894E4700AA2426 /* GLUT.framework */, 181 | ); 182 | name = "3rd party frameworks"; 183 | sourceTree = ""; 184 | }; 185 | E4328144138ABC890047C5CB /* Products */ = { 186 | isa = PBXGroup; 187 | children = ( 188 | E4328148138ABC890047C5CB /* openFrameworksDebug.a */, 189 | ); 190 | name = Products; 191 | sourceTree = ""; 192 | }; 193 | E45BE5980E8CC70C009D7055 /* frameworks */ = { 194 | isa = PBXGroup; 195 | children = ( 196 | BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */, 197 | BBAB23C913894ECA00AA2426 /* system frameworks */, 198 | ); 199 | name = frameworks; 200 | sourceTree = ""; 201 | }; 202 | E4B69B4A0A3A1720003C02F2 = { 203 | isa = PBXGroup; 204 | children = ( 205 | E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */, 206 | E4EB6923138AFD0F00A09F29 /* Project.xcconfig */, 207 | E4B69E1C0A3A1BDC003C02F2 /* src */, 208 | E4EEC9E9138DF44700A80321 /* openFrameworks */, 209 | BB4B014C10F69532006C3DED /* addons */, 210 | E45BE5980E8CC70C009D7055 /* frameworks */, 211 | E4B69B5B0A3A1756003C02F2 /* example-voxel-gridDebug.app */, 212 | ); 213 | sourceTree = ""; 214 | }; 215 | E4B69E1C0A3A1BDC003C02F2 /* src */ = { 216 | isa = PBXGroup; 217 | children = ( 218 | E4B69E1D0A3A1BDC003C02F2 /* main.cpp */, 219 | E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */, 220 | E4B69E1F0A3A1BDC003C02F2 /* testApp.h */, 221 | ); 222 | path = src; 223 | sourceTree = SOURCE_ROOT; 224 | }; 225 | E4EEC9E9138DF44700A80321 /* openFrameworks */ = { 226 | isa = PBXGroup; 227 | children = ( 228 | E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */, 229 | E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */, 230 | ); 231 | name = openFrameworks; 232 | sourceTree = ""; 233 | }; 234 | /* End PBXGroup section */ 235 | 236 | /* Begin PBXNativeTarget section */ 237 | E4B69B5A0A3A1756003C02F2 /* example-voxel-grid */ = { 238 | isa = PBXNativeTarget; 239 | buildConfigurationList = E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "example-voxel-grid" */; 240 | buildPhases = ( 241 | E4B69B580A3A1756003C02F2 /* Sources */, 242 | E4B69B590A3A1756003C02F2 /* Frameworks */, 243 | E4B6FFFD0C3F9AB9008CF71C /* ShellScript */, 244 | E4C2427710CC5ABF004149E2 /* CopyFiles */, 245 | ); 246 | buildRules = ( 247 | ); 248 | dependencies = ( 249 | E4EEB9AC138B136A00A80321 /* PBXTargetDependency */, 250 | ); 251 | name = "example-voxel-grid"; 252 | productName = myOFApp; 253 | productReference = E4B69B5B0A3A1756003C02F2 /* example-voxel-gridDebug.app */; 254 | productType = "com.apple.product-type.application"; 255 | }; 256 | /* End PBXNativeTarget section */ 257 | 258 | /* Begin PBXProject section */ 259 | E4B69B4C0A3A1720003C02F2 /* Project object */ = { 260 | isa = PBXProject; 261 | buildConfigurationList = E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "example-voxel-grid" */; 262 | compatibilityVersion = "Xcode 2.4"; 263 | developmentRegion = English; 264 | hasScannedForEncodings = 0; 265 | knownRegions = ( 266 | English, 267 | Japanese, 268 | French, 269 | German, 270 | ); 271 | mainGroup = E4B69B4A0A3A1720003C02F2; 272 | productRefGroup = E4B69B4A0A3A1720003C02F2; 273 | projectDirPath = ""; 274 | projectReferences = ( 275 | { 276 | ProductGroup = E4328144138ABC890047C5CB /* Products */; 277 | ProjectRef = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; 278 | }, 279 | ); 280 | projectRoot = ""; 281 | targets = ( 282 | E4B69B5A0A3A1756003C02F2 /* example-voxel-grid */, 283 | ); 284 | }; 285 | /* End PBXProject section */ 286 | 287 | /* Begin PBXReferenceProxy section */ 288 | E4328148138ABC890047C5CB /* openFrameworksDebug.a */ = { 289 | isa = PBXReferenceProxy; 290 | fileType = archive.ar; 291 | path = openFrameworksDebug.a; 292 | remoteRef = E4328147138ABC890047C5CB /* PBXContainerItemProxy */; 293 | sourceTree = BUILT_PRODUCTS_DIR; 294 | }; 295 | /* End PBXReferenceProxy section */ 296 | 297 | /* Begin PBXShellScriptBuildPhase section */ 298 | E4B6FFFD0C3F9AB9008CF71C /* ShellScript */ = { 299 | isa = PBXShellScriptBuildPhase; 300 | buildActionMask = 2147483647; 301 | files = ( 302 | ); 303 | inputPaths = ( 304 | ); 305 | outputPaths = ( 306 | ); 307 | runOnlyForDeploymentPostprocessing = 0; 308 | shellPath = /bin/sh; 309 | shellScript = "cp -f ../../../libs/fmodex/lib/osx/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/libfmodex.dylib\"; install_name_tool -change ./libfmodex.dylib @executable_path/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME\";"; 310 | }; 311 | /* End PBXShellScriptBuildPhase section */ 312 | 313 | /* Begin PBXSourcesBuildPhase section */ 314 | E4B69B580A3A1756003C02F2 /* Sources */ = { 315 | isa = PBXSourcesBuildPhase; 316 | buildActionMask = 2147483647; 317 | files = ( 318 | E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */, 319 | E4B69E210A3A1BDC003C02F2 /* testApp.cpp in Sources */, 320 | 6019175D16E1E02D00A7FCEB /* ofxPCL.cpp in Sources */, 321 | 6019175E16E1E02D00A7FCEB /* Utility.cpp in Sources */, 322 | ); 323 | runOnlyForDeploymentPostprocessing = 0; 324 | }; 325 | /* End PBXSourcesBuildPhase section */ 326 | 327 | /* Begin PBXTargetDependency section */ 328 | E4EEB9AC138B136A00A80321 /* PBXTargetDependency */ = { 329 | isa = PBXTargetDependency; 330 | name = openFrameworks; 331 | targetProxy = E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */; 332 | }; 333 | /* End PBXTargetDependency section */ 334 | 335 | /* Begin XCBuildConfiguration section */ 336 | E4B69B4E0A3A1720003C02F2 /* Debug */ = { 337 | isa = XCBuildConfiguration; 338 | baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; 339 | buildSettings = { 340 | ARCHS = "$(NATIVE_ARCH)"; 341 | CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/"; 342 | COPY_PHASE_STRIP = NO; 343 | DEAD_CODE_STRIPPING = YES; 344 | GCC_AUTO_VECTORIZATION = YES; 345 | GCC_ENABLE_SSE3_EXTENSIONS = YES; 346 | GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; 347 | GCC_INLINES_ARE_PRIVATE_EXTERN = NO; 348 | GCC_OPTIMIZATION_LEVEL = 0; 349 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 350 | GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES; 351 | GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; 352 | GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO; 353 | GCC_WARN_UNINITIALIZED_AUTOS = NO; 354 | GCC_WARN_UNUSED_VALUE = NO; 355 | GCC_WARN_UNUSED_VARIABLE = NO; 356 | OTHER_CPLUSPLUSFLAGS = ( 357 | "-D__MACOSX_CORE__", 358 | "-lpthread", 359 | "-mtune=native", 360 | ); 361 | SDKROOT = macosx; 362 | }; 363 | name = Debug; 364 | }; 365 | E4B69B4F0A3A1720003C02F2 /* Release */ = { 366 | isa = XCBuildConfiguration; 367 | baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; 368 | buildSettings = { 369 | ARCHS = "$(NATIVE_ARCH)"; 370 | CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/"; 371 | COPY_PHASE_STRIP = YES; 372 | DEAD_CODE_STRIPPING = YES; 373 | GCC_AUTO_VECTORIZATION = YES; 374 | GCC_ENABLE_SSE3_EXTENSIONS = YES; 375 | GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; 376 | GCC_INLINES_ARE_PRIVATE_EXTERN = NO; 377 | GCC_OPTIMIZATION_LEVEL = 3; 378 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 379 | GCC_UNROLL_LOOPS = YES; 380 | GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES; 381 | GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; 382 | GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO; 383 | GCC_WARN_UNINITIALIZED_AUTOS = NO; 384 | GCC_WARN_UNUSED_VALUE = NO; 385 | GCC_WARN_UNUSED_VARIABLE = NO; 386 | OTHER_CPLUSPLUSFLAGS = ( 387 | "-D__MACOSX_CORE__", 388 | "-lpthread", 389 | "-mtune=native", 390 | ); 391 | SDKROOT = macosx; 392 | }; 393 | name = Release; 394 | }; 395 | E4B69B600A3A1757003C02F2 /* Debug */ = { 396 | isa = XCBuildConfiguration; 397 | buildSettings = { 398 | COPY_PHASE_STRIP = NO; 399 | FRAMEWORK_SEARCH_PATHS = ( 400 | "$(inherited)", 401 | "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 402 | ); 403 | FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\""; 404 | GCC_DYNAMIC_NO_PIC = NO; 405 | GCC_ENABLE_FIX_AND_CONTINUE = YES; 406 | GCC_GENERATE_DEBUGGING_SYMBOLS = YES; 407 | GCC_MODEL_TUNING = NONE; 408 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 409 | GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h"; 410 | INFOPLIST_FILE = "openFrameworks-Info.plist"; 411 | INSTALL_PATH = "$(HOME)/Applications"; 412 | LIBRARY_SEARCH_PATHS = ( 413 | "$(inherited)", 414 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 415 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 416 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 417 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)", 418 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)", 419 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)", 420 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 421 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 422 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 423 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 424 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 425 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 426 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 427 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)", 428 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)", 429 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 430 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 431 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 432 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 433 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 434 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 435 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 436 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 437 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 438 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)", 439 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)", 440 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)", 441 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)", 442 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)", 443 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)", 444 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)", 445 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)", 446 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)", 447 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)", 448 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)", 449 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)", 450 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)", 451 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)", 452 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)", 453 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)", 454 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)", 455 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)", 456 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)", 457 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)", 458 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)", 459 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)", 460 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)", 461 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)", 462 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)", 463 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)", 464 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)", 465 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)", 466 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)", 467 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)", 468 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)", 469 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)", 470 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)", 471 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)", 472 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)", 473 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)", 474 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_52)", 475 | ); 476 | PREBINDING = NO; 477 | PRODUCT_NAME = "example-voxel-gridDebug"; 478 | WRAPPER_EXTENSION = app; 479 | }; 480 | name = Debug; 481 | }; 482 | E4B69B610A3A1757003C02F2 /* Release */ = { 483 | isa = XCBuildConfiguration; 484 | buildSettings = { 485 | COPY_PHASE_STRIP = YES; 486 | FRAMEWORK_SEARCH_PATHS = ( 487 | "$(inherited)", 488 | "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 489 | ); 490 | FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\""; 491 | GCC_ENABLE_FIX_AND_CONTINUE = NO; 492 | GCC_GENERATE_DEBUGGING_SYMBOLS = YES; 493 | GCC_MODEL_TUNING = NONE; 494 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 495 | GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h"; 496 | INFOPLIST_FILE = "openFrameworks-Info.plist"; 497 | INSTALL_PATH = "$(HOME)/Applications"; 498 | LIBRARY_SEARCH_PATHS = ( 499 | "$(inherited)", 500 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 501 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 502 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 503 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)", 504 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)", 505 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)", 506 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 507 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 508 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 509 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 510 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 511 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 512 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 513 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)", 514 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)", 515 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 516 | "$(LIBRARY_SEARCH_PATHS_QUOTED_1)", 517 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 518 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 519 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 520 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 521 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 522 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 523 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 524 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 525 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)", 526 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)", 527 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)", 528 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)", 529 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)", 530 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)", 531 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)", 532 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)", 533 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)", 534 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)", 535 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)", 536 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)", 537 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)", 538 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)", 539 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)", 540 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)", 541 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)", 542 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)", 543 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)", 544 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)", 545 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)", 546 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)", 547 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)", 548 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)", 549 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)", 550 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)", 551 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)", 552 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)", 553 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)", 554 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)", 555 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)", 556 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)", 557 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)", 558 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)", 559 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)", 560 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)", 561 | ); 562 | PREBINDING = NO; 563 | PRODUCT_NAME = "example-voxel-grid"; 564 | WRAPPER_EXTENSION = app; 565 | }; 566 | name = Release; 567 | }; 568 | /* End XCBuildConfiguration section */ 569 | 570 | /* Begin XCConfigurationList section */ 571 | E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "example-voxel-grid" */ = { 572 | isa = XCConfigurationList; 573 | buildConfigurations = ( 574 | E4B69B4E0A3A1720003C02F2 /* Debug */, 575 | E4B69B4F0A3A1720003C02F2 /* Release */, 576 | ); 577 | defaultConfigurationIsVisible = 0; 578 | defaultConfigurationName = Release; 579 | }; 580 | E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "example-voxel-grid" */ = { 581 | isa = XCConfigurationList; 582 | buildConfigurations = ( 583 | E4B69B600A3A1757003C02F2 /* Debug */, 584 | E4B69B610A3A1757003C02F2 /* Release */, 585 | ); 586 | defaultConfigurationIsVisible = 0; 587 | defaultConfigurationName = Release; 588 | }; 589 | /* End XCConfigurationList section */ 590 | }; 591 | rootObject = E4B69B4C0A3A1720003C02F2 /* Project object */; 592 | } 593 | -------------------------------------------------------------------------------- /example-voxel-grid/example-voxel-grid.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /example-voxel-grid/example-voxel-grid.xcodeproj/xcshareddata/xcschemes/Debug.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 14 | 20 | 21 | 22 | 23 | 24 | 29 | 30 | 31 | 32 | 38 | 39 | 40 | 41 | 50 | 51 | 57 | 58 | 59 | 60 | 61 | 62 | 68 | 69 | 75 | 76 | 77 | 78 | 80 | 81 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /example-voxel-grid/example-voxel-grid.xcodeproj/xcshareddata/xcschemes/Release.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 14 | 20 | 21 | 22 | 23 | 24 | 29 | 30 | 31 | 32 | 38 | 39 | 40 | 41 | 50 | 51 | 57 | 58 | 59 | 60 | 61 | 62 | 68 | 69 | 75 | 76 | 77 | 78 | 80 | 81 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /example-voxel-grid/openFrameworks-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.yourcompany.openFrameworks 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | APPL 15 | CFBundleSignature 16 | ???? 17 | CFBundleVersion 18 | 1.0 19 | 20 | 21 | -------------------------------------------------------------------------------- /example-voxel-grid/src/main.cpp: -------------------------------------------------------------------------------- 1 | #include "ofMain.h" 2 | #include "testApp.h" 3 | #include "ofAppGlutWindow.h" 4 | 5 | //======================================================================== 6 | int main( ) 7 | { 8 | 9 | ofAppGlutWindow window; 10 | ofSetupOpenGL(&window, 1024, 768, OF_WINDOW); 11 | 12 | // this kicks off the running of my app 13 | // can be OF_WINDOW or OF_FULLSCREEN 14 | // pass in width and height too: 15 | ofRunApp(new testApp()); 16 | 17 | } -------------------------------------------------------------------------------- /example-voxel-grid/src/testApp.cpp: -------------------------------------------------------------------------------- 1 | // Example from http://pointclouds.org/documentation/tutorials/voxel_grid.php 2 | 3 | #include 4 | #include "testApp.h" 5 | 6 | //-------------------------------------------------------------- 7 | void testApp::setup() 8 | { 9 | dispRaw = false; 10 | 11 | ofxPCL::PointCloud cloud(new ofxPCL::PointCloud::value_type); 12 | 13 | cloud = ofxPCL::loadPointCloud(string("table_scene_lms400.pcd")); 14 | 15 | meshraw = ofxPCL::toOF(cloud); 16 | 17 | std::cerr << "PointCloud before filtering: " << cloud->width * cloud->height 18 | << " data points (" << pcl::getFieldsList (*cloud) << ")." << endl; 19 | 20 | ofxPCL::downsample(cloud, ofVec3f(0.01f, 0.01f, 0.01f)); 21 | 22 | std::cerr << "PointCloud after filtering: " << cloud->width * cloud->height 23 | << " data points (" << pcl::getFieldsList (*cloud) << ")." << endl; 24 | 25 | ofxPCL::savePointCloud("table_scene_lms400_downsampled.pcd", cloud); 26 | 27 | mesh = ofxPCL::toOF(cloud); 28 | } 29 | 30 | //-------------------------------------------------------------- 31 | void testApp::update() 32 | { 33 | 34 | } 35 | 36 | //-------------------------------------------------------------- 37 | void testApp::draw() 38 | { 39 | ofBackground(0); 40 | 41 | cam.begin(); 42 | ofScale(100, 100, 100); 43 | glEnable(GL_DEPTH_TEST); 44 | 45 | if( dispRaw ) { 46 | meshraw.drawVertices(); 47 | } else { 48 | mesh.drawVertices(); 49 | } 50 | 51 | cam.end(); 52 | } 53 | 54 | //-------------------------------------------------------------- 55 | void testApp::keyPressed(int key) 56 | { 57 | if(key == ' ') { 58 | dispRaw = !dispRaw; 59 | } 60 | } 61 | 62 | //-------------------------------------------------------------- 63 | void testApp::keyReleased(int key) 64 | { 65 | 66 | } 67 | 68 | //-------------------------------------------------------------- 69 | void testApp::mouseMoved(int x, int y) 70 | { 71 | 72 | } 73 | 74 | //-------------------------------------------------------------- 75 | void testApp::mouseDragged(int x, int y, int button) 76 | { 77 | 78 | } 79 | 80 | //-------------------------------------------------------------- 81 | void testApp::mousePressed(int x, int y, int button) 82 | { 83 | 84 | } 85 | 86 | //-------------------------------------------------------------- 87 | void testApp::mouseReleased(int x, int y, int button) 88 | { 89 | 90 | } 91 | 92 | //-------------------------------------------------------------- 93 | void testApp::windowResized(int w, int h) 94 | { 95 | 96 | } 97 | 98 | //-------------------------------------------------------------- 99 | void testApp::gotMessage(ofMessage msg) 100 | { 101 | 102 | } 103 | 104 | //-------------------------------------------------------------- 105 | void testApp::dragEvent(ofDragInfo dragInfo) 106 | { 107 | 108 | } -------------------------------------------------------------------------------- /example-voxel-grid/src/testApp.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #define nil Boost_nil 4 | #define Nil Boost_Nil 5 | #include "ofMain.h" 6 | #include "ofxPCL.h" 7 | #undef Nil 8 | #undef nil 9 | 10 | class testApp : public ofBaseApp 11 | { 12 | 13 | public: 14 | void setup(); 15 | void update(); 16 | void draw(); 17 | 18 | void keyPressed(int key); 19 | void keyReleased(int key); 20 | void mouseMoved(int x, int y); 21 | void mouseDragged(int x, int y, int button); 22 | void mousePressed(int x, int y, int button); 23 | void mouseReleased(int x, int y, int button); 24 | void windowResized(int w, int h); 25 | void dragEvent(ofDragInfo dragInfo); 26 | void gotMessage(ofMessage msg); 27 | 28 | ofEasyCam cam; 29 | ofVboMesh mesh, meshraw; 30 | bool dispRaw; 31 | }; 32 | -------------------------------------------------------------------------------- /libs/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /src/Tree.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef nil 4 | #undef nil 5 | #endif 6 | 7 | // octree 8 | #include 9 | 10 | // kdtree 11 | #include 12 | 13 | namespace ofxPCL 14 | { 15 | 16 | // 17 | // octree 18 | // 19 | template 20 | class Octree 21 | { 22 | public: 23 | 24 | typedef pcl::octree::OctreePointCloud OctreeType; 25 | typedef typename OctreeType::Ptr Ref; 26 | 27 | Ref octree; 28 | 29 | struct IndexDistance 30 | { 31 | int index; 32 | float distance; 33 | }; 34 | 35 | Octree() {} 36 | 37 | Octree(const pcl::PointCloud &cloud, float resolution = 1) 38 | { 39 | octree = Ref(new OctreeType(resolution)); 40 | octree->setInputCloud(cloud); 41 | octree->addPointsFromInputCloud(); 42 | } 43 | 44 | vector voxelSearch(ofVec3f search_point) 45 | { 46 | vector result; 47 | 48 | T point; 49 | point.x = search_point.x; 50 | point.y = search_point.y; 51 | point.z = search_point.z; 52 | 53 | octree->voxelSearch(point, result); 54 | return result; 55 | } 56 | 57 | vector nearestKSearch(ofVec3f search_point, int K) 58 | { 59 | vector result; 60 | vector indexes; 61 | vector distances; 62 | 63 | T point; 64 | point.x = search_point.x; 65 | point.y = search_point.y; 66 | point.z = search_point.z; 67 | 68 | int n = octree->nearestKSearch(point, K, indexes, distances); 69 | result.resize(n); 70 | 71 | for (int i = 0; i < n; i++) 72 | { 73 | result[i].index = indexes[i]; 74 | result[i].distance = distances[i]; 75 | } 76 | 77 | return result; 78 | } 79 | 80 | IndexDistance approxNearestSearch(ofVec3f search_point) 81 | { 82 | IndexDistance result; 83 | 84 | T point; 85 | point.x = search_point.x; 86 | point.y = search_point.y; 87 | point.z = search_point.z; 88 | 89 | octree->approxNearestSearch(point, result.index, result.distance); 90 | return result; 91 | } 92 | 93 | vector radiusSearch(ofVec3f search_point, float radius, int limit) 94 | { 95 | vector result; 96 | vector indexes; 97 | vector distances; 98 | 99 | T point; 100 | point.x = search_point.x; 101 | point.y = search_point.y; 102 | point.z = search_point.z; 103 | 104 | int n = octree->radiusSearch(point, radius, indexes, distances, limit); 105 | result.resize(n); 106 | 107 | for (int i = 0; i < n; i++) 108 | { 109 | result[i].index = indexes[i]; 110 | result[i].distance = distances[i]; 111 | } 112 | 113 | return result; 114 | } 115 | }; 116 | 117 | // 118 | // KdTree 119 | // 120 | template 121 | class KdTree 122 | { 123 | public: 124 | 125 | typedef pcl::search::KdTree KdTreeType; 126 | typedef typename KdTreeType::Ptr Ref; 127 | 128 | Ref kdtree; 129 | 130 | KdTree() {} 131 | 132 | KdTree(const typename pcl::PointCloud::Ptr &cloud) 133 | { 134 | kdtree = Ref(new KdTreeType); 135 | kdtree->setInputCloud(cloud); 136 | } 137 | 138 | }; 139 | 140 | } -------------------------------------------------------------------------------- /src/Types.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef nil 4 | #undef nil 5 | #endif 6 | 7 | #include 8 | #include 9 | 10 | namespace ofxPCL 11 | { 12 | 13 | typedef pcl::Normal NormalType; 14 | typedef pcl::PointCloud::Ptr NormalPointCloud; 15 | 16 | typedef pcl::PointXYZ PointType; 17 | typedef pcl::PointCloud::Ptr PointCloud; 18 | 19 | typedef pcl::PointXYZRGB ColorPointType; 20 | typedef pcl::PointCloud::Ptr ColorPointCloud; 21 | 22 | typedef pcl::PointNormal PointNormalType; 23 | typedef pcl::PointCloud::Ptr PointNormalPointCloud; 24 | 25 | typedef pcl::PointXYZRGBNormal ColorNormalPointType; 26 | typedef pcl::PointCloud::Ptr ColorNormalPointCloud; 27 | 28 | } -------------------------------------------------------------------------------- /src/Utility.cpp: -------------------------------------------------------------------------------- 1 | #include "Utility.h" 2 | 3 | #include "ofxPCL.h" 4 | 5 | namespace ofxPCL { 6 | 7 | void convert(const ofPixels& color, const ofShortPixels& depth, ColorNormalPointCloud &cloud, const int skip) 8 | { 9 | if (!cloud) 10 | cloud = New(); 11 | 12 | ColorPointCloud temp = New(); 13 | NormalPointCloud normals = New(); 14 | 15 | convert(color, depth, temp, skip); 16 | integralImageNormalEstimation(temp, normals); 17 | 18 | cloud->width = temp->points.size(); 19 | cloud->height = 1; 20 | cloud->points.resize(cloud->width * cloud->height); 21 | 22 | for (int i = 0; i < cloud->points.size(); i++) 23 | { 24 | ColorNormalPointType &p = cloud->points[i]; 25 | ColorPointType &cp = temp->points[i]; 26 | NormalType &n = normals->points[i]; 27 | 28 | p.x = cp.x; 29 | p.y = cp.y; 30 | p.z = cp.z; 31 | 32 | p.r = cp.r; 33 | p.g = cp.g; 34 | p.b = cp.b; 35 | 36 | p.normal_x = -n.normal_x; 37 | p.normal_y = -n.normal_y; 38 | p.normal_z = -n.normal_z; 39 | } 40 | } 41 | 42 | } -------------------------------------------------------------------------------- /src/Utility.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "ofMain.h" 4 | 5 | #include "Types.h" 6 | 7 | #include 8 | 9 | namespace ofxPCL 10 | { 11 | 12 | template 13 | inline T New() 14 | { 15 | return T(new pcl::PointCloud); 16 | } 17 | 18 | 19 | template 20 | inline void copy(const T1& src, T2& dst) 21 | { 22 | pcl::copyPointCloud(*src, *dst); 23 | } 24 | 25 | // 26 | // mesh type conversion 27 | // 28 | 29 | template 30 | void convert(const T1&, T2&); 31 | 32 | template <> 33 | inline void convert(const PointCloud& cloud, ofMesh& mesh) 34 | { 35 | assert(cloud); 36 | 37 | const size_t num_point = cloud->points.size(); 38 | if (mesh.getNumVertices() != num_point) mesh.getVertices().resize(num_point); 39 | 40 | for (int i = 0; i < num_point; i++) 41 | { 42 | PointType &p = cloud->points[i]; 43 | mesh.setVertex(i, ofVec3f(p.x, p.y, p.z)); 44 | } 45 | } 46 | 47 | template <> 48 | inline void convert(const ColorPointCloud& cloud, ofMesh& mesh) 49 | { 50 | assert(cloud); 51 | 52 | float inv_byte = 1. / 255.; 53 | const size_t num_point = cloud->points.size(); 54 | 55 | if (mesh.getNumVertices() != num_point) mesh.getVertices().resize(num_point); 56 | if (mesh.getNumColors() != num_point) mesh.getColors().resize(num_point); 57 | 58 | for (int i = 0; i < num_point; i++) 59 | { 60 | ColorPointType &p = cloud->points[i]; 61 | mesh.setColor(i, ofFloatColor(p.r * inv_byte, p.g * inv_byte, p.b * inv_byte)); 62 | mesh.setVertex(i, ofVec3f(p.x, p.y, p.z)); 63 | } 64 | } 65 | 66 | template <> 67 | inline void convert(const PointNormalPointCloud& cloud, ofMesh& mesh) 68 | { 69 | assert(cloud); 70 | 71 | const size_t num_point = cloud->points.size(); 72 | 73 | if (mesh.getNumVertices() != num_point) mesh.getVertices().resize(num_point); 74 | if (mesh.getNumNormals() != num_point) mesh.getNormals().resize(num_point); 75 | 76 | for (int i = 0; i < num_point; i++) 77 | { 78 | PointNormalType &p = cloud->points[i]; 79 | mesh.setNormal(i, ofVec3f(-p.normal_x, -p.normal_y, -p.normal_z)); 80 | mesh.setVertex(i, ofVec3f(p.x, p.y, p.z)); 81 | } 82 | } 83 | 84 | template <> 85 | inline void convert(const ColorNormalPointCloud& cloud, ofMesh& mesh) 86 | { 87 | assert(cloud); 88 | 89 | float inv_byte = 1. / 255.; 90 | const size_t num_point = cloud->points.size(); 91 | 92 | if (mesh.getNumVertices() != num_point) mesh.getVertices().resize(num_point); 93 | if (mesh.getNumColors() != num_point) mesh.getColors().resize(num_point); 94 | if (mesh.getNumNormals() != num_point) mesh.getNormals().resize(num_point); 95 | 96 | for (int i = 0; i < num_point; i++) 97 | { 98 | ColorNormalPointType &p = cloud->points[i]; 99 | mesh.setNormal(i, ofVec3f(p.normal_x, p.normal_y, p.normal_z)); 100 | mesh.setColor(i, ofFloatColor(p.r * inv_byte, p.g * inv_byte, p.b * inv_byte)); 101 | mesh.setVertex(i, ofVec3f(p.x, p.y, p.z)); 102 | } 103 | } 104 | 105 | inline void convert(const vector &points, PointCloud& cloud) 106 | { 107 | if (!cloud) 108 | cloud = New(); 109 | 110 | const size_t num_point = points.size(); 111 | 112 | cloud->width = num_point; 113 | cloud->height = 1; 114 | cloud->points.resize(cloud->width * cloud->height); 115 | 116 | if (points.empty()) return; 117 | 118 | for (int i = 0; i < num_point; i++) 119 | { 120 | PointType &p = cloud->points[i]; 121 | const ofVec3f &o = points[i]; 122 | p.x = o.x; 123 | p.y = o.y; 124 | p.z = o.z; 125 | } 126 | } 127 | 128 | inline void convert(const vector &points, 129 | const vector &colors, 130 | ColorPointCloud &cloud) 131 | { 132 | if (!cloud) 133 | cloud = New(); 134 | 135 | const size_t num_point = points.size(); 136 | 137 | cloud->width = num_point; 138 | cloud->height = 1; 139 | cloud->points.resize(cloud->width * cloud->height); 140 | 141 | if (points.empty()) return; 142 | if (colors.empty()) return; 143 | 144 | for (int i = 0; i < num_point; i++) 145 | { 146 | ColorPointType &p = cloud->points[i]; 147 | const ofVec3f &o = points[i]; 148 | const ofFloatColor &c = colors[i]; 149 | p.x = o.x; 150 | p.y = o.y; 151 | p.z = o.z; 152 | p.r = c.r * 255; 153 | p.g = c.g * 255; 154 | p.b = c.b * 255; 155 | } 156 | } 157 | 158 | inline void convert(const vector &points, 159 | const vector &colors, 160 | ColorPointCloud &cloud) 161 | { 162 | if (!cloud) 163 | cloud = New(); 164 | 165 | const size_t num_point = points.size(); 166 | 167 | cloud->width = num_point; 168 | cloud->height = 1; 169 | cloud->points.resize(cloud->width * cloud->height); 170 | 171 | if (points.empty()) return; 172 | if (colors.empty()) return; 173 | 174 | for (int i = 0; i < num_point; i++) 175 | { 176 | ColorPointType &p = cloud->points[i]; 177 | const ofVec3f &o = points[i]; 178 | const ofColor &c = colors[i]; 179 | p.x = o.x; 180 | p.y = o.y; 181 | p.z = o.z; 182 | p.r = c.r; 183 | p.g = c.g; 184 | p.b = c.b; 185 | } 186 | } 187 | 188 | inline void convert(const vector &points, 189 | const vector &colors, 190 | const vector &normals, 191 | ColorNormalPointCloud &cloud) 192 | { 193 | if (!cloud) 194 | cloud = New(); 195 | 196 | const size_t num_point = points.size(); 197 | 198 | cloud->width = num_point; 199 | cloud->height = 1; 200 | cloud->points.resize(cloud->width * cloud->height); 201 | 202 | if (points.empty()) return; 203 | if (colors.empty()) return; 204 | if (normals.empty()) return; 205 | 206 | for (int i = 0; i < num_point; i++) 207 | { 208 | ColorNormalPointType &p = cloud->points[i]; 209 | const ofVec3f &o = points[i]; 210 | const ofFloatColor &c = colors[i]; 211 | const ofVec3f &n = normals[i]; 212 | p.x = o.x; 213 | p.y = o.y; 214 | p.z = o.z; 215 | p.r = c.r * 255; 216 | p.g = c.g * 255; 217 | p.b = c.b * 255; 218 | p.normal_x = n.x; 219 | p.normal_y = n.y; 220 | p.normal_z = n.z; 221 | } 222 | } 223 | 224 | inline void convert(const vector &points, 225 | const vector &colors, 226 | const vector &normals, 227 | ColorNormalPointCloud &cloud) 228 | { 229 | if (!cloud) 230 | cloud = New(); 231 | 232 | const size_t num_point = points.size(); 233 | 234 | cloud->width = num_point; 235 | cloud->height = 1; 236 | cloud->points.resize(cloud->width * cloud->height); 237 | 238 | if (points.empty()) return; 239 | if (colors.empty()) return; 240 | if (normals.empty()) return; 241 | 242 | for (int i = 0; i < num_point; i++) 243 | { 244 | ColorNormalPointType &p = cloud->points[i]; 245 | const ofVec3f &o = points[i]; 246 | const ofColor &c = colors[i]; 247 | const ofVec3f &n = normals[i]; 248 | p.x = o.x; 249 | p.y = o.y; 250 | p.z = o.z; 251 | p.r = c.r; 252 | p.g = c.g; 253 | p.b = c.b; 254 | p.normal_x = n.x; 255 | p.normal_y = n.y; 256 | p.normal_z = n.z; 257 | } 258 | } 259 | 260 | inline void convert(const ofPixels& color, const ofShortPixels& depth, ColorPointCloud &cloud, const int skip = 1) 261 | { 262 | if (!cloud) 263 | cloud = New(); 264 | 265 | cloud->width = color.getWidth() / skip; 266 | cloud->height = color.getHeight() / skip; 267 | cloud->is_dense = false; 268 | 269 | cloud->sensor_origin_.setZero(); 270 | cloud->sensor_orientation_.w () = 0.0; 271 | cloud->sensor_orientation_.x () = 1.0; 272 | cloud->sensor_orientation_.y () = 0.0; 273 | cloud->sensor_orientation_.z () = 0.0; 274 | 275 | cloud->resize(cloud->width * cloud->height); 276 | 277 | const int bytesParPixel = color.getBytesPerPixel(); 278 | const int centerX = 640 / 2; 279 | const int centerY = 480 / 2; 280 | 281 | const float ref_pix_size = 0.104200; 282 | const float ref_distance = 1. / 120.0; 283 | const float factor_base = ref_pix_size * ref_distance * 2.f; 284 | 285 | unsigned int depth_idx = 0; 286 | 287 | float bad_point = std::numeric_limits::quiet_NaN(); 288 | 289 | for (int y = 0; y < 480; y += skip) 290 | { 291 | const unsigned short *depth_ptr = depth.getPixels() + 640 * y; 292 | const unsigned char *color_ptr = color.getPixels() + 640 * y * bytesParPixel; 293 | 294 | for (register int x = 0; x < 640; x += skip) 295 | { 296 | const unsigned short d = *depth_ptr; 297 | const unsigned char *c = color_ptr; 298 | ColorPointType &pp = cloud->points[depth_idx]; 299 | 300 | if (d == 0) 301 | { 302 | pp.x = pp.y = pp.z = bad_point; 303 | } 304 | else 305 | { 306 | // centimeter to meter 307 | pp.z = d * 0.001; 308 | const float factor = factor_base * pp.z; 309 | 310 | pp.x = (x - centerX) * factor; 311 | pp.y = (y - centerY) * factor; 312 | } 313 | 314 | pp.r = c[0]; 315 | pp.g = c[1]; 316 | pp.b = c[2]; 317 | 318 | depth_ptr += skip; 319 | color_ptr += skip * bytesParPixel; 320 | 321 | depth_idx++; 322 | } 323 | } 324 | } 325 | 326 | void convert(const ofPixels& color, const ofShortPixels& depth, ColorNormalPointCloud &cloud, const int skip = 1); 327 | 328 | template <> 329 | inline void convert(const ofMesh& mesh, PointCloud& cloud) 330 | { 331 | ofMesh &m = const_cast(mesh); 332 | convert(m.getVertices(), cloud); 333 | } 334 | 335 | template <> 336 | inline void convert(const ofMesh& mesh, ColorPointCloud& cloud) 337 | { 338 | ofMesh &m = const_cast(mesh); 339 | convert(m.getVertices(), m.getColors(), cloud); 340 | } 341 | 342 | template <> 343 | inline void convert(const ofMesh& mesh, ColorNormalPointCloud& cloud) 344 | { 345 | ofMesh &m = const_cast(mesh); 346 | convert(m.getVertices(), m.getColors(), m.getNormals(), cloud); 347 | } 348 | 349 | inline ofMesh toOF(const PointCloud cloud) 350 | { 351 | ofMesh mesh; 352 | convert(cloud, mesh); 353 | return mesh; 354 | } 355 | 356 | inline ofMesh toOF(const PointNormalPointCloud cloud) 357 | { 358 | ofMesh mesh; 359 | convert(cloud, mesh); 360 | return mesh; 361 | } 362 | 363 | inline ofMesh toOF(const ColorPointCloud cloud) 364 | { 365 | ofMesh mesh; 366 | convert(cloud, mesh); 367 | return mesh; 368 | } 369 | 370 | inline ofMesh toOF(const ColorNormalPointCloud cloud) 371 | { 372 | ofMesh mesh; 373 | convert(cloud, mesh); 374 | return mesh; 375 | } 376 | 377 | inline PointCloud toPCL(const vector &points) 378 | { 379 | PointCloud cloud(new PointCloud::value_type); 380 | convert(points, cloud); 381 | return cloud; 382 | } 383 | 384 | inline ColorPointCloud toPCL(const vector &points, const vector &colors) 385 | { 386 | ColorPointCloud cloud(new ColorPointCloud::value_type); 387 | convert(points, colors, cloud); 388 | return cloud; 389 | } 390 | 391 | inline ColorPointCloud toPCL(const vector &points, const vector &colors) 392 | { 393 | ColorPointCloud cloud(new ColorPointCloud::value_type); 394 | convert(points, colors, cloud); 395 | return cloud; 396 | } 397 | 398 | inline ColorNormalPointCloud toPCL(const vector &points, const vector &colors, const vector &normals) 399 | { 400 | ColorNormalPointCloud cloud(new ColorNormalPointCloud::value_type); 401 | convert(points, colors, normals, cloud); 402 | return cloud; 403 | } 404 | 405 | inline ColorNormalPointCloud toPCL(const vector &points, const vector &colors, const vector &normals) 406 | { 407 | ColorNormalPointCloud cloud(new ColorNormalPointCloud::value_type); 408 | convert(points, colors, normals, cloud); 409 | return cloud; 410 | } 411 | 412 | template 413 | T toPCL(const ofMesh &mesh); 414 | 415 | template <> 416 | inline PointCloud toPCL(const ofMesh &mesh) 417 | { 418 | PointCloud cloud(new PointCloud::value_type); 419 | convert(mesh, cloud); 420 | return cloud; 421 | } 422 | 423 | template <> 424 | inline ColorPointCloud toPCL(const ofMesh &mesh) 425 | { 426 | ColorPointCloud cloud(new ColorPointCloud::value_type); 427 | convert(mesh, cloud); 428 | return cloud; 429 | } 430 | 431 | template <> 432 | inline ColorNormalPointCloud toPCL(const ofMesh &mesh) 433 | { 434 | ColorNormalPointCloud cloud(new ColorNormalPointCloud::value_type); 435 | convert(mesh, cloud); 436 | return cloud; 437 | } 438 | 439 | } -------------------------------------------------------------------------------- /src/ofxPCL.cpp: -------------------------------------------------------------------------------- 1 | #include "ofxPCL.h" 2 | 3 | using namespace pcl; 4 | 5 | namespace ofxPCL 6 | { 7 | 8 | ofMesh organizedFastMesh(const ofPixels& colorImage, const ofShortPixels& depthImage, const int skip) 9 | { 10 | ColorPointCloud temp = New(); 11 | 12 | convert(colorImage, depthImage, temp, skip); 13 | 14 | pcl::OrganizedFastMesh ofm; 15 | ofm.setTrianglePixelSize(1); 16 | ofm.setTriangulationType(pcl::OrganizedFastMesh::TRIANGLE_RIGHT_CUT); 17 | ofm.setInputCloud(temp); 18 | 19 | boost::shared_ptr > verts(new std::vector); 20 | ofm.reconstruct(*verts); 21 | 22 | NormalPointCloud normals = New(); 23 | integralImageNormalEstimation(temp, normals); 24 | 25 | ofMesh mesh; 26 | 27 | for (int i = 0; i < verts->size(); i++) 28 | { 29 | const pcl::Vertices &v = verts->at(i); 30 | 31 | if (v.vertices.size() != 3) continue; 32 | 33 | const ColorPointType &p1 = temp->points[v.vertices[0]]; 34 | const ColorPointType &p2 = temp->points[v.vertices[1]]; 35 | const ColorPointType &p3 = temp->points[v.vertices[2]]; 36 | 37 | const NormalType &n1 = normals->points[v.vertices[0]]; 38 | const NormalType &n2 = normals->points[v.vertices[1]]; 39 | const NormalType &n3 = normals->points[v.vertices[2]]; 40 | 41 | mesh.addColor(ofColor(p1.r, p1.g, p1.b)); 42 | mesh.addColor(ofColor(p2.r, p2.g, p2.b)); 43 | mesh.addColor(ofColor(p3.r, p3.g, p3.b)); 44 | 45 | mesh.addNormal(ofVec3f(-n1.normal_x, -n1.normal_y, -n1.normal_z)); 46 | mesh.addNormal(ofVec3f(-n2.normal_x, -n2.normal_y, -n2.normal_z)); 47 | mesh.addNormal(ofVec3f(-n3.normal_x, -n3.normal_y, -n3.normal_z)); 48 | 49 | mesh.addVertex(ofVec3f(p1.x, p1.y, p1.z)); 50 | mesh.addVertex(ofVec3f(p2.x, p2.y, p2.z)); 51 | mesh.addVertex(ofVec3f(p3.x, p3.y, p3.z)); 52 | } 53 | 54 | mesh.setMode(OF_PRIMITIVE_TRIANGLES); 55 | 56 | return mesh; 57 | } 58 | 59 | } -------------------------------------------------------------------------------- /src/ofxPCL.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "ofMain.h" 4 | 5 | #ifdef nil 6 | #undef nil 7 | #endif 8 | 9 | #include "Types.h" 10 | #include "Utility.h" 11 | #include "Tree.h" 12 | 13 | // file io 14 | #include 15 | 16 | // transform 17 | #include 18 | 19 | // thresold 20 | #include 21 | 22 | // outlier removal 23 | #include 24 | #include 25 | 26 | // segmentation 27 | #include 28 | 29 | // downsample 30 | #include 31 | 32 | // segmentation 33 | #include 34 | #include 35 | #include 36 | #include 37 | 38 | // triangulate 39 | #include 40 | #include 41 | #include 42 | #include 43 | 44 | // mls 45 | #include 46 | #include 47 | 48 | #include 49 | #include 50 | 51 | namespace ofxPCL 52 | { 53 | 54 | // 55 | // file io 56 | // 57 | template 58 | inline T loadPointCloud(string path) 59 | { 60 | T cloud(new typename T::value_type); 61 | path = ofToDataPath(path); 62 | 63 | if (pcl::io::loadPCDFile(path.c_str(), *cloud) == -1) 64 | ofLogError("ofxPCL:loadPointCloud") << "file not found: " << path; 65 | 66 | return cloud; 67 | } 68 | 69 | template 70 | inline void savePointCloud(string path, T cloud) 71 | { 72 | assert(cloud); 73 | 74 | if (cloud->points.empty()) return; 75 | 76 | path = ofToDataPath(path); 77 | pcl::io::savePCDFileBinary(path.c_str(), *cloud); 78 | } 79 | 80 | // 81 | // transform 82 | // 83 | template 84 | void transform(T cloud, ofMatrix4x4 matrix) 85 | { 86 | assert(cloud); 87 | 88 | if (cloud->points.empty()) return; 89 | 90 | Eigen::Matrix4f mat; 91 | memcpy(&mat, matrix.getPtr(), sizeof(float) * 16); 92 | pcl::transformPointCloud(*cloud, *cloud, mat); 93 | } 94 | 95 | // 96 | // threshold 97 | // 98 | template 99 | inline void threshold(T cloud, const char *dimension = "X", float min = 0, float max = 100) 100 | { 101 | assert(cloud); 102 | 103 | if (cloud->points.empty()) return; 104 | 105 | pcl::PassThrough pass; 106 | pass.setInputCloud(cloud); 107 | pass.setFilterFieldName(dimension); 108 | pass.setFilterLimits(min, max); 109 | pass.filter(*cloud); 110 | } 111 | 112 | // 113 | // downsample 114 | // 115 | template 116 | inline void downsample(T cloud, ofVec3f resolution = ofVec3f(1, 1, 1)) 117 | { 118 | assert(cloud); 119 | 120 | if (cloud->points.empty()) return; 121 | 122 | pcl::VoxelGrid sor; 123 | sor.setInputCloud(cloud); 124 | sor.setLeafSize(resolution.x, resolution.y, resolution.z); 125 | sor.filter(*cloud); 126 | } 127 | 128 | // 129 | // outlier removal 130 | // 131 | template 132 | inline void statisticalOutlierRemoval(T cloud, int nr_k = 50, double std_mul = 1.0) 133 | { 134 | assert(cloud); 135 | 136 | if (cloud->points.empty()) return; 137 | 138 | pcl::StatisticalOutlierRemoval sor; 139 | sor.setInputCloud(cloud); 140 | sor.setMeanK(nr_k); 141 | sor.setStddevMulThresh(std_mul); 142 | sor.filter(*cloud); 143 | } 144 | 145 | template 146 | inline void radiusOutlierRemoval(T cloud, double radius, int num_min_points) 147 | { 148 | assert(cloud); 149 | 150 | if (cloud->points.empty()) return; 151 | 152 | pcl::RadiusOutlierRemoval outrem; 153 | outrem.setInputCloud(cloud); 154 | outrem.setRadiusSearch(radius); 155 | outrem.setMinNeighborsInRadius(num_min_points); 156 | outrem.filter(*cloud); 157 | } 158 | 159 | // 160 | // segmentation 161 | // 162 | template 163 | inline vector segmentation(T cloud, const pcl::SacModel model_type = pcl::SACMODEL_PLANE, const float distance_threshold = 1, const int min_points_limit = 10, const int max_segment_count = 30) 164 | { 165 | assert(cloud); 166 | 167 | if (cloud->points.empty()) return; 168 | 169 | pcl::ModelCoefficients::Ptr coefficients(new pcl::ModelCoefficients()); 170 | pcl::PointIndices::Ptr inliers(new pcl::PointIndices()); 171 | 172 | pcl::SACSegmentation seg; 173 | seg.setOptimizeCoefficients(false); 174 | 175 | seg.setModelType(model_type); 176 | seg.setMethodType(pcl::SAC_RANSAC); 177 | seg.setDistanceThreshold(distance_threshold); 178 | seg.setMaxIterations(500); 179 | 180 | T temp(new typename T::value_type(*cloud)); 181 | const size_t original_szie = temp->points.size(); 182 | 183 | pcl::ExtractIndices extract; 184 | vector result; 185 | 186 | int segment_count = 0; 187 | while (temp->size() > original_szie * 0.3) 188 | { 189 | if (segment_count > max_segment_count) break; 190 | segment_count++; 191 | 192 | seg.setInputCloud(temp); 193 | seg.segment(*inliers, *coefficients); 194 | 195 | if (inliers->indices.size() < min_points_limit) 196 | break; 197 | 198 | T filterd_point_cloud(new typename T::value_type); 199 | 200 | extract.setInputCloud(temp); 201 | extract.setIndices(inliers); 202 | extract.setNegative(false); 203 | extract.filter(*filterd_point_cloud); 204 | 205 | if (filterd_point_cloud->points.size() > 0) 206 | { 207 | result.push_back(filterd_point_cloud); 208 | } 209 | 210 | extract.setNegative(true); 211 | extract.filter(*temp); 212 | } 213 | 214 | return result; 215 | } 216 | 217 | // 218 | // normal estimation 219 | // 220 | template 221 | inline void normalEstimation(const T1 &cloud, T2 &output_cloud_with_normals) 222 | { 223 | if (output_cloud_with_normals == NULL) 224 | output_cloud_with_normals = New(); 225 | 226 | assert(cloud); 227 | 228 | if (cloud->points.empty()) return; 229 | 230 | pcl::NormalEstimation n; 231 | NormalPointCloud normals(new typename NormalPointCloud::value_type); 232 | 233 | KdTree kdtree(cloud); 234 | 235 | n.setInputCloud(cloud); 236 | n.setSearchMethod(kdtree.kdtree); 237 | n.setKSearch(20); 238 | n.compute(*normals); 239 | 240 | pcl::concatenateFields(*cloud, *normals, *output_cloud_with_normals); 241 | } 242 | 243 | // 244 | // MLS 245 | // 246 | template 247 | void movingLeastSquares(const T1 &cloud, T2 &output_cloud_with_normals, float search_radius = 30) 248 | { 249 | if (output_cloud_with_normals == NULL) 250 | output_cloud_with_normals = New(); 251 | 252 | assert(cloud); 253 | 254 | if (cloud->points.empty()) return; 255 | 256 | KdTree kdtree; 257 | 258 | pcl::MovingLeastSquares< 259 | typename T1::value_type::PointType, 260 | typename T2::value_type::PointType 261 | > mls; 262 | 263 | mls.setComputeNormals(true); 264 | 265 | // Set parameters 266 | mls.setInputCloud(cloud); 267 | mls.setPolynomialFit(true); 268 | mls.setSearchMethod(kdtree.kdtree); 269 | mls.setSearchRadius(search_radius); 270 | 271 | // Reconstruct 272 | mls.process(*output_cloud_with_normals); 273 | } 274 | 275 | // 276 | // triangulate 277 | // 278 | template 279 | ofMesh triangulate(const T &cloud_with_normals, float search_radius = 30) 280 | { 281 | assert(cloud_with_normals); 282 | 283 | ofMesh mesh; 284 | 285 | if (cloud_with_normals->points.empty()) return mesh; 286 | 287 | KdTree kdtree(cloud_with_normals); 288 | 289 | typename pcl::GreedyProjectionTriangulation gp3; 290 | pcl::PolygonMesh triangles; 291 | 292 | // Set the maximum distance between connected points (maximum edge length) 293 | gp3.setSearchRadius(search_radius); 294 | 295 | gp3.setMu(2.5); 296 | gp3.setMaximumNearestNeighbors(20); 297 | gp3.setMaximumSurfaceAngle(ofDegToRad(90)); 298 | gp3.setMinimumAngle(ofDegToRad(10)); 299 | gp3.setMaximumAngle(ofDegToRad(180)); 300 | gp3.setNormalConsistency(false); 301 | 302 | gp3.setInputCloud(cloud_with_normals); 303 | gp3.setSearchMethod(kdtree.kdtree); 304 | gp3.reconstruct(triangles); 305 | 306 | convert(cloud_with_normals, mesh); 307 | 308 | for (int i = 0; i < triangles.polygons.size(); i++) 309 | { 310 | pcl::Vertices &v = triangles.polygons[i]; 311 | 312 | if (v.vertices.size() == 3) 313 | mesh.addTriangle(v.vertices[0], v.vertices[1], v.vertices[2]); 314 | } 315 | 316 | return mesh; 317 | } 318 | 319 | // 320 | // GridProjection # dosen't work...? 321 | // 322 | template 323 | ofMesh gridProjection(const T &cloud_with_normals, float resolution = 1, int padding_size = 3) 324 | { 325 | ofMesh mesh; 326 | 327 | if (cloud_with_normals->points.empty()) return mesh; 328 | 329 | typename pcl::KdTreeFLANN::Ptr tree(new pcl::KdTreeFLANN); 330 | tree->setInputCloud(cloud_with_normals); 331 | 332 | pcl::GridProjection gp; 333 | pcl::PolygonMesh triangles; 334 | 335 | gp.setResolution(resolution); 336 | gp.setPaddingSize(padding_size); 337 | gp.setNearestNeighborNum(30); 338 | 339 | // Get result 340 | gp.setInputCloud(cloud_with_normals); 341 | gp.setSearchMethod(tree); 342 | gp.reconstruct(triangles); 343 | 344 | convert(cloud_with_normals, mesh); 345 | 346 | for (int i = 0; i < triangles.polygons.size(); i++) 347 | { 348 | pcl::Vertices &v = triangles.polygons[i]; 349 | 350 | if (v.vertices.size() == 4) 351 | { 352 | mesh.addTriangle(v.vertices[0], v.vertices[1], v.vertices[2]); 353 | mesh.addTriangle(v.vertices[2], v.vertices[3], v.vertices[0]); 354 | } 355 | } 356 | 357 | return mesh; 358 | } 359 | 360 | ofMesh organizedFastMesh(const ofPixels& colorImage, const ofShortPixels& depthImage, const int skip = 4); 361 | 362 | template 363 | void integralImageNormalEstimation(const T& cloud, NormalPointCloud& normals) 364 | { 365 | assert(cloud->isOrganized()); 366 | 367 | if (!normals) 368 | normals = New(); 369 | 370 | pcl::IntegralImageNormalEstimation ne; 371 | 372 | ne.setNormalEstimationMethod(pcl::IntegralImageNormalEstimation::AVERAGE_3D_GRADIENT); 373 | 374 | ne.setMaxDepthChangeFactor(10.0f); 375 | ne.setNormalSmoothingSize(2.0f); 376 | ne.setInputCloud(cloud); 377 | ne.compute(*normals); 378 | } 379 | 380 | } --------------------------------------------------------------------------------