From d09cc45d859aabbf76306fee49c1cec202c4f808 Mon Sep 17 00:00:00 2001 From: Chris Kiefer Date: Thu, 3 Nov 2011 18:05:24 +0000 Subject: maxiAtoms --- ofxMaxim/ofMaximExample007OSX/.sln | 28 - ofxMaxim/ofMaximExample007OSX/.vcproj | 209 --- ofxMaxim/ofMaximExample007OSX/.vcproj.user | 25 - ofxMaxim/ofMaximExample007OSX/Project.xcconfig | 9 - ofxMaxim/ofMaximExample007OSX/bin/data/beat2.wav | Bin 211140 -> 0 bytes .../Contents/Frameworks/GLUT.framework/GLUT | 1 - .../Contents/Frameworks/GLUT.framework/Headers | 1 - .../Contents/Frameworks/GLUT.framework/Resources | 1 - .../Frameworks/GLUT.framework/Versions/A/GLUT | Bin 600728 -> 0 bytes .../GLUT.framework/Versions/A/Headers/copy.h | 18 - .../GLUT.framework/Versions/A/Headers/extrude.h | 96 -- .../GLUT.framework/Versions/A/Headers/glsmap.h | 137 -- .../GLUT.framework/Versions/A/Headers/glsmapint.h | 102 -- .../GLUT.framework/Versions/A/Headers/glut.h | 648 ---------- .../GLUT.framework/Versions/A/Headers/glutbitmap.h | 30 - .../GLUT.framework/Versions/A/Headers/glutf90.h | 90 -- .../GLUT.framework/Versions/A/Headers/glutstroke.h | 42 - .../GLUT.framework/Versions/A/Headers/gutil.h | 89 -- .../GLUT.framework/Versions/A/Headers/intersect.h | 391 ------ .../GLUT.framework/Versions/A/Headers/port.h | 298 ----- .../GLUT.framework/Versions/A/Headers/rot.h | 98 -- .../GLUT.framework/Versions/A/Headers/segment.h | 98 -- .../GLUT.framework/Versions/A/Headers/tube.h | 203 --- .../GLUT.framework/Versions/A/Headers/tube_gc.h | 78 -- .../GLUT.framework/Versions/A/Headers/vvector.h | 1339 -------------------- .../Versions/A/Resources/Caution.tiff | Bin 18804 -> 0 bytes .../A/Resources/English.lproj/GLUT.nib/classes.nib | 55 - .../A/Resources/English.lproj/GLUT.nib/info.nib | 25 - .../A/Resources/English.lproj/GLUT.nib/objects.nib | Bin 3908 -> 0 bytes .../English.lproj/GLUTClipboard.nib/classes.nib | 13 - .../English.lproj/GLUTClipboard.nib/info.nib | 12 - .../English.lproj/GLUTClipboard.nib/objects.nib | Bin 1652 -> 0 bytes .../English.lproj/GLUTPreferences.nib/classes.nib | 73 -- .../English.lproj/GLUTPreferences.nib/info.nib | 16 - .../English.lproj/GLUTPreferences.nib/objects.nib | Bin 17418 -> 0 bytes .../A/Resources/English.lproj/GLUTUI.strings | Bin 3594 -> 0 bytes .../A/Resources/English.lproj/InfoPlist.strings | Bin 268 -> 0 bytes .../GLUT.framework/Versions/A/Resources/Info.plist | 24 - .../Versions/A/Resources/blankCursor.tiff | Bin 260 -> 0 bytes .../Versions/A/Resources/bottomCursor.tiff | Bin 374 -> 0 bytes .../Versions/A/Resources/bottomleftCursor.tiff | Bin 386 -> 0 bytes .../Versions/A/Resources/bottomrightCursor.tiff | Bin 386 -> 0 bytes .../Versions/A/Resources/crossCursor.tiff | Bin 380 -> 0 bytes .../Versions/A/Resources/cycleCursor.tiff | Bin 410 -> 0 bytes .../Versions/A/Resources/destroyCursor.tiff | Bin 414 -> 0 bytes .../Versions/A/Resources/fingerCursor.tiff | Bin 674 -> 0 bytes .../Versions/A/Resources/helpCursor.tiff | Bin 322 -> 0 bytes .../Versions/A/Resources/leftCursor.tiff | Bin 384 -> 0 bytes .../Versions/A/Resources/leftRightCursor.tiff | Bin 400 -> 0 bytes .../Versions/A/Resources/rightArrowCursor.tiff | Bin 344 -> 0 bytes .../Versions/A/Resources/rightCursor.tiff | Bin 384 -> 0 bytes .../Versions/A/Resources/sprayCursor.tiff | Bin 404 -> 0 bytes .../Versions/A/Resources/topCursor.tiff | Bin 374 -> 0 bytes .../Versions/A/Resources/topleftCursor.tiff | Bin 386 -> 0 bytes .../Versions/A/Resources/toprightCursor.tiff | Bin 392 -> 0 bytes .../Versions/A/Resources/upDownCursor.tiff | Bin 388 -> 0 bytes .../Versions/A/Resources/waitCursor.tiff | Bin 818 -> 0 bytes .../Frameworks/GLUT.framework/Versions/Current | 1 - .../bin/emptyExampleDebug.app/Contents/Info.plist | 36 - .../Contents/MacOS/emptyExampleDebug | Bin 3752896 -> 0 bytes .../Contents/MacOS/libfmodex.dylib | Bin 1956044 -> 0 bytes .../bin/emptyExampleDebug.app/Contents/PkgInfo | 1 - .../emptyExample.xcodeproj/project.pbxproj | 602 --------- ofxMaxim/ofMaximExample007OSX/ofxMaxim/install.xml | 35 - .../ofMaximExample007OSX/ofxMaxim/libs/fft.cpp | 608 --------- ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/fft.h | 80 -- .../ofMaximExample007OSX/ofxMaxim/libs/maxiFFT.cpp | 290 ----- .../ofMaximExample007OSX/ofxMaxim/libs/maxiFFT.h | 128 -- .../ofxMaxim/libs/maxiGrains.cpp | 6 - .../ofxMaxim/libs/maxiGrains.h | 443 ------- .../ofxMaxim/libs/maxiMFCC.cpp | 78 -- .../ofMaximExample007OSX/ofxMaxim/libs/maxiMFCC.h | 204 --- .../ofxMaxim/libs/maximilian.cpp | 1027 --------------- .../ofxMaxim/libs/maximilian.h | 366 ------ .../ofMaximExample007OSX/ofxMaxim/src/ofxMaxim.h | 55 - .../ofMaximExample007OSX/openFrameworks-Info.plist | 20 - ofxMaxim/ofMaximExample007OSX/src/main.cpp | 16 - ofxMaxim/ofMaximExample007OSX/src/testApp.cpp | 160 --- ofxMaxim/ofMaximExample007OSX/src/testApp.h | 40 - ofxMaxim/ofxMaxim/libs/maxiAtoms.cpp | 72 ++ ofxMaxim/ofxMaxim/libs/maxiAtoms.h | 37 + .../ofxMaxim/libs/storage/btAlignedAllocator.cpp | 182 +++ .../ofxMaxim/libs/storage/btAlignedAllocator.h | 107 ++ .../ofxMaxim/libs/storage/btAlignedObjectArray.h | 482 +++++++ ofxMaxim/ofxMaxim/libs/storage/btScalar.h | 522 ++++++++ ofxMaxim/ofxMaxim/libs/storage/someTypes.h | 22 + .../maxiAtomSynthesis/Project.xcconfig | 9 + .../atomSynthesis.xcodeproj/project.pbxproj | 797 ++++++++++++ .../Contents/Frameworks/GLUT.framework/GLUT | 1 + .../Contents/Frameworks/GLUT.framework/Headers | 1 + .../Contents/Frameworks/GLUT.framework/Resources | 1 + .../Frameworks/GLUT.framework/Versions/A/GLUT | Bin 0 -> 600728 bytes .../GLUT.framework/Versions/A/Headers/copy.h | 18 + .../GLUT.framework/Versions/A/Headers/extrude.h | 96 ++ .../GLUT.framework/Versions/A/Headers/glsmap.h | 137 ++ .../GLUT.framework/Versions/A/Headers/glsmapint.h | 102 ++ .../GLUT.framework/Versions/A/Headers/glut.h | 648 ++++++++++ .../GLUT.framework/Versions/A/Headers/glutbitmap.h | 30 + .../GLUT.framework/Versions/A/Headers/glutf90.h | 90 ++ .../GLUT.framework/Versions/A/Headers/glutstroke.h | 42 + .../GLUT.framework/Versions/A/Headers/gutil.h | 89 ++ .../GLUT.framework/Versions/A/Headers/intersect.h | 391 ++++++ .../GLUT.framework/Versions/A/Headers/port.h | 298 +++++ .../GLUT.framework/Versions/A/Headers/rot.h | 98 ++ .../GLUT.framework/Versions/A/Headers/segment.h | 98 ++ .../GLUT.framework/Versions/A/Headers/tube.h | 203 +++ .../GLUT.framework/Versions/A/Headers/tube_gc.h | 78 ++ .../GLUT.framework/Versions/A/Headers/vvector.h | 1339 ++++++++++++++++++++ .../Versions/A/Resources/Caution.tiff | Bin 0 -> 18804 bytes .../A/Resources/English.lproj/GLUT.nib/classes.nib | 55 + .../A/Resources/English.lproj/GLUT.nib/info.nib | 25 + .../A/Resources/English.lproj/GLUT.nib/objects.nib | Bin 0 -> 3908 bytes .../English.lproj/GLUTClipboard.nib/classes.nib | 13 + .../English.lproj/GLUTClipboard.nib/info.nib | 12 + .../English.lproj/GLUTClipboard.nib/objects.nib | Bin 0 -> 1652 bytes .../English.lproj/GLUTPreferences.nib/classes.nib | 73 ++ .../English.lproj/GLUTPreferences.nib/info.nib | 16 + .../English.lproj/GLUTPreferences.nib/objects.nib | Bin 0 -> 17418 bytes .../A/Resources/English.lproj/GLUTUI.strings | Bin 0 -> 3594 bytes .../A/Resources/English.lproj/InfoPlist.strings | Bin 0 -> 268 bytes .../GLUT.framework/Versions/A/Resources/Info.plist | 24 + .../Versions/A/Resources/blankCursor.tiff | Bin 0 -> 260 bytes .../Versions/A/Resources/bottomCursor.tiff | Bin 0 -> 374 bytes .../Versions/A/Resources/bottomleftCursor.tiff | Bin 0 -> 386 bytes .../Versions/A/Resources/bottomrightCursor.tiff | Bin 0 -> 386 bytes .../Versions/A/Resources/crossCursor.tiff | Bin 0 -> 380 bytes .../Versions/A/Resources/cycleCursor.tiff | Bin 0 -> 410 bytes .../Versions/A/Resources/destroyCursor.tiff | Bin 0 -> 414 bytes .../Versions/A/Resources/fingerCursor.tiff | Bin 0 -> 674 bytes .../Versions/A/Resources/helpCursor.tiff | Bin 0 -> 322 bytes .../Versions/A/Resources/leftCursor.tiff | Bin 0 -> 384 bytes .../Versions/A/Resources/leftRightCursor.tiff | Bin 0 -> 400 bytes .../Versions/A/Resources/rightArrowCursor.tiff | Bin 0 -> 344 bytes .../Versions/A/Resources/rightCursor.tiff | Bin 0 -> 384 bytes .../Versions/A/Resources/sprayCursor.tiff | Bin 0 -> 404 bytes .../Versions/A/Resources/topCursor.tiff | Bin 0 -> 374 bytes .../Versions/A/Resources/topleftCursor.tiff | Bin 0 -> 386 bytes .../Versions/A/Resources/toprightCursor.tiff | Bin 0 -> 392 bytes .../Versions/A/Resources/upDownCursor.tiff | Bin 0 -> 388 bytes .../Versions/A/Resources/waitCursor.tiff | Bin 0 -> 818 bytes .../Frameworks/GLUT.framework/Versions/Current | 1 + .../bin/atomSynthesisDebug.app/Contents/Info.plist | 36 + .../Contents/MacOS/atomSynthesisDebug | Bin 0 -> 3751740 bytes .../Contents/MacOS/libfmodex.dylib | Bin 0 -> 1956044 bytes .../bin/atomSynthesisDebug.app/Contents/PkgInfo | 1 + .../maxiAtomSynthesis/bin/data/.gitignore | 3 + .../maxiAtomSynthesis/openFrameworks-Info.plist | 20 + .../maxiAtomSynthesis/src/main.cpp | 16 + .../maxiAtomSynthesis/src/mp.cpp | 90 ++ .../maxiAtomSynthesis/src/mp.h | 32 + .../maxiAtomSynthesis/src/pyOSCDebug.cpp | 45 + .../maxiAtomSynthesis/src/pyOSCDebug.h | 24 + .../ofMaximExample007OSX/.sln | 28 + .../ofMaximExample007OSX/.vcproj | 209 +++ .../ofMaximExample007OSX/.vcproj.user | 25 + .../ofMaximExample007OSX/Project.xcconfig | 9 + .../ofMaximExample007OSX/bin/data/beat2.wav | Bin 0 -> 211140 bytes .../Contents/Frameworks/GLUT.framework/GLUT | 1 + .../Contents/Frameworks/GLUT.framework/Headers | 1 + .../Contents/Frameworks/GLUT.framework/Resources | 1 + .../Frameworks/GLUT.framework/Versions/A/GLUT | Bin 0 -> 600728 bytes .../GLUT.framework/Versions/A/Headers/copy.h | 18 + .../GLUT.framework/Versions/A/Headers/extrude.h | 96 ++ .../GLUT.framework/Versions/A/Headers/glsmap.h | 137 ++ .../GLUT.framework/Versions/A/Headers/glsmapint.h | 102 ++ .../GLUT.framework/Versions/A/Headers/glut.h | 648 ++++++++++ .../GLUT.framework/Versions/A/Headers/glutbitmap.h | 30 + .../GLUT.framework/Versions/A/Headers/glutf90.h | 90 ++ .../GLUT.framework/Versions/A/Headers/glutstroke.h | 42 + .../GLUT.framework/Versions/A/Headers/gutil.h | 89 ++ .../GLUT.framework/Versions/A/Headers/intersect.h | 391 ++++++ .../GLUT.framework/Versions/A/Headers/port.h | 298 +++++ .../GLUT.framework/Versions/A/Headers/rot.h | 98 ++ .../GLUT.framework/Versions/A/Headers/segment.h | 98 ++ .../GLUT.framework/Versions/A/Headers/tube.h | 203 +++ .../GLUT.framework/Versions/A/Headers/tube_gc.h | 78 ++ .../GLUT.framework/Versions/A/Headers/vvector.h | 1339 ++++++++++++++++++++ .../Versions/A/Resources/Caution.tiff | Bin 0 -> 18804 bytes .../A/Resources/English.lproj/GLUT.nib/classes.nib | 55 + .../A/Resources/English.lproj/GLUT.nib/info.nib | 25 + .../A/Resources/English.lproj/GLUT.nib/objects.nib | Bin 0 -> 3908 bytes .../English.lproj/GLUTClipboard.nib/classes.nib | 13 + .../English.lproj/GLUTClipboard.nib/info.nib | 12 + .../English.lproj/GLUTClipboard.nib/objects.nib | Bin 0 -> 1652 bytes .../English.lproj/GLUTPreferences.nib/classes.nib | 73 ++ .../English.lproj/GLUTPreferences.nib/info.nib | 16 + .../English.lproj/GLUTPreferences.nib/objects.nib | Bin 0 -> 17418 bytes .../A/Resources/English.lproj/GLUTUI.strings | Bin 0 -> 3594 bytes .../A/Resources/English.lproj/InfoPlist.strings | Bin 0 -> 268 bytes .../GLUT.framework/Versions/A/Resources/Info.plist | 24 + .../Versions/A/Resources/blankCursor.tiff | Bin 0 -> 260 bytes .../Versions/A/Resources/bottomCursor.tiff | Bin 0 -> 374 bytes .../Versions/A/Resources/bottomleftCursor.tiff | Bin 0 -> 386 bytes .../Versions/A/Resources/bottomrightCursor.tiff | Bin 0 -> 386 bytes .../Versions/A/Resources/crossCursor.tiff | Bin 0 -> 380 bytes .../Versions/A/Resources/cycleCursor.tiff | Bin 0 -> 410 bytes .../Versions/A/Resources/destroyCursor.tiff | Bin 0 -> 414 bytes .../Versions/A/Resources/fingerCursor.tiff | Bin 0 -> 674 bytes .../Versions/A/Resources/helpCursor.tiff | Bin 0 -> 322 bytes .../Versions/A/Resources/leftCursor.tiff | Bin 0 -> 384 bytes .../Versions/A/Resources/leftRightCursor.tiff | Bin 0 -> 400 bytes .../Versions/A/Resources/rightArrowCursor.tiff | Bin 0 -> 344 bytes .../Versions/A/Resources/rightCursor.tiff | Bin 0 -> 384 bytes .../Versions/A/Resources/sprayCursor.tiff | Bin 0 -> 404 bytes .../Versions/A/Resources/topCursor.tiff | Bin 0 -> 374 bytes .../Versions/A/Resources/topleftCursor.tiff | Bin 0 -> 386 bytes .../Versions/A/Resources/toprightCursor.tiff | Bin 0 -> 392 bytes .../Versions/A/Resources/upDownCursor.tiff | Bin 0 -> 388 bytes .../Versions/A/Resources/waitCursor.tiff | Bin 0 -> 818 bytes .../Frameworks/GLUT.framework/Versions/Current | 1 + .../bin/emptyExampleDebug.app/Contents/Info.plist | 36 + .../Contents/MacOS/emptyExampleDebug | Bin 0 -> 3752896 bytes .../Contents/MacOS/libfmodex.dylib | Bin 0 -> 1956044 bytes .../bin/emptyExampleDebug.app/Contents/PkgInfo | 1 + .../emptyExample.xcodeproj/project.pbxproj | 602 +++++++++ .../ofMaximExample007OSX/ofxMaxim/install.xml | 35 + .../ofMaximExample007OSX/ofxMaxim/libs/fft.cpp | 608 +++++++++ .../ofMaximExample007OSX/ofxMaxim/libs/fft.h | 80 ++ .../ofMaximExample007OSX/ofxMaxim/libs/maxiFFT.cpp | 290 +++++ .../ofMaximExample007OSX/ofxMaxim/libs/maxiFFT.h | 128 ++ .../ofxMaxim/libs/maxiGrains.cpp | 6 + .../ofxMaxim/libs/maxiGrains.h | 443 +++++++ .../ofxMaxim/libs/maxiMFCC.cpp | 78 ++ .../ofMaximExample007OSX/ofxMaxim/libs/maxiMFCC.h | 204 +++ .../ofxMaxim/libs/maximilian.cpp | 1027 +++++++++++++++ .../ofxMaxim/libs/maximilian.h | 366 ++++++ .../ofMaximExample007OSX/ofxMaxim/src/ofxMaxim.h | 55 + .../ofMaximExample007OSX/openFrameworks-Info.plist | 20 + .../ofMaximExample007OSX/src/main.cpp | 16 + .../ofMaximExample007OSX/src/testApp.cpp | 160 +++ .../ofMaximExample007OSX/src/testApp.h | 40 + 231 files changed, 14921 insertions(+), 8445 deletions(-) delete mode 100644 ofxMaxim/ofMaximExample007OSX/.sln delete mode 100644 ofxMaxim/ofMaximExample007OSX/.vcproj delete mode 100644 ofxMaxim/ofMaximExample007OSX/.vcproj.user delete mode 100644 ofxMaxim/ofMaximExample007OSX/Project.xcconfig delete mode 100644 ofxMaxim/ofMaximExample007OSX/bin/data/beat2.wav delete mode 120000 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/GLUT delete mode 120000 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Headers delete mode 120000 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Resources delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/GLUT delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/copy.h delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/extrude.h delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmap.h delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmapint.h delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glut.h delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutbitmap.h delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutf90.h delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutstroke.h delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/gutil.h delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/intersect.h delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/port.h delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/rot.h delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/segment.h delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube.h delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube_gc.h delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/vvector.h delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/Caution.tiff delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUT.nib/classes.nib delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUT.nib/info.nib delete mode 100644 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUT.nib/objects.nib delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/classes.nib delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/info.nib delete mode 100644 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/objects.nib delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/classes.nib delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/info.nib delete mode 100644 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/objects.nib delete mode 100644 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTUI.strings delete mode 100644 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/InfoPlist.strings delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/Info.plist delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/blankCursor.tiff delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomCursor.tiff delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomleftCursor.tiff delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomrightCursor.tiff delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/crossCursor.tiff delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/cycleCursor.tiff delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/destroyCursor.tiff delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/fingerCursor.tiff delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/helpCursor.tiff delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftCursor.tiff delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftRightCursor.tiff delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightArrowCursor.tiff delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightCursor.tiff delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/sprayCursor.tiff delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topCursor.tiff delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topleftCursor.tiff delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/toprightCursor.tiff delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/upDownCursor.tiff delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/waitCursor.tiff delete mode 120000 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/Current delete mode 100644 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Info.plist delete mode 100755 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/MacOS/emptyExampleDebug delete mode 100644 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/MacOS/libfmodex.dylib delete mode 100644 ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/PkgInfo delete mode 100644 ofxMaxim/ofMaximExample007OSX/emptyExample.xcodeproj/project.pbxproj delete mode 100644 ofxMaxim/ofMaximExample007OSX/ofxMaxim/install.xml delete mode 100644 ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/fft.cpp delete mode 100644 ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/fft.h delete mode 100644 ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maxiFFT.cpp delete mode 100644 ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maxiFFT.h delete mode 100644 ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maxiGrains.cpp delete mode 100644 ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maxiGrains.h delete mode 100644 ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maxiMFCC.cpp delete mode 100644 ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maxiMFCC.h delete mode 100644 ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maximilian.cpp delete mode 100755 ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maximilian.h delete mode 100644 ofxMaxim/ofMaximExample007OSX/ofxMaxim/src/ofxMaxim.h delete mode 100644 ofxMaxim/ofMaximExample007OSX/openFrameworks-Info.plist delete mode 100644 ofxMaxim/ofMaximExample007OSX/src/main.cpp delete mode 100644 ofxMaxim/ofMaximExample007OSX/src/testApp.cpp delete mode 100644 ofxMaxim/ofMaximExample007OSX/src/testApp.h create mode 100644 ofxMaxim/ofxMaxim/libs/maxiAtoms.cpp create mode 100644 ofxMaxim/ofxMaxim/libs/maxiAtoms.h create mode 100644 ofxMaxim/ofxMaxim/libs/storage/btAlignedAllocator.cpp create mode 100644 ofxMaxim/ofxMaxim/libs/storage/btAlignedAllocator.h create mode 100644 ofxMaxim/ofxMaxim/libs/storage/btAlignedObjectArray.h create mode 100644 ofxMaxim/ofxMaxim/libs/storage/btScalar.h create mode 100644 ofxMaxim/ofxMaxim/libs/storage/someTypes.h create mode 100644 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/Project.xcconfig create mode 100644 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/atomSynthesis.xcodeproj/project.pbxproj create mode 120000 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/GLUT create mode 120000 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Headers create mode 120000 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Resources create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/GLUT create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/copy.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/extrude.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmap.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmapint.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glut.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutbitmap.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutf90.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutstroke.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/gutil.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/intersect.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/port.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/rot.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/segment.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube_gc.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/vvector.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/Caution.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUT.nib/classes.nib create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUT.nib/info.nib create mode 100644 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUT.nib/objects.nib create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/classes.nib create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/info.nib create mode 100644 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/objects.nib create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/classes.nib create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/info.nib create mode 100644 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/objects.nib create mode 100644 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTUI.strings create mode 100644 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/InfoPlist.strings create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/Info.plist create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/blankCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomleftCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomrightCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/crossCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/cycleCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/destroyCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/fingerCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/helpCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftRightCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightArrowCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/sprayCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topleftCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/toprightCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/upDownCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/waitCursor.tiff create mode 120000 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/Current create mode 100644 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Info.plist create mode 100755 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/MacOS/atomSynthesisDebug create mode 100644 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/MacOS/libfmodex.dylib create mode 100644 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/PkgInfo create mode 100644 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/data/.gitignore create mode 100644 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/openFrameworks-Info.plist create mode 100644 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/main.cpp create mode 100644 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/mp.cpp create mode 100644 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/mp.h create mode 100644 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/pyOSCDebug.cpp create mode 100644 ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/pyOSCDebug.h create mode 100644 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/.sln create mode 100644 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/.vcproj create mode 100644 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/.vcproj.user create mode 100644 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/Project.xcconfig create mode 100644 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/data/beat2.wav create mode 120000 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/GLUT create mode 120000 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Headers create mode 120000 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Resources create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/GLUT create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/copy.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/extrude.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmap.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmapint.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glut.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutbitmap.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutf90.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutstroke.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/gutil.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/intersect.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/port.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/rot.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/segment.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube_gc.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/vvector.h create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/Caution.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUT.nib/classes.nib create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUT.nib/info.nib create mode 100644 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUT.nib/objects.nib create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/classes.nib create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/info.nib create mode 100644 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/objects.nib create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/classes.nib create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/info.nib create mode 100644 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/objects.nib create mode 100644 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTUI.strings create mode 100644 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/InfoPlist.strings create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/Info.plist create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/blankCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomleftCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomrightCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/crossCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/cycleCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/destroyCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/fingerCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/helpCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftRightCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightArrowCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/sprayCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topleftCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/toprightCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/upDownCursor.tiff create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/waitCursor.tiff create mode 120000 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/Current create mode 100644 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Info.plist create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/MacOS/emptyExampleDebug create mode 100644 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/MacOS/libfmodex.dylib create mode 100644 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/PkgInfo create mode 100644 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/emptyExample.xcodeproj/project.pbxproj create mode 100644 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/install.xml create mode 100644 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/fft.cpp create mode 100644 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/fft.h create mode 100644 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maxiFFT.cpp create mode 100644 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maxiFFT.h create mode 100644 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maxiGrains.cpp create mode 100644 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maxiGrains.h create mode 100644 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maxiMFCC.cpp create mode 100644 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maxiMFCC.h create mode 100644 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maximilian.cpp create mode 100755 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maximilian.h create mode 100644 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/src/ofxMaxim.h create mode 100644 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/openFrameworks-Info.plist create mode 100644 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/src/main.cpp create mode 100644 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/src/testApp.cpp create mode 100644 ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/src/testApp.h diff --git a/ofxMaxim/ofMaximExample007OSX/.sln b/ofxMaxim/ofMaximExample007OSX/.sln deleted file mode 100644 index 5a9e6e6..0000000 --- a/ofxMaxim/ofMaximExample007OSX/.sln +++ /dev/null @@ -1,28 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual C++ Express 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "emptyExample", "emptyExample.vcproj", "{7FD42DF7-442E-479A-BA76-D0022F99702A}" - ProjectSection(ProjectDependencies) = postProject - {5837595D-ACA9-485C-8E76-729040CE4B0B} = {5837595D-ACA9-485C-8E76-729040CE4B0B} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "openframeworksLib", "..\..\..\libs\openFrameworksCompiled\project\vs2008\openframeworksLib.vcproj", "{5837595D-ACA9-485C-8E76-729040CE4B0B}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7FD42DF7-442E-479A-BA76-D0022F99702A}.Debug|Win32.ActiveCfg = Debug|Win32 - {7FD42DF7-442E-479A-BA76-D0022F99702A}.Debug|Win32.Build.0 = Debug|Win32 - {7FD42DF7-442E-479A-BA76-D0022F99702A}.Release|Win32.ActiveCfg = Release|Win32 - {7FD42DF7-442E-479A-BA76-D0022F99702A}.Release|Win32.Build.0 = Release|Win32 - {5837595D-ACA9-485C-8E76-729040CE4B0B}.Debug|Win32.ActiveCfg = Debug|Win32 - {5837595D-ACA9-485C-8E76-729040CE4B0B}.Debug|Win32.Build.0 = Debug|Win32 - {5837595D-ACA9-485C-8E76-729040CE4B0B}.Release|Win32.ActiveCfg = Release|Win32 - {5837595D-ACA9-485C-8E76-729040CE4B0B}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/ofxMaxim/ofMaximExample007OSX/.vcproj b/ofxMaxim/ofMaximExample007OSX/.vcproj deleted file mode 100644 index 818dba2..0000000 --- a/ofxMaxim/ofMaximExample007OSX/.vcproj +++ /dev/null @@ -1,209 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ofxMaxim/ofMaximExample007OSX/.vcproj.user b/ofxMaxim/ofMaximExample007OSX/.vcproj.user deleted file mode 100644 index 801522b..0000000 --- a/ofxMaxim/ofMaximExample007OSX/.vcproj.user +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - diff --git a/ofxMaxim/ofMaximExample007OSX/Project.xcconfig b/ofxMaxim/ofMaximExample007OSX/Project.xcconfig deleted file mode 100644 index c10b9e5..0000000 --- a/ofxMaxim/ofMaximExample007OSX/Project.xcconfig +++ /dev/null @@ -1,9 +0,0 @@ -//THE PATH TO THE ROOT OF OUR OF PATH RELATIVE TO THIS PROJECT. -//THIS NEEDS TO BE DEFINED BEFORE CoreOF.xcconfig IS INCLUDED -OF_PATH = ../../.. - -//THIS HAS ALL THE HEADER AND LIBS FOR OF CORE -#include "../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig" - -OTHER_LDFLAGS = $(OF_CORE_LIBS) -HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS) diff --git a/ofxMaxim/ofMaximExample007OSX/bin/data/beat2.wav b/ofxMaxim/ofMaximExample007OSX/bin/data/beat2.wav deleted file mode 100644 index c71cee6..0000000 Binary files a/ofxMaxim/ofMaximExample007OSX/bin/data/beat2.wav and /dev/null differ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/GLUT b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/GLUT deleted file mode 120000 index c578310..0000000 --- a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/GLUT +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/GLUT \ No newline at end of file diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Headers b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Headers deleted file mode 120000 index a177d2a..0000000 --- a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Headers +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Headers \ No newline at end of file diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Resources b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Resources deleted file mode 120000 index 953ee36..0000000 --- a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Resources +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Resources \ No newline at end of file diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/GLUT b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/GLUT deleted file mode 100755 index 2be5e34..0000000 Binary files a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/GLUT and /dev/null differ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/copy.h b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/copy.h deleted file mode 100755 index a5116e2..0000000 --- a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/copy.h +++ /dev/null @@ -1,18 +0,0 @@ - -/* - * - * Written By Linas Vepstas November 1991 - */ - - -#define COPY_THREE_WORDS(A,B) { \ - struct three_words { int a, b, c, }; \ - *(struct three_words *) (A) = *(struct three_words *) (B); \ -} - -#define COPY_FOUR_WORDS(A,B) { \ - struct four_words { int a, b, c, d, }; \ - *(struct four_words *) (A) = *(struct four_words *) (B); \ -} - -/* ============================================================= */ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/extrude.h b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/extrude.h deleted file mode 100755 index 658699e..0000000 --- a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/extrude.h +++ /dev/null @@ -1,96 +0,0 @@ - -/* - * extrude.h - * - * FUNCTION: - * prototypes for privately used subroutines for the tubing library - * - * HISTORY: - * Linas Vepstas 1991 - */ - -#include "port.h" /* for gleDouble */ - -#ifndef M_PI -#define M_PI 3.14159265358979323846 -#endif - -/* ============================================================ */ -/* - * Provides choice of calling subroutine, vs. invoking macro. - * Basically, inlines the source, or not. - * Trades performance for executable size. - */ - -#define INLINE_INTERSECT -#ifdef INLINE_INTERSECT -#define INNERSECT(sect,p,n,v1,v2) { INTERSECT(sect,p,n,v1,v2); } -#else -#define INNERSECT(sect,p,n,v1,v2) intersect(sect,p,n,v1,v2) -#endif /* INLINE_INTERSECT */ - -/* ============================================================ */ -/* The folowing defines give a kludgy way of accessing the qmesh primitive */ - -/* -#define bgntmesh _emu_qmesh_bgnqmesh -#define endtmesh _emu_qmesh_endqmesh -#define c3f _emu_qmesh_c3f -#define n3f _emu_qmesh_n3f -#define v3f _emu_qmesh_v3f -*/ - -/* ============================================================ */ - -extern void up_sanity_check (gleDouble up[3], /* up vector for contour */ - int npoints, /* numpoints in poly-line */ - gleDouble point_array[][3]); /* polyline */ - - -extern void draw_raw_style_end_cap (int ncp, /* number of contour points */ - gleDouble contour[][2], /* 2D contour */ - gleDouble zval, /* where to draw cap */ - int frontwards); /* front or back cap */ - -extern void draw_round_style_cap_callback (int iloop, - double cap[][3], - float face_color[3], - gleDouble cut_vector[3], - gleDouble bisect_vector[3], - double norms[][3], - int frontwards); - -extern void draw_angle_style_front_cap (int ncp, - gleDouble bi[3], - gleDouble point_array[][3]); - -extern void extrusion_raw_join (int ncp, /* number of contour points */ - gleDouble contour[][2], /* 2D contour */ - gleDouble cont_normal[][2],/* 2D contour normal vecs */ - gleDouble up[3], /* up vector for contour */ - int npoints, /* numpoints in poly-line */ - gleDouble point_array[][3], /* polyline */ - float color_array[][3], /* color of polyline */ - gleDouble xform_array[][2][3]); /* 2D contour xforms */ - - -extern void extrusion_round_or_cut_join (int ncp, /* number of contour points */ - gleDouble contour[][2], /* 2D contour */ - gleDouble cont_normal[][2],/* 2D contour normal vecs */ - gleDouble up[3], /* up vector for contour */ - int npoints, /* numpoints in poly-line */ - gleDouble point_array[][3], /* polyline */ - float color_array[][3], /* color of polyline */ - gleDouble xform_array[][2][3]); /* 2D contour xforms */ - - -extern void extrusion_angle_join (int ncp, /* number of contour points */ - gleDouble contour[][2], /* 2D contour */ - gleDouble cont_normal[][2],/* 2D contour normal vecs */ - gleDouble up[3], /* up vector for contour */ - int npoints, /* numpoints in poly-line */ - gleDouble point_array[][3], /* polyline */ - float color_array[][3], /* color of polyline */ - gleDouble xform_array[][2][3]); /* 2D contour xforms */ - -/* -------------------------- end of file -------------------------------- */ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmap.h b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmap.h deleted file mode 100755 index baf54a7..0000000 --- a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmap.h +++ /dev/null @@ -1,137 +0,0 @@ -#ifndef __glsmap_h__ -#define __glsmap_h__ - -/* Copyright (c) Mark J. Kilgard, 1998. */ - -/* This program is freely distributable without licensing fees - and is provided without guarantee or warrantee expressed or - implied. This program is -not- in the public domain. */ - -#if defined(_WIN32) - -/* Try hard to avoid including to avoid name space pollution, - but Win32's needs APIENTRY and WINGDIAPI defined properly. */ -# if 0 -# define WIN32_LEAN_AND_MEAN -# include -# else - /* XXX This is from Win32's */ -# ifndef APIENTRY -# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) -# define APIENTRY __stdcall -# else -# define APIENTRY -# endif -# endif -# ifndef CALLBACK - /* XXX This is from Win32's */ -# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) -# define CALLBACK __stdcall -# else -# define CALLBACK -# endif -# endif - /* XXX This is from Win32's and */ -# ifndef WINGDIAPI -# define WINGDIAPI __declspec(dllimport) -# endif - /* XXX This is from Win32's */ -# ifndef _WCHAR_T_DEFINED -typedef unsigned short wchar_t; -# define _WCHAR_T_DEFINED -# endif -# endif - -#pragma warning (disable:4244) /* Disable bogus conversion warnings. */ -#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ - -#endif /* _WIN32 */ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef enum { - SMAP_CLEAR_SMAP_TEXTURE = 0x1, - SMAP_GENERATE_VIEW_MIPMAPS = 0x2, - SMAP_GENERATE_SMAP_MIPMAPS = 0x4, - SMAP_GENERATE_MIPMAPS = 0x6 /* both of above */ -} SphereMapFlags; - -/* Cube view enumerants. */ -enum { - SMAP_FRONT = 0, - SMAP_TOP = 1, - SMAP_BOTTOM = 2, - SMAP_LEFT = 3, - SMAP_RIGHT = 4, - SMAP_BACK = 5 -}; - -typedef struct _SphereMap SphereMap; - -extern SphereMap *smapCreateSphereMap(SphereMap *shareSmap); -extern void smapDestroySphereMap(SphereMap *smap); - -extern void smapConfigureSphereMapMesh(SphereMap *smap, int steps, int rings, int edgeExtend); - -extern void smapSetSphereMapTexObj(SphereMap *smap, GLuint texobj); -extern void smapSetViewTexObj(SphereMap *smap, GLuint texobj); -extern void smapSetViewTexObjs(SphereMap *smap, GLuint texobjs[6]); -extern void smapGetSphereMapTexObj(SphereMap *smap, GLuint *texobj); -extern void smapGetViewTexObj(SphereMap *smap, GLuint *texobj); -extern void smapGetViewTexObjs(SphereMap *smap, GLuint texobjs[6]); - -extern void smapSetFlags(SphereMap *smap, SphereMapFlags flags); -extern void smapGetFlags(SphereMap *smap, SphereMapFlags *flags); - -extern void smapSetViewOrigin(SphereMap *smap, GLint x, GLint y); -extern void smapSetSphereMapOrigin(SphereMap *smap, GLint x, GLint y); -extern void smapGetViewOrigin(SphereMap *smap, GLint *x, GLint *y); -extern void smapGetSphereMapOrigin(SphereMap *smap, GLint *x, GLint *y); - -extern void smapSetEye(SphereMap *smap, GLfloat eyex, GLfloat eyey, GLfloat eyez); -extern void smapSetEyeVector(SphereMap *smap, GLfloat *eye); -extern void smapSetUp(SphereMap *smap, GLfloat upx, GLfloat upy, GLfloat upz); -extern void smapSetUpVector(SphereMap *smap, GLfloat *up); -extern void smapSetObject(SphereMap *smap, GLfloat objx, GLfloat objy, GLfloat objz); -extern void smapSetObjectVector(SphereMap *smap, GLfloat *obj); -extern void smapGetEye(SphereMap *smap, GLfloat *eyex, GLfloat *eyey, GLfloat *eyez); -extern void smapGetEyeVector(SphereMap *smap, GLfloat *eye); -extern void smapGetUp(SphereMap *smap, GLfloat *upx, GLfloat *upy, GLfloat *upz); -extern void smapGetUpVector(SphereMap *smap, GLfloat *up); -extern void smapGetObject(SphereMap *smap, GLfloat *objx, GLfloat *objy, GLfloat *objz); -extern void smapGetObjectVector(SphereMap *smap, GLfloat *obj); - -extern void smapSetNearFar(SphereMap *smap, GLfloat viewNear, GLfloat viewFar); -extern void smapGetNearFar(SphereMap *smap, GLfloat *viewNear, GLfloat *viewFar); - -extern void smapSetSphereMapTexDim(SphereMap *smap, GLsizei texdim); -extern void smapSetViewTexDim(SphereMap *smap, GLsizei texdim); -extern void smapGetSphereMapTexDim(SphereMap *smap, GLsizei *texdim); -extern void smapGetViewTexDim(SphereMap *smap, GLsizei *texdim); - -extern void smapSetContextData(SphereMap *smap, void *context); -extern void smapGetContextData(SphereMap *smap, void **context); - -extern void smapSetPositionLightsFunc(SphereMap *smap, void (*positionLights)(int view, void *context)); -extern void smapSetDrawViewFunc(SphereMap *smap, void (*drawView)(int view, void *context)); -extern void smapGetPositionLightsFunc(SphereMap *smap, void (**positionLights)(int view, void *context)); -extern void smapGetDrawViewFunc(SphereMap *smap, void (**drawView)(int view, void *context)); - -extern void smapGenViewTex(SphereMap *smap, int view); -extern void smapGenViewTexs(SphereMap *smap); -extern void smapGenSphereMapFromViewTexs(SphereMap *smap); -extern void smapGenSphereMap(SphereMap *smap); -extern void smapGenSphereMapWithOneViewTex(SphereMap *smap); - -extern int smapRvecToSt(float rvec[3], float st[2]); -extern void smapStToRvec(float *st, float *rvec); - -#ifdef __cplusplus -} - -#endif -#endif /* __glsmap_h__ */ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmapint.h b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmapint.h deleted file mode 100755 index 3620e7d..0000000 --- a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmapint.h +++ /dev/null @@ -1,102 +0,0 @@ -#ifndef __glsmapint_h__ -#define __glsmapint_h__ - -/* Copyright (c) Mark J. Kilgard, 1998. */ - -/* This program is freely distributable without licensing fees - and is provided without guarantee or warrantee expressed or - implied. This program is -not- in the public domain. */ - -#include "glsmap.h" - -enum { X = 0, Y = 1, Z = 2 }; - -#define INITFACE(mesh) \ - int steps = mesh->steps; \ - int sqsteps = mesh->steps * mesh->steps - -#define FACE(side,y,x) \ - mesh->face[(side)*sqsteps + (y)*steps + (x)] - -#define FACExy(side,i,j) \ - (&FACE(side,i,j).x) - -#define FACEst(side,i,j) \ - (&FACE(side,i,j).s) - -#define INITBACK(mesh) \ - int allrings = mesh->rings + mesh->edgeExtend; \ - int ringedspokes = allrings * mesh->steps - -#define BACK(edge,ring,spoke) \ - mesh->back[(edge)*ringedspokes + (ring)*mesh->steps + (spoke)] - -#define BACKxy(edge,ring,spoke) \ - (&BACK(edge,ring,spoke).x) - -#define BACKst(edge,ring,spoke) \ - (&BACK(edge,ring,spoke).s) - -typedef struct _STXY { - GLfloat s, t; - GLfloat x, y; -} STXY; - -typedef struct _SphereMapMesh { - - int refcnt; - - int steps; - int rings; - int edgeExtend; - - STXY *face; - STXY *back; - -} SphereMapMesh; - -struct _SphereMap { - - /* Shared sphere map mesh vertex data. */ - SphereMapMesh *mesh; - - /* Texture object ids. */ - GLuint smapTexObj; - GLuint viewTexObjs[6]; - GLuint viewTexObj; - - /* Flags */ - SphereMapFlags flags; - - /* Texture dimensions must be a power of two. */ - int viewTexDim; /* view texture dimension */ - int smapTexDim; /* sphere map texture dimension */ - - /* Viewport origins for view and sphere map rendering. */ - int viewOrigin[2]; - int smapOrigin[2]; - - /* Viewing vectors. */ - GLfloat eye[3]; - GLfloat up[3]; - GLfloat obj[3]; - - /* Projection parameters. */ - GLfloat viewNear; - GLfloat viewFar; - - /* Rendering callbacks. */ - void (*positionLights)(int view, void *context); - void (*drawView)(int view, void *context); - - /* Application specified callback data. */ - void *context; - -}; - -/* Library internal routines. */ -extern void __smapDrawSphereMapMeshSide(SphereMapMesh *mesh, int side); -extern void __smapDrawSphereMapMeshBack(SphereMapMesh *mesh); -extern void __smapValidateSphereMapMesh(SphereMapMesh *mesh); - -#endif /* __glsmapint_h__ */ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glut.h b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glut.h deleted file mode 100755 index cbc6ebe..0000000 --- a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glut.h +++ /dev/null @@ -1,648 +0,0 @@ -#ifndef __glut_h__ -#define __glut_h__ - -/* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998. */ - -/* This program is freely distributable without licensing fees and is - provided without guarantee or warrantee expressed or implied. This - program is -not- in the public domain. */ -//#define GLUT_OF_007_HACK - -#if defined(_WIN32) - -/* GLUT 3.7 now tries to avoid including - to avoid name space pollution, but Win32's - needs APIENTRY and WINGDIAPI defined properly. */ -# if 0 -# define WIN32_LEAN_AND_MEAN -# include -# else - /* XXX This is from Win32's */ -# ifndef APIENTRY -# define GLUT_APIENTRY_DEFINED -# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) -# define APIENTRY __stdcall -# else -# define APIENTRY -# endif -# endif - /* XXX This is from Win32's */ -# ifndef CALLBACK -# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) -# define CALLBACK __stdcall -# else -# define CALLBACK -# endif -# endif - /* XXX This is from Win32's and */ -# ifndef WINGDIAPI -# define GLUT_WINGDIAPI_DEFINED -# define WINGDIAPI __declspec(dllimport) -# endif - /* XXX This is from Win32's */ -# ifndef _WCHAR_T_DEFINED -typedef unsigned short wchar_t; -# define _WCHAR_T_DEFINED -# endif -# endif - -#pragma comment (lib, "winmm.lib") /* link with Windows MultiMedia lib */ -#pragma comment (lib, "opengl32.lib") /* link with Microsoft OpenGL lib */ -#pragma comment (lib, "glu32.lib") /* link with OpenGL Utility lib */ -#pragma comment (lib, "glut32.lib") /* link with Win32 GLUT lib */ - -#pragma warning (disable:4244) /* Disable bogus conversion warnings. */ -#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ - -#endif - -#if defined(__APPLE__) || defined(MACOSX) -#include -#include -#include -#else -#include -#include -#endif - -/* define APIENTRY and CALLBACK to null string if we aren't on Win32 */ -#if !defined(_WIN32) -#define APIENTRY -#define GLUT_APIENTRY_DEFINED -#define CALLBACK -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/** - GLUT API revision history: - - GLUT_API_VERSION is updated to reflect incompatible GLUT - API changes (interface changes, semantic changes, deletions, - or additions). - - GLUT_API_VERSION=1 First public release of GLUT. 11/29/94 - - GLUT_API_VERSION=2 Added support for OpenGL/GLX multisampling, - extension. Supports new input devices like tablet, dial and button - box, and Spaceball. Easy to query OpenGL extensions. - - GLUT_API_VERSION=3 glutMenuStatus added. - - GLUT_API_VERSION=4 glutInitDisplayString, glutWarpPointer, - glutBitmapLength, glutStrokeLength, glutWindowStatusFunc, dynamic - video resize subAPI, glutPostWindowRedisplay, glutKeyboardUpFunc, - glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat, - glutJoystickFunc, glutForceJoystickFunc (NOT FINALIZED!). - - GLUT_API_VERSION=5 glutGetProcAddress (added by BrianP) -**/ -#ifndef GLUT_API_VERSION /* allow this to be overriden */ -#define GLUT_API_VERSION 5 -#endif - -/** - GLUT implementation revision history: - - GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT - API revisions and implementation revisions (ie, bug fixes). - - GLUT_XLIB_IMPLEMENTATION=1 mjk's first public release of - GLUT Xlib-based implementation. 11/29/94 - - GLUT_XLIB_IMPLEMENTATION=2 mjk's second public release of - GLUT Xlib-based implementation providing GLUT version 2 - interfaces. - - GLUT_XLIB_IMPLEMENTATION=3 mjk's GLUT 2.2 images. 4/17/95 - - GLUT_XLIB_IMPLEMENTATION=4 mjk's GLUT 2.3 images. 6/?/95 - - GLUT_XLIB_IMPLEMENTATION=5 mjk's GLUT 3.0 images. 10/?/95 - - GLUT_XLIB_IMPLEMENTATION=7 mjk's GLUT 3.1+ with glutWarpPoitner. 7/24/96 - - GLUT_XLIB_IMPLEMENTATION=8 mjk's GLUT 3.1+ with glutWarpPoitner - and video resize. 1/3/97 - - GLUT_XLIB_IMPLEMENTATION=9 mjk's GLUT 3.4 release with early GLUT 4 routines. - - GLUT_XLIB_IMPLEMENTATION=11 Mesa 2.5's GLUT 3.6 release. - - GLUT_XLIB_IMPLEMENTATION=12 mjk's GLUT 3.6 release with early GLUT 4 routines + signal handling. - - GLUT_XLIB_IMPLEMENTATION=13 mjk's GLUT 3.7 beta with GameGLUT support. - - GLUT_XLIB_IMPLEMENTATION=14 mjk's GLUT 3.7 beta with f90gl friend interface. - - GLUT_XLIB_IMPLEMENTATION=15 mjk's GLUT 3.7 beta sync'ed with Mesa -**/ -#ifndef GLUT_XLIB_IMPLEMENTATION /* Allow this to be overriden. */ -#define GLUT_XLIB_IMPLEMENTATION 15 -#endif - -/** - MacOS X GLUT implementation revision history: - - GLUT_MACOSX_IMPLEMENTATION is updated to reflect MacOS X - specific GLUT API revisions and implementation revisions - (ie, bug fixes). - - GLUT_MACOSX_IMPLEMENTATION=1 glutSurfaceTexture. - - GLUT_MACOSX_IMPLEMENTATION=2 glutWMCloseFunc, glutCheckLoop. - -**/ -#ifndef GLUT_MACOSX_IMPLEMENTATION /* Allow this to be overriden. */ -#define GLUT_MACOSX_IMPLEMENTATION 2 -#endif - -/* Display mode bit masks. */ -#define GLUT_RGB 0 -#define GLUT_RGBA GLUT_RGB -#define GLUT_INDEX 1 -#define GLUT_SINGLE 0 -#define GLUT_DOUBLE 2 -#define GLUT_ACCUM 4 -#define GLUT_ALPHA 8 -#define GLUT_DEPTH 16 -#define GLUT_STENCIL 32 -#if (GLUT_API_VERSION >= 2) -#define GLUT_MULTISAMPLE 128 -#define GLUT_STEREO 256 -#endif -#if (GLUT_API_VERSION >= 3) -#define GLUT_LUMINANCE 512 -#endif -#define GLUT_NO_RECOVERY 1024 - -/* Mouse buttons. */ -#define GLUT_LEFT_BUTTON 0 -#define GLUT_MIDDLE_BUTTON 1 -#define GLUT_RIGHT_BUTTON 2 - -/* Mouse button state. */ -#define GLUT_DOWN 0 -#define GLUT_UP 1 - -#if (GLUT_API_VERSION >= 2) -/* function keys */ -#define GLUT_KEY_F1 1 -#define GLUT_KEY_F2 2 -#define GLUT_KEY_F3 3 -#define GLUT_KEY_F4 4 -#define GLUT_KEY_F5 5 -#define GLUT_KEY_F6 6 -#define GLUT_KEY_F7 7 -#define GLUT_KEY_F8 8 -#define GLUT_KEY_F9 9 -#define GLUT_KEY_F10 10 -#define GLUT_KEY_F11 11 -#define GLUT_KEY_F12 12 -/* directional keys */ -#define GLUT_KEY_LEFT 100 -#define GLUT_KEY_UP 101 -#define GLUT_KEY_RIGHT 102 -#define GLUT_KEY_DOWN 103 -#define GLUT_KEY_PAGE_UP 104 -#define GLUT_KEY_PAGE_DOWN 105 -#define GLUT_KEY_HOME 106 -#define GLUT_KEY_END 107 -#define GLUT_KEY_INSERT 108 -#endif - -/* Entry/exit state. */ -#define GLUT_LEFT 0 -#define GLUT_ENTERED 1 - -/* Menu usage state. */ -#define GLUT_MENU_NOT_IN_USE 0 -#define GLUT_MENU_IN_USE 1 - -/* Visibility state. */ -#define GLUT_NOT_VISIBLE 0 -#define GLUT_VISIBLE 1 - -/* Window status state. */ -#define GLUT_HIDDEN 0 -#define GLUT_FULLY_RETAINED 1 -#define GLUT_PARTIALLY_RETAINED 2 -#define GLUT_FULLY_COVERED 3 - -/* Color index component selection values. */ -#define GLUT_RED 0 -#define GLUT_GREEN 1 -#define GLUT_BLUE 2 - -/* Layers for use. */ -#define GLUT_NORMAL 0 -#define GLUT_OVERLAY 1 - -#if defined(_WIN32) -/* Stroke font constants (use these in GLUT program). */ -#define GLUT_STROKE_ROMAN ((void*)0) -#define GLUT_STROKE_MONO_ROMAN ((void*)1) - -/* Bitmap font constants (use these in GLUT program). */ -#define GLUT_BITMAP_9_BY_15 ((void*)2) -#define GLUT_BITMAP_8_BY_13 ((void*)3) -#define GLUT_BITMAP_TIMES_ROMAN_10 ((void*)4) -#define GLUT_BITMAP_TIMES_ROMAN_24 ((void*)5) -#if (GLUT_API_VERSION >= 3) -#define GLUT_BITMAP_HELVETICA_10 ((void*)6) -#define GLUT_BITMAP_HELVETICA_12 ((void*)7) -#define GLUT_BITMAP_HELVETICA_18 ((void*)8) -#endif -#else -/* Stroke font opaque addresses (use constants instead in source code). */ -extern void *glutStrokeRoman; -extern void *glutStrokeMonoRoman; - -/* Stroke font constants (use these in GLUT program). */ -#define GLUT_STROKE_ROMAN (&glutStrokeRoman) -#define GLUT_STROKE_MONO_ROMAN (&glutStrokeMonoRoman) - -/* Bitmap font opaque addresses (use constants instead in source code). */ -extern void *glutBitmap9By15; -extern void *glutBitmap8By13; -extern void *glutBitmapTimesRoman10; -extern void *glutBitmapTimesRoman24; -extern void *glutBitmapHelvetica10; -extern void *glutBitmapHelvetica12; -extern void *glutBitmapHelvetica18; - -/* Bitmap font constants (use these in GLUT program). */ -#define GLUT_BITMAP_9_BY_15 (&glutBitmap9By15) -#define GLUT_BITMAP_8_BY_13 (&glutBitmap8By13) -#define GLUT_BITMAP_TIMES_ROMAN_10 (&glutBitmapTimesRoman10) -#define GLUT_BITMAP_TIMES_ROMAN_24 (&glutBitmapTimesRoman24) -#if (GLUT_API_VERSION >= 3) -#define GLUT_BITMAP_HELVETICA_10 (&glutBitmapHelvetica10) -#define GLUT_BITMAP_HELVETICA_12 (&glutBitmapHelvetica12) -#define GLUT_BITMAP_HELVETICA_18 (&glutBitmapHelvetica18) -#endif -#endif - -/* glutGet parameters. */ -#define GLUT_WINDOW_X 100 -#define GLUT_WINDOW_Y 101 -#define GLUT_WINDOW_WIDTH 102 -#define GLUT_WINDOW_HEIGHT 103 -#define GLUT_WINDOW_BUFFER_SIZE 104 -#define GLUT_WINDOW_STENCIL_SIZE 105 -#define GLUT_WINDOW_DEPTH_SIZE 106 -#define GLUT_WINDOW_RED_SIZE 107 -#define GLUT_WINDOW_GREEN_SIZE 108 -#define GLUT_WINDOW_BLUE_SIZE 109 -#define GLUT_WINDOW_ALPHA_SIZE 110 -#define GLUT_WINDOW_ACCUM_RED_SIZE 111 -#define GLUT_WINDOW_ACCUM_GREEN_SIZE 112 -#define GLUT_WINDOW_ACCUM_BLUE_SIZE 113 -#define GLUT_WINDOW_ACCUM_ALPHA_SIZE 114 -#define GLUT_WINDOW_DOUBLEBUFFER 115 -#define GLUT_WINDOW_RGBA 116 -#define GLUT_WINDOW_PARENT 117 -#define GLUT_WINDOW_NUM_CHILDREN 118 -#define GLUT_WINDOW_COLORMAP_SIZE 119 -#if (GLUT_API_VERSION >= 2) -#define GLUT_WINDOW_NUM_SAMPLES 120 -#define GLUT_WINDOW_STEREO 121 -#endif -#if (GLUT_API_VERSION >= 3) -#define GLUT_WINDOW_CURSOR 122 -#endif -#define GLUT_SCREEN_WIDTH 200 -#define GLUT_SCREEN_HEIGHT 201 -#define GLUT_SCREEN_WIDTH_MM 202 -#define GLUT_SCREEN_HEIGHT_MM 203 -#define GLUT_MENU_NUM_ITEMS 300 -#define GLUT_DISPLAY_MODE_POSSIBLE 400 -#define GLUT_INIT_WINDOW_X 500 -#define GLUT_INIT_WINDOW_Y 501 -#define GLUT_INIT_WINDOW_WIDTH 502 -#define GLUT_INIT_WINDOW_HEIGHT 503 -#define GLUT_INIT_DISPLAY_MODE 504 -#if (GLUT_API_VERSION >= 2) -#define GLUT_ELAPSED_TIME 700 -#endif -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) -#define GLUT_WINDOW_FORMAT_ID 123 -#endif - -#if (GLUT_API_VERSION >= 2) -/* glutDeviceGet parameters. */ -#define GLUT_HAS_KEYBOARD 600 -#define GLUT_HAS_MOUSE 601 -#define GLUT_HAS_SPACEBALL 602 -#define GLUT_HAS_DIAL_AND_BUTTON_BOX 603 -#define GLUT_HAS_TABLET 604 -#define GLUT_NUM_MOUSE_BUTTONS 605 -#define GLUT_NUM_SPACEBALL_BUTTONS 606 -#define GLUT_NUM_BUTTON_BOX_BUTTONS 607 -#define GLUT_NUM_DIALS 608 -#define GLUT_NUM_TABLET_BUTTONS 609 -#endif -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) -#define GLUT_DEVICE_IGNORE_KEY_REPEAT 610 -#define GLUT_DEVICE_KEY_REPEAT 611 -#define GLUT_HAS_JOYSTICK 612 -#define GLUT_OWNS_JOYSTICK 613 -#define GLUT_JOYSTICK_BUTTONS 614 -#define GLUT_JOYSTICK_AXES 615 -#define GLUT_JOYSTICK_POLL_RATE 616 -#endif - -#if (GLUT_API_VERSION >= 3) -/* glutLayerGet parameters. */ -#define GLUT_OVERLAY_POSSIBLE 800 -#define GLUT_LAYER_IN_USE 801 -#define GLUT_HAS_OVERLAY 802 -#define GLUT_TRANSPARENT_INDEX 803 -#define GLUT_NORMAL_DAMAGED 804 -#define GLUT_OVERLAY_DAMAGED 805 - -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) -/* glutVideoResizeGet parameters. */ -#define GLUT_VIDEO_RESIZE_POSSIBLE 900 -#define GLUT_VIDEO_RESIZE_IN_USE 901 -#define GLUT_VIDEO_RESIZE_X_DELTA 902 -#define GLUT_VIDEO_RESIZE_Y_DELTA 903 -#define GLUT_VIDEO_RESIZE_WIDTH_DELTA 904 -#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA 905 -#define GLUT_VIDEO_RESIZE_X 906 -#define GLUT_VIDEO_RESIZE_Y 907 -#define GLUT_VIDEO_RESIZE_WIDTH 908 -#define GLUT_VIDEO_RESIZE_HEIGHT 909 -#endif - -/* glutUseLayer parameters. */ -#define GLUT_NORMAL 0 -#define GLUT_OVERLAY 1 - -/* glutGetModifiers return mask. */ -#define GLUT_ACTIVE_SHIFT 1 -#define GLUT_ACTIVE_CTRL 2 -#define GLUT_ACTIVE_ALT 4 - -/* glutSetCursor parameters. */ -/* Basic arrows. */ -#define GLUT_CURSOR_RIGHT_ARROW 0 -#define GLUT_CURSOR_LEFT_ARROW 1 -/* Symbolic cursor shapes. */ -#define GLUT_CURSOR_INFO 2 -#define GLUT_CURSOR_DESTROY 3 -#define GLUT_CURSOR_HELP 4 -#define GLUT_CURSOR_CYCLE 5 -#define GLUT_CURSOR_SPRAY 6 -#define GLUT_CURSOR_WAIT 7 -#define GLUT_CURSOR_TEXT 8 -#define GLUT_CURSOR_CROSSHAIR 9 -/* Directional cursors. */ -#define GLUT_CURSOR_UP_DOWN 10 -#define GLUT_CURSOR_LEFT_RIGHT 11 -/* Sizing cursors. */ -#define GLUT_CURSOR_TOP_SIDE 12 -#define GLUT_CURSOR_BOTTOM_SIDE 13 -#define GLUT_CURSOR_LEFT_SIDE 14 -#define GLUT_CURSOR_RIGHT_SIDE 15 -#define GLUT_CURSOR_TOP_LEFT_CORNER 16 -#define GLUT_CURSOR_TOP_RIGHT_CORNER 17 -#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 18 -#define GLUT_CURSOR_BOTTOM_LEFT_CORNER 19 -/* Inherit from parent window. */ -#define GLUT_CURSOR_INHERIT 100 -/* Blank cursor. */ -#define GLUT_CURSOR_NONE 101 -/* Fullscreen crosshair (if available). */ -#define GLUT_CURSOR_FULL_CROSSHAIR 102 -#endif - -/* GLUT initialization sub-API. */ -extern void APIENTRY glutInit(int *argcp, char **argv); -extern void APIENTRY glutInitDisplayMode(unsigned int mode); -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) -extern void APIENTRY glutInitDisplayString(const char *string); -#endif -extern void APIENTRY glutInitWindowPosition(int x, int y); -extern void APIENTRY glutInitWindowSize(int width, int height); -extern void APIENTRY glutMainLoop(void); - -/* GLUT window sub-API. */ -extern int APIENTRY glutCreateWindow(const char *title); -extern int APIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height); -extern void APIENTRY glutDestroyWindow(int win); -extern void APIENTRY glutPostRedisplay(void); -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) -extern void APIENTRY glutPostWindowRedisplay(int win); -#endif -extern void APIENTRY glutSwapBuffers(void); -extern int APIENTRY glutGetWindow(void); -extern void APIENTRY glutSetWindow(int win); -extern void APIENTRY glutSetWindowTitle(const char *title); -extern void APIENTRY glutSetIconTitle(const char *title); -extern void APIENTRY glutPositionWindow(int x, int y); -extern void APIENTRY glutReshapeWindow(int width, int height); -extern void APIENTRY glutPopWindow(void); -extern void APIENTRY glutPushWindow(void); -extern void APIENTRY glutIconifyWindow(void); -extern void APIENTRY glutShowWindow(void); -extern void APIENTRY glutHideWindow(void); -#if (GLUT_API_VERSION >= 3) -extern void APIENTRY glutFullScreen(void); -extern void APIENTRY glutSetCursor(int cursor); -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) -extern void APIENTRY glutWarpPointer(int x, int y); -#if (GLUT_MACOSX_IMPLEMENTATION >= 1) -/* surface texturing API Mac OS X specific -* Note: -* glutSurfaceTexture has been deprecated, use GL_EXT_framebuffer_object -*/ -#ifdef MAC_OS_X_VERSION_10_5 -extern void APIENTRY glutSurfaceTexture (GLenum target, GLenum internalformat, int surfacewin); AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 -#else -extern void APIENTRY glutSurfaceTexture (GLenum target, GLenum internalformat, int surfacewin); -#endif -#endif -#if (GLUT_MACOSX_IMPLEMENTATION >= 2) -/* Mac OS X specific API */ -extern void APIENTRY glutWMCloseFunc(void (*func)(void)); -extern void APIENTRY glutCheckLoop(void); -#endif -#endif - -/* GLUT overlay sub-API. */ -extern void APIENTRY glutEstablishOverlay(void); -extern void APIENTRY glutRemoveOverlay(void); -extern void APIENTRY glutUseLayer(GLenum layer); -extern void APIENTRY glutPostOverlayRedisplay(void); -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) -extern void APIENTRY glutPostWindowOverlayRedisplay(int win); -#endif -extern void APIENTRY glutShowOverlay(void); -extern void APIENTRY glutHideOverlay(void); -#endif - -/* GLUT menu sub-API. */ -extern int APIENTRY glutCreateMenu(void (*)(int)); -extern void APIENTRY glutDestroyMenu(int menu); -extern int APIENTRY glutGetMenu(void); -extern void APIENTRY glutSetMenu(int menu); -extern void APIENTRY glutAddMenuEntry(const char *label, int value); -extern void APIENTRY glutAddSubMenu(const char *label, int submenu); -extern void APIENTRY glutChangeToMenuEntry(int item, const char *label, int value); -extern void APIENTRY glutChangeToSubMenu(int item, const char *label, int submenu); -extern void APIENTRY glutRemoveMenuItem(int item); -extern void APIENTRY glutAttachMenu(int button); -extern void APIENTRY glutDetachMenu(int button); - -/* GLUT window callback sub-API. */ -extern void APIENTRY glutDisplayFunc(void (*func)(void)); -extern void APIENTRY glutReshapeFunc(void (*func)(int width, int height)); -extern void APIENTRY glutKeyboardFunc(void (*func)(unsigned char key, int x, int y)); -extern void APIENTRY glutMouseFunc(void (*func)(int button, int state, int x, int y)); -extern void APIENTRY glutMotionFunc(void (*func)(int x, int y)); -extern void APIENTRY glutPassiveMotionFunc(void (*func)(int x, int y)); -extern void APIENTRY glutEntryFunc(void (*func)(int state)); -extern void APIENTRY glutVisibilityFunc(void (*func)(int state)); -extern void APIENTRY glutIdleFunc(void (*func)(void)); -extern void APIENTRY glutTimerFunc(unsigned int millis, void (*func)(int value), int value); -extern void APIENTRY glutMenuStateFunc(void (*func)(int state)); -#if (GLUT_API_VERSION >= 2) -extern void APIENTRY glutSpecialFunc(void (*func)(int key, int x, int y)); -extern void APIENTRY glutSpaceballMotionFunc(void (*func)(int x, int y, int z)); -extern void APIENTRY glutSpaceballRotateFunc(void (*func)(int x, int y, int z)); -extern void APIENTRY glutSpaceballButtonFunc(void (*func)(int button, int state)); -extern void APIENTRY glutButtonBoxFunc(void (*func)(int button, int state)); -extern void APIENTRY glutDialsFunc(void (*func)(int dial, int value)); -extern void APIENTRY glutTabletMotionFunc(void (*func)(int x, int y)); -extern void APIENTRY glutTabletButtonFunc(void (*func)(int button, int state, int x, int y)); -#if (GLUT_API_VERSION >= 3) -extern void APIENTRY glutMenuStatusFunc(void (*func)(int status, int x, int y)); -extern void APIENTRY glutOverlayDisplayFunc(void (*func)(void)); -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) -extern void APIENTRY glutWindowStatusFunc(void (*func)(int state)); -#endif -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) -extern void APIENTRY glutKeyboardUpFunc(void (*func)(unsigned char key, int x, int y)); -extern void APIENTRY glutSpecialUpFunc(void (*func)(int key, int x, int y)); -extern void APIENTRY glutJoystickFunc(void (*func)(unsigned int buttonMask, int x, int y, int z), int pollInterval); -//#ifdef GLUT_OF_007_HACK -extern void APIENTRY glutDragEventFunc(void (*func)(char ** fileNames, int nFiles, int dragX, int dragY)); -//#endif -#endif -#endif -#endif - -/* GLUT color index sub-API. */ -extern void APIENTRY glutSetColor(int, GLfloat red, GLfloat green, GLfloat blue); -extern GLfloat APIENTRY glutGetColor(int ndx, int component); -extern void APIENTRY glutCopyColormap(int win); - -/* GLUT state retrieval sub-API. */ -extern int APIENTRY glutGet(GLenum type); -extern int APIENTRY glutDeviceGet(GLenum type); -#if (GLUT_API_VERSION >= 2) -/* GLUT extension support sub-API */ -extern int APIENTRY glutExtensionSupported(const char *name); -#endif -#if (GLUT_API_VERSION >= 3) -extern int APIENTRY glutGetModifiers(void); -extern int APIENTRY glutLayerGet(GLenum type); -#endif -#if (GLUT_API_VERSION >= 5) -extern void * APIENTRY glutGetProcAddress(const char *procName); -#endif - -/* GLUT font sub-API */ -extern void APIENTRY glutBitmapCharacter(void *font, int character); -extern int APIENTRY glutBitmapWidth(void *font, int character); -extern void APIENTRY glutStrokeCharacter(void *font, int character); -extern int APIENTRY glutStrokeWidth(void *font, int character); -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) -extern int APIENTRY glutBitmapLength(void *font, const unsigned char *string); -extern int APIENTRY glutStrokeLength(void *font, const unsigned char *string); -#endif - -/* GLUT pre-built models sub-API */ -extern void APIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks); -extern void APIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks); -extern void APIENTRY glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); -extern void APIENTRY glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); -extern void APIENTRY glutWireCube(GLdouble size); -extern void APIENTRY glutSolidCube(GLdouble size); -extern void APIENTRY glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); -extern void APIENTRY glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); -extern void APIENTRY glutWireDodecahedron(void); -extern void APIENTRY glutSolidDodecahedron(void); -extern void APIENTRY glutWireTeapot(GLdouble size); -extern void APIENTRY glutSolidTeapot(GLdouble size); -extern void APIENTRY glutWireOctahedron(void); -extern void APIENTRY glutSolidOctahedron(void); -extern void APIENTRY glutWireTetrahedron(void); -extern void APIENTRY glutSolidTetrahedron(void); -extern void APIENTRY glutWireIcosahedron(void); -extern void APIENTRY glutSolidIcosahedron(void); - -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) -/* GLUT video resize sub-API. */ -extern int APIENTRY glutVideoResizeGet(GLenum param); -extern void APIENTRY glutSetupVideoResizing(void); -extern void APIENTRY glutStopVideoResizing(void); -extern void APIENTRY glutVideoResize(int x, int y, int width, int height); -extern void APIENTRY glutVideoPan(int x, int y, int width, int height); - -/* GLUT debugging sub-API. */ -extern void APIENTRY glutReportErrors(void); -#endif - -#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) -/* GLUT device control sub-API. */ -/* glutSetKeyRepeat modes. */ -#define GLUT_KEY_REPEAT_OFF 0 -#define GLUT_KEY_REPEAT_ON 1 -#define GLUT_KEY_REPEAT_DEFAULT 2 - -/* Joystick button masks. */ -#define GLUT_JOYSTICK_BUTTON_A 1 -#define GLUT_JOYSTICK_BUTTON_B 2 -#define GLUT_JOYSTICK_BUTTON_C 4 -#define GLUT_JOYSTICK_BUTTON_D 8 - -extern void APIENTRY glutIgnoreKeyRepeat(int ignore); -extern void APIENTRY glutSetKeyRepeat(int repeatMode); -extern void APIENTRY glutForceJoystickFunc(void); - -/* GLUT game mode sub-API. */ -/* glutGameModeGet. */ -#define GLUT_GAME_MODE_ACTIVE 0 -#define GLUT_GAME_MODE_POSSIBLE 1 -#define GLUT_GAME_MODE_WIDTH 2 -#define GLUT_GAME_MODE_HEIGHT 3 -#define GLUT_GAME_MODE_PIXEL_DEPTH 4 -#define GLUT_GAME_MODE_REFRESH_RATE 5 -#define GLUT_GAME_MODE_DISPLAY_CHANGED 6 - -extern void APIENTRY glutGameModeString(const char *string); -extern int APIENTRY glutEnterGameMode(void); -extern void APIENTRY glutLeaveGameMode(void); -extern int APIENTRY glutGameModeGet(GLenum mode); -#endif - -#ifdef __cplusplus -} - -#endif - -#ifdef GLUT_APIENTRY_DEFINED -# undef GLUT_APIENTRY_DEFINED -# undef APIENTRY -#endif - -#ifdef GLUT_WINGDIAPI_DEFINED -# undef GLUT_WINGDIAPI_DEFINED -# undef WINGDIAPI -#endif - -#endif /* __glut_h__ */ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutbitmap.h b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutbitmap.h deleted file mode 100755 index e29a016..0000000 --- a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutbitmap.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef __glutbitmap_h__ -#define __glutbitmap_h__ - -/* Copyright (c) Mark J. Kilgard, 1994. */ - -/* This program is freely distributable without licensing fees - and is provided without guarantee or warrantee expressed or - implied. This program is -not- in the public domain. */ - -#include "glut.h" - -typedef struct { - const GLsizei width; - const GLsizei height; - const GLfloat xorig; - const GLfloat yorig; - const GLfloat advance; - const GLubyte *bitmap; -} BitmapCharRec, *BitmapCharPtr; - -typedef struct { - const char *name; - const int num_chars; - const int first; - const BitmapCharRec * const *ch; -} BitmapFontRec, *BitmapFontPtr; - -typedef void *GLUTbitmapFont; - -#endif /* __glutbitmap_h__ */ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutf90.h b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutf90.h deleted file mode 100755 index f8a170b..0000000 --- a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutf90.h +++ /dev/null @@ -1,90 +0,0 @@ -#ifndef __glutf90_h__ -#define __glutf90_h__ - -/* Copyright (c) Mark J. Kilgard & Willam F. Mitchell, 1998. */ - -/* This program is freely distributable without licensing fees - and is provided without guarantee or warrantee expressed or - implied. This program is -not- in the public domain. */ - -/* This header provides the binding interface for William Mitchell's - f90gl Fortran 90 GLUT binding. Other GLUT language bindings - can and should use this interace. */ - -/* I appreciate the guidance from William Mitchell - (mitchell@cam.nist.gov) in developing this friend interface - for use by the f90gl package. See ../../README.fortran */ - -#include - -#ifndef GLUTCALLBACK - #define GLUTCALLBACK -#endif -#ifndef APIENTRY - #define APIENTRY -#endif - -/* Which callback enumerants for the __glutSetFCB/__glutGetFCB routines. */ -/* NOTE These values are part of a binary interface for the f90gl Fortran - 90 binding and so must NOT changes (additions are allowed). */ - -/* GLUTwindow callbacks. */ -#define GLUT_FCB_DISPLAY 0 /* GLUTdisplayFCB */ -#define GLUT_FCB_RESHAPE 1 /* GLUTreshapeFCB */ -#define GLUT_FCB_MOUSE 2 /* GLUTmouseFCB */ -#define GLUT_FCB_MOTION 3 /* GLUTmotionFCB */ -#define GLUT_FCB_PASSIVE 4 /* GLUTpassiveFCB */ -#define GLUT_FCB_ENTRY 5 /* GLUTentryFCB */ -#define GLUT_FCB_KEYBOARD 6 /* GLUTkeyboardFCB */ -#define GLUT_FCB_KEYBOARD_UP 7 /* GLUTkeyboardFCB */ -#define GLUT_FCB_WINDOW_STATUS 8 /* GLUTwindowStatusFCB */ -#define GLUT_FCB_VISIBILITY 9 /* GLUTvisibilityFCB */ -#define GLUT_FCB_SPECIAL 10 /* GLUTspecialFCB */ -#define GLUT_FCB_SPECIAL_UP 11 /* GLUTspecialFCB */ -#define GLUT_FCB_BUTTON_BOX 12 /* GLUTbuttonBoxFCB */ -#define GLUT_FCB_DIALS 13 /* GLUTdialsFCB */ -#define GLUT_FCB_SPACE_MOTION 14 /* GLUTspaceMotionFCB */ -#define GLUT_FCB_SPACE_ROTATE 15 /* GLUTspaceRotateFCB */ -#define GLUT_FCB_SPACE_BUTTON 16 /* GLUTspaceButtonFCB */ -#define GLUT_FCB_TABLET_MOTION 17 /* GLUTtabletMotionFCB */ -#define GLUT_FCB_TABLET_BUTTON 18 /* GLUTtabletButtonFCB */ -#define GLUT_FCB_JOYSTICK 19 /* GLUTjoystickFCB */ -#define GLUT_FCB_WMCLOSE 20 /* GLUTwmcloseFCB */ -/* Non-GLUTwindow callbacks. */ -#define GLUT_FCB_OVERLAY_DISPLAY 100 /* GLUTdisplayFCB */ -#define GLUT_FCB_SELECT 101 /* GLUTselectFCB */ -#define GLUT_FCB_TIMER 102 /* GLUTtimerFCB */ - -/* GLUT Fortran callback function types. */ -typedef void (GLUTCALLBACK *GLUTdisplayFCB) (void); -typedef void (GLUTCALLBACK *GLUTwmcloseFCB) (void); -typedef void (GLUTCALLBACK *GLUTreshapeFCB) (int *, int *); -/* NOTE the pressed key is int, not unsigned char for Fortran! */ -typedef void (GLUTCALLBACK *GLUTkeyboardFCB) (int *, int *, int *); -typedef void (GLUTCALLBACK *GLUTmouseFCB) (int *, int *, int *, int *); -typedef void (GLUTCALLBACK *GLUTmotionFCB) (int *, int *); -typedef void (GLUTCALLBACK *GLUTpassiveFCB) (int *, int *); -typedef void (GLUTCALLBACK *GLUTentryFCB) (int *); -typedef void (GLUTCALLBACK *GLUTwindowStatusFCB) (int *); -typedef void (GLUTCALLBACK *GLUTvisibilityFCB) (int *); -typedef void (GLUTCALLBACK *GLUTspecialFCB) (int *, int *, int *); -typedef void (GLUTCALLBACK *GLUTbuttonBoxFCB) (int *, int *); -typedef void (GLUTCALLBACK *GLUTdialsFCB) (int *, int *); -typedef void (GLUTCALLBACK *GLUTspaceMotionFCB) (int *, int *, int *); -typedef void (GLUTCALLBACK *GLUTspaceRotateFCB) (int *, int *, int *); -typedef void (GLUTCALLBACK *GLUTspaceButtonFCB) (int *, int *); -typedef void (GLUTCALLBACK *GLUTtabletMotionFCB) (int *, int *); -typedef void (GLUTCALLBACK *GLUTtabletButtonFCB) (int *, int *, int *, int *); -typedef void (GLUTCALLBACK *GLUTjoystickFCB) (unsigned int *buttonMask, int *x, int *y, int *z); - -typedef void (GLUTCALLBACK *GLUTselectFCB) (int *); -typedef void (GLUTCALLBACK *GLUTtimerFCB) (int *); -typedef void (GLUTCALLBACK *GLUTmenuStateFCB) (int *); /* DEPRICATED. */ -typedef void (GLUTCALLBACK *GLUTmenuStatusFCB) (int *, int *, int *); -typedef void (GLUTCALLBACK *GLUTidleFCB) (void); - -/* Functions that set and return Fortran callback functions. */ -extern void* APIENTRY __glutGetFCB(int which); -extern void APIENTRY __glutSetFCB(int which, void *func); - -#endif /* __glutf90_h__ */ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutstroke.h b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutstroke.h deleted file mode 100755 index cbc9e15..0000000 --- a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutstroke.h +++ /dev/null @@ -1,42 +0,0 @@ -#ifndef __glutstroke_h__ -#define __glutstroke_h__ - -/* Copyright (c) Mark J. Kilgard, 1994. */ - -/* This program is freely distributable without licensing fees - and is provided without guarantee or warrantee expressed or - implied. This program is -not- in the public domain. */ - -#if defined(_WIN32) -#pragma warning (disable:4244) /* disable bogus conversion warnings */ -#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ -#endif - -typedef struct { - float x; - float y; -} CoordRec, *CoordPtr; - -typedef struct { - int num_coords; - const CoordRec *coord; -} StrokeRec, *StrokePtr; - -typedef struct { - int num_strokes; - const StrokeRec *stroke; - float center; - float right; -} StrokeCharRec, *StrokeCharPtr; - -typedef struct { - const char *name; - int num_chars; - const StrokeCharRec *ch; - float top; - float bottom; -} StrokeFontRec, *StrokeFontPtr; - -typedef void *GLUTstrokeFont; - -#endif /* __glutstroke_h__ */ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/gutil.h b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/gutil.h deleted file mode 100755 index f7ffcf3..0000000 --- a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/gutil.h +++ /dev/null @@ -1,89 +0,0 @@ - -/* - * gutil.h - * - * FUNCTION: - * Provide utilities that allow rotation to occur - * around any axis. - * - * HISTORY: - * created by Linas Vepstas 1990 - * added single & double precision, June 1991, Linas Vepstas - */ - -#ifndef __GUTIL_H__ -#define __GUTIL_H__ - -#ifdef __GUTIL_DOUBLE -#define gutDouble double -#else -#define gutDouble float -#endif - - -#ifdef _NO_PROTO /* NO ANSI C PROTOTYPING */ - -/* Rotation Utilities */ -extern void rot_axis_f (); -extern void rot_about_axis_f (); -extern void rot_omega_f (); -extern void urot_axis_f (); -extern void urot_about_axis_f (); -extern void urot_omega_f (); - -/* double-precision versions */ -extern void rot_axis_d (); -extern void rot_about_axis_d (); -extern void rot_omega_d (); -extern void urot_axis_d (); -extern void urot_about_axis_d (); -extern void urot_omega_d (); - -/* viewpoint functions */ -extern void uview_direction_d (); -extern void uview_direction_f (); -extern void uviewpoint_d (); -extern void uviewpoint_f (); - -#else /* _NO_PROTO */ /* ANSI C PROTOTYPING */ - -/* Rotation Utilities */ -extern void rot_axis_f (float omega, float axis[3]); -extern void rot_about_axis_f (float angle, float axis[3]); -extern void rot_omega_f (float axis[3]); -extern void urot_axis_f (float m[4][4], float omega, float axis[3]); -extern void urot_about_axis_f (float m[4][4], float angle, float axis[3]); -extern void urot_omega_f (float m[4][4], float axis[3]); - -/* double-precision versions */ -extern void rot_axis_d (double omega, double axis[3]); -extern void rot_about_axis_d (double angle, double axis[3]); -extern void rot_omega_d (double axis[3]); -extern void urot_axis_d (double m[4][4], double omega, double axis[3]); -extern void urot_about_axis_d (double m[4][4], double angle, double axis[3]); -extern void urot_omega_d (double m[4][4], double axis[3]); - -/* viewpoint functions */ -extern void uview_direction_d (double m[4][4], /* returned */ - double v21[3], /* input */ - double up[3]); /* input */ - -extern void uview_direction_f (float m[4][4], /* returned */ - float v21[3], /* input */ - float up[3]); /* input */ - -extern void uviewpoint_d (double m[4][4], /* returned */ - double v1[3], /* input */ - double v2[3], /* input */ - double up[3]); /* input */ - -extern void uviewpoint_f (float m[4][4], /* returned */ - float v1[3], /* input */ - float v2[3], /* input */ - float up[3]); /* input */ - -#endif /* _NO_PROTO */ - -#endif /* _GUTIL_H__ */ - -/* ------------------- end of file ---------------------- */ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/intersect.h b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/intersect.h deleted file mode 100755 index f5ff7a5..0000000 --- a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/intersect.h +++ /dev/null @@ -1,391 +0,0 @@ -/* - * FUNCTION: - * This file contains a number of utilities useful to 3D graphics in - * general, and to the generation of tubing and extrusions in particular - * - * HISTORY: - * Written by Linas Vepstas, August 1991 - * Updated to correctly handle degenerate cases, Linas, February 1993 - */ - -#include -#include "port.h" -#include "vvector.h" - -#define BACKWARDS_INTERSECT (2) - -/* ========================================================== */ -/* - * the Degenerate_Tolerance token represents the greatest amount by - * which different scales in a graphics environment can differ before - * they should be considered "degenerate". That is, when one vector is - * a million times longer than another, changces are that the second will - * be less than a pixel int, and therefore was probably meant to be - * degenerate (by the CAD package, etc.) But what should this tolerance - * be? At least 1 in onethousand (since screen sizes are 1K pixels), but - * les than 1 in 4 million (since this is the limit of single-precision - * floating point accuracy). Of course, if double precision were used, - * then the tolerance could be increased. - * - * Potentially, this naive assumption could cause problems if the CAD - * package attempts to zoom in on small details, and turns out, certain - * points should not hvae been degenerate. The problem presented here - * is that the tolerance could run out before single-precision ran - * out, and so the CAD packages would perceive this as a "bug". - * One alternative is to fiddle around & try to tighten the tolerance. - * However, the right alternative is to code the graphics pipeline in - * double-precision (and tighten the tolerance). - * - * By the way, note that Degernate Tolerance is a "dimensionless" - * quantitiy -- it has no units -- it does not measure feet, inches, - * millimeters or pixels. It is used only in the computations of ratios - * and relative lengths. - */ - -/* - * Right now, the tolerance is set to 2 parts in a million, which - * corresponds to a 19-bit distinction of mantissas. Note that - * single-precsion numbers have 24 bit mantissas. - */ - -#define DEGENERATE_TOLERANCE (0.000002) - -/* ========================================================== */ -/* - * The macro and subroutine INTERSECT are designed to compute the - * intersection of a line (defined by the points v1 and v2) and a plane - * (defined as plane which is normal to the vector n, and contains the - * point p). Both return the point sect, which is the point of - * interesection. - * - * This MACRO attemps to be fairly robust by checking for a divide by - * zero. - */ - -/* ========================================================== */ -/* - * HACK ALERT - * The intersection parameter t has the nice property that if t>1, - * then the intersection is "in front of" p1, and if t<0, then the - * intersection is "behind" p2. Unfortunately, as the intersecting plane - * and the line become parallel, t wraps through infinity -- i.e. t can - * become so large that t becomes "greater than infinity" and comes back - * as a negative number (i.e. winding number hopped by one unit). We - * have no way of detecting this situation without adding gazzillions - * of lines of code of topological algebra to detect the winding number; - * and this would be incredibly difficult, and ruin performance. - * - * Thus, we've installed a cheap hack for use by the "cut style" drawing - * routines. If t proves to be a large negative number (more negative - * than -5), then we assume that t was positive and wound through - * infinity. This makes most cuts look good, without introducing bogus - * cuts at infinity. - */ -/* ========================================================== */ - -#define INTERSECT(sect,p,n,v1,v2) \ -{ \ - gleDouble deno, numer, t, omt; \ - \ - deno = (v1[0] - v2[0]) * n[0]; \ - deno += (v1[1] - v2[1]) * n[1]; \ - deno += (v1[2] - v2[2]) * n[2]; \ - \ - if (deno == 0.0) { \ - VEC_COPY (n, v1); \ - /* printf ("Intersect: Warning: line is coplanar with plane \n"); */ \ - } else { \ - \ - numer = (p[0] - v2[0]) * n[0]; \ - numer += (p[1] - v2[1]) * n[1]; \ - numer += (p[2] - v2[2]) * n[2]; \ - \ - t = numer / deno; \ - omt = 1.0 - t; \ - \ - sect[0] = t * v1[0] + omt * v2[0]; \ - sect[1] = t * v1[1] + omt * v2[1]; \ - sect[2] = t * v1[2] + omt * v2[2]; \ - } \ -} - -/* ========================================================== */ -/* - * The macro and subroutine BISECTING_PLANE compute a normal vector that - * describes the bisecting plane between three points (v1, v2 and v3). - * This bisecting plane has the following properties: - * 1) it contains the point v2 - * 2) the angle it makes with v21 == v2 - v1 is equal to the angle it - * makes with v32 == v3 - v2 - * 3) it is perpendicular to the plane defined by v1, v2, v3. - * - * Having input v1, v2, and v3, it returns a unit vector n. - * - * In some cases, the user may specify degenerate points, and still - * expect "reasonable" or "obvious" behaviour. The "expected" - * behaviour for these degenerate cases is: - * - * 1) if v1 == v2 == v3, then return n=0 - * 2) if v1 == v2, then return v32 (normalized). - * 3) if v2 == v3, then return v21 (normalized). - * 4) if v1, v2 and v3 co-linear, then return v21 (normalized). - * - * Mathematically, these special cases "make sense" -- we just have to - * code around potential divide-by-zero's in the code below. - */ - -/* ========================================================== */ - -#define BISECTING_PLANE(valid,n,v1,v2,v3) \ -{ \ - double v21[3], v32[3]; \ - double len21, len32; \ - double vdot; \ - \ - VEC_DIFF (v21, v2, v1); \ - VEC_DIFF (v32, v3, v2); \ - \ - VEC_LENGTH (len21, v21); \ - VEC_LENGTH (len32, v32); \ - \ - if (len21 <= DEGENERATE_TOLERANCE * len32) { \ - \ - if (len32 == 0.0) { \ - /* all three points lie ontop of one-another */ \ - VEC_ZERO (n); \ - valid = FALSE; \ - } else { \ - /* return a normalized copy of v32 as bisector */ \ - len32 = 1.0 / len32; \ - VEC_SCALE (n, len32, v32); \ - valid = TRUE; \ - } \ - \ - } else { \ - \ - valid = TRUE; \ - \ - if (len32 <= DEGENERATE_TOLERANCE * len21) { \ - /* return a normalized copy of v21 as bisector */ \ - len21 = 1.0 / len21; \ - VEC_SCALE (n, len21, v21); \ - \ - } else { \ - \ - /* normalize v21 to be of unit length */ \ - len21 = 1.0 / len21; \ - VEC_SCALE (v21, len21, v21); \ - \ - /* normalize v32 to be of unit length */ \ - len32 = 1.0 / len32; \ - VEC_SCALE (v32, len32, v32); \ - \ - VEC_DOT_PRODUCT (vdot, v32, v21); \ - \ - /* if vdot == 1 or -1, then points are colinear */ \ - if ((vdot >= (1.0-DEGENERATE_TOLERANCE)) || \ - (vdot <= (-1.0+DEGENERATE_TOLERANCE))) { \ - VEC_COPY (n, v21); \ - } else { \ - \ - /* go do the full computation */ \ - n[0] = vdot * (v32[0] + v21[0]) - v32[0] - v21[0]; \ - n[1] = vdot * (v32[1] + v21[1]) - v32[1] - v21[1]; \ - n[2] = vdot * (v32[2] + v21[2]) - v32[2] - v21[2]; \ - \ - /* if above if-test's passed, \ - * n should NEVER be of zero length */ \ - VEC_NORMALIZE (n); \ - } \ - } \ - } \ -} - -/* ========================================================== */ -/* - * The block of code below is ifdef'd out, and is here for reference - * purposes only. It performs the "mathematically right thing" for - * computing a bisecting plane, but is, unfortunately, subject ot noise - * in the presence of near degenerate points. Since computer graphics, - * due to sloppy coding, laziness, or correctness, is filled with - * degenerate points, we can't really use this version. The code above - * is far more appropriate for graphics. - */ - -#ifdef MATHEMATICALLY_EXACT_GRAPHICALLY_A_KILLER -#define BISECTING_PLANE(n,v1,v2,v3) \ -{ \ - double v21[3], v32[3]; \ - double len21, len32; \ - double vdot; \ - \ - VEC_DIFF (v21, v2, v1); \ - VEC_DIFF (v32, v3, v2); \ - \ - VEC_LENGTH (len21, v21); \ - VEC_LENGTH (len32, v32); \ - \ - if (len21 == 0.0) { \ - \ - if (len32 == 0.0) { \ - /* all three points lie ontop of one-another */ \ - VEC_ZERO (n); \ - valid = FALSE; \ - } else { \ - /* return a normalized copy of v32 as bisector */ \ - len32 = 1.0 / len32; \ - VEC_SCALE (n, len32, v32); \ - } \ - \ - } else { \ - \ - /* normalize v21 to be of unit length */ \ - len21 = 1.0 / len21; \ - VEC_SCALE (v21, len21, v21); \ - \ - if (len32 == 0.0) { \ - /* return a normalized copy of v21 as bisector */ \ - VEC_COPY (n, v21); \ - } else { \ - \ - /* normalize v32 to be of unit length */ \ - len32 = 1.0 / len32; \ - VEC_SCALE (v32, len32, v32); \ - \ - VEC_DOT_PRODUCT (vdot, v32, v21); \ - \ - /* if vdot == 1 or -1, then points are colinear */ \ - if ((vdot == 1.0) || (vdot == -1.0)) { \ - VEC_COPY (n, v21); \ - } else { \ - \ - /* go do the full computation */ \ - n[0] = vdot * (v32[0] + v21[0]) - v32[0] - v21[0]; \ - n[1] = vdot * (v32[1] + v21[1]) - v32[1] - v21[1]; \ - n[2] = vdot * (v32[2] + v21[2]) - v32[2] - v21[2]; \ - \ - /* if above if-test's passed, \ - * n should NEVER be of zero length */ \ - VEC_NORMALIZE (n); \ - } \ - } \ - } \ -} -#endif - -/* ========================================================== */ -/* - * This macro computes the plane perpendicular to the the plane - * defined by three points, and whose normal vector is givven as the - * difference between the two vectors ... - * - * (See way below for the "math" model if you want to understand this. - * The comments about relative errors above apply here.) - */ - -#define CUTTING_PLANE(valid,n,v1,v2,v3) \ -{ \ - double v21[3], v32[3]; \ - double len21, len32; \ - double lendiff; \ - \ - VEC_DIFF (v21, v2, v1); \ - VEC_DIFF (v32, v3, v2); \ - \ - VEC_LENGTH (len21, v21); \ - VEC_LENGTH (len32, v32); \ - \ - if (len21 <= DEGENERATE_TOLERANCE * len32) { \ - \ - if (len32 == 0.0) { \ - /* all three points lie ontop of one-another */ \ - VEC_ZERO (n); \ - valid = FALSE; \ - } else { \ - /* return a normalized copy of v32 as cut-vector */ \ - len32 = 1.0 / len32; \ - VEC_SCALE (n, len32, v32); \ - valid = TRUE; \ - } \ - \ - } else { \ - \ - valid = TRUE; \ - \ - if (len32 <= DEGENERATE_TOLERANCE * len21) { \ - /* return a normalized copy of v21 as cut vector */ \ - len21 = 1.0 / len21; \ - VEC_SCALE (n, len21, v21); \ - } else { \ - \ - /* normalize v21 to be of unit length */ \ - len21 = 1.0 / len21; \ - VEC_SCALE (v21, len21, v21); \ - \ - /* normalize v32 to be of unit length */ \ - len32 = 1.0 / len32; \ - VEC_SCALE (v32, len32, v32); \ - \ - VEC_DIFF (n, v21, v32); \ - VEC_LENGTH (lendiff, n); \ - \ - /* if the perp vector is very small, then the two \ - * vectors are darn near collinear, and the cut \ - * vector is probably poorly defined. */ \ - if (lendiff < DEGENERATE_TOLERANCE) { \ - VEC_ZERO (n); \ - valid = FALSE; \ - } else { \ - lendiff = 1.0 / lendiff; \ - VEC_SCALE (n, lendiff, n); \ - } \ - } \ - } \ -} - -/* ========================================================== */ - -#ifdef MATHEMATICALLY_EXACT_GRAPHICALLY_A_KILLER -#define CUTTING_PLANE(n,v1,v2,v3) \ -{ \ - double v21[3], v32[3]; \ - \ - VEC_DIFF (v21, v2, v1); \ - VEC_DIFF (v32, v3, v2); \ - \ - VEC_NORMALIZE (v21); \ - VEC_NORMALIZE (v32); \ - \ - VEC_DIFF (n, v21, v32); \ - VEC_NORMALIZE (n); \ -} -#endif - - -/* ============================================================ */ -/* This macro is used in several places to cycle through a series of - * points to find the next non-degenerate point in a series */ - -#define FIND_NON_DEGENERATE_POINT(inext,npoints,len,diff,point_array) \ -{ \ - gleDouble slen; \ - gleDouble summa[3]; \ - \ - do { \ - /* get distance to next point */ \ - VEC_DIFF (diff, point_array[inext+1], point_array[inext]); \ - VEC_LENGTH (len, diff); \ - VEC_SUM (summa, point_array[inext+1], point_array[inext]); \ - VEC_LENGTH (slen, summa); \ - slen *= DEGENERATE_TOLERANCE; \ - inext ++; \ - } while ((len <= slen) && (inext < npoints-1)); \ -} - -/* ========================================================== */ - -extern int bisecting_plane (gleDouble n[3], /* returned */ - gleDouble v1[3], /* input */ - gleDouble v2[3], /* input */ - gleDouble v3[3]); /* input */ - diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/port.h b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/port.h deleted file mode 100755 index 2827bbf..0000000 --- a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/port.h +++ /dev/null @@ -1,298 +0,0 @@ - -/* - * port.h - * - * FUNCTION: - * This file contains defines for porting the tubing toolkit from GL to - * OpenGL to some callback scheme. - * - * HISTORY: - * Created by Linas Vepstas -- February 1993 - * Added auto texture coord generation hacks, Linas April 1994 - */ - -#ifndef __GLE_PORT_H__ -#define __GLE_PORT_H__ - - -#ifndef TRUE -#define TRUE 1 -#endif - -#ifndef FALSE -#define FALSE 0 -#endif - -#ifndef M_PI -#define M_PI 3.14159265358979323846 -#endif - -/* ====================================================== */ -/* Some compilers can't handle multiply-subscripted array's */ - -#ifdef FUNKY_C -typedef gleDouble gleVector; -#define AVAL(arr,n,i,j) arr(6*n+3*i+j) -#define VVAL(arr,n,i) arr(3*n+i) - -#else /* FUNKY_C */ -typedef double gleVector[3]; -typedef double glePoint[2]; -#define AVAL(arr,n,i,j) arr[n][i][j] -#define VVAL(arr,n,i) arr[n][i]; - -#endif /* FUNKY_C */ - -/* ====================================================== */ -/* These are used to convey info about topography to the - * texture mapping routines */ - -#define FRONT 1 -#define BACK 2 -#define FRONT_CAP 3 -#define BACK_CAP 4 -#define FILLET 5 - -/* ====================================================== */ - -#define __GLE_DOUBLE - -/* ====================================================== */ - -#ifdef __GLE_DOUBLE -#ifndef gleDouble - #define gleDouble double -#endif -#define urot_axis(a,b,c) urot_axis_d(a,b,c) -#define uview_direction(a,b,c) uview_direction_d(a,b,c) -#define uviewpoint(a,b,c,d) uviewpoint_d(a,b,c,d) -#define MULTMATRIX(m) MULTMATRIX_D(m) -#define LOADMATRIX(m) LOADMATRIX_D(m) -#define V3F(x,j,id) V3F_D(x,j,id) -#define N3F(x) N3F_D(x) -#define T2F(x,y) T2F_D(x,y) -#else -#define gleDouble float -#define urot_axis(a,b,c) urot_axis_f(a,b,c) -#define uview_direction(a,b,c) uview_direction_f(a,b,c) -#define uviewpoint(a,b,c,d) uviewpoint_f(a,b,c,d) -#define MULTMATRIX(m) MULTMATRIX_F(m) -#define LOADMATRIX(m) LOADMATRIX_F(m) -#define V3F(x,j,id) V3F_F(x,j,id) -#define N3F(x) N3F_F(x) -#define T2F(x,y) T2F_F(x,y) -#endif - -/* ====================================================== */ - -#if (defined DEBUG_GL_32 || DEBUG_OPENGL_10) -#undef GL_32 -#undef OPENGL_10 - -#define BGNTMESH(i,len) printf ("bgntmesh() \n"); -#define ENDTMESH() printf ("endtmesh() \n"); -#define BGNPOLYGON() printf ("bgnpolygon() \n"); -#define ENDPOLYGON() printf ("endpolygon() \n"); -#define V3F_F(x,j,id) printf ("v3f(x) %f %f %f \n", x[0], x[1], x[2]); -#define V3F_D(x,j,id) printf ("v3d(x) %f %f %f \n", x[0], x[1], x[2]); -#define N3F_F(x) printf ("n3f(x) %f %f %f \n", x[0], x[1], x[2]); -#define N3F_D(x) printf ("n3d(x) %f %f %f \n", x[0], x[1], x[2]); -#define C3F(x) printf ("c3f(x) %f %f %f \n", x[0], x[1], x[2]); - -#define POPMATRIX() printf ("popmatrix () \n"); -#define PUSHMATRIX() printf ("pushmatrix() \n"); -#define MULTMATRIX_F(x) MULTMATRIX_D(x) -#define LOADMATRIX_F(x) LOADMATRIX_D(x) - - -#define LOADMATRIX_D(x) { \ - int i, j; \ - printf ("loadmatrix (x) \n"); \ - for (i=0; i<4; i++) { \ - for (j=0; j<4; j++) { \ - printf ( "%f ", x[i][j]); \ - } \ - printf (" \n"); \ - } \ -} - -#define MULTMATRIX_D(x) { \ - int i, j; \ - printf ("multmatrix (x) \n"); \ - for (i=0; i<4; i++) { \ - for (j=0; j<4; j++) { \ - printf ( "%f ", x[i][j]); \ - } \ - printf (" \n"); \ - } \ -} - -#define __IS_LIGHTING_ON (1) - -#endif - -/* ====================================================== */ - -#ifdef GL_32 - -#include - -#define BGNTMESH(i,len) bgntmesh() -#define ENDTMESH() endtmesh() -#define BGNPOLYGON() bgnpolygon() -#define ENDPOLYGON() endpolygon() -#define V3F_F(x,j,id) v3f(x) -#define V3F_D(x,j,id) v3d(x) -#define N3F_F(x) n3f(x) -#define T2F_F(x,y) -#define T2F_D(x,y) -#define C3F(x) c3f(x) - -#define POPMATRIX() popmatrix () -#define PUSHMATRIX() pushmatrix() -#define MULTMATRIX_F(x) multmatrix (x) -#define LOADMATRIX_F(x) loadmatrix (x) - -#define N3F_D(x) { \ - float nnn[3]; \ - nnn[0] = (float) x[0]; \ - nnn[1] = (float) x[1]; \ - nnn[2] = (float) x[2]; \ - n3f (nnn); \ -} - -#define LOADMATRIX_D(x) { \ - int i, j; \ - float mmm[4][4]; \ - for (i=0; i<4; i++) { \ - for (j=0; j<4; j++) { \ - mmm[i][j] = (float) x[i][j]; \ - } \ - } \ - loadmatrix(mmm); \ -} - -#define MULTMATRIX_D(x) { \ - int i, j; \ - float mmm[4][4]; \ - for (i=0; i<4; i++) { \ - for (j=0; j<4; j++) { \ - mmm[i][j] = (float) x[i][j]; \ - } \ - } \ - multmatrix(mmm); \ -} - -/* #define __IS_LIGHTING_ON (MSINGLE == getmmode()) */ -#define __IS_LIGHTING_ON (extrusion_join_style & TUBE_LIGHTING_ON) - -#endif /* GL_32 */ - -/* ====================================================== */ -#ifdef OPENGL_10 - -#if defined(_WIN32) -#include -#pragma warning (disable:4244) /* disable bogus conversion warnings */ -#endif -#include -#include - -/* -#define N3F_F(x) { \ - float nnn[3]; \ - nnn[0] = - (float) x[0]; \ - nnn[1] = - (float) x[1]; \ - nnn[2] = - (float) x[2]; \ - glNormal3fv (nnn); \ -} -#define N3F_D(x) { \ - float nnn[3]; \ - nnn[0] = - (float) x[0]; \ - nnn[1] = - (float) x[1]; \ - nnn[2] = - (float) x[2]; \ - glNormal3fv (nnn); \ -} -*/ - -#define C3F(x) glColor3fv(x) -#define T2F_F(x,y) glTexCoord2f(x,y) -#define T2F_D(x,y) glTexCoord2d(x,y) - -#define POPMATRIX() glPopMatrix() -#define PUSHMATRIX() glPushMatrix() - -#define MULTMATRIX_F(x) glMultMatrixf ((const GLfloat *)x) -#define LOADMATRIX_F(x) glLoadMatrixf ((const GLfloat *)x) - -#define MULTMATRIX_D(x) glMultMatrixd ((const GLdouble *)x) -#define LOADMATRIX_D(x) glLoadMatrixd ((const GLdouble *)x) - -#define __IS_LIGHTING_ON (glIsEnabled(GL_LIGHTING)) - -/* ====================================================== */ -#ifdef AUTO_TEXTURE - -#define BGNTMESH(i,len) { \ - if(_gle_gc -> bgn_gen_texture) (*(_gle_gc -> bgn_gen_texture))(i,len);\ - glBegin (GL_TRIANGLE_STRIP); \ -} - -#define BGNPOLYGON() { \ - if(_gle_gc -> bgn_gen_texture) (*(_gle_gc -> bgn_gen_texture))();\ - glBegin (GL_POLYGON); \ -} - -#define N3F_F(x) { \ - if(_gle_gc -> n3f_gen_texture) (*(_gle_gc -> n3f_gen_texture))(x); \ - glNormal3fv(x); \ -} - -#define N3F_D(x) { \ - if(_gle_gc -> n3d_gen_texture) (*(_gle_gc -> n3d_gen_texture))(x); \ - glNormal3dv(x); \ -} - -#define V3F_F(x,j,id) { \ - if(_gle_gc -> v3f_gen_texture) (*(_gle_gc -> v3f_gen_texture))(x,j,id);\ - glVertex3fv(x); \ -} - -#define V3F_D(x,j,id) { \ - if(_gle_gc -> v3d_gen_texture) (*(_gle_gc -> v3d_gen_texture))(x,j,id); \ - glVertex3dv(x); \ -} - -#define ENDTMESH() { \ - if(_gle_gc -> end_gen_texture) (*(_gle_gc -> end_gen_texture))(); \ - glEnd (); \ -} - -#define ENDPOLYGON() { \ - if(_gle_gc -> end_gen_texture) (*(_gle_gc -> end_gen_texture))(); \ - glEnd (); \ -} - -/* ====================================================== */ -#else /* AUTO_TEXTURE */ - -#define BGNTMESH(i,len) glBegin (GL_TRIANGLE_STRIP); -#define BGNPOLYGON() glBegin (GL_POLYGON); - -#define N3F_F(x) glNormal3fv(x) -#define N3F_D(x) glNormal3dv(x) -#define V3F_F(x,j,id) glVertex3fv(x); -#define V3F_D(x,j,id) glVertex3dv(x); - -#define ENDTMESH() glEnd () -#define ENDPOLYGON() glEnd() - -#endif /* AUTO_TEXTURE */ - -#endif /* OPENGL_10 */ - -/* ====================================================== */ - - -#endif /* __GLE_PORT_H__ */ -/* ================== END OF FILE ======================= */ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/rot.h b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/rot.h deleted file mode 100755 index 91083e9..0000000 --- a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/rot.h +++ /dev/null @@ -1,98 +0,0 @@ - -/* - * rot.h - * - * FUNCTION: - * rotation matrix utilities - * - * HISTORY: - * Linas Vepstas Aug 1990 - */ - -/* ========================================================== */ -/* - * The MACROS below generate and return more traditional rotation - * matrices -- matrices for rotations about principal axes. - */ -/* ========================================================== */ - -#define ROTX_CS(m,cosine,sine) \ -{ \ - /* rotation about the x-axis */ \ - \ - m[0][0] = 1.0; \ - m[0][1] = 0.0; \ - m[0][2] = 0.0; \ - m[0][3] = 0.0; \ - \ - m[1][0] = 0.0; \ - m[1][1] = (cosine); \ - m[1][2] = (sine); \ - m[1][3] = 0.0; \ - \ - m[2][0] = 0.0; \ - m[2][1] = -(sine); \ - m[2][2] = (cosine); \ - m[2][3] = 0.0; \ - \ - m[3][0] = 0.0; \ - m[3][1] = 0.0; \ - m[3][2] = 0.0; \ - m[3][3] = 1.0; \ -} - -/* ========================================================== */ - -#define ROTY_CS(m,cosine,sine) \ -{ \ - /* rotation about the y-axis */ \ - \ - m[0][0] = (cosine); \ - m[0][1] = 0.0; \ - m[0][2] = -(sine); \ - m[0][3] = 0.0; \ - \ - m[1][0] = 0.0; \ - m[1][1] = 1.0; \ - m[1][2] = 0.0; \ - m[1][3] = 0.0; \ - \ - m[2][0] = (sine); \ - m[2][1] = 0.0; \ - m[2][2] = (cosine); \ - m[2][3] = 0.0; \ - \ - m[3][0] = 0.0; \ - m[3][1] = 0.0; \ - m[3][2] = 0.0; \ - m[3][3] = 1.0; \ -} - -/* ========================================================== */ - -#define ROTZ_CS(m,cosine,sine) \ -{ \ - /* rotation about the z-axis */ \ - \ - m[0][0] = (cosine); \ - m[0][1] = (sine); \ - m[0][2] = 0.0; \ - m[0][3] = 0.0; \ - \ - m[1][0] = -(sine); \ - m[1][1] = (cosine); \ - m[1][2] = 0.0; \ - m[1][3] = 0.0; \ - \ - m[2][0] = 0.0; \ - m[2][1] = 0.0; \ - m[2][2] = 1.0; \ - m[2][3] = 0.0; \ - \ - m[3][0] = 0.0; \ - m[3][1] = 0.0; \ - m[3][2] = 0.0; \ - m[3][3] = 1.0; \ -} - -/* ========================================================== */ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/segment.h b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/segment.h deleted file mode 100755 index 8d1cf04..0000000 --- a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/segment.h +++ /dev/null @@ -1,98 +0,0 @@ - -/* - * MODULE: segment.h - * - * FUNCTION: - * Contains function prototypes for segment drawing subroutines. - * These are used only internally, and are not to be exported to - * the user. - * - * HISTORY: - * Create by Linas Vepstas - * Added tube.h include to define gleDouble, tad February 2002 - */ - -/* ============================================================ */ - -#include "tube.h" - -extern void draw_segment_plain (int ncp, /* number of contour points */ - gleDouble front_contour[][3], - gleDouble back_contour[][3], - int inext, double len); - -extern void draw_segment_color (int ncp, /* number of contour points */ - gleDouble front_contour[][3], - gleDouble back_contour[][3], - float color_last[3], - float color_next[3], - int inext, double len); - -extern void draw_segment_edge_n (int ncp, /* number of contour points */ - gleDouble front_contour[][3], - gleDouble back_contour[][3], - double norm_cont[][3], - int inext, double len); - -extern void draw_segment_c_and_edge_n (int ncp, - gleDouble front_contour[][3], - gleDouble back_contour[][3], - double norm_cont[][3], - float color_last[3], - float color_next[3], - int inext, double len); - -extern void draw_segment_facet_n (int ncp, - gleDouble front_contour[][3], - gleDouble back_contour[][3], - double norm_cont[][3], - int inext, double len); - -extern void draw_segment_c_and_facet_n (int ncp, - gleDouble front_contour[][3], - gleDouble back_contour[][3], - double norm_cont[][3], - float color_last[3], - float color_next[3], - int inext, double len); - -/* ============================================================ */ - -extern void draw_binorm_segment_edge_n (int ncp, - double front_contour[][3], - double back_contour[][3], - double front_norm[][3], - double back_norm[][3], - int inext, double len); - -extern void draw_binorm_segment_c_and_edge_n (int ncp, - double front_contour[][3], - double back_contour[][3], - double front_norm[][3], - double back_norm[][3], - float color_last[3], - float color_next[3], - int inext, double len); - -extern void draw_binorm_segment_facet_n (int ncp, - double front_contour[][3], - double back_contour[][3], - double front_norm[][3], - double back_norm[][3], - int inext, double len); - -extern void draw_binorm_segment_c_and_facet_n (int ncp, - double front_contour[][3], - double back_contour[][3], - double front_norm[][3], - double back_norm[][3], - float color_last[3], - float color_next[3], - int inext, double len); - -extern void draw_angle_style_back_cap (int ncp, /* number of contour points */ - gleDouble bi[3], /* biscetor */ - gleDouble point_array[][3]); /* polyline */ - -/* -------------------------- end of file -------------------------------- */ - diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube.h b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube.h deleted file mode 100755 index c303e19..0000000 --- a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube.h +++ /dev/null @@ -1,203 +0,0 @@ -/* - * tube.h - * - * FUNCTION: - * Tubing and Extrusion header file. - * This file provides protypes and defines for the extrusion - * and tubing primitives. - * - * HISTORY: - * Linas Vepstas 1990, 1991 - */ - -#ifndef __TUBE_H__ -#define __TUBE_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -/** - GLE API revision history: - - GLE_API_VERSION is updated to reflect GLE API changes (interface - changes, semantic changes, deletions, or additions). - - GLE_API_VERSION=228 GLUT 3.7 release of GLE. -**/ -#ifndef GLE_API_VERSION /* allow this to be overriden */ -#define GLE_API_VERSION 228 -#endif - -/* some types */ -#ifndef gleDouble - #define gleDouble double -#endif -typedef gleDouble gleAffine[2][3]; - -/* ====================================================== */ - -/* defines for tubing join styles */ -#define TUBE_JN_RAW 0x1 -#define TUBE_JN_ANGLE 0x2 -#define TUBE_JN_CUT 0x3 -#define TUBE_JN_ROUND 0x4 -#define TUBE_JN_MASK 0xf /* mask bits */ -#define TUBE_JN_CAP 0x10 - -/* determine how normal vectors are to be handled */ -#define TUBE_NORM_FACET 0x100 -#define TUBE_NORM_EDGE 0x200 -#define TUBE_NORM_PATH_EDGE 0x400 /* for spiral, lathe, helix primitives */ -#define TUBE_NORM_MASK 0xf00 /* mask bits */ - -/* closed or open countours */ -#define TUBE_CONTOUR_CLOSED 0x1000 - -#define GLE_TEXTURE_ENABLE 0x10000 -#define GLE_TEXTURE_STYLE_MASK 0xff -#define GLE_TEXTURE_VERTEX_FLAT 1 -#define GLE_TEXTURE_NORMAL_FLAT 2 -#define GLE_TEXTURE_VERTEX_CYL 3 -#define GLE_TEXTURE_NORMAL_CYL 4 -#define GLE_TEXTURE_VERTEX_SPH 5 -#define GLE_TEXTURE_NORMAL_SPH 6 -#define GLE_TEXTURE_VERTEX_MODEL_FLAT 7 -#define GLE_TEXTURE_NORMAL_MODEL_FLAT 8 -#define GLE_TEXTURE_VERTEX_MODEL_CYL 9 -#define GLE_TEXTURE_NORMAL_MODEL_CYL 10 -#define GLE_TEXTURE_VERTEX_MODEL_SPH 11 -#define GLE_TEXTURE_NORMAL_MODEL_SPH 12 - -#ifdef GL_32 -/* HACK for GL 3.2 -- needed because no way to tell if lighting is on. */ -#define TUBE_LIGHTING_ON 0x80000000 - -#define gleExtrusion extrusion -#define gleSetJoinStyle setjoinstyle -#define gleGetJoinStyle getjoinstyle -#define glePolyCone polycone -#define glePolyCylinder polycylinder -#define gleSuperExtrusion super_extrusion -#define gleTwistExtrusion twist_extrusion -#define gleSpiral spiral -#define gleLathe lathe -#define gleHelicoid helicoid -#define gleToroid toroid -#define gleScrew screw - -#endif /* GL_32 */ - -extern int gleGetJoinStyle (void); -extern void gleSetJoinStyle (int style); /* bitwise OR of flags */ -extern int gleGetNumSlices(void); -extern void gleSetNumSlices(int slices); - -/* draw polyclinder, specified as a polyline */ -extern void glePolyCylinder (int npoints, /* num points in polyline */ - gleDouble point_array[][3], /* polyline vertces */ - float color_array[][3], /* colors at polyline verts */ - gleDouble radius); /* radius of polycylinder */ - -/* draw polycone, specified as a polyline with radii */ -extern void glePolyCone (int npoints, /* numpoints in poly-line */ - gleDouble point_array[][3], /* polyline vertices */ - float color_array[][3], /* colors at polyline verts */ - gleDouble radius_array[]); /* cone radii at polyline verts */ - -/* extrude arbitrary 2D contour along arbitrary 3D path */ -extern void gleExtrusion (int ncp, /* number of contour points */ - gleDouble contour[][2], /* 2D contour */ - gleDouble cont_normal[][2], /* 2D contour normals */ - gleDouble up[3], /* up vector for contour */ - int npoints, /* numpoints in poly-line */ - gleDouble point_array[][3], /* polyline vertices */ - float color_array[][3]); /* colors at polyline verts */ - -/* extrude 2D contour, specifying local rotations (twists) */ -extern void gleTwistExtrusion (int ncp, /* number of contour points */ - gleDouble contour[][2], /* 2D contour */ - gleDouble cont_normal[][2], /* 2D contour normals */ - gleDouble up[3], /* up vector for contour */ - int npoints, /* numpoints in poly-line */ - gleDouble point_array[][3], /* polyline vertices */ - float color_array[][3], /* color at polyline verts */ - gleDouble twist_array[]); /* countour twists (in degrees) */ - -/* extrude 2D contour, specifying local affine tranformations */ -extern void gleSuperExtrusion (int ncp, /* number of contour points */ - gleDouble contour[][2], /* 2D contour */ - gleDouble cont_normal[][2], /* 2D contour normals */ - gleDouble up[3], /* up vector for contour */ - int npoints, /* numpoints in poly-line */ - gleDouble point_array[][3], /* polyline vertices */ - float color_array[][3], /* color at polyline verts */ - gleDouble xform_array[][2][3]); /* 2D contour xforms */ - -/* spiral moves contour along helical path by parallel transport */ -extern void gleSpiral (int ncp, /* number of contour points */ - gleDouble contour[][2], /* 2D contour */ - gleDouble cont_normal[][2], /* 2D contour normals */ - gleDouble up[3], /* up vector for contour */ - gleDouble startRadius, /* spiral starts in x-y plane */ - gleDouble drdTheta, /* change in radius per revolution */ - gleDouble startZ, /* starting z value */ - gleDouble dzdTheta, /* change in Z per revolution */ - gleDouble startXform[2][3], /* starting contour affine xform */ - gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ - gleDouble startTheta, /* start angle in x-y plane */ - gleDouble sweepTheta); /* degrees to spiral around */ - -/* lathe moves contour along helical path by helically shearing 3D space */ -extern void gleLathe (int ncp, /* number of contour points */ - gleDouble contour[][2], /* 2D contour */ - gleDouble cont_normal[][2], /* 2D contour normals */ - gleDouble up[3], /* up vector for contour */ - gleDouble startRadius, /* spiral starts in x-y plane */ - gleDouble drdTheta, /* change in radius per revolution */ - gleDouble startZ, /* starting z value */ - gleDouble dzdTheta, /* change in Z per revolution */ - gleDouble startXform[2][3], /* starting contour affine xform */ - gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ - gleDouble startTheta, /* start angle in x-y plane */ - gleDouble sweepTheta); /* degrees to spiral around */ - -/* similar to spiral, except contour is a circle */ -extern void gleHelicoid (gleDouble rToroid, /* circle contour (torus) radius */ - gleDouble startRadius, /* spiral starts in x-y plane */ - gleDouble drdTheta, /* change in radius per revolution */ - gleDouble startZ, /* starting z value */ - gleDouble dzdTheta, /* change in Z per revolution */ - gleDouble startXform[2][3], /* starting contour affine xform */ - gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ - gleDouble startTheta, /* start angle in x-y plane */ - gleDouble sweepTheta); /* degrees to spiral around */ - -/* similar to lathe, except contour is a circle */ -extern void gleToroid (gleDouble rToroid, /* circle contour (torus) radius */ - gleDouble startRadius, /* spiral starts in x-y plane */ - gleDouble drdTheta, /* change in radius per revolution */ - gleDouble startZ, /* starting z value */ - gleDouble dzdTheta, /* change in Z per revolution */ - gleDouble startXform[2][3], /* starting contour affine xform */ - gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ - gleDouble startTheta, /* start angle in x-y plane */ - gleDouble sweepTheta); /* degrees to spiral around */ - -/* draws a screw shape */ -extern void gleScrew (int ncp, /* number of contour points */ - gleDouble contour[][2], /* 2D contour */ - gleDouble cont_normal[][2], /* 2D contour normals */ - gleDouble up[3], /* up vector for contour */ - gleDouble startz, /* start of segment */ - gleDouble endz, /* end of segment */ - gleDouble twist); /* number of rotations */ - -extern void gleTextureMode (int mode); - -#ifdef __cplusplus -} - -#endif -#endif /* __TUBE_H__ */ -/* ================== END OF FILE ======================= */ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube_gc.h b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube_gc.h deleted file mode 100755 index ccd2853..0000000 --- a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube_gc.h +++ /dev/null @@ -1,78 +0,0 @@ - -/* - * tube_gc.h - * - * FUNCTION: - * This file allows for easy changes to changes in the way the extrusion - * library handles state info (i.e. context). - * - * HISTORY: - * Linas Vepstas --- February 1993 - * Added auto texture coord generation hacks, Linas April 1994 - * Added tube.h include to define gleDouble, tad February 2002 - */ - -#include "tube.h" -#include "port.h" /* for gleVector */ - -typedef float gleColor[3]; -typedef double gleTwoVec[2]; - -typedef struct { - - /* public methods */ - void (*bgn_gen_texture) (int, double); - void (*n3f_gen_texture) (float *); - void (*n3d_gen_texture) (double *); - void (*v3f_gen_texture) (float *, int, int); - void (*v3d_gen_texture) (double *, int, int); - void (*end_gen_texture) (void); - - /* protected members -- "general knowledge" stuff */ - int join_style; - - /* arguments passed into extrusion code */ - int ncp; /* number of contour points */ - gleTwoVec *contour; /* 2D contour */ - gleTwoVec *cont_normal; /* 2D contour normals */ - gleDouble *up; /* up vector */ - int npoints; /* number of points in polyline */ - gleVector *point_array; /* path */ - gleColor *color_array; /* path colors */ - gleAffine *xform_array; /* contour xforms */ - - /* private members, used by texturing code */ - int num_vert; - int segment_number; - double segment_length; - double accum_seg_len; - double prev_x; - double prev_y; - - void (*save_bgn_gen_texture) (int, double); - void (*save_n3f_gen_texture) (float *); - void (*save_n3d_gen_texture) (double *); - void (*save_v3f_gen_texture) (float *, int, int); - void (*save_v3d_gen_texture) (double *, int, int); - void (*save_end_gen_texture) (void); - -} gleGC; - -extern gleGC *_gle_gc; -extern gleGC * gleCreateGC (void); - -#define INIT_GC() {if (!_gle_gc) _gle_gc = gleCreateGC(); } -#define extrusion_join_style (_gle_gc->join_style) - -#define __TUBE_CLOSE_CONTOUR (extrusion_join_style & TUBE_CONTOUR_CLOSED) -#define __TUBE_DRAW_CAP (extrusion_join_style & TUBE_JN_CAP) -#define __TUBE_DRAW_FACET_NORMALS (extrusion_join_style & TUBE_NORM_FACET) -#define __TUBE_DRAW_PATH_EDGE_NORMALS (extrusion_join_style & TUBE_NORM_PATH_EDGE) - -#define __TUBE_STYLE (extrusion_join_style & TUBE_JN_MASK) -#define __TUBE_RAW_JOIN (extrusion_join_style & TUBE_JN_RAW) -#define __TUBE_CUT_JOIN (extrusion_join_style & TUBE_JN_CUT) -#define __TUBE_ANGLE_JOIN (extrusion_join_style & TUBE_JN_ANGLE) -#define __TUBE_ROUND_JOIN (extrusion_join_style & TUBE_JN_ROUND) - -/* ======================= END OF FILE ========================== */ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/vvector.h b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/vvector.h deleted file mode 100755 index b58dcd6..0000000 --- a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/vvector.h +++ /dev/null @@ -1,1339 +0,0 @@ - -/* - * vvector.h - * - * FUNCTION: - * This file contains a number of utilities useful for handling - * 3D vectors - * - * HISTORY: - * Written by Linas Vepstas, August 1991 - * Added 2D code, March 1993 - * Added Outer products, C++ proofed, Linas Vepstas October 1993 - */ - -#ifndef __GUTIL_VECTOR_H__ -#define __GUTIL_VECTOR_H__ - -#if defined(__cplusplus) || defined(c_plusplus) -extern "C" { -#endif - - -#include -#include "port.h" - -/* ========================================================== */ -/* Zero out a 2D vector */ - -#define VEC_ZERO_2(a) \ -{ \ - (a)[0] = (a)[1] = 0.0; \ -} - -/* ========================================================== */ -/* Zero out a 3D vector */ - -#define VEC_ZERO(a) \ -{ \ - (a)[0] = (a)[1] = (a)[2] = 0.0; \ -} - -/* ========================================================== */ -/* Zero out a 4D vector */ - -#define VEC_ZERO_4(a) \ -{ \ - (a)[0] = (a)[1] = (a)[2] = (a)[3] = 0.0; \ -} - -/* ========================================================== */ -/* Vector copy */ - -#define VEC_COPY_2(b,a) \ -{ \ - (b)[0] = (a)[0]; \ - (b)[1] = (a)[1]; \ -} - -/* ========================================================== */ -/* Copy 3D vector */ - -#define VEC_COPY(b,a) \ -{ \ - (b)[0] = (a)[0]; \ - (b)[1] = (a)[1]; \ - (b)[2] = (a)[2]; \ -} - -/* ========================================================== */ -/* Copy 4D vector */ - -#define VEC_COPY_4(b,a) \ -{ \ - (b)[0] = (a)[0]; \ - (b)[1] = (a)[1]; \ - (b)[2] = (a)[2]; \ - (b)[3] = (a)[3]; \ -} - -/* ========================================================== */ -/* Vector difference */ - -#define VEC_DIFF_2(v21,v2,v1) \ -{ \ - (v21)[0] = (v2)[0] - (v1)[0]; \ - (v21)[1] = (v2)[1] - (v1)[1]; \ -} - -/* ========================================================== */ -/* Vector difference */ - -#define VEC_DIFF(v21,v2,v1) \ -{ \ - (v21)[0] = (v2)[0] - (v1)[0]; \ - (v21)[1] = (v2)[1] - (v1)[1]; \ - (v21)[2] = (v2)[2] - (v1)[2]; \ -} - -/* ========================================================== */ -/* Vector difference */ - -#define VEC_DIFF_4(v21,v2,v1) \ -{ \ - (v21)[0] = (v2)[0] - (v1)[0]; \ - (v21)[1] = (v2)[1] - (v1)[1]; \ - (v21)[2] = (v2)[2] - (v1)[2]; \ - (v21)[3] = (v2)[3] - (v1)[3]; \ -} - -/* ========================================================== */ -/* Vector sum */ - -#define VEC_SUM_2(v21,v2,v1) \ -{ \ - (v21)[0] = (v2)[0] + (v1)[0]; \ - (v21)[1] = (v2)[1] + (v1)[1]; \ -} - -/* ========================================================== */ -/* Vector sum */ - -#define VEC_SUM(v21,v2,v1) \ -{ \ - (v21)[0] = (v2)[0] + (v1)[0]; \ - (v21)[1] = (v2)[1] + (v1)[1]; \ - (v21)[2] = (v2)[2] + (v1)[2]; \ -} - -/* ========================================================== */ -/* Vector sum */ - -#define VEC_SUM_4(v21,v2,v1) \ -{ \ - (v21)[0] = (v2)[0] + (v1)[0]; \ - (v21)[1] = (v2)[1] + (v1)[1]; \ - (v21)[2] = (v2)[2] + (v1)[2]; \ - (v21)[3] = (v2)[3] + (v1)[3]; \ -} - -/* ========================================================== */ -/* scalar times vector */ - -#define VEC_SCALE_2(c,a,b) \ -{ \ - (c)[0] = (a)*(b)[0]; \ - (c)[1] = (a)*(b)[1]; \ -} - -/* ========================================================== */ -/* scalar times vector */ - -#define VEC_SCALE(c,a,b) \ -{ \ - (c)[0] = (a)*(b)[0]; \ - (c)[1] = (a)*(b)[1]; \ - (c)[2] = (a)*(b)[2]; \ -} - -/* ========================================================== */ -/* scalar times vector */ - -#define VEC_SCALE_4(c,a,b) \ -{ \ - (c)[0] = (a)*(b)[0]; \ - (c)[1] = (a)*(b)[1]; \ - (c)[2] = (a)*(b)[2]; \ - (c)[3] = (a)*(b)[3]; \ -} - -/* ========================================================== */ -/* accumulate scaled vector */ - -#define VEC_ACCUM_2(c,a,b) \ -{ \ - (c)[0] += (a)*(b)[0]; \ - (c)[1] += (a)*(b)[1]; \ -} - -/* ========================================================== */ -/* accumulate scaled vector */ - -#define VEC_ACCUM(c,a,b) \ -{ \ - (c)[0] += (a)*(b)[0]; \ - (c)[1] += (a)*(b)[1]; \ - (c)[2] += (a)*(b)[2]; \ -} - -/* ========================================================== */ -/* accumulate scaled vector */ - -#define VEC_ACCUM_4(c,a,b) \ -{ \ - (c)[0] += (a)*(b)[0]; \ - (c)[1] += (a)*(b)[1]; \ - (c)[2] += (a)*(b)[2]; \ - (c)[3] += (a)*(b)[3]; \ -} - -/* ========================================================== */ -/* Vector dot product */ - -#define VEC_DOT_PRODUCT_2(c,a,b) \ -{ \ - c = (a)[0]*(b)[0] + (a)[1]*(b)[1]; \ -} - -/* ========================================================== */ -/* Vector dot product */ - -#define VEC_DOT_PRODUCT(c,a,b) \ -{ \ - c = (a)[0]*(b)[0] + (a)[1]*(b)[1] + (a)[2]*(b)[2]; \ -} - -/* ========================================================== */ -/* Vector dot product */ - -#define VEC_DOT_PRODUCT_4(c,a,b) \ -{ \ - c = (a)[0]*(b)[0] + (a)[1]*(b)[1] + (a)[2]*(b)[2] + (a)[3]*(b)[3] ; \ -} - -/* ========================================================== */ -/* vector impact parameter (squared) */ - -#define VEC_IMPACT_SQ(bsq,direction,position) \ -{ \ - gleDouble vlen, llel; \ - VEC_DOT_PRODUCT (vlen, position, position); \ - VEC_DOT_PRODUCT (llel, direction, position); \ - bsq = vlen - llel*llel; \ -} - -/* ========================================================== */ -/* vector impact parameter */ - -#define VEC_IMPACT(bsq,direction,position) \ -{ \ - VEC_IMPACT_SQ(bsq,direction,position); \ - bsq = sqrt (bsq); \ -} - -/* ========================================================== */ -/* Vector length */ - -#define VEC_LENGTH_2(vlen,a) \ -{ \ - vlen = a[0]*a[0] + a[1]*a[1]; \ - vlen = sqrt (vlen); \ -} - -/* ========================================================== */ -/* Vector length */ - -#define VEC_LENGTH(vlen,a) \ -{ \ - vlen = (a)[0]*(a)[0] + (a)[1]*(a)[1]; \ - vlen += (a)[2]*(a)[2]; \ - vlen = sqrt (vlen); \ -} - -/* ========================================================== */ -/* Vector length */ - -#define VEC_LENGTH_4(vlen,a) \ -{ \ - vlen = (a)[0]*(a)[0] + (a)[1]*(a)[1]; \ - vlen += (a)[2]*(a)[2]; \ - vlen += (a)[3] * (a)[3]; \ - vlen = sqrt (vlen); \ -} - -/* ========================================================== */ -/* distance between two points */ - -#define VEC_DISTANCE(vlen,va,vb) \ -{ \ - gleDouble tmp[4]; \ - VEC_DIFF (tmp, vb, va); \ - VEC_LENGTH (vlen, tmp); \ -} - -/* ========================================================== */ -/* Vector length */ - -#define VEC_CONJUGATE_LENGTH(vlen,a) \ -{ \ - vlen = 1.0 - a[0]*a[0] - a[1]*a[1] - a[2]*a[2];\ - vlen = sqrt (vlen); \ -} - -/* ========================================================== */ -/* Vector length */ - -#define VEC_NORMALIZE(a) \ -{ \ - double vlen; \ - VEC_LENGTH (vlen,a); \ - if (vlen != 0.0) { \ - vlen = 1.0 / vlen; \ - a[0] *= vlen; \ - a[1] *= vlen; \ - a[2] *= vlen; \ - } \ -} - -/* ========================================================== */ -/* Vector length */ - -#define VEC_RENORMALIZE(a,newlen) \ -{ \ - double vlen; \ - VEC_LENGTH (vlen,a); \ - if (vlen != 0.0) { \ - vlen = newlen / vlen; \ - a[0] *= vlen; \ - a[1] *= vlen; \ - a[2] *= vlen; \ - } \ -} - -/* ========================================================== */ -/* 3D Vector cross product yeilding vector */ - -#define VEC_CROSS_PRODUCT(c,a,b) \ -{ \ - c[0] = (a)[1] * (b)[2] - (a)[2] * (b)[1]; \ - c[1] = (a)[2] * (b)[0] - (a)[0] * (b)[2]; \ - c[2] = (a)[0] * (b)[1] - (a)[1] * (b)[0]; \ -} - -/* ========================================================== */ -/* Vector perp -- assumes that n is of unit length - * accepts vector v, subtracts out any component parallel to n */ - -#define VEC_PERP(vp,v,n) \ -{ \ - double vdot; \ - \ - VEC_DOT_PRODUCT (vdot, v, n); \ - vp[0] = (v)[0] - (vdot) * (n)[0]; \ - vp[1] = (v)[1] - (vdot) * (n)[1]; \ - vp[2] = (v)[2] - (vdot) * (n)[2]; \ -} - -/* ========================================================== */ -/* Vector parallel -- assumes that n is of unit length - * accepts vector v, subtracts out any component perpendicular to n */ - -#define VEC_PARALLEL(vp,v,n) \ -{ \ - double vdot; \ - \ - VEC_DOT_PRODUCT (vdot, v, n); \ - vp[0] = (vdot) * (n)[0]; \ - vp[1] = (vdot) * (n)[1]; \ - vp[2] = (vdot) * (n)[2]; \ -} - -/* ========================================================== */ -/* Vector reflection -- assumes n is of unit length */ -/* Takes vector v, reflects it against reflector n, and returns vr */ - -#define VEC_REFLECT(vr,v,n) \ -{ \ - double vdot; \ - \ - VEC_DOT_PRODUCT (vdot, v, n); \ - vr[0] = (v)[0] - 2.0 * (vdot) * (n)[0]; \ - vr[1] = (v)[1] - 2.0 * (vdot) * (n)[1]; \ - vr[2] = (v)[2] - 2.0 * (vdot) * (n)[2]; \ -} - -/* ========================================================== */ -/* Vector blending */ -/* Takes two vectors a, b, blends them together */ - -#define VEC_BLEND(vr,sa,a,sb,b) \ -{ \ - \ - vr[0] = (sa) * (a)[0] + (sb) * (b)[0]; \ - vr[1] = (sa) * (a)[1] + (sb) * (b)[1]; \ - vr[2] = (sa) * (a)[2] + (sb) * (b)[2]; \ -} - -/* ========================================================== */ -/* Vector print */ - -#define VEC_PRINT_2(a) \ -{ \ - double vlen; \ - VEC_LENGTH_2 (vlen, a); \ - printf (" a is %f %f length of a is %f \n", a[0], a[1], vlen); \ -} - -/* ========================================================== */ -/* Vector print */ - -#define VEC_PRINT(a) \ -{ \ - double vlen; \ - VEC_LENGTH (vlen, (a)); \ - printf (" a is %f %f %f length of a is %f \n", (a)[0], (a)[1], (a)[2], vlen); \ -} - -/* ========================================================== */ -/* Vector print */ - -#define VEC_PRINT_4(a) \ -{ \ - double vlen; \ - VEC_LENGTH_4 (vlen, (a)); \ - printf (" a is %f %f %f %f length of a is %f \n", \ - (a)[0], (a)[1], (a)[2], (a)[3], vlen); \ -} - -/* ========================================================== */ -/* print matrix */ - -#define MAT_PRINT_4X4(mmm) { \ - int i,j; \ - printf ("matrix mmm is \n"); \ - if (mmm == NULL) { \ - printf (" Null \n"); \ - } else { \ - for (i=0; i<4; i++) { \ - for (j=0; j<4; j++) { \ - printf ("%f ", mmm[i][j]); \ - } \ - printf (" \n"); \ - } \ - } \ -} - -/* ========================================================== */ -/* print matrix */ - -#define MAT_PRINT_3X3(mmm) { \ - int i,j; \ - printf ("matrix mmm is \n"); \ - if (mmm == NULL) { \ - printf (" Null \n"); \ - } else { \ - for (i=0; i<3; i++) { \ - for (j=0; j<3; j++) { \ - printf ("%f ", mmm[i][j]); \ - } \ - printf (" \n"); \ - } \ - } \ -} - -/* ========================================================== */ -/* print matrix */ - -#define MAT_PRINT_2X3(mmm) { \ - int i,j; \ - printf ("matrix mmm is \n"); \ - if (mmm == NULL) { \ - printf (" Null \n"); \ - } else { \ - for (i=0; i<2; i++) { \ - for (j=0; j<3; j++) { \ - printf ("%f ", mmm[i][j]); \ - } \ - printf (" \n"); \ - } \ - } \ -} - -/* ========================================================== */ -/* initialize matrix */ - -#define IDENTIFY_MATRIX_3X3(m) \ -{ \ - m[0][0] = 1.0; \ - m[0][1] = 0.0; \ - m[0][2] = 0.0; \ - \ - m[1][0] = 0.0; \ - m[1][1] = 1.0; \ - m[1][2] = 0.0; \ - \ - m[2][0] = 0.0; \ - m[2][1] = 0.0; \ - m[2][2] = 1.0; \ -} - -/* ========================================================== */ -/* initialize matrix */ - -#define IDENTIFY_MATRIX_4X4(m) \ -{ \ - m[0][0] = 1.0; \ - m[0][1] = 0.0; \ - m[0][2] = 0.0; \ - m[0][3] = 0.0; \ - \ - m[1][0] = 0.0; \ - m[1][1] = 1.0; \ - m[1][2] = 0.0; \ - m[1][3] = 0.0; \ - \ - m[2][0] = 0.0; \ - m[2][1] = 0.0; \ - m[2][2] = 1.0; \ - m[2][3] = 0.0; \ - \ - m[3][0] = 0.0; \ - m[3][1] = 0.0; \ - m[3][2] = 0.0; \ - m[3][3] = 1.0; \ -} - -/* ========================================================== */ -/* matrix copy */ - -#define COPY_MATRIX_2X2(b,a) \ -{ \ - b[0][0] = a[0][0]; \ - b[0][1] = a[0][1]; \ - \ - b[1][0] = a[1][0]; \ - b[1][1] = a[1][1]; \ - \ -} - -/* ========================================================== */ -/* matrix copy */ - -#define COPY_MATRIX_2X3(b,a) \ -{ \ - b[0][0] = a[0][0]; \ - b[0][1] = a[0][1]; \ - b[0][2] = a[0][2]; \ - \ - b[1][0] = a[1][0]; \ - b[1][1] = a[1][1]; \ - b[1][2] = a[1][2]; \ -} - -/* ========================================================== */ -/* matrix copy */ - -#define COPY_MATRIX_3X3(b,a) \ -{ \ - b[0][0] = a[0][0]; \ - b[0][1] = a[0][1]; \ - b[0][2] = a[0][2]; \ - \ - b[1][0] = a[1][0]; \ - b[1][1] = a[1][1]; \ - b[1][2] = a[1][2]; \ - \ - b[2][0] = a[2][0]; \ - b[2][1] = a[2][1]; \ - b[2][2] = a[2][2]; \ -} - -/* ========================================================== */ -/* matrix copy */ - -#define COPY_MATRIX_4X4(b,a) \ -{ \ - b[0][0] = a[0][0]; \ - b[0][1] = a[0][1]; \ - b[0][2] = a[0][2]; \ - b[0][3] = a[0][3]; \ - \ - b[1][0] = a[1][0]; \ - b[1][1] = a[1][1]; \ - b[1][2] = a[1][2]; \ - b[1][3] = a[1][3]; \ - \ - b[2][0] = a[2][0]; \ - b[2][1] = a[2][1]; \ - b[2][2] = a[2][2]; \ - b[2][3] = a[2][3]; \ - \ - b[3][0] = a[3][0]; \ - b[3][1] = a[3][1]; \ - b[3][2] = a[3][2]; \ - b[3][3] = a[3][3]; \ -} - -/* ========================================================== */ -/* matrix transpose */ - -#define TRANSPOSE_MATRIX_2X2(b,a) \ -{ \ - b[0][0] = a[0][0]; \ - b[0][1] = a[1][0]; \ - \ - b[1][0] = a[0][1]; \ - b[1][1] = a[1][1]; \ -} - -/* ========================================================== */ -/* matrix transpose */ - -#define TRANSPOSE_MATRIX_3X3(b,a) \ -{ \ - b[0][0] = a[0][0]; \ - b[0][1] = a[1][0]; \ - b[0][2] = a[2][0]; \ - \ - b[1][0] = a[0][1]; \ - b[1][1] = a[1][1]; \ - b[1][2] = a[2][1]; \ - \ - b[2][0] = a[0][2]; \ - b[2][1] = a[1][2]; \ - b[2][2] = a[2][2]; \ -} - -/* ========================================================== */ -/* matrix transpose */ - -#define TRANSPOSE_MATRIX_4X4(b,a) \ -{ \ - b[0][0] = a[0][0]; \ - b[0][1] = a[1][0]; \ - b[0][2] = a[2][0]; \ - b[0][3] = a[3][0]; \ - \ - b[1][0] = a[0][1]; \ - b[1][1] = a[1][1]; \ - b[1][2] = a[2][1]; \ - b[1][3] = a[3][1]; \ - \ - b[2][0] = a[0][2]; \ - b[2][1] = a[1][2]; \ - b[2][2] = a[2][2]; \ - b[2][3] = a[3][2]; \ - \ - b[3][0] = a[0][3]; \ - b[3][1] = a[1][3]; \ - b[3][2] = a[2][3]; \ - b[3][3] = a[3][3]; \ -} - -/* ========================================================== */ -/* multiply matrix by scalar */ - -#define SCALE_MATRIX_2X2(b,s,a) \ -{ \ - b[0][0] = (s) * a[0][0]; \ - b[0][1] = (s) * a[0][1]; \ - \ - b[1][0] = (s) * a[1][0]; \ - b[1][1] = (s) * a[1][1]; \ -} - -/* ========================================================== */ -/* multiply matrix by scalar */ - -#define SCALE_MATRIX_3X3(b,s,a) \ -{ \ - b[0][0] = (s) * a[0][0]; \ - b[0][1] = (s) * a[0][1]; \ - b[0][2] = (s) * a[0][2]; \ - \ - b[1][0] = (s) * a[1][0]; \ - b[1][1] = (s) * a[1][1]; \ - b[1][2] = (s) * a[1][2]; \ - \ - b[2][0] = (s) * a[2][0]; \ - b[2][1] = (s) * a[2][1]; \ - b[2][2] = (s) * a[2][2]; \ -} - -/* ========================================================== */ -/* multiply matrix by scalar */ - -#define SCALE_MATRIX_4X4(b,s,a) \ -{ \ - b[0][0] = (s) * a[0][0]; \ - b[0][1] = (s) * a[0][1]; \ - b[0][2] = (s) * a[0][2]; \ - b[0][3] = (s) * a[0][3]; \ - \ - b[1][0] = (s) * a[1][0]; \ - b[1][1] = (s) * a[1][1]; \ - b[1][2] = (s) * a[1][2]; \ - b[1][3] = (s) * a[1][3]; \ - \ - b[2][0] = (s) * a[2][0]; \ - b[2][1] = (s) * a[2][1]; \ - b[2][2] = (s) * a[2][2]; \ - b[2][3] = (s) * a[2][3]; \ - \ - b[3][0] = s * a[3][0]; \ - b[3][1] = s * a[3][1]; \ - b[3][2] = s * a[3][2]; \ - b[3][3] = s * a[3][3]; \ -} - -/* ========================================================== */ -/* multiply matrix by scalar */ - -#define ACCUM_SCALE_MATRIX_2X2(b,s,a) \ -{ \ - b[0][0] += (s) * a[0][0]; \ - b[0][1] += (s) * a[0][1]; \ - \ - b[1][0] += (s) * a[1][0]; \ - b[1][1] += (s) * a[1][1]; \ -} - -/* +========================================================== */ -/* multiply matrix by scalar */ - -#define ACCUM_SCALE_MATRIX_3X3(b,s,a) \ -{ \ - b[0][0] += (s) * a[0][0]; \ - b[0][1] += (s) * a[0][1]; \ - b[0][2] += (s) * a[0][2]; \ - \ - b[1][0] += (s) * a[1][0]; \ - b[1][1] += (s) * a[1][1]; \ - b[1][2] += (s) * a[1][2]; \ - \ - b[2][0] += (s) * a[2][0]; \ - b[2][1] += (s) * a[2][1]; \ - b[2][2] += (s) * a[2][2]; \ -} - -/* +========================================================== */ -/* multiply matrix by scalar */ - -#define ACCUM_SCALE_MATRIX_4X4(b,s,a) \ -{ \ - b[0][0] += (s) * a[0][0]; \ - b[0][1] += (s) * a[0][1]; \ - b[0][2] += (s) * a[0][2]; \ - b[0][3] += (s) * a[0][3]; \ - \ - b[1][0] += (s) * a[1][0]; \ - b[1][1] += (s) * a[1][1]; \ - b[1][2] += (s) * a[1][2]; \ - b[1][3] += (s) * a[1][3]; \ - \ - b[2][0] += (s) * a[2][0]; \ - b[2][1] += (s) * a[2][1]; \ - b[2][2] += (s) * a[2][2]; \ - b[2][3] += (s) * a[2][3]; \ - \ - b[3][0] += (s) * a[3][0]; \ - b[3][1] += (s) * a[3][1]; \ - b[3][2] += (s) * a[3][2]; \ - b[3][3] += (s) * a[3][3]; \ -} - -/* +========================================================== */ -/* matrix product */ -/* c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/ - -#define MATRIX_PRODUCT_2X2(c,a,b) \ -{ \ - c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]; \ - c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]; \ - \ - c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]; \ - c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]; \ - \ -} - -/* ========================================================== */ -/* matrix product */ -/* c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/ - -#define MATRIX_PRODUCT_3X3(c,a,b) \ -{ \ - c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]+a[0][2]*b[2][0]; \ - c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]+a[0][2]*b[2][1]; \ - c[0][2] = a[0][0]*b[0][2]+a[0][1]*b[1][2]+a[0][2]*b[2][2]; \ - \ - c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]+a[1][2]*b[2][0]; \ - c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]+a[1][2]*b[2][1]; \ - c[1][2] = a[1][0]*b[0][2]+a[1][1]*b[1][2]+a[1][2]*b[2][2]; \ - \ - c[2][0] = a[2][0]*b[0][0]+a[2][1]*b[1][0]+a[2][2]*b[2][0]; \ - c[2][1] = a[2][0]*b[0][1]+a[2][1]*b[1][1]+a[2][2]*b[2][1]; \ - c[2][2] = a[2][0]*b[0][2]+a[2][1]*b[1][2]+a[2][2]*b[2][2]; \ -} - -/* ========================================================== */ -/* matrix product */ -/* c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/ - -#define MATRIX_PRODUCT_4X4(c,a,b) \ -{ \ - c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]+a[0][2]*b[2][0]+a[0][3]*b[3][0];\ - c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]+a[0][2]*b[2][1]+a[0][3]*b[3][1];\ - c[0][2] = a[0][0]*b[0][2]+a[0][1]*b[1][2]+a[0][2]*b[2][2]+a[0][3]*b[3][2];\ - c[0][3] = a[0][0]*b[0][3]+a[0][1]*b[1][3]+a[0][2]*b[2][3]+a[0][3]*b[3][3];\ - \ - c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]+a[1][2]*b[2][0]+a[1][3]*b[3][0];\ - c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]+a[1][2]*b[2][1]+a[1][3]*b[3][1];\ - c[1][2] = a[1][0]*b[0][2]+a[1][1]*b[1][2]+a[1][2]*b[2][2]+a[1][3]*b[3][2];\ - c[1][3] = a[1][0]*b[0][3]+a[1][1]*b[1][3]+a[1][2]*b[2][3]+a[1][3]*b[3][3];\ - \ - c[2][0] = a[2][0]*b[0][0]+a[2][1]*b[1][0]+a[2][2]*b[2][0]+a[2][3]*b[3][0];\ - c[2][1] = a[2][0]*b[0][1]+a[2][1]*b[1][1]+a[2][2]*b[2][1]+a[2][3]*b[3][1];\ - c[2][2] = a[2][0]*b[0][2]+a[2][1]*b[1][2]+a[2][2]*b[2][2]+a[2][3]*b[3][2];\ - c[2][3] = a[2][0]*b[0][3]+a[2][1]*b[1][3]+a[2][2]*b[2][3]+a[2][3]*b[3][3];\ - \ - c[3][0] = a[3][0]*b[0][0]+a[3][1]*b[1][0]+a[3][2]*b[2][0]+a[3][3]*b[3][0];\ - c[3][1] = a[3][0]*b[0][1]+a[3][1]*b[1][1]+a[3][2]*b[2][1]+a[3][3]*b[3][1];\ - c[3][2] = a[3][0]*b[0][2]+a[3][1]*b[1][2]+a[3][2]*b[2][2]+a[3][3]*b[3][2];\ - c[3][3] = a[3][0]*b[0][3]+a[3][1]*b[1][3]+a[3][2]*b[2][3]+a[3][3]*b[3][3];\ -} - -/* ========================================================== */ -/* matrix times vector */ - -#define MAT_DOT_VEC_2X2(p,m,v) \ -{ \ - p[0] = m[0][0]*v[0] + m[0][1]*v[1]; \ - p[1] = m[1][0]*v[0] + m[1][1]*v[1]; \ -} - -/* ========================================================== */ -/* matrix times vector */ - -#define MAT_DOT_VEC_3X3(p,m,v) \ -{ \ - p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]*v[2]; \ - p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]*v[2]; \ - p[2] = m[2][0]*v[0] + m[2][1]*v[1] + m[2][2]*v[2]; \ -} - -/* ========================================================== */ -/* matrix times vector */ - -#define MAT_DOT_VEC_4X4(p,m,v) \ -{ \ - p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]*v[2] + m[0][3]*v[3]; \ - p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]*v[2] + m[1][3]*v[3]; \ - p[2] = m[2][0]*v[0] + m[2][1]*v[1] + m[2][2]*v[2] + m[2][3]*v[3]; \ - p[3] = m[3][0]*v[0] + m[3][1]*v[1] + m[3][2]*v[2] + m[3][3]*v[3]; \ -} - -/* ========================================================== */ -/* vector transpose times matrix */ -/* p[j] = v[0]*m[0][j] + v[1]*m[1][j] + v[2]*m[2][j]; */ - -#define VEC_DOT_MAT_3X3(p,v,m) \ -{ \ - p[0] = v[0]*m[0][0] + v[1]*m[1][0] + v[2]*m[2][0]; \ - p[1] = v[0]*m[0][1] + v[1]*m[1][1] + v[2]*m[2][1]; \ - p[2] = v[0]*m[0][2] + v[1]*m[1][2] + v[2]*m[2][2]; \ -} - -/* ========================================================== */ -/* affine matrix times vector */ -/* The matrix is assumed to be an affine matrix, with last two - * entries representing a translation */ - -#define MAT_DOT_VEC_2X3(p,m,v) \ -{ \ - p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]; \ - p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]; \ -} - -/* ========================================================== */ -/* inverse transpose of matrix times vector - * - * This macro computes inverse transpose of matrix m, - * and multiplies vector v into it, to yeild vector p - * - * DANGER !!! Do Not use this on normal vectors!!! - * It will leave normals the wrong length !!! - * See macro below for use on normals. - */ - -#define INV_TRANSP_MAT_DOT_VEC_2X2(p,m,v) \ -{ \ - gleDouble det; \ - \ - det = m[0][0]*m[1][1] - m[0][1]*m[1][0]; \ - p[0] = m[1][1]*v[0] - m[1][0]*v[1]; \ - p[1] = - m[0][1]*v[0] + m[0][0]*v[1]; \ - \ - /* if matrix not singular, and not orthonormal, then renormalize */ \ - if ((det!=1.0) && (det != 0.0)) { \ - det = 1.0 / det; \ - p[0] *= det; \ - p[1] *= det; \ - } \ -} - -/* ========================================================== */ -/* transform normal vector by inverse transpose of matrix - * and then renormalize the vector - * - * This macro computes inverse transpose of matrix m, - * and multiplies vector v into it, to yeild vector p - * Vector p is then normalized. - */ - - -#define NORM_XFORM_2X2(p,m,v) \ -{ \ - double mlen; \ - \ - /* do nothing if off-diagonals are zero and diagonals are \ - * equal */ \ - if ((m[0][1] != 0.0) || (m[1][0] != 0.0) || (m[0][0] != m[1][1])) { \ - p[0] = m[1][1]*v[0] - m[1][0]*v[1]; \ - p[1] = - m[0][1]*v[0] + m[0][0]*v[1]; \ - \ - mlen = p[0]*p[0] + p[1]*p[1]; \ - mlen = 1.0 / sqrt (mlen); \ - p[0] *= mlen; \ - p[1] *= mlen; \ - } else { \ - VEC_COPY_2 (p, v); \ - } \ -} - -/* ========================================================== */ -/* outer product of vector times vector transpose - * - * The outer product of vector v and vector transpose t yeilds - * dyadic matrix m. - */ - -#define OUTER_PRODUCT_2X2(m,v,t) \ -{ \ - m[0][0] = v[0] * t[0]; \ - m[0][1] = v[0] * t[1]; \ - \ - m[1][0] = v[1] * t[0]; \ - m[1][1] = v[1] * t[1]; \ -} - -/* ========================================================== */ -/* outer product of vector times vector transpose - * - * The outer product of vector v and vector transpose t yeilds - * dyadic matrix m. - */ - -#define OUTER_PRODUCT_3X3(m,v,t) \ -{ \ - m[0][0] = v[0] * t[0]; \ - m[0][1] = v[0] * t[1]; \ - m[0][2] = v[0] * t[2]; \ - \ - m[1][0] = v[1] * t[0]; \ - m[1][1] = v[1] * t[1]; \ - m[1][2] = v[1] * t[2]; \ - \ - m[2][0] = v[2] * t[0]; \ - m[2][1] = v[2] * t[1]; \ - m[2][2] = v[2] * t[2]; \ -} - -/* ========================================================== */ -/* outer product of vector times vector transpose - * - * The outer product of vector v and vector transpose t yeilds - * dyadic matrix m. - */ - -#define OUTER_PRODUCT_4X4(m,v,t) \ -{ \ - m[0][0] = v[0] * t[0]; \ - m[0][1] = v[0] * t[1]; \ - m[0][2] = v[0] * t[2]; \ - m[0][3] = v[0] * t[3]; \ - \ - m[1][0] = v[1] * t[0]; \ - m[1][1] = v[1] * t[1]; \ - m[1][2] = v[1] * t[2]; \ - m[1][3] = v[1] * t[3]; \ - \ - m[2][0] = v[2] * t[0]; \ - m[2][1] = v[2] * t[1]; \ - m[2][2] = v[2] * t[2]; \ - m[2][3] = v[2] * t[3]; \ - \ - m[3][0] = v[3] * t[0]; \ - m[3][1] = v[3] * t[1]; \ - m[3][2] = v[3] * t[2]; \ - m[3][3] = v[3] * t[3]; \ -} - -/* +========================================================== */ -/* outer product of vector times vector transpose - * - * The outer product of vector v and vector transpose t yeilds - * dyadic matrix m. - */ - -#define ACCUM_OUTER_PRODUCT_2X2(m,v,t) \ -{ \ - m[0][0] += v[0] * t[0]; \ - m[0][1] += v[0] * t[1]; \ - \ - m[1][0] += v[1] * t[0]; \ - m[1][1] += v[1] * t[1]; \ -} - -/* +========================================================== */ -/* outer product of vector times vector transpose - * - * The outer product of vector v and vector transpose t yeilds - * dyadic matrix m. - */ - -#define ACCUM_OUTER_PRODUCT_3X3(m,v,t) \ -{ \ - m[0][0] += v[0] * t[0]; \ - m[0][1] += v[0] * t[1]; \ - m[0][2] += v[0] * t[2]; \ - \ - m[1][0] += v[1] * t[0]; \ - m[1][1] += v[1] * t[1]; \ - m[1][2] += v[1] * t[2]; \ - \ - m[2][0] += v[2] * t[0]; \ - m[2][1] += v[2] * t[1]; \ - m[2][2] += v[2] * t[2]; \ -} - -/* +========================================================== */ -/* outer product of vector times vector transpose - * - * The outer product of vector v and vector transpose t yeilds - * dyadic matrix m. - */ - -#define ACCUM_OUTER_PRODUCT_4X4(m,v,t) \ -{ \ - m[0][0] += v[0] * t[0]; \ - m[0][1] += v[0] * t[1]; \ - m[0][2] += v[0] * t[2]; \ - m[0][3] += v[0] * t[3]; \ - \ - m[1][0] += v[1] * t[0]; \ - m[1][1] += v[1] * t[1]; \ - m[1][2] += v[1] * t[2]; \ - m[1][3] += v[1] * t[3]; \ - \ - m[2][0] += v[2] * t[0]; \ - m[2][1] += v[2] * t[1]; \ - m[2][2] += v[2] * t[2]; \ - m[2][3] += v[2] * t[3]; \ - \ - m[3][0] += v[3] * t[0]; \ - m[3][1] += v[3] * t[1]; \ - m[3][2] += v[3] * t[2]; \ - m[3][3] += v[3] * t[3]; \ -} - -/* +========================================================== */ -/* determinant of matrix - * - * Computes determinant of matrix m, returning d - */ - -#define DETERMINANT_2X2(d,m) \ -{ \ - d = m[0][0] * m[1][1] - m[0][1] * m[1][0]; \ -} - -/* ========================================================== */ -/* determinant of matrix - * - * Computes determinant of matrix m, returning d - */ - -#define DETERMINANT_3X3(d,m) \ -{ \ - d = m[0][0] * (m[1][1]*m[2][2] - m[1][2] * m[2][1]); \ - d -= m[0][1] * (m[1][0]*m[2][2] - m[1][2] * m[2][0]); \ - d += m[0][2] * (m[1][0]*m[2][1] - m[1][1] * m[2][0]); \ -} - -/* ========================================================== */ -/* i,j,th cofactor of a 4x4 matrix - * - */ - -#define COFACTOR_4X4_IJ(fac,m,i,j) \ -{ \ - int ii[4], jj[4], k; \ - \ - /* compute which row, columnt to skip */ \ - for (k=0; k - - - - IBDocumentLocation - 4 104 410 240 0 0 1152 848 - IBEditorPositions - - 29 - 19 615 246 44 0 0 1152 848 - - IBFramework Version - 291.0 - IBGroupedObjects - - IBLastGroupID - 1 - IBOpenObjects - - 29 - - IBSystem Version - 6I32 - - diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUT.nib/objects.nib b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUT.nib/objects.nib deleted file mode 100644 index 8a7140e..0000000 Binary files a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUT.nib/objects.nib and /dev/null differ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/classes.nib b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/classes.nib deleted file mode 100755 index 7e85eb1..0000000 --- a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/classes.nib +++ /dev/null @@ -1,13 +0,0 @@ -{ - IBClasses = ( - {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, - { - ACTIONS = {toggleWindow = id; }; - CLASS = GLUTClipboardController; - LANGUAGE = ObjC; - OUTLETS = {_infoText = id; _scrollView = id; }; - SUPERCLASS = NSWindowController; - } - ); - IBVersion = 1; -} \ No newline at end of file diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/info.nib b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/info.nib deleted file mode 100755 index 867735d..0000000 --- a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/info.nib +++ /dev/null @@ -1,12 +0,0 @@ - - - - - IBDocumentLocation - 63 221 356 240 0 0 1600 1178 - IBFramework Version - 263.2 - IBSystem Version - 5S41 - - diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/objects.nib b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/objects.nib deleted file mode 100644 index 29125d4..0000000 Binary files a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/objects.nib and /dev/null differ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/classes.nib b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/classes.nib deleted file mode 100755 index c675963..0000000 --- a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/classes.nib +++ /dev/null @@ -1,73 +0,0 @@ -{ - IBClasses = ( - { - ACTIONS = {save = id; saveAs = id; }; - CLASS = FirstResponder; - LANGUAGE = ObjC; - SUPERCLASS = NSObject; - }, - { - ACTIONS = { - cancel = id; - joyAssign = id; - joyDevice = id; - joyElement = id; - joyInvert = id; - launchDebugMode = id; - launchGamemodeCaptureSingle = id; - launchIconic = id; - launchUseCurrWD = id; - launchUseExtDesktop = id; - launchUseMacOSCoords = id; - mouseEanbleEmulation = id; - mouseMiddleMenu = id; - mouseRightMenu = id; - ok = id; - spaceAssign = id; - spaceDevice = id; - spaceElement = id; - spaceInvert = id; - }; - CLASS = GLUTPreferencesController; - LANGUAGE = ObjC; - OUTLETS = { - joyAssign = NSButton; - joyAssignNote = NSTextField; - joyAssignWarningIcon = NSImageView; - joyDeviceMenu = NSPopUpButton; - joyElement = NSTextField; - joyInputMenu = NSPopUpButton; - joyInverted = NSButton; - launchDebugMode = NSButton; - launchFadeTime = NSTextField; - launchGamemodeCaptureSingle = NSButton; - launchIconic = NSButton; - launchInitHeight = NSTextField; - launchInitWidth = NSTextField; - launchInitX = NSTextField; - launchInitY = NSTextField; - launchMenuIdle = NSTextField; - launchSyncToVBL = NSButton; - launchUseCurrWD = NSButton; - launchUseExtendedDesktop = NSButton; - launchUseMacOSXCoords = NSButton; - mouseAssignWarningIcon = NSImageView; - mouseAssignWarningText = NSTextField; - mouseDetected = NSTextField; - mouseEmulation = NSButton; - mouseMiddleConfigMenu = NSPopUpButton; - mouseRightConfigMenu = NSPopUpButton; - prefsTabView = NSTabView; - spaceAssign = NSButton; - spaceAssignNote = NSTextField; - spaceAssignWarningIcon = NSImageView; - spaceDeviceMenu = NSPopUpButton; - spaceElement = NSTextField; - spaceInputMenu = NSPopUpButton; - spaceInverted = NSButton; - }; - SUPERCLASS = NSWindowController; - } - ); - IBVersion = 1; -} \ No newline at end of file diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/info.nib b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/info.nib deleted file mode 100755 index 216c8dc..0000000 --- a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/info.nib +++ /dev/null @@ -1,16 +0,0 @@ - - - - - IBDocumentLocation - 16 329 410 240 0 0 1920 1178 - IBFramework Version - 439.0 - IBOpenObjects - - 205 - - IBSystem Version - 8G32 - - diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/objects.nib b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/objects.nib deleted file mode 100644 index 7598f2c..0000000 Binary files a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/objects.nib and /dev/null differ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTUI.strings b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTUI.strings deleted file mode 100644 index 6db3c5c..0000000 Binary files a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTUI.strings and /dev/null differ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/InfoPlist.strings b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/InfoPlist.strings deleted file mode 100644 index 6f78b89..0000000 Binary files a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/InfoPlist.strings and /dev/null differ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/Info.plist b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/Info.plist deleted file mode 100755 index e8fc9d6..0000000 --- a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - GLUT - CFBundleGetInfoString - 3.4.0, Copyright (c) 2001-2008 Apple Inc., All Rights Reserved - CFBundleIdentifier - com.apple.glut - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - FMWK - CFBundleShortVersionString - 3.4.0 - CFBundleSignature - ???? - CFBundleVersion - GLUT-3.4.0 - - diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/blankCursor.tiff b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/blankCursor.tiff deleted file mode 100755 index a2b0cf1..0000000 Binary files a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/blankCursor.tiff and /dev/null differ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomCursor.tiff b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomCursor.tiff deleted file mode 100755 index c3f4795..0000000 Binary files a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomCursor.tiff and /dev/null differ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomleftCursor.tiff b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomleftCursor.tiff deleted file mode 100755 index 274529f..0000000 Binary files a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomleftCursor.tiff and /dev/null differ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomrightCursor.tiff b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomrightCursor.tiff deleted file mode 100755 index dec4252..0000000 Binary files a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomrightCursor.tiff and /dev/null differ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/crossCursor.tiff b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/crossCursor.tiff deleted file mode 100755 index 8536c0e..0000000 Binary files a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/crossCursor.tiff and /dev/null differ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/cycleCursor.tiff b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/cycleCursor.tiff deleted file mode 100755 index 34b52f6..0000000 Binary files a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/cycleCursor.tiff and /dev/null differ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/destroyCursor.tiff b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/destroyCursor.tiff deleted file mode 100755 index 9e3a1cb..0000000 Binary files a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/destroyCursor.tiff and /dev/null differ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/fingerCursor.tiff b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/fingerCursor.tiff deleted file mode 100755 index 0087c66..0000000 Binary files a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/fingerCursor.tiff and /dev/null differ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/helpCursor.tiff b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/helpCursor.tiff deleted file mode 100755 index fc4a88a..0000000 Binary files a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/helpCursor.tiff and /dev/null differ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftCursor.tiff b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftCursor.tiff deleted file mode 100755 index 852b69b..0000000 Binary files a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftCursor.tiff and /dev/null differ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftRightCursor.tiff b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftRightCursor.tiff deleted file mode 100755 index 37fe393..0000000 Binary files a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftRightCursor.tiff and /dev/null differ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightArrowCursor.tiff b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightArrowCursor.tiff deleted file mode 100755 index d852616..0000000 Binary files a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightArrowCursor.tiff and /dev/null differ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightCursor.tiff b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightCursor.tiff deleted file mode 100755 index 9781f22..0000000 Binary files a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightCursor.tiff and /dev/null differ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/sprayCursor.tiff b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/sprayCursor.tiff deleted file mode 100755 index 9bec966..0000000 Binary files a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/sprayCursor.tiff and /dev/null differ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topCursor.tiff b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topCursor.tiff deleted file mode 100755 index e4df0de..0000000 Binary files a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topCursor.tiff and /dev/null differ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topleftCursor.tiff b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topleftCursor.tiff deleted file mode 100755 index 43cf97f..0000000 Binary files a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topleftCursor.tiff and /dev/null differ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/toprightCursor.tiff b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/toprightCursor.tiff deleted file mode 100755 index 429b01b..0000000 Binary files a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/toprightCursor.tiff and /dev/null differ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/upDownCursor.tiff b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/upDownCursor.tiff deleted file mode 100755 index 1605063..0000000 Binary files a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/upDownCursor.tiff and /dev/null differ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/waitCursor.tiff b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/waitCursor.tiff deleted file mode 100755 index 81ba1aa..0000000 Binary files a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/waitCursor.tiff and /dev/null differ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/Current b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/Current deleted file mode 120000 index 8c7e5a6..0000000 --- a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/Current +++ /dev/null @@ -1 +0,0 @@ -A \ No newline at end of file diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Info.plist b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Info.plist deleted file mode 100644 index 6faf4d2..0000000 --- a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Info.plist +++ /dev/null @@ -1,36 +0,0 @@ - - - - - BuildMachineOSBuild - 10K540 - CFBundleDevelopmentRegion - English - CFBundleExecutable - emptyExampleDebug - CFBundleIdentifier - com.yourcompany.openFrameworks - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - APPL - CFBundleSignature - ???? - CFBundleVersion - 1.0 - DTCompiler - - DTPlatformBuild - 10M2518 - DTPlatformVersion - PG - DTSDKBuild - 10K540 - DTSDKName - - DTXcode - 0400 - DTXcodeBuild - 10M2518 - - diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/MacOS/emptyExampleDebug b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/MacOS/emptyExampleDebug deleted file mode 100755 index 392edf7..0000000 Binary files a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/MacOS/emptyExampleDebug and /dev/null differ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/MacOS/libfmodex.dylib b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/MacOS/libfmodex.dylib deleted file mode 100644 index bea90a1..0000000 Binary files a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/MacOS/libfmodex.dylib and /dev/null differ diff --git a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/PkgInfo b/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/PkgInfo deleted file mode 100644 index bd04210..0000000 --- a/ofxMaxim/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/PkgInfo +++ /dev/null @@ -1 +0,0 @@ -APPL???? \ No newline at end of file diff --git a/ofxMaxim/ofMaximExample007OSX/emptyExample.xcodeproj/project.pbxproj b/ofxMaxim/ofMaximExample007OSX/emptyExample.xcodeproj/project.pbxproj deleted file mode 100644 index 5ca427f..0000000 --- a/ofxMaxim/ofMaximExample007OSX/emptyExample.xcodeproj/project.pbxproj +++ /dev/null @@ -1,602 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 42; - objects = { - -/* Begin PBXBuildFile section */ - 8DF1A08C1404702E00148E3B /* fft.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8DF1A0801404702E00148E3B /* fft.cpp */; }; - 8DF1A08D1404702E00148E3B /* maxiFFT.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8DF1A0821404702E00148E3B /* maxiFFT.cpp */; }; - 8DF1A08E1404702E00148E3B /* maxiGrains.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8DF1A0841404702E00148E3B /* maxiGrains.cpp */; }; - 8DF1A08F1404702E00148E3B /* maxiMFCC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8DF1A0861404702E00148E3B /* maxiMFCC.cpp */; }; - 8DF1A0901404702E00148E3B /* maximilian.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8DF1A0881404702E00148E3B /* maximilian.cpp */; }; - BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; }; - E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4328148138ABC890047C5CB /* openFrameworksDebug.a */; }; - E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9710E8CC7DD009D7055 /* AGL.framework */; }; - E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */; }; - E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */; }; - E45BE97E0E8CC7DD009D7055 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9740E8CC7DD009D7055 /* Carbon.framework */; }; - E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */; }; - E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */; }; - E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9770E8CC7DD009D7055 /* CoreServices.framework */; }; - E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9790E8CC7DD009D7055 /* OpenGL.framework */; }; - E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */; }; - E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1D0A3A1BDC003C02F2 /* main.cpp */; }; - E4B69E210A3A1BDC003C02F2 /* testApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */; }; - E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424410CC5A17004149E2 /* AppKit.framework */; }; - E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424510CC5A17004149E2 /* Cocoa.framework */; }; - E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424610CC5A17004149E2 /* IOKit.framework */; }; - E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - E4328147138ABC890047C5CB /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = E4B27C1510CBEB8E00536013; - remoteInfo = openFrameworks; - }; - E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = E4B27C1410CBEB8E00536013; - remoteInfo = openFrameworks; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - E4C2427710CC5ABF004149E2 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 8DF1A07E1404702E00148E3B /* install.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = install.xml; sourceTree = ""; }; - 8DF1A0801404702E00148E3B /* fft.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fft.cpp; sourceTree = ""; }; - 8DF1A0811404702E00148E3B /* fft.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fft.h; sourceTree = ""; }; - 8DF1A0821404702E00148E3B /* maxiFFT.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = maxiFFT.cpp; sourceTree = ""; }; - 8DF1A0831404702E00148E3B /* maxiFFT.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = maxiFFT.h; sourceTree = ""; }; - 8DF1A0841404702E00148E3B /* maxiGrains.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = maxiGrains.cpp; sourceTree = ""; }; - 8DF1A0851404702E00148E3B /* maxiGrains.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = maxiGrains.h; sourceTree = ""; }; - 8DF1A0861404702E00148E3B /* maxiMFCC.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = maxiMFCC.cpp; sourceTree = ""; }; - 8DF1A0871404702E00148E3B /* maxiMFCC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = maxiMFCC.h; sourceTree = ""; }; - 8DF1A0881404702E00148E3B /* maximilian.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = maximilian.cpp; sourceTree = ""; }; - 8DF1A0891404702E00148E3B /* maximilian.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = maximilian.h; sourceTree = ""; }; - 8DF1A08B1404702E00148E3B /* ofxMaxim.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxMaxim.h; sourceTree = ""; }; - BBAB23BE13894E4700AA2426 /* GLUT.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLUT.framework; path = ../../../libs/glut/lib/osx/GLUT.framework; sourceTree = ""; }; - E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = openFrameworksLib.xcodeproj; path = ../../../libs/openFrameworksCompiled/project/osx/openFrameworksLib.xcodeproj; sourceTree = SOURCE_ROOT; }; - E45BE9710E8CC7DD009D7055 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = ""; }; - E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = ""; }; - E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = ""; }; - E45BE9740E8CC7DD009D7055 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = ""; }; - E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = ""; }; - E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = ""; }; - E45BE9770E8CC7DD009D7055 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = ""; }; - E45BE9790E8CC7DD009D7055 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = ""; }; - E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = ""; }; - E4B69B5B0A3A1756003C02F2 /* emptyExampleDebug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = emptyExampleDebug.app; sourceTree = BUILT_PRODUCTS_DIR; }; - E4B69E1D0A3A1BDC003C02F2 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = src/main.cpp; sourceTree = SOURCE_ROOT; }; - E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = testApp.cpp; path = src/testApp.cpp; sourceTree = SOURCE_ROOT; }; - E4B69E1F0A3A1BDC003C02F2 /* testApp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = testApp.h; path = src/testApp.h; sourceTree = SOURCE_ROOT; }; - E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = "openFrameworks-Info.plist"; sourceTree = ""; }; - E4C2424410CC5A17004149E2 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; - E4C2424510CC5A17004149E2 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; - E4C2424610CC5A17004149E2 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = ""; }; - E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = CoreOF.xcconfig; path = ../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig; sourceTree = SOURCE_ROOT; }; - E4EB6923138AFD0F00A09F29 /* Project.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Project.xcconfig; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - E4B69B590A3A1756003C02F2 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */, - E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */, - E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */, - E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */, - E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */, - E45BE97E0E8CC7DD009D7055 /* Carbon.framework in Frameworks */, - E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */, - E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */, - E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */, - E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */, - E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */, - E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */, - E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */, - E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 8DF1A07D1404702E00148E3B /* ofxMaxim */ = { - isa = PBXGroup; - children = ( - 8DF1A07E1404702E00148E3B /* install.xml */, - 8DF1A07F1404702E00148E3B /* libs */, - 8DF1A08A1404702E00148E3B /* src */, - ); - path = ofxMaxim; - sourceTree = ""; - }; - 8DF1A07F1404702E00148E3B /* libs */ = { - isa = PBXGroup; - children = ( - 8DF1A0801404702E00148E3B /* fft.cpp */, - 8DF1A0811404702E00148E3B /* fft.h */, - 8DF1A0821404702E00148E3B /* maxiFFT.cpp */, - 8DF1A0831404702E00148E3B /* maxiFFT.h */, - 8DF1A0841404702E00148E3B /* maxiGrains.cpp */, - 8DF1A0851404702E00148E3B /* maxiGrains.h */, - 8DF1A0861404702E00148E3B /* maxiMFCC.cpp */, - 8DF1A0871404702E00148E3B /* maxiMFCC.h */, - 8DF1A0881404702E00148E3B /* maximilian.cpp */, - 8DF1A0891404702E00148E3B /* maximilian.h */, - ); - path = libs; - sourceTree = ""; - }; - 8DF1A08A1404702E00148E3B /* src */ = { - isa = PBXGroup; - children = ( - 8DF1A08B1404702E00148E3B /* ofxMaxim.h */, - ); - path = src; - sourceTree = ""; - }; - BB4B014C10F69532006C3DED /* addons */ = { - isa = PBXGroup; - children = ( - 8DF1A07D1404702E00148E3B /* ofxMaxim */, - ); - name = addons; - sourceTree = ""; - }; - BBAB23C913894ECA00AA2426 /* system frameworks */ = { - isa = PBXGroup; - children = ( - E4C2424410CC5A17004149E2 /* AppKit.framework */, - E4C2424510CC5A17004149E2 /* Cocoa.framework */, - E4C2424610CC5A17004149E2 /* IOKit.framework */, - E45BE9710E8CC7DD009D7055 /* AGL.framework */, - E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */, - E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */, - E45BE9740E8CC7DD009D7055 /* Carbon.framework */, - E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */, - E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */, - E45BE9770E8CC7DD009D7055 /* CoreServices.framework */, - E45BE9790E8CC7DD009D7055 /* OpenGL.framework */, - E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */, - ); - name = "system frameworks"; - sourceTree = ""; - }; - BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */ = { - isa = PBXGroup; - children = ( - BBAB23BE13894E4700AA2426 /* GLUT.framework */, - ); - name = "3rd party frameworks"; - sourceTree = ""; - }; - E4328144138ABC890047C5CB /* Products */ = { - isa = PBXGroup; - children = ( - E4328148138ABC890047C5CB /* openFrameworksDebug.a */, - ); - name = Products; - sourceTree = ""; - }; - E45BE5980E8CC70C009D7055 /* frameworks */ = { - isa = PBXGroup; - children = ( - BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */, - BBAB23C913894ECA00AA2426 /* system frameworks */, - ); - name = frameworks; - sourceTree = ""; - }; - E4B69B4A0A3A1720003C02F2 = { - isa = PBXGroup; - children = ( - E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */, - E4EB6923138AFD0F00A09F29 /* Project.xcconfig */, - E4B69E1C0A3A1BDC003C02F2 /* src */, - E4EEC9E9138DF44700A80321 /* openFrameworks */, - BB4B014C10F69532006C3DED /* addons */, - E45BE5980E8CC70C009D7055 /* frameworks */, - E4B69B5B0A3A1756003C02F2 /* emptyExampleDebug.app */, - ); - sourceTree = ""; - }; - E4B69E1C0A3A1BDC003C02F2 /* src */ = { - isa = PBXGroup; - children = ( - E4B69E1D0A3A1BDC003C02F2 /* main.cpp */, - E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */, - E4B69E1F0A3A1BDC003C02F2 /* testApp.h */, - ); - path = src; - sourceTree = SOURCE_ROOT; - }; - E4EEC9E9138DF44700A80321 /* openFrameworks */ = { - isa = PBXGroup; - children = ( - E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */, - E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */, - ); - name = openFrameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - E4B69B5A0A3A1756003C02F2 /* emptyExample */ = { - isa = PBXNativeTarget; - buildConfigurationList = E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "emptyExample" */; - buildPhases = ( - E4B69B580A3A1756003C02F2 /* Sources */, - E4B69B590A3A1756003C02F2 /* Frameworks */, - E4B6FFFD0C3F9AB9008CF71C /* ShellScript */, - E4C2427710CC5ABF004149E2 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - E4EEB9AC138B136A00A80321 /* PBXTargetDependency */, - ); - name = emptyExample; - productName = myOFApp; - productReference = E4B69B5B0A3A1756003C02F2 /* emptyExampleDebug.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - E4B69B4C0A3A1720003C02F2 /* Project object */ = { - isa = PBXProject; - buildConfigurationList = E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "emptyExample" */; - compatibilityVersion = "Xcode 2.4"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = E4B69B4A0A3A1720003C02F2; - productRefGroup = E4B69B4A0A3A1720003C02F2; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = E4328144138ABC890047C5CB /* Products */; - ProjectRef = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - E4B69B5A0A3A1756003C02F2 /* emptyExample */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - E4328148138ABC890047C5CB /* openFrameworksDebug.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = openFrameworksDebug.a; - remoteRef = E4328147138ABC890047C5CB /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXShellScriptBuildPhase section */ - E4B6FFFD0C3F9AB9008CF71C /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "cp -f ../../../libs/fmodex/lib/osx/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/libfmodex.dylib\"; install_name_tool -change ./libfmodex.dylib @executable_path/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME\";"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - E4B69B580A3A1756003C02F2 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */, - E4B69E210A3A1BDC003C02F2 /* testApp.cpp in Sources */, - 8DF1A08C1404702E00148E3B /* fft.cpp in Sources */, - 8DF1A08D1404702E00148E3B /* maxiFFT.cpp in Sources */, - 8DF1A08E1404702E00148E3B /* maxiGrains.cpp in Sources */, - 8DF1A08F1404702E00148E3B /* maxiMFCC.cpp in Sources */, - 8DF1A0901404702E00148E3B /* maximilian.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - E4EEB9AC138B136A00A80321 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = openFrameworks; - targetProxy = E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - E4B69B4E0A3A1720003C02F2 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; - buildSettings = { - ARCHS = "$(NATIVE_ARCH)"; - CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/"; - COPY_PHASE_STRIP = NO; - DEAD_CODE_STRIPPING = YES; - GCC_AUTO_VECTORIZATION = YES; - GCC_ENABLE_SSE3_EXTENSIONS = YES; - GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; - GCC_INLINES_ARE_PRIVATE_EXTERN = NO; - GCC_MODEL_TUNING = G5; - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; - GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; - GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO; - GCC_WARN_UNINITIALIZED_AUTOS = NO; - GCC_WARN_UNUSED_VALUE = NO; - GCC_WARN_UNUSED_VARIABLE = NO; - OTHER_CPLUSPLUSFLAGS = ( - "-D__MACOSX_CORE__", - "-lpthread", - ); - }; - name = Debug; - }; - E4B69B4F0A3A1720003C02F2 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; - buildSettings = { - ARCHS = "$(NATIVE_ARCH)"; - CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/"; - COPY_PHASE_STRIP = YES; - DEAD_CODE_STRIPPING = YES; - GCC_AUTO_VECTORIZATION = YES; - GCC_ENABLE_SSE3_EXTENSIONS = YES; - GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; - GCC_INLINES_ARE_PRIVATE_EXTERN = NO; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 3; - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_UNROLL_LOOPS = YES; - GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; - GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; - GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO; - GCC_WARN_UNINITIALIZED_AUTOS = NO; - GCC_WARN_UNUSED_VALUE = NO; - GCC_WARN_UNUSED_VARIABLE = NO; - OTHER_CPLUSPLUSFLAGS = ( - "-D__MACOSX_CORE__", - "-lpthread", - ); - }; - name = Release; - }; - E4B69B600A3A1757003C02F2 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", - ); - FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\""; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_GENERATE_DEBUGGING_SYMBOLS = YES; - GCC_MODEL_TUNING = G4; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h"; - INFOPLIST_FILE = "openFrameworks-Info.plist"; - INSTALL_PATH = "$(HOME)/Applications"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_52)", - ); - PREBINDING = NO; - PRODUCT_NAME = "$(TARGET_NAME)Debug"; - WRAPPER_EXTENSION = app; - }; - name = Debug; - }; - E4B69B610A3A1757003C02F2 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", - ); - FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\""; - GCC_ENABLE_FIX_AND_CONTINUE = NO; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - GCC_MODEL_TUNING = G4; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h"; - INFOPLIST_FILE = "openFrameworks-Info.plist"; - INSTALL_PATH = "$(HOME)/Applications"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_1)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)", - "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)", - ); - PREBINDING = NO; - PRODUCT_NAME = "$(TARGET_NAME)"; - WRAPPER_EXTENSION = app; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "emptyExample" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - E4B69B4E0A3A1720003C02F2 /* Debug */, - E4B69B4F0A3A1720003C02F2 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "emptyExample" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - E4B69B600A3A1757003C02F2 /* Debug */, - E4B69B610A3A1757003C02F2 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = E4B69B4C0A3A1720003C02F2 /* Project object */; -} diff --git a/ofxMaxim/ofMaximExample007OSX/ofxMaxim/install.xml b/ofxMaxim/ofMaximExample007OSX/ofxMaxim/install.xml deleted file mode 100644 index 58923be..0000000 --- a/ofxMaxim/ofMaximExample007OSX/ofxMaxim/install.xml +++ /dev/null @@ -1,35 +0,0 @@ - - 0.1 - Goldsmiths Creative Computing - http://www.maximilian.strangeloop.co.uk/ - - - - - - - - - - - - ../../../addons/ofxMaxim/src/ofxMaxim.h - - - - ../../../addons/ofxMaxim/libs/fft.h - ../../../addons/ofxMaxim/libs/fft.cpp - ../../../addons/ofxMaxim/libs/fftOctaveAnalyzer.h - ../../../addons/ofxMaxim/libs/fftOctaveAnalyzer.cpp - ../../../addons/ofxMaxim/libs/maximilian.h - ../../../addons/ofxMaxim/libs/maximilian.cpp - - - - - - ../../../addons/ofxMaxim/src - ../../../addons/ofxMaxim/libs - - - \ No newline at end of file diff --git a/ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/fft.cpp b/ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/fft.cpp deleted file mode 100644 index 3f13bd2..0000000 --- a/ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/fft.cpp +++ /dev/null @@ -1,608 +0,0 @@ -/* - * maximilian - * platform independent synthesis library using portaudio or rtaudio - * - * Created by Mick Grierson on 29/12/2009. - * Copyright 2009 Mick Grierson & Strangeloop Limited. All rights reserved. - * Thanks to the Goldsmiths Creative Computing Team. - * Special thanks to Arturo Castro for the PortAudio implementation. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, - * copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following - * conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - */ -/* - - fft.cpp - - Based on K+R Numerical recipes in C and some other stuff hacked about. - - */ - -#include "fft.h" -#include -#include -#include -#include - -int **gFFTBitTable = NULL; -const int MaxFastBits = 16; - -int IsPowerOfTwo(int x) -{ - if (x < 2) - return false; - - if (x & (x - 1)) - return false; - - return true; -} - -int NumberOfBitsNeeded(int PowerOfTwo) -{ - int i; - - if (PowerOfTwo < 2) { - fprintf(stderr, "Error: FFT called with size %d\n", PowerOfTwo); - exit(1); - } - - for (i = 0;; i++) - if (PowerOfTwo & (1 << i)) - return i; -} - -int ReverseBits(int index, int NumBits) -{ - int i, rev; - - for (i = rev = 0; i < NumBits; i++) { - rev = (rev << 1) | (index & 1); - index >>= 1; - } - - return rev; -} - -void InitFFT() -{ -// gFFTBitTable = new int *[MaxFastBits]; - //use malloc for 16 byte alignment - gFFTBitTable = (int**) malloc(MaxFastBits * sizeof(int*)); - - int len = 2; - for (int b = 1; b <= MaxFastBits; b++) { - -// gFFTBitTable[b - 1] = new int[len]; - gFFTBitTable[b - 1] = (int*) malloc(len * sizeof(int)); - - for (int i = 0; i < len; i++) - gFFTBitTable[b - 1][i] = ReverseBits(i, b); - - len <<= 1; - } -} - -inline int FastReverseBits(int i, int NumBits) -{ - if (NumBits <= MaxFastBits) - return gFFTBitTable[NumBits - 1][i]; - else - return ReverseBits(i, NumBits); -} - -/* - * Complex Fast Fourier Transform - */ - -void FFT(int NumSamples, - bool InverseTransform, - float *RealIn, float *ImagIn, float *RealOut, float *ImagOut) -{ - int NumBits; /* Number of bits needed to store indices */ - int i, j, k, n; - int BlockSize, BlockEnd; - - double angle_numerator = 2.0 * M_PI; - float tr, ti; /* temp real, temp imaginary */ - - if (!IsPowerOfTwo(NumSamples)) { - fprintf(stderr, "%d is not a power of two\n", NumSamples); - exit(1); - } - - if (!gFFTBitTable) - InitFFT(); - - if (InverseTransform) - angle_numerator = -angle_numerator; - - NumBits = NumberOfBitsNeeded(NumSamples); - - /* - ** Do simultaneous data copy and bit-reversal ordering into outputs... - */ - - for (i = 0; i < NumSamples; i++) { - j = FastReverseBits(i, NumBits); - RealOut[j] = RealIn[i]; - ImagOut[j] = (ImagIn == NULL) ? 0.0 : ImagIn[i]; - } - - /* - ** Do the FFT itself... - */ - - BlockEnd = 1; - for (BlockSize = 2; BlockSize <= NumSamples; BlockSize <<= 1) { - - double delta_angle = angle_numerator / (double) BlockSize; - - float sm2 = sin(-2 * delta_angle); - float sm1 = sin(-delta_angle); - float cm2 = cos(-2 * delta_angle); - float cm1 = cos(-delta_angle); - float w = 2 * cm1; - float ar0, ar1, ar2, ai0, ai1, ai2; - - for (i = 0; i < NumSamples; i += BlockSize) { - ar2 = cm2; - ar1 = cm1; - - ai2 = sm2; - ai1 = sm1; - - for (j = i, n = 0; n < BlockEnd; j++, n++) { - ar0 = w * ar1 - ar2; - ar2 = ar1; - ar1 = ar0; - - ai0 = w * ai1 - ai2; - ai2 = ai1; - ai1 = ai0; - - k = j + BlockEnd; - tr = ar0 * RealOut[k] - ai0 * ImagOut[k]; - ti = ar0 * ImagOut[k] + ai0 * RealOut[k]; - - RealOut[k] = RealOut[j] - tr; - ImagOut[k] = ImagOut[j] - ti; - - RealOut[j] += tr; - ImagOut[j] += ti; - } - } - - BlockEnd = BlockSize; - } - - /* - ** Need to normalize if inverse transform... - */ - - if (InverseTransform) { - float denom = (float) NumSamples; - - for (i = 0; i < NumSamples; i++) { - RealOut[i] /= denom; - ImagOut[i] /= denom; - } - } -} - -/* - * Real Fast Fourier Transform - * - * This function was based on the code in Numerical Recipes in C. - * In Num. Rec., the inner loop is based on a single 1-based array - * of interleaved real and imaginary numbers. Because we have two - * separate zero-based arrays, our indices are quite different. - * Here is the correspondence between Num. Rec. indices and our indices: - * - * i1 <-> real[i] - * i2 <-> imag[i] - * i3 <-> real[n/2-i] - * i4 <-> imag[n/2-i] - */ - -void RealFFT(int NumSamples, float *RealIn, float *RealOut, float *ImagOut) -{ - int Half = NumSamples / 2; - int i; - - float theta = M_PI / Half; - - float *tmpReal = (float*) malloc(Half * sizeof(float)); - float *tmpImag = (float*) malloc(Half * sizeof(float)); - - for (i = 0; i < Half; i++) { - tmpReal[i] = RealIn[2 * i]; - tmpImag[i] = RealIn[2 * i + 1]; - } - - FFT(Half, 0, tmpReal, tmpImag, RealOut, ImagOut); - - float wtemp = float (sin(0.5 * theta)); - - float wpr = -2.0 * wtemp * wtemp; - float wpi = float (sin(theta)); - float wr = 1.0 + wpr; - float wi = wpi; - - int i3; - - float h1r, h1i, h2r, h2i; - - for (i = 1; i < Half / 2; i++) { - - i3 = Half - i; - - h1r = 0.5 * (RealOut[i] + RealOut[i3]); - h1i = 0.5 * (ImagOut[i] - ImagOut[i3]); - h2r = 0.5 * (ImagOut[i] + ImagOut[i3]); - h2i = -0.5 * (RealOut[i] - RealOut[i3]); - - RealOut[i] = h1r + wr * h2r - wi * h2i; - ImagOut[i] = h1i + wr * h2i + wi * h2r; - RealOut[i3] = h1r - wr * h2r + wi * h2i; - ImagOut[i3] = -h1i + wr * h2i + wi * h2r; - - wr = (wtemp = wr) * wpr - wi * wpi + wr; - wi = wi * wpr + wtemp * wpi + wi; - } - - RealOut[0] = (h1r = RealOut[0]) + ImagOut[0]; - ImagOut[0] = h1r - ImagOut[0]; - - delete[]tmpReal; - delete[]tmpImag; -} - -/* - * PowerSpectrum - * - * This function computes the same as RealFFT, above, but - * adds the squares of the real and imaginary part of each - * coefficient, extracting the power and throwing away the - * phase. - * - * For speed, it does not call RealFFT, but duplicates some - * of its code. - */ - -void PowerSpectrum(int NumSamples, float *In, float *Out) -{ - int Half = NumSamples / 2; - int i; - - float theta = M_PI / Half; - - float *tmpReal = new float[Half]; - float *tmpImag = new float[Half]; - float *RealOut = new float[Half]; - float *ImagOut = new float[Half]; - - for (i = 0; i < Half; i++) { - tmpReal[i] = In[2 * i]; - tmpImag[i] = In[2 * i + 1]; - } - - FFT(Half, 0, tmpReal, tmpImag, RealOut, ImagOut); - - float wtemp = float (sin(0.5 * theta)); - - float wpr = -2.0 * wtemp * wtemp; - float wpi = float (sin(theta)); - float wr = 1.0 + wpr; - float wi = wpi; - - int i3; - - float h1r, h1i, h2r, h2i, rt, it; - //float total=0; - - for (i = 1; i < Half / 2; i++) { - - i3 = Half - i; - - h1r = 0.5 * (RealOut[i] + RealOut[i3]); - h1i = 0.5 * (ImagOut[i] - ImagOut[i3]); - h2r = 0.5 * (ImagOut[i] + ImagOut[i3]); - h2i = -0.5 * (RealOut[i] - RealOut[i3]); - - rt = h1r + wr * h2r - wi * h2i; //printf("Realout%i = %f",i,rt);total+=fabs(rt); - it = h1i + wr * h2i + wi * h2r; // printf(" Imageout%i = %f\n",i,it); - - Out[i] = rt * rt + it * it; - - rt = h1r - wr * h2r + wi * h2i; - it = -h1i + wr * h2i + wi * h2r; - - Out[i3] = rt * rt + it * it; - - wr = (wtemp = wr) * wpr - wi * wpi + wr; - wi = wi * wpr + wtemp * wpi + wi; - } - //printf("total = %f\n",total); - rt = (h1r = RealOut[0]) + ImagOut[0]; - it = h1r - ImagOut[0]; - Out[0] = rt * rt + it * it; - - rt = RealOut[Half / 2]; - it = ImagOut[Half / 2]; - Out[Half / 2] = rt * rt + it * it; - - delete[]tmpReal; - delete[]tmpImag; - delete[]RealOut; - delete[]ImagOut; -} - -/* - * Windowing Functions - */ - -int NumWindowFuncs() -{ - return 4; -} - -char *WindowFuncName(int whichFunction) -{ - switch (whichFunction) { - default: - case 0: - return "Rectangular"; - case 1: - return "Bartlett"; - case 2: - return "Hamming"; - case 3: - return "Hanning"; - } -} - -void WindowFunc(int whichFunction, int NumSamples, float *in) -{ - int i; - - if (whichFunction == 1) { - // Bartlett (triangular) window - for (i = 0; i < NumSamples / 2; i++) { - in[i] *= (i / (float) (NumSamples / 2)); - in[i + (NumSamples / 2)] *= - (1.0 - (i / (float) (NumSamples / 2))); - } - } - - if (whichFunction == 2) { - // Hamming - for (i = 0; i < NumSamples; i++) - in[i] *= 0.54 - 0.46 * cos(2 * M_PI * i / (NumSamples - 1)); - } - - if (whichFunction == 3) { - // Hanning - for (i = 0; i < NumSamples; i++) - in[i] *= 0.50 - 0.50 * cos(2 * M_PI * i / (NumSamples - 1)); - } -} - -void fft::genWindow(int whichFunction, int NumSamples, float *window) -{ - int i; - - if (whichFunction == 1) { - // Bartlett (triangular) window - for (i = 0; i < NumSamples / 2; i++) { - window[i] = (i / (float) (NumSamples / 2)); - window[i + (NumSamples / 2)] = - (1.0 - (i / (float) (NumSamples / 2))); - } - } - - if (whichFunction == 2) { - // Hamming - for (i = 0; i < NumSamples; i++) - window[i] = 0.54 - 0.46 * cos(2 * M_PI * i / (NumSamples - 1)); - } - - if (whichFunction == 3) { - // Hanning - for (i = 0; i < NumSamples; i++) - window[i] = 0.50 - 0.50 * cos(2 * M_PI * i / (NumSamples - 1)); - } -} - -/* constructor */ -fft::fft(int fftSize) { - n = fftSize; - half = fftSize / 2; - //use malloc for 16 byte alignment - in_real = (float *) malloc(n * sizeof(float)); - in_img = (float *) malloc(n * sizeof(float)); - out_real = (float *) malloc(n * sizeof(float)); - out_img = (float *) malloc(n * sizeof(float)); - -#ifdef __APPLE_CC__ - log2n = log2(n); - A.realp = (float *) malloc(half * sizeof(float)); - A.imagp = (float *) malloc(half * sizeof(float)); - setupReal = vDSP_create_fftsetup(log2n, FFT_RADIX2); - if (setupReal == NULL) { - printf("\nFFT_Setup failed to allocate enough memory for" - "the real FFT.\n"); - } - polar = (float *) malloc(n * sizeof(float)); -#endif -} - -/* destructor */ -fft::~fft() { - delete[] in_real, out_real, in_img, out_img; -#ifdef __APPLE_CC__ - vDSP_destroy_fftsetup(setupReal); - delete[] A.realp; - delete[] A.imagp; - delete[] polar; -#endif - -} - -/* Calculate the power spectrum */ -void fft::powerSpectrum(int start, float *data, float *window, float *magnitude,float *phase) { - int i; - - //windowing - for (i = 0; i < n; i++) { - in_real[i] = data[start + i] * window[i]; - } - - - RealFFT(n, in_real, out_real, out_img); - - for (i = 0; i < half; i++) { - /* compute power */ - float power = out_real[i]*out_real[i] + out_img[i]*out_img[i]; - /* compute magnitude and phase */ - magnitude[i] = sqrt(power); - phase[i] = atan2(out_img[i],out_real[i]); - -// if (magnitude[i] < 0.000001){ // less than 0.1 nV -// magnitude[i] = 0; // out of range -// } else { -// magnitude[i] = 20.0*log10(magnitude[i] + 1); // get to to db scale -// } - } - -} - -void fft::convToDB(float *in, float *out) { - for (int i = 0; i < half; i++) { - if (in[i] < 0.000001){ // less than 0.1 nV - out[i] = 0; // out of range - } else { - out[i] = 20.0*log10(in[i] + 1); // get to to db scale - } - } -} - - -#ifdef __APPLE_CC__ - -/* Calculate the power spectrum */ -void fft::powerSpectrum_vdsp(int start, float *data, float *window, float *magnitude,float *phase) { - - uint32_t i; - - //multiply by window - vDSP_vmul(data, 1, window, 1, in_real, 1, n); - - //convert to split complex format - evens and odds - vDSP_ctoz((COMPLEX *) in_real, 2, &A, 1, half); - - - //calc fft - vDSP_fft_zrip(setupReal, &A, 1, log2n, FFT_FORWARD); - - //scale by 2 (see vDSP docs) - static float scale=0.5 ; - vDSP_vsmul(A.realp, 1, &scale, A.realp, 1, half); - vDSP_vsmul(A.imagp, 1, &scale, A.imagp, 1, half); - - //back to split complex format - vDSP_ztoc(&A, 1, (COMPLEX*) out_real, 2, half); - - //convert to polar - vDSP_polar(out_real, 2, polar, 2, half); - - for (i = 0; i < half; i++) { - magnitude[i]=polar[2*i]+1.0; - phase[i]=polar[2*i + 1]; - } - - - -} - -void fft::convToDB_vdsp(float *in, float *out) { - float ref = 1.0; - vDSP_vdbcon(in, 1, &ref, out, 1, half, 1); - //get rid of any -infs - float vmin=0.0; - float vmax=9999999.0; - vDSP_vclip(out, 1, &vmin, &vmax, out, 1, half); -} - -#endif - -void fft::inversePowerSpectrum(int start, float *finalOut, float *window, float *magnitude,float *phase) { - int i; - - /* get real and imag part */ - for (i = 0; i < half; i++) { -// float mag = pow(10.0, magnitude[i] / 20.0) - 1.0; -// in_real[i] = mag *cos(phase[i]); -// in_img[i] = mag *sin(phase[i]); - in_real[i] = magnitude[i] *cos(phase[i]); - in_img[i] = magnitude[i] *sin(phase[i]); - } - - /* zero negative frequencies */ - memset(in_real+half, half, 0.0); - memset(in_img+half, half, 0.0); - - FFT(n, 1, in_real, in_img, out_real, out_img); // second parameter indicates inverse transform - - for (i = 0; i < n; i++) { - finalOut[start + i] += out_real[i] * window[i] - ; - } - -} - - -#ifdef __APPLE_CC__ -void fft::inversePowerSpectrum_vdsp(int start, float *finalOut, float *window, float *magnitude,float *phase) { - uint32_t i; - - for (i = 0; i < half; i++) { -// polar[2*i] = pow(10.0, magnitude[i] / 20.0) - 1.0; - polar[2*i] = magnitude[i] - 1.0; - polar[2*i + 1] = phase[i]; - } - - vDSP_rect(polar, 2, in_real, 2, half); - - vDSP_ctoz((COMPLEX*) in_real, 2, &A, 1, half); - vDSP_fft_zrip(setupReal, &A, 1, log2n, FFT_INVERSE); - vDSP_ztoc(&A, 1, (COMPLEX*) out_real, 2, half); - - static float scale = 1./n; - vDSP_vsmul(out_real, 1, &scale, out_real, 1, n); - - //multiply by window - vDSP_vmul(out_real, 1, window, 1, finalOut, 1, n); - -} - -#endif diff --git a/ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/fft.h b/ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/fft.h deleted file mode 100644 index f7e1947..0000000 --- a/ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/fft.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * maximilian - * platform independent synthesis library using portaudio or rtaudio - * - * Created by Mick Grierson on 29/12/2009. - * Copyright 2009 Mick Grierson & Strangeloop Limited. All rights reserved. - * Thanks to the Goldsmiths Creative Computing Team. - * Special thanks to Arturo Castro for the PortAudio implementation. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, - * copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following - * conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - */ - -#ifndef _FFT -#define _FFT - -#ifndef M_PI -#define M_PI 3.14159265358979323846 /* pi */ -#endif - -#ifdef __APPLE_CC__ - #include - #warning Please link against the Accelerate framework -#endif - - - -class fft { - -public: - - fft(int fftSize); - ~fft(); - - int n; //fftSize - int half; //halfFFTSize - - float *in_real, *out_real, *in_img, *out_img; - -#ifdef __APPLE_CC__ - int log2n; //log2(n); - FFTSetup setupReal; - COMPLEX_SPLIT A; - float *polar; - void powerSpectrum_vdsp(int start, float *data, float *window, float *magnitude,float *phase); - void inversePowerSpectrum_vdsp(int start, float *finalOut, float *window, float *magnitude,float *phase); - void convToDB_vdsp(float *in, float *out); -#endif; - - /* Calculate the power spectrum */ - void powerSpectrum(int start, float *data, float *window, float *magnitude, float *phase); - /* ... the inverse */ - void inversePowerSpectrum(int start, float *finalOut, float *window, float *magnitude,float *phase); - void convToDB(float *in, float *out); - - static void genWindow(int whichFunction, int NumSamples, float *window); - -}; - - -#endif diff --git a/ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maxiFFT.cpp b/ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maxiFFT.cpp deleted file mode 100644 index 36034b2..0000000 --- a/ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maxiFFT.cpp +++ /dev/null @@ -1,290 +0,0 @@ -/* - * maximilian - * platform independent synthesis library using portaudio or rtaudio - * - * Created by Mick Grierson on 29/12/2009. - * Copyright 2009 Mick Grierson & Strangeloop Limited. All rights reserved. - * Thanks to the Goldsmiths Creative Computing Team. - * Special thanks to Arturo Castro for the PortAudio implementation. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, - * copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following - * conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - */ - -#include "maxiFFT.h" -#include "maximilian.h" -#include -#include "math.h" - -using namespace std; - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -//F F T -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -void maxiFFT::setup(int _fftSize, int _windowSize, int _hopSize) { - _fft = new fft(_fftSize); - fftSize = _fftSize; - windowSize = _windowSize; - bins = fftSize / 2; - hopSize = _hopSize; - buffer = (float *) malloc(fftSize * sizeof(float)); - magnitudes = (float *) malloc(bins * sizeof(float)); - magnitudesDB = (float *) malloc(bins * sizeof(float)); - phases = (float *) malloc(bins * sizeof(float)); - avgPower = new float; - memset(buffer, 0, fftSize * sizeof(float)); - memset(magnitudes, 0, bins * sizeof(float)); - memset(magnitudesDB, 0, bins * sizeof(float)); - memset(phases, 0, bins * sizeof(float)); - *avgPower = 0; - pos =windowSize - hopSize; - newFFT = 0; - window = (float*) malloc(fftSize * sizeof(float)); - memset(window, 0, fftSize * sizeof(float)); - fft::genWindow(3, windowSize, window); -} - -bool maxiFFT::process(float value) { - //add value to buffer at current pos - buffer[pos++] = value; - //if buffer full, run fft - newFFT = pos == windowSize; - if (newFFT) { -#if defined(__APPLE_CC__) && !defined(_NO_VDSP) - _fft->powerSpectrum_vdsp(0, buffer, window, magnitudes, phases); -#else - _fft->powerSpectrum(0, buffer, window, magnitudes, phases); -#endif - //shift buffer back by one hop size - memcpy(buffer, buffer + hopSize, (windowSize - hopSize) * sizeof(float)); - //set the new data to zero (is this necessary?, it will get overwritten) - memset(buffer + windowSize - hopSize, 0, hopSize * sizeof(float)); - //reset pos to start of hop - pos= windowSize - hopSize; - } - return newFFT; -} - -float* maxiFFT::magsToDB() { -#if defined(__APPLE_CC__) && !defined(_NO_VDSP) - _fft->convToDB_vdsp(magnitudes, magnitudesDB); -#else - _fft->convToDB(magnitudes, magnitudesDB); -#endif - return magnitudesDB; -} - -float maxiFFT::spectralFlatness() { - float geometricMean=0, arithmaticMean=0; - for(int i=0; i < bins; i++) { - if (magnitudes[i] != 0) - geometricMean += log(magnitudes[i]); - arithmaticMean += magnitudes[i]; - } - geometricMean = exp(geometricMean / (float)bins); - arithmaticMean /= (float)bins; - return arithmaticMean !=0 ? geometricMean / arithmaticMean : 0; -} - -float maxiFFT::spectralCentroid() { - float x=0, y=0; - for(int i=0; i < bins; i++) { - x += fabs(magnitudes[i]) * (i+1); - y += fabs(magnitudes[i]); - } - return y != 0 ? x / y * ((float) maxiSettings::sampleRate / fftSize) : 0; -} - - - -maxiFFT::~maxiFFT() { - delete _fft; - if (buffer) - delete[] buffer,magnitudes,phases,window, avgPower; -} - - - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -//I N V E R S E F F T -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -void maxiIFFT::setup(int _fftSize, int _windowSize, int _hopSize) { - _fft = new fft(_fftSize); - fftSize = _fftSize; - windowSize = _windowSize; - bins = fftSize / 2; - hopSize = _hopSize; - buffer = (float *) malloc(fftSize * sizeof(float)); - ifftOut = (float *) malloc(fftSize * sizeof(float)); - memset(buffer, 0, windowSize * sizeof(float)); - pos =0; - window = (float*) malloc(fftSize * sizeof(float)); - memset(window, 0, fftSize * sizeof(float)); - fft::genWindow(3, windowSize, window); -} - -float maxiIFFT::process(float *magnitudes, float *phases) { - if (0==pos) { - //do ifft - memset(ifftOut, 0, fftSize * sizeof(float)); -#if defined(__APPLE_CC__) && !defined(_NO_VDSP) - _fft->inversePowerSpectrum_vdsp(0, ifftOut, window, magnitudes, phases); -#else - _fft->inversePowerSpectrum(0, ifftOut, window, magnitudes, phases); -#endif - //add to output - //shift back by one hop - memcpy(buffer, buffer+hopSize, (fftSize - hopSize) * sizeof(float)); - //clear the end chunk - memset(buffer + (fftSize - hopSize), 0, hopSize * sizeof(float)); - //merge new output - for(int i=0; i < fftSize; i++) { - buffer[i] += ifftOut[i]; - } - } - - nextValue = buffer[pos]; - //limit the values, this alg seems to spike occasionally (and break the audio drivers) - if (nextValue > 0.99999f) nextValue = 0.99999f; - if (nextValue < -0.99999f) nextValue = -0.99999f; - if (hopSize == ++pos ) { - pos=0; - } - - return nextValue; -} - -maxiIFFT::~maxiIFFT() { - delete _fft; - delete[] ifftOut, buffer, window; -}; - - - - - - - -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -//O C T A V E A N A L Y S E R -////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - - -void maxiFFTOctaveAnalyzer::setup(float samplingRate, int nBandsInTheFFT, int nAveragesPerOctave){ - - samplingRate = samplingRate; - nSpectrum = nBandsInTheFFT; - spectrumFrequencySpan = (samplingRate / 2.0f) / (float)(nSpectrum); - nAverages = nBandsInTheFFT; - // fe: 2f for octave bands, sqrt(2) for half-octave bands, cuberoot(2) for third-octave bands, etc - if (nAveragesPerOctave==0) // um, wtf? - nAveragesPerOctave = 1; - nAveragesPerOctave = nAveragesPerOctave; - averageFrequencyIncrement = pow(2.0f, 1.0f/(float)(nAveragesPerOctave)); - // this isn't currently configurable (used once here then no effect), but here's some reasoning: - // 43 is a good value if you want to approximate "computer" octaves: 44100/2/2/2/2/2/2/2/2/2/2 - // 55 is a good value if you'd rather approximate A-440 octaves: 440/2/2/2 - // 65 is a good value if you'd rather approximate "middle-C" octaves: ~262/2/2 - // you could easily double it if you felt the lowest band was just rumble noise (as it probably is) - // but don't go much smaller unless you have a huge fft window size (see below for more why) - // keep in mind, if you change it, that the number of actual bands may change +/-1, and - // for some values, the last averaging band may not be very useful (may extend above nyquist) - firstOctaveFrequency = 55.0f; - // for each spectrum[] bin, calculate the mapping into the appropriate average[] bin. - // this gives us roughly log-sized averaging bins, subject to how "fine" the spectrum bins are. - // with more spectrum bins, you can better map into the averaging bins (especially at low - // frequencies) or use more averaging bins per octave. with an fft window size of 2048, - // sampling rate of 44100, and first octave around 55, that's about enough to do half-octave - // analysis. if you don't have enough spectrum bins to map adequately into averaging bins - // at the requested number per octave then you'll end up with "empty" averaging bins, where - // there is no spectrum available to map into it. (so... if you have "nonreactive" averages, - // either increase fft buffer size, or decrease number of averages per octave, etc) - spe2avg = new int[nSpectrum]; - int avgidx = 0; - float averageFreq = firstOctaveFrequency; // the "top" of the first averaging bin - // we're looking for the "top" of the first spectrum bin, and i'm just sort of - // guessing that this is where it is (or possibly spectrumFrequencySpan/2?) - // ... either way it's probably close enough for these purposes - float spectrumFreq = spectrumFrequencySpan; - for (int speidx=0; speidx < nSpectrum; speidx++) { - while (spectrumFreq > averageFreq) { - avgidx++; - averageFreq *= averageFrequencyIncrement; - } - spe2avg[speidx] = avgidx; - spectrumFreq += spectrumFrequencySpan; - } - nAverages = avgidx; - averages = new float[nAverages]; - peaks = new float[nAverages]; - peakHoldTimes = new int[nAverages]; - peakHoldTime = 0; // arbitrary - peakDecayRate = 0.9f; // arbitrary - linearEQIntercept = 1.0f; // unity -- no eq by default - linearEQSlope = 0.0f; // unity -- no eq by default -} - -void maxiFFTOctaveAnalyzer::calculate(float * fftData){ - - int last_avgidx = 0; // tracks when we've crossed into a new averaging bin, so store current average - float sum = 0.0f; // running total of spectrum data - int count = 0; // count of spectrums accumulated (for averaging) - for (int speidx=0; speidx < nSpectrum; speidx++) { - count++; - sum += fftData[speidx] * (linearEQIntercept + (float)(speidx) * linearEQSlope); - int avgidx = spe2avg[speidx]; - if (avgidx != last_avgidx) { - - for (int j = last_avgidx; j < avgidx; j++){ - averages[j] = sum / (float)(count); - } - count = 0; - sum = 0.0f; - } - last_avgidx = avgidx; - } - // the last average was probably not calculated... - if ((count > 0) && (last_avgidx < nAverages)){ - averages[last_avgidx] = sum / (float)(count); - } - - // update the peaks separately - for (int i=0; i < nAverages; i++) { - if (averages[i] >= peaks[i]) { - // save new peak level, also reset the hold timer - peaks[i] = averages[i]; - peakHoldTimes[i] = peakHoldTime; - } else { - // current average does not exceed peak, so hold or decay the peak - if (peakHoldTimes[i] > 0) { - peakHoldTimes[i]--; - } else { - peaks[i] *= peakDecayRate; - } - } - } -} diff --git a/ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maxiFFT.h b/ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maxiFFT.h deleted file mode 100644 index d099e84..0000000 --- a/ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maxiFFT.h +++ /dev/null @@ -1,128 +0,0 @@ -/* - * maximilian - * platform independent synthesis library using portaudio or rtaudio - * - * Created by Mick Grierson on 29/12/2009. - * Copyright 2009 Mick Grierson & Strangeloop Limited. All rights reserved. - * Thanks to the Goldsmiths Creative Computing Team. - * Special thanks to Arturo Castro for the PortAudio implementation. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, - * copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following - * conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - */ - -#ifndef _MAXI_FFT -#define _MAXI_FFT - -//#define _NO_VDSP //set this if you don't want to use apple's vDSP fft functions - - -#include "fft.h" -#include "stddef.h" - -class maxiFFT { - -public: - maxiFFT(){ - _fft = NULL; - buffer = magnitudes = phases = window = avgPower = NULL; - }; - ~maxiFFT(); - void setup(int fftSize, int windowSize, int hopSize); - bool process(float value); - float* magsToDB(); - float *magnitudes, *phases, *magnitudesDB; - float *avgPower; - int windowSize; - int hopSize; - int bins; - - //features - float spectralFlatness(); - float spectralCentroid(); - -private: - float *buffer, *window; - int pos; - float nextValue; - int fftSize; - fft *_fft; - bool newFFT; - -}; - -class maxiIFFT { - -public: - maxiIFFT(){ - _fft=0; - }; - ~maxiIFFT(); - void setup(int fftSize, int windowSize, int hopSize); - float process(float *magnitudes, float *phases); - -private: - float *ifftOut, *buffer, *window; - int windowSize; - int bins; - int hopSize; - int pos; - float nextValue; - int fftSize; - fft *_fft; -}; - - -class maxiFFTOctaveAnalyzer { -/*based on code by David Bollinger, http://www.davebollinger.com/ - */ -public: - - float samplingRate; // sampling rate in Hz (needed to calculate frequency spans) - int nSpectrum; // number of spectrum bins in the fft - int nAverages; // number of averaging bins here - int nAveragesPerOctave; // number of averages per octave as requested by user - float spectrumFrequencySpan; // the "width" of an fft spectrum bin in Hz - float firstOctaveFrequency; // the "top" of the first averaging bin here in Hz - float averageFrequencyIncrement; // the root-of-two multiplier between averaging bin frequencies - float * averages; // the actual averages - float * peaks; // peaks of the averages, aka "maxAverages" in other implementations - int * peakHoldTimes; // how long to hold THIS peak meter? decay if == 0 - int peakHoldTime; // how long do we hold peaks? (in fft frames) - float peakDecayRate; // how quickly the peaks decay: 0f=instantly .. 1f=not at all - int * spe2avg; // the mapping between spectrum[] indices and averages[] indices - // the fft's log equalizer() is no longer of any use (it would be nonsense to log scale - // the spectrum values into log-sized average bins) so here's a quick-and-dirty linear - // equalizer instead: - float linearEQSlope; // the rate of linear eq - float linearEQIntercept; // the base linear scaling used at the first averaging bin - // the formula is: spectrum[i] * (linearEQIntercept + i * linearEQSlope) - // so.. note that clever use of it can also provide a "gain" control of sorts - // (fe: set intercept to 2f and slope to 0f to double gain) - - void setup(float samplingRate, int nBandsInTheFFT, int nAveragesPerOctave); - - void calculate(float * fftData); - -}; - -#endif \ No newline at end of file diff --git a/ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maxiGrains.cpp b/ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maxiGrains.cpp deleted file mode 100644 index 951f3b5..0000000 --- a/ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maxiGrains.cpp +++ /dev/null @@ -1,6 +0,0 @@ -#include "maxiGrains.h" - - - - - diff --git a/ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maxiGrains.h b/ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maxiGrains.h deleted file mode 100644 index d17ffc9..0000000 --- a/ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maxiGrains.h +++ /dev/null @@ -1,443 +0,0 @@ - - -#ifndef _MAXI_GRAINS_H -#define _MAXI_GRAINS_H -#include "maximilian.h" - -#if defined(__APPLE_CC__) -#include "accelerate/accelerate.h"; -//Mac users can uncommment the line below to use Apple's accelerate framework for calculating grains. This gives ~300% speed improvement and better sound quality, but doesn't work well on all machines. -//#define MAXIGRAINFAST -#endif - -#define PI 3.1415926535897932384626433832795028841968 - -#include - -typedef unsigned long ulong; - -//window functions from http://en.wikipedia.org/wiki/Window_function#High-_and_moderate-resolution_windows - -struct hannWinFunctor { - inline double operator()(ulong windowLength, ulong windowPos) { - return 0.5 * (1.0 - cos((2.0 * PI * windowPos) / (windowLength - 1))); - } -}; - -//this window can produce clicks -struct hammingWinFunctor { - inline double operator()(ulong windowLength, ulong windowPos) { - return 0.54 - (0.46 * cos((2.0 * PI * windowPos) / (windowLength - 1))); - } -}; - - -struct cosineWinFunctor { - inline double operator()(ulong windowLength, ulong windowPos) { - return sin((PI * windowPos) / (windowLength - 1)); - } -}; - -struct rectWinFunctor { - inline double operator()(ulong windowLength, ulong windowPos) { - return 1; - } -}; - -struct triangleWinFunctor { - inline double operator()(ulong windowLength, ulong windowPos) { - return (2.0 / (windowLength-1.0)) * (((windowLength-1.0)/2.0) - fabs(windowPos - ((windowLength-1.0)/2.0))); - } -}; - -struct triangleNZWinFunctor { - //non zero end points - inline double operator()(ulong windowLength, ulong windowPos) { - return (2.0 / windowLength) * ((windowLength/2.0) - fabs(windowPos - ((windowLength-1.0)/2.0))); - } -}; - -struct blackmanHarrisWinFunctor { - inline double operator()(ulong windowLength, ulong windowPos) { - return 0.35875 - - (0.48829 * cos((2 * PI * windowPos) / (windowLength-1))) + - (0.14128 * cos((4 * PI * windowPos) / (windowLength-1))) + - (0.01168 * cos((6 * PI * windowPos) / (windowLength-1))); - } -}; - -struct blackmanNutallWinFunctor { - inline double operator()(ulong windowLength, ulong windowPos) { - return 0.3635819 - - (0.4891775 * cos((2 * PI * windowPos) / (windowLength-1))) + - (0.1365995 * cos((4 * PI * windowPos) / (windowLength-1))) + - (0.0106411 * cos((6 * PI * windowPos) / (windowLength-1))); - } -}; - -template -class maxiGrainWindowCache { -public: - unsigned int cacheSize; - - maxiGrainWindowCache() { - cacheSize = maxiSettings::sampleRate / 2.0; //allocate mem for up to 500ms grains - cache = (double**)malloc(cacheSize * sizeof(double*)); - for(int i=0; i < cacheSize; i++) { - cache[i] = NULL; - } - } - - ~maxiGrainWindowCache() { - for(int i=0; i < cacheSize; i++) { - if(NULL != cache[i]) { - delete[] cache[i]; - } - } - } - - double* getWindow(const unsigned int length) { - if (NULL == cache[length]) { - cache[length] = (double*)malloc(length * sizeof(double)); - for(int i=0; i < length; i++) { - cache[length][i] = F()(length, i); - } - } - return cache[length]; - } - -private: - double** cache; - -}; - -class maxiGrainBase { -public: - virtual double play() = 0; - bool finished; -}; - -template -class maxiGrain : public maxiGrainBase { -public: - maxiSample *sample; - double pos; - double dur; - ulong sampleStartPos; - ulong sampleIdx; - ulong sampleDur; - ulong sampleEndPos; - double freq; - double speed; - // F winFunc; - double inc; - double frequency; - double* window; -#if defined(__APPLE_CC__) && defined(MAXIGRAINFAST) - double* grainSamples; -#endif - /* - position between 0.0 and 1.0 - duration in seconds - */ - maxiGrain(maxiSample *sample, const double position, const double duration, const double speed, maxiGrainWindowCache *windowCache) :sample(sample), pos(position), dur(duration), speed(speed) - { - sampleStartPos = sample->length * pos; - sampleDur = dur * (double)sample->mySampleRate; - sampleDurMinusOne = sampleDur - 1; - sampleIdx = 0; - finished = 0; - freq = 1.0 / dur; - sampleEndPos = sampleStartPos + sampleDur; - frequency = freq * speed; - if (frequency > 0) { - pos = sampleStartPos; - }else{ - pos = sampleEndPos; - } - inc = sampleDur/(maxiSettings::sampleRate/frequency); - window = windowCache->getWindow(sampleDur); - -#if defined(__APPLE_CC__) && defined(MAXIGRAINFAST) - //premake the grain using fast vector functions, and quadratic interpolation - double *sourceData = (double*)malloc(sampleDur * sizeof(double)); - short* buffer = (short *)sample->myData; - //convert sample to double data - vDSP_vflt16D(buffer + sampleStartPos, 1, sourceData, 1, min(sampleDur, sample->length - sampleStartPos)); - //todo: wraping code - - grainSamples = (double*)malloc(sampleDur * sizeof(double)); - //make list of interpolation indexes - double* interpIndexes = (double*)malloc(sampleDur * sizeof(double)); - double interpPos = sampleStartPos; - for(int i=0; i < sampleDur; i++) { - interpIndexes[i] = interpPos - sampleStartPos; - interpPos += fabs(inc); - } - vDSP_vqintD(sourceData, interpIndexes, 1, grainSamples, 1, sampleDur, sampleDur); - if (frequency < 0) { - vDSP_vrvrsD(grainSamples,1, sampleDur); - } - static double divFactor = 32767.0; - vDSP_vsdivD(grainSamples, 1, &divFactor, grainSamples, 1, sampleDur); - vDSP_vmulD(grainSamples, 1, window, 1, grainSamples, 1, sampleDur); - delete sourceData, interpIndexes; -#endif - } - - ~maxiGrain() { -#if defined(__APPLE_CC__) && defined(MAXIGRAINFAST) - delete[] grainSamples; -#endif - } - - double play() { - double output = 0.0; - if (!finished) { -#if defined(__APPLE_CC__) && defined(MAXIGRAINFAST) - output = grainSamples[sampleIdx]; -#else - envValue = window[sampleIdx]; - double remainder; - long a,b; - short* buffer = (short *)sample->myData; - if (frequency >0.) { - pos += inc; - long posl = static_cast(pos); - remainder = pos - posl; - a=posl++; - if (a>=sample->length) { - a=posl-1; - } - b = posl+2; - if (b>=sample->length) { - b=sample->length-1; - } - output = (double) ((1-remainder) * buffer[a] + - remainder * buffer[b])/32767;//linear interpolation - } else { - frequency=frequency-(frequency+frequency); - pos += inc; - long posl = static_cast(pos); - remainder = pos - posl; - if (posl-1>=0) { - a=posl-1; - } - else { - a=0; - } - if (posl-2>=0) { - b=posl-2; - } - else { - b=0; - } - output = (double) ((-1-remainder) * buffer[a] + - remainder * buffer[b])/32767;//linear interpolation - } - output *= envValue; -#endif - } - sampleIdx++; - if (sampleIdx >= sampleDur) finished = 1; - return output; - } - -private: - maxiGrain(); - double envValue; - ulong sampleDurMinusOne; -}; - - -typedef list grainList; - -class maxiGrainPlayer { -public: - grainList grains; - maxiSample *sample; - - maxiGrainPlayer(maxiSample *sample) : sample(sample) { - } - - void addGrain(maxiGrainBase *g) { - grains.push_back(g); - } - - double play() { - double total = 0.0; - for(grainList::iterator it = grains.begin(); it != grains.end(); ++it) { - total += (*it)->play(); - if ((*it)->finished) { - delete(*it); - grains.erase(it); - } - } - return total; - } -}; - -template -class maxiTimestretch { -public: - double position; - long cycles; - maxiSample *sample; - maxiGrainPlayer *grainPlayer; - maxiGrainWindowCache windowCache; - double randomOffset; - - maxiTimestretch(maxiSample *sample) : sample(sample) { - position=0; - cycles=0; - grainPlayer = new maxiGrainPlayer(sample); - randomOffset=0; - } - - ~maxiTimestretch() { - delete grainPlayer; - } - - double play(double speed, double grainLength, int overlaps, double posMod=0.0) { - position = position + (1 * speed); - cycles++; - if (position > sample->length) position=0; - if (position < 0) position = sample->length; - double cycleLength = grainLength * maxiSettings::sampleRate / overlaps; - double cycleMod = fmod(cycles, cycleLength + randomOffset); - if (0 == floor(cycleMod)) { - // cout << cycleMod << endl; - speed = (speed > 0 ? 1 : -1); - // speed = speed - ((cycleMod / cycleLength) * 0.1); - maxiGrain *g = new maxiGrain(sample, max(min(1.0,(position / sample->length) + posMod),0.0), grainLength, speed, &windowCache); - grainPlayer->addGrain(g); - // cout << grainPlayer->grains.size() << endl; - // randomOffset = rand() % 10; - // randomOffset = rand() % 10; - } - return grainPlayer->play(); - } - - double play2(double pos, double grainLength, int overlaps) { - cycles++; - pos *= sample->length; - if (0 == floor(fmod(cycles, grainLength * maxiSettings::sampleRate / overlaps))) { - maxiGrain *g = new maxiGrain(sample, max(min(1.0,(pos / sample->length)),0.0), grainLength, 1, &windowCache); - grainPlayer->addGrain(g); - } - return grainPlayer->play(); - } -}; - -//in maxiTimeStretch, the speed is either 1 or -1, and the actual speed value only affects the grain position -//in maxiPitchShift, speed is uncoupled from position and allowed to set it's value incrementally, resulting in pitchshift. -//with both high speed values and negative speed values there are some terrific artefacts! - -template -class maxiPitchShift { -public: - double position; - long cycles; - maxiSample *sample; - maxiGrainPlayer *grainPlayer; - maxiGrainWindowCache windowCache; - double randomOffset; - - maxiPitchShift(maxiSample *sample) : sample(sample) { - position=0; - cycles=0; - grainPlayer = new maxiGrainPlayer(sample); - randomOffset=0; - } - - ~maxiPitchShift() { - delete grainPlayer; - } - - double play(double speed, double grainLength, int overlaps, double posMod=0.0) { - position = position + 1; - cycles++; - if (position > sample->length) position=0; - if (position < 0) position = sample->length; - double cycleLength = grainLength * maxiSettings::sampleRate / overlaps; - double cycleMod = fmod(cycles, cycleLength + randomOffset); - if (0 == floor(cycleMod)) { - // cout << cycleMod << endl; - //speed = (speed > 0 ? 1 : -1); - speed = speed - ((cycleMod / cycleLength) * 0.1); - maxiGrain *g = new maxiGrain(sample, max(min(1.0,(position / sample->length) + posMod),0.0), grainLength, speed, &windowCache); - grainPlayer->addGrain(g); - // cout << grainPlayer->grains.size() << endl; - // randomOffset = rand() % 10; - // randomOffset = rand() % 10; - } - return grainPlayer->play(); - } - - double play2(double pos, double grainLength, int overlaps) { - cycles++; - pos *= sample->length; - if (0 == floor(fmod(cycles, grainLength * maxiSettings::sampleRate / overlaps))) { - maxiGrain *g = new maxiGrain(sample, max(min(1.0,(pos / sample->length)),0.0), grainLength, 1, &windowCache); - grainPlayer->addGrain(g); - } - return grainPlayer->play(); - } -}; - -//and here's maxiPitchStretch. Args to the play function are basically speed for 'pitch' and rate for playback rate. -//the rest is the same. - -template -class maxiPitchStretch { -public: - double position; - long cycles; - maxiSample *sample; - maxiGrainPlayer *grainPlayer; - maxiGrainWindowCache windowCache; - double randomOffset; - - maxiPitchStretch(maxiSample *sample) : sample(sample) { - position=0; - cycles=0; - grainPlayer = new maxiGrainPlayer(sample); - randomOffset=0; - } - - ~maxiPitchStretch() { - delete grainPlayer; - } - - double play(double speed, double rate, double grainLength, int overlaps, double posMod=0.0) { - position = position + (1 * rate); - cycles++; - if (position > sample->length) position=0; - if (position < 0) position = sample->length; - double cycleLength = grainLength * maxiSettings::sampleRate / overlaps; - double cycleMod = fmod(cycles, cycleLength + randomOffset); - if (0 == floor(cycleMod)) { - // cout << cycleMod << endl; - //speed = (speed > 0 ? 1 : -1); - speed = speed - ((cycleMod / cycleLength) * 0.1); - maxiGrain *g = new maxiGrain(sample, max(min(1.0,(position / sample->length) + posMod),0.0), grainLength, speed, &windowCache); - grainPlayer->addGrain(g); - // cout << grainPlayer->grains.size() << endl; - // randomOffset = rand() % 10; - // randomOffset = rand() % 10; - } - return grainPlayer->play(); - } - - double play2(double pos, double grainLength, int overlaps) { - cycles++; - pos *= sample->length; - if (0 == floor(fmod(cycles, grainLength * maxiSettings::sampleRate / overlaps))) { - maxiGrain *g = new maxiGrain(sample, max(min(1.0,(pos / sample->length)),0.0), grainLength, 1, &windowCache); - grainPlayer->addGrain(g); - } - return grainPlayer->play(); - } -}; - -#endif \ No newline at end of file diff --git a/ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maxiMFCC.cpp b/ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maxiMFCC.cpp deleted file mode 100644 index e72fd75..0000000 --- a/ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maxiMFCC.cpp +++ /dev/null @@ -1,78 +0,0 @@ -/* - * maxiMFCC.cpp - * mfccs - * - * Created by Chris on 08/03/2011. - * Copyright 2011 Goldsmiths Creative Computing. All rights reserved. - * - */ - -#include "maxiMFCC.h" - - - -template <> -void maxiMFCCAnalyser::dct(double *mfccs) { - vDSP_mmulD(melBands, 1, dctMatrix, 1, mfccs, 1, 1, numCoeffs, numFilters); - double n = (double) numCoeffs; - vDSP_vsdivD(mfccs, 1, &n, mfccs, 1, numCoeffs); -} - -template <> -void maxiMFCCAnalyser::dct(float *mfccs) { - vDSP_mmul(melBands, 1, dctMatrix, 1, mfccs, 1, 1, numCoeffs, numFilters); - float n = (float) numCoeffs; - vDSP_vsdiv(mfccs, 1, &n, mfccs, 1, numCoeffs); -} - -template <> -void maxiMFCCAnalyser::melFilterAndLogSquare(float* powerSpectrum) { -#ifdef __APPLE_CC__ - //conv to double - vDSP_vspdp(powerSpectrum, 1, doubleSpec, 1, numBins); - // vDSP_mmulD(doubleSpec, 1, melFilters, 1, melBands, 1, 1, 42, 512); - vDSP_mmulD(doubleSpec, 1, melFilters, 1, melBands, 1, 1, numFilters, numBins); -#endif - melFilterAndLogSq_Part2(); -} - - -template <> -void maxiMFCCAnalyser::melFilterAndLogSquare(float* powerSpectrum) { -#ifdef __APPLE_CC__ - vDSP_mmul(powerSpectrum, 1, melFilters, 1, melBands, 1, 1, numFilters, numBins); -#endif - melFilterAndLogSq_Part2(); -} - -template -void maxiMFCCAnalyser::melFilterAndLogSq_Part2() { -#ifdef __APPLE_CC__ -#else - for (int filter = 0;filter < numFilters;filter++) { - melBands[filter] = 0.0; - for (int bin=0;bin 0.000001 ? log(melBands[filter] * melBands[filter]) : 0.0; - } -} - - - - - - - - - - - - diff --git a/ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maxiMFCC.h b/ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maxiMFCC.h deleted file mode 100644 index 60bfe04..0000000 --- a/ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maxiMFCC.h +++ /dev/null @@ -1,204 +0,0 @@ -/* - * maxiMFCC.h - * mfccs - * - * Created by Chris on 08/03/2011. - * Copyright 2011 Goldsmiths Creative Computing. All rights reserved. - * - - Based on Matthew Yee-King's MFCCMYK java class - */ - -#pragma once -#pragma pack(16) - -#include "maxiFFT.h" -#include -#include -#ifdef __APPLE_CC__ -#include -#endif - -using namespace std; - - -// implements this formula: -// mel = 2595 log10(Hz/700 + 1) -inline double hzToMel(double hz){ - return 2595.0 * (log10(hz/700.0 + 1.0)); -} - -// implements this formula -// Hz = 700 (10^(mel/2595) - 1) -inline double melToHz(double mel){ - return 700.0 * (pow(10, mel/2595.0) - 1.0); -} - -template -class maxiMFCCAnalyser { -public: - T *melBands; - maxiMFCCAnalyser():melFilters(NULL),dctMatrix(NULL), melBands(NULL){}; - ~maxiMFCCAnalyser() { - if (melFilters) { - delete[] melFilters; - delete[] melBands; - delete[] dctMatrix; -#ifdef __APPLE_CC__ - delete doubleSpec; -#endif - } - } - - void setup(unsigned int numBins, unsigned int numFilters, unsigned int numCoeffs, double minFreq, double maxFreq, unsigned int sampleRate) - { - this->numFilters = numFilters; - this->numCoeffs = numCoeffs; - this->minFreq = minFreq; - this->maxFreq = maxFreq; - this->sampleRate = sampleRate; - this->numBins = numBins; - melFilters = NULL; - melBands = (T*) malloc(sizeof(T) * numFilters); -#ifdef __APPLE_CC__ - doubleSpec = (T*)malloc(sizeof(T) * numBins); -#endif - //create new matrix - dctMatrix = (T*)malloc(sizeof(T) * numCoeffs * numFilters); - calcMelFilterBank(sampleRate, numBins); - createDCTCoeffs(); - } - void mfcc(float* powerSpectrum, T *mfccs) { - melFilterAndLogSquare(powerSpectrum); - dct(mfccs); - } - -private: - unsigned int numFilters, numCoeffs; - double minFreq, maxFreq; - unsigned int sampleRate; - T *melFilters; - unsigned int numBins; - T *dctMatrix; -#ifdef __APPLE_CC__ - T *doubleSpec; -#endif - -#ifdef __APPLE_CC__ - void dct(T *mfccs); //define later -#else - void dct(T *mfccs) { - for(int i=0; i < numCoeffs; i++) { - mfccs[i] = 0.0; - } - for(int i=0; i < numCoeffs; i++ ) { - for(int j=0; j < numFilters; j++) { - int idx = i + (j * numCoeffs); - mfccs[i] += (dctMatrix[idx] * melBands[j]); - } - } - for(int i=0; i < numCoeffs; i++) { - mfccs[i] /= numCoeffs; - } - } -#endif - - void melFilterAndLogSquare(float* powerSpectrum); - void melFilterAndLogSq_Part2(); - - - void calcMelFilterBank(double sampleRate, int numBins) { - - double mel, dMel, maxMel, minMel, nyquist, binFreq, start, end, thisF, nextF, prevF; - int numValidBins; - - // ignore bins over nyquist - numValidBins = numBins; - - nyquist = sampleRate/2; - if (maxFreq > nyquist) { - maxFreq = nyquist; - } - - maxMel = hzToMel(maxFreq); - minMel = hzToMel(minFreq); - - dMel = (maxMel - minMel) / (numFilters + 2 - 1); - - T *filtPos = (T*) malloc(sizeof(double) * (numFilters + 2)); - - // first generate an array of start and end freqs for each triangle - mel = minMel; - for (int i=0;i nextF || binFreq < prevF) { - // outside this filter - melFilters[idx] = 0; - //cout << "MFCCMYK: filter at " < maxiMFCC; -//typedef maxiMFCCAnalyser maxiFloatMFCC; diff --git a/ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maximilian.cpp b/ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maximilian.cpp deleted file mode 100644 index e75ddf5..0000000 --- a/ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maximilian.cpp +++ /dev/null @@ -1,1027 +0,0 @@ - -/* - * maximilian.cpp - * platform independent synthesis library using portaudio or rtaudio - * - * Created by Mick Grierson on 29/12/2009. - * Copyright 2009 Mick Grierson & Strangeloop Limited. All rights reserved. - * Thanks to the Goldsmiths Creative Computing Team. - * Special thanks to Arturo Castro for the PortAudio implementation. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, - * copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following - * conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - */ - -#include "maximilian.h" -#include "math.h" - - -//int channels=2; -//int samplerate=44100; -//int buffersize=1024; -float chandiv= 1; - -int maxiSettings::sampleRate = 44100; -int maxiSettings::channels = 2; -int maxiSettings::bufferSize = 1024; - -double sineBuffer[514]={0,0.012268,0.024536,0.036804,0.049042,0.06131,0.073547,0.085785,0.097992,0.1102,0.12241,0.13455,0.1467,0.15884,0.17093,0.18301,0.19507,0.20709,0.21909,0.23105,0.24295,0.25485,0.26669,0.2785,0.29025,0.30197,0.31366,0.32529,0.33685,0.34839,0.35986,0.37128,0.38266,0.39395,0.40521,0.41641,0.42752,0.4386,0.44958,0.46051,0.47137,0.48215,0.49286,0.50351,0.51407,0.52457,0.53497,0.54529,0.55554,0.5657,0.57578,0.58575,0.59567,0.60547,0.6152,0.62482,0.63437,0.6438,0.65314,0.66238,0.67151,0.68057,0.68951,0.69833,0.70706,0.7157,0.72421,0.7326,0.74091,0.74908,0.75717,0.76514,0.77298,0.7807,0.7883,0.79581,0.80316,0.81042,0.81754,0.82455,0.83142,0.8382,0.84482,0.85132,0.8577,0.86392,0.87006,0.87604,0.88187,0.8876,0.89319,0.89862,0.90396,0.90912,0.91415,0.91907,0.92383,0.92847,0.93295,0.93729,0.9415,0.94556,0.94949,0.95325,0.95691,0.96039,0.96375,0.96692,0.97,0.9729,0.97565,0.97827,0.98074,0.98306,0.98523,0.98724,0.98914,0.99084,0.99243,0.99387,0.99515,0.99628,0.99725,0.99808,0.99875,0.99927,0.99966,0.99988,0.99997,0.99988,0.99966,0.99927,0.99875,0.99808,0.99725,0.99628,0.99515,0.99387,0.99243,0.99084,0.98914,0.98724,0.98523,0.98306,0.98074,0.97827,0.97565,0.9729,0.97,0.96692,0.96375,0.96039,0.95691,0.95325,0.94949,0.94556,0.9415,0.93729,0.93295,0.92847,0.92383,0.91907,0.91415,0.90912,0.90396,0.89862,0.89319,0.8876,0.88187,0.87604,0.87006,0.86392,0.8577,0.85132,0.84482,0.8382,0.83142,0.82455,0.81754,0.81042,0.80316,0.79581,0.7883,0.7807,0.77298,0.76514,0.75717,0.74908,0.74091,0.7326,0.72421,0.7157,0.70706,0.69833,0.68951,0.68057,0.67151,0.66238,0.65314,0.6438,0.63437,0.62482,0.6152,0.60547,0.59567,0.58575,0.57578,0.5657,0.55554,0.54529,0.53497,0.52457,0.51407,0.50351,0.49286,0.48215,0.47137,0.46051,0.44958,0.4386,0.42752,0.41641,0.40521,0.39395,0.38266,0.37128,0.35986,0.34839,0.33685,0.32529,0.31366,0.30197,0.29025,0.2785,0.26669,0.25485,0.24295,0.23105,0.21909,0.20709,0.19507,0.18301,0.17093,0.15884,0.1467,0.13455,0.12241,0.1102,0.097992,0.085785,0.073547,0.06131,0.049042,0.036804,0.024536,0.012268,0,-0.012268,-0.024536,-0.036804,-0.049042,-0.06131,-0.073547,-0.085785,-0.097992,-0.1102,-0.12241,-0.13455,-0.1467,-0.15884,-0.17093,-0.18301,-0.19507,-0.20709,-0.21909,-0.23105,-0.24295,-0.25485,-0.26669,-0.2785,-0.29025,-0.30197,-0.31366,-0.32529,-0.33685,-0.34839,-0.35986,-0.37128,-0.38266,-0.39395,-0.40521,-0.41641,-0.42752,-0.4386,-0.44958,-0.46051,-0.47137,-0.48215,-0.49286,-0.50351,-0.51407,-0.52457,-0.53497,-0.54529,-0.55554,-0.5657,-0.57578,-0.58575,-0.59567,-0.60547,-0.6152,-0.62482,-0.63437,-0.6438,-0.65314,-0.66238,-0.67151,-0.68057,-0.68951,-0.69833,-0.70706,-0.7157,-0.72421,-0.7326,-0.74091,-0.74908,-0.75717,-0.76514,-0.77298,-0.7807,-0.7883,-0.79581,-0.80316,-0.81042,-0.81754,-0.82455,-0.83142,-0.8382,-0.84482,-0.85132,-0.8577,-0.86392,-0.87006,-0.87604,-0.88187,-0.8876,-0.89319,-0.89862,-0.90396,-0.90912,-0.91415,-0.91907,-0.92383,-0.92847,-0.93295,-0.93729,-0.9415,-0.94556,-0.94949,-0.95325,-0.95691,-0.96039,-0.96375,-0.96692,-0.97,-0.9729,-0.97565,-0.97827,-0.98074,-0.98306,-0.98523,-0.98724,-0.98914,-0.99084,-0.99243,-0.99387,-0.99515,-0.99628,-0.99725,-0.99808,-0.99875,-0.99927,-0.99966,-0.99988,-0.99997,-0.99988,-0.99966,-0.99927,-0.99875,-0.99808,-0.99725,-0.99628,-0.99515,-0.99387,-0.99243,-0.99084,-0.98914,-0.98724,-0.98523,-0.98306,-0.98074,-0.97827,-0.97565,-0.9729,-0.97,-0.96692,-0.96375,-0.96039,-0.95691,-0.95325,-0.94949,-0.94556,-0.9415,-0.93729,-0.93295,-0.92847,-0.92383,-0.91907,-0.91415,-0.90912,-0.90396,-0.89862,-0.89319,-0.8876,-0.88187,-0.87604,-0.87006,-0.86392,-0.8577,-0.85132,-0.84482,-0.8382,-0.83142,-0.82455,-0.81754,-0.81042,-0.80316,-0.79581,-0.7883,-0.7807,-0.77298,-0.76514,-0.75717,-0.74908,-0.74091,-0.7326,-0.72421,-0.7157,-0.70706,-0.69833,-0.68951,-0.68057,-0.67151,-0.66238,-0.65314,-0.6438,-0.63437,-0.62482,-0.6152,-0.60547,-0.59567,-0.58575,-0.57578,-0.5657,-0.55554,-0.54529,-0.53497,-0.52457,-0.51407,-0.50351,-0.49286,-0.48215,-0.47137,-0.46051,-0.44958,-0.4386,-0.42752,-0.41641,-0.40521,-0.39395,-0.38266,-0.37128,-0.35986,-0.34839,-0.33685,-0.32529,-0.31366,-0.30197,-0.29025,-0.2785,-0.26669,-0.25485,-0.24295,-0.23105,-0.21909,-0.20709,-0.19507,-0.18301,-0.17093,-0.15884,-0.1467,-0.13455,-0.12241,-0.1102,-0.097992,-0.085785,-0.073547,-0.06131,-0.049042,-0.036804,-0.024536,-0.012268,0,0.012268 -}; - -double mtofarray[129]={0, 8.661957, 9.177024, 9.722718, 10.3, 10.913383, 11.562325, 12.25, 12.978271, 13.75, 14.567617, 15.433853, 16.351599, 17.323914, 18.354048, 19.445436, 20.601723, 21.826765, 23.124651, 24.5, 25.956543, 27.5, 29.135235, 30.867706, 32.703197, 34.647827, 36.708096, 38.890873, 41.203445, 43.65353, 46.249302, 49., 51.913086, 55., 58.27047, 61.735413, 65.406395, 69.295654, 73.416191, 77.781746, 82.406891, 87.30706, 92.498604, 97.998856, 103.826172, 110., 116.540939, 123.470825, 130.81279, 138.591309, 146.832382, 155.563492, 164.813782, 174.61412, 184.997208, 195.997711, 207.652344, 220., 233.081879, 246.94165, 261.62558, 277.182617,293.664764, 311.126984, 329.627563, 349.228241, 369.994415, 391.995422, 415.304688, 440., 466.163757, 493.883301, 523.25116, 554.365234, 587.329529, 622.253967, 659.255127, 698.456482, 739.988831, 783.990845, 830.609375, 880., 932.327515, 987.766602, 1046.502319, 1108.730469, 1174.659058, 1244.507935, 1318.510254, 1396.912964, 1479.977661, 1567.981689, 1661.21875, 1760., 1864.655029, 1975.533203, 2093.004639, 2217.460938, 2349.318115, 2489.015869, 2637.020508, 2793.825928, 2959.955322, 3135.963379, 3322.4375, 3520., 3729.31, 3951.066406, 4186.009277, 4434.921875, 4698.63623, 4978.031738, 5274.041016, 5587.651855, 5919.910645, 6271.926758, 6644.875, 7040., 7458.620117, 7902.132812, 8372.018555, 8869.84375, 9397.272461, 9956.063477, 10548.082031, 11175.303711, 11839.821289, 12543.853516, 13289.75}; - -void setup();//use this to do any initialisation if you want. - -void play(double *channels);//run dac! - -maxiOsc::maxiOsc(){ - phase = 0.0; - // memset(phases,0,500); - // memset(freqs,0,500); -} - -double maxiOsc::noise() { - //always the same unless you seed it. - float r = rand()/(float)RAND_MAX; - output=r*2-1; - return(output); -} - -void maxiOsc::phaseReset(double phaseIn) { - phase=phaseIn; - -} - -double maxiOsc::sinewave(double frequency) { - output=sin (phase*(TWOPI)); - if ( phase >= 1.0 ) phase -= 1.0; - phase += (1./(maxiSettings::sampleRate/(frequency))); - return(output); - -} - -double maxiOsc::sinebuf4(double frequency) { - double remainder; - double a,b,c,d,a1,a2,a3; - phase += 512./(maxiSettings::sampleRate/(frequency)); - if ( phase >= 511 ) phase -=512; - remainder = phase - floor(phase); - - if (phase==0) { - a=sineBuffer[(long) 512]; - b=sineBuffer[(long) phase]; - c=sineBuffer[(long) phase+1]; - d=sineBuffer[(long) phase+2]; - - } else { - a=sineBuffer[(long) phase-1]; - b=sineBuffer[(long) phase]; - c=sineBuffer[(long) phase+1]; - d=sineBuffer[(long) phase+2]; - - } - - a1 = 0.5f * (c - a); - a2 = a - 2.5 * b + 2.f * c - 0.5f * d; - a3 = 0.5f * (d - a) + 1.5f * (b - c); - output = double (((a3 * remainder + a2) * remainder + a1) * remainder + b); - return(output); -} - -double maxiOsc::sinebuf(double frequency) { - double remainder; - phase += 512./(maxiSettings::sampleRate/(frequency*chandiv)); - if ( phase >= 511 ) phase -=512; - remainder = phase - floor(phase); - output = (double) ((1-remainder) * sineBuffer[1+ (long) phase] + remainder * sineBuffer[2+(long) phase]); - return(output); -} - -double maxiOsc::coswave(double frequency) { - output=cos (phase*(TWOPI)); - if ( phase >= 1.0 ) phase -= 1.0; - phase += (1./(maxiSettings::sampleRate/(frequency))); - return(output); - -} - -double maxiOsc::phasor(double frequency) { - output=phase; - if ( phase >= 1.0 ) phase -= 1.0; - phase += (1./(maxiSettings::sampleRate/(frequency))); - return(output); -} - -double maxiOsc::square(double frequency) { - if (phase<0.5) output=-1; - if (phase>0.5) output=1; - if ( phase >= 1.0 ) phase -= 1.0; - phase += (1./(maxiSettings::sampleRate/(frequency))); - return(output); -} - -double maxiOsc::pulse(double frequency, double duty) { - if (duty<0.) duty=0; - if (duty>1.) duty=1; - if ( phase >= 1.0 ) phase -= 1.0; - phase += (1./(maxiSettings::sampleRate/(frequency))); - if (phaseduty) output=1.; - return(output); -} - -double maxiOsc::phasor(double frequency, double startphase, double endphase) { - output=phase; - if (phase= endphase ) phase = startphase; - phase += ((endphase-startphase)/(maxiSettings::sampleRate/(frequency))); - return(output); -} - - -double maxiOsc::saw(double frequency) { - - output=phase; - if ( phase >= 1.0 ) phase -= 2.0; - phase += (1./(maxiSettings::sampleRate/(frequency))); - return(output); - -} - -double maxiOsc::triangle(double frequency) { - if ( phase >= 1.0 ) phase -= 1.0; - phase += (1./(maxiSettings::sampleRate/(frequency))); - if (phase <= 0.5 ) { - output =((phase)*4)-1; - } else { - output =((0.5-phase)*4)-1; - } - return(output); - -} - -//I like this. -double maxiEnvelope::line(int numberofsegments,double segments[1000]) { - if (isPlaying==1) {//only make a sound once you've been triggered - - period=2./(segments[valindex+1]*0.004); - nextval=segments[valindex+2]; - currentval=segments[valindex]; - if (currentval-amplitude > 0.0000001 && valindex < numberofsegments) { - amplitude += ((currentval-startval)/(maxiSettings::sampleRate/period)); - } else if (currentval-amplitude < -0.0000001 && valindex < numberofsegments) { - amplitude -= (((currentval-startval)*(-1))/(maxiSettings::sampleRate/period)); - } else if (valindex >numberofsegments-1) { - valindex=numberofsegments-2; - } else { - valindex=valindex+2; - startval=currentval; - } - output=amplitude; - - } - else { - output=0; - - } - return(output); -} - -//and this -void maxiEnvelope::trigger(int index, double amp) { - isPlaying=1;//ok the envelope is being used now. - valindex=index; - amplitude=amp; - -} - -//and this - -maxiDelayline::maxiDelayline() { - memory[88200]=NULL; - -} - - -double maxiDelayline::dl(double input, int size, double feedback) { - if ( phase >=size ) { - phase = 0; - } - memory[phase]=(memory[phase]*feedback)+(input*feedback)*0.5; - phase+=1; - output=memory[phase]; - return(output); - -} - -double maxiDelayline::dl(double input, int size, double feedback, int position) { - if ( phase >=size ) phase = 0; - if ( position >=size ) position = 0; - memory[phase]=(memory[phase]*feedback)+(input*feedback)*chandiv; - phase+=1; - output=memory[position]; - return(output); - -} - -//I particularly like these. cutoff between 0 and 1 -double maxiFilter::lopass(double input, double cutoff) { - output=outputs[0] + cutoff*(input-outputs[0]); - outputs[0]=output; - return(output); -} -//as above -double maxiFilter::hipass(double input, double cutoff) { - output=input-(outputs[0] + cutoff*(input-outputs[0])); - outputs[0]=output; - return(output); -} -//awesome. cuttof is freq in hz. res is between 1 and whatever. Watch out! -double maxiFilter::lores(double input,double cutoff1, double resonance) { - cutoff=cutoff1*0.5; - if (cutoff<10) cutoff=10; - if (cutoff>(maxiSettings::sampleRate*0.5)) cutoff=(maxiSettings::sampleRate*0.5); - if (resonance<1.) resonance = 1.; - z=cos(TWOPI*cutoff/maxiSettings::sampleRate); - c=2-2*z; - double r=(sqrt(2.0)*sqrt(-pow((z-1.0),3.0))+resonance*(z-1))/(resonance*(z-1)); - x=x+(input-y)*c; - y=y+x; - x=x*r; - output=y; - return(output); -} - -//working hires filter -double maxiFilter::hires(double input,double cutoff1, double resonance) { - cutoff=cutoff1*0.5; - if (cutoff<10) cutoff=10; - if (cutoff>(maxiSettings::sampleRate*0.5)) cutoff=(maxiSettings::sampleRate*0.5); - if (resonance<1.) resonance = 1.; - z=cos(TWOPI*cutoff/maxiSettings::sampleRate); - c=2-2*z; - double r=(sqrt(2.0)*sqrt(-pow((z-1.0),3.0))+resonance*(z-1))/(resonance*(z-1)); - x=x+(input-y)*c; - y=y+x; - x=x*r; - output=input-y; - return(output); -} - -//This works a bit. Needs attention. -double maxiFilter::bandpass(double input,double cutoff1, double resonance) { - cutoff=cutoff1; - if (cutoff>(maxiSettings::sampleRate*0.5)) cutoff=(maxiSettings::sampleRate*0.5); - if (resonance>=1.) resonance=0.999999; - z=cos(TWOPI*cutoff/maxiSettings::sampleRate); - inputs[0] = (1-resonance)*(sqrt(resonance*(resonance-4.0*pow(z,2.0)+2.0)+1)); - inputs[1] = 2*z*resonance; - inputs[2] = pow((resonance*-1),2); - - output=inputs[0]*input+inputs[1]*outputs[1]+inputs[2]*outputs[2]; - outputs[2]=outputs[1]; - outputs[1]=output; - return(output); -} - -//stereo bus -double *maxiMix::stereo(double input,double two[2],double x) { - if (x>1) x=1; - if (x<0) x=0; - two[0]=input*sqrt(1.0-x); - two[1]=input*sqrt(x); - return(two); -} - -//quad bus -double *maxiMix::quad(double input,double four[4],double x,double y) { - if (x>1) x=1; - if (x<0) x=0; - if (y>1) y=1; - if (y<0) y=0; - four[0]=input*sqrt((1.0-x)*y); - four[1]=input*sqrt((1.0-x)*(1.0-y)); - four[2]=input*sqrt(x*y); - four[3]=input*sqrt(x*(1.0-y)); - return(four); -} - -//ambisonic bus -double *maxiMix::ambisonic(double input,double eight[8],double x,double y,double z) { - if (x>1) x=1; - if (x<0) x=0; - if (y>1) y=1; - if (y<0) y=0; - if (z>1) y=1; - if (z<0) y=0; - eight[0]=input*(sqrt((1.0-x)*y)*1.0-z); - eight[1]=input*(sqrt((1.0-x)*(1.0-y))*1.0-z); - eight[2]=input*(sqrt(x*y)*1.0-z); - eight[3]=input*(sqrt(x*(1.0-y))*1.0-z); - eight[4]=input*(sqrt((1.0-x)*y)*z); - eight[5]=input*(sqrt((1.0-x)*(1.0-y))*z); - eight[6]=input*sqrt((x*y)*z); - eight[7]=input*sqrt((x*(1.0-y))*z); - return(eight); -} - - -bool maxiSample::load(string fileName, int channel) { - myPath = fileName; - readChannel=channel; - return read(); -} - -void maxiSample::trigger() { - position = 0; -} - -bool maxiSample::read() -{ - bool result; - ifstream inFile( myPath.c_str(), ios::in | ios::binary); - result = inFile; - if (inFile) { - bool datafound = false; - inFile.seekg(4, ios::beg); - inFile.read( (char*) &myChunkSize, 4 ); // read the ChunkSize - - inFile.seekg(16, ios::beg); - inFile.read( (char*) &mySubChunk1Size, 4 ); // read the SubChunk1Size - - //inFile.seekg(20, ios::beg); - inFile.read( (char*) &myFormat, sizeof(short) ); // read the file format. This should be 1 for PCM - - //inFile.seekg(22, ios::beg); - inFile.read( (char*) &myChannels, sizeof(short) ); // read the # of channels (1 or 2) - - //inFile.seekg(24, ios::beg); - inFile.read( (char*) &mySampleRate, sizeof(int) ); // read the samplerate - - //inFile.seekg(28, ios::beg); - inFile.read( (char*) &myByteRate, sizeof(int) ); // read the byterate - - //inFile.seekg(32, ios::beg); - inFile.read( (char*) &myBlockAlign, sizeof(short) ); // read the blockalign - - //inFile.seekg(34, ios::beg); - inFile.read( (char*) &myBitsPerSample, sizeof(short) ); // read the bitspersample - - //ignore any extra chunks - char chunkID[5]=""; - chunkID[4] = 0; - int filePos = 36; - while(!datafound && !inFile.eof()) { - inFile.seekg(filePos, ios::beg); - inFile.read((char*) &chunkID, sizeof(char) * 4); - inFile.seekg(filePos + 4, ios::beg); - inFile.read( (char*) &myDataSize, sizeof(int) ); // read the size of the data - filePos += 8; - if (strcmp(chunkID,"data") == 0) { - datafound = true; - }else{ - filePos += myDataSize; - } - } - - // read the data chunk - myData = (char*) malloc(myDataSize * sizeof(char)); - inFile.seekg(filePos, ios::beg); - inFile.read(myData, myDataSize); - length=myDataSize*(0.5/myChannels); - inFile.close(); // close the input file - - if (myChannels>1) { - int position=0; - int channel=readChannel*2; - for (int i=channel;ilength) position=0; - output = - (double) ((1-remainder) * buffer[1+ (long) position] + remainder * buffer[2+(long) position])/32767;//linear interpolation - return(output); -} - -double maxiSample::playOnce() { - // long length=myDataSize*(0.5/myChannels); - double remainder; - short* buffer = (short *)myData; - position=(position+1); - remainder = position - (long) position; - if ((long) position=0) { - - if ((long) position>=length-1) position=1; - remainder = position - floor(position); - if (position+1=0) { - a=position-1; - - } - else { - a=0; - } - if (position-2>=0) { - b=position-2; - } - else { - b=0; - } - output = (double) ((-1-remainder) * buffer[a] + remainder * buffer[b])/32767;//linear interpolation - } - return(output); -} - -double maxiSample::play(double frequency, double start, double end) { - return play(frequency, start, end, position); -} - -double maxiSample::play(double frequency, double start, double end, double &pos) { - double remainder; - // long length=myDataSize; - - if (end>=length) end=length-1; - long a,b; - short* buffer = (short *)myData; - if (frequency >0.) { - if (pos= end ) pos = start; - pos += ((end-start)/(maxiSettings::sampleRate/(frequency*chandiv))); - remainder = pos - floor(pos); - long posl = floor(pos); - if (posl+1=0) { - a=posl-1; - } - else { - a=0; - } - if (posl-2>=0) { - b=posl-2; - } - else { - b=0; - } - output = (double) ((-1-remainder) * buffer[a] + - remainder * buffer[b])/32767;//linear interpolation - - } - - return(output); -} - - -//better cubic inerpolation. Cobbled together from various (pd externals, yehar, other places). -double maxiSample::play4(double frequency, double start, double end) { - double remainder; - double a,b,c,d,a1,a2,a3; - short* buffer = (short*)myData; - if (frequency >0.) { - if (position= end ) position = start; - position += ((end-start)/(maxiSettings::sampleRate/(frequency*chandiv))); - remainder = position - floor(position); - if (position>0) { - a=buffer[(int)(floor(position))-1]; - - } else { - a=buffer[0]; - - } - - b=buffer[(long) position]; - if (positionstart && position < end-1) { - a=buffer[(long) position+1]; - - } else { - a=buffer[0]; - - } - - b=buffer[(long) position]; - if (position>start) { - c=buffer[(long) position-1]; - - } else { - c=buffer[0]; - - } - if (position>start+1) { - d=buffer[(long) position-2]; - - } else { - d=buffer[0]; - } - a1 = 0.5f * (c - a); - a2 = a - 2.5 * b + 2.f * c - 0.5f * d; - a3 = 0.5f * (d - a) + 1.5f * (b - c); - output = (double) (((a3 * remainder + a2) * -remainder + a1) * -remainder + b) / 32767; - - } - - return(output); -} - -double maxiSample::bufferPlay(unsigned char &bufferin,long length) { - double remainder; - short* buffer = (short *)bufferin; - position=(position+1); - remainder = position - (long) position; - if ((long) position>length) position=0; - output = (double) ((1-remainder) * buffer[1+ (long) position] + remainder * buffer[2+(long) position])/32767;//linear interpolation - return(output); -} - -double maxiSample::bufferPlay(unsigned char &bufferin,double speed,long length) { - double remainder; - long a,b; - short* buffer = (short *)bufferin; - position=position+((speed*chandiv*myChannels)/(maxiSettings::sampleRate/mySampleRate)); - if (speed >=0) { - - if ((long) position>=length-1) position=1; - remainder = position - floor(position); - if (position+1=0) { - a=position-1; - - } - else { - a=0; - } - if (position-2>=0) { - b=position-2; - } - else { - b=0; - } - output = (double) ((-1-remainder) * buffer[a] + remainder * buffer[b])/32767;//linear interpolation - } - return(output); -} - -double maxiSample::bufferPlay(unsigned char &bufferin,double frequency, double start, double end) { - double remainder; - length=end; - long a,b; - short* buffer = (short *)bufferin; - if (frequency >0.) { - if (position= end ) position = start; - position += ((end-start)/(maxiSettings::sampleRate/(frequency*chandiv))); - remainder = position - floor(position); - long pos = floor(position); - if (pos+1=0) { - a=pos-1; - } - else { - a=0; - } - if (pos-2>=0) { - b=pos-2; - } - else { - b=0; - } - output = (double) ((-1-remainder) * buffer[a] + - remainder * buffer[b])/32767;//linear interpolation - - } - - return(output); -} - -//better cubic inerpolation. Cobbled together from various (pd externals, yehar, other places). -double maxiSample::bufferPlay4(unsigned char &bufferin,double frequency, double start, double end) { - double remainder; - double a,b,c,d,a1,a2,a3; - short* buffer = (short*)bufferin; - if (frequency >0.) { - if (position= end ) position = start; - position += ((end-start)/(maxiSettings::sampleRate/(frequency*chandiv))); - remainder = position - floor(position); - if (position>0) { - a=buffer[(int)(floor(position))-1]; - - } else { - a=buffer[0]; - - } - - b=buffer[(long) position]; - if (positionstart && position < end-1) { - a=buffer[(long) position+1]; - - } else { - a=buffer[0]; - - } - - b=buffer[(long) position]; - if (position>start) { - c=buffer[(long) position-1]; - - } else { - c=buffer[0]; - - } - if (position>start+1) { - d=buffer[(long) position-2]; - - } else { - d=buffer[0]; - } - a1 = 0.5f * (c - a); - a2 = a - 2.5 * b + 2.f * c - 0.5f * d; - a3 = 0.5f * (d - a) + 1.5f * (b - c); - output = (double) (((a3 * remainder + a2) * -remainder + a1) * -remainder + b) / 32767; - - } - - return(output); -} - - -void maxiSample::getLength() { - length=myDataSize*0.5; -} - - -/* OK this compressor and gate are now ready to use. The envelopes, like all the envelopes in this recent update, use stupid algorithms for - incrementing - consequently a long attack is something like 0.0001 and a long release is like 0.9999. - Annoyingly, a short attack is 0.1, and a short release is 0.99. I'll sort this out laters */ - -double maxiDyn::gate(double input, double threshold, long holdtime, double attack, double release) { - - if (fabs(input)>threshold && attackphase!=1){ - holdcount=0; - releasephase=0; - attackphase=1; - if(amplitude==0) amplitude=0.01; - } - - if (attackphase==1 && amplitude<1) { - amplitude*=(1+attack); - output=input*amplitude; - } - - if (amplitude>=1) { - attackphase=0; - holdphase=1; - } - - if (holdcount0.) { - output=input*(amplitude*=release); - - } - - return output; -} - - -double maxiDyn::compressor(double input, double ratio, double threshold, double attack, double release) { - - if (fabs(input)>threshold && attackphase!=1){ - holdcount=0; - releasephase=0; - attackphase=1; - if(currentRatio==0) currentRatio=ratio; - } - - if (attackphase==1 && currentRatio=ratio-1) { - attackphase=0; - releasephase=1; - } - - if (releasephase==1 && currentRatio>0.) { - currentRatio*=release; - } - - if (input>0.) { - output = input/(1.+currentRatio); - } else { - output = input/(1.+currentRatio); - } - - return output*(1+log(ratio)); -} - - -/* Lots of people struggle with the envelope generators so here's a new easy one. - It takes mental numbers for attack and release tho. Basically, they're exponentials. - I'll map them out later so that it's a bit more intuitive */ -double maxiEnv::ar(double input, double attack, double release, long holdtime, int trigger) { - - if (trigger==1 && attackphase!=1 && holdphase!=1){ - holdcount=0; - releasephase=0; - attackphase=1; - } - - if (attackphase==1) { - amplitude+=(1*attack); - output=input*amplitude; - } - - if (amplitude>=1) { - amplitude=1; - attackphase=0; - holdphase=1; - } - - if (holdcount0.) { - output=input*(amplitude*=release); - - } - - return output; -} - -/* and here's a new adsr. It's not bad, very simple to use*/ - -double maxiEnv::adsr(double input, double attack, double decay, double sustain, double release, long holdtime, int trigger) { - - if (trigger==1 && attackphase!=1 && holdphase!=1 && decayphase!=1){ - holdcount=0; - decayphase=0; - sustainphase=0; - releasephase=0; - attackphase=1; - } - - if (attackphase==1) { - amplitude+=(1*attack); - output=input*amplitude; - } - - if (amplitude>=1) { - amplitude=1; - attackphase=0; - decayphase=1; - } - - if (decayphase==1) { - output=input*(amplitude*=decay); - if (amplitude<=sustain) { - decayphase=0; - holdphase=1; - } - } - - if (holdcount0.) { - output=input*(amplitude*=release); - - } - - return output; -} - -double convert::mtof(int midinote) { - - return mtofarray[midinote]; -} \ No newline at end of file diff --git a/ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maximilian.h b/ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maximilian.h deleted file mode 100755 index 102d552..0000000 --- a/ofxMaxim/ofMaximExample007OSX/ofxMaxim/libs/maximilian.h +++ /dev/null @@ -1,366 +0,0 @@ -/* - * maximilian.h - * platform independent synthesis library using portaudio or rtaudio - * - * Created by Mick Grierson on 29/12/2009. - * Copyright 2009 Mick Grierson & Strangeloop Limited. All rights reserved. - * Thanks to the Goldsmiths Creative Computing Team. - * Special thanks to Arturo Castro for the PortAudio implementation. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, - * copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following - * conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - */ - -#ifndef MAXIMILIAN_H -#define MAXIMILIAN_H - -//#define MAXIMILIAN_PORTAUDIO -#define MAXIMILIAN_RT_AUDIO - -//#include "ofMain.h" -//#include "ofUtils.h" - - -#include -#include -#include -#include -#include "math.h" - -using namespace std; -#define TWOPI (3.14159*2) - -class maxiSettings { -public: - static int sampleRate; - static int channels; - static int bufferSize; - static void setup(int initSampleRate, int initChannels, int initBufferSize) { - maxiSettings::sampleRate = initSampleRate; - maxiSettings::channels = initChannels; - maxiSettings::bufferSize = initBufferSize; - } -}; - - -class maxiOsc { - - double frequency; - double phase; - double startphase; - double endphase; - double output; - double tri; - - -public: - maxiOsc(); - double sinewave(double frequency); - double coswave(double frequency); - double phasor(double frequency); - double phasor(double frequency, double startphase, double endphase); - double saw(double frequency); - double triangle(double frequency); - double square(double frequency); - double pulse(double frequency, double duty); - double noise(); - double sinebuf(double frequency); - double sinebuf4(double frequency); - void phaseReset(double phaseIn); - -}; - - -class maxiEnvelope { - - double period; - double output; - double startval; - double currentval; - double nextval; - int isPlaying; - -public: - double line(int numberofsegments,double segments[100]); - void trigger(int index,double amp); - int valindex; - double amplitude; - -}; - - -class maxiDelayline { - double frequency; - int phase; - double startphase; - double endphase; - double output; - double memory[88200]; - -public: - maxiDelayline(); - double dl(double input, int size, double feedback); - double dl(double input, int size, double feedback, int position); - - -}; - - -class maxiFilter { - double gain; - double input; - double output; - double inputs[10]; - double outputs[10]; - double cutoff1; - double x;//speed - double y;//pos - double z;//pole - double c;//filter coefficient -public: - maxiFilter():x(0.0), y(0.0), z(0.0), c(0.0){}; - double cutoff; - double resonance; - double lores(double input,double cutoff1, double resonance); - double hires(double input,double cutoff1, double resonance); - double bandpass(double input,double cutoff1, double resonance); - double lopass(double input,double cutoff); - double hipass(double input,double cutoff); - -}; - -class maxiMix { - double input; - double two[2]; - double four[4]; - double eight[8]; -public: - double x; - double y; - double z; - double *stereo(double input,double two[2],double x); - double *quad(double input,double four[4], double x,double y); - double *ambisonic(double input,double eight[8],double x,double y, double z); - -}; - -class maxiSample { - -private: - string myPath; - int myChunkSize; - int mySubChunk1Size; - int readChannel; - short myFormat; - int myByteRate; - short myBlockAlign; - short myBitsPerSample; - double position; - double speed; - double output; - -public: - int myDataSize; - short myChannels; - int mySampleRate; - long length; - void getLength(); - - - char* myData; - - // get/set for the Path property - - ~maxiSample() - { - if (myData) delete[] myData; - myChunkSize = NULL; - mySubChunk1Size = NULL; - myFormat = NULL; - myChannels = NULL; - mySampleRate = NULL; - myByteRate = NULL; - myBlockAlign = NULL; - myBitsPerSample = NULL; - myDataSize = NULL; - } - - maxiSample():myData(NULL){}; - - bool load(string fileName, int channel=0); - - void trigger(); - - // read a wav file into this class - bool read(); - - double play(); - - double playOnce(); - - double playOnce(double speed); - - double play(double speed); - - double play(double frequency, double start, double end, double &pos); - - double play(double frequency, double start, double end); - - double play4(double frequency, double start, double end); - - double bufferPlay(unsigned char &bufferin,long length); - - double bufferPlay(unsigned char &bufferin,double speed,long length); - - double bufferPlay(unsigned char &bufferin,double frequency, double start, double end); - - double bufferPlay4(unsigned char &bufferin,double frequency, double start, double end); - - //int open(char *filename) { - // // open the wav file - // char *path = new char[50]; - // strcpy(path, filename); - // sample *myWav = new sample(path); - // return 0; - // } - // // print a summary of the wav file - // int info() { - // char *summary = myWav->getSummary(); - // printf("Summary:\n%s", summary); - // return 0; - // } - // int savefile() { - // // write the summary back out - // strcpy(path, "testout.wav"); - // myWav->setPath(path); - // myWav->save(); - // return 0: - // } - // int close() { - // // collect the garbage - // delete summary; - // delete path; - // delete myWav; - // - // return 0; - // } - // write out the wav file - bool save() - { - fstream myFile (myPath.c_str(), ios::out | ios::binary); - - // write the wav file per the wav file format - myFile.seekp (0, ios::beg); - myFile.write ("RIFF", 4); - myFile.write ((char*) &myChunkSize, 4); - myFile.write ("WAVE", 4); - myFile.write ("fmt ", 4); - myFile.write ((char*) &mySubChunk1Size, 4); - myFile.write ((char*) &myFormat, 2); - myFile.write ((char*) &myChannels, 2); - myFile.write ((char*) &mySampleRate, 4); - myFile.write ((char*) &myByteRate, 4); - myFile.write ((char*) &myBlockAlign, 2); - myFile.write ((char*) &myBitsPerSample, 2); - myFile.write ("data", 4); - myFile.write ((char*) &myDataSize, 4); - myFile.write (myData, myDataSize); - - return true; - } - - // return a printable summary of the wav file - char *getSummary() - { - char *summary = new char[250]; - sprintf(summary, " Format: %d\n Channels: %d\n SampleRate: %d\n ByteRate: %d\n BlockAlign: %d\n BitsPerSample: %d\n DataSize: %d\n", myFormat, myChannels, mySampleRate, myByteRate, myBlockAlign, myBitsPerSample, myDataSize); - std::cout << myDataSize; - return summary; - } -}; - - -class maxiMap { -public: - static double inline linlin(double val, double inMin, double inMax, double outMin, double outMax) { - return ((val - inMin) / (inMax - inMin) * (outMax - outMin)) + outMin; - } - - static double inline linexp(double val, double inMin, double inMax, double outMin, double outMax) { - //clipping - val = max(min(val, inMax), inMin); - return pow((outMax / outMin), (val - inMin) / (inMax - inMin)) * outMin; - } - - static double inline explin(double val, double inMin, double inMax, double outMin, double outMax) { - //clipping - val = max(min(val, inMax), inMin); - return (log(val/inMin) / log(inMax/inMin) * (outMax - outMin)) + outMin; - } - -}; - - -class maxiDyn { - - -public: - double gate(double input, double threshold=0.9, long holdtime=1, double attack=1, double release=0.9995); - double compressor(double input, double ratio, double threshold=0.9, double attack=1, double release=0.9995); - double input; - double ratio; - double currentRatio; - double threshold; - double output; - double attack; - double release; - double amplitude; - long holdtime; - long holdcount; - int attackphase,holdphase,releasephase; -}; - -class maxiEnv { - - -public: - double ar(double input, double attack=1, double release=0.9, long holdtime=1, int trigger=0); - double adsr(double input, double attack=1, double decay=0.99, double sustain=0.125, double release=0.9, long holdtime=1, int trigger=0); - double input; - double output; - double attack; - double decay; - double sustain; - double release; - double amplitude; - int trigger; - long holdtime; - long holdcount; - int attackphase,decayphase,sustainphase,holdphase,releasephase; -}; - -class convert { -public: - double mtof(int midinote); -}; - -#endif diff --git a/ofxMaxim/ofMaximExample007OSX/ofxMaxim/src/ofxMaxim.h b/ofxMaxim/ofMaximExample007OSX/ofxMaxim/src/ofxMaxim.h deleted file mode 100644 index ec8c539..0000000 --- a/ofxMaxim/ofMaximExample007OSX/ofxMaxim/src/ofxMaxim.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * maximilian - * platform independent synthesis library using portaudio or rtaudio - * - * Created by Mick Grierson on 29/12/2009. - * Copyright 2009 Mick Grierson & Strangeloop Limited. All rights reserved. - * Thanks to the Goldsmiths Creative Computing Team. - * Special thanks to Arturo Castro for the PortAudio implementation. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, - * copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following - * conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - */ - -#ifndef _OFMAXIM_H -#define _OFMAXIM_H - -#include "maximilian.h" -#include "maxiFFT.h" -#include "maxiGrains.h" -#include "maxiMFCC.h" - - -typedef maxiMix ofxMaxiMix; -typedef maxiOsc ofxMaxiOsc; -typedef maxiEnvelope ofxMaxiEnvelope; -typedef maxiDelayline ofxMaxiDelayline; -typedef maxiFilter ofxMaxiFilter; -typedef maxiSample ofxMaxiSample; -typedef maxiFFT ofxMaxiFFT; -typedef maxiIFFT ofxMaxiIFFT; -typedef maxiFFTOctaveAnalyzer ofxMaxiFFTOctaveAnalyzer; -typedef maxiSettings ofxMaxiSettings; -typedef maxiMFCC ofxMaxiMFCC; - - -#endif diff --git a/ofxMaxim/ofMaximExample007OSX/openFrameworks-Info.plist b/ofxMaxim/ofMaximExample007OSX/openFrameworks-Info.plist deleted file mode 100644 index e5db555..0000000 --- a/ofxMaxim/ofMaximExample007OSX/openFrameworks-Info.plist +++ /dev/null @@ -1,20 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - com.yourcompany.openFrameworks - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - APPL - CFBundleSignature - ???? - CFBundleVersion - 1.0 - - diff --git a/ofxMaxim/ofMaximExample007OSX/src/main.cpp b/ofxMaxim/ofMaximExample007OSX/src/main.cpp deleted file mode 100644 index 6a32c6a..0000000 --- a/ofxMaxim/ofMaximExample007OSX/src/main.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include "ofMain.h" -#include "testApp.h" -#include "ofAppGlutWindow.h" - -//======================================================================== -int main( ){ - - ofAppGlutWindow window; - ofSetupOpenGL(&window, 1024,768, OF_WINDOW); // <-------- setup the GL context - - // this kicks off the running of my app - // can be OF_WINDOW or OF_FULLSCREEN - // pass in width and height too: - ofRunApp( new testApp()); - -} diff --git a/ofxMaxim/ofMaximExample007OSX/src/testApp.cpp b/ofxMaxim/ofMaximExample007OSX/src/testApp.cpp deleted file mode 100644 index 2e0af10..0000000 --- a/ofxMaxim/ofMaximExample007OSX/src/testApp.cpp +++ /dev/null @@ -1,160 +0,0 @@ -/* This is an example of how to integrate maximilain into openFrameworks, - including using audio received for input and audio requested for output. - - - You can copy and paste this and use it as a starting example. - - */ - - -#include "testApp.h" - - - -//------------------------------------------------------------- -testApp::~testApp() { - - delete beat.myData; /*you should probably delete myData for any sample object - that you've created in testApp.h*/ - -} - - -//-------------------------------------------------------------- -void testApp::setup(){ - /* some standard setup stuff*/ - - ofEnableAlphaBlending(); - ofSetupScreen(); - ofBackground(0, 0, 0); - ofSetVerticalSync(true); - - /* This is stuff you always need.*/ - - sampleRate = 44100; /* Sampling Rate */ - initialBufferSize = 512; /* Buffer Size. you have to fill this buffer with sound*/ - - - /* Now you can put anything you would normally put in maximilian's 'setup' method in here. */ - - - beat.load(ofToDataPath("beat2.wav")); - beat.getLength(); - - - ofSoundStreamSetup(2,0,this, sampleRate, initialBufferSize, 4);/* Call this last ! */ -} - -//-------------------------------------------------------------- -void testApp::update(){ - -} - -//-------------------------------------------------------------- -void testApp::draw(){ - - /* You can use any of the data from audio received and audiorequested to draw stuff here. - Importantly, most people just use the input and output arrays defined above. - Clever people don't do this. This bit of code shows that by default, each signal is going to flip - between -1 and 1. You need to account for this somehow. Get the absolute value for example. - */ - - ofSetColor(255, 255, 255,255); - ofRect(600, 300, sample*150, sample*150); /* audio sigs go between -1 and 1. See?*/ - ofCircle(200, 300, wave*150); - -} - -//-------------------------------------------------------------- -void testApp::audioRequested (float * output, int bufferSize, int nChannels){ - - for (int i = 0; i < bufferSize; i++){ - - /* Stick your maximilian 'play()' code in here ! Declare your objects in testApp.h. - - For information on how maximilian works, take a look at the example code at - - http://www.maximilian.strangeloop.co.uk - - under 'Tutorials'. - - */ - - - - sample=beat.play(0.25, 0, beat.length); - wave=sine1.sinebuf(abs(mouseX));/* mouse controls sinewave pitch. we get abs value to stop it dropping - // delow zero and killing the soundcard*/ - - mymix.stereo(sample + wave, outputs, 0.5); - - - output[i*nChannels ] = outputs[0]; /* You may end up with lots of outputs. add them here */ - output[i*nChannels + 1] = outputs[1]; - } - -} - -//-------------------------------------------------------------- -void testApp::audioReceived (float * input, int bufferSize, int nChannels){ - - - /* You can just grab this input and stick it in a double, then use it above to create output*/ - - for (int i = 0; i < bufferSize; i++){ - - /* you can also grab the data out of the arrays*/ - - - } - -} - -//-------------------------------------------------------------- -void testApp::keyPressed(int key){ - -} - -//-------------------------------------------------------------- -void testApp::keyReleased(int key){ - -} - -//-------------------------------------------------------------- -void testApp::mouseMoved(int x, int y ){ - - - -} - -//-------------------------------------------------------------- -void testApp::mouseDragged(int x, int y, int button){ - -} - -//-------------------------------------------------------------- -void testApp::mousePressed(int x, int y, int button){ - -} - -//-------------------------------------------------------------- -void testApp::mouseReleased(int x, int y, int button){ - -} - -//-------------------------------------------------------------- -void testApp::windowResized(int w, int h){ - -} - - - -//-------------------------------------------------------------- -void testApp::gotMessage(ofMessage msg){ - -} - -//-------------------------------------------------------------- -void testApp::dragEvent(ofDragInfo dragInfo){ - -} \ No newline at end of file diff --git a/ofxMaxim/ofMaximExample007OSX/src/testApp.h b/ofxMaxim/ofMaximExample007OSX/src/testApp.h deleted file mode 100644 index ee11865..0000000 --- a/ofxMaxim/ofMaximExample007OSX/src/testApp.h +++ /dev/null @@ -1,40 +0,0 @@ -#pragma once - -#include "ofMain.h" -#include "ofxMaxim.h" - - -class testApp : public ofBaseApp{ - - public: - ~testApp();/* destructor is very useful */ - void setup(); - void update(); - void draw(); - - void keyPressed (int key); - void keyReleased(int key); - void mouseMoved(int x, int y ); - void mouseDragged(int x, int y, int button); - void mousePressed(int x, int y, int button); - void mouseReleased(int x, int y, int button); - void windowResized(int w, int h); - void dragEvent(ofDragInfo dragInfo); - void gotMessage(ofMessage msg); - - void audioRequested (float * input, int bufferSize, int nChannels); /* output method */ - void audioReceived (float * input, int bufferSize, int nChannels); /* input method */ - - int initialBufferSize; /* buffer size */ - int sampleRate; - - - /* stick you maximilian stuff below */ - - double wave,sample,outputs[2]; - ofxMaxiMix mymix; - ofxMaxiOsc sine1; - ofxMaxiSample beats,beat; - - -}; diff --git a/ofxMaxim/ofxMaxim/libs/maxiAtoms.cpp b/ofxMaxim/ofxMaxim/libs/maxiAtoms.cpp new file mode 100644 index 0000000..0dff9ec --- /dev/null +++ b/ofxMaxim/ofxMaxim/libs/maxiAtoms.cpp @@ -0,0 +1,72 @@ +/* + * gabor.cpp + * mp + * + * Created by Chris on 01/11/2011. + * Copyright 2011 Goldsmiths Creative Computing. All rights reserved. + * + */ + +#include "maxiAtoms.h" +#include + +void maxiAtoms::createGabor(flArr &atom, const float freq, const float sampleRate, const uint length, + const float startPhase, const float kurtotis, const float amp) { + atom.resize(length); + float inc = 1.0 / length * 2.0; + + float cycleLen = sampleRate / freq; + float maxPhase = length / cycleLen * TWOPI; + + for(uint i=0; i < length; i++) { + float x = -1.0 + (inc * i); + //gaussian envelope + atom[i] = exp((x * x) / (-2.0 * kurtotis * kurtotis)); + + //multiply by sinewave + //rescale x from 0 to 1 + x = (x+1.0) / 2.0; + + atom[i] *= sin((x * maxPhase) + startPhase); + } + for(uint i=0; i < length; i++) { + atom[i] *= amp; + } +} + + + +maxiAtomStream::maxiAtomStream() { + sampleIdx = 0; +} + +void maxiAtomStream::addAtom(flArr &atom) { + queuedAtom quAtom; + quAtom.atom.copyFromArray(atom); + quAtom.startTime = sampleIdx; + quAtom.pos = 0; + atomQueue.push_back(quAtom); +} + +void maxiAtomStream::fillNextBuffer(float *buffer, unsigned int bufferLength) { + queuedAtomList::iterator it = atomQueue.begin(); + while(it != atomQueue.end()) { + int atomStart = (*it).startTime + (*it).pos; + //include in this frame? + if (atomStart >= sampleIdx && atomStart < sampleIdx + bufferLength) { + //copy into buffer + int renderLength = min(bufferLength, (*it).atom.size() - (*it).pos); + for(int i=0; i < renderLength; i++) { + buffer[i] += (*it).atom[i + (*it).pos]; + } + (*it).pos += renderLength; + } + if ((*it).pos == (*it).atom.size()) { + it = atomQueue.erase(it); + }else { + it++; + } + + } + sampleIdx += bufferLength; +} \ No newline at end of file diff --git a/ofxMaxim/ofxMaxim/libs/maxiAtoms.h b/ofxMaxim/ofxMaxim/libs/maxiAtoms.h new file mode 100644 index 0000000..c7316b5 --- /dev/null +++ b/ofxMaxim/ofxMaxim/libs/maxiAtoms.h @@ -0,0 +1,37 @@ +/* + * gabor.h + * mp + * + * Created by Chris on 01/11/2011. + * Copyright 2011 Goldsmiths Creative Computing. All rights reserved. + * + */ + +#include "someTypes.h" +#include +#include "maximilian.h" +#include + +using namespace std; + +class maxiAtoms { +public: + static void createGabor(flArr &atom, const float freq, const float sampleRate, const uint length, + const float phase, const float kurtotis, const float amp); +}; + +class maxiAtomStream { +public: + maxiAtomStream(); + void addAtom(flArr &atom); + void fillNextBuffer(float *buffer, unsigned int bufferLength); +private: + long sampleIdx; + struct queuedAtom { + flArr atom; + long startTime; + unsigned int pos; + }; + typedef list queuedAtomList; + queuedAtomList atomQueue; +}; \ No newline at end of file diff --git a/ofxMaxim/ofxMaxim/libs/storage/btAlignedAllocator.cpp b/ofxMaxim/ofxMaxim/libs/storage/btAlignedAllocator.cpp new file mode 100644 index 0000000..189b759 --- /dev/null +++ b/ofxMaxim/ofxMaxim/libs/storage/btAlignedAllocator.cpp @@ -0,0 +1,182 @@ +/* +Bullet Continuous Collision Detection and Physics Library +Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/ + +This software is provided 'as-is', without any express or implied warranty. +In no event will the authors be held liable for any damages arising from the use of this software. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it freely, +subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +*/ + +#include "btAlignedAllocator.h" + +int gNumAlignedAllocs = 0; +int gNumAlignedFree = 0; +int gTotalBytesAlignedAllocs = 0;//detect memory leaks + +static void *btAllocDefault(size_t size) +{ + return malloc(size); +} + +static void btFreeDefault(void *ptr) +{ + free(ptr); +} + +static btAllocFunc *sAllocFunc = btAllocDefault; +static btFreeFunc *sFreeFunc = btFreeDefault; + + + +#if defined (BT_HAS_ALIGNED_ALLOCATOR) +#include +static void *btAlignedAllocDefault(size_t size, int alignment) +{ + return _aligned_malloc(size, (size_t)alignment); +} + +static void btAlignedFreeDefault(void *ptr) +{ + _aligned_free(ptr); +} +#elif defined(__CELLOS_LV2__) +#include + +static inline void *btAlignedAllocDefault(size_t size, int alignment) +{ + return memalign(alignment, size); +} + +static inline void btAlignedFreeDefault(void *ptr) +{ + free(ptr); +} +#else +static inline void *btAlignedAllocDefault(size_t size, int alignment) +{ + void *ret; + char *real; + unsigned long offset; + + real = (char *)sAllocFunc(size + sizeof(void *) + (alignment-1)); + if (real) { + offset = (alignment - (unsigned long)(real + sizeof(void *))) & (alignment-1); + ret = (void *)((real + sizeof(void *)) + offset); + *((void **)(ret)-1) = (void *)(real); + } else { + ret = (void *)(real); + } + return (ret); +} + +static inline void btAlignedFreeDefault(void *ptr) +{ + void* real; + + if (ptr) { + real = *((void **)(ptr)-1); + sFreeFunc(real); + } +} +#endif + + +static btAlignedAllocFunc *sAlignedAllocFunc = btAlignedAllocDefault; +static btAlignedFreeFunc *sAlignedFreeFunc = btAlignedFreeDefault; + +void btAlignedAllocSetCustomAligned(btAlignedAllocFunc *allocFunc, btAlignedFreeFunc *freeFunc) +{ + sAlignedAllocFunc = allocFunc ? allocFunc : btAlignedAllocDefault; + sAlignedFreeFunc = freeFunc ? freeFunc : btAlignedFreeDefault; +} + +void btAlignedAllocSetCustom(btAllocFunc *allocFunc, btFreeFunc *freeFunc) +{ + sAllocFunc = allocFunc ? allocFunc : btAllocDefault; + sFreeFunc = freeFunc ? freeFunc : btFreeDefault; +} + +#ifdef BT_DEBUG_MEMORY_ALLOCATIONS +//this generic allocator provides the total allocated number of bytes +#include + +void* btAlignedAllocInternal (size_t size, int alignment,int line,char* filename) +{ + void *ret; + char *real; + unsigned long offset; + + gTotalBytesAlignedAllocs += size; + gNumAlignedAllocs++; + + + real = (char *)sAllocFunc(size + 2*sizeof(void *) + (alignment-1)); + if (real) { + offset = (alignment - (unsigned long)(real + 2*sizeof(void *))) & +(alignment-1); + ret = (void *)((real + 2*sizeof(void *)) + offset); + *((void **)(ret)-1) = (void *)(real); + *((int*)(ret)-2) = size; + + } else { + ret = (void *)(real);//?? + } + + printf("allocation#%d at address %x, from %s,line %d, size %d\n",gNumAlignedAllocs,real, filename,line,size); + + int* ptr = (int*)ret; + *ptr = 12; + return (ret); +} + +void btAlignedFreeInternal (void* ptr,int line,char* filename) +{ + + void* real; + gNumAlignedFree++; + + if (ptr) { + real = *((void **)(ptr)-1); + int size = *((int*)(ptr)-2); + gTotalBytesAlignedAllocs -= size; + + printf("free #%d at address %x, from %s,line %d, size %d\n",gNumAlignedFree,real, filename,line,size); + + sFreeFunc(real); + } else + { + printf("NULL ptr\n"); + } +} + +#else //BT_DEBUG_MEMORY_ALLOCATIONS + +void* btAlignedAllocInternal (size_t size, int alignment) +{ + gNumAlignedAllocs++; + void* ptr; + ptr = sAlignedAllocFunc(size, alignment); +// printf("btAlignedAllocInternal %d, %x\n",size,ptr); + return ptr; +} + +void btAlignedFreeInternal (void* ptr) +{ + if (!ptr) + { + return; + } + + gNumAlignedFree++; +// printf("btAlignedFreeInternal %x\n",ptr); + sAlignedFreeFunc(ptr); +} + +#endif //BT_DEBUG_MEMORY_ALLOCATIONS + diff --git a/ofxMaxim/ofxMaxim/libs/storage/btAlignedAllocator.h b/ofxMaxim/ofxMaxim/libs/storage/btAlignedAllocator.h new file mode 100644 index 0000000..f168f3c --- /dev/null +++ b/ofxMaxim/ofxMaxim/libs/storage/btAlignedAllocator.h @@ -0,0 +1,107 @@ +/* +Bullet Continuous Collision Detection and Physics Library +Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/ + +This software is provided 'as-is', without any express or implied warranty. +In no event will the authors be held liable for any damages arising from the use of this software. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it freely, +subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef BT_ALIGNED_ALLOCATOR +#define BT_ALIGNED_ALLOCATOR + +///we probably replace this with our own aligned memory allocator +///so we replace _aligned_malloc and _aligned_free with our own +///that is better portable and more predictable + +#include "btScalar.h" +//#define BT_DEBUG_MEMORY_ALLOCATIONS 1 +#ifdef BT_DEBUG_MEMORY_ALLOCATIONS + +#define btAlignedAlloc(a,b) \ + btAlignedAllocInternal(a,b,__LINE__,__FILE__) + +#define btAlignedFree(ptr) \ + btAlignedFreeInternal(ptr,__LINE__,__FILE__) + +void* btAlignedAllocInternal (size_t size, int alignment,int line,char* filename); + +void btAlignedFreeInternal (void* ptr,int line,char* filename); + +#else + void* btAlignedAllocInternal (size_t size, int alignment); + void btAlignedFreeInternal (void* ptr); + + #define btAlignedAlloc(size,alignment) btAlignedAllocInternal(size,alignment) + #define btAlignedFree(ptr) btAlignedFreeInternal(ptr) + +#endif +typedef int size_type; + +typedef void *(btAlignedAllocFunc)(size_t size, int alignment); +typedef void (btAlignedFreeFunc)(void *memblock); +typedef void *(btAllocFunc)(size_t size); +typedef void (btFreeFunc)(void *memblock); + +///The developer can let all Bullet memory allocations go through a custom memory allocator, using btAlignedAllocSetCustom +void btAlignedAllocSetCustom(btAllocFunc *allocFunc, btFreeFunc *freeFunc); +///If the developer has already an custom aligned allocator, then btAlignedAllocSetCustomAligned can be used. The default aligned allocator pre-allocates extra memory using the non-aligned allocator, and instruments it. +void btAlignedAllocSetCustomAligned(btAlignedAllocFunc *allocFunc, btAlignedFreeFunc *freeFunc); + + +///The btAlignedAllocator is a portable class for aligned memory allocations. +///Default implementations for unaligned and aligned allocations can be overridden by a custom allocator using btAlignedAllocSetCustom and btAlignedAllocSetCustomAligned. +template < typename T , unsigned Alignment > +class btAlignedAllocator { + + typedef btAlignedAllocator< T , Alignment > self_type; + +public: + + //just going down a list: + btAlignedAllocator() {} + /* + btAlignedAllocator( const self_type & ) {} + */ + + template < typename Other > + btAlignedAllocator( const btAlignedAllocator< Other , Alignment > & ) {} + + typedef const T* const_pointer; + typedef const T& const_reference; + typedef T* pointer; + typedef T& reference; + typedef T value_type; + + pointer address ( reference ref ) const { return &ref; } + const_pointer address ( const_reference ref ) const { return &ref; } + pointer allocate ( size_type n , const_pointer * hint = 0 ) { + (void)hint; + return reinterpret_cast< pointer >(btAlignedAlloc( sizeof(value_type) * n , Alignment )); + } + void construct ( pointer ptr , const value_type & value ) { new (ptr) value_type( value ); } + void deallocate( pointer ptr ) { + btAlignedFree( reinterpret_cast< void * >( ptr ) ); + } + void destroy ( pointer ptr ) { ptr->~value_type(); } + + + template < typename O > struct rebind { + typedef btAlignedAllocator< O , Alignment > other; + }; + template < typename O > + self_type & operator=( const btAlignedAllocator< O , Alignment > & ) { return *this; } + + friend bool operator==( const self_type & , const self_type & ) { return true; } +}; + + + +#endif //BT_ALIGNED_ALLOCATOR + diff --git a/ofxMaxim/ofxMaxim/libs/storage/btAlignedObjectArray.h b/ofxMaxim/ofxMaxim/libs/storage/btAlignedObjectArray.h new file mode 100644 index 0000000..5f53f62 --- /dev/null +++ b/ofxMaxim/ofxMaxim/libs/storage/btAlignedObjectArray.h @@ -0,0 +1,482 @@ +/* +Bullet Continuous Collision Detection and Physics Library +Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/ + +This software is provided 'as-is', without any express or implied warranty. +In no event will the authors be held liable for any damages arising from the use of this software. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it freely, +subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +*/ + + +#ifndef BT_OBJECT_ARRAY__ +#define BT_OBJECT_ARRAY__ + +#include "btScalar.h" // has definitions like SIMD_FORCE_INLINE +#include "btAlignedAllocator.h" + +///If the platform doesn't support placement new, you can disable BT_USE_PLACEMENT_NEW +///then the btAlignedObjectArray doesn't support objects with virtual methods, and non-trivial constructors/destructors +///You can enable BT_USE_MEMCPY, then swapping elements in the array will use memcpy instead of operator= +///see discussion here: http://continuousphysics.com/Bullet/phpBB2/viewtopic.php?t=1231 and +///http://www.continuousphysics.com/Bullet/phpBB2/viewtopic.php?t=1240 + +#define BT_USE_PLACEMENT_NEW 1 +//#define BT_USE_MEMCPY 1 //disable, because it is cumbersome to find out for each platform where memcpy is defined. It can be in or or otherwise... + +#ifdef BT_USE_MEMCPY +#include +#include +#endif //BT_USE_MEMCPY + +#ifdef BT_USE_PLACEMENT_NEW +#include //for placement new +#endif //BT_USE_PLACEMENT_NEW + + +///The btAlignedObjectArray template class uses a subset of the stl::vector interface for its methods +///It is developed to replace stl::vector to avoid portability issues, including STL alignment issues to add SIMD/SSE data +template +//template +class btAlignedObjectArray +{ + btAlignedAllocator m_allocator; + + int m_size; + int m_capacity; + T* m_data; + //PCK: added this line + bool m_ownsMemory; + + protected: + SIMD_FORCE_INLINE int allocSize(int size) + { + return (size ? size*2 : 1); + } + SIMD_FORCE_INLINE void copy(int start,int end, T* dest) const + { + int i; + for (i=start;i=0); + btAssert(n=0); + btAssert(n=0); + btAssert(n=0); + btAssert(n0); + m_size--; + m_data[m_size].~T(); + } + + ///resize changes the number of elements in the array. If the new size is larger, the new elements will be constructed using the optional second argument. + ///when the new number of elements is smaller, the destructor will be called, but memory will not be freed, to reduce performance overhead of run-time memory (de)allocations. + SIMD_FORCE_INLINE void resize(int newsize, const T& fillData=T()) + { + int curSize = size(); + + if (newsize < curSize) + { + for(int i = newsize; i < curSize; i++) + { + m_data[i].~T(); + } + } else + { + if (newsize > size()) + { + reserve(newsize); + } +#ifdef BT_USE_PLACEMENT_NEW + for (int i=curSize;i + void quickSortInternal(L CompareFunc,int lo, int hi) + { + // lo is the lower index, hi is the upper index + // of the region of array a that is to be sorted + int i=lo, j=hi; + T x=m_data[(lo+hi)/2]; + + // partition + do + { + while (CompareFunc(m_data[i],x)) + i++; + while (CompareFunc(x,m_data[j])) + j--; + if (i<=j) + { + swap(i,j); + i++; j--; + } + } while (i<=j); + + // recursion + if (lo + void quickSort(L CompareFunc) + { + //don't sort 0 or 1 elements + if (size()>1) + { + quickSortInternal(CompareFunc,0,size()-1); + } + } + + + ///heap sort from http://www.csse.monash.edu.au/~lloyd/tildeAlgDS/Sort/Heap/ + template + void downHeap(T *pArr, int k, int n,L CompareFunc) + { + /* PRE: a[k+1..N] is a heap */ + /* POST: a[k..N] is a heap */ + + T temp = pArr[k - 1]; + /* k has child(s) */ + while (k <= n/2) + { + int child = 2*k; + + if ((child < n) && CompareFunc(pArr[child - 1] , pArr[child])) + { + child++; + } + /* pick larger child */ + if (CompareFunc(temp , pArr[child - 1])) + { + /* move child up */ + pArr[k - 1] = pArr[child - 1]; + k = child; + } + else + { + break; + } + } + pArr[k - 1] = temp; + } /*downHeap*/ + + void swap(int index0,int index1) + { +#ifdef BT_USE_MEMCPY + char temp[sizeof(T)]; + memcpy(temp,&m_data[index0],sizeof(T)); + memcpy(&m_data[index0],&m_data[index1],sizeof(T)); + memcpy(&m_data[index1],temp,sizeof(T)); +#else + T temp = m_data[index0]; + m_data[index0] = m_data[index1]; + m_data[index1] = temp; +#endif //BT_USE_PLACEMENT_NEW + + } + + template + void heapSort(L CompareFunc) + { + /* sort a[0..N-1], N.B. 0 to N-1 */ + int k; + int n = m_size; + for (k = n/2; k > 0; k--) + { + downHeap(m_data, k, n, CompareFunc); + } + + /* a[1..N] is now a heap */ + while ( n>=1 ) + { + swap(0,n-1); /* largest of a[0..n-1] */ + + + n = n - 1; + /* restore a[1..i-1] heap */ + downHeap(m_data, 1, n, CompareFunc); + } + } + + ///non-recursive binary search, assumes sorted array + int findBinarySearch(const T& key) const + { + int first = 0; + int last = size()-1; + + //assume sorted array + while (first <= last) { + int mid = (first + last) / 2; // compute mid point. + if (key > m_data[mid]) + first = mid + 1; // repeat search in top half. + else if (key < m_data[mid]) + last = mid - 1; // repeat search in bottom half. + else + return mid; // found it. return position ///// + } + return size(); // failed to find key + } + + + int findLinearSearch(const T& key) const + { + int index=size(); + int i; + + for (i=0;i +#include //size_t for MSVC 6.0 +#include + +/* SVN $Revision$ on $Date$ from http://bullet.googlecode.com*/ +#define BT_BULLET_VERSION 278 + +inline int btGetVersion() +{ + return BT_BULLET_VERSION; +} + +#if defined(DEBUG) || defined (_DEBUG) +#define BT_DEBUG +#endif + + +#ifdef _WIN32 + + #if defined(__MINGW32__) || defined(__CYGWIN__) || (defined (_MSC_VER) && _MSC_VER < 1300) + + #define SIMD_FORCE_INLINE inline + #define ATTRIBUTE_ALIGNED16(a) a + #define ATTRIBUTE_ALIGNED64(a) a + #define ATTRIBUTE_ALIGNED128(a) a + #else + //#define BT_HAS_ALIGNED_ALLOCATOR + #pragma warning(disable : 4324) // disable padding warning +// #pragma warning(disable:4530) // Disable the exception disable but used in MSCV Stl warning. +// #pragma warning(disable:4996) //Turn off warnings about deprecated C routines +// #pragma warning(disable:4786) // Disable the "debug name too long" warning + + #define SIMD_FORCE_INLINE __forceinline + #define ATTRIBUTE_ALIGNED16(a) __declspec(align(16)) a + #define ATTRIBUTE_ALIGNED64(a) __declspec(align(64)) a + #define ATTRIBUTE_ALIGNED128(a) __declspec (align(128)) a + #ifdef _XBOX + #define BT_USE_VMX128 + + #include + #define BT_HAVE_NATIVE_FSEL + #define btFsel(a,b,c) __fsel((a),(b),(c)) + #else + +#if (defined (_WIN32) && (_MSC_VER) && _MSC_VER >= 1400) && (!defined (BT_USE_DOUBLE_PRECISION)) + #define BT_USE_SSE + #include +#endif + + #endif//_XBOX + + #endif //__MINGW32__ + + #include +#ifdef BT_DEBUG + #define btAssert assert +#else + #define btAssert(x) +#endif + //btFullAssert is optional, slows down a lot + #define btFullAssert(x) + + #define btLikely(_c) _c + #define btUnlikely(_c) _c + +#else + +#if defined (__CELLOS_LV2__) + #define SIMD_FORCE_INLINE inline __attribute__((always_inline)) + #define ATTRIBUTE_ALIGNED16(a) a __attribute__ ((aligned (16))) + #define ATTRIBUTE_ALIGNED64(a) a __attribute__ ((aligned (64))) + #define ATTRIBUTE_ALIGNED128(a) a __attribute__ ((aligned (128))) + #ifndef assert + #include + #endif +#ifdef BT_DEBUG +#ifdef __SPU__ +#include +#define printf spu_printf + #define btAssert(x) {if(!(x)){printf("Assert "__FILE__ ":%u ("#x")\n", __LINE__);spu_hcmpeq(0,0);}} +#else + #define btAssert assert +#endif + +#else + #define btAssert(x) +#endif + //btFullAssert is optional, slows down a lot + #define btFullAssert(x) + + #define btLikely(_c) _c + #define btUnlikely(_c) _c + +#else + +#ifdef USE_LIBSPE2 + + #define SIMD_FORCE_INLINE __inline + #define ATTRIBUTE_ALIGNED16(a) a __attribute__ ((aligned (16))) + #define ATTRIBUTE_ALIGNED64(a) a __attribute__ ((aligned (64))) + #define ATTRIBUTE_ALIGNED128(a) a __attribute__ ((aligned (128))) + #ifndef assert + #include + #endif +#ifdef BT_DEBUG + #define btAssert assert +#else + #define btAssert(x) +#endif + //btFullAssert is optional, slows down a lot + #define btFullAssert(x) + + + #define btLikely(_c) __builtin_expect((_c), 1) + #define btUnlikely(_c) __builtin_expect((_c), 0) + + +#else + //non-windows systems + +#if (defined (__APPLE__) && defined (__i386__) && (!defined (BT_USE_DOUBLE_PRECISION))) + #define BT_USE_SSE + #include + + #define SIMD_FORCE_INLINE inline +///@todo: check out alignment methods for other platforms/compilers + #define ATTRIBUTE_ALIGNED16(a) a __attribute__ ((aligned (16))) + #define ATTRIBUTE_ALIGNED64(a) a __attribute__ ((aligned (64))) + #define ATTRIBUTE_ALIGNED128(a) a __attribute__ ((aligned (128))) + #ifndef assert + #include + #endif + + #if defined(DEBUG) || defined (_DEBUG) + #define btAssert assert + #else + #define btAssert(x) + #endif + + //btFullAssert is optional, slows down a lot + #define btFullAssert(x) + #define btLikely(_c) _c + #define btUnlikely(_c) _c + +#else + + #define SIMD_FORCE_INLINE inline + ///@todo: check out alignment methods for other platforms/compilers + ///#define ATTRIBUTE_ALIGNED16(a) a __attribute__ ((aligned (16))) + ///#define ATTRIBUTE_ALIGNED64(a) a __attribute__ ((aligned (64))) + ///#define ATTRIBUTE_ALIGNED128(a) a __attribute__ ((aligned (128))) + #define ATTRIBUTE_ALIGNED16(a) a + #define ATTRIBUTE_ALIGNED64(a) a + #define ATTRIBUTE_ALIGNED128(a) a + #ifndef assert + #include + #endif + +#if defined(DEBUG) || defined (_DEBUG) + #define btAssert assert +#else + #define btAssert(x) +#endif + + //btFullAssert is optional, slows down a lot + #define btFullAssert(x) + #define btLikely(_c) _c + #define btUnlikely(_c) _c +#endif //__APPLE__ + +#endif // LIBSPE2 + +#endif //__CELLOS_LV2__ +#endif + + +///The btScalar type abstracts floating point numbers, to easily switch between double and single floating point precision. +#if defined(BT_USE_DOUBLE_PRECISION) +typedef double btScalar; +//this number could be bigger in double precision +#define BT_LARGE_FLOAT 1e30 +#else +typedef float btScalar; +//keep BT_LARGE_FLOAT*BT_LARGE_FLOAT < FLT_MAX +#define BT_LARGE_FLOAT 1e18f +#endif + + + +#define BT_DECLARE_ALIGNED_ALLOCATOR() \ + SIMD_FORCE_INLINE void* operator new(size_t sizeInBytes) { return btAlignedAlloc(sizeInBytes,16); } \ + SIMD_FORCE_INLINE void operator delete(void* ptr) { btAlignedFree(ptr); } \ + SIMD_FORCE_INLINE void* operator new(size_t, void* ptr) { return ptr; } \ + SIMD_FORCE_INLINE void operator delete(void*, void*) { } \ + SIMD_FORCE_INLINE void* operator new[](size_t sizeInBytes) { return btAlignedAlloc(sizeInBytes,16); } \ + SIMD_FORCE_INLINE void operator delete[](void* ptr) { btAlignedFree(ptr); } \ + SIMD_FORCE_INLINE void* operator new[](size_t, void* ptr) { return ptr; } \ + SIMD_FORCE_INLINE void operator delete[](void*, void*) { } \ + + + +#if defined(BT_USE_DOUBLE_PRECISION) || defined(BT_FORCE_DOUBLE_FUNCTIONS) + +SIMD_FORCE_INLINE btScalar btSqrt(btScalar x) { return sqrt(x); } +SIMD_FORCE_INLINE btScalar btFabs(btScalar x) { return fabs(x); } +SIMD_FORCE_INLINE btScalar btCos(btScalar x) { return cos(x); } +SIMD_FORCE_INLINE btScalar btSin(btScalar x) { return sin(x); } +SIMD_FORCE_INLINE btScalar btTan(btScalar x) { return tan(x); } +SIMD_FORCE_INLINE btScalar btAcos(btScalar x) { if (xbtScalar(1)) x=btScalar(1); return acos(x); } +SIMD_FORCE_INLINE btScalar btAsin(btScalar x) { if (xbtScalar(1)) x=btScalar(1); return asin(x); } +SIMD_FORCE_INLINE btScalar btAtan(btScalar x) { return atan(x); } +SIMD_FORCE_INLINE btScalar btAtan2(btScalar x, btScalar y) { return atan2(x, y); } +SIMD_FORCE_INLINE btScalar btExp(btScalar x) { return exp(x); } +SIMD_FORCE_INLINE btScalar btLog(btScalar x) { return log(x); } +SIMD_FORCE_INLINE btScalar btPow(btScalar x,btScalar y) { return pow(x,y); } +SIMD_FORCE_INLINE btScalar btFmod(btScalar x,btScalar y) { return fmod(x,y); } + +#else + +SIMD_FORCE_INLINE btScalar btSqrt(btScalar y) +{ +#ifdef USE_APPROXIMATION + double x, z, tempf; + unsigned long *tfptr = ((unsigned long *)&tempf) + 1; + + tempf = y; + *tfptr = (0xbfcdd90a - *tfptr)>>1; /* estimate of 1/sqrt(y) */ + x = tempf; + z = y*btScalar(0.5); + x = (btScalar(1.5)*x)-(x*x)*(x*z); /* iteration formula */ + x = (btScalar(1.5)*x)-(x*x)*(x*z); + x = (btScalar(1.5)*x)-(x*x)*(x*z); + x = (btScalar(1.5)*x)-(x*x)*(x*z); + x = (btScalar(1.5)*x)-(x*x)*(x*z); + return x*y; +#else + return sqrtf(y); +#endif +} +SIMD_FORCE_INLINE btScalar btFabs(btScalar x) { return fabsf(x); } +SIMD_FORCE_INLINE btScalar btCos(btScalar x) { return cosf(x); } +SIMD_FORCE_INLINE btScalar btSin(btScalar x) { return sinf(x); } +SIMD_FORCE_INLINE btScalar btTan(btScalar x) { return tanf(x); } +SIMD_FORCE_INLINE btScalar btAcos(btScalar x) { + if (xbtScalar(1)) + x=btScalar(1); + return acosf(x); +} +SIMD_FORCE_INLINE btScalar btAsin(btScalar x) { + if (xbtScalar(1)) + x=btScalar(1); + return asinf(x); +} +SIMD_FORCE_INLINE btScalar btAtan(btScalar x) { return atanf(x); } +SIMD_FORCE_INLINE btScalar btAtan2(btScalar x, btScalar y) { return atan2f(x, y); } +SIMD_FORCE_INLINE btScalar btExp(btScalar x) { return expf(x); } +SIMD_FORCE_INLINE btScalar btLog(btScalar x) { return logf(x); } +SIMD_FORCE_INLINE btScalar btPow(btScalar x,btScalar y) { return powf(x,y); } +SIMD_FORCE_INLINE btScalar btFmod(btScalar x,btScalar y) { return fmodf(x,y); } + +#endif + +#define SIMD_2_PI btScalar(6.283185307179586232) +#define SIMD_PI (SIMD_2_PI * btScalar(0.5)) +#define SIMD_HALF_PI (SIMD_2_PI * btScalar(0.25)) +#define SIMD_RADS_PER_DEG (SIMD_2_PI / btScalar(360.0)) +#define SIMD_DEGS_PER_RAD (btScalar(360.0) / SIMD_2_PI) +#define SIMDSQRT12 btScalar(0.7071067811865475244008443621048490) + +#define btRecipSqrt(x) ((btScalar)(btScalar(1.0)/btSqrt(btScalar(x)))) /* reciprocal square root */ + + +#ifdef BT_USE_DOUBLE_PRECISION +#define SIMD_EPSILON DBL_EPSILON +#define SIMD_INFINITY DBL_MAX +#else +#define SIMD_EPSILON FLT_EPSILON +#define SIMD_INFINITY FLT_MAX +#endif + +SIMD_FORCE_INLINE btScalar btAtan2Fast(btScalar y, btScalar x) +{ + btScalar coeff_1 = SIMD_PI / 4.0f; + btScalar coeff_2 = 3.0f * coeff_1; + btScalar abs_y = btFabs(y); + btScalar angle; + if (x >= 0.0f) { + btScalar r = (x - abs_y) / (x + abs_y); + angle = coeff_1 - coeff_1 * r; + } else { + btScalar r = (x + abs_y) / (abs_y - x); + angle = coeff_2 - coeff_1 * r; + } + return (y < 0.0f) ? -angle : angle; +} + +SIMD_FORCE_INLINE bool btFuzzyZero(btScalar x) { return btFabs(x) < SIMD_EPSILON; } + +SIMD_FORCE_INLINE bool btEqual(btScalar a, btScalar eps) { + return (((a) <= eps) && !((a) < -eps)); +} +SIMD_FORCE_INLINE bool btGreaterEqual (btScalar a, btScalar eps) { + return (!((a) <= eps)); +} + + +SIMD_FORCE_INLINE int btIsNegative(btScalar x) { + return x < btScalar(0.0) ? 1 : 0; +} + +SIMD_FORCE_INLINE btScalar btRadians(btScalar x) { return x * SIMD_RADS_PER_DEG; } +SIMD_FORCE_INLINE btScalar btDegrees(btScalar x) { return x * SIMD_DEGS_PER_RAD; } + +#define BT_DECLARE_HANDLE(name) typedef struct name##__ { int unused; } *name + +#ifndef btFsel +SIMD_FORCE_INLINE btScalar btFsel(btScalar a, btScalar b, btScalar c) +{ + return a >= 0 ? b : c; +} +#endif +#define btFsels(a,b,c) (btScalar)btFsel(a,b,c) + + +SIMD_FORCE_INLINE bool btMachineIsLittleEndian() +{ + long int i = 1; + const char *p = (const char *) &i; + if (p[0] == 1) // Lowest address contains the least significant byte + return true; + else + return false; +} + + + +///btSelect avoids branches, which makes performance much better for consoles like Playstation 3 and XBox 360 +///Thanks Phil Knight. See also http://www.cellperformance.com/articles/2006/04/more_techniques_for_eliminatin_1.html +SIMD_FORCE_INLINE unsigned btSelect(unsigned condition, unsigned valueIfConditionNonZero, unsigned valueIfConditionZero) +{ + // Set testNz to 0xFFFFFFFF if condition is nonzero, 0x00000000 if condition is zero + // Rely on positive value or'ed with its negative having sign bit on + // and zero value or'ed with its negative (which is still zero) having sign bit off + // Use arithmetic shift right, shifting the sign bit through all 32 bits + unsigned testNz = (unsigned)(((int)condition | -(int)condition) >> 31); + unsigned testEqz = ~testNz; + return ((valueIfConditionNonZero & testNz) | (valueIfConditionZero & testEqz)); +} +SIMD_FORCE_INLINE int btSelect(unsigned condition, int valueIfConditionNonZero, int valueIfConditionZero) +{ + unsigned testNz = (unsigned)(((int)condition | -(int)condition) >> 31); + unsigned testEqz = ~testNz; + return static_cast((valueIfConditionNonZero & testNz) | (valueIfConditionZero & testEqz)); +} +SIMD_FORCE_INLINE float btSelect(unsigned condition, float valueIfConditionNonZero, float valueIfConditionZero) +{ +#ifdef BT_HAVE_NATIVE_FSEL + return (float)btFsel((btScalar)condition - btScalar(1.0f), valueIfConditionNonZero, valueIfConditionZero); +#else + return (condition != 0) ? valueIfConditionNonZero : valueIfConditionZero; +#endif +} + +template SIMD_FORCE_INLINE void btSwap(T& a, T& b) +{ + T tmp = a; + a = b; + b = tmp; +} + + +//PCK: endian swapping functions +SIMD_FORCE_INLINE unsigned btSwapEndian(unsigned val) +{ + return (((val & 0xff000000) >> 24) | ((val & 0x00ff0000) >> 8) | ((val & 0x0000ff00) << 8) | ((val & 0x000000ff) << 24)); +} + +SIMD_FORCE_INLINE unsigned short btSwapEndian(unsigned short val) +{ + return static_cast(((val & 0xff00) >> 8) | ((val & 0x00ff) << 8)); +} + +SIMD_FORCE_INLINE unsigned btSwapEndian(int val) +{ + return btSwapEndian((unsigned)val); +} + +SIMD_FORCE_INLINE unsigned short btSwapEndian(short val) +{ + return btSwapEndian((unsigned short) val); +} + +///btSwapFloat uses using char pointers to swap the endianness +////btSwapFloat/btSwapDouble will NOT return a float, because the machine might 'correct' invalid floating point values +///Not all values of sign/exponent/mantissa are valid floating point numbers according to IEEE 754. +///When a floating point unit is faced with an invalid value, it may actually change the value, or worse, throw an exception. +///In most systems, running user mode code, you wouldn't get an exception, but instead the hardware/os/runtime will 'fix' the number for you. +///so instead of returning a float/double, we return integer/long long integer +SIMD_FORCE_INLINE unsigned int btSwapEndianFloat(float d) +{ + unsigned int a = 0; + unsigned char *dst = (unsigned char *)&a; + unsigned char *src = (unsigned char *)&d; + + dst[0] = src[3]; + dst[1] = src[2]; + dst[2] = src[1]; + dst[3] = src[0]; + return a; +} + +// unswap using char pointers +SIMD_FORCE_INLINE float btUnswapEndianFloat(unsigned int a) +{ + float d = 0.0f; + unsigned char *src = (unsigned char *)&a; + unsigned char *dst = (unsigned char *)&d; + + dst[0] = src[3]; + dst[1] = src[2]; + dst[2] = src[1]; + dst[3] = src[0]; + + return d; +} + + +// swap using char pointers +SIMD_FORCE_INLINE void btSwapEndianDouble(double d, unsigned char* dst) +{ + unsigned char *src = (unsigned char *)&d; + + dst[0] = src[7]; + dst[1] = src[6]; + dst[2] = src[5]; + dst[3] = src[4]; + dst[4] = src[3]; + dst[5] = src[2]; + dst[6] = src[1]; + dst[7] = src[0]; + +} + +// unswap using char pointers +SIMD_FORCE_INLINE double btUnswapEndianDouble(const unsigned char *src) +{ + double d = 0.0; + unsigned char *dst = (unsigned char *)&d; + + dst[0] = src[7]; + dst[1] = src[6]; + dst[2] = src[5]; + dst[3] = src[4]; + dst[4] = src[3]; + dst[5] = src[2]; + dst[6] = src[1]; + dst[7] = src[0]; + + return d; +} + +// returns normalized value in range [-SIMD_PI, SIMD_PI] +SIMD_FORCE_INLINE btScalar btNormalizeAngle(btScalar angleInRadians) +{ + angleInRadians = btFmod(angleInRadians, SIMD_2_PI); + if(angleInRadians < -SIMD_PI) + { + return angleInRadians + SIMD_2_PI; + } + else if(angleInRadians > SIMD_PI) + { + return angleInRadians - SIMD_2_PI; + } + else + { + return angleInRadians; + } +} + +///rudimentary class to provide type info +struct btTypedObject +{ + btTypedObject(int objectType) + :m_objectType(objectType) + { + } + int m_objectType; + inline int getObjectType() const + { + return m_objectType; + } +}; +#endif //BT_SCALAR_H diff --git a/ofxMaxim/ofxMaxim/libs/storage/someTypes.h b/ofxMaxim/ofxMaxim/libs/storage/someTypes.h new file mode 100644 index 0000000..1c2c25c --- /dev/null +++ b/ofxMaxim/ofxMaxim/libs/storage/someTypes.h @@ -0,0 +1,22 @@ +/* + * arrayType.h + * mp + * + * Created by Chris on 01/11/2011. + * Copyright 2011 Goldsmiths Creative Computing. All rights reserved. + * + */ + +#pragma once + +#include "btAlignedObjectArray.h" + +typedef btAlignedObjectArray flArr; +typedef btAlignedObjectArray dbArr; +#ifndef uint +typedef unsigned int uint; +#endif + +#ifndef PI +#define PI 3.1415926535897932384626433832795028841968 +#endif \ No newline at end of file diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/Project.xcconfig b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/Project.xcconfig new file mode 100644 index 0000000..c10b9e5 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/Project.xcconfig @@ -0,0 +1,9 @@ +//THE PATH TO THE ROOT OF OUR OF PATH RELATIVE TO THIS PROJECT. +//THIS NEEDS TO BE DEFINED BEFORE CoreOF.xcconfig IS INCLUDED +OF_PATH = ../../.. + +//THIS HAS ALL THE HEADER AND LIBS FOR OF CORE +#include "../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig" + +OTHER_LDFLAGS = $(OF_CORE_LIBS) +HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS) diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/atomSynthesis.xcodeproj/project.pbxproj b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/atomSynthesis.xcodeproj/project.pbxproj new file mode 100644 index 0000000..7fb094d --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/atomSynthesis.xcodeproj/project.pbxproj @@ -0,0 +1,797 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 42; + objects = { + +/* Begin PBXBuildFile section */ + 83209D8E14602A9C00D1BD32 /* mp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83209D8C14602A9C00D1BD32 /* mp.cpp */; }; + 8320A5071462EED600D1BD32 /* pyOSCDebug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8320A5061462EED600D1BD32 /* pyOSCDebug.cpp */; }; + 8320A52C1462EF5100D1BD32 /* osc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8320A51E1462EF5000D1BD32 /* osc.a */; }; + 8320A52D1462EF5100D1BD32 /* osc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8320A5201462EF5000D1BD32 /* osc.a */; }; + 8320A52E1462EF5100D1BD32 /* ofxOscBundle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8320A5241462EF5000D1BD32 /* ofxOscBundle.cpp */; }; + 8320A52F1462EF5100D1BD32 /* ofxOscMessage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8320A5261462EF5000D1BD32 /* ofxOscMessage.cpp */; }; + 8320A5301462EF5100D1BD32 /* ofxOscReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8320A5281462EF5000D1BD32 /* ofxOscReceiver.cpp */; }; + 8320A5311462EF5100D1BD32 /* ofxOscSender.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8320A52A1462EF5100D1BD32 /* ofxOscSender.cpp */; }; + 8320A65914630D3F00D1BD32 /* maxiAtoms.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8320A65714630D3F00D1BD32 /* maxiAtoms.cpp */; }; + 8320A66B14630D8B00D1BD32 /* btAlignedAllocator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8320A66614630D8B00D1BD32 /* btAlignedAllocator.cpp */; }; + 8354488F140CFBC900D16314 /* fft.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83544883140CFBC900D16314 /* fft.cpp */; }; + 83544890140CFBC900D16314 /* maxiFFT.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83544885140CFBC900D16314 /* maxiFFT.cpp */; }; + 83544891140CFBC900D16314 /* maxiGrains.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83544887140CFBC900D16314 /* maxiGrains.cpp */; }; + 83544892140CFBC900D16314 /* maxiMFCC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83544889140CFBC900D16314 /* maxiMFCC.cpp */; }; + 83544893140CFBC900D16314 /* maximilian.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8354488B140CFBC900D16314 /* maximilian.cpp */; }; + BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; }; + E4328149138ABC9F0047C5CB /* openFrameworks.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4328148138ABC890047C5CB /* openFrameworks.a */; }; + E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9710E8CC7DD009D7055 /* AGL.framework */; }; + E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */; }; + E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */; }; + E45BE97E0E8CC7DD009D7055 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9740E8CC7DD009D7055 /* Carbon.framework */; }; + E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */; }; + E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */; }; + E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9770E8CC7DD009D7055 /* CoreServices.framework */; }; + E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9790E8CC7DD009D7055 /* OpenGL.framework */; }; + E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */; }; + E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1D0A3A1BDC003C02F2 /* main.cpp */; }; + E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424410CC5A17004149E2 /* AppKit.framework */; }; + E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424510CC5A17004149E2 /* Cocoa.framework */; }; + E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424610CC5A17004149E2 /* IOKit.framework */; }; + E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + E4328147138ABC890047C5CB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = E4B27C1510CBEB8E00536013; + remoteInfo = openFrameworks; + }; + E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = E4B27C1410CBEB8E00536013; + remoteInfo = openFrameworks; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + E4C2427710CC5ABF004149E2 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 83209D8C14602A9C00D1BD32 /* mp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mp.cpp; sourceTree = ""; }; + 83209D8D14602A9C00D1BD32 /* mp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mp.h; sourceTree = ""; }; + 8320A5051462EED600D1BD32 /* pyOSCDebug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pyOSCDebug.h; sourceTree = ""; }; + 8320A5061462EED600D1BD32 /* pyOSCDebug.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pyOSCDebug.cpp; sourceTree = ""; }; + 8320A5091462EF5000D1BD32 /* install.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = install.xml; sourceTree = ""; }; + 8320A50E1462EF5000D1BD32 /* IpEndpointName.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IpEndpointName.h; sourceTree = ""; }; + 8320A50F1462EF5000D1BD32 /* NetworkingUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkingUtils.h; sourceTree = ""; }; + 8320A5101462EF5000D1BD32 /* PacketListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PacketListener.h; sourceTree = ""; }; + 8320A5111462EF5000D1BD32 /* TimerListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TimerListener.h; sourceTree = ""; }; + 8320A5121462EF5000D1BD32 /* UdpSocket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UdpSocket.h; sourceTree = ""; }; + 8320A5141462EF5000D1BD32 /* MessageMappingOscPacketListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MessageMappingOscPacketListener.h; sourceTree = ""; }; + 8320A5151462EF5000D1BD32 /* OscException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OscException.h; sourceTree = ""; }; + 8320A5161462EF5000D1BD32 /* OscHostEndianness.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OscHostEndianness.h; sourceTree = ""; }; + 8320A5171462EF5000D1BD32 /* OscOutboundPacketStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OscOutboundPacketStream.h; sourceTree = ""; }; + 8320A5181462EF5000D1BD32 /* OscPacketListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OscPacketListener.h; sourceTree = ""; }; + 8320A5191462EF5000D1BD32 /* OscPrintReceivedElements.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OscPrintReceivedElements.h; sourceTree = ""; }; + 8320A51A1462EF5000D1BD32 /* OscReceivedElements.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OscReceivedElements.h; sourceTree = ""; }; + 8320A51B1462EF5000D1BD32 /* OscTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OscTypes.h; sourceTree = ""; }; + 8320A51E1462EF5000D1BD32 /* osc.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = osc.a; sourceTree = ""; }; + 8320A5201462EF5000D1BD32 /* osc.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = osc.a; sourceTree = ""; }; + 8320A5221462EF5000D1BD32 /* ofxOsc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxOsc.h; sourceTree = ""; }; + 8320A5231462EF5000D1BD32 /* ofxOscArg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxOscArg.h; sourceTree = ""; }; + 8320A5241462EF5000D1BD32 /* ofxOscBundle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxOscBundle.cpp; sourceTree = ""; }; + 8320A5251462EF5000D1BD32 /* ofxOscBundle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxOscBundle.h; sourceTree = ""; }; + 8320A5261462EF5000D1BD32 /* ofxOscMessage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxOscMessage.cpp; sourceTree = ""; }; + 8320A5271462EF5000D1BD32 /* ofxOscMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxOscMessage.h; sourceTree = ""; }; + 8320A5281462EF5000D1BD32 /* ofxOscReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxOscReceiver.cpp; sourceTree = ""; }; + 8320A5291462EF5000D1BD32 /* ofxOscReceiver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxOscReceiver.h; sourceTree = ""; }; + 8320A52A1462EF5100D1BD32 /* ofxOscSender.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxOscSender.cpp; sourceTree = ""; }; + 8320A52B1462EF5100D1BD32 /* ofxOscSender.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxOscSender.h; sourceTree = ""; }; + 8320A65714630D3F00D1BD32 /* maxiAtoms.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = maxiAtoms.cpp; path = ../../../../../src/Maximilian/ofxMaxim/ofxMaxim/libs/maxiAtoms.cpp; sourceTree = SOURCE_ROOT; }; + 8320A65814630D3F00D1BD32 /* maxiAtoms.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = maxiAtoms.h; path = ../../../../../src/Maximilian/ofxMaxim/ofxMaxim/libs/maxiAtoms.h; sourceTree = SOURCE_ROOT; }; + 8320A66614630D8B00D1BD32 /* btAlignedAllocator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = btAlignedAllocator.cpp; sourceTree = ""; }; + 8320A66714630D8B00D1BD32 /* btAlignedAllocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = btAlignedAllocator.h; sourceTree = ""; }; + 8320A66814630D8B00D1BD32 /* btAlignedObjectArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = btAlignedObjectArray.h; sourceTree = ""; }; + 8320A66914630D8B00D1BD32 /* btScalar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = btScalar.h; sourceTree = ""; }; + 8320A66A14630D8B00D1BD32 /* someTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = someTypes.h; sourceTree = ""; }; + 83544881140CFBC900D16314 /* install.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = install.xml; sourceTree = ""; }; + 83544883140CFBC900D16314 /* fft.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fft.cpp; sourceTree = ""; }; + 83544884140CFBC900D16314 /* fft.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fft.h; sourceTree = ""; }; + 83544885140CFBC900D16314 /* maxiFFT.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = maxiFFT.cpp; sourceTree = ""; }; + 83544886140CFBC900D16314 /* maxiFFT.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = maxiFFT.h; sourceTree = ""; }; + 83544887140CFBC900D16314 /* maxiGrains.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = maxiGrains.cpp; sourceTree = ""; }; + 83544888140CFBC900D16314 /* maxiGrains.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = maxiGrains.h; sourceTree = ""; }; + 83544889140CFBC900D16314 /* maxiMFCC.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = maxiMFCC.cpp; sourceTree = ""; }; + 8354488A140CFBC900D16314 /* maxiMFCC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = maxiMFCC.h; sourceTree = ""; }; + 8354488B140CFBC900D16314 /* maximilian.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = maximilian.cpp; sourceTree = ""; }; + 8354488C140CFBC900D16314 /* maximilian.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = maximilian.h; sourceTree = ""; }; + 8354488E140CFBC900D16314 /* ofxMaxim.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxMaxim.h; sourceTree = ""; }; + BBAB23BE13894E4700AA2426 /* GLUT.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLUT.framework; path = ../../../libs/glut/lib/osx/GLUT.framework; sourceTree = ""; }; + E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = openFrameworksLib.xcodeproj; path = ../../../libs/openFrameworksCompiled/project/osx/openFrameworksLib.xcodeproj; sourceTree = SOURCE_ROOT; }; + E45BE9710E8CC7DD009D7055 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = ""; }; + E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = ""; }; + E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = ""; }; + E45BE9740E8CC7DD009D7055 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = ""; }; + E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = ""; }; + E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = ""; }; + E45BE9770E8CC7DD009D7055 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = ""; }; + E45BE9790E8CC7DD009D7055 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = ""; }; + E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = ""; }; + E4B69B5B0A3A1756003C02F2 /* atomSynthesisDebug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = atomSynthesisDebug.app; sourceTree = BUILT_PRODUCTS_DIR; }; + E4B69E1D0A3A1BDC003C02F2 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = src/main.cpp; sourceTree = SOURCE_ROOT; }; + E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = "openFrameworks-Info.plist"; sourceTree = ""; }; + E4C2424410CC5A17004149E2 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; + E4C2424510CC5A17004149E2 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; + E4C2424610CC5A17004149E2 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = ""; }; + E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = CoreOF.xcconfig; path = ../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig; sourceTree = SOURCE_ROOT; }; + E4EB6923138AFD0F00A09F29 /* Project.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Project.xcconfig; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + E4B69B590A3A1756003C02F2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */, + E4328149138ABC9F0047C5CB /* openFrameworks.a in Frameworks */, + E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */, + E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */, + E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */, + E45BE97E0E8CC7DD009D7055 /* Carbon.framework in Frameworks */, + E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */, + E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */, + E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */, + E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */, + E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */, + E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */, + E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */, + E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */, + 8320A52C1462EF5100D1BD32 /* osc.a in Frameworks */, + 8320A52D1462EF5100D1BD32 /* osc.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 8320A4FD1462EECC00D1BD32 /* debug */ = { + isa = PBXGroup; + children = ( + 8320A5051462EED600D1BD32 /* pyOSCDebug.h */, + 8320A5061462EED600D1BD32 /* pyOSCDebug.cpp */, + ); + name = debug; + sourceTree = ""; + }; + 8320A5081462EF5000D1BD32 /* ofxOsc */ = { + isa = PBXGroup; + children = ( + 8320A5091462EF5000D1BD32 /* install.xml */, + 8320A50A1462EF5000D1BD32 /* libs */, + 8320A5211462EF5000D1BD32 /* src */, + ); + name = ofxOsc; + path = ../../../../of_preRelease_v007_iphone/addons/ofxOsc; + sourceTree = SOURCE_ROOT; + }; + 8320A50A1462EF5000D1BD32 /* libs */ = { + isa = PBXGroup; + children = ( + 8320A50B1462EF5000D1BD32 /* oscpack */, + ); + path = libs; + sourceTree = ""; + }; + 8320A50B1462EF5000D1BD32 /* oscpack */ = { + isa = PBXGroup; + children = ( + 8320A50C1462EF5000D1BD32 /* include */, + 8320A51C1462EF5000D1BD32 /* lib */, + ); + path = oscpack; + sourceTree = ""; + }; + 8320A50C1462EF5000D1BD32 /* include */ = { + isa = PBXGroup; + children = ( + 8320A50D1462EF5000D1BD32 /* ip */, + 8320A5131462EF5000D1BD32 /* osc */, + ); + path = include; + sourceTree = ""; + }; + 8320A50D1462EF5000D1BD32 /* ip */ = { + isa = PBXGroup; + children = ( + 8320A50E1462EF5000D1BD32 /* IpEndpointName.h */, + 8320A50F1462EF5000D1BD32 /* NetworkingUtils.h */, + 8320A5101462EF5000D1BD32 /* PacketListener.h */, + 8320A5111462EF5000D1BD32 /* TimerListener.h */, + 8320A5121462EF5000D1BD32 /* UdpSocket.h */, + ); + path = ip; + sourceTree = ""; + }; + 8320A5131462EF5000D1BD32 /* osc */ = { + isa = PBXGroup; + children = ( + 8320A5141462EF5000D1BD32 /* MessageMappingOscPacketListener.h */, + 8320A5151462EF5000D1BD32 /* OscException.h */, + 8320A5161462EF5000D1BD32 /* OscHostEndianness.h */, + 8320A5171462EF5000D1BD32 /* OscOutboundPacketStream.h */, + 8320A5181462EF5000D1BD32 /* OscPacketListener.h */, + 8320A5191462EF5000D1BD32 /* OscPrintReceivedElements.h */, + 8320A51A1462EF5000D1BD32 /* OscReceivedElements.h */, + 8320A51B1462EF5000D1BD32 /* OscTypes.h */, + ); + path = osc; + sourceTree = ""; + }; + 8320A51C1462EF5000D1BD32 /* lib */ = { + isa = PBXGroup; + children = ( + 8320A51D1462EF5000D1BD32 /* iphone */, + 8320A51F1462EF5000D1BD32 /* osx */, + ); + path = lib; + sourceTree = ""; + }; + 8320A51D1462EF5000D1BD32 /* iphone */ = { + isa = PBXGroup; + children = ( + 8320A51E1462EF5000D1BD32 /* osc.a */, + ); + path = iphone; + sourceTree = ""; + }; + 8320A51F1462EF5000D1BD32 /* osx */ = { + isa = PBXGroup; + children = ( + 8320A5201462EF5000D1BD32 /* osc.a */, + ); + path = osx; + sourceTree = ""; + }; + 8320A5211462EF5000D1BD32 /* src */ = { + isa = PBXGroup; + children = ( + 8320A5221462EF5000D1BD32 /* ofxOsc.h */, + 8320A5231462EF5000D1BD32 /* ofxOscArg.h */, + 8320A5241462EF5000D1BD32 /* ofxOscBundle.cpp */, + 8320A5251462EF5000D1BD32 /* ofxOscBundle.h */, + 8320A5261462EF5000D1BD32 /* ofxOscMessage.cpp */, + 8320A5271462EF5000D1BD32 /* ofxOscMessage.h */, + 8320A5281462EF5000D1BD32 /* ofxOscReceiver.cpp */, + 8320A5291462EF5000D1BD32 /* ofxOscReceiver.h */, + 8320A52A1462EF5100D1BD32 /* ofxOscSender.cpp */, + 8320A52B1462EF5100D1BD32 /* ofxOscSender.h */, + ); + path = src; + sourceTree = ""; + }; + 8320A66514630D8B00D1BD32 /* storage */ = { + isa = PBXGroup; + children = ( + 8320A66614630D8B00D1BD32 /* btAlignedAllocator.cpp */, + 8320A66714630D8B00D1BD32 /* btAlignedAllocator.h */, + 8320A66814630D8B00D1BD32 /* btAlignedObjectArray.h */, + 8320A66914630D8B00D1BD32 /* btScalar.h */, + 8320A66A14630D8B00D1BD32 /* someTypes.h */, + ); + name = storage; + path = ../../../../../src/Maximilian/ofxMaxim/ofxMaxim/libs/storage; + sourceTree = SOURCE_ROOT; + }; + 83544880140CFBC900D16314 /* ofxMaxim */ = { + isa = PBXGroup; + children = ( + 83544881140CFBC900D16314 /* install.xml */, + 83544882140CFBC900D16314 /* libs */, + 8354488D140CFBC900D16314 /* src */, + ); + name = ofxMaxim; + path = ../../../addons/ofxMaxim; + sourceTree = SOURCE_ROOT; + }; + 83544882140CFBC900D16314 /* libs */ = { + isa = PBXGroup; + children = ( + 8320A66514630D8B00D1BD32 /* storage */, + 8320A65714630D3F00D1BD32 /* maxiAtoms.cpp */, + 8320A65814630D3F00D1BD32 /* maxiAtoms.h */, + 83544883140CFBC900D16314 /* fft.cpp */, + 83544884140CFBC900D16314 /* fft.h */, + 83544885140CFBC900D16314 /* maxiFFT.cpp */, + 83544886140CFBC900D16314 /* maxiFFT.h */, + 83544887140CFBC900D16314 /* maxiGrains.cpp */, + 83544888140CFBC900D16314 /* maxiGrains.h */, + 83544889140CFBC900D16314 /* maxiMFCC.cpp */, + 8354488A140CFBC900D16314 /* maxiMFCC.h */, + 8354488B140CFBC900D16314 /* maximilian.cpp */, + 8354488C140CFBC900D16314 /* maximilian.h */, + ); + path = libs; + sourceTree = ""; + }; + 8354488D140CFBC900D16314 /* src */ = { + isa = PBXGroup; + children = ( + 8354488E140CFBC900D16314 /* ofxMaxim.h */, + ); + path = src; + sourceTree = ""; + }; + BB4B014C10F69532006C3DED /* addons */ = { + isa = PBXGroup; + children = ( + 8320A5081462EF5000D1BD32 /* ofxOsc */, + 83544880140CFBC900D16314 /* ofxMaxim */, + ); + name = addons; + sourceTree = ""; + }; + BBAB23C913894ECA00AA2426 /* system frameworks */ = { + isa = PBXGroup; + children = ( + E4C2424410CC5A17004149E2 /* AppKit.framework */, + E4C2424510CC5A17004149E2 /* Cocoa.framework */, + E4C2424610CC5A17004149E2 /* IOKit.framework */, + E45BE9710E8CC7DD009D7055 /* AGL.framework */, + E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */, + E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */, + E45BE9740E8CC7DD009D7055 /* Carbon.framework */, + E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */, + E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */, + E45BE9770E8CC7DD009D7055 /* CoreServices.framework */, + E45BE9790E8CC7DD009D7055 /* OpenGL.framework */, + E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */, + ); + name = "system frameworks"; + sourceTree = ""; + }; + BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */ = { + isa = PBXGroup; + children = ( + BBAB23BE13894E4700AA2426 /* GLUT.framework */, + ); + name = "3rd party frameworks"; + sourceTree = ""; + }; + E4328144138ABC890047C5CB /* Products */ = { + isa = PBXGroup; + children = ( + E4328148138ABC890047C5CB /* openFrameworks.a */, + ); + name = Products; + sourceTree = ""; + }; + E45BE5980E8CC70C009D7055 /* frameworks */ = { + isa = PBXGroup; + children = ( + BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */, + BBAB23C913894ECA00AA2426 /* system frameworks */, + ); + name = frameworks; + sourceTree = ""; + }; + E4B69B4A0A3A1720003C02F2 = { + isa = PBXGroup; + children = ( + E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */, + E4EB6923138AFD0F00A09F29 /* Project.xcconfig */, + E4B69E1C0A3A1BDC003C02F2 /* src */, + E4EEC9E9138DF44700A80321 /* openFrameworks */, + BB4B014C10F69532006C3DED /* addons */, + E45BE5980E8CC70C009D7055 /* frameworks */, + E4B69B5B0A3A1756003C02F2 /* atomSynthesisDebug.app */, + ); + sourceTree = ""; + }; + E4B69E1C0A3A1BDC003C02F2 /* src */ = { + isa = PBXGroup; + children = ( + 8320A4FD1462EECC00D1BD32 /* debug */, + 83209D8C14602A9C00D1BD32 /* mp.cpp */, + 83209D8D14602A9C00D1BD32 /* mp.h */, + E4B69E1D0A3A1BDC003C02F2 /* main.cpp */, + ); + path = src; + sourceTree = SOURCE_ROOT; + }; + E4EEC9E9138DF44700A80321 /* openFrameworks */ = { + isa = PBXGroup; + children = ( + E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */, + E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */, + ); + name = openFrameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + E4B69B5A0A3A1756003C02F2 /* atomSynthesis */ = { + isa = PBXNativeTarget; + buildConfigurationList = E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "atomSynthesis" */; + buildPhases = ( + E4B69B580A3A1756003C02F2 /* Sources */, + E4B69B590A3A1756003C02F2 /* Frameworks */, + E4B6FFFD0C3F9AB9008CF71C /* ShellScript */, + E4C2427710CC5ABF004149E2 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + E4EEB9AC138B136A00A80321 /* PBXTargetDependency */, + ); + name = atomSynthesis; + productName = myOFApp; + productReference = E4B69B5B0A3A1756003C02F2 /* atomSynthesisDebug.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + E4B69B4C0A3A1720003C02F2 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "atomSynthesis" */; + compatibilityVersion = "Xcode 2.4"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + English, + Japanese, + French, + German, + ); + mainGroup = E4B69B4A0A3A1720003C02F2; + productRefGroup = E4B69B4A0A3A1720003C02F2; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = E4328144138ABC890047C5CB /* Products */; + ProjectRef = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + E4B69B5A0A3A1756003C02F2 /* atomSynthesis */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + E4328148138ABC890047C5CB /* openFrameworks.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = openFrameworks.a; + remoteRef = E4328147138ABC890047C5CB /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXShellScriptBuildPhase section */ + E4B6FFFD0C3F9AB9008CF71C /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "cp -f ../../../libs/fmodex/lib/osx/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/libfmodex.dylib\"; install_name_tool -change ./libfmodex.dylib @executable_path/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME\";"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + E4B69B580A3A1756003C02F2 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */, + 8354488F140CFBC900D16314 /* fft.cpp in Sources */, + 83544890140CFBC900D16314 /* maxiFFT.cpp in Sources */, + 83544891140CFBC900D16314 /* maxiGrains.cpp in Sources */, + 83544892140CFBC900D16314 /* maxiMFCC.cpp in Sources */, + 83544893140CFBC900D16314 /* maximilian.cpp in Sources */, + 83209D8E14602A9C00D1BD32 /* mp.cpp in Sources */, + 8320A5071462EED600D1BD32 /* pyOSCDebug.cpp in Sources */, + 8320A52E1462EF5100D1BD32 /* ofxOscBundle.cpp in Sources */, + 8320A52F1462EF5100D1BD32 /* ofxOscMessage.cpp in Sources */, + 8320A5301462EF5100D1BD32 /* ofxOscReceiver.cpp in Sources */, + 8320A5311462EF5100D1BD32 /* ofxOscSender.cpp in Sources */, + 8320A65914630D3F00D1BD32 /* maxiAtoms.cpp in Sources */, + 8320A66B14630D8B00D1BD32 /* btAlignedAllocator.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + E4EEB9AC138B136A00A80321 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = openFrameworks; + targetProxy = E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + E4B69B4E0A3A1720003C02F2 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; + buildSettings = { + ARCHS = "$(NATIVE_ARCH)"; + CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/"; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + GCC_AUTO_VECTORIZATION = YES; + GCC_ENABLE_SSE3_EXTENSIONS = YES; + GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_MODEL_TUNING = G5; + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; + GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; + GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO; + GCC_WARN_UNINITIALIZED_AUTOS = NO; + GCC_WARN_UNUSED_VALUE = NO; + GCC_WARN_UNUSED_VARIABLE = NO; + OTHER_CPLUSPLUSFLAGS = ( + "-D__MACOSX_CORE__", + "-lpthread", + ); + }; + name = Debug; + }; + E4B69B4F0A3A1720003C02F2 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; + buildSettings = { + ARCHS = "$(NATIVE_ARCH)"; + CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/"; + COPY_PHASE_STRIP = YES; + DEAD_CODE_STRIPPING = YES; + GCC_AUTO_VECTORIZATION = YES; + GCC_ENABLE_SSE3_EXTENSIONS = YES; + GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_UNROLL_LOOPS = YES; + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; + GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; + GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO; + GCC_WARN_UNINITIALIZED_AUTOS = NO; + GCC_WARN_UNUSED_VALUE = NO; + GCC_WARN_UNUSED_VARIABLE = NO; + OTHER_CPLUSPLUSFLAGS = ( + "-D__MACOSX_CORE__", + "-lpthread", + ); + }; + name = Release; + }; + E4B69B600A3A1757003C02F2 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", + ); + FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\""; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_MODEL_TUNING = G4; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h"; + INFOPLIST_FILE = "openFrameworks-Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_52)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", + ); + LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../../of_preRelease_v007_iphone/addons/ofxOsc/libs/oscpack/lib/iphone\""; + LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(SRCROOT)/../../../../of_preRelease_v007_iphone/addons/ofxOsc/libs/oscpack/lib/osx\""; + PREBINDING = NO; + PRODUCT_NAME = "$(TARGET_NAME)Debug"; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + E4B69B610A3A1757003C02F2 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", + ); + FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\""; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_MODEL_TUNING = G4; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h"; + INFOPLIST_FILE = "openFrameworks-Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_1)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_1)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_2)", + ); + LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)/../../../../of_preRelease_v007_iphone/addons/ofxOsc/libs/oscpack/lib/iphone\""; + LIBRARY_SEARCH_PATHS_QUOTED_2 = "\"$(SRCROOT)/../../../../of_preRelease_v007_iphone/addons/ofxOsc/libs/oscpack/lib/osx\""; + PREBINDING = NO; + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "atomSynthesis" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E4B69B4E0A3A1720003C02F2 /* Debug */, + E4B69B4F0A3A1720003C02F2 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "atomSynthesis" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E4B69B600A3A1757003C02F2 /* Debug */, + E4B69B610A3A1757003C02F2 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = E4B69B4C0A3A1720003C02F2 /* Project object */; +} diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/GLUT b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/GLUT new file mode 120000 index 0000000..c578310 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/GLUT @@ -0,0 +1 @@ +Versions/Current/GLUT \ No newline at end of file diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Headers b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Headers new file mode 120000 index 0000000..a177d2a --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Headers @@ -0,0 +1 @@ +Versions/Current/Headers \ No newline at end of file diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Resources b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Resources new file mode 120000 index 0000000..953ee36 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Resources @@ -0,0 +1 @@ +Versions/Current/Resources \ No newline at end of file diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/GLUT b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/GLUT new file mode 100755 index 0000000..2be5e34 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/GLUT differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/copy.h b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/copy.h new file mode 100755 index 0000000..a5116e2 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/copy.h @@ -0,0 +1,18 @@ + +/* + * + * Written By Linas Vepstas November 1991 + */ + + +#define COPY_THREE_WORDS(A,B) { \ + struct three_words { int a, b, c, }; \ + *(struct three_words *) (A) = *(struct three_words *) (B); \ +} + +#define COPY_FOUR_WORDS(A,B) { \ + struct four_words { int a, b, c, d, }; \ + *(struct four_words *) (A) = *(struct four_words *) (B); \ +} + +/* ============================================================= */ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/extrude.h b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/extrude.h new file mode 100755 index 0000000..658699e --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/extrude.h @@ -0,0 +1,96 @@ + +/* + * extrude.h + * + * FUNCTION: + * prototypes for privately used subroutines for the tubing library + * + * HISTORY: + * Linas Vepstas 1991 + */ + +#include "port.h" /* for gleDouble */ + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +/* ============================================================ */ +/* + * Provides choice of calling subroutine, vs. invoking macro. + * Basically, inlines the source, or not. + * Trades performance for executable size. + */ + +#define INLINE_INTERSECT +#ifdef INLINE_INTERSECT +#define INNERSECT(sect,p,n,v1,v2) { INTERSECT(sect,p,n,v1,v2); } +#else +#define INNERSECT(sect,p,n,v1,v2) intersect(sect,p,n,v1,v2) +#endif /* INLINE_INTERSECT */ + +/* ============================================================ */ +/* The folowing defines give a kludgy way of accessing the qmesh primitive */ + +/* +#define bgntmesh _emu_qmesh_bgnqmesh +#define endtmesh _emu_qmesh_endqmesh +#define c3f _emu_qmesh_c3f +#define n3f _emu_qmesh_n3f +#define v3f _emu_qmesh_v3f +*/ + +/* ============================================================ */ + +extern void up_sanity_check (gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3]); /* polyline */ + + +extern void draw_raw_style_end_cap (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble zval, /* where to draw cap */ + int frontwards); /* front or back cap */ + +extern void draw_round_style_cap_callback (int iloop, + double cap[][3], + float face_color[3], + gleDouble cut_vector[3], + gleDouble bisect_vector[3], + double norms[][3], + int frontwards); + +extern void draw_angle_style_front_cap (int ncp, + gleDouble bi[3], + gleDouble point_array[][3]); + +extern void extrusion_raw_join (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2],/* 2D contour normal vecs */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline */ + float color_array[][3], /* color of polyline */ + gleDouble xform_array[][2][3]); /* 2D contour xforms */ + + +extern void extrusion_round_or_cut_join (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2],/* 2D contour normal vecs */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline */ + float color_array[][3], /* color of polyline */ + gleDouble xform_array[][2][3]); /* 2D contour xforms */ + + +extern void extrusion_angle_join (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2],/* 2D contour normal vecs */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline */ + float color_array[][3], /* color of polyline */ + gleDouble xform_array[][2][3]); /* 2D contour xforms */ + +/* -------------------------- end of file -------------------------------- */ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmap.h b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmap.h new file mode 100755 index 0000000..baf54a7 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmap.h @@ -0,0 +1,137 @@ +#ifndef __glsmap_h__ +#define __glsmap_h__ + +/* Copyright (c) Mark J. Kilgard, 1998. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#if defined(_WIN32) + +/* Try hard to avoid including to avoid name space pollution, + but Win32's needs APIENTRY and WINGDIAPI defined properly. */ +# if 0 +# define WIN32_LEAN_AND_MEAN +# include +# else + /* XXX This is from Win32's */ +# ifndef APIENTRY +# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) +# define APIENTRY __stdcall +# else +# define APIENTRY +# endif +# endif +# ifndef CALLBACK + /* XXX This is from Win32's */ +# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) +# define CALLBACK __stdcall +# else +# define CALLBACK +# endif +# endif + /* XXX This is from Win32's and */ +# ifndef WINGDIAPI +# define WINGDIAPI __declspec(dllimport) +# endif + /* XXX This is from Win32's */ +# ifndef _WCHAR_T_DEFINED +typedef unsigned short wchar_t; +# define _WCHAR_T_DEFINED +# endif +# endif + +#pragma warning (disable:4244) /* Disable bogus conversion warnings. */ +#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ + +#endif /* _WIN32 */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum { + SMAP_CLEAR_SMAP_TEXTURE = 0x1, + SMAP_GENERATE_VIEW_MIPMAPS = 0x2, + SMAP_GENERATE_SMAP_MIPMAPS = 0x4, + SMAP_GENERATE_MIPMAPS = 0x6 /* both of above */ +} SphereMapFlags; + +/* Cube view enumerants. */ +enum { + SMAP_FRONT = 0, + SMAP_TOP = 1, + SMAP_BOTTOM = 2, + SMAP_LEFT = 3, + SMAP_RIGHT = 4, + SMAP_BACK = 5 +}; + +typedef struct _SphereMap SphereMap; + +extern SphereMap *smapCreateSphereMap(SphereMap *shareSmap); +extern void smapDestroySphereMap(SphereMap *smap); + +extern void smapConfigureSphereMapMesh(SphereMap *smap, int steps, int rings, int edgeExtend); + +extern void smapSetSphereMapTexObj(SphereMap *smap, GLuint texobj); +extern void smapSetViewTexObj(SphereMap *smap, GLuint texobj); +extern void smapSetViewTexObjs(SphereMap *smap, GLuint texobjs[6]); +extern void smapGetSphereMapTexObj(SphereMap *smap, GLuint *texobj); +extern void smapGetViewTexObj(SphereMap *smap, GLuint *texobj); +extern void smapGetViewTexObjs(SphereMap *smap, GLuint texobjs[6]); + +extern void smapSetFlags(SphereMap *smap, SphereMapFlags flags); +extern void smapGetFlags(SphereMap *smap, SphereMapFlags *flags); + +extern void smapSetViewOrigin(SphereMap *smap, GLint x, GLint y); +extern void smapSetSphereMapOrigin(SphereMap *smap, GLint x, GLint y); +extern void smapGetViewOrigin(SphereMap *smap, GLint *x, GLint *y); +extern void smapGetSphereMapOrigin(SphereMap *smap, GLint *x, GLint *y); + +extern void smapSetEye(SphereMap *smap, GLfloat eyex, GLfloat eyey, GLfloat eyez); +extern void smapSetEyeVector(SphereMap *smap, GLfloat *eye); +extern void smapSetUp(SphereMap *smap, GLfloat upx, GLfloat upy, GLfloat upz); +extern void smapSetUpVector(SphereMap *smap, GLfloat *up); +extern void smapSetObject(SphereMap *smap, GLfloat objx, GLfloat objy, GLfloat objz); +extern void smapSetObjectVector(SphereMap *smap, GLfloat *obj); +extern void smapGetEye(SphereMap *smap, GLfloat *eyex, GLfloat *eyey, GLfloat *eyez); +extern void smapGetEyeVector(SphereMap *smap, GLfloat *eye); +extern void smapGetUp(SphereMap *smap, GLfloat *upx, GLfloat *upy, GLfloat *upz); +extern void smapGetUpVector(SphereMap *smap, GLfloat *up); +extern void smapGetObject(SphereMap *smap, GLfloat *objx, GLfloat *objy, GLfloat *objz); +extern void smapGetObjectVector(SphereMap *smap, GLfloat *obj); + +extern void smapSetNearFar(SphereMap *smap, GLfloat viewNear, GLfloat viewFar); +extern void smapGetNearFar(SphereMap *smap, GLfloat *viewNear, GLfloat *viewFar); + +extern void smapSetSphereMapTexDim(SphereMap *smap, GLsizei texdim); +extern void smapSetViewTexDim(SphereMap *smap, GLsizei texdim); +extern void smapGetSphereMapTexDim(SphereMap *smap, GLsizei *texdim); +extern void smapGetViewTexDim(SphereMap *smap, GLsizei *texdim); + +extern void smapSetContextData(SphereMap *smap, void *context); +extern void smapGetContextData(SphereMap *smap, void **context); + +extern void smapSetPositionLightsFunc(SphereMap *smap, void (*positionLights)(int view, void *context)); +extern void smapSetDrawViewFunc(SphereMap *smap, void (*drawView)(int view, void *context)); +extern void smapGetPositionLightsFunc(SphereMap *smap, void (**positionLights)(int view, void *context)); +extern void smapGetDrawViewFunc(SphereMap *smap, void (**drawView)(int view, void *context)); + +extern void smapGenViewTex(SphereMap *smap, int view); +extern void smapGenViewTexs(SphereMap *smap); +extern void smapGenSphereMapFromViewTexs(SphereMap *smap); +extern void smapGenSphereMap(SphereMap *smap); +extern void smapGenSphereMapWithOneViewTex(SphereMap *smap); + +extern int smapRvecToSt(float rvec[3], float st[2]); +extern void smapStToRvec(float *st, float *rvec); + +#ifdef __cplusplus +} + +#endif +#endif /* __glsmap_h__ */ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmapint.h b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmapint.h new file mode 100755 index 0000000..3620e7d --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmapint.h @@ -0,0 +1,102 @@ +#ifndef __glsmapint_h__ +#define __glsmapint_h__ + +/* Copyright (c) Mark J. Kilgard, 1998. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#include "glsmap.h" + +enum { X = 0, Y = 1, Z = 2 }; + +#define INITFACE(mesh) \ + int steps = mesh->steps; \ + int sqsteps = mesh->steps * mesh->steps + +#define FACE(side,y,x) \ + mesh->face[(side)*sqsteps + (y)*steps + (x)] + +#define FACExy(side,i,j) \ + (&FACE(side,i,j).x) + +#define FACEst(side,i,j) \ + (&FACE(side,i,j).s) + +#define INITBACK(mesh) \ + int allrings = mesh->rings + mesh->edgeExtend; \ + int ringedspokes = allrings * mesh->steps + +#define BACK(edge,ring,spoke) \ + mesh->back[(edge)*ringedspokes + (ring)*mesh->steps + (spoke)] + +#define BACKxy(edge,ring,spoke) \ + (&BACK(edge,ring,spoke).x) + +#define BACKst(edge,ring,spoke) \ + (&BACK(edge,ring,spoke).s) + +typedef struct _STXY { + GLfloat s, t; + GLfloat x, y; +} STXY; + +typedef struct _SphereMapMesh { + + int refcnt; + + int steps; + int rings; + int edgeExtend; + + STXY *face; + STXY *back; + +} SphereMapMesh; + +struct _SphereMap { + + /* Shared sphere map mesh vertex data. */ + SphereMapMesh *mesh; + + /* Texture object ids. */ + GLuint smapTexObj; + GLuint viewTexObjs[6]; + GLuint viewTexObj; + + /* Flags */ + SphereMapFlags flags; + + /* Texture dimensions must be a power of two. */ + int viewTexDim; /* view texture dimension */ + int smapTexDim; /* sphere map texture dimension */ + + /* Viewport origins for view and sphere map rendering. */ + int viewOrigin[2]; + int smapOrigin[2]; + + /* Viewing vectors. */ + GLfloat eye[3]; + GLfloat up[3]; + GLfloat obj[3]; + + /* Projection parameters. */ + GLfloat viewNear; + GLfloat viewFar; + + /* Rendering callbacks. */ + void (*positionLights)(int view, void *context); + void (*drawView)(int view, void *context); + + /* Application specified callback data. */ + void *context; + +}; + +/* Library internal routines. */ +extern void __smapDrawSphereMapMeshSide(SphereMapMesh *mesh, int side); +extern void __smapDrawSphereMapMeshBack(SphereMapMesh *mesh); +extern void __smapValidateSphereMapMesh(SphereMapMesh *mesh); + +#endif /* __glsmapint_h__ */ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glut.h b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glut.h new file mode 100755 index 0000000..cbc6ebe --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glut.h @@ -0,0 +1,648 @@ +#ifndef __glut_h__ +#define __glut_h__ + +/* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998. */ + +/* This program is freely distributable without licensing fees and is + provided without guarantee or warrantee expressed or implied. This + program is -not- in the public domain. */ +//#define GLUT_OF_007_HACK + +#if defined(_WIN32) + +/* GLUT 3.7 now tries to avoid including + to avoid name space pollution, but Win32's + needs APIENTRY and WINGDIAPI defined properly. */ +# if 0 +# define WIN32_LEAN_AND_MEAN +# include +# else + /* XXX This is from Win32's */ +# ifndef APIENTRY +# define GLUT_APIENTRY_DEFINED +# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) +# define APIENTRY __stdcall +# else +# define APIENTRY +# endif +# endif + /* XXX This is from Win32's */ +# ifndef CALLBACK +# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) +# define CALLBACK __stdcall +# else +# define CALLBACK +# endif +# endif + /* XXX This is from Win32's and */ +# ifndef WINGDIAPI +# define GLUT_WINGDIAPI_DEFINED +# define WINGDIAPI __declspec(dllimport) +# endif + /* XXX This is from Win32's */ +# ifndef _WCHAR_T_DEFINED +typedef unsigned short wchar_t; +# define _WCHAR_T_DEFINED +# endif +# endif + +#pragma comment (lib, "winmm.lib") /* link with Windows MultiMedia lib */ +#pragma comment (lib, "opengl32.lib") /* link with Microsoft OpenGL lib */ +#pragma comment (lib, "glu32.lib") /* link with OpenGL Utility lib */ +#pragma comment (lib, "glut32.lib") /* link with Win32 GLUT lib */ + +#pragma warning (disable:4244) /* Disable bogus conversion warnings. */ +#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ + +#endif + +#if defined(__APPLE__) || defined(MACOSX) +#include +#include +#include +#else +#include +#include +#endif + +/* define APIENTRY and CALLBACK to null string if we aren't on Win32 */ +#if !defined(_WIN32) +#define APIENTRY +#define GLUT_APIENTRY_DEFINED +#define CALLBACK +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/** + GLUT API revision history: + + GLUT_API_VERSION is updated to reflect incompatible GLUT + API changes (interface changes, semantic changes, deletions, + or additions). + + GLUT_API_VERSION=1 First public release of GLUT. 11/29/94 + + GLUT_API_VERSION=2 Added support for OpenGL/GLX multisampling, + extension. Supports new input devices like tablet, dial and button + box, and Spaceball. Easy to query OpenGL extensions. + + GLUT_API_VERSION=3 glutMenuStatus added. + + GLUT_API_VERSION=4 glutInitDisplayString, glutWarpPointer, + glutBitmapLength, glutStrokeLength, glutWindowStatusFunc, dynamic + video resize subAPI, glutPostWindowRedisplay, glutKeyboardUpFunc, + glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat, + glutJoystickFunc, glutForceJoystickFunc (NOT FINALIZED!). + + GLUT_API_VERSION=5 glutGetProcAddress (added by BrianP) +**/ +#ifndef GLUT_API_VERSION /* allow this to be overriden */ +#define GLUT_API_VERSION 5 +#endif + +/** + GLUT implementation revision history: + + GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT + API revisions and implementation revisions (ie, bug fixes). + + GLUT_XLIB_IMPLEMENTATION=1 mjk's first public release of + GLUT Xlib-based implementation. 11/29/94 + + GLUT_XLIB_IMPLEMENTATION=2 mjk's second public release of + GLUT Xlib-based implementation providing GLUT version 2 + interfaces. + + GLUT_XLIB_IMPLEMENTATION=3 mjk's GLUT 2.2 images. 4/17/95 + + GLUT_XLIB_IMPLEMENTATION=4 mjk's GLUT 2.3 images. 6/?/95 + + GLUT_XLIB_IMPLEMENTATION=5 mjk's GLUT 3.0 images. 10/?/95 + + GLUT_XLIB_IMPLEMENTATION=7 mjk's GLUT 3.1+ with glutWarpPoitner. 7/24/96 + + GLUT_XLIB_IMPLEMENTATION=8 mjk's GLUT 3.1+ with glutWarpPoitner + and video resize. 1/3/97 + + GLUT_XLIB_IMPLEMENTATION=9 mjk's GLUT 3.4 release with early GLUT 4 routines. + + GLUT_XLIB_IMPLEMENTATION=11 Mesa 2.5's GLUT 3.6 release. + + GLUT_XLIB_IMPLEMENTATION=12 mjk's GLUT 3.6 release with early GLUT 4 routines + signal handling. + + GLUT_XLIB_IMPLEMENTATION=13 mjk's GLUT 3.7 beta with GameGLUT support. + + GLUT_XLIB_IMPLEMENTATION=14 mjk's GLUT 3.7 beta with f90gl friend interface. + + GLUT_XLIB_IMPLEMENTATION=15 mjk's GLUT 3.7 beta sync'ed with Mesa +**/ +#ifndef GLUT_XLIB_IMPLEMENTATION /* Allow this to be overriden. */ +#define GLUT_XLIB_IMPLEMENTATION 15 +#endif + +/** + MacOS X GLUT implementation revision history: + + GLUT_MACOSX_IMPLEMENTATION is updated to reflect MacOS X + specific GLUT API revisions and implementation revisions + (ie, bug fixes). + + GLUT_MACOSX_IMPLEMENTATION=1 glutSurfaceTexture. + + GLUT_MACOSX_IMPLEMENTATION=2 glutWMCloseFunc, glutCheckLoop. + +**/ +#ifndef GLUT_MACOSX_IMPLEMENTATION /* Allow this to be overriden. */ +#define GLUT_MACOSX_IMPLEMENTATION 2 +#endif + +/* Display mode bit masks. */ +#define GLUT_RGB 0 +#define GLUT_RGBA GLUT_RGB +#define GLUT_INDEX 1 +#define GLUT_SINGLE 0 +#define GLUT_DOUBLE 2 +#define GLUT_ACCUM 4 +#define GLUT_ALPHA 8 +#define GLUT_DEPTH 16 +#define GLUT_STENCIL 32 +#if (GLUT_API_VERSION >= 2) +#define GLUT_MULTISAMPLE 128 +#define GLUT_STEREO 256 +#endif +#if (GLUT_API_VERSION >= 3) +#define GLUT_LUMINANCE 512 +#endif +#define GLUT_NO_RECOVERY 1024 + +/* Mouse buttons. */ +#define GLUT_LEFT_BUTTON 0 +#define GLUT_MIDDLE_BUTTON 1 +#define GLUT_RIGHT_BUTTON 2 + +/* Mouse button state. */ +#define GLUT_DOWN 0 +#define GLUT_UP 1 + +#if (GLUT_API_VERSION >= 2) +/* function keys */ +#define GLUT_KEY_F1 1 +#define GLUT_KEY_F2 2 +#define GLUT_KEY_F3 3 +#define GLUT_KEY_F4 4 +#define GLUT_KEY_F5 5 +#define GLUT_KEY_F6 6 +#define GLUT_KEY_F7 7 +#define GLUT_KEY_F8 8 +#define GLUT_KEY_F9 9 +#define GLUT_KEY_F10 10 +#define GLUT_KEY_F11 11 +#define GLUT_KEY_F12 12 +/* directional keys */ +#define GLUT_KEY_LEFT 100 +#define GLUT_KEY_UP 101 +#define GLUT_KEY_RIGHT 102 +#define GLUT_KEY_DOWN 103 +#define GLUT_KEY_PAGE_UP 104 +#define GLUT_KEY_PAGE_DOWN 105 +#define GLUT_KEY_HOME 106 +#define GLUT_KEY_END 107 +#define GLUT_KEY_INSERT 108 +#endif + +/* Entry/exit state. */ +#define GLUT_LEFT 0 +#define GLUT_ENTERED 1 + +/* Menu usage state. */ +#define GLUT_MENU_NOT_IN_USE 0 +#define GLUT_MENU_IN_USE 1 + +/* Visibility state. */ +#define GLUT_NOT_VISIBLE 0 +#define GLUT_VISIBLE 1 + +/* Window status state. */ +#define GLUT_HIDDEN 0 +#define GLUT_FULLY_RETAINED 1 +#define GLUT_PARTIALLY_RETAINED 2 +#define GLUT_FULLY_COVERED 3 + +/* Color index component selection values. */ +#define GLUT_RED 0 +#define GLUT_GREEN 1 +#define GLUT_BLUE 2 + +/* Layers for use. */ +#define GLUT_NORMAL 0 +#define GLUT_OVERLAY 1 + +#if defined(_WIN32) +/* Stroke font constants (use these in GLUT program). */ +#define GLUT_STROKE_ROMAN ((void*)0) +#define GLUT_STROKE_MONO_ROMAN ((void*)1) + +/* Bitmap font constants (use these in GLUT program). */ +#define GLUT_BITMAP_9_BY_15 ((void*)2) +#define GLUT_BITMAP_8_BY_13 ((void*)3) +#define GLUT_BITMAP_TIMES_ROMAN_10 ((void*)4) +#define GLUT_BITMAP_TIMES_ROMAN_24 ((void*)5) +#if (GLUT_API_VERSION >= 3) +#define GLUT_BITMAP_HELVETICA_10 ((void*)6) +#define GLUT_BITMAP_HELVETICA_12 ((void*)7) +#define GLUT_BITMAP_HELVETICA_18 ((void*)8) +#endif +#else +/* Stroke font opaque addresses (use constants instead in source code). */ +extern void *glutStrokeRoman; +extern void *glutStrokeMonoRoman; + +/* Stroke font constants (use these in GLUT program). */ +#define GLUT_STROKE_ROMAN (&glutStrokeRoman) +#define GLUT_STROKE_MONO_ROMAN (&glutStrokeMonoRoman) + +/* Bitmap font opaque addresses (use constants instead in source code). */ +extern void *glutBitmap9By15; +extern void *glutBitmap8By13; +extern void *glutBitmapTimesRoman10; +extern void *glutBitmapTimesRoman24; +extern void *glutBitmapHelvetica10; +extern void *glutBitmapHelvetica12; +extern void *glutBitmapHelvetica18; + +/* Bitmap font constants (use these in GLUT program). */ +#define GLUT_BITMAP_9_BY_15 (&glutBitmap9By15) +#define GLUT_BITMAP_8_BY_13 (&glutBitmap8By13) +#define GLUT_BITMAP_TIMES_ROMAN_10 (&glutBitmapTimesRoman10) +#define GLUT_BITMAP_TIMES_ROMAN_24 (&glutBitmapTimesRoman24) +#if (GLUT_API_VERSION >= 3) +#define GLUT_BITMAP_HELVETICA_10 (&glutBitmapHelvetica10) +#define GLUT_BITMAP_HELVETICA_12 (&glutBitmapHelvetica12) +#define GLUT_BITMAP_HELVETICA_18 (&glutBitmapHelvetica18) +#endif +#endif + +/* glutGet parameters. */ +#define GLUT_WINDOW_X 100 +#define GLUT_WINDOW_Y 101 +#define GLUT_WINDOW_WIDTH 102 +#define GLUT_WINDOW_HEIGHT 103 +#define GLUT_WINDOW_BUFFER_SIZE 104 +#define GLUT_WINDOW_STENCIL_SIZE 105 +#define GLUT_WINDOW_DEPTH_SIZE 106 +#define GLUT_WINDOW_RED_SIZE 107 +#define GLUT_WINDOW_GREEN_SIZE 108 +#define GLUT_WINDOW_BLUE_SIZE 109 +#define GLUT_WINDOW_ALPHA_SIZE 110 +#define GLUT_WINDOW_ACCUM_RED_SIZE 111 +#define GLUT_WINDOW_ACCUM_GREEN_SIZE 112 +#define GLUT_WINDOW_ACCUM_BLUE_SIZE 113 +#define GLUT_WINDOW_ACCUM_ALPHA_SIZE 114 +#define GLUT_WINDOW_DOUBLEBUFFER 115 +#define GLUT_WINDOW_RGBA 116 +#define GLUT_WINDOW_PARENT 117 +#define GLUT_WINDOW_NUM_CHILDREN 118 +#define GLUT_WINDOW_COLORMAP_SIZE 119 +#if (GLUT_API_VERSION >= 2) +#define GLUT_WINDOW_NUM_SAMPLES 120 +#define GLUT_WINDOW_STEREO 121 +#endif +#if (GLUT_API_VERSION >= 3) +#define GLUT_WINDOW_CURSOR 122 +#endif +#define GLUT_SCREEN_WIDTH 200 +#define GLUT_SCREEN_HEIGHT 201 +#define GLUT_SCREEN_WIDTH_MM 202 +#define GLUT_SCREEN_HEIGHT_MM 203 +#define GLUT_MENU_NUM_ITEMS 300 +#define GLUT_DISPLAY_MODE_POSSIBLE 400 +#define GLUT_INIT_WINDOW_X 500 +#define GLUT_INIT_WINDOW_Y 501 +#define GLUT_INIT_WINDOW_WIDTH 502 +#define GLUT_INIT_WINDOW_HEIGHT 503 +#define GLUT_INIT_DISPLAY_MODE 504 +#if (GLUT_API_VERSION >= 2) +#define GLUT_ELAPSED_TIME 700 +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +#define GLUT_WINDOW_FORMAT_ID 123 +#endif + +#if (GLUT_API_VERSION >= 2) +/* glutDeviceGet parameters. */ +#define GLUT_HAS_KEYBOARD 600 +#define GLUT_HAS_MOUSE 601 +#define GLUT_HAS_SPACEBALL 602 +#define GLUT_HAS_DIAL_AND_BUTTON_BOX 603 +#define GLUT_HAS_TABLET 604 +#define GLUT_NUM_MOUSE_BUTTONS 605 +#define GLUT_NUM_SPACEBALL_BUTTONS 606 +#define GLUT_NUM_BUTTON_BOX_BUTTONS 607 +#define GLUT_NUM_DIALS 608 +#define GLUT_NUM_TABLET_BUTTONS 609 +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +#define GLUT_DEVICE_IGNORE_KEY_REPEAT 610 +#define GLUT_DEVICE_KEY_REPEAT 611 +#define GLUT_HAS_JOYSTICK 612 +#define GLUT_OWNS_JOYSTICK 613 +#define GLUT_JOYSTICK_BUTTONS 614 +#define GLUT_JOYSTICK_AXES 615 +#define GLUT_JOYSTICK_POLL_RATE 616 +#endif + +#if (GLUT_API_VERSION >= 3) +/* glutLayerGet parameters. */ +#define GLUT_OVERLAY_POSSIBLE 800 +#define GLUT_LAYER_IN_USE 801 +#define GLUT_HAS_OVERLAY 802 +#define GLUT_TRANSPARENT_INDEX 803 +#define GLUT_NORMAL_DAMAGED 804 +#define GLUT_OVERLAY_DAMAGED 805 + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +/* glutVideoResizeGet parameters. */ +#define GLUT_VIDEO_RESIZE_POSSIBLE 900 +#define GLUT_VIDEO_RESIZE_IN_USE 901 +#define GLUT_VIDEO_RESIZE_X_DELTA 902 +#define GLUT_VIDEO_RESIZE_Y_DELTA 903 +#define GLUT_VIDEO_RESIZE_WIDTH_DELTA 904 +#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA 905 +#define GLUT_VIDEO_RESIZE_X 906 +#define GLUT_VIDEO_RESIZE_Y 907 +#define GLUT_VIDEO_RESIZE_WIDTH 908 +#define GLUT_VIDEO_RESIZE_HEIGHT 909 +#endif + +/* glutUseLayer parameters. */ +#define GLUT_NORMAL 0 +#define GLUT_OVERLAY 1 + +/* glutGetModifiers return mask. */ +#define GLUT_ACTIVE_SHIFT 1 +#define GLUT_ACTIVE_CTRL 2 +#define GLUT_ACTIVE_ALT 4 + +/* glutSetCursor parameters. */ +/* Basic arrows. */ +#define GLUT_CURSOR_RIGHT_ARROW 0 +#define GLUT_CURSOR_LEFT_ARROW 1 +/* Symbolic cursor shapes. */ +#define GLUT_CURSOR_INFO 2 +#define GLUT_CURSOR_DESTROY 3 +#define GLUT_CURSOR_HELP 4 +#define GLUT_CURSOR_CYCLE 5 +#define GLUT_CURSOR_SPRAY 6 +#define GLUT_CURSOR_WAIT 7 +#define GLUT_CURSOR_TEXT 8 +#define GLUT_CURSOR_CROSSHAIR 9 +/* Directional cursors. */ +#define GLUT_CURSOR_UP_DOWN 10 +#define GLUT_CURSOR_LEFT_RIGHT 11 +/* Sizing cursors. */ +#define GLUT_CURSOR_TOP_SIDE 12 +#define GLUT_CURSOR_BOTTOM_SIDE 13 +#define GLUT_CURSOR_LEFT_SIDE 14 +#define GLUT_CURSOR_RIGHT_SIDE 15 +#define GLUT_CURSOR_TOP_LEFT_CORNER 16 +#define GLUT_CURSOR_TOP_RIGHT_CORNER 17 +#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 18 +#define GLUT_CURSOR_BOTTOM_LEFT_CORNER 19 +/* Inherit from parent window. */ +#define GLUT_CURSOR_INHERIT 100 +/* Blank cursor. */ +#define GLUT_CURSOR_NONE 101 +/* Fullscreen crosshair (if available). */ +#define GLUT_CURSOR_FULL_CROSSHAIR 102 +#endif + +/* GLUT initialization sub-API. */ +extern void APIENTRY glutInit(int *argcp, char **argv); +extern void APIENTRY glutInitDisplayMode(unsigned int mode); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern void APIENTRY glutInitDisplayString(const char *string); +#endif +extern void APIENTRY glutInitWindowPosition(int x, int y); +extern void APIENTRY glutInitWindowSize(int width, int height); +extern void APIENTRY glutMainLoop(void); + +/* GLUT window sub-API. */ +extern int APIENTRY glutCreateWindow(const char *title); +extern int APIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height); +extern void APIENTRY glutDestroyWindow(int win); +extern void APIENTRY glutPostRedisplay(void); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) +extern void APIENTRY glutPostWindowRedisplay(int win); +#endif +extern void APIENTRY glutSwapBuffers(void); +extern int APIENTRY glutGetWindow(void); +extern void APIENTRY glutSetWindow(int win); +extern void APIENTRY glutSetWindowTitle(const char *title); +extern void APIENTRY glutSetIconTitle(const char *title); +extern void APIENTRY glutPositionWindow(int x, int y); +extern void APIENTRY glutReshapeWindow(int width, int height); +extern void APIENTRY glutPopWindow(void); +extern void APIENTRY glutPushWindow(void); +extern void APIENTRY glutIconifyWindow(void); +extern void APIENTRY glutShowWindow(void); +extern void APIENTRY glutHideWindow(void); +#if (GLUT_API_VERSION >= 3) +extern void APIENTRY glutFullScreen(void); +extern void APIENTRY glutSetCursor(int cursor); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern void APIENTRY glutWarpPointer(int x, int y); +#if (GLUT_MACOSX_IMPLEMENTATION >= 1) +/* surface texturing API Mac OS X specific +* Note: +* glutSurfaceTexture has been deprecated, use GL_EXT_framebuffer_object +*/ +#ifdef MAC_OS_X_VERSION_10_5 +extern void APIENTRY glutSurfaceTexture (GLenum target, GLenum internalformat, int surfacewin); AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 +#else +extern void APIENTRY glutSurfaceTexture (GLenum target, GLenum internalformat, int surfacewin); +#endif +#endif +#if (GLUT_MACOSX_IMPLEMENTATION >= 2) +/* Mac OS X specific API */ +extern void APIENTRY glutWMCloseFunc(void (*func)(void)); +extern void APIENTRY glutCheckLoop(void); +#endif +#endif + +/* GLUT overlay sub-API. */ +extern void APIENTRY glutEstablishOverlay(void); +extern void APIENTRY glutRemoveOverlay(void); +extern void APIENTRY glutUseLayer(GLenum layer); +extern void APIENTRY glutPostOverlayRedisplay(void); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) +extern void APIENTRY glutPostWindowOverlayRedisplay(int win); +#endif +extern void APIENTRY glutShowOverlay(void); +extern void APIENTRY glutHideOverlay(void); +#endif + +/* GLUT menu sub-API. */ +extern int APIENTRY glutCreateMenu(void (*)(int)); +extern void APIENTRY glutDestroyMenu(int menu); +extern int APIENTRY glutGetMenu(void); +extern void APIENTRY glutSetMenu(int menu); +extern void APIENTRY glutAddMenuEntry(const char *label, int value); +extern void APIENTRY glutAddSubMenu(const char *label, int submenu); +extern void APIENTRY glutChangeToMenuEntry(int item, const char *label, int value); +extern void APIENTRY glutChangeToSubMenu(int item, const char *label, int submenu); +extern void APIENTRY glutRemoveMenuItem(int item); +extern void APIENTRY glutAttachMenu(int button); +extern void APIENTRY glutDetachMenu(int button); + +/* GLUT window callback sub-API. */ +extern void APIENTRY glutDisplayFunc(void (*func)(void)); +extern void APIENTRY glutReshapeFunc(void (*func)(int width, int height)); +extern void APIENTRY glutKeyboardFunc(void (*func)(unsigned char key, int x, int y)); +extern void APIENTRY glutMouseFunc(void (*func)(int button, int state, int x, int y)); +extern void APIENTRY glutMotionFunc(void (*func)(int x, int y)); +extern void APIENTRY glutPassiveMotionFunc(void (*func)(int x, int y)); +extern void APIENTRY glutEntryFunc(void (*func)(int state)); +extern void APIENTRY glutVisibilityFunc(void (*func)(int state)); +extern void APIENTRY glutIdleFunc(void (*func)(void)); +extern void APIENTRY glutTimerFunc(unsigned int millis, void (*func)(int value), int value); +extern void APIENTRY glutMenuStateFunc(void (*func)(int state)); +#if (GLUT_API_VERSION >= 2) +extern void APIENTRY glutSpecialFunc(void (*func)(int key, int x, int y)); +extern void APIENTRY glutSpaceballMotionFunc(void (*func)(int x, int y, int z)); +extern void APIENTRY glutSpaceballRotateFunc(void (*func)(int x, int y, int z)); +extern void APIENTRY glutSpaceballButtonFunc(void (*func)(int button, int state)); +extern void APIENTRY glutButtonBoxFunc(void (*func)(int button, int state)); +extern void APIENTRY glutDialsFunc(void (*func)(int dial, int value)); +extern void APIENTRY glutTabletMotionFunc(void (*func)(int x, int y)); +extern void APIENTRY glutTabletButtonFunc(void (*func)(int button, int state, int x, int y)); +#if (GLUT_API_VERSION >= 3) +extern void APIENTRY glutMenuStatusFunc(void (*func)(int status, int x, int y)); +extern void APIENTRY glutOverlayDisplayFunc(void (*func)(void)); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern void APIENTRY glutWindowStatusFunc(void (*func)(int state)); +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +extern void APIENTRY glutKeyboardUpFunc(void (*func)(unsigned char key, int x, int y)); +extern void APIENTRY glutSpecialUpFunc(void (*func)(int key, int x, int y)); +extern void APIENTRY glutJoystickFunc(void (*func)(unsigned int buttonMask, int x, int y, int z), int pollInterval); +//#ifdef GLUT_OF_007_HACK +extern void APIENTRY glutDragEventFunc(void (*func)(char ** fileNames, int nFiles, int dragX, int dragY)); +//#endif +#endif +#endif +#endif + +/* GLUT color index sub-API. */ +extern void APIENTRY glutSetColor(int, GLfloat red, GLfloat green, GLfloat blue); +extern GLfloat APIENTRY glutGetColor(int ndx, int component); +extern void APIENTRY glutCopyColormap(int win); + +/* GLUT state retrieval sub-API. */ +extern int APIENTRY glutGet(GLenum type); +extern int APIENTRY glutDeviceGet(GLenum type); +#if (GLUT_API_VERSION >= 2) +/* GLUT extension support sub-API */ +extern int APIENTRY glutExtensionSupported(const char *name); +#endif +#if (GLUT_API_VERSION >= 3) +extern int APIENTRY glutGetModifiers(void); +extern int APIENTRY glutLayerGet(GLenum type); +#endif +#if (GLUT_API_VERSION >= 5) +extern void * APIENTRY glutGetProcAddress(const char *procName); +#endif + +/* GLUT font sub-API */ +extern void APIENTRY glutBitmapCharacter(void *font, int character); +extern int APIENTRY glutBitmapWidth(void *font, int character); +extern void APIENTRY glutStrokeCharacter(void *font, int character); +extern int APIENTRY glutStrokeWidth(void *font, int character); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern int APIENTRY glutBitmapLength(void *font, const unsigned char *string); +extern int APIENTRY glutStrokeLength(void *font, const unsigned char *string); +#endif + +/* GLUT pre-built models sub-API */ +extern void APIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks); +extern void APIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks); +extern void APIENTRY glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); +extern void APIENTRY glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); +extern void APIENTRY glutWireCube(GLdouble size); +extern void APIENTRY glutSolidCube(GLdouble size); +extern void APIENTRY glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); +extern void APIENTRY glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); +extern void APIENTRY glutWireDodecahedron(void); +extern void APIENTRY glutSolidDodecahedron(void); +extern void APIENTRY glutWireTeapot(GLdouble size); +extern void APIENTRY glutSolidTeapot(GLdouble size); +extern void APIENTRY glutWireOctahedron(void); +extern void APIENTRY glutSolidOctahedron(void); +extern void APIENTRY glutWireTetrahedron(void); +extern void APIENTRY glutSolidTetrahedron(void); +extern void APIENTRY glutWireIcosahedron(void); +extern void APIENTRY glutSolidIcosahedron(void); + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +/* GLUT video resize sub-API. */ +extern int APIENTRY glutVideoResizeGet(GLenum param); +extern void APIENTRY glutSetupVideoResizing(void); +extern void APIENTRY glutStopVideoResizing(void); +extern void APIENTRY glutVideoResize(int x, int y, int width, int height); +extern void APIENTRY glutVideoPan(int x, int y, int width, int height); + +/* GLUT debugging sub-API. */ +extern void APIENTRY glutReportErrors(void); +#endif + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +/* GLUT device control sub-API. */ +/* glutSetKeyRepeat modes. */ +#define GLUT_KEY_REPEAT_OFF 0 +#define GLUT_KEY_REPEAT_ON 1 +#define GLUT_KEY_REPEAT_DEFAULT 2 + +/* Joystick button masks. */ +#define GLUT_JOYSTICK_BUTTON_A 1 +#define GLUT_JOYSTICK_BUTTON_B 2 +#define GLUT_JOYSTICK_BUTTON_C 4 +#define GLUT_JOYSTICK_BUTTON_D 8 + +extern void APIENTRY glutIgnoreKeyRepeat(int ignore); +extern void APIENTRY glutSetKeyRepeat(int repeatMode); +extern void APIENTRY glutForceJoystickFunc(void); + +/* GLUT game mode sub-API. */ +/* glutGameModeGet. */ +#define GLUT_GAME_MODE_ACTIVE 0 +#define GLUT_GAME_MODE_POSSIBLE 1 +#define GLUT_GAME_MODE_WIDTH 2 +#define GLUT_GAME_MODE_HEIGHT 3 +#define GLUT_GAME_MODE_PIXEL_DEPTH 4 +#define GLUT_GAME_MODE_REFRESH_RATE 5 +#define GLUT_GAME_MODE_DISPLAY_CHANGED 6 + +extern void APIENTRY glutGameModeString(const char *string); +extern int APIENTRY glutEnterGameMode(void); +extern void APIENTRY glutLeaveGameMode(void); +extern int APIENTRY glutGameModeGet(GLenum mode); +#endif + +#ifdef __cplusplus +} + +#endif + +#ifdef GLUT_APIENTRY_DEFINED +# undef GLUT_APIENTRY_DEFINED +# undef APIENTRY +#endif + +#ifdef GLUT_WINGDIAPI_DEFINED +# undef GLUT_WINGDIAPI_DEFINED +# undef WINGDIAPI +#endif + +#endif /* __glut_h__ */ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutbitmap.h b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutbitmap.h new file mode 100755 index 0000000..e29a016 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutbitmap.h @@ -0,0 +1,30 @@ +#ifndef __glutbitmap_h__ +#define __glutbitmap_h__ + +/* Copyright (c) Mark J. Kilgard, 1994. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#include "glut.h" + +typedef struct { + const GLsizei width; + const GLsizei height; + const GLfloat xorig; + const GLfloat yorig; + const GLfloat advance; + const GLubyte *bitmap; +} BitmapCharRec, *BitmapCharPtr; + +typedef struct { + const char *name; + const int num_chars; + const int first; + const BitmapCharRec * const *ch; +} BitmapFontRec, *BitmapFontPtr; + +typedef void *GLUTbitmapFont; + +#endif /* __glutbitmap_h__ */ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutf90.h b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutf90.h new file mode 100755 index 0000000..f8a170b --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutf90.h @@ -0,0 +1,90 @@ +#ifndef __glutf90_h__ +#define __glutf90_h__ + +/* Copyright (c) Mark J. Kilgard & Willam F. Mitchell, 1998. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +/* This header provides the binding interface for William Mitchell's + f90gl Fortran 90 GLUT binding. Other GLUT language bindings + can and should use this interace. */ + +/* I appreciate the guidance from William Mitchell + (mitchell@cam.nist.gov) in developing this friend interface + for use by the f90gl package. See ../../README.fortran */ + +#include + +#ifndef GLUTCALLBACK + #define GLUTCALLBACK +#endif +#ifndef APIENTRY + #define APIENTRY +#endif + +/* Which callback enumerants for the __glutSetFCB/__glutGetFCB routines. */ +/* NOTE These values are part of a binary interface for the f90gl Fortran + 90 binding and so must NOT changes (additions are allowed). */ + +/* GLUTwindow callbacks. */ +#define GLUT_FCB_DISPLAY 0 /* GLUTdisplayFCB */ +#define GLUT_FCB_RESHAPE 1 /* GLUTreshapeFCB */ +#define GLUT_FCB_MOUSE 2 /* GLUTmouseFCB */ +#define GLUT_FCB_MOTION 3 /* GLUTmotionFCB */ +#define GLUT_FCB_PASSIVE 4 /* GLUTpassiveFCB */ +#define GLUT_FCB_ENTRY 5 /* GLUTentryFCB */ +#define GLUT_FCB_KEYBOARD 6 /* GLUTkeyboardFCB */ +#define GLUT_FCB_KEYBOARD_UP 7 /* GLUTkeyboardFCB */ +#define GLUT_FCB_WINDOW_STATUS 8 /* GLUTwindowStatusFCB */ +#define GLUT_FCB_VISIBILITY 9 /* GLUTvisibilityFCB */ +#define GLUT_FCB_SPECIAL 10 /* GLUTspecialFCB */ +#define GLUT_FCB_SPECIAL_UP 11 /* GLUTspecialFCB */ +#define GLUT_FCB_BUTTON_BOX 12 /* GLUTbuttonBoxFCB */ +#define GLUT_FCB_DIALS 13 /* GLUTdialsFCB */ +#define GLUT_FCB_SPACE_MOTION 14 /* GLUTspaceMotionFCB */ +#define GLUT_FCB_SPACE_ROTATE 15 /* GLUTspaceRotateFCB */ +#define GLUT_FCB_SPACE_BUTTON 16 /* GLUTspaceButtonFCB */ +#define GLUT_FCB_TABLET_MOTION 17 /* GLUTtabletMotionFCB */ +#define GLUT_FCB_TABLET_BUTTON 18 /* GLUTtabletButtonFCB */ +#define GLUT_FCB_JOYSTICK 19 /* GLUTjoystickFCB */ +#define GLUT_FCB_WMCLOSE 20 /* GLUTwmcloseFCB */ +/* Non-GLUTwindow callbacks. */ +#define GLUT_FCB_OVERLAY_DISPLAY 100 /* GLUTdisplayFCB */ +#define GLUT_FCB_SELECT 101 /* GLUTselectFCB */ +#define GLUT_FCB_TIMER 102 /* GLUTtimerFCB */ + +/* GLUT Fortran callback function types. */ +typedef void (GLUTCALLBACK *GLUTdisplayFCB) (void); +typedef void (GLUTCALLBACK *GLUTwmcloseFCB) (void); +typedef void (GLUTCALLBACK *GLUTreshapeFCB) (int *, int *); +/* NOTE the pressed key is int, not unsigned char for Fortran! */ +typedef void (GLUTCALLBACK *GLUTkeyboardFCB) (int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTmouseFCB) (int *, int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTmotionFCB) (int *, int *); +typedef void (GLUTCALLBACK *GLUTpassiveFCB) (int *, int *); +typedef void (GLUTCALLBACK *GLUTentryFCB) (int *); +typedef void (GLUTCALLBACK *GLUTwindowStatusFCB) (int *); +typedef void (GLUTCALLBACK *GLUTvisibilityFCB) (int *); +typedef void (GLUTCALLBACK *GLUTspecialFCB) (int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTbuttonBoxFCB) (int *, int *); +typedef void (GLUTCALLBACK *GLUTdialsFCB) (int *, int *); +typedef void (GLUTCALLBACK *GLUTspaceMotionFCB) (int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTspaceRotateFCB) (int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTspaceButtonFCB) (int *, int *); +typedef void (GLUTCALLBACK *GLUTtabletMotionFCB) (int *, int *); +typedef void (GLUTCALLBACK *GLUTtabletButtonFCB) (int *, int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTjoystickFCB) (unsigned int *buttonMask, int *x, int *y, int *z); + +typedef void (GLUTCALLBACK *GLUTselectFCB) (int *); +typedef void (GLUTCALLBACK *GLUTtimerFCB) (int *); +typedef void (GLUTCALLBACK *GLUTmenuStateFCB) (int *); /* DEPRICATED. */ +typedef void (GLUTCALLBACK *GLUTmenuStatusFCB) (int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTidleFCB) (void); + +/* Functions that set and return Fortran callback functions. */ +extern void* APIENTRY __glutGetFCB(int which); +extern void APIENTRY __glutSetFCB(int which, void *func); + +#endif /* __glutf90_h__ */ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutstroke.h b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutstroke.h new file mode 100755 index 0000000..cbc9e15 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutstroke.h @@ -0,0 +1,42 @@ +#ifndef __glutstroke_h__ +#define __glutstroke_h__ + +/* Copyright (c) Mark J. Kilgard, 1994. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#if defined(_WIN32) +#pragma warning (disable:4244) /* disable bogus conversion warnings */ +#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ +#endif + +typedef struct { + float x; + float y; +} CoordRec, *CoordPtr; + +typedef struct { + int num_coords; + const CoordRec *coord; +} StrokeRec, *StrokePtr; + +typedef struct { + int num_strokes; + const StrokeRec *stroke; + float center; + float right; +} StrokeCharRec, *StrokeCharPtr; + +typedef struct { + const char *name; + int num_chars; + const StrokeCharRec *ch; + float top; + float bottom; +} StrokeFontRec, *StrokeFontPtr; + +typedef void *GLUTstrokeFont; + +#endif /* __glutstroke_h__ */ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/gutil.h b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/gutil.h new file mode 100755 index 0000000..f7ffcf3 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/gutil.h @@ -0,0 +1,89 @@ + +/* + * gutil.h + * + * FUNCTION: + * Provide utilities that allow rotation to occur + * around any axis. + * + * HISTORY: + * created by Linas Vepstas 1990 + * added single & double precision, June 1991, Linas Vepstas + */ + +#ifndef __GUTIL_H__ +#define __GUTIL_H__ + +#ifdef __GUTIL_DOUBLE +#define gutDouble double +#else +#define gutDouble float +#endif + + +#ifdef _NO_PROTO /* NO ANSI C PROTOTYPING */ + +/* Rotation Utilities */ +extern void rot_axis_f (); +extern void rot_about_axis_f (); +extern void rot_omega_f (); +extern void urot_axis_f (); +extern void urot_about_axis_f (); +extern void urot_omega_f (); + +/* double-precision versions */ +extern void rot_axis_d (); +extern void rot_about_axis_d (); +extern void rot_omega_d (); +extern void urot_axis_d (); +extern void urot_about_axis_d (); +extern void urot_omega_d (); + +/* viewpoint functions */ +extern void uview_direction_d (); +extern void uview_direction_f (); +extern void uviewpoint_d (); +extern void uviewpoint_f (); + +#else /* _NO_PROTO */ /* ANSI C PROTOTYPING */ + +/* Rotation Utilities */ +extern void rot_axis_f (float omega, float axis[3]); +extern void rot_about_axis_f (float angle, float axis[3]); +extern void rot_omega_f (float axis[3]); +extern void urot_axis_f (float m[4][4], float omega, float axis[3]); +extern void urot_about_axis_f (float m[4][4], float angle, float axis[3]); +extern void urot_omega_f (float m[4][4], float axis[3]); + +/* double-precision versions */ +extern void rot_axis_d (double omega, double axis[3]); +extern void rot_about_axis_d (double angle, double axis[3]); +extern void rot_omega_d (double axis[3]); +extern void urot_axis_d (double m[4][4], double omega, double axis[3]); +extern void urot_about_axis_d (double m[4][4], double angle, double axis[3]); +extern void urot_omega_d (double m[4][4], double axis[3]); + +/* viewpoint functions */ +extern void uview_direction_d (double m[4][4], /* returned */ + double v21[3], /* input */ + double up[3]); /* input */ + +extern void uview_direction_f (float m[4][4], /* returned */ + float v21[3], /* input */ + float up[3]); /* input */ + +extern void uviewpoint_d (double m[4][4], /* returned */ + double v1[3], /* input */ + double v2[3], /* input */ + double up[3]); /* input */ + +extern void uviewpoint_f (float m[4][4], /* returned */ + float v1[3], /* input */ + float v2[3], /* input */ + float up[3]); /* input */ + +#endif /* _NO_PROTO */ + +#endif /* _GUTIL_H__ */ + +/* ------------------- end of file ---------------------- */ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/intersect.h b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/intersect.h new file mode 100755 index 0000000..f5ff7a5 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/intersect.h @@ -0,0 +1,391 @@ +/* + * FUNCTION: + * This file contains a number of utilities useful to 3D graphics in + * general, and to the generation of tubing and extrusions in particular + * + * HISTORY: + * Written by Linas Vepstas, August 1991 + * Updated to correctly handle degenerate cases, Linas, February 1993 + */ + +#include +#include "port.h" +#include "vvector.h" + +#define BACKWARDS_INTERSECT (2) + +/* ========================================================== */ +/* + * the Degenerate_Tolerance token represents the greatest amount by + * which different scales in a graphics environment can differ before + * they should be considered "degenerate". That is, when one vector is + * a million times longer than another, changces are that the second will + * be less than a pixel int, and therefore was probably meant to be + * degenerate (by the CAD package, etc.) But what should this tolerance + * be? At least 1 in onethousand (since screen sizes are 1K pixels), but + * les than 1 in 4 million (since this is the limit of single-precision + * floating point accuracy). Of course, if double precision were used, + * then the tolerance could be increased. + * + * Potentially, this naive assumption could cause problems if the CAD + * package attempts to zoom in on small details, and turns out, certain + * points should not hvae been degenerate. The problem presented here + * is that the tolerance could run out before single-precision ran + * out, and so the CAD packages would perceive this as a "bug". + * One alternative is to fiddle around & try to tighten the tolerance. + * However, the right alternative is to code the graphics pipeline in + * double-precision (and tighten the tolerance). + * + * By the way, note that Degernate Tolerance is a "dimensionless" + * quantitiy -- it has no units -- it does not measure feet, inches, + * millimeters or pixels. It is used only in the computations of ratios + * and relative lengths. + */ + +/* + * Right now, the tolerance is set to 2 parts in a million, which + * corresponds to a 19-bit distinction of mantissas. Note that + * single-precsion numbers have 24 bit mantissas. + */ + +#define DEGENERATE_TOLERANCE (0.000002) + +/* ========================================================== */ +/* + * The macro and subroutine INTERSECT are designed to compute the + * intersection of a line (defined by the points v1 and v2) and a plane + * (defined as plane which is normal to the vector n, and contains the + * point p). Both return the point sect, which is the point of + * interesection. + * + * This MACRO attemps to be fairly robust by checking for a divide by + * zero. + */ + +/* ========================================================== */ +/* + * HACK ALERT + * The intersection parameter t has the nice property that if t>1, + * then the intersection is "in front of" p1, and if t<0, then the + * intersection is "behind" p2. Unfortunately, as the intersecting plane + * and the line become parallel, t wraps through infinity -- i.e. t can + * become so large that t becomes "greater than infinity" and comes back + * as a negative number (i.e. winding number hopped by one unit). We + * have no way of detecting this situation without adding gazzillions + * of lines of code of topological algebra to detect the winding number; + * and this would be incredibly difficult, and ruin performance. + * + * Thus, we've installed a cheap hack for use by the "cut style" drawing + * routines. If t proves to be a large negative number (more negative + * than -5), then we assume that t was positive and wound through + * infinity. This makes most cuts look good, without introducing bogus + * cuts at infinity. + */ +/* ========================================================== */ + +#define INTERSECT(sect,p,n,v1,v2) \ +{ \ + gleDouble deno, numer, t, omt; \ + \ + deno = (v1[0] - v2[0]) * n[0]; \ + deno += (v1[1] - v2[1]) * n[1]; \ + deno += (v1[2] - v2[2]) * n[2]; \ + \ + if (deno == 0.0) { \ + VEC_COPY (n, v1); \ + /* printf ("Intersect: Warning: line is coplanar with plane \n"); */ \ + } else { \ + \ + numer = (p[0] - v2[0]) * n[0]; \ + numer += (p[1] - v2[1]) * n[1]; \ + numer += (p[2] - v2[2]) * n[2]; \ + \ + t = numer / deno; \ + omt = 1.0 - t; \ + \ + sect[0] = t * v1[0] + omt * v2[0]; \ + sect[1] = t * v1[1] + omt * v2[1]; \ + sect[2] = t * v1[2] + omt * v2[2]; \ + } \ +} + +/* ========================================================== */ +/* + * The macro and subroutine BISECTING_PLANE compute a normal vector that + * describes the bisecting plane between three points (v1, v2 and v3). + * This bisecting plane has the following properties: + * 1) it contains the point v2 + * 2) the angle it makes with v21 == v2 - v1 is equal to the angle it + * makes with v32 == v3 - v2 + * 3) it is perpendicular to the plane defined by v1, v2, v3. + * + * Having input v1, v2, and v3, it returns a unit vector n. + * + * In some cases, the user may specify degenerate points, and still + * expect "reasonable" or "obvious" behaviour. The "expected" + * behaviour for these degenerate cases is: + * + * 1) if v1 == v2 == v3, then return n=0 + * 2) if v1 == v2, then return v32 (normalized). + * 3) if v2 == v3, then return v21 (normalized). + * 4) if v1, v2 and v3 co-linear, then return v21 (normalized). + * + * Mathematically, these special cases "make sense" -- we just have to + * code around potential divide-by-zero's in the code below. + */ + +/* ========================================================== */ + +#define BISECTING_PLANE(valid,n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + double len21, len32; \ + double vdot; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_LENGTH (len21, v21); \ + VEC_LENGTH (len32, v32); \ + \ + if (len21 <= DEGENERATE_TOLERANCE * len32) { \ + \ + if (len32 == 0.0) { \ + /* all three points lie ontop of one-another */ \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + /* return a normalized copy of v32 as bisector */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (n, len32, v32); \ + valid = TRUE; \ + } \ + \ + } else { \ + \ + valid = TRUE; \ + \ + if (len32 <= DEGENERATE_TOLERANCE * len21) { \ + /* return a normalized copy of v21 as bisector */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (n, len21, v21); \ + \ + } else { \ + \ + /* normalize v21 to be of unit length */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (v21, len21, v21); \ + \ + /* normalize v32 to be of unit length */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (v32, len32, v32); \ + \ + VEC_DOT_PRODUCT (vdot, v32, v21); \ + \ + /* if vdot == 1 or -1, then points are colinear */ \ + if ((vdot >= (1.0-DEGENERATE_TOLERANCE)) || \ + (vdot <= (-1.0+DEGENERATE_TOLERANCE))) { \ + VEC_COPY (n, v21); \ + } else { \ + \ + /* go do the full computation */ \ + n[0] = vdot * (v32[0] + v21[0]) - v32[0] - v21[0]; \ + n[1] = vdot * (v32[1] + v21[1]) - v32[1] - v21[1]; \ + n[2] = vdot * (v32[2] + v21[2]) - v32[2] - v21[2]; \ + \ + /* if above if-test's passed, \ + * n should NEVER be of zero length */ \ + VEC_NORMALIZE (n); \ + } \ + } \ + } \ +} + +/* ========================================================== */ +/* + * The block of code below is ifdef'd out, and is here for reference + * purposes only. It performs the "mathematically right thing" for + * computing a bisecting plane, but is, unfortunately, subject ot noise + * in the presence of near degenerate points. Since computer graphics, + * due to sloppy coding, laziness, or correctness, is filled with + * degenerate points, we can't really use this version. The code above + * is far more appropriate for graphics. + */ + +#ifdef MATHEMATICALLY_EXACT_GRAPHICALLY_A_KILLER +#define BISECTING_PLANE(n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + double len21, len32; \ + double vdot; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_LENGTH (len21, v21); \ + VEC_LENGTH (len32, v32); \ + \ + if (len21 == 0.0) { \ + \ + if (len32 == 0.0) { \ + /* all three points lie ontop of one-another */ \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + /* return a normalized copy of v32 as bisector */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (n, len32, v32); \ + } \ + \ + } else { \ + \ + /* normalize v21 to be of unit length */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (v21, len21, v21); \ + \ + if (len32 == 0.0) { \ + /* return a normalized copy of v21 as bisector */ \ + VEC_COPY (n, v21); \ + } else { \ + \ + /* normalize v32 to be of unit length */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (v32, len32, v32); \ + \ + VEC_DOT_PRODUCT (vdot, v32, v21); \ + \ + /* if vdot == 1 or -1, then points are colinear */ \ + if ((vdot == 1.0) || (vdot == -1.0)) { \ + VEC_COPY (n, v21); \ + } else { \ + \ + /* go do the full computation */ \ + n[0] = vdot * (v32[0] + v21[0]) - v32[0] - v21[0]; \ + n[1] = vdot * (v32[1] + v21[1]) - v32[1] - v21[1]; \ + n[2] = vdot * (v32[2] + v21[2]) - v32[2] - v21[2]; \ + \ + /* if above if-test's passed, \ + * n should NEVER be of zero length */ \ + VEC_NORMALIZE (n); \ + } \ + } \ + } \ +} +#endif + +/* ========================================================== */ +/* + * This macro computes the plane perpendicular to the the plane + * defined by three points, and whose normal vector is givven as the + * difference between the two vectors ... + * + * (See way below for the "math" model if you want to understand this. + * The comments about relative errors above apply here.) + */ + +#define CUTTING_PLANE(valid,n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + double len21, len32; \ + double lendiff; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_LENGTH (len21, v21); \ + VEC_LENGTH (len32, v32); \ + \ + if (len21 <= DEGENERATE_TOLERANCE * len32) { \ + \ + if (len32 == 0.0) { \ + /* all three points lie ontop of one-another */ \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + /* return a normalized copy of v32 as cut-vector */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (n, len32, v32); \ + valid = TRUE; \ + } \ + \ + } else { \ + \ + valid = TRUE; \ + \ + if (len32 <= DEGENERATE_TOLERANCE * len21) { \ + /* return a normalized copy of v21 as cut vector */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (n, len21, v21); \ + } else { \ + \ + /* normalize v21 to be of unit length */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (v21, len21, v21); \ + \ + /* normalize v32 to be of unit length */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (v32, len32, v32); \ + \ + VEC_DIFF (n, v21, v32); \ + VEC_LENGTH (lendiff, n); \ + \ + /* if the perp vector is very small, then the two \ + * vectors are darn near collinear, and the cut \ + * vector is probably poorly defined. */ \ + if (lendiff < DEGENERATE_TOLERANCE) { \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + lendiff = 1.0 / lendiff; \ + VEC_SCALE (n, lendiff, n); \ + } \ + } \ + } \ +} + +/* ========================================================== */ + +#ifdef MATHEMATICALLY_EXACT_GRAPHICALLY_A_KILLER +#define CUTTING_PLANE(n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_NORMALIZE (v21); \ + VEC_NORMALIZE (v32); \ + \ + VEC_DIFF (n, v21, v32); \ + VEC_NORMALIZE (n); \ +} +#endif + + +/* ============================================================ */ +/* This macro is used in several places to cycle through a series of + * points to find the next non-degenerate point in a series */ + +#define FIND_NON_DEGENERATE_POINT(inext,npoints,len,diff,point_array) \ +{ \ + gleDouble slen; \ + gleDouble summa[3]; \ + \ + do { \ + /* get distance to next point */ \ + VEC_DIFF (diff, point_array[inext+1], point_array[inext]); \ + VEC_LENGTH (len, diff); \ + VEC_SUM (summa, point_array[inext+1], point_array[inext]); \ + VEC_LENGTH (slen, summa); \ + slen *= DEGENERATE_TOLERANCE; \ + inext ++; \ + } while ((len <= slen) && (inext < npoints-1)); \ +} + +/* ========================================================== */ + +extern int bisecting_plane (gleDouble n[3], /* returned */ + gleDouble v1[3], /* input */ + gleDouble v2[3], /* input */ + gleDouble v3[3]); /* input */ + diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/port.h b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/port.h new file mode 100755 index 0000000..2827bbf --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/port.h @@ -0,0 +1,298 @@ + +/* + * port.h + * + * FUNCTION: + * This file contains defines for porting the tubing toolkit from GL to + * OpenGL to some callback scheme. + * + * HISTORY: + * Created by Linas Vepstas -- February 1993 + * Added auto texture coord generation hacks, Linas April 1994 + */ + +#ifndef __GLE_PORT_H__ +#define __GLE_PORT_H__ + + +#ifndef TRUE +#define TRUE 1 +#endif + +#ifndef FALSE +#define FALSE 0 +#endif + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +/* ====================================================== */ +/* Some compilers can't handle multiply-subscripted array's */ + +#ifdef FUNKY_C +typedef gleDouble gleVector; +#define AVAL(arr,n,i,j) arr(6*n+3*i+j) +#define VVAL(arr,n,i) arr(3*n+i) + +#else /* FUNKY_C */ +typedef double gleVector[3]; +typedef double glePoint[2]; +#define AVAL(arr,n,i,j) arr[n][i][j] +#define VVAL(arr,n,i) arr[n][i]; + +#endif /* FUNKY_C */ + +/* ====================================================== */ +/* These are used to convey info about topography to the + * texture mapping routines */ + +#define FRONT 1 +#define BACK 2 +#define FRONT_CAP 3 +#define BACK_CAP 4 +#define FILLET 5 + +/* ====================================================== */ + +#define __GLE_DOUBLE + +/* ====================================================== */ + +#ifdef __GLE_DOUBLE +#ifndef gleDouble + #define gleDouble double +#endif +#define urot_axis(a,b,c) urot_axis_d(a,b,c) +#define uview_direction(a,b,c) uview_direction_d(a,b,c) +#define uviewpoint(a,b,c,d) uviewpoint_d(a,b,c,d) +#define MULTMATRIX(m) MULTMATRIX_D(m) +#define LOADMATRIX(m) LOADMATRIX_D(m) +#define V3F(x,j,id) V3F_D(x,j,id) +#define N3F(x) N3F_D(x) +#define T2F(x,y) T2F_D(x,y) +#else +#define gleDouble float +#define urot_axis(a,b,c) urot_axis_f(a,b,c) +#define uview_direction(a,b,c) uview_direction_f(a,b,c) +#define uviewpoint(a,b,c,d) uviewpoint_f(a,b,c,d) +#define MULTMATRIX(m) MULTMATRIX_F(m) +#define LOADMATRIX(m) LOADMATRIX_F(m) +#define V3F(x,j,id) V3F_F(x,j,id) +#define N3F(x) N3F_F(x) +#define T2F(x,y) T2F_F(x,y) +#endif + +/* ====================================================== */ + +#if (defined DEBUG_GL_32 || DEBUG_OPENGL_10) +#undef GL_32 +#undef OPENGL_10 + +#define BGNTMESH(i,len) printf ("bgntmesh() \n"); +#define ENDTMESH() printf ("endtmesh() \n"); +#define BGNPOLYGON() printf ("bgnpolygon() \n"); +#define ENDPOLYGON() printf ("endpolygon() \n"); +#define V3F_F(x,j,id) printf ("v3f(x) %f %f %f \n", x[0], x[1], x[2]); +#define V3F_D(x,j,id) printf ("v3d(x) %f %f %f \n", x[0], x[1], x[2]); +#define N3F_F(x) printf ("n3f(x) %f %f %f \n", x[0], x[1], x[2]); +#define N3F_D(x) printf ("n3d(x) %f %f %f \n", x[0], x[1], x[2]); +#define C3F(x) printf ("c3f(x) %f %f %f \n", x[0], x[1], x[2]); + +#define POPMATRIX() printf ("popmatrix () \n"); +#define PUSHMATRIX() printf ("pushmatrix() \n"); +#define MULTMATRIX_F(x) MULTMATRIX_D(x) +#define LOADMATRIX_F(x) LOADMATRIX_D(x) + + +#define LOADMATRIX_D(x) { \ + int i, j; \ + printf ("loadmatrix (x) \n"); \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + printf ( "%f ", x[i][j]); \ + } \ + printf (" \n"); \ + } \ +} + +#define MULTMATRIX_D(x) { \ + int i, j; \ + printf ("multmatrix (x) \n"); \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + printf ( "%f ", x[i][j]); \ + } \ + printf (" \n"); \ + } \ +} + +#define __IS_LIGHTING_ON (1) + +#endif + +/* ====================================================== */ + +#ifdef GL_32 + +#include + +#define BGNTMESH(i,len) bgntmesh() +#define ENDTMESH() endtmesh() +#define BGNPOLYGON() bgnpolygon() +#define ENDPOLYGON() endpolygon() +#define V3F_F(x,j,id) v3f(x) +#define V3F_D(x,j,id) v3d(x) +#define N3F_F(x) n3f(x) +#define T2F_F(x,y) +#define T2F_D(x,y) +#define C3F(x) c3f(x) + +#define POPMATRIX() popmatrix () +#define PUSHMATRIX() pushmatrix() +#define MULTMATRIX_F(x) multmatrix (x) +#define LOADMATRIX_F(x) loadmatrix (x) + +#define N3F_D(x) { \ + float nnn[3]; \ + nnn[0] = (float) x[0]; \ + nnn[1] = (float) x[1]; \ + nnn[2] = (float) x[2]; \ + n3f (nnn); \ +} + +#define LOADMATRIX_D(x) { \ + int i, j; \ + float mmm[4][4]; \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + mmm[i][j] = (float) x[i][j]; \ + } \ + } \ + loadmatrix(mmm); \ +} + +#define MULTMATRIX_D(x) { \ + int i, j; \ + float mmm[4][4]; \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + mmm[i][j] = (float) x[i][j]; \ + } \ + } \ + multmatrix(mmm); \ +} + +/* #define __IS_LIGHTING_ON (MSINGLE == getmmode()) */ +#define __IS_LIGHTING_ON (extrusion_join_style & TUBE_LIGHTING_ON) + +#endif /* GL_32 */ + +/* ====================================================== */ +#ifdef OPENGL_10 + +#if defined(_WIN32) +#include +#pragma warning (disable:4244) /* disable bogus conversion warnings */ +#endif +#include +#include + +/* +#define N3F_F(x) { \ + float nnn[3]; \ + nnn[0] = - (float) x[0]; \ + nnn[1] = - (float) x[1]; \ + nnn[2] = - (float) x[2]; \ + glNormal3fv (nnn); \ +} +#define N3F_D(x) { \ + float nnn[3]; \ + nnn[0] = - (float) x[0]; \ + nnn[1] = - (float) x[1]; \ + nnn[2] = - (float) x[2]; \ + glNormal3fv (nnn); \ +} +*/ + +#define C3F(x) glColor3fv(x) +#define T2F_F(x,y) glTexCoord2f(x,y) +#define T2F_D(x,y) glTexCoord2d(x,y) + +#define POPMATRIX() glPopMatrix() +#define PUSHMATRIX() glPushMatrix() + +#define MULTMATRIX_F(x) glMultMatrixf ((const GLfloat *)x) +#define LOADMATRIX_F(x) glLoadMatrixf ((const GLfloat *)x) + +#define MULTMATRIX_D(x) glMultMatrixd ((const GLdouble *)x) +#define LOADMATRIX_D(x) glLoadMatrixd ((const GLdouble *)x) + +#define __IS_LIGHTING_ON (glIsEnabled(GL_LIGHTING)) + +/* ====================================================== */ +#ifdef AUTO_TEXTURE + +#define BGNTMESH(i,len) { \ + if(_gle_gc -> bgn_gen_texture) (*(_gle_gc -> bgn_gen_texture))(i,len);\ + glBegin (GL_TRIANGLE_STRIP); \ +} + +#define BGNPOLYGON() { \ + if(_gle_gc -> bgn_gen_texture) (*(_gle_gc -> bgn_gen_texture))();\ + glBegin (GL_POLYGON); \ +} + +#define N3F_F(x) { \ + if(_gle_gc -> n3f_gen_texture) (*(_gle_gc -> n3f_gen_texture))(x); \ + glNormal3fv(x); \ +} + +#define N3F_D(x) { \ + if(_gle_gc -> n3d_gen_texture) (*(_gle_gc -> n3d_gen_texture))(x); \ + glNormal3dv(x); \ +} + +#define V3F_F(x,j,id) { \ + if(_gle_gc -> v3f_gen_texture) (*(_gle_gc -> v3f_gen_texture))(x,j,id);\ + glVertex3fv(x); \ +} + +#define V3F_D(x,j,id) { \ + if(_gle_gc -> v3d_gen_texture) (*(_gle_gc -> v3d_gen_texture))(x,j,id); \ + glVertex3dv(x); \ +} + +#define ENDTMESH() { \ + if(_gle_gc -> end_gen_texture) (*(_gle_gc -> end_gen_texture))(); \ + glEnd (); \ +} + +#define ENDPOLYGON() { \ + if(_gle_gc -> end_gen_texture) (*(_gle_gc -> end_gen_texture))(); \ + glEnd (); \ +} + +/* ====================================================== */ +#else /* AUTO_TEXTURE */ + +#define BGNTMESH(i,len) glBegin (GL_TRIANGLE_STRIP); +#define BGNPOLYGON() glBegin (GL_POLYGON); + +#define N3F_F(x) glNormal3fv(x) +#define N3F_D(x) glNormal3dv(x) +#define V3F_F(x,j,id) glVertex3fv(x); +#define V3F_D(x,j,id) glVertex3dv(x); + +#define ENDTMESH() glEnd () +#define ENDPOLYGON() glEnd() + +#endif /* AUTO_TEXTURE */ + +#endif /* OPENGL_10 */ + +/* ====================================================== */ + + +#endif /* __GLE_PORT_H__ */ +/* ================== END OF FILE ======================= */ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/rot.h b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/rot.h new file mode 100755 index 0000000..91083e9 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/rot.h @@ -0,0 +1,98 @@ + +/* + * rot.h + * + * FUNCTION: + * rotation matrix utilities + * + * HISTORY: + * Linas Vepstas Aug 1990 + */ + +/* ========================================================== */ +/* + * The MACROS below generate and return more traditional rotation + * matrices -- matrices for rotations about principal axes. + */ +/* ========================================================== */ + +#define ROTX_CS(m,cosine,sine) \ +{ \ + /* rotation about the x-axis */ \ + \ + m[0][0] = 1.0; \ + m[0][1] = 0.0; \ + m[0][2] = 0.0; \ + m[0][3] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = (cosine); \ + m[1][2] = (sine); \ + m[1][3] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = -(sine); \ + m[2][2] = (cosine); \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ + +#define ROTY_CS(m,cosine,sine) \ +{ \ + /* rotation about the y-axis */ \ + \ + m[0][0] = (cosine); \ + m[0][1] = 0.0; \ + m[0][2] = -(sine); \ + m[0][3] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = 1.0; \ + m[1][2] = 0.0; \ + m[1][3] = 0.0; \ + \ + m[2][0] = (sine); \ + m[2][1] = 0.0; \ + m[2][2] = (cosine); \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ + +#define ROTZ_CS(m,cosine,sine) \ +{ \ + /* rotation about the z-axis */ \ + \ + m[0][0] = (cosine); \ + m[0][1] = (sine); \ + m[0][2] = 0.0; \ + m[0][3] = 0.0; \ + \ + m[1][0] = -(sine); \ + m[1][1] = (cosine); \ + m[1][2] = 0.0; \ + m[1][3] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = 0.0; \ + m[2][2] = 1.0; \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/segment.h b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/segment.h new file mode 100755 index 0000000..8d1cf04 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/segment.h @@ -0,0 +1,98 @@ + +/* + * MODULE: segment.h + * + * FUNCTION: + * Contains function prototypes for segment drawing subroutines. + * These are used only internally, and are not to be exported to + * the user. + * + * HISTORY: + * Create by Linas Vepstas + * Added tube.h include to define gleDouble, tad February 2002 + */ + +/* ============================================================ */ + +#include "tube.h" + +extern void draw_segment_plain (int ncp, /* number of contour points */ + gleDouble front_contour[][3], + gleDouble back_contour[][3], + int inext, double len); + +extern void draw_segment_color (int ncp, /* number of contour points */ + gleDouble front_contour[][3], + gleDouble back_contour[][3], + float color_last[3], + float color_next[3], + int inext, double len); + +extern void draw_segment_edge_n (int ncp, /* number of contour points */ + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + int inext, double len); + +extern void draw_segment_c_and_edge_n (int ncp, + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + float color_last[3], + float color_next[3], + int inext, double len); + +extern void draw_segment_facet_n (int ncp, + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + int inext, double len); + +extern void draw_segment_c_and_facet_n (int ncp, + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + float color_last[3], + float color_next[3], + int inext, double len); + +/* ============================================================ */ + +extern void draw_binorm_segment_edge_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + int inext, double len); + +extern void draw_binorm_segment_c_and_edge_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + float color_last[3], + float color_next[3], + int inext, double len); + +extern void draw_binorm_segment_facet_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + int inext, double len); + +extern void draw_binorm_segment_c_and_facet_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + float color_last[3], + float color_next[3], + int inext, double len); + +extern void draw_angle_style_back_cap (int ncp, /* number of contour points */ + gleDouble bi[3], /* biscetor */ + gleDouble point_array[][3]); /* polyline */ + +/* -------------------------- end of file -------------------------------- */ + diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube.h b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube.h new file mode 100755 index 0000000..c303e19 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube.h @@ -0,0 +1,203 @@ +/* + * tube.h + * + * FUNCTION: + * Tubing and Extrusion header file. + * This file provides protypes and defines for the extrusion + * and tubing primitives. + * + * HISTORY: + * Linas Vepstas 1990, 1991 + */ + +#ifndef __TUBE_H__ +#define __TUBE_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + GLE API revision history: + + GLE_API_VERSION is updated to reflect GLE API changes (interface + changes, semantic changes, deletions, or additions). + + GLE_API_VERSION=228 GLUT 3.7 release of GLE. +**/ +#ifndef GLE_API_VERSION /* allow this to be overriden */ +#define GLE_API_VERSION 228 +#endif + +/* some types */ +#ifndef gleDouble + #define gleDouble double +#endif +typedef gleDouble gleAffine[2][3]; + +/* ====================================================== */ + +/* defines for tubing join styles */ +#define TUBE_JN_RAW 0x1 +#define TUBE_JN_ANGLE 0x2 +#define TUBE_JN_CUT 0x3 +#define TUBE_JN_ROUND 0x4 +#define TUBE_JN_MASK 0xf /* mask bits */ +#define TUBE_JN_CAP 0x10 + +/* determine how normal vectors are to be handled */ +#define TUBE_NORM_FACET 0x100 +#define TUBE_NORM_EDGE 0x200 +#define TUBE_NORM_PATH_EDGE 0x400 /* for spiral, lathe, helix primitives */ +#define TUBE_NORM_MASK 0xf00 /* mask bits */ + +/* closed or open countours */ +#define TUBE_CONTOUR_CLOSED 0x1000 + +#define GLE_TEXTURE_ENABLE 0x10000 +#define GLE_TEXTURE_STYLE_MASK 0xff +#define GLE_TEXTURE_VERTEX_FLAT 1 +#define GLE_TEXTURE_NORMAL_FLAT 2 +#define GLE_TEXTURE_VERTEX_CYL 3 +#define GLE_TEXTURE_NORMAL_CYL 4 +#define GLE_TEXTURE_VERTEX_SPH 5 +#define GLE_TEXTURE_NORMAL_SPH 6 +#define GLE_TEXTURE_VERTEX_MODEL_FLAT 7 +#define GLE_TEXTURE_NORMAL_MODEL_FLAT 8 +#define GLE_TEXTURE_VERTEX_MODEL_CYL 9 +#define GLE_TEXTURE_NORMAL_MODEL_CYL 10 +#define GLE_TEXTURE_VERTEX_MODEL_SPH 11 +#define GLE_TEXTURE_NORMAL_MODEL_SPH 12 + +#ifdef GL_32 +/* HACK for GL 3.2 -- needed because no way to tell if lighting is on. */ +#define TUBE_LIGHTING_ON 0x80000000 + +#define gleExtrusion extrusion +#define gleSetJoinStyle setjoinstyle +#define gleGetJoinStyle getjoinstyle +#define glePolyCone polycone +#define glePolyCylinder polycylinder +#define gleSuperExtrusion super_extrusion +#define gleTwistExtrusion twist_extrusion +#define gleSpiral spiral +#define gleLathe lathe +#define gleHelicoid helicoid +#define gleToroid toroid +#define gleScrew screw + +#endif /* GL_32 */ + +extern int gleGetJoinStyle (void); +extern void gleSetJoinStyle (int style); /* bitwise OR of flags */ +extern int gleGetNumSlices(void); +extern void gleSetNumSlices(int slices); + +/* draw polyclinder, specified as a polyline */ +extern void glePolyCylinder (int npoints, /* num points in polyline */ + gleDouble point_array[][3], /* polyline vertces */ + float color_array[][3], /* colors at polyline verts */ + gleDouble radius); /* radius of polycylinder */ + +/* draw polycone, specified as a polyline with radii */ +extern void glePolyCone (int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3], /* colors at polyline verts */ + gleDouble radius_array[]); /* cone radii at polyline verts */ + +/* extrude arbitrary 2D contour along arbitrary 3D path */ +extern void gleExtrusion (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3]); /* colors at polyline verts */ + +/* extrude 2D contour, specifying local rotations (twists) */ +extern void gleTwistExtrusion (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3], /* color at polyline verts */ + gleDouble twist_array[]); /* countour twists (in degrees) */ + +/* extrude 2D contour, specifying local affine tranformations */ +extern void gleSuperExtrusion (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3], /* color at polyline verts */ + gleDouble xform_array[][2][3]); /* 2D contour xforms */ + +/* spiral moves contour along helical path by parallel transport */ +extern void gleSpiral (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta); /* degrees to spiral around */ + +/* lathe moves contour along helical path by helically shearing 3D space */ +extern void gleLathe (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta); /* degrees to spiral around */ + +/* similar to spiral, except contour is a circle */ +extern void gleHelicoid (gleDouble rToroid, /* circle contour (torus) radius */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta); /* degrees to spiral around */ + +/* similar to lathe, except contour is a circle */ +extern void gleToroid (gleDouble rToroid, /* circle contour (torus) radius */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta); /* degrees to spiral around */ + +/* draws a screw shape */ +extern void gleScrew (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + gleDouble startz, /* start of segment */ + gleDouble endz, /* end of segment */ + gleDouble twist); /* number of rotations */ + +extern void gleTextureMode (int mode); + +#ifdef __cplusplus +} + +#endif +#endif /* __TUBE_H__ */ +/* ================== END OF FILE ======================= */ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube_gc.h b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube_gc.h new file mode 100755 index 0000000..ccd2853 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube_gc.h @@ -0,0 +1,78 @@ + +/* + * tube_gc.h + * + * FUNCTION: + * This file allows for easy changes to changes in the way the extrusion + * library handles state info (i.e. context). + * + * HISTORY: + * Linas Vepstas --- February 1993 + * Added auto texture coord generation hacks, Linas April 1994 + * Added tube.h include to define gleDouble, tad February 2002 + */ + +#include "tube.h" +#include "port.h" /* for gleVector */ + +typedef float gleColor[3]; +typedef double gleTwoVec[2]; + +typedef struct { + + /* public methods */ + void (*bgn_gen_texture) (int, double); + void (*n3f_gen_texture) (float *); + void (*n3d_gen_texture) (double *); + void (*v3f_gen_texture) (float *, int, int); + void (*v3d_gen_texture) (double *, int, int); + void (*end_gen_texture) (void); + + /* protected members -- "general knowledge" stuff */ + int join_style; + + /* arguments passed into extrusion code */ + int ncp; /* number of contour points */ + gleTwoVec *contour; /* 2D contour */ + gleTwoVec *cont_normal; /* 2D contour normals */ + gleDouble *up; /* up vector */ + int npoints; /* number of points in polyline */ + gleVector *point_array; /* path */ + gleColor *color_array; /* path colors */ + gleAffine *xform_array; /* contour xforms */ + + /* private members, used by texturing code */ + int num_vert; + int segment_number; + double segment_length; + double accum_seg_len; + double prev_x; + double prev_y; + + void (*save_bgn_gen_texture) (int, double); + void (*save_n3f_gen_texture) (float *); + void (*save_n3d_gen_texture) (double *); + void (*save_v3f_gen_texture) (float *, int, int); + void (*save_v3d_gen_texture) (double *, int, int); + void (*save_end_gen_texture) (void); + +} gleGC; + +extern gleGC *_gle_gc; +extern gleGC * gleCreateGC (void); + +#define INIT_GC() {if (!_gle_gc) _gle_gc = gleCreateGC(); } +#define extrusion_join_style (_gle_gc->join_style) + +#define __TUBE_CLOSE_CONTOUR (extrusion_join_style & TUBE_CONTOUR_CLOSED) +#define __TUBE_DRAW_CAP (extrusion_join_style & TUBE_JN_CAP) +#define __TUBE_DRAW_FACET_NORMALS (extrusion_join_style & TUBE_NORM_FACET) +#define __TUBE_DRAW_PATH_EDGE_NORMALS (extrusion_join_style & TUBE_NORM_PATH_EDGE) + +#define __TUBE_STYLE (extrusion_join_style & TUBE_JN_MASK) +#define __TUBE_RAW_JOIN (extrusion_join_style & TUBE_JN_RAW) +#define __TUBE_CUT_JOIN (extrusion_join_style & TUBE_JN_CUT) +#define __TUBE_ANGLE_JOIN (extrusion_join_style & TUBE_JN_ANGLE) +#define __TUBE_ROUND_JOIN (extrusion_join_style & TUBE_JN_ROUND) + +/* ======================= END OF FILE ========================== */ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/vvector.h b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/vvector.h new file mode 100755 index 0000000..b58dcd6 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/vvector.h @@ -0,0 +1,1339 @@ + +/* + * vvector.h + * + * FUNCTION: + * This file contains a number of utilities useful for handling + * 3D vectors + * + * HISTORY: + * Written by Linas Vepstas, August 1991 + * Added 2D code, March 1993 + * Added Outer products, C++ proofed, Linas Vepstas October 1993 + */ + +#ifndef __GUTIL_VECTOR_H__ +#define __GUTIL_VECTOR_H__ + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + + +#include +#include "port.h" + +/* ========================================================== */ +/* Zero out a 2D vector */ + +#define VEC_ZERO_2(a) \ +{ \ + (a)[0] = (a)[1] = 0.0; \ +} + +/* ========================================================== */ +/* Zero out a 3D vector */ + +#define VEC_ZERO(a) \ +{ \ + (a)[0] = (a)[1] = (a)[2] = 0.0; \ +} + +/* ========================================================== */ +/* Zero out a 4D vector */ + +#define VEC_ZERO_4(a) \ +{ \ + (a)[0] = (a)[1] = (a)[2] = (a)[3] = 0.0; \ +} + +/* ========================================================== */ +/* Vector copy */ + +#define VEC_COPY_2(b,a) \ +{ \ + (b)[0] = (a)[0]; \ + (b)[1] = (a)[1]; \ +} + +/* ========================================================== */ +/* Copy 3D vector */ + +#define VEC_COPY(b,a) \ +{ \ + (b)[0] = (a)[0]; \ + (b)[1] = (a)[1]; \ + (b)[2] = (a)[2]; \ +} + +/* ========================================================== */ +/* Copy 4D vector */ + +#define VEC_COPY_4(b,a) \ +{ \ + (b)[0] = (a)[0]; \ + (b)[1] = (a)[1]; \ + (b)[2] = (a)[2]; \ + (b)[3] = (a)[3]; \ +} + +/* ========================================================== */ +/* Vector difference */ + +#define VEC_DIFF_2(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] - (v1)[0]; \ + (v21)[1] = (v2)[1] - (v1)[1]; \ +} + +/* ========================================================== */ +/* Vector difference */ + +#define VEC_DIFF(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] - (v1)[0]; \ + (v21)[1] = (v2)[1] - (v1)[1]; \ + (v21)[2] = (v2)[2] - (v1)[2]; \ +} + +/* ========================================================== */ +/* Vector difference */ + +#define VEC_DIFF_4(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] - (v1)[0]; \ + (v21)[1] = (v2)[1] - (v1)[1]; \ + (v21)[2] = (v2)[2] - (v1)[2]; \ + (v21)[3] = (v2)[3] - (v1)[3]; \ +} + +/* ========================================================== */ +/* Vector sum */ + +#define VEC_SUM_2(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] + (v1)[0]; \ + (v21)[1] = (v2)[1] + (v1)[1]; \ +} + +/* ========================================================== */ +/* Vector sum */ + +#define VEC_SUM(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] + (v1)[0]; \ + (v21)[1] = (v2)[1] + (v1)[1]; \ + (v21)[2] = (v2)[2] + (v1)[2]; \ +} + +/* ========================================================== */ +/* Vector sum */ + +#define VEC_SUM_4(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] + (v1)[0]; \ + (v21)[1] = (v2)[1] + (v1)[1]; \ + (v21)[2] = (v2)[2] + (v1)[2]; \ + (v21)[3] = (v2)[3] + (v1)[3]; \ +} + +/* ========================================================== */ +/* scalar times vector */ + +#define VEC_SCALE_2(c,a,b) \ +{ \ + (c)[0] = (a)*(b)[0]; \ + (c)[1] = (a)*(b)[1]; \ +} + +/* ========================================================== */ +/* scalar times vector */ + +#define VEC_SCALE(c,a,b) \ +{ \ + (c)[0] = (a)*(b)[0]; \ + (c)[1] = (a)*(b)[1]; \ + (c)[2] = (a)*(b)[2]; \ +} + +/* ========================================================== */ +/* scalar times vector */ + +#define VEC_SCALE_4(c,a,b) \ +{ \ + (c)[0] = (a)*(b)[0]; \ + (c)[1] = (a)*(b)[1]; \ + (c)[2] = (a)*(b)[2]; \ + (c)[3] = (a)*(b)[3]; \ +} + +/* ========================================================== */ +/* accumulate scaled vector */ + +#define VEC_ACCUM_2(c,a,b) \ +{ \ + (c)[0] += (a)*(b)[0]; \ + (c)[1] += (a)*(b)[1]; \ +} + +/* ========================================================== */ +/* accumulate scaled vector */ + +#define VEC_ACCUM(c,a,b) \ +{ \ + (c)[0] += (a)*(b)[0]; \ + (c)[1] += (a)*(b)[1]; \ + (c)[2] += (a)*(b)[2]; \ +} + +/* ========================================================== */ +/* accumulate scaled vector */ + +#define VEC_ACCUM_4(c,a,b) \ +{ \ + (c)[0] += (a)*(b)[0]; \ + (c)[1] += (a)*(b)[1]; \ + (c)[2] += (a)*(b)[2]; \ + (c)[3] += (a)*(b)[3]; \ +} + +/* ========================================================== */ +/* Vector dot product */ + +#define VEC_DOT_PRODUCT_2(c,a,b) \ +{ \ + c = (a)[0]*(b)[0] + (a)[1]*(b)[1]; \ +} + +/* ========================================================== */ +/* Vector dot product */ + +#define VEC_DOT_PRODUCT(c,a,b) \ +{ \ + c = (a)[0]*(b)[0] + (a)[1]*(b)[1] + (a)[2]*(b)[2]; \ +} + +/* ========================================================== */ +/* Vector dot product */ + +#define VEC_DOT_PRODUCT_4(c,a,b) \ +{ \ + c = (a)[0]*(b)[0] + (a)[1]*(b)[1] + (a)[2]*(b)[2] + (a)[3]*(b)[3] ; \ +} + +/* ========================================================== */ +/* vector impact parameter (squared) */ + +#define VEC_IMPACT_SQ(bsq,direction,position) \ +{ \ + gleDouble vlen, llel; \ + VEC_DOT_PRODUCT (vlen, position, position); \ + VEC_DOT_PRODUCT (llel, direction, position); \ + bsq = vlen - llel*llel; \ +} + +/* ========================================================== */ +/* vector impact parameter */ + +#define VEC_IMPACT(bsq,direction,position) \ +{ \ + VEC_IMPACT_SQ(bsq,direction,position); \ + bsq = sqrt (bsq); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_LENGTH_2(vlen,a) \ +{ \ + vlen = a[0]*a[0] + a[1]*a[1]; \ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_LENGTH(vlen,a) \ +{ \ + vlen = (a)[0]*(a)[0] + (a)[1]*(a)[1]; \ + vlen += (a)[2]*(a)[2]; \ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_LENGTH_4(vlen,a) \ +{ \ + vlen = (a)[0]*(a)[0] + (a)[1]*(a)[1]; \ + vlen += (a)[2]*(a)[2]; \ + vlen += (a)[3] * (a)[3]; \ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* distance between two points */ + +#define VEC_DISTANCE(vlen,va,vb) \ +{ \ + gleDouble tmp[4]; \ + VEC_DIFF (tmp, vb, va); \ + VEC_LENGTH (vlen, tmp); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_CONJUGATE_LENGTH(vlen,a) \ +{ \ + vlen = 1.0 - a[0]*a[0] - a[1]*a[1] - a[2]*a[2];\ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_NORMALIZE(a) \ +{ \ + double vlen; \ + VEC_LENGTH (vlen,a); \ + if (vlen != 0.0) { \ + vlen = 1.0 / vlen; \ + a[0] *= vlen; \ + a[1] *= vlen; \ + a[2] *= vlen; \ + } \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_RENORMALIZE(a,newlen) \ +{ \ + double vlen; \ + VEC_LENGTH (vlen,a); \ + if (vlen != 0.0) { \ + vlen = newlen / vlen; \ + a[0] *= vlen; \ + a[1] *= vlen; \ + a[2] *= vlen; \ + } \ +} + +/* ========================================================== */ +/* 3D Vector cross product yeilding vector */ + +#define VEC_CROSS_PRODUCT(c,a,b) \ +{ \ + c[0] = (a)[1] * (b)[2] - (a)[2] * (b)[1]; \ + c[1] = (a)[2] * (b)[0] - (a)[0] * (b)[2]; \ + c[2] = (a)[0] * (b)[1] - (a)[1] * (b)[0]; \ +} + +/* ========================================================== */ +/* Vector perp -- assumes that n is of unit length + * accepts vector v, subtracts out any component parallel to n */ + +#define VEC_PERP(vp,v,n) \ +{ \ + double vdot; \ + \ + VEC_DOT_PRODUCT (vdot, v, n); \ + vp[0] = (v)[0] - (vdot) * (n)[0]; \ + vp[1] = (v)[1] - (vdot) * (n)[1]; \ + vp[2] = (v)[2] - (vdot) * (n)[2]; \ +} + +/* ========================================================== */ +/* Vector parallel -- assumes that n is of unit length + * accepts vector v, subtracts out any component perpendicular to n */ + +#define VEC_PARALLEL(vp,v,n) \ +{ \ + double vdot; \ + \ + VEC_DOT_PRODUCT (vdot, v, n); \ + vp[0] = (vdot) * (n)[0]; \ + vp[1] = (vdot) * (n)[1]; \ + vp[2] = (vdot) * (n)[2]; \ +} + +/* ========================================================== */ +/* Vector reflection -- assumes n is of unit length */ +/* Takes vector v, reflects it against reflector n, and returns vr */ + +#define VEC_REFLECT(vr,v,n) \ +{ \ + double vdot; \ + \ + VEC_DOT_PRODUCT (vdot, v, n); \ + vr[0] = (v)[0] - 2.0 * (vdot) * (n)[0]; \ + vr[1] = (v)[1] - 2.0 * (vdot) * (n)[1]; \ + vr[2] = (v)[2] - 2.0 * (vdot) * (n)[2]; \ +} + +/* ========================================================== */ +/* Vector blending */ +/* Takes two vectors a, b, blends them together */ + +#define VEC_BLEND(vr,sa,a,sb,b) \ +{ \ + \ + vr[0] = (sa) * (a)[0] + (sb) * (b)[0]; \ + vr[1] = (sa) * (a)[1] + (sb) * (b)[1]; \ + vr[2] = (sa) * (a)[2] + (sb) * (b)[2]; \ +} + +/* ========================================================== */ +/* Vector print */ + +#define VEC_PRINT_2(a) \ +{ \ + double vlen; \ + VEC_LENGTH_2 (vlen, a); \ + printf (" a is %f %f length of a is %f \n", a[0], a[1], vlen); \ +} + +/* ========================================================== */ +/* Vector print */ + +#define VEC_PRINT(a) \ +{ \ + double vlen; \ + VEC_LENGTH (vlen, (a)); \ + printf (" a is %f %f %f length of a is %f \n", (a)[0], (a)[1], (a)[2], vlen); \ +} + +/* ========================================================== */ +/* Vector print */ + +#define VEC_PRINT_4(a) \ +{ \ + double vlen; \ + VEC_LENGTH_4 (vlen, (a)); \ + printf (" a is %f %f %f %f length of a is %f \n", \ + (a)[0], (a)[1], (a)[2], (a)[3], vlen); \ +} + +/* ========================================================== */ +/* print matrix */ + +#define MAT_PRINT_4X4(mmm) { \ + int i,j; \ + printf ("matrix mmm is \n"); \ + if (mmm == NULL) { \ + printf (" Null \n"); \ + } else { \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + printf ("%f ", mmm[i][j]); \ + } \ + printf (" \n"); \ + } \ + } \ +} + +/* ========================================================== */ +/* print matrix */ + +#define MAT_PRINT_3X3(mmm) { \ + int i,j; \ + printf ("matrix mmm is \n"); \ + if (mmm == NULL) { \ + printf (" Null \n"); \ + } else { \ + for (i=0; i<3; i++) { \ + for (j=0; j<3; j++) { \ + printf ("%f ", mmm[i][j]); \ + } \ + printf (" \n"); \ + } \ + } \ +} + +/* ========================================================== */ +/* print matrix */ + +#define MAT_PRINT_2X3(mmm) { \ + int i,j; \ + printf ("matrix mmm is \n"); \ + if (mmm == NULL) { \ + printf (" Null \n"); \ + } else { \ + for (i=0; i<2; i++) { \ + for (j=0; j<3; j++) { \ + printf ("%f ", mmm[i][j]); \ + } \ + printf (" \n"); \ + } \ + } \ +} + +/* ========================================================== */ +/* initialize matrix */ + +#define IDENTIFY_MATRIX_3X3(m) \ +{ \ + m[0][0] = 1.0; \ + m[0][1] = 0.0; \ + m[0][2] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = 1.0; \ + m[1][2] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = 0.0; \ + m[2][2] = 1.0; \ +} + +/* ========================================================== */ +/* initialize matrix */ + +#define IDENTIFY_MATRIX_4X4(m) \ +{ \ + m[0][0] = 1.0; \ + m[0][1] = 0.0; \ + m[0][2] = 0.0; \ + m[0][3] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = 1.0; \ + m[1][2] = 0.0; \ + m[1][3] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = 0.0; \ + m[2][2] = 1.0; \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_2X2(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_2X3(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + b[0][2] = a[0][2]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[1][2]; \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_3X3(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + b[0][2] = a[0][2]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[1][2]; \ + \ + b[2][0] = a[2][0]; \ + b[2][1] = a[2][1]; \ + b[2][2] = a[2][2]; \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_4X4(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + b[0][2] = a[0][2]; \ + b[0][3] = a[0][3]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[1][2]; \ + b[1][3] = a[1][3]; \ + \ + b[2][0] = a[2][0]; \ + b[2][1] = a[2][1]; \ + b[2][2] = a[2][2]; \ + b[2][3] = a[2][3]; \ + \ + b[3][0] = a[3][0]; \ + b[3][1] = a[3][1]; \ + b[3][2] = a[3][2]; \ + b[3][3] = a[3][3]; \ +} + +/* ========================================================== */ +/* matrix transpose */ + +#define TRANSPOSE_MATRIX_2X2(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[1][0]; \ + \ + b[1][0] = a[0][1]; \ + b[1][1] = a[1][1]; \ +} + +/* ========================================================== */ +/* matrix transpose */ + +#define TRANSPOSE_MATRIX_3X3(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[1][0]; \ + b[0][2] = a[2][0]; \ + \ + b[1][0] = a[0][1]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[2][1]; \ + \ + b[2][0] = a[0][2]; \ + b[2][1] = a[1][2]; \ + b[2][2] = a[2][2]; \ +} + +/* ========================================================== */ +/* matrix transpose */ + +#define TRANSPOSE_MATRIX_4X4(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[1][0]; \ + b[0][2] = a[2][0]; \ + b[0][3] = a[3][0]; \ + \ + b[1][0] = a[0][1]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[2][1]; \ + b[1][3] = a[3][1]; \ + \ + b[2][0] = a[0][2]; \ + b[2][1] = a[1][2]; \ + b[2][2] = a[2][2]; \ + b[2][3] = a[3][2]; \ + \ + b[3][0] = a[0][3]; \ + b[3][1] = a[1][3]; \ + b[3][2] = a[2][3]; \ + b[3][3] = a[3][3]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define SCALE_MATRIX_2X2(b,s,a) \ +{ \ + b[0][0] = (s) * a[0][0]; \ + b[0][1] = (s) * a[0][1]; \ + \ + b[1][0] = (s) * a[1][0]; \ + b[1][1] = (s) * a[1][1]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define SCALE_MATRIX_3X3(b,s,a) \ +{ \ + b[0][0] = (s) * a[0][0]; \ + b[0][1] = (s) * a[0][1]; \ + b[0][2] = (s) * a[0][2]; \ + \ + b[1][0] = (s) * a[1][0]; \ + b[1][1] = (s) * a[1][1]; \ + b[1][2] = (s) * a[1][2]; \ + \ + b[2][0] = (s) * a[2][0]; \ + b[2][1] = (s) * a[2][1]; \ + b[2][2] = (s) * a[2][2]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define SCALE_MATRIX_4X4(b,s,a) \ +{ \ + b[0][0] = (s) * a[0][0]; \ + b[0][1] = (s) * a[0][1]; \ + b[0][2] = (s) * a[0][2]; \ + b[0][3] = (s) * a[0][3]; \ + \ + b[1][0] = (s) * a[1][0]; \ + b[1][1] = (s) * a[1][1]; \ + b[1][2] = (s) * a[1][2]; \ + b[1][3] = (s) * a[1][3]; \ + \ + b[2][0] = (s) * a[2][0]; \ + b[2][1] = (s) * a[2][1]; \ + b[2][2] = (s) * a[2][2]; \ + b[2][3] = (s) * a[2][3]; \ + \ + b[3][0] = s * a[3][0]; \ + b[3][1] = s * a[3][1]; \ + b[3][2] = s * a[3][2]; \ + b[3][3] = s * a[3][3]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define ACCUM_SCALE_MATRIX_2X2(b,s,a) \ +{ \ + b[0][0] += (s) * a[0][0]; \ + b[0][1] += (s) * a[0][1]; \ + \ + b[1][0] += (s) * a[1][0]; \ + b[1][1] += (s) * a[1][1]; \ +} + +/* +========================================================== */ +/* multiply matrix by scalar */ + +#define ACCUM_SCALE_MATRIX_3X3(b,s,a) \ +{ \ + b[0][0] += (s) * a[0][0]; \ + b[0][1] += (s) * a[0][1]; \ + b[0][2] += (s) * a[0][2]; \ + \ + b[1][0] += (s) * a[1][0]; \ + b[1][1] += (s) * a[1][1]; \ + b[1][2] += (s) * a[1][2]; \ + \ + b[2][0] += (s) * a[2][0]; \ + b[2][1] += (s) * a[2][1]; \ + b[2][2] += (s) * a[2][2]; \ +} + +/* +========================================================== */ +/* multiply matrix by scalar */ + +#define ACCUM_SCALE_MATRIX_4X4(b,s,a) \ +{ \ + b[0][0] += (s) * a[0][0]; \ + b[0][1] += (s) * a[0][1]; \ + b[0][2] += (s) * a[0][2]; \ + b[0][3] += (s) * a[0][3]; \ + \ + b[1][0] += (s) * a[1][0]; \ + b[1][1] += (s) * a[1][1]; \ + b[1][2] += (s) * a[1][2]; \ + b[1][3] += (s) * a[1][3]; \ + \ + b[2][0] += (s) * a[2][0]; \ + b[2][1] += (s) * a[2][1]; \ + b[2][2] += (s) * a[2][2]; \ + b[2][3] += (s) * a[2][3]; \ + \ + b[3][0] += (s) * a[3][0]; \ + b[3][1] += (s) * a[3][1]; \ + b[3][2] += (s) * a[3][2]; \ + b[3][3] += (s) * a[3][3]; \ +} + +/* +========================================================== */ +/* matrix product */ +/* c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/ + +#define MATRIX_PRODUCT_2X2(c,a,b) \ +{ \ + c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]; \ + c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]; \ + \ + c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]; \ + c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]; \ + \ +} + +/* ========================================================== */ +/* matrix product */ +/* c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/ + +#define MATRIX_PRODUCT_3X3(c,a,b) \ +{ \ + c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]+a[0][2]*b[2][0]; \ + c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]+a[0][2]*b[2][1]; \ + c[0][2] = a[0][0]*b[0][2]+a[0][1]*b[1][2]+a[0][2]*b[2][2]; \ + \ + c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]+a[1][2]*b[2][0]; \ + c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]+a[1][2]*b[2][1]; \ + c[1][2] = a[1][0]*b[0][2]+a[1][1]*b[1][2]+a[1][2]*b[2][2]; \ + \ + c[2][0] = a[2][0]*b[0][0]+a[2][1]*b[1][0]+a[2][2]*b[2][0]; \ + c[2][1] = a[2][0]*b[0][1]+a[2][1]*b[1][1]+a[2][2]*b[2][1]; \ + c[2][2] = a[2][0]*b[0][2]+a[2][1]*b[1][2]+a[2][2]*b[2][2]; \ +} + +/* ========================================================== */ +/* matrix product */ +/* c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/ + +#define MATRIX_PRODUCT_4X4(c,a,b) \ +{ \ + c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]+a[0][2]*b[2][0]+a[0][3]*b[3][0];\ + c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]+a[0][2]*b[2][1]+a[0][3]*b[3][1];\ + c[0][2] = a[0][0]*b[0][2]+a[0][1]*b[1][2]+a[0][2]*b[2][2]+a[0][3]*b[3][2];\ + c[0][3] = a[0][0]*b[0][3]+a[0][1]*b[1][3]+a[0][2]*b[2][3]+a[0][3]*b[3][3];\ + \ + c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]+a[1][2]*b[2][0]+a[1][3]*b[3][0];\ + c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]+a[1][2]*b[2][1]+a[1][3]*b[3][1];\ + c[1][2] = a[1][0]*b[0][2]+a[1][1]*b[1][2]+a[1][2]*b[2][2]+a[1][3]*b[3][2];\ + c[1][3] = a[1][0]*b[0][3]+a[1][1]*b[1][3]+a[1][2]*b[2][3]+a[1][3]*b[3][3];\ + \ + c[2][0] = a[2][0]*b[0][0]+a[2][1]*b[1][0]+a[2][2]*b[2][0]+a[2][3]*b[3][0];\ + c[2][1] = a[2][0]*b[0][1]+a[2][1]*b[1][1]+a[2][2]*b[2][1]+a[2][3]*b[3][1];\ + c[2][2] = a[2][0]*b[0][2]+a[2][1]*b[1][2]+a[2][2]*b[2][2]+a[2][3]*b[3][2];\ + c[2][3] = a[2][0]*b[0][3]+a[2][1]*b[1][3]+a[2][2]*b[2][3]+a[2][3]*b[3][3];\ + \ + c[3][0] = a[3][0]*b[0][0]+a[3][1]*b[1][0]+a[3][2]*b[2][0]+a[3][3]*b[3][0];\ + c[3][1] = a[3][0]*b[0][1]+a[3][1]*b[1][1]+a[3][2]*b[2][1]+a[3][3]*b[3][1];\ + c[3][2] = a[3][0]*b[0][2]+a[3][1]*b[1][2]+a[3][2]*b[2][2]+a[3][3]*b[3][2];\ + c[3][3] = a[3][0]*b[0][3]+a[3][1]*b[1][3]+a[3][2]*b[2][3]+a[3][3]*b[3][3];\ +} + +/* ========================================================== */ +/* matrix times vector */ + +#define MAT_DOT_VEC_2X2(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1]; \ +} + +/* ========================================================== */ +/* matrix times vector */ + +#define MAT_DOT_VEC_3X3(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]*v[2]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]*v[2]; \ + p[2] = m[2][0]*v[0] + m[2][1]*v[1] + m[2][2]*v[2]; \ +} + +/* ========================================================== */ +/* matrix times vector */ + +#define MAT_DOT_VEC_4X4(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]*v[2] + m[0][3]*v[3]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]*v[2] + m[1][3]*v[3]; \ + p[2] = m[2][0]*v[0] + m[2][1]*v[1] + m[2][2]*v[2] + m[2][3]*v[3]; \ + p[3] = m[3][0]*v[0] + m[3][1]*v[1] + m[3][2]*v[2] + m[3][3]*v[3]; \ +} + +/* ========================================================== */ +/* vector transpose times matrix */ +/* p[j] = v[0]*m[0][j] + v[1]*m[1][j] + v[2]*m[2][j]; */ + +#define VEC_DOT_MAT_3X3(p,v,m) \ +{ \ + p[0] = v[0]*m[0][0] + v[1]*m[1][0] + v[2]*m[2][0]; \ + p[1] = v[0]*m[0][1] + v[1]*m[1][1] + v[2]*m[2][1]; \ + p[2] = v[0]*m[0][2] + v[1]*m[1][2] + v[2]*m[2][2]; \ +} + +/* ========================================================== */ +/* affine matrix times vector */ +/* The matrix is assumed to be an affine matrix, with last two + * entries representing a translation */ + +#define MAT_DOT_VEC_2X3(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]; \ +} + +/* ========================================================== */ +/* inverse transpose of matrix times vector + * + * This macro computes inverse transpose of matrix m, + * and multiplies vector v into it, to yeild vector p + * + * DANGER !!! Do Not use this on normal vectors!!! + * It will leave normals the wrong length !!! + * See macro below for use on normals. + */ + +#define INV_TRANSP_MAT_DOT_VEC_2X2(p,m,v) \ +{ \ + gleDouble det; \ + \ + det = m[0][0]*m[1][1] - m[0][1]*m[1][0]; \ + p[0] = m[1][1]*v[0] - m[1][0]*v[1]; \ + p[1] = - m[0][1]*v[0] + m[0][0]*v[1]; \ + \ + /* if matrix not singular, and not orthonormal, then renormalize */ \ + if ((det!=1.0) && (det != 0.0)) { \ + det = 1.0 / det; \ + p[0] *= det; \ + p[1] *= det; \ + } \ +} + +/* ========================================================== */ +/* transform normal vector by inverse transpose of matrix + * and then renormalize the vector + * + * This macro computes inverse transpose of matrix m, + * and multiplies vector v into it, to yeild vector p + * Vector p is then normalized. + */ + + +#define NORM_XFORM_2X2(p,m,v) \ +{ \ + double mlen; \ + \ + /* do nothing if off-diagonals are zero and diagonals are \ + * equal */ \ + if ((m[0][1] != 0.0) || (m[1][0] != 0.0) || (m[0][0] != m[1][1])) { \ + p[0] = m[1][1]*v[0] - m[1][0]*v[1]; \ + p[1] = - m[0][1]*v[0] + m[0][0]*v[1]; \ + \ + mlen = p[0]*p[0] + p[1]*p[1]; \ + mlen = 1.0 / sqrt (mlen); \ + p[0] *= mlen; \ + p[1] *= mlen; \ + } else { \ + VEC_COPY_2 (p, v); \ + } \ +} + +/* ========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define OUTER_PRODUCT_2X2(m,v,t) \ +{ \ + m[0][0] = v[0] * t[0]; \ + m[0][1] = v[0] * t[1]; \ + \ + m[1][0] = v[1] * t[0]; \ + m[1][1] = v[1] * t[1]; \ +} + +/* ========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define OUTER_PRODUCT_3X3(m,v,t) \ +{ \ + m[0][0] = v[0] * t[0]; \ + m[0][1] = v[0] * t[1]; \ + m[0][2] = v[0] * t[2]; \ + \ + m[1][0] = v[1] * t[0]; \ + m[1][1] = v[1] * t[1]; \ + m[1][2] = v[1] * t[2]; \ + \ + m[2][0] = v[2] * t[0]; \ + m[2][1] = v[2] * t[1]; \ + m[2][2] = v[2] * t[2]; \ +} + +/* ========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define OUTER_PRODUCT_4X4(m,v,t) \ +{ \ + m[0][0] = v[0] * t[0]; \ + m[0][1] = v[0] * t[1]; \ + m[0][2] = v[0] * t[2]; \ + m[0][3] = v[0] * t[3]; \ + \ + m[1][0] = v[1] * t[0]; \ + m[1][1] = v[1] * t[1]; \ + m[1][2] = v[1] * t[2]; \ + m[1][3] = v[1] * t[3]; \ + \ + m[2][0] = v[2] * t[0]; \ + m[2][1] = v[2] * t[1]; \ + m[2][2] = v[2] * t[2]; \ + m[2][3] = v[2] * t[3]; \ + \ + m[3][0] = v[3] * t[0]; \ + m[3][1] = v[3] * t[1]; \ + m[3][2] = v[3] * t[2]; \ + m[3][3] = v[3] * t[3]; \ +} + +/* +========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define ACCUM_OUTER_PRODUCT_2X2(m,v,t) \ +{ \ + m[0][0] += v[0] * t[0]; \ + m[0][1] += v[0] * t[1]; \ + \ + m[1][0] += v[1] * t[0]; \ + m[1][1] += v[1] * t[1]; \ +} + +/* +========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define ACCUM_OUTER_PRODUCT_3X3(m,v,t) \ +{ \ + m[0][0] += v[0] * t[0]; \ + m[0][1] += v[0] * t[1]; \ + m[0][2] += v[0] * t[2]; \ + \ + m[1][0] += v[1] * t[0]; \ + m[1][1] += v[1] * t[1]; \ + m[1][2] += v[1] * t[2]; \ + \ + m[2][0] += v[2] * t[0]; \ + m[2][1] += v[2] * t[1]; \ + m[2][2] += v[2] * t[2]; \ +} + +/* +========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define ACCUM_OUTER_PRODUCT_4X4(m,v,t) \ +{ \ + m[0][0] += v[0] * t[0]; \ + m[0][1] += v[0] * t[1]; \ + m[0][2] += v[0] * t[2]; \ + m[0][3] += v[0] * t[3]; \ + \ + m[1][0] += v[1] * t[0]; \ + m[1][1] += v[1] * t[1]; \ + m[1][2] += v[1] * t[2]; \ + m[1][3] += v[1] * t[3]; \ + \ + m[2][0] += v[2] * t[0]; \ + m[2][1] += v[2] * t[1]; \ + m[2][2] += v[2] * t[2]; \ + m[2][3] += v[2] * t[3]; \ + \ + m[3][0] += v[3] * t[0]; \ + m[3][1] += v[3] * t[1]; \ + m[3][2] += v[3] * t[2]; \ + m[3][3] += v[3] * t[3]; \ +} + +/* +========================================================== */ +/* determinant of matrix + * + * Computes determinant of matrix m, returning d + */ + +#define DETERMINANT_2X2(d,m) \ +{ \ + d = m[0][0] * m[1][1] - m[0][1] * m[1][0]; \ +} + +/* ========================================================== */ +/* determinant of matrix + * + * Computes determinant of matrix m, returning d + */ + +#define DETERMINANT_3X3(d,m) \ +{ \ + d = m[0][0] * (m[1][1]*m[2][2] - m[1][2] * m[2][1]); \ + d -= m[0][1] * (m[1][0]*m[2][2] - m[1][2] * m[2][0]); \ + d += m[0][2] * (m[1][0]*m[2][1] - m[1][1] * m[2][0]); \ +} + +/* ========================================================== */ +/* i,j,th cofactor of a 4x4 matrix + * + */ + +#define COFACTOR_4X4_IJ(fac,m,i,j) \ +{ \ + int ii[4], jj[4], k; \ + \ + /* compute which row, columnt to skip */ \ + for (k=0; k + + + + IBDocumentLocation + 4 104 410 240 0 0 1152 848 + IBEditorPositions + + 29 + 19 615 246 44 0 0 1152 848 + + IBFramework Version + 291.0 + IBGroupedObjects + + IBLastGroupID + 1 + IBOpenObjects + + 29 + + IBSystem Version + 6I32 + + diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUT.nib/objects.nib b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUT.nib/objects.nib new file mode 100644 index 0000000..8a7140e Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUT.nib/objects.nib differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/classes.nib b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/classes.nib new file mode 100755 index 0000000..7e85eb1 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/classes.nib @@ -0,0 +1,13 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + { + ACTIONS = {toggleWindow = id; }; + CLASS = GLUTClipboardController; + LANGUAGE = ObjC; + OUTLETS = {_infoText = id; _scrollView = id; }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/info.nib b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/info.nib new file mode 100755 index 0000000..867735d --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/info.nib @@ -0,0 +1,12 @@ + + + + + IBDocumentLocation + 63 221 356 240 0 0 1600 1178 + IBFramework Version + 263.2 + IBSystem Version + 5S41 + + diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/objects.nib b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/objects.nib new file mode 100644 index 0000000..29125d4 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/objects.nib differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/classes.nib b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/classes.nib new file mode 100755 index 0000000..c675963 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/classes.nib @@ -0,0 +1,73 @@ +{ + IBClasses = ( + { + ACTIONS = {save = id; saveAs = id; }; + CLASS = FirstResponder; + LANGUAGE = ObjC; + SUPERCLASS = NSObject; + }, + { + ACTIONS = { + cancel = id; + joyAssign = id; + joyDevice = id; + joyElement = id; + joyInvert = id; + launchDebugMode = id; + launchGamemodeCaptureSingle = id; + launchIconic = id; + launchUseCurrWD = id; + launchUseExtDesktop = id; + launchUseMacOSCoords = id; + mouseEanbleEmulation = id; + mouseMiddleMenu = id; + mouseRightMenu = id; + ok = id; + spaceAssign = id; + spaceDevice = id; + spaceElement = id; + spaceInvert = id; + }; + CLASS = GLUTPreferencesController; + LANGUAGE = ObjC; + OUTLETS = { + joyAssign = NSButton; + joyAssignNote = NSTextField; + joyAssignWarningIcon = NSImageView; + joyDeviceMenu = NSPopUpButton; + joyElement = NSTextField; + joyInputMenu = NSPopUpButton; + joyInverted = NSButton; + launchDebugMode = NSButton; + launchFadeTime = NSTextField; + launchGamemodeCaptureSingle = NSButton; + launchIconic = NSButton; + launchInitHeight = NSTextField; + launchInitWidth = NSTextField; + launchInitX = NSTextField; + launchInitY = NSTextField; + launchMenuIdle = NSTextField; + launchSyncToVBL = NSButton; + launchUseCurrWD = NSButton; + launchUseExtendedDesktop = NSButton; + launchUseMacOSXCoords = NSButton; + mouseAssignWarningIcon = NSImageView; + mouseAssignWarningText = NSTextField; + mouseDetected = NSTextField; + mouseEmulation = NSButton; + mouseMiddleConfigMenu = NSPopUpButton; + mouseRightConfigMenu = NSPopUpButton; + prefsTabView = NSTabView; + spaceAssign = NSButton; + spaceAssignNote = NSTextField; + spaceAssignWarningIcon = NSImageView; + spaceDeviceMenu = NSPopUpButton; + spaceElement = NSTextField; + spaceInputMenu = NSPopUpButton; + spaceInverted = NSButton; + }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/info.nib b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/info.nib new file mode 100755 index 0000000..216c8dc --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 16 329 410 240 0 0 1920 1178 + IBFramework Version + 439.0 + IBOpenObjects + + 205 + + IBSystem Version + 8G32 + + diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/objects.nib b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/objects.nib new file mode 100644 index 0000000..7598f2c Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/objects.nib differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTUI.strings b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTUI.strings new file mode 100644 index 0000000..6db3c5c Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTUI.strings differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/InfoPlist.strings b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/InfoPlist.strings new file mode 100644 index 0000000..6f78b89 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/InfoPlist.strings differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/Info.plist b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/Info.plist new file mode 100755 index 0000000..e8fc9d6 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + GLUT + CFBundleGetInfoString + 3.4.0, Copyright (c) 2001-2008 Apple Inc., All Rights Reserved + CFBundleIdentifier + com.apple.glut + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + FMWK + CFBundleShortVersionString + 3.4.0 + CFBundleSignature + ???? + CFBundleVersion + GLUT-3.4.0 + + diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/blankCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/blankCursor.tiff new file mode 100755 index 0000000..a2b0cf1 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/blankCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomCursor.tiff new file mode 100755 index 0000000..c3f4795 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomleftCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomleftCursor.tiff new file mode 100755 index 0000000..274529f Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomleftCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomrightCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomrightCursor.tiff new file mode 100755 index 0000000..dec4252 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomrightCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/crossCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/crossCursor.tiff new file mode 100755 index 0000000..8536c0e Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/crossCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/cycleCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/cycleCursor.tiff new file mode 100755 index 0000000..34b52f6 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/cycleCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/destroyCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/destroyCursor.tiff new file mode 100755 index 0000000..9e3a1cb Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/destroyCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/fingerCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/fingerCursor.tiff new file mode 100755 index 0000000..0087c66 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/fingerCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/helpCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/helpCursor.tiff new file mode 100755 index 0000000..fc4a88a Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/helpCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftCursor.tiff new file mode 100755 index 0000000..852b69b Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftRightCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftRightCursor.tiff new file mode 100755 index 0000000..37fe393 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftRightCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightArrowCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightArrowCursor.tiff new file mode 100755 index 0000000..d852616 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightArrowCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightCursor.tiff new file mode 100755 index 0000000..9781f22 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/sprayCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/sprayCursor.tiff new file mode 100755 index 0000000..9bec966 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/sprayCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topCursor.tiff new file mode 100755 index 0000000..e4df0de Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topleftCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topleftCursor.tiff new file mode 100755 index 0000000..43cf97f Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topleftCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/toprightCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/toprightCursor.tiff new file mode 100755 index 0000000..429b01b Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/toprightCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/upDownCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/upDownCursor.tiff new file mode 100755 index 0000000..1605063 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/upDownCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/waitCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/waitCursor.tiff new file mode 100755 index 0000000..81ba1aa Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/waitCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/Current b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/Current new file mode 120000 index 0000000..8c7e5a6 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Frameworks/GLUT.framework/Versions/Current @@ -0,0 +1 @@ +A \ No newline at end of file diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Info.plist b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Info.plist new file mode 100644 index 0000000..dd20398 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/Info.plist @@ -0,0 +1,36 @@ + + + + + BuildMachineOSBuild + 10K549 + CFBundleDevelopmentRegion + English + CFBundleExecutable + atomSynthesisDebug + CFBundleIdentifier + com.yourcompany.openFrameworks + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleVersion + 1.0 + DTCompiler + + DTPlatformBuild + 10M2518 + DTPlatformVersion + PG + DTSDKBuild + 10K549 + DTSDKName + + DTXcode + 0400 + DTXcodeBuild + 10M2518 + + diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/MacOS/atomSynthesisDebug b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/MacOS/atomSynthesisDebug new file mode 100755 index 0000000..923bed2 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/MacOS/atomSynthesisDebug differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/MacOS/libfmodex.dylib b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/MacOS/libfmodex.dylib new file mode 100644 index 0000000..bea90a1 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/MacOS/libfmodex.dylib differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/PkgInfo b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/PkgInfo new file mode 100644 index 0000000..bd04210 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/atomSynthesisDebug.app/Contents/PkgInfo @@ -0,0 +1 @@ +APPL???? \ No newline at end of file diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/data/.gitignore b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/data/.gitignore new file mode 100644 index 0000000..0a9e2b1 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/bin/data/.gitignore @@ -0,0 +1,3 @@ +# Ignore everything in here apart from the .gitignore file +* +!.gitignore \ No newline at end of file diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/openFrameworks-Info.plist b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/openFrameworks-Info.plist new file mode 100644 index 0000000..e5db555 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/openFrameworks-Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + com.yourcompany.openFrameworks + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleVersion + 1.0 + + diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/main.cpp b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/main.cpp new file mode 100644 index 0000000..b232966 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/main.cpp @@ -0,0 +1,16 @@ +#include "ofMain.h" +#include "mp.h" +#include "ofAppGlutWindow.h" + +//======================================================================== +int main( ){ + + ofAppGlutWindow window; + ofSetupOpenGL(&window, 1024,768, OF_WINDOW); // <-------- setup the GL context + + // this kicks off the running of my app + // can be OF_WINDOW or OF_FULLSCREEN + // pass in width and height too: + ofRunApp( new mp()); + +} diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/mp.cpp b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/mp.cpp new file mode 100644 index 0000000..b8e5ffd --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/mp.cpp @@ -0,0 +1,90 @@ +#include "mp.h" + +//-------------------------------------------------------------- +void mp::setup(){ + ofEnableAlphaBlending(); + ofSetupScreen(); + ofBackground(0, 0, 0); + ofSetVerticalSync(true); +// pyd.setup("localhost", 23612); +// pyd.clear(); + + + atomBuffer.resize(512); + + + ofxMaxiSettings::setup(44100, 2, 512); + ofSoundStreamSetup(maxiSettings::channels,0,this, maxiSettings::sampleRate, maxiSettings::bufferSize, 4);/* Call this last ! */ + +} + +//-------------------------------------------------------------- +void mp::update(){ + flArr test; + maxiAtoms::createGabor(test, maxiMap::linexp((float)mouseX/ofGetWidth(), 0, 1, 100, 10000) * (1.0 + (ofRandomuf() * 0.2)), + maxiSettings::sampleRate, + maxiMap::linlin((float)mouseY / ofGetHeight(), 0, 1, 2000, 40000) * (1.0 + (ofRandomuf() * 0.3)), + ofRandomf() * PI, 0.3, 0.05); + atStream.addAtom(test); + +} + +//-------------------------------------------------------------- +void mp::draw(){ + +} + +void mp::audioRequested (float * output, int bufferSize, int nChannels){ + memset(&atomBuffer[0], 0, sizeof(float) * bufferSize); + atStream.fillNextBuffer(&(atomBuffer[0]), bufferSize); + for (int i = 0; i < bufferSize; i++){ + output[i*nChannels ] = output[i*nChannels + 1] = atomBuffer[i]; + } + +} + + +//-------------------------------------------------------------- +void mp::keyPressed(int key){ + +} + +//-------------------------------------------------------------- +void mp::keyReleased(int key){ + +} + +//-------------------------------------------------------------- +void mp::mouseMoved(int x, int y ){ + +} + +//-------------------------------------------------------------- +void mp::mouseDragged(int x, int y, int button){ + +} + +//-------------------------------------------------------------- +void mp::mousePressed(int x, int y, int button){ + +} + +//-------------------------------------------------------------- +void mp::mouseReleased(int x, int y, int button){ + +} + +//-------------------------------------------------------------- +void mp::windowResized(int w, int h){ + +} + +//-------------------------------------------------------------- +void mp::gotMessage(ofMessage msg){ + +} + +//-------------------------------------------------------------- +void mp::dragEvent(ofDragInfo dragInfo){ + +} \ No newline at end of file diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/mp.h b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/mp.h new file mode 100644 index 0000000..00d185e --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/mp.h @@ -0,0 +1,32 @@ +#pragma once + +#include "ofMain.h" +#include "ofxMaxim.h" +#include "maxiAtoms.h" +//#include "pyOSCDebug.h" + +class mp : public ofBaseApp{ + + public: + void setup(); + void update(); + void draw(); + + void keyPressed (int key); + void keyReleased(int key); + void mouseMoved(int x, int y ); + void mouseDragged(int x, int y, int button); + void mousePressed(int x, int y, int button); + void mouseReleased(int x, int y, int button); + void windowResized(int w, int h); + void dragEvent(ofDragInfo dragInfo); + void gotMessage(ofMessage msg); + + void audioRequested (float * input, int bufferSize, int nChannels); /* output method */ + +// pyOSCDebug pyd; + maxiAtomStream atStream; + + flArr atomBuffer; + +}; diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/pyOSCDebug.cpp b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/pyOSCDebug.cpp new file mode 100644 index 0000000..3af8084 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/pyOSCDebug.cpp @@ -0,0 +1,45 @@ +/* + * pyOSCDebug.cpp + * bastardPop + * + * Created by Chris on 25/10/2011. + * Copyright 2011 Goldsmiths Creative Computing. All rights reserved. + * + */ + +#include "pyOSCDebug.h" + +pyOSCDebug::pyOSCDebug() { + ready = false; +} + +void pyOSCDebug::setup(string host, int port) { + osc.setup(host, port); + ready = true; +} + +void pyOSCDebug::clear() { + if (ready) { + ofxOscMessage m; + m.setAddress("/clear"); + osc.sendMessage(m); + } +} + + +void pyOSCDebug::send(vector data) { + send(&(data[0]), data.size()); +} + +void pyOSCDebug::send(float *data, unsigned int count) { + if (ready) { + ofxOscMessage m; + m.setAddress("/data"); + for(int i=0; i < count; i++) { + m.addFloatArg(data[i]); + } + osc.sendMessage(m); + } +} + + diff --git a/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/pyOSCDebug.h b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/pyOSCDebug.h new file mode 100644 index 0000000..020f0fd --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/maxiAtomSynthesis/src/pyOSCDebug.h @@ -0,0 +1,24 @@ +/* + * pyOSCDebug.h + * bastardPop + * + * Created by Chris on 25/10/2011. + * Copyright 2011 Goldsmiths Creative Computing. All rights reserved. + * + */ + +#include "ofxOSC.h" +#include + +class pyOSCDebug { +public: + pyOSCDebug(); + void setup(string host, int port); + void clear(); + void send(vector data); + void send(float *data, unsigned int count); +private: + ofxOscSender osc; + bool ready; + +}; \ No newline at end of file diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/.sln b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/.sln new file mode 100644 index 0000000..5a9e6e6 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/.sln @@ -0,0 +1,28 @@ +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual C++ Express 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "emptyExample", "emptyExample.vcproj", "{7FD42DF7-442E-479A-BA76-D0022F99702A}" + ProjectSection(ProjectDependencies) = postProject + {5837595D-ACA9-485C-8E76-729040CE4B0B} = {5837595D-ACA9-485C-8E76-729040CE4B0B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "openframeworksLib", "..\..\..\libs\openFrameworksCompiled\project\vs2008\openframeworksLib.vcproj", "{5837595D-ACA9-485C-8E76-729040CE4B0B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7FD42DF7-442E-479A-BA76-D0022F99702A}.Debug|Win32.ActiveCfg = Debug|Win32 + {7FD42DF7-442E-479A-BA76-D0022F99702A}.Debug|Win32.Build.0 = Debug|Win32 + {7FD42DF7-442E-479A-BA76-D0022F99702A}.Release|Win32.ActiveCfg = Release|Win32 + {7FD42DF7-442E-479A-BA76-D0022F99702A}.Release|Win32.Build.0 = Release|Win32 + {5837595D-ACA9-485C-8E76-729040CE4B0B}.Debug|Win32.ActiveCfg = Debug|Win32 + {5837595D-ACA9-485C-8E76-729040CE4B0B}.Debug|Win32.Build.0 = Debug|Win32 + {5837595D-ACA9-485C-8E76-729040CE4B0B}.Release|Win32.ActiveCfg = Release|Win32 + {5837595D-ACA9-485C-8E76-729040CE4B0B}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/.vcproj b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/.vcproj new file mode 100644 index 0000000..818dba2 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/.vcproj @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/.vcproj.user b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/.vcproj.user new file mode 100644 index 0000000..801522b --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/.vcproj.user @@ -0,0 +1,25 @@ + + + + + + + + + + + diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/Project.xcconfig b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/Project.xcconfig new file mode 100644 index 0000000..c10b9e5 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/Project.xcconfig @@ -0,0 +1,9 @@ +//THE PATH TO THE ROOT OF OUR OF PATH RELATIVE TO THIS PROJECT. +//THIS NEEDS TO BE DEFINED BEFORE CoreOF.xcconfig IS INCLUDED +OF_PATH = ../../.. + +//THIS HAS ALL THE HEADER AND LIBS FOR OF CORE +#include "../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig" + +OTHER_LDFLAGS = $(OF_CORE_LIBS) +HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS) diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/data/beat2.wav b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/data/beat2.wav new file mode 100644 index 0000000..c71cee6 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/data/beat2.wav differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/GLUT b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/GLUT new file mode 120000 index 0000000..c578310 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/GLUT @@ -0,0 +1 @@ +Versions/Current/GLUT \ No newline at end of file diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Headers b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Headers new file mode 120000 index 0000000..a177d2a --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Headers @@ -0,0 +1 @@ +Versions/Current/Headers \ No newline at end of file diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Resources b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Resources new file mode 120000 index 0000000..953ee36 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Resources @@ -0,0 +1 @@ +Versions/Current/Resources \ No newline at end of file diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/GLUT b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/GLUT new file mode 100755 index 0000000..2be5e34 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/GLUT differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/copy.h b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/copy.h new file mode 100755 index 0000000..a5116e2 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/copy.h @@ -0,0 +1,18 @@ + +/* + * + * Written By Linas Vepstas November 1991 + */ + + +#define COPY_THREE_WORDS(A,B) { \ + struct three_words { int a, b, c, }; \ + *(struct three_words *) (A) = *(struct three_words *) (B); \ +} + +#define COPY_FOUR_WORDS(A,B) { \ + struct four_words { int a, b, c, d, }; \ + *(struct four_words *) (A) = *(struct four_words *) (B); \ +} + +/* ============================================================= */ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/extrude.h b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/extrude.h new file mode 100755 index 0000000..658699e --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/extrude.h @@ -0,0 +1,96 @@ + +/* + * extrude.h + * + * FUNCTION: + * prototypes for privately used subroutines for the tubing library + * + * HISTORY: + * Linas Vepstas 1991 + */ + +#include "port.h" /* for gleDouble */ + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +/* ============================================================ */ +/* + * Provides choice of calling subroutine, vs. invoking macro. + * Basically, inlines the source, or not. + * Trades performance for executable size. + */ + +#define INLINE_INTERSECT +#ifdef INLINE_INTERSECT +#define INNERSECT(sect,p,n,v1,v2) { INTERSECT(sect,p,n,v1,v2); } +#else +#define INNERSECT(sect,p,n,v1,v2) intersect(sect,p,n,v1,v2) +#endif /* INLINE_INTERSECT */ + +/* ============================================================ */ +/* The folowing defines give a kludgy way of accessing the qmesh primitive */ + +/* +#define bgntmesh _emu_qmesh_bgnqmesh +#define endtmesh _emu_qmesh_endqmesh +#define c3f _emu_qmesh_c3f +#define n3f _emu_qmesh_n3f +#define v3f _emu_qmesh_v3f +*/ + +/* ============================================================ */ + +extern void up_sanity_check (gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3]); /* polyline */ + + +extern void draw_raw_style_end_cap (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble zval, /* where to draw cap */ + int frontwards); /* front or back cap */ + +extern void draw_round_style_cap_callback (int iloop, + double cap[][3], + float face_color[3], + gleDouble cut_vector[3], + gleDouble bisect_vector[3], + double norms[][3], + int frontwards); + +extern void draw_angle_style_front_cap (int ncp, + gleDouble bi[3], + gleDouble point_array[][3]); + +extern void extrusion_raw_join (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2],/* 2D contour normal vecs */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline */ + float color_array[][3], /* color of polyline */ + gleDouble xform_array[][2][3]); /* 2D contour xforms */ + + +extern void extrusion_round_or_cut_join (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2],/* 2D contour normal vecs */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline */ + float color_array[][3], /* color of polyline */ + gleDouble xform_array[][2][3]); /* 2D contour xforms */ + + +extern void extrusion_angle_join (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2],/* 2D contour normal vecs */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline */ + float color_array[][3], /* color of polyline */ + gleDouble xform_array[][2][3]); /* 2D contour xforms */ + +/* -------------------------- end of file -------------------------------- */ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmap.h b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmap.h new file mode 100755 index 0000000..baf54a7 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmap.h @@ -0,0 +1,137 @@ +#ifndef __glsmap_h__ +#define __glsmap_h__ + +/* Copyright (c) Mark J. Kilgard, 1998. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#if defined(_WIN32) + +/* Try hard to avoid including to avoid name space pollution, + but Win32's needs APIENTRY and WINGDIAPI defined properly. */ +# if 0 +# define WIN32_LEAN_AND_MEAN +# include +# else + /* XXX This is from Win32's */ +# ifndef APIENTRY +# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) +# define APIENTRY __stdcall +# else +# define APIENTRY +# endif +# endif +# ifndef CALLBACK + /* XXX This is from Win32's */ +# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) +# define CALLBACK __stdcall +# else +# define CALLBACK +# endif +# endif + /* XXX This is from Win32's and */ +# ifndef WINGDIAPI +# define WINGDIAPI __declspec(dllimport) +# endif + /* XXX This is from Win32's */ +# ifndef _WCHAR_T_DEFINED +typedef unsigned short wchar_t; +# define _WCHAR_T_DEFINED +# endif +# endif + +#pragma warning (disable:4244) /* Disable bogus conversion warnings. */ +#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ + +#endif /* _WIN32 */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum { + SMAP_CLEAR_SMAP_TEXTURE = 0x1, + SMAP_GENERATE_VIEW_MIPMAPS = 0x2, + SMAP_GENERATE_SMAP_MIPMAPS = 0x4, + SMAP_GENERATE_MIPMAPS = 0x6 /* both of above */ +} SphereMapFlags; + +/* Cube view enumerants. */ +enum { + SMAP_FRONT = 0, + SMAP_TOP = 1, + SMAP_BOTTOM = 2, + SMAP_LEFT = 3, + SMAP_RIGHT = 4, + SMAP_BACK = 5 +}; + +typedef struct _SphereMap SphereMap; + +extern SphereMap *smapCreateSphereMap(SphereMap *shareSmap); +extern void smapDestroySphereMap(SphereMap *smap); + +extern void smapConfigureSphereMapMesh(SphereMap *smap, int steps, int rings, int edgeExtend); + +extern void smapSetSphereMapTexObj(SphereMap *smap, GLuint texobj); +extern void smapSetViewTexObj(SphereMap *smap, GLuint texobj); +extern void smapSetViewTexObjs(SphereMap *smap, GLuint texobjs[6]); +extern void smapGetSphereMapTexObj(SphereMap *smap, GLuint *texobj); +extern void smapGetViewTexObj(SphereMap *smap, GLuint *texobj); +extern void smapGetViewTexObjs(SphereMap *smap, GLuint texobjs[6]); + +extern void smapSetFlags(SphereMap *smap, SphereMapFlags flags); +extern void smapGetFlags(SphereMap *smap, SphereMapFlags *flags); + +extern void smapSetViewOrigin(SphereMap *smap, GLint x, GLint y); +extern void smapSetSphereMapOrigin(SphereMap *smap, GLint x, GLint y); +extern void smapGetViewOrigin(SphereMap *smap, GLint *x, GLint *y); +extern void smapGetSphereMapOrigin(SphereMap *smap, GLint *x, GLint *y); + +extern void smapSetEye(SphereMap *smap, GLfloat eyex, GLfloat eyey, GLfloat eyez); +extern void smapSetEyeVector(SphereMap *smap, GLfloat *eye); +extern void smapSetUp(SphereMap *smap, GLfloat upx, GLfloat upy, GLfloat upz); +extern void smapSetUpVector(SphereMap *smap, GLfloat *up); +extern void smapSetObject(SphereMap *smap, GLfloat objx, GLfloat objy, GLfloat objz); +extern void smapSetObjectVector(SphereMap *smap, GLfloat *obj); +extern void smapGetEye(SphereMap *smap, GLfloat *eyex, GLfloat *eyey, GLfloat *eyez); +extern void smapGetEyeVector(SphereMap *smap, GLfloat *eye); +extern void smapGetUp(SphereMap *smap, GLfloat *upx, GLfloat *upy, GLfloat *upz); +extern void smapGetUpVector(SphereMap *smap, GLfloat *up); +extern void smapGetObject(SphereMap *smap, GLfloat *objx, GLfloat *objy, GLfloat *objz); +extern void smapGetObjectVector(SphereMap *smap, GLfloat *obj); + +extern void smapSetNearFar(SphereMap *smap, GLfloat viewNear, GLfloat viewFar); +extern void smapGetNearFar(SphereMap *smap, GLfloat *viewNear, GLfloat *viewFar); + +extern void smapSetSphereMapTexDim(SphereMap *smap, GLsizei texdim); +extern void smapSetViewTexDim(SphereMap *smap, GLsizei texdim); +extern void smapGetSphereMapTexDim(SphereMap *smap, GLsizei *texdim); +extern void smapGetViewTexDim(SphereMap *smap, GLsizei *texdim); + +extern void smapSetContextData(SphereMap *smap, void *context); +extern void smapGetContextData(SphereMap *smap, void **context); + +extern void smapSetPositionLightsFunc(SphereMap *smap, void (*positionLights)(int view, void *context)); +extern void smapSetDrawViewFunc(SphereMap *smap, void (*drawView)(int view, void *context)); +extern void smapGetPositionLightsFunc(SphereMap *smap, void (**positionLights)(int view, void *context)); +extern void smapGetDrawViewFunc(SphereMap *smap, void (**drawView)(int view, void *context)); + +extern void smapGenViewTex(SphereMap *smap, int view); +extern void smapGenViewTexs(SphereMap *smap); +extern void smapGenSphereMapFromViewTexs(SphereMap *smap); +extern void smapGenSphereMap(SphereMap *smap); +extern void smapGenSphereMapWithOneViewTex(SphereMap *smap); + +extern int smapRvecToSt(float rvec[3], float st[2]); +extern void smapStToRvec(float *st, float *rvec); + +#ifdef __cplusplus +} + +#endif +#endif /* __glsmap_h__ */ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmapint.h b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmapint.h new file mode 100755 index 0000000..3620e7d --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmapint.h @@ -0,0 +1,102 @@ +#ifndef __glsmapint_h__ +#define __glsmapint_h__ + +/* Copyright (c) Mark J. Kilgard, 1998. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#include "glsmap.h" + +enum { X = 0, Y = 1, Z = 2 }; + +#define INITFACE(mesh) \ + int steps = mesh->steps; \ + int sqsteps = mesh->steps * mesh->steps + +#define FACE(side,y,x) \ + mesh->face[(side)*sqsteps + (y)*steps + (x)] + +#define FACExy(side,i,j) \ + (&FACE(side,i,j).x) + +#define FACEst(side,i,j) \ + (&FACE(side,i,j).s) + +#define INITBACK(mesh) \ + int allrings = mesh->rings + mesh->edgeExtend; \ + int ringedspokes = allrings * mesh->steps + +#define BACK(edge,ring,spoke) \ + mesh->back[(edge)*ringedspokes + (ring)*mesh->steps + (spoke)] + +#define BACKxy(edge,ring,spoke) \ + (&BACK(edge,ring,spoke).x) + +#define BACKst(edge,ring,spoke) \ + (&BACK(edge,ring,spoke).s) + +typedef struct _STXY { + GLfloat s, t; + GLfloat x, y; +} STXY; + +typedef struct _SphereMapMesh { + + int refcnt; + + int steps; + int rings; + int edgeExtend; + + STXY *face; + STXY *back; + +} SphereMapMesh; + +struct _SphereMap { + + /* Shared sphere map mesh vertex data. */ + SphereMapMesh *mesh; + + /* Texture object ids. */ + GLuint smapTexObj; + GLuint viewTexObjs[6]; + GLuint viewTexObj; + + /* Flags */ + SphereMapFlags flags; + + /* Texture dimensions must be a power of two. */ + int viewTexDim; /* view texture dimension */ + int smapTexDim; /* sphere map texture dimension */ + + /* Viewport origins for view and sphere map rendering. */ + int viewOrigin[2]; + int smapOrigin[2]; + + /* Viewing vectors. */ + GLfloat eye[3]; + GLfloat up[3]; + GLfloat obj[3]; + + /* Projection parameters. */ + GLfloat viewNear; + GLfloat viewFar; + + /* Rendering callbacks. */ + void (*positionLights)(int view, void *context); + void (*drawView)(int view, void *context); + + /* Application specified callback data. */ + void *context; + +}; + +/* Library internal routines. */ +extern void __smapDrawSphereMapMeshSide(SphereMapMesh *mesh, int side); +extern void __smapDrawSphereMapMeshBack(SphereMapMesh *mesh); +extern void __smapValidateSphereMapMesh(SphereMapMesh *mesh); + +#endif /* __glsmapint_h__ */ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glut.h b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glut.h new file mode 100755 index 0000000..cbc6ebe --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glut.h @@ -0,0 +1,648 @@ +#ifndef __glut_h__ +#define __glut_h__ + +/* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998. */ + +/* This program is freely distributable without licensing fees and is + provided without guarantee or warrantee expressed or implied. This + program is -not- in the public domain. */ +//#define GLUT_OF_007_HACK + +#if defined(_WIN32) + +/* GLUT 3.7 now tries to avoid including + to avoid name space pollution, but Win32's + needs APIENTRY and WINGDIAPI defined properly. */ +# if 0 +# define WIN32_LEAN_AND_MEAN +# include +# else + /* XXX This is from Win32's */ +# ifndef APIENTRY +# define GLUT_APIENTRY_DEFINED +# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) +# define APIENTRY __stdcall +# else +# define APIENTRY +# endif +# endif + /* XXX This is from Win32's */ +# ifndef CALLBACK +# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) +# define CALLBACK __stdcall +# else +# define CALLBACK +# endif +# endif + /* XXX This is from Win32's and */ +# ifndef WINGDIAPI +# define GLUT_WINGDIAPI_DEFINED +# define WINGDIAPI __declspec(dllimport) +# endif + /* XXX This is from Win32's */ +# ifndef _WCHAR_T_DEFINED +typedef unsigned short wchar_t; +# define _WCHAR_T_DEFINED +# endif +# endif + +#pragma comment (lib, "winmm.lib") /* link with Windows MultiMedia lib */ +#pragma comment (lib, "opengl32.lib") /* link with Microsoft OpenGL lib */ +#pragma comment (lib, "glu32.lib") /* link with OpenGL Utility lib */ +#pragma comment (lib, "glut32.lib") /* link with Win32 GLUT lib */ + +#pragma warning (disable:4244) /* Disable bogus conversion warnings. */ +#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ + +#endif + +#if defined(__APPLE__) || defined(MACOSX) +#include +#include +#include +#else +#include +#include +#endif + +/* define APIENTRY and CALLBACK to null string if we aren't on Win32 */ +#if !defined(_WIN32) +#define APIENTRY +#define GLUT_APIENTRY_DEFINED +#define CALLBACK +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/** + GLUT API revision history: + + GLUT_API_VERSION is updated to reflect incompatible GLUT + API changes (interface changes, semantic changes, deletions, + or additions). + + GLUT_API_VERSION=1 First public release of GLUT. 11/29/94 + + GLUT_API_VERSION=2 Added support for OpenGL/GLX multisampling, + extension. Supports new input devices like tablet, dial and button + box, and Spaceball. Easy to query OpenGL extensions. + + GLUT_API_VERSION=3 glutMenuStatus added. + + GLUT_API_VERSION=4 glutInitDisplayString, glutWarpPointer, + glutBitmapLength, glutStrokeLength, glutWindowStatusFunc, dynamic + video resize subAPI, glutPostWindowRedisplay, glutKeyboardUpFunc, + glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat, + glutJoystickFunc, glutForceJoystickFunc (NOT FINALIZED!). + + GLUT_API_VERSION=5 glutGetProcAddress (added by BrianP) +**/ +#ifndef GLUT_API_VERSION /* allow this to be overriden */ +#define GLUT_API_VERSION 5 +#endif + +/** + GLUT implementation revision history: + + GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT + API revisions and implementation revisions (ie, bug fixes). + + GLUT_XLIB_IMPLEMENTATION=1 mjk's first public release of + GLUT Xlib-based implementation. 11/29/94 + + GLUT_XLIB_IMPLEMENTATION=2 mjk's second public release of + GLUT Xlib-based implementation providing GLUT version 2 + interfaces. + + GLUT_XLIB_IMPLEMENTATION=3 mjk's GLUT 2.2 images. 4/17/95 + + GLUT_XLIB_IMPLEMENTATION=4 mjk's GLUT 2.3 images. 6/?/95 + + GLUT_XLIB_IMPLEMENTATION=5 mjk's GLUT 3.0 images. 10/?/95 + + GLUT_XLIB_IMPLEMENTATION=7 mjk's GLUT 3.1+ with glutWarpPoitner. 7/24/96 + + GLUT_XLIB_IMPLEMENTATION=8 mjk's GLUT 3.1+ with glutWarpPoitner + and video resize. 1/3/97 + + GLUT_XLIB_IMPLEMENTATION=9 mjk's GLUT 3.4 release with early GLUT 4 routines. + + GLUT_XLIB_IMPLEMENTATION=11 Mesa 2.5's GLUT 3.6 release. + + GLUT_XLIB_IMPLEMENTATION=12 mjk's GLUT 3.6 release with early GLUT 4 routines + signal handling. + + GLUT_XLIB_IMPLEMENTATION=13 mjk's GLUT 3.7 beta with GameGLUT support. + + GLUT_XLIB_IMPLEMENTATION=14 mjk's GLUT 3.7 beta with f90gl friend interface. + + GLUT_XLIB_IMPLEMENTATION=15 mjk's GLUT 3.7 beta sync'ed with Mesa +**/ +#ifndef GLUT_XLIB_IMPLEMENTATION /* Allow this to be overriden. */ +#define GLUT_XLIB_IMPLEMENTATION 15 +#endif + +/** + MacOS X GLUT implementation revision history: + + GLUT_MACOSX_IMPLEMENTATION is updated to reflect MacOS X + specific GLUT API revisions and implementation revisions + (ie, bug fixes). + + GLUT_MACOSX_IMPLEMENTATION=1 glutSurfaceTexture. + + GLUT_MACOSX_IMPLEMENTATION=2 glutWMCloseFunc, glutCheckLoop. + +**/ +#ifndef GLUT_MACOSX_IMPLEMENTATION /* Allow this to be overriden. */ +#define GLUT_MACOSX_IMPLEMENTATION 2 +#endif + +/* Display mode bit masks. */ +#define GLUT_RGB 0 +#define GLUT_RGBA GLUT_RGB +#define GLUT_INDEX 1 +#define GLUT_SINGLE 0 +#define GLUT_DOUBLE 2 +#define GLUT_ACCUM 4 +#define GLUT_ALPHA 8 +#define GLUT_DEPTH 16 +#define GLUT_STENCIL 32 +#if (GLUT_API_VERSION >= 2) +#define GLUT_MULTISAMPLE 128 +#define GLUT_STEREO 256 +#endif +#if (GLUT_API_VERSION >= 3) +#define GLUT_LUMINANCE 512 +#endif +#define GLUT_NO_RECOVERY 1024 + +/* Mouse buttons. */ +#define GLUT_LEFT_BUTTON 0 +#define GLUT_MIDDLE_BUTTON 1 +#define GLUT_RIGHT_BUTTON 2 + +/* Mouse button state. */ +#define GLUT_DOWN 0 +#define GLUT_UP 1 + +#if (GLUT_API_VERSION >= 2) +/* function keys */ +#define GLUT_KEY_F1 1 +#define GLUT_KEY_F2 2 +#define GLUT_KEY_F3 3 +#define GLUT_KEY_F4 4 +#define GLUT_KEY_F5 5 +#define GLUT_KEY_F6 6 +#define GLUT_KEY_F7 7 +#define GLUT_KEY_F8 8 +#define GLUT_KEY_F9 9 +#define GLUT_KEY_F10 10 +#define GLUT_KEY_F11 11 +#define GLUT_KEY_F12 12 +/* directional keys */ +#define GLUT_KEY_LEFT 100 +#define GLUT_KEY_UP 101 +#define GLUT_KEY_RIGHT 102 +#define GLUT_KEY_DOWN 103 +#define GLUT_KEY_PAGE_UP 104 +#define GLUT_KEY_PAGE_DOWN 105 +#define GLUT_KEY_HOME 106 +#define GLUT_KEY_END 107 +#define GLUT_KEY_INSERT 108 +#endif + +/* Entry/exit state. */ +#define GLUT_LEFT 0 +#define GLUT_ENTERED 1 + +/* Menu usage state. */ +#define GLUT_MENU_NOT_IN_USE 0 +#define GLUT_MENU_IN_USE 1 + +/* Visibility state. */ +#define GLUT_NOT_VISIBLE 0 +#define GLUT_VISIBLE 1 + +/* Window status state. */ +#define GLUT_HIDDEN 0 +#define GLUT_FULLY_RETAINED 1 +#define GLUT_PARTIALLY_RETAINED 2 +#define GLUT_FULLY_COVERED 3 + +/* Color index component selection values. */ +#define GLUT_RED 0 +#define GLUT_GREEN 1 +#define GLUT_BLUE 2 + +/* Layers for use. */ +#define GLUT_NORMAL 0 +#define GLUT_OVERLAY 1 + +#if defined(_WIN32) +/* Stroke font constants (use these in GLUT program). */ +#define GLUT_STROKE_ROMAN ((void*)0) +#define GLUT_STROKE_MONO_ROMAN ((void*)1) + +/* Bitmap font constants (use these in GLUT program). */ +#define GLUT_BITMAP_9_BY_15 ((void*)2) +#define GLUT_BITMAP_8_BY_13 ((void*)3) +#define GLUT_BITMAP_TIMES_ROMAN_10 ((void*)4) +#define GLUT_BITMAP_TIMES_ROMAN_24 ((void*)5) +#if (GLUT_API_VERSION >= 3) +#define GLUT_BITMAP_HELVETICA_10 ((void*)6) +#define GLUT_BITMAP_HELVETICA_12 ((void*)7) +#define GLUT_BITMAP_HELVETICA_18 ((void*)8) +#endif +#else +/* Stroke font opaque addresses (use constants instead in source code). */ +extern void *glutStrokeRoman; +extern void *glutStrokeMonoRoman; + +/* Stroke font constants (use these in GLUT program). */ +#define GLUT_STROKE_ROMAN (&glutStrokeRoman) +#define GLUT_STROKE_MONO_ROMAN (&glutStrokeMonoRoman) + +/* Bitmap font opaque addresses (use constants instead in source code). */ +extern void *glutBitmap9By15; +extern void *glutBitmap8By13; +extern void *glutBitmapTimesRoman10; +extern void *glutBitmapTimesRoman24; +extern void *glutBitmapHelvetica10; +extern void *glutBitmapHelvetica12; +extern void *glutBitmapHelvetica18; + +/* Bitmap font constants (use these in GLUT program). */ +#define GLUT_BITMAP_9_BY_15 (&glutBitmap9By15) +#define GLUT_BITMAP_8_BY_13 (&glutBitmap8By13) +#define GLUT_BITMAP_TIMES_ROMAN_10 (&glutBitmapTimesRoman10) +#define GLUT_BITMAP_TIMES_ROMAN_24 (&glutBitmapTimesRoman24) +#if (GLUT_API_VERSION >= 3) +#define GLUT_BITMAP_HELVETICA_10 (&glutBitmapHelvetica10) +#define GLUT_BITMAP_HELVETICA_12 (&glutBitmapHelvetica12) +#define GLUT_BITMAP_HELVETICA_18 (&glutBitmapHelvetica18) +#endif +#endif + +/* glutGet parameters. */ +#define GLUT_WINDOW_X 100 +#define GLUT_WINDOW_Y 101 +#define GLUT_WINDOW_WIDTH 102 +#define GLUT_WINDOW_HEIGHT 103 +#define GLUT_WINDOW_BUFFER_SIZE 104 +#define GLUT_WINDOW_STENCIL_SIZE 105 +#define GLUT_WINDOW_DEPTH_SIZE 106 +#define GLUT_WINDOW_RED_SIZE 107 +#define GLUT_WINDOW_GREEN_SIZE 108 +#define GLUT_WINDOW_BLUE_SIZE 109 +#define GLUT_WINDOW_ALPHA_SIZE 110 +#define GLUT_WINDOW_ACCUM_RED_SIZE 111 +#define GLUT_WINDOW_ACCUM_GREEN_SIZE 112 +#define GLUT_WINDOW_ACCUM_BLUE_SIZE 113 +#define GLUT_WINDOW_ACCUM_ALPHA_SIZE 114 +#define GLUT_WINDOW_DOUBLEBUFFER 115 +#define GLUT_WINDOW_RGBA 116 +#define GLUT_WINDOW_PARENT 117 +#define GLUT_WINDOW_NUM_CHILDREN 118 +#define GLUT_WINDOW_COLORMAP_SIZE 119 +#if (GLUT_API_VERSION >= 2) +#define GLUT_WINDOW_NUM_SAMPLES 120 +#define GLUT_WINDOW_STEREO 121 +#endif +#if (GLUT_API_VERSION >= 3) +#define GLUT_WINDOW_CURSOR 122 +#endif +#define GLUT_SCREEN_WIDTH 200 +#define GLUT_SCREEN_HEIGHT 201 +#define GLUT_SCREEN_WIDTH_MM 202 +#define GLUT_SCREEN_HEIGHT_MM 203 +#define GLUT_MENU_NUM_ITEMS 300 +#define GLUT_DISPLAY_MODE_POSSIBLE 400 +#define GLUT_INIT_WINDOW_X 500 +#define GLUT_INIT_WINDOW_Y 501 +#define GLUT_INIT_WINDOW_WIDTH 502 +#define GLUT_INIT_WINDOW_HEIGHT 503 +#define GLUT_INIT_DISPLAY_MODE 504 +#if (GLUT_API_VERSION >= 2) +#define GLUT_ELAPSED_TIME 700 +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +#define GLUT_WINDOW_FORMAT_ID 123 +#endif + +#if (GLUT_API_VERSION >= 2) +/* glutDeviceGet parameters. */ +#define GLUT_HAS_KEYBOARD 600 +#define GLUT_HAS_MOUSE 601 +#define GLUT_HAS_SPACEBALL 602 +#define GLUT_HAS_DIAL_AND_BUTTON_BOX 603 +#define GLUT_HAS_TABLET 604 +#define GLUT_NUM_MOUSE_BUTTONS 605 +#define GLUT_NUM_SPACEBALL_BUTTONS 606 +#define GLUT_NUM_BUTTON_BOX_BUTTONS 607 +#define GLUT_NUM_DIALS 608 +#define GLUT_NUM_TABLET_BUTTONS 609 +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +#define GLUT_DEVICE_IGNORE_KEY_REPEAT 610 +#define GLUT_DEVICE_KEY_REPEAT 611 +#define GLUT_HAS_JOYSTICK 612 +#define GLUT_OWNS_JOYSTICK 613 +#define GLUT_JOYSTICK_BUTTONS 614 +#define GLUT_JOYSTICK_AXES 615 +#define GLUT_JOYSTICK_POLL_RATE 616 +#endif + +#if (GLUT_API_VERSION >= 3) +/* glutLayerGet parameters. */ +#define GLUT_OVERLAY_POSSIBLE 800 +#define GLUT_LAYER_IN_USE 801 +#define GLUT_HAS_OVERLAY 802 +#define GLUT_TRANSPARENT_INDEX 803 +#define GLUT_NORMAL_DAMAGED 804 +#define GLUT_OVERLAY_DAMAGED 805 + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +/* glutVideoResizeGet parameters. */ +#define GLUT_VIDEO_RESIZE_POSSIBLE 900 +#define GLUT_VIDEO_RESIZE_IN_USE 901 +#define GLUT_VIDEO_RESIZE_X_DELTA 902 +#define GLUT_VIDEO_RESIZE_Y_DELTA 903 +#define GLUT_VIDEO_RESIZE_WIDTH_DELTA 904 +#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA 905 +#define GLUT_VIDEO_RESIZE_X 906 +#define GLUT_VIDEO_RESIZE_Y 907 +#define GLUT_VIDEO_RESIZE_WIDTH 908 +#define GLUT_VIDEO_RESIZE_HEIGHT 909 +#endif + +/* glutUseLayer parameters. */ +#define GLUT_NORMAL 0 +#define GLUT_OVERLAY 1 + +/* glutGetModifiers return mask. */ +#define GLUT_ACTIVE_SHIFT 1 +#define GLUT_ACTIVE_CTRL 2 +#define GLUT_ACTIVE_ALT 4 + +/* glutSetCursor parameters. */ +/* Basic arrows. */ +#define GLUT_CURSOR_RIGHT_ARROW 0 +#define GLUT_CURSOR_LEFT_ARROW 1 +/* Symbolic cursor shapes. */ +#define GLUT_CURSOR_INFO 2 +#define GLUT_CURSOR_DESTROY 3 +#define GLUT_CURSOR_HELP 4 +#define GLUT_CURSOR_CYCLE 5 +#define GLUT_CURSOR_SPRAY 6 +#define GLUT_CURSOR_WAIT 7 +#define GLUT_CURSOR_TEXT 8 +#define GLUT_CURSOR_CROSSHAIR 9 +/* Directional cursors. */ +#define GLUT_CURSOR_UP_DOWN 10 +#define GLUT_CURSOR_LEFT_RIGHT 11 +/* Sizing cursors. */ +#define GLUT_CURSOR_TOP_SIDE 12 +#define GLUT_CURSOR_BOTTOM_SIDE 13 +#define GLUT_CURSOR_LEFT_SIDE 14 +#define GLUT_CURSOR_RIGHT_SIDE 15 +#define GLUT_CURSOR_TOP_LEFT_CORNER 16 +#define GLUT_CURSOR_TOP_RIGHT_CORNER 17 +#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 18 +#define GLUT_CURSOR_BOTTOM_LEFT_CORNER 19 +/* Inherit from parent window. */ +#define GLUT_CURSOR_INHERIT 100 +/* Blank cursor. */ +#define GLUT_CURSOR_NONE 101 +/* Fullscreen crosshair (if available). */ +#define GLUT_CURSOR_FULL_CROSSHAIR 102 +#endif + +/* GLUT initialization sub-API. */ +extern void APIENTRY glutInit(int *argcp, char **argv); +extern void APIENTRY glutInitDisplayMode(unsigned int mode); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern void APIENTRY glutInitDisplayString(const char *string); +#endif +extern void APIENTRY glutInitWindowPosition(int x, int y); +extern void APIENTRY glutInitWindowSize(int width, int height); +extern void APIENTRY glutMainLoop(void); + +/* GLUT window sub-API. */ +extern int APIENTRY glutCreateWindow(const char *title); +extern int APIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height); +extern void APIENTRY glutDestroyWindow(int win); +extern void APIENTRY glutPostRedisplay(void); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) +extern void APIENTRY glutPostWindowRedisplay(int win); +#endif +extern void APIENTRY glutSwapBuffers(void); +extern int APIENTRY glutGetWindow(void); +extern void APIENTRY glutSetWindow(int win); +extern void APIENTRY glutSetWindowTitle(const char *title); +extern void APIENTRY glutSetIconTitle(const char *title); +extern void APIENTRY glutPositionWindow(int x, int y); +extern void APIENTRY glutReshapeWindow(int width, int height); +extern void APIENTRY glutPopWindow(void); +extern void APIENTRY glutPushWindow(void); +extern void APIENTRY glutIconifyWindow(void); +extern void APIENTRY glutShowWindow(void); +extern void APIENTRY glutHideWindow(void); +#if (GLUT_API_VERSION >= 3) +extern void APIENTRY glutFullScreen(void); +extern void APIENTRY glutSetCursor(int cursor); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern void APIENTRY glutWarpPointer(int x, int y); +#if (GLUT_MACOSX_IMPLEMENTATION >= 1) +/* surface texturing API Mac OS X specific +* Note: +* glutSurfaceTexture has been deprecated, use GL_EXT_framebuffer_object +*/ +#ifdef MAC_OS_X_VERSION_10_5 +extern void APIENTRY glutSurfaceTexture (GLenum target, GLenum internalformat, int surfacewin); AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 +#else +extern void APIENTRY glutSurfaceTexture (GLenum target, GLenum internalformat, int surfacewin); +#endif +#endif +#if (GLUT_MACOSX_IMPLEMENTATION >= 2) +/* Mac OS X specific API */ +extern void APIENTRY glutWMCloseFunc(void (*func)(void)); +extern void APIENTRY glutCheckLoop(void); +#endif +#endif + +/* GLUT overlay sub-API. */ +extern void APIENTRY glutEstablishOverlay(void); +extern void APIENTRY glutRemoveOverlay(void); +extern void APIENTRY glutUseLayer(GLenum layer); +extern void APIENTRY glutPostOverlayRedisplay(void); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) +extern void APIENTRY glutPostWindowOverlayRedisplay(int win); +#endif +extern void APIENTRY glutShowOverlay(void); +extern void APIENTRY glutHideOverlay(void); +#endif + +/* GLUT menu sub-API. */ +extern int APIENTRY glutCreateMenu(void (*)(int)); +extern void APIENTRY glutDestroyMenu(int menu); +extern int APIENTRY glutGetMenu(void); +extern void APIENTRY glutSetMenu(int menu); +extern void APIENTRY glutAddMenuEntry(const char *label, int value); +extern void APIENTRY glutAddSubMenu(const char *label, int submenu); +extern void APIENTRY glutChangeToMenuEntry(int item, const char *label, int value); +extern void APIENTRY glutChangeToSubMenu(int item, const char *label, int submenu); +extern void APIENTRY glutRemoveMenuItem(int item); +extern void APIENTRY glutAttachMenu(int button); +extern void APIENTRY glutDetachMenu(int button); + +/* GLUT window callback sub-API. */ +extern void APIENTRY glutDisplayFunc(void (*func)(void)); +extern void APIENTRY glutReshapeFunc(void (*func)(int width, int height)); +extern void APIENTRY glutKeyboardFunc(void (*func)(unsigned char key, int x, int y)); +extern void APIENTRY glutMouseFunc(void (*func)(int button, int state, int x, int y)); +extern void APIENTRY glutMotionFunc(void (*func)(int x, int y)); +extern void APIENTRY glutPassiveMotionFunc(void (*func)(int x, int y)); +extern void APIENTRY glutEntryFunc(void (*func)(int state)); +extern void APIENTRY glutVisibilityFunc(void (*func)(int state)); +extern void APIENTRY glutIdleFunc(void (*func)(void)); +extern void APIENTRY glutTimerFunc(unsigned int millis, void (*func)(int value), int value); +extern void APIENTRY glutMenuStateFunc(void (*func)(int state)); +#if (GLUT_API_VERSION >= 2) +extern void APIENTRY glutSpecialFunc(void (*func)(int key, int x, int y)); +extern void APIENTRY glutSpaceballMotionFunc(void (*func)(int x, int y, int z)); +extern void APIENTRY glutSpaceballRotateFunc(void (*func)(int x, int y, int z)); +extern void APIENTRY glutSpaceballButtonFunc(void (*func)(int button, int state)); +extern void APIENTRY glutButtonBoxFunc(void (*func)(int button, int state)); +extern void APIENTRY glutDialsFunc(void (*func)(int dial, int value)); +extern void APIENTRY glutTabletMotionFunc(void (*func)(int x, int y)); +extern void APIENTRY glutTabletButtonFunc(void (*func)(int button, int state, int x, int y)); +#if (GLUT_API_VERSION >= 3) +extern void APIENTRY glutMenuStatusFunc(void (*func)(int status, int x, int y)); +extern void APIENTRY glutOverlayDisplayFunc(void (*func)(void)); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern void APIENTRY glutWindowStatusFunc(void (*func)(int state)); +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +extern void APIENTRY glutKeyboardUpFunc(void (*func)(unsigned char key, int x, int y)); +extern void APIENTRY glutSpecialUpFunc(void (*func)(int key, int x, int y)); +extern void APIENTRY glutJoystickFunc(void (*func)(unsigned int buttonMask, int x, int y, int z), int pollInterval); +//#ifdef GLUT_OF_007_HACK +extern void APIENTRY glutDragEventFunc(void (*func)(char ** fileNames, int nFiles, int dragX, int dragY)); +//#endif +#endif +#endif +#endif + +/* GLUT color index sub-API. */ +extern void APIENTRY glutSetColor(int, GLfloat red, GLfloat green, GLfloat blue); +extern GLfloat APIENTRY glutGetColor(int ndx, int component); +extern void APIENTRY glutCopyColormap(int win); + +/* GLUT state retrieval sub-API. */ +extern int APIENTRY glutGet(GLenum type); +extern int APIENTRY glutDeviceGet(GLenum type); +#if (GLUT_API_VERSION >= 2) +/* GLUT extension support sub-API */ +extern int APIENTRY glutExtensionSupported(const char *name); +#endif +#if (GLUT_API_VERSION >= 3) +extern int APIENTRY glutGetModifiers(void); +extern int APIENTRY glutLayerGet(GLenum type); +#endif +#if (GLUT_API_VERSION >= 5) +extern void * APIENTRY glutGetProcAddress(const char *procName); +#endif + +/* GLUT font sub-API */ +extern void APIENTRY glutBitmapCharacter(void *font, int character); +extern int APIENTRY glutBitmapWidth(void *font, int character); +extern void APIENTRY glutStrokeCharacter(void *font, int character); +extern int APIENTRY glutStrokeWidth(void *font, int character); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern int APIENTRY glutBitmapLength(void *font, const unsigned char *string); +extern int APIENTRY glutStrokeLength(void *font, const unsigned char *string); +#endif + +/* GLUT pre-built models sub-API */ +extern void APIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks); +extern void APIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks); +extern void APIENTRY glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); +extern void APIENTRY glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); +extern void APIENTRY glutWireCube(GLdouble size); +extern void APIENTRY glutSolidCube(GLdouble size); +extern void APIENTRY glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); +extern void APIENTRY glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); +extern void APIENTRY glutWireDodecahedron(void); +extern void APIENTRY glutSolidDodecahedron(void); +extern void APIENTRY glutWireTeapot(GLdouble size); +extern void APIENTRY glutSolidTeapot(GLdouble size); +extern void APIENTRY glutWireOctahedron(void); +extern void APIENTRY glutSolidOctahedron(void); +extern void APIENTRY glutWireTetrahedron(void); +extern void APIENTRY glutSolidTetrahedron(void); +extern void APIENTRY glutWireIcosahedron(void); +extern void APIENTRY glutSolidIcosahedron(void); + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +/* GLUT video resize sub-API. */ +extern int APIENTRY glutVideoResizeGet(GLenum param); +extern void APIENTRY glutSetupVideoResizing(void); +extern void APIENTRY glutStopVideoResizing(void); +extern void APIENTRY glutVideoResize(int x, int y, int width, int height); +extern void APIENTRY glutVideoPan(int x, int y, int width, int height); + +/* GLUT debugging sub-API. */ +extern void APIENTRY glutReportErrors(void); +#endif + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +/* GLUT device control sub-API. */ +/* glutSetKeyRepeat modes. */ +#define GLUT_KEY_REPEAT_OFF 0 +#define GLUT_KEY_REPEAT_ON 1 +#define GLUT_KEY_REPEAT_DEFAULT 2 + +/* Joystick button masks. */ +#define GLUT_JOYSTICK_BUTTON_A 1 +#define GLUT_JOYSTICK_BUTTON_B 2 +#define GLUT_JOYSTICK_BUTTON_C 4 +#define GLUT_JOYSTICK_BUTTON_D 8 + +extern void APIENTRY glutIgnoreKeyRepeat(int ignore); +extern void APIENTRY glutSetKeyRepeat(int repeatMode); +extern void APIENTRY glutForceJoystickFunc(void); + +/* GLUT game mode sub-API. */ +/* glutGameModeGet. */ +#define GLUT_GAME_MODE_ACTIVE 0 +#define GLUT_GAME_MODE_POSSIBLE 1 +#define GLUT_GAME_MODE_WIDTH 2 +#define GLUT_GAME_MODE_HEIGHT 3 +#define GLUT_GAME_MODE_PIXEL_DEPTH 4 +#define GLUT_GAME_MODE_REFRESH_RATE 5 +#define GLUT_GAME_MODE_DISPLAY_CHANGED 6 + +extern void APIENTRY glutGameModeString(const char *string); +extern int APIENTRY glutEnterGameMode(void); +extern void APIENTRY glutLeaveGameMode(void); +extern int APIENTRY glutGameModeGet(GLenum mode); +#endif + +#ifdef __cplusplus +} + +#endif + +#ifdef GLUT_APIENTRY_DEFINED +# undef GLUT_APIENTRY_DEFINED +# undef APIENTRY +#endif + +#ifdef GLUT_WINGDIAPI_DEFINED +# undef GLUT_WINGDIAPI_DEFINED +# undef WINGDIAPI +#endif + +#endif /* __glut_h__ */ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutbitmap.h b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutbitmap.h new file mode 100755 index 0000000..e29a016 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutbitmap.h @@ -0,0 +1,30 @@ +#ifndef __glutbitmap_h__ +#define __glutbitmap_h__ + +/* Copyright (c) Mark J. Kilgard, 1994. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#include "glut.h" + +typedef struct { + const GLsizei width; + const GLsizei height; + const GLfloat xorig; + const GLfloat yorig; + const GLfloat advance; + const GLubyte *bitmap; +} BitmapCharRec, *BitmapCharPtr; + +typedef struct { + const char *name; + const int num_chars; + const int first; + const BitmapCharRec * const *ch; +} BitmapFontRec, *BitmapFontPtr; + +typedef void *GLUTbitmapFont; + +#endif /* __glutbitmap_h__ */ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutf90.h b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutf90.h new file mode 100755 index 0000000..f8a170b --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutf90.h @@ -0,0 +1,90 @@ +#ifndef __glutf90_h__ +#define __glutf90_h__ + +/* Copyright (c) Mark J. Kilgard & Willam F. Mitchell, 1998. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +/* This header provides the binding interface for William Mitchell's + f90gl Fortran 90 GLUT binding. Other GLUT language bindings + can and should use this interace. */ + +/* I appreciate the guidance from William Mitchell + (mitchell@cam.nist.gov) in developing this friend interface + for use by the f90gl package. See ../../README.fortran */ + +#include + +#ifndef GLUTCALLBACK + #define GLUTCALLBACK +#endif +#ifndef APIENTRY + #define APIENTRY +#endif + +/* Which callback enumerants for the __glutSetFCB/__glutGetFCB routines. */ +/* NOTE These values are part of a binary interface for the f90gl Fortran + 90 binding and so must NOT changes (additions are allowed). */ + +/* GLUTwindow callbacks. */ +#define GLUT_FCB_DISPLAY 0 /* GLUTdisplayFCB */ +#define GLUT_FCB_RESHAPE 1 /* GLUTreshapeFCB */ +#define GLUT_FCB_MOUSE 2 /* GLUTmouseFCB */ +#define GLUT_FCB_MOTION 3 /* GLUTmotionFCB */ +#define GLUT_FCB_PASSIVE 4 /* GLUTpassiveFCB */ +#define GLUT_FCB_ENTRY 5 /* GLUTentryFCB */ +#define GLUT_FCB_KEYBOARD 6 /* GLUTkeyboardFCB */ +#define GLUT_FCB_KEYBOARD_UP 7 /* GLUTkeyboardFCB */ +#define GLUT_FCB_WINDOW_STATUS 8 /* GLUTwindowStatusFCB */ +#define GLUT_FCB_VISIBILITY 9 /* GLUTvisibilityFCB */ +#define GLUT_FCB_SPECIAL 10 /* GLUTspecialFCB */ +#define GLUT_FCB_SPECIAL_UP 11 /* GLUTspecialFCB */ +#define GLUT_FCB_BUTTON_BOX 12 /* GLUTbuttonBoxFCB */ +#define GLUT_FCB_DIALS 13 /* GLUTdialsFCB */ +#define GLUT_FCB_SPACE_MOTION 14 /* GLUTspaceMotionFCB */ +#define GLUT_FCB_SPACE_ROTATE 15 /* GLUTspaceRotateFCB */ +#define GLUT_FCB_SPACE_BUTTON 16 /* GLUTspaceButtonFCB */ +#define GLUT_FCB_TABLET_MOTION 17 /* GLUTtabletMotionFCB */ +#define GLUT_FCB_TABLET_BUTTON 18 /* GLUTtabletButtonFCB */ +#define GLUT_FCB_JOYSTICK 19 /* GLUTjoystickFCB */ +#define GLUT_FCB_WMCLOSE 20 /* GLUTwmcloseFCB */ +/* Non-GLUTwindow callbacks. */ +#define GLUT_FCB_OVERLAY_DISPLAY 100 /* GLUTdisplayFCB */ +#define GLUT_FCB_SELECT 101 /* GLUTselectFCB */ +#define GLUT_FCB_TIMER 102 /* GLUTtimerFCB */ + +/* GLUT Fortran callback function types. */ +typedef void (GLUTCALLBACK *GLUTdisplayFCB) (void); +typedef void (GLUTCALLBACK *GLUTwmcloseFCB) (void); +typedef void (GLUTCALLBACK *GLUTreshapeFCB) (int *, int *); +/* NOTE the pressed key is int, not unsigned char for Fortran! */ +typedef void (GLUTCALLBACK *GLUTkeyboardFCB) (int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTmouseFCB) (int *, int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTmotionFCB) (int *, int *); +typedef void (GLUTCALLBACK *GLUTpassiveFCB) (int *, int *); +typedef void (GLUTCALLBACK *GLUTentryFCB) (int *); +typedef void (GLUTCALLBACK *GLUTwindowStatusFCB) (int *); +typedef void (GLUTCALLBACK *GLUTvisibilityFCB) (int *); +typedef void (GLUTCALLBACK *GLUTspecialFCB) (int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTbuttonBoxFCB) (int *, int *); +typedef void (GLUTCALLBACK *GLUTdialsFCB) (int *, int *); +typedef void (GLUTCALLBACK *GLUTspaceMotionFCB) (int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTspaceRotateFCB) (int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTspaceButtonFCB) (int *, int *); +typedef void (GLUTCALLBACK *GLUTtabletMotionFCB) (int *, int *); +typedef void (GLUTCALLBACK *GLUTtabletButtonFCB) (int *, int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTjoystickFCB) (unsigned int *buttonMask, int *x, int *y, int *z); + +typedef void (GLUTCALLBACK *GLUTselectFCB) (int *); +typedef void (GLUTCALLBACK *GLUTtimerFCB) (int *); +typedef void (GLUTCALLBACK *GLUTmenuStateFCB) (int *); /* DEPRICATED. */ +typedef void (GLUTCALLBACK *GLUTmenuStatusFCB) (int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTidleFCB) (void); + +/* Functions that set and return Fortran callback functions. */ +extern void* APIENTRY __glutGetFCB(int which); +extern void APIENTRY __glutSetFCB(int which, void *func); + +#endif /* __glutf90_h__ */ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutstroke.h b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutstroke.h new file mode 100755 index 0000000..cbc9e15 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutstroke.h @@ -0,0 +1,42 @@ +#ifndef __glutstroke_h__ +#define __glutstroke_h__ + +/* Copyright (c) Mark J. Kilgard, 1994. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#if defined(_WIN32) +#pragma warning (disable:4244) /* disable bogus conversion warnings */ +#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ +#endif + +typedef struct { + float x; + float y; +} CoordRec, *CoordPtr; + +typedef struct { + int num_coords; + const CoordRec *coord; +} StrokeRec, *StrokePtr; + +typedef struct { + int num_strokes; + const StrokeRec *stroke; + float center; + float right; +} StrokeCharRec, *StrokeCharPtr; + +typedef struct { + const char *name; + int num_chars; + const StrokeCharRec *ch; + float top; + float bottom; +} StrokeFontRec, *StrokeFontPtr; + +typedef void *GLUTstrokeFont; + +#endif /* __glutstroke_h__ */ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/gutil.h b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/gutil.h new file mode 100755 index 0000000..f7ffcf3 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/gutil.h @@ -0,0 +1,89 @@ + +/* + * gutil.h + * + * FUNCTION: + * Provide utilities that allow rotation to occur + * around any axis. + * + * HISTORY: + * created by Linas Vepstas 1990 + * added single & double precision, June 1991, Linas Vepstas + */ + +#ifndef __GUTIL_H__ +#define __GUTIL_H__ + +#ifdef __GUTIL_DOUBLE +#define gutDouble double +#else +#define gutDouble float +#endif + + +#ifdef _NO_PROTO /* NO ANSI C PROTOTYPING */ + +/* Rotation Utilities */ +extern void rot_axis_f (); +extern void rot_about_axis_f (); +extern void rot_omega_f (); +extern void urot_axis_f (); +extern void urot_about_axis_f (); +extern void urot_omega_f (); + +/* double-precision versions */ +extern void rot_axis_d (); +extern void rot_about_axis_d (); +extern void rot_omega_d (); +extern void urot_axis_d (); +extern void urot_about_axis_d (); +extern void urot_omega_d (); + +/* viewpoint functions */ +extern void uview_direction_d (); +extern void uview_direction_f (); +extern void uviewpoint_d (); +extern void uviewpoint_f (); + +#else /* _NO_PROTO */ /* ANSI C PROTOTYPING */ + +/* Rotation Utilities */ +extern void rot_axis_f (float omega, float axis[3]); +extern void rot_about_axis_f (float angle, float axis[3]); +extern void rot_omega_f (float axis[3]); +extern void urot_axis_f (float m[4][4], float omega, float axis[3]); +extern void urot_about_axis_f (float m[4][4], float angle, float axis[3]); +extern void urot_omega_f (float m[4][4], float axis[3]); + +/* double-precision versions */ +extern void rot_axis_d (double omega, double axis[3]); +extern void rot_about_axis_d (double angle, double axis[3]); +extern void rot_omega_d (double axis[3]); +extern void urot_axis_d (double m[4][4], double omega, double axis[3]); +extern void urot_about_axis_d (double m[4][4], double angle, double axis[3]); +extern void urot_omega_d (double m[4][4], double axis[3]); + +/* viewpoint functions */ +extern void uview_direction_d (double m[4][4], /* returned */ + double v21[3], /* input */ + double up[3]); /* input */ + +extern void uview_direction_f (float m[4][4], /* returned */ + float v21[3], /* input */ + float up[3]); /* input */ + +extern void uviewpoint_d (double m[4][4], /* returned */ + double v1[3], /* input */ + double v2[3], /* input */ + double up[3]); /* input */ + +extern void uviewpoint_f (float m[4][4], /* returned */ + float v1[3], /* input */ + float v2[3], /* input */ + float up[3]); /* input */ + +#endif /* _NO_PROTO */ + +#endif /* _GUTIL_H__ */ + +/* ------------------- end of file ---------------------- */ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/intersect.h b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/intersect.h new file mode 100755 index 0000000..f5ff7a5 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/intersect.h @@ -0,0 +1,391 @@ +/* + * FUNCTION: + * This file contains a number of utilities useful to 3D graphics in + * general, and to the generation of tubing and extrusions in particular + * + * HISTORY: + * Written by Linas Vepstas, August 1991 + * Updated to correctly handle degenerate cases, Linas, February 1993 + */ + +#include +#include "port.h" +#include "vvector.h" + +#define BACKWARDS_INTERSECT (2) + +/* ========================================================== */ +/* + * the Degenerate_Tolerance token represents the greatest amount by + * which different scales in a graphics environment can differ before + * they should be considered "degenerate". That is, when one vector is + * a million times longer than another, changces are that the second will + * be less than a pixel int, and therefore was probably meant to be + * degenerate (by the CAD package, etc.) But what should this tolerance + * be? At least 1 in onethousand (since screen sizes are 1K pixels), but + * les than 1 in 4 million (since this is the limit of single-precision + * floating point accuracy). Of course, if double precision were used, + * then the tolerance could be increased. + * + * Potentially, this naive assumption could cause problems if the CAD + * package attempts to zoom in on small details, and turns out, certain + * points should not hvae been degenerate. The problem presented here + * is that the tolerance could run out before single-precision ran + * out, and so the CAD packages would perceive this as a "bug". + * One alternative is to fiddle around & try to tighten the tolerance. + * However, the right alternative is to code the graphics pipeline in + * double-precision (and tighten the tolerance). + * + * By the way, note that Degernate Tolerance is a "dimensionless" + * quantitiy -- it has no units -- it does not measure feet, inches, + * millimeters or pixels. It is used only in the computations of ratios + * and relative lengths. + */ + +/* + * Right now, the tolerance is set to 2 parts in a million, which + * corresponds to a 19-bit distinction of mantissas. Note that + * single-precsion numbers have 24 bit mantissas. + */ + +#define DEGENERATE_TOLERANCE (0.000002) + +/* ========================================================== */ +/* + * The macro and subroutine INTERSECT are designed to compute the + * intersection of a line (defined by the points v1 and v2) and a plane + * (defined as plane which is normal to the vector n, and contains the + * point p). Both return the point sect, which is the point of + * interesection. + * + * This MACRO attemps to be fairly robust by checking for a divide by + * zero. + */ + +/* ========================================================== */ +/* + * HACK ALERT + * The intersection parameter t has the nice property that if t>1, + * then the intersection is "in front of" p1, and if t<0, then the + * intersection is "behind" p2. Unfortunately, as the intersecting plane + * and the line become parallel, t wraps through infinity -- i.e. t can + * become so large that t becomes "greater than infinity" and comes back + * as a negative number (i.e. winding number hopped by one unit). We + * have no way of detecting this situation without adding gazzillions + * of lines of code of topological algebra to detect the winding number; + * and this would be incredibly difficult, and ruin performance. + * + * Thus, we've installed a cheap hack for use by the "cut style" drawing + * routines. If t proves to be a large negative number (more negative + * than -5), then we assume that t was positive and wound through + * infinity. This makes most cuts look good, without introducing bogus + * cuts at infinity. + */ +/* ========================================================== */ + +#define INTERSECT(sect,p,n,v1,v2) \ +{ \ + gleDouble deno, numer, t, omt; \ + \ + deno = (v1[0] - v2[0]) * n[0]; \ + deno += (v1[1] - v2[1]) * n[1]; \ + deno += (v1[2] - v2[2]) * n[2]; \ + \ + if (deno == 0.0) { \ + VEC_COPY (n, v1); \ + /* printf ("Intersect: Warning: line is coplanar with plane \n"); */ \ + } else { \ + \ + numer = (p[0] - v2[0]) * n[0]; \ + numer += (p[1] - v2[1]) * n[1]; \ + numer += (p[2] - v2[2]) * n[2]; \ + \ + t = numer / deno; \ + omt = 1.0 - t; \ + \ + sect[0] = t * v1[0] + omt * v2[0]; \ + sect[1] = t * v1[1] + omt * v2[1]; \ + sect[2] = t * v1[2] + omt * v2[2]; \ + } \ +} + +/* ========================================================== */ +/* + * The macro and subroutine BISECTING_PLANE compute a normal vector that + * describes the bisecting plane between three points (v1, v2 and v3). + * This bisecting plane has the following properties: + * 1) it contains the point v2 + * 2) the angle it makes with v21 == v2 - v1 is equal to the angle it + * makes with v32 == v3 - v2 + * 3) it is perpendicular to the plane defined by v1, v2, v3. + * + * Having input v1, v2, and v3, it returns a unit vector n. + * + * In some cases, the user may specify degenerate points, and still + * expect "reasonable" or "obvious" behaviour. The "expected" + * behaviour for these degenerate cases is: + * + * 1) if v1 == v2 == v3, then return n=0 + * 2) if v1 == v2, then return v32 (normalized). + * 3) if v2 == v3, then return v21 (normalized). + * 4) if v1, v2 and v3 co-linear, then return v21 (normalized). + * + * Mathematically, these special cases "make sense" -- we just have to + * code around potential divide-by-zero's in the code below. + */ + +/* ========================================================== */ + +#define BISECTING_PLANE(valid,n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + double len21, len32; \ + double vdot; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_LENGTH (len21, v21); \ + VEC_LENGTH (len32, v32); \ + \ + if (len21 <= DEGENERATE_TOLERANCE * len32) { \ + \ + if (len32 == 0.0) { \ + /* all three points lie ontop of one-another */ \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + /* return a normalized copy of v32 as bisector */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (n, len32, v32); \ + valid = TRUE; \ + } \ + \ + } else { \ + \ + valid = TRUE; \ + \ + if (len32 <= DEGENERATE_TOLERANCE * len21) { \ + /* return a normalized copy of v21 as bisector */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (n, len21, v21); \ + \ + } else { \ + \ + /* normalize v21 to be of unit length */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (v21, len21, v21); \ + \ + /* normalize v32 to be of unit length */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (v32, len32, v32); \ + \ + VEC_DOT_PRODUCT (vdot, v32, v21); \ + \ + /* if vdot == 1 or -1, then points are colinear */ \ + if ((vdot >= (1.0-DEGENERATE_TOLERANCE)) || \ + (vdot <= (-1.0+DEGENERATE_TOLERANCE))) { \ + VEC_COPY (n, v21); \ + } else { \ + \ + /* go do the full computation */ \ + n[0] = vdot * (v32[0] + v21[0]) - v32[0] - v21[0]; \ + n[1] = vdot * (v32[1] + v21[1]) - v32[1] - v21[1]; \ + n[2] = vdot * (v32[2] + v21[2]) - v32[2] - v21[2]; \ + \ + /* if above if-test's passed, \ + * n should NEVER be of zero length */ \ + VEC_NORMALIZE (n); \ + } \ + } \ + } \ +} + +/* ========================================================== */ +/* + * The block of code below is ifdef'd out, and is here for reference + * purposes only. It performs the "mathematically right thing" for + * computing a bisecting plane, but is, unfortunately, subject ot noise + * in the presence of near degenerate points. Since computer graphics, + * due to sloppy coding, laziness, or correctness, is filled with + * degenerate points, we can't really use this version. The code above + * is far more appropriate for graphics. + */ + +#ifdef MATHEMATICALLY_EXACT_GRAPHICALLY_A_KILLER +#define BISECTING_PLANE(n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + double len21, len32; \ + double vdot; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_LENGTH (len21, v21); \ + VEC_LENGTH (len32, v32); \ + \ + if (len21 == 0.0) { \ + \ + if (len32 == 0.0) { \ + /* all three points lie ontop of one-another */ \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + /* return a normalized copy of v32 as bisector */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (n, len32, v32); \ + } \ + \ + } else { \ + \ + /* normalize v21 to be of unit length */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (v21, len21, v21); \ + \ + if (len32 == 0.0) { \ + /* return a normalized copy of v21 as bisector */ \ + VEC_COPY (n, v21); \ + } else { \ + \ + /* normalize v32 to be of unit length */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (v32, len32, v32); \ + \ + VEC_DOT_PRODUCT (vdot, v32, v21); \ + \ + /* if vdot == 1 or -1, then points are colinear */ \ + if ((vdot == 1.0) || (vdot == -1.0)) { \ + VEC_COPY (n, v21); \ + } else { \ + \ + /* go do the full computation */ \ + n[0] = vdot * (v32[0] + v21[0]) - v32[0] - v21[0]; \ + n[1] = vdot * (v32[1] + v21[1]) - v32[1] - v21[1]; \ + n[2] = vdot * (v32[2] + v21[2]) - v32[2] - v21[2]; \ + \ + /* if above if-test's passed, \ + * n should NEVER be of zero length */ \ + VEC_NORMALIZE (n); \ + } \ + } \ + } \ +} +#endif + +/* ========================================================== */ +/* + * This macro computes the plane perpendicular to the the plane + * defined by three points, and whose normal vector is givven as the + * difference between the two vectors ... + * + * (See way below for the "math" model if you want to understand this. + * The comments about relative errors above apply here.) + */ + +#define CUTTING_PLANE(valid,n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + double len21, len32; \ + double lendiff; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_LENGTH (len21, v21); \ + VEC_LENGTH (len32, v32); \ + \ + if (len21 <= DEGENERATE_TOLERANCE * len32) { \ + \ + if (len32 == 0.0) { \ + /* all three points lie ontop of one-another */ \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + /* return a normalized copy of v32 as cut-vector */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (n, len32, v32); \ + valid = TRUE; \ + } \ + \ + } else { \ + \ + valid = TRUE; \ + \ + if (len32 <= DEGENERATE_TOLERANCE * len21) { \ + /* return a normalized copy of v21 as cut vector */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (n, len21, v21); \ + } else { \ + \ + /* normalize v21 to be of unit length */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (v21, len21, v21); \ + \ + /* normalize v32 to be of unit length */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (v32, len32, v32); \ + \ + VEC_DIFF (n, v21, v32); \ + VEC_LENGTH (lendiff, n); \ + \ + /* if the perp vector is very small, then the two \ + * vectors are darn near collinear, and the cut \ + * vector is probably poorly defined. */ \ + if (lendiff < DEGENERATE_TOLERANCE) { \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + lendiff = 1.0 / lendiff; \ + VEC_SCALE (n, lendiff, n); \ + } \ + } \ + } \ +} + +/* ========================================================== */ + +#ifdef MATHEMATICALLY_EXACT_GRAPHICALLY_A_KILLER +#define CUTTING_PLANE(n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_NORMALIZE (v21); \ + VEC_NORMALIZE (v32); \ + \ + VEC_DIFF (n, v21, v32); \ + VEC_NORMALIZE (n); \ +} +#endif + + +/* ============================================================ */ +/* This macro is used in several places to cycle through a series of + * points to find the next non-degenerate point in a series */ + +#define FIND_NON_DEGENERATE_POINT(inext,npoints,len,diff,point_array) \ +{ \ + gleDouble slen; \ + gleDouble summa[3]; \ + \ + do { \ + /* get distance to next point */ \ + VEC_DIFF (diff, point_array[inext+1], point_array[inext]); \ + VEC_LENGTH (len, diff); \ + VEC_SUM (summa, point_array[inext+1], point_array[inext]); \ + VEC_LENGTH (slen, summa); \ + slen *= DEGENERATE_TOLERANCE; \ + inext ++; \ + } while ((len <= slen) && (inext < npoints-1)); \ +} + +/* ========================================================== */ + +extern int bisecting_plane (gleDouble n[3], /* returned */ + gleDouble v1[3], /* input */ + gleDouble v2[3], /* input */ + gleDouble v3[3]); /* input */ + diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/port.h b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/port.h new file mode 100755 index 0000000..2827bbf --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/port.h @@ -0,0 +1,298 @@ + +/* + * port.h + * + * FUNCTION: + * This file contains defines for porting the tubing toolkit from GL to + * OpenGL to some callback scheme. + * + * HISTORY: + * Created by Linas Vepstas -- February 1993 + * Added auto texture coord generation hacks, Linas April 1994 + */ + +#ifndef __GLE_PORT_H__ +#define __GLE_PORT_H__ + + +#ifndef TRUE +#define TRUE 1 +#endif + +#ifndef FALSE +#define FALSE 0 +#endif + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +/* ====================================================== */ +/* Some compilers can't handle multiply-subscripted array's */ + +#ifdef FUNKY_C +typedef gleDouble gleVector; +#define AVAL(arr,n,i,j) arr(6*n+3*i+j) +#define VVAL(arr,n,i) arr(3*n+i) + +#else /* FUNKY_C */ +typedef double gleVector[3]; +typedef double glePoint[2]; +#define AVAL(arr,n,i,j) arr[n][i][j] +#define VVAL(arr,n,i) arr[n][i]; + +#endif /* FUNKY_C */ + +/* ====================================================== */ +/* These are used to convey info about topography to the + * texture mapping routines */ + +#define FRONT 1 +#define BACK 2 +#define FRONT_CAP 3 +#define BACK_CAP 4 +#define FILLET 5 + +/* ====================================================== */ + +#define __GLE_DOUBLE + +/* ====================================================== */ + +#ifdef __GLE_DOUBLE +#ifndef gleDouble + #define gleDouble double +#endif +#define urot_axis(a,b,c) urot_axis_d(a,b,c) +#define uview_direction(a,b,c) uview_direction_d(a,b,c) +#define uviewpoint(a,b,c,d) uviewpoint_d(a,b,c,d) +#define MULTMATRIX(m) MULTMATRIX_D(m) +#define LOADMATRIX(m) LOADMATRIX_D(m) +#define V3F(x,j,id) V3F_D(x,j,id) +#define N3F(x) N3F_D(x) +#define T2F(x,y) T2F_D(x,y) +#else +#define gleDouble float +#define urot_axis(a,b,c) urot_axis_f(a,b,c) +#define uview_direction(a,b,c) uview_direction_f(a,b,c) +#define uviewpoint(a,b,c,d) uviewpoint_f(a,b,c,d) +#define MULTMATRIX(m) MULTMATRIX_F(m) +#define LOADMATRIX(m) LOADMATRIX_F(m) +#define V3F(x,j,id) V3F_F(x,j,id) +#define N3F(x) N3F_F(x) +#define T2F(x,y) T2F_F(x,y) +#endif + +/* ====================================================== */ + +#if (defined DEBUG_GL_32 || DEBUG_OPENGL_10) +#undef GL_32 +#undef OPENGL_10 + +#define BGNTMESH(i,len) printf ("bgntmesh() \n"); +#define ENDTMESH() printf ("endtmesh() \n"); +#define BGNPOLYGON() printf ("bgnpolygon() \n"); +#define ENDPOLYGON() printf ("endpolygon() \n"); +#define V3F_F(x,j,id) printf ("v3f(x) %f %f %f \n", x[0], x[1], x[2]); +#define V3F_D(x,j,id) printf ("v3d(x) %f %f %f \n", x[0], x[1], x[2]); +#define N3F_F(x) printf ("n3f(x) %f %f %f \n", x[0], x[1], x[2]); +#define N3F_D(x) printf ("n3d(x) %f %f %f \n", x[0], x[1], x[2]); +#define C3F(x) printf ("c3f(x) %f %f %f \n", x[0], x[1], x[2]); + +#define POPMATRIX() printf ("popmatrix () \n"); +#define PUSHMATRIX() printf ("pushmatrix() \n"); +#define MULTMATRIX_F(x) MULTMATRIX_D(x) +#define LOADMATRIX_F(x) LOADMATRIX_D(x) + + +#define LOADMATRIX_D(x) { \ + int i, j; \ + printf ("loadmatrix (x) \n"); \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + printf ( "%f ", x[i][j]); \ + } \ + printf (" \n"); \ + } \ +} + +#define MULTMATRIX_D(x) { \ + int i, j; \ + printf ("multmatrix (x) \n"); \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + printf ( "%f ", x[i][j]); \ + } \ + printf (" \n"); \ + } \ +} + +#define __IS_LIGHTING_ON (1) + +#endif + +/* ====================================================== */ + +#ifdef GL_32 + +#include + +#define BGNTMESH(i,len) bgntmesh() +#define ENDTMESH() endtmesh() +#define BGNPOLYGON() bgnpolygon() +#define ENDPOLYGON() endpolygon() +#define V3F_F(x,j,id) v3f(x) +#define V3F_D(x,j,id) v3d(x) +#define N3F_F(x) n3f(x) +#define T2F_F(x,y) +#define T2F_D(x,y) +#define C3F(x) c3f(x) + +#define POPMATRIX() popmatrix () +#define PUSHMATRIX() pushmatrix() +#define MULTMATRIX_F(x) multmatrix (x) +#define LOADMATRIX_F(x) loadmatrix (x) + +#define N3F_D(x) { \ + float nnn[3]; \ + nnn[0] = (float) x[0]; \ + nnn[1] = (float) x[1]; \ + nnn[2] = (float) x[2]; \ + n3f (nnn); \ +} + +#define LOADMATRIX_D(x) { \ + int i, j; \ + float mmm[4][4]; \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + mmm[i][j] = (float) x[i][j]; \ + } \ + } \ + loadmatrix(mmm); \ +} + +#define MULTMATRIX_D(x) { \ + int i, j; \ + float mmm[4][4]; \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + mmm[i][j] = (float) x[i][j]; \ + } \ + } \ + multmatrix(mmm); \ +} + +/* #define __IS_LIGHTING_ON (MSINGLE == getmmode()) */ +#define __IS_LIGHTING_ON (extrusion_join_style & TUBE_LIGHTING_ON) + +#endif /* GL_32 */ + +/* ====================================================== */ +#ifdef OPENGL_10 + +#if defined(_WIN32) +#include +#pragma warning (disable:4244) /* disable bogus conversion warnings */ +#endif +#include +#include + +/* +#define N3F_F(x) { \ + float nnn[3]; \ + nnn[0] = - (float) x[0]; \ + nnn[1] = - (float) x[1]; \ + nnn[2] = - (float) x[2]; \ + glNormal3fv (nnn); \ +} +#define N3F_D(x) { \ + float nnn[3]; \ + nnn[0] = - (float) x[0]; \ + nnn[1] = - (float) x[1]; \ + nnn[2] = - (float) x[2]; \ + glNormal3fv (nnn); \ +} +*/ + +#define C3F(x) glColor3fv(x) +#define T2F_F(x,y) glTexCoord2f(x,y) +#define T2F_D(x,y) glTexCoord2d(x,y) + +#define POPMATRIX() glPopMatrix() +#define PUSHMATRIX() glPushMatrix() + +#define MULTMATRIX_F(x) glMultMatrixf ((const GLfloat *)x) +#define LOADMATRIX_F(x) glLoadMatrixf ((const GLfloat *)x) + +#define MULTMATRIX_D(x) glMultMatrixd ((const GLdouble *)x) +#define LOADMATRIX_D(x) glLoadMatrixd ((const GLdouble *)x) + +#define __IS_LIGHTING_ON (glIsEnabled(GL_LIGHTING)) + +/* ====================================================== */ +#ifdef AUTO_TEXTURE + +#define BGNTMESH(i,len) { \ + if(_gle_gc -> bgn_gen_texture) (*(_gle_gc -> bgn_gen_texture))(i,len);\ + glBegin (GL_TRIANGLE_STRIP); \ +} + +#define BGNPOLYGON() { \ + if(_gle_gc -> bgn_gen_texture) (*(_gle_gc -> bgn_gen_texture))();\ + glBegin (GL_POLYGON); \ +} + +#define N3F_F(x) { \ + if(_gle_gc -> n3f_gen_texture) (*(_gle_gc -> n3f_gen_texture))(x); \ + glNormal3fv(x); \ +} + +#define N3F_D(x) { \ + if(_gle_gc -> n3d_gen_texture) (*(_gle_gc -> n3d_gen_texture))(x); \ + glNormal3dv(x); \ +} + +#define V3F_F(x,j,id) { \ + if(_gle_gc -> v3f_gen_texture) (*(_gle_gc -> v3f_gen_texture))(x,j,id);\ + glVertex3fv(x); \ +} + +#define V3F_D(x,j,id) { \ + if(_gle_gc -> v3d_gen_texture) (*(_gle_gc -> v3d_gen_texture))(x,j,id); \ + glVertex3dv(x); \ +} + +#define ENDTMESH() { \ + if(_gle_gc -> end_gen_texture) (*(_gle_gc -> end_gen_texture))(); \ + glEnd (); \ +} + +#define ENDPOLYGON() { \ + if(_gle_gc -> end_gen_texture) (*(_gle_gc -> end_gen_texture))(); \ + glEnd (); \ +} + +/* ====================================================== */ +#else /* AUTO_TEXTURE */ + +#define BGNTMESH(i,len) glBegin (GL_TRIANGLE_STRIP); +#define BGNPOLYGON() glBegin (GL_POLYGON); + +#define N3F_F(x) glNormal3fv(x) +#define N3F_D(x) glNormal3dv(x) +#define V3F_F(x,j,id) glVertex3fv(x); +#define V3F_D(x,j,id) glVertex3dv(x); + +#define ENDTMESH() glEnd () +#define ENDPOLYGON() glEnd() + +#endif /* AUTO_TEXTURE */ + +#endif /* OPENGL_10 */ + +/* ====================================================== */ + + +#endif /* __GLE_PORT_H__ */ +/* ================== END OF FILE ======================= */ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/rot.h b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/rot.h new file mode 100755 index 0000000..91083e9 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/rot.h @@ -0,0 +1,98 @@ + +/* + * rot.h + * + * FUNCTION: + * rotation matrix utilities + * + * HISTORY: + * Linas Vepstas Aug 1990 + */ + +/* ========================================================== */ +/* + * The MACROS below generate and return more traditional rotation + * matrices -- matrices for rotations about principal axes. + */ +/* ========================================================== */ + +#define ROTX_CS(m,cosine,sine) \ +{ \ + /* rotation about the x-axis */ \ + \ + m[0][0] = 1.0; \ + m[0][1] = 0.0; \ + m[0][2] = 0.0; \ + m[0][3] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = (cosine); \ + m[1][2] = (sine); \ + m[1][3] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = -(sine); \ + m[2][2] = (cosine); \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ + +#define ROTY_CS(m,cosine,sine) \ +{ \ + /* rotation about the y-axis */ \ + \ + m[0][0] = (cosine); \ + m[0][1] = 0.0; \ + m[0][2] = -(sine); \ + m[0][3] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = 1.0; \ + m[1][2] = 0.0; \ + m[1][3] = 0.0; \ + \ + m[2][0] = (sine); \ + m[2][1] = 0.0; \ + m[2][2] = (cosine); \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ + +#define ROTZ_CS(m,cosine,sine) \ +{ \ + /* rotation about the z-axis */ \ + \ + m[0][0] = (cosine); \ + m[0][1] = (sine); \ + m[0][2] = 0.0; \ + m[0][3] = 0.0; \ + \ + m[1][0] = -(sine); \ + m[1][1] = (cosine); \ + m[1][2] = 0.0; \ + m[1][3] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = 0.0; \ + m[2][2] = 1.0; \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/segment.h b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/segment.h new file mode 100755 index 0000000..8d1cf04 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/segment.h @@ -0,0 +1,98 @@ + +/* + * MODULE: segment.h + * + * FUNCTION: + * Contains function prototypes for segment drawing subroutines. + * These are used only internally, and are not to be exported to + * the user. + * + * HISTORY: + * Create by Linas Vepstas + * Added tube.h include to define gleDouble, tad February 2002 + */ + +/* ============================================================ */ + +#include "tube.h" + +extern void draw_segment_plain (int ncp, /* number of contour points */ + gleDouble front_contour[][3], + gleDouble back_contour[][3], + int inext, double len); + +extern void draw_segment_color (int ncp, /* number of contour points */ + gleDouble front_contour[][3], + gleDouble back_contour[][3], + float color_last[3], + float color_next[3], + int inext, double len); + +extern void draw_segment_edge_n (int ncp, /* number of contour points */ + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + int inext, double len); + +extern void draw_segment_c_and_edge_n (int ncp, + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + float color_last[3], + float color_next[3], + int inext, double len); + +extern void draw_segment_facet_n (int ncp, + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + int inext, double len); + +extern void draw_segment_c_and_facet_n (int ncp, + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + float color_last[3], + float color_next[3], + int inext, double len); + +/* ============================================================ */ + +extern void draw_binorm_segment_edge_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + int inext, double len); + +extern void draw_binorm_segment_c_and_edge_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + float color_last[3], + float color_next[3], + int inext, double len); + +extern void draw_binorm_segment_facet_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + int inext, double len); + +extern void draw_binorm_segment_c_and_facet_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + float color_last[3], + float color_next[3], + int inext, double len); + +extern void draw_angle_style_back_cap (int ncp, /* number of contour points */ + gleDouble bi[3], /* biscetor */ + gleDouble point_array[][3]); /* polyline */ + +/* -------------------------- end of file -------------------------------- */ + diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube.h b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube.h new file mode 100755 index 0000000..c303e19 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube.h @@ -0,0 +1,203 @@ +/* + * tube.h + * + * FUNCTION: + * Tubing and Extrusion header file. + * This file provides protypes and defines for the extrusion + * and tubing primitives. + * + * HISTORY: + * Linas Vepstas 1990, 1991 + */ + +#ifndef __TUBE_H__ +#define __TUBE_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + GLE API revision history: + + GLE_API_VERSION is updated to reflect GLE API changes (interface + changes, semantic changes, deletions, or additions). + + GLE_API_VERSION=228 GLUT 3.7 release of GLE. +**/ +#ifndef GLE_API_VERSION /* allow this to be overriden */ +#define GLE_API_VERSION 228 +#endif + +/* some types */ +#ifndef gleDouble + #define gleDouble double +#endif +typedef gleDouble gleAffine[2][3]; + +/* ====================================================== */ + +/* defines for tubing join styles */ +#define TUBE_JN_RAW 0x1 +#define TUBE_JN_ANGLE 0x2 +#define TUBE_JN_CUT 0x3 +#define TUBE_JN_ROUND 0x4 +#define TUBE_JN_MASK 0xf /* mask bits */ +#define TUBE_JN_CAP 0x10 + +/* determine how normal vectors are to be handled */ +#define TUBE_NORM_FACET 0x100 +#define TUBE_NORM_EDGE 0x200 +#define TUBE_NORM_PATH_EDGE 0x400 /* for spiral, lathe, helix primitives */ +#define TUBE_NORM_MASK 0xf00 /* mask bits */ + +/* closed or open countours */ +#define TUBE_CONTOUR_CLOSED 0x1000 + +#define GLE_TEXTURE_ENABLE 0x10000 +#define GLE_TEXTURE_STYLE_MASK 0xff +#define GLE_TEXTURE_VERTEX_FLAT 1 +#define GLE_TEXTURE_NORMAL_FLAT 2 +#define GLE_TEXTURE_VERTEX_CYL 3 +#define GLE_TEXTURE_NORMAL_CYL 4 +#define GLE_TEXTURE_VERTEX_SPH 5 +#define GLE_TEXTURE_NORMAL_SPH 6 +#define GLE_TEXTURE_VERTEX_MODEL_FLAT 7 +#define GLE_TEXTURE_NORMAL_MODEL_FLAT 8 +#define GLE_TEXTURE_VERTEX_MODEL_CYL 9 +#define GLE_TEXTURE_NORMAL_MODEL_CYL 10 +#define GLE_TEXTURE_VERTEX_MODEL_SPH 11 +#define GLE_TEXTURE_NORMAL_MODEL_SPH 12 + +#ifdef GL_32 +/* HACK for GL 3.2 -- needed because no way to tell if lighting is on. */ +#define TUBE_LIGHTING_ON 0x80000000 + +#define gleExtrusion extrusion +#define gleSetJoinStyle setjoinstyle +#define gleGetJoinStyle getjoinstyle +#define glePolyCone polycone +#define glePolyCylinder polycylinder +#define gleSuperExtrusion super_extrusion +#define gleTwistExtrusion twist_extrusion +#define gleSpiral spiral +#define gleLathe lathe +#define gleHelicoid helicoid +#define gleToroid toroid +#define gleScrew screw + +#endif /* GL_32 */ + +extern int gleGetJoinStyle (void); +extern void gleSetJoinStyle (int style); /* bitwise OR of flags */ +extern int gleGetNumSlices(void); +extern void gleSetNumSlices(int slices); + +/* draw polyclinder, specified as a polyline */ +extern void glePolyCylinder (int npoints, /* num points in polyline */ + gleDouble point_array[][3], /* polyline vertces */ + float color_array[][3], /* colors at polyline verts */ + gleDouble radius); /* radius of polycylinder */ + +/* draw polycone, specified as a polyline with radii */ +extern void glePolyCone (int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3], /* colors at polyline verts */ + gleDouble radius_array[]); /* cone radii at polyline verts */ + +/* extrude arbitrary 2D contour along arbitrary 3D path */ +extern void gleExtrusion (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3]); /* colors at polyline verts */ + +/* extrude 2D contour, specifying local rotations (twists) */ +extern void gleTwistExtrusion (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3], /* color at polyline verts */ + gleDouble twist_array[]); /* countour twists (in degrees) */ + +/* extrude 2D contour, specifying local affine tranformations */ +extern void gleSuperExtrusion (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3], /* color at polyline verts */ + gleDouble xform_array[][2][3]); /* 2D contour xforms */ + +/* spiral moves contour along helical path by parallel transport */ +extern void gleSpiral (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta); /* degrees to spiral around */ + +/* lathe moves contour along helical path by helically shearing 3D space */ +extern void gleLathe (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta); /* degrees to spiral around */ + +/* similar to spiral, except contour is a circle */ +extern void gleHelicoid (gleDouble rToroid, /* circle contour (torus) radius */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta); /* degrees to spiral around */ + +/* similar to lathe, except contour is a circle */ +extern void gleToroid (gleDouble rToroid, /* circle contour (torus) radius */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta); /* degrees to spiral around */ + +/* draws a screw shape */ +extern void gleScrew (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + gleDouble startz, /* start of segment */ + gleDouble endz, /* end of segment */ + gleDouble twist); /* number of rotations */ + +extern void gleTextureMode (int mode); + +#ifdef __cplusplus +} + +#endif +#endif /* __TUBE_H__ */ +/* ================== END OF FILE ======================= */ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube_gc.h b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube_gc.h new file mode 100755 index 0000000..ccd2853 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube_gc.h @@ -0,0 +1,78 @@ + +/* + * tube_gc.h + * + * FUNCTION: + * This file allows for easy changes to changes in the way the extrusion + * library handles state info (i.e. context). + * + * HISTORY: + * Linas Vepstas --- February 1993 + * Added auto texture coord generation hacks, Linas April 1994 + * Added tube.h include to define gleDouble, tad February 2002 + */ + +#include "tube.h" +#include "port.h" /* for gleVector */ + +typedef float gleColor[3]; +typedef double gleTwoVec[2]; + +typedef struct { + + /* public methods */ + void (*bgn_gen_texture) (int, double); + void (*n3f_gen_texture) (float *); + void (*n3d_gen_texture) (double *); + void (*v3f_gen_texture) (float *, int, int); + void (*v3d_gen_texture) (double *, int, int); + void (*end_gen_texture) (void); + + /* protected members -- "general knowledge" stuff */ + int join_style; + + /* arguments passed into extrusion code */ + int ncp; /* number of contour points */ + gleTwoVec *contour; /* 2D contour */ + gleTwoVec *cont_normal; /* 2D contour normals */ + gleDouble *up; /* up vector */ + int npoints; /* number of points in polyline */ + gleVector *point_array; /* path */ + gleColor *color_array; /* path colors */ + gleAffine *xform_array; /* contour xforms */ + + /* private members, used by texturing code */ + int num_vert; + int segment_number; + double segment_length; + double accum_seg_len; + double prev_x; + double prev_y; + + void (*save_bgn_gen_texture) (int, double); + void (*save_n3f_gen_texture) (float *); + void (*save_n3d_gen_texture) (double *); + void (*save_v3f_gen_texture) (float *, int, int); + void (*save_v3d_gen_texture) (double *, int, int); + void (*save_end_gen_texture) (void); + +} gleGC; + +extern gleGC *_gle_gc; +extern gleGC * gleCreateGC (void); + +#define INIT_GC() {if (!_gle_gc) _gle_gc = gleCreateGC(); } +#define extrusion_join_style (_gle_gc->join_style) + +#define __TUBE_CLOSE_CONTOUR (extrusion_join_style & TUBE_CONTOUR_CLOSED) +#define __TUBE_DRAW_CAP (extrusion_join_style & TUBE_JN_CAP) +#define __TUBE_DRAW_FACET_NORMALS (extrusion_join_style & TUBE_NORM_FACET) +#define __TUBE_DRAW_PATH_EDGE_NORMALS (extrusion_join_style & TUBE_NORM_PATH_EDGE) + +#define __TUBE_STYLE (extrusion_join_style & TUBE_JN_MASK) +#define __TUBE_RAW_JOIN (extrusion_join_style & TUBE_JN_RAW) +#define __TUBE_CUT_JOIN (extrusion_join_style & TUBE_JN_CUT) +#define __TUBE_ANGLE_JOIN (extrusion_join_style & TUBE_JN_ANGLE) +#define __TUBE_ROUND_JOIN (extrusion_join_style & TUBE_JN_ROUND) + +/* ======================= END OF FILE ========================== */ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/vvector.h b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/vvector.h new file mode 100755 index 0000000..b58dcd6 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/vvector.h @@ -0,0 +1,1339 @@ + +/* + * vvector.h + * + * FUNCTION: + * This file contains a number of utilities useful for handling + * 3D vectors + * + * HISTORY: + * Written by Linas Vepstas, August 1991 + * Added 2D code, March 1993 + * Added Outer products, C++ proofed, Linas Vepstas October 1993 + */ + +#ifndef __GUTIL_VECTOR_H__ +#define __GUTIL_VECTOR_H__ + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + + +#include +#include "port.h" + +/* ========================================================== */ +/* Zero out a 2D vector */ + +#define VEC_ZERO_2(a) \ +{ \ + (a)[0] = (a)[1] = 0.0; \ +} + +/* ========================================================== */ +/* Zero out a 3D vector */ + +#define VEC_ZERO(a) \ +{ \ + (a)[0] = (a)[1] = (a)[2] = 0.0; \ +} + +/* ========================================================== */ +/* Zero out a 4D vector */ + +#define VEC_ZERO_4(a) \ +{ \ + (a)[0] = (a)[1] = (a)[2] = (a)[3] = 0.0; \ +} + +/* ========================================================== */ +/* Vector copy */ + +#define VEC_COPY_2(b,a) \ +{ \ + (b)[0] = (a)[0]; \ + (b)[1] = (a)[1]; \ +} + +/* ========================================================== */ +/* Copy 3D vector */ + +#define VEC_COPY(b,a) \ +{ \ + (b)[0] = (a)[0]; \ + (b)[1] = (a)[1]; \ + (b)[2] = (a)[2]; \ +} + +/* ========================================================== */ +/* Copy 4D vector */ + +#define VEC_COPY_4(b,a) \ +{ \ + (b)[0] = (a)[0]; \ + (b)[1] = (a)[1]; \ + (b)[2] = (a)[2]; \ + (b)[3] = (a)[3]; \ +} + +/* ========================================================== */ +/* Vector difference */ + +#define VEC_DIFF_2(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] - (v1)[0]; \ + (v21)[1] = (v2)[1] - (v1)[1]; \ +} + +/* ========================================================== */ +/* Vector difference */ + +#define VEC_DIFF(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] - (v1)[0]; \ + (v21)[1] = (v2)[1] - (v1)[1]; \ + (v21)[2] = (v2)[2] - (v1)[2]; \ +} + +/* ========================================================== */ +/* Vector difference */ + +#define VEC_DIFF_4(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] - (v1)[0]; \ + (v21)[1] = (v2)[1] - (v1)[1]; \ + (v21)[2] = (v2)[2] - (v1)[2]; \ + (v21)[3] = (v2)[3] - (v1)[3]; \ +} + +/* ========================================================== */ +/* Vector sum */ + +#define VEC_SUM_2(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] + (v1)[0]; \ + (v21)[1] = (v2)[1] + (v1)[1]; \ +} + +/* ========================================================== */ +/* Vector sum */ + +#define VEC_SUM(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] + (v1)[0]; \ + (v21)[1] = (v2)[1] + (v1)[1]; \ + (v21)[2] = (v2)[2] + (v1)[2]; \ +} + +/* ========================================================== */ +/* Vector sum */ + +#define VEC_SUM_4(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] + (v1)[0]; \ + (v21)[1] = (v2)[1] + (v1)[1]; \ + (v21)[2] = (v2)[2] + (v1)[2]; \ + (v21)[3] = (v2)[3] + (v1)[3]; \ +} + +/* ========================================================== */ +/* scalar times vector */ + +#define VEC_SCALE_2(c,a,b) \ +{ \ + (c)[0] = (a)*(b)[0]; \ + (c)[1] = (a)*(b)[1]; \ +} + +/* ========================================================== */ +/* scalar times vector */ + +#define VEC_SCALE(c,a,b) \ +{ \ + (c)[0] = (a)*(b)[0]; \ + (c)[1] = (a)*(b)[1]; \ + (c)[2] = (a)*(b)[2]; \ +} + +/* ========================================================== */ +/* scalar times vector */ + +#define VEC_SCALE_4(c,a,b) \ +{ \ + (c)[0] = (a)*(b)[0]; \ + (c)[1] = (a)*(b)[1]; \ + (c)[2] = (a)*(b)[2]; \ + (c)[3] = (a)*(b)[3]; \ +} + +/* ========================================================== */ +/* accumulate scaled vector */ + +#define VEC_ACCUM_2(c,a,b) \ +{ \ + (c)[0] += (a)*(b)[0]; \ + (c)[1] += (a)*(b)[1]; \ +} + +/* ========================================================== */ +/* accumulate scaled vector */ + +#define VEC_ACCUM(c,a,b) \ +{ \ + (c)[0] += (a)*(b)[0]; \ + (c)[1] += (a)*(b)[1]; \ + (c)[2] += (a)*(b)[2]; \ +} + +/* ========================================================== */ +/* accumulate scaled vector */ + +#define VEC_ACCUM_4(c,a,b) \ +{ \ + (c)[0] += (a)*(b)[0]; \ + (c)[1] += (a)*(b)[1]; \ + (c)[2] += (a)*(b)[2]; \ + (c)[3] += (a)*(b)[3]; \ +} + +/* ========================================================== */ +/* Vector dot product */ + +#define VEC_DOT_PRODUCT_2(c,a,b) \ +{ \ + c = (a)[0]*(b)[0] + (a)[1]*(b)[1]; \ +} + +/* ========================================================== */ +/* Vector dot product */ + +#define VEC_DOT_PRODUCT(c,a,b) \ +{ \ + c = (a)[0]*(b)[0] + (a)[1]*(b)[1] + (a)[2]*(b)[2]; \ +} + +/* ========================================================== */ +/* Vector dot product */ + +#define VEC_DOT_PRODUCT_4(c,a,b) \ +{ \ + c = (a)[0]*(b)[0] + (a)[1]*(b)[1] + (a)[2]*(b)[2] + (a)[3]*(b)[3] ; \ +} + +/* ========================================================== */ +/* vector impact parameter (squared) */ + +#define VEC_IMPACT_SQ(bsq,direction,position) \ +{ \ + gleDouble vlen, llel; \ + VEC_DOT_PRODUCT (vlen, position, position); \ + VEC_DOT_PRODUCT (llel, direction, position); \ + bsq = vlen - llel*llel; \ +} + +/* ========================================================== */ +/* vector impact parameter */ + +#define VEC_IMPACT(bsq,direction,position) \ +{ \ + VEC_IMPACT_SQ(bsq,direction,position); \ + bsq = sqrt (bsq); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_LENGTH_2(vlen,a) \ +{ \ + vlen = a[0]*a[0] + a[1]*a[1]; \ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_LENGTH(vlen,a) \ +{ \ + vlen = (a)[0]*(a)[0] + (a)[1]*(a)[1]; \ + vlen += (a)[2]*(a)[2]; \ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_LENGTH_4(vlen,a) \ +{ \ + vlen = (a)[0]*(a)[0] + (a)[1]*(a)[1]; \ + vlen += (a)[2]*(a)[2]; \ + vlen += (a)[3] * (a)[3]; \ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* distance between two points */ + +#define VEC_DISTANCE(vlen,va,vb) \ +{ \ + gleDouble tmp[4]; \ + VEC_DIFF (tmp, vb, va); \ + VEC_LENGTH (vlen, tmp); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_CONJUGATE_LENGTH(vlen,a) \ +{ \ + vlen = 1.0 - a[0]*a[0] - a[1]*a[1] - a[2]*a[2];\ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_NORMALIZE(a) \ +{ \ + double vlen; \ + VEC_LENGTH (vlen,a); \ + if (vlen != 0.0) { \ + vlen = 1.0 / vlen; \ + a[0] *= vlen; \ + a[1] *= vlen; \ + a[2] *= vlen; \ + } \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_RENORMALIZE(a,newlen) \ +{ \ + double vlen; \ + VEC_LENGTH (vlen,a); \ + if (vlen != 0.0) { \ + vlen = newlen / vlen; \ + a[0] *= vlen; \ + a[1] *= vlen; \ + a[2] *= vlen; \ + } \ +} + +/* ========================================================== */ +/* 3D Vector cross product yeilding vector */ + +#define VEC_CROSS_PRODUCT(c,a,b) \ +{ \ + c[0] = (a)[1] * (b)[2] - (a)[2] * (b)[1]; \ + c[1] = (a)[2] * (b)[0] - (a)[0] * (b)[2]; \ + c[2] = (a)[0] * (b)[1] - (a)[1] * (b)[0]; \ +} + +/* ========================================================== */ +/* Vector perp -- assumes that n is of unit length + * accepts vector v, subtracts out any component parallel to n */ + +#define VEC_PERP(vp,v,n) \ +{ \ + double vdot; \ + \ + VEC_DOT_PRODUCT (vdot, v, n); \ + vp[0] = (v)[0] - (vdot) * (n)[0]; \ + vp[1] = (v)[1] - (vdot) * (n)[1]; \ + vp[2] = (v)[2] - (vdot) * (n)[2]; \ +} + +/* ========================================================== */ +/* Vector parallel -- assumes that n is of unit length + * accepts vector v, subtracts out any component perpendicular to n */ + +#define VEC_PARALLEL(vp,v,n) \ +{ \ + double vdot; \ + \ + VEC_DOT_PRODUCT (vdot, v, n); \ + vp[0] = (vdot) * (n)[0]; \ + vp[1] = (vdot) * (n)[1]; \ + vp[2] = (vdot) * (n)[2]; \ +} + +/* ========================================================== */ +/* Vector reflection -- assumes n is of unit length */ +/* Takes vector v, reflects it against reflector n, and returns vr */ + +#define VEC_REFLECT(vr,v,n) \ +{ \ + double vdot; \ + \ + VEC_DOT_PRODUCT (vdot, v, n); \ + vr[0] = (v)[0] - 2.0 * (vdot) * (n)[0]; \ + vr[1] = (v)[1] - 2.0 * (vdot) * (n)[1]; \ + vr[2] = (v)[2] - 2.0 * (vdot) * (n)[2]; \ +} + +/* ========================================================== */ +/* Vector blending */ +/* Takes two vectors a, b, blends them together */ + +#define VEC_BLEND(vr,sa,a,sb,b) \ +{ \ + \ + vr[0] = (sa) * (a)[0] + (sb) * (b)[0]; \ + vr[1] = (sa) * (a)[1] + (sb) * (b)[1]; \ + vr[2] = (sa) * (a)[2] + (sb) * (b)[2]; \ +} + +/* ========================================================== */ +/* Vector print */ + +#define VEC_PRINT_2(a) \ +{ \ + double vlen; \ + VEC_LENGTH_2 (vlen, a); \ + printf (" a is %f %f length of a is %f \n", a[0], a[1], vlen); \ +} + +/* ========================================================== */ +/* Vector print */ + +#define VEC_PRINT(a) \ +{ \ + double vlen; \ + VEC_LENGTH (vlen, (a)); \ + printf (" a is %f %f %f length of a is %f \n", (a)[0], (a)[1], (a)[2], vlen); \ +} + +/* ========================================================== */ +/* Vector print */ + +#define VEC_PRINT_4(a) \ +{ \ + double vlen; \ + VEC_LENGTH_4 (vlen, (a)); \ + printf (" a is %f %f %f %f length of a is %f \n", \ + (a)[0], (a)[1], (a)[2], (a)[3], vlen); \ +} + +/* ========================================================== */ +/* print matrix */ + +#define MAT_PRINT_4X4(mmm) { \ + int i,j; \ + printf ("matrix mmm is \n"); \ + if (mmm == NULL) { \ + printf (" Null \n"); \ + } else { \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + printf ("%f ", mmm[i][j]); \ + } \ + printf (" \n"); \ + } \ + } \ +} + +/* ========================================================== */ +/* print matrix */ + +#define MAT_PRINT_3X3(mmm) { \ + int i,j; \ + printf ("matrix mmm is \n"); \ + if (mmm == NULL) { \ + printf (" Null \n"); \ + } else { \ + for (i=0; i<3; i++) { \ + for (j=0; j<3; j++) { \ + printf ("%f ", mmm[i][j]); \ + } \ + printf (" \n"); \ + } \ + } \ +} + +/* ========================================================== */ +/* print matrix */ + +#define MAT_PRINT_2X3(mmm) { \ + int i,j; \ + printf ("matrix mmm is \n"); \ + if (mmm == NULL) { \ + printf (" Null \n"); \ + } else { \ + for (i=0; i<2; i++) { \ + for (j=0; j<3; j++) { \ + printf ("%f ", mmm[i][j]); \ + } \ + printf (" \n"); \ + } \ + } \ +} + +/* ========================================================== */ +/* initialize matrix */ + +#define IDENTIFY_MATRIX_3X3(m) \ +{ \ + m[0][0] = 1.0; \ + m[0][1] = 0.0; \ + m[0][2] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = 1.0; \ + m[1][2] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = 0.0; \ + m[2][2] = 1.0; \ +} + +/* ========================================================== */ +/* initialize matrix */ + +#define IDENTIFY_MATRIX_4X4(m) \ +{ \ + m[0][0] = 1.0; \ + m[0][1] = 0.0; \ + m[0][2] = 0.0; \ + m[0][3] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = 1.0; \ + m[1][2] = 0.0; \ + m[1][3] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = 0.0; \ + m[2][2] = 1.0; \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_2X2(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_2X3(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + b[0][2] = a[0][2]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[1][2]; \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_3X3(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + b[0][2] = a[0][2]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[1][2]; \ + \ + b[2][0] = a[2][0]; \ + b[2][1] = a[2][1]; \ + b[2][2] = a[2][2]; \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_4X4(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + b[0][2] = a[0][2]; \ + b[0][3] = a[0][3]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[1][2]; \ + b[1][3] = a[1][3]; \ + \ + b[2][0] = a[2][0]; \ + b[2][1] = a[2][1]; \ + b[2][2] = a[2][2]; \ + b[2][3] = a[2][3]; \ + \ + b[3][0] = a[3][0]; \ + b[3][1] = a[3][1]; \ + b[3][2] = a[3][2]; \ + b[3][3] = a[3][3]; \ +} + +/* ========================================================== */ +/* matrix transpose */ + +#define TRANSPOSE_MATRIX_2X2(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[1][0]; \ + \ + b[1][0] = a[0][1]; \ + b[1][1] = a[1][1]; \ +} + +/* ========================================================== */ +/* matrix transpose */ + +#define TRANSPOSE_MATRIX_3X3(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[1][0]; \ + b[0][2] = a[2][0]; \ + \ + b[1][0] = a[0][1]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[2][1]; \ + \ + b[2][0] = a[0][2]; \ + b[2][1] = a[1][2]; \ + b[2][2] = a[2][2]; \ +} + +/* ========================================================== */ +/* matrix transpose */ + +#define TRANSPOSE_MATRIX_4X4(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[1][0]; \ + b[0][2] = a[2][0]; \ + b[0][3] = a[3][0]; \ + \ + b[1][0] = a[0][1]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[2][1]; \ + b[1][3] = a[3][1]; \ + \ + b[2][0] = a[0][2]; \ + b[2][1] = a[1][2]; \ + b[2][2] = a[2][2]; \ + b[2][3] = a[3][2]; \ + \ + b[3][0] = a[0][3]; \ + b[3][1] = a[1][3]; \ + b[3][2] = a[2][3]; \ + b[3][3] = a[3][3]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define SCALE_MATRIX_2X2(b,s,a) \ +{ \ + b[0][0] = (s) * a[0][0]; \ + b[0][1] = (s) * a[0][1]; \ + \ + b[1][0] = (s) * a[1][0]; \ + b[1][1] = (s) * a[1][1]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define SCALE_MATRIX_3X3(b,s,a) \ +{ \ + b[0][0] = (s) * a[0][0]; \ + b[0][1] = (s) * a[0][1]; \ + b[0][2] = (s) * a[0][2]; \ + \ + b[1][0] = (s) * a[1][0]; \ + b[1][1] = (s) * a[1][1]; \ + b[1][2] = (s) * a[1][2]; \ + \ + b[2][0] = (s) * a[2][0]; \ + b[2][1] = (s) * a[2][1]; \ + b[2][2] = (s) * a[2][2]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define SCALE_MATRIX_4X4(b,s,a) \ +{ \ + b[0][0] = (s) * a[0][0]; \ + b[0][1] = (s) * a[0][1]; \ + b[0][2] = (s) * a[0][2]; \ + b[0][3] = (s) * a[0][3]; \ + \ + b[1][0] = (s) * a[1][0]; \ + b[1][1] = (s) * a[1][1]; \ + b[1][2] = (s) * a[1][2]; \ + b[1][3] = (s) * a[1][3]; \ + \ + b[2][0] = (s) * a[2][0]; \ + b[2][1] = (s) * a[2][1]; \ + b[2][2] = (s) * a[2][2]; \ + b[2][3] = (s) * a[2][3]; \ + \ + b[3][0] = s * a[3][0]; \ + b[3][1] = s * a[3][1]; \ + b[3][2] = s * a[3][2]; \ + b[3][3] = s * a[3][3]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define ACCUM_SCALE_MATRIX_2X2(b,s,a) \ +{ \ + b[0][0] += (s) * a[0][0]; \ + b[0][1] += (s) * a[0][1]; \ + \ + b[1][0] += (s) * a[1][0]; \ + b[1][1] += (s) * a[1][1]; \ +} + +/* +========================================================== */ +/* multiply matrix by scalar */ + +#define ACCUM_SCALE_MATRIX_3X3(b,s,a) \ +{ \ + b[0][0] += (s) * a[0][0]; \ + b[0][1] += (s) * a[0][1]; \ + b[0][2] += (s) * a[0][2]; \ + \ + b[1][0] += (s) * a[1][0]; \ + b[1][1] += (s) * a[1][1]; \ + b[1][2] += (s) * a[1][2]; \ + \ + b[2][0] += (s) * a[2][0]; \ + b[2][1] += (s) * a[2][1]; \ + b[2][2] += (s) * a[2][2]; \ +} + +/* +========================================================== */ +/* multiply matrix by scalar */ + +#define ACCUM_SCALE_MATRIX_4X4(b,s,a) \ +{ \ + b[0][0] += (s) * a[0][0]; \ + b[0][1] += (s) * a[0][1]; \ + b[0][2] += (s) * a[0][2]; \ + b[0][3] += (s) * a[0][3]; \ + \ + b[1][0] += (s) * a[1][0]; \ + b[1][1] += (s) * a[1][1]; \ + b[1][2] += (s) * a[1][2]; \ + b[1][3] += (s) * a[1][3]; \ + \ + b[2][0] += (s) * a[2][0]; \ + b[2][1] += (s) * a[2][1]; \ + b[2][2] += (s) * a[2][2]; \ + b[2][3] += (s) * a[2][3]; \ + \ + b[3][0] += (s) * a[3][0]; \ + b[3][1] += (s) * a[3][1]; \ + b[3][2] += (s) * a[3][2]; \ + b[3][3] += (s) * a[3][3]; \ +} + +/* +========================================================== */ +/* matrix product */ +/* c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/ + +#define MATRIX_PRODUCT_2X2(c,a,b) \ +{ \ + c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]; \ + c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]; \ + \ + c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]; \ + c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]; \ + \ +} + +/* ========================================================== */ +/* matrix product */ +/* c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/ + +#define MATRIX_PRODUCT_3X3(c,a,b) \ +{ \ + c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]+a[0][2]*b[2][0]; \ + c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]+a[0][2]*b[2][1]; \ + c[0][2] = a[0][0]*b[0][2]+a[0][1]*b[1][2]+a[0][2]*b[2][2]; \ + \ + c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]+a[1][2]*b[2][0]; \ + c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]+a[1][2]*b[2][1]; \ + c[1][2] = a[1][0]*b[0][2]+a[1][1]*b[1][2]+a[1][2]*b[2][2]; \ + \ + c[2][0] = a[2][0]*b[0][0]+a[2][1]*b[1][0]+a[2][2]*b[2][0]; \ + c[2][1] = a[2][0]*b[0][1]+a[2][1]*b[1][1]+a[2][2]*b[2][1]; \ + c[2][2] = a[2][0]*b[0][2]+a[2][1]*b[1][2]+a[2][2]*b[2][2]; \ +} + +/* ========================================================== */ +/* matrix product */ +/* c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/ + +#define MATRIX_PRODUCT_4X4(c,a,b) \ +{ \ + c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]+a[0][2]*b[2][0]+a[0][3]*b[3][0];\ + c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]+a[0][2]*b[2][1]+a[0][3]*b[3][1];\ + c[0][2] = a[0][0]*b[0][2]+a[0][1]*b[1][2]+a[0][2]*b[2][2]+a[0][3]*b[3][2];\ + c[0][3] = a[0][0]*b[0][3]+a[0][1]*b[1][3]+a[0][2]*b[2][3]+a[0][3]*b[3][3];\ + \ + c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]+a[1][2]*b[2][0]+a[1][3]*b[3][0];\ + c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]+a[1][2]*b[2][1]+a[1][3]*b[3][1];\ + c[1][2] = a[1][0]*b[0][2]+a[1][1]*b[1][2]+a[1][2]*b[2][2]+a[1][3]*b[3][2];\ + c[1][3] = a[1][0]*b[0][3]+a[1][1]*b[1][3]+a[1][2]*b[2][3]+a[1][3]*b[3][3];\ + \ + c[2][0] = a[2][0]*b[0][0]+a[2][1]*b[1][0]+a[2][2]*b[2][0]+a[2][3]*b[3][0];\ + c[2][1] = a[2][0]*b[0][1]+a[2][1]*b[1][1]+a[2][2]*b[2][1]+a[2][3]*b[3][1];\ + c[2][2] = a[2][0]*b[0][2]+a[2][1]*b[1][2]+a[2][2]*b[2][2]+a[2][3]*b[3][2];\ + c[2][3] = a[2][0]*b[0][3]+a[2][1]*b[1][3]+a[2][2]*b[2][3]+a[2][3]*b[3][3];\ + \ + c[3][0] = a[3][0]*b[0][0]+a[3][1]*b[1][0]+a[3][2]*b[2][0]+a[3][3]*b[3][0];\ + c[3][1] = a[3][0]*b[0][1]+a[3][1]*b[1][1]+a[3][2]*b[2][1]+a[3][3]*b[3][1];\ + c[3][2] = a[3][0]*b[0][2]+a[3][1]*b[1][2]+a[3][2]*b[2][2]+a[3][3]*b[3][2];\ + c[3][3] = a[3][0]*b[0][3]+a[3][1]*b[1][3]+a[3][2]*b[2][3]+a[3][3]*b[3][3];\ +} + +/* ========================================================== */ +/* matrix times vector */ + +#define MAT_DOT_VEC_2X2(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1]; \ +} + +/* ========================================================== */ +/* matrix times vector */ + +#define MAT_DOT_VEC_3X3(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]*v[2]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]*v[2]; \ + p[2] = m[2][0]*v[0] + m[2][1]*v[1] + m[2][2]*v[2]; \ +} + +/* ========================================================== */ +/* matrix times vector */ + +#define MAT_DOT_VEC_4X4(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]*v[2] + m[0][3]*v[3]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]*v[2] + m[1][3]*v[3]; \ + p[2] = m[2][0]*v[0] + m[2][1]*v[1] + m[2][2]*v[2] + m[2][3]*v[3]; \ + p[3] = m[3][0]*v[0] + m[3][1]*v[1] + m[3][2]*v[2] + m[3][3]*v[3]; \ +} + +/* ========================================================== */ +/* vector transpose times matrix */ +/* p[j] = v[0]*m[0][j] + v[1]*m[1][j] + v[2]*m[2][j]; */ + +#define VEC_DOT_MAT_3X3(p,v,m) \ +{ \ + p[0] = v[0]*m[0][0] + v[1]*m[1][0] + v[2]*m[2][0]; \ + p[1] = v[0]*m[0][1] + v[1]*m[1][1] + v[2]*m[2][1]; \ + p[2] = v[0]*m[0][2] + v[1]*m[1][2] + v[2]*m[2][2]; \ +} + +/* ========================================================== */ +/* affine matrix times vector */ +/* The matrix is assumed to be an affine matrix, with last two + * entries representing a translation */ + +#define MAT_DOT_VEC_2X3(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]; \ +} + +/* ========================================================== */ +/* inverse transpose of matrix times vector + * + * This macro computes inverse transpose of matrix m, + * and multiplies vector v into it, to yeild vector p + * + * DANGER !!! Do Not use this on normal vectors!!! + * It will leave normals the wrong length !!! + * See macro below for use on normals. + */ + +#define INV_TRANSP_MAT_DOT_VEC_2X2(p,m,v) \ +{ \ + gleDouble det; \ + \ + det = m[0][0]*m[1][1] - m[0][1]*m[1][0]; \ + p[0] = m[1][1]*v[0] - m[1][0]*v[1]; \ + p[1] = - m[0][1]*v[0] + m[0][0]*v[1]; \ + \ + /* if matrix not singular, and not orthonormal, then renormalize */ \ + if ((det!=1.0) && (det != 0.0)) { \ + det = 1.0 / det; \ + p[0] *= det; \ + p[1] *= det; \ + } \ +} + +/* ========================================================== */ +/* transform normal vector by inverse transpose of matrix + * and then renormalize the vector + * + * This macro computes inverse transpose of matrix m, + * and multiplies vector v into it, to yeild vector p + * Vector p is then normalized. + */ + + +#define NORM_XFORM_2X2(p,m,v) \ +{ \ + double mlen; \ + \ + /* do nothing if off-diagonals are zero and diagonals are \ + * equal */ \ + if ((m[0][1] != 0.0) || (m[1][0] != 0.0) || (m[0][0] != m[1][1])) { \ + p[0] = m[1][1]*v[0] - m[1][0]*v[1]; \ + p[1] = - m[0][1]*v[0] + m[0][0]*v[1]; \ + \ + mlen = p[0]*p[0] + p[1]*p[1]; \ + mlen = 1.0 / sqrt (mlen); \ + p[0] *= mlen; \ + p[1] *= mlen; \ + } else { \ + VEC_COPY_2 (p, v); \ + } \ +} + +/* ========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define OUTER_PRODUCT_2X2(m,v,t) \ +{ \ + m[0][0] = v[0] * t[0]; \ + m[0][1] = v[0] * t[1]; \ + \ + m[1][0] = v[1] * t[0]; \ + m[1][1] = v[1] * t[1]; \ +} + +/* ========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define OUTER_PRODUCT_3X3(m,v,t) \ +{ \ + m[0][0] = v[0] * t[0]; \ + m[0][1] = v[0] * t[1]; \ + m[0][2] = v[0] * t[2]; \ + \ + m[1][0] = v[1] * t[0]; \ + m[1][1] = v[1] * t[1]; \ + m[1][2] = v[1] * t[2]; \ + \ + m[2][0] = v[2] * t[0]; \ + m[2][1] = v[2] * t[1]; \ + m[2][2] = v[2] * t[2]; \ +} + +/* ========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define OUTER_PRODUCT_4X4(m,v,t) \ +{ \ + m[0][0] = v[0] * t[0]; \ + m[0][1] = v[0] * t[1]; \ + m[0][2] = v[0] * t[2]; \ + m[0][3] = v[0] * t[3]; \ + \ + m[1][0] = v[1] * t[0]; \ + m[1][1] = v[1] * t[1]; \ + m[1][2] = v[1] * t[2]; \ + m[1][3] = v[1] * t[3]; \ + \ + m[2][0] = v[2] * t[0]; \ + m[2][1] = v[2] * t[1]; \ + m[2][2] = v[2] * t[2]; \ + m[2][3] = v[2] * t[3]; \ + \ + m[3][0] = v[3] * t[0]; \ + m[3][1] = v[3] * t[1]; \ + m[3][2] = v[3] * t[2]; \ + m[3][3] = v[3] * t[3]; \ +} + +/* +========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define ACCUM_OUTER_PRODUCT_2X2(m,v,t) \ +{ \ + m[0][0] += v[0] * t[0]; \ + m[0][1] += v[0] * t[1]; \ + \ + m[1][0] += v[1] * t[0]; \ + m[1][1] += v[1] * t[1]; \ +} + +/* +========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define ACCUM_OUTER_PRODUCT_3X3(m,v,t) \ +{ \ + m[0][0] += v[0] * t[0]; \ + m[0][1] += v[0] * t[1]; \ + m[0][2] += v[0] * t[2]; \ + \ + m[1][0] += v[1] * t[0]; \ + m[1][1] += v[1] * t[1]; \ + m[1][2] += v[1] * t[2]; \ + \ + m[2][0] += v[2] * t[0]; \ + m[2][1] += v[2] * t[1]; \ + m[2][2] += v[2] * t[2]; \ +} + +/* +========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define ACCUM_OUTER_PRODUCT_4X4(m,v,t) \ +{ \ + m[0][0] += v[0] * t[0]; \ + m[0][1] += v[0] * t[1]; \ + m[0][2] += v[0] * t[2]; \ + m[0][3] += v[0] * t[3]; \ + \ + m[1][0] += v[1] * t[0]; \ + m[1][1] += v[1] * t[1]; \ + m[1][2] += v[1] * t[2]; \ + m[1][3] += v[1] * t[3]; \ + \ + m[2][0] += v[2] * t[0]; \ + m[2][1] += v[2] * t[1]; \ + m[2][2] += v[2] * t[2]; \ + m[2][3] += v[2] * t[3]; \ + \ + m[3][0] += v[3] * t[0]; \ + m[3][1] += v[3] * t[1]; \ + m[3][2] += v[3] * t[2]; \ + m[3][3] += v[3] * t[3]; \ +} + +/* +========================================================== */ +/* determinant of matrix + * + * Computes determinant of matrix m, returning d + */ + +#define DETERMINANT_2X2(d,m) \ +{ \ + d = m[0][0] * m[1][1] - m[0][1] * m[1][0]; \ +} + +/* ========================================================== */ +/* determinant of matrix + * + * Computes determinant of matrix m, returning d + */ + +#define DETERMINANT_3X3(d,m) \ +{ \ + d = m[0][0] * (m[1][1]*m[2][2] - m[1][2] * m[2][1]); \ + d -= m[0][1] * (m[1][0]*m[2][2] - m[1][2] * m[2][0]); \ + d += m[0][2] * (m[1][0]*m[2][1] - m[1][1] * m[2][0]); \ +} + +/* ========================================================== */ +/* i,j,th cofactor of a 4x4 matrix + * + */ + +#define COFACTOR_4X4_IJ(fac,m,i,j) \ +{ \ + int ii[4], jj[4], k; \ + \ + /* compute which row, columnt to skip */ \ + for (k=0; k + + + + IBDocumentLocation + 4 104 410 240 0 0 1152 848 + IBEditorPositions + + 29 + 19 615 246 44 0 0 1152 848 + + IBFramework Version + 291.0 + IBGroupedObjects + + IBLastGroupID + 1 + IBOpenObjects + + 29 + + IBSystem Version + 6I32 + + diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUT.nib/objects.nib b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUT.nib/objects.nib new file mode 100644 index 0000000..8a7140e Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUT.nib/objects.nib differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/classes.nib b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/classes.nib new file mode 100755 index 0000000..7e85eb1 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/classes.nib @@ -0,0 +1,13 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + { + ACTIONS = {toggleWindow = id; }; + CLASS = GLUTClipboardController; + LANGUAGE = ObjC; + OUTLETS = {_infoText = id; _scrollView = id; }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/info.nib b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/info.nib new file mode 100755 index 0000000..867735d --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/info.nib @@ -0,0 +1,12 @@ + + + + + IBDocumentLocation + 63 221 356 240 0 0 1600 1178 + IBFramework Version + 263.2 + IBSystem Version + 5S41 + + diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/objects.nib b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/objects.nib new file mode 100644 index 0000000..29125d4 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/objects.nib differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/classes.nib b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/classes.nib new file mode 100755 index 0000000..c675963 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/classes.nib @@ -0,0 +1,73 @@ +{ + IBClasses = ( + { + ACTIONS = {save = id; saveAs = id; }; + CLASS = FirstResponder; + LANGUAGE = ObjC; + SUPERCLASS = NSObject; + }, + { + ACTIONS = { + cancel = id; + joyAssign = id; + joyDevice = id; + joyElement = id; + joyInvert = id; + launchDebugMode = id; + launchGamemodeCaptureSingle = id; + launchIconic = id; + launchUseCurrWD = id; + launchUseExtDesktop = id; + launchUseMacOSCoords = id; + mouseEanbleEmulation = id; + mouseMiddleMenu = id; + mouseRightMenu = id; + ok = id; + spaceAssign = id; + spaceDevice = id; + spaceElement = id; + spaceInvert = id; + }; + CLASS = GLUTPreferencesController; + LANGUAGE = ObjC; + OUTLETS = { + joyAssign = NSButton; + joyAssignNote = NSTextField; + joyAssignWarningIcon = NSImageView; + joyDeviceMenu = NSPopUpButton; + joyElement = NSTextField; + joyInputMenu = NSPopUpButton; + joyInverted = NSButton; + launchDebugMode = NSButton; + launchFadeTime = NSTextField; + launchGamemodeCaptureSingle = NSButton; + launchIconic = NSButton; + launchInitHeight = NSTextField; + launchInitWidth = NSTextField; + launchInitX = NSTextField; + launchInitY = NSTextField; + launchMenuIdle = NSTextField; + launchSyncToVBL = NSButton; + launchUseCurrWD = NSButton; + launchUseExtendedDesktop = NSButton; + launchUseMacOSXCoords = NSButton; + mouseAssignWarningIcon = NSImageView; + mouseAssignWarningText = NSTextField; + mouseDetected = NSTextField; + mouseEmulation = NSButton; + mouseMiddleConfigMenu = NSPopUpButton; + mouseRightConfigMenu = NSPopUpButton; + prefsTabView = NSTabView; + spaceAssign = NSButton; + spaceAssignNote = NSTextField; + spaceAssignWarningIcon = NSImageView; + spaceDeviceMenu = NSPopUpButton; + spaceElement = NSTextField; + spaceInputMenu = NSPopUpButton; + spaceInverted = NSButton; + }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/info.nib b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/info.nib new file mode 100755 index 0000000..216c8dc --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 16 329 410 240 0 0 1920 1178 + IBFramework Version + 439.0 + IBOpenObjects + + 205 + + IBSystem Version + 8G32 + + diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/objects.nib b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/objects.nib new file mode 100644 index 0000000..7598f2c Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/objects.nib differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTUI.strings b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTUI.strings new file mode 100644 index 0000000..6db3c5c Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTUI.strings differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/InfoPlist.strings b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/InfoPlist.strings new file mode 100644 index 0000000..6f78b89 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/InfoPlist.strings differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/Info.plist b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/Info.plist new file mode 100755 index 0000000..e8fc9d6 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + GLUT + CFBundleGetInfoString + 3.4.0, Copyright (c) 2001-2008 Apple Inc., All Rights Reserved + CFBundleIdentifier + com.apple.glut + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + FMWK + CFBundleShortVersionString + 3.4.0 + CFBundleSignature + ???? + CFBundleVersion + GLUT-3.4.0 + + diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/blankCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/blankCursor.tiff new file mode 100755 index 0000000..a2b0cf1 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/blankCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomCursor.tiff new file mode 100755 index 0000000..c3f4795 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomleftCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomleftCursor.tiff new file mode 100755 index 0000000..274529f Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomleftCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomrightCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomrightCursor.tiff new file mode 100755 index 0000000..dec4252 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomrightCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/crossCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/crossCursor.tiff new file mode 100755 index 0000000..8536c0e Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/crossCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/cycleCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/cycleCursor.tiff new file mode 100755 index 0000000..34b52f6 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/cycleCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/destroyCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/destroyCursor.tiff new file mode 100755 index 0000000..9e3a1cb Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/destroyCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/fingerCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/fingerCursor.tiff new file mode 100755 index 0000000..0087c66 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/fingerCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/helpCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/helpCursor.tiff new file mode 100755 index 0000000..fc4a88a Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/helpCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftCursor.tiff new file mode 100755 index 0000000..852b69b Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftRightCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftRightCursor.tiff new file mode 100755 index 0000000..37fe393 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftRightCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightArrowCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightArrowCursor.tiff new file mode 100755 index 0000000..d852616 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightArrowCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightCursor.tiff new file mode 100755 index 0000000..9781f22 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/sprayCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/sprayCursor.tiff new file mode 100755 index 0000000..9bec966 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/sprayCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topCursor.tiff new file mode 100755 index 0000000..e4df0de Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topleftCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topleftCursor.tiff new file mode 100755 index 0000000..43cf97f Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topleftCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/toprightCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/toprightCursor.tiff new file mode 100755 index 0000000..429b01b Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/toprightCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/upDownCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/upDownCursor.tiff new file mode 100755 index 0000000..1605063 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/upDownCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/waitCursor.tiff b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/waitCursor.tiff new file mode 100755 index 0000000..81ba1aa Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/waitCursor.tiff differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/Current b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/Current new file mode 120000 index 0000000..8c7e5a6 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Frameworks/GLUT.framework/Versions/Current @@ -0,0 +1 @@ +A \ No newline at end of file diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Info.plist b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Info.plist new file mode 100644 index 0000000..6faf4d2 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/Info.plist @@ -0,0 +1,36 @@ + + + + + BuildMachineOSBuild + 10K540 + CFBundleDevelopmentRegion + English + CFBundleExecutable + emptyExampleDebug + CFBundleIdentifier + com.yourcompany.openFrameworks + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleVersion + 1.0 + DTCompiler + + DTPlatformBuild + 10M2518 + DTPlatformVersion + PG + DTSDKBuild + 10K540 + DTSDKName + + DTXcode + 0400 + DTXcodeBuild + 10M2518 + + diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/MacOS/emptyExampleDebug b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/MacOS/emptyExampleDebug new file mode 100755 index 0000000..392edf7 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/MacOS/emptyExampleDebug differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/MacOS/libfmodex.dylib b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/MacOS/libfmodex.dylib new file mode 100644 index 0000000..bea90a1 Binary files /dev/null and b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/MacOS/libfmodex.dylib differ diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/PkgInfo b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/PkgInfo new file mode 100644 index 0000000..bd04210 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/bin/emptyExampleDebug.app/Contents/PkgInfo @@ -0,0 +1 @@ +APPL???? \ No newline at end of file diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/emptyExample.xcodeproj/project.pbxproj b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/emptyExample.xcodeproj/project.pbxproj new file mode 100644 index 0000000..5ca427f --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/emptyExample.xcodeproj/project.pbxproj @@ -0,0 +1,602 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 42; + objects = { + +/* Begin PBXBuildFile section */ + 8DF1A08C1404702E00148E3B /* fft.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8DF1A0801404702E00148E3B /* fft.cpp */; }; + 8DF1A08D1404702E00148E3B /* maxiFFT.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8DF1A0821404702E00148E3B /* maxiFFT.cpp */; }; + 8DF1A08E1404702E00148E3B /* maxiGrains.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8DF1A0841404702E00148E3B /* maxiGrains.cpp */; }; + 8DF1A08F1404702E00148E3B /* maxiMFCC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8DF1A0861404702E00148E3B /* maxiMFCC.cpp */; }; + 8DF1A0901404702E00148E3B /* maximilian.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8DF1A0881404702E00148E3B /* maximilian.cpp */; }; + BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; }; + E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4328148138ABC890047C5CB /* openFrameworksDebug.a */; }; + E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9710E8CC7DD009D7055 /* AGL.framework */; }; + E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */; }; + E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */; }; + E45BE97E0E8CC7DD009D7055 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9740E8CC7DD009D7055 /* Carbon.framework */; }; + E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */; }; + E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */; }; + E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9770E8CC7DD009D7055 /* CoreServices.framework */; }; + E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9790E8CC7DD009D7055 /* OpenGL.framework */; }; + E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */; }; + E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1D0A3A1BDC003C02F2 /* main.cpp */; }; + E4B69E210A3A1BDC003C02F2 /* testApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */; }; + E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424410CC5A17004149E2 /* AppKit.framework */; }; + E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424510CC5A17004149E2 /* Cocoa.framework */; }; + E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424610CC5A17004149E2 /* IOKit.framework */; }; + E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + E4328147138ABC890047C5CB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = E4B27C1510CBEB8E00536013; + remoteInfo = openFrameworks; + }; + E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = E4B27C1410CBEB8E00536013; + remoteInfo = openFrameworks; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + E4C2427710CC5ABF004149E2 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 8DF1A07E1404702E00148E3B /* install.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = install.xml; sourceTree = ""; }; + 8DF1A0801404702E00148E3B /* fft.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fft.cpp; sourceTree = ""; }; + 8DF1A0811404702E00148E3B /* fft.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fft.h; sourceTree = ""; }; + 8DF1A0821404702E00148E3B /* maxiFFT.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = maxiFFT.cpp; sourceTree = ""; }; + 8DF1A0831404702E00148E3B /* maxiFFT.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = maxiFFT.h; sourceTree = ""; }; + 8DF1A0841404702E00148E3B /* maxiGrains.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = maxiGrains.cpp; sourceTree = ""; }; + 8DF1A0851404702E00148E3B /* maxiGrains.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = maxiGrains.h; sourceTree = ""; }; + 8DF1A0861404702E00148E3B /* maxiMFCC.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = maxiMFCC.cpp; sourceTree = ""; }; + 8DF1A0871404702E00148E3B /* maxiMFCC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = maxiMFCC.h; sourceTree = ""; }; + 8DF1A0881404702E00148E3B /* maximilian.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = maximilian.cpp; sourceTree = ""; }; + 8DF1A0891404702E00148E3B /* maximilian.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = maximilian.h; sourceTree = ""; }; + 8DF1A08B1404702E00148E3B /* ofxMaxim.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxMaxim.h; sourceTree = ""; }; + BBAB23BE13894E4700AA2426 /* GLUT.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLUT.framework; path = ../../../libs/glut/lib/osx/GLUT.framework; sourceTree = ""; }; + E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = openFrameworksLib.xcodeproj; path = ../../../libs/openFrameworksCompiled/project/osx/openFrameworksLib.xcodeproj; sourceTree = SOURCE_ROOT; }; + E45BE9710E8CC7DD009D7055 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = ""; }; + E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = ""; }; + E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = ""; }; + E45BE9740E8CC7DD009D7055 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = ""; }; + E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = ""; }; + E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = ""; }; + E45BE9770E8CC7DD009D7055 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = ""; }; + E45BE9790E8CC7DD009D7055 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = ""; }; + E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = ""; }; + E4B69B5B0A3A1756003C02F2 /* emptyExampleDebug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = emptyExampleDebug.app; sourceTree = BUILT_PRODUCTS_DIR; }; + E4B69E1D0A3A1BDC003C02F2 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = src/main.cpp; sourceTree = SOURCE_ROOT; }; + E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = testApp.cpp; path = src/testApp.cpp; sourceTree = SOURCE_ROOT; }; + E4B69E1F0A3A1BDC003C02F2 /* testApp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = testApp.h; path = src/testApp.h; sourceTree = SOURCE_ROOT; }; + E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = "openFrameworks-Info.plist"; sourceTree = ""; }; + E4C2424410CC5A17004149E2 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; + E4C2424510CC5A17004149E2 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; + E4C2424610CC5A17004149E2 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = ""; }; + E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = CoreOF.xcconfig; path = ../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig; sourceTree = SOURCE_ROOT; }; + E4EB6923138AFD0F00A09F29 /* Project.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Project.xcconfig; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + E4B69B590A3A1756003C02F2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */, + E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */, + E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */, + E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */, + E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */, + E45BE97E0E8CC7DD009D7055 /* Carbon.framework in Frameworks */, + E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */, + E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */, + E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */, + E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */, + E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */, + E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */, + E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */, + E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 8DF1A07D1404702E00148E3B /* ofxMaxim */ = { + isa = PBXGroup; + children = ( + 8DF1A07E1404702E00148E3B /* install.xml */, + 8DF1A07F1404702E00148E3B /* libs */, + 8DF1A08A1404702E00148E3B /* src */, + ); + path = ofxMaxim; + sourceTree = ""; + }; + 8DF1A07F1404702E00148E3B /* libs */ = { + isa = PBXGroup; + children = ( + 8DF1A0801404702E00148E3B /* fft.cpp */, + 8DF1A0811404702E00148E3B /* fft.h */, + 8DF1A0821404702E00148E3B /* maxiFFT.cpp */, + 8DF1A0831404702E00148E3B /* maxiFFT.h */, + 8DF1A0841404702E00148E3B /* maxiGrains.cpp */, + 8DF1A0851404702E00148E3B /* maxiGrains.h */, + 8DF1A0861404702E00148E3B /* maxiMFCC.cpp */, + 8DF1A0871404702E00148E3B /* maxiMFCC.h */, + 8DF1A0881404702E00148E3B /* maximilian.cpp */, + 8DF1A0891404702E00148E3B /* maximilian.h */, + ); + path = libs; + sourceTree = ""; + }; + 8DF1A08A1404702E00148E3B /* src */ = { + isa = PBXGroup; + children = ( + 8DF1A08B1404702E00148E3B /* ofxMaxim.h */, + ); + path = src; + sourceTree = ""; + }; + BB4B014C10F69532006C3DED /* addons */ = { + isa = PBXGroup; + children = ( + 8DF1A07D1404702E00148E3B /* ofxMaxim */, + ); + name = addons; + sourceTree = ""; + }; + BBAB23C913894ECA00AA2426 /* system frameworks */ = { + isa = PBXGroup; + children = ( + E4C2424410CC5A17004149E2 /* AppKit.framework */, + E4C2424510CC5A17004149E2 /* Cocoa.framework */, + E4C2424610CC5A17004149E2 /* IOKit.framework */, + E45BE9710E8CC7DD009D7055 /* AGL.framework */, + E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */, + E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */, + E45BE9740E8CC7DD009D7055 /* Carbon.framework */, + E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */, + E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */, + E45BE9770E8CC7DD009D7055 /* CoreServices.framework */, + E45BE9790E8CC7DD009D7055 /* OpenGL.framework */, + E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */, + ); + name = "system frameworks"; + sourceTree = ""; + }; + BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */ = { + isa = PBXGroup; + children = ( + BBAB23BE13894E4700AA2426 /* GLUT.framework */, + ); + name = "3rd party frameworks"; + sourceTree = ""; + }; + E4328144138ABC890047C5CB /* Products */ = { + isa = PBXGroup; + children = ( + E4328148138ABC890047C5CB /* openFrameworksDebug.a */, + ); + name = Products; + sourceTree = ""; + }; + E45BE5980E8CC70C009D7055 /* frameworks */ = { + isa = PBXGroup; + children = ( + BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */, + BBAB23C913894ECA00AA2426 /* system frameworks */, + ); + name = frameworks; + sourceTree = ""; + }; + E4B69B4A0A3A1720003C02F2 = { + isa = PBXGroup; + children = ( + E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */, + E4EB6923138AFD0F00A09F29 /* Project.xcconfig */, + E4B69E1C0A3A1BDC003C02F2 /* src */, + E4EEC9E9138DF44700A80321 /* openFrameworks */, + BB4B014C10F69532006C3DED /* addons */, + E45BE5980E8CC70C009D7055 /* frameworks */, + E4B69B5B0A3A1756003C02F2 /* emptyExampleDebug.app */, + ); + sourceTree = ""; + }; + E4B69E1C0A3A1BDC003C02F2 /* src */ = { + isa = PBXGroup; + children = ( + E4B69E1D0A3A1BDC003C02F2 /* main.cpp */, + E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */, + E4B69E1F0A3A1BDC003C02F2 /* testApp.h */, + ); + path = src; + sourceTree = SOURCE_ROOT; + }; + E4EEC9E9138DF44700A80321 /* openFrameworks */ = { + isa = PBXGroup; + children = ( + E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */, + E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */, + ); + name = openFrameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + E4B69B5A0A3A1756003C02F2 /* emptyExample */ = { + isa = PBXNativeTarget; + buildConfigurationList = E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "emptyExample" */; + buildPhases = ( + E4B69B580A3A1756003C02F2 /* Sources */, + E4B69B590A3A1756003C02F2 /* Frameworks */, + E4B6FFFD0C3F9AB9008CF71C /* ShellScript */, + E4C2427710CC5ABF004149E2 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + E4EEB9AC138B136A00A80321 /* PBXTargetDependency */, + ); + name = emptyExample; + productName = myOFApp; + productReference = E4B69B5B0A3A1756003C02F2 /* emptyExampleDebug.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + E4B69B4C0A3A1720003C02F2 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "emptyExample" */; + compatibilityVersion = "Xcode 2.4"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + English, + Japanese, + French, + German, + ); + mainGroup = E4B69B4A0A3A1720003C02F2; + productRefGroup = E4B69B4A0A3A1720003C02F2; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = E4328144138ABC890047C5CB /* Products */; + ProjectRef = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + E4B69B5A0A3A1756003C02F2 /* emptyExample */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + E4328148138ABC890047C5CB /* openFrameworksDebug.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = openFrameworksDebug.a; + remoteRef = E4328147138ABC890047C5CB /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXShellScriptBuildPhase section */ + E4B6FFFD0C3F9AB9008CF71C /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "cp -f ../../../libs/fmodex/lib/osx/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/libfmodex.dylib\"; install_name_tool -change ./libfmodex.dylib @executable_path/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME\";"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + E4B69B580A3A1756003C02F2 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */, + E4B69E210A3A1BDC003C02F2 /* testApp.cpp in Sources */, + 8DF1A08C1404702E00148E3B /* fft.cpp in Sources */, + 8DF1A08D1404702E00148E3B /* maxiFFT.cpp in Sources */, + 8DF1A08E1404702E00148E3B /* maxiGrains.cpp in Sources */, + 8DF1A08F1404702E00148E3B /* maxiMFCC.cpp in Sources */, + 8DF1A0901404702E00148E3B /* maximilian.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + E4EEB9AC138B136A00A80321 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = openFrameworks; + targetProxy = E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + E4B69B4E0A3A1720003C02F2 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; + buildSettings = { + ARCHS = "$(NATIVE_ARCH)"; + CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/"; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + GCC_AUTO_VECTORIZATION = YES; + GCC_ENABLE_SSE3_EXTENSIONS = YES; + GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_MODEL_TUNING = G5; + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; + GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; + GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO; + GCC_WARN_UNINITIALIZED_AUTOS = NO; + GCC_WARN_UNUSED_VALUE = NO; + GCC_WARN_UNUSED_VARIABLE = NO; + OTHER_CPLUSPLUSFLAGS = ( + "-D__MACOSX_CORE__", + "-lpthread", + ); + }; + name = Debug; + }; + E4B69B4F0A3A1720003C02F2 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; + buildSettings = { + ARCHS = "$(NATIVE_ARCH)"; + CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/"; + COPY_PHASE_STRIP = YES; + DEAD_CODE_STRIPPING = YES; + GCC_AUTO_VECTORIZATION = YES; + GCC_ENABLE_SSE3_EXTENSIONS = YES; + GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_UNROLL_LOOPS = YES; + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; + GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; + GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO; + GCC_WARN_UNINITIALIZED_AUTOS = NO; + GCC_WARN_UNUSED_VALUE = NO; + GCC_WARN_UNUSED_VARIABLE = NO; + OTHER_CPLUSPLUSFLAGS = ( + "-D__MACOSX_CORE__", + "-lpthread", + ); + }; + name = Release; + }; + E4B69B600A3A1757003C02F2 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", + ); + FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\""; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_MODEL_TUNING = G4; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h"; + INFOPLIST_FILE = "openFrameworks-Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_52)", + ); + PREBINDING = NO; + PRODUCT_NAME = "$(TARGET_NAME)Debug"; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + E4B69B610A3A1757003C02F2 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", + ); + FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\""; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_MODEL_TUNING = G4; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h"; + INFOPLIST_FILE = "openFrameworks-Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_1)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)", + ); + PREBINDING = NO; + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "emptyExample" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E4B69B4E0A3A1720003C02F2 /* Debug */, + E4B69B4F0A3A1720003C02F2 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "emptyExample" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E4B69B600A3A1757003C02F2 /* Debug */, + E4B69B610A3A1757003C02F2 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = E4B69B4C0A3A1720003C02F2 /* Project object */; +} diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/install.xml b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/install.xml new file mode 100644 index 0000000..58923be --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/install.xml @@ -0,0 +1,35 @@ + + 0.1 + Goldsmiths Creative Computing + http://www.maximilian.strangeloop.co.uk/ + + + + + + + + + + + + ../../../addons/ofxMaxim/src/ofxMaxim.h + + + + ../../../addons/ofxMaxim/libs/fft.h + ../../../addons/ofxMaxim/libs/fft.cpp + ../../../addons/ofxMaxim/libs/fftOctaveAnalyzer.h + ../../../addons/ofxMaxim/libs/fftOctaveAnalyzer.cpp + ../../../addons/ofxMaxim/libs/maximilian.h + ../../../addons/ofxMaxim/libs/maximilian.cpp + + + + + + ../../../addons/ofxMaxim/src + ../../../addons/ofxMaxim/libs + + + \ No newline at end of file diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/fft.cpp b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/fft.cpp new file mode 100644 index 0000000..3f13bd2 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/fft.cpp @@ -0,0 +1,608 @@ +/* + * maximilian + * platform independent synthesis library using portaudio or rtaudio + * + * Created by Mick Grierson on 29/12/2009. + * Copyright 2009 Mick Grierson & Strangeloop Limited. All rights reserved. + * Thanks to the Goldsmiths Creative Computing Team. + * Special thanks to Arturo Castro for the PortAudio implementation. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + */ +/* + + fft.cpp + + Based on K+R Numerical recipes in C and some other stuff hacked about. + + */ + +#include "fft.h" +#include +#include +#include +#include + +int **gFFTBitTable = NULL; +const int MaxFastBits = 16; + +int IsPowerOfTwo(int x) +{ + if (x < 2) + return false; + + if (x & (x - 1)) + return false; + + return true; +} + +int NumberOfBitsNeeded(int PowerOfTwo) +{ + int i; + + if (PowerOfTwo < 2) { + fprintf(stderr, "Error: FFT called with size %d\n", PowerOfTwo); + exit(1); + } + + for (i = 0;; i++) + if (PowerOfTwo & (1 << i)) + return i; +} + +int ReverseBits(int index, int NumBits) +{ + int i, rev; + + for (i = rev = 0; i < NumBits; i++) { + rev = (rev << 1) | (index & 1); + index >>= 1; + } + + return rev; +} + +void InitFFT() +{ +// gFFTBitTable = new int *[MaxFastBits]; + //use malloc for 16 byte alignment + gFFTBitTable = (int**) malloc(MaxFastBits * sizeof(int*)); + + int len = 2; + for (int b = 1; b <= MaxFastBits; b++) { + +// gFFTBitTable[b - 1] = new int[len]; + gFFTBitTable[b - 1] = (int*) malloc(len * sizeof(int)); + + for (int i = 0; i < len; i++) + gFFTBitTable[b - 1][i] = ReverseBits(i, b); + + len <<= 1; + } +} + +inline int FastReverseBits(int i, int NumBits) +{ + if (NumBits <= MaxFastBits) + return gFFTBitTable[NumBits - 1][i]; + else + return ReverseBits(i, NumBits); +} + +/* + * Complex Fast Fourier Transform + */ + +void FFT(int NumSamples, + bool InverseTransform, + float *RealIn, float *ImagIn, float *RealOut, float *ImagOut) +{ + int NumBits; /* Number of bits needed to store indices */ + int i, j, k, n; + int BlockSize, BlockEnd; + + double angle_numerator = 2.0 * M_PI; + float tr, ti; /* temp real, temp imaginary */ + + if (!IsPowerOfTwo(NumSamples)) { + fprintf(stderr, "%d is not a power of two\n", NumSamples); + exit(1); + } + + if (!gFFTBitTable) + InitFFT(); + + if (InverseTransform) + angle_numerator = -angle_numerator; + + NumBits = NumberOfBitsNeeded(NumSamples); + + /* + ** Do simultaneous data copy and bit-reversal ordering into outputs... + */ + + for (i = 0; i < NumSamples; i++) { + j = FastReverseBits(i, NumBits); + RealOut[j] = RealIn[i]; + ImagOut[j] = (ImagIn == NULL) ? 0.0 : ImagIn[i]; + } + + /* + ** Do the FFT itself... + */ + + BlockEnd = 1; + for (BlockSize = 2; BlockSize <= NumSamples; BlockSize <<= 1) { + + double delta_angle = angle_numerator / (double) BlockSize; + + float sm2 = sin(-2 * delta_angle); + float sm1 = sin(-delta_angle); + float cm2 = cos(-2 * delta_angle); + float cm1 = cos(-delta_angle); + float w = 2 * cm1; + float ar0, ar1, ar2, ai0, ai1, ai2; + + for (i = 0; i < NumSamples; i += BlockSize) { + ar2 = cm2; + ar1 = cm1; + + ai2 = sm2; + ai1 = sm1; + + for (j = i, n = 0; n < BlockEnd; j++, n++) { + ar0 = w * ar1 - ar2; + ar2 = ar1; + ar1 = ar0; + + ai0 = w * ai1 - ai2; + ai2 = ai1; + ai1 = ai0; + + k = j + BlockEnd; + tr = ar0 * RealOut[k] - ai0 * ImagOut[k]; + ti = ar0 * ImagOut[k] + ai0 * RealOut[k]; + + RealOut[k] = RealOut[j] - tr; + ImagOut[k] = ImagOut[j] - ti; + + RealOut[j] += tr; + ImagOut[j] += ti; + } + } + + BlockEnd = BlockSize; + } + + /* + ** Need to normalize if inverse transform... + */ + + if (InverseTransform) { + float denom = (float) NumSamples; + + for (i = 0; i < NumSamples; i++) { + RealOut[i] /= denom; + ImagOut[i] /= denom; + } + } +} + +/* + * Real Fast Fourier Transform + * + * This function was based on the code in Numerical Recipes in C. + * In Num. Rec., the inner loop is based on a single 1-based array + * of interleaved real and imaginary numbers. Because we have two + * separate zero-based arrays, our indices are quite different. + * Here is the correspondence between Num. Rec. indices and our indices: + * + * i1 <-> real[i] + * i2 <-> imag[i] + * i3 <-> real[n/2-i] + * i4 <-> imag[n/2-i] + */ + +void RealFFT(int NumSamples, float *RealIn, float *RealOut, float *ImagOut) +{ + int Half = NumSamples / 2; + int i; + + float theta = M_PI / Half; + + float *tmpReal = (float*) malloc(Half * sizeof(float)); + float *tmpImag = (float*) malloc(Half * sizeof(float)); + + for (i = 0; i < Half; i++) { + tmpReal[i] = RealIn[2 * i]; + tmpImag[i] = RealIn[2 * i + 1]; + } + + FFT(Half, 0, tmpReal, tmpImag, RealOut, ImagOut); + + float wtemp = float (sin(0.5 * theta)); + + float wpr = -2.0 * wtemp * wtemp; + float wpi = float (sin(theta)); + float wr = 1.0 + wpr; + float wi = wpi; + + int i3; + + float h1r, h1i, h2r, h2i; + + for (i = 1; i < Half / 2; i++) { + + i3 = Half - i; + + h1r = 0.5 * (RealOut[i] + RealOut[i3]); + h1i = 0.5 * (ImagOut[i] - ImagOut[i3]); + h2r = 0.5 * (ImagOut[i] + ImagOut[i3]); + h2i = -0.5 * (RealOut[i] - RealOut[i3]); + + RealOut[i] = h1r + wr * h2r - wi * h2i; + ImagOut[i] = h1i + wr * h2i + wi * h2r; + RealOut[i3] = h1r - wr * h2r + wi * h2i; + ImagOut[i3] = -h1i + wr * h2i + wi * h2r; + + wr = (wtemp = wr) * wpr - wi * wpi + wr; + wi = wi * wpr + wtemp * wpi + wi; + } + + RealOut[0] = (h1r = RealOut[0]) + ImagOut[0]; + ImagOut[0] = h1r - ImagOut[0]; + + delete[]tmpReal; + delete[]tmpImag; +} + +/* + * PowerSpectrum + * + * This function computes the same as RealFFT, above, but + * adds the squares of the real and imaginary part of each + * coefficient, extracting the power and throwing away the + * phase. + * + * For speed, it does not call RealFFT, but duplicates some + * of its code. + */ + +void PowerSpectrum(int NumSamples, float *In, float *Out) +{ + int Half = NumSamples / 2; + int i; + + float theta = M_PI / Half; + + float *tmpReal = new float[Half]; + float *tmpImag = new float[Half]; + float *RealOut = new float[Half]; + float *ImagOut = new float[Half]; + + for (i = 0; i < Half; i++) { + tmpReal[i] = In[2 * i]; + tmpImag[i] = In[2 * i + 1]; + } + + FFT(Half, 0, tmpReal, tmpImag, RealOut, ImagOut); + + float wtemp = float (sin(0.5 * theta)); + + float wpr = -2.0 * wtemp * wtemp; + float wpi = float (sin(theta)); + float wr = 1.0 + wpr; + float wi = wpi; + + int i3; + + float h1r, h1i, h2r, h2i, rt, it; + //float total=0; + + for (i = 1; i < Half / 2; i++) { + + i3 = Half - i; + + h1r = 0.5 * (RealOut[i] + RealOut[i3]); + h1i = 0.5 * (ImagOut[i] - ImagOut[i3]); + h2r = 0.5 * (ImagOut[i] + ImagOut[i3]); + h2i = -0.5 * (RealOut[i] - RealOut[i3]); + + rt = h1r + wr * h2r - wi * h2i; //printf("Realout%i = %f",i,rt);total+=fabs(rt); + it = h1i + wr * h2i + wi * h2r; // printf(" Imageout%i = %f\n",i,it); + + Out[i] = rt * rt + it * it; + + rt = h1r - wr * h2r + wi * h2i; + it = -h1i + wr * h2i + wi * h2r; + + Out[i3] = rt * rt + it * it; + + wr = (wtemp = wr) * wpr - wi * wpi + wr; + wi = wi * wpr + wtemp * wpi + wi; + } + //printf("total = %f\n",total); + rt = (h1r = RealOut[0]) + ImagOut[0]; + it = h1r - ImagOut[0]; + Out[0] = rt * rt + it * it; + + rt = RealOut[Half / 2]; + it = ImagOut[Half / 2]; + Out[Half / 2] = rt * rt + it * it; + + delete[]tmpReal; + delete[]tmpImag; + delete[]RealOut; + delete[]ImagOut; +} + +/* + * Windowing Functions + */ + +int NumWindowFuncs() +{ + return 4; +} + +char *WindowFuncName(int whichFunction) +{ + switch (whichFunction) { + default: + case 0: + return "Rectangular"; + case 1: + return "Bartlett"; + case 2: + return "Hamming"; + case 3: + return "Hanning"; + } +} + +void WindowFunc(int whichFunction, int NumSamples, float *in) +{ + int i; + + if (whichFunction == 1) { + // Bartlett (triangular) window + for (i = 0; i < NumSamples / 2; i++) { + in[i] *= (i / (float) (NumSamples / 2)); + in[i + (NumSamples / 2)] *= + (1.0 - (i / (float) (NumSamples / 2))); + } + } + + if (whichFunction == 2) { + // Hamming + for (i = 0; i < NumSamples; i++) + in[i] *= 0.54 - 0.46 * cos(2 * M_PI * i / (NumSamples - 1)); + } + + if (whichFunction == 3) { + // Hanning + for (i = 0; i < NumSamples; i++) + in[i] *= 0.50 - 0.50 * cos(2 * M_PI * i / (NumSamples - 1)); + } +} + +void fft::genWindow(int whichFunction, int NumSamples, float *window) +{ + int i; + + if (whichFunction == 1) { + // Bartlett (triangular) window + for (i = 0; i < NumSamples / 2; i++) { + window[i] = (i / (float) (NumSamples / 2)); + window[i + (NumSamples / 2)] = + (1.0 - (i / (float) (NumSamples / 2))); + } + } + + if (whichFunction == 2) { + // Hamming + for (i = 0; i < NumSamples; i++) + window[i] = 0.54 - 0.46 * cos(2 * M_PI * i / (NumSamples - 1)); + } + + if (whichFunction == 3) { + // Hanning + for (i = 0; i < NumSamples; i++) + window[i] = 0.50 - 0.50 * cos(2 * M_PI * i / (NumSamples - 1)); + } +} + +/* constructor */ +fft::fft(int fftSize) { + n = fftSize; + half = fftSize / 2; + //use malloc for 16 byte alignment + in_real = (float *) malloc(n * sizeof(float)); + in_img = (float *) malloc(n * sizeof(float)); + out_real = (float *) malloc(n * sizeof(float)); + out_img = (float *) malloc(n * sizeof(float)); + +#ifdef __APPLE_CC__ + log2n = log2(n); + A.realp = (float *) malloc(half * sizeof(float)); + A.imagp = (float *) malloc(half * sizeof(float)); + setupReal = vDSP_create_fftsetup(log2n, FFT_RADIX2); + if (setupReal == NULL) { + printf("\nFFT_Setup failed to allocate enough memory for" + "the real FFT.\n"); + } + polar = (float *) malloc(n * sizeof(float)); +#endif +} + +/* destructor */ +fft::~fft() { + delete[] in_real, out_real, in_img, out_img; +#ifdef __APPLE_CC__ + vDSP_destroy_fftsetup(setupReal); + delete[] A.realp; + delete[] A.imagp; + delete[] polar; +#endif + +} + +/* Calculate the power spectrum */ +void fft::powerSpectrum(int start, float *data, float *window, float *magnitude,float *phase) { + int i; + + //windowing + for (i = 0; i < n; i++) { + in_real[i] = data[start + i] * window[i]; + } + + + RealFFT(n, in_real, out_real, out_img); + + for (i = 0; i < half; i++) { + /* compute power */ + float power = out_real[i]*out_real[i] + out_img[i]*out_img[i]; + /* compute magnitude and phase */ + magnitude[i] = sqrt(power); + phase[i] = atan2(out_img[i],out_real[i]); + +// if (magnitude[i] < 0.000001){ // less than 0.1 nV +// magnitude[i] = 0; // out of range +// } else { +// magnitude[i] = 20.0*log10(magnitude[i] + 1); // get to to db scale +// } + } + +} + +void fft::convToDB(float *in, float *out) { + for (int i = 0; i < half; i++) { + if (in[i] < 0.000001){ // less than 0.1 nV + out[i] = 0; // out of range + } else { + out[i] = 20.0*log10(in[i] + 1); // get to to db scale + } + } +} + + +#ifdef __APPLE_CC__ + +/* Calculate the power spectrum */ +void fft::powerSpectrum_vdsp(int start, float *data, float *window, float *magnitude,float *phase) { + + uint32_t i; + + //multiply by window + vDSP_vmul(data, 1, window, 1, in_real, 1, n); + + //convert to split complex format - evens and odds + vDSP_ctoz((COMPLEX *) in_real, 2, &A, 1, half); + + + //calc fft + vDSP_fft_zrip(setupReal, &A, 1, log2n, FFT_FORWARD); + + //scale by 2 (see vDSP docs) + static float scale=0.5 ; + vDSP_vsmul(A.realp, 1, &scale, A.realp, 1, half); + vDSP_vsmul(A.imagp, 1, &scale, A.imagp, 1, half); + + //back to split complex format + vDSP_ztoc(&A, 1, (COMPLEX*) out_real, 2, half); + + //convert to polar + vDSP_polar(out_real, 2, polar, 2, half); + + for (i = 0; i < half; i++) { + magnitude[i]=polar[2*i]+1.0; + phase[i]=polar[2*i + 1]; + } + + + +} + +void fft::convToDB_vdsp(float *in, float *out) { + float ref = 1.0; + vDSP_vdbcon(in, 1, &ref, out, 1, half, 1); + //get rid of any -infs + float vmin=0.0; + float vmax=9999999.0; + vDSP_vclip(out, 1, &vmin, &vmax, out, 1, half); +} + +#endif + +void fft::inversePowerSpectrum(int start, float *finalOut, float *window, float *magnitude,float *phase) { + int i; + + /* get real and imag part */ + for (i = 0; i < half; i++) { +// float mag = pow(10.0, magnitude[i] / 20.0) - 1.0; +// in_real[i] = mag *cos(phase[i]); +// in_img[i] = mag *sin(phase[i]); + in_real[i] = magnitude[i] *cos(phase[i]); + in_img[i] = magnitude[i] *sin(phase[i]); + } + + /* zero negative frequencies */ + memset(in_real+half, half, 0.0); + memset(in_img+half, half, 0.0); + + FFT(n, 1, in_real, in_img, out_real, out_img); // second parameter indicates inverse transform + + for (i = 0; i < n; i++) { + finalOut[start + i] += out_real[i] * window[i] + ; + } + +} + + +#ifdef __APPLE_CC__ +void fft::inversePowerSpectrum_vdsp(int start, float *finalOut, float *window, float *magnitude,float *phase) { + uint32_t i; + + for (i = 0; i < half; i++) { +// polar[2*i] = pow(10.0, magnitude[i] / 20.0) - 1.0; + polar[2*i] = magnitude[i] - 1.0; + polar[2*i + 1] = phase[i]; + } + + vDSP_rect(polar, 2, in_real, 2, half); + + vDSP_ctoz((COMPLEX*) in_real, 2, &A, 1, half); + vDSP_fft_zrip(setupReal, &A, 1, log2n, FFT_INVERSE); + vDSP_ztoc(&A, 1, (COMPLEX*) out_real, 2, half); + + static float scale = 1./n; + vDSP_vsmul(out_real, 1, &scale, out_real, 1, n); + + //multiply by window + vDSP_vmul(out_real, 1, window, 1, finalOut, 1, n); + +} + +#endif diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/fft.h b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/fft.h new file mode 100644 index 0000000..f7e1947 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/fft.h @@ -0,0 +1,80 @@ +/* + * maximilian + * platform independent synthesis library using portaudio or rtaudio + * + * Created by Mick Grierson on 29/12/2009. + * Copyright 2009 Mick Grierson & Strangeloop Limited. All rights reserved. + * Thanks to the Goldsmiths Creative Computing Team. + * Special thanks to Arturo Castro for the PortAudio implementation. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + */ + +#ifndef _FFT +#define _FFT + +#ifndef M_PI +#define M_PI 3.14159265358979323846 /* pi */ +#endif + +#ifdef __APPLE_CC__ + #include + #warning Please link against the Accelerate framework +#endif + + + +class fft { + +public: + + fft(int fftSize); + ~fft(); + + int n; //fftSize + int half; //halfFFTSize + + float *in_real, *out_real, *in_img, *out_img; + +#ifdef __APPLE_CC__ + int log2n; //log2(n); + FFTSetup setupReal; + COMPLEX_SPLIT A; + float *polar; + void powerSpectrum_vdsp(int start, float *data, float *window, float *magnitude,float *phase); + void inversePowerSpectrum_vdsp(int start, float *finalOut, float *window, float *magnitude,float *phase); + void convToDB_vdsp(float *in, float *out); +#endif; + + /* Calculate the power spectrum */ + void powerSpectrum(int start, float *data, float *window, float *magnitude, float *phase); + /* ... the inverse */ + void inversePowerSpectrum(int start, float *finalOut, float *window, float *magnitude,float *phase); + void convToDB(float *in, float *out); + + static void genWindow(int whichFunction, int NumSamples, float *window); + +}; + + +#endif diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maxiFFT.cpp b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maxiFFT.cpp new file mode 100644 index 0000000..36034b2 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maxiFFT.cpp @@ -0,0 +1,290 @@ +/* + * maximilian + * platform independent synthesis library using portaudio or rtaudio + * + * Created by Mick Grierson on 29/12/2009. + * Copyright 2009 Mick Grierson & Strangeloop Limited. All rights reserved. + * Thanks to the Goldsmiths Creative Computing Team. + * Special thanks to Arturo Castro for the PortAudio implementation. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + */ + +#include "maxiFFT.h" +#include "maximilian.h" +#include +#include "math.h" + +using namespace std; + + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//F F T +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +void maxiFFT::setup(int _fftSize, int _windowSize, int _hopSize) { + _fft = new fft(_fftSize); + fftSize = _fftSize; + windowSize = _windowSize; + bins = fftSize / 2; + hopSize = _hopSize; + buffer = (float *) malloc(fftSize * sizeof(float)); + magnitudes = (float *) malloc(bins * sizeof(float)); + magnitudesDB = (float *) malloc(bins * sizeof(float)); + phases = (float *) malloc(bins * sizeof(float)); + avgPower = new float; + memset(buffer, 0, fftSize * sizeof(float)); + memset(magnitudes, 0, bins * sizeof(float)); + memset(magnitudesDB, 0, bins * sizeof(float)); + memset(phases, 0, bins * sizeof(float)); + *avgPower = 0; + pos =windowSize - hopSize; + newFFT = 0; + window = (float*) malloc(fftSize * sizeof(float)); + memset(window, 0, fftSize * sizeof(float)); + fft::genWindow(3, windowSize, window); +} + +bool maxiFFT::process(float value) { + //add value to buffer at current pos + buffer[pos++] = value; + //if buffer full, run fft + newFFT = pos == windowSize; + if (newFFT) { +#if defined(__APPLE_CC__) && !defined(_NO_VDSP) + _fft->powerSpectrum_vdsp(0, buffer, window, magnitudes, phases); +#else + _fft->powerSpectrum(0, buffer, window, magnitudes, phases); +#endif + //shift buffer back by one hop size + memcpy(buffer, buffer + hopSize, (windowSize - hopSize) * sizeof(float)); + //set the new data to zero (is this necessary?, it will get overwritten) + memset(buffer + windowSize - hopSize, 0, hopSize * sizeof(float)); + //reset pos to start of hop + pos= windowSize - hopSize; + } + return newFFT; +} + +float* maxiFFT::magsToDB() { +#if defined(__APPLE_CC__) && !defined(_NO_VDSP) + _fft->convToDB_vdsp(magnitudes, magnitudesDB); +#else + _fft->convToDB(magnitudes, magnitudesDB); +#endif + return magnitudesDB; +} + +float maxiFFT::spectralFlatness() { + float geometricMean=0, arithmaticMean=0; + for(int i=0; i < bins; i++) { + if (magnitudes[i] != 0) + geometricMean += log(magnitudes[i]); + arithmaticMean += magnitudes[i]; + } + geometricMean = exp(geometricMean / (float)bins); + arithmaticMean /= (float)bins; + return arithmaticMean !=0 ? geometricMean / arithmaticMean : 0; +} + +float maxiFFT::spectralCentroid() { + float x=0, y=0; + for(int i=0; i < bins; i++) { + x += fabs(magnitudes[i]) * (i+1); + y += fabs(magnitudes[i]); + } + return y != 0 ? x / y * ((float) maxiSettings::sampleRate / fftSize) : 0; +} + + + +maxiFFT::~maxiFFT() { + delete _fft; + if (buffer) + delete[] buffer,magnitudes,phases,window, avgPower; +} + + + + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//I N V E R S E F F T +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +void maxiIFFT::setup(int _fftSize, int _windowSize, int _hopSize) { + _fft = new fft(_fftSize); + fftSize = _fftSize; + windowSize = _windowSize; + bins = fftSize / 2; + hopSize = _hopSize; + buffer = (float *) malloc(fftSize * sizeof(float)); + ifftOut = (float *) malloc(fftSize * sizeof(float)); + memset(buffer, 0, windowSize * sizeof(float)); + pos =0; + window = (float*) malloc(fftSize * sizeof(float)); + memset(window, 0, fftSize * sizeof(float)); + fft::genWindow(3, windowSize, window); +} + +float maxiIFFT::process(float *magnitudes, float *phases) { + if (0==pos) { + //do ifft + memset(ifftOut, 0, fftSize * sizeof(float)); +#if defined(__APPLE_CC__) && !defined(_NO_VDSP) + _fft->inversePowerSpectrum_vdsp(0, ifftOut, window, magnitudes, phases); +#else + _fft->inversePowerSpectrum(0, ifftOut, window, magnitudes, phases); +#endif + //add to output + //shift back by one hop + memcpy(buffer, buffer+hopSize, (fftSize - hopSize) * sizeof(float)); + //clear the end chunk + memset(buffer + (fftSize - hopSize), 0, hopSize * sizeof(float)); + //merge new output + for(int i=0; i < fftSize; i++) { + buffer[i] += ifftOut[i]; + } + } + + nextValue = buffer[pos]; + //limit the values, this alg seems to spike occasionally (and break the audio drivers) + if (nextValue > 0.99999f) nextValue = 0.99999f; + if (nextValue < -0.99999f) nextValue = -0.99999f; + if (hopSize == ++pos ) { + pos=0; + } + + return nextValue; +} + +maxiIFFT::~maxiIFFT() { + delete _fft; + delete[] ifftOut, buffer, window; +}; + + + + + + + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//O C T A V E A N A L Y S E R +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + + +void maxiFFTOctaveAnalyzer::setup(float samplingRate, int nBandsInTheFFT, int nAveragesPerOctave){ + + samplingRate = samplingRate; + nSpectrum = nBandsInTheFFT; + spectrumFrequencySpan = (samplingRate / 2.0f) / (float)(nSpectrum); + nAverages = nBandsInTheFFT; + // fe: 2f for octave bands, sqrt(2) for half-octave bands, cuberoot(2) for third-octave bands, etc + if (nAveragesPerOctave==0) // um, wtf? + nAveragesPerOctave = 1; + nAveragesPerOctave = nAveragesPerOctave; + averageFrequencyIncrement = pow(2.0f, 1.0f/(float)(nAveragesPerOctave)); + // this isn't currently configurable (used once here then no effect), but here's some reasoning: + // 43 is a good value if you want to approximate "computer" octaves: 44100/2/2/2/2/2/2/2/2/2/2 + // 55 is a good value if you'd rather approximate A-440 octaves: 440/2/2/2 + // 65 is a good value if you'd rather approximate "middle-C" octaves: ~262/2/2 + // you could easily double it if you felt the lowest band was just rumble noise (as it probably is) + // but don't go much smaller unless you have a huge fft window size (see below for more why) + // keep in mind, if you change it, that the number of actual bands may change +/-1, and + // for some values, the last averaging band may not be very useful (may extend above nyquist) + firstOctaveFrequency = 55.0f; + // for each spectrum[] bin, calculate the mapping into the appropriate average[] bin. + // this gives us roughly log-sized averaging bins, subject to how "fine" the spectrum bins are. + // with more spectrum bins, you can better map into the averaging bins (especially at low + // frequencies) or use more averaging bins per octave. with an fft window size of 2048, + // sampling rate of 44100, and first octave around 55, that's about enough to do half-octave + // analysis. if you don't have enough spectrum bins to map adequately into averaging bins + // at the requested number per octave then you'll end up with "empty" averaging bins, where + // there is no spectrum available to map into it. (so... if you have "nonreactive" averages, + // either increase fft buffer size, or decrease number of averages per octave, etc) + spe2avg = new int[nSpectrum]; + int avgidx = 0; + float averageFreq = firstOctaveFrequency; // the "top" of the first averaging bin + // we're looking for the "top" of the first spectrum bin, and i'm just sort of + // guessing that this is where it is (or possibly spectrumFrequencySpan/2?) + // ... either way it's probably close enough for these purposes + float spectrumFreq = spectrumFrequencySpan; + for (int speidx=0; speidx < nSpectrum; speidx++) { + while (spectrumFreq > averageFreq) { + avgidx++; + averageFreq *= averageFrequencyIncrement; + } + spe2avg[speidx] = avgidx; + spectrumFreq += spectrumFrequencySpan; + } + nAverages = avgidx; + averages = new float[nAverages]; + peaks = new float[nAverages]; + peakHoldTimes = new int[nAverages]; + peakHoldTime = 0; // arbitrary + peakDecayRate = 0.9f; // arbitrary + linearEQIntercept = 1.0f; // unity -- no eq by default + linearEQSlope = 0.0f; // unity -- no eq by default +} + +void maxiFFTOctaveAnalyzer::calculate(float * fftData){ + + int last_avgidx = 0; // tracks when we've crossed into a new averaging bin, so store current average + float sum = 0.0f; // running total of spectrum data + int count = 0; // count of spectrums accumulated (for averaging) + for (int speidx=0; speidx < nSpectrum; speidx++) { + count++; + sum += fftData[speidx] * (linearEQIntercept + (float)(speidx) * linearEQSlope); + int avgidx = spe2avg[speidx]; + if (avgidx != last_avgidx) { + + for (int j = last_avgidx; j < avgidx; j++){ + averages[j] = sum / (float)(count); + } + count = 0; + sum = 0.0f; + } + last_avgidx = avgidx; + } + // the last average was probably not calculated... + if ((count > 0) && (last_avgidx < nAverages)){ + averages[last_avgidx] = sum / (float)(count); + } + + // update the peaks separately + for (int i=0; i < nAverages; i++) { + if (averages[i] >= peaks[i]) { + // save new peak level, also reset the hold timer + peaks[i] = averages[i]; + peakHoldTimes[i] = peakHoldTime; + } else { + // current average does not exceed peak, so hold or decay the peak + if (peakHoldTimes[i] > 0) { + peakHoldTimes[i]--; + } else { + peaks[i] *= peakDecayRate; + } + } + } +} diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maxiFFT.h b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maxiFFT.h new file mode 100644 index 0000000..d099e84 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maxiFFT.h @@ -0,0 +1,128 @@ +/* + * maximilian + * platform independent synthesis library using portaudio or rtaudio + * + * Created by Mick Grierson on 29/12/2009. + * Copyright 2009 Mick Grierson & Strangeloop Limited. All rights reserved. + * Thanks to the Goldsmiths Creative Computing Team. + * Special thanks to Arturo Castro for the PortAudio implementation. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + */ + +#ifndef _MAXI_FFT +#define _MAXI_FFT + +//#define _NO_VDSP //set this if you don't want to use apple's vDSP fft functions + + +#include "fft.h" +#include "stddef.h" + +class maxiFFT { + +public: + maxiFFT(){ + _fft = NULL; + buffer = magnitudes = phases = window = avgPower = NULL; + }; + ~maxiFFT(); + void setup(int fftSize, int windowSize, int hopSize); + bool process(float value); + float* magsToDB(); + float *magnitudes, *phases, *magnitudesDB; + float *avgPower; + int windowSize; + int hopSize; + int bins; + + //features + float spectralFlatness(); + float spectralCentroid(); + +private: + float *buffer, *window; + int pos; + float nextValue; + int fftSize; + fft *_fft; + bool newFFT; + +}; + +class maxiIFFT { + +public: + maxiIFFT(){ + _fft=0; + }; + ~maxiIFFT(); + void setup(int fftSize, int windowSize, int hopSize); + float process(float *magnitudes, float *phases); + +private: + float *ifftOut, *buffer, *window; + int windowSize; + int bins; + int hopSize; + int pos; + float nextValue; + int fftSize; + fft *_fft; +}; + + +class maxiFFTOctaveAnalyzer { +/*based on code by David Bollinger, http://www.davebollinger.com/ + */ +public: + + float samplingRate; // sampling rate in Hz (needed to calculate frequency spans) + int nSpectrum; // number of spectrum bins in the fft + int nAverages; // number of averaging bins here + int nAveragesPerOctave; // number of averages per octave as requested by user + float spectrumFrequencySpan; // the "width" of an fft spectrum bin in Hz + float firstOctaveFrequency; // the "top" of the first averaging bin here in Hz + float averageFrequencyIncrement; // the root-of-two multiplier between averaging bin frequencies + float * averages; // the actual averages + float * peaks; // peaks of the averages, aka "maxAverages" in other implementations + int * peakHoldTimes; // how long to hold THIS peak meter? decay if == 0 + int peakHoldTime; // how long do we hold peaks? (in fft frames) + float peakDecayRate; // how quickly the peaks decay: 0f=instantly .. 1f=not at all + int * spe2avg; // the mapping between spectrum[] indices and averages[] indices + // the fft's log equalizer() is no longer of any use (it would be nonsense to log scale + // the spectrum values into log-sized average bins) so here's a quick-and-dirty linear + // equalizer instead: + float linearEQSlope; // the rate of linear eq + float linearEQIntercept; // the base linear scaling used at the first averaging bin + // the formula is: spectrum[i] * (linearEQIntercept + i * linearEQSlope) + // so.. note that clever use of it can also provide a "gain" control of sorts + // (fe: set intercept to 2f and slope to 0f to double gain) + + void setup(float samplingRate, int nBandsInTheFFT, int nAveragesPerOctave); + + void calculate(float * fftData); + +}; + +#endif \ No newline at end of file diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maxiGrains.cpp b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maxiGrains.cpp new file mode 100644 index 0000000..951f3b5 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maxiGrains.cpp @@ -0,0 +1,6 @@ +#include "maxiGrains.h" + + + + + diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maxiGrains.h b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maxiGrains.h new file mode 100644 index 0000000..d17ffc9 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maxiGrains.h @@ -0,0 +1,443 @@ + + +#ifndef _MAXI_GRAINS_H +#define _MAXI_GRAINS_H +#include "maximilian.h" + +#if defined(__APPLE_CC__) +#include "accelerate/accelerate.h"; +//Mac users can uncommment the line below to use Apple's accelerate framework for calculating grains. This gives ~300% speed improvement and better sound quality, but doesn't work well on all machines. +//#define MAXIGRAINFAST +#endif + +#define PI 3.1415926535897932384626433832795028841968 + +#include + +typedef unsigned long ulong; + +//window functions from http://en.wikipedia.org/wiki/Window_function#High-_and_moderate-resolution_windows + +struct hannWinFunctor { + inline double operator()(ulong windowLength, ulong windowPos) { + return 0.5 * (1.0 - cos((2.0 * PI * windowPos) / (windowLength - 1))); + } +}; + +//this window can produce clicks +struct hammingWinFunctor { + inline double operator()(ulong windowLength, ulong windowPos) { + return 0.54 - (0.46 * cos((2.0 * PI * windowPos) / (windowLength - 1))); + } +}; + + +struct cosineWinFunctor { + inline double operator()(ulong windowLength, ulong windowPos) { + return sin((PI * windowPos) / (windowLength - 1)); + } +}; + +struct rectWinFunctor { + inline double operator()(ulong windowLength, ulong windowPos) { + return 1; + } +}; + +struct triangleWinFunctor { + inline double operator()(ulong windowLength, ulong windowPos) { + return (2.0 / (windowLength-1.0)) * (((windowLength-1.0)/2.0) - fabs(windowPos - ((windowLength-1.0)/2.0))); + } +}; + +struct triangleNZWinFunctor { + //non zero end points + inline double operator()(ulong windowLength, ulong windowPos) { + return (2.0 / windowLength) * ((windowLength/2.0) - fabs(windowPos - ((windowLength-1.0)/2.0))); + } +}; + +struct blackmanHarrisWinFunctor { + inline double operator()(ulong windowLength, ulong windowPos) { + return 0.35875 - + (0.48829 * cos((2 * PI * windowPos) / (windowLength-1))) + + (0.14128 * cos((4 * PI * windowPos) / (windowLength-1))) + + (0.01168 * cos((6 * PI * windowPos) / (windowLength-1))); + } +}; + +struct blackmanNutallWinFunctor { + inline double operator()(ulong windowLength, ulong windowPos) { + return 0.3635819 - + (0.4891775 * cos((2 * PI * windowPos) / (windowLength-1))) + + (0.1365995 * cos((4 * PI * windowPos) / (windowLength-1))) + + (0.0106411 * cos((6 * PI * windowPos) / (windowLength-1))); + } +}; + +template +class maxiGrainWindowCache { +public: + unsigned int cacheSize; + + maxiGrainWindowCache() { + cacheSize = maxiSettings::sampleRate / 2.0; //allocate mem for up to 500ms grains + cache = (double**)malloc(cacheSize * sizeof(double*)); + for(int i=0; i < cacheSize; i++) { + cache[i] = NULL; + } + } + + ~maxiGrainWindowCache() { + for(int i=0; i < cacheSize; i++) { + if(NULL != cache[i]) { + delete[] cache[i]; + } + } + } + + double* getWindow(const unsigned int length) { + if (NULL == cache[length]) { + cache[length] = (double*)malloc(length * sizeof(double)); + for(int i=0; i < length; i++) { + cache[length][i] = F()(length, i); + } + } + return cache[length]; + } + +private: + double** cache; + +}; + +class maxiGrainBase { +public: + virtual double play() = 0; + bool finished; +}; + +template +class maxiGrain : public maxiGrainBase { +public: + maxiSample *sample; + double pos; + double dur; + ulong sampleStartPos; + ulong sampleIdx; + ulong sampleDur; + ulong sampleEndPos; + double freq; + double speed; + // F winFunc; + double inc; + double frequency; + double* window; +#if defined(__APPLE_CC__) && defined(MAXIGRAINFAST) + double* grainSamples; +#endif + /* + position between 0.0 and 1.0 + duration in seconds + */ + maxiGrain(maxiSample *sample, const double position, const double duration, const double speed, maxiGrainWindowCache *windowCache) :sample(sample), pos(position), dur(duration), speed(speed) + { + sampleStartPos = sample->length * pos; + sampleDur = dur * (double)sample->mySampleRate; + sampleDurMinusOne = sampleDur - 1; + sampleIdx = 0; + finished = 0; + freq = 1.0 / dur; + sampleEndPos = sampleStartPos + sampleDur; + frequency = freq * speed; + if (frequency > 0) { + pos = sampleStartPos; + }else{ + pos = sampleEndPos; + } + inc = sampleDur/(maxiSettings::sampleRate/frequency); + window = windowCache->getWindow(sampleDur); + +#if defined(__APPLE_CC__) && defined(MAXIGRAINFAST) + //premake the grain using fast vector functions, and quadratic interpolation + double *sourceData = (double*)malloc(sampleDur * sizeof(double)); + short* buffer = (short *)sample->myData; + //convert sample to double data + vDSP_vflt16D(buffer + sampleStartPos, 1, sourceData, 1, min(sampleDur, sample->length - sampleStartPos)); + //todo: wraping code + + grainSamples = (double*)malloc(sampleDur * sizeof(double)); + //make list of interpolation indexes + double* interpIndexes = (double*)malloc(sampleDur * sizeof(double)); + double interpPos = sampleStartPos; + for(int i=0; i < sampleDur; i++) { + interpIndexes[i] = interpPos - sampleStartPos; + interpPos += fabs(inc); + } + vDSP_vqintD(sourceData, interpIndexes, 1, grainSamples, 1, sampleDur, sampleDur); + if (frequency < 0) { + vDSP_vrvrsD(grainSamples,1, sampleDur); + } + static double divFactor = 32767.0; + vDSP_vsdivD(grainSamples, 1, &divFactor, grainSamples, 1, sampleDur); + vDSP_vmulD(grainSamples, 1, window, 1, grainSamples, 1, sampleDur); + delete sourceData, interpIndexes; +#endif + } + + ~maxiGrain() { +#if defined(__APPLE_CC__) && defined(MAXIGRAINFAST) + delete[] grainSamples; +#endif + } + + double play() { + double output = 0.0; + if (!finished) { +#if defined(__APPLE_CC__) && defined(MAXIGRAINFAST) + output = grainSamples[sampleIdx]; +#else + envValue = window[sampleIdx]; + double remainder; + long a,b; + short* buffer = (short *)sample->myData; + if (frequency >0.) { + pos += inc; + long posl = static_cast(pos); + remainder = pos - posl; + a=posl++; + if (a>=sample->length) { + a=posl-1; + } + b = posl+2; + if (b>=sample->length) { + b=sample->length-1; + } + output = (double) ((1-remainder) * buffer[a] + + remainder * buffer[b])/32767;//linear interpolation + } else { + frequency=frequency-(frequency+frequency); + pos += inc; + long posl = static_cast(pos); + remainder = pos - posl; + if (posl-1>=0) { + a=posl-1; + } + else { + a=0; + } + if (posl-2>=0) { + b=posl-2; + } + else { + b=0; + } + output = (double) ((-1-remainder) * buffer[a] + + remainder * buffer[b])/32767;//linear interpolation + } + output *= envValue; +#endif + } + sampleIdx++; + if (sampleIdx >= sampleDur) finished = 1; + return output; + } + +private: + maxiGrain(); + double envValue; + ulong sampleDurMinusOne; +}; + + +typedef list grainList; + +class maxiGrainPlayer { +public: + grainList grains; + maxiSample *sample; + + maxiGrainPlayer(maxiSample *sample) : sample(sample) { + } + + void addGrain(maxiGrainBase *g) { + grains.push_back(g); + } + + double play() { + double total = 0.0; + for(grainList::iterator it = grains.begin(); it != grains.end(); ++it) { + total += (*it)->play(); + if ((*it)->finished) { + delete(*it); + grains.erase(it); + } + } + return total; + } +}; + +template +class maxiTimestretch { +public: + double position; + long cycles; + maxiSample *sample; + maxiGrainPlayer *grainPlayer; + maxiGrainWindowCache windowCache; + double randomOffset; + + maxiTimestretch(maxiSample *sample) : sample(sample) { + position=0; + cycles=0; + grainPlayer = new maxiGrainPlayer(sample); + randomOffset=0; + } + + ~maxiTimestretch() { + delete grainPlayer; + } + + double play(double speed, double grainLength, int overlaps, double posMod=0.0) { + position = position + (1 * speed); + cycles++; + if (position > sample->length) position=0; + if (position < 0) position = sample->length; + double cycleLength = grainLength * maxiSettings::sampleRate / overlaps; + double cycleMod = fmod(cycles, cycleLength + randomOffset); + if (0 == floor(cycleMod)) { + // cout << cycleMod << endl; + speed = (speed > 0 ? 1 : -1); + // speed = speed - ((cycleMod / cycleLength) * 0.1); + maxiGrain *g = new maxiGrain(sample, max(min(1.0,(position / sample->length) + posMod),0.0), grainLength, speed, &windowCache); + grainPlayer->addGrain(g); + // cout << grainPlayer->grains.size() << endl; + // randomOffset = rand() % 10; + // randomOffset = rand() % 10; + } + return grainPlayer->play(); + } + + double play2(double pos, double grainLength, int overlaps) { + cycles++; + pos *= sample->length; + if (0 == floor(fmod(cycles, grainLength * maxiSettings::sampleRate / overlaps))) { + maxiGrain *g = new maxiGrain(sample, max(min(1.0,(pos / sample->length)),0.0), grainLength, 1, &windowCache); + grainPlayer->addGrain(g); + } + return grainPlayer->play(); + } +}; + +//in maxiTimeStretch, the speed is either 1 or -1, and the actual speed value only affects the grain position +//in maxiPitchShift, speed is uncoupled from position and allowed to set it's value incrementally, resulting in pitchshift. +//with both high speed values and negative speed values there are some terrific artefacts! + +template +class maxiPitchShift { +public: + double position; + long cycles; + maxiSample *sample; + maxiGrainPlayer *grainPlayer; + maxiGrainWindowCache windowCache; + double randomOffset; + + maxiPitchShift(maxiSample *sample) : sample(sample) { + position=0; + cycles=0; + grainPlayer = new maxiGrainPlayer(sample); + randomOffset=0; + } + + ~maxiPitchShift() { + delete grainPlayer; + } + + double play(double speed, double grainLength, int overlaps, double posMod=0.0) { + position = position + 1; + cycles++; + if (position > sample->length) position=0; + if (position < 0) position = sample->length; + double cycleLength = grainLength * maxiSettings::sampleRate / overlaps; + double cycleMod = fmod(cycles, cycleLength + randomOffset); + if (0 == floor(cycleMod)) { + // cout << cycleMod << endl; + //speed = (speed > 0 ? 1 : -1); + speed = speed - ((cycleMod / cycleLength) * 0.1); + maxiGrain *g = new maxiGrain(sample, max(min(1.0,(position / sample->length) + posMod),0.0), grainLength, speed, &windowCache); + grainPlayer->addGrain(g); + // cout << grainPlayer->grains.size() << endl; + // randomOffset = rand() % 10; + // randomOffset = rand() % 10; + } + return grainPlayer->play(); + } + + double play2(double pos, double grainLength, int overlaps) { + cycles++; + pos *= sample->length; + if (0 == floor(fmod(cycles, grainLength * maxiSettings::sampleRate / overlaps))) { + maxiGrain *g = new maxiGrain(sample, max(min(1.0,(pos / sample->length)),0.0), grainLength, 1, &windowCache); + grainPlayer->addGrain(g); + } + return grainPlayer->play(); + } +}; + +//and here's maxiPitchStretch. Args to the play function are basically speed for 'pitch' and rate for playback rate. +//the rest is the same. + +template +class maxiPitchStretch { +public: + double position; + long cycles; + maxiSample *sample; + maxiGrainPlayer *grainPlayer; + maxiGrainWindowCache windowCache; + double randomOffset; + + maxiPitchStretch(maxiSample *sample) : sample(sample) { + position=0; + cycles=0; + grainPlayer = new maxiGrainPlayer(sample); + randomOffset=0; + } + + ~maxiPitchStretch() { + delete grainPlayer; + } + + double play(double speed, double rate, double grainLength, int overlaps, double posMod=0.0) { + position = position + (1 * rate); + cycles++; + if (position > sample->length) position=0; + if (position < 0) position = sample->length; + double cycleLength = grainLength * maxiSettings::sampleRate / overlaps; + double cycleMod = fmod(cycles, cycleLength + randomOffset); + if (0 == floor(cycleMod)) { + // cout << cycleMod << endl; + //speed = (speed > 0 ? 1 : -1); + speed = speed - ((cycleMod / cycleLength) * 0.1); + maxiGrain *g = new maxiGrain(sample, max(min(1.0,(position / sample->length) + posMod),0.0), grainLength, speed, &windowCache); + grainPlayer->addGrain(g); + // cout << grainPlayer->grains.size() << endl; + // randomOffset = rand() % 10; + // randomOffset = rand() % 10; + } + return grainPlayer->play(); + } + + double play2(double pos, double grainLength, int overlaps) { + cycles++; + pos *= sample->length; + if (0 == floor(fmod(cycles, grainLength * maxiSettings::sampleRate / overlaps))) { + maxiGrain *g = new maxiGrain(sample, max(min(1.0,(pos / sample->length)),0.0), grainLength, 1, &windowCache); + grainPlayer->addGrain(g); + } + return grainPlayer->play(); + } +}; + +#endif \ No newline at end of file diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maxiMFCC.cpp b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maxiMFCC.cpp new file mode 100644 index 0000000..e72fd75 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maxiMFCC.cpp @@ -0,0 +1,78 @@ +/* + * maxiMFCC.cpp + * mfccs + * + * Created by Chris on 08/03/2011. + * Copyright 2011 Goldsmiths Creative Computing. All rights reserved. + * + */ + +#include "maxiMFCC.h" + + + +template <> +void maxiMFCCAnalyser::dct(double *mfccs) { + vDSP_mmulD(melBands, 1, dctMatrix, 1, mfccs, 1, 1, numCoeffs, numFilters); + double n = (double) numCoeffs; + vDSP_vsdivD(mfccs, 1, &n, mfccs, 1, numCoeffs); +} + +template <> +void maxiMFCCAnalyser::dct(float *mfccs) { + vDSP_mmul(melBands, 1, dctMatrix, 1, mfccs, 1, 1, numCoeffs, numFilters); + float n = (float) numCoeffs; + vDSP_vsdiv(mfccs, 1, &n, mfccs, 1, numCoeffs); +} + +template <> +void maxiMFCCAnalyser::melFilterAndLogSquare(float* powerSpectrum) { +#ifdef __APPLE_CC__ + //conv to double + vDSP_vspdp(powerSpectrum, 1, doubleSpec, 1, numBins); + // vDSP_mmulD(doubleSpec, 1, melFilters, 1, melBands, 1, 1, 42, 512); + vDSP_mmulD(doubleSpec, 1, melFilters, 1, melBands, 1, 1, numFilters, numBins); +#endif + melFilterAndLogSq_Part2(); +} + + +template <> +void maxiMFCCAnalyser::melFilterAndLogSquare(float* powerSpectrum) { +#ifdef __APPLE_CC__ + vDSP_mmul(powerSpectrum, 1, melFilters, 1, melBands, 1, 1, numFilters, numBins); +#endif + melFilterAndLogSq_Part2(); +} + +template +void maxiMFCCAnalyser::melFilterAndLogSq_Part2() { +#ifdef __APPLE_CC__ +#else + for (int filter = 0;filter < numFilters;filter++) { + melBands[filter] = 0.0; + for (int bin=0;bin 0.000001 ? log(melBands[filter] * melBands[filter]) : 0.0; + } +} + + + + + + + + + + + + diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maxiMFCC.h b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maxiMFCC.h new file mode 100644 index 0000000..60bfe04 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maxiMFCC.h @@ -0,0 +1,204 @@ +/* + * maxiMFCC.h + * mfccs + * + * Created by Chris on 08/03/2011. + * Copyright 2011 Goldsmiths Creative Computing. All rights reserved. + * + + Based on Matthew Yee-King's MFCCMYK java class + */ + +#pragma once +#pragma pack(16) + +#include "maxiFFT.h" +#include +#include +#ifdef __APPLE_CC__ +#include +#endif + +using namespace std; + + +// implements this formula: +// mel = 2595 log10(Hz/700 + 1) +inline double hzToMel(double hz){ + return 2595.0 * (log10(hz/700.0 + 1.0)); +} + +// implements this formula +// Hz = 700 (10^(mel/2595) - 1) +inline double melToHz(double mel){ + return 700.0 * (pow(10, mel/2595.0) - 1.0); +} + +template +class maxiMFCCAnalyser { +public: + T *melBands; + maxiMFCCAnalyser():melFilters(NULL),dctMatrix(NULL), melBands(NULL){}; + ~maxiMFCCAnalyser() { + if (melFilters) { + delete[] melFilters; + delete[] melBands; + delete[] dctMatrix; +#ifdef __APPLE_CC__ + delete doubleSpec; +#endif + } + } + + void setup(unsigned int numBins, unsigned int numFilters, unsigned int numCoeffs, double minFreq, double maxFreq, unsigned int sampleRate) + { + this->numFilters = numFilters; + this->numCoeffs = numCoeffs; + this->minFreq = minFreq; + this->maxFreq = maxFreq; + this->sampleRate = sampleRate; + this->numBins = numBins; + melFilters = NULL; + melBands = (T*) malloc(sizeof(T) * numFilters); +#ifdef __APPLE_CC__ + doubleSpec = (T*)malloc(sizeof(T) * numBins); +#endif + //create new matrix + dctMatrix = (T*)malloc(sizeof(T) * numCoeffs * numFilters); + calcMelFilterBank(sampleRate, numBins); + createDCTCoeffs(); + } + void mfcc(float* powerSpectrum, T *mfccs) { + melFilterAndLogSquare(powerSpectrum); + dct(mfccs); + } + +private: + unsigned int numFilters, numCoeffs; + double minFreq, maxFreq; + unsigned int sampleRate; + T *melFilters; + unsigned int numBins; + T *dctMatrix; +#ifdef __APPLE_CC__ + T *doubleSpec; +#endif + +#ifdef __APPLE_CC__ + void dct(T *mfccs); //define later +#else + void dct(T *mfccs) { + for(int i=0; i < numCoeffs; i++) { + mfccs[i] = 0.0; + } + for(int i=0; i < numCoeffs; i++ ) { + for(int j=0; j < numFilters; j++) { + int idx = i + (j * numCoeffs); + mfccs[i] += (dctMatrix[idx] * melBands[j]); + } + } + for(int i=0; i < numCoeffs; i++) { + mfccs[i] /= numCoeffs; + } + } +#endif + + void melFilterAndLogSquare(float* powerSpectrum); + void melFilterAndLogSq_Part2(); + + + void calcMelFilterBank(double sampleRate, int numBins) { + + double mel, dMel, maxMel, minMel, nyquist, binFreq, start, end, thisF, nextF, prevF; + int numValidBins; + + // ignore bins over nyquist + numValidBins = numBins; + + nyquist = sampleRate/2; + if (maxFreq > nyquist) { + maxFreq = nyquist; + } + + maxMel = hzToMel(maxFreq); + minMel = hzToMel(minFreq); + + dMel = (maxMel - minMel) / (numFilters + 2 - 1); + + T *filtPos = (T*) malloc(sizeof(double) * (numFilters + 2)); + + // first generate an array of start and end freqs for each triangle + mel = minMel; + for (int i=0;i nextF || binFreq < prevF) { + // outside this filter + melFilters[idx] = 0; + //cout << "MFCCMYK: filter at " < maxiMFCC; +//typedef maxiMFCCAnalyser maxiFloatMFCC; diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maximilian.cpp b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maximilian.cpp new file mode 100644 index 0000000..e75ddf5 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maximilian.cpp @@ -0,0 +1,1027 @@ + +/* + * maximilian.cpp + * platform independent synthesis library using portaudio or rtaudio + * + * Created by Mick Grierson on 29/12/2009. + * Copyright 2009 Mick Grierson & Strangeloop Limited. All rights reserved. + * Thanks to the Goldsmiths Creative Computing Team. + * Special thanks to Arturo Castro for the PortAudio implementation. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + */ + +#include "maximilian.h" +#include "math.h" + + +//int channels=2; +//int samplerate=44100; +//int buffersize=1024; +float chandiv= 1; + +int maxiSettings::sampleRate = 44100; +int maxiSettings::channels = 2; +int maxiSettings::bufferSize = 1024; + +double sineBuffer[514]={0,0.012268,0.024536,0.036804,0.049042,0.06131,0.073547,0.085785,0.097992,0.1102,0.12241,0.13455,0.1467,0.15884,0.17093,0.18301,0.19507,0.20709,0.21909,0.23105,0.24295,0.25485,0.26669,0.2785,0.29025,0.30197,0.31366,0.32529,0.33685,0.34839,0.35986,0.37128,0.38266,0.39395,0.40521,0.41641,0.42752,0.4386,0.44958,0.46051,0.47137,0.48215,0.49286,0.50351,0.51407,0.52457,0.53497,0.54529,0.55554,0.5657,0.57578,0.58575,0.59567,0.60547,0.6152,0.62482,0.63437,0.6438,0.65314,0.66238,0.67151,0.68057,0.68951,0.69833,0.70706,0.7157,0.72421,0.7326,0.74091,0.74908,0.75717,0.76514,0.77298,0.7807,0.7883,0.79581,0.80316,0.81042,0.81754,0.82455,0.83142,0.8382,0.84482,0.85132,0.8577,0.86392,0.87006,0.87604,0.88187,0.8876,0.89319,0.89862,0.90396,0.90912,0.91415,0.91907,0.92383,0.92847,0.93295,0.93729,0.9415,0.94556,0.94949,0.95325,0.95691,0.96039,0.96375,0.96692,0.97,0.9729,0.97565,0.97827,0.98074,0.98306,0.98523,0.98724,0.98914,0.99084,0.99243,0.99387,0.99515,0.99628,0.99725,0.99808,0.99875,0.99927,0.99966,0.99988,0.99997,0.99988,0.99966,0.99927,0.99875,0.99808,0.99725,0.99628,0.99515,0.99387,0.99243,0.99084,0.98914,0.98724,0.98523,0.98306,0.98074,0.97827,0.97565,0.9729,0.97,0.96692,0.96375,0.96039,0.95691,0.95325,0.94949,0.94556,0.9415,0.93729,0.93295,0.92847,0.92383,0.91907,0.91415,0.90912,0.90396,0.89862,0.89319,0.8876,0.88187,0.87604,0.87006,0.86392,0.8577,0.85132,0.84482,0.8382,0.83142,0.82455,0.81754,0.81042,0.80316,0.79581,0.7883,0.7807,0.77298,0.76514,0.75717,0.74908,0.74091,0.7326,0.72421,0.7157,0.70706,0.69833,0.68951,0.68057,0.67151,0.66238,0.65314,0.6438,0.63437,0.62482,0.6152,0.60547,0.59567,0.58575,0.57578,0.5657,0.55554,0.54529,0.53497,0.52457,0.51407,0.50351,0.49286,0.48215,0.47137,0.46051,0.44958,0.4386,0.42752,0.41641,0.40521,0.39395,0.38266,0.37128,0.35986,0.34839,0.33685,0.32529,0.31366,0.30197,0.29025,0.2785,0.26669,0.25485,0.24295,0.23105,0.21909,0.20709,0.19507,0.18301,0.17093,0.15884,0.1467,0.13455,0.12241,0.1102,0.097992,0.085785,0.073547,0.06131,0.049042,0.036804,0.024536,0.012268,0,-0.012268,-0.024536,-0.036804,-0.049042,-0.06131,-0.073547,-0.085785,-0.097992,-0.1102,-0.12241,-0.13455,-0.1467,-0.15884,-0.17093,-0.18301,-0.19507,-0.20709,-0.21909,-0.23105,-0.24295,-0.25485,-0.26669,-0.2785,-0.29025,-0.30197,-0.31366,-0.32529,-0.33685,-0.34839,-0.35986,-0.37128,-0.38266,-0.39395,-0.40521,-0.41641,-0.42752,-0.4386,-0.44958,-0.46051,-0.47137,-0.48215,-0.49286,-0.50351,-0.51407,-0.52457,-0.53497,-0.54529,-0.55554,-0.5657,-0.57578,-0.58575,-0.59567,-0.60547,-0.6152,-0.62482,-0.63437,-0.6438,-0.65314,-0.66238,-0.67151,-0.68057,-0.68951,-0.69833,-0.70706,-0.7157,-0.72421,-0.7326,-0.74091,-0.74908,-0.75717,-0.76514,-0.77298,-0.7807,-0.7883,-0.79581,-0.80316,-0.81042,-0.81754,-0.82455,-0.83142,-0.8382,-0.84482,-0.85132,-0.8577,-0.86392,-0.87006,-0.87604,-0.88187,-0.8876,-0.89319,-0.89862,-0.90396,-0.90912,-0.91415,-0.91907,-0.92383,-0.92847,-0.93295,-0.93729,-0.9415,-0.94556,-0.94949,-0.95325,-0.95691,-0.96039,-0.96375,-0.96692,-0.97,-0.9729,-0.97565,-0.97827,-0.98074,-0.98306,-0.98523,-0.98724,-0.98914,-0.99084,-0.99243,-0.99387,-0.99515,-0.99628,-0.99725,-0.99808,-0.99875,-0.99927,-0.99966,-0.99988,-0.99997,-0.99988,-0.99966,-0.99927,-0.99875,-0.99808,-0.99725,-0.99628,-0.99515,-0.99387,-0.99243,-0.99084,-0.98914,-0.98724,-0.98523,-0.98306,-0.98074,-0.97827,-0.97565,-0.9729,-0.97,-0.96692,-0.96375,-0.96039,-0.95691,-0.95325,-0.94949,-0.94556,-0.9415,-0.93729,-0.93295,-0.92847,-0.92383,-0.91907,-0.91415,-0.90912,-0.90396,-0.89862,-0.89319,-0.8876,-0.88187,-0.87604,-0.87006,-0.86392,-0.8577,-0.85132,-0.84482,-0.8382,-0.83142,-0.82455,-0.81754,-0.81042,-0.80316,-0.79581,-0.7883,-0.7807,-0.77298,-0.76514,-0.75717,-0.74908,-0.74091,-0.7326,-0.72421,-0.7157,-0.70706,-0.69833,-0.68951,-0.68057,-0.67151,-0.66238,-0.65314,-0.6438,-0.63437,-0.62482,-0.6152,-0.60547,-0.59567,-0.58575,-0.57578,-0.5657,-0.55554,-0.54529,-0.53497,-0.52457,-0.51407,-0.50351,-0.49286,-0.48215,-0.47137,-0.46051,-0.44958,-0.4386,-0.42752,-0.41641,-0.40521,-0.39395,-0.38266,-0.37128,-0.35986,-0.34839,-0.33685,-0.32529,-0.31366,-0.30197,-0.29025,-0.2785,-0.26669,-0.25485,-0.24295,-0.23105,-0.21909,-0.20709,-0.19507,-0.18301,-0.17093,-0.15884,-0.1467,-0.13455,-0.12241,-0.1102,-0.097992,-0.085785,-0.073547,-0.06131,-0.049042,-0.036804,-0.024536,-0.012268,0,0.012268 +}; + +double mtofarray[129]={0, 8.661957, 9.177024, 9.722718, 10.3, 10.913383, 11.562325, 12.25, 12.978271, 13.75, 14.567617, 15.433853, 16.351599, 17.323914, 18.354048, 19.445436, 20.601723, 21.826765, 23.124651, 24.5, 25.956543, 27.5, 29.135235, 30.867706, 32.703197, 34.647827, 36.708096, 38.890873, 41.203445, 43.65353, 46.249302, 49., 51.913086, 55., 58.27047, 61.735413, 65.406395, 69.295654, 73.416191, 77.781746, 82.406891, 87.30706, 92.498604, 97.998856, 103.826172, 110., 116.540939, 123.470825, 130.81279, 138.591309, 146.832382, 155.563492, 164.813782, 174.61412, 184.997208, 195.997711, 207.652344, 220., 233.081879, 246.94165, 261.62558, 277.182617,293.664764, 311.126984, 329.627563, 349.228241, 369.994415, 391.995422, 415.304688, 440., 466.163757, 493.883301, 523.25116, 554.365234, 587.329529, 622.253967, 659.255127, 698.456482, 739.988831, 783.990845, 830.609375, 880., 932.327515, 987.766602, 1046.502319, 1108.730469, 1174.659058, 1244.507935, 1318.510254, 1396.912964, 1479.977661, 1567.981689, 1661.21875, 1760., 1864.655029, 1975.533203, 2093.004639, 2217.460938, 2349.318115, 2489.015869, 2637.020508, 2793.825928, 2959.955322, 3135.963379, 3322.4375, 3520., 3729.31, 3951.066406, 4186.009277, 4434.921875, 4698.63623, 4978.031738, 5274.041016, 5587.651855, 5919.910645, 6271.926758, 6644.875, 7040., 7458.620117, 7902.132812, 8372.018555, 8869.84375, 9397.272461, 9956.063477, 10548.082031, 11175.303711, 11839.821289, 12543.853516, 13289.75}; + +void setup();//use this to do any initialisation if you want. + +void play(double *channels);//run dac! + +maxiOsc::maxiOsc(){ + phase = 0.0; + // memset(phases,0,500); + // memset(freqs,0,500); +} + +double maxiOsc::noise() { + //always the same unless you seed it. + float r = rand()/(float)RAND_MAX; + output=r*2-1; + return(output); +} + +void maxiOsc::phaseReset(double phaseIn) { + phase=phaseIn; + +} + +double maxiOsc::sinewave(double frequency) { + output=sin (phase*(TWOPI)); + if ( phase >= 1.0 ) phase -= 1.0; + phase += (1./(maxiSettings::sampleRate/(frequency))); + return(output); + +} + +double maxiOsc::sinebuf4(double frequency) { + double remainder; + double a,b,c,d,a1,a2,a3; + phase += 512./(maxiSettings::sampleRate/(frequency)); + if ( phase >= 511 ) phase -=512; + remainder = phase - floor(phase); + + if (phase==0) { + a=sineBuffer[(long) 512]; + b=sineBuffer[(long) phase]; + c=sineBuffer[(long) phase+1]; + d=sineBuffer[(long) phase+2]; + + } else { + a=sineBuffer[(long) phase-1]; + b=sineBuffer[(long) phase]; + c=sineBuffer[(long) phase+1]; + d=sineBuffer[(long) phase+2]; + + } + + a1 = 0.5f * (c - a); + a2 = a - 2.5 * b + 2.f * c - 0.5f * d; + a3 = 0.5f * (d - a) + 1.5f * (b - c); + output = double (((a3 * remainder + a2) * remainder + a1) * remainder + b); + return(output); +} + +double maxiOsc::sinebuf(double frequency) { + double remainder; + phase += 512./(maxiSettings::sampleRate/(frequency*chandiv)); + if ( phase >= 511 ) phase -=512; + remainder = phase - floor(phase); + output = (double) ((1-remainder) * sineBuffer[1+ (long) phase] + remainder * sineBuffer[2+(long) phase]); + return(output); +} + +double maxiOsc::coswave(double frequency) { + output=cos (phase*(TWOPI)); + if ( phase >= 1.0 ) phase -= 1.0; + phase += (1./(maxiSettings::sampleRate/(frequency))); + return(output); + +} + +double maxiOsc::phasor(double frequency) { + output=phase; + if ( phase >= 1.0 ) phase -= 1.0; + phase += (1./(maxiSettings::sampleRate/(frequency))); + return(output); +} + +double maxiOsc::square(double frequency) { + if (phase<0.5) output=-1; + if (phase>0.5) output=1; + if ( phase >= 1.0 ) phase -= 1.0; + phase += (1./(maxiSettings::sampleRate/(frequency))); + return(output); +} + +double maxiOsc::pulse(double frequency, double duty) { + if (duty<0.) duty=0; + if (duty>1.) duty=1; + if ( phase >= 1.0 ) phase -= 1.0; + phase += (1./(maxiSettings::sampleRate/(frequency))); + if (phaseduty) output=1.; + return(output); +} + +double maxiOsc::phasor(double frequency, double startphase, double endphase) { + output=phase; + if (phase= endphase ) phase = startphase; + phase += ((endphase-startphase)/(maxiSettings::sampleRate/(frequency))); + return(output); +} + + +double maxiOsc::saw(double frequency) { + + output=phase; + if ( phase >= 1.0 ) phase -= 2.0; + phase += (1./(maxiSettings::sampleRate/(frequency))); + return(output); + +} + +double maxiOsc::triangle(double frequency) { + if ( phase >= 1.0 ) phase -= 1.0; + phase += (1./(maxiSettings::sampleRate/(frequency))); + if (phase <= 0.5 ) { + output =((phase)*4)-1; + } else { + output =((0.5-phase)*4)-1; + } + return(output); + +} + +//I like this. +double maxiEnvelope::line(int numberofsegments,double segments[1000]) { + if (isPlaying==1) {//only make a sound once you've been triggered + + period=2./(segments[valindex+1]*0.004); + nextval=segments[valindex+2]; + currentval=segments[valindex]; + if (currentval-amplitude > 0.0000001 && valindex < numberofsegments) { + amplitude += ((currentval-startval)/(maxiSettings::sampleRate/period)); + } else if (currentval-amplitude < -0.0000001 && valindex < numberofsegments) { + amplitude -= (((currentval-startval)*(-1))/(maxiSettings::sampleRate/period)); + } else if (valindex >numberofsegments-1) { + valindex=numberofsegments-2; + } else { + valindex=valindex+2; + startval=currentval; + } + output=amplitude; + + } + else { + output=0; + + } + return(output); +} + +//and this +void maxiEnvelope::trigger(int index, double amp) { + isPlaying=1;//ok the envelope is being used now. + valindex=index; + amplitude=amp; + +} + +//and this + +maxiDelayline::maxiDelayline() { + memory[88200]=NULL; + +} + + +double maxiDelayline::dl(double input, int size, double feedback) { + if ( phase >=size ) { + phase = 0; + } + memory[phase]=(memory[phase]*feedback)+(input*feedback)*0.5; + phase+=1; + output=memory[phase]; + return(output); + +} + +double maxiDelayline::dl(double input, int size, double feedback, int position) { + if ( phase >=size ) phase = 0; + if ( position >=size ) position = 0; + memory[phase]=(memory[phase]*feedback)+(input*feedback)*chandiv; + phase+=1; + output=memory[position]; + return(output); + +} + +//I particularly like these. cutoff between 0 and 1 +double maxiFilter::lopass(double input, double cutoff) { + output=outputs[0] + cutoff*(input-outputs[0]); + outputs[0]=output; + return(output); +} +//as above +double maxiFilter::hipass(double input, double cutoff) { + output=input-(outputs[0] + cutoff*(input-outputs[0])); + outputs[0]=output; + return(output); +} +//awesome. cuttof is freq in hz. res is between 1 and whatever. Watch out! +double maxiFilter::lores(double input,double cutoff1, double resonance) { + cutoff=cutoff1*0.5; + if (cutoff<10) cutoff=10; + if (cutoff>(maxiSettings::sampleRate*0.5)) cutoff=(maxiSettings::sampleRate*0.5); + if (resonance<1.) resonance = 1.; + z=cos(TWOPI*cutoff/maxiSettings::sampleRate); + c=2-2*z; + double r=(sqrt(2.0)*sqrt(-pow((z-1.0),3.0))+resonance*(z-1))/(resonance*(z-1)); + x=x+(input-y)*c; + y=y+x; + x=x*r; + output=y; + return(output); +} + +//working hires filter +double maxiFilter::hires(double input,double cutoff1, double resonance) { + cutoff=cutoff1*0.5; + if (cutoff<10) cutoff=10; + if (cutoff>(maxiSettings::sampleRate*0.5)) cutoff=(maxiSettings::sampleRate*0.5); + if (resonance<1.) resonance = 1.; + z=cos(TWOPI*cutoff/maxiSettings::sampleRate); + c=2-2*z; + double r=(sqrt(2.0)*sqrt(-pow((z-1.0),3.0))+resonance*(z-1))/(resonance*(z-1)); + x=x+(input-y)*c; + y=y+x; + x=x*r; + output=input-y; + return(output); +} + +//This works a bit. Needs attention. +double maxiFilter::bandpass(double input,double cutoff1, double resonance) { + cutoff=cutoff1; + if (cutoff>(maxiSettings::sampleRate*0.5)) cutoff=(maxiSettings::sampleRate*0.5); + if (resonance>=1.) resonance=0.999999; + z=cos(TWOPI*cutoff/maxiSettings::sampleRate); + inputs[0] = (1-resonance)*(sqrt(resonance*(resonance-4.0*pow(z,2.0)+2.0)+1)); + inputs[1] = 2*z*resonance; + inputs[2] = pow((resonance*-1),2); + + output=inputs[0]*input+inputs[1]*outputs[1]+inputs[2]*outputs[2]; + outputs[2]=outputs[1]; + outputs[1]=output; + return(output); +} + +//stereo bus +double *maxiMix::stereo(double input,double two[2],double x) { + if (x>1) x=1; + if (x<0) x=0; + two[0]=input*sqrt(1.0-x); + two[1]=input*sqrt(x); + return(two); +} + +//quad bus +double *maxiMix::quad(double input,double four[4],double x,double y) { + if (x>1) x=1; + if (x<0) x=0; + if (y>1) y=1; + if (y<0) y=0; + four[0]=input*sqrt((1.0-x)*y); + four[1]=input*sqrt((1.0-x)*(1.0-y)); + four[2]=input*sqrt(x*y); + four[3]=input*sqrt(x*(1.0-y)); + return(four); +} + +//ambisonic bus +double *maxiMix::ambisonic(double input,double eight[8],double x,double y,double z) { + if (x>1) x=1; + if (x<0) x=0; + if (y>1) y=1; + if (y<0) y=0; + if (z>1) y=1; + if (z<0) y=0; + eight[0]=input*(sqrt((1.0-x)*y)*1.0-z); + eight[1]=input*(sqrt((1.0-x)*(1.0-y))*1.0-z); + eight[2]=input*(sqrt(x*y)*1.0-z); + eight[3]=input*(sqrt(x*(1.0-y))*1.0-z); + eight[4]=input*(sqrt((1.0-x)*y)*z); + eight[5]=input*(sqrt((1.0-x)*(1.0-y))*z); + eight[6]=input*sqrt((x*y)*z); + eight[7]=input*sqrt((x*(1.0-y))*z); + return(eight); +} + + +bool maxiSample::load(string fileName, int channel) { + myPath = fileName; + readChannel=channel; + return read(); +} + +void maxiSample::trigger() { + position = 0; +} + +bool maxiSample::read() +{ + bool result; + ifstream inFile( myPath.c_str(), ios::in | ios::binary); + result = inFile; + if (inFile) { + bool datafound = false; + inFile.seekg(4, ios::beg); + inFile.read( (char*) &myChunkSize, 4 ); // read the ChunkSize + + inFile.seekg(16, ios::beg); + inFile.read( (char*) &mySubChunk1Size, 4 ); // read the SubChunk1Size + + //inFile.seekg(20, ios::beg); + inFile.read( (char*) &myFormat, sizeof(short) ); // read the file format. This should be 1 for PCM + + //inFile.seekg(22, ios::beg); + inFile.read( (char*) &myChannels, sizeof(short) ); // read the # of channels (1 or 2) + + //inFile.seekg(24, ios::beg); + inFile.read( (char*) &mySampleRate, sizeof(int) ); // read the samplerate + + //inFile.seekg(28, ios::beg); + inFile.read( (char*) &myByteRate, sizeof(int) ); // read the byterate + + //inFile.seekg(32, ios::beg); + inFile.read( (char*) &myBlockAlign, sizeof(short) ); // read the blockalign + + //inFile.seekg(34, ios::beg); + inFile.read( (char*) &myBitsPerSample, sizeof(short) ); // read the bitspersample + + //ignore any extra chunks + char chunkID[5]=""; + chunkID[4] = 0; + int filePos = 36; + while(!datafound && !inFile.eof()) { + inFile.seekg(filePos, ios::beg); + inFile.read((char*) &chunkID, sizeof(char) * 4); + inFile.seekg(filePos + 4, ios::beg); + inFile.read( (char*) &myDataSize, sizeof(int) ); // read the size of the data + filePos += 8; + if (strcmp(chunkID,"data") == 0) { + datafound = true; + }else{ + filePos += myDataSize; + } + } + + // read the data chunk + myData = (char*) malloc(myDataSize * sizeof(char)); + inFile.seekg(filePos, ios::beg); + inFile.read(myData, myDataSize); + length=myDataSize*(0.5/myChannels); + inFile.close(); // close the input file + + if (myChannels>1) { + int position=0; + int channel=readChannel*2; + for (int i=channel;ilength) position=0; + output = + (double) ((1-remainder) * buffer[1+ (long) position] + remainder * buffer[2+(long) position])/32767;//linear interpolation + return(output); +} + +double maxiSample::playOnce() { + // long length=myDataSize*(0.5/myChannels); + double remainder; + short* buffer = (short *)myData; + position=(position+1); + remainder = position - (long) position; + if ((long) position=0) { + + if ((long) position>=length-1) position=1; + remainder = position - floor(position); + if (position+1=0) { + a=position-1; + + } + else { + a=0; + } + if (position-2>=0) { + b=position-2; + } + else { + b=0; + } + output = (double) ((-1-remainder) * buffer[a] + remainder * buffer[b])/32767;//linear interpolation + } + return(output); +} + +double maxiSample::play(double frequency, double start, double end) { + return play(frequency, start, end, position); +} + +double maxiSample::play(double frequency, double start, double end, double &pos) { + double remainder; + // long length=myDataSize; + + if (end>=length) end=length-1; + long a,b; + short* buffer = (short *)myData; + if (frequency >0.) { + if (pos= end ) pos = start; + pos += ((end-start)/(maxiSettings::sampleRate/(frequency*chandiv))); + remainder = pos - floor(pos); + long posl = floor(pos); + if (posl+1=0) { + a=posl-1; + } + else { + a=0; + } + if (posl-2>=0) { + b=posl-2; + } + else { + b=0; + } + output = (double) ((-1-remainder) * buffer[a] + + remainder * buffer[b])/32767;//linear interpolation + + } + + return(output); +} + + +//better cubic inerpolation. Cobbled together from various (pd externals, yehar, other places). +double maxiSample::play4(double frequency, double start, double end) { + double remainder; + double a,b,c,d,a1,a2,a3; + short* buffer = (short*)myData; + if (frequency >0.) { + if (position= end ) position = start; + position += ((end-start)/(maxiSettings::sampleRate/(frequency*chandiv))); + remainder = position - floor(position); + if (position>0) { + a=buffer[(int)(floor(position))-1]; + + } else { + a=buffer[0]; + + } + + b=buffer[(long) position]; + if (positionstart && position < end-1) { + a=buffer[(long) position+1]; + + } else { + a=buffer[0]; + + } + + b=buffer[(long) position]; + if (position>start) { + c=buffer[(long) position-1]; + + } else { + c=buffer[0]; + + } + if (position>start+1) { + d=buffer[(long) position-2]; + + } else { + d=buffer[0]; + } + a1 = 0.5f * (c - a); + a2 = a - 2.5 * b + 2.f * c - 0.5f * d; + a3 = 0.5f * (d - a) + 1.5f * (b - c); + output = (double) (((a3 * remainder + a2) * -remainder + a1) * -remainder + b) / 32767; + + } + + return(output); +} + +double maxiSample::bufferPlay(unsigned char &bufferin,long length) { + double remainder; + short* buffer = (short *)bufferin; + position=(position+1); + remainder = position - (long) position; + if ((long) position>length) position=0; + output = (double) ((1-remainder) * buffer[1+ (long) position] + remainder * buffer[2+(long) position])/32767;//linear interpolation + return(output); +} + +double maxiSample::bufferPlay(unsigned char &bufferin,double speed,long length) { + double remainder; + long a,b; + short* buffer = (short *)bufferin; + position=position+((speed*chandiv*myChannels)/(maxiSettings::sampleRate/mySampleRate)); + if (speed >=0) { + + if ((long) position>=length-1) position=1; + remainder = position - floor(position); + if (position+1=0) { + a=position-1; + + } + else { + a=0; + } + if (position-2>=0) { + b=position-2; + } + else { + b=0; + } + output = (double) ((-1-remainder) * buffer[a] + remainder * buffer[b])/32767;//linear interpolation + } + return(output); +} + +double maxiSample::bufferPlay(unsigned char &bufferin,double frequency, double start, double end) { + double remainder; + length=end; + long a,b; + short* buffer = (short *)bufferin; + if (frequency >0.) { + if (position= end ) position = start; + position += ((end-start)/(maxiSettings::sampleRate/(frequency*chandiv))); + remainder = position - floor(position); + long pos = floor(position); + if (pos+1=0) { + a=pos-1; + } + else { + a=0; + } + if (pos-2>=0) { + b=pos-2; + } + else { + b=0; + } + output = (double) ((-1-remainder) * buffer[a] + + remainder * buffer[b])/32767;//linear interpolation + + } + + return(output); +} + +//better cubic inerpolation. Cobbled together from various (pd externals, yehar, other places). +double maxiSample::bufferPlay4(unsigned char &bufferin,double frequency, double start, double end) { + double remainder; + double a,b,c,d,a1,a2,a3; + short* buffer = (short*)bufferin; + if (frequency >0.) { + if (position= end ) position = start; + position += ((end-start)/(maxiSettings::sampleRate/(frequency*chandiv))); + remainder = position - floor(position); + if (position>0) { + a=buffer[(int)(floor(position))-1]; + + } else { + a=buffer[0]; + + } + + b=buffer[(long) position]; + if (positionstart && position < end-1) { + a=buffer[(long) position+1]; + + } else { + a=buffer[0]; + + } + + b=buffer[(long) position]; + if (position>start) { + c=buffer[(long) position-1]; + + } else { + c=buffer[0]; + + } + if (position>start+1) { + d=buffer[(long) position-2]; + + } else { + d=buffer[0]; + } + a1 = 0.5f * (c - a); + a2 = a - 2.5 * b + 2.f * c - 0.5f * d; + a3 = 0.5f * (d - a) + 1.5f * (b - c); + output = (double) (((a3 * remainder + a2) * -remainder + a1) * -remainder + b) / 32767; + + } + + return(output); +} + + +void maxiSample::getLength() { + length=myDataSize*0.5; +} + + +/* OK this compressor and gate are now ready to use. The envelopes, like all the envelopes in this recent update, use stupid algorithms for + incrementing - consequently a long attack is something like 0.0001 and a long release is like 0.9999. + Annoyingly, a short attack is 0.1, and a short release is 0.99. I'll sort this out laters */ + +double maxiDyn::gate(double input, double threshold, long holdtime, double attack, double release) { + + if (fabs(input)>threshold && attackphase!=1){ + holdcount=0; + releasephase=0; + attackphase=1; + if(amplitude==0) amplitude=0.01; + } + + if (attackphase==1 && amplitude<1) { + amplitude*=(1+attack); + output=input*amplitude; + } + + if (amplitude>=1) { + attackphase=0; + holdphase=1; + } + + if (holdcount0.) { + output=input*(amplitude*=release); + + } + + return output; +} + + +double maxiDyn::compressor(double input, double ratio, double threshold, double attack, double release) { + + if (fabs(input)>threshold && attackphase!=1){ + holdcount=0; + releasephase=0; + attackphase=1; + if(currentRatio==0) currentRatio=ratio; + } + + if (attackphase==1 && currentRatio=ratio-1) { + attackphase=0; + releasephase=1; + } + + if (releasephase==1 && currentRatio>0.) { + currentRatio*=release; + } + + if (input>0.) { + output = input/(1.+currentRatio); + } else { + output = input/(1.+currentRatio); + } + + return output*(1+log(ratio)); +} + + +/* Lots of people struggle with the envelope generators so here's a new easy one. + It takes mental numbers for attack and release tho. Basically, they're exponentials. + I'll map them out later so that it's a bit more intuitive */ +double maxiEnv::ar(double input, double attack, double release, long holdtime, int trigger) { + + if (trigger==1 && attackphase!=1 && holdphase!=1){ + holdcount=0; + releasephase=0; + attackphase=1; + } + + if (attackphase==1) { + amplitude+=(1*attack); + output=input*amplitude; + } + + if (amplitude>=1) { + amplitude=1; + attackphase=0; + holdphase=1; + } + + if (holdcount0.) { + output=input*(amplitude*=release); + + } + + return output; +} + +/* and here's a new adsr. It's not bad, very simple to use*/ + +double maxiEnv::adsr(double input, double attack, double decay, double sustain, double release, long holdtime, int trigger) { + + if (trigger==1 && attackphase!=1 && holdphase!=1 && decayphase!=1){ + holdcount=0; + decayphase=0; + sustainphase=0; + releasephase=0; + attackphase=1; + } + + if (attackphase==1) { + amplitude+=(1*attack); + output=input*amplitude; + } + + if (amplitude>=1) { + amplitude=1; + attackphase=0; + decayphase=1; + } + + if (decayphase==1) { + output=input*(amplitude*=decay); + if (amplitude<=sustain) { + decayphase=0; + holdphase=1; + } + } + + if (holdcount0.) { + output=input*(amplitude*=release); + + } + + return output; +} + +double convert::mtof(int midinote) { + + return mtofarray[midinote]; +} \ No newline at end of file diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maximilian.h b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maximilian.h new file mode 100755 index 0000000..102d552 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/libs/maximilian.h @@ -0,0 +1,366 @@ +/* + * maximilian.h + * platform independent synthesis library using portaudio or rtaudio + * + * Created by Mick Grierson on 29/12/2009. + * Copyright 2009 Mick Grierson & Strangeloop Limited. All rights reserved. + * Thanks to the Goldsmiths Creative Computing Team. + * Special thanks to Arturo Castro for the PortAudio implementation. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + */ + +#ifndef MAXIMILIAN_H +#define MAXIMILIAN_H + +//#define MAXIMILIAN_PORTAUDIO +#define MAXIMILIAN_RT_AUDIO + +//#include "ofMain.h" +//#include "ofUtils.h" + + +#include +#include +#include +#include +#include "math.h" + +using namespace std; +#define TWOPI (3.14159*2) + +class maxiSettings { +public: + static int sampleRate; + static int channels; + static int bufferSize; + static void setup(int initSampleRate, int initChannels, int initBufferSize) { + maxiSettings::sampleRate = initSampleRate; + maxiSettings::channels = initChannels; + maxiSettings::bufferSize = initBufferSize; + } +}; + + +class maxiOsc { + + double frequency; + double phase; + double startphase; + double endphase; + double output; + double tri; + + +public: + maxiOsc(); + double sinewave(double frequency); + double coswave(double frequency); + double phasor(double frequency); + double phasor(double frequency, double startphase, double endphase); + double saw(double frequency); + double triangle(double frequency); + double square(double frequency); + double pulse(double frequency, double duty); + double noise(); + double sinebuf(double frequency); + double sinebuf4(double frequency); + void phaseReset(double phaseIn); + +}; + + +class maxiEnvelope { + + double period; + double output; + double startval; + double currentval; + double nextval; + int isPlaying; + +public: + double line(int numberofsegments,double segments[100]); + void trigger(int index,double amp); + int valindex; + double amplitude; + +}; + + +class maxiDelayline { + double frequency; + int phase; + double startphase; + double endphase; + double output; + double memory[88200]; + +public: + maxiDelayline(); + double dl(double input, int size, double feedback); + double dl(double input, int size, double feedback, int position); + + +}; + + +class maxiFilter { + double gain; + double input; + double output; + double inputs[10]; + double outputs[10]; + double cutoff1; + double x;//speed + double y;//pos + double z;//pole + double c;//filter coefficient +public: + maxiFilter():x(0.0), y(0.0), z(0.0), c(0.0){}; + double cutoff; + double resonance; + double lores(double input,double cutoff1, double resonance); + double hires(double input,double cutoff1, double resonance); + double bandpass(double input,double cutoff1, double resonance); + double lopass(double input,double cutoff); + double hipass(double input,double cutoff); + +}; + +class maxiMix { + double input; + double two[2]; + double four[4]; + double eight[8]; +public: + double x; + double y; + double z; + double *stereo(double input,double two[2],double x); + double *quad(double input,double four[4], double x,double y); + double *ambisonic(double input,double eight[8],double x,double y, double z); + +}; + +class maxiSample { + +private: + string myPath; + int myChunkSize; + int mySubChunk1Size; + int readChannel; + short myFormat; + int myByteRate; + short myBlockAlign; + short myBitsPerSample; + double position; + double speed; + double output; + +public: + int myDataSize; + short myChannels; + int mySampleRate; + long length; + void getLength(); + + + char* myData; + + // get/set for the Path property + + ~maxiSample() + { + if (myData) delete[] myData; + myChunkSize = NULL; + mySubChunk1Size = NULL; + myFormat = NULL; + myChannels = NULL; + mySampleRate = NULL; + myByteRate = NULL; + myBlockAlign = NULL; + myBitsPerSample = NULL; + myDataSize = NULL; + } + + maxiSample():myData(NULL){}; + + bool load(string fileName, int channel=0); + + void trigger(); + + // read a wav file into this class + bool read(); + + double play(); + + double playOnce(); + + double playOnce(double speed); + + double play(double speed); + + double play(double frequency, double start, double end, double &pos); + + double play(double frequency, double start, double end); + + double play4(double frequency, double start, double end); + + double bufferPlay(unsigned char &bufferin,long length); + + double bufferPlay(unsigned char &bufferin,double speed,long length); + + double bufferPlay(unsigned char &bufferin,double frequency, double start, double end); + + double bufferPlay4(unsigned char &bufferin,double frequency, double start, double end); + + //int open(char *filename) { + // // open the wav file + // char *path = new char[50]; + // strcpy(path, filename); + // sample *myWav = new sample(path); + // return 0; + // } + // // print a summary of the wav file + // int info() { + // char *summary = myWav->getSummary(); + // printf("Summary:\n%s", summary); + // return 0; + // } + // int savefile() { + // // write the summary back out + // strcpy(path, "testout.wav"); + // myWav->setPath(path); + // myWav->save(); + // return 0: + // } + // int close() { + // // collect the garbage + // delete summary; + // delete path; + // delete myWav; + // + // return 0; + // } + // write out the wav file + bool save() + { + fstream myFile (myPath.c_str(), ios::out | ios::binary); + + // write the wav file per the wav file format + myFile.seekp (0, ios::beg); + myFile.write ("RIFF", 4); + myFile.write ((char*) &myChunkSize, 4); + myFile.write ("WAVE", 4); + myFile.write ("fmt ", 4); + myFile.write ((char*) &mySubChunk1Size, 4); + myFile.write ((char*) &myFormat, 2); + myFile.write ((char*) &myChannels, 2); + myFile.write ((char*) &mySampleRate, 4); + myFile.write ((char*) &myByteRate, 4); + myFile.write ((char*) &myBlockAlign, 2); + myFile.write ((char*) &myBitsPerSample, 2); + myFile.write ("data", 4); + myFile.write ((char*) &myDataSize, 4); + myFile.write (myData, myDataSize); + + return true; + } + + // return a printable summary of the wav file + char *getSummary() + { + char *summary = new char[250]; + sprintf(summary, " Format: %d\n Channels: %d\n SampleRate: %d\n ByteRate: %d\n BlockAlign: %d\n BitsPerSample: %d\n DataSize: %d\n", myFormat, myChannels, mySampleRate, myByteRate, myBlockAlign, myBitsPerSample, myDataSize); + std::cout << myDataSize; + return summary; + } +}; + + +class maxiMap { +public: + static double inline linlin(double val, double inMin, double inMax, double outMin, double outMax) { + return ((val - inMin) / (inMax - inMin) * (outMax - outMin)) + outMin; + } + + static double inline linexp(double val, double inMin, double inMax, double outMin, double outMax) { + //clipping + val = max(min(val, inMax), inMin); + return pow((outMax / outMin), (val - inMin) / (inMax - inMin)) * outMin; + } + + static double inline explin(double val, double inMin, double inMax, double outMin, double outMax) { + //clipping + val = max(min(val, inMax), inMin); + return (log(val/inMin) / log(inMax/inMin) * (outMax - outMin)) + outMin; + } + +}; + + +class maxiDyn { + + +public: + double gate(double input, double threshold=0.9, long holdtime=1, double attack=1, double release=0.9995); + double compressor(double input, double ratio, double threshold=0.9, double attack=1, double release=0.9995); + double input; + double ratio; + double currentRatio; + double threshold; + double output; + double attack; + double release; + double amplitude; + long holdtime; + long holdcount; + int attackphase,holdphase,releasephase; +}; + +class maxiEnv { + + +public: + double ar(double input, double attack=1, double release=0.9, long holdtime=1, int trigger=0); + double adsr(double input, double attack=1, double decay=0.99, double sustain=0.125, double release=0.9, long holdtime=1, int trigger=0); + double input; + double output; + double attack; + double decay; + double sustain; + double release; + double amplitude; + int trigger; + long holdtime; + long holdcount; + int attackphase,decayphase,sustainphase,holdphase,releasephase; +}; + +class convert { +public: + double mtof(int midinote); +}; + +#endif diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/src/ofxMaxim.h b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/src/ofxMaxim.h new file mode 100644 index 0000000..ec8c539 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/ofxMaxim/src/ofxMaxim.h @@ -0,0 +1,55 @@ +/* + * maximilian + * platform independent synthesis library using portaudio or rtaudio + * + * Created by Mick Grierson on 29/12/2009. + * Copyright 2009 Mick Grierson & Strangeloop Limited. All rights reserved. + * Thanks to the Goldsmiths Creative Computing Team. + * Special thanks to Arturo Castro for the PortAudio implementation. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + */ + +#ifndef _OFMAXIM_H +#define _OFMAXIM_H + +#include "maximilian.h" +#include "maxiFFT.h" +#include "maxiGrains.h" +#include "maxiMFCC.h" + + +typedef maxiMix ofxMaxiMix; +typedef maxiOsc ofxMaxiOsc; +typedef maxiEnvelope ofxMaxiEnvelope; +typedef maxiDelayline ofxMaxiDelayline; +typedef maxiFilter ofxMaxiFilter; +typedef maxiSample ofxMaxiSample; +typedef maxiFFT ofxMaxiFFT; +typedef maxiIFFT ofxMaxiIFFT; +typedef maxiFFTOctaveAnalyzer ofxMaxiFFTOctaveAnalyzer; +typedef maxiSettings ofxMaxiSettings; +typedef maxiMFCC ofxMaxiMFCC; + + +#endif diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/openFrameworks-Info.plist b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/openFrameworks-Info.plist new file mode 100644 index 0000000..e5db555 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/openFrameworks-Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + com.yourcompany.openFrameworks + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleVersion + 1.0 + + diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/src/main.cpp b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/src/main.cpp new file mode 100644 index 0000000..6a32c6a --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/src/main.cpp @@ -0,0 +1,16 @@ +#include "ofMain.h" +#include "testApp.h" +#include "ofAppGlutWindow.h" + +//======================================================================== +int main( ){ + + ofAppGlutWindow window; + ofSetupOpenGL(&window, 1024,768, OF_WINDOW); // <-------- setup the GL context + + // this kicks off the running of my app + // can be OF_WINDOW or OF_FULLSCREEN + // pass in width and height too: + ofRunApp( new testApp()); + +} diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/src/testApp.cpp b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/src/testApp.cpp new file mode 100644 index 0000000..2e0af10 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/src/testApp.cpp @@ -0,0 +1,160 @@ +/* This is an example of how to integrate maximilain into openFrameworks, + including using audio received for input and audio requested for output. + + + You can copy and paste this and use it as a starting example. + + */ + + +#include "testApp.h" + + + +//------------------------------------------------------------- +testApp::~testApp() { + + delete beat.myData; /*you should probably delete myData for any sample object + that you've created in testApp.h*/ + +} + + +//-------------------------------------------------------------- +void testApp::setup(){ + /* some standard setup stuff*/ + + ofEnableAlphaBlending(); + ofSetupScreen(); + ofBackground(0, 0, 0); + ofSetVerticalSync(true); + + /* This is stuff you always need.*/ + + sampleRate = 44100; /* Sampling Rate */ + initialBufferSize = 512; /* Buffer Size. you have to fill this buffer with sound*/ + + + /* Now you can put anything you would normally put in maximilian's 'setup' method in here. */ + + + beat.load(ofToDataPath("beat2.wav")); + beat.getLength(); + + + ofSoundStreamSetup(2,0,this, sampleRate, initialBufferSize, 4);/* Call this last ! */ +} + +//-------------------------------------------------------------- +void testApp::update(){ + +} + +//-------------------------------------------------------------- +void testApp::draw(){ + + /* You can use any of the data from audio received and audiorequested to draw stuff here. + Importantly, most people just use the input and output arrays defined above. + Clever people don't do this. This bit of code shows that by default, each signal is going to flip + between -1 and 1. You need to account for this somehow. Get the absolute value for example. + */ + + ofSetColor(255, 255, 255,255); + ofRect(600, 300, sample*150, sample*150); /* audio sigs go between -1 and 1. See?*/ + ofCircle(200, 300, wave*150); + +} + +//-------------------------------------------------------------- +void testApp::audioRequested (float * output, int bufferSize, int nChannels){ + + for (int i = 0; i < bufferSize; i++){ + + /* Stick your maximilian 'play()' code in here ! Declare your objects in testApp.h. + + For information on how maximilian works, take a look at the example code at + + http://www.maximilian.strangeloop.co.uk + + under 'Tutorials'. + + */ + + + + sample=beat.play(0.25, 0, beat.length); + wave=sine1.sinebuf(abs(mouseX));/* mouse controls sinewave pitch. we get abs value to stop it dropping + // delow zero and killing the soundcard*/ + + mymix.stereo(sample + wave, outputs, 0.5); + + + output[i*nChannels ] = outputs[0]; /* You may end up with lots of outputs. add them here */ + output[i*nChannels + 1] = outputs[1]; + } + +} + +//-------------------------------------------------------------- +void testApp::audioReceived (float * input, int bufferSize, int nChannels){ + + + /* You can just grab this input and stick it in a double, then use it above to create output*/ + + for (int i = 0; i < bufferSize; i++){ + + /* you can also grab the data out of the arrays*/ + + + } + +} + +//-------------------------------------------------------------- +void testApp::keyPressed(int key){ + +} + +//-------------------------------------------------------------- +void testApp::keyReleased(int key){ + +} + +//-------------------------------------------------------------- +void testApp::mouseMoved(int x, int y ){ + + + +} + +//-------------------------------------------------------------- +void testApp::mouseDragged(int x, int y, int button){ + +} + +//-------------------------------------------------------------- +void testApp::mousePressed(int x, int y, int button){ + +} + +//-------------------------------------------------------------- +void testApp::mouseReleased(int x, int y, int button){ + +} + +//-------------------------------------------------------------- +void testApp::windowResized(int w, int h){ + +} + + + +//-------------------------------------------------------------- +void testApp::gotMessage(ofMessage msg){ + +} + +//-------------------------------------------------------------- +void testApp::dragEvent(ofDragInfo dragInfo){ + +} \ No newline at end of file diff --git a/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/src/testApp.h b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/src/testApp.h new file mode 100644 index 0000000..ee11865 --- /dev/null +++ b/ofxMaxim/ofxMaximExamples007OSX/ofMaximExample007OSX/src/testApp.h @@ -0,0 +1,40 @@ +#pragma once + +#include "ofMain.h" +#include "ofxMaxim.h" + + +class testApp : public ofBaseApp{ + + public: + ~testApp();/* destructor is very useful */ + void setup(); + void update(); + void draw(); + + void keyPressed (int key); + void keyReleased(int key); + void mouseMoved(int x, int y ); + void mouseDragged(int x, int y, int button); + void mousePressed(int x, int y, int button); + void mouseReleased(int x, int y, int button); + void windowResized(int w, int h); + void dragEvent(ofDragInfo dragInfo); + void gotMessage(ofMessage msg); + + void audioRequested (float * input, int bufferSize, int nChannels); /* output method */ + void audioReceived (float * input, int bufferSize, int nChannels); /* input method */ + + int initialBufferSize; /* buffer size */ + int sampleRate; + + + /* stick you maximilian stuff below */ + + double wave,sample,outputs[2]; + ofxMaxiMix mymix; + ofxMaxiOsc sine1; + ofxMaxiSample beats,beat; + + +}; -- cgit v1.3