Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

add lost/retrieve on scene user tracker

add normalize data from defined bounds
correct some bug and memory leaks

Signed-off-by: pach <thomas.pachoud@gmail.com>
  • Loading branch information...
commit 59103d441c72f4803b99a223d7cb360e2a1240ec 1 parent 6538a9c
@pach authored
View
34 bin/data/controlPanelSettings.xml
@@ -8,7 +8,7 @@
<val_0>0.000000</val_0>
</REPLAY_STATE>
<TRACKING_STATE>
- <val_0>0.000000</val_0>
+ <val_0>1.000000</val_0>
</TRACKING_STATE>
<HAND_STATE>
<val_0>0.000000</val_0>
@@ -16,9 +16,6 @@
<OSC_STATE>
<val_0>1.000000</val_0>
</OSC_STATE>
-<OSC_UPDATE>
- <val_0>0.000000</val_0>
-</OSC_UPDATE>
<KINECT_STATE>
<val_0>0.000000</val_0>
</KINECT_STATE>
@@ -29,5 +26,32 @@
<val_0>0.000000</val_0>
</SKELETON_STATE>
<OSC_TRACKING_MODE>
- <val_0>0.000000</val_0>
+ <val_0>1.000000</val_0>
</OSC_TRACKING_MODE>
+<TRACK_MIN_X>
+ <val_0>-3000.000000</val_0>
+</TRACK_MIN_X>
+<TRACK_MAX_X>
+ <val_0>3000.000000</val_0>
+</TRACK_MAX_X>
+<TRACK_MIN_Y>
+ <val_0>-3000.000000</val_0>
+</TRACK_MIN_Y>
+<TRACK_MAX_Y>
+ <val_0>3000.000000</val_0>
+</TRACK_MAX_Y>
+<TRACK_MIN_Z>
+ <val_0>0.000000</val_0>
+</TRACK_MIN_Z>
+<TRACK_MAX_Z>
+ <val_0>5000.000000</val_0>
+</TRACK_MAX_Z>
+<OSC_ADDR>
+ <val_0>localhost</val_0>
+</OSC_ADDR>
+<OSC_PORT>
+ <val_0>8888</val_0>
+</OSC_PORT>
+<OSC_UPDATE>
+ <val_0>0.000000</val_0>
+</OSC_UPDATE>
View
6 bin/kinectNiOSCToolboxDebug.app/Contents/Info.plist
@@ -21,7 +21,7 @@
<key>DTCompiler</key>
<string></string>
<key>DTPlatformBuild</key>
- <string>4A1006</string>
+ <string>4A2002a</string>
<key>DTPlatformVersion</key>
<string>GM</string>
<key>DTSDKBuild</key>
@@ -29,8 +29,8 @@
<key>DTSDKName</key>
<string></string>
<key>DTXcode</key>
- <string>0400</string>
+ <string>0402</string>
<key>DTXcodeBuild</key>
- <string>4A1006</string>
+ <string>4A2002a</string>
</dict>
</plist>
View
BIN  bin/kinectNiOSCToolboxDebug.app/Contents/MacOS/kinectNiOSCToolboxDebug
Binary file not shown
View
385 kinectNiOSCToolbox.xcodeproj/project.pbxproj
@@ -40,38 +40,38 @@
8466DFBB1385468700C0C07C /* ofxTrackedHand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8466DF881385468600C0C07C /* ofxTrackedHand.cpp */; };
8466DFBC1385468700C0C07C /* ofxTrackedUser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8466DF8A1385468600C0C07C /* ofxTrackedUser.cpp */; };
8466DFBD1385468700C0C07C /* ofxUserGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8466DF8C1385468600C0C07C /* ofxUserGenerator.cpp */; };
- 84B82DF613857CBF00504DC3 /* guiBaseObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82DAD13857CBF00504DC3 /* guiBaseObject.cpp */; };
- 84B82DF713857CBF00504DC3 /* guiCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82DAF13857CBF00504DC3 /* guiCallback.cpp */; };
- 84B82DF813857CBF00504DC3 /* guiCallbackValue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82DB113857CBF00504DC3 /* guiCallbackValue.cpp */; };
- 84B82DF913857CBF00504DC3 /* guiColor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82DB313857CBF00504DC3 /* guiColor.cpp */; };
- 84B82DFA13857CBF00504DC3 /* guiTextBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82DB713857CBF00504DC3 /* guiTextBase.cpp */; };
- 84B82DFB13857CBF00504DC3 /* guiType2DSlider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82DB913857CBF00504DC3 /* guiType2DSlider.cpp */; };
- 84B82DFC13857CBF00504DC3 /* guiTypeButtonSlider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82DBB13857CBF00504DC3 /* guiTypeButtonSlider.cpp */; };
- 84B82DFD13857CBF00504DC3 /* guiTypeChartPlotter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82DBD13857CBF00504DC3 /* guiTypeChartPlotter.cpp */; };
- 84B82DFE13857CBF00504DC3 /* guiTypeCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82DBF13857CBF00504DC3 /* guiTypeCustom.cpp */; };
- 84B82DFF13857CBF00504DC3 /* guiTypeDrawable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82DC113857CBF00504DC3 /* guiTypeDrawable.cpp */; };
- 84B82E0013857CBF00504DC3 /* guiTypeFileLister.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82DC313857CBF00504DC3 /* guiTypeFileLister.cpp */; };
- 84B82E0113857CBF00504DC3 /* guiTypeLabel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82DC513857CBF00504DC3 /* guiTypeLabel.cpp */; };
- 84B82E0213857CBF00504DC3 /* guiTypeLogger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82DC713857CBF00504DC3 /* guiTypeLogger.cpp */; };
- 84B82E0313857CBF00504DC3 /* guiTypeMultiToggle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82DC913857CBF00504DC3 /* guiTypeMultiToggle.cpp */; };
- 84B82E0413857CBF00504DC3 /* guiTypePanel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82DCB13857CBF00504DC3 /* guiTypePanel.cpp */; };
- 84B82E0513857CBF00504DC3 /* guiTypeSlider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82DCD13857CBF00504DC3 /* guiTypeSlider.cpp */; };
- 84B82E0613857CBF00504DC3 /* guiTypeText.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82DCF13857CBF00504DC3 /* guiTypeText.cpp */; };
- 84B82E0713857CBF00504DC3 /* guiTypeTextDropDown.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82DD113857CBF00504DC3 /* guiTypeTextDropDown.cpp */; };
- 84B82E0813857CBF00504DC3 /* guiTypeTextInput.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82DD313857CBF00504DC3 /* guiTypeTextInput.cpp */; };
- 84B82E0913857CBF00504DC3 /* guiTypeToggle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82DD513857CBF00504DC3 /* guiTypeToggle.cpp */; };
- 84B82E0A13857CBF00504DC3 /* guiTypeVairableLister.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82DD713857CBF00504DC3 /* guiTypeVairableLister.cpp */; };
- 84B82E0B13857CBF00504DC3 /* guiTypeVideo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82DD913857CBF00504DC3 /* guiTypeVideo.cpp */; };
- 84B82E0C13857CBF00504DC3 /* guiValue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82DDB13857CBF00504DC3 /* guiValue.cpp */; };
- 84B82E0D13857CBF00504DC3 /* ofxControlPanel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82DDF13857CBF00504DC3 /* ofxControlPanel.cpp */; };
- 84B82E0E13857CBF00504DC3 /* simpleColor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82DE113857CBF00504DC3 /* simpleColor.cpp */; };
- 84B82E0F13857CBF00504DC3 /* simpleFileLister.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82DE313857CBF00504DC3 /* simpleFileLister.cpp */; };
- 84B82E1013857CBF00504DC3 /* simpleLogger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82DE513857CBF00504DC3 /* simpleLogger.cpp */; };
84B82E6213857E1700504DC3 /* ofxDirList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82E5613857E1700504DC3 /* ofxDirList.cpp */; };
84B82E6313857E1700504DC3 /* tinyxml.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82E5B13857E1700504DC3 /* tinyxml.cpp */; };
84B82E6413857E1700504DC3 /* tinyxmlerror.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82E5D13857E1700504DC3 /* tinyxmlerror.cpp */; };
84B82E6513857E1700504DC3 /* tinyxmlparser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82E5E13857E1700504DC3 /* tinyxmlparser.cpp */; };
84B82E6613857E1700504DC3 /* ofxXmlSettings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B82E6013857E1700504DC3 /* ofxXmlSettings.cpp */; };
+ 84CABC5913A786C900CAF295 /* guiBaseObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84CABC1F13A786C900CAF295 /* guiBaseObject.cpp */; };
+ 84CABC5A13A786C900CAF295 /* guiCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84CABC2113A786C900CAF295 /* guiCallback.cpp */; };
+ 84CABC5B13A786C900CAF295 /* guiCallbackValue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84CABC2313A786C900CAF295 /* guiCallbackValue.cpp */; };
+ 84CABC5C13A786C900CAF295 /* guiColor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84CABC2513A786C900CAF295 /* guiColor.cpp */; };
+ 84CABC5D13A786C900CAF295 /* guiTextBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84CABC2913A786C900CAF295 /* guiTextBase.cpp */; };
+ 84CABC5E13A786C900CAF295 /* guiType2DSlider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84CABC2B13A786C900CAF295 /* guiType2DSlider.cpp */; };
+ 84CABC5F13A786C900CAF295 /* guiTypeButtonSlider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84CABC2D13A786C900CAF295 /* guiTypeButtonSlider.cpp */; };
+ 84CABC6013A786C900CAF295 /* guiTypeChartPlotter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84CABC2F13A786C900CAF295 /* guiTypeChartPlotter.cpp */; };
+ 84CABC6113A786C900CAF295 /* guiTypeCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84CABC3113A786C900CAF295 /* guiTypeCustom.cpp */; };
+ 84CABC6213A786C900CAF295 /* guiTypeDrawable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84CABC3313A786C900CAF295 /* guiTypeDrawable.cpp */; };
+ 84CABC6313A786C900CAF295 /* guiTypeFileLister.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84CABC3513A786C900CAF295 /* guiTypeFileLister.cpp */; };
+ 84CABC6413A786C900CAF295 /* guiTypeLabel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84CABC3713A786C900CAF295 /* guiTypeLabel.cpp */; };
+ 84CABC6513A786C900CAF295 /* guiTypeLogger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84CABC3913A786C900CAF295 /* guiTypeLogger.cpp */; };
+ 84CABC6613A786C900CAF295 /* guiTypeMultiToggle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84CABC3B13A786C900CAF295 /* guiTypeMultiToggle.cpp */; };
+ 84CABC6713A786C900CAF295 /* guiTypePanel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84CABC3D13A786C900CAF295 /* guiTypePanel.cpp */; };
+ 84CABC6813A786C900CAF295 /* guiTypeSlider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84CABC3F13A786C900CAF295 /* guiTypeSlider.cpp */; };
+ 84CABC6913A786C900CAF295 /* guiTypeText.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84CABC4113A786C900CAF295 /* guiTypeText.cpp */; };
+ 84CABC6A13A786C900CAF295 /* guiTypeTextDropDown.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84CABC4313A786C900CAF295 /* guiTypeTextDropDown.cpp */; };
+ 84CABC6B13A786C900CAF295 /* guiTypeTextInput.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84CABC4513A786C900CAF295 /* guiTypeTextInput.cpp */; };
+ 84CABC6C13A786C900CAF295 /* guiTypeToggle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84CABC4713A786C900CAF295 /* guiTypeToggle.cpp */; };
+ 84CABC6D13A786C900CAF295 /* guiTypeVairableLister.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84CABC4913A786C900CAF295 /* guiTypeVairableLister.cpp */; };
+ 84CABC6E13A786C900CAF295 /* guiTypeVideo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84CABC4B13A786C900CAF295 /* guiTypeVideo.cpp */; };
+ 84CABC6F13A786C900CAF295 /* guiValue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84CABC4D13A786C900CAF295 /* guiValue.cpp */; };
+ 84CABC7013A786C900CAF295 /* ofxControlPanel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84CABC5113A786C900CAF295 /* ofxControlPanel.cpp */; };
+ 84CABC7113A786C900CAF295 /* simpleColor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84CABC5313A786C900CAF295 /* simpleColor.cpp */; };
+ 84CABC7213A786C900CAF295 /* simpleFileLister.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84CABC5513A786C900CAF295 /* simpleFileLister.cpp */; };
+ 84CABC7313A786C900CAF295 /* simpleLogger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84CABC5713A786C900CAF295 /* simpleLogger.cpp */; };
E45BE0AA0E8CC67C009D7055 /* GLee.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE0A90E8CC67C009D7055 /* GLee.a */; };
E45BE2E40E8CC69C009D7055 /* rtAudio.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE2E30E8CC69C009D7055 /* rtAudio.a */; };
E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9710E8CC7DD009D7055 /* AGL.framework */; };
@@ -324,64 +324,6 @@
8466DF8B1385468600C0C07C /* ofxTrackedUser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxTrackedUser.h; sourceTree = "<group>"; };
8466DF8C1385468600C0C07C /* ofxUserGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxUserGenerator.cpp; sourceTree = "<group>"; };
8466DF8D1385468600C0C07C /* ofxUserGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxUserGenerator.h; sourceTree = "<group>"; };
- 84B82DAD13857CBF00504DC3 /* guiBaseObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiBaseObject.cpp; sourceTree = "<group>"; };
- 84B82DAE13857CBF00504DC3 /* guiBaseObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiBaseObject.h; sourceTree = "<group>"; };
- 84B82DAF13857CBF00504DC3 /* guiCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiCallback.cpp; sourceTree = "<group>"; };
- 84B82DB013857CBF00504DC3 /* guiCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiCallback.h; sourceTree = "<group>"; };
- 84B82DB113857CBF00504DC3 /* guiCallbackValue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiCallbackValue.cpp; sourceTree = "<group>"; };
- 84B82DB213857CBF00504DC3 /* guiCallbackValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiCallbackValue.h; sourceTree = "<group>"; };
- 84B82DB313857CBF00504DC3 /* guiColor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiColor.cpp; sourceTree = "<group>"; };
- 84B82DB413857CBF00504DC3 /* guiColor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiColor.h; sourceTree = "<group>"; };
- 84B82DB513857CBF00504DC3 /* guiCustomImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiCustomImpl.h; sourceTree = "<group>"; };
- 84B82DB613857CBF00504DC3 /* guiIncludes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiIncludes.h; sourceTree = "<group>"; };
- 84B82DB713857CBF00504DC3 /* guiTextBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTextBase.cpp; sourceTree = "<group>"; };
- 84B82DB813857CBF00504DC3 /* guiTextBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTextBase.h; sourceTree = "<group>"; };
- 84B82DB913857CBF00504DC3 /* guiType2DSlider.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiType2DSlider.cpp; sourceTree = "<group>"; };
- 84B82DBA13857CBF00504DC3 /* guiType2DSlider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiType2DSlider.h; sourceTree = "<group>"; };
- 84B82DBB13857CBF00504DC3 /* guiTypeButtonSlider.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypeButtonSlider.cpp; sourceTree = "<group>"; };
- 84B82DBC13857CBF00504DC3 /* guiTypeButtonSlider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypeButtonSlider.h; sourceTree = "<group>"; };
- 84B82DBD13857CBF00504DC3 /* guiTypeChartPlotter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypeChartPlotter.cpp; sourceTree = "<group>"; };
- 84B82DBE13857CBF00504DC3 /* guiTypeChartPlotter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypeChartPlotter.h; sourceTree = "<group>"; };
- 84B82DBF13857CBF00504DC3 /* guiTypeCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypeCustom.cpp; sourceTree = "<group>"; };
- 84B82DC013857CBF00504DC3 /* guiTypeCustom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypeCustom.h; sourceTree = "<group>"; };
- 84B82DC113857CBF00504DC3 /* guiTypeDrawable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypeDrawable.cpp; sourceTree = "<group>"; };
- 84B82DC213857CBF00504DC3 /* guiTypeDrawable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypeDrawable.h; sourceTree = "<group>"; };
- 84B82DC313857CBF00504DC3 /* guiTypeFileLister.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypeFileLister.cpp; sourceTree = "<group>"; };
- 84B82DC413857CBF00504DC3 /* guiTypeFileLister.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypeFileLister.h; sourceTree = "<group>"; };
- 84B82DC513857CBF00504DC3 /* guiTypeLabel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypeLabel.cpp; sourceTree = "<group>"; };
- 84B82DC613857CBF00504DC3 /* guiTypeLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypeLabel.h; sourceTree = "<group>"; };
- 84B82DC713857CBF00504DC3 /* guiTypeLogger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypeLogger.cpp; sourceTree = "<group>"; };
- 84B82DC813857CBF00504DC3 /* guiTypeLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypeLogger.h; sourceTree = "<group>"; };
- 84B82DC913857CBF00504DC3 /* guiTypeMultiToggle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypeMultiToggle.cpp; sourceTree = "<group>"; };
- 84B82DCA13857CBF00504DC3 /* guiTypeMultiToggle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypeMultiToggle.h; sourceTree = "<group>"; };
- 84B82DCB13857CBF00504DC3 /* guiTypePanel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypePanel.cpp; sourceTree = "<group>"; };
- 84B82DCC13857CBF00504DC3 /* guiTypePanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypePanel.h; sourceTree = "<group>"; };
- 84B82DCD13857CBF00504DC3 /* guiTypeSlider.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypeSlider.cpp; sourceTree = "<group>"; };
- 84B82DCE13857CBF00504DC3 /* guiTypeSlider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypeSlider.h; sourceTree = "<group>"; };
- 84B82DCF13857CBF00504DC3 /* guiTypeText.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypeText.cpp; sourceTree = "<group>"; };
- 84B82DD013857CBF00504DC3 /* guiTypeText.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypeText.h; sourceTree = "<group>"; };
- 84B82DD113857CBF00504DC3 /* guiTypeTextDropDown.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypeTextDropDown.cpp; sourceTree = "<group>"; };
- 84B82DD213857CBF00504DC3 /* guiTypeTextDropDown.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypeTextDropDown.h; sourceTree = "<group>"; };
- 84B82DD313857CBF00504DC3 /* guiTypeTextInput.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypeTextInput.cpp; sourceTree = "<group>"; };
- 84B82DD413857CBF00504DC3 /* guiTypeTextInput.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypeTextInput.h; sourceTree = "<group>"; };
- 84B82DD513857CBF00504DC3 /* guiTypeToggle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypeToggle.cpp; sourceTree = "<group>"; };
- 84B82DD613857CBF00504DC3 /* guiTypeToggle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypeToggle.h; sourceTree = "<group>"; };
- 84B82DD713857CBF00504DC3 /* guiTypeVairableLister.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypeVairableLister.cpp; sourceTree = "<group>"; };
- 84B82DD813857CBF00504DC3 /* guiTypeVairableLister.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypeVairableLister.h; sourceTree = "<group>"; };
- 84B82DD913857CBF00504DC3 /* guiTypeVideo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypeVideo.cpp; sourceTree = "<group>"; };
- 84B82DDA13857CBF00504DC3 /* guiTypeVideo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypeVideo.h; sourceTree = "<group>"; };
- 84B82DDB13857CBF00504DC3 /* guiValue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiValue.cpp; sourceTree = "<group>"; };
- 84B82DDC13857CBF00504DC3 /* guiValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiValue.h; sourceTree = "<group>"; };
- 84B82DDD13857CBF00504DC3 /* guiVariablePointer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiVariablePointer.h; sourceTree = "<group>"; };
- 84B82DDE13857CBF00504DC3 /* guiXmlValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiXmlValue.h; sourceTree = "<group>"; };
- 84B82DDF13857CBF00504DC3 /* ofxControlPanel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxControlPanel.cpp; sourceTree = "<group>"; };
- 84B82DE013857CBF00504DC3 /* ofxControlPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxControlPanel.h; sourceTree = "<group>"; };
- 84B82DE113857CBF00504DC3 /* simpleColor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = simpleColor.cpp; sourceTree = "<group>"; };
- 84B82DE213857CBF00504DC3 /* simpleColor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = simpleColor.h; sourceTree = "<group>"; };
- 84B82DE313857CBF00504DC3 /* simpleFileLister.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = simpleFileLister.cpp; sourceTree = "<group>"; };
- 84B82DE413857CBF00504DC3 /* simpleFileLister.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = simpleFileLister.h; sourceTree = "<group>"; };
- 84B82DE513857CBF00504DC3 /* simpleLogger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = simpleLogger.cpp; sourceTree = "<group>"; };
- 84B82DE613857CBF00504DC3 /* simpleLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = simpleLogger.h; sourceTree = "<group>"; };
84B82E5313857E1700504DC3 /* Instructions.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Instructions.txt; sourceTree = "<group>"; };
84B82E5413857E1700504DC3 /* install.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = install.xml; sourceTree = "<group>"; };
84B82E5613857E1700504DC3 /* ofxDirList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxDirList.cpp; sourceTree = "<group>"; };
@@ -393,6 +335,65 @@
84B82E5E13857E1700504DC3 /* tinyxmlparser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tinyxmlparser.cpp; sourceTree = "<group>"; };
84B82E6013857E1700504DC3 /* ofxXmlSettings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxXmlSettings.cpp; sourceTree = "<group>"; };
84B82E6113857E1700504DC3 /* ofxXmlSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxXmlSettings.h; sourceTree = "<group>"; };
+ 84CABB7613A7864D00CAF295 /* controlPanelSettings.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; name = controlPanelSettings.xml; path = bin/data/controlPanelSettings.xml; sourceTree = "<group>"; };
+ 84CABC1F13A786C900CAF295 /* guiBaseObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiBaseObject.cpp; sourceTree = "<group>"; };
+ 84CABC2013A786C900CAF295 /* guiBaseObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiBaseObject.h; sourceTree = "<group>"; };
+ 84CABC2113A786C900CAF295 /* guiCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiCallback.cpp; sourceTree = "<group>"; };
+ 84CABC2213A786C900CAF295 /* guiCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiCallback.h; sourceTree = "<group>"; };
+ 84CABC2313A786C900CAF295 /* guiCallbackValue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiCallbackValue.cpp; sourceTree = "<group>"; };
+ 84CABC2413A786C900CAF295 /* guiCallbackValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiCallbackValue.h; sourceTree = "<group>"; };
+ 84CABC2513A786C900CAF295 /* guiColor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiColor.cpp; sourceTree = "<group>"; };
+ 84CABC2613A786C900CAF295 /* guiColor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiColor.h; sourceTree = "<group>"; };
+ 84CABC2713A786C900CAF295 /* guiCustomImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiCustomImpl.h; sourceTree = "<group>"; };
+ 84CABC2813A786C900CAF295 /* guiIncludes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiIncludes.h; sourceTree = "<group>"; };
+ 84CABC2913A786C900CAF295 /* guiTextBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTextBase.cpp; sourceTree = "<group>"; };
+ 84CABC2A13A786C900CAF295 /* guiTextBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTextBase.h; sourceTree = "<group>"; };
+ 84CABC2B13A786C900CAF295 /* guiType2DSlider.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiType2DSlider.cpp; sourceTree = "<group>"; };
+ 84CABC2C13A786C900CAF295 /* guiType2DSlider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiType2DSlider.h; sourceTree = "<group>"; };
+ 84CABC2D13A786C900CAF295 /* guiTypeButtonSlider.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypeButtonSlider.cpp; sourceTree = "<group>"; };
+ 84CABC2E13A786C900CAF295 /* guiTypeButtonSlider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypeButtonSlider.h; sourceTree = "<group>"; };
+ 84CABC2F13A786C900CAF295 /* guiTypeChartPlotter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypeChartPlotter.cpp; sourceTree = "<group>"; };
+ 84CABC3013A786C900CAF295 /* guiTypeChartPlotter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypeChartPlotter.h; sourceTree = "<group>"; };
+ 84CABC3113A786C900CAF295 /* guiTypeCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypeCustom.cpp; sourceTree = "<group>"; };
+ 84CABC3213A786C900CAF295 /* guiTypeCustom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypeCustom.h; sourceTree = "<group>"; };
+ 84CABC3313A786C900CAF295 /* guiTypeDrawable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypeDrawable.cpp; sourceTree = "<group>"; };
+ 84CABC3413A786C900CAF295 /* guiTypeDrawable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypeDrawable.h; sourceTree = "<group>"; };
+ 84CABC3513A786C900CAF295 /* guiTypeFileLister.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypeFileLister.cpp; sourceTree = "<group>"; };
+ 84CABC3613A786C900CAF295 /* guiTypeFileLister.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypeFileLister.h; sourceTree = "<group>"; };
+ 84CABC3713A786C900CAF295 /* guiTypeLabel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypeLabel.cpp; sourceTree = "<group>"; };
+ 84CABC3813A786C900CAF295 /* guiTypeLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypeLabel.h; sourceTree = "<group>"; };
+ 84CABC3913A786C900CAF295 /* guiTypeLogger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypeLogger.cpp; sourceTree = "<group>"; };
+ 84CABC3A13A786C900CAF295 /* guiTypeLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypeLogger.h; sourceTree = "<group>"; };
+ 84CABC3B13A786C900CAF295 /* guiTypeMultiToggle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypeMultiToggle.cpp; sourceTree = "<group>"; };
+ 84CABC3C13A786C900CAF295 /* guiTypeMultiToggle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypeMultiToggle.h; sourceTree = "<group>"; };
+ 84CABC3D13A786C900CAF295 /* guiTypePanel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypePanel.cpp; sourceTree = "<group>"; };
+ 84CABC3E13A786C900CAF295 /* guiTypePanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypePanel.h; sourceTree = "<group>"; };
+ 84CABC3F13A786C900CAF295 /* guiTypeSlider.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypeSlider.cpp; sourceTree = "<group>"; };
+ 84CABC4013A786C900CAF295 /* guiTypeSlider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypeSlider.h; sourceTree = "<group>"; };
+ 84CABC4113A786C900CAF295 /* guiTypeText.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypeText.cpp; sourceTree = "<group>"; };
+ 84CABC4213A786C900CAF295 /* guiTypeText.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypeText.h; sourceTree = "<group>"; };
+ 84CABC4313A786C900CAF295 /* guiTypeTextDropDown.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypeTextDropDown.cpp; sourceTree = "<group>"; };
+ 84CABC4413A786C900CAF295 /* guiTypeTextDropDown.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypeTextDropDown.h; sourceTree = "<group>"; };
+ 84CABC4513A786C900CAF295 /* guiTypeTextInput.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypeTextInput.cpp; sourceTree = "<group>"; };
+ 84CABC4613A786C900CAF295 /* guiTypeTextInput.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypeTextInput.h; sourceTree = "<group>"; };
+ 84CABC4713A786C900CAF295 /* guiTypeToggle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypeToggle.cpp; sourceTree = "<group>"; };
+ 84CABC4813A786C900CAF295 /* guiTypeToggle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypeToggle.h; sourceTree = "<group>"; };
+ 84CABC4913A786C900CAF295 /* guiTypeVairableLister.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypeVairableLister.cpp; sourceTree = "<group>"; };
+ 84CABC4A13A786C900CAF295 /* guiTypeVairableLister.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypeVairableLister.h; sourceTree = "<group>"; };
+ 84CABC4B13A786C900CAF295 /* guiTypeVideo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiTypeVideo.cpp; sourceTree = "<group>"; };
+ 84CABC4C13A786C900CAF295 /* guiTypeVideo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiTypeVideo.h; sourceTree = "<group>"; };
+ 84CABC4D13A786C900CAF295 /* guiValue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guiValue.cpp; sourceTree = "<group>"; };
+ 84CABC4E13A786C900CAF295 /* guiValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiValue.h; sourceTree = "<group>"; };
+ 84CABC4F13A786C900CAF295 /* guiVariablePointer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiVariablePointer.h; sourceTree = "<group>"; };
+ 84CABC5013A786C900CAF295 /* guiXmlValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guiXmlValue.h; sourceTree = "<group>"; };
+ 84CABC5113A786C900CAF295 /* ofxControlPanel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxControlPanel.cpp; sourceTree = "<group>"; };
+ 84CABC5213A786C900CAF295 /* ofxControlPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxControlPanel.h; sourceTree = "<group>"; };
+ 84CABC5313A786C900CAF295 /* simpleColor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = simpleColor.cpp; sourceTree = "<group>"; };
+ 84CABC5413A786C900CAF295 /* simpleColor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = simpleColor.h; sourceTree = "<group>"; };
+ 84CABC5513A786C900CAF295 /* simpleFileLister.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = simpleFileLister.cpp; sourceTree = "<group>"; };
+ 84CABC5613A786C900CAF295 /* simpleFileLister.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = simpleFileLister.h; sourceTree = "<group>"; };
+ 84CABC5713A786C900CAF295 /* simpleLogger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = simpleLogger.cpp; sourceTree = "<group>"; };
+ 84CABC5813A786C900CAF295 /* simpleLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = simpleLogger.h; sourceTree = "<group>"; };
E45BE0390E8CC647009D7055 /* FreeImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FreeImage.h; path = ../../../libs/freeimage/include/FreeImage.h; sourceTree = SOURCE_ROOT; };
E45BE03F0E8CC650009D7055 /* fmod.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fmod.h; path = ../../../libs/fmodex/include/fmod.h; sourceTree = SOURCE_ROOT; };
E45BE0400E8CC650009D7055 /* fmod.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = fmod.hpp; path = ../../../libs/fmodex/include/fmod.hpp; sourceTree = SOURCE_ROOT; };
@@ -821,89 +822,6 @@
path = src;
sourceTree = "<group>";
};
- 84B82D7313857CBE00504DC3 /* ofxControlPanel */ = {
- isa = PBXGroup;
- children = (
- 84B82DAB13857CBF00504DC3 /* ofxControlPanel */,
- );
- name = ofxControlPanel;
- path = ../../../contributed_addons/ofxControlPanel;
- sourceTree = "<group>";
- };
- 84B82DAB13857CBF00504DC3 /* ofxControlPanel */ = {
- isa = PBXGroup;
- children = (
- 84B82DAC13857CBF00504DC3 /* src */,
- );
- name = ofxControlPanel;
- path = src/ofxControlPanel;
- sourceTree = "<group>";
- };
- 84B82DAC13857CBF00504DC3 /* src */ = {
- isa = PBXGroup;
- children = (
- 84B82DAD13857CBF00504DC3 /* guiBaseObject.cpp */,
- 84B82DAE13857CBF00504DC3 /* guiBaseObject.h */,
- 84B82DAF13857CBF00504DC3 /* guiCallback.cpp */,
- 84B82DB013857CBF00504DC3 /* guiCallback.h */,
- 84B82DB113857CBF00504DC3 /* guiCallbackValue.cpp */,
- 84B82DB213857CBF00504DC3 /* guiCallbackValue.h */,
- 84B82DB313857CBF00504DC3 /* guiColor.cpp */,
- 84B82DB413857CBF00504DC3 /* guiColor.h */,
- 84B82DB513857CBF00504DC3 /* guiCustomImpl.h */,
- 84B82DB613857CBF00504DC3 /* guiIncludes.h */,
- 84B82DB713857CBF00504DC3 /* guiTextBase.cpp */,
- 84B82DB813857CBF00504DC3 /* guiTextBase.h */,
- 84B82DB913857CBF00504DC3 /* guiType2DSlider.cpp */,
- 84B82DBA13857CBF00504DC3 /* guiType2DSlider.h */,
- 84B82DBB13857CBF00504DC3 /* guiTypeButtonSlider.cpp */,
- 84B82DBC13857CBF00504DC3 /* guiTypeButtonSlider.h */,
- 84B82DBD13857CBF00504DC3 /* guiTypeChartPlotter.cpp */,
- 84B82DBE13857CBF00504DC3 /* guiTypeChartPlotter.h */,
- 84B82DBF13857CBF00504DC3 /* guiTypeCustom.cpp */,
- 84B82DC013857CBF00504DC3 /* guiTypeCustom.h */,
- 84B82DC113857CBF00504DC3 /* guiTypeDrawable.cpp */,
- 84B82DC213857CBF00504DC3 /* guiTypeDrawable.h */,
- 84B82DC313857CBF00504DC3 /* guiTypeFileLister.cpp */,
- 84B82DC413857CBF00504DC3 /* guiTypeFileLister.h */,
- 84B82DC513857CBF00504DC3 /* guiTypeLabel.cpp */,
- 84B82DC613857CBF00504DC3 /* guiTypeLabel.h */,
- 84B82DC713857CBF00504DC3 /* guiTypeLogger.cpp */,
- 84B82DC813857CBF00504DC3 /* guiTypeLogger.h */,
- 84B82DC913857CBF00504DC3 /* guiTypeMultiToggle.cpp */,
- 84B82DCA13857CBF00504DC3 /* guiTypeMultiToggle.h */,
- 84B82DCB13857CBF00504DC3 /* guiTypePanel.cpp */,
- 84B82DCC13857CBF00504DC3 /* guiTypePanel.h */,
- 84B82DCD13857CBF00504DC3 /* guiTypeSlider.cpp */,
- 84B82DCE13857CBF00504DC3 /* guiTypeSlider.h */,
- 84B82DCF13857CBF00504DC3 /* guiTypeText.cpp */,
- 84B82DD013857CBF00504DC3 /* guiTypeText.h */,
- 84B82DD113857CBF00504DC3 /* guiTypeTextDropDown.cpp */,
- 84B82DD213857CBF00504DC3 /* guiTypeTextDropDown.h */,
- 84B82DD313857CBF00504DC3 /* guiTypeTextInput.cpp */,
- 84B82DD413857CBF00504DC3 /* guiTypeTextInput.h */,
- 84B82DD513857CBF00504DC3 /* guiTypeToggle.cpp */,
- 84B82DD613857CBF00504DC3 /* guiTypeToggle.h */,
- 84B82DD713857CBF00504DC3 /* guiTypeVairableLister.cpp */,
- 84B82DD813857CBF00504DC3 /* guiTypeVairableLister.h */,
- 84B82DD913857CBF00504DC3 /* guiTypeVideo.cpp */,
- 84B82DDA13857CBF00504DC3 /* guiTypeVideo.h */,
- 84B82DDB13857CBF00504DC3 /* guiValue.cpp */,
- 84B82DDC13857CBF00504DC3 /* guiValue.h */,
- 84B82DDD13857CBF00504DC3 /* guiVariablePointer.h */,
- 84B82DDE13857CBF00504DC3 /* guiXmlValue.h */,
- 84B82DDF13857CBF00504DC3 /* ofxControlPanel.cpp */,
- 84B82DE013857CBF00504DC3 /* ofxControlPanel.h */,
- 84B82DE113857CBF00504DC3 /* simpleColor.cpp */,
- 84B82DE213857CBF00504DC3 /* simpleColor.h */,
- 84B82DE313857CBF00504DC3 /* simpleFileLister.cpp */,
- 84B82DE413857CBF00504DC3 /* simpleFileLister.h */,
- 84B82DE513857CBF00504DC3 /* simpleLogger.cpp */,
- 84B82DE613857CBF00504DC3 /* simpleLogger.h */,
- );
- path = src;
- sourceTree = "<group>";
- };
84B82E5113857E1700504DC3 /* ofxDirList */ = {
isa = PBXGroup;
children = (
@@ -963,12 +881,86 @@
path = src;
sourceTree = "<group>";
};
+ 84CABC1D13A786C900CAF295 /* ofxControlPanel */ = {
+ isa = PBXGroup;
+ children = (
+ 84CABC1E13A786C900CAF295 /* src */,
+ );
+ name = ofxControlPanel;
+ path = ../../../contributed_addons/ofxControlPanel/src/ofxControlPanel;
+ sourceTree = "<group>";
+ };
+ 84CABC1E13A786C900CAF295 /* src */ = {
+ isa = PBXGroup;
+ children = (
+ 84CABC1F13A786C900CAF295 /* guiBaseObject.cpp */,
+ 84CABC2013A786C900CAF295 /* guiBaseObject.h */,
+ 84CABC2113A786C900CAF295 /* guiCallback.cpp */,
+ 84CABC2213A786C900CAF295 /* guiCallback.h */,
+ 84CABC2313A786C900CAF295 /* guiCallbackValue.cpp */,
+ 84CABC2413A786C900CAF295 /* guiCallbackValue.h */,
+ 84CABC2513A786C900CAF295 /* guiColor.cpp */,
+ 84CABC2613A786C900CAF295 /* guiColor.h */,
+ 84CABC2713A786C900CAF295 /* guiCustomImpl.h */,
+ 84CABC2813A786C900CAF295 /* guiIncludes.h */,
+ 84CABC2913A786C900CAF295 /* guiTextBase.cpp */,
+ 84CABC2A13A786C900CAF295 /* guiTextBase.h */,
+ 84CABC2B13A786C900CAF295 /* guiType2DSlider.cpp */,
+ 84CABC2C13A786C900CAF295 /* guiType2DSlider.h */,
+ 84CABC2D13A786C900CAF295 /* guiTypeButtonSlider.cpp */,
+ 84CABC2E13A786C900CAF295 /* guiTypeButtonSlider.h */,
+ 84CABC2F13A786C900CAF295 /* guiTypeChartPlotter.cpp */,
+ 84CABC3013A786C900CAF295 /* guiTypeChartPlotter.h */,
+ 84CABC3113A786C900CAF295 /* guiTypeCustom.cpp */,
+ 84CABC3213A786C900CAF295 /* guiTypeCustom.h */,
+ 84CABC3313A786C900CAF295 /* guiTypeDrawable.cpp */,
+ 84CABC3413A786C900CAF295 /* guiTypeDrawable.h */,
+ 84CABC3513A786C900CAF295 /* guiTypeFileLister.cpp */,
+ 84CABC3613A786C900CAF295 /* guiTypeFileLister.h */,
+ 84CABC3713A786C900CAF295 /* guiTypeLabel.cpp */,
+ 84CABC3813A786C900CAF295 /* guiTypeLabel.h */,
+ 84CABC3913A786C900CAF295 /* guiTypeLogger.cpp */,
+ 84CABC3A13A786C900CAF295 /* guiTypeLogger.h */,
+ 84CABC3B13A786C900CAF295 /* guiTypeMultiToggle.cpp */,
+ 84CABC3C13A786C900CAF295 /* guiTypeMultiToggle.h */,
+ 84CABC3D13A786C900CAF295 /* guiTypePanel.cpp */,
+ 84CABC3E13A786C900CAF295 /* guiTypePanel.h */,
+ 84CABC3F13A786C900CAF295 /* guiTypeSlider.cpp */,
+ 84CABC4013A786C900CAF295 /* guiTypeSlider.h */,
+ 84CABC4113A786C900CAF295 /* guiTypeText.cpp */,
+ 84CABC4213A786C900CAF295 /* guiTypeText.h */,
+ 84CABC4313A786C900CAF295 /* guiTypeTextDropDown.cpp */,
+ 84CABC4413A786C900CAF295 /* guiTypeTextDropDown.h */,
+ 84CABC4513A786C900CAF295 /* guiTypeTextInput.cpp */,
+ 84CABC4613A786C900CAF295 /* guiTypeTextInput.h */,
+ 84CABC4713A786C900CAF295 /* guiTypeToggle.cpp */,
+ 84CABC4813A786C900CAF295 /* guiTypeToggle.h */,
+ 84CABC4913A786C900CAF295 /* guiTypeVairableLister.cpp */,
+ 84CABC4A13A786C900CAF295 /* guiTypeVairableLister.h */,
+ 84CABC4B13A786C900CAF295 /* guiTypeVideo.cpp */,
+ 84CABC4C13A786C900CAF295 /* guiTypeVideo.h */,
+ 84CABC4D13A786C900CAF295 /* guiValue.cpp */,
+ 84CABC4E13A786C900CAF295 /* guiValue.h */,
+ 84CABC4F13A786C900CAF295 /* guiVariablePointer.h */,
+ 84CABC5013A786C900CAF295 /* guiXmlValue.h */,
+ 84CABC5113A786C900CAF295 /* ofxControlPanel.cpp */,
+ 84CABC5213A786C900CAF295 /* ofxControlPanel.h */,
+ 84CABC5313A786C900CAF295 /* simpleColor.cpp */,
+ 84CABC5413A786C900CAF295 /* simpleColor.h */,
+ 84CABC5513A786C900CAF295 /* simpleFileLister.cpp */,
+ 84CABC5613A786C900CAF295 /* simpleFileLister.h */,
+ 84CABC5713A786C900CAF295 /* simpleLogger.cpp */,
+ 84CABC5813A786C900CAF295 /* simpleLogger.h */,
+ );
+ path = src;
+ sourceTree = "<group>";
+ };
BB4B014C10F69532006C3DED /* addons */ = {
isa = PBXGroup;
children = (
+ 84CABC1D13A786C900CAF295 /* ofxControlPanel */,
84B82E5113857E1700504DC3 /* ofxDirList */,
84B82E5813857E1700504DC3 /* ofxXmlSettings */,
- 84B82D7313857CBE00504DC3 /* ofxControlPanel */,
8466DEC01385468600C0C07C /* ofxOpenNI */,
8466DE87138468B800C0C07C /* ofxOsc */,
);
@@ -1156,6 +1148,7 @@
isa = PBXGroup;
children = (
E4B69B5B0A3A1756003C02F2 /* kinectNiOSCToolboxDebug.app */,
+ 84CABB7613A7864D00CAF295 /* controlPanelSettings.xml */,
E4B69E1C0A3A1BDC003C02F2 /* src */,
E4C2422310CC54B6004149E2 /* openFrameworks */,
BB4B014C10F69532006C3DED /* addons */,
@@ -1364,33 +1357,6 @@
8466DFBB1385468700C0C07C /* ofxTrackedHand.cpp in Sources */,
8466DFBC1385468700C0C07C /* ofxTrackedUser.cpp in Sources */,
8466DFBD1385468700C0C07C /* ofxUserGenerator.cpp in Sources */,
- 84B82DF613857CBF00504DC3 /* guiBaseObject.cpp in Sources */,
- 84B82DF713857CBF00504DC3 /* guiCallback.cpp in Sources */,
- 84B82DF813857CBF00504DC3 /* guiCallbackValue.cpp in Sources */,
- 84B82DF913857CBF00504DC3 /* guiColor.cpp in Sources */,
- 84B82DFA13857CBF00504DC3 /* guiTextBase.cpp in Sources */,
- 84B82DFB13857CBF00504DC3 /* guiType2DSlider.cpp in Sources */,
- 84B82DFC13857CBF00504DC3 /* guiTypeButtonSlider.cpp in Sources */,
- 84B82DFD13857CBF00504DC3 /* guiTypeChartPlotter.cpp in Sources */,
- 84B82DFE13857CBF00504DC3 /* guiTypeCustom.cpp in Sources */,
- 84B82DFF13857CBF00504DC3 /* guiTypeDrawable.cpp in Sources */,
- 84B82E0013857CBF00504DC3 /* guiTypeFileLister.cpp in Sources */,
- 84B82E0113857CBF00504DC3 /* guiTypeLabel.cpp in Sources */,
- 84B82E0213857CBF00504DC3 /* guiTypeLogger.cpp in Sources */,
- 84B82E0313857CBF00504DC3 /* guiTypeMultiToggle.cpp in Sources */,
- 84B82E0413857CBF00504DC3 /* guiTypePanel.cpp in Sources */,
- 84B82E0513857CBF00504DC3 /* guiTypeSlider.cpp in Sources */,
- 84B82E0613857CBF00504DC3 /* guiTypeText.cpp in Sources */,
- 84B82E0713857CBF00504DC3 /* guiTypeTextDropDown.cpp in Sources */,
- 84B82E0813857CBF00504DC3 /* guiTypeTextInput.cpp in Sources */,
- 84B82E0913857CBF00504DC3 /* guiTypeToggle.cpp in Sources */,
- 84B82E0A13857CBF00504DC3 /* guiTypeVairableLister.cpp in Sources */,
- 84B82E0B13857CBF00504DC3 /* guiTypeVideo.cpp in Sources */,
- 84B82E0C13857CBF00504DC3 /* guiValue.cpp in Sources */,
- 84B82E0D13857CBF00504DC3 /* ofxControlPanel.cpp in Sources */,
- 84B82E0E13857CBF00504DC3 /* simpleColor.cpp in Sources */,
- 84B82E0F13857CBF00504DC3 /* simpleFileLister.cpp in Sources */,
- 84B82E1013857CBF00504DC3 /* simpleLogger.cpp in Sources */,
84B82E6213857E1700504DC3 /* ofxDirList.cpp in Sources */,
84B82E6313857E1700504DC3 /* tinyxml.cpp in Sources */,
84B82E6413857E1700504DC3 /* tinyxmlerror.cpp in Sources */,
@@ -1399,6 +1365,33 @@
840DB61E138A87810060A9E4 /* ofxSceneAnalyzer.cpp in Sources */,
840DB61F138A87810060A9E4 /* ofxSceneUser.cpp in Sources */,
840DB620138A87810060A9E4 /* OSCUserSender.cpp in Sources */,
+ 84CABC5913A786C900CAF295 /* guiBaseObject.cpp in Sources */,
+ 84CABC5A13A786C900CAF295 /* guiCallback.cpp in Sources */,
+ 84CABC5B13A786C900CAF295 /* guiCallbackValue.cpp in Sources */,
+ 84CABC5C13A786C900CAF295 /* guiColor.cpp in Sources */,
+ 84CABC5D13A786C900CAF295 /* guiTextBase.cpp in Sources */,
+ 84CABC5E13A786C900CAF295 /* guiType2DSlider.cpp in Sources */,
+ 84CABC5F13A786C900CAF295 /* guiTypeButtonSlider.cpp in Sources */,
+ 84CABC6013A786C900CAF295 /* guiTypeChartPlotter.cpp in Sources */,
+ 84CABC6113A786C900CAF295 /* guiTypeCustom.cpp in Sources */,
+ 84CABC6213A786C900CAF295 /* guiTypeDrawable.cpp in Sources */,
+ 84CABC6313A786C900CAF295 /* guiTypeFileLister.cpp in Sources */,
+ 84CABC6413A786C900CAF295 /* guiTypeLabel.cpp in Sources */,
+ 84CABC6513A786C900CAF295 /* guiTypeLogger.cpp in Sources */,
+ 84CABC6613A786C900CAF295 /* guiTypeMultiToggle.cpp in Sources */,
+ 84CABC6713A786C900CAF295 /* guiTypePanel.cpp in Sources */,
+ 84CABC6813A786C900CAF295 /* guiTypeSlider.cpp in Sources */,
+ 84CABC6913A786C900CAF295 /* guiTypeText.cpp in Sources */,
+ 84CABC6A13A786C900CAF295 /* guiTypeTextDropDown.cpp in Sources */,
+ 84CABC6B13A786C900CAF295 /* guiTypeTextInput.cpp in Sources */,
+ 84CABC6C13A786C900CAF295 /* guiTypeToggle.cpp in Sources */,
+ 84CABC6D13A786C900CAF295 /* guiTypeVairableLister.cpp in Sources */,
+ 84CABC6E13A786C900CAF295 /* guiTypeVideo.cpp in Sources */,
+ 84CABC6F13A786C900CAF295 /* guiValue.cpp in Sources */,
+ 84CABC7013A786C900CAF295 /* ofxControlPanel.cpp in Sources */,
+ 84CABC7113A786C900CAF295 /* simpleColor.cpp in Sources */,
+ 84CABC7213A786C900CAF295 /* simpleFileLister.cpp in Sources */,
+ 84CABC7313A786C900CAF295 /* simpleLogger.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
View
5,384 ....xcodeproj/project.xcworkspace/xcuserdata/pach.xcuserdatad/UserInterfaceState.xcuserstate
3,213 additions, 2,171 deletions not shown
View
12 kinectNiOSCToolbox.xcodeproj/xcuserdata/pach.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist
@@ -9,11 +9,11 @@
continueAfterRunningActions = "No"
isPathRelative = "1"
filePath = "src/testApp.cpp"
- timestampString = "327858756.462075"
+ timestampString = "329751093.349052"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
- startingLineNumber = "27"
- endingLineNumber = "27"
+ startingLineNumber = "22"
+ endingLineNumber = "22"
landmarkName = "testApp::setup()"
landmarkType = "5">
</FileBreakpoint>
@@ -23,11 +23,11 @@
continueAfterRunningActions = "No"
isPathRelative = "1"
filePath = "src/testApp.cpp"
- timestampString = "327858955.645608"
+ timestampString = "329751555.747001"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
- startingLineNumber = "492"
- endingLineNumber = "492"
+ startingLineNumber = "481"
+ endingLineNumber = "481"
landmarkName = "testApp::sendHands()"
landmarkType = "5">
</FileBreakpoint>
View
92 src/OSCUserSender.cpp
@@ -20,63 +20,87 @@ void OSCUserSender::sendNewUser (int idUser) {
m.addIntArg(idUser);
sender.sendMessage(m);
- printf("send new user %i\n", idUser);
+ m.clear();
+
+ printf("osc send new user %i\n", idUser);
}
-void OSCUserSender::sendUserSeparate(int idUser, ofxSceneUser & user) {
+void OSCUserSender::sendUserSeparate(ofxSceneUser & user) {
ofxOscMessage m;
std::string addr = "/user/data/" ;
- addr += ofToString(idUser);
+ addr += ofToString(user.idUser);
addr += "/x";
m.setAddress(addr);
- m.addFloatArg(user.centerWorldX/6000.+.5);
+ m.addFloatArg(user.normX);
sender.sendMessage(m);
m.clear();
addr = "/user/data/" ;
- addr += ofToString(idUser);
+ addr += ofToString(user.idUser);
addr += "/y";
m.setAddress(addr);
- m.addFloatArg(user.centerWorldY/6000.+.5);
+ m.addFloatArg(user.normY);
sender.sendMessage(m);
m.clear();
addr = "/user/data/" ;
- addr += ofToString(idUser);
+ addr += ofToString(user.idUser);
addr += "/z";
m.setAddress(addr);
- m.addFloatArg(user.centerWorldZ/6000.+.5);
+ m.addFloatArg(user.normZ);
sender.sendMessage(m);
m.clear();
- printf("send user %i : %i, %i, %i -> %i, %i, %i\n", idUser, user.centerWorldX, user.centerWorldY, user.centerWorldZ, user.centerX, user.centerY, user.centerZ);
+// printf("send user %i : %i, %i, %i -> %i, %i, %i\n", idUser, user.centerWorldX, user.centerWorldY, user.centerWorldZ, user.centerX, user.centerY, user.centerZ);
}
-void OSCUserSender::sendUser (int idUser, ofxSceneUser & user) {
+void OSCUserSender::sendUser (ofxSceneUser & user) {
ofxOscMessage m;
std::string addr = "/user/data/" ;
- // addr += ofToString(idUser);
+ addr += ofToString(user.idUser);
m.setAddress(addr);
- m.addIntArg(idUser);
+ //m.addIntArg(idUser);
m.addIntArg(user.centerWorldX);
m.addIntArg(user.centerWorldY);
m.addIntArg(user.centerWorldZ);
sender.sendMessage(m);
-
- printf("send user %i : %i, %i, %i -> %i, %i, %i\n", idUser, user.centerWorldX, user.centerWorldY, user.centerWorldZ, user.centerX, user.centerY, user.centerZ);
+ m.clear();
+
+// printf("send user %i : %i, %i, %i -> %i, %i, %i\n", idUser, user.centerWorldX, user.centerWorldY, user.centerWorldZ, user.centerX, user.centerY, user.centerZ);
+
+}
+
+void OSCUserSender::sendNormalizeUser (ofxSceneUser & user) {
+ ofxOscMessage m;
+ std::string addr = "/user/data/" ;
+ addr += ofToString(user.idUser);
+ m.setAddress(addr);
+ //m.addIntArg(idUser);
+ m.addFloatArg(user.normX);
+ m.addFloatArg(user.normY);
+ m.addFloatArg(user.normZ);
+
+ sender.sendMessage(m);
+
+ m.clear();
+
+ //printf("send user %i : %f, %f, %f\n", idUser, user.normX, user.normY, user.normZ);
+
}
-void OSCUserSender::sendFullUser (int idUser, ofxSceneUser & user) {
+
+void OSCUserSender::sendFullUser (ofxSceneUser & user) {
ofxOscMessage m;
std::string addr = "/user/fulldata" ;
+ addr += ofToString(user.idUser);
m.setAddress(addr);
- m.addIntArg(idUser);
+ //m.addIntArg(idUser);
m.addFloatArg(user.centerX/(float)user.width);
m.addFloatArg(user.centerY/(float)user.height);
m.addFloatArg(user.centerZ/5000.);
@@ -88,6 +112,8 @@ void OSCUserSender::sendFullUser (int idUser, ofxSceneUser & user) {
m.addFloatArg(user.zMax/5000.);
sender.sendMessage(m);
+
+ m.clear();
// printf("send full user %i : %i, %i, %i\n", idUser, user.centerX, user.centerY, user.centerZ);
}
@@ -97,8 +123,10 @@ void OSCUserSender::sendDeleteUser (int idUser) {
m.setAddress("/user/delete");
m.addIntArg(idUser);
sender.sendMessage(m);
+
+ m.clear();
- printf("send delete user %i\n", idUser);
+ printf("osc send delete user %i\n", idUser);
}
void OSCUserSender::sendLostUser (int idUser) {
@@ -106,8 +134,10 @@ void OSCUserSender::sendLostUser (int idUser) {
m.setAddress("/user/lost");
m.addIntArg(idUser);
sender.sendMessage(m);
+
+ m.clear();
- printf("send lost user %i\n", idUser);
+ printf("osc send lost user %i\n", idUser);
}
void OSCUserSender::sendRetrieveUser (int idUser) {
@@ -116,20 +146,40 @@ void OSCUserSender::sendRetrieveUser (int idUser) {
m.addIntArg(idUser);
sender.sendMessage(m);
- printf("send retrieve user %i\n", idUser);
+ m.clear();
+
+ printf("osc send retrieve user %i\n", idUser);
+}
+
+void OSCUserSender::sendMsg(string msg, float data){
+ ofxOscMessage m;
+ m.setAddress(msg);
+ m.addFloatArg(data);
+ sender.sendMessage(m);
+
+ m.clear();
+}
+
+void OSCUserSender::sendMsg(string msg, int data){
+ ofxOscMessage m;
+ m.setAddress(msg);
+ m.addIntArg(data);
+ sender.sendMessage(m);
+
+ m.clear();
}
void OSCUserSender::sendHand (int idHand, ofPoint pos) {
ofxOscMessage m;
string addr = "/hand/" + ofToString(idHand) + "";
-
+
m.setAddress(addr);
m.addIntArg(idHand);
m.addFloatArg(pos.x);
m.addFloatArg(pos.y);
m.addFloatArg(pos.z);
sender.sendMessage(m);
-
+
}
void OSCUserSender::sendHandSeparate (int idHand, ofPoint pos) {
View
11 src/OSCUserSender.h
@@ -18,15 +18,20 @@ class OSCUserSender {
void connect (std::string host, int port);
void sendNewUser (int idUser) ;
- void sendUser (int idUser, ofxSceneUser & user);
- void sendUserSeparate (int idUser, ofxSceneUser & user);
- void sendFullUser (int idUser, ofxSceneUser & user);
+ void sendUser (ofxSceneUser & user);
+ void sendNormalizeUser (ofxSceneUser & user);
+ void sendUserSeparate (ofxSceneUser & user);
+ void sendFullUser (ofxSceneUser & user);
void sendDeleteUser (int idUser) ; // lost user, wait to see if retrieving or not
void sendLostUser (int idUser) ;
void sendRetrieveUser (int idUser) ;
+ void sendMsg(string msg, float data);
+ void sendMsg(string msg, int data);
+
void sendHand(int idHand, ofPoint pos);
void sendHandSeparate(int idHand, ofPoint pos);
+
private:
std::string host ;
int port ;
View
309 src/ofxSceneAnalyzer.cpp
@@ -11,6 +11,41 @@
#include "ofxOpenNIMacros.h"
+ofxSceneAnalyzer::ofxSceneAnalyzer () {
+ printf("new() ofxSceneAnalyzer\n");
+}
+ofxSceneAnalyzer::~ofxSceneAnalyzer () {
+
+ std::map<int, ofxSceneUser *>::iterator it = tmpUsers.begin();
+ std::map<int, ofxSceneUser *>::iterator itEnd = tmpUsers.end();
+ while (it != itEnd) {
+ delete(it->second);
+ it++;
+ }
+ tmpUsers.clear();
+
+ it=users.begin();
+ itEnd=users.end();
+ while (it != itEnd) {
+ delete(it->second);
+ it++;
+ }
+ users.clear();
+
+ std::vector<standbyUser *>::iterator its = standbyUsers.begin();
+ std::vector<standbyUser *>::iterator itsEnd = standbyUsers.end();
+ while(its != itsEnd){
+ delete((*its)->user);
+ delete(*its);
+ its++;
+ }
+ standbyUsers.clear();
+
+ printf("delete() ofxSceneAnalyzer\n");
+}
+
+
+
// Setup the user generator.
//----------------------------------------
bool ofxSceneAnalyzer::setup(ofxOpenNIContext* pContext, ofxDepthGenerator* pDepthGenerator) {
@@ -37,6 +72,10 @@ bool ofxSceneAnalyzer::setup(ofxOpenNIContext* pContext, ofxDepthGenerator* pDep
result = g_SceneAnalyzer.StartGenerating();
SHOW_RC(result, "StartGenerating");
+
+ minX = minY = -4000;
+ minZ = 500;
+ maxX = maxY = maxZ = 4000;
}
void ofxSceneAnalyzer::draw(){
@@ -54,17 +93,34 @@ void ofxSceneAnalyzer::drawUsers(){
}
+void ofxSceneAnalyzer::drawUsers(int x, int y, int w, int h){
+ std::map<int, ofxSceneUser *>::iterator it = users.begin();
+ std::map<int, ofxSceneUser *>::iterator itEnd = users.end();
+
+ while (it != itEnd) {
+ it->second->drawUser(x, y, w, h) ;
+ it ++;
+ }
+
+}
+
void ofxSceneAnalyzer::sceneAnalyze(){
// printf(".................begin analyze.................\n");
//reset users
std::map<int, ofxSceneUser *>::iterator it = users.begin();
std::map<int, ofxSceneUser *>::iterator itEnd = users.end();
-
while (it != itEnd) {
it->second->reset() ;
it ++;
}
-
+ it = tmpUsers.begin();
+ itEnd = tmpUsers.end();
+ while (it != itEnd) {
+ it->second->reset() ;
+ it ++;
+ }
+
+ itEnd = users.end();
// get scene users map and depth map
// xn::SceneMetaData smd ;
@@ -97,15 +153,18 @@ void ofxSceneAnalyzer::sceneAnalyze(){
// find = true;
if (label != 0){
- // get user for this pixel
- int userId = label ;
-
- itUser = users.find(userId);
+ // get id for this pixel
+ int userIdNi = label ;
+ itUser = users.find(userIdNi);
+
// if user doesn't exist, create it
if (itUser == itEnd){
- newUser(userId);
- itUser = users.find(userId);
+ itUser = tmpUsers.find(userIdNi);
+ if (itUser == tmpUsers.end()){
+ newTmpUser(userIdNi);
+ itUser = tmpUsers.find(userIdNi);
+ }
}
// add depth and pxl info to the user
@@ -117,21 +176,16 @@ void ofxSceneAnalyzer::sceneAnalyze(){
}
}
- // finalyze users si users toujours n'as pas de pixels -> le supprime
+ //finalyze current users
it = users.begin() ;
+ itEnd = users.end() ;
while (it != itEnd) {
// finalyze users
if(!it->second->finalyze()){
// if return false delete user
ofxSceneUser * user = it->second ;
-
- it ++ ;
-
- // a modif -> devrait mettre user dans file d'attente pour x seconde au cas ou reapparaisse
- //lostUser(user->idUser);
- deleteUser(user->idUser);
- delete(user) ;
-
+ it ++ ;
+ lostUser(*user);
}
else {
XnVector3D coordImg, coordWorld ;
@@ -139,12 +193,23 @@ void ofxSceneAnalyzer::sceneAnalyze(){
coordImg.Y = it->second->centerY ;
coordImg.Z = it->second->centerZ ;
depth_generator->getXnDepthGenerator().ConvertProjectiveToRealWorld(1, &coordImg, &coordWorld);
- it->second->centerWorldX = coordWorld.X ;
- it->second->centerWorldY = coordWorld.Y ;
- it->second->centerWorldZ = coordWorld.Z ;
+ it->second->centerWorldX = coordWorld.X;
+ it->second->centerWorldY = coordWorld.Y;
+ it->second->centerWorldZ = coordWorld.Z;
+
+ it->second->normX = ofMap(coordWorld.X, minX, maxX, 0., 1.) ;
+ it->second->normY = ofMap(coordWorld.Y, minY, maxY, 0., 1.) ;
+ it->second->normZ = ofMap(coordWorld.Z, minZ, maxZ, 0., 1.) ;
+
+ //cout<<"user finalisé, coord : "<<it->second->centerX<<", "<<it->second->centerY<<"' "<<it->second->centerZ<<" ; "<<it->second->centerWorldX<<", "<<it->second->centerWorldY<<", "<<it->second->centerWorldZ<<" ; "<<it->second->normX<<", "<<it->second->normY<<", "<<it->second->normZ<<endl;
+
+
it++ ;
}
}
+ // finalyze new users
+ newUsersFinalize();
+
//if (find) printf (".\n");
// printf(".................end analyze.................\n.............................................\n\n");
@@ -152,25 +217,180 @@ void ofxSceneAnalyzer::sceneAnalyze(){
void ofxSceneAnalyzer::update(){
sceneAnalyze() ;
+ updateStandby() ;
}
-void ofxSceneAnalyzer::newUser(int idUser) {
- users.insert(std::pair<int, ofxSceneUser *>(idUser, new ofxSceneUser(idUser, width, height))) ;
- ofNotifyEvent(newUserEvent, idUser, this);
+void ofxSceneAnalyzer::updateStandby(){
+ // parcours les standby
+ vector<standbyUser *>::iterator it = standbyUsers.begin();
+ vector<standbyUser *>::iterator itEnd = standbyUsers.end();
+
+ while (it != itEnd) {
+ // met a jour le temps de standby
+ (*it)->updateUser();
+ // si temps sup a tempsMaxStandby, delete le user
+ if ((*it)->isOld()){
+ deleteUser(*((*it)->user));
+ ofxSceneUser* tmpUser = (*it)->user ;
+ vector<standbyUser *>::iterator itTmp = it ;
+ it++;
+ if((*itTmp) != NULL)delete((*itTmp));
+ standbyUsers.erase(itTmp);
+ if(tmpUser != NULL) delete(tmpUser);
+
+ printCorresp();
+ }else{
+ it ++;
+ }
+ }
+
}
-void ofxSceneAnalyzer::deleteUser(int idUser) {
- users.erase(idUser);
- ofNotifyEvent(deleteUserEvent, idUser, this);
+void ofxSceneAnalyzer::newTmpUser(int idUser){
+ cout<<"new tmp user"<<endl;
+ tmpUsers.insert(std::pair<int, ofxSceneUser *>(idUser, new ofxSceneUser(idUser, idUser, width, height))) ;
}
-void ofxSceneAnalyzer::lostUser(int idUser) {
- //users.erase(idUser);
- ofNotifyEvent(lostUserEvent, idUser, this);
+void ofxSceneAnalyzer::newUsersFinalize() {
+
+ //parcours les nouveaus users
+ map<int,ofxSceneUser*>::iterator itU = tmpUsers.begin();
+ map<int,ofxSceneUser*>::iterator itUEnd = tmpUsers.end();
+ int idUserNi ;
+ while (itU != itUEnd) {
+ // finalize le user
+ if(itU->second->isNew == 0 && itU->second->finalyze()){
+ XnVector3D coordImg, coordWorld ;
+ coordImg.X = itU->second->centerX ;
+ coordImg.Y = itU->second->centerY ;
+ coordImg.Z = itU->second->centerZ ;
+ depth_generator->getXnDepthGenerator().ConvertProjectiveToRealWorld(1, &coordImg, &coordWorld);
+ itU->second->centerWorldX = coordWorld.X;
+ itU->second->centerWorldY = coordWorld.Y;
+ itU->second->centerWorldZ = coordWorld.Z;
+
+ itU->second->normX = ofMap(coordWorld.X, minX, maxX, 0., 1.) ;
+ itU->second->normY = ofMap(coordWorld.Y, minY, maxY, 0., 1.) ;
+ itU->second->normZ = ofMap(coordWorld.Z, minZ, maxZ, 0., 1.) ;
+
+ //cout<<"new user finalisé, coord : "<<itU->second->centerX<<", "<<itU->second->centerY<<"' "<<itU->second->centerZ<<" ; "<<itU->second->centerWorldX<<", "<<itU->second->centerWorldY<<", "<<itU->second->centerWorldZ<<" ; "<<itU->second->normX<<", "<<itU->second->normY<<", "<<itU->second->normZ<<endl;
+
+ idUserNi = itU->second->idUserNi ;
+
+ // recherche dans standby si user porte num idUser et ou proche de la position de reapparition
+ vector<standbyUser *>::iterator it = standbyUsers.begin();
+ vector<standbyUser *>::iterator itEnd = standbyUsers.end();
+ bool found = false ;
+ int idOld ;
+ while (it != itEnd && !found ) {
+ idOld = (*it)->isUser(idUserNi, coordWorld.X, coordWorld.Y, coordWorld.Z);
+ if (idOld != -1){
+ found = true;
+ }else {
+ it++;
+ }
+ }
+ if (found){
+ itU->second->idUser = idOld ;
+ itU->second->idUserNi = idUserNi ;
+ users.insert(std::pair<int, ofxSceneUser *>(idUserNi, itU->second)) ;
+ map<int,int>::iterator itID = correspID.find(idOld);
+ if (itID != correspID.end()) {
+ itID->second = idUserNi;
+ }else{
+ correspID.insert(pair<int, int>(idOld, idUserNi));
+ }
+ standbyUser * usTmp = (*it);
+ standbyUsers.erase(it);
+ if (usTmp != NULL) {
+ if(usTmp->user != NULL) delete(usTmp->user);
+ delete (usTmp);
+ }
+ ofNotifyEvent(retrieveUserEvent, idOld, this);
+ cout<<"retrieve user "<<idOld<<" idNi "<<idUserNi<<endl;
+ }else{
+ // sinon cree nouvel user
+ //verifie que id non utilisé
+ int idUser = idUserNi;
+ if(correspID.find(idUser)!=correspID.end()){
+ idUser = getFreeId();
+ }
+ //cree user
+ itU->second->idUser = idUser ;
+ itU->second->idUserNi = idUserNi ;
+ users.insert(std::pair<int, ofxSceneUser *>(idUserNi, itU->second)) ;
+ correspID.insert(pair<int, int>(idUser, idUserNi));
+ ofNotifyEvent(newUserEvent, idUser, this);
+
+ cout<<"new user "<<idUser<<" idNi "<<idUserNi<<endl;
+
+ }
+ printCorresp();
+
+ }else{
+ //cout<<"new user "<<itU->second->idUser<<" not finalize or too new"<<endl;
+ }
+
+ itU ++;
+ }
+
+ // passe isNew false sur nouveau user et delete old users
+ itU = tmpUsers.begin();
+ while(itU != itUEnd){
+ if (itU->second->isNew){
+ itU->second->isNew --;
+ itU ++;
+ }else{
+ map<int, ofxSceneUser*>::iterator itTmp = itU;
+ itU++ ;
+ tmpUsers.erase(itTmp);
+ }
+
+ }
+ //tmpUsers.clear();
+}
+
+int ofxSceneAnalyzer::getFreeId(){
+ bool found = false ;
+ int id=1 ;
+ while (!found) {
+ // si l'id n'existe pas...
+ if (correspID.find(id)==correspID.end()){
+ found = true ;
+ }else{
+ id ++ ;
+ }
+ }
+ return id ;
}
-void ofxSceneAnalyzer::retrieveUser(int idUser) {
- ofNotifyEvent(retrieveUserEvent, idUser, this);
+void ofxSceneAnalyzer::deleteUser(ofxSceneUser & user) {
+ printf("delete user %i, %i \n", user.idUser, user.idUserNi);
+ ofNotifyEvent(deleteUserEvent, user.idUser, this);
+ correspID.erase(correspID.find(user.idUser));
+}
+
+void ofxSceneAnalyzer::lostUser(ofxSceneUser & user) {
+ std::map<int, ofxSceneUser*>::iterator tmpUser = users.find(user.idUserNi) ;
+ if (tmpUser != users.end()){
+ standbyUsers.push_back(new standbyUser(tmpUser->second, STANDBY_TIME));
+ printf("lost user %i, %i - ", user.idUser, user.idUserNi);
+ users.erase(tmpUser);
+ }else{
+ printf("doesn't find user %i in users map\n", user.idUser);
+ }
+ ofNotifyEvent(lostUserEvent, user.idUser, this);
+ map<int,int>::iterator itID = correspID.find(user.idUser);
+ if (itID != correspID.end()){
+ itID->second = -1 ;
+ }
+ printCorresp();
+}
+
+void ofxSceneAnalyzer::retrieveUser(ofxSceneUser & user) {
+ printf("retrieve user %i, %i \n", user.idUser, user.idUserNi);
+ printCorresp();
+ ofNotifyEvent(retrieveUserEvent, user.idUser, this);
}
/*
@@ -182,3 +402,30 @@ ofEvent <int> retrieveUserEvent ;
std::map<int, ofxSceneUser *> ofxSceneAnalyzer::getUsers() {
return users ;
}
+
+void ofxSceneAnalyzer::setNormalize(int minX, int minY, int minZ, int maxX, int maxY, int maxZ){
+ this->minX = minX ;
+ this->minY = minY ;
+ this->minZ = minZ ;
+ this->maxX = maxX ;
+ this->maxY = maxY ;
+ this->maxZ = maxZ ;
+}
+void ofxSceneAnalyzer::setNormalizeMinX(int minX){
+ this->minX = minX ;
+}
+void ofxSceneAnalyzer::setNormalizeMinY(int minY){
+ this->minY = minY ;
+}
+void ofxSceneAnalyzer::setNormalizeMinZ(int minZ){
+ this->minZ = minZ ;
+}
+void ofxSceneAnalyzer::setNormalizeMaxX(int maxX){
+ this->maxX = maxX ;
+}
+void ofxSceneAnalyzer::setNormalizeMaxY(int maxY){
+ this->maxY = maxY ;
+}
+void ofxSceneAnalyzer::setNormalizeMaxZ(int maxZ){
+ this->maxZ = maxZ ;
+}
View
135 src/ofxSceneAnalyzer.h
@@ -18,25 +18,90 @@
#include "ofxSceneUser.h"
-struct standbyUser {
+#define STANDBY_TIME 3000
+
+class standbyUser {
+public:
ofxSceneUser* user ;
- int idUser ;
int standbyTime ;
+ int lifeTime;
+ int birthTime;
+ int oldTime ;
+
+ int gapX, gapY, gapZ ;
+
+ standbyUser(ofxSceneUser* us, int maxTime) {
+ user = us ;
+ standbyTime = 0 ;
+ lifeTime = maxTime;
+ birthTime = ofGetElapsedTimeMillis();
+
+ gapX = gapY = gapZ = 1000;
+
+ cout<<"new() standby "<<user->idUser<<" pos : "<<user->centerX<<", "<<user->centerY<<", "<<user->centerZ<<endl;
+ }
+
+ ~standbyUser(){
+ cout<<"delete() standbyUser "<<user->idUser<<endl;
+ }
+
+ int isUser(int idNewU, int posX, int posY, int posZ){
+ if (idNewU == user->idUserNi){
+ printf("retrieve user by same ni id\n");
+ return user->idUser;
+ }else{
+ if (user->centerWorldX > posX-gapX && user->centerWorldX < posX+gapX &&
+ user->centerWorldY > posY-gapY && user->centerWorldY < posY+gapY &&
+ user->centerWorldZ > posZ-gapZ && user->centerWorldZ < posZ+gapZ){
+ printf("retrieve user by pos %i, %i, %i\n",posX, posY, posZ);
+ return(user->idUser) ;
+ }else {
+ printf("user not retrieve pos old %i, %i, %i - new %i, %i, %i\n", user->centerX, user->centerY, user->centerZ, posX, posY, posZ);
+ return -1;
+ }
+ }
+
+ }
+
+ bool updateUser () {
+ //printf("update stby user %i, %i\n",user->idUser, user->idUserNi);
+ standbyTime = ofGetElapsedTimeMillis() - birthTime;
+ }
+
+ void setLifeTime(int maxTime) {
+ lifeTime = maxTime ;
+ }
+
+ bool isOld() {
+ if (standbyTime > lifeTime)
+ return true ;
+ else
+ return false ;
+ }
+
+
};
class ofxSceneAnalyzer {
public:
+ ofxSceneAnalyzer () ;
+ ~ofxSceneAnalyzer () ;
+
bool setup(ofxOpenNIContext* pContext, ofxDepthGenerator* pDepthGenerator) ;
void draw();
- void drawUsers() ;
+ void drawUsers() ;
+ void drawUsers(int x, int y, int w, int h) ;
void update();
+ void updateStandby();
/* not implemented */
- void newUser(int idUser) ;
- void deleteUser(int idUser) ;
- void lostUser(int idUser) ;
- void retrieveUser(int idUser) ;
+ void newUsersFinalize() ;
+ void newTmpUser(int idUser) ;
+
+ void deleteUser(ofxSceneUser & user) ;
+ void lostUser(ofxSceneUser & user) ;
+ void retrieveUser(ofxSceneUser & user) ;
ofEvent <int> newUserEvent ;
ofEvent <int> deleteUserEvent ;
@@ -44,18 +109,70 @@ class ofxSceneAnalyzer {
ofEvent <int> retrieveUserEvent ;
std::map<int, ofxSceneUser *> getUsers() ;
+
+ void setNormalize(int minX, int minY, int minZ, int maxX, int maxY, int maxZ);
+ void setNormalizeMinX(int minX);
+ void setNormalizeMinY(int minY);
+ void setNormalizeMinZ(int minZ);
+ void setNormalizeMaxX(int maxX);
+ void setNormalizeMaxY(int maxY);
+ void setNormalizeMaxZ(int maxZ);
/* ----- */
+ int getFreeId();
+
+ string printUsers(){
+ stringstream str;
+ map<int, ofxSceneUser *>::iterator it = users.begin();
+ map<int, ofxSceneUser *>::iterator itEnd = users.end();
+ while(it!=itEnd){
+ str<<it->second->idUser<<" . "<<it->second->normX<<", "<<it->second->normY<<", :"<<it->second->normZ<<endl;
+ it++;
+ }
+ return str.str();
+ }
+
private:
void sceneAnalyze () ;
int width, height ;
+
+ int minX, maxX, minY, maxY, minZ, maxZ;
ofxOpenNIContext* context;
ofxDepthGenerator* depth_generator;
xn::SceneAnalyzer g_SceneAnalyzer;
- std::map<int, ofxSceneUser *> users ;
- std::vector<standbyUser *> standbyUsers ;
+ std::map<int, int> correspID ; //map de correspondance des id : idUser, idLabel (-1 si standby)
+ std::map<int, ofxSceneUser *> users ; // identifié par leur id dans labelMap (pas forcement identique à id user
+ std::map<int, ofxSceneUser *> tmpUsers ;
+ std::map<int, ofxSceneUser *> newUsers ;
+ std::vector<standbyUser *> standbyUsers ;
+
+ void printCorresp(){
+ cout<<"corresp id : ";
+ map<int,int>::iterator it = correspID.begin();
+ map<int,int>::iterator itEnd = correspID.end();
+ while(it!=itEnd){
+ cout<<it->first<<" "<<it->second<<" | ";
+ it++;
+ }
+ cout<<"\n";
+
+ printStby();
+ }
+
+ void printStby(){
+ cout<<"stby : ";
+ vector<standbyUser *>::iterator it = standbyUsers.begin();
+ vector<standbyUser *>::iterator itEnd = standbyUsers.end();
+ while(it!=itEnd){
+ cout<<(*it)->user->idUser<<" "<<(*it)->user->idUserNi<<" | ";
+ it++;
+ }
+ cout<<"\n";
+ }
+
+
};
View
74 src/ofxSceneUser.cpp
@@ -9,17 +9,48 @@
#include "ofxSceneUser.h"
-ofxSceneUser::ofxSceneUser (int userId, int w, int h){
+ofxSceneUser::ofxSceneUser (int userId, int userNi, int w, int h){
idUser = userId ;
+ idUserNi = userNi ;
isCalculating = true ;
width = w ;
height = h ;
mask.allocate(w, h, GL_RGBA);
maskTexture = (unsigned char *)malloc(sizeof(unsigned char *)*width*height*4);
+
+ isNew = 3 ;
// syphonText.setName(ofToString(idUser));
-// printf("new user %i, wh : %i, %i\n", idUser, width, height);
+ printf("new() user %i, wh : %i, %i\n", idUser, width, height);
+}
+
+/*
+ofxSceneUser::ofxSceneUser (ofxSceneUser * us){
+ idUser = us->idUser ;
+ idUserNi = us->idUserNi ;
+ isCalculating = true ;
+ width = us->width ;
+ height = us->height ;
+ mask.allocate(width, height, GL_RGBA);
+ maskTexture = (unsigned char *)malloc(sizeof(unsigned char *)*width*height*4);
+
+ centerX = us->centerX;
+ centerY = us->centerY;
+ centerZ = us->centerZ;
+
+ cout<<"new() user by copy "<<us->centerX<<", "<<us->centerY<<", "<<us->centerZ<<endl;
+
+ isNew = false ;
+
+ // syphonText.setName(ofToString(idUser));
+ printf("new() user %i, wh : %i, %i\n", idUser, width, height);
+}
+*/
+
+ofxSceneUser::~ofxSceneUser (){
+ if (maskTexture != NULL) free(maskTexture);
+ printf("delete() user %i\n", idUser);
}
void ofxSceneUser::drawUser(){
@@ -38,12 +69,28 @@ void ofxSceneUser::drawUser(){
}
+void ofxSceneUser::drawUser(int x, int y, int w, int h){
+ ofSetColor (0, 255, 0) ;
+ ofNoFill();
+ ofRect (ofMap(xMin, 0, width, x, x+w), ofMap(yMin, 0, height, y, y+h), ofMap(xMax-xMin, 0, width, x, x+w), ofMap(yMax-yMin, 0, height, y, y+h));
+
+ ofSetColor (255, 255, 255) ;
+ mask.draw(x, y, w, h);
+
+ ofSetColor (255, 0, 0) ;
+ ofFill();
+ ofCircle(ofMap(centerX, 0, width, x, x+w), ofMap(centerY, 0, height, y, y+h), 20);
+ ofSetColor (0, 255, 255) ;
+ ofDrawBitmapString(ofToString(idUser), ofMap(centerX-2, 0, width, x, x+w), ofMap(centerY-2, 0, height, y, y+h));
+
+}
+
void ofxSceneUser::addPoint (int x, int y, int z){
nbPoints ++ ;
- centerX += x ;
- centerY += y ;
- centerZ += z ;
+ tempX += x ;
+ tempY += y ;
+ tempZ += z ;
if (xMin > x) xMin = x ;
if (yMin > y) yMin = y ;
if (zMin > z) zMin = z ;
@@ -63,19 +110,24 @@ void ofxSceneUser::reset () {
}
nbPoints = 0 ;
- xMin = 640 ;
- yMin = 480 ;
+ xMin = width ;
+ yMin = height;
zMin = 65535 ;
xMax = yMax = zMax = 0 ;
- centerX = centerY = centerZ = 0 ;
+ tempX = tempY = tempZ = 0 ;
isCalculating = true ;
}
bool ofxSceneUser::finalyze () {
mask.loadData(maskTexture, width, height, GL_RGBA);
- centerX = (int)(centerX/(float)nbPoints) ;
- centerY = (int)(centerY/(float)nbPoints) ;
- centerZ = (int)(centerZ/(float)nbPoints) ;
+ if (nbPoints > 0) {
+ centerX = (int)(tempX/(float)nbPoints) ;
+ centerY = (int)(tempY/(float)nbPoints) ;
+ centerZ = (int)(tempZ/(float)nbPoints) ;
+
+ // printf("finalize user %i, %i : %i, %i, %i, nbPoints %i\n", idUser, idUserNi, centerX, centerY, centerZ, nbPoints);
+
+ }
isCalculating = false ;
// printf("user %i finalyzed with %i points, center : %i, %i, %i, borne %i, %i : %i, %i : %i, %i\n", idUser, nbPoints, centerX, centerY, centerZ, xMin, xMax, yMin, yMax, zMin, zMax);
View
14 src/ofxSceneUser.h
@@ -15,10 +15,12 @@
class ofxSceneUser {
public:
- ofxSceneUser (int userId, int w, int h);
-
+ ofxSceneUser (int userId, int idUserNi, int w, int h);
+ ~ofxSceneUser ();
+
void setup() ;
void drawUser() ;
+ void drawUser(int x, int y, int w, int h) ;
/*
ofVec3f getCenter () ;
ofRectangle getBoundingBox () ;
@@ -27,12 +29,16 @@ class ofxSceneUser {
void addPoint (int x, int y, int z);
void reset () ;
bool finalyze () ;
-
- int idUser ;
+
+ int idUserNi ;
+ int idUser ;
int xMin, yMin, zMin, xMax, yMax, zMax, centerX, centerY, centerZ, centerWorldX, centerWorldY, centerWorldZ ;
+ int tempX, tempY, tempZ ;
+ float normX,normY, normZ;
ofTexture mask ;
int nbPoints ;
int width, height ;
+ int isNew ;
private:
bool isCalculating ;
View
177 src/testApp.cpp
@@ -7,7 +7,6 @@ void testApp::setup() {
isTracking = false;
isTrackingHands = true;
isRecording = false;
- isCPBkgnd = true;
//setupRecording();
@@ -22,10 +21,14 @@ void testApp::setup() {
setupgui();
- oscSend2.connect("192.168.1.30", 8000);
- oscSend3.connect("192.168.1.32", 8000);
- oscSend4.connect("192.168.1.36", 8000);
-
+ ofAddListener(liveScene.newUserEvent, this, &testApp::newUser);
+ ofAddListener(playScene.newUserEvent, this, &testApp::newUser);
+ ofAddListener(liveScene.deleteUserEvent, this, &testApp::deleteUser);
+ ofAddListener(playScene.deleteUserEvent, this, &testApp::deleteUser);
+ ofAddListener(liveScene.retrieveUserEvent, this, &testApp::retrieveUser);
+ ofAddListener(playScene.retrieveUserEvent, this, &testApp::retrieveUser);
+ ofAddListener(liveScene.lostUserEvent, this, &testApp::lostUser);
+ ofAddListener(playScene.lostUserEvent, this, &testApp::lostUser);
}
void testApp::setupgui() {
@@ -52,15 +55,23 @@ void testApp::setupgui() {
gui.addToggle("activate hand", "HAND_STATE", false);
gui.addToggle("activate skeleton", "SKELETON_STATE", false);
+ gui.addSlider("norm min x", "TRACK_MIN_X", -3000, -5000, 5000, true);
+ gui.addSlider("norm max x", "TRACK_MAX_X", 3000, -5000, 5000, true);
+ gui.addSlider("norm min y", "TRACK_MIN_Y", -3000, -5000, 5000, true);
+ gui.addSlider("norm max y", "TRACK_MAX_Y", 3000, -5000, 5000, true);
+ gui.addSlider("norm min z", "TRACK_MIN_Z", 0., 0, 10000, true);
+ gui.addSlider("norm max z", "TRACK_MAX_Z", 5000, 0, 10000, true);
+
gui.setWhichColumn(3);
gui.addToggle("enable OSC", "OSC_STATE", true);
- oscPath = gui.addTextInput("OSC addr", "localhost", ofGetWidth()/3.-10);
- oscPort = gui.addTextInput("OSC port", "8888", ofGetWidth()/3.-10);
+ oscPath = gui.addTextInput("OSC addr", "OSC_ADDR", "localhost", ofGetWidth()/3.-10);
+ oscPort = gui.addTextInput("OSC port", "OSC_PORT", "8888", ofGetWidth()/3.-10);
gui.addToggle("update OSC", "OSC_UPDATE", false);
vector<string> oscTrackMode ;
- oscTrackMode.push_back("normal user");
+ oscTrackMode.push_back("woorld coord");
+ oscTrackMode.push_back("normalize coord");
oscTrackMode.push_back("full user");
- oscTrackMode.push_back("separate data");
+ oscTrackMode.push_back("separate data (normalize coord)");
gui.addMultiToggle("OSC tracking mode", "OSC_TRACKING_MODE", 0, oscTrackMode);
gui.loadSettings("controlPanelSettings.xml");
@@ -85,9 +96,12 @@ void testApp::eventsgui(guiCallbackData & data){
hardware.setTiltAngle(data.getInt(0));
}
else if (event == "KINECT_STATE"){
+ bool currentState = kinectState ;
kinectState = data.getInt(0);
- if (kinectState){
+ if (kinectState && currentState != kinectState){
setupRecording();
+ }else if (!kinectState){
+ liveContext.shutdown();
}
}
else if (event == "RECORD_STATE"){
@@ -138,18 +152,44 @@ void testApp::eventsgui(guiCallbackData & data){
else if (event == "OSC_STATE"){
isSendingOSC = data.getInt(0);
if (isSendingOSC){
- printf("connecting osc\n");
+ std::cout<<"connecting osc : "<< oscPath->getValueText() << ", "<< oscPort->getValueText()<<std::endl;
oscSend.connect(oscPath->getValueText(), ofToInt(oscPort->getValueText()));
}
}
else if (event == "OSC_UPDATE"){
- oscSend.connect(oscPath->getValueText(), ofToInt(oscPort->getValueText()));
- std::cout<<"update osc : "<< oscPath->getValueText() << ", "<< oscPort->getValueText()<<std::endl;
- gui.setValueB("OSC_UPDATE", false);
+ if (data.getInt(0) == 1){
+ oscSend.connect(oscPath->getValueText(), ofToInt(oscPort->getValueText()));
+ std::cout<<"update osc : "<< oscPath->getValueText() << ", "<< oscPort->getValueText()<<std::endl;
+ gui.setValueB("OSC_UPDATE", false);
+ }
}
else if (event == "OSC_TRACKING_MODE"){
oscTrackingMode = data.getInt(0);
}
+ else if (event == "TRACK_MIN_X"){
+ liveScene.setNormalizeMinX(data.getInt(0));
+ playScene.setNormalizeMinX(data.getInt(0));
+ }
+ else if (event == "TRACK_MIN_Y"){
+ liveScene.setNormalizeMinY(data.getInt(0));
+ playScene.setNormalizeMinY(data.getInt(0));
+ }
+ else if (event == "TRACK_MIN_Z"){
+ liveScene.setNormalizeMinZ(data.getInt(0));
+ playScene.setNormalizeMinZ(data.getInt(0));
+ }
+ else if (event == "TRACK_MAX_X"){
+ liveScene.setNormalizeMaxX(data.getInt(0));
+ playScene.setNormalizeMaxX(data.getInt(0));
+ }
+ else if (event == "TRACK_MAX_Y"){
+ liveScene.setNormalizeMaxY(data.getInt(0));
+ playScene.setNormalizeMaxY(data.getInt(0));
+ }
+ else if (event == "TRACK_MAX_Z"){
+ liveScene.setNormalizeMaxZ(data.getInt(0));
+ playScene.setNormalizeMaxZ(data.getInt(0));
+ }
}
@@ -300,7 +340,6 @@ void testApp::draw(){
string statusRec = (string)(!isRecording ? "READY" : "RECORDING");
string statusTracking = (string)(isTracking ? "TRACKING USERS : " + (string)(isLive ? ofToString((int)liveScene.getUsers().size()) : ofToString((int)playScene.getUsers().size())) + "" : "NOT TRACKING");
string statusSkeleton = (string)(isSkeleton ? "SKELETON USERS: " + (string)(isLive ? ofToString(liveUser.getNumberOfTrackedUsers()) : ofToString(playUser.getNumberOfTrackedUsers())) + "" : "NOT SKELETON USERS");
- string statusSmoothSkel = (string)(isLive ? ofToString(liveUser.getSmoothing()) : ofToString(playUser.getSmoothing()));
string statusHands = (string)(isTrackingHands ? "TRACKING HANDS: " + (string)(isLive ? ofToString(liveHandTracker.getNumTrackedHands()) : ofToString(playHandTracker.getNumTrackedHands())) + "" : "NOT TRACKING");
string statusHardware;
@@ -324,13 +363,12 @@ void testApp::draw(){
<< " playback/live streams : " << statusPlay << endl
<< " users tracking : " << statusTracking << endl
<< " skeleton tracking : " << statusSkeleton << endl
- << "( / ) : smooth skely (openni) : " << statusSmoothSkel << endl
<< " hand tracking : " << statusHands << endl
<< endl
<< "File : " << oniRecorder.getCurrentFileName() << endl
<< "FPS : " << ofToString(ofGetFrameRate()) << " " << statusHardware << endl;
- ofDrawBitmapString(msg.str(), 20, 560);
+ ofDrawBitmapString(msg.str(), 20, 600);
gui.draw();
@@ -340,60 +378,6 @@ void testApp::draw(){
//--------------------------------------------------------------
void testApp::keyPressed(int key){
- float smooth;
-
- switch (key) {
-#ifdef TARGET_OSX // only working on Mac at the moment
- case 357: // up key
- hardware.setTiltAngle(hardware.tilt_angle++);
- break;
- case 359: // down key
- hardware.setTiltAngle(hardware.tilt_angle--);
- break;
-#endif
- case 'b':
- case 'B':
- isCPBkgnd = !isCPBkgnd;
- break;
- case '9':
- case '(':
- smooth = liveUser.getSmoothing();
- if (smooth - 0.1f > 0.0f) {
- liveUser.setSmoothing(smooth - 0.1f);
- playUser.setSmoothing(smooth - 0.1f);
- }
- break;
- case '0':
- case ')':
- smooth = liveUser.getSmoothing();
- if (smooth + 0.1f <= 1.0f) {
- liveUser.setSmoothing(smooth + 0.1f);
- playUser.setSmoothing(smooth + 0.1f);
- }
- break;
- case ';':
- case ':':
- smooth = liveHandTracker.getSmoothing();
- if (smooth - 0.1f > 0.0f) {
- liveHandTracker.setSmoothing(smooth - 0.1f);
- playHandTracker.setSmoothing(smooth - 0.1f);
- }
- break;
- case '\'':
- case '\"':
- smooth = liveHandTracker.getSmoothing();
- if (smooth + 0.1f <= 1.0f) {
- liveHandTracker.setSmoothing(smooth + 0.1f);
- playHandTracker.setSmoothing(smooth + 0.1f);
- }
- break;
- case 'r':
- liveContext.toggleRegisterViewport();
- break;
- default:
- break;
- }
-
bool control_panel_ate_key = gui.keyPressed( key );
}
@@ -428,30 +412,35 @@ void testApp::windowResized(int w, int h){
}
void testApp::sendUser() {
- std::map<int, ofxSceneUser *> users ;
- if (isLive)
- users = liveScene.getUsers() ;
- else
- users = playScene.getUsers() ;
- std::map<int, ofxSceneUser *>::iterator it = users.begin() ;
- std::map<int, ofxSceneUser *>::iterator itEnd = users.end() ;
- while (it != itEnd) {
- switch (oscTrackingMode) {
- case 0 :
- oscSend.sendUser(it->first, *(it->second));
- break;
- case 1 :
- oscSend.sendFullUser(it->first, *(it->second));
- break;
- case 2 :
- oscSend.sendUserSeparate(it->first, *(it->second));
- break;
- default:
- oscSend.sendUser(it->first, *(it->second));
- break;
+ if (isSendingOSC){
+ std::map<int, ofxSceneUser *> users ;
+ if (isLive)
+ users = liveScene.getUsers() ;
+ else
+ users = playScene.getUsers() ;
+ std::map<int, ofxSceneUser *>::iterator it = users.begin() ;
+ std::map<int, ofxSceneUser *>::iterator itEnd = users.end() ;
+ while (it != itEnd) {
+ switch (oscTrackingMode) {
+ case 0 :
+ oscSend.sendUser(*(it->second));
+ break;
+ case 1 :
+ oscSend.sendNormalizeUser(*(it->second));
+ break;
+ case 2 :
+ oscSend.sendFullUser(*(it->second));
+ break;
+ case 3 :
+ oscSend.sendUserSeparate(*(it->second));
+ break;
+ default:
+ oscSend.sendUserSeparate(*(it->second));
+ break;
+ }
+ it ++ ;
}
- it ++ ;
- }
+ }
}
void testApp::newUser (int & idUser) {
Please sign in to comment.
Something went wrong with that request. Please try again.