├── bin └── data │ ├── .gitkeep │ ├── cameraSettings │ └── landscape.ply ├── addons.make ├── src ├── main.cpp ├── ofApp.h └── ofApp.cpp ├── Makefile ├── Project.xcconfig ├── openFrameworks-Info.plist ├── README.md ├── LICENSE ├── meshMappingExample.xcodeproj ├── xcshareddata │ └── xcschemes │ │ ├── meshMappingExample Debug.xcscheme │ │ └── meshMappingExample Release.xcscheme └── project.pbxproj ├── .gitignore └── config.make /bin/data/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /addons.make: -------------------------------------------------------------------------------- 1 | ofxCameraSaveLoad 2 | -------------------------------------------------------------------------------- /src/main.cpp: -------------------------------------------------------------------------------- 1 | #include "ofMain.h" 2 | #include "ofApp.h" 3 | 4 | //======================================================================== 5 | int main( ){ 6 | 7 | ofSetupOpenGL(1024,768, OF_WINDOW); // <-------- setup the GL context 8 | 9 | // this kicks off the running of my app 10 | // can be OF_WINDOW or OF_FULLSCREEN 11 | // pass in width and height too: 12 | ofRunApp( new ofApp()); 13 | 14 | } 15 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # Attempt to load a config.make file. 2 | # If none is found, project defaults in config.project.make will be used. 3 | ifneq ($(wildcard config.make),) 4 | include config.make 5 | endif 6 | 7 | # make sure the the OF_ROOT location is defined 8 | ifndef OF_ROOT 9 | OF_ROOT=../../.. 10 | endif 11 | 12 | # call the project makefile! 13 | include $(OF_ROOT)/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk 14 | -------------------------------------------------------------------------------- /bin/data/cameraSettings: -------------------------------------------------------------------------------- 1 | --------------ofCamera parameters-------------- 2 | transformMatrix 3 | -0.996008, 0.0890966, -0.0055721, 0 4 | -0.014911, -0.104499, 0.994413, 0 5 | 0.0880164, 0.990525, 0.10541, 0 6 | -22.9489, 194.827, 7.38896, 1 7 | fov 8 | 60 9 | near 10 | 6.65107 11 | far 12 | 6651.07 13 | lensOffset 14 | 0, 0 15 | isOrtho 16 | 0 17 | --------------ofEasyCam parameters-------------- 18 | target 19 | 0, 0, 0 20 | bEnableMouseMiddleButton 21 | 1 22 | bMouseInputEnabled 23 | 0 24 | drag 25 | 0.9 26 | doTranslationKey 27 | m 28 | -------------------------------------------------------------------------------- /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 | //ICONS - NEW IN 0072 9 | ICON_NAME_DEBUG = icon-debug.icns 10 | ICON_NAME_RELEASE = icon.icns 11 | ICON_FILE_PATH = $(OF_PATH)/libs/openFrameworksCompiled/project/osx/ 12 | 13 | //IF YOU WANT AN APP TO HAVE A CUSTOM ICON - PUT THEM IN YOUR DATA FOLDER AND CHANGE ICON_FILE_PATH to: 14 | //ICON_FILE_PATH = bin/data/ 15 | 16 | OTHER_LDFLAGS = $(OF_CORE_LIBS) 17 | HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS) 18 | -------------------------------------------------------------------------------- /openFrameworks-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | cc.openFrameworks.ofapp 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | APPL 15 | CFBundleSignature 16 | ???? 17 | CFBundleVersion 18 | 1.0 19 | CFBundleIconFile 20 | ${ICON} 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/ofApp.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "ofMain.h" 4 | #include "ofxCameraSaveLoad.h" 5 | 6 | class ofApp : public ofBaseApp{ 7 | public: 8 | 9 | void setup(); 10 | void update(); 11 | void draw(); 12 | 13 | void keyPressed(int key); 14 | void keyReleased(int key); 15 | void mouseMoved(int x, int y); 16 | void mouseDragged(int x, int y, int button); 17 | void mousePressed(int x, int y, int button); 18 | void mouseReleased(int x, int y, int button); 19 | void windowResized(int w, int h); 20 | void dragEvent(ofDragInfo dragInfo); 21 | void gotMessage(ofMessage msg); 22 | 23 | void loadScene(); 24 | void saveScene(); 25 | 26 | bool editMode, 27 | camMouse, 28 | mouseDragging, 29 | showHelp; 30 | 31 | int normalSmoothAmt; 32 | 33 | ofVec3f nearestVertex; 34 | int nearestIndex; 35 | 36 | ofMesh mesh; 37 | ofMesh sceneMesh; 38 | ofMaterial material; 39 | 40 | ofSpherePrimitive sphere; 41 | 42 | ofEasyCam cam; 43 | ofLight sun; 44 | ofLight moon; 45 | }; 46 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # of-meshMappingExample 3 | 4 | A simple mesh-based projection-mapping tool with basic vertex editor written with openFrameworks. 5 | 6 | Tested on OSX and Raspbian/Raspberry-Pi. 7 | 8 | 9 | ## Features 10 | 11 | - Single-Vertex Mesh Editor 12 | - Camera Position Editor 13 | - PLY Mesh Object Import 14 | - Save/Load scenes and camera settings 15 | 16 | 17 | ## Dependencies 18 | 19 | - [openFrameworks](http://www.openframeworks.cc/) 20 | - [ofxAddons](http://ofxaddons.com/) 21 | - [ofxCameraSaveLoad](https://github.com/roymacdonald/ofxCameraSaveLoad) 22 | 23 | 24 | ## Screenshots and Photos 25 | 26 | ![https://www.flickr.com/photos/quilime/14605757439/](https://farm3.staticflickr.com/2909/14605757439_21366782a6_z.jpg) 27 | Mapped Geometry IRL 28 | 29 | ![https://www.flickr.com/photos/quilime/14799022016/](https://farm4.staticflickr.com/3864/14799022016_022ede88fc_c.jpg) 30 | Mesh Editor View 31 | 32 | 33 | Copyright (c) 2014- Gabriel Dunne, All rights reserved 34 | 35 | - [www](http://gabrieldunne.com) 36 | - [blog](http://quilime.com) 37 | - [github](http://github.com/quilime) 38 | - [twitter](http://twitter.com/quilime) 39 | 40 | 41 | # Software License 42 | 43 | See LICENSE file. 44 | 45 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | This software is distributed under the MIT License. This gives everyone the 2 | freedoms to use this software in any context: commercial or non-commercial, 3 | public or private, open or closed source. 4 | 5 | Copyright (c) 2014- Gabriel Dunne 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy of 8 | this software and associated documentation files (the "Software"), to deal in 9 | the Software without restriction, including without limitation the rights to 10 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 11 | the Software, and to permit persons to whom the Software is furnished to do so, 12 | subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in all 15 | copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 19 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 20 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 21 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 22 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /meshMappingExample.xcodeproj/xcshareddata/xcschemes/meshMappingExample Debug.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 51 | 52 | 58 | 59 | 60 | 61 | 62 | 63 | 69 | 70 | 76 | 77 | 78 | 79 | 81 | 82 | 85 | 86 | 87 | -------------------------------------------------------------------------------- /meshMappingExample.xcodeproj/xcshareddata/xcschemes/meshMappingExample Release.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 51 | 52 | 58 | 59 | 60 | 61 | 62 | 63 | 69 | 70 | 76 | 77 | 78 | 79 | 81 | 82 | 85 | 86 | 87 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ######################### 2 | # .gitignore file for Xcode4 / OS X Source projects 3 | # 4 | # Version 2.0 5 | # For latest version, see: http://stackoverflow.com/questions/49478/git-ignore-file-for-xcode-projects 6 | # 7 | # 2013 updates: 8 | # - fixed the broken "save personal Schemes" 9 | # 10 | # NB: if you are storing "built" products, this WILL NOT WORK, 11 | # and you should use a different .gitignore (or none at all) 12 | # This file is for SOURCE projects, where there are many extra 13 | # files that we want to exclude 14 | # 15 | ######################### 16 | 17 | ##### 18 | # OS X temporary files that should never be committed 19 | 20 | .DS_Store 21 | *.swp 22 | *.lock 23 | profile 24 | 25 | 26 | #### 27 | # Xcode temporary files that should never be committed 28 | # 29 | # NB: NIB/XIB files still exist even on Storyboard projects, so we want this... 30 | 31 | *~.nib 32 | 33 | 34 | #### 35 | # Xcode build files - 36 | # 37 | # NB: slash on the end, so we only remove the FOLDER, not any files that were badly named "DerivedData" 38 | 39 | DerivedData/ 40 | 41 | # NB: slash on the end, so we only remove the FOLDER, not any files that were badly named "build" 42 | 43 | build/ 44 | 45 | 46 | ##### 47 | # Xcode private settings (window sizes, bookmarks, breakpoints, custom executables, smart groups) 48 | # 49 | # This is complicated: 50 | # 51 | # SOMETIMES you need to put this file in version control. 52 | # Apple designed it poorly - if you use "custom executables", they are 53 | # saved in this file. 54 | # 99% of projects do NOT use those, so they do NOT want to version control this file. 55 | # ..but if you're in the 1%, comment out the line "*.pbxuser" 56 | 57 | *.pbxuser 58 | *.mode1v3 59 | *.mode2v3 60 | *.perspectivev3 61 | # NB: also, whitelist the default ones, some projects need to use these 62 | !default.pbxuser 63 | !default.mode1v3 64 | !default.mode2v3 65 | !default.perspectivev3 66 | 67 | 68 | #### 69 | # Xcode 4 - semi-personal settings 70 | # 71 | # 72 | # OPTION 1: --------------------------------- 73 | # throw away ALL personal settings (including custom schemes! 74 | # - unless they are "shared") 75 | # 76 | # NB: this is exclusive with OPTION 2 below 77 | xcuserdata 78 | 79 | # OPTION 2: --------------------------------- 80 | # get rid of ALL personal settings, but KEEP SOME OF THEM 81 | # - NB: you must manually uncomment the bits you want to keep 82 | # 83 | # NB: this is exclusive with OPTION 1 above 84 | # 85 | #xcuserdata/**/* 86 | 87 | # (requires option 2 above): Personal Schemes 88 | # 89 | #!xcuserdata/**/xcschemes/* 90 | 91 | #### 92 | # XCode 4 workspaces - more detailed 93 | # 94 | # Workspaces are important! They are a core feature of Xcode - don't exclude them :) 95 | # 96 | # Workspace layout is quite spammy. For reference: 97 | # 98 | # /(root)/ 99 | # /(project-name).xcodeproj/ 100 | # project.pbxproj 101 | # /project.xcworkspace/ 102 | # contents.xcworkspacedata 103 | # /xcuserdata/ 104 | # /(your name)/xcuserdatad/ 105 | # UserInterfaceState.xcuserstate 106 | # /xcsshareddata/ 107 | # /xcschemes/ 108 | # (shared scheme name).xcscheme 109 | # /xcuserdata/ 110 | # /(your name)/xcuserdatad/ 111 | # (private scheme).xcscheme 112 | # xcschememanagement.plist 113 | # 114 | # 115 | 116 | #### 117 | # Xcode 4 - Deprecated classes 118 | # 119 | # Allegedly, if you manually "deprecate" your classes, they get moved here. 120 | # 121 | # We're using source-control, so this is a "feature" that we do not want! 122 | 123 | *.moved-aside 124 | 125 | 126 | #### 127 | # UNKNOWN: recommended by others, but I can't discover what these files are 128 | # 129 | # ...none. Everything is now explained. 130 | -------------------------------------------------------------------------------- /bin/data/landscape.ply: -------------------------------------------------------------------------------- 1 | ply 2 | format ascii 1.0 3 | comment File exported by Rhinoceros Version 5.0 4 | element vertex 79 5 | property float x 6 | property float y 7 | property float z 8 | element face 123 9 | property list uchar int vertex_indices 10 | end_header 11 | -52.556484 0.000000 -5.427517 12 | -50.588821 0.000000 14.767426 13 | -46.085789 0.000000 -26.085840 14 | -44.655811 0.000000 27.800167 15 | -41.272144 17.148046 11.881786 16 | -37.334961 0.000000 -37.635326 17 | -34.222740 21.428038 32.035892 18 | -32.888485 0.000000 40.910126 19 | -30.909792 6.568943 -35.198391 20 | -30.407951 6.542486 -11.635721 21 | -29.017174 0.000000 -44.396797 22 | -25.453753 4.274805 9.227347 23 | -24.974255 4.274805 -6.030560 24 | -24.141817 4.274805 0.212763 25 | -22.893156 4.274805 -13.245055 26 | -22.831249 2.140818 -25.916674 27 | -22.662395 0.000000 47.275757 28 | -21.685650 8.231159 16.806795 29 | -20.718487 5.460796 -35.819683 30 | -19.043947 6.568943 6.479262 31 | -18.636106 17.543907 20.365591 32 | -16.587309 6.542486 -13.939176 33 | -13.921114 8.231159 15.442671 34 | -12.909541 0.000000 50.767113 35 | -12.574780 7.256919 12.592360 36 | -11.079740 8.080062 9.528033 37 | -10.896271 17.926910 19.739925 38 | -10.399817 9.175847 16.460894 39 | -9.657236 13.960436 -1.852936 40 | -8.785327 0.000000 -52.313660 41 | -8.266678 3.067847 -27.619904 42 | -7.562912 6.568943 -37.495434 43 | -7.414688 8.231159 14.906796 44 | -7.278532 18.476440 19.239128 45 | -6.702319 17.628365 24.960180 46 | -6.630054 16.544809 9.758502 47 | -4.687880 17.638115 16.539619 48 | -2.052482 21.660166 33.569534 49 | -2.052482 16.729561 19.354771 50 | -1.529177 30.372957 4.417719 51 | -1.484996 6.542486 -19.990511 52 | 0.017184 34.016254 -2.244407 53 | 0.099804 12.045508 26.542152 54 | 1.686839 0.000000 52.313641 55 | 1.840220 6.542486 -32.366703 56 | 2.283076 3.804542 -39.606194 57 | 5.744803 17.543907 21.044146 58 | 5.745972 21.600847 14.112684 59 | 6.489264 15.537041 30.688290 60 | 8.750541 17.541389 -18.406128 61 | 9.256098 0.000000 -52.192184 62 | 13.669724 0.000000 50.509491 63 | 15.145033 19.787624 9.454037 64 | 16.130089 19.665688 17.183098 65 | 19.906574 18.658634 16.546772 66 | 20.241274 14.975183 -10.733536 67 | 20.910799 19.070599 6.685886 68 | 22.172424 27.218618 31.038910 69 | 25.219379 0.000000 -46.541965 70 | 27.406555 20.319782 13.961432 71 | 27.512875 0.000000 44.520473 72 | 29.481525 6.542486 -25.456364 73 | 30.362558 26.217955 -15.537923 74 | 32.321854 22.760330 22.915884 75 | 35.151497 22.318468 12.886323 76 | 37.106823 0.000000 36.841770 77 | 37.106823 0.000000 -37.635326 78 | 40.897717 18.570919 -0.177267 79 | 44.805622 0.000000 -27.880606 80 | 45.768963 0.000000 25.555969 81 | 49.955688 0.000000 16.059662 82 | 50.692612 0.000000 -14.298533 83 | 52.556492 0.000000 1.022222 84 | -24.141817 4.274805 0.212763 85 | -24.141817 4.274805 0.212763 86 | -9.657236 13.960436 -1.852936 87 | -9.657236 13.960436 -1.852936 88 | -9.657236 13.960436 -1.852936 89 | -9.657236 13.960436 -1.852936 90 | 3 0 1 4 91 | 3 1 3 4 92 | 3 3 7 6 93 | 3 0 9 2 94 | 3 2 8 5 95 | 3 5 8 10 96 | 3 0 4 9 97 | 3 3 6 4 98 | 3 4 13 9 99 | 3 9 13 12 100 | 3 4 11 13 101 | 3 2 15 8 102 | 3 2 9 15 103 | 3 9 12 14 104 | 3 4 17 11 105 | 3 4 6 17 106 | 3 9 14 15 107 | 3 8 18 10 108 | 3 8 15 18 109 | 3 11 19 13 110 | 3 6 20 17 111 | 3 11 17 19 112 | 3 17 20 22 113 | 3 14 21 15 114 | 3 12 21 14 115 | 3 17 22 19 116 | 3 19 22 24 117 | 3 19 24 25 118 | 3 20 26 22 119 | 3 22 26 27 120 | 3 22 27 24 121 | 3 73 19 28 122 | 3 12 74 28 123 | 3 6 7 16 124 | 3 12 28 21 125 | 3 15 30 18 126 | 3 10 18 29 127 | 3 6 16 20 128 | 3 24 27 32 129 | 3 26 33 27 130 | 3 19 25 28 131 | 3 20 34 26 132 | 3 15 21 30 133 | 3 24 32 25 134 | 3 18 30 31 135 | 3 27 33 32 136 | 3 25 32 35 137 | 3 26 34 33 138 | 3 18 31 29 139 | 3 32 33 36 140 | 3 16 34 20 141 | 3 25 35 75 142 | 3 33 38 36 143 | 3 16 37 34 144 | 3 76 35 39 145 | 3 21 40 30 146 | 3 16 23 37 147 | 3 33 34 38 148 | 3 32 36 35 149 | 3 77 39 41 150 | 3 34 37 42 151 | 3 34 42 38 152 | 3 30 44 31 153 | 3 21 28 40 154 | 3 31 44 45 155 | 3 29 31 45 156 | 3 78 41 40 157 | 3 30 40 44 158 | 3 36 38 47 159 | 3 23 43 37 160 | 3 38 42 46 161 | 3 35 36 47 162 | 3 37 48 42 163 | 3 35 47 39 164 | 3 38 46 47 165 | 3 29 45 50 166 | 3 42 48 46 167 | 3 40 41 49 168 | 3 40 49 44 169 | 3 39 47 52 170 | 3 46 53 47 171 | 3 37 43 48 172 | 3 47 53 52 173 | 3 39 52 41 174 | 3 43 51 48 175 | 3 41 55 49 176 | 3 52 53 54 177 | 3 46 48 53 178 | 3 48 57 53 179 | 3 41 52 55 180 | 3 52 56 55 181 | 3 52 54 56 182 | 3 48 51 57 183 | 3 45 58 50 184 | 3 53 57 54 185 | 3 54 59 56 186 | 3 51 60 57 187 | 3 49 55 61 188 | 3 44 49 61 189 | 3 44 58 45 190 | 3 55 62 61 191 | 3 44 61 58 192 | 3 54 57 63 193 | 3 54 63 59 194 | 3 57 60 65 195 | 3 58 61 66 196 | 3 59 63 64 197 | 3 57 65 63 198 | 3 56 59 64 199 | 3 55 56 67 200 | 3 56 64 67 201 | 3 55 67 62 202 | 3 61 68 66 203 | 3 63 65 69 204 | 3 61 62 68 205 | 3 63 69 64 206 | 3 64 69 70 207 | 3 62 67 71 208 | 3 62 71 68 209 | 3 64 70 67 210 | 3 67 70 72 211 | 3 67 72 71 212 | 3 58 50 29 213 | -------------------------------------------------------------------------------- /config.make: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # CONFIGURE PROJECT MAKEFILE (optional) 3 | # This file is where we make project specific configurations. 4 | ################################################################################ 5 | 6 | ################################################################################ 7 | # OF ROOT 8 | # The location of your root openFrameworks installation 9 | # (default) OF_ROOT = ../../.. 10 | ################################################################################ 11 | # OF_ROOT = ../../.. 12 | 13 | ################################################################################ 14 | # PROJECT ROOT 15 | # The location of the project - a starting place for searching for files 16 | # (default) PROJECT_ROOT = . (this directory) 17 | # 18 | ################################################################################ 19 | # PROJECT_ROOT = . 20 | 21 | ################################################################################ 22 | # PROJECT SPECIFIC CHECKS 23 | # This is a project defined section to create internal makefile flags to 24 | # conditionally enable or disable the addition of various features within 25 | # this makefile. For instance, if you want to make changes based on whether 26 | # GTK is installed, one might test that here and create a variable to check. 27 | ################################################################################ 28 | # None 29 | 30 | ################################################################################ 31 | # PROJECT EXTERNAL SOURCE PATHS 32 | # These are fully qualified paths that are not within the PROJECT_ROOT folder. 33 | # Like source folders in the PROJECT_ROOT, these paths are subject to 34 | # exlclusion via the PROJECT_EXLCUSIONS list. 35 | # 36 | # (default) PROJECT_EXTERNAL_SOURCE_PATHS = (blank) 37 | # 38 | # Note: Leave a leading space when adding list items with the += operator 39 | ################################################################################ 40 | # PROJECT_EXTERNAL_SOURCE_PATHS = 41 | 42 | ################################################################################ 43 | # PROJECT EXCLUSIONS 44 | # These makefiles assume that all folders in your current project directory 45 | # and any listed in the PROJECT_EXTERNAL_SOURCH_PATHS are are valid locations 46 | # to look for source code. The any folders or files that match any of the 47 | # items in the PROJECT_EXCLUSIONS list below will be ignored. 48 | # 49 | # Each item in the PROJECT_EXCLUSIONS list will be treated as a complete 50 | # string unless teh user adds a wildcard (%) operator to match subdirectories. 51 | # GNU make only allows one wildcard for matching. The second wildcard (%) is 52 | # treated literally. 53 | # 54 | # (default) PROJECT_EXCLUSIONS = (blank) 55 | # 56 | # Will automatically exclude the following: 57 | # 58 | # $(PROJECT_ROOT)/bin% 59 | # $(PROJECT_ROOT)/obj% 60 | # $(PROJECT_ROOT)/%.xcodeproj 61 | # 62 | # Note: Leave a leading space when adding list items with the += operator 63 | ################################################################################ 64 | # PROJECT_EXCLUSIONS = 65 | 66 | ################################################################################ 67 | # PROJECT LINKER FLAGS 68 | # These flags will be sent to the linker when compiling the executable. 69 | # 70 | # (default) PROJECT_LDFLAGS = -Wl,-rpath=./libs 71 | # 72 | # Note: Leave a leading space when adding list items with the += operator 73 | ################################################################################ 74 | 75 | # Currently, shared libraries that are needed are copied to the 76 | # $(PROJECT_ROOT)/bin/libs directory. The following LDFLAGS tell the linker to 77 | # add a runtime path to search for those shared libraries, since they aren't 78 | # incorporated directly into the final executable application binary. 79 | # TODO: should this be a default setting? 80 | # PROJECT_LDFLAGS=-Wl,-rpath=./libs 81 | 82 | ################################################################################ 83 | # PROJECT DEFINES 84 | # Create a space-delimited list of DEFINES. The list will be converted into 85 | # CFLAGS with the "-D" flag later in the makefile. 86 | # 87 | # (default) PROJECT_DEFINES = (blank) 88 | # 89 | # Note: Leave a leading space when adding list items with the += operator 90 | ################################################################################ 91 | # PROJECT_DEFINES = 92 | 93 | ################################################################################ 94 | # PROJECT CFLAGS 95 | # This is a list of fully qualified CFLAGS required when compiling for this 96 | # project. These CFLAGS will be used IN ADDITION TO the PLATFORM_CFLAGS 97 | # defined in your platform specific core configuration files. These flags are 98 | # presented to the compiler BEFORE the PROJECT_OPTIMIZATION_CFLAGS below. 99 | # 100 | # (default) PROJECT_CFLAGS = (blank) 101 | # 102 | # Note: Before adding PROJECT_CFLAGS, note that the PLATFORM_CFLAGS defined in 103 | # your platform specific configuration file will be applied by default and 104 | # further flags here may not be needed. 105 | # 106 | # Note: Leave a leading space when adding list items with the += operator 107 | ################################################################################ 108 | # PROJECT_CFLAGS = 109 | 110 | ################################################################################ 111 | # PROJECT OPTIMIZATION CFLAGS 112 | # These are lists of CFLAGS that are target-specific. While any flags could 113 | # be conditionally added, they are usually limited to optimization flags. 114 | # These flags are added BEFORE the PROJECT_CFLAGS. 115 | # 116 | # PROJECT_OPTIMIZATION_CFLAGS_RELEASE flags are only applied to RELEASE targets. 117 | # 118 | # (default) PROJECT_OPTIMIZATION_CFLAGS_RELEASE = (blank) 119 | # 120 | # PROJECT_OPTIMIZATION_CFLAGS_DEBUG flags are only applied to DEBUG targets. 121 | # 122 | # (default) PROJECT_OPTIMIZATION_CFLAGS_DEBUG = (blank) 123 | # 124 | # Note: Before adding PROJECT_OPTIMIZATION_CFLAGS, please note that the 125 | # PLATFORM_OPTIMIZATION_CFLAGS defined in your platform specific configuration 126 | # file will be applied by default and further optimization flags here may not 127 | # be needed. 128 | # 129 | # Note: Leave a leading space when adding list items with the += operator 130 | ################################################################################ 131 | # PROJECT_OPTIMIZATION_CFLAGS_RELEASE = 132 | # PROJECT_OPTIMIZATION_CFLAGS_DEBUG = 133 | 134 | ################################################################################ 135 | # PROJECT COMPILERS 136 | # Custom compilers can be set for CC and CXX 137 | # (default) PROJECT_CXX = (blank) 138 | # (default) PROJECT_CC = (blank) 139 | # Note: Leave a leading space when adding list items with the += operator 140 | ################################################################################ 141 | # PROJECT_CXX = 142 | # PROJECT_CC = 143 | -------------------------------------------------------------------------------- /src/ofApp.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | (c) Gabriel L. Dunne, 2014 3 | */ 4 | #include "ofApp.h" 5 | 6 | //-------------------------------------------------------------- 7 | void ofApp::setup(){ 8 | 9 | // of stuff 10 | ofSetVerticalSync(true); 11 | ofSetFrameRate(60); 12 | ofEnableDepthTest(); 13 | ofSetFullscreen(true); 14 | 15 | 16 | // settings 17 | showHelp = false; 18 | editMode = false; 19 | camMouse = false; 20 | mouseDragging = false; 21 | nearestIndex = 0; 22 | normalSmoothAmt = 20; 23 | 24 | 25 | // set up material 26 | // shininess is a value between 0 - 128, 128 being the most shiny // 27 | material.setShininess( 120 ); 28 | material.setSpecularColor(ofColor(255, 255, 255)); 29 | material.setAmbientColor(ofColor(0, 0, 0)); 30 | material.setShininess(10.0f); 31 | 32 | 33 | // load mesh 34 | mesh.load("landscape.ply"); 35 | 36 | // test sphere 37 | sphere.setRadius(20); 38 | 39 | // set up lights 40 | ofSetGlobalAmbientColor(ofColor(0, 0, 0)); 41 | ofSetSmoothLighting(true); 42 | 43 | sun.setup(); 44 | sun.setDirectional(); 45 | sun.setDiffuseColor( ofFloatColor(0.7f, 0.7f, 0.7f) ); 46 | sun.setSpecularColor( ofFloatColor(0.3f, 0.3f, 0.3f) ); 47 | 48 | moon.setup(); 49 | moon.setDirectional(); 50 | moon.setDiffuseColor( ofFloatColor(0.0f, 0.0f, 0.15f) ); 51 | moon.setSpecularColor( ofFloatColor(0.0f, 0.0f, 0.08f) ); 52 | 53 | // start w/ mouse input disabled 54 | cam.disableMouseInput(); 55 | // cam.setFov(5); 56 | 57 | loadScene(); 58 | } 59 | 60 | //-------------------------------------------------------------- 61 | void ofApp::loadScene() { 62 | ofxLoadCamera(cam, "cameraSettings"); 63 | mesh.load("mesh-tweaked.ply"); 64 | sceneMesh.clear(); 65 | sceneMesh.append(mesh); 66 | sceneMesh.smoothNormals( normalSmoothAmt ); 67 | } 68 | 69 | //-------------------------------------------------------------- 70 | void ofApp::saveScene() { 71 | ofxSaveCamera(cam, "cameraSettings"); 72 | mesh.save("mesh-tweaked.ply"); 73 | } 74 | 75 | //-------------------------------------------------------------- 76 | void ofApp::update(){ 77 | 78 | float d = 400.0f; // distance from center 79 | float speed = 13; // speed multiplier 80 | 81 | // move sun around 82 | ofPoint sp; 83 | sp.set(d, 0, 0); 84 | sp.rotate( ofGetElapsedTimef() * speed , ofVec3f(0, 0, 1)); 85 | sun.setPosition(sp); 86 | sun.lookAt(ofVec3f(0, 0, 0)); 87 | 88 | // move moon around 89 | ofPoint mp; 90 | mp.set(d, 0, 0); 91 | mp.rotate( ofGetElapsedTimef() * speed + 180 , ofVec3f(0, 0, 1)); 92 | moon.setPosition(mp); 93 | moon.lookAt(ofVec3f(0, 0, 0)); 94 | } 95 | 96 | //-------------------------------------------------------------- 97 | void ofApp::draw(){ 98 | 99 | if (editMode) { 100 | // if editing, show background gradient 101 | ofBackgroundGradient(ofColor(80), ofColor(5)); 102 | } else { 103 | // black bg 104 | ofBackground(ofColor(0)); 105 | } 106 | 107 | // begin camera 108 | cam.begin(); 109 | 110 | // enable lighting 111 | ofEnableLighting(); 112 | sun.enable(); 113 | moon.enable(); 114 | 115 | // start material 116 | material.begin(); 117 | ofSetColor(255); 118 | ofFill(); 119 | 120 | // test sphere 121 | //sphere.setPosition(0, 60, 0); 122 | //sphere.draw(); 123 | 124 | // draw mesh faces 125 | if (!editMode) { 126 | sceneMesh.draw(); 127 | } 128 | 129 | // end material 130 | material.end(); 131 | 132 | // end lighting 133 | ofDisableLighting(); 134 | 135 | // draw light position 136 | if (editMode) { 137 | // draw grey lines to lights 138 | ofSetColor(ofColor::gray); 139 | ofSetLineWidth(1); 140 | ofLine(sun.getPosition(), ofVec3f(0)); 141 | ofLine(moon.getPosition(), ofVec3f(0)); 142 | // draw lights 143 | ofFill(); 144 | ofSetColor(sun.getDiffuseColor()); 145 | sun.draw(); 146 | ofSetColor(moon.getDiffuseColor()); 147 | moon.draw(); 148 | } 149 | 150 | // draw verts and wireframe when editing 151 | if (editMode) { 152 | // draw wireframe 153 | ofSetColor(ofColor::white); 154 | glLineWidth(1); 155 | 156 | // NOTE : 157 | // drawWireframe may draw incorrectly when compiled for ARM 158 | // openframeworks bug? 159 | mesh.drawWireframe(); 160 | 161 | // draw verts 162 | ofSetColor(ofColor::white); 163 | glPointSize(4); 164 | mesh.drawVertices(); 165 | } 166 | 167 | // end camera 168 | cam.end(); 169 | 170 | // vert selection 171 | if (editMode) { 172 | // create vec2 of the mouse for reference 173 | ofVec2f mouse(mouseX, mouseY); 174 | // if not dragging the mouse, find the nearest vert 175 | if (!mouseDragging) { 176 | // loop through all verticies in mesh and find the nearest vert position and index 177 | int n = mesh.getNumVertices(); 178 | float nearestDistance = 0; 179 | for(int i = 0; i < n; i++) { 180 | ofVec3f cur = cam.worldToScreen(mesh.getVertex(i)); 181 | float distance = cur.distance(mouse); 182 | if(i == 0 || distance < nearestDistance) { 183 | nearestDistance = distance; 184 | nearestVertex = cur; 185 | nearestIndex = i; 186 | } 187 | } 188 | } 189 | 190 | // draw a line from the nearest vertex to the mouse position 191 | ofSetColor(ofColor::gray); 192 | ofSetLineWidth(1); 193 | ofLine(nearestVertex, mouse); 194 | 195 | // draw a cirle around the nearest vertex 196 | ofNoFill(); 197 | ofSetColor(ofColor::magenta); 198 | ofSetLineWidth(2); 199 | if (mouseDragging) { 200 | ofCircle(mouse, 4); 201 | } else { 202 | ofCircle(nearestVertex, 4); 203 | } 204 | ofSetLineWidth(1); 205 | 206 | // edit position of nearest vert with mousedrag 207 | if (!camMouse && mouseDragging) { 208 | mesh.setVertex(nearestIndex, cam.screenToWorld(ofVec3f(mouse.x, mouse.y, nearestVertex.z))); 209 | } 210 | 211 | // draw a label with the nearest vertex index 212 | ofDrawBitmapStringHighlight(ofToString(nearestIndex), mouse + ofVec2f(10, -10)); 213 | } 214 | 215 | // draw info text 216 | if (showHelp) { 217 | stringstream ss; 218 | ss << "Framerate " << ofToString(ofGetFrameRate(),0) << "\n"; 219 | ss << " f : Toggle Fullscreen" << "\n"; 220 | ss << " h : Toggle Help Text" << "\n"; 221 | ss << " c : Toggle Camera Control : " << (camMouse == true ? "ON" : "OFF") << "\n"; 222 | ss << "TAB : Toggle Mesh Edit : " << (editMode == true ? "ON" : "OFF") << "\n"; 223 | ss << " s : Save Scene" << "\n"; 224 | ss << " l : Load Scene"; 225 | ofSetColor(ofColor::white); 226 | ofDrawBitmapStringHighlight(ss.str().c_str(), ofVec3f(10, 20), ofColor(45), ofColor(255)); 227 | } 228 | } 229 | 230 | //-------------------------------------------------------------- 231 | void ofApp::keyPressed(int key){ 232 | 233 | switch(key) { 234 | 235 | // toggle fullscreen 236 | case 'f': 237 | ofToggleFullscreen(); 238 | break; 239 | 240 | // toggle camera control 241 | case 'c': 242 | camMouse = !camMouse; 243 | camMouse ? cam.enableMouseInput() : cam.disableMouseInput(); 244 | break; 245 | 246 | // saves the camera and mesh settings 247 | case 's': 248 | ofxSaveCamera(cam, "cameraSettings"); 249 | mesh.save("mesh-tweaked.ply"); 250 | break; 251 | 252 | // loads camera and mesh settings 253 | case 'l': 254 | ofxLoadCamera(cam, "cameraSettings"); 255 | mesh.load("mesh-tweaked.ply"); 256 | camMouse = false; 257 | editMode = false; 258 | break; 259 | 260 | // show help 261 | case 'h': 262 | showHelp = !showHelp; 263 | break; 264 | 265 | // toggle 'TAB' to edit verts 266 | case OF_KEY_TAB: 267 | editMode = !editMode; 268 | if (!editMode) { 269 | sceneMesh.clear(); 270 | sceneMesh.append(mesh); 271 | sceneMesh.smoothNormals( normalSmoothAmt ); 272 | } 273 | break; 274 | } 275 | } 276 | 277 | //-------------------------------------------------------------- 278 | void ofApp::keyReleased(int key){ 279 | 280 | } 281 | 282 | //-------------------------------------------------------------- 283 | void ofApp::mouseMoved(int x, int y){ 284 | 285 | } 286 | 287 | //-------------------------------------------------------------- 288 | void ofApp::mouseDragged(int x, int y, int button){ 289 | mouseDragging = true; 290 | } 291 | 292 | //-------------------------------------------------------------- 293 | void ofApp::mousePressed(int x, int y, int button){ 294 | 295 | } 296 | 297 | //-------------------------------------------------------------- 298 | void ofApp::mouseReleased(int x, int y, int button){ 299 | mouseDragging = false; 300 | } 301 | 302 | //-------------------------------------------------------------- 303 | void ofApp::windowResized(int w, int h){ 304 | 305 | } 306 | 307 | //-------------------------------------------------------------- 308 | void ofApp::gotMessage(ofMessage msg){ 309 | 310 | } 311 | 312 | //-------------------------------------------------------------- 313 | void ofApp::dragEvent(ofDragInfo dragInfo){ 314 | 315 | } 316 | -------------------------------------------------------------------------------- /meshMappingExample.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 1CD33E884D9E3358252E82A1 /* ofxToggle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 907C5B5E104864A2D3A25745 /* ofxToggle.cpp */; }; 11 | 2C1ED88A3466D1D2AC3DA004 /* ofxCameraSaveLoad.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FEB2058E7166D8CDCFAD557B /* ofxCameraSaveLoad.cpp */; }; 12 | 483908258D00B98B4BE69F07 /* ofxLabel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 78D67A00EB899FAC09430597 /* ofxLabel.cpp */; }; 13 | 5CBB2AB3A60F65431D7B555D /* ofxButton.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C88333E71C9457E441C33474 /* ofxButton.cpp */; }; 14 | 837220E80EB56CD44AD27F2A /* ofxSlider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 15F2C6477A769C03A56D1401 /* ofxSlider.cpp */; }; 15 | 856AA354D08AB4B323081444 /* ofxBaseGui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9604B925D32EE39065747725 /* ofxBaseGui.cpp */; }; 16 | B266578FC55D23BFEBC042E7 /* ofxGuiGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ECF8674C7975F1063C5E30CA /* ofxGuiGroup.cpp */; }; 17 | B56FE57CC35806596D38118C /* ofxSliderGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 802251BAF1B35B1D67B32FD0 /* ofxSliderGroup.cpp */; }; 18 | BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; }; 19 | E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4328148138ABC890047C5CB /* openFrameworksDebug.a */; }; 20 | E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9710E8CC7DD009D7055 /* AGL.framework */; }; 21 | E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */; }; 22 | E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */; }; 23 | E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */; }; 24 | E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */; }; 25 | E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9770E8CC7DD009D7055 /* CoreServices.framework */; }; 26 | E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9790E8CC7DD009D7055 /* OpenGL.framework */; }; 27 | E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */; }; 28 | E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1D0A3A1BDC003C02F2 /* main.cpp */; }; 29 | E4B69E210A3A1BDC003C02F2 /* ofApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */; }; 30 | E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424410CC5A17004149E2 /* AppKit.framework */; }; 31 | E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424510CC5A17004149E2 /* Cocoa.framework */; }; 32 | E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424610CC5A17004149E2 /* IOKit.framework */; }; 33 | E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; }; 34 | E7E077E515D3B63C0020DFD4 /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */; }; 35 | E7E077E815D3B6510020DFD4 /* QTKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7E077E715D3B6510020DFD4 /* QTKit.framework */; }; 36 | E7F985F815E0DEA3003869B5 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7F985F515E0DE99003869B5 /* Accelerate.framework */; }; 37 | F285EB3169F1566CA3D93C20 /* ofxPanel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E112B3AEBEA2C091BF2B40AE /* ofxPanel.cpp */; }; 38 | /* End PBXBuildFile section */ 39 | 40 | /* Begin PBXContainerItemProxy section */ 41 | E4328147138ABC890047C5CB /* PBXContainerItemProxy */ = { 42 | isa = PBXContainerItemProxy; 43 | containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; 44 | proxyType = 2; 45 | remoteGlobalIDString = E4B27C1510CBEB8E00536013; 46 | remoteInfo = openFrameworks; 47 | }; 48 | E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */ = { 49 | isa = PBXContainerItemProxy; 50 | containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; 51 | proxyType = 1; 52 | remoteGlobalIDString = E4B27C1410CBEB8E00536013; 53 | remoteInfo = openFrameworks; 54 | }; 55 | /* End PBXContainerItemProxy section */ 56 | 57 | /* Begin PBXCopyFilesBuildPhase section */ 58 | E4C2427710CC5ABF004149E2 /* CopyFiles */ = { 59 | isa = PBXCopyFilesBuildPhase; 60 | buildActionMask = 2147483647; 61 | dstPath = ""; 62 | dstSubfolderSpec = 10; 63 | files = ( 64 | BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */, 65 | ); 66 | runOnlyForDeploymentPostprocessing = 0; 67 | }; 68 | /* End PBXCopyFilesBuildPhase section */ 69 | 70 | /* Begin PBXFileReference section */ 71 | 0A1DAC09F322AE313A40706D /* ofxToggle.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxToggle.h; path = ../../../addons/ofxGui/src/ofxToggle.h; sourceTree = SOURCE_ROOT; }; 72 | 15F2C6477A769C03A56D1401 /* ofxSlider.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxSlider.cpp; path = ../../../addons/ofxGui/src/ofxSlider.cpp; sourceTree = SOURCE_ROOT; }; 73 | 17E65988300FBD9AAA2CD0CA /* ofxGui.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxGui.h; path = ../../../addons/ofxGui/src/ofxGui.h; sourceTree = SOURCE_ROOT; }; 74 | 1C0DA2561397A7DE0246858B /* ofxGuiGroup.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxGuiGroup.h; path = ../../../addons/ofxGui/src/ofxGuiGroup.h; sourceTree = SOURCE_ROOT; }; 75 | 2834D88A62CD23F3DE2C47D1 /* ofxButton.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxButton.h; path = ../../../addons/ofxGui/src/ofxButton.h; sourceTree = SOURCE_ROOT; }; 76 | 52AFA1F08C420992CAAAE648 /* ofxSlider.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxSlider.h; path = ../../../addons/ofxGui/src/ofxSlider.h; sourceTree = SOURCE_ROOT; }; 77 | 689152A3198A169200E817E8 /* .gitignore */ = {isa = PBXFileReference; lastKnownFileType = text; path = .gitignore; sourceTree = ""; }; 78 | 689152A4198A169200E817E8 /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; 79 | 689152A5198A169200E817E8 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = text; path = README.md; sourceTree = ""; }; 80 | 689152A7198A169200E817E8 /* ofxEdge.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ofxEdge.cpp; sourceTree = ""; }; 81 | 689152A8198A169200E817E8 /* ofxEdge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ofxEdge.h; sourceTree = ""; }; 82 | 689152A9198A169200E817E8 /* ofxFace.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ofxFace.cpp; sourceTree = ""; }; 83 | 689152AA198A169200E817E8 /* ofxFace.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ofxFace.h; sourceTree = ""; }; 84 | 689152AB198A169200E817E8 /* ofxMesh.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ofxMesh.cpp; sourceTree = ""; }; 85 | 689152AC198A169200E817E8 /* ofxMesh.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ofxMesh.h; sourceTree = ""; }; 86 | 689152AD198A169200E817E8 /* ofxVertex.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ofxVertex.cpp; sourceTree = ""; }; 87 | 689152AE198A169200E817E8 /* ofxVertex.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ofxVertex.h; sourceTree = ""; }; 88 | 6D5588D3FAE44B8D0798BA44 /* ofxCameraSaveLoad.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxCameraSaveLoad.h; path = ../../../addons/ofxCameraSaveLoad/src/ofxCameraSaveLoad.h; sourceTree = SOURCE_ROOT; }; 89 | 78D67A00EB899FAC09430597 /* ofxLabel.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxLabel.cpp; path = ../../../addons/ofxGui/src/ofxLabel.cpp; sourceTree = SOURCE_ROOT; }; 90 | 802251BAF1B35B1D67B32FD0 /* ofxSliderGroup.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxSliderGroup.cpp; path = ../../../addons/ofxGui/src/ofxSliderGroup.cpp; sourceTree = SOURCE_ROOT; }; 91 | 87F26B4B24CBD428AD9EEBAA /* ofxBaseGui.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxBaseGui.h; path = ../../../addons/ofxGui/src/ofxBaseGui.h; sourceTree = SOURCE_ROOT; }; 92 | 89449E3044D456F7DE7BEA14 /* ofxPanel.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxPanel.h; path = ../../../addons/ofxGui/src/ofxPanel.h; sourceTree = SOURCE_ROOT; }; 93 | 907C5B5E104864A2D3A25745 /* ofxToggle.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxToggle.cpp; path = ../../../addons/ofxGui/src/ofxToggle.cpp; sourceTree = SOURCE_ROOT; }; 94 | 9604B925D32EE39065747725 /* ofxBaseGui.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxBaseGui.cpp; path = ../../../addons/ofxGui/src/ofxBaseGui.cpp; sourceTree = SOURCE_ROOT; }; 95 | B87C60311EC1FE841C1ECD89 /* ofxLabel.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxLabel.h; path = ../../../addons/ofxGui/src/ofxLabel.h; sourceTree = SOURCE_ROOT; }; 96 | BBAB23BE13894E4700AA2426 /* GLUT.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLUT.framework; path = ../../../libs/glut/lib/osx/GLUT.framework; sourceTree = ""; }; 97 | C70D8946940288799E82131E /* ofxSliderGroup.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxSliderGroup.h; path = ../../../addons/ofxGui/src/ofxSliderGroup.h; sourceTree = SOURCE_ROOT; }; 98 | C88333E71C9457E441C33474 /* ofxButton.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxButton.cpp; path = ../../../addons/ofxGui/src/ofxButton.cpp; sourceTree = SOURCE_ROOT; }; 99 | E112B3AEBEA2C091BF2B40AE /* ofxPanel.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxPanel.cpp; path = ../../../addons/ofxGui/src/ofxPanel.cpp; sourceTree = SOURCE_ROOT; }; 100 | E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = openFrameworksLib.xcodeproj; path = ../../../libs/openFrameworksCompiled/project/osx/openFrameworksLib.xcodeproj; sourceTree = SOURCE_ROOT; }; 101 | E45BE9710E8CC7DD009D7055 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = ""; }; 102 | E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = ""; }; 103 | E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = ""; }; 104 | E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = ""; }; 105 | E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = ""; }; 106 | E45BE9770E8CC7DD009D7055 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = ""; }; 107 | E45BE9790E8CC7DD009D7055 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = ""; }; 108 | E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = ""; }; 109 | E4B69B5B0A3A1756003C02F2 /* meshMappingExampleDebug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = meshMappingExampleDebug.app; sourceTree = BUILT_PRODUCTS_DIR; }; 110 | E4B69E1D0A3A1BDC003C02F2 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = src/main.cpp; sourceTree = SOURCE_ROOT; }; 111 | E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofApp.cpp; path = src/ofApp.cpp; sourceTree = SOURCE_ROOT; }; 112 | E4B69E1F0A3A1BDC003C02F2 /* ofApp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ofApp.h; path = src/ofApp.h; sourceTree = SOURCE_ROOT; }; 113 | E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = "openFrameworks-Info.plist"; sourceTree = ""; }; 114 | E4C2424410CC5A17004149E2 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; 115 | E4C2424510CC5A17004149E2 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; 116 | E4C2424610CC5A17004149E2 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = ""; }; 117 | E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = CoreOF.xcconfig; path = ../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig; sourceTree = SOURCE_ROOT; }; 118 | E4EB6923138AFD0F00A09F29 /* Project.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Project.xcconfig; sourceTree = ""; }; 119 | E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = /System/Library/Frameworks/CoreVideo.framework; sourceTree = ""; }; 120 | E7E077E715D3B6510020DFD4 /* QTKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = /System/Library/Frameworks/QTKit.framework; sourceTree = ""; }; 121 | E7F985F515E0DE99003869B5 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = /System/Library/Frameworks/Accelerate.framework; sourceTree = ""; }; 122 | ECF8674C7975F1063C5E30CA /* ofxGuiGroup.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxGuiGroup.cpp; path = ../../../addons/ofxGui/src/ofxGuiGroup.cpp; sourceTree = SOURCE_ROOT; }; 123 | FEB2058E7166D8CDCFAD557B /* ofxCameraSaveLoad.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxCameraSaveLoad.cpp; path = ../../../addons/ofxCameraSaveLoad/src/ofxCameraSaveLoad.cpp; sourceTree = SOURCE_ROOT; }; 124 | /* End PBXFileReference section */ 125 | 126 | /* Begin PBXFrameworksBuildPhase section */ 127 | E4B69B590A3A1756003C02F2 /* Frameworks */ = { 128 | isa = PBXFrameworksBuildPhase; 129 | buildActionMask = 2147483647; 130 | files = ( 131 | E7F985F815E0DEA3003869B5 /* Accelerate.framework in Frameworks */, 132 | E7E077E815D3B6510020DFD4 /* QTKit.framework in Frameworks */, 133 | E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */, 134 | E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */, 135 | E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */, 136 | E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */, 137 | E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */, 138 | E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */, 139 | E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */, 140 | E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */, 141 | E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */, 142 | E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */, 143 | E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */, 144 | E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */, 145 | E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */, 146 | E7E077E515D3B63C0020DFD4 /* CoreVideo.framework in Frameworks */, 147 | ); 148 | runOnlyForDeploymentPostprocessing = 0; 149 | }; 150 | /* End PBXFrameworksBuildPhase section */ 151 | 152 | /* Begin PBXGroup section */ 153 | 480A780D8D0308AE4A368801 /* ofxGui */ = { 154 | isa = PBXGroup; 155 | children = ( 156 | A763ED608B35AE3310251DEE /* src */, 157 | ); 158 | name = ofxGui; 159 | sourceTree = ""; 160 | }; 161 | 689152A2198A169200E817E8 /* ofxMesh */ = { 162 | isa = PBXGroup; 163 | children = ( 164 | 689152A3198A169200E817E8 /* .gitignore */, 165 | 689152A4198A169200E817E8 /* LICENSE */, 166 | 689152A5198A169200E817E8 /* README.md */, 167 | 689152A6198A169200E817E8 /* src */, 168 | ); 169 | name = ofxMesh; 170 | path = ../../../addons/ofxMesh; 171 | sourceTree = ""; 172 | }; 173 | 689152A6198A169200E817E8 /* src */ = { 174 | isa = PBXGroup; 175 | children = ( 176 | 689152A7198A169200E817E8 /* ofxEdge.cpp */, 177 | 689152A8198A169200E817E8 /* ofxEdge.h */, 178 | 689152A9198A169200E817E8 /* ofxFace.cpp */, 179 | 689152AA198A169200E817E8 /* ofxFace.h */, 180 | 689152AB198A169200E817E8 /* ofxMesh.cpp */, 181 | 689152AC198A169200E817E8 /* ofxMesh.h */, 182 | 689152AD198A169200E817E8 /* ofxVertex.cpp */, 183 | 689152AE198A169200E817E8 /* ofxVertex.h */, 184 | ); 185 | path = src; 186 | sourceTree = ""; 187 | }; 188 | A763ED608B35AE3310251DEE /* src */ = { 189 | isa = PBXGroup; 190 | children = ( 191 | 9604B925D32EE39065747725 /* ofxBaseGui.cpp */, 192 | 87F26B4B24CBD428AD9EEBAA /* ofxBaseGui.h */, 193 | C88333E71C9457E441C33474 /* ofxButton.cpp */, 194 | 2834D88A62CD23F3DE2C47D1 /* ofxButton.h */, 195 | 17E65988300FBD9AAA2CD0CA /* ofxGui.h */, 196 | ECF8674C7975F1063C5E30CA /* ofxGuiGroup.cpp */, 197 | 1C0DA2561397A7DE0246858B /* ofxGuiGroup.h */, 198 | 78D67A00EB899FAC09430597 /* ofxLabel.cpp */, 199 | B87C60311EC1FE841C1ECD89 /* ofxLabel.h */, 200 | E112B3AEBEA2C091BF2B40AE /* ofxPanel.cpp */, 201 | 89449E3044D456F7DE7BEA14 /* ofxPanel.h */, 202 | 15F2C6477A769C03A56D1401 /* ofxSlider.cpp */, 203 | 52AFA1F08C420992CAAAE648 /* ofxSlider.h */, 204 | 802251BAF1B35B1D67B32FD0 /* ofxSliderGroup.cpp */, 205 | C70D8946940288799E82131E /* ofxSliderGroup.h */, 206 | 907C5B5E104864A2D3A25745 /* ofxToggle.cpp */, 207 | 0A1DAC09F322AE313A40706D /* ofxToggle.h */, 208 | ); 209 | name = src; 210 | sourceTree = ""; 211 | }; 212 | BB4B014C10F69532006C3DED /* addons */ = { 213 | isa = PBXGroup; 214 | children = ( 215 | 689152A2198A169200E817E8 /* ofxMesh */, 216 | 480A780D8D0308AE4A368801 /* ofxGui */, 217 | CD15E07442C69BE602D98FD7 /* ofxCameraSaveLoad */, 218 | ); 219 | name = addons; 220 | sourceTree = ""; 221 | }; 222 | BBAB23C913894ECA00AA2426 /* system frameworks */ = { 223 | isa = PBXGroup; 224 | children = ( 225 | E7F985F515E0DE99003869B5 /* Accelerate.framework */, 226 | E4C2424410CC5A17004149E2 /* AppKit.framework */, 227 | E4C2424510CC5A17004149E2 /* Cocoa.framework */, 228 | E4C2424610CC5A17004149E2 /* IOKit.framework */, 229 | E45BE9710E8CC7DD009D7055 /* AGL.framework */, 230 | E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */, 231 | E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */, 232 | E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */, 233 | E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */, 234 | E45BE9770E8CC7DD009D7055 /* CoreServices.framework */, 235 | E45BE9790E8CC7DD009D7055 /* OpenGL.framework */, 236 | E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */, 237 | E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */, 238 | E7E077E715D3B6510020DFD4 /* QTKit.framework */, 239 | ); 240 | name = "system frameworks"; 241 | sourceTree = ""; 242 | }; 243 | BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */ = { 244 | isa = PBXGroup; 245 | children = ( 246 | BBAB23BE13894E4700AA2426 /* GLUT.framework */, 247 | ); 248 | name = "3rd party frameworks"; 249 | sourceTree = ""; 250 | }; 251 | CD15E07442C69BE602D98FD7 /* ofxCameraSaveLoad */ = { 252 | isa = PBXGroup; 253 | children = ( 254 | DD4B7A6B02FE3A9E6EA4776D /* src */, 255 | ); 256 | name = ofxCameraSaveLoad; 257 | sourceTree = ""; 258 | }; 259 | DD4B7A6B02FE3A9E6EA4776D /* src */ = { 260 | isa = PBXGroup; 261 | children = ( 262 | FEB2058E7166D8CDCFAD557B /* ofxCameraSaveLoad.cpp */, 263 | 6D5588D3FAE44B8D0798BA44 /* ofxCameraSaveLoad.h */, 264 | ); 265 | name = src; 266 | sourceTree = ""; 267 | }; 268 | E4328144138ABC890047C5CB /* Products */ = { 269 | isa = PBXGroup; 270 | children = ( 271 | E4328148138ABC890047C5CB /* openFrameworksDebug.a */, 272 | ); 273 | name = Products; 274 | sourceTree = ""; 275 | }; 276 | E45BE5980E8CC70C009D7055 /* frameworks */ = { 277 | isa = PBXGroup; 278 | children = ( 279 | BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */, 280 | BBAB23C913894ECA00AA2426 /* system frameworks */, 281 | ); 282 | name = frameworks; 283 | sourceTree = ""; 284 | }; 285 | E4B69B4A0A3A1720003C02F2 = { 286 | isa = PBXGroup; 287 | children = ( 288 | E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */, 289 | E4EB6923138AFD0F00A09F29 /* Project.xcconfig */, 290 | E4B69E1C0A3A1BDC003C02F2 /* src */, 291 | E4EEC9E9138DF44700A80321 /* openFrameworks */, 292 | BB4B014C10F69532006C3DED /* addons */, 293 | E45BE5980E8CC70C009D7055 /* frameworks */, 294 | E4B69B5B0A3A1756003C02F2 /* meshMappingExampleDebug.app */, 295 | ); 296 | sourceTree = ""; 297 | }; 298 | E4B69E1C0A3A1BDC003C02F2 /* src */ = { 299 | isa = PBXGroup; 300 | children = ( 301 | E4B69E1D0A3A1BDC003C02F2 /* main.cpp */, 302 | E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */, 303 | E4B69E1F0A3A1BDC003C02F2 /* ofApp.h */, 304 | ); 305 | path = src; 306 | sourceTree = SOURCE_ROOT; 307 | }; 308 | E4EEC9E9138DF44700A80321 /* openFrameworks */ = { 309 | isa = PBXGroup; 310 | children = ( 311 | E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */, 312 | E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */, 313 | ); 314 | name = openFrameworks; 315 | sourceTree = ""; 316 | }; 317 | /* End PBXGroup section */ 318 | 319 | /* Begin PBXNativeTarget section */ 320 | E4B69B5A0A3A1756003C02F2 /* meshMappingExample */ = { 321 | isa = PBXNativeTarget; 322 | buildConfigurationList = E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "meshMappingExample" */; 323 | buildPhases = ( 324 | E4B69B580A3A1756003C02F2 /* Sources */, 325 | E4B69B590A3A1756003C02F2 /* Frameworks */, 326 | E4B6FFFD0C3F9AB9008CF71C /* ShellScript */, 327 | E4C2427710CC5ABF004149E2 /* CopyFiles */, 328 | ); 329 | buildRules = ( 330 | ); 331 | dependencies = ( 332 | E4EEB9AC138B136A00A80321 /* PBXTargetDependency */, 333 | ); 334 | name = meshMappingExample; 335 | productName = myOFApp; 336 | productReference = E4B69B5B0A3A1756003C02F2 /* meshMappingExampleDebug.app */; 337 | productType = "com.apple.product-type.application"; 338 | }; 339 | /* End PBXNativeTarget section */ 340 | 341 | /* Begin PBXProject section */ 342 | E4B69B4C0A3A1720003C02F2 /* Project object */ = { 343 | isa = PBXProject; 344 | attributes = { 345 | LastUpgradeCheck = 0460; 346 | }; 347 | buildConfigurationList = E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "meshMappingExample" */; 348 | compatibilityVersion = "Xcode 3.2"; 349 | developmentRegion = English; 350 | hasScannedForEncodings = 0; 351 | knownRegions = ( 352 | English, 353 | Japanese, 354 | French, 355 | German, 356 | ); 357 | mainGroup = E4B69B4A0A3A1720003C02F2; 358 | productRefGroup = E4B69B4A0A3A1720003C02F2; 359 | projectDirPath = ""; 360 | projectReferences = ( 361 | { 362 | ProductGroup = E4328144138ABC890047C5CB /* Products */; 363 | ProjectRef = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; 364 | }, 365 | ); 366 | projectRoot = ""; 367 | targets = ( 368 | E4B69B5A0A3A1756003C02F2 /* meshMappingExample */, 369 | ); 370 | }; 371 | /* End PBXProject section */ 372 | 373 | /* Begin PBXReferenceProxy section */ 374 | E4328148138ABC890047C5CB /* openFrameworksDebug.a */ = { 375 | isa = PBXReferenceProxy; 376 | fileType = archive.ar; 377 | path = openFrameworksDebug.a; 378 | remoteRef = E4328147138ABC890047C5CB /* PBXContainerItemProxy */; 379 | sourceTree = BUILT_PRODUCTS_DIR; 380 | }; 381 | /* End PBXReferenceProxy section */ 382 | 383 | /* Begin PBXShellScriptBuildPhase section */ 384 | E4B6FFFD0C3F9AB9008CF71C /* ShellScript */ = { 385 | isa = PBXShellScriptBuildPhase; 386 | buildActionMask = 2147483647; 387 | files = ( 388 | ); 389 | inputPaths = ( 390 | ); 391 | outputPaths = ( 392 | ); 393 | runOnlyForDeploymentPostprocessing = 0; 394 | shellPath = /bin/sh; 395 | 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\";\nmkdir -p \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/\"\ncp -f \"$ICON_FILE\" \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/\"\n"; 396 | }; 397 | /* End PBXShellScriptBuildPhase section */ 398 | 399 | /* Begin PBXSourcesBuildPhase section */ 400 | E4B69B580A3A1756003C02F2 /* Sources */ = { 401 | isa = PBXSourcesBuildPhase; 402 | buildActionMask = 2147483647; 403 | files = ( 404 | E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */, 405 | E4B69E210A3A1BDC003C02F2 /* ofApp.cpp in Sources */, 406 | 856AA354D08AB4B323081444 /* ofxBaseGui.cpp in Sources */, 407 | 5CBB2AB3A60F65431D7B555D /* ofxButton.cpp in Sources */, 408 | B266578FC55D23BFEBC042E7 /* ofxGuiGroup.cpp in Sources */, 409 | 483908258D00B98B4BE69F07 /* ofxLabel.cpp in Sources */, 410 | F285EB3169F1566CA3D93C20 /* ofxPanel.cpp in Sources */, 411 | 837220E80EB56CD44AD27F2A /* ofxSlider.cpp in Sources */, 412 | B56FE57CC35806596D38118C /* ofxSliderGroup.cpp in Sources */, 413 | 1CD33E884D9E3358252E82A1 /* ofxToggle.cpp in Sources */, 414 | 2C1ED88A3466D1D2AC3DA004 /* ofxCameraSaveLoad.cpp in Sources */, 415 | ); 416 | runOnlyForDeploymentPostprocessing = 0; 417 | }; 418 | /* End PBXSourcesBuildPhase section */ 419 | 420 | /* Begin PBXTargetDependency section */ 421 | E4EEB9AC138B136A00A80321 /* PBXTargetDependency */ = { 422 | isa = PBXTargetDependency; 423 | name = openFrameworks; 424 | targetProxy = E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */; 425 | }; 426 | /* End PBXTargetDependency section */ 427 | 428 | /* Begin XCBuildConfiguration section */ 429 | E4B69B4E0A3A1720003C02F2 /* Debug */ = { 430 | isa = XCBuildConfiguration; 431 | baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; 432 | buildSettings = { 433 | ARCHS = "$(NATIVE_ARCH)"; 434 | CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/"; 435 | COPY_PHASE_STRIP = NO; 436 | DEAD_CODE_STRIPPING = YES; 437 | GCC_AUTO_VECTORIZATION = YES; 438 | GCC_ENABLE_SSE3_EXTENSIONS = YES; 439 | GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; 440 | GCC_INLINES_ARE_PRIVATE_EXTERN = NO; 441 | GCC_OPTIMIZATION_LEVEL = 0; 442 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 443 | GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES; 444 | GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; 445 | GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO; 446 | GCC_WARN_UNINITIALIZED_AUTOS = NO; 447 | GCC_WARN_UNUSED_VALUE = NO; 448 | GCC_WARN_UNUSED_VARIABLE = NO; 449 | HEADER_SEARCH_PATHS = ( 450 | "$(OF_CORE_HEADERS)", 451 | ../../../addons/ofxGui/libs, 452 | ../../../addons/ofxGui/src, 453 | ../../../addons/ofxCameraSaveLoad/libs, 454 | ../../../addons/ofxCameraSaveLoad/src, 455 | ); 456 | MACOSX_DEPLOYMENT_TARGET = 10.6; 457 | OTHER_CPLUSPLUSFLAGS = ( 458 | "-D__MACOSX_CORE__", 459 | "-lpthread", 460 | "-mtune=native", 461 | ); 462 | SDKROOT = macosx; 463 | }; 464 | name = Debug; 465 | }; 466 | E4B69B4F0A3A1720003C02F2 /* Release */ = { 467 | isa = XCBuildConfiguration; 468 | baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; 469 | buildSettings = { 470 | ARCHS = "$(NATIVE_ARCH)"; 471 | CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/"; 472 | COPY_PHASE_STRIP = YES; 473 | DEAD_CODE_STRIPPING = YES; 474 | GCC_AUTO_VECTORIZATION = YES; 475 | GCC_ENABLE_SSE3_EXTENSIONS = YES; 476 | GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; 477 | GCC_INLINES_ARE_PRIVATE_EXTERN = NO; 478 | GCC_OPTIMIZATION_LEVEL = 3; 479 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 480 | GCC_UNROLL_LOOPS = YES; 481 | GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES; 482 | GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; 483 | GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO; 484 | GCC_WARN_UNINITIALIZED_AUTOS = NO; 485 | GCC_WARN_UNUSED_VALUE = NO; 486 | GCC_WARN_UNUSED_VARIABLE = NO; 487 | HEADER_SEARCH_PATHS = ( 488 | "$(OF_CORE_HEADERS)", 489 | ../../../addons/ofxGui/libs, 490 | ../../../addons/ofxGui/src, 491 | ../../../addons/ofxCameraSaveLoad/libs, 492 | ../../../addons/ofxCameraSaveLoad/src, 493 | ); 494 | MACOSX_DEPLOYMENT_TARGET = 10.6; 495 | OTHER_CPLUSPLUSFLAGS = ( 496 | "-D__MACOSX_CORE__", 497 | "-lpthread", 498 | "-mtune=native", 499 | ); 500 | SDKROOT = macosx; 501 | }; 502 | name = Release; 503 | }; 504 | E4B69B600A3A1757003C02F2 /* Debug */ = { 505 | isa = XCBuildConfiguration; 506 | buildSettings = { 507 | COMBINE_HIDPI_IMAGES = YES; 508 | COPY_PHASE_STRIP = NO; 509 | FRAMEWORK_SEARCH_PATHS = ( 510 | "$(inherited)", 511 | "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 512 | ); 513 | FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\""; 514 | GCC_DYNAMIC_NO_PIC = NO; 515 | GCC_GENERATE_DEBUGGING_SYMBOLS = YES; 516 | GCC_MODEL_TUNING = NONE; 517 | ICON = "$(ICON_NAME_DEBUG)"; 518 | ICON_FILE = "$(ICON_FILE_PATH)$(ICON)"; 519 | INFOPLIST_FILE = "openFrameworks-Info.plist"; 520 | INSTALL_PATH = "$(HOME)/Applications"; 521 | LIBRARY_SEARCH_PATHS = ( 522 | "$(inherited)", 523 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 524 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 525 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 526 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)", 527 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)", 528 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)", 529 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 530 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 531 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 532 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 533 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 534 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 535 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 536 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)", 537 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)", 538 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 539 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 540 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 541 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 542 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 543 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 544 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 545 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 546 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 547 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)", 548 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)", 549 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)", 550 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)", 551 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)", 552 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)", 553 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)", 554 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)", 555 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)", 556 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)", 557 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)", 558 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)", 559 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)", 560 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)", 561 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)", 562 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)", 563 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)", 564 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)", 565 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)", 566 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)", 567 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)", 568 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)", 569 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)", 570 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)", 571 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)", 572 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)", 573 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)", 574 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)", 575 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)", 576 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)", 577 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)", 578 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)", 579 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)", 580 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)", 581 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)", 582 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)", 583 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_52)", 584 | ); 585 | PRODUCT_NAME = "$(TARGET_NAME)Debug"; 586 | WRAPPER_EXTENSION = app; 587 | }; 588 | name = Debug; 589 | }; 590 | E4B69B610A3A1757003C02F2 /* Release */ = { 591 | isa = XCBuildConfiguration; 592 | buildSettings = { 593 | COMBINE_HIDPI_IMAGES = YES; 594 | COPY_PHASE_STRIP = YES; 595 | FRAMEWORK_SEARCH_PATHS = ( 596 | "$(inherited)", 597 | "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 598 | ); 599 | FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\""; 600 | GCC_GENERATE_DEBUGGING_SYMBOLS = YES; 601 | GCC_MODEL_TUNING = NONE; 602 | ICON = "$(ICON_NAME_RELEASE)"; 603 | ICON_FILE = "$(ICON_FILE_PATH)$(ICON)"; 604 | INFOPLIST_FILE = "openFrameworks-Info.plist"; 605 | INSTALL_PATH = "$(HOME)/Applications"; 606 | LIBRARY_SEARCH_PATHS = ( 607 | "$(inherited)", 608 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", 609 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 610 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 611 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)", 612 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)", 613 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)", 614 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 615 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 616 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 617 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 618 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 619 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 620 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 621 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)", 622 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)", 623 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", 624 | "$(LIBRARY_SEARCH_PATHS_QUOTED_1)", 625 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", 626 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", 627 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", 628 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", 629 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", 630 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", 631 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", 632 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", 633 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)", 634 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)", 635 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)", 636 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)", 637 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)", 638 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)", 639 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)", 640 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)", 641 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)", 642 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)", 643 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)", 644 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)", 645 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)", 646 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)", 647 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)", 648 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)", 649 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)", 650 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)", 651 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)", 652 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)", 653 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)", 654 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)", 655 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)", 656 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)", 657 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)", 658 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)", 659 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)", 660 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)", 661 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)", 662 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)", 663 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)", 664 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)", 665 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)", 666 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)", 667 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)", 668 | "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)", 669 | ); 670 | PRODUCT_NAME = "$(TARGET_NAME)"; 671 | WRAPPER_EXTENSION = app; 672 | }; 673 | name = Release; 674 | }; 675 | /* End XCBuildConfiguration section */ 676 | 677 | /* Begin XCConfigurationList section */ 678 | E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "meshMappingExample" */ = { 679 | isa = XCConfigurationList; 680 | buildConfigurations = ( 681 | E4B69B4E0A3A1720003C02F2 /* Debug */, 682 | E4B69B4F0A3A1720003C02F2 /* Release */, 683 | ); 684 | defaultConfigurationIsVisible = 0; 685 | defaultConfigurationName = Release; 686 | }; 687 | E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "meshMappingExample" */ = { 688 | isa = XCConfigurationList; 689 | buildConfigurations = ( 690 | E4B69B600A3A1757003C02F2 /* Debug */, 691 | E4B69B610A3A1757003C02F2 /* Release */, 692 | ); 693 | defaultConfigurationIsVisible = 0; 694 | defaultConfigurationName = Release; 695 | }; 696 | /* End XCConfigurationList section */ 697 | }; 698 | rootObject = E4B69B4C0A3A1720003C02F2 /* Project object */; 699 | } 700 | --------------------------------------------------------------------------------