# HG changeset patch # User Henrik Ekeus # Date 1328113052 0 # Node ID 95626beb91abf218970bd1fc5a78c1ad333a491f # Parent 8bb99cbe33411dfeebd623420d478f142401acb9# Parent 055d7524bae4a2a2918de6ca4ea52d3ed193f92c Merge diff -r 8bb99cbe3341 -r 95626beb91ab MelodyTriangle.xcodeproj/project.pbxproj --- a/MelodyTriangle.xcodeproj/project.pbxproj Wed Feb 01 16:17:12 2012 +0000 +++ b/MelodyTriangle.xcodeproj/project.pbxproj Wed Feb 01 16:17:32 2012 +0000 @@ -7,40 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - C852874814C5BF6800AE6996 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1D0A3A1BDC003C02F2 /* main.cpp */; }; - C852874914C5BF6800AE6996 /* testApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */; }; - C852874A14C5BF6800AE6996 /* melodyTriangle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C8E1D9D914BF50E0000A0193 /* melodyTriangle.cpp */; }; - C852874B14C5BF6800AE6996 /* Voice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C8E1DA4214BF60B7000A0193 /* Voice.cpp */; }; - C852874C14C5BF6800AE6996 /* ofxOscBundle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C8B1A91F14C47861003CDFD0 /* ofxOscBundle.cpp */; }; - C852874D14C5BF6800AE6996 /* ofxOscMessage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C8B1A92114C47861003CDFD0 /* ofxOscMessage.cpp */; }; - C852874E14C5BF6800AE6996 /* ofxOscReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C8B1A92314C47861003CDFD0 /* ofxOscReceiver.cpp */; }; - C852874F14C5BF6800AE6996 /* ofxOscSender.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C8B1A92514C47861003CDFD0 /* ofxOscSender.cpp */; }; - C852875114C5BF6800AE6996 /* openFrameworksDebug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2421E10CC549C004149E2 /* openFrameworksDebug.a */; }; - C852875214C5BF6800AE6996 /* GLee.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE0A90E8CC67C009D7055 /* GLee.a */; }; - C852875314C5BF6800AE6996 /* rtAudio.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE2E30E8CC69C009D7055 /* rtAudio.a */; }; - C852875414C5BF6800AE6996 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9710E8CC7DD009D7055 /* AGL.framework */; }; - C852875514C5BF6800AE6996 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */; }; - C852875614C5BF6800AE6996 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */; }; - C852875714C5BF6800AE6996 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9740E8CC7DD009D7055 /* Carbon.framework */; }; - C852875814C5BF6800AE6996 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */; }; - C852875914C5BF6800AE6996 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */; }; - C852875A14C5BF6800AE6996 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9770E8CC7DD009D7055 /* CoreServices.framework */; }; - C852875B14C5BF6800AE6996 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9790E8CC7DD009D7055 /* OpenGL.framework */; }; - C852875C14C5BF6800AE6996 /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */; }; - C852875D14C5BF6800AE6996 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424410CC5A17004149E2 /* AppKit.framework */; }; - C852875E14C5BF6800AE6996 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424510CC5A17004149E2 /* Cocoa.framework */; }; - C852875F14C5BF6800AE6996 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424610CC5A17004149E2 /* IOKit.framework */; }; - C852876014C5BF6800AE6996 /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2425F10CC5A78004149E2 /* GLUT.framework */; }; - C852876114C5BF6800AE6996 /* CppUnit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2427A10CC5B66004149E2 /* CppUnit.a */; }; - C852876214C5BF6800AE6996 /* PocoFoundation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2427B10CC5B66004149E2 /* PocoFoundation.a */; }; - C852876314C5BF6800AE6996 /* PocoNet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2427C10CC5B66004149E2 /* PocoNet.a */; }; - C852876414C5BF6800AE6996 /* PocoUtil.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2427D10CC5B66004149E2 /* PocoUtil.a */; }; - C852876514C5BF6800AE6996 /* PocoXML.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2427E10CC5B66004149E2 /* PocoXML.a */; }; - C852876614C5BF6800AE6996 /* freetype.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2429310CC5C38004149E2 /* freetype.a */; }; - C852876714C5BF6800AE6996 /* libfmodex.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C242CC10CC650E004149E2 /* libfmodex.dylib */; }; - C852876814C5BF6800AE6996 /* freeimage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C246D910CCAE22004149E2 /* freeimage.a */; }; - C852876914C5BF6800AE6996 /* osc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C8B1A91B14C47861003CDFD0 /* osc.a */; }; - C852876C14C5BF6800AE6996 /* GLUT.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = E4C2425F10CC5A78004149E2 /* GLUT.framework */; }; C8B1A92714C47861003CDFD0 /* osc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C8B1A91B14C47861003CDFD0 /* osc.a */; }; C8B1A92814C47861003CDFD0 /* ofxOscBundle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C8B1A91F14C47861003CDFD0 /* ofxOscBundle.cpp */; }; C8B1A92914C47861003CDFD0 /* ofxOscMessage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C8B1A92114C47861003CDFD0 /* ofxOscMessage.cpp */; }; @@ -60,7 +26,6 @@ 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 */; }; E4C2422B10CC554B004149E2 /* openFrameworksDebug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2421E10CC549C004149E2 /* openFrameworksDebug.a */; }; E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424410CC5A17004149E2 /* AppKit.framework */; }; E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424510CC5A17004149E2 /* Cocoa.framework */; }; @@ -78,13 +43,6 @@ /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - C852874614C5BF6800AE6996 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = E4C2421610CC549C004149E2 /* openFrameworksLib.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = E4B27C1410CBEB8E00536013; - remoteInfo = openFrameworks; - }; E4C2421D10CC549C004149E2 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = E4C2421610CC549C004149E2 /* openFrameworksLib.xcodeproj */; @@ -102,16 +60,6 @@ /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ - C852876B14C5BF6800AE6996 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - C852876C14C5BF6800AE6996 /* GLUT.framework in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; E4C2427710CC5ABF004149E2 /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; @@ -125,9 +73,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - C852873414C5BF1A00AE6996 /* MelodyTriangle_Windowed-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "MelodyTriangle_Windowed-Info.plist"; sourceTree = ""; }; - C852877114C5BF6800AE6996 /* MelodyTriangle_windowed.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MelodyTriangle_windowed.app; sourceTree = BUILT_PRODUCTS_DIR; }; - C852877314C5BF6800AE6996 /* MelodyTriangle copy.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "MelodyTriangle copy.plist"; sourceTree = ""; }; C8B1A90614C47861003CDFD0 /* install.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = install.xml; sourceTree = ""; }; C8B1A90B14C47861003CDFD0 /* IpEndpointName.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IpEndpointName.h; sourceTree = ""; }; C8B1A90C14C47861003CDFD0 /* NetworkingUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkingUtils.h; sourceTree = ""; }; @@ -180,8 +125,6 @@ E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = ""; }; E4B69B5B0A3A1756003C02F2 /* MelodyTriangle.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MelodyTriangle.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 /* MelodyTriangle.plist */ = {isa = PBXFileReference; explicitFileType = text.plist.xml; fileEncoding = 30; path = MelodyTriangle.plist; sourceTree = ""; }; E4C2421610CC549C004149E2 /* openFrameworksLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = openFrameworksLib.xcodeproj; path = ../../../libs/openFrameworksCompiled/project/osx/openFrameworksLib.xcodeproj; sourceTree = SOURCE_ROOT; }; E4C2424410CC5A17004149E2 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; @@ -199,38 +142,6 @@ /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - C852875014C5BF6800AE6996 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - C852875114C5BF6800AE6996 /* openFrameworksDebug.a in Frameworks */, - C852875214C5BF6800AE6996 /* GLee.a in Frameworks */, - C852875314C5BF6800AE6996 /* rtAudio.a in Frameworks */, - C852875414C5BF6800AE6996 /* AGL.framework in Frameworks */, - C852875514C5BF6800AE6996 /* ApplicationServices.framework in Frameworks */, - C852875614C5BF6800AE6996 /* AudioToolbox.framework in Frameworks */, - C852875714C5BF6800AE6996 /* Carbon.framework in Frameworks */, - C852875814C5BF6800AE6996 /* CoreAudio.framework in Frameworks */, - C852875914C5BF6800AE6996 /* CoreFoundation.framework in Frameworks */, - C852875A14C5BF6800AE6996 /* CoreServices.framework in Frameworks */, - C852875B14C5BF6800AE6996 /* OpenGL.framework in Frameworks */, - C852875C14C5BF6800AE6996 /* QuickTime.framework in Frameworks */, - C852875D14C5BF6800AE6996 /* AppKit.framework in Frameworks */, - C852875E14C5BF6800AE6996 /* Cocoa.framework in Frameworks */, - C852875F14C5BF6800AE6996 /* IOKit.framework in Frameworks */, - C852876014C5BF6800AE6996 /* GLUT.framework in Frameworks */, - C852876114C5BF6800AE6996 /* CppUnit.a in Frameworks */, - C852876214C5BF6800AE6996 /* PocoFoundation.a in Frameworks */, - C852876314C5BF6800AE6996 /* PocoNet.a in Frameworks */, - C852876414C5BF6800AE6996 /* PocoUtil.a in Frameworks */, - C852876514C5BF6800AE6996 /* PocoXML.a in Frameworks */, - C852876614C5BF6800AE6996 /* freetype.a in Frameworks */, - C852876714C5BF6800AE6996 /* libfmodex.dylib in Frameworks */, - C852876814C5BF6800AE6996 /* freeimage.a in Frameworks */, - C852876914C5BF6800AE6996 /* osc.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; E4B69B590A3A1756003C02F2 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -548,9 +459,6 @@ E4B69E1C0A3A1BDC003C02F2 /* src */, E4C2422310CC54B6004149E2 /* openFrameworks */, E45BE0360E8CC5DE009D7055 /* libs */, - C852873414C5BF1A00AE6996 /* MelodyTriangle_Windowed-Info.plist */, - C852877114C5BF6800AE6996 /* MelodyTriangle_windowed.app */, - C852877314C5BF6800AE6996 /* MelodyTriangle copy.plist */, ); sourceTree = ""; }; @@ -561,10 +469,8 @@ C8E1DA4114BF60B7000A0193 /* Voice.h */, C8E1DA4214BF60B7000A0193 /* Voice.cpp */, E4B69E1D0A3A1BDC003C02F2 /* main.cpp */, - E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */, C8E1D9D914BF50E0000A0193 /* melodyTriangle.cpp */, C8E1D9DA14BF50E0000A0193 /* melodyTriangle.h */, - E4B69E1F0A3A1BDC003C02F2 /* testApp.h */, ); path = src; sourceTree = SOURCE_ROOT; @@ -655,25 +561,6 @@ /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - C852874414C5BF6800AE6996 /* MelodyTriangle_windowed */ = { - isa = PBXNativeTarget; - buildConfigurationList = C852876D14C5BF6800AE6996 /* Build configuration list for PBXNativeTarget "MelodyTriangle_windowed" */; - buildPhases = ( - C852874714C5BF6800AE6996 /* Sources */, - C852875014C5BF6800AE6996 /* Frameworks */, - C852876A14C5BF6800AE6996 /* ShellScript */, - C852876B14C5BF6800AE6996 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - C852874514C5BF6800AE6996 /* PBXTargetDependency */, - ); - name = MelodyTriangle_windowed; - productName = myOFApp; - productReference = C852877114C5BF6800AE6996 /* MelodyTriangle_windowed.app */; - productType = "com.apple.product-type.application"; - }; E4B69B5A0A3A1756003C02F2 /* MelodyTriangle */ = { isa = PBXNativeTarget; buildConfigurationList = E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "MelodyTriangle" */; @@ -720,7 +607,6 @@ projectRoot = ""; targets = ( E4B69B5A0A3A1756003C02F2 /* MelodyTriangle */, - C852874414C5BF6800AE6996 /* MelodyTriangle_windowed */, ); }; /* End PBXProject section */ @@ -736,19 +622,6 @@ /* End PBXReferenceProxy section */ /* Begin PBXShellScriptBuildPhase section */ - C852876A14C5BF6800AE6996 /* 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\"\ninstall_name_tool -change ./libfmodex.dylib @executable_path/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME\" "; - }; E4B6FFFD0C3F9AB9008CF71C /* ShellScript */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -765,27 +638,11 @@ /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - C852874714C5BF6800AE6996 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C852874814C5BF6800AE6996 /* main.cpp in Sources */, - C852874914C5BF6800AE6996 /* testApp.cpp in Sources */, - C852874A14C5BF6800AE6996 /* melodyTriangle.cpp in Sources */, - C852874B14C5BF6800AE6996 /* Voice.cpp in Sources */, - C852874C14C5BF6800AE6996 /* ofxOscBundle.cpp in Sources */, - C852874D14C5BF6800AE6996 /* ofxOscMessage.cpp in Sources */, - C852874E14C5BF6800AE6996 /* ofxOscReceiver.cpp in Sources */, - C852874F14C5BF6800AE6996 /* ofxOscSender.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; E4B69B580A3A1756003C02F2 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */, - E4B69E210A3A1BDC003C02F2 /* testApp.cpp in Sources */, C8E1D9DB14BF50E0000A0193 /* melodyTriangle.cpp in Sources */, C8E1DA4314BF60B7000A0193 /* Voice.cpp in Sources */, C8B1A92814C47861003CDFD0 /* ofxOscBundle.cpp in Sources */, @@ -798,11 +655,6 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - C852874514C5BF6800AE6996 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = openFrameworks; - targetProxy = C852874614C5BF6800AE6996 /* PBXContainerItemProxy */; - }; E4C2422810CC54DA004149E2 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = openFrameworks; @@ -811,161 +663,6 @@ /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - C852876E14C5BF6800AE6996 /* 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_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h"; - INFOPLIST_FILE = "MelodyTriangle copy.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_1 = "\"$(SRCROOT)/../../../addons/ofxOsc/libs/oscpack/lib/osx\""; - LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/freeimage/lib/osx\""; - LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14 = "\"$(SRCROOT)/../../../libs/fmodex/lib/osx\""; - LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15 = "\"$(SRCROOT)/../../../libs/freetype/lib/osx\""; - LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(SRCROOT)/../../../libs/FreeImage/lib/osx\""; - LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4 = "\"$(SRCROOT)/../../../libs/GLee/lib/osx\""; - LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5 = "\"$(SRCROOT)/../../../libs/poco/lib/osx\""; - LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6 = "\"$(SRCROOT)/../../../libs/rtAudio/lib/osx\""; - PREBINDING = NO; - PRODUCT_NAME = "$(TARGET_NAME)Debug"; - WRAPPER_EXTENSION = app; - ZERO_LINK = NO; - }; - name = Debug; - }; - C852876F14C5BF6800AE6996 /* 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 = "MelodyTriangle copy.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_1 = "\"$(SRCROOT)/../../../libs/freeimage/lib/osx\""; - LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14 = "\"$(SRCROOT)/../../../libs/fmodex/lib/osx\""; - LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15 = "\"$(SRCROOT)/../../../libs/freetype/lib/osx\""; - LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(SRCROOT)/../../../libs/FreeImage/lib/osx\""; - LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3 = "\"$(SRCROOT)/../../../addons/ofxOsc/libs/oscpack/lib/osx\""; - LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4 = "\"$(SRCROOT)/../../../libs/GLee/lib/osx\""; - LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5 = "\"$(SRCROOT)/../../../libs/poco/lib/osx\""; - LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6 = "\"$(SRCROOT)/../../../libs/rtAudio/lib/osx\""; - PREBINDING = NO; - PRODUCT_NAME = "$(TARGET_NAME)"; - WRAPPER_EXTENSION = app; - ZERO_LINK = NO; - }; - name = Release; - }; - C852877014C5BF6800AE6996 /* ReleaseUniversal */ = { - 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 = "MelodyTriangle copy.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_1 = "\"$(SRCROOT)/../../../addons/ofxOsc/libs/oscpack/lib/osx\""; - LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/freeimage/lib/osx\""; - LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14 = "\"$(SRCROOT)/../../../libs/fmodex/lib/osx\""; - LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15 = "\"$(SRCROOT)/../../../libs/freetype/lib/osx\""; - LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(SRCROOT)/../../../libs/FreeImage/lib/osx\""; - LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4 = "\"$(SRCROOT)/../../../libs/GLee/lib/osx\""; - LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5 = "\"$(SRCROOT)/../../../libs/poco/lib/osx\""; - LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6 = "\"$(SRCROOT)/../../../libs/rtAudio/lib/osx\""; - PREBINDING = NO; - PRODUCT_NAME = "$(TARGET_NAME)Universal"; - WRAPPER_EXTENSION = app; - ZERO_LINK = NO; - }; - name = ReleaseUniversal; - }; E4B27CA010CBF8A600536013 /* ReleaseUniversal */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1233,16 +930,6 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - C852876D14C5BF6800AE6996 /* Build configuration list for PBXNativeTarget "MelodyTriangle_windowed" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C852876E14C5BF6800AE6996 /* Debug */, - C852876F14C5BF6800AE6996 /* Release */, - C852877014C5BF6800AE6996 /* ReleaseUniversal */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "MelodyTriangle" */ = { isa = XCConfigurationList; buildConfigurations = ( diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/GLUT Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/GLUT has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/copy.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/copy.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/extrude.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/extrude.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/glsmap.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/glsmap.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/glsmapint.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/glsmapint.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/glut.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/glut.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,644 +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. */ - -#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); -#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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/glutbitmap.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/glutbitmap.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/glutf90.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/glutf90.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/glutstroke.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/glutstroke.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/gutil.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/gutil.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/intersect.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/intersect.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/port.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/port.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/rot.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/rot.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/segment.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/segment.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/tube.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/tube.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/tube_gc.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/tube_gc.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/vvector.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Headers/vvector.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUT.nib/objects.nib Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUT.nib/objects.nib has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTClipboard.nib/classes.nib --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTClipboard.nib/classes.nib Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTClipboard.nib/info.nib --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTClipboard.nib/info.nib Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ - - - - - IBDocumentLocation - 63 221 356 240 0 0 1600 1178 - IBFramework Version - 263.2 - IBSystem Version - 5S41 - - diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTClipboard.nib/objects.nib Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTClipboard.nib/objects.nib has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTPreferences.nib/classes.nib --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTPreferences.nib/classes.nib Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTPreferences.nib/info.nib --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTPreferences.nib/info.nib Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,16 +0,0 @@ - - - - - IBDocumentLocation - 16 329 410 240 0 0 1920 1178 - IBFramework Version - 439.0 - IBOpenObjects - - 205 - - IBSystem Version - 8G32 - - diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTPreferences.nib/objects.nib Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTPreferences.nib/objects.nib has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTUI.strings Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTUI.strings has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/InfoPlist.strings Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/InfoPlist.strings has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/Info.plist --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/Info.plist Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/blankCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/blankCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/bottomCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/bottomCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/bottomleftCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/bottomleftCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/bottomrightCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/bottomrightCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/crossCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/crossCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/cycleCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/cycleCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/destroyCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/destroyCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/fingerCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/fingerCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/helpCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/helpCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/leftCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/leftCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/leftRightCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/leftRightCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/rightArrowCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/rightArrowCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/rightCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/rightCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/sprayCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/sprayCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/topCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/topCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/topleftCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/topleftCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/toprightCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/toprightCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/upDownCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/upDownCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/waitCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Resources/waitCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/GLUT Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/GLUT has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/copy.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/copy.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/extrude.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/extrude.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmap.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmap.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmapint.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmapint.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glut.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glut.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,644 +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. */ - -#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); -#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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutbitmap.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutbitmap.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutf90.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutf90.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutstroke.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutstroke.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/gutil.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/gutil.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/intersect.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/intersect.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/port.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/port.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/rot.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/rot.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/segment.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/segment.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube_gc.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube_gc.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/vvector.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/vvector.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUT.nib/objects.nib Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUT.nib/objects.nib has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/classes.nib --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/classes.nib Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/info.nib --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/info.nib Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ - - - - - IBDocumentLocation - 63 221 356 240 0 0 1600 1178 - IBFramework Version - 263.2 - IBSystem Version - 5S41 - - diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/objects.nib Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/objects.nib has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/classes.nib --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/classes.nib Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/info.nib --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/info.nib Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,16 +0,0 @@ - - - - - IBDocumentLocation - 16 329 410 240 0 0 1920 1178 - IBFramework Version - 439.0 - IBOpenObjects - - 205 - - IBSystem Version - 8G32 - - diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/objects.nib Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/objects.nib has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTUI.strings Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTUI.strings has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/InfoPlist.strings Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/InfoPlist.strings has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/Info.plist --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/Info.plist Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/blankCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/blankCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomleftCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomleftCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomrightCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomrightCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/crossCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/crossCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/cycleCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/cycleCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/destroyCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/destroyCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/fingerCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/fingerCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/helpCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/helpCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftRightCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftRightCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightArrowCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightArrowCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/sprayCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/sprayCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topleftCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topleftCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/toprightCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/toprightCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/upDownCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/upDownCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/waitCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/waitCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/GLUT Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/GLUT has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/copy.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/copy.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/extrude.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/extrude.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/glsmap.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/glsmap.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/glsmapint.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/glsmapint.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/glut.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/glut.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,644 +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. */ - -#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); -#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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/glutbitmap.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/glutbitmap.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/glutf90.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/glutf90.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/glutstroke.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/glutstroke.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/gutil.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/gutil.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/intersect.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/intersect.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/port.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/port.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/rot.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/rot.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/segment.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/segment.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/tube.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/tube.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/tube_gc.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/tube_gc.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/vvector.h --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/vvector.h Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUT.nib/objects.nib Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUT.nib/objects.nib has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTClipboard.nib/classes.nib --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTClipboard.nib/classes.nib Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTClipboard.nib/info.nib --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTClipboard.nib/info.nib Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ - - - - - IBDocumentLocation - 63 221 356 240 0 0 1600 1178 - IBFramework Version - 263.2 - IBSystem Version - 5S41 - - diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTClipboard.nib/objects.nib Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTClipboard.nib/objects.nib has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTPreferences.nib/classes.nib --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTPreferences.nib/classes.nib Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTPreferences.nib/info.nib --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTPreferences.nib/info.nib Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,16 +0,0 @@ - - - - - IBDocumentLocation - 16 329 410 240 0 0 1920 1178 - IBFramework Version - 439.0 - IBOpenObjects - - 205 - - IBSystem Version - 8G32 - - diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTPreferences.nib/objects.nib Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTPreferences.nib/objects.nib has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTUI.strings Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTUI.strings has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/InfoPlist.strings Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/InfoPlist.strings has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/Info.plist --- a/bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/Info.plist Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/blankCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/blankCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/bottomCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/bottomCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/bottomleftCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/bottomleftCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/bottomrightCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/bottomrightCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/crossCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/crossCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/cycleCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/cycleCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/destroyCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/destroyCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/fingerCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/fingerCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/helpCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/helpCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/leftCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/leftCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/leftRightCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/leftRightCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/rightArrowCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/rightArrowCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/rightCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/rightCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/sprayCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/sprayCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/topCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/topCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/topleftCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/topleftCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/toprightCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/toprightCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/upDownCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/upDownCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/waitCursor.tiff Binary file bin/MelodyTriangle.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/waitCursor.tiff has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/Info.plist --- a/bin/MelodyTriangle.app/Contents/Info.plist Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ - - - - - BuildMachineOSBuild - 10K549 - CFBundleDevelopmentRegion - English - CFBundleExecutable - MelodyTriangle - 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 -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/MacOS/MelodyTriangle Binary file bin/MelodyTriangle.app/Contents/MacOS/MelodyTriangle has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/MacOS/libfmodex.dylib Binary file bin/MelodyTriangle.app/Contents/MacOS/libfmodex.dylib has changed diff -r 8bb99cbe3341 -r 95626beb91ab bin/MelodyTriangle.app/Contents/PkgInfo --- a/bin/MelodyTriangle.app/Contents/PkgInfo Wed Feb 01 16:17:12 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -APPL???? \ No newline at end of file diff -r 8bb99cbe3341 -r 95626beb91ab release/MelodyTriangle.app.tar.gz Binary file release/MelodyTriangle.app.tar.gz has changed diff -r 8bb99cbe3341 -r 95626beb91ab screenui.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/screenui.sh Wed Feb 01 16:17:32 2012 +0000 @@ -0,0 +1,2 @@ +#!/bin/sh +bin/MelodyTriangle.app/Contents/MacOS/MelodyTriangle localhost 7770 "$@" diff -r 8bb99cbe3341 -r 95626beb91ab src/Voice.cpp --- a/src/Voice.cpp Wed Feb 01 16:17:12 2012 +0000 +++ b/src/Voice.cpp Wed Feb 01 16:17:32 2012 +0000 @@ -9,42 +9,49 @@ #include "Voice.h" +inline static double min(double x,double y) { return (xid=id; posx=x; posy=y; isActive=true; - radius=15; + radius=12; inTriangle=false; octave=0; highlight=false; + amplitude=0.6; + status=clear; } -Voice::Voice(){} - void Voice::draw(){ - ofSetColor(255,0,0); + int r,g,b; + switch (status) { + case clear: r=1; g=0; b=0; break; + default: r=1; g=1; b=0; break; +// case pending: r=1; g=1; b=0; break; +// case waiting: r=1; g=0; b=0; break; +// case moved: r=1; g=0; b=1; break; +// default: r=0; g=1; b=0; + } - if (isActive){ - - ofFill(); - }else { + if (isActive) { r=2*r; g=2*g; b=2*b; } + ofSetColor(100*r,60*g,60*b); + ofFill(); + ofCircle(posx, posy, radius); + //ofNoFill(); + //ofCircle(posx, posy, radius); + + if (highlight) { + ofSetColor(230, 230, 230); ofNoFill(); - } - ofCircle(posx, posy, radius); - if (highlight){ + ofCircle(posx, posy, radius); + } else { ofNoFill(); - ofSetColor(255, 255, 255); ofCircle(posx, posy, radius); } } -bool Voice::isInVoice(int x, int y){ - if (ofDist(x, y, posx, posy)<=radius){ - return true; - }else { - return false; - } +double Voice::louder() { return amplitude=min(1,amplitude*1.125); } +double Voice::quieter() { return amplitude/=1.125; } -} - diff -r 8bb99cbe3341 -r 95626beb91ab src/Voice.h --- a/src/Voice.h Wed Feb 01 16:17:12 2012 +0000 +++ b/src/Voice.h Wed Feb 01 16:17:32 2012 +0000 @@ -9,11 +9,20 @@ #include "ofMain.h" class Voice { public: + Voice(int id, int x, int y); + Voice() {}; - void draw(); - Voice(int id, int x, int y); - Voice(); - bool isInVoice(int x, int y); + enum status { + clear, + pending, + waiting, + moved + }; + + bool isInVoice(int x, int y) { return (ofDist(x, y, posx, posy)<=radius); }; + double louder(); + double quieter(); + void draw(); int id; int posx,posy; @@ -22,6 +31,6 @@ int radius; int octave; bool highlight; - - + double amplitude; + enum status status; }; diff -r 8bb99cbe3341 -r 95626beb91ab src/main.cpp --- a/src/main.cpp Wed Feb 01 16:17:12 2012 +0000 +++ b/src/main.cpp Wed Feb 01 16:17:32 2012 +0000 @@ -5,7 +5,7 @@ #define HOST "localhost" #define PORT 7770 #define NUMVOICES 3 -#define RECEIVEPORT 1234 +#define RECEIVEPORT 7771 //======================================================================== int main(int argc, const char **argv ){ diff -r 8bb99cbe3341 -r 95626beb91ab src/melodyTriangle.cpp --- a/src/melodyTriangle.cpp Wed Feb 01 16:17:12 2012 +0000 +++ b/src/melodyTriangle.cpp Wed Feb 01 16:17:32 2012 +0000 @@ -1,6 +1,7 @@ #include "melodyTriangle.h" #include +#define BUFFER_ZONE 50 // have to drag this far to snap out of triange. /* /birth id /death id @@ -19,19 +20,31 @@ //voices=*Voice[numVoices]; sender.setup( host,port ); receiver.setup( receivePort ); - + + { + ofxOscMessage m; + m.setAddress( "/reply_to" ); + m.addIntArg( receivePort ); + sender.sendMessage( m ); + printf("sent /reply_to %i\n",receivePort); + } } //-------------------------------------------------------------- void melodyTriangle::setup(){ - //voices = new Voice[NUMVOICES]; - ofSetCircleResolution(100); ofBackground(0,0,0); ofSetWindowTitle("Melody Triangle"); + // if vertical sync is off, we can go a bit fast... + // this caps the framerate at 40fps. + ofSetFrameRate(40); + ofEnableSmoothing(); + + // Set up triange coordinates. + // NB. whatever happens here, the triangle must be + // isosceles and left-right symmetric around x=x1. + // Otherwise the clipping won't work triangleHeight=ofGetHeight()*0.75; - ofSetFrameRate(40); // if vertical sync is off, we can go a bit fast... this caps the framerate at 60fps. - ofEnableSmoothing(); x1=ofGetWidth()/2; y1=(ofGetHeight()-triangleHeight)/2; x2=ofGetWidth()/2-triangleHeight/sqrt(3); @@ -39,6 +52,18 @@ x3=ofGetWidth()/2+triangleHeight/sqrt(3); y3=y2; + // used for clipping + DX13=x3-x1; DY13=y3-y1; + SQLEN13=DX13*DX13+DY13*DY13; + + sendCalibrate(); + for (int i=0;i=0 && idstatus=Voice::clear; + else if (st=="pending") v->status=Voice::pending; + else if (st=="requested") v->status=Voice::waiting; + else cout << "** unrecognised voice status: " << st << ".\n"; + } else { + cout << "** voice id "<x2 && xy1 && yy2) { // off the bottom + clipped=true; + *y=y2; + if (*xx3) *x=x3; + } else { // have to be a bit cleverer + bool reflect=false; + if (*x dy*DX13) { + // (x,y) must be somewhere right of triangle now + clipped=true; + int dp=dx*DX13 + dy*DY13; + if (dp<0) { *x=x1; *y=y1; } // off the top + else if (dp>SQLEN13) { *x=x3; *y=y3; } // off the bottom right + else { // project onto right edge + *x=x1+dp*DX13/SQLEN13; + *y=y1+dp*DY13/SQLEN13; + } + } else { + clipped=false; } - }else{ - //printf("not in bounding box \n"); - return false; + if (reflect) *x=2*x1 - *x; // reflect back if necessary } + return clipped; } -void melodyTriangle::sendStatus(Voice v){ + +void melodyTriangle::sendPosition(Voice v){ ofxOscMessage m; ///track id x y left right top bottom area @@ -124,81 +210,87 @@ //-------------------------------------------------------------- void melodyTriangle::draw(){ + bool constrained=false; + bool sendStart=false; - - //let's draw our triangle - ofSetColor(0,0,255); - - ofFill(); - ofTriangle(x1, y1, x2, y2, x3, y3); - bool sendStart=false; if (voiceGrabbed!=-1){ - if (mouseX!=(*voices[voiceGrabbed]).posx || mouseY!=(*voices[voiceGrabbed]).posy){ - //(*voices[voiceGrabbed]).posx=mouseX; - //(*voices[voiceGrabbed]).posy=mouseY; - if ((*voices[voiceGrabbed]).inTriangle && !isInTriangle(mouseX,mouseY)){ - ///death id + Voice *vg=voices[voiceGrabbed]; + if (mouseX!=vg->posx || mouseY!=vg->posy){ + int clipx=mouseX, clipy=mouseY; + bool clipped=clipToTriangle(&clipx,&clipy); + + if (vg->inTriangle) { - if (ofDist((*voices[voiceGrabbed]).posx, (*voices[voiceGrabbed]).posy, mouseX, mouseY) > (*voices[voiceGrabbed]).radius*2){ + if (clipped) { + // check how far we clipped + if (ofDist(clipx, clipy, mouseX, mouseY) > BUFFER_ZONE) { + // if far enough, we pop out of triangle and send + // /death + ofxOscMessage m; + m.setAddress( "/death" ); + m.addIntArg( vg->id ); + sender.sendMessage( m ); + printf("sent /death %i \n",vg->id); + vg->posx=mouseX; + vg->posy=mouseY; + vg->inTriangle=false; + vg->status=Voice::clear; + } else { + // otherwise, we move to clipped point + constrained=true; + vg->posx=clipx; + vg->posy=clipy; + } + } else { // not clipped; normal move + vg->posx=mouseX; + vg->posy=mouseY; + } + } else { // token was outside triangle + vg->posx=mouseX; + vg->posy=mouseY; + if (!clipped){ // ie mouse now in triangle + //birth id - ofxOscMessage m; - ///track id x y left right top bottom area - m.setAddress( "/death" ); - m.addIntArg( (*voices[voiceGrabbed]).id ); - sender.sendMessage( m ); - - printf("sent /death %i \n",(*voices[voiceGrabbed]).id); - (*voices[voiceGrabbed]).posx=mouseX; - (*voices[voiceGrabbed]).posy=mouseY; - - } else { - //printf("e"); - //On Edge - } - - }else{ - (*voices[voiceGrabbed]).posx=mouseX; - (*voices[voiceGrabbed]).posy=mouseY; - //(*voices[voiceGrabbed]).posx=(*voices[voiceGrabbed]).posx*0.9+mouseX*0.1; - //(*voices[voiceGrabbed]).posy=(*voices[voiceGrabbed]).posy*0.9+mouseY*0.1; - - - } - if (!(*voices[voiceGrabbed]).inTriangle && isInTriangle(mouseX,mouseY)){ - //birth id - - ofxOscMessage m; - ///track id x y left right top bottom area - m.setAddress( "/birth" ); - m.addIntArg( (*voices[voiceGrabbed]).id ); - sender.sendMessage( m ); - - printf("sent /birth %i \n",(*voices[voiceGrabbed]).id); - sendStart=true; - } - - - //(*voices[voiceGrabbed]).inTriangle = isInTriangle(mouseX,mouseY); - - (*voices[voiceGrabbed]).inTriangle = isInTriangle((*voices[voiceGrabbed]).posx,(*voices[voiceGrabbed]).posy); - - if ((*voices[voiceGrabbed]).inTriangle){ - sendStatus(*voices[voiceGrabbed]); - if (sendStart){ - if ((*voices[voiceGrabbed]).isActive){ - ofxOscMessage m; - ///track id x y left right top bottom area - m.setAddress( "/start" ); - m.addIntArg( (*voices[voiceGrabbed]).id ); - sender.sendMessage( m ); - printf("sent /start %i \n",(*voices[voiceGrabbed]).id); - } + ofxOscMessage m; + m.setAddress( "/birth" ); + m.addIntArg( vg->id ); + sender.sendMessage( m ); + + printf("sent /birth %i \n",vg->id); + sendOctave(vg->id,vg->octave); + sendAmplitude(vg->id,vg->amplitude); + sendStart=true; + vg->inTriangle=true; } } + if (vg->inTriangle){ + sendPosition(*vg); + vg->status=Voice::moved; + if (sendStart && vg->isActive){ + ofxOscMessage m; + ///track id x y left right top bottom area + m.setAddress( "/start" ); + m.addIntArg( vg->id ); + sender.sendMessage( m ); + printf("sent /start %i \n",vg->id); + } + } } }; + + //let's draw our triangle + ofSetLineWidth(2); + ofSetColor(80,80,80); + ofFill(); + ofTriangle(x1, y1, x2, y2, x3, y3); + if (constrained) ofSetColor(255,96,96); + + // draw smooth edge, brighter if a token is constrained + ofNoFill(); + ofTriangle(x1, y1, x2, y2, x3, y3); + for (int i=0; iisInVoice(mouseX,mouseY)){ + Voice *v=voices[i]; + switch (key) { + case 'a': { + ofxOscMessage m; + const char *addr = v->isActive ? "/stop" : "/start"; + v->isActive=!v->isActive; + m.setAddress(addr); + m.addIntArg(v->id ); + sender.sendMessage( m ); + printf("sent %s %i \n",addr,v->id); + break; + } + case OF_KEY_LEFT: sendShift(v->id,-1,2); break; + case OF_KEY_RIGHT: sendShift(v->id,1,2); break; + case OF_KEY_UP: sendPeriod(v->id,1,2); break; + case OF_KEY_DOWN: sendPeriod(v->id,2,1); break; + case '.': sendPeriod(v->id,1,3); break; + case ',': sendPeriod(v->id,3,1); break; + case '+': sendOctave(v->id, ++v->octave); break; + case '-': sendOctave(v->id, --v->octave); break; + case '*': sendAmplitude(v->id, v->louder()); break; + case '/': sendAmplitude(v->id, v->quieter()); break; + default: printf("unrecognised key: %d.\n",key); + } } - } - } - } - if (key == OF_KEY_UP){ - for (int i=0; ihighlight = voices[i]->isInVoice(x,y); } - - } //-------------------------------------------------------------- @@ -440,7 +381,7 @@ void melodyTriangle::mousePressed(int x, int y, int button){ for (int i=0; iisInVoice(x,y)){ voiceGrabbed=i; //printf("grabbed %i",voiceGrabbed); }else{ diff -r 8bb99cbe3341 -r 95626beb91ab src/melodyTriangle.h --- a/src/melodyTriangle.h Wed Feb 01 16:17:12 2012 +0000 +++ b/src/melodyTriangle.h Wed Feb 01 16:17:32 2012 +0000 @@ -30,17 +30,23 @@ bool enableKeys; float counter; bool bSmooth; - //Voice *voices[NUMVOICES]; Voice *voices[10]; int x1,y1,x2,y2,x3,y3;//Triangle Coords int triangleHeight; int voiceGrabbed; - void sendStatus(Voice v); - bool isInTriangle(int x, int y); + void sendPosition(Voice v); + void sendCalibrate(); + void sendPeriod(int id, int num, int den); + void sendShift(int id, int num, int den); + void sendOctave(int id, int oct); + void sendAmplitude(int id, float amp); private: ofxOscSender sender; ofxOscReceiver receiver; + int DX13, DY13, SQLEN13; + + bool clipToTriangle(int *cx, int *cy); };