Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
  • 3 commits
  • 8 files changed
  • 0 comments
  • 1 contributor
Aug 15, 2012
James George changes for new OF video player before YCAM installation 1419b16
James George Merge branch 'master' of github.com:obviousjim/ScreenLab0x01
Conflicts:
	Renderer/ScreenLabRenderer.xcodeproj/project.pbxproj
	Renderer/bin/data/localsettings.xml
	Renderer/src/ScreenLabPortrait.cpp
	Renderer/src/testApp.cpp
	Renderer/src/testApp.h
fa8b50f
James George merge portrait class 8f8da57
93 Renderer/ScreenLabRenderer.xcodeproj/project.pbxproj
@@ -55,6 +55,7 @@
55 55 E738E82F153C488B00BDA0F3 /* Distance.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E738E7AB153C488900BDA0F3 /* Distance.cpp */; };
56 56 E738E830153C488B00BDA0F3 /* Flow.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E738E7AC153C488900BDA0F3 /* Flow.cpp */; };
57 57 E738E831153C488B00BDA0F3 /* Helpers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E738E7AD153C488900BDA0F3 /* Helpers.cpp */; };
  58 + E738E832153C488B00BDA0F3 /* RunningBackground.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E738E7AE153C488900BDA0F3 /* RunningBackground.cpp */; };
58 59 E738E833153C488B00BDA0F3 /* Tracker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E738E7AF153C488900BDA0F3 /* Tracker.cpp */; };
59 60 E738E834153C488B00BDA0F3 /* Utilities.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E738E7B0153C488900BDA0F3 /* Utilities.cpp */; };
60 61 E738E835153C488B00BDA0F3 /* Wrappers.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E738E7B1153C488900BDA0F3 /* Wrappers.cpp */; };
@@ -72,8 +73,15 @@
72 73 E738E8E4153C491400BDA0F3 /* opencv_objdetect.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E738E8D7153C491400BDA0F3 /* opencv_objdetect.a */; };
73 74 E738E8E5153C491400BDA0F3 /* opencv_video.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E738E8D8153C491400BDA0F3 /* opencv_video.a */; };
74 75 E738E8F1153C922D00BDA0F3 /* ofxDepthImageSequence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E738E8EF153C922C00BDA0F3 /* ofxDepthImageSequence.cpp */; };
75   - E790FB991560AF280047F0F7 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = E790FB981560AF280047F0F7 /* libz.dylib */; };
76   - F3B7D744159A9A09000A37D6 /* ofxRGBDScene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F3B7D742159A9A09000A37D6 /* ofxRGBDScene.cpp */; };
  76 + E7F29E7A15DAA3A60016AF67 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = E7F29E7915DAA3A60016AF67 /* libz.dylib */; };
  77 + E7F29E7C15DAA4880016AF67 /* QTKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7F29E7B15DAA4880016AF67 /* QTKit.framework */; };
  78 + E7F29E7E15DAA4B10016AF67 /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7F29E7D15DAA4B10016AF67 /* CoreVideo.framework */; };
  79 + E7F29E8815DABB1C0016AF67 /* ofxRGBDScene.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E7F29E8615DABB1C0016AF67 /* ofxRGBDScene.cpp */; };
  80 + E7F41290156291C800B299D9 /* ofxBaseGui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E7F41285156291C800B299D9 /* ofxBaseGui.cpp */; };
  81 + E7F41291156291C800B299D9 /* ofxButton.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E7F41287156291C800B299D9 /* ofxButton.cpp */; };
  82 + E7F41292156291C800B299D9 /* ofxPanel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E7F4128A156291C800B299D9 /* ofxPanel.cpp */; };
  83 + E7F41293156291C800B299D9 /* ofxSlider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E7F4128C156291C800B299D9 /* ofxSlider.cpp */; };
  84 + E7F41294156291C800B299D9 /* ofxToggle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E7F4128E156291C800B299D9 /* ofxToggle.cpp */; };
77 85 /* End PBXBuildFile section */
78 86
79 87 /* Begin PBXContainerItemProxy section */
@@ -183,6 +191,7 @@
183 191 E738E7A1153C488900BDA0F3 /* Distance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Distance.h; sourceTree = "<group>"; };
184 192 E738E7A2153C488900BDA0F3 /* Flow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Flow.h; sourceTree = "<group>"; };
185 193 E738E7A3153C488900BDA0F3 /* Helpers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Helpers.h; sourceTree = "<group>"; };
  194 + E738E7A4153C488900BDA0F3 /* RunningBackground.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RunningBackground.h; sourceTree = "<group>"; };
186 195 E738E7A5153C488900BDA0F3 /* Tracker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Tracker.h; sourceTree = "<group>"; };
187 196 E738E7A6153C488900BDA0F3 /* Utilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utilities.h; sourceTree = "<group>"; };
188 197 E738E7A7153C488900BDA0F3 /* Wrappers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Wrappers.h; sourceTree = "<group>"; };
@@ -191,6 +200,7 @@
191 200 E738E7AB153C488900BDA0F3 /* Distance.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Distance.cpp; sourceTree = "<group>"; };
192 201 E738E7AC153C488900BDA0F3 /* Flow.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Flow.cpp; sourceTree = "<group>"; };
193 202 E738E7AD153C488900BDA0F3 /* Helpers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Helpers.cpp; sourceTree = "<group>"; };
  203 + E738E7AE153C488900BDA0F3 /* RunningBackground.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RunningBackground.cpp; sourceTree = "<group>"; };
194 204 E738E7AF153C488900BDA0F3 /* Tracker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Tracker.cpp; sourceTree = "<group>"; };
195 205 E738E7B0153C488900BDA0F3 /* Utilities.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Utilities.cpp; sourceTree = "<group>"; };
196 206 E738E7B1153C488900BDA0F3 /* Wrappers.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Wrappers.cpp; sourceTree = "<group>"; };
@@ -291,10 +301,25 @@
291 301 E738E8D8153C491400BDA0F3 /* opencv_video.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = opencv_video.a; sourceTree = "<group>"; };
292 302 E738E8EF153C922C00BDA0F3 /* ofxDepthImageSequence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxDepthImageSequence.cpp; sourceTree = "<group>"; };
293 303 E738E8F0153C922D00BDA0F3 /* ofxDepthImageSequence.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxDepthImageSequence.h; sourceTree = "<group>"; };
294   - E790FB981560AF280047F0F7 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
  304 + E7F29E7915DAA3A60016AF67 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/usr/lib/libz.dylib; sourceTree = SYSTEM_DEVELOPER_DIR; };
  305 + E7F29E7B15DAA4880016AF67 /* QTKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/QTKit.framework; sourceTree = SYSTEM_DEVELOPER_DIR; };
  306 + E7F29E7D15DAA4B10016AF67 /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/CoreVideo.framework; sourceTree = SYSTEM_DEVELOPER_DIR; };
  307 + E7F29E8615DABB1C0016AF67 /* ofxRGBDScene.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxRGBDScene.cpp; sourceTree = "<group>"; };
  308 + E7F29E8715DABB1C0016AF67 /* ofxRGBDScene.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxRGBDScene.h; sourceTree = "<group>"; };
  309 + E7F41283156291C800B299D9 /* ofOscParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofOscParameter.h; sourceTree = "<group>"; };
  310 + E7F41284156291C800B299D9 /* ofParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofParameter.h; sourceTree = "<group>"; };
  311 + E7F41285156291C800B299D9 /* ofxBaseGui.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxBaseGui.cpp; sourceTree = "<group>"; };
  312 + E7F41286156291C800B299D9 /* ofxBaseGui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxBaseGui.h; sourceTree = "<group>"; };
  313 + E7F41287156291C800B299D9 /* ofxButton.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxButton.cpp; sourceTree = "<group>"; };
  314 + E7F41288156291C800B299D9 /* ofxButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxButton.h; sourceTree = "<group>"; };
  315 + E7F41289156291C800B299D9 /* ofxGui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxGui.h; sourceTree = "<group>"; };
  316 + E7F4128A156291C800B299D9 /* ofxPanel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxPanel.cpp; sourceTree = "<group>"; };
  317 + E7F4128B156291C800B299D9 /* ofxPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxPanel.h; sourceTree = "<group>"; };
  318 + E7F4128C156291C800B299D9 /* ofxSlider.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxSlider.cpp; sourceTree = "<group>"; };
  319 + E7F4128D156291C800B299D9 /* ofxSlider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxSlider.h; sourceTree = "<group>"; };
  320 + E7F4128E156291C800B299D9 /* ofxToggle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxToggle.cpp; sourceTree = "<group>"; };
  321 + E7F4128F156291C800B299D9 /* ofxToggle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxToggle.h; sourceTree = "<group>"; };
295 322 E7F412971562994400B299D9 /* ofRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofRange.h; sourceTree = "<group>"; };
296   - F3B7D742159A9A09000A37D6 /* ofxRGBDScene.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxRGBDScene.cpp; sourceTree = "<group>"; };
297   - F3B7D743159A9A09000A37D6 /* ofxRGBDScene.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxRGBDScene.h; sourceTree = "<group>"; };
298 323 /* End PBXFileReference section */
299 324
300 325 /* Begin PBXFrameworksBuildPhase section */
@@ -302,7 +327,9 @@
302 327 isa = PBXFrameworksBuildPhase;
303 328 buildActionMask = 2147483647;
304 329 files = (
305   - E790FB991560AF280047F0F7 /* libz.dylib in Frameworks */,
  330 + E7F29E7E15DAA4B10016AF67 /* CoreVideo.framework in Frameworks */,
  331 + E7F29E7C15DAA4880016AF67 /* QTKit.framework in Frameworks */,
  332 + E7F29E7A15DAA3A60016AF67 /* libz.dylib in Frameworks */,
306 333 E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */,
307 334 E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */,
308 335 E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */,
@@ -391,6 +418,7 @@
391 418 isa = PBXGroup;
392 419 children = (
393 420 E7F412951562994400B299D9 /* ofxRange */,
  421 + E7F41281156291C800B299D9 /* ofxGui */,
394 422 A67E68DF15604CCB00B8E8CC /* ofxTween */,
395 423 E734B78E153DA92A00E7E20F /* ofxCameraTrack */,
396 424 E738E6D8153C488900BDA0F3 /* ofxCv */,
@@ -404,7 +432,9 @@
404 432 BBAB23C913894ECA00AA2426 /* system frameworks */ = {
405 433 isa = PBXGroup;
406 434 children = (
407   - E790FB981560AF280047F0F7 /* libz.dylib */,
  435 + E7F29E7D15DAA4B10016AF67 /* CoreVideo.framework */,
  436 + E7F29E7B15DAA4880016AF67 /* QTKit.framework */,
  437 + E7F29E7915DAA3A60016AF67 /* libz.dylib */,
408 438 E4C2424410CC5A17004149E2 /* AppKit.framework */,
409 439 E4C2424510CC5A17004149E2 /* Cocoa.framework */,
410 440 E4C2424610CC5A17004149E2 /* IOKit.framework */,
@@ -570,8 +600,6 @@
570 600 E738E6B8153C483200BDA0F3 /* src */ = {
571 601 isa = PBXGroup;
572 602 children = (
573   - F3B7D743159A9A09000A37D6 /* ofxRGBDScene.h */,
574   - F3B7D742159A9A09000A37D6 /* ofxRGBDScene.cpp */,
575 603 E738E6BC153C483200BDA0F3 /* ofxDepthHoleFiller.h */,
576 604 E738E6BB153C483200BDA0F3 /* ofxDepthHoleFiller.cpp */,
577 605 E738E6BE153C483200BDA0F3 /* ofxDepthImageCompressor.h */,
@@ -582,6 +610,8 @@
582 610 E738E6C7153C483200BDA0F3 /* ofxRGBDRenderer.cpp */,
583 611 E738E6CA153C483200BDA0F3 /* ofxRGBDVideoDepthSequence.h */,
584 612 E738E6C9153C483200BDA0F3 /* ofxRGBDVideoDepthSequence.cpp */,
  613 + E7F29E8615DABB1C0016AF67 /* ofxRGBDScene.cpp */,
  614 + E7F29E8715DABB1C0016AF67 /* ofxRGBDScene.h */,
585 615 );
586 616 path = src;
587 617 sourceTree = "<group>";
@@ -631,6 +661,7 @@
631 661 E738E7A1153C488900BDA0F3 /* Distance.h */,
632 662 E738E7A2153C488900BDA0F3 /* Flow.h */,
633 663 E738E7A3153C488900BDA0F3 /* Helpers.h */,
  664 + E738E7A4153C488900BDA0F3 /* RunningBackground.h */,
634 665 E738E7A5153C488900BDA0F3 /* Tracker.h */,
635 666 E738E7A6153C488900BDA0F3 /* Utilities.h */,
636 667 E738E7A7153C488900BDA0F3 /* Wrappers.h */,
@@ -646,6 +677,7 @@
646 677 E738E7AB153C488900BDA0F3 /* Distance.cpp */,
647 678 E738E7AC153C488900BDA0F3 /* Flow.cpp */,
648 679 E738E7AD153C488900BDA0F3 /* Helpers.cpp */,
  680 + E738E7AE153C488900BDA0F3 /* RunningBackground.cpp */,
649 681 E738E7AF153C488900BDA0F3 /* Tracker.cpp */,
650 682 E738E7B0153C488900BDA0F3 /* Utilities.cpp */,
651 683 E738E7B1153C488900BDA0F3 /* Wrappers.cpp */,
@@ -906,6 +938,35 @@
906 938 path = osx;
907 939 sourceTree = "<group>";
908 940 };
  941 + E7F41281156291C800B299D9 /* ofxGui */ = {
  942 + isa = PBXGroup;
  943 + children = (
  944 + E7F41282156291C800B299D9 /* src */,
  945 + );
  946 + name = ofxGui;
  947 + path = ../../../addons/ofxGui;
  948 + sourceTree = "<group>";
  949 + };
  950 + E7F41282156291C800B299D9 /* src */ = {
  951 + isa = PBXGroup;
  952 + children = (
  953 + E7F41283156291C800B299D9 /* ofOscParameter.h */,
  954 + E7F41284156291C800B299D9 /* ofParameter.h */,
  955 + E7F41285156291C800B299D9 /* ofxBaseGui.cpp */,
  956 + E7F41286156291C800B299D9 /* ofxBaseGui.h */,
  957 + E7F41287156291C800B299D9 /* ofxButton.cpp */,
  958 + E7F41288156291C800B299D9 /* ofxButton.h */,
  959 + E7F41289156291C800B299D9 /* ofxGui.h */,
  960 + E7F4128A156291C800B299D9 /* ofxPanel.cpp */,
  961 + E7F4128B156291C800B299D9 /* ofxPanel.h */,
  962 + E7F4128C156291C800B299D9 /* ofxSlider.cpp */,
  963 + E7F4128D156291C800B299D9 /* ofxSlider.h */,
  964 + E7F4128E156291C800B299D9 /* ofxToggle.cpp */,
  965 + E7F4128F156291C800B299D9 /* ofxToggle.h */,
  966 + );
  967 + path = src;
  968 + sourceTree = "<group>";
  969 + };
909 970 E7F412951562994400B299D9 /* ofxRange */ = {
910 971 isa = PBXGroup;
911 972 children = (
@@ -1016,6 +1077,7 @@
1016 1077 E738E82F153C488B00BDA0F3 /* Distance.cpp in Sources */,
1017 1078 E738E830153C488B00BDA0F3 /* Flow.cpp in Sources */,
1018 1079 E738E831153C488B00BDA0F3 /* Helpers.cpp in Sources */,
  1080 + E738E832153C488B00BDA0F3 /* RunningBackground.cpp in Sources */,
1019 1081 E738E833153C488B00BDA0F3 /* Tracker.cpp in Sources */,
1020 1082 E738E834153C488B00BDA0F3 /* Utilities.cpp in Sources */,
1021 1083 E738E835153C488B00BDA0F3 /* Wrappers.cpp in Sources */,
@@ -1036,7 +1098,12 @@
1036 1098 A67E692A15604CCB00B8E8CC /* ofxEasingQuint.cpp in Sources */,
1037 1099 A67E692B15604CCB00B8E8CC /* ofxEasingSine.cpp in Sources */,
1038 1100 A67E692C15604CCB00B8E8CC /* ofxTween.cpp in Sources */,
1039   - F3B7D744159A9A09000A37D6 /* ofxRGBDScene.cpp in Sources */,
  1101 + E7F41290156291C800B299D9 /* ofxBaseGui.cpp in Sources */,
  1102 + E7F41291156291C800B299D9 /* ofxButton.cpp in Sources */,
  1103 + E7F41292156291C800B299D9 /* ofxPanel.cpp in Sources */,
  1104 + E7F41293156291C800B299D9 /* ofxSlider.cpp in Sources */,
  1105 + E7F41294156291C800B299D9 /* ofxToggle.cpp in Sources */,
  1106 + E7F29E8815DABB1C0016AF67 /* ofxRGBDScene.cpp in Sources */,
1040 1107 );
1041 1108 runOnlyForDeploymentPostprocessing = 0;
1042 1109 };
@@ -1066,7 +1133,7 @@
1066 1133 GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
1067 1134 GCC_MODEL_TUNING = G5;
1068 1135 GCC_SYMBOLS_PRIVATE_EXTERN = NO;
1069   - GCC_VERSION = "";
  1136 + GCC_VERSION = com.apple.compilers.llvmgcc42;
1070 1137 GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
1071 1138 GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO;
1072 1139 GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO;
@@ -1098,7 +1165,7 @@
1098 1165 GCC_OPTIMIZATION_LEVEL = 3;
1099 1166 GCC_SYMBOLS_PRIVATE_EXTERN = NO;
1100 1167 GCC_UNROLL_LOOPS = YES;
1101   - GCC_VERSION = "";
  1168 + GCC_VERSION = com.apple.compilers.llvmgcc42;
1102 1169 GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
1103 1170 GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO;
1104 1171 GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO;
@@ -1214,6 +1281,7 @@
1214 1281 LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9 = "\"$(SRCROOT)/../../../addons/ofxOsc/libs/oscpack/lib/win_cb\"";
1215 1282 PREBINDING = NO;
1216 1283 PRODUCT_NAME = ScreenLabRendererDebug;
  1284 + SDKROOT = macosx10.7;
1217 1285 WRAPPER_EXTENSION = app;
1218 1286 };
1219 1287 name = Debug;
@@ -1318,6 +1386,7 @@
1318 1386 LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9 = "\"$(SRCROOT)/../../../addons/ofxOsc/libs/oscpack/lib/win_cb\"";
1319 1387 PREBINDING = NO;
1320 1388 PRODUCT_NAME = ScreenLabRenderer;
  1389 + SDKROOT = macosx10.7;
1321 1390 WRAPPER_EXTENSION = app;
1322 1391 };
1323 1392 name = Release;
20 Renderer/bin/data/localsettings.xml
... ... @@ -1,22 +1,32 @@
1 1 <settings>
  2 + <!--
2 3 <soundDirectory>/Users/obviousjim/Documents/media/SpectacleOfChange/Sound/</soundDirectory>
3 4 <portraitMediaBin>/Users/obviousjim/Documents/media/SpectacleOfChange/MediaBin/</portraitMediaBin>
4 5 <cameraAngles>/Users/obviousjim/Documents/media/SpectacleOfChange/CameraAnglesEyebeam/</cameraAngles>
  6 +-->
  7 + <soundDirectory>/Volumes/Headroom 2/IslingtonMill/SoundBin/</soundDirectory>
  8 + <portraitMediaBin>/Volumes/Headroom 2/IslingtonMill/MediaBinForShow/</portraitMediaBin>
  9 + <cameraAngles>/Volumes/Headroom 2/IslingtonMill/CameraAngles/</cameraAngles>
5 10 <screenType>CLOSE</screenType>
6 11 <screenRect>
7 12 <x>0</x>
8 13 <y>0</y>
9   - <w>525</w>
10   - <h>1680</h>
  14 + <w>600</w>
  15 + <h>1920</h>
11 16 </screenRect>
12 17 <screenRect>
13   - <x>525</x>
  18 + <x>600</x>
14 19 <y>0</y>
15   - <w>525</w>
16   - <h>1680</h>
  20 + <w>600</w>
  21 + <h>1920</h>
17 22 </screenRect>
18 23 <pointSize>2.5</pointSize>
19 24 <lineWidth>1</lineWidth>
  25 +
  26 +<!-- <xshift>0.0104762</xshift> -->
  27 +<!-- <yshift>0.0274286</yshift> -->
  28 +
20 29 <xshift>0.00266667</xshift>
21 30 <yshift>0.0521429</yshift>
  31 +
22 32 </settings>
19 Renderer/bin/data/portraits.xml
... ... @@ -1,5 +1,15 @@
1 1 <portraits>
2 2
  3 + <!-- ALICE -->
  4 + <portrait>
  5 + <name>alice</name>
  6 + <soundFile>Alice.aif</soundFile>
  7 + <close>
  8 + <mediaFolder>ALICE_CLOSE</mediaFolder>
  9 + </close>
  10 + </portrait>
  11 +
  12 +
3 13 <!-- MARK -->
4 14 <portrait>
5 15 <name>mark</name>
@@ -23,15 +33,6 @@
23 33 </studio>
24 34 </portrait>
25 35
26   - <!-- ALICE -->
27   - <portrait>
28   - <name>alice</name>
29   - <soundFile>Alice.aif</soundFile>
30   - <close>
31   - <mediaFolder>ALICE_CLOSE</mediaFolder>
32   - </close>
33   - </portrait>
34   -
35 36 <!-- JENNY -->
36 37 <portrait>
37 38 <name>jenny</name>
1  Renderer/bin/data/shaders/unproject.vert
@@ -29,6 +29,7 @@ void main(void)
29 29 texCd.xyz /= texCd.w;
30 30
31 31 texCd.xy *= -1.;
  32 + texCd.x *= -1.;
32 33 texCd.xy += 1.;
33 34 texCd.xy /= 2.;
34 35 texCd.xy += fudge;
92 Renderer/src/ScreenLabPortrait.cpp
@@ -9,18 +9,26 @@
9 9 #include "ofxXmlSettings.h"
10 10
11 11 ScreenLabPortrait::ScreenLabPortrait(){
12   -// startFrame = 0;
13   -// endFrame = -1;
14 12 rendererRef = NULL;
  13 + useHighResPlayer = false;
  14 + render = false;
15 15 }
16 16
17 17 void ScreenLabPortrait::setup(PortraitType _type, string mediaFolder, string soundPath){
18 18 type = _type;
  19 + cout << "Setting up portrait " << endl;
  20 +
19 21 soundPlayer.loadMovie(soundPath);
20 22 soundPlayer.setLoopState(OF_LOOP_NONE);
21 23 cout << "media folder " << mediaFolder << " " << soundPath << endl;
  24 +//<<<<<<< HEAD
  25 +// if(take.loadFromFolder(mediaFolder)){
  26 +// cout << "Low res video is " << take.lowResVideoPath << endl;
  27 +// videoPlayer.loadMovie(take.lowResVideoPath);
  28 +//=======
22 29 if(scene.loadFromFolder(mediaFolder)){
23 30 videoPlayer.loadMovie(scene.videoPath);
  31 +//>>>>>>> 7785d622a173e710bd358ffb900bc4ebd357bed5
24 32 // rendererRef->setTextureScale(640./1920, 360./1080);
25 33 //videoPlayer.loadMovie(take.hiResVideoPath);
26 34 depthImages.loadSequence(scene.depthFolder);
@@ -29,6 +37,10 @@ void ScreenLabPortrait::setup(PortraitType _type, string mediaFolder, string sou
29 37 ofLogError("ScreenLabPortrait -- Pairings not ready!");
30 38 }
31 39
  40 + renderFolder = mediaFolder + "/renders";
  41 + if(!ofDirectory(renderFolder).exists()){
  42 + ofDirectory(renderFolder).create();
  43 + }
32 44 videoTimes = pairing.getStartAndEndTimes(videoPlayer, depthImages);
33 45
34 46 // scene.populateRenderSettings();
@@ -55,25 +67,52 @@ void ScreenLabPortrait::setup(PortraitType _type, string mediaFolder, string sou
55 67 void ScreenLabPortrait::resetAndPlay(){
56 68 lastTime = 0;
57 69
  70 + cout << "setting up sound player" << endl;
  71 +
58 72 soundPlayer.setVolume(1300);
59 73 soundPlayer.setPosition(0);
60 74 soundPlayer.play();
61 75 soundPlayer.setLoopState(OF_LOOP_NONE);
62 76
  77 +// rendererRef->setup(take.calibrationDirectory);
  78 +
  79 + cout << "setting up renderer " << endl;
63 80 cout << "sound player duration " << soundPlayer.getDuration() << endl;
64 81
65   - videoPlayer.setSpeed(.5);
66   - videoPlayer.setPosition(videoTimes.min / videoPlayer.getDuration() );
67   - videoPlayer.setVolume(0);
68   - videoPlayer.play();
69   - videoPlayer.setLoopState(OF_LOOP_NORMAL);
  82 +//<<<<<<< HEAD
  83 + if(useHighResPlayer){
  84 + if(!hiResPlayer.isLoaded()){
  85 + hiResPlayer.loadMovie(scene.alternativeHiResVideoPath);
  86 + }
  87 + hiResPlayer.setSpeed(.5);
  88 + //videoPlayer.setFrame(startFrame);
  89 + hiResPlayer.setPosition(videoTimes.min / videoPlayer.getDuration() );
  90 + hiResPlayer.setVolume(0);
  91 + hiResPlayer.play();
  92 + hiResPlayer.setLoopState(OF_LOOP_NORMAL);
  93 +// rendererRef->setRGBTexture(hiResPlayer);
  94 + }
  95 + else {
  96 + videoPlayer.setSpeed(.5);
  97 + //videoPlayer.setFrame(startFrame);
  98 + videoPlayer.setPosition(videoTimes.min / videoPlayer.getDuration() );
  99 + videoPlayer.setVolume(0);
  100 + videoPlayer.play();
  101 + videoPlayer.setLoopState(OF_LOOP_NORMAL);
  102 +// rendererRef->setRGBTexture(videoPlayer);
  103 + }
70 104
  105 +//=======
  106 +// videoPlayer.setSpeed(.5);
  107 +// videoPlayer.setPosition(videoTimes.min / videoPlayer.getDuration() );
  108 +// videoPlayer.setVolume(0);
  109 +// videoPlayer.play();
  110 +// videoPlayer.setLoopState(OF_LOOP_NORMAL);
  111 + cout << "calibration folder is " << scene.calibrationFolder << endl;
71 112 rendererRef->setup(scene.calibrationFolder);
72 113 rendererRef->setRGBTexture(videoPlayer);
  114 +//>>>>>>> 7785d622a173e710bd358ffb900bc4ebd357bed5
73 115 rendererRef->setDepthImage(depthImages.getPixels());
74   -// if(take.getRenderSettings().size() != 0){
75   - //take.getRenderSettings()[0].applyToRenderer(*rendererRef);
76   -// }
77 116 rendererRef->farClip = 1200;
78 117 if(name == "jenny"){
79 118 rendererRef->farClip = 925;
@@ -83,8 +122,13 @@ void ScreenLabPortrait::resetAndPlay(){
83 122 }
84 123
85 124 if(name == "kev"){
  125 +//<<<<<<< HEAD
  126 +// rendererRef->xmult = 0.0104762;
  127 +// rendererRef->ymult = 0.0274286;
  128 +
86 129 rendererRef->xshift = 0.0140476;
87 130 rendererRef->yshift = 0.0293333;
  131 +//>>>>>>> 7785d622a173e710bd358ffb900bc4ebd357bed5
88 132 }
89 133 else{
90 134 rendererRef->xshift = 0;
@@ -94,30 +138,38 @@ void ScreenLabPortrait::resetAndPlay(){
94 138 ofAddListener(ofEvents().update, this, &ScreenLabPortrait::update);
95 139 }
96 140
  141 +void ScreenLabPortrait::startRender(){
  142 + hiResPlayer.setSpeed(0);
  143 + render = true;
  144 +}
  145 +
97 146 void ScreenLabPortrait::stop(){
  147 + cout << "stopping portraits " << endl;
98 148 videoPlayer.stop();
  149 + hiResPlayer.stop();
99 150 soundPlayer.stop();
100 151 ofRemoveListener(ofEvents().update, this, &ScreenLabPortrait::update);
  152 + cout << "portrait stopped" << endl;
101 153 }
102 154
103 155 void ScreenLabPortrait::update(ofEventArgs& args){
104   - if(soundPlayer.getPosition() == 1.0 || lastTime > soundPlayer.getPosition()){ //looops?
  156 + if(!render && (soundPlayer.getPosition() == 1.0 || lastTime > soundPlayer.getPosition()) ){
105 157 stop();
106 158 }
107 159 lastTime = soundPlayer.getPosition();
108   -
109   - videoPlayer.update();
110   - if(videoPlayer.isFrameNew()){
111   - if(videoPlayer.getPosition() >= videoTimes.max / videoPlayer.getDuration()){
112   - videoPlayer.setFrame(videoTimes.min / videoPlayer.getDuration() );
  160 + ofVideoPlayer& player = useHighResPlayer ? hiResPlayer : videoPlayer;
  161 + if(render){
  162 + player.setFrame(player.getCurrentFrame()+1);
  163 + }
  164 + player.update();
  165 + if(player.isFrameNew()){
  166 + if(player.getPosition() >= videoTimes.max / player.getDuration()){
  167 + player.setPosition(videoTimes.min / player.getDuration() );
113 168 }
114 169 else {
115   - long time = pairing.getDepthFrameForVideoFrame(videoPlayer.getPosition() * videoPlayer.getDuration() * 1000);
  170 + long time = pairing.getDepthFrameForVideoFrame(player.getPosition() * player.getDuration() * 1000);
116 171 depthImages.selectTime( time );
117   - //ofShortPixels& pix = depthImages.getPixels();
118   - //filler.close(pix);
119 172 filler.close(depthImages.getPixels());
120   -// rendererRef->setDepthImage(pix);
121 173 rendererRef->update();
122 174 }
123 175 }
7 Renderer/src/ScreenLabPortrait.h
@@ -42,9 +42,14 @@ class ScreenLabPortrait {
42 42 ofxDepthImageSequence depthImages;
43 43 ofxRGBDVideoDepthSequence pairing;
44 44
  45 + bool useHighResPlayer;
45 46 PortraitType type;
46 47 ofVideoPlayer videoPlayer;
  48 + ofVideoPlayer hiResPlayer;
47 49 ofVideoPlayer soundPlayer;
48 50 ofxDepthHoleFiller filler;
49   -
  51 +
  52 + string renderFolder;
  53 + void startRender();
  54 + bool render;
50 55 };
208 Renderer/src/testApp.cpp
@@ -2,32 +2,37 @@
2 2
3 3 //--------------------------------------------------------------
4 4 void testApp::setup(){
5   -
6   - ofSetFrameRate(60);
  5 +
  6 + ofSetFrameRate(30);
7 7 ofBackground(0);
8 8
  9 + totalFramesRendered = 0;
9 10 alignMode = false;
10 11 loadedSuccess = false;
11   -// leftRect = ofRectangle(0,0, 720, 2160);
12   -// rightRect = ofRectangle(720,0, 720, 2160) ;
13   -
  12 + render = false;
14 13 ofxXmlSettings localSettings;
15 14 if(localSettings.loadFile("localsettings.xml")){
16 15 localSettings.pushTag("settings");
  16 +//<<<<<<< HEAD
  17 +// renderer.xmult = localSettings.getValue("xshift", 0.0);
  18 +// renderer.ymult = localSettings.getValue("yshift", 0.0);
  19 +// cout << "xshift " << renderer.xmult << " y shift " << renderer.ymult << endl;
  20 +//=======
17 21 renderer.xshift = localSettings.getValue("xshift", 0.0);
18 22 renderer.yshift = localSettings.getValue("yshift", 0.0);
19 23 cout << "xshift " << renderer.xshift << " y shift " << renderer.yshift << endl;
20 24
  25 +//>>>>>>> 7785d622a173e710bd358ffb900bc4ebd357bed5
21 26 int numScreens = localSettings.getNumTags("screenRect");
22 27 cout << "num screens " << numScreens << endl;
23   - twoScreens = (numScreens == 2);
24   -
  28 + twoScreens = (numScreens > 1);
  29 + threeScreens = (numScreens > 2);
25 30 localSettings.pushTag("screenRect");
26 31 leftRect.x = localSettings.getValue("x",0);
27 32 leftRect.y = localSettings.getValue("y",0);
28 33 leftRect.width = localSettings.getValue("w",10);
29 34 leftRect.height = localSettings.getValue("h",10);
30   - leftFbo.allocate(leftRect.width, leftRect.height, GL_RGB, 4);
  35 + //leftFbo.allocate(leftRect.width, leftRect.height, GL_RGB, 4);
31 36 localSettings.popTag();
32 37 cout << "screen one " << rightRect.x << " " << rightRect.y << " " << leftRect.width << " " << leftRect.height << endl;
33 38 if(twoScreens){
@@ -36,12 +41,25 @@ void testApp::setup(){
36 41 rightRect.y = localSettings.getValue("y",0);
37 42 rightRect.width = localSettings.getValue("w",10);
38 43 rightRect.height = localSettings.getValue("h",10);
39   - rightFbo.allocate(leftRect.width, leftRect.height, GL_RGB, 4);
40 44
41 45 localSettings.popTag();
42 46 cout << "screen two " << rightRect.x << " " << rightRect.y << " " << rightRect.width << " " << rightRect.height << endl;
  47 + if(threeScreens){
  48 + localSettings.pushTag("screenRect",2);
  49 + middleRect.x = localSettings.getValue("x",0);
  50 + middleRect.y = localSettings.getValue("y",0);
  51 + middleRect.width = localSettings.getValue("w",10);
  52 + middleRect.height = localSettings.getValue("h",10);
  53 + localSettings.popTag();
  54 + fbo.allocate(leftRect.width+rightRect.width+middleRect.width, leftRect.height, GL_RGB, 4);
  55 + }
  56 + else{
  57 + fbo.allocate(leftRect.width+rightRect.width, leftRect.height, GL_RGB, 4);
  58 + }
  59 + }
  60 + else{
  61 + fbo.allocate(leftRect.width, leftRect.height, GL_RGB, 4);
43 62 }
44   -
45 63 soundDirectory = localSettings.getValue("soundDirectory", "");
46 64 portraitMediaBin = localSettings.getValue("portraitMediaBin", "");
47 65 string typeString = localSettings.getValue("screenType", "");
@@ -95,7 +113,6 @@ void testApp::setup(){
95 113 }
96 114
97 115 string soundFile = portraits.getValue("soundFile", "");
98   - cout << "loading sound file " << soundFile << endl;
99 116
100 117
101 118 newPortrait.rendererRef = &renderer; //must be set before setup()
@@ -115,6 +132,7 @@ void testApp::setup(){
115 132
116 133 currentLeft = 0;
117 134 currentRight = 0;
  135 + currentMiddle = 0;
118 136 if(!twoScreens){
119 137 currentRight = -1; //disable this index
120 138 }
@@ -123,12 +141,6 @@ void testApp::setup(){
123 141
124 142 currentPortrait = -1;
125 143 gotoNextPortrait();
126   -
127   -// for(int i = 0; i < 200; i++){
128   -// ofNode n;
129   -// n.setPosition(ofRandom(-1000,1000),ofRandom(-1000,1000),ofRandom(-1000,1000) );
130   -// debugNodes.push_back( n );
131   -// }
132 144
133 145 leftCam.setup();
134 146 leftCam.setScale(1,-1,1);
@@ -144,6 +156,13 @@ void testApp::setup(){
144 156 rightCam.speed = 10;
145 157 rightCam.loadCameraPosition();
146 158
  159 + middleCam.setup();
  160 + middleCam.setScale(1,-1,1);
  161 + middleCam.usemouse = true;
  162 + middleCam.autosavePosition = true;
  163 + middleCam.speed = 10;
  164 + middleCam.loadCameraPosition();
  165 +
147 166 normalLeftCam.setScale(1,-1,1);
148 167 normalRightCam.setScale(1,-1,1);
149 168
@@ -152,12 +171,6 @@ void testApp::setup(){
152 171 glEnable(GL_DEPTH_TEST);
153 172 loadedSuccess = true;
154 173 ofToggleFullscreen();
155   -// lastCameraChangeTimeRight = ofGetElapsedTimef();
156   -// currentCameraDurationRight = ofRandom(20, 50); //ofRandom(10, 40);
157   -// lastCameraChangeTimeLeft = ofGetElapsedTimef();
158   -// currentCameraDurationLeft = ofRandom(20, 50); //ofRandom(10, 40);
159   -
160   -
161 174 }
162 175
163 176 //--------------------------------------------------------------
@@ -168,6 +181,17 @@ void testApp::gotoNextPortrait(){
168 181 currentPortrait = (currentPortrait + 1) % allPortraits.size();
169 182 allPortraits[currentPortrait].resetAndPlay();
170 183
  184 +//<<<<<<< HEAD
  185 +// cameraTrackFile = ofToDataPath(allPortraits[currentPortrait].take.mediaFolder + "/SalfordTracks.xml");
  186 +// middleCameraTrackFile = ofToDataPath(allPortraits[currentPortrait].take.mediaFolder + "/SalfordTracks_Middle.xml");
  187 + //cout << "loading camera track " << cameraTrackFile << endl;
  188 + track.loadFromFile(cameraTrackFile);
  189 + middleTrack.loadFromFile(middleCameraTrackFile);
  190 +
  191 +
  192 +
  193 + //cout << "Playing portrait " << currentPortrait << " with " << allPortraits[currentPortrait].videoPlayer.getTotalNumFrames() << endl;
  194 +//=======
171 195 //cameraTrackFile = ofToDataPath(allPortraits[currentPortrait].scene.mediaFolder + "/SalfordTracks.xml");
172 196 cameraTrackFile = ofToDataPath(cameraPositionDirectory + allPortraits[currentPortrait].name + "_CameraTrack.xml", true);
173 197 cout << "loading camera track " << cameraTrackFile << endl;
@@ -190,6 +214,10 @@ void testApp::gotoPortrait(string name){
190 214 }
191 215 currentPortrait = i;
192 216 allPortraits[i].resetAndPlay();
  217 + if(render){
  218 + allPortraits[i].startRender();
  219 + totalFramesRendered = 0;
  220 + }
193 221 return;
194 222 }
195 223 }
@@ -218,7 +246,11 @@ void testApp::update(){
218 246 */
219 247
220 248 //cout << allPortraits[currentPortrait].soundPlayer.getPosition() << endl;
  249 +//<<<<<<< HEAD
  250 +// if(!render && !allPortraits[currentPortrait].soundPlayer.isPlaying()){
  251 +//=======
221 252 if(!composeMode && !allPortraits[currentPortrait].soundPlayer.isPlaying()){
  253 +//>>>>>>> 7785d622a173e710bd358ffb900bc4ebd357bed5
222 254 gotoNextPortrait();
223 255 }
224 256
@@ -228,6 +260,7 @@ void testApp::update(){
228 260 }
229 261
230 262 checkSwitchCamera();
  263 +
231 264 }
232 265
233 266 //--------------------------------------------------------------
@@ -242,46 +275,47 @@ void testApp::draw(){
242 275 ofSetColor(255, 0, 0);
243 276 ofPopStyle();
244 277
245   - ofRectangle justifiedLeft = ofRectangle(0,0,leftFbo.getWidth(), leftFbo.getHeight());
246   - ofRectangle justifiedRight = ofRectangle(0,0,rightFbo.getWidth(), rightFbo.getHeight() );
  278 +// ofRectangle justifiedLeft = ofRectangle(0,0,leftFbo.getWidth(), leftFbo.getHeight());
  279 +// ofRectangle justifiedRight = ofRectangle(0,0,rightFbo.getWidth(), rightFbo.getHeight() );
247 280
  281 + fbo.begin();
248 282 if(composeMode){
249   - leftFbo.begin();
250 283 ofClear(0);
251   - leftCam.begin(justifiedLeft);
  284 + leftCam.begin(leftRect);
252 285 drawFunc();
253 286 leftCam.end();
254   - leftFbo.end();
255 287 if(twoScreens){
256   - rightFbo.begin();
257   - ofClear(0);
258   - rightCam.begin(justifiedRight);
  288 + rightCam.begin(rightRect);
259 289 drawFunc();
260 290 rightCam.end();
261   - rightFbo.end();
  291 + if(threeScreens){
  292 + middleCam.begin(middleRect);
  293 + drawFunc();
  294 + middleCam.end();
  295 + }
262 296 }
263 297 }
264 298 else{
265   - leftFbo.begin();
266 299 ofClear(0);
267   - normalLeftCam.begin(justifiedLeft);
  300 + normalLeftCam.begin(leftRect);
268 301 drawFunc();
269 302 normalLeftCam.end();
270   - leftFbo.end();
271 303 if(twoScreens){
272   - rightFbo.begin();
273   - ofClear(0);
274   - normalRightCam.begin(justifiedRight);
  304 + normalRightCam.begin(rightRect);
275 305 drawFunc();
276 306 normalRightCam.end();
277   - rightFbo.end();
  307 + if(threeScreens){
  308 + middleCam.begin(middleRect);
  309 + drawFunc();
  310 + middleCam.end();
  311 + }
278 312 }
279 313 }
280 314
281   - leftFbo.getTextureReference().draw(leftRect);
282   - if(twoScreens){
283   - rightFbo.getTextureReference().draw(rightRect);
284   - }
  315 + fbo.end();
  316 +
  317 +
  318 + fbo.draw(0,0);
285 319
286 320 ofPushStyle();
287 321 ofNoFill();
@@ -291,8 +325,20 @@ void testApp::draw(){
291 325 ofRect(rightRect);
292 326 ofPopStyle();
293 327
294   -// ofDrawBitmapString("of framerate " + ofToString(ofGetFrameRate()), 30, 30 );
295   - //allPortraits[currentPortrait].videoPlayer.draw(0,0, 640,360);
  328 + ofDrawBitmapString("Next Cut Left " + ofToString( currentCameraFramesLeft - (ofGetFrameNum() - lastCameraChangeFrameLeft)),
  329 + rightRect.x + rightRect.width + 10, 10);
  330 + if(twoScreens){
  331 + ofDrawBitmapString("Next Cut Right " + ofToString( currentCameraFramesRight - (ofGetFrameNum() - lastCameraChangeFrameRight)),
  332 + rightRect.x + rightRect.width + 10, 28);
  333 + }
  334 +
  335 + if(render){
  336 + char filename[1024];
  337 + sprintf(filename, "%s/frame_%05d.png", allPortraits[currentPortrait].renderFolder.c_str(), totalFramesRendered++);
  338 + fbo.getTextureReference().readToPixels(savePixels.getPixelsRef());
  339 + savePixels.saveImage(filename);
  340 + }
  341 +
296 342 }
297 343
298 344 void testApp::drawFunc(){
@@ -315,23 +361,28 @@ void testApp::keyPressed(int key){
315 361 }
316 362
317 363 if(key == 'v'){
318   - float ratio = leftFbo.getWidth()/leftFbo.getHeight();
  364 + float ratio = leftRect.width/leftRect.height;
319 365 float newHeight = ofGetHeight();
320 366 float newWidth = ofGetHeight() * ratio;
321   - cout << "ratio was " << leftRect.width / leftRect.height << endl;
322 367 leftRect = ofRectangle(0,0, newWidth, newHeight);
323 368 rightRect = ofRectangle(newWidth,0, newWidth, newHeight);
324   - cout << "ratio is " << leftRect.width / leftRect.height << endl;
325 369 }
326 370
327 371 if(key == 'C'){
328 372 composeMode = !composeMode;
329 373 }
330   -
331 374 if(key == 'R'){
332   - track.camera = leftCam.applyTranslation ? &leftCam : &rightCam;
333   - track.sample(track.getSamples().size()); //add a sample
334   - track.writeToFile(cameraTrackFile);
  375 + if(middleCam.applyRotation){
  376 + middleTrack.camera = &middleCam;
  377 + middleTrack.addSample(); //add a sample
  378 + middleTrack.writeToFile(middleCameraTrackFile);
  379 + }
  380 + else{
  381 + track.camera = leftCam.applyTranslation ? &leftCam : &rightCam;
  382 + // track.sample(track.getSamples().size()); //add a sample
  383 + track.addSample();
  384 + track.writeToFile(cameraTrackFile);
  385 + }
335 386 }
336 387 if(key == 'P'){
337 388 checkSwitchCamera(true);
@@ -356,6 +407,11 @@ void testApp::keyPressed(int key){
356 407 xyshiftFile.saveFile();
357 408 }
358 409 }
  410 +
  411 + if(key == 'S'){
  412 + render = true;
  413 + allPortraits[currentPortrait].startRender();
  414 + }
359 415 }
360 416
361 417 //--------------------------------------------------------------
@@ -366,10 +422,11 @@ void testApp::checkSwitchCamera(bool force) {
366 422 return;
367 423 }
368 424
369   - if(force || currentCameraDurationLeft < ofGetElapsedTimef() - lastCameraChangeTimeLeft){
370   -
371   - lastCameraChangeTimeLeft = ofGetElapsedTimef();
372   - currentCameraDurationLeft = ofRandom(5, 40); //ofRandom(10, 40);
  425 + //if(force || currentCameraDurationLeft < ofGetElapsedTimef() - lastCameraChangeTimeLeft){
  426 + if(force || currentCameraFramesLeft < ofGetFrameNum() - lastCameraChangeFrameLeft){
  427 + lastCameraChangeFrameLeft = ofGetFrameNum();
  428 + //currentCameraDurationLeft = ofRandom(5, 40); //ofRandom(10, 40);
  429 + currentCameraFramesLeft = ofRandom(2*15, 30*15);
373 430 if(track.getSamples().size() > 1){
374 431 track.camera = &normalLeftCam;
375 432 int sample;
@@ -378,25 +435,45 @@ void testApp::checkSwitchCamera(bool force) {
378 435 sample = ofRandom(0, track.getSamples().size());
379 436 } while( (sample == currentRight || sample == currentLeft) && tries++ < 10);
380 437 currentLeft = sample;
381   - cout << "LEFT sampling camera at frame " << (sample+1) << " of " << track.getSamples().size() << endl;
  438 +// cout << "LEFT sampling camera at frame " << (sample+1) << " of " << track.getSamples().size() << endl;
382 439 track.moveCameraToFrame(sample);
383 440 }
384 441 }
385   - if(force || currentCameraDurationRight < ofGetElapsedTimef() - lastCameraChangeTimeRight){
386   - lastCameraChangeTimeRight = ofGetElapsedTimef();
387   - currentCameraDurationRight = ofRandom(5, 15); //ofRandom(10, 40);
  442 +
  443 + //if(force || currentCameraDurationRight < ofGetElapsedTimef() - lastCameraChangeTimeRight){
  444 + if(force || currentCameraFramesRight < ofGetFrameNum() - lastCameraChangeFrameRight){
  445 + lastCameraChangeFrameRight = ofGetFrameNum();
  446 + //currentCameraDurationRight = ofRandom(5, 15); //ofRandom(10, 40);
  447 + currentCameraFramesRight = ofRandom(2*15, 30*15); //ofRandom(10, 40);
388 448 if(track.getSamples().size() > 1){
389   - track.camera = &normalRightCam;
  449 + track.camera = &normalRightCam;
390 450 int sample;
391 451 int tries = 0;
392 452 do {
393 453 sample = ofRandom(0, track.getSamples().size());
394 454 } while((sample == currentLeft || sample == currentRight) && tries++ < 10);
395 455 currentRight = sample;
396   - cout << "RIGHT sampling camera at frame " << (sample+1) << " of " << track.getSamples().size() << endl;
  456 +// cout << "RIGHT sampling camera at frame " << (sample+1) << " of " << track.getSamples().size() << endl;
397 457 track.moveCameraToFrame(sample);
398 458 }
399 459 }
  460 + //cout << "checking for middle camera " << currentCameraFramesMiddle << " " << ofGetFrameNum() - lastCameraChangeFrameMiddle << endl;
  461 + if(force || currentCameraFramesMiddle < ofGetFrameNum() - lastCameraChangeFrameMiddle){
  462 + lastCameraChangeFrameMiddle = ofGetFrameNum();
  463 + //currentCameraFramesMiddle = ofRandom(10*30, 60*30); //ofRandom(10, 40);
  464 + currentCameraFramesMiddle = ofRandom(10, 60); //ofRandom(10, 40);
  465 + if(middleTrack.getSamples().size() > 1){
  466 + middleTrack.camera = &normalMiddleCam;
  467 + int sample;
  468 + int tries = 0;
  469 + do{
  470 + sample = ofRandom(0, middleTrack.getSamples().size());
  471 + } while(sample == currentMiddle && tries++ < 10);
  472 + currentMiddle = sample;
  473 + middleTrack.moveCameraToFrame(sample);
  474 + }
  475 +
  476 + }
400 477 }
401 478
402 479 //--------------------------------------------------------------
@@ -406,10 +483,9 @@ void testApp::keyReleased(int key){
406 483
407 484 //--------------------------------------------------------------
408 485 void testApp::mouseMoved(int x, int y){
409   - leftCam.usemouse = composeMode && leftRect.inside(x,y);
410   - leftCam.applyTranslation = composeMode && leftRect.inside(x,y);
411   - rightCam.usemouse = composeMode && rightRect.inside(x,y);
412   - rightCam.applyTranslation = composeMode && rightRect.inside(x,y);
  486 + leftCam.usemouse = leftCam.applyTranslation = composeMode && leftRect.inside(x,y);
  487 + rightCam.usemouse = rightCam.applyTranslation = composeMode && rightRect.inside(x,y);
  488 + middleCam.usemouse = middleCam.applyRotation = composeMode && middleRect.inside(x,y);
413 489 }
414 490
415 491 //--------------------------------------------------------------
40 Renderer/src/testApp.h
@@ -6,8 +6,8 @@
6 6 #include "ofxGameCamera.h"
7 7 #include "ofxXmlSettings.h"
8 8 #include "ofxCameraTrack.h"
9   -//#include "ofxOsc.h"
10   -//#include "ofxGui.h"
  9 +
  10 +
11 11
12 12 class testApp : public ofBaseApp{
13 13 public:
@@ -29,12 +29,15 @@ class testApp : public ofBaseApp{
29 29 void gotoPortrait(string name);
30 30 void drawFunc();
31 31
32   - float lastCameraChangeTimeLeft;
33   - float currentCameraDurationLeft;
34   -
35   - float lastCameraChangeTimeRight;
36   - float currentCameraDurationRight;
37   -
  32 + int lastCameraChangeFrameLeft;
  33 + int currentCameraFramesLeft;
  34 +
  35 + int lastCameraChangeFrameRight;
  36 + int currentCameraFramesRight;
  37 +
  38 + int lastCameraChangeFrameMiddle;
  39 + int currentCameraFramesMiddle;
  40 +
38 41 vector<ScreenLabPortrait> allPortraits;
39 42 int currentPortrait;
40 43
@@ -44,24 +47,32 @@ class testApp : public ofBaseApp{
44 47 string portraitMediaBin;
45 48 string cameraPositionDirectory;
46 49 string cameraTrackFile;
  50 + string middleCameraTrackFile;
47 51
48 52 PortraitType type;
49 53
50 54 ofxGameCamera leftCam;
51 55 ofxGameCamera rightCam;
52   -
  56 + ofxGameCamera middleCam;
  57 +
53 58 ofCamera normalLeftCam;
54 59 ofCamera normalRightCam;
  60 + ofCamera normalMiddleCam;
  61 +
  62 + ofxCameraTrack track;
  63 + ofxCameraTrack middleTrack;
55 64
56 65 bool twoScreens;
  66 + bool threeScreens;
57 67 ofRectangle leftRect;
58 68 ofRectangle rightRect;
  69 + ofRectangle middleRect;
  70 +
59 71 float lineWidth;
60 72 float pointSize;
61 73 int currentLeft;
62 74 int currentRight;
63   -
64   - ofxCameraTrack track;
  75 + int currentMiddle;
65 76
66 77 vector<ofNode> debugNodes;
67 78 bool loadedSuccess;
@@ -74,8 +85,11 @@ class testApp : public ofBaseApp{
74 85 // ofxOscReceiver receiver;
75 86
76 87 bool alignMode;
77   - ofFbo leftFbo;
78   - ofFbo rightFbo;
  88 + ofFbo fbo;
  89 + bool render;
  90 + int totalFramesRendered;
  91 + ofImage savePixels;
  92 + // bool fullCamMode;
79 93
80 94
81 95 };

No commit comments for this range

Something went wrong with that request. Please try again.