├── 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 | 
27 | Mapped Geometry IRL
28 |
29 | 
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 |
--------------------------------------------------------------------------------