diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/Data/Data.xcodeproj/project.xcworkspace/xcshareddata/Data.xccheckout b/1_Data_and_Aesthetic/Assignments/MinjuKim/Data/Data.xcodeproj/project.xcworkspace/xcshareddata/Data.xccheckout new file mode 100644 index 0000000..8232ae8 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/Data/Data.xcodeproj/project.xcworkspace/xcshareddata/Data.xccheckout @@ -0,0 +1,41 @@ + + + + + IDESourceControlProjectFavoriteDictionaryKey + + IDESourceControlProjectIdentifier + 657A8063-7B12-4313-99A9-7555A56824CE + IDESourceControlProjectName + Data + IDESourceControlProjectOriginsDictionary + + F846A2A9C0B4D0F153E70EC98C269889A0585C54 + https://github.com/MinjuViviana/dataart-1.git + + IDESourceControlProjectPath + 1_Data_and_Aesthetic/Assignments/MinjuKim/Data/Data.xcodeproj + IDESourceControlProjectRelativeInstallPathDictionary + + F846A2A9C0B4D0F153E70EC98C269889A0585C54 + ../../../../../.. + + IDESourceControlProjectURL + https://github.com/MinjuViviana/dataart-1.git + IDESourceControlProjectVersion + 111 + IDESourceControlProjectWCCIdentifier + F846A2A9C0B4D0F153E70EC98C269889A0585C54 + IDESourceControlProjectWCConfigurations + + + IDESourceControlRepositoryExtensionIdentifierKey + public.vcs.git + IDESourceControlWCCIdentifierKey + F846A2A9C0B4D0F153E70EC98C269889A0585C54 + IDESourceControlWCCName + dataart-1 + + + + diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/Data/Data.xcodeproj/project.xcworkspace/xcuserdata/Viviana.xcuserdatad/UserInterfaceState.xcuserstate b/1_Data_and_Aesthetic/Assignments/MinjuKim/Data/Data.xcodeproj/project.xcworkspace/xcuserdata/Viviana.xcuserdatad/UserInterfaceState.xcuserstate index 541abf1..635a0cd 100644 Binary files a/1_Data_and_Aesthetic/Assignments/MinjuKim/Data/Data.xcodeproj/project.xcworkspace/xcuserdata/Viviana.xcuserdatad/UserInterfaceState.xcuserstate and b/1_Data_and_Aesthetic/Assignments/MinjuKim/Data/Data.xcodeproj/project.xcworkspace/xcuserdata/Viviana.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/.DS_Store b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/.DS_Store new file mode 100644 index 0000000..d85595c Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/.DS_Store differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/DataWeek2.xcodeproj/project.pbxproj b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/DataWeek2.xcodeproj/project.pbxproj new file mode 100644 index 0000000..735cc53 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/DataWeek2.xcodeproj/project.pbxproj @@ -0,0 +1,680 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 5E7E51DD1AA4229B003ABAC9 /* Country.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E7E51DB1AA4229B003ABAC9 /* Country.cpp */; }; + 77699BF6BD81647F909A0009 /* ofxCsv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EFECE002FA2814DBD4904261 /* ofxCsv.cpp */; }; + BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; }; + BEDFEE7400C58EA4E412B757 /* ofxJSONElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F2B099E6BD1199664C48B177 /* ofxJSONElement.cpp */; }; + E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4328148138ABC890047C5CB /* openFrameworksDebug.a */; }; + E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9710E8CC7DD009D7055 /* AGL.framework */; }; + E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */; }; + E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */; }; + E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */; }; + E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */; }; + E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9770E8CC7DD009D7055 /* CoreServices.framework */; }; + E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9790E8CC7DD009D7055 /* OpenGL.framework */; }; + E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */; }; + E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1D0A3A1BDC003C02F2 /* main.cpp */; }; + E4B69E210A3A1BDC003C02F2 /* ofApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */; }; + E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424410CC5A17004149E2 /* AppKit.framework */; }; + E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424510CC5A17004149E2 /* Cocoa.framework */; }; + E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424610CC5A17004149E2 /* IOKit.framework */; }; + E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; }; + E7E077E515D3B63C0020DFD4 /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */; }; + E7E077E815D3B6510020DFD4 /* QTKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7E077E715D3B6510020DFD4 /* QTKit.framework */; }; + E7F985F815E0DEA3003869B5 /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E7F985F515E0DE99003869B5 /* Accelerate.framework */; }; + FB84AAF8D1B7A95266DB5C09 /* jsoncpp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 21BDE665988474F1B1F4D302 /* jsoncpp.cpp */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + E4328147138ABC890047C5CB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = E4B27C1510CBEB8E00536013; + remoteInfo = openFrameworks; + }; + E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = E4B27C1410CBEB8E00536013; + remoteInfo = openFrameworks; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + E4C2427710CC5ABF004149E2 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1645F56257269CD0356320BD /* ofxJSON.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxJSON.h; path = ../../../addons/ofxJSON/src/ofxJSON.h; sourceTree = SOURCE_ROOT; }; + 21BDE665988474F1B1F4D302 /* jsoncpp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = jsoncpp.cpp; path = ../../../addons/ofxJSON/libs/jsoncpp/src/jsoncpp.cpp; sourceTree = SOURCE_ROOT; }; + 26A541233BC6F736E758F718 /* ofxJSONElement.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxJSONElement.h; path = ../../../addons/ofxJSON/src/ofxJSONElement.h; sourceTree = SOURCE_ROOT; }; + 2C7CF000B7B4F782C187C353 /* json.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = json.h; path = ../../../addons/ofxJSON/libs/jsoncpp/include/json/json.h; sourceTree = SOURCE_ROOT; }; + 3BAFE2897D2FABE86454A7AD /* ofxCsv.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxCsv.h; path = ../../../addons/ofxCsv/src/ofxCsv.h; sourceTree = SOURCE_ROOT; }; + 5E7E51DB1AA4229B003ABAC9 /* Country.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Country.cpp; sourceTree = ""; }; + 5E7E51DC1AA4229B003ABAC9 /* Country.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Country.h; sourceTree = ""; }; + 61313493CDB52744E22A604D /* json-forwards.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = "json-forwards.h"; path = "../../../addons/ofxJSON/libs/jsoncpp/include/json/json-forwards.h"; sourceTree = SOURCE_ROOT; }; + BBAB23BE13894E4700AA2426 /* GLUT.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLUT.framework; path = ../../../libs/glut/lib/osx/GLUT.framework; sourceTree = ""; }; + E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = openFrameworksLib.xcodeproj; path = ../../../libs/openFrameworksCompiled/project/osx/openFrameworksLib.xcodeproj; sourceTree = SOURCE_ROOT; }; + E45BE9710E8CC7DD009D7055 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = ""; }; + E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = ""; }; + E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = ""; }; + E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = ""; }; + E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = ""; }; + E45BE9770E8CC7DD009D7055 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = ""; }; + E45BE9790E8CC7DD009D7055 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = ""; }; + E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = ""; }; + E4B69B5B0A3A1756003C02F2 /* DataWeek2Debug.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DataWeek2Debug.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 /* ofApp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofApp.cpp; path = src/ofApp.cpp; sourceTree = SOURCE_ROOT; }; + E4B69E1F0A3A1BDC003C02F2 /* ofApp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = ofApp.h; path = src/ofApp.h; sourceTree = SOURCE_ROOT; }; + E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = "openFrameworks-Info.plist"; sourceTree = ""; }; + E4C2424410CC5A17004149E2 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; + E4C2424510CC5A17004149E2 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; + E4C2424610CC5A17004149E2 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = ""; }; + E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = CoreOF.xcconfig; path = ../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig; sourceTree = SOURCE_ROOT; }; + E4EB6923138AFD0F00A09F29 /* Project.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Project.xcconfig; sourceTree = ""; }; + E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = /System/Library/Frameworks/CoreVideo.framework; sourceTree = ""; }; + E7E077E715D3B6510020DFD4 /* QTKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = /System/Library/Frameworks/QTKit.framework; sourceTree = ""; }; + E7F985F515E0DE99003869B5 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = /System/Library/Frameworks/Accelerate.framework; sourceTree = ""; }; + EFECE002FA2814DBD4904261 /* ofxCsv.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxCsv.cpp; path = ../../../addons/ofxCsv/src/ofxCsv.cpp; sourceTree = SOURCE_ROOT; }; + F2B099E6BD1199664C48B177 /* ofxJSONElement.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = ofxJSONElement.cpp; path = ../../../addons/ofxJSON/src/ofxJSONElement.cpp; sourceTree = SOURCE_ROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + E4B69B590A3A1756003C02F2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + E7F985F815E0DEA3003869B5 /* Accelerate.framework in Frameworks */, + E7E077E815D3B6510020DFD4 /* QTKit.framework in Frameworks */, + E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */, + E4328149138ABC9F0047C5CB /* openFrameworksDebug.a in Frameworks */, + E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */, + E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */, + E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */, + E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */, + E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */, + E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */, + E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */, + E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */, + E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */, + E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */, + E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */, + E7E077E515D3B63C0020DFD4 /* CoreVideo.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 2865DAEF86B1907A704CA70B /* ofxJSON */ = { + isa = PBXGroup; + children = ( + 292AF6148769654D0DF26018 /* src */, + F40E80CB2D443CBA9581DD03 /* libs */, + ); + name = ofxJSON; + sourceTree = ""; + }; + 292AF6148769654D0DF26018 /* src */ = { + isa = PBXGroup; + children = ( + 1645F56257269CD0356320BD /* ofxJSON.h */, + F2B099E6BD1199664C48B177 /* ofxJSONElement.cpp */, + 26A541233BC6F736E758F718 /* ofxJSONElement.h */, + ); + name = src; + sourceTree = ""; + }; + 412E4BCA71876A3B006CE76E /* src */ = { + isa = PBXGroup; + children = ( + EFECE002FA2814DBD4904261 /* ofxCsv.cpp */, + 3BAFE2897D2FABE86454A7AD /* ofxCsv.h */, + ); + name = src; + sourceTree = ""; + }; + 58AD3BD71B781D9BC25763C8 /* json */ = { + isa = PBXGroup; + children = ( + 61313493CDB52744E22A604D /* json-forwards.h */, + 2C7CF000B7B4F782C187C353 /* json.h */, + ); + name = json; + sourceTree = ""; + }; + 5CFAC65997CFC4C36CD009B7 /* ofxCsv */ = { + isa = PBXGroup; + children = ( + 412E4BCA71876A3B006CE76E /* src */, + ); + name = ofxCsv; + sourceTree = ""; + }; + 977A836DD2C489CCC5E330FF /* jsoncpp */ = { + isa = PBXGroup; + children = ( + D486FC87F063317BB47E9FAC /* include */, + CCDC6F9CCF925CC402160B85 /* src */, + ); + name = jsoncpp; + sourceTree = ""; + }; + BB4B014C10F69532006C3DED /* addons */ = { + isa = PBXGroup; + children = ( + 5CFAC65997CFC4C36CD009B7 /* ofxCsv */, + 2865DAEF86B1907A704CA70B /* ofxJSON */, + ); + name = addons; + sourceTree = ""; + }; + BBAB23C913894ECA00AA2426 /* system frameworks */ = { + isa = PBXGroup; + children = ( + E7F985F515E0DE99003869B5 /* Accelerate.framework */, + E4C2424410CC5A17004149E2 /* AppKit.framework */, + E4C2424510CC5A17004149E2 /* Cocoa.framework */, + E4C2424610CC5A17004149E2 /* IOKit.framework */, + E45BE9710E8CC7DD009D7055 /* AGL.framework */, + E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */, + E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */, + E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */, + E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */, + E45BE9770E8CC7DD009D7055 /* CoreServices.framework */, + E45BE9790E8CC7DD009D7055 /* OpenGL.framework */, + E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */, + E7E077E415D3B63C0020DFD4 /* CoreVideo.framework */, + E7E077E715D3B6510020DFD4 /* QTKit.framework */, + ); + name = "system frameworks"; + sourceTree = ""; + }; + BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */ = { + isa = PBXGroup; + children = ( + BBAB23BE13894E4700AA2426 /* GLUT.framework */, + ); + name = "3rd party frameworks"; + sourceTree = ""; + }; + CCDC6F9CCF925CC402160B85 /* src */ = { + isa = PBXGroup; + children = ( + 21BDE665988474F1B1F4D302 /* jsoncpp.cpp */, + ); + name = src; + sourceTree = ""; + }; + D486FC87F063317BB47E9FAC /* include */ = { + isa = PBXGroup; + children = ( + 58AD3BD71B781D9BC25763C8 /* json */, + ); + name = include; + sourceTree = ""; + }; + E4328144138ABC890047C5CB /* Products */ = { + isa = PBXGroup; + children = ( + E4328148138ABC890047C5CB /* openFrameworksDebug.a */, + ); + name = Products; + sourceTree = ""; + }; + E45BE5980E8CC70C009D7055 /* frameworks */ = { + isa = PBXGroup; + children = ( + BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */, + BBAB23C913894ECA00AA2426 /* system frameworks */, + ); + name = frameworks; + sourceTree = ""; + }; + E4B69B4A0A3A1720003C02F2 = { + isa = PBXGroup; + children = ( + E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */, + E4EB6923138AFD0F00A09F29 /* Project.xcconfig */, + E4B69E1C0A3A1BDC003C02F2 /* src */, + E4EEC9E9138DF44700A80321 /* openFrameworks */, + BB4B014C10F69532006C3DED /* addons */, + E45BE5980E8CC70C009D7055 /* frameworks */, + E4B69B5B0A3A1756003C02F2 /* DataWeek2Debug.app */, + ); + sourceTree = ""; + }; + E4B69E1C0A3A1BDC003C02F2 /* src */ = { + isa = PBXGroup; + children = ( + E4B69E1D0A3A1BDC003C02F2 /* main.cpp */, + E4B69E1E0A3A1BDC003C02F2 /* ofApp.cpp */, + E4B69E1F0A3A1BDC003C02F2 /* ofApp.h */, + 5E7E51DB1AA4229B003ABAC9 /* Country.cpp */, + 5E7E51DC1AA4229B003ABAC9 /* Country.h */, + ); + path = src; + sourceTree = SOURCE_ROOT; + }; + E4EEC9E9138DF44700A80321 /* openFrameworks */ = { + isa = PBXGroup; + children = ( + E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */, + E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */, + ); + name = openFrameworks; + sourceTree = ""; + }; + F40E80CB2D443CBA9581DD03 /* libs */ = { + isa = PBXGroup; + children = ( + 977A836DD2C489CCC5E330FF /* jsoncpp */, + ); + name = libs; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + E4B69B5A0A3A1756003C02F2 /* DataWeek2 */ = { + isa = PBXNativeTarget; + buildConfigurationList = E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "DataWeek2" */; + buildPhases = ( + E4B69B580A3A1756003C02F2 /* Sources */, + E4B69B590A3A1756003C02F2 /* Frameworks */, + E4B6FFFD0C3F9AB9008CF71C /* ShellScript */, + E4C2427710CC5ABF004149E2 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + E4EEB9AC138B136A00A80321 /* PBXTargetDependency */, + ); + name = DataWeek2; + productName = myOFApp; + productReference = E4B69B5B0A3A1756003C02F2 /* DataWeek2Debug.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + E4B69B4C0A3A1720003C02F2 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0460; + }; + buildConfigurationList = E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "DataWeek2" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + English, + Japanese, + French, + German, + ); + mainGroup = E4B69B4A0A3A1720003C02F2; + productRefGroup = E4B69B4A0A3A1720003C02F2; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = E4328144138ABC890047C5CB /* Products */; + ProjectRef = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + E4B69B5A0A3A1756003C02F2 /* DataWeek2 */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXReferenceProxy section */ + E4328148138ABC890047C5CB /* openFrameworksDebug.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = openFrameworksDebug.a; + remoteRef = E4328147138ABC890047C5CB /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + +/* Begin PBXShellScriptBuildPhase section */ + E4B6FFFD0C3F9AB9008CF71C /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "cp -f ../../../libs/fmodex/lib/osx/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/libfmodex.dylib\"; install_name_tool -change ./libfmodex.dylib @executable_path/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME\";\nmkdir -p \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/\"\ncp -f \"$ICON_FILE\" \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources/\"\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + E4B69B580A3A1756003C02F2 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */, + E4B69E210A3A1BDC003C02F2 /* ofApp.cpp in Sources */, + 5E7E51DD1AA4229B003ABAC9 /* Country.cpp in Sources */, + 77699BF6BD81647F909A0009 /* ofxCsv.cpp in Sources */, + BEDFEE7400C58EA4E412B757 /* ofxJSONElement.cpp in Sources */, + FB84AAF8D1B7A95266DB5C09 /* jsoncpp.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + E4EEB9AC138B136A00A80321 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = openFrameworks; + targetProxy = E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + E4B69B4E0A3A1720003C02F2 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; + buildSettings = { + ARCHS = "$(NATIVE_ARCH)"; + CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/"; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + GCC_AUTO_VECTORIZATION = YES; + GCC_ENABLE_SSE3_EXTENSIONS = YES; + GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES; + GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; + GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO; + GCC_WARN_UNINITIALIZED_AUTOS = NO; + GCC_WARN_UNUSED_VALUE = NO; + GCC_WARN_UNUSED_VARIABLE = NO; + HEADER_SEARCH_PATHS = ( + "$(OF_CORE_HEADERS)", + ../../../addons/ofxCsv/libs, + ../../../addons/ofxCsv/src, + ../../../addons/ofxJSON/libs, + ../../../addons/ofxJSON/libs/jsoncpp, + ../../../addons/ofxJSON/libs/jsoncpp/include, + ../../../addons/ofxJSON/libs/jsoncpp/include/json, + ../../../addons/ofxJSON/libs/jsoncpp/src, + ../../../addons/ofxJSON/src, + ); + MACOSX_DEPLOYMENT_TARGET = 10.6; + OTHER_CPLUSPLUSFLAGS = ( + "-D__MACOSX_CORE__", + "-lpthread", + "-mtune=native", + ); + SDKROOT = macosx; + }; + name = Debug; + }; + E4B69B4F0A3A1720003C02F2 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */; + buildSettings = { + ARCHS = "$(NATIVE_ARCH)"; + CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/"; + COPY_PHASE_STRIP = YES; + DEAD_CODE_STRIPPING = YES; + GCC_AUTO_VECTORIZATION = YES; + GCC_ENABLE_SSE3_EXTENSIONS = YES; + GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; + GCC_OPTIMIZATION_LEVEL = 3; + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_UNROLL_LOOPS = YES; + GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES; + GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO; + GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO; + GCC_WARN_UNINITIALIZED_AUTOS = NO; + GCC_WARN_UNUSED_VALUE = NO; + GCC_WARN_UNUSED_VARIABLE = NO; + HEADER_SEARCH_PATHS = ( + "$(OF_CORE_HEADERS)", + ../../../addons/ofxCsv/libs, + ../../../addons/ofxCsv/src, + ../../../addons/ofxJSON/libs, + ../../../addons/ofxJSON/libs/jsoncpp, + ../../../addons/ofxJSON/libs/jsoncpp/include, + ../../../addons/ofxJSON/libs/jsoncpp/include/json, + ../../../addons/ofxJSON/libs/jsoncpp/src, + ../../../addons/ofxJSON/src, + ); + MACOSX_DEPLOYMENT_TARGET = 10.6; + OTHER_CPLUSPLUSFLAGS = ( + "-D__MACOSX_CORE__", + "-lpthread", + "-mtune=native", + ); + SDKROOT = macosx; + }; + name = Release; + }; + E4B69B600A3A1757003C02F2 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + 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_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_MODEL_TUNING = NONE; + ICON = "$(ICON_NAME_DEBUG)"; + ICON_FILE = "$(ICON_FILE_PATH)$(ICON)"; + INFOPLIST_FILE = "openFrameworks-Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_52)", + ); + PRODUCT_NAME = "$(TARGET_NAME)Debug"; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + E4B69B610A3A1757003C02F2 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + 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_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_MODEL_TUNING = NONE; + ICON = "$(ICON_NAME_RELEASE)"; + ICON_FILE = "$(ICON_FILE_PATH)$(ICON)"; + INFOPLIST_FILE = "openFrameworks-Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_1)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)", + "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)", + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "DataWeek2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E4B69B4E0A3A1720003C02F2 /* Debug */, + E4B69B4F0A3A1720003C02F2 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "DataWeek2" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E4B69B600A3A1757003C02F2 /* Debug */, + E4B69B610A3A1757003C02F2 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = E4B69B4C0A3A1720003C02F2 /* Project object */; +} diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/DataWeek2.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/DataWeek2.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..50059c8 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/DataWeek2.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/DataWeek2.xcodeproj/project.xcworkspace/xcuserdata/Viviana.xcuserdatad/UserInterfaceState.xcuserstate b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/DataWeek2.xcodeproj/project.xcworkspace/xcuserdata/Viviana.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000..c7dd810 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/DataWeek2.xcodeproj/project.xcworkspace/xcuserdata/Viviana.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/DataWeek2.xcodeproj/xcshareddata/xcschemes/DataWeek2 Debug.xcscheme b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/DataWeek2.xcodeproj/xcshareddata/xcschemes/DataWeek2 Debug.xcscheme new file mode 100644 index 0000000..2df49db --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/DataWeek2.xcodeproj/xcshareddata/xcschemes/DataWeek2 Debug.xcscheme @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/DataWeek2.xcodeproj/xcshareddata/xcschemes/DataWeek2 Release.xcscheme b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/DataWeek2.xcodeproj/xcshareddata/xcschemes/DataWeek2 Release.xcscheme new file mode 100644 index 0000000..61bebaf --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/DataWeek2.xcodeproj/xcshareddata/xcschemes/DataWeek2 Release.xcscheme @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/DataWeek2.xcodeproj/xcuserdata/Viviana.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/DataWeek2.xcodeproj/xcuserdata/Viviana.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist new file mode 100644 index 0000000..fe2b454 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/DataWeek2.xcodeproj/xcuserdata/Viviana.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -0,0 +1,5 @@ + + + diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/DataWeek2.xcodeproj/xcuserdata/Viviana.xcuserdatad/xcschemes/xcschememanagement.plist b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/DataWeek2.xcodeproj/xcuserdata/Viviana.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..13dfb6e --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/DataWeek2.xcodeproj/xcuserdata/Viviana.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SuppressBuildableAutocreation + + E4B69B5A0A3A1756003C02F2 + + primary + + + + + diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/Makefile b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/Makefile new file mode 100644 index 0000000..7a7fe8b --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/Makefile @@ -0,0 +1,13 @@ +# Attempt to load a config.make file. +# If none is found, project defaults in config.project.make will be used. +ifneq ($(wildcard config.make),) + include config.make +endif + +# make sure the the OF_ROOT location is defined +ifndef OF_ROOT + OF_ROOT=../../.. +endif + +# call the project makefile! +include $(OF_ROOT)/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/Project.xcconfig b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/Project.xcconfig new file mode 100644 index 0000000..c90f7b1 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/Project.xcconfig @@ -0,0 +1,17 @@ +//THE PATH TO THE ROOT OF OUR OF PATH RELATIVE TO THIS PROJECT. +//THIS NEEDS TO BE DEFINED BEFORE CoreOF.xcconfig IS INCLUDED +OF_PATH = ../../.. + +//THIS HAS ALL THE HEADER AND LIBS FOR OF CORE +#include "../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig" + +//ICONS - NEW IN 0072 +ICON_NAME_DEBUG = icon-debug.icns +ICON_NAME_RELEASE = icon.icns +ICON_FILE_PATH = $(OF_PATH)/libs/openFrameworksCompiled/project/osx/ + +//IF YOU WANT AN APP TO HAVE A CUSTOM ICON - PUT THEM IN YOUR DATA FOLDER AND CHANGE ICON_FILE_PATH to: +//ICON_FILE_PATH = bin/data/ + +OTHER_LDFLAGS = $(OF_CORE_LIBS) +HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS) diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/addons.make b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/addons.make new file mode 100644 index 0000000..ecebbb2 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/addons.make @@ -0,0 +1,2 @@ +ofxCsv +ofxJSON diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/.DS_Store b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/.DS_Store new file mode 100644 index 0000000..0ef2826 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/.DS_Store differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/GLUT b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/GLUT new file mode 100644 index 0000000..babc6b1 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/GLUT differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/copy.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/copy.h new file mode 100644 index 0000000..a5116e2 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/copy.h @@ -0,0 +1,18 @@ + +/* + * + * Written By Linas Vepstas November 1991 + */ + + +#define COPY_THREE_WORDS(A,B) { \ + struct three_words { int a, b, c, }; \ + *(struct three_words *) (A) = *(struct three_words *) (B); \ +} + +#define COPY_FOUR_WORDS(A,B) { \ + struct four_words { int a, b, c, d, }; \ + *(struct four_words *) (A) = *(struct four_words *) (B); \ +} + +/* ============================================================= */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/extrude.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/extrude.h new file mode 100644 index 0000000..658699e --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/extrude.h @@ -0,0 +1,96 @@ + +/* + * extrude.h + * + * FUNCTION: + * prototypes for privately used subroutines for the tubing library + * + * HISTORY: + * Linas Vepstas 1991 + */ + +#include "port.h" /* for gleDouble */ + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +/* ============================================================ */ +/* + * Provides choice of calling subroutine, vs. invoking macro. + * Basically, inlines the source, or not. + * Trades performance for executable size. + */ + +#define INLINE_INTERSECT +#ifdef INLINE_INTERSECT +#define INNERSECT(sect,p,n,v1,v2) { INTERSECT(sect,p,n,v1,v2); } +#else +#define INNERSECT(sect,p,n,v1,v2) intersect(sect,p,n,v1,v2) +#endif /* INLINE_INTERSECT */ + +/* ============================================================ */ +/* The folowing defines give a kludgy way of accessing the qmesh primitive */ + +/* +#define bgntmesh _emu_qmesh_bgnqmesh +#define endtmesh _emu_qmesh_endqmesh +#define c3f _emu_qmesh_c3f +#define n3f _emu_qmesh_n3f +#define v3f _emu_qmesh_v3f +*/ + +/* ============================================================ */ + +extern void up_sanity_check (gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3]); /* polyline */ + + +extern void draw_raw_style_end_cap (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble zval, /* where to draw cap */ + int frontwards); /* front or back cap */ + +extern void draw_round_style_cap_callback (int iloop, + double cap[][3], + float face_color[3], + gleDouble cut_vector[3], + gleDouble bisect_vector[3], + double norms[][3], + int frontwards); + +extern void draw_angle_style_front_cap (int ncp, + gleDouble bi[3], + gleDouble point_array[][3]); + +extern void extrusion_raw_join (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2],/* 2D contour normal vecs */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline */ + float color_array[][3], /* color of polyline */ + gleDouble xform_array[][2][3]); /* 2D contour xforms */ + + +extern void extrusion_round_or_cut_join (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2],/* 2D contour normal vecs */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline */ + float color_array[][3], /* color of polyline */ + gleDouble xform_array[][2][3]); /* 2D contour xforms */ + + +extern void extrusion_angle_join (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2],/* 2D contour normal vecs */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline */ + float color_array[][3], /* color of polyline */ + gleDouble xform_array[][2][3]); /* 2D contour xforms */ + +/* -------------------------- end of file -------------------------------- */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/glsmap.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/glsmap.h new file mode 100644 index 0000000..baf54a7 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/glsmap.h @@ -0,0 +1,137 @@ +#ifndef __glsmap_h__ +#define __glsmap_h__ + +/* Copyright (c) Mark J. Kilgard, 1998. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#if defined(_WIN32) + +/* Try hard to avoid including to avoid name space pollution, + but Win32's needs APIENTRY and WINGDIAPI defined properly. */ +# if 0 +# define WIN32_LEAN_AND_MEAN +# include +# else + /* XXX This is from Win32's */ +# ifndef APIENTRY +# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) +# define APIENTRY __stdcall +# else +# define APIENTRY +# endif +# endif +# ifndef CALLBACK + /* XXX This is from Win32's */ +# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) +# define CALLBACK __stdcall +# else +# define CALLBACK +# endif +# endif + /* XXX This is from Win32's and */ +# ifndef WINGDIAPI +# define WINGDIAPI __declspec(dllimport) +# endif + /* XXX This is from Win32's */ +# ifndef _WCHAR_T_DEFINED +typedef unsigned short wchar_t; +# define _WCHAR_T_DEFINED +# endif +# endif + +#pragma warning (disable:4244) /* Disable bogus conversion warnings. */ +#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ + +#endif /* _WIN32 */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum { + SMAP_CLEAR_SMAP_TEXTURE = 0x1, + SMAP_GENERATE_VIEW_MIPMAPS = 0x2, + SMAP_GENERATE_SMAP_MIPMAPS = 0x4, + SMAP_GENERATE_MIPMAPS = 0x6 /* both of above */ +} SphereMapFlags; + +/* Cube view enumerants. */ +enum { + SMAP_FRONT = 0, + SMAP_TOP = 1, + SMAP_BOTTOM = 2, + SMAP_LEFT = 3, + SMAP_RIGHT = 4, + SMAP_BACK = 5 +}; + +typedef struct _SphereMap SphereMap; + +extern SphereMap *smapCreateSphereMap(SphereMap *shareSmap); +extern void smapDestroySphereMap(SphereMap *smap); + +extern void smapConfigureSphereMapMesh(SphereMap *smap, int steps, int rings, int edgeExtend); + +extern void smapSetSphereMapTexObj(SphereMap *smap, GLuint texobj); +extern void smapSetViewTexObj(SphereMap *smap, GLuint texobj); +extern void smapSetViewTexObjs(SphereMap *smap, GLuint texobjs[6]); +extern void smapGetSphereMapTexObj(SphereMap *smap, GLuint *texobj); +extern void smapGetViewTexObj(SphereMap *smap, GLuint *texobj); +extern void smapGetViewTexObjs(SphereMap *smap, GLuint texobjs[6]); + +extern void smapSetFlags(SphereMap *smap, SphereMapFlags flags); +extern void smapGetFlags(SphereMap *smap, SphereMapFlags *flags); + +extern void smapSetViewOrigin(SphereMap *smap, GLint x, GLint y); +extern void smapSetSphereMapOrigin(SphereMap *smap, GLint x, GLint y); +extern void smapGetViewOrigin(SphereMap *smap, GLint *x, GLint *y); +extern void smapGetSphereMapOrigin(SphereMap *smap, GLint *x, GLint *y); + +extern void smapSetEye(SphereMap *smap, GLfloat eyex, GLfloat eyey, GLfloat eyez); +extern void smapSetEyeVector(SphereMap *smap, GLfloat *eye); +extern void smapSetUp(SphereMap *smap, GLfloat upx, GLfloat upy, GLfloat upz); +extern void smapSetUpVector(SphereMap *smap, GLfloat *up); +extern void smapSetObject(SphereMap *smap, GLfloat objx, GLfloat objy, GLfloat objz); +extern void smapSetObjectVector(SphereMap *smap, GLfloat *obj); +extern void smapGetEye(SphereMap *smap, GLfloat *eyex, GLfloat *eyey, GLfloat *eyez); +extern void smapGetEyeVector(SphereMap *smap, GLfloat *eye); +extern void smapGetUp(SphereMap *smap, GLfloat *upx, GLfloat *upy, GLfloat *upz); +extern void smapGetUpVector(SphereMap *smap, GLfloat *up); +extern void smapGetObject(SphereMap *smap, GLfloat *objx, GLfloat *objy, GLfloat *objz); +extern void smapGetObjectVector(SphereMap *smap, GLfloat *obj); + +extern void smapSetNearFar(SphereMap *smap, GLfloat viewNear, GLfloat viewFar); +extern void smapGetNearFar(SphereMap *smap, GLfloat *viewNear, GLfloat *viewFar); + +extern void smapSetSphereMapTexDim(SphereMap *smap, GLsizei texdim); +extern void smapSetViewTexDim(SphereMap *smap, GLsizei texdim); +extern void smapGetSphereMapTexDim(SphereMap *smap, GLsizei *texdim); +extern void smapGetViewTexDim(SphereMap *smap, GLsizei *texdim); + +extern void smapSetContextData(SphereMap *smap, void *context); +extern void smapGetContextData(SphereMap *smap, void **context); + +extern void smapSetPositionLightsFunc(SphereMap *smap, void (*positionLights)(int view, void *context)); +extern void smapSetDrawViewFunc(SphereMap *smap, void (*drawView)(int view, void *context)); +extern void smapGetPositionLightsFunc(SphereMap *smap, void (**positionLights)(int view, void *context)); +extern void smapGetDrawViewFunc(SphereMap *smap, void (**drawView)(int view, void *context)); + +extern void smapGenViewTex(SphereMap *smap, int view); +extern void smapGenViewTexs(SphereMap *smap); +extern void smapGenSphereMapFromViewTexs(SphereMap *smap); +extern void smapGenSphereMap(SphereMap *smap); +extern void smapGenSphereMapWithOneViewTex(SphereMap *smap); + +extern int smapRvecToSt(float rvec[3], float st[2]); +extern void smapStToRvec(float *st, float *rvec); + +#ifdef __cplusplus +} + +#endif +#endif /* __glsmap_h__ */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/glsmapint.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/glsmapint.h new file mode 100644 index 0000000..3620e7d --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/glsmapint.h @@ -0,0 +1,102 @@ +#ifndef __glsmapint_h__ +#define __glsmapint_h__ + +/* Copyright (c) Mark J. Kilgard, 1998. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#include "glsmap.h" + +enum { X = 0, Y = 1, Z = 2 }; + +#define INITFACE(mesh) \ + int steps = mesh->steps; \ + int sqsteps = mesh->steps * mesh->steps + +#define FACE(side,y,x) \ + mesh->face[(side)*sqsteps + (y)*steps + (x)] + +#define FACExy(side,i,j) \ + (&FACE(side,i,j).x) + +#define FACEst(side,i,j) \ + (&FACE(side,i,j).s) + +#define INITBACK(mesh) \ + int allrings = mesh->rings + mesh->edgeExtend; \ + int ringedspokes = allrings * mesh->steps + +#define BACK(edge,ring,spoke) \ + mesh->back[(edge)*ringedspokes + (ring)*mesh->steps + (spoke)] + +#define BACKxy(edge,ring,spoke) \ + (&BACK(edge,ring,spoke).x) + +#define BACKst(edge,ring,spoke) \ + (&BACK(edge,ring,spoke).s) + +typedef struct _STXY { + GLfloat s, t; + GLfloat x, y; +} STXY; + +typedef struct _SphereMapMesh { + + int refcnt; + + int steps; + int rings; + int edgeExtend; + + STXY *face; + STXY *back; + +} SphereMapMesh; + +struct _SphereMap { + + /* Shared sphere map mesh vertex data. */ + SphereMapMesh *mesh; + + /* Texture object ids. */ + GLuint smapTexObj; + GLuint viewTexObjs[6]; + GLuint viewTexObj; + + /* Flags */ + SphereMapFlags flags; + + /* Texture dimensions must be a power of two. */ + int viewTexDim; /* view texture dimension */ + int smapTexDim; /* sphere map texture dimension */ + + /* Viewport origins for view and sphere map rendering. */ + int viewOrigin[2]; + int smapOrigin[2]; + + /* Viewing vectors. */ + GLfloat eye[3]; + GLfloat up[3]; + GLfloat obj[3]; + + /* Projection parameters. */ + GLfloat viewNear; + GLfloat viewFar; + + /* Rendering callbacks. */ + void (*positionLights)(int view, void *context); + void (*drawView)(int view, void *context); + + /* Application specified callback data. */ + void *context; + +}; + +/* Library internal routines. */ +extern void __smapDrawSphereMapMeshSide(SphereMapMesh *mesh, int side); +extern void __smapDrawSphereMapMeshBack(SphereMapMesh *mesh); +extern void __smapValidateSphereMapMesh(SphereMapMesh *mesh); + +#endif /* __glsmapint_h__ */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/glut.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/glut.h new file mode 100644 index 0000000..cbc6ebe --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/glut.h @@ -0,0 +1,648 @@ +#ifndef __glut_h__ +#define __glut_h__ + +/* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998. */ + +/* This program is freely distributable without licensing fees and is + provided without guarantee or warrantee expressed or implied. This + program is -not- in the public domain. */ +//#define GLUT_OF_007_HACK + +#if defined(_WIN32) + +/* GLUT 3.7 now tries to avoid including + to avoid name space pollution, but Win32's + needs APIENTRY and WINGDIAPI defined properly. */ +# if 0 +# define WIN32_LEAN_AND_MEAN +# include +# else + /* XXX This is from Win32's */ +# ifndef APIENTRY +# define GLUT_APIENTRY_DEFINED +# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) +# define APIENTRY __stdcall +# else +# define APIENTRY +# endif +# endif + /* XXX This is from Win32's */ +# ifndef CALLBACK +# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) +# define CALLBACK __stdcall +# else +# define CALLBACK +# endif +# endif + /* XXX This is from Win32's and */ +# ifndef WINGDIAPI +# define GLUT_WINGDIAPI_DEFINED +# define WINGDIAPI __declspec(dllimport) +# endif + /* XXX This is from Win32's */ +# ifndef _WCHAR_T_DEFINED +typedef unsigned short wchar_t; +# define _WCHAR_T_DEFINED +# endif +# endif + +#pragma comment (lib, "winmm.lib") /* link with Windows MultiMedia lib */ +#pragma comment (lib, "opengl32.lib") /* link with Microsoft OpenGL lib */ +#pragma comment (lib, "glu32.lib") /* link with OpenGL Utility lib */ +#pragma comment (lib, "glut32.lib") /* link with Win32 GLUT lib */ + +#pragma warning (disable:4244) /* Disable bogus conversion warnings. */ +#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ + +#endif + +#if defined(__APPLE__) || defined(MACOSX) +#include +#include +#include +#else +#include +#include +#endif + +/* define APIENTRY and CALLBACK to null string if we aren't on Win32 */ +#if !defined(_WIN32) +#define APIENTRY +#define GLUT_APIENTRY_DEFINED +#define CALLBACK +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/** + GLUT API revision history: + + GLUT_API_VERSION is updated to reflect incompatible GLUT + API changes (interface changes, semantic changes, deletions, + or additions). + + GLUT_API_VERSION=1 First public release of GLUT. 11/29/94 + + GLUT_API_VERSION=2 Added support for OpenGL/GLX multisampling, + extension. Supports new input devices like tablet, dial and button + box, and Spaceball. Easy to query OpenGL extensions. + + GLUT_API_VERSION=3 glutMenuStatus added. + + GLUT_API_VERSION=4 glutInitDisplayString, glutWarpPointer, + glutBitmapLength, glutStrokeLength, glutWindowStatusFunc, dynamic + video resize subAPI, glutPostWindowRedisplay, glutKeyboardUpFunc, + glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat, + glutJoystickFunc, glutForceJoystickFunc (NOT FINALIZED!). + + GLUT_API_VERSION=5 glutGetProcAddress (added by BrianP) +**/ +#ifndef GLUT_API_VERSION /* allow this to be overriden */ +#define GLUT_API_VERSION 5 +#endif + +/** + GLUT implementation revision history: + + GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT + API revisions and implementation revisions (ie, bug fixes). + + GLUT_XLIB_IMPLEMENTATION=1 mjk's first public release of + GLUT Xlib-based implementation. 11/29/94 + + GLUT_XLIB_IMPLEMENTATION=2 mjk's second public release of + GLUT Xlib-based implementation providing GLUT version 2 + interfaces. + + GLUT_XLIB_IMPLEMENTATION=3 mjk's GLUT 2.2 images. 4/17/95 + + GLUT_XLIB_IMPLEMENTATION=4 mjk's GLUT 2.3 images. 6/?/95 + + GLUT_XLIB_IMPLEMENTATION=5 mjk's GLUT 3.0 images. 10/?/95 + + GLUT_XLIB_IMPLEMENTATION=7 mjk's GLUT 3.1+ with glutWarpPoitner. 7/24/96 + + GLUT_XLIB_IMPLEMENTATION=8 mjk's GLUT 3.1+ with glutWarpPoitner + and video resize. 1/3/97 + + GLUT_XLIB_IMPLEMENTATION=9 mjk's GLUT 3.4 release with early GLUT 4 routines. + + GLUT_XLIB_IMPLEMENTATION=11 Mesa 2.5's GLUT 3.6 release. + + GLUT_XLIB_IMPLEMENTATION=12 mjk's GLUT 3.6 release with early GLUT 4 routines + signal handling. + + GLUT_XLIB_IMPLEMENTATION=13 mjk's GLUT 3.7 beta with GameGLUT support. + + GLUT_XLIB_IMPLEMENTATION=14 mjk's GLUT 3.7 beta with f90gl friend interface. + + GLUT_XLIB_IMPLEMENTATION=15 mjk's GLUT 3.7 beta sync'ed with Mesa +**/ +#ifndef GLUT_XLIB_IMPLEMENTATION /* Allow this to be overriden. */ +#define GLUT_XLIB_IMPLEMENTATION 15 +#endif + +/** + MacOS X GLUT implementation revision history: + + GLUT_MACOSX_IMPLEMENTATION is updated to reflect MacOS X + specific GLUT API revisions and implementation revisions + (ie, bug fixes). + + GLUT_MACOSX_IMPLEMENTATION=1 glutSurfaceTexture. + + GLUT_MACOSX_IMPLEMENTATION=2 glutWMCloseFunc, glutCheckLoop. + +**/ +#ifndef GLUT_MACOSX_IMPLEMENTATION /* Allow this to be overriden. */ +#define GLUT_MACOSX_IMPLEMENTATION 2 +#endif + +/* Display mode bit masks. */ +#define GLUT_RGB 0 +#define GLUT_RGBA GLUT_RGB +#define GLUT_INDEX 1 +#define GLUT_SINGLE 0 +#define GLUT_DOUBLE 2 +#define GLUT_ACCUM 4 +#define GLUT_ALPHA 8 +#define GLUT_DEPTH 16 +#define GLUT_STENCIL 32 +#if (GLUT_API_VERSION >= 2) +#define GLUT_MULTISAMPLE 128 +#define GLUT_STEREO 256 +#endif +#if (GLUT_API_VERSION >= 3) +#define GLUT_LUMINANCE 512 +#endif +#define GLUT_NO_RECOVERY 1024 + +/* Mouse buttons. */ +#define GLUT_LEFT_BUTTON 0 +#define GLUT_MIDDLE_BUTTON 1 +#define GLUT_RIGHT_BUTTON 2 + +/* Mouse button state. */ +#define GLUT_DOWN 0 +#define GLUT_UP 1 + +#if (GLUT_API_VERSION >= 2) +/* function keys */ +#define GLUT_KEY_F1 1 +#define GLUT_KEY_F2 2 +#define GLUT_KEY_F3 3 +#define GLUT_KEY_F4 4 +#define GLUT_KEY_F5 5 +#define GLUT_KEY_F6 6 +#define GLUT_KEY_F7 7 +#define GLUT_KEY_F8 8 +#define GLUT_KEY_F9 9 +#define GLUT_KEY_F10 10 +#define GLUT_KEY_F11 11 +#define GLUT_KEY_F12 12 +/* directional keys */ +#define GLUT_KEY_LEFT 100 +#define GLUT_KEY_UP 101 +#define GLUT_KEY_RIGHT 102 +#define GLUT_KEY_DOWN 103 +#define GLUT_KEY_PAGE_UP 104 +#define GLUT_KEY_PAGE_DOWN 105 +#define GLUT_KEY_HOME 106 +#define GLUT_KEY_END 107 +#define GLUT_KEY_INSERT 108 +#endif + +/* Entry/exit state. */ +#define GLUT_LEFT 0 +#define GLUT_ENTERED 1 + +/* Menu usage state. */ +#define GLUT_MENU_NOT_IN_USE 0 +#define GLUT_MENU_IN_USE 1 + +/* Visibility state. */ +#define GLUT_NOT_VISIBLE 0 +#define GLUT_VISIBLE 1 + +/* Window status state. */ +#define GLUT_HIDDEN 0 +#define GLUT_FULLY_RETAINED 1 +#define GLUT_PARTIALLY_RETAINED 2 +#define GLUT_FULLY_COVERED 3 + +/* Color index component selection values. */ +#define GLUT_RED 0 +#define GLUT_GREEN 1 +#define GLUT_BLUE 2 + +/* Layers for use. */ +#define GLUT_NORMAL 0 +#define GLUT_OVERLAY 1 + +#if defined(_WIN32) +/* Stroke font constants (use these in GLUT program). */ +#define GLUT_STROKE_ROMAN ((void*)0) +#define GLUT_STROKE_MONO_ROMAN ((void*)1) + +/* Bitmap font constants (use these in GLUT program). */ +#define GLUT_BITMAP_9_BY_15 ((void*)2) +#define GLUT_BITMAP_8_BY_13 ((void*)3) +#define GLUT_BITMAP_TIMES_ROMAN_10 ((void*)4) +#define GLUT_BITMAP_TIMES_ROMAN_24 ((void*)5) +#if (GLUT_API_VERSION >= 3) +#define GLUT_BITMAP_HELVETICA_10 ((void*)6) +#define GLUT_BITMAP_HELVETICA_12 ((void*)7) +#define GLUT_BITMAP_HELVETICA_18 ((void*)8) +#endif +#else +/* Stroke font opaque addresses (use constants instead in source code). */ +extern void *glutStrokeRoman; +extern void *glutStrokeMonoRoman; + +/* Stroke font constants (use these in GLUT program). */ +#define GLUT_STROKE_ROMAN (&glutStrokeRoman) +#define GLUT_STROKE_MONO_ROMAN (&glutStrokeMonoRoman) + +/* Bitmap font opaque addresses (use constants instead in source code). */ +extern void *glutBitmap9By15; +extern void *glutBitmap8By13; +extern void *glutBitmapTimesRoman10; +extern void *glutBitmapTimesRoman24; +extern void *glutBitmapHelvetica10; +extern void *glutBitmapHelvetica12; +extern void *glutBitmapHelvetica18; + +/* Bitmap font constants (use these in GLUT program). */ +#define GLUT_BITMAP_9_BY_15 (&glutBitmap9By15) +#define GLUT_BITMAP_8_BY_13 (&glutBitmap8By13) +#define GLUT_BITMAP_TIMES_ROMAN_10 (&glutBitmapTimesRoman10) +#define GLUT_BITMAP_TIMES_ROMAN_24 (&glutBitmapTimesRoman24) +#if (GLUT_API_VERSION >= 3) +#define GLUT_BITMAP_HELVETICA_10 (&glutBitmapHelvetica10) +#define GLUT_BITMAP_HELVETICA_12 (&glutBitmapHelvetica12) +#define GLUT_BITMAP_HELVETICA_18 (&glutBitmapHelvetica18) +#endif +#endif + +/* glutGet parameters. */ +#define GLUT_WINDOW_X 100 +#define GLUT_WINDOW_Y 101 +#define GLUT_WINDOW_WIDTH 102 +#define GLUT_WINDOW_HEIGHT 103 +#define GLUT_WINDOW_BUFFER_SIZE 104 +#define GLUT_WINDOW_STENCIL_SIZE 105 +#define GLUT_WINDOW_DEPTH_SIZE 106 +#define GLUT_WINDOW_RED_SIZE 107 +#define GLUT_WINDOW_GREEN_SIZE 108 +#define GLUT_WINDOW_BLUE_SIZE 109 +#define GLUT_WINDOW_ALPHA_SIZE 110 +#define GLUT_WINDOW_ACCUM_RED_SIZE 111 +#define GLUT_WINDOW_ACCUM_GREEN_SIZE 112 +#define GLUT_WINDOW_ACCUM_BLUE_SIZE 113 +#define GLUT_WINDOW_ACCUM_ALPHA_SIZE 114 +#define GLUT_WINDOW_DOUBLEBUFFER 115 +#define GLUT_WINDOW_RGBA 116 +#define GLUT_WINDOW_PARENT 117 +#define GLUT_WINDOW_NUM_CHILDREN 118 +#define GLUT_WINDOW_COLORMAP_SIZE 119 +#if (GLUT_API_VERSION >= 2) +#define GLUT_WINDOW_NUM_SAMPLES 120 +#define GLUT_WINDOW_STEREO 121 +#endif +#if (GLUT_API_VERSION >= 3) +#define GLUT_WINDOW_CURSOR 122 +#endif +#define GLUT_SCREEN_WIDTH 200 +#define GLUT_SCREEN_HEIGHT 201 +#define GLUT_SCREEN_WIDTH_MM 202 +#define GLUT_SCREEN_HEIGHT_MM 203 +#define GLUT_MENU_NUM_ITEMS 300 +#define GLUT_DISPLAY_MODE_POSSIBLE 400 +#define GLUT_INIT_WINDOW_X 500 +#define GLUT_INIT_WINDOW_Y 501 +#define GLUT_INIT_WINDOW_WIDTH 502 +#define GLUT_INIT_WINDOW_HEIGHT 503 +#define GLUT_INIT_DISPLAY_MODE 504 +#if (GLUT_API_VERSION >= 2) +#define GLUT_ELAPSED_TIME 700 +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +#define GLUT_WINDOW_FORMAT_ID 123 +#endif + +#if (GLUT_API_VERSION >= 2) +/* glutDeviceGet parameters. */ +#define GLUT_HAS_KEYBOARD 600 +#define GLUT_HAS_MOUSE 601 +#define GLUT_HAS_SPACEBALL 602 +#define GLUT_HAS_DIAL_AND_BUTTON_BOX 603 +#define GLUT_HAS_TABLET 604 +#define GLUT_NUM_MOUSE_BUTTONS 605 +#define GLUT_NUM_SPACEBALL_BUTTONS 606 +#define GLUT_NUM_BUTTON_BOX_BUTTONS 607 +#define GLUT_NUM_DIALS 608 +#define GLUT_NUM_TABLET_BUTTONS 609 +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +#define GLUT_DEVICE_IGNORE_KEY_REPEAT 610 +#define GLUT_DEVICE_KEY_REPEAT 611 +#define GLUT_HAS_JOYSTICK 612 +#define GLUT_OWNS_JOYSTICK 613 +#define GLUT_JOYSTICK_BUTTONS 614 +#define GLUT_JOYSTICK_AXES 615 +#define GLUT_JOYSTICK_POLL_RATE 616 +#endif + +#if (GLUT_API_VERSION >= 3) +/* glutLayerGet parameters. */ +#define GLUT_OVERLAY_POSSIBLE 800 +#define GLUT_LAYER_IN_USE 801 +#define GLUT_HAS_OVERLAY 802 +#define GLUT_TRANSPARENT_INDEX 803 +#define GLUT_NORMAL_DAMAGED 804 +#define GLUT_OVERLAY_DAMAGED 805 + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +/* glutVideoResizeGet parameters. */ +#define GLUT_VIDEO_RESIZE_POSSIBLE 900 +#define GLUT_VIDEO_RESIZE_IN_USE 901 +#define GLUT_VIDEO_RESIZE_X_DELTA 902 +#define GLUT_VIDEO_RESIZE_Y_DELTA 903 +#define GLUT_VIDEO_RESIZE_WIDTH_DELTA 904 +#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA 905 +#define GLUT_VIDEO_RESIZE_X 906 +#define GLUT_VIDEO_RESIZE_Y 907 +#define GLUT_VIDEO_RESIZE_WIDTH 908 +#define GLUT_VIDEO_RESIZE_HEIGHT 909 +#endif + +/* glutUseLayer parameters. */ +#define GLUT_NORMAL 0 +#define GLUT_OVERLAY 1 + +/* glutGetModifiers return mask. */ +#define GLUT_ACTIVE_SHIFT 1 +#define GLUT_ACTIVE_CTRL 2 +#define GLUT_ACTIVE_ALT 4 + +/* glutSetCursor parameters. */ +/* Basic arrows. */ +#define GLUT_CURSOR_RIGHT_ARROW 0 +#define GLUT_CURSOR_LEFT_ARROW 1 +/* Symbolic cursor shapes. */ +#define GLUT_CURSOR_INFO 2 +#define GLUT_CURSOR_DESTROY 3 +#define GLUT_CURSOR_HELP 4 +#define GLUT_CURSOR_CYCLE 5 +#define GLUT_CURSOR_SPRAY 6 +#define GLUT_CURSOR_WAIT 7 +#define GLUT_CURSOR_TEXT 8 +#define GLUT_CURSOR_CROSSHAIR 9 +/* Directional cursors. */ +#define GLUT_CURSOR_UP_DOWN 10 +#define GLUT_CURSOR_LEFT_RIGHT 11 +/* Sizing cursors. */ +#define GLUT_CURSOR_TOP_SIDE 12 +#define GLUT_CURSOR_BOTTOM_SIDE 13 +#define GLUT_CURSOR_LEFT_SIDE 14 +#define GLUT_CURSOR_RIGHT_SIDE 15 +#define GLUT_CURSOR_TOP_LEFT_CORNER 16 +#define GLUT_CURSOR_TOP_RIGHT_CORNER 17 +#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 18 +#define GLUT_CURSOR_BOTTOM_LEFT_CORNER 19 +/* Inherit from parent window. */ +#define GLUT_CURSOR_INHERIT 100 +/* Blank cursor. */ +#define GLUT_CURSOR_NONE 101 +/* Fullscreen crosshair (if available). */ +#define GLUT_CURSOR_FULL_CROSSHAIR 102 +#endif + +/* GLUT initialization sub-API. */ +extern void APIENTRY glutInit(int *argcp, char **argv); +extern void APIENTRY glutInitDisplayMode(unsigned int mode); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern void APIENTRY glutInitDisplayString(const char *string); +#endif +extern void APIENTRY glutInitWindowPosition(int x, int y); +extern void APIENTRY glutInitWindowSize(int width, int height); +extern void APIENTRY glutMainLoop(void); + +/* GLUT window sub-API. */ +extern int APIENTRY glutCreateWindow(const char *title); +extern int APIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height); +extern void APIENTRY glutDestroyWindow(int win); +extern void APIENTRY glutPostRedisplay(void); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) +extern void APIENTRY glutPostWindowRedisplay(int win); +#endif +extern void APIENTRY glutSwapBuffers(void); +extern int APIENTRY glutGetWindow(void); +extern void APIENTRY glutSetWindow(int win); +extern void APIENTRY glutSetWindowTitle(const char *title); +extern void APIENTRY glutSetIconTitle(const char *title); +extern void APIENTRY glutPositionWindow(int x, int y); +extern void APIENTRY glutReshapeWindow(int width, int height); +extern void APIENTRY glutPopWindow(void); +extern void APIENTRY glutPushWindow(void); +extern void APIENTRY glutIconifyWindow(void); +extern void APIENTRY glutShowWindow(void); +extern void APIENTRY glutHideWindow(void); +#if (GLUT_API_VERSION >= 3) +extern void APIENTRY glutFullScreen(void); +extern void APIENTRY glutSetCursor(int cursor); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern void APIENTRY glutWarpPointer(int x, int y); +#if (GLUT_MACOSX_IMPLEMENTATION >= 1) +/* surface texturing API Mac OS X specific +* Note: +* glutSurfaceTexture has been deprecated, use GL_EXT_framebuffer_object +*/ +#ifdef MAC_OS_X_VERSION_10_5 +extern void APIENTRY glutSurfaceTexture (GLenum target, GLenum internalformat, int surfacewin); AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 +#else +extern void APIENTRY glutSurfaceTexture (GLenum target, GLenum internalformat, int surfacewin); +#endif +#endif +#if (GLUT_MACOSX_IMPLEMENTATION >= 2) +/* Mac OS X specific API */ +extern void APIENTRY glutWMCloseFunc(void (*func)(void)); +extern void APIENTRY glutCheckLoop(void); +#endif +#endif + +/* GLUT overlay sub-API. */ +extern void APIENTRY glutEstablishOverlay(void); +extern void APIENTRY glutRemoveOverlay(void); +extern void APIENTRY glutUseLayer(GLenum layer); +extern void APIENTRY glutPostOverlayRedisplay(void); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) +extern void APIENTRY glutPostWindowOverlayRedisplay(int win); +#endif +extern void APIENTRY glutShowOverlay(void); +extern void APIENTRY glutHideOverlay(void); +#endif + +/* GLUT menu sub-API. */ +extern int APIENTRY glutCreateMenu(void (*)(int)); +extern void APIENTRY glutDestroyMenu(int menu); +extern int APIENTRY glutGetMenu(void); +extern void APIENTRY glutSetMenu(int menu); +extern void APIENTRY glutAddMenuEntry(const char *label, int value); +extern void APIENTRY glutAddSubMenu(const char *label, int submenu); +extern void APIENTRY glutChangeToMenuEntry(int item, const char *label, int value); +extern void APIENTRY glutChangeToSubMenu(int item, const char *label, int submenu); +extern void APIENTRY glutRemoveMenuItem(int item); +extern void APIENTRY glutAttachMenu(int button); +extern void APIENTRY glutDetachMenu(int button); + +/* GLUT window callback sub-API. */ +extern void APIENTRY glutDisplayFunc(void (*func)(void)); +extern void APIENTRY glutReshapeFunc(void (*func)(int width, int height)); +extern void APIENTRY glutKeyboardFunc(void (*func)(unsigned char key, int x, int y)); +extern void APIENTRY glutMouseFunc(void (*func)(int button, int state, int x, int y)); +extern void APIENTRY glutMotionFunc(void (*func)(int x, int y)); +extern void APIENTRY glutPassiveMotionFunc(void (*func)(int x, int y)); +extern void APIENTRY glutEntryFunc(void (*func)(int state)); +extern void APIENTRY glutVisibilityFunc(void (*func)(int state)); +extern void APIENTRY glutIdleFunc(void (*func)(void)); +extern void APIENTRY glutTimerFunc(unsigned int millis, void (*func)(int value), int value); +extern void APIENTRY glutMenuStateFunc(void (*func)(int state)); +#if (GLUT_API_VERSION >= 2) +extern void APIENTRY glutSpecialFunc(void (*func)(int key, int x, int y)); +extern void APIENTRY glutSpaceballMotionFunc(void (*func)(int x, int y, int z)); +extern void APIENTRY glutSpaceballRotateFunc(void (*func)(int x, int y, int z)); +extern void APIENTRY glutSpaceballButtonFunc(void (*func)(int button, int state)); +extern void APIENTRY glutButtonBoxFunc(void (*func)(int button, int state)); +extern void APIENTRY glutDialsFunc(void (*func)(int dial, int value)); +extern void APIENTRY glutTabletMotionFunc(void (*func)(int x, int y)); +extern void APIENTRY glutTabletButtonFunc(void (*func)(int button, int state, int x, int y)); +#if (GLUT_API_VERSION >= 3) +extern void APIENTRY glutMenuStatusFunc(void (*func)(int status, int x, int y)); +extern void APIENTRY glutOverlayDisplayFunc(void (*func)(void)); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern void APIENTRY glutWindowStatusFunc(void (*func)(int state)); +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +extern void APIENTRY glutKeyboardUpFunc(void (*func)(unsigned char key, int x, int y)); +extern void APIENTRY glutSpecialUpFunc(void (*func)(int key, int x, int y)); +extern void APIENTRY glutJoystickFunc(void (*func)(unsigned int buttonMask, int x, int y, int z), int pollInterval); +//#ifdef GLUT_OF_007_HACK +extern void APIENTRY glutDragEventFunc(void (*func)(char ** fileNames, int nFiles, int dragX, int dragY)); +//#endif +#endif +#endif +#endif + +/* GLUT color index sub-API. */ +extern void APIENTRY glutSetColor(int, GLfloat red, GLfloat green, GLfloat blue); +extern GLfloat APIENTRY glutGetColor(int ndx, int component); +extern void APIENTRY glutCopyColormap(int win); + +/* GLUT state retrieval sub-API. */ +extern int APIENTRY glutGet(GLenum type); +extern int APIENTRY glutDeviceGet(GLenum type); +#if (GLUT_API_VERSION >= 2) +/* GLUT extension support sub-API */ +extern int APIENTRY glutExtensionSupported(const char *name); +#endif +#if (GLUT_API_VERSION >= 3) +extern int APIENTRY glutGetModifiers(void); +extern int APIENTRY glutLayerGet(GLenum type); +#endif +#if (GLUT_API_VERSION >= 5) +extern void * APIENTRY glutGetProcAddress(const char *procName); +#endif + +/* GLUT font sub-API */ +extern void APIENTRY glutBitmapCharacter(void *font, int character); +extern int APIENTRY glutBitmapWidth(void *font, int character); +extern void APIENTRY glutStrokeCharacter(void *font, int character); +extern int APIENTRY glutStrokeWidth(void *font, int character); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern int APIENTRY glutBitmapLength(void *font, const unsigned char *string); +extern int APIENTRY glutStrokeLength(void *font, const unsigned char *string); +#endif + +/* GLUT pre-built models sub-API */ +extern void APIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks); +extern void APIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks); +extern void APIENTRY glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); +extern void APIENTRY glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); +extern void APIENTRY glutWireCube(GLdouble size); +extern void APIENTRY glutSolidCube(GLdouble size); +extern void APIENTRY glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); +extern void APIENTRY glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); +extern void APIENTRY glutWireDodecahedron(void); +extern void APIENTRY glutSolidDodecahedron(void); +extern void APIENTRY glutWireTeapot(GLdouble size); +extern void APIENTRY glutSolidTeapot(GLdouble size); +extern void APIENTRY glutWireOctahedron(void); +extern void APIENTRY glutSolidOctahedron(void); +extern void APIENTRY glutWireTetrahedron(void); +extern void APIENTRY glutSolidTetrahedron(void); +extern void APIENTRY glutWireIcosahedron(void); +extern void APIENTRY glutSolidIcosahedron(void); + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +/* GLUT video resize sub-API. */ +extern int APIENTRY glutVideoResizeGet(GLenum param); +extern void APIENTRY glutSetupVideoResizing(void); +extern void APIENTRY glutStopVideoResizing(void); +extern void APIENTRY glutVideoResize(int x, int y, int width, int height); +extern void APIENTRY glutVideoPan(int x, int y, int width, int height); + +/* GLUT debugging sub-API. */ +extern void APIENTRY glutReportErrors(void); +#endif + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +/* GLUT device control sub-API. */ +/* glutSetKeyRepeat modes. */ +#define GLUT_KEY_REPEAT_OFF 0 +#define GLUT_KEY_REPEAT_ON 1 +#define GLUT_KEY_REPEAT_DEFAULT 2 + +/* Joystick button masks. */ +#define GLUT_JOYSTICK_BUTTON_A 1 +#define GLUT_JOYSTICK_BUTTON_B 2 +#define GLUT_JOYSTICK_BUTTON_C 4 +#define GLUT_JOYSTICK_BUTTON_D 8 + +extern void APIENTRY glutIgnoreKeyRepeat(int ignore); +extern void APIENTRY glutSetKeyRepeat(int repeatMode); +extern void APIENTRY glutForceJoystickFunc(void); + +/* GLUT game mode sub-API. */ +/* glutGameModeGet. */ +#define GLUT_GAME_MODE_ACTIVE 0 +#define GLUT_GAME_MODE_POSSIBLE 1 +#define GLUT_GAME_MODE_WIDTH 2 +#define GLUT_GAME_MODE_HEIGHT 3 +#define GLUT_GAME_MODE_PIXEL_DEPTH 4 +#define GLUT_GAME_MODE_REFRESH_RATE 5 +#define GLUT_GAME_MODE_DISPLAY_CHANGED 6 + +extern void APIENTRY glutGameModeString(const char *string); +extern int APIENTRY glutEnterGameMode(void); +extern void APIENTRY glutLeaveGameMode(void); +extern int APIENTRY glutGameModeGet(GLenum mode); +#endif + +#ifdef __cplusplus +} + +#endif + +#ifdef GLUT_APIENTRY_DEFINED +# undef GLUT_APIENTRY_DEFINED +# undef APIENTRY +#endif + +#ifdef GLUT_WINGDIAPI_DEFINED +# undef GLUT_WINGDIAPI_DEFINED +# undef WINGDIAPI +#endif + +#endif /* __glut_h__ */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/glutbitmap.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/glutbitmap.h new file mode 100644 index 0000000..e29a016 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/glutbitmap.h @@ -0,0 +1,30 @@ +#ifndef __glutbitmap_h__ +#define __glutbitmap_h__ + +/* Copyright (c) Mark J. Kilgard, 1994. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#include "glut.h" + +typedef struct { + const GLsizei width; + const GLsizei height; + const GLfloat xorig; + const GLfloat yorig; + const GLfloat advance; + const GLubyte *bitmap; +} BitmapCharRec, *BitmapCharPtr; + +typedef struct { + const char *name; + const int num_chars; + const int first; + const BitmapCharRec * const *ch; +} BitmapFontRec, *BitmapFontPtr; + +typedef void *GLUTbitmapFont; + +#endif /* __glutbitmap_h__ */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/glutf90.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/glutf90.h new file mode 100644 index 0000000..f8a170b --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/glutf90.h @@ -0,0 +1,90 @@ +#ifndef __glutf90_h__ +#define __glutf90_h__ + +/* Copyright (c) Mark J. Kilgard & Willam F. Mitchell, 1998. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +/* This header provides the binding interface for William Mitchell's + f90gl Fortran 90 GLUT binding. Other GLUT language bindings + can and should use this interace. */ + +/* I appreciate the guidance from William Mitchell + (mitchell@cam.nist.gov) in developing this friend interface + for use by the f90gl package. See ../../README.fortran */ + +#include + +#ifndef GLUTCALLBACK + #define GLUTCALLBACK +#endif +#ifndef APIENTRY + #define APIENTRY +#endif + +/* Which callback enumerants for the __glutSetFCB/__glutGetFCB routines. */ +/* NOTE These values are part of a binary interface for the f90gl Fortran + 90 binding and so must NOT changes (additions are allowed). */ + +/* GLUTwindow callbacks. */ +#define GLUT_FCB_DISPLAY 0 /* GLUTdisplayFCB */ +#define GLUT_FCB_RESHAPE 1 /* GLUTreshapeFCB */ +#define GLUT_FCB_MOUSE 2 /* GLUTmouseFCB */ +#define GLUT_FCB_MOTION 3 /* GLUTmotionFCB */ +#define GLUT_FCB_PASSIVE 4 /* GLUTpassiveFCB */ +#define GLUT_FCB_ENTRY 5 /* GLUTentryFCB */ +#define GLUT_FCB_KEYBOARD 6 /* GLUTkeyboardFCB */ +#define GLUT_FCB_KEYBOARD_UP 7 /* GLUTkeyboardFCB */ +#define GLUT_FCB_WINDOW_STATUS 8 /* GLUTwindowStatusFCB */ +#define GLUT_FCB_VISIBILITY 9 /* GLUTvisibilityFCB */ +#define GLUT_FCB_SPECIAL 10 /* GLUTspecialFCB */ +#define GLUT_FCB_SPECIAL_UP 11 /* GLUTspecialFCB */ +#define GLUT_FCB_BUTTON_BOX 12 /* GLUTbuttonBoxFCB */ +#define GLUT_FCB_DIALS 13 /* GLUTdialsFCB */ +#define GLUT_FCB_SPACE_MOTION 14 /* GLUTspaceMotionFCB */ +#define GLUT_FCB_SPACE_ROTATE 15 /* GLUTspaceRotateFCB */ +#define GLUT_FCB_SPACE_BUTTON 16 /* GLUTspaceButtonFCB */ +#define GLUT_FCB_TABLET_MOTION 17 /* GLUTtabletMotionFCB */ +#define GLUT_FCB_TABLET_BUTTON 18 /* GLUTtabletButtonFCB */ +#define GLUT_FCB_JOYSTICK 19 /* GLUTjoystickFCB */ +#define GLUT_FCB_WMCLOSE 20 /* GLUTwmcloseFCB */ +/* Non-GLUTwindow callbacks. */ +#define GLUT_FCB_OVERLAY_DISPLAY 100 /* GLUTdisplayFCB */ +#define GLUT_FCB_SELECT 101 /* GLUTselectFCB */ +#define GLUT_FCB_TIMER 102 /* GLUTtimerFCB */ + +/* GLUT Fortran callback function types. */ +typedef void (GLUTCALLBACK *GLUTdisplayFCB) (void); +typedef void (GLUTCALLBACK *GLUTwmcloseFCB) (void); +typedef void (GLUTCALLBACK *GLUTreshapeFCB) (int *, int *); +/* NOTE the pressed key is int, not unsigned char for Fortran! */ +typedef void (GLUTCALLBACK *GLUTkeyboardFCB) (int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTmouseFCB) (int *, int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTmotionFCB) (int *, int *); +typedef void (GLUTCALLBACK *GLUTpassiveFCB) (int *, int *); +typedef void (GLUTCALLBACK *GLUTentryFCB) (int *); +typedef void (GLUTCALLBACK *GLUTwindowStatusFCB) (int *); +typedef void (GLUTCALLBACK *GLUTvisibilityFCB) (int *); +typedef void (GLUTCALLBACK *GLUTspecialFCB) (int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTbuttonBoxFCB) (int *, int *); +typedef void (GLUTCALLBACK *GLUTdialsFCB) (int *, int *); +typedef void (GLUTCALLBACK *GLUTspaceMotionFCB) (int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTspaceRotateFCB) (int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTspaceButtonFCB) (int *, int *); +typedef void (GLUTCALLBACK *GLUTtabletMotionFCB) (int *, int *); +typedef void (GLUTCALLBACK *GLUTtabletButtonFCB) (int *, int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTjoystickFCB) (unsigned int *buttonMask, int *x, int *y, int *z); + +typedef void (GLUTCALLBACK *GLUTselectFCB) (int *); +typedef void (GLUTCALLBACK *GLUTtimerFCB) (int *); +typedef void (GLUTCALLBACK *GLUTmenuStateFCB) (int *); /* DEPRICATED. */ +typedef void (GLUTCALLBACK *GLUTmenuStatusFCB) (int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTidleFCB) (void); + +/* Functions that set and return Fortran callback functions. */ +extern void* APIENTRY __glutGetFCB(int which); +extern void APIENTRY __glutSetFCB(int which, void *func); + +#endif /* __glutf90_h__ */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/glutstroke.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/glutstroke.h new file mode 100644 index 0000000..cbc9e15 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/glutstroke.h @@ -0,0 +1,42 @@ +#ifndef __glutstroke_h__ +#define __glutstroke_h__ + +/* Copyright (c) Mark J. Kilgard, 1994. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#if defined(_WIN32) +#pragma warning (disable:4244) /* disable bogus conversion warnings */ +#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ +#endif + +typedef struct { + float x; + float y; +} CoordRec, *CoordPtr; + +typedef struct { + int num_coords; + const CoordRec *coord; +} StrokeRec, *StrokePtr; + +typedef struct { + int num_strokes; + const StrokeRec *stroke; + float center; + float right; +} StrokeCharRec, *StrokeCharPtr; + +typedef struct { + const char *name; + int num_chars; + const StrokeCharRec *ch; + float top; + float bottom; +} StrokeFontRec, *StrokeFontPtr; + +typedef void *GLUTstrokeFont; + +#endif /* __glutstroke_h__ */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/gutil.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/gutil.h new file mode 100644 index 0000000..f7ffcf3 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/gutil.h @@ -0,0 +1,89 @@ + +/* + * gutil.h + * + * FUNCTION: + * Provide utilities that allow rotation to occur + * around any axis. + * + * HISTORY: + * created by Linas Vepstas 1990 + * added single & double precision, June 1991, Linas Vepstas + */ + +#ifndef __GUTIL_H__ +#define __GUTIL_H__ + +#ifdef __GUTIL_DOUBLE +#define gutDouble double +#else +#define gutDouble float +#endif + + +#ifdef _NO_PROTO /* NO ANSI C PROTOTYPING */ + +/* Rotation Utilities */ +extern void rot_axis_f (); +extern void rot_about_axis_f (); +extern void rot_omega_f (); +extern void urot_axis_f (); +extern void urot_about_axis_f (); +extern void urot_omega_f (); + +/* double-precision versions */ +extern void rot_axis_d (); +extern void rot_about_axis_d (); +extern void rot_omega_d (); +extern void urot_axis_d (); +extern void urot_about_axis_d (); +extern void urot_omega_d (); + +/* viewpoint functions */ +extern void uview_direction_d (); +extern void uview_direction_f (); +extern void uviewpoint_d (); +extern void uviewpoint_f (); + +#else /* _NO_PROTO */ /* ANSI C PROTOTYPING */ + +/* Rotation Utilities */ +extern void rot_axis_f (float omega, float axis[3]); +extern void rot_about_axis_f (float angle, float axis[3]); +extern void rot_omega_f (float axis[3]); +extern void urot_axis_f (float m[4][4], float omega, float axis[3]); +extern void urot_about_axis_f (float m[4][4], float angle, float axis[3]); +extern void urot_omega_f (float m[4][4], float axis[3]); + +/* double-precision versions */ +extern void rot_axis_d (double omega, double axis[3]); +extern void rot_about_axis_d (double angle, double axis[3]); +extern void rot_omega_d (double axis[3]); +extern void urot_axis_d (double m[4][4], double omega, double axis[3]); +extern void urot_about_axis_d (double m[4][4], double angle, double axis[3]); +extern void urot_omega_d (double m[4][4], double axis[3]); + +/* viewpoint functions */ +extern void uview_direction_d (double m[4][4], /* returned */ + double v21[3], /* input */ + double up[3]); /* input */ + +extern void uview_direction_f (float m[4][4], /* returned */ + float v21[3], /* input */ + float up[3]); /* input */ + +extern void uviewpoint_d (double m[4][4], /* returned */ + double v1[3], /* input */ + double v2[3], /* input */ + double up[3]); /* input */ + +extern void uviewpoint_f (float m[4][4], /* returned */ + float v1[3], /* input */ + float v2[3], /* input */ + float up[3]); /* input */ + +#endif /* _NO_PROTO */ + +#endif /* _GUTIL_H__ */ + +/* ------------------- end of file ---------------------- */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/intersect.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/intersect.h new file mode 100644 index 0000000..f5ff7a5 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/intersect.h @@ -0,0 +1,391 @@ +/* + * FUNCTION: + * This file contains a number of utilities useful to 3D graphics in + * general, and to the generation of tubing and extrusions in particular + * + * HISTORY: + * Written by Linas Vepstas, August 1991 + * Updated to correctly handle degenerate cases, Linas, February 1993 + */ + +#include +#include "port.h" +#include "vvector.h" + +#define BACKWARDS_INTERSECT (2) + +/* ========================================================== */ +/* + * the Degenerate_Tolerance token represents the greatest amount by + * which different scales in a graphics environment can differ before + * they should be considered "degenerate". That is, when one vector is + * a million times longer than another, changces are that the second will + * be less than a pixel int, and therefore was probably meant to be + * degenerate (by the CAD package, etc.) But what should this tolerance + * be? At least 1 in onethousand (since screen sizes are 1K pixels), but + * les than 1 in 4 million (since this is the limit of single-precision + * floating point accuracy). Of course, if double precision were used, + * then the tolerance could be increased. + * + * Potentially, this naive assumption could cause problems if the CAD + * package attempts to zoom in on small details, and turns out, certain + * points should not hvae been degenerate. The problem presented here + * is that the tolerance could run out before single-precision ran + * out, and so the CAD packages would perceive this as a "bug". + * One alternative is to fiddle around & try to tighten the tolerance. + * However, the right alternative is to code the graphics pipeline in + * double-precision (and tighten the tolerance). + * + * By the way, note that Degernate Tolerance is a "dimensionless" + * quantitiy -- it has no units -- it does not measure feet, inches, + * millimeters or pixels. It is used only in the computations of ratios + * and relative lengths. + */ + +/* + * Right now, the tolerance is set to 2 parts in a million, which + * corresponds to a 19-bit distinction of mantissas. Note that + * single-precsion numbers have 24 bit mantissas. + */ + +#define DEGENERATE_TOLERANCE (0.000002) + +/* ========================================================== */ +/* + * The macro and subroutine INTERSECT are designed to compute the + * intersection of a line (defined by the points v1 and v2) and a plane + * (defined as plane which is normal to the vector n, and contains the + * point p). Both return the point sect, which is the point of + * interesection. + * + * This MACRO attemps to be fairly robust by checking for a divide by + * zero. + */ + +/* ========================================================== */ +/* + * HACK ALERT + * The intersection parameter t has the nice property that if t>1, + * then the intersection is "in front of" p1, and if t<0, then the + * intersection is "behind" p2. Unfortunately, as the intersecting plane + * and the line become parallel, t wraps through infinity -- i.e. t can + * become so large that t becomes "greater than infinity" and comes back + * as a negative number (i.e. winding number hopped by one unit). We + * have no way of detecting this situation without adding gazzillions + * of lines of code of topological algebra to detect the winding number; + * and this would be incredibly difficult, and ruin performance. + * + * Thus, we've installed a cheap hack for use by the "cut style" drawing + * routines. If t proves to be a large negative number (more negative + * than -5), then we assume that t was positive and wound through + * infinity. This makes most cuts look good, without introducing bogus + * cuts at infinity. + */ +/* ========================================================== */ + +#define INTERSECT(sect,p,n,v1,v2) \ +{ \ + gleDouble deno, numer, t, omt; \ + \ + deno = (v1[0] - v2[0]) * n[0]; \ + deno += (v1[1] - v2[1]) * n[1]; \ + deno += (v1[2] - v2[2]) * n[2]; \ + \ + if (deno == 0.0) { \ + VEC_COPY (n, v1); \ + /* printf ("Intersect: Warning: line is coplanar with plane \n"); */ \ + } else { \ + \ + numer = (p[0] - v2[0]) * n[0]; \ + numer += (p[1] - v2[1]) * n[1]; \ + numer += (p[2] - v2[2]) * n[2]; \ + \ + t = numer / deno; \ + omt = 1.0 - t; \ + \ + sect[0] = t * v1[0] + omt * v2[0]; \ + sect[1] = t * v1[1] + omt * v2[1]; \ + sect[2] = t * v1[2] + omt * v2[2]; \ + } \ +} + +/* ========================================================== */ +/* + * The macro and subroutine BISECTING_PLANE compute a normal vector that + * describes the bisecting plane between three points (v1, v2 and v3). + * This bisecting plane has the following properties: + * 1) it contains the point v2 + * 2) the angle it makes with v21 == v2 - v1 is equal to the angle it + * makes with v32 == v3 - v2 + * 3) it is perpendicular to the plane defined by v1, v2, v3. + * + * Having input v1, v2, and v3, it returns a unit vector n. + * + * In some cases, the user may specify degenerate points, and still + * expect "reasonable" or "obvious" behaviour. The "expected" + * behaviour for these degenerate cases is: + * + * 1) if v1 == v2 == v3, then return n=0 + * 2) if v1 == v2, then return v32 (normalized). + * 3) if v2 == v3, then return v21 (normalized). + * 4) if v1, v2 and v3 co-linear, then return v21 (normalized). + * + * Mathematically, these special cases "make sense" -- we just have to + * code around potential divide-by-zero's in the code below. + */ + +/* ========================================================== */ + +#define BISECTING_PLANE(valid,n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + double len21, len32; \ + double vdot; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_LENGTH (len21, v21); \ + VEC_LENGTH (len32, v32); \ + \ + if (len21 <= DEGENERATE_TOLERANCE * len32) { \ + \ + if (len32 == 0.0) { \ + /* all three points lie ontop of one-another */ \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + /* return a normalized copy of v32 as bisector */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (n, len32, v32); \ + valid = TRUE; \ + } \ + \ + } else { \ + \ + valid = TRUE; \ + \ + if (len32 <= DEGENERATE_TOLERANCE * len21) { \ + /* return a normalized copy of v21 as bisector */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (n, len21, v21); \ + \ + } else { \ + \ + /* normalize v21 to be of unit length */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (v21, len21, v21); \ + \ + /* normalize v32 to be of unit length */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (v32, len32, v32); \ + \ + VEC_DOT_PRODUCT (vdot, v32, v21); \ + \ + /* if vdot == 1 or -1, then points are colinear */ \ + if ((vdot >= (1.0-DEGENERATE_TOLERANCE)) || \ + (vdot <= (-1.0+DEGENERATE_TOLERANCE))) { \ + VEC_COPY (n, v21); \ + } else { \ + \ + /* go do the full computation */ \ + n[0] = vdot * (v32[0] + v21[0]) - v32[0] - v21[0]; \ + n[1] = vdot * (v32[1] + v21[1]) - v32[1] - v21[1]; \ + n[2] = vdot * (v32[2] + v21[2]) - v32[2] - v21[2]; \ + \ + /* if above if-test's passed, \ + * n should NEVER be of zero length */ \ + VEC_NORMALIZE (n); \ + } \ + } \ + } \ +} + +/* ========================================================== */ +/* + * The block of code below is ifdef'd out, and is here for reference + * purposes only. It performs the "mathematically right thing" for + * computing a bisecting plane, but is, unfortunately, subject ot noise + * in the presence of near degenerate points. Since computer graphics, + * due to sloppy coding, laziness, or correctness, is filled with + * degenerate points, we can't really use this version. The code above + * is far more appropriate for graphics. + */ + +#ifdef MATHEMATICALLY_EXACT_GRAPHICALLY_A_KILLER +#define BISECTING_PLANE(n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + double len21, len32; \ + double vdot; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_LENGTH (len21, v21); \ + VEC_LENGTH (len32, v32); \ + \ + if (len21 == 0.0) { \ + \ + if (len32 == 0.0) { \ + /* all three points lie ontop of one-another */ \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + /* return a normalized copy of v32 as bisector */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (n, len32, v32); \ + } \ + \ + } else { \ + \ + /* normalize v21 to be of unit length */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (v21, len21, v21); \ + \ + if (len32 == 0.0) { \ + /* return a normalized copy of v21 as bisector */ \ + VEC_COPY (n, v21); \ + } else { \ + \ + /* normalize v32 to be of unit length */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (v32, len32, v32); \ + \ + VEC_DOT_PRODUCT (vdot, v32, v21); \ + \ + /* if vdot == 1 or -1, then points are colinear */ \ + if ((vdot == 1.0) || (vdot == -1.0)) { \ + VEC_COPY (n, v21); \ + } else { \ + \ + /* go do the full computation */ \ + n[0] = vdot * (v32[0] + v21[0]) - v32[0] - v21[0]; \ + n[1] = vdot * (v32[1] + v21[1]) - v32[1] - v21[1]; \ + n[2] = vdot * (v32[2] + v21[2]) - v32[2] - v21[2]; \ + \ + /* if above if-test's passed, \ + * n should NEVER be of zero length */ \ + VEC_NORMALIZE (n); \ + } \ + } \ + } \ +} +#endif + +/* ========================================================== */ +/* + * This macro computes the plane perpendicular to the the plane + * defined by three points, and whose normal vector is givven as the + * difference between the two vectors ... + * + * (See way below for the "math" model if you want to understand this. + * The comments about relative errors above apply here.) + */ + +#define CUTTING_PLANE(valid,n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + double len21, len32; \ + double lendiff; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_LENGTH (len21, v21); \ + VEC_LENGTH (len32, v32); \ + \ + if (len21 <= DEGENERATE_TOLERANCE * len32) { \ + \ + if (len32 == 0.0) { \ + /* all three points lie ontop of one-another */ \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + /* return a normalized copy of v32 as cut-vector */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (n, len32, v32); \ + valid = TRUE; \ + } \ + \ + } else { \ + \ + valid = TRUE; \ + \ + if (len32 <= DEGENERATE_TOLERANCE * len21) { \ + /* return a normalized copy of v21 as cut vector */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (n, len21, v21); \ + } else { \ + \ + /* normalize v21 to be of unit length */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (v21, len21, v21); \ + \ + /* normalize v32 to be of unit length */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (v32, len32, v32); \ + \ + VEC_DIFF (n, v21, v32); \ + VEC_LENGTH (lendiff, n); \ + \ + /* if the perp vector is very small, then the two \ + * vectors are darn near collinear, and the cut \ + * vector is probably poorly defined. */ \ + if (lendiff < DEGENERATE_TOLERANCE) { \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + lendiff = 1.0 / lendiff; \ + VEC_SCALE (n, lendiff, n); \ + } \ + } \ + } \ +} + +/* ========================================================== */ + +#ifdef MATHEMATICALLY_EXACT_GRAPHICALLY_A_KILLER +#define CUTTING_PLANE(n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_NORMALIZE (v21); \ + VEC_NORMALIZE (v32); \ + \ + VEC_DIFF (n, v21, v32); \ + VEC_NORMALIZE (n); \ +} +#endif + + +/* ============================================================ */ +/* This macro is used in several places to cycle through a series of + * points to find the next non-degenerate point in a series */ + +#define FIND_NON_DEGENERATE_POINT(inext,npoints,len,diff,point_array) \ +{ \ + gleDouble slen; \ + gleDouble summa[3]; \ + \ + do { \ + /* get distance to next point */ \ + VEC_DIFF (diff, point_array[inext+1], point_array[inext]); \ + VEC_LENGTH (len, diff); \ + VEC_SUM (summa, point_array[inext+1], point_array[inext]); \ + VEC_LENGTH (slen, summa); \ + slen *= DEGENERATE_TOLERANCE; \ + inext ++; \ + } while ((len <= slen) && (inext < npoints-1)); \ +} + +/* ========================================================== */ + +extern int bisecting_plane (gleDouble n[3], /* returned */ + gleDouble v1[3], /* input */ + gleDouble v2[3], /* input */ + gleDouble v3[3]); /* input */ + diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/port.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/port.h new file mode 100644 index 0000000..2827bbf --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/port.h @@ -0,0 +1,298 @@ + +/* + * port.h + * + * FUNCTION: + * This file contains defines for porting the tubing toolkit from GL to + * OpenGL to some callback scheme. + * + * HISTORY: + * Created by Linas Vepstas -- February 1993 + * Added auto texture coord generation hacks, Linas April 1994 + */ + +#ifndef __GLE_PORT_H__ +#define __GLE_PORT_H__ + + +#ifndef TRUE +#define TRUE 1 +#endif + +#ifndef FALSE +#define FALSE 0 +#endif + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +/* ====================================================== */ +/* Some compilers can't handle multiply-subscripted array's */ + +#ifdef FUNKY_C +typedef gleDouble gleVector; +#define AVAL(arr,n,i,j) arr(6*n+3*i+j) +#define VVAL(arr,n,i) arr(3*n+i) + +#else /* FUNKY_C */ +typedef double gleVector[3]; +typedef double glePoint[2]; +#define AVAL(arr,n,i,j) arr[n][i][j] +#define VVAL(arr,n,i) arr[n][i]; + +#endif /* FUNKY_C */ + +/* ====================================================== */ +/* These are used to convey info about topography to the + * texture mapping routines */ + +#define FRONT 1 +#define BACK 2 +#define FRONT_CAP 3 +#define BACK_CAP 4 +#define FILLET 5 + +/* ====================================================== */ + +#define __GLE_DOUBLE + +/* ====================================================== */ + +#ifdef __GLE_DOUBLE +#ifndef gleDouble + #define gleDouble double +#endif +#define urot_axis(a,b,c) urot_axis_d(a,b,c) +#define uview_direction(a,b,c) uview_direction_d(a,b,c) +#define uviewpoint(a,b,c,d) uviewpoint_d(a,b,c,d) +#define MULTMATRIX(m) MULTMATRIX_D(m) +#define LOADMATRIX(m) LOADMATRIX_D(m) +#define V3F(x,j,id) V3F_D(x,j,id) +#define N3F(x) N3F_D(x) +#define T2F(x,y) T2F_D(x,y) +#else +#define gleDouble float +#define urot_axis(a,b,c) urot_axis_f(a,b,c) +#define uview_direction(a,b,c) uview_direction_f(a,b,c) +#define uviewpoint(a,b,c,d) uviewpoint_f(a,b,c,d) +#define MULTMATRIX(m) MULTMATRIX_F(m) +#define LOADMATRIX(m) LOADMATRIX_F(m) +#define V3F(x,j,id) V3F_F(x,j,id) +#define N3F(x) N3F_F(x) +#define T2F(x,y) T2F_F(x,y) +#endif + +/* ====================================================== */ + +#if (defined DEBUG_GL_32 || DEBUG_OPENGL_10) +#undef GL_32 +#undef OPENGL_10 + +#define BGNTMESH(i,len) printf ("bgntmesh() \n"); +#define ENDTMESH() printf ("endtmesh() \n"); +#define BGNPOLYGON() printf ("bgnpolygon() \n"); +#define ENDPOLYGON() printf ("endpolygon() \n"); +#define V3F_F(x,j,id) printf ("v3f(x) %f %f %f \n", x[0], x[1], x[2]); +#define V3F_D(x,j,id) printf ("v3d(x) %f %f %f \n", x[0], x[1], x[2]); +#define N3F_F(x) printf ("n3f(x) %f %f %f \n", x[0], x[1], x[2]); +#define N3F_D(x) printf ("n3d(x) %f %f %f \n", x[0], x[1], x[2]); +#define C3F(x) printf ("c3f(x) %f %f %f \n", x[0], x[1], x[2]); + +#define POPMATRIX() printf ("popmatrix () \n"); +#define PUSHMATRIX() printf ("pushmatrix() \n"); +#define MULTMATRIX_F(x) MULTMATRIX_D(x) +#define LOADMATRIX_F(x) LOADMATRIX_D(x) + + +#define LOADMATRIX_D(x) { \ + int i, j; \ + printf ("loadmatrix (x) \n"); \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + printf ( "%f ", x[i][j]); \ + } \ + printf (" \n"); \ + } \ +} + +#define MULTMATRIX_D(x) { \ + int i, j; \ + printf ("multmatrix (x) \n"); \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + printf ( "%f ", x[i][j]); \ + } \ + printf (" \n"); \ + } \ +} + +#define __IS_LIGHTING_ON (1) + +#endif + +/* ====================================================== */ + +#ifdef GL_32 + +#include + +#define BGNTMESH(i,len) bgntmesh() +#define ENDTMESH() endtmesh() +#define BGNPOLYGON() bgnpolygon() +#define ENDPOLYGON() endpolygon() +#define V3F_F(x,j,id) v3f(x) +#define V3F_D(x,j,id) v3d(x) +#define N3F_F(x) n3f(x) +#define T2F_F(x,y) +#define T2F_D(x,y) +#define C3F(x) c3f(x) + +#define POPMATRIX() popmatrix () +#define PUSHMATRIX() pushmatrix() +#define MULTMATRIX_F(x) multmatrix (x) +#define LOADMATRIX_F(x) loadmatrix (x) + +#define N3F_D(x) { \ + float nnn[3]; \ + nnn[0] = (float) x[0]; \ + nnn[1] = (float) x[1]; \ + nnn[2] = (float) x[2]; \ + n3f (nnn); \ +} + +#define LOADMATRIX_D(x) { \ + int i, j; \ + float mmm[4][4]; \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + mmm[i][j] = (float) x[i][j]; \ + } \ + } \ + loadmatrix(mmm); \ +} + +#define MULTMATRIX_D(x) { \ + int i, j; \ + float mmm[4][4]; \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + mmm[i][j] = (float) x[i][j]; \ + } \ + } \ + multmatrix(mmm); \ +} + +/* #define __IS_LIGHTING_ON (MSINGLE == getmmode()) */ +#define __IS_LIGHTING_ON (extrusion_join_style & TUBE_LIGHTING_ON) + +#endif /* GL_32 */ + +/* ====================================================== */ +#ifdef OPENGL_10 + +#if defined(_WIN32) +#include +#pragma warning (disable:4244) /* disable bogus conversion warnings */ +#endif +#include +#include + +/* +#define N3F_F(x) { \ + float nnn[3]; \ + nnn[0] = - (float) x[0]; \ + nnn[1] = - (float) x[1]; \ + nnn[2] = - (float) x[2]; \ + glNormal3fv (nnn); \ +} +#define N3F_D(x) { \ + float nnn[3]; \ + nnn[0] = - (float) x[0]; \ + nnn[1] = - (float) x[1]; \ + nnn[2] = - (float) x[2]; \ + glNormal3fv (nnn); \ +} +*/ + +#define C3F(x) glColor3fv(x) +#define T2F_F(x,y) glTexCoord2f(x,y) +#define T2F_D(x,y) glTexCoord2d(x,y) + +#define POPMATRIX() glPopMatrix() +#define PUSHMATRIX() glPushMatrix() + +#define MULTMATRIX_F(x) glMultMatrixf ((const GLfloat *)x) +#define LOADMATRIX_F(x) glLoadMatrixf ((const GLfloat *)x) + +#define MULTMATRIX_D(x) glMultMatrixd ((const GLdouble *)x) +#define LOADMATRIX_D(x) glLoadMatrixd ((const GLdouble *)x) + +#define __IS_LIGHTING_ON (glIsEnabled(GL_LIGHTING)) + +/* ====================================================== */ +#ifdef AUTO_TEXTURE + +#define BGNTMESH(i,len) { \ + if(_gle_gc -> bgn_gen_texture) (*(_gle_gc -> bgn_gen_texture))(i,len);\ + glBegin (GL_TRIANGLE_STRIP); \ +} + +#define BGNPOLYGON() { \ + if(_gle_gc -> bgn_gen_texture) (*(_gle_gc -> bgn_gen_texture))();\ + glBegin (GL_POLYGON); \ +} + +#define N3F_F(x) { \ + if(_gle_gc -> n3f_gen_texture) (*(_gle_gc -> n3f_gen_texture))(x); \ + glNormal3fv(x); \ +} + +#define N3F_D(x) { \ + if(_gle_gc -> n3d_gen_texture) (*(_gle_gc -> n3d_gen_texture))(x); \ + glNormal3dv(x); \ +} + +#define V3F_F(x,j,id) { \ + if(_gle_gc -> v3f_gen_texture) (*(_gle_gc -> v3f_gen_texture))(x,j,id);\ + glVertex3fv(x); \ +} + +#define V3F_D(x,j,id) { \ + if(_gle_gc -> v3d_gen_texture) (*(_gle_gc -> v3d_gen_texture))(x,j,id); \ + glVertex3dv(x); \ +} + +#define ENDTMESH() { \ + if(_gle_gc -> end_gen_texture) (*(_gle_gc -> end_gen_texture))(); \ + glEnd (); \ +} + +#define ENDPOLYGON() { \ + if(_gle_gc -> end_gen_texture) (*(_gle_gc -> end_gen_texture))(); \ + glEnd (); \ +} + +/* ====================================================== */ +#else /* AUTO_TEXTURE */ + +#define BGNTMESH(i,len) glBegin (GL_TRIANGLE_STRIP); +#define BGNPOLYGON() glBegin (GL_POLYGON); + +#define N3F_F(x) glNormal3fv(x) +#define N3F_D(x) glNormal3dv(x) +#define V3F_F(x,j,id) glVertex3fv(x); +#define V3F_D(x,j,id) glVertex3dv(x); + +#define ENDTMESH() glEnd () +#define ENDPOLYGON() glEnd() + +#endif /* AUTO_TEXTURE */ + +#endif /* OPENGL_10 */ + +/* ====================================================== */ + + +#endif /* __GLE_PORT_H__ */ +/* ================== END OF FILE ======================= */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/rot.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/rot.h new file mode 100644 index 0000000..91083e9 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/rot.h @@ -0,0 +1,98 @@ + +/* + * rot.h + * + * FUNCTION: + * rotation matrix utilities + * + * HISTORY: + * Linas Vepstas Aug 1990 + */ + +/* ========================================================== */ +/* + * The MACROS below generate and return more traditional rotation + * matrices -- matrices for rotations about principal axes. + */ +/* ========================================================== */ + +#define ROTX_CS(m,cosine,sine) \ +{ \ + /* rotation about the x-axis */ \ + \ + m[0][0] = 1.0; \ + m[0][1] = 0.0; \ + m[0][2] = 0.0; \ + m[0][3] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = (cosine); \ + m[1][2] = (sine); \ + m[1][3] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = -(sine); \ + m[2][2] = (cosine); \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ + +#define ROTY_CS(m,cosine,sine) \ +{ \ + /* rotation about the y-axis */ \ + \ + m[0][0] = (cosine); \ + m[0][1] = 0.0; \ + m[0][2] = -(sine); \ + m[0][3] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = 1.0; \ + m[1][2] = 0.0; \ + m[1][3] = 0.0; \ + \ + m[2][0] = (sine); \ + m[2][1] = 0.0; \ + m[2][2] = (cosine); \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ + +#define ROTZ_CS(m,cosine,sine) \ +{ \ + /* rotation about the z-axis */ \ + \ + m[0][0] = (cosine); \ + m[0][1] = (sine); \ + m[0][2] = 0.0; \ + m[0][3] = 0.0; \ + \ + m[1][0] = -(sine); \ + m[1][1] = (cosine); \ + m[1][2] = 0.0; \ + m[1][3] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = 0.0; \ + m[2][2] = 1.0; \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/segment.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/segment.h new file mode 100644 index 0000000..8d1cf04 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/segment.h @@ -0,0 +1,98 @@ + +/* + * MODULE: segment.h + * + * FUNCTION: + * Contains function prototypes for segment drawing subroutines. + * These are used only internally, and are not to be exported to + * the user. + * + * HISTORY: + * Create by Linas Vepstas + * Added tube.h include to define gleDouble, tad February 2002 + */ + +/* ============================================================ */ + +#include "tube.h" + +extern void draw_segment_plain (int ncp, /* number of contour points */ + gleDouble front_contour[][3], + gleDouble back_contour[][3], + int inext, double len); + +extern void draw_segment_color (int ncp, /* number of contour points */ + gleDouble front_contour[][3], + gleDouble back_contour[][3], + float color_last[3], + float color_next[3], + int inext, double len); + +extern void draw_segment_edge_n (int ncp, /* number of contour points */ + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + int inext, double len); + +extern void draw_segment_c_and_edge_n (int ncp, + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + float color_last[3], + float color_next[3], + int inext, double len); + +extern void draw_segment_facet_n (int ncp, + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + int inext, double len); + +extern void draw_segment_c_and_facet_n (int ncp, + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + float color_last[3], + float color_next[3], + int inext, double len); + +/* ============================================================ */ + +extern void draw_binorm_segment_edge_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + int inext, double len); + +extern void draw_binorm_segment_c_and_edge_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + float color_last[3], + float color_next[3], + int inext, double len); + +extern void draw_binorm_segment_facet_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + int inext, double len); + +extern void draw_binorm_segment_c_and_facet_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + float color_last[3], + float color_next[3], + int inext, double len); + +extern void draw_angle_style_back_cap (int ncp, /* number of contour points */ + gleDouble bi[3], /* biscetor */ + gleDouble point_array[][3]); /* polyline */ + +/* -------------------------- end of file -------------------------------- */ + diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/tube.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/tube.h new file mode 100644 index 0000000..c303e19 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/tube.h @@ -0,0 +1,203 @@ +/* + * tube.h + * + * FUNCTION: + * Tubing and Extrusion header file. + * This file provides protypes and defines for the extrusion + * and tubing primitives. + * + * HISTORY: + * Linas Vepstas 1990, 1991 + */ + +#ifndef __TUBE_H__ +#define __TUBE_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + GLE API revision history: + + GLE_API_VERSION is updated to reflect GLE API changes (interface + changes, semantic changes, deletions, or additions). + + GLE_API_VERSION=228 GLUT 3.7 release of GLE. +**/ +#ifndef GLE_API_VERSION /* allow this to be overriden */ +#define GLE_API_VERSION 228 +#endif + +/* some types */ +#ifndef gleDouble + #define gleDouble double +#endif +typedef gleDouble gleAffine[2][3]; + +/* ====================================================== */ + +/* defines for tubing join styles */ +#define TUBE_JN_RAW 0x1 +#define TUBE_JN_ANGLE 0x2 +#define TUBE_JN_CUT 0x3 +#define TUBE_JN_ROUND 0x4 +#define TUBE_JN_MASK 0xf /* mask bits */ +#define TUBE_JN_CAP 0x10 + +/* determine how normal vectors are to be handled */ +#define TUBE_NORM_FACET 0x100 +#define TUBE_NORM_EDGE 0x200 +#define TUBE_NORM_PATH_EDGE 0x400 /* for spiral, lathe, helix primitives */ +#define TUBE_NORM_MASK 0xf00 /* mask bits */ + +/* closed or open countours */ +#define TUBE_CONTOUR_CLOSED 0x1000 + +#define GLE_TEXTURE_ENABLE 0x10000 +#define GLE_TEXTURE_STYLE_MASK 0xff +#define GLE_TEXTURE_VERTEX_FLAT 1 +#define GLE_TEXTURE_NORMAL_FLAT 2 +#define GLE_TEXTURE_VERTEX_CYL 3 +#define GLE_TEXTURE_NORMAL_CYL 4 +#define GLE_TEXTURE_VERTEX_SPH 5 +#define GLE_TEXTURE_NORMAL_SPH 6 +#define GLE_TEXTURE_VERTEX_MODEL_FLAT 7 +#define GLE_TEXTURE_NORMAL_MODEL_FLAT 8 +#define GLE_TEXTURE_VERTEX_MODEL_CYL 9 +#define GLE_TEXTURE_NORMAL_MODEL_CYL 10 +#define GLE_TEXTURE_VERTEX_MODEL_SPH 11 +#define GLE_TEXTURE_NORMAL_MODEL_SPH 12 + +#ifdef GL_32 +/* HACK for GL 3.2 -- needed because no way to tell if lighting is on. */ +#define TUBE_LIGHTING_ON 0x80000000 + +#define gleExtrusion extrusion +#define gleSetJoinStyle setjoinstyle +#define gleGetJoinStyle getjoinstyle +#define glePolyCone polycone +#define glePolyCylinder polycylinder +#define gleSuperExtrusion super_extrusion +#define gleTwistExtrusion twist_extrusion +#define gleSpiral spiral +#define gleLathe lathe +#define gleHelicoid helicoid +#define gleToroid toroid +#define gleScrew screw + +#endif /* GL_32 */ + +extern int gleGetJoinStyle (void); +extern void gleSetJoinStyle (int style); /* bitwise OR of flags */ +extern int gleGetNumSlices(void); +extern void gleSetNumSlices(int slices); + +/* draw polyclinder, specified as a polyline */ +extern void glePolyCylinder (int npoints, /* num points in polyline */ + gleDouble point_array[][3], /* polyline vertces */ + float color_array[][3], /* colors at polyline verts */ + gleDouble radius); /* radius of polycylinder */ + +/* draw polycone, specified as a polyline with radii */ +extern void glePolyCone (int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3], /* colors at polyline verts */ + gleDouble radius_array[]); /* cone radii at polyline verts */ + +/* extrude arbitrary 2D contour along arbitrary 3D path */ +extern void gleExtrusion (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3]); /* colors at polyline verts */ + +/* extrude 2D contour, specifying local rotations (twists) */ +extern void gleTwistExtrusion (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3], /* color at polyline verts */ + gleDouble twist_array[]); /* countour twists (in degrees) */ + +/* extrude 2D contour, specifying local affine tranformations */ +extern void gleSuperExtrusion (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3], /* color at polyline verts */ + gleDouble xform_array[][2][3]); /* 2D contour xforms */ + +/* spiral moves contour along helical path by parallel transport */ +extern void gleSpiral (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta); /* degrees to spiral around */ + +/* lathe moves contour along helical path by helically shearing 3D space */ +extern void gleLathe (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta); /* degrees to spiral around */ + +/* similar to spiral, except contour is a circle */ +extern void gleHelicoid (gleDouble rToroid, /* circle contour (torus) radius */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta); /* degrees to spiral around */ + +/* similar to lathe, except contour is a circle */ +extern void gleToroid (gleDouble rToroid, /* circle contour (torus) radius */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta); /* degrees to spiral around */ + +/* draws a screw shape */ +extern void gleScrew (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + gleDouble startz, /* start of segment */ + gleDouble endz, /* end of segment */ + gleDouble twist); /* number of rotations */ + +extern void gleTextureMode (int mode); + +#ifdef __cplusplus +} + +#endif +#endif /* __TUBE_H__ */ +/* ================== END OF FILE ======================= */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/tube_gc.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/tube_gc.h new file mode 100644 index 0000000..ccd2853 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/tube_gc.h @@ -0,0 +1,78 @@ + +/* + * tube_gc.h + * + * FUNCTION: + * This file allows for easy changes to changes in the way the extrusion + * library handles state info (i.e. context). + * + * HISTORY: + * Linas Vepstas --- February 1993 + * Added auto texture coord generation hacks, Linas April 1994 + * Added tube.h include to define gleDouble, tad February 2002 + */ + +#include "tube.h" +#include "port.h" /* for gleVector */ + +typedef float gleColor[3]; +typedef double gleTwoVec[2]; + +typedef struct { + + /* public methods */ + void (*bgn_gen_texture) (int, double); + void (*n3f_gen_texture) (float *); + void (*n3d_gen_texture) (double *); + void (*v3f_gen_texture) (float *, int, int); + void (*v3d_gen_texture) (double *, int, int); + void (*end_gen_texture) (void); + + /* protected members -- "general knowledge" stuff */ + int join_style; + + /* arguments passed into extrusion code */ + int ncp; /* number of contour points */ + gleTwoVec *contour; /* 2D contour */ + gleTwoVec *cont_normal; /* 2D contour normals */ + gleDouble *up; /* up vector */ + int npoints; /* number of points in polyline */ + gleVector *point_array; /* path */ + gleColor *color_array; /* path colors */ + gleAffine *xform_array; /* contour xforms */ + + /* private members, used by texturing code */ + int num_vert; + int segment_number; + double segment_length; + double accum_seg_len; + double prev_x; + double prev_y; + + void (*save_bgn_gen_texture) (int, double); + void (*save_n3f_gen_texture) (float *); + void (*save_n3d_gen_texture) (double *); + void (*save_v3f_gen_texture) (float *, int, int); + void (*save_v3d_gen_texture) (double *, int, int); + void (*save_end_gen_texture) (void); + +} gleGC; + +extern gleGC *_gle_gc; +extern gleGC * gleCreateGC (void); + +#define INIT_GC() {if (!_gle_gc) _gle_gc = gleCreateGC(); } +#define extrusion_join_style (_gle_gc->join_style) + +#define __TUBE_CLOSE_CONTOUR (extrusion_join_style & TUBE_CONTOUR_CLOSED) +#define __TUBE_DRAW_CAP (extrusion_join_style & TUBE_JN_CAP) +#define __TUBE_DRAW_FACET_NORMALS (extrusion_join_style & TUBE_NORM_FACET) +#define __TUBE_DRAW_PATH_EDGE_NORMALS (extrusion_join_style & TUBE_NORM_PATH_EDGE) + +#define __TUBE_STYLE (extrusion_join_style & TUBE_JN_MASK) +#define __TUBE_RAW_JOIN (extrusion_join_style & TUBE_JN_RAW) +#define __TUBE_CUT_JOIN (extrusion_join_style & TUBE_JN_CUT) +#define __TUBE_ANGLE_JOIN (extrusion_join_style & TUBE_JN_ANGLE) +#define __TUBE_ROUND_JOIN (extrusion_join_style & TUBE_JN_ROUND) + +/* ======================= END OF FILE ========================== */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/vvector.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/vvector.h new file mode 100644 index 0000000..b58dcd6 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Headers/vvector.h @@ -0,0 +1,1339 @@ + +/* + * vvector.h + * + * FUNCTION: + * This file contains a number of utilities useful for handling + * 3D vectors + * + * HISTORY: + * Written by Linas Vepstas, August 1991 + * Added 2D code, March 1993 + * Added Outer products, C++ proofed, Linas Vepstas October 1993 + */ + +#ifndef __GUTIL_VECTOR_H__ +#define __GUTIL_VECTOR_H__ + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + + +#include +#include "port.h" + +/* ========================================================== */ +/* Zero out a 2D vector */ + +#define VEC_ZERO_2(a) \ +{ \ + (a)[0] = (a)[1] = 0.0; \ +} + +/* ========================================================== */ +/* Zero out a 3D vector */ + +#define VEC_ZERO(a) \ +{ \ + (a)[0] = (a)[1] = (a)[2] = 0.0; \ +} + +/* ========================================================== */ +/* Zero out a 4D vector */ + +#define VEC_ZERO_4(a) \ +{ \ + (a)[0] = (a)[1] = (a)[2] = (a)[3] = 0.0; \ +} + +/* ========================================================== */ +/* Vector copy */ + +#define VEC_COPY_2(b,a) \ +{ \ + (b)[0] = (a)[0]; \ + (b)[1] = (a)[1]; \ +} + +/* ========================================================== */ +/* Copy 3D vector */ + +#define VEC_COPY(b,a) \ +{ \ + (b)[0] = (a)[0]; \ + (b)[1] = (a)[1]; \ + (b)[2] = (a)[2]; \ +} + +/* ========================================================== */ +/* Copy 4D vector */ + +#define VEC_COPY_4(b,a) \ +{ \ + (b)[0] = (a)[0]; \ + (b)[1] = (a)[1]; \ + (b)[2] = (a)[2]; \ + (b)[3] = (a)[3]; \ +} + +/* ========================================================== */ +/* Vector difference */ + +#define VEC_DIFF_2(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] - (v1)[0]; \ + (v21)[1] = (v2)[1] - (v1)[1]; \ +} + +/* ========================================================== */ +/* Vector difference */ + +#define VEC_DIFF(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] - (v1)[0]; \ + (v21)[1] = (v2)[1] - (v1)[1]; \ + (v21)[2] = (v2)[2] - (v1)[2]; \ +} + +/* ========================================================== */ +/* Vector difference */ + +#define VEC_DIFF_4(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] - (v1)[0]; \ + (v21)[1] = (v2)[1] - (v1)[1]; \ + (v21)[2] = (v2)[2] - (v1)[2]; \ + (v21)[3] = (v2)[3] - (v1)[3]; \ +} + +/* ========================================================== */ +/* Vector sum */ + +#define VEC_SUM_2(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] + (v1)[0]; \ + (v21)[1] = (v2)[1] + (v1)[1]; \ +} + +/* ========================================================== */ +/* Vector sum */ + +#define VEC_SUM(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] + (v1)[0]; \ + (v21)[1] = (v2)[1] + (v1)[1]; \ + (v21)[2] = (v2)[2] + (v1)[2]; \ +} + +/* ========================================================== */ +/* Vector sum */ + +#define VEC_SUM_4(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] + (v1)[0]; \ + (v21)[1] = (v2)[1] + (v1)[1]; \ + (v21)[2] = (v2)[2] + (v1)[2]; \ + (v21)[3] = (v2)[3] + (v1)[3]; \ +} + +/* ========================================================== */ +/* scalar times vector */ + +#define VEC_SCALE_2(c,a,b) \ +{ \ + (c)[0] = (a)*(b)[0]; \ + (c)[1] = (a)*(b)[1]; \ +} + +/* ========================================================== */ +/* scalar times vector */ + +#define VEC_SCALE(c,a,b) \ +{ \ + (c)[0] = (a)*(b)[0]; \ + (c)[1] = (a)*(b)[1]; \ + (c)[2] = (a)*(b)[2]; \ +} + +/* ========================================================== */ +/* scalar times vector */ + +#define VEC_SCALE_4(c,a,b) \ +{ \ + (c)[0] = (a)*(b)[0]; \ + (c)[1] = (a)*(b)[1]; \ + (c)[2] = (a)*(b)[2]; \ + (c)[3] = (a)*(b)[3]; \ +} + +/* ========================================================== */ +/* accumulate scaled vector */ + +#define VEC_ACCUM_2(c,a,b) \ +{ \ + (c)[0] += (a)*(b)[0]; \ + (c)[1] += (a)*(b)[1]; \ +} + +/* ========================================================== */ +/* accumulate scaled vector */ + +#define VEC_ACCUM(c,a,b) \ +{ \ + (c)[0] += (a)*(b)[0]; \ + (c)[1] += (a)*(b)[1]; \ + (c)[2] += (a)*(b)[2]; \ +} + +/* ========================================================== */ +/* accumulate scaled vector */ + +#define VEC_ACCUM_4(c,a,b) \ +{ \ + (c)[0] += (a)*(b)[0]; \ + (c)[1] += (a)*(b)[1]; \ + (c)[2] += (a)*(b)[2]; \ + (c)[3] += (a)*(b)[3]; \ +} + +/* ========================================================== */ +/* Vector dot product */ + +#define VEC_DOT_PRODUCT_2(c,a,b) \ +{ \ + c = (a)[0]*(b)[0] + (a)[1]*(b)[1]; \ +} + +/* ========================================================== */ +/* Vector dot product */ + +#define VEC_DOT_PRODUCT(c,a,b) \ +{ \ + c = (a)[0]*(b)[0] + (a)[1]*(b)[1] + (a)[2]*(b)[2]; \ +} + +/* ========================================================== */ +/* Vector dot product */ + +#define VEC_DOT_PRODUCT_4(c,a,b) \ +{ \ + c = (a)[0]*(b)[0] + (a)[1]*(b)[1] + (a)[2]*(b)[2] + (a)[3]*(b)[3] ; \ +} + +/* ========================================================== */ +/* vector impact parameter (squared) */ + +#define VEC_IMPACT_SQ(bsq,direction,position) \ +{ \ + gleDouble vlen, llel; \ + VEC_DOT_PRODUCT (vlen, position, position); \ + VEC_DOT_PRODUCT (llel, direction, position); \ + bsq = vlen - llel*llel; \ +} + +/* ========================================================== */ +/* vector impact parameter */ + +#define VEC_IMPACT(bsq,direction,position) \ +{ \ + VEC_IMPACT_SQ(bsq,direction,position); \ + bsq = sqrt (bsq); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_LENGTH_2(vlen,a) \ +{ \ + vlen = a[0]*a[0] + a[1]*a[1]; \ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_LENGTH(vlen,a) \ +{ \ + vlen = (a)[0]*(a)[0] + (a)[1]*(a)[1]; \ + vlen += (a)[2]*(a)[2]; \ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_LENGTH_4(vlen,a) \ +{ \ + vlen = (a)[0]*(a)[0] + (a)[1]*(a)[1]; \ + vlen += (a)[2]*(a)[2]; \ + vlen += (a)[3] * (a)[3]; \ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* distance between two points */ + +#define VEC_DISTANCE(vlen,va,vb) \ +{ \ + gleDouble tmp[4]; \ + VEC_DIFF (tmp, vb, va); \ + VEC_LENGTH (vlen, tmp); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_CONJUGATE_LENGTH(vlen,a) \ +{ \ + vlen = 1.0 - a[0]*a[0] - a[1]*a[1] - a[2]*a[2];\ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_NORMALIZE(a) \ +{ \ + double vlen; \ + VEC_LENGTH (vlen,a); \ + if (vlen != 0.0) { \ + vlen = 1.0 / vlen; \ + a[0] *= vlen; \ + a[1] *= vlen; \ + a[2] *= vlen; \ + } \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_RENORMALIZE(a,newlen) \ +{ \ + double vlen; \ + VEC_LENGTH (vlen,a); \ + if (vlen != 0.0) { \ + vlen = newlen / vlen; \ + a[0] *= vlen; \ + a[1] *= vlen; \ + a[2] *= vlen; \ + } \ +} + +/* ========================================================== */ +/* 3D Vector cross product yeilding vector */ + +#define VEC_CROSS_PRODUCT(c,a,b) \ +{ \ + c[0] = (a)[1] * (b)[2] - (a)[2] * (b)[1]; \ + c[1] = (a)[2] * (b)[0] - (a)[0] * (b)[2]; \ + c[2] = (a)[0] * (b)[1] - (a)[1] * (b)[0]; \ +} + +/* ========================================================== */ +/* Vector perp -- assumes that n is of unit length + * accepts vector v, subtracts out any component parallel to n */ + +#define VEC_PERP(vp,v,n) \ +{ \ + double vdot; \ + \ + VEC_DOT_PRODUCT (vdot, v, n); \ + vp[0] = (v)[0] - (vdot) * (n)[0]; \ + vp[1] = (v)[1] - (vdot) * (n)[1]; \ + vp[2] = (v)[2] - (vdot) * (n)[2]; \ +} + +/* ========================================================== */ +/* Vector parallel -- assumes that n is of unit length + * accepts vector v, subtracts out any component perpendicular to n */ + +#define VEC_PARALLEL(vp,v,n) \ +{ \ + double vdot; \ + \ + VEC_DOT_PRODUCT (vdot, v, n); \ + vp[0] = (vdot) * (n)[0]; \ + vp[1] = (vdot) * (n)[1]; \ + vp[2] = (vdot) * (n)[2]; \ +} + +/* ========================================================== */ +/* Vector reflection -- assumes n is of unit length */ +/* Takes vector v, reflects it against reflector n, and returns vr */ + +#define VEC_REFLECT(vr,v,n) \ +{ \ + double vdot; \ + \ + VEC_DOT_PRODUCT (vdot, v, n); \ + vr[0] = (v)[0] - 2.0 * (vdot) * (n)[0]; \ + vr[1] = (v)[1] - 2.0 * (vdot) * (n)[1]; \ + vr[2] = (v)[2] - 2.0 * (vdot) * (n)[2]; \ +} + +/* ========================================================== */ +/* Vector blending */ +/* Takes two vectors a, b, blends them together */ + +#define VEC_BLEND(vr,sa,a,sb,b) \ +{ \ + \ + vr[0] = (sa) * (a)[0] + (sb) * (b)[0]; \ + vr[1] = (sa) * (a)[1] + (sb) * (b)[1]; \ + vr[2] = (sa) * (a)[2] + (sb) * (b)[2]; \ +} + +/* ========================================================== */ +/* Vector print */ + +#define VEC_PRINT_2(a) \ +{ \ + double vlen; \ + VEC_LENGTH_2 (vlen, a); \ + printf (" a is %f %f length of a is %f \n", a[0], a[1], vlen); \ +} + +/* ========================================================== */ +/* Vector print */ + +#define VEC_PRINT(a) \ +{ \ + double vlen; \ + VEC_LENGTH (vlen, (a)); \ + printf (" a is %f %f %f length of a is %f \n", (a)[0], (a)[1], (a)[2], vlen); \ +} + +/* ========================================================== */ +/* Vector print */ + +#define VEC_PRINT_4(a) \ +{ \ + double vlen; \ + VEC_LENGTH_4 (vlen, (a)); \ + printf (" a is %f %f %f %f length of a is %f \n", \ + (a)[0], (a)[1], (a)[2], (a)[3], vlen); \ +} + +/* ========================================================== */ +/* print matrix */ + +#define MAT_PRINT_4X4(mmm) { \ + int i,j; \ + printf ("matrix mmm is \n"); \ + if (mmm == NULL) { \ + printf (" Null \n"); \ + } else { \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + printf ("%f ", mmm[i][j]); \ + } \ + printf (" \n"); \ + } \ + } \ +} + +/* ========================================================== */ +/* print matrix */ + +#define MAT_PRINT_3X3(mmm) { \ + int i,j; \ + printf ("matrix mmm is \n"); \ + if (mmm == NULL) { \ + printf (" Null \n"); \ + } else { \ + for (i=0; i<3; i++) { \ + for (j=0; j<3; j++) { \ + printf ("%f ", mmm[i][j]); \ + } \ + printf (" \n"); \ + } \ + } \ +} + +/* ========================================================== */ +/* print matrix */ + +#define MAT_PRINT_2X3(mmm) { \ + int i,j; \ + printf ("matrix mmm is \n"); \ + if (mmm == NULL) { \ + printf (" Null \n"); \ + } else { \ + for (i=0; i<2; i++) { \ + for (j=0; j<3; j++) { \ + printf ("%f ", mmm[i][j]); \ + } \ + printf (" \n"); \ + } \ + } \ +} + +/* ========================================================== */ +/* initialize matrix */ + +#define IDENTIFY_MATRIX_3X3(m) \ +{ \ + m[0][0] = 1.0; \ + m[0][1] = 0.0; \ + m[0][2] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = 1.0; \ + m[1][2] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = 0.0; \ + m[2][2] = 1.0; \ +} + +/* ========================================================== */ +/* initialize matrix */ + +#define IDENTIFY_MATRIX_4X4(m) \ +{ \ + m[0][0] = 1.0; \ + m[0][1] = 0.0; \ + m[0][2] = 0.0; \ + m[0][3] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = 1.0; \ + m[1][2] = 0.0; \ + m[1][3] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = 0.0; \ + m[2][2] = 1.0; \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_2X2(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_2X3(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + b[0][2] = a[0][2]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[1][2]; \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_3X3(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + b[0][2] = a[0][2]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[1][2]; \ + \ + b[2][0] = a[2][0]; \ + b[2][1] = a[2][1]; \ + b[2][2] = a[2][2]; \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_4X4(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + b[0][2] = a[0][2]; \ + b[0][3] = a[0][3]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[1][2]; \ + b[1][3] = a[1][3]; \ + \ + b[2][0] = a[2][0]; \ + b[2][1] = a[2][1]; \ + b[2][2] = a[2][2]; \ + b[2][3] = a[2][3]; \ + \ + b[3][0] = a[3][0]; \ + b[3][1] = a[3][1]; \ + b[3][2] = a[3][2]; \ + b[3][3] = a[3][3]; \ +} + +/* ========================================================== */ +/* matrix transpose */ + +#define TRANSPOSE_MATRIX_2X2(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[1][0]; \ + \ + b[1][0] = a[0][1]; \ + b[1][1] = a[1][1]; \ +} + +/* ========================================================== */ +/* matrix transpose */ + +#define TRANSPOSE_MATRIX_3X3(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[1][0]; \ + b[0][2] = a[2][0]; \ + \ + b[1][0] = a[0][1]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[2][1]; \ + \ + b[2][0] = a[0][2]; \ + b[2][1] = a[1][2]; \ + b[2][2] = a[2][2]; \ +} + +/* ========================================================== */ +/* matrix transpose */ + +#define TRANSPOSE_MATRIX_4X4(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[1][0]; \ + b[0][2] = a[2][0]; \ + b[0][3] = a[3][0]; \ + \ + b[1][0] = a[0][1]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[2][1]; \ + b[1][3] = a[3][1]; \ + \ + b[2][0] = a[0][2]; \ + b[2][1] = a[1][2]; \ + b[2][2] = a[2][2]; \ + b[2][3] = a[3][2]; \ + \ + b[3][0] = a[0][3]; \ + b[3][1] = a[1][3]; \ + b[3][2] = a[2][3]; \ + b[3][3] = a[3][3]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define SCALE_MATRIX_2X2(b,s,a) \ +{ \ + b[0][0] = (s) * a[0][0]; \ + b[0][1] = (s) * a[0][1]; \ + \ + b[1][0] = (s) * a[1][0]; \ + b[1][1] = (s) * a[1][1]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define SCALE_MATRIX_3X3(b,s,a) \ +{ \ + b[0][0] = (s) * a[0][0]; \ + b[0][1] = (s) * a[0][1]; \ + b[0][2] = (s) * a[0][2]; \ + \ + b[1][0] = (s) * a[1][0]; \ + b[1][1] = (s) * a[1][1]; \ + b[1][2] = (s) * a[1][2]; \ + \ + b[2][0] = (s) * a[2][0]; \ + b[2][1] = (s) * a[2][1]; \ + b[2][2] = (s) * a[2][2]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define SCALE_MATRIX_4X4(b,s,a) \ +{ \ + b[0][0] = (s) * a[0][0]; \ + b[0][1] = (s) * a[0][1]; \ + b[0][2] = (s) * a[0][2]; \ + b[0][3] = (s) * a[0][3]; \ + \ + b[1][0] = (s) * a[1][0]; \ + b[1][1] = (s) * a[1][1]; \ + b[1][2] = (s) * a[1][2]; \ + b[1][3] = (s) * a[1][3]; \ + \ + b[2][0] = (s) * a[2][0]; \ + b[2][1] = (s) * a[2][1]; \ + b[2][2] = (s) * a[2][2]; \ + b[2][3] = (s) * a[2][3]; \ + \ + b[3][0] = s * a[3][0]; \ + b[3][1] = s * a[3][1]; \ + b[3][2] = s * a[3][2]; \ + b[3][3] = s * a[3][3]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define ACCUM_SCALE_MATRIX_2X2(b,s,a) \ +{ \ + b[0][0] += (s) * a[0][0]; \ + b[0][1] += (s) * a[0][1]; \ + \ + b[1][0] += (s) * a[1][0]; \ + b[1][1] += (s) * a[1][1]; \ +} + +/* +========================================================== */ +/* multiply matrix by scalar */ + +#define ACCUM_SCALE_MATRIX_3X3(b,s,a) \ +{ \ + b[0][0] += (s) * a[0][0]; \ + b[0][1] += (s) * a[0][1]; \ + b[0][2] += (s) * a[0][2]; \ + \ + b[1][0] += (s) * a[1][0]; \ + b[1][1] += (s) * a[1][1]; \ + b[1][2] += (s) * a[1][2]; \ + \ + b[2][0] += (s) * a[2][0]; \ + b[2][1] += (s) * a[2][1]; \ + b[2][2] += (s) * a[2][2]; \ +} + +/* +========================================================== */ +/* multiply matrix by scalar */ + +#define ACCUM_SCALE_MATRIX_4X4(b,s,a) \ +{ \ + b[0][0] += (s) * a[0][0]; \ + b[0][1] += (s) * a[0][1]; \ + b[0][2] += (s) * a[0][2]; \ + b[0][3] += (s) * a[0][3]; \ + \ + b[1][0] += (s) * a[1][0]; \ + b[1][1] += (s) * a[1][1]; \ + b[1][2] += (s) * a[1][2]; \ + b[1][3] += (s) * a[1][3]; \ + \ + b[2][0] += (s) * a[2][0]; \ + b[2][1] += (s) * a[2][1]; \ + b[2][2] += (s) * a[2][2]; \ + b[2][3] += (s) * a[2][3]; \ + \ + b[3][0] += (s) * a[3][0]; \ + b[3][1] += (s) * a[3][1]; \ + b[3][2] += (s) * a[3][2]; \ + b[3][3] += (s) * a[3][3]; \ +} + +/* +========================================================== */ +/* matrix product */ +/* c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/ + +#define MATRIX_PRODUCT_2X2(c,a,b) \ +{ \ + c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]; \ + c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]; \ + \ + c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]; \ + c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]; \ + \ +} + +/* ========================================================== */ +/* matrix product */ +/* c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/ + +#define MATRIX_PRODUCT_3X3(c,a,b) \ +{ \ + c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]+a[0][2]*b[2][0]; \ + c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]+a[0][2]*b[2][1]; \ + c[0][2] = a[0][0]*b[0][2]+a[0][1]*b[1][2]+a[0][2]*b[2][2]; \ + \ + c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]+a[1][2]*b[2][0]; \ + c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]+a[1][2]*b[2][1]; \ + c[1][2] = a[1][0]*b[0][2]+a[1][1]*b[1][2]+a[1][2]*b[2][2]; \ + \ + c[2][0] = a[2][0]*b[0][0]+a[2][1]*b[1][0]+a[2][2]*b[2][0]; \ + c[2][1] = a[2][0]*b[0][1]+a[2][1]*b[1][1]+a[2][2]*b[2][1]; \ + c[2][2] = a[2][0]*b[0][2]+a[2][1]*b[1][2]+a[2][2]*b[2][2]; \ +} + +/* ========================================================== */ +/* matrix product */ +/* c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/ + +#define MATRIX_PRODUCT_4X4(c,a,b) \ +{ \ + c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]+a[0][2]*b[2][0]+a[0][3]*b[3][0];\ + c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]+a[0][2]*b[2][1]+a[0][3]*b[3][1];\ + c[0][2] = a[0][0]*b[0][2]+a[0][1]*b[1][2]+a[0][2]*b[2][2]+a[0][3]*b[3][2];\ + c[0][3] = a[0][0]*b[0][3]+a[0][1]*b[1][3]+a[0][2]*b[2][3]+a[0][3]*b[3][3];\ + \ + c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]+a[1][2]*b[2][0]+a[1][3]*b[3][0];\ + c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]+a[1][2]*b[2][1]+a[1][3]*b[3][1];\ + c[1][2] = a[1][0]*b[0][2]+a[1][1]*b[1][2]+a[1][2]*b[2][2]+a[1][3]*b[3][2];\ + c[1][3] = a[1][0]*b[0][3]+a[1][1]*b[1][3]+a[1][2]*b[2][3]+a[1][3]*b[3][3];\ + \ + c[2][0] = a[2][0]*b[0][0]+a[2][1]*b[1][0]+a[2][2]*b[2][0]+a[2][3]*b[3][0];\ + c[2][1] = a[2][0]*b[0][1]+a[2][1]*b[1][1]+a[2][2]*b[2][1]+a[2][3]*b[3][1];\ + c[2][2] = a[2][0]*b[0][2]+a[2][1]*b[1][2]+a[2][2]*b[2][2]+a[2][3]*b[3][2];\ + c[2][3] = a[2][0]*b[0][3]+a[2][1]*b[1][3]+a[2][2]*b[2][3]+a[2][3]*b[3][3];\ + \ + c[3][0] = a[3][0]*b[0][0]+a[3][1]*b[1][0]+a[3][2]*b[2][0]+a[3][3]*b[3][0];\ + c[3][1] = a[3][0]*b[0][1]+a[3][1]*b[1][1]+a[3][2]*b[2][1]+a[3][3]*b[3][1];\ + c[3][2] = a[3][0]*b[0][2]+a[3][1]*b[1][2]+a[3][2]*b[2][2]+a[3][3]*b[3][2];\ + c[3][3] = a[3][0]*b[0][3]+a[3][1]*b[1][3]+a[3][2]*b[2][3]+a[3][3]*b[3][3];\ +} + +/* ========================================================== */ +/* matrix times vector */ + +#define MAT_DOT_VEC_2X2(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1]; \ +} + +/* ========================================================== */ +/* matrix times vector */ + +#define MAT_DOT_VEC_3X3(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]*v[2]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]*v[2]; \ + p[2] = m[2][0]*v[0] + m[2][1]*v[1] + m[2][2]*v[2]; \ +} + +/* ========================================================== */ +/* matrix times vector */ + +#define MAT_DOT_VEC_4X4(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]*v[2] + m[0][3]*v[3]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]*v[2] + m[1][3]*v[3]; \ + p[2] = m[2][0]*v[0] + m[2][1]*v[1] + m[2][2]*v[2] + m[2][3]*v[3]; \ + p[3] = m[3][0]*v[0] + m[3][1]*v[1] + m[3][2]*v[2] + m[3][3]*v[3]; \ +} + +/* ========================================================== */ +/* vector transpose times matrix */ +/* p[j] = v[0]*m[0][j] + v[1]*m[1][j] + v[2]*m[2][j]; */ + +#define VEC_DOT_MAT_3X3(p,v,m) \ +{ \ + p[0] = v[0]*m[0][0] + v[1]*m[1][0] + v[2]*m[2][0]; \ + p[1] = v[0]*m[0][1] + v[1]*m[1][1] + v[2]*m[2][1]; \ + p[2] = v[0]*m[0][2] + v[1]*m[1][2] + v[2]*m[2][2]; \ +} + +/* ========================================================== */ +/* affine matrix times vector */ +/* The matrix is assumed to be an affine matrix, with last two + * entries representing a translation */ + +#define MAT_DOT_VEC_2X3(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]; \ +} + +/* ========================================================== */ +/* inverse transpose of matrix times vector + * + * This macro computes inverse transpose of matrix m, + * and multiplies vector v into it, to yeild vector p + * + * DANGER !!! Do Not use this on normal vectors!!! + * It will leave normals the wrong length !!! + * See macro below for use on normals. + */ + +#define INV_TRANSP_MAT_DOT_VEC_2X2(p,m,v) \ +{ \ + gleDouble det; \ + \ + det = m[0][0]*m[1][1] - m[0][1]*m[1][0]; \ + p[0] = m[1][1]*v[0] - m[1][0]*v[1]; \ + p[1] = - m[0][1]*v[0] + m[0][0]*v[1]; \ + \ + /* if matrix not singular, and not orthonormal, then renormalize */ \ + if ((det!=1.0) && (det != 0.0)) { \ + det = 1.0 / det; \ + p[0] *= det; \ + p[1] *= det; \ + } \ +} + +/* ========================================================== */ +/* transform normal vector by inverse transpose of matrix + * and then renormalize the vector + * + * This macro computes inverse transpose of matrix m, + * and multiplies vector v into it, to yeild vector p + * Vector p is then normalized. + */ + + +#define NORM_XFORM_2X2(p,m,v) \ +{ \ + double mlen; \ + \ + /* do nothing if off-diagonals are zero and diagonals are \ + * equal */ \ + if ((m[0][1] != 0.0) || (m[1][0] != 0.0) || (m[0][0] != m[1][1])) { \ + p[0] = m[1][1]*v[0] - m[1][0]*v[1]; \ + p[1] = - m[0][1]*v[0] + m[0][0]*v[1]; \ + \ + mlen = p[0]*p[0] + p[1]*p[1]; \ + mlen = 1.0 / sqrt (mlen); \ + p[0] *= mlen; \ + p[1] *= mlen; \ + } else { \ + VEC_COPY_2 (p, v); \ + } \ +} + +/* ========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define OUTER_PRODUCT_2X2(m,v,t) \ +{ \ + m[0][0] = v[0] * t[0]; \ + m[0][1] = v[0] * t[1]; \ + \ + m[1][0] = v[1] * t[0]; \ + m[1][1] = v[1] * t[1]; \ +} + +/* ========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define OUTER_PRODUCT_3X3(m,v,t) \ +{ \ + m[0][0] = v[0] * t[0]; \ + m[0][1] = v[0] * t[1]; \ + m[0][2] = v[0] * t[2]; \ + \ + m[1][0] = v[1] * t[0]; \ + m[1][1] = v[1] * t[1]; \ + m[1][2] = v[1] * t[2]; \ + \ + m[2][0] = v[2] * t[0]; \ + m[2][1] = v[2] * t[1]; \ + m[2][2] = v[2] * t[2]; \ +} + +/* ========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define OUTER_PRODUCT_4X4(m,v,t) \ +{ \ + m[0][0] = v[0] * t[0]; \ + m[0][1] = v[0] * t[1]; \ + m[0][2] = v[0] * t[2]; \ + m[0][3] = v[0] * t[3]; \ + \ + m[1][0] = v[1] * t[0]; \ + m[1][1] = v[1] * t[1]; \ + m[1][2] = v[1] * t[2]; \ + m[1][3] = v[1] * t[3]; \ + \ + m[2][0] = v[2] * t[0]; \ + m[2][1] = v[2] * t[1]; \ + m[2][2] = v[2] * t[2]; \ + m[2][3] = v[2] * t[3]; \ + \ + m[3][0] = v[3] * t[0]; \ + m[3][1] = v[3] * t[1]; \ + m[3][2] = v[3] * t[2]; \ + m[3][3] = v[3] * t[3]; \ +} + +/* +========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define ACCUM_OUTER_PRODUCT_2X2(m,v,t) \ +{ \ + m[0][0] += v[0] * t[0]; \ + m[0][1] += v[0] * t[1]; \ + \ + m[1][0] += v[1] * t[0]; \ + m[1][1] += v[1] * t[1]; \ +} + +/* +========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define ACCUM_OUTER_PRODUCT_3X3(m,v,t) \ +{ \ + m[0][0] += v[0] * t[0]; \ + m[0][1] += v[0] * t[1]; \ + m[0][2] += v[0] * t[2]; \ + \ + m[1][0] += v[1] * t[0]; \ + m[1][1] += v[1] * t[1]; \ + m[1][2] += v[1] * t[2]; \ + \ + m[2][0] += v[2] * t[0]; \ + m[2][1] += v[2] * t[1]; \ + m[2][2] += v[2] * t[2]; \ +} + +/* +========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define ACCUM_OUTER_PRODUCT_4X4(m,v,t) \ +{ \ + m[0][0] += v[0] * t[0]; \ + m[0][1] += v[0] * t[1]; \ + m[0][2] += v[0] * t[2]; \ + m[0][3] += v[0] * t[3]; \ + \ + m[1][0] += v[1] * t[0]; \ + m[1][1] += v[1] * t[1]; \ + m[1][2] += v[1] * t[2]; \ + m[1][3] += v[1] * t[3]; \ + \ + m[2][0] += v[2] * t[0]; \ + m[2][1] += v[2] * t[1]; \ + m[2][2] += v[2] * t[2]; \ + m[2][3] += v[2] * t[3]; \ + \ + m[3][0] += v[3] * t[0]; \ + m[3][1] += v[3] * t[1]; \ + m[3][2] += v[3] * t[2]; \ + m[3][3] += v[3] * t[3]; \ +} + +/* +========================================================== */ +/* determinant of matrix + * + * Computes determinant of matrix m, returning d + */ + +#define DETERMINANT_2X2(d,m) \ +{ \ + d = m[0][0] * m[1][1] - m[0][1] * m[1][0]; \ +} + +/* ========================================================== */ +/* determinant of matrix + * + * Computes determinant of matrix m, returning d + */ + +#define DETERMINANT_3X3(d,m) \ +{ \ + d = m[0][0] * (m[1][1]*m[2][2] - m[1][2] * m[2][1]); \ + d -= m[0][1] * (m[1][0]*m[2][2] - m[1][2] * m[2][0]); \ + d += m[0][2] * (m[1][0]*m[2][1] - m[1][1] * m[2][0]); \ +} + +/* ========================================================== */ +/* i,j,th cofactor of a 4x4 matrix + * + */ + +#define COFACTOR_4X4_IJ(fac,m,i,j) \ +{ \ + int ii[4], jj[4], k; \ + \ + /* compute which row, columnt to skip */ \ + for (k=0; k + + + + IBDocumentLocation + 4 104 410 240 0 0 1152 848 + IBEditorPositions + + 29 + 19 615 246 44 0 0 1152 848 + + IBFramework Version + 291.0 + IBGroupedObjects + + IBLastGroupID + 1 + IBOpenObjects + + 29 + + IBSystem Version + 6I32 + + diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUT.nib/objects.nib b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUT.nib/objects.nib new file mode 100644 index 0000000..8a7140e Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUT.nib/objects.nib differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTClipboard.nib/classes.nib b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTClipboard.nib/classes.nib new file mode 100644 index 0000000..7e85eb1 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTClipboard.nib/classes.nib @@ -0,0 +1,13 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + { + ACTIONS = {toggleWindow = id; }; + CLASS = GLUTClipboardController; + LANGUAGE = ObjC; + OUTLETS = {_infoText = id; _scrollView = id; }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTClipboard.nib/info.nib b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTClipboard.nib/info.nib new file mode 100644 index 0000000..867735d --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTClipboard.nib/info.nib @@ -0,0 +1,12 @@ + + + + + IBDocumentLocation + 63 221 356 240 0 0 1600 1178 + IBFramework Version + 263.2 + IBSystem Version + 5S41 + + diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTClipboard.nib/objects.nib b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTClipboard.nib/objects.nib new file mode 100644 index 0000000..29125d4 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTClipboard.nib/objects.nib differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTPreferences.nib/classes.nib b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTPreferences.nib/classes.nib new file mode 100644 index 0000000..c675963 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTPreferences.nib/classes.nib @@ -0,0 +1,73 @@ +{ + IBClasses = ( + { + ACTIONS = {save = id; saveAs = id; }; + CLASS = FirstResponder; + LANGUAGE = ObjC; + SUPERCLASS = NSObject; + }, + { + ACTIONS = { + cancel = id; + joyAssign = id; + joyDevice = id; + joyElement = id; + joyInvert = id; + launchDebugMode = id; + launchGamemodeCaptureSingle = id; + launchIconic = id; + launchUseCurrWD = id; + launchUseExtDesktop = id; + launchUseMacOSCoords = id; + mouseEanbleEmulation = id; + mouseMiddleMenu = id; + mouseRightMenu = id; + ok = id; + spaceAssign = id; + spaceDevice = id; + spaceElement = id; + spaceInvert = id; + }; + CLASS = GLUTPreferencesController; + LANGUAGE = ObjC; + OUTLETS = { + joyAssign = NSButton; + joyAssignNote = NSTextField; + joyAssignWarningIcon = NSImageView; + joyDeviceMenu = NSPopUpButton; + joyElement = NSTextField; + joyInputMenu = NSPopUpButton; + joyInverted = NSButton; + launchDebugMode = NSButton; + launchFadeTime = NSTextField; + launchGamemodeCaptureSingle = NSButton; + launchIconic = NSButton; + launchInitHeight = NSTextField; + launchInitWidth = NSTextField; + launchInitX = NSTextField; + launchInitY = NSTextField; + launchMenuIdle = NSTextField; + launchSyncToVBL = NSButton; + launchUseCurrWD = NSButton; + launchUseExtendedDesktop = NSButton; + launchUseMacOSXCoords = NSButton; + mouseAssignWarningIcon = NSImageView; + mouseAssignWarningText = NSTextField; + mouseDetected = NSTextField; + mouseEmulation = NSButton; + mouseMiddleConfigMenu = NSPopUpButton; + mouseRightConfigMenu = NSPopUpButton; + prefsTabView = NSTabView; + spaceAssign = NSButton; + spaceAssignNote = NSTextField; + spaceAssignWarningIcon = NSImageView; + spaceDeviceMenu = NSPopUpButton; + spaceElement = NSTextField; + spaceInputMenu = NSPopUpButton; + spaceInverted = NSButton; + }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTPreferences.nib/info.nib b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTPreferences.nib/info.nib new file mode 100644 index 0000000..216c8dc --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTPreferences.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 16 329 410 240 0 0 1920 1178 + IBFramework Version + 439.0 + IBOpenObjects + + 205 + + IBSystem Version + 8G32 + + diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTPreferences.nib/objects.nib b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTPreferences.nib/objects.nib new file mode 100644 index 0000000..7598f2c Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTPreferences.nib/objects.nib differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTUI.strings b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTUI.strings new file mode 100644 index 0000000..6db3c5c Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/GLUTUI.strings differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/InfoPlist.strings b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/InfoPlist.strings new file mode 100644 index 0000000..6f78b89 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/English.lproj/InfoPlist.strings differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/Info.plist b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/Info.plist new file mode 100644 index 0000000..e8fc9d6 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + GLUT + CFBundleGetInfoString + 3.4.0, Copyright (c) 2001-2008 Apple Inc., All Rights Reserved + CFBundleIdentifier + com.apple.glut + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + FMWK + CFBundleShortVersionString + 3.4.0 + CFBundleSignature + ???? + CFBundleVersion + GLUT-3.4.0 + + diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/blankCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/blankCursor.tiff new file mode 100644 index 0000000..a2b0cf1 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/blankCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/bottomCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/bottomCursor.tiff new file mode 100644 index 0000000..c3f4795 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/bottomCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/bottomleftCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/bottomleftCursor.tiff new file mode 100644 index 0000000..274529f Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/bottomleftCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/bottomrightCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/bottomrightCursor.tiff new file mode 100644 index 0000000..dec4252 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/bottomrightCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/crossCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/crossCursor.tiff new file mode 100644 index 0000000..8536c0e Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/crossCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/cycleCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/cycleCursor.tiff new file mode 100644 index 0000000..34b52f6 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/cycleCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/destroyCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/destroyCursor.tiff new file mode 100644 index 0000000..9e3a1cb Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/destroyCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/fingerCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/fingerCursor.tiff new file mode 100644 index 0000000..0087c66 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/fingerCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/helpCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/helpCursor.tiff new file mode 100644 index 0000000..fc4a88a Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/helpCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/leftCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/leftCursor.tiff new file mode 100644 index 0000000..852b69b Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/leftCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/leftRightCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/leftRightCursor.tiff new file mode 100644 index 0000000..37fe393 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/leftRightCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/rightArrowCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/rightArrowCursor.tiff new file mode 100644 index 0000000..d852616 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/rightArrowCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/rightCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/rightCursor.tiff new file mode 100644 index 0000000..9781f22 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/rightCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/sprayCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/sprayCursor.tiff new file mode 100644 index 0000000..9bec966 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/sprayCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/topCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/topCursor.tiff new file mode 100644 index 0000000..e4df0de Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/topCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/topleftCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/topleftCursor.tiff new file mode 100644 index 0000000..43cf97f Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/topleftCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/toprightCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/toprightCursor.tiff new file mode 100644 index 0000000..429b01b Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/toprightCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/upDownCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/upDownCursor.tiff new file mode 100644 index 0000000..1605063 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/upDownCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/waitCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/waitCursor.tiff new file mode 100644 index 0000000..81ba1aa Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Resources/waitCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/GLUT b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/GLUT new file mode 100644 index 0000000..babc6b1 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/GLUT differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/copy.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/copy.h new file mode 100644 index 0000000..a5116e2 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/copy.h @@ -0,0 +1,18 @@ + +/* + * + * Written By Linas Vepstas November 1991 + */ + + +#define COPY_THREE_WORDS(A,B) { \ + struct three_words { int a, b, c, }; \ + *(struct three_words *) (A) = *(struct three_words *) (B); \ +} + +#define COPY_FOUR_WORDS(A,B) { \ + struct four_words { int a, b, c, d, }; \ + *(struct four_words *) (A) = *(struct four_words *) (B); \ +} + +/* ============================================================= */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/extrude.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/extrude.h new file mode 100644 index 0000000..658699e --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/extrude.h @@ -0,0 +1,96 @@ + +/* + * extrude.h + * + * FUNCTION: + * prototypes for privately used subroutines for the tubing library + * + * HISTORY: + * Linas Vepstas 1991 + */ + +#include "port.h" /* for gleDouble */ + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +/* ============================================================ */ +/* + * Provides choice of calling subroutine, vs. invoking macro. + * Basically, inlines the source, or not. + * Trades performance for executable size. + */ + +#define INLINE_INTERSECT +#ifdef INLINE_INTERSECT +#define INNERSECT(sect,p,n,v1,v2) { INTERSECT(sect,p,n,v1,v2); } +#else +#define INNERSECT(sect,p,n,v1,v2) intersect(sect,p,n,v1,v2) +#endif /* INLINE_INTERSECT */ + +/* ============================================================ */ +/* The folowing defines give a kludgy way of accessing the qmesh primitive */ + +/* +#define bgntmesh _emu_qmesh_bgnqmesh +#define endtmesh _emu_qmesh_endqmesh +#define c3f _emu_qmesh_c3f +#define n3f _emu_qmesh_n3f +#define v3f _emu_qmesh_v3f +*/ + +/* ============================================================ */ + +extern void up_sanity_check (gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3]); /* polyline */ + + +extern void draw_raw_style_end_cap (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble zval, /* where to draw cap */ + int frontwards); /* front or back cap */ + +extern void draw_round_style_cap_callback (int iloop, + double cap[][3], + float face_color[3], + gleDouble cut_vector[3], + gleDouble bisect_vector[3], + double norms[][3], + int frontwards); + +extern void draw_angle_style_front_cap (int ncp, + gleDouble bi[3], + gleDouble point_array[][3]); + +extern void extrusion_raw_join (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2],/* 2D contour normal vecs */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline */ + float color_array[][3], /* color of polyline */ + gleDouble xform_array[][2][3]); /* 2D contour xforms */ + + +extern void extrusion_round_or_cut_join (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2],/* 2D contour normal vecs */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline */ + float color_array[][3], /* color of polyline */ + gleDouble xform_array[][2][3]); /* 2D contour xforms */ + + +extern void extrusion_angle_join (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2],/* 2D contour normal vecs */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline */ + float color_array[][3], /* color of polyline */ + gleDouble xform_array[][2][3]); /* 2D contour xforms */ + +/* -------------------------- end of file -------------------------------- */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmap.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmap.h new file mode 100644 index 0000000..baf54a7 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmap.h @@ -0,0 +1,137 @@ +#ifndef __glsmap_h__ +#define __glsmap_h__ + +/* Copyright (c) Mark J. Kilgard, 1998. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#if defined(_WIN32) + +/* Try hard to avoid including to avoid name space pollution, + but Win32's needs APIENTRY and WINGDIAPI defined properly. */ +# if 0 +# define WIN32_LEAN_AND_MEAN +# include +# else + /* XXX This is from Win32's */ +# ifndef APIENTRY +# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) +# define APIENTRY __stdcall +# else +# define APIENTRY +# endif +# endif +# ifndef CALLBACK + /* XXX This is from Win32's */ +# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) +# define CALLBACK __stdcall +# else +# define CALLBACK +# endif +# endif + /* XXX This is from Win32's and */ +# ifndef WINGDIAPI +# define WINGDIAPI __declspec(dllimport) +# endif + /* XXX This is from Win32's */ +# ifndef _WCHAR_T_DEFINED +typedef unsigned short wchar_t; +# define _WCHAR_T_DEFINED +# endif +# endif + +#pragma warning (disable:4244) /* Disable bogus conversion warnings. */ +#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ + +#endif /* _WIN32 */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum { + SMAP_CLEAR_SMAP_TEXTURE = 0x1, + SMAP_GENERATE_VIEW_MIPMAPS = 0x2, + SMAP_GENERATE_SMAP_MIPMAPS = 0x4, + SMAP_GENERATE_MIPMAPS = 0x6 /* both of above */ +} SphereMapFlags; + +/* Cube view enumerants. */ +enum { + SMAP_FRONT = 0, + SMAP_TOP = 1, + SMAP_BOTTOM = 2, + SMAP_LEFT = 3, + SMAP_RIGHT = 4, + SMAP_BACK = 5 +}; + +typedef struct _SphereMap SphereMap; + +extern SphereMap *smapCreateSphereMap(SphereMap *shareSmap); +extern void smapDestroySphereMap(SphereMap *smap); + +extern void smapConfigureSphereMapMesh(SphereMap *smap, int steps, int rings, int edgeExtend); + +extern void smapSetSphereMapTexObj(SphereMap *smap, GLuint texobj); +extern void smapSetViewTexObj(SphereMap *smap, GLuint texobj); +extern void smapSetViewTexObjs(SphereMap *smap, GLuint texobjs[6]); +extern void smapGetSphereMapTexObj(SphereMap *smap, GLuint *texobj); +extern void smapGetViewTexObj(SphereMap *smap, GLuint *texobj); +extern void smapGetViewTexObjs(SphereMap *smap, GLuint texobjs[6]); + +extern void smapSetFlags(SphereMap *smap, SphereMapFlags flags); +extern void smapGetFlags(SphereMap *smap, SphereMapFlags *flags); + +extern void smapSetViewOrigin(SphereMap *smap, GLint x, GLint y); +extern void smapSetSphereMapOrigin(SphereMap *smap, GLint x, GLint y); +extern void smapGetViewOrigin(SphereMap *smap, GLint *x, GLint *y); +extern void smapGetSphereMapOrigin(SphereMap *smap, GLint *x, GLint *y); + +extern void smapSetEye(SphereMap *smap, GLfloat eyex, GLfloat eyey, GLfloat eyez); +extern void smapSetEyeVector(SphereMap *smap, GLfloat *eye); +extern void smapSetUp(SphereMap *smap, GLfloat upx, GLfloat upy, GLfloat upz); +extern void smapSetUpVector(SphereMap *smap, GLfloat *up); +extern void smapSetObject(SphereMap *smap, GLfloat objx, GLfloat objy, GLfloat objz); +extern void smapSetObjectVector(SphereMap *smap, GLfloat *obj); +extern void smapGetEye(SphereMap *smap, GLfloat *eyex, GLfloat *eyey, GLfloat *eyez); +extern void smapGetEyeVector(SphereMap *smap, GLfloat *eye); +extern void smapGetUp(SphereMap *smap, GLfloat *upx, GLfloat *upy, GLfloat *upz); +extern void smapGetUpVector(SphereMap *smap, GLfloat *up); +extern void smapGetObject(SphereMap *smap, GLfloat *objx, GLfloat *objy, GLfloat *objz); +extern void smapGetObjectVector(SphereMap *smap, GLfloat *obj); + +extern void smapSetNearFar(SphereMap *smap, GLfloat viewNear, GLfloat viewFar); +extern void smapGetNearFar(SphereMap *smap, GLfloat *viewNear, GLfloat *viewFar); + +extern void smapSetSphereMapTexDim(SphereMap *smap, GLsizei texdim); +extern void smapSetViewTexDim(SphereMap *smap, GLsizei texdim); +extern void smapGetSphereMapTexDim(SphereMap *smap, GLsizei *texdim); +extern void smapGetViewTexDim(SphereMap *smap, GLsizei *texdim); + +extern void smapSetContextData(SphereMap *smap, void *context); +extern void smapGetContextData(SphereMap *smap, void **context); + +extern void smapSetPositionLightsFunc(SphereMap *smap, void (*positionLights)(int view, void *context)); +extern void smapSetDrawViewFunc(SphereMap *smap, void (*drawView)(int view, void *context)); +extern void smapGetPositionLightsFunc(SphereMap *smap, void (**positionLights)(int view, void *context)); +extern void smapGetDrawViewFunc(SphereMap *smap, void (**drawView)(int view, void *context)); + +extern void smapGenViewTex(SphereMap *smap, int view); +extern void smapGenViewTexs(SphereMap *smap); +extern void smapGenSphereMapFromViewTexs(SphereMap *smap); +extern void smapGenSphereMap(SphereMap *smap); +extern void smapGenSphereMapWithOneViewTex(SphereMap *smap); + +extern int smapRvecToSt(float rvec[3], float st[2]); +extern void smapStToRvec(float *st, float *rvec); + +#ifdef __cplusplus +} + +#endif +#endif /* __glsmap_h__ */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmapint.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmapint.h new file mode 100644 index 0000000..3620e7d --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glsmapint.h @@ -0,0 +1,102 @@ +#ifndef __glsmapint_h__ +#define __glsmapint_h__ + +/* Copyright (c) Mark J. Kilgard, 1998. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#include "glsmap.h" + +enum { X = 0, Y = 1, Z = 2 }; + +#define INITFACE(mesh) \ + int steps = mesh->steps; \ + int sqsteps = mesh->steps * mesh->steps + +#define FACE(side,y,x) \ + mesh->face[(side)*sqsteps + (y)*steps + (x)] + +#define FACExy(side,i,j) \ + (&FACE(side,i,j).x) + +#define FACEst(side,i,j) \ + (&FACE(side,i,j).s) + +#define INITBACK(mesh) \ + int allrings = mesh->rings + mesh->edgeExtend; \ + int ringedspokes = allrings * mesh->steps + +#define BACK(edge,ring,spoke) \ + mesh->back[(edge)*ringedspokes + (ring)*mesh->steps + (spoke)] + +#define BACKxy(edge,ring,spoke) \ + (&BACK(edge,ring,spoke).x) + +#define BACKst(edge,ring,spoke) \ + (&BACK(edge,ring,spoke).s) + +typedef struct _STXY { + GLfloat s, t; + GLfloat x, y; +} STXY; + +typedef struct _SphereMapMesh { + + int refcnt; + + int steps; + int rings; + int edgeExtend; + + STXY *face; + STXY *back; + +} SphereMapMesh; + +struct _SphereMap { + + /* Shared sphere map mesh vertex data. */ + SphereMapMesh *mesh; + + /* Texture object ids. */ + GLuint smapTexObj; + GLuint viewTexObjs[6]; + GLuint viewTexObj; + + /* Flags */ + SphereMapFlags flags; + + /* Texture dimensions must be a power of two. */ + int viewTexDim; /* view texture dimension */ + int smapTexDim; /* sphere map texture dimension */ + + /* Viewport origins for view and sphere map rendering. */ + int viewOrigin[2]; + int smapOrigin[2]; + + /* Viewing vectors. */ + GLfloat eye[3]; + GLfloat up[3]; + GLfloat obj[3]; + + /* Projection parameters. */ + GLfloat viewNear; + GLfloat viewFar; + + /* Rendering callbacks. */ + void (*positionLights)(int view, void *context); + void (*drawView)(int view, void *context); + + /* Application specified callback data. */ + void *context; + +}; + +/* Library internal routines. */ +extern void __smapDrawSphereMapMeshSide(SphereMapMesh *mesh, int side); +extern void __smapDrawSphereMapMeshBack(SphereMapMesh *mesh); +extern void __smapValidateSphereMapMesh(SphereMapMesh *mesh); + +#endif /* __glsmapint_h__ */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glut.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glut.h new file mode 100644 index 0000000..cbc6ebe --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glut.h @@ -0,0 +1,648 @@ +#ifndef __glut_h__ +#define __glut_h__ + +/* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998. */ + +/* This program is freely distributable without licensing fees and is + provided without guarantee or warrantee expressed or implied. This + program is -not- in the public domain. */ +//#define GLUT_OF_007_HACK + +#if defined(_WIN32) + +/* GLUT 3.7 now tries to avoid including + to avoid name space pollution, but Win32's + needs APIENTRY and WINGDIAPI defined properly. */ +# if 0 +# define WIN32_LEAN_AND_MEAN +# include +# else + /* XXX This is from Win32's */ +# ifndef APIENTRY +# define GLUT_APIENTRY_DEFINED +# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) +# define APIENTRY __stdcall +# else +# define APIENTRY +# endif +# endif + /* XXX This is from Win32's */ +# ifndef CALLBACK +# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) +# define CALLBACK __stdcall +# else +# define CALLBACK +# endif +# endif + /* XXX This is from Win32's and */ +# ifndef WINGDIAPI +# define GLUT_WINGDIAPI_DEFINED +# define WINGDIAPI __declspec(dllimport) +# endif + /* XXX This is from Win32's */ +# ifndef _WCHAR_T_DEFINED +typedef unsigned short wchar_t; +# define _WCHAR_T_DEFINED +# endif +# endif + +#pragma comment (lib, "winmm.lib") /* link with Windows MultiMedia lib */ +#pragma comment (lib, "opengl32.lib") /* link with Microsoft OpenGL lib */ +#pragma comment (lib, "glu32.lib") /* link with OpenGL Utility lib */ +#pragma comment (lib, "glut32.lib") /* link with Win32 GLUT lib */ + +#pragma warning (disable:4244) /* Disable bogus conversion warnings. */ +#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ + +#endif + +#if defined(__APPLE__) || defined(MACOSX) +#include +#include +#include +#else +#include +#include +#endif + +/* define APIENTRY and CALLBACK to null string if we aren't on Win32 */ +#if !defined(_WIN32) +#define APIENTRY +#define GLUT_APIENTRY_DEFINED +#define CALLBACK +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/** + GLUT API revision history: + + GLUT_API_VERSION is updated to reflect incompatible GLUT + API changes (interface changes, semantic changes, deletions, + or additions). + + GLUT_API_VERSION=1 First public release of GLUT. 11/29/94 + + GLUT_API_VERSION=2 Added support for OpenGL/GLX multisampling, + extension. Supports new input devices like tablet, dial and button + box, and Spaceball. Easy to query OpenGL extensions. + + GLUT_API_VERSION=3 glutMenuStatus added. + + GLUT_API_VERSION=4 glutInitDisplayString, glutWarpPointer, + glutBitmapLength, glutStrokeLength, glutWindowStatusFunc, dynamic + video resize subAPI, glutPostWindowRedisplay, glutKeyboardUpFunc, + glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat, + glutJoystickFunc, glutForceJoystickFunc (NOT FINALIZED!). + + GLUT_API_VERSION=5 glutGetProcAddress (added by BrianP) +**/ +#ifndef GLUT_API_VERSION /* allow this to be overriden */ +#define GLUT_API_VERSION 5 +#endif + +/** + GLUT implementation revision history: + + GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT + API revisions and implementation revisions (ie, bug fixes). + + GLUT_XLIB_IMPLEMENTATION=1 mjk's first public release of + GLUT Xlib-based implementation. 11/29/94 + + GLUT_XLIB_IMPLEMENTATION=2 mjk's second public release of + GLUT Xlib-based implementation providing GLUT version 2 + interfaces. + + GLUT_XLIB_IMPLEMENTATION=3 mjk's GLUT 2.2 images. 4/17/95 + + GLUT_XLIB_IMPLEMENTATION=4 mjk's GLUT 2.3 images. 6/?/95 + + GLUT_XLIB_IMPLEMENTATION=5 mjk's GLUT 3.0 images. 10/?/95 + + GLUT_XLIB_IMPLEMENTATION=7 mjk's GLUT 3.1+ with glutWarpPoitner. 7/24/96 + + GLUT_XLIB_IMPLEMENTATION=8 mjk's GLUT 3.1+ with glutWarpPoitner + and video resize. 1/3/97 + + GLUT_XLIB_IMPLEMENTATION=9 mjk's GLUT 3.4 release with early GLUT 4 routines. + + GLUT_XLIB_IMPLEMENTATION=11 Mesa 2.5's GLUT 3.6 release. + + GLUT_XLIB_IMPLEMENTATION=12 mjk's GLUT 3.6 release with early GLUT 4 routines + signal handling. + + GLUT_XLIB_IMPLEMENTATION=13 mjk's GLUT 3.7 beta with GameGLUT support. + + GLUT_XLIB_IMPLEMENTATION=14 mjk's GLUT 3.7 beta with f90gl friend interface. + + GLUT_XLIB_IMPLEMENTATION=15 mjk's GLUT 3.7 beta sync'ed with Mesa +**/ +#ifndef GLUT_XLIB_IMPLEMENTATION /* Allow this to be overriden. */ +#define GLUT_XLIB_IMPLEMENTATION 15 +#endif + +/** + MacOS X GLUT implementation revision history: + + GLUT_MACOSX_IMPLEMENTATION is updated to reflect MacOS X + specific GLUT API revisions and implementation revisions + (ie, bug fixes). + + GLUT_MACOSX_IMPLEMENTATION=1 glutSurfaceTexture. + + GLUT_MACOSX_IMPLEMENTATION=2 glutWMCloseFunc, glutCheckLoop. + +**/ +#ifndef GLUT_MACOSX_IMPLEMENTATION /* Allow this to be overriden. */ +#define GLUT_MACOSX_IMPLEMENTATION 2 +#endif + +/* Display mode bit masks. */ +#define GLUT_RGB 0 +#define GLUT_RGBA GLUT_RGB +#define GLUT_INDEX 1 +#define GLUT_SINGLE 0 +#define GLUT_DOUBLE 2 +#define GLUT_ACCUM 4 +#define GLUT_ALPHA 8 +#define GLUT_DEPTH 16 +#define GLUT_STENCIL 32 +#if (GLUT_API_VERSION >= 2) +#define GLUT_MULTISAMPLE 128 +#define GLUT_STEREO 256 +#endif +#if (GLUT_API_VERSION >= 3) +#define GLUT_LUMINANCE 512 +#endif +#define GLUT_NO_RECOVERY 1024 + +/* Mouse buttons. */ +#define GLUT_LEFT_BUTTON 0 +#define GLUT_MIDDLE_BUTTON 1 +#define GLUT_RIGHT_BUTTON 2 + +/* Mouse button state. */ +#define GLUT_DOWN 0 +#define GLUT_UP 1 + +#if (GLUT_API_VERSION >= 2) +/* function keys */ +#define GLUT_KEY_F1 1 +#define GLUT_KEY_F2 2 +#define GLUT_KEY_F3 3 +#define GLUT_KEY_F4 4 +#define GLUT_KEY_F5 5 +#define GLUT_KEY_F6 6 +#define GLUT_KEY_F7 7 +#define GLUT_KEY_F8 8 +#define GLUT_KEY_F9 9 +#define GLUT_KEY_F10 10 +#define GLUT_KEY_F11 11 +#define GLUT_KEY_F12 12 +/* directional keys */ +#define GLUT_KEY_LEFT 100 +#define GLUT_KEY_UP 101 +#define GLUT_KEY_RIGHT 102 +#define GLUT_KEY_DOWN 103 +#define GLUT_KEY_PAGE_UP 104 +#define GLUT_KEY_PAGE_DOWN 105 +#define GLUT_KEY_HOME 106 +#define GLUT_KEY_END 107 +#define GLUT_KEY_INSERT 108 +#endif + +/* Entry/exit state. */ +#define GLUT_LEFT 0 +#define GLUT_ENTERED 1 + +/* Menu usage state. */ +#define GLUT_MENU_NOT_IN_USE 0 +#define GLUT_MENU_IN_USE 1 + +/* Visibility state. */ +#define GLUT_NOT_VISIBLE 0 +#define GLUT_VISIBLE 1 + +/* Window status state. */ +#define GLUT_HIDDEN 0 +#define GLUT_FULLY_RETAINED 1 +#define GLUT_PARTIALLY_RETAINED 2 +#define GLUT_FULLY_COVERED 3 + +/* Color index component selection values. */ +#define GLUT_RED 0 +#define GLUT_GREEN 1 +#define GLUT_BLUE 2 + +/* Layers for use. */ +#define GLUT_NORMAL 0 +#define GLUT_OVERLAY 1 + +#if defined(_WIN32) +/* Stroke font constants (use these in GLUT program). */ +#define GLUT_STROKE_ROMAN ((void*)0) +#define GLUT_STROKE_MONO_ROMAN ((void*)1) + +/* Bitmap font constants (use these in GLUT program). */ +#define GLUT_BITMAP_9_BY_15 ((void*)2) +#define GLUT_BITMAP_8_BY_13 ((void*)3) +#define GLUT_BITMAP_TIMES_ROMAN_10 ((void*)4) +#define GLUT_BITMAP_TIMES_ROMAN_24 ((void*)5) +#if (GLUT_API_VERSION >= 3) +#define GLUT_BITMAP_HELVETICA_10 ((void*)6) +#define GLUT_BITMAP_HELVETICA_12 ((void*)7) +#define GLUT_BITMAP_HELVETICA_18 ((void*)8) +#endif +#else +/* Stroke font opaque addresses (use constants instead in source code). */ +extern void *glutStrokeRoman; +extern void *glutStrokeMonoRoman; + +/* Stroke font constants (use these in GLUT program). */ +#define GLUT_STROKE_ROMAN (&glutStrokeRoman) +#define GLUT_STROKE_MONO_ROMAN (&glutStrokeMonoRoman) + +/* Bitmap font opaque addresses (use constants instead in source code). */ +extern void *glutBitmap9By15; +extern void *glutBitmap8By13; +extern void *glutBitmapTimesRoman10; +extern void *glutBitmapTimesRoman24; +extern void *glutBitmapHelvetica10; +extern void *glutBitmapHelvetica12; +extern void *glutBitmapHelvetica18; + +/* Bitmap font constants (use these in GLUT program). */ +#define GLUT_BITMAP_9_BY_15 (&glutBitmap9By15) +#define GLUT_BITMAP_8_BY_13 (&glutBitmap8By13) +#define GLUT_BITMAP_TIMES_ROMAN_10 (&glutBitmapTimesRoman10) +#define GLUT_BITMAP_TIMES_ROMAN_24 (&glutBitmapTimesRoman24) +#if (GLUT_API_VERSION >= 3) +#define GLUT_BITMAP_HELVETICA_10 (&glutBitmapHelvetica10) +#define GLUT_BITMAP_HELVETICA_12 (&glutBitmapHelvetica12) +#define GLUT_BITMAP_HELVETICA_18 (&glutBitmapHelvetica18) +#endif +#endif + +/* glutGet parameters. */ +#define GLUT_WINDOW_X 100 +#define GLUT_WINDOW_Y 101 +#define GLUT_WINDOW_WIDTH 102 +#define GLUT_WINDOW_HEIGHT 103 +#define GLUT_WINDOW_BUFFER_SIZE 104 +#define GLUT_WINDOW_STENCIL_SIZE 105 +#define GLUT_WINDOW_DEPTH_SIZE 106 +#define GLUT_WINDOW_RED_SIZE 107 +#define GLUT_WINDOW_GREEN_SIZE 108 +#define GLUT_WINDOW_BLUE_SIZE 109 +#define GLUT_WINDOW_ALPHA_SIZE 110 +#define GLUT_WINDOW_ACCUM_RED_SIZE 111 +#define GLUT_WINDOW_ACCUM_GREEN_SIZE 112 +#define GLUT_WINDOW_ACCUM_BLUE_SIZE 113 +#define GLUT_WINDOW_ACCUM_ALPHA_SIZE 114 +#define GLUT_WINDOW_DOUBLEBUFFER 115 +#define GLUT_WINDOW_RGBA 116 +#define GLUT_WINDOW_PARENT 117 +#define GLUT_WINDOW_NUM_CHILDREN 118 +#define GLUT_WINDOW_COLORMAP_SIZE 119 +#if (GLUT_API_VERSION >= 2) +#define GLUT_WINDOW_NUM_SAMPLES 120 +#define GLUT_WINDOW_STEREO 121 +#endif +#if (GLUT_API_VERSION >= 3) +#define GLUT_WINDOW_CURSOR 122 +#endif +#define GLUT_SCREEN_WIDTH 200 +#define GLUT_SCREEN_HEIGHT 201 +#define GLUT_SCREEN_WIDTH_MM 202 +#define GLUT_SCREEN_HEIGHT_MM 203 +#define GLUT_MENU_NUM_ITEMS 300 +#define GLUT_DISPLAY_MODE_POSSIBLE 400 +#define GLUT_INIT_WINDOW_X 500 +#define GLUT_INIT_WINDOW_Y 501 +#define GLUT_INIT_WINDOW_WIDTH 502 +#define GLUT_INIT_WINDOW_HEIGHT 503 +#define GLUT_INIT_DISPLAY_MODE 504 +#if (GLUT_API_VERSION >= 2) +#define GLUT_ELAPSED_TIME 700 +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +#define GLUT_WINDOW_FORMAT_ID 123 +#endif + +#if (GLUT_API_VERSION >= 2) +/* glutDeviceGet parameters. */ +#define GLUT_HAS_KEYBOARD 600 +#define GLUT_HAS_MOUSE 601 +#define GLUT_HAS_SPACEBALL 602 +#define GLUT_HAS_DIAL_AND_BUTTON_BOX 603 +#define GLUT_HAS_TABLET 604 +#define GLUT_NUM_MOUSE_BUTTONS 605 +#define GLUT_NUM_SPACEBALL_BUTTONS 606 +#define GLUT_NUM_BUTTON_BOX_BUTTONS 607 +#define GLUT_NUM_DIALS 608 +#define GLUT_NUM_TABLET_BUTTONS 609 +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +#define GLUT_DEVICE_IGNORE_KEY_REPEAT 610 +#define GLUT_DEVICE_KEY_REPEAT 611 +#define GLUT_HAS_JOYSTICK 612 +#define GLUT_OWNS_JOYSTICK 613 +#define GLUT_JOYSTICK_BUTTONS 614 +#define GLUT_JOYSTICK_AXES 615 +#define GLUT_JOYSTICK_POLL_RATE 616 +#endif + +#if (GLUT_API_VERSION >= 3) +/* glutLayerGet parameters. */ +#define GLUT_OVERLAY_POSSIBLE 800 +#define GLUT_LAYER_IN_USE 801 +#define GLUT_HAS_OVERLAY 802 +#define GLUT_TRANSPARENT_INDEX 803 +#define GLUT_NORMAL_DAMAGED 804 +#define GLUT_OVERLAY_DAMAGED 805 + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +/* glutVideoResizeGet parameters. */ +#define GLUT_VIDEO_RESIZE_POSSIBLE 900 +#define GLUT_VIDEO_RESIZE_IN_USE 901 +#define GLUT_VIDEO_RESIZE_X_DELTA 902 +#define GLUT_VIDEO_RESIZE_Y_DELTA 903 +#define GLUT_VIDEO_RESIZE_WIDTH_DELTA 904 +#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA 905 +#define GLUT_VIDEO_RESIZE_X 906 +#define GLUT_VIDEO_RESIZE_Y 907 +#define GLUT_VIDEO_RESIZE_WIDTH 908 +#define GLUT_VIDEO_RESIZE_HEIGHT 909 +#endif + +/* glutUseLayer parameters. */ +#define GLUT_NORMAL 0 +#define GLUT_OVERLAY 1 + +/* glutGetModifiers return mask. */ +#define GLUT_ACTIVE_SHIFT 1 +#define GLUT_ACTIVE_CTRL 2 +#define GLUT_ACTIVE_ALT 4 + +/* glutSetCursor parameters. */ +/* Basic arrows. */ +#define GLUT_CURSOR_RIGHT_ARROW 0 +#define GLUT_CURSOR_LEFT_ARROW 1 +/* Symbolic cursor shapes. */ +#define GLUT_CURSOR_INFO 2 +#define GLUT_CURSOR_DESTROY 3 +#define GLUT_CURSOR_HELP 4 +#define GLUT_CURSOR_CYCLE 5 +#define GLUT_CURSOR_SPRAY 6 +#define GLUT_CURSOR_WAIT 7 +#define GLUT_CURSOR_TEXT 8 +#define GLUT_CURSOR_CROSSHAIR 9 +/* Directional cursors. */ +#define GLUT_CURSOR_UP_DOWN 10 +#define GLUT_CURSOR_LEFT_RIGHT 11 +/* Sizing cursors. */ +#define GLUT_CURSOR_TOP_SIDE 12 +#define GLUT_CURSOR_BOTTOM_SIDE 13 +#define GLUT_CURSOR_LEFT_SIDE 14 +#define GLUT_CURSOR_RIGHT_SIDE 15 +#define GLUT_CURSOR_TOP_LEFT_CORNER 16 +#define GLUT_CURSOR_TOP_RIGHT_CORNER 17 +#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 18 +#define GLUT_CURSOR_BOTTOM_LEFT_CORNER 19 +/* Inherit from parent window. */ +#define GLUT_CURSOR_INHERIT 100 +/* Blank cursor. */ +#define GLUT_CURSOR_NONE 101 +/* Fullscreen crosshair (if available). */ +#define GLUT_CURSOR_FULL_CROSSHAIR 102 +#endif + +/* GLUT initialization sub-API. */ +extern void APIENTRY glutInit(int *argcp, char **argv); +extern void APIENTRY glutInitDisplayMode(unsigned int mode); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern void APIENTRY glutInitDisplayString(const char *string); +#endif +extern void APIENTRY glutInitWindowPosition(int x, int y); +extern void APIENTRY glutInitWindowSize(int width, int height); +extern void APIENTRY glutMainLoop(void); + +/* GLUT window sub-API. */ +extern int APIENTRY glutCreateWindow(const char *title); +extern int APIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height); +extern void APIENTRY glutDestroyWindow(int win); +extern void APIENTRY glutPostRedisplay(void); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) +extern void APIENTRY glutPostWindowRedisplay(int win); +#endif +extern void APIENTRY glutSwapBuffers(void); +extern int APIENTRY glutGetWindow(void); +extern void APIENTRY glutSetWindow(int win); +extern void APIENTRY glutSetWindowTitle(const char *title); +extern void APIENTRY glutSetIconTitle(const char *title); +extern void APIENTRY glutPositionWindow(int x, int y); +extern void APIENTRY glutReshapeWindow(int width, int height); +extern void APIENTRY glutPopWindow(void); +extern void APIENTRY glutPushWindow(void); +extern void APIENTRY glutIconifyWindow(void); +extern void APIENTRY glutShowWindow(void); +extern void APIENTRY glutHideWindow(void); +#if (GLUT_API_VERSION >= 3) +extern void APIENTRY glutFullScreen(void); +extern void APIENTRY glutSetCursor(int cursor); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern void APIENTRY glutWarpPointer(int x, int y); +#if (GLUT_MACOSX_IMPLEMENTATION >= 1) +/* surface texturing API Mac OS X specific +* Note: +* glutSurfaceTexture has been deprecated, use GL_EXT_framebuffer_object +*/ +#ifdef MAC_OS_X_VERSION_10_5 +extern void APIENTRY glutSurfaceTexture (GLenum target, GLenum internalformat, int surfacewin); AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 +#else +extern void APIENTRY glutSurfaceTexture (GLenum target, GLenum internalformat, int surfacewin); +#endif +#endif +#if (GLUT_MACOSX_IMPLEMENTATION >= 2) +/* Mac OS X specific API */ +extern void APIENTRY glutWMCloseFunc(void (*func)(void)); +extern void APIENTRY glutCheckLoop(void); +#endif +#endif + +/* GLUT overlay sub-API. */ +extern void APIENTRY glutEstablishOverlay(void); +extern void APIENTRY glutRemoveOverlay(void); +extern void APIENTRY glutUseLayer(GLenum layer); +extern void APIENTRY glutPostOverlayRedisplay(void); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) +extern void APIENTRY glutPostWindowOverlayRedisplay(int win); +#endif +extern void APIENTRY glutShowOverlay(void); +extern void APIENTRY glutHideOverlay(void); +#endif + +/* GLUT menu sub-API. */ +extern int APIENTRY glutCreateMenu(void (*)(int)); +extern void APIENTRY glutDestroyMenu(int menu); +extern int APIENTRY glutGetMenu(void); +extern void APIENTRY glutSetMenu(int menu); +extern void APIENTRY glutAddMenuEntry(const char *label, int value); +extern void APIENTRY glutAddSubMenu(const char *label, int submenu); +extern void APIENTRY glutChangeToMenuEntry(int item, const char *label, int value); +extern void APIENTRY glutChangeToSubMenu(int item, const char *label, int submenu); +extern void APIENTRY glutRemoveMenuItem(int item); +extern void APIENTRY glutAttachMenu(int button); +extern void APIENTRY glutDetachMenu(int button); + +/* GLUT window callback sub-API. */ +extern void APIENTRY glutDisplayFunc(void (*func)(void)); +extern void APIENTRY glutReshapeFunc(void (*func)(int width, int height)); +extern void APIENTRY glutKeyboardFunc(void (*func)(unsigned char key, int x, int y)); +extern void APIENTRY glutMouseFunc(void (*func)(int button, int state, int x, int y)); +extern void APIENTRY glutMotionFunc(void (*func)(int x, int y)); +extern void APIENTRY glutPassiveMotionFunc(void (*func)(int x, int y)); +extern void APIENTRY glutEntryFunc(void (*func)(int state)); +extern void APIENTRY glutVisibilityFunc(void (*func)(int state)); +extern void APIENTRY glutIdleFunc(void (*func)(void)); +extern void APIENTRY glutTimerFunc(unsigned int millis, void (*func)(int value), int value); +extern void APIENTRY glutMenuStateFunc(void (*func)(int state)); +#if (GLUT_API_VERSION >= 2) +extern void APIENTRY glutSpecialFunc(void (*func)(int key, int x, int y)); +extern void APIENTRY glutSpaceballMotionFunc(void (*func)(int x, int y, int z)); +extern void APIENTRY glutSpaceballRotateFunc(void (*func)(int x, int y, int z)); +extern void APIENTRY glutSpaceballButtonFunc(void (*func)(int button, int state)); +extern void APIENTRY glutButtonBoxFunc(void (*func)(int button, int state)); +extern void APIENTRY glutDialsFunc(void (*func)(int dial, int value)); +extern void APIENTRY glutTabletMotionFunc(void (*func)(int x, int y)); +extern void APIENTRY glutTabletButtonFunc(void (*func)(int button, int state, int x, int y)); +#if (GLUT_API_VERSION >= 3) +extern void APIENTRY glutMenuStatusFunc(void (*func)(int status, int x, int y)); +extern void APIENTRY glutOverlayDisplayFunc(void (*func)(void)); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern void APIENTRY glutWindowStatusFunc(void (*func)(int state)); +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +extern void APIENTRY glutKeyboardUpFunc(void (*func)(unsigned char key, int x, int y)); +extern void APIENTRY glutSpecialUpFunc(void (*func)(int key, int x, int y)); +extern void APIENTRY glutJoystickFunc(void (*func)(unsigned int buttonMask, int x, int y, int z), int pollInterval); +//#ifdef GLUT_OF_007_HACK +extern void APIENTRY glutDragEventFunc(void (*func)(char ** fileNames, int nFiles, int dragX, int dragY)); +//#endif +#endif +#endif +#endif + +/* GLUT color index sub-API. */ +extern void APIENTRY glutSetColor(int, GLfloat red, GLfloat green, GLfloat blue); +extern GLfloat APIENTRY glutGetColor(int ndx, int component); +extern void APIENTRY glutCopyColormap(int win); + +/* GLUT state retrieval sub-API. */ +extern int APIENTRY glutGet(GLenum type); +extern int APIENTRY glutDeviceGet(GLenum type); +#if (GLUT_API_VERSION >= 2) +/* GLUT extension support sub-API */ +extern int APIENTRY glutExtensionSupported(const char *name); +#endif +#if (GLUT_API_VERSION >= 3) +extern int APIENTRY glutGetModifiers(void); +extern int APIENTRY glutLayerGet(GLenum type); +#endif +#if (GLUT_API_VERSION >= 5) +extern void * APIENTRY glutGetProcAddress(const char *procName); +#endif + +/* GLUT font sub-API */ +extern void APIENTRY glutBitmapCharacter(void *font, int character); +extern int APIENTRY glutBitmapWidth(void *font, int character); +extern void APIENTRY glutStrokeCharacter(void *font, int character); +extern int APIENTRY glutStrokeWidth(void *font, int character); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern int APIENTRY glutBitmapLength(void *font, const unsigned char *string); +extern int APIENTRY glutStrokeLength(void *font, const unsigned char *string); +#endif + +/* GLUT pre-built models sub-API */ +extern void APIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks); +extern void APIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks); +extern void APIENTRY glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); +extern void APIENTRY glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); +extern void APIENTRY glutWireCube(GLdouble size); +extern void APIENTRY glutSolidCube(GLdouble size); +extern void APIENTRY glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); +extern void APIENTRY glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); +extern void APIENTRY glutWireDodecahedron(void); +extern void APIENTRY glutSolidDodecahedron(void); +extern void APIENTRY glutWireTeapot(GLdouble size); +extern void APIENTRY glutSolidTeapot(GLdouble size); +extern void APIENTRY glutWireOctahedron(void); +extern void APIENTRY glutSolidOctahedron(void); +extern void APIENTRY glutWireTetrahedron(void); +extern void APIENTRY glutSolidTetrahedron(void); +extern void APIENTRY glutWireIcosahedron(void); +extern void APIENTRY glutSolidIcosahedron(void); + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +/* GLUT video resize sub-API. */ +extern int APIENTRY glutVideoResizeGet(GLenum param); +extern void APIENTRY glutSetupVideoResizing(void); +extern void APIENTRY glutStopVideoResizing(void); +extern void APIENTRY glutVideoResize(int x, int y, int width, int height); +extern void APIENTRY glutVideoPan(int x, int y, int width, int height); + +/* GLUT debugging sub-API. */ +extern void APIENTRY glutReportErrors(void); +#endif + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +/* GLUT device control sub-API. */ +/* glutSetKeyRepeat modes. */ +#define GLUT_KEY_REPEAT_OFF 0 +#define GLUT_KEY_REPEAT_ON 1 +#define GLUT_KEY_REPEAT_DEFAULT 2 + +/* Joystick button masks. */ +#define GLUT_JOYSTICK_BUTTON_A 1 +#define GLUT_JOYSTICK_BUTTON_B 2 +#define GLUT_JOYSTICK_BUTTON_C 4 +#define GLUT_JOYSTICK_BUTTON_D 8 + +extern void APIENTRY glutIgnoreKeyRepeat(int ignore); +extern void APIENTRY glutSetKeyRepeat(int repeatMode); +extern void APIENTRY glutForceJoystickFunc(void); + +/* GLUT game mode sub-API. */ +/* glutGameModeGet. */ +#define GLUT_GAME_MODE_ACTIVE 0 +#define GLUT_GAME_MODE_POSSIBLE 1 +#define GLUT_GAME_MODE_WIDTH 2 +#define GLUT_GAME_MODE_HEIGHT 3 +#define GLUT_GAME_MODE_PIXEL_DEPTH 4 +#define GLUT_GAME_MODE_REFRESH_RATE 5 +#define GLUT_GAME_MODE_DISPLAY_CHANGED 6 + +extern void APIENTRY glutGameModeString(const char *string); +extern int APIENTRY glutEnterGameMode(void); +extern void APIENTRY glutLeaveGameMode(void); +extern int APIENTRY glutGameModeGet(GLenum mode); +#endif + +#ifdef __cplusplus +} + +#endif + +#ifdef GLUT_APIENTRY_DEFINED +# undef GLUT_APIENTRY_DEFINED +# undef APIENTRY +#endif + +#ifdef GLUT_WINGDIAPI_DEFINED +# undef GLUT_WINGDIAPI_DEFINED +# undef WINGDIAPI +#endif + +#endif /* __glut_h__ */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutbitmap.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutbitmap.h new file mode 100644 index 0000000..e29a016 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutbitmap.h @@ -0,0 +1,30 @@ +#ifndef __glutbitmap_h__ +#define __glutbitmap_h__ + +/* Copyright (c) Mark J. Kilgard, 1994. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#include "glut.h" + +typedef struct { + const GLsizei width; + const GLsizei height; + const GLfloat xorig; + const GLfloat yorig; + const GLfloat advance; + const GLubyte *bitmap; +} BitmapCharRec, *BitmapCharPtr; + +typedef struct { + const char *name; + const int num_chars; + const int first; + const BitmapCharRec * const *ch; +} BitmapFontRec, *BitmapFontPtr; + +typedef void *GLUTbitmapFont; + +#endif /* __glutbitmap_h__ */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutf90.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutf90.h new file mode 100644 index 0000000..f8a170b --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutf90.h @@ -0,0 +1,90 @@ +#ifndef __glutf90_h__ +#define __glutf90_h__ + +/* Copyright (c) Mark J. Kilgard & Willam F. Mitchell, 1998. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +/* This header provides the binding interface for William Mitchell's + f90gl Fortran 90 GLUT binding. Other GLUT language bindings + can and should use this interace. */ + +/* I appreciate the guidance from William Mitchell + (mitchell@cam.nist.gov) in developing this friend interface + for use by the f90gl package. See ../../README.fortran */ + +#include + +#ifndef GLUTCALLBACK + #define GLUTCALLBACK +#endif +#ifndef APIENTRY + #define APIENTRY +#endif + +/* Which callback enumerants for the __glutSetFCB/__glutGetFCB routines. */ +/* NOTE These values are part of a binary interface for the f90gl Fortran + 90 binding and so must NOT changes (additions are allowed). */ + +/* GLUTwindow callbacks. */ +#define GLUT_FCB_DISPLAY 0 /* GLUTdisplayFCB */ +#define GLUT_FCB_RESHAPE 1 /* GLUTreshapeFCB */ +#define GLUT_FCB_MOUSE 2 /* GLUTmouseFCB */ +#define GLUT_FCB_MOTION 3 /* GLUTmotionFCB */ +#define GLUT_FCB_PASSIVE 4 /* GLUTpassiveFCB */ +#define GLUT_FCB_ENTRY 5 /* GLUTentryFCB */ +#define GLUT_FCB_KEYBOARD 6 /* GLUTkeyboardFCB */ +#define GLUT_FCB_KEYBOARD_UP 7 /* GLUTkeyboardFCB */ +#define GLUT_FCB_WINDOW_STATUS 8 /* GLUTwindowStatusFCB */ +#define GLUT_FCB_VISIBILITY 9 /* GLUTvisibilityFCB */ +#define GLUT_FCB_SPECIAL 10 /* GLUTspecialFCB */ +#define GLUT_FCB_SPECIAL_UP 11 /* GLUTspecialFCB */ +#define GLUT_FCB_BUTTON_BOX 12 /* GLUTbuttonBoxFCB */ +#define GLUT_FCB_DIALS 13 /* GLUTdialsFCB */ +#define GLUT_FCB_SPACE_MOTION 14 /* GLUTspaceMotionFCB */ +#define GLUT_FCB_SPACE_ROTATE 15 /* GLUTspaceRotateFCB */ +#define GLUT_FCB_SPACE_BUTTON 16 /* GLUTspaceButtonFCB */ +#define GLUT_FCB_TABLET_MOTION 17 /* GLUTtabletMotionFCB */ +#define GLUT_FCB_TABLET_BUTTON 18 /* GLUTtabletButtonFCB */ +#define GLUT_FCB_JOYSTICK 19 /* GLUTjoystickFCB */ +#define GLUT_FCB_WMCLOSE 20 /* GLUTwmcloseFCB */ +/* Non-GLUTwindow callbacks. */ +#define GLUT_FCB_OVERLAY_DISPLAY 100 /* GLUTdisplayFCB */ +#define GLUT_FCB_SELECT 101 /* GLUTselectFCB */ +#define GLUT_FCB_TIMER 102 /* GLUTtimerFCB */ + +/* GLUT Fortran callback function types. */ +typedef void (GLUTCALLBACK *GLUTdisplayFCB) (void); +typedef void (GLUTCALLBACK *GLUTwmcloseFCB) (void); +typedef void (GLUTCALLBACK *GLUTreshapeFCB) (int *, int *); +/* NOTE the pressed key is int, not unsigned char for Fortran! */ +typedef void (GLUTCALLBACK *GLUTkeyboardFCB) (int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTmouseFCB) (int *, int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTmotionFCB) (int *, int *); +typedef void (GLUTCALLBACK *GLUTpassiveFCB) (int *, int *); +typedef void (GLUTCALLBACK *GLUTentryFCB) (int *); +typedef void (GLUTCALLBACK *GLUTwindowStatusFCB) (int *); +typedef void (GLUTCALLBACK *GLUTvisibilityFCB) (int *); +typedef void (GLUTCALLBACK *GLUTspecialFCB) (int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTbuttonBoxFCB) (int *, int *); +typedef void (GLUTCALLBACK *GLUTdialsFCB) (int *, int *); +typedef void (GLUTCALLBACK *GLUTspaceMotionFCB) (int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTspaceRotateFCB) (int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTspaceButtonFCB) (int *, int *); +typedef void (GLUTCALLBACK *GLUTtabletMotionFCB) (int *, int *); +typedef void (GLUTCALLBACK *GLUTtabletButtonFCB) (int *, int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTjoystickFCB) (unsigned int *buttonMask, int *x, int *y, int *z); + +typedef void (GLUTCALLBACK *GLUTselectFCB) (int *); +typedef void (GLUTCALLBACK *GLUTtimerFCB) (int *); +typedef void (GLUTCALLBACK *GLUTmenuStateFCB) (int *); /* DEPRICATED. */ +typedef void (GLUTCALLBACK *GLUTmenuStatusFCB) (int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTidleFCB) (void); + +/* Functions that set and return Fortran callback functions. */ +extern void* APIENTRY __glutGetFCB(int which); +extern void APIENTRY __glutSetFCB(int which, void *func); + +#endif /* __glutf90_h__ */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutstroke.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutstroke.h new file mode 100644 index 0000000..cbc9e15 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/glutstroke.h @@ -0,0 +1,42 @@ +#ifndef __glutstroke_h__ +#define __glutstroke_h__ + +/* Copyright (c) Mark J. Kilgard, 1994. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#if defined(_WIN32) +#pragma warning (disable:4244) /* disable bogus conversion warnings */ +#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ +#endif + +typedef struct { + float x; + float y; +} CoordRec, *CoordPtr; + +typedef struct { + int num_coords; + const CoordRec *coord; +} StrokeRec, *StrokePtr; + +typedef struct { + int num_strokes; + const StrokeRec *stroke; + float center; + float right; +} StrokeCharRec, *StrokeCharPtr; + +typedef struct { + const char *name; + int num_chars; + const StrokeCharRec *ch; + float top; + float bottom; +} StrokeFontRec, *StrokeFontPtr; + +typedef void *GLUTstrokeFont; + +#endif /* __glutstroke_h__ */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/gutil.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/gutil.h new file mode 100644 index 0000000..f7ffcf3 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/gutil.h @@ -0,0 +1,89 @@ + +/* + * gutil.h + * + * FUNCTION: + * Provide utilities that allow rotation to occur + * around any axis. + * + * HISTORY: + * created by Linas Vepstas 1990 + * added single & double precision, June 1991, Linas Vepstas + */ + +#ifndef __GUTIL_H__ +#define __GUTIL_H__ + +#ifdef __GUTIL_DOUBLE +#define gutDouble double +#else +#define gutDouble float +#endif + + +#ifdef _NO_PROTO /* NO ANSI C PROTOTYPING */ + +/* Rotation Utilities */ +extern void rot_axis_f (); +extern void rot_about_axis_f (); +extern void rot_omega_f (); +extern void urot_axis_f (); +extern void urot_about_axis_f (); +extern void urot_omega_f (); + +/* double-precision versions */ +extern void rot_axis_d (); +extern void rot_about_axis_d (); +extern void rot_omega_d (); +extern void urot_axis_d (); +extern void urot_about_axis_d (); +extern void urot_omega_d (); + +/* viewpoint functions */ +extern void uview_direction_d (); +extern void uview_direction_f (); +extern void uviewpoint_d (); +extern void uviewpoint_f (); + +#else /* _NO_PROTO */ /* ANSI C PROTOTYPING */ + +/* Rotation Utilities */ +extern void rot_axis_f (float omega, float axis[3]); +extern void rot_about_axis_f (float angle, float axis[3]); +extern void rot_omega_f (float axis[3]); +extern void urot_axis_f (float m[4][4], float omega, float axis[3]); +extern void urot_about_axis_f (float m[4][4], float angle, float axis[3]); +extern void urot_omega_f (float m[4][4], float axis[3]); + +/* double-precision versions */ +extern void rot_axis_d (double omega, double axis[3]); +extern void rot_about_axis_d (double angle, double axis[3]); +extern void rot_omega_d (double axis[3]); +extern void urot_axis_d (double m[4][4], double omega, double axis[3]); +extern void urot_about_axis_d (double m[4][4], double angle, double axis[3]); +extern void urot_omega_d (double m[4][4], double axis[3]); + +/* viewpoint functions */ +extern void uview_direction_d (double m[4][4], /* returned */ + double v21[3], /* input */ + double up[3]); /* input */ + +extern void uview_direction_f (float m[4][4], /* returned */ + float v21[3], /* input */ + float up[3]); /* input */ + +extern void uviewpoint_d (double m[4][4], /* returned */ + double v1[3], /* input */ + double v2[3], /* input */ + double up[3]); /* input */ + +extern void uviewpoint_f (float m[4][4], /* returned */ + float v1[3], /* input */ + float v2[3], /* input */ + float up[3]); /* input */ + +#endif /* _NO_PROTO */ + +#endif /* _GUTIL_H__ */ + +/* ------------------- end of file ---------------------- */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/intersect.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/intersect.h new file mode 100644 index 0000000..f5ff7a5 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/intersect.h @@ -0,0 +1,391 @@ +/* + * FUNCTION: + * This file contains a number of utilities useful to 3D graphics in + * general, and to the generation of tubing and extrusions in particular + * + * HISTORY: + * Written by Linas Vepstas, August 1991 + * Updated to correctly handle degenerate cases, Linas, February 1993 + */ + +#include +#include "port.h" +#include "vvector.h" + +#define BACKWARDS_INTERSECT (2) + +/* ========================================================== */ +/* + * the Degenerate_Tolerance token represents the greatest amount by + * which different scales in a graphics environment can differ before + * they should be considered "degenerate". That is, when one vector is + * a million times longer than another, changces are that the second will + * be less than a pixel int, and therefore was probably meant to be + * degenerate (by the CAD package, etc.) But what should this tolerance + * be? At least 1 in onethousand (since screen sizes are 1K pixels), but + * les than 1 in 4 million (since this is the limit of single-precision + * floating point accuracy). Of course, if double precision were used, + * then the tolerance could be increased. + * + * Potentially, this naive assumption could cause problems if the CAD + * package attempts to zoom in on small details, and turns out, certain + * points should not hvae been degenerate. The problem presented here + * is that the tolerance could run out before single-precision ran + * out, and so the CAD packages would perceive this as a "bug". + * One alternative is to fiddle around & try to tighten the tolerance. + * However, the right alternative is to code the graphics pipeline in + * double-precision (and tighten the tolerance). + * + * By the way, note that Degernate Tolerance is a "dimensionless" + * quantitiy -- it has no units -- it does not measure feet, inches, + * millimeters or pixels. It is used only in the computations of ratios + * and relative lengths. + */ + +/* + * Right now, the tolerance is set to 2 parts in a million, which + * corresponds to a 19-bit distinction of mantissas. Note that + * single-precsion numbers have 24 bit mantissas. + */ + +#define DEGENERATE_TOLERANCE (0.000002) + +/* ========================================================== */ +/* + * The macro and subroutine INTERSECT are designed to compute the + * intersection of a line (defined by the points v1 and v2) and a plane + * (defined as plane which is normal to the vector n, and contains the + * point p). Both return the point sect, which is the point of + * interesection. + * + * This MACRO attemps to be fairly robust by checking for a divide by + * zero. + */ + +/* ========================================================== */ +/* + * HACK ALERT + * The intersection parameter t has the nice property that if t>1, + * then the intersection is "in front of" p1, and if t<0, then the + * intersection is "behind" p2. Unfortunately, as the intersecting plane + * and the line become parallel, t wraps through infinity -- i.e. t can + * become so large that t becomes "greater than infinity" and comes back + * as a negative number (i.e. winding number hopped by one unit). We + * have no way of detecting this situation without adding gazzillions + * of lines of code of topological algebra to detect the winding number; + * and this would be incredibly difficult, and ruin performance. + * + * Thus, we've installed a cheap hack for use by the "cut style" drawing + * routines. If t proves to be a large negative number (more negative + * than -5), then we assume that t was positive and wound through + * infinity. This makes most cuts look good, without introducing bogus + * cuts at infinity. + */ +/* ========================================================== */ + +#define INTERSECT(sect,p,n,v1,v2) \ +{ \ + gleDouble deno, numer, t, omt; \ + \ + deno = (v1[0] - v2[0]) * n[0]; \ + deno += (v1[1] - v2[1]) * n[1]; \ + deno += (v1[2] - v2[2]) * n[2]; \ + \ + if (deno == 0.0) { \ + VEC_COPY (n, v1); \ + /* printf ("Intersect: Warning: line is coplanar with plane \n"); */ \ + } else { \ + \ + numer = (p[0] - v2[0]) * n[0]; \ + numer += (p[1] - v2[1]) * n[1]; \ + numer += (p[2] - v2[2]) * n[2]; \ + \ + t = numer / deno; \ + omt = 1.0 - t; \ + \ + sect[0] = t * v1[0] + omt * v2[0]; \ + sect[1] = t * v1[1] + omt * v2[1]; \ + sect[2] = t * v1[2] + omt * v2[2]; \ + } \ +} + +/* ========================================================== */ +/* + * The macro and subroutine BISECTING_PLANE compute a normal vector that + * describes the bisecting plane between three points (v1, v2 and v3). + * This bisecting plane has the following properties: + * 1) it contains the point v2 + * 2) the angle it makes with v21 == v2 - v1 is equal to the angle it + * makes with v32 == v3 - v2 + * 3) it is perpendicular to the plane defined by v1, v2, v3. + * + * Having input v1, v2, and v3, it returns a unit vector n. + * + * In some cases, the user may specify degenerate points, and still + * expect "reasonable" or "obvious" behaviour. The "expected" + * behaviour for these degenerate cases is: + * + * 1) if v1 == v2 == v3, then return n=0 + * 2) if v1 == v2, then return v32 (normalized). + * 3) if v2 == v3, then return v21 (normalized). + * 4) if v1, v2 and v3 co-linear, then return v21 (normalized). + * + * Mathematically, these special cases "make sense" -- we just have to + * code around potential divide-by-zero's in the code below. + */ + +/* ========================================================== */ + +#define BISECTING_PLANE(valid,n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + double len21, len32; \ + double vdot; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_LENGTH (len21, v21); \ + VEC_LENGTH (len32, v32); \ + \ + if (len21 <= DEGENERATE_TOLERANCE * len32) { \ + \ + if (len32 == 0.0) { \ + /* all three points lie ontop of one-another */ \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + /* return a normalized copy of v32 as bisector */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (n, len32, v32); \ + valid = TRUE; \ + } \ + \ + } else { \ + \ + valid = TRUE; \ + \ + if (len32 <= DEGENERATE_TOLERANCE * len21) { \ + /* return a normalized copy of v21 as bisector */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (n, len21, v21); \ + \ + } else { \ + \ + /* normalize v21 to be of unit length */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (v21, len21, v21); \ + \ + /* normalize v32 to be of unit length */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (v32, len32, v32); \ + \ + VEC_DOT_PRODUCT (vdot, v32, v21); \ + \ + /* if vdot == 1 or -1, then points are colinear */ \ + if ((vdot >= (1.0-DEGENERATE_TOLERANCE)) || \ + (vdot <= (-1.0+DEGENERATE_TOLERANCE))) { \ + VEC_COPY (n, v21); \ + } else { \ + \ + /* go do the full computation */ \ + n[0] = vdot * (v32[0] + v21[0]) - v32[0] - v21[0]; \ + n[1] = vdot * (v32[1] + v21[1]) - v32[1] - v21[1]; \ + n[2] = vdot * (v32[2] + v21[2]) - v32[2] - v21[2]; \ + \ + /* if above if-test's passed, \ + * n should NEVER be of zero length */ \ + VEC_NORMALIZE (n); \ + } \ + } \ + } \ +} + +/* ========================================================== */ +/* + * The block of code below is ifdef'd out, and is here for reference + * purposes only. It performs the "mathematically right thing" for + * computing a bisecting plane, but is, unfortunately, subject ot noise + * in the presence of near degenerate points. Since computer graphics, + * due to sloppy coding, laziness, or correctness, is filled with + * degenerate points, we can't really use this version. The code above + * is far more appropriate for graphics. + */ + +#ifdef MATHEMATICALLY_EXACT_GRAPHICALLY_A_KILLER +#define BISECTING_PLANE(n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + double len21, len32; \ + double vdot; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_LENGTH (len21, v21); \ + VEC_LENGTH (len32, v32); \ + \ + if (len21 == 0.0) { \ + \ + if (len32 == 0.0) { \ + /* all three points lie ontop of one-another */ \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + /* return a normalized copy of v32 as bisector */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (n, len32, v32); \ + } \ + \ + } else { \ + \ + /* normalize v21 to be of unit length */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (v21, len21, v21); \ + \ + if (len32 == 0.0) { \ + /* return a normalized copy of v21 as bisector */ \ + VEC_COPY (n, v21); \ + } else { \ + \ + /* normalize v32 to be of unit length */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (v32, len32, v32); \ + \ + VEC_DOT_PRODUCT (vdot, v32, v21); \ + \ + /* if vdot == 1 or -1, then points are colinear */ \ + if ((vdot == 1.0) || (vdot == -1.0)) { \ + VEC_COPY (n, v21); \ + } else { \ + \ + /* go do the full computation */ \ + n[0] = vdot * (v32[0] + v21[0]) - v32[0] - v21[0]; \ + n[1] = vdot * (v32[1] + v21[1]) - v32[1] - v21[1]; \ + n[2] = vdot * (v32[2] + v21[2]) - v32[2] - v21[2]; \ + \ + /* if above if-test's passed, \ + * n should NEVER be of zero length */ \ + VEC_NORMALIZE (n); \ + } \ + } \ + } \ +} +#endif + +/* ========================================================== */ +/* + * This macro computes the plane perpendicular to the the plane + * defined by three points, and whose normal vector is givven as the + * difference between the two vectors ... + * + * (See way below for the "math" model if you want to understand this. + * The comments about relative errors above apply here.) + */ + +#define CUTTING_PLANE(valid,n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + double len21, len32; \ + double lendiff; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_LENGTH (len21, v21); \ + VEC_LENGTH (len32, v32); \ + \ + if (len21 <= DEGENERATE_TOLERANCE * len32) { \ + \ + if (len32 == 0.0) { \ + /* all three points lie ontop of one-another */ \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + /* return a normalized copy of v32 as cut-vector */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (n, len32, v32); \ + valid = TRUE; \ + } \ + \ + } else { \ + \ + valid = TRUE; \ + \ + if (len32 <= DEGENERATE_TOLERANCE * len21) { \ + /* return a normalized copy of v21 as cut vector */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (n, len21, v21); \ + } else { \ + \ + /* normalize v21 to be of unit length */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (v21, len21, v21); \ + \ + /* normalize v32 to be of unit length */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (v32, len32, v32); \ + \ + VEC_DIFF (n, v21, v32); \ + VEC_LENGTH (lendiff, n); \ + \ + /* if the perp vector is very small, then the two \ + * vectors are darn near collinear, and the cut \ + * vector is probably poorly defined. */ \ + if (lendiff < DEGENERATE_TOLERANCE) { \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + lendiff = 1.0 / lendiff; \ + VEC_SCALE (n, lendiff, n); \ + } \ + } \ + } \ +} + +/* ========================================================== */ + +#ifdef MATHEMATICALLY_EXACT_GRAPHICALLY_A_KILLER +#define CUTTING_PLANE(n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_NORMALIZE (v21); \ + VEC_NORMALIZE (v32); \ + \ + VEC_DIFF (n, v21, v32); \ + VEC_NORMALIZE (n); \ +} +#endif + + +/* ============================================================ */ +/* This macro is used in several places to cycle through a series of + * points to find the next non-degenerate point in a series */ + +#define FIND_NON_DEGENERATE_POINT(inext,npoints,len,diff,point_array) \ +{ \ + gleDouble slen; \ + gleDouble summa[3]; \ + \ + do { \ + /* get distance to next point */ \ + VEC_DIFF (diff, point_array[inext+1], point_array[inext]); \ + VEC_LENGTH (len, diff); \ + VEC_SUM (summa, point_array[inext+1], point_array[inext]); \ + VEC_LENGTH (slen, summa); \ + slen *= DEGENERATE_TOLERANCE; \ + inext ++; \ + } while ((len <= slen) && (inext < npoints-1)); \ +} + +/* ========================================================== */ + +extern int bisecting_plane (gleDouble n[3], /* returned */ + gleDouble v1[3], /* input */ + gleDouble v2[3], /* input */ + gleDouble v3[3]); /* input */ + diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/port.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/port.h new file mode 100644 index 0000000..2827bbf --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/port.h @@ -0,0 +1,298 @@ + +/* + * port.h + * + * FUNCTION: + * This file contains defines for porting the tubing toolkit from GL to + * OpenGL to some callback scheme. + * + * HISTORY: + * Created by Linas Vepstas -- February 1993 + * Added auto texture coord generation hacks, Linas April 1994 + */ + +#ifndef __GLE_PORT_H__ +#define __GLE_PORT_H__ + + +#ifndef TRUE +#define TRUE 1 +#endif + +#ifndef FALSE +#define FALSE 0 +#endif + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +/* ====================================================== */ +/* Some compilers can't handle multiply-subscripted array's */ + +#ifdef FUNKY_C +typedef gleDouble gleVector; +#define AVAL(arr,n,i,j) arr(6*n+3*i+j) +#define VVAL(arr,n,i) arr(3*n+i) + +#else /* FUNKY_C */ +typedef double gleVector[3]; +typedef double glePoint[2]; +#define AVAL(arr,n,i,j) arr[n][i][j] +#define VVAL(arr,n,i) arr[n][i]; + +#endif /* FUNKY_C */ + +/* ====================================================== */ +/* These are used to convey info about topography to the + * texture mapping routines */ + +#define FRONT 1 +#define BACK 2 +#define FRONT_CAP 3 +#define BACK_CAP 4 +#define FILLET 5 + +/* ====================================================== */ + +#define __GLE_DOUBLE + +/* ====================================================== */ + +#ifdef __GLE_DOUBLE +#ifndef gleDouble + #define gleDouble double +#endif +#define urot_axis(a,b,c) urot_axis_d(a,b,c) +#define uview_direction(a,b,c) uview_direction_d(a,b,c) +#define uviewpoint(a,b,c,d) uviewpoint_d(a,b,c,d) +#define MULTMATRIX(m) MULTMATRIX_D(m) +#define LOADMATRIX(m) LOADMATRIX_D(m) +#define V3F(x,j,id) V3F_D(x,j,id) +#define N3F(x) N3F_D(x) +#define T2F(x,y) T2F_D(x,y) +#else +#define gleDouble float +#define urot_axis(a,b,c) urot_axis_f(a,b,c) +#define uview_direction(a,b,c) uview_direction_f(a,b,c) +#define uviewpoint(a,b,c,d) uviewpoint_f(a,b,c,d) +#define MULTMATRIX(m) MULTMATRIX_F(m) +#define LOADMATRIX(m) LOADMATRIX_F(m) +#define V3F(x,j,id) V3F_F(x,j,id) +#define N3F(x) N3F_F(x) +#define T2F(x,y) T2F_F(x,y) +#endif + +/* ====================================================== */ + +#if (defined DEBUG_GL_32 || DEBUG_OPENGL_10) +#undef GL_32 +#undef OPENGL_10 + +#define BGNTMESH(i,len) printf ("bgntmesh() \n"); +#define ENDTMESH() printf ("endtmesh() \n"); +#define BGNPOLYGON() printf ("bgnpolygon() \n"); +#define ENDPOLYGON() printf ("endpolygon() \n"); +#define V3F_F(x,j,id) printf ("v3f(x) %f %f %f \n", x[0], x[1], x[2]); +#define V3F_D(x,j,id) printf ("v3d(x) %f %f %f \n", x[0], x[1], x[2]); +#define N3F_F(x) printf ("n3f(x) %f %f %f \n", x[0], x[1], x[2]); +#define N3F_D(x) printf ("n3d(x) %f %f %f \n", x[0], x[1], x[2]); +#define C3F(x) printf ("c3f(x) %f %f %f \n", x[0], x[1], x[2]); + +#define POPMATRIX() printf ("popmatrix () \n"); +#define PUSHMATRIX() printf ("pushmatrix() \n"); +#define MULTMATRIX_F(x) MULTMATRIX_D(x) +#define LOADMATRIX_F(x) LOADMATRIX_D(x) + + +#define LOADMATRIX_D(x) { \ + int i, j; \ + printf ("loadmatrix (x) \n"); \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + printf ( "%f ", x[i][j]); \ + } \ + printf (" \n"); \ + } \ +} + +#define MULTMATRIX_D(x) { \ + int i, j; \ + printf ("multmatrix (x) \n"); \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + printf ( "%f ", x[i][j]); \ + } \ + printf (" \n"); \ + } \ +} + +#define __IS_LIGHTING_ON (1) + +#endif + +/* ====================================================== */ + +#ifdef GL_32 + +#include + +#define BGNTMESH(i,len) bgntmesh() +#define ENDTMESH() endtmesh() +#define BGNPOLYGON() bgnpolygon() +#define ENDPOLYGON() endpolygon() +#define V3F_F(x,j,id) v3f(x) +#define V3F_D(x,j,id) v3d(x) +#define N3F_F(x) n3f(x) +#define T2F_F(x,y) +#define T2F_D(x,y) +#define C3F(x) c3f(x) + +#define POPMATRIX() popmatrix () +#define PUSHMATRIX() pushmatrix() +#define MULTMATRIX_F(x) multmatrix (x) +#define LOADMATRIX_F(x) loadmatrix (x) + +#define N3F_D(x) { \ + float nnn[3]; \ + nnn[0] = (float) x[0]; \ + nnn[1] = (float) x[1]; \ + nnn[2] = (float) x[2]; \ + n3f (nnn); \ +} + +#define LOADMATRIX_D(x) { \ + int i, j; \ + float mmm[4][4]; \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + mmm[i][j] = (float) x[i][j]; \ + } \ + } \ + loadmatrix(mmm); \ +} + +#define MULTMATRIX_D(x) { \ + int i, j; \ + float mmm[4][4]; \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + mmm[i][j] = (float) x[i][j]; \ + } \ + } \ + multmatrix(mmm); \ +} + +/* #define __IS_LIGHTING_ON (MSINGLE == getmmode()) */ +#define __IS_LIGHTING_ON (extrusion_join_style & TUBE_LIGHTING_ON) + +#endif /* GL_32 */ + +/* ====================================================== */ +#ifdef OPENGL_10 + +#if defined(_WIN32) +#include +#pragma warning (disable:4244) /* disable bogus conversion warnings */ +#endif +#include +#include + +/* +#define N3F_F(x) { \ + float nnn[3]; \ + nnn[0] = - (float) x[0]; \ + nnn[1] = - (float) x[1]; \ + nnn[2] = - (float) x[2]; \ + glNormal3fv (nnn); \ +} +#define N3F_D(x) { \ + float nnn[3]; \ + nnn[0] = - (float) x[0]; \ + nnn[1] = - (float) x[1]; \ + nnn[2] = - (float) x[2]; \ + glNormal3fv (nnn); \ +} +*/ + +#define C3F(x) glColor3fv(x) +#define T2F_F(x,y) glTexCoord2f(x,y) +#define T2F_D(x,y) glTexCoord2d(x,y) + +#define POPMATRIX() glPopMatrix() +#define PUSHMATRIX() glPushMatrix() + +#define MULTMATRIX_F(x) glMultMatrixf ((const GLfloat *)x) +#define LOADMATRIX_F(x) glLoadMatrixf ((const GLfloat *)x) + +#define MULTMATRIX_D(x) glMultMatrixd ((const GLdouble *)x) +#define LOADMATRIX_D(x) glLoadMatrixd ((const GLdouble *)x) + +#define __IS_LIGHTING_ON (glIsEnabled(GL_LIGHTING)) + +/* ====================================================== */ +#ifdef AUTO_TEXTURE + +#define BGNTMESH(i,len) { \ + if(_gle_gc -> bgn_gen_texture) (*(_gle_gc -> bgn_gen_texture))(i,len);\ + glBegin (GL_TRIANGLE_STRIP); \ +} + +#define BGNPOLYGON() { \ + if(_gle_gc -> bgn_gen_texture) (*(_gle_gc -> bgn_gen_texture))();\ + glBegin (GL_POLYGON); \ +} + +#define N3F_F(x) { \ + if(_gle_gc -> n3f_gen_texture) (*(_gle_gc -> n3f_gen_texture))(x); \ + glNormal3fv(x); \ +} + +#define N3F_D(x) { \ + if(_gle_gc -> n3d_gen_texture) (*(_gle_gc -> n3d_gen_texture))(x); \ + glNormal3dv(x); \ +} + +#define V3F_F(x,j,id) { \ + if(_gle_gc -> v3f_gen_texture) (*(_gle_gc -> v3f_gen_texture))(x,j,id);\ + glVertex3fv(x); \ +} + +#define V3F_D(x,j,id) { \ + if(_gle_gc -> v3d_gen_texture) (*(_gle_gc -> v3d_gen_texture))(x,j,id); \ + glVertex3dv(x); \ +} + +#define ENDTMESH() { \ + if(_gle_gc -> end_gen_texture) (*(_gle_gc -> end_gen_texture))(); \ + glEnd (); \ +} + +#define ENDPOLYGON() { \ + if(_gle_gc -> end_gen_texture) (*(_gle_gc -> end_gen_texture))(); \ + glEnd (); \ +} + +/* ====================================================== */ +#else /* AUTO_TEXTURE */ + +#define BGNTMESH(i,len) glBegin (GL_TRIANGLE_STRIP); +#define BGNPOLYGON() glBegin (GL_POLYGON); + +#define N3F_F(x) glNormal3fv(x) +#define N3F_D(x) glNormal3dv(x) +#define V3F_F(x,j,id) glVertex3fv(x); +#define V3F_D(x,j,id) glVertex3dv(x); + +#define ENDTMESH() glEnd () +#define ENDPOLYGON() glEnd() + +#endif /* AUTO_TEXTURE */ + +#endif /* OPENGL_10 */ + +/* ====================================================== */ + + +#endif /* __GLE_PORT_H__ */ +/* ================== END OF FILE ======================= */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/rot.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/rot.h new file mode 100644 index 0000000..91083e9 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/rot.h @@ -0,0 +1,98 @@ + +/* + * rot.h + * + * FUNCTION: + * rotation matrix utilities + * + * HISTORY: + * Linas Vepstas Aug 1990 + */ + +/* ========================================================== */ +/* + * The MACROS below generate and return more traditional rotation + * matrices -- matrices for rotations about principal axes. + */ +/* ========================================================== */ + +#define ROTX_CS(m,cosine,sine) \ +{ \ + /* rotation about the x-axis */ \ + \ + m[0][0] = 1.0; \ + m[0][1] = 0.0; \ + m[0][2] = 0.0; \ + m[0][3] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = (cosine); \ + m[1][2] = (sine); \ + m[1][3] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = -(sine); \ + m[2][2] = (cosine); \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ + +#define ROTY_CS(m,cosine,sine) \ +{ \ + /* rotation about the y-axis */ \ + \ + m[0][0] = (cosine); \ + m[0][1] = 0.0; \ + m[0][2] = -(sine); \ + m[0][3] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = 1.0; \ + m[1][2] = 0.0; \ + m[1][3] = 0.0; \ + \ + m[2][0] = (sine); \ + m[2][1] = 0.0; \ + m[2][2] = (cosine); \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ + +#define ROTZ_CS(m,cosine,sine) \ +{ \ + /* rotation about the z-axis */ \ + \ + m[0][0] = (cosine); \ + m[0][1] = (sine); \ + m[0][2] = 0.0; \ + m[0][3] = 0.0; \ + \ + m[1][0] = -(sine); \ + m[1][1] = (cosine); \ + m[1][2] = 0.0; \ + m[1][3] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = 0.0; \ + m[2][2] = 1.0; \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/segment.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/segment.h new file mode 100644 index 0000000..8d1cf04 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/segment.h @@ -0,0 +1,98 @@ + +/* + * MODULE: segment.h + * + * FUNCTION: + * Contains function prototypes for segment drawing subroutines. + * These are used only internally, and are not to be exported to + * the user. + * + * HISTORY: + * Create by Linas Vepstas + * Added tube.h include to define gleDouble, tad February 2002 + */ + +/* ============================================================ */ + +#include "tube.h" + +extern void draw_segment_plain (int ncp, /* number of contour points */ + gleDouble front_contour[][3], + gleDouble back_contour[][3], + int inext, double len); + +extern void draw_segment_color (int ncp, /* number of contour points */ + gleDouble front_contour[][3], + gleDouble back_contour[][3], + float color_last[3], + float color_next[3], + int inext, double len); + +extern void draw_segment_edge_n (int ncp, /* number of contour points */ + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + int inext, double len); + +extern void draw_segment_c_and_edge_n (int ncp, + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + float color_last[3], + float color_next[3], + int inext, double len); + +extern void draw_segment_facet_n (int ncp, + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + int inext, double len); + +extern void draw_segment_c_and_facet_n (int ncp, + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + float color_last[3], + float color_next[3], + int inext, double len); + +/* ============================================================ */ + +extern void draw_binorm_segment_edge_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + int inext, double len); + +extern void draw_binorm_segment_c_and_edge_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + float color_last[3], + float color_next[3], + int inext, double len); + +extern void draw_binorm_segment_facet_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + int inext, double len); + +extern void draw_binorm_segment_c_and_facet_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + float color_last[3], + float color_next[3], + int inext, double len); + +extern void draw_angle_style_back_cap (int ncp, /* number of contour points */ + gleDouble bi[3], /* biscetor */ + gleDouble point_array[][3]); /* polyline */ + +/* -------------------------- end of file -------------------------------- */ + diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube.h new file mode 100644 index 0000000..c303e19 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube.h @@ -0,0 +1,203 @@ +/* + * tube.h + * + * FUNCTION: + * Tubing and Extrusion header file. + * This file provides protypes and defines for the extrusion + * and tubing primitives. + * + * HISTORY: + * Linas Vepstas 1990, 1991 + */ + +#ifndef __TUBE_H__ +#define __TUBE_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + GLE API revision history: + + GLE_API_VERSION is updated to reflect GLE API changes (interface + changes, semantic changes, deletions, or additions). + + GLE_API_VERSION=228 GLUT 3.7 release of GLE. +**/ +#ifndef GLE_API_VERSION /* allow this to be overriden */ +#define GLE_API_VERSION 228 +#endif + +/* some types */ +#ifndef gleDouble + #define gleDouble double +#endif +typedef gleDouble gleAffine[2][3]; + +/* ====================================================== */ + +/* defines for tubing join styles */ +#define TUBE_JN_RAW 0x1 +#define TUBE_JN_ANGLE 0x2 +#define TUBE_JN_CUT 0x3 +#define TUBE_JN_ROUND 0x4 +#define TUBE_JN_MASK 0xf /* mask bits */ +#define TUBE_JN_CAP 0x10 + +/* determine how normal vectors are to be handled */ +#define TUBE_NORM_FACET 0x100 +#define TUBE_NORM_EDGE 0x200 +#define TUBE_NORM_PATH_EDGE 0x400 /* for spiral, lathe, helix primitives */ +#define TUBE_NORM_MASK 0xf00 /* mask bits */ + +/* closed or open countours */ +#define TUBE_CONTOUR_CLOSED 0x1000 + +#define GLE_TEXTURE_ENABLE 0x10000 +#define GLE_TEXTURE_STYLE_MASK 0xff +#define GLE_TEXTURE_VERTEX_FLAT 1 +#define GLE_TEXTURE_NORMAL_FLAT 2 +#define GLE_TEXTURE_VERTEX_CYL 3 +#define GLE_TEXTURE_NORMAL_CYL 4 +#define GLE_TEXTURE_VERTEX_SPH 5 +#define GLE_TEXTURE_NORMAL_SPH 6 +#define GLE_TEXTURE_VERTEX_MODEL_FLAT 7 +#define GLE_TEXTURE_NORMAL_MODEL_FLAT 8 +#define GLE_TEXTURE_VERTEX_MODEL_CYL 9 +#define GLE_TEXTURE_NORMAL_MODEL_CYL 10 +#define GLE_TEXTURE_VERTEX_MODEL_SPH 11 +#define GLE_TEXTURE_NORMAL_MODEL_SPH 12 + +#ifdef GL_32 +/* HACK for GL 3.2 -- needed because no way to tell if lighting is on. */ +#define TUBE_LIGHTING_ON 0x80000000 + +#define gleExtrusion extrusion +#define gleSetJoinStyle setjoinstyle +#define gleGetJoinStyle getjoinstyle +#define glePolyCone polycone +#define glePolyCylinder polycylinder +#define gleSuperExtrusion super_extrusion +#define gleTwistExtrusion twist_extrusion +#define gleSpiral spiral +#define gleLathe lathe +#define gleHelicoid helicoid +#define gleToroid toroid +#define gleScrew screw + +#endif /* GL_32 */ + +extern int gleGetJoinStyle (void); +extern void gleSetJoinStyle (int style); /* bitwise OR of flags */ +extern int gleGetNumSlices(void); +extern void gleSetNumSlices(int slices); + +/* draw polyclinder, specified as a polyline */ +extern void glePolyCylinder (int npoints, /* num points in polyline */ + gleDouble point_array[][3], /* polyline vertces */ + float color_array[][3], /* colors at polyline verts */ + gleDouble radius); /* radius of polycylinder */ + +/* draw polycone, specified as a polyline with radii */ +extern void glePolyCone (int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3], /* colors at polyline verts */ + gleDouble radius_array[]); /* cone radii at polyline verts */ + +/* extrude arbitrary 2D contour along arbitrary 3D path */ +extern void gleExtrusion (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3]); /* colors at polyline verts */ + +/* extrude 2D contour, specifying local rotations (twists) */ +extern void gleTwistExtrusion (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3], /* color at polyline verts */ + gleDouble twist_array[]); /* countour twists (in degrees) */ + +/* extrude 2D contour, specifying local affine tranformations */ +extern void gleSuperExtrusion (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3], /* color at polyline verts */ + gleDouble xform_array[][2][3]); /* 2D contour xforms */ + +/* spiral moves contour along helical path by parallel transport */ +extern void gleSpiral (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta); /* degrees to spiral around */ + +/* lathe moves contour along helical path by helically shearing 3D space */ +extern void gleLathe (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta); /* degrees to spiral around */ + +/* similar to spiral, except contour is a circle */ +extern void gleHelicoid (gleDouble rToroid, /* circle contour (torus) radius */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta); /* degrees to spiral around */ + +/* similar to lathe, except contour is a circle */ +extern void gleToroid (gleDouble rToroid, /* circle contour (torus) radius */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta); /* degrees to spiral around */ + +/* draws a screw shape */ +extern void gleScrew (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + gleDouble startz, /* start of segment */ + gleDouble endz, /* end of segment */ + gleDouble twist); /* number of rotations */ + +extern void gleTextureMode (int mode); + +#ifdef __cplusplus +} + +#endif +#endif /* __TUBE_H__ */ +/* ================== END OF FILE ======================= */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube_gc.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube_gc.h new file mode 100644 index 0000000..ccd2853 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/tube_gc.h @@ -0,0 +1,78 @@ + +/* + * tube_gc.h + * + * FUNCTION: + * This file allows for easy changes to changes in the way the extrusion + * library handles state info (i.e. context). + * + * HISTORY: + * Linas Vepstas --- February 1993 + * Added auto texture coord generation hacks, Linas April 1994 + * Added tube.h include to define gleDouble, tad February 2002 + */ + +#include "tube.h" +#include "port.h" /* for gleVector */ + +typedef float gleColor[3]; +typedef double gleTwoVec[2]; + +typedef struct { + + /* public methods */ + void (*bgn_gen_texture) (int, double); + void (*n3f_gen_texture) (float *); + void (*n3d_gen_texture) (double *); + void (*v3f_gen_texture) (float *, int, int); + void (*v3d_gen_texture) (double *, int, int); + void (*end_gen_texture) (void); + + /* protected members -- "general knowledge" stuff */ + int join_style; + + /* arguments passed into extrusion code */ + int ncp; /* number of contour points */ + gleTwoVec *contour; /* 2D contour */ + gleTwoVec *cont_normal; /* 2D contour normals */ + gleDouble *up; /* up vector */ + int npoints; /* number of points in polyline */ + gleVector *point_array; /* path */ + gleColor *color_array; /* path colors */ + gleAffine *xform_array; /* contour xforms */ + + /* private members, used by texturing code */ + int num_vert; + int segment_number; + double segment_length; + double accum_seg_len; + double prev_x; + double prev_y; + + void (*save_bgn_gen_texture) (int, double); + void (*save_n3f_gen_texture) (float *); + void (*save_n3d_gen_texture) (double *); + void (*save_v3f_gen_texture) (float *, int, int); + void (*save_v3d_gen_texture) (double *, int, int); + void (*save_end_gen_texture) (void); + +} gleGC; + +extern gleGC *_gle_gc; +extern gleGC * gleCreateGC (void); + +#define INIT_GC() {if (!_gle_gc) _gle_gc = gleCreateGC(); } +#define extrusion_join_style (_gle_gc->join_style) + +#define __TUBE_CLOSE_CONTOUR (extrusion_join_style & TUBE_CONTOUR_CLOSED) +#define __TUBE_DRAW_CAP (extrusion_join_style & TUBE_JN_CAP) +#define __TUBE_DRAW_FACET_NORMALS (extrusion_join_style & TUBE_NORM_FACET) +#define __TUBE_DRAW_PATH_EDGE_NORMALS (extrusion_join_style & TUBE_NORM_PATH_EDGE) + +#define __TUBE_STYLE (extrusion_join_style & TUBE_JN_MASK) +#define __TUBE_RAW_JOIN (extrusion_join_style & TUBE_JN_RAW) +#define __TUBE_CUT_JOIN (extrusion_join_style & TUBE_JN_CUT) +#define __TUBE_ANGLE_JOIN (extrusion_join_style & TUBE_JN_ANGLE) +#define __TUBE_ROUND_JOIN (extrusion_join_style & TUBE_JN_ROUND) + +/* ======================= END OF FILE ========================== */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/vvector.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/vvector.h new file mode 100644 index 0000000..b58dcd6 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Headers/vvector.h @@ -0,0 +1,1339 @@ + +/* + * vvector.h + * + * FUNCTION: + * This file contains a number of utilities useful for handling + * 3D vectors + * + * HISTORY: + * Written by Linas Vepstas, August 1991 + * Added 2D code, March 1993 + * Added Outer products, C++ proofed, Linas Vepstas October 1993 + */ + +#ifndef __GUTIL_VECTOR_H__ +#define __GUTIL_VECTOR_H__ + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + + +#include +#include "port.h" + +/* ========================================================== */ +/* Zero out a 2D vector */ + +#define VEC_ZERO_2(a) \ +{ \ + (a)[0] = (a)[1] = 0.0; \ +} + +/* ========================================================== */ +/* Zero out a 3D vector */ + +#define VEC_ZERO(a) \ +{ \ + (a)[0] = (a)[1] = (a)[2] = 0.0; \ +} + +/* ========================================================== */ +/* Zero out a 4D vector */ + +#define VEC_ZERO_4(a) \ +{ \ + (a)[0] = (a)[1] = (a)[2] = (a)[3] = 0.0; \ +} + +/* ========================================================== */ +/* Vector copy */ + +#define VEC_COPY_2(b,a) \ +{ \ + (b)[0] = (a)[0]; \ + (b)[1] = (a)[1]; \ +} + +/* ========================================================== */ +/* Copy 3D vector */ + +#define VEC_COPY(b,a) \ +{ \ + (b)[0] = (a)[0]; \ + (b)[1] = (a)[1]; \ + (b)[2] = (a)[2]; \ +} + +/* ========================================================== */ +/* Copy 4D vector */ + +#define VEC_COPY_4(b,a) \ +{ \ + (b)[0] = (a)[0]; \ + (b)[1] = (a)[1]; \ + (b)[2] = (a)[2]; \ + (b)[3] = (a)[3]; \ +} + +/* ========================================================== */ +/* Vector difference */ + +#define VEC_DIFF_2(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] - (v1)[0]; \ + (v21)[1] = (v2)[1] - (v1)[1]; \ +} + +/* ========================================================== */ +/* Vector difference */ + +#define VEC_DIFF(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] - (v1)[0]; \ + (v21)[1] = (v2)[1] - (v1)[1]; \ + (v21)[2] = (v2)[2] - (v1)[2]; \ +} + +/* ========================================================== */ +/* Vector difference */ + +#define VEC_DIFF_4(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] - (v1)[0]; \ + (v21)[1] = (v2)[1] - (v1)[1]; \ + (v21)[2] = (v2)[2] - (v1)[2]; \ + (v21)[3] = (v2)[3] - (v1)[3]; \ +} + +/* ========================================================== */ +/* Vector sum */ + +#define VEC_SUM_2(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] + (v1)[0]; \ + (v21)[1] = (v2)[1] + (v1)[1]; \ +} + +/* ========================================================== */ +/* Vector sum */ + +#define VEC_SUM(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] + (v1)[0]; \ + (v21)[1] = (v2)[1] + (v1)[1]; \ + (v21)[2] = (v2)[2] + (v1)[2]; \ +} + +/* ========================================================== */ +/* Vector sum */ + +#define VEC_SUM_4(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] + (v1)[0]; \ + (v21)[1] = (v2)[1] + (v1)[1]; \ + (v21)[2] = (v2)[2] + (v1)[2]; \ + (v21)[3] = (v2)[3] + (v1)[3]; \ +} + +/* ========================================================== */ +/* scalar times vector */ + +#define VEC_SCALE_2(c,a,b) \ +{ \ + (c)[0] = (a)*(b)[0]; \ + (c)[1] = (a)*(b)[1]; \ +} + +/* ========================================================== */ +/* scalar times vector */ + +#define VEC_SCALE(c,a,b) \ +{ \ + (c)[0] = (a)*(b)[0]; \ + (c)[1] = (a)*(b)[1]; \ + (c)[2] = (a)*(b)[2]; \ +} + +/* ========================================================== */ +/* scalar times vector */ + +#define VEC_SCALE_4(c,a,b) \ +{ \ + (c)[0] = (a)*(b)[0]; \ + (c)[1] = (a)*(b)[1]; \ + (c)[2] = (a)*(b)[2]; \ + (c)[3] = (a)*(b)[3]; \ +} + +/* ========================================================== */ +/* accumulate scaled vector */ + +#define VEC_ACCUM_2(c,a,b) \ +{ \ + (c)[0] += (a)*(b)[0]; \ + (c)[1] += (a)*(b)[1]; \ +} + +/* ========================================================== */ +/* accumulate scaled vector */ + +#define VEC_ACCUM(c,a,b) \ +{ \ + (c)[0] += (a)*(b)[0]; \ + (c)[1] += (a)*(b)[1]; \ + (c)[2] += (a)*(b)[2]; \ +} + +/* ========================================================== */ +/* accumulate scaled vector */ + +#define VEC_ACCUM_4(c,a,b) \ +{ \ + (c)[0] += (a)*(b)[0]; \ + (c)[1] += (a)*(b)[1]; \ + (c)[2] += (a)*(b)[2]; \ + (c)[3] += (a)*(b)[3]; \ +} + +/* ========================================================== */ +/* Vector dot product */ + +#define VEC_DOT_PRODUCT_2(c,a,b) \ +{ \ + c = (a)[0]*(b)[0] + (a)[1]*(b)[1]; \ +} + +/* ========================================================== */ +/* Vector dot product */ + +#define VEC_DOT_PRODUCT(c,a,b) \ +{ \ + c = (a)[0]*(b)[0] + (a)[1]*(b)[1] + (a)[2]*(b)[2]; \ +} + +/* ========================================================== */ +/* Vector dot product */ + +#define VEC_DOT_PRODUCT_4(c,a,b) \ +{ \ + c = (a)[0]*(b)[0] + (a)[1]*(b)[1] + (a)[2]*(b)[2] + (a)[3]*(b)[3] ; \ +} + +/* ========================================================== */ +/* vector impact parameter (squared) */ + +#define VEC_IMPACT_SQ(bsq,direction,position) \ +{ \ + gleDouble vlen, llel; \ + VEC_DOT_PRODUCT (vlen, position, position); \ + VEC_DOT_PRODUCT (llel, direction, position); \ + bsq = vlen - llel*llel; \ +} + +/* ========================================================== */ +/* vector impact parameter */ + +#define VEC_IMPACT(bsq,direction,position) \ +{ \ + VEC_IMPACT_SQ(bsq,direction,position); \ + bsq = sqrt (bsq); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_LENGTH_2(vlen,a) \ +{ \ + vlen = a[0]*a[0] + a[1]*a[1]; \ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_LENGTH(vlen,a) \ +{ \ + vlen = (a)[0]*(a)[0] + (a)[1]*(a)[1]; \ + vlen += (a)[2]*(a)[2]; \ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_LENGTH_4(vlen,a) \ +{ \ + vlen = (a)[0]*(a)[0] + (a)[1]*(a)[1]; \ + vlen += (a)[2]*(a)[2]; \ + vlen += (a)[3] * (a)[3]; \ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* distance between two points */ + +#define VEC_DISTANCE(vlen,va,vb) \ +{ \ + gleDouble tmp[4]; \ + VEC_DIFF (tmp, vb, va); \ + VEC_LENGTH (vlen, tmp); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_CONJUGATE_LENGTH(vlen,a) \ +{ \ + vlen = 1.0 - a[0]*a[0] - a[1]*a[1] - a[2]*a[2];\ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_NORMALIZE(a) \ +{ \ + double vlen; \ + VEC_LENGTH (vlen,a); \ + if (vlen != 0.0) { \ + vlen = 1.0 / vlen; \ + a[0] *= vlen; \ + a[1] *= vlen; \ + a[2] *= vlen; \ + } \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_RENORMALIZE(a,newlen) \ +{ \ + double vlen; \ + VEC_LENGTH (vlen,a); \ + if (vlen != 0.0) { \ + vlen = newlen / vlen; \ + a[0] *= vlen; \ + a[1] *= vlen; \ + a[2] *= vlen; \ + } \ +} + +/* ========================================================== */ +/* 3D Vector cross product yeilding vector */ + +#define VEC_CROSS_PRODUCT(c,a,b) \ +{ \ + c[0] = (a)[1] * (b)[2] - (a)[2] * (b)[1]; \ + c[1] = (a)[2] * (b)[0] - (a)[0] * (b)[2]; \ + c[2] = (a)[0] * (b)[1] - (a)[1] * (b)[0]; \ +} + +/* ========================================================== */ +/* Vector perp -- assumes that n is of unit length + * accepts vector v, subtracts out any component parallel to n */ + +#define VEC_PERP(vp,v,n) \ +{ \ + double vdot; \ + \ + VEC_DOT_PRODUCT (vdot, v, n); \ + vp[0] = (v)[0] - (vdot) * (n)[0]; \ + vp[1] = (v)[1] - (vdot) * (n)[1]; \ + vp[2] = (v)[2] - (vdot) * (n)[2]; \ +} + +/* ========================================================== */ +/* Vector parallel -- assumes that n is of unit length + * accepts vector v, subtracts out any component perpendicular to n */ + +#define VEC_PARALLEL(vp,v,n) \ +{ \ + double vdot; \ + \ + VEC_DOT_PRODUCT (vdot, v, n); \ + vp[0] = (vdot) * (n)[0]; \ + vp[1] = (vdot) * (n)[1]; \ + vp[2] = (vdot) * (n)[2]; \ +} + +/* ========================================================== */ +/* Vector reflection -- assumes n is of unit length */ +/* Takes vector v, reflects it against reflector n, and returns vr */ + +#define VEC_REFLECT(vr,v,n) \ +{ \ + double vdot; \ + \ + VEC_DOT_PRODUCT (vdot, v, n); \ + vr[0] = (v)[0] - 2.0 * (vdot) * (n)[0]; \ + vr[1] = (v)[1] - 2.0 * (vdot) * (n)[1]; \ + vr[2] = (v)[2] - 2.0 * (vdot) * (n)[2]; \ +} + +/* ========================================================== */ +/* Vector blending */ +/* Takes two vectors a, b, blends them together */ + +#define VEC_BLEND(vr,sa,a,sb,b) \ +{ \ + \ + vr[0] = (sa) * (a)[0] + (sb) * (b)[0]; \ + vr[1] = (sa) * (a)[1] + (sb) * (b)[1]; \ + vr[2] = (sa) * (a)[2] + (sb) * (b)[2]; \ +} + +/* ========================================================== */ +/* Vector print */ + +#define VEC_PRINT_2(a) \ +{ \ + double vlen; \ + VEC_LENGTH_2 (vlen, a); \ + printf (" a is %f %f length of a is %f \n", a[0], a[1], vlen); \ +} + +/* ========================================================== */ +/* Vector print */ + +#define VEC_PRINT(a) \ +{ \ + double vlen; \ + VEC_LENGTH (vlen, (a)); \ + printf (" a is %f %f %f length of a is %f \n", (a)[0], (a)[1], (a)[2], vlen); \ +} + +/* ========================================================== */ +/* Vector print */ + +#define VEC_PRINT_4(a) \ +{ \ + double vlen; \ + VEC_LENGTH_4 (vlen, (a)); \ + printf (" a is %f %f %f %f length of a is %f \n", \ + (a)[0], (a)[1], (a)[2], (a)[3], vlen); \ +} + +/* ========================================================== */ +/* print matrix */ + +#define MAT_PRINT_4X4(mmm) { \ + int i,j; \ + printf ("matrix mmm is \n"); \ + if (mmm == NULL) { \ + printf (" Null \n"); \ + } else { \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + printf ("%f ", mmm[i][j]); \ + } \ + printf (" \n"); \ + } \ + } \ +} + +/* ========================================================== */ +/* print matrix */ + +#define MAT_PRINT_3X3(mmm) { \ + int i,j; \ + printf ("matrix mmm is \n"); \ + if (mmm == NULL) { \ + printf (" Null \n"); \ + } else { \ + for (i=0; i<3; i++) { \ + for (j=0; j<3; j++) { \ + printf ("%f ", mmm[i][j]); \ + } \ + printf (" \n"); \ + } \ + } \ +} + +/* ========================================================== */ +/* print matrix */ + +#define MAT_PRINT_2X3(mmm) { \ + int i,j; \ + printf ("matrix mmm is \n"); \ + if (mmm == NULL) { \ + printf (" Null \n"); \ + } else { \ + for (i=0; i<2; i++) { \ + for (j=0; j<3; j++) { \ + printf ("%f ", mmm[i][j]); \ + } \ + printf (" \n"); \ + } \ + } \ +} + +/* ========================================================== */ +/* initialize matrix */ + +#define IDENTIFY_MATRIX_3X3(m) \ +{ \ + m[0][0] = 1.0; \ + m[0][1] = 0.0; \ + m[0][2] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = 1.0; \ + m[1][2] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = 0.0; \ + m[2][2] = 1.0; \ +} + +/* ========================================================== */ +/* initialize matrix */ + +#define IDENTIFY_MATRIX_4X4(m) \ +{ \ + m[0][0] = 1.0; \ + m[0][1] = 0.0; \ + m[0][2] = 0.0; \ + m[0][3] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = 1.0; \ + m[1][2] = 0.0; \ + m[1][3] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = 0.0; \ + m[2][2] = 1.0; \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_2X2(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_2X3(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + b[0][2] = a[0][2]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[1][2]; \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_3X3(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + b[0][2] = a[0][2]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[1][2]; \ + \ + b[2][0] = a[2][0]; \ + b[2][1] = a[2][1]; \ + b[2][2] = a[2][2]; \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_4X4(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + b[0][2] = a[0][2]; \ + b[0][3] = a[0][3]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[1][2]; \ + b[1][3] = a[1][3]; \ + \ + b[2][0] = a[2][0]; \ + b[2][1] = a[2][1]; \ + b[2][2] = a[2][2]; \ + b[2][3] = a[2][3]; \ + \ + b[3][0] = a[3][0]; \ + b[3][1] = a[3][1]; \ + b[3][2] = a[3][2]; \ + b[3][3] = a[3][3]; \ +} + +/* ========================================================== */ +/* matrix transpose */ + +#define TRANSPOSE_MATRIX_2X2(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[1][0]; \ + \ + b[1][0] = a[0][1]; \ + b[1][1] = a[1][1]; \ +} + +/* ========================================================== */ +/* matrix transpose */ + +#define TRANSPOSE_MATRIX_3X3(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[1][0]; \ + b[0][2] = a[2][0]; \ + \ + b[1][0] = a[0][1]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[2][1]; \ + \ + b[2][0] = a[0][2]; \ + b[2][1] = a[1][2]; \ + b[2][2] = a[2][2]; \ +} + +/* ========================================================== */ +/* matrix transpose */ + +#define TRANSPOSE_MATRIX_4X4(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[1][0]; \ + b[0][2] = a[2][0]; \ + b[0][3] = a[3][0]; \ + \ + b[1][0] = a[0][1]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[2][1]; \ + b[1][3] = a[3][1]; \ + \ + b[2][0] = a[0][2]; \ + b[2][1] = a[1][2]; \ + b[2][2] = a[2][2]; \ + b[2][3] = a[3][2]; \ + \ + b[3][0] = a[0][3]; \ + b[3][1] = a[1][3]; \ + b[3][2] = a[2][3]; \ + b[3][3] = a[3][3]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define SCALE_MATRIX_2X2(b,s,a) \ +{ \ + b[0][0] = (s) * a[0][0]; \ + b[0][1] = (s) * a[0][1]; \ + \ + b[1][0] = (s) * a[1][0]; \ + b[1][1] = (s) * a[1][1]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define SCALE_MATRIX_3X3(b,s,a) \ +{ \ + b[0][0] = (s) * a[0][0]; \ + b[0][1] = (s) * a[0][1]; \ + b[0][2] = (s) * a[0][2]; \ + \ + b[1][0] = (s) * a[1][0]; \ + b[1][1] = (s) * a[1][1]; \ + b[1][2] = (s) * a[1][2]; \ + \ + b[2][0] = (s) * a[2][0]; \ + b[2][1] = (s) * a[2][1]; \ + b[2][2] = (s) * a[2][2]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define SCALE_MATRIX_4X4(b,s,a) \ +{ \ + b[0][0] = (s) * a[0][0]; \ + b[0][1] = (s) * a[0][1]; \ + b[0][2] = (s) * a[0][2]; \ + b[0][3] = (s) * a[0][3]; \ + \ + b[1][0] = (s) * a[1][0]; \ + b[1][1] = (s) * a[1][1]; \ + b[1][2] = (s) * a[1][2]; \ + b[1][3] = (s) * a[1][3]; \ + \ + b[2][0] = (s) * a[2][0]; \ + b[2][1] = (s) * a[2][1]; \ + b[2][2] = (s) * a[2][2]; \ + b[2][3] = (s) * a[2][3]; \ + \ + b[3][0] = s * a[3][0]; \ + b[3][1] = s * a[3][1]; \ + b[3][2] = s * a[3][2]; \ + b[3][3] = s * a[3][3]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define ACCUM_SCALE_MATRIX_2X2(b,s,a) \ +{ \ + b[0][0] += (s) * a[0][0]; \ + b[0][1] += (s) * a[0][1]; \ + \ + b[1][0] += (s) * a[1][0]; \ + b[1][1] += (s) * a[1][1]; \ +} + +/* +========================================================== */ +/* multiply matrix by scalar */ + +#define ACCUM_SCALE_MATRIX_3X3(b,s,a) \ +{ \ + b[0][0] += (s) * a[0][0]; \ + b[0][1] += (s) * a[0][1]; \ + b[0][2] += (s) * a[0][2]; \ + \ + b[1][0] += (s) * a[1][0]; \ + b[1][1] += (s) * a[1][1]; \ + b[1][2] += (s) * a[1][2]; \ + \ + b[2][0] += (s) * a[2][0]; \ + b[2][1] += (s) * a[2][1]; \ + b[2][2] += (s) * a[2][2]; \ +} + +/* +========================================================== */ +/* multiply matrix by scalar */ + +#define ACCUM_SCALE_MATRIX_4X4(b,s,a) \ +{ \ + b[0][0] += (s) * a[0][0]; \ + b[0][1] += (s) * a[0][1]; \ + b[0][2] += (s) * a[0][2]; \ + b[0][3] += (s) * a[0][3]; \ + \ + b[1][0] += (s) * a[1][0]; \ + b[1][1] += (s) * a[1][1]; \ + b[1][2] += (s) * a[1][2]; \ + b[1][3] += (s) * a[1][3]; \ + \ + b[2][0] += (s) * a[2][0]; \ + b[2][1] += (s) * a[2][1]; \ + b[2][2] += (s) * a[2][2]; \ + b[2][3] += (s) * a[2][3]; \ + \ + b[3][0] += (s) * a[3][0]; \ + b[3][1] += (s) * a[3][1]; \ + b[3][2] += (s) * a[3][2]; \ + b[3][3] += (s) * a[3][3]; \ +} + +/* +========================================================== */ +/* matrix product */ +/* c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/ + +#define MATRIX_PRODUCT_2X2(c,a,b) \ +{ \ + c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]; \ + c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]; \ + \ + c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]; \ + c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]; \ + \ +} + +/* ========================================================== */ +/* matrix product */ +/* c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/ + +#define MATRIX_PRODUCT_3X3(c,a,b) \ +{ \ + c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]+a[0][2]*b[2][0]; \ + c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]+a[0][2]*b[2][1]; \ + c[0][2] = a[0][0]*b[0][2]+a[0][1]*b[1][2]+a[0][2]*b[2][2]; \ + \ + c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]+a[1][2]*b[2][0]; \ + c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]+a[1][2]*b[2][1]; \ + c[1][2] = a[1][0]*b[0][2]+a[1][1]*b[1][2]+a[1][2]*b[2][2]; \ + \ + c[2][0] = a[2][0]*b[0][0]+a[2][1]*b[1][0]+a[2][2]*b[2][0]; \ + c[2][1] = a[2][0]*b[0][1]+a[2][1]*b[1][1]+a[2][2]*b[2][1]; \ + c[2][2] = a[2][0]*b[0][2]+a[2][1]*b[1][2]+a[2][2]*b[2][2]; \ +} + +/* ========================================================== */ +/* matrix product */ +/* c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/ + +#define MATRIX_PRODUCT_4X4(c,a,b) \ +{ \ + c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]+a[0][2]*b[2][0]+a[0][3]*b[3][0];\ + c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]+a[0][2]*b[2][1]+a[0][3]*b[3][1];\ + c[0][2] = a[0][0]*b[0][2]+a[0][1]*b[1][2]+a[0][2]*b[2][2]+a[0][3]*b[3][2];\ + c[0][3] = a[0][0]*b[0][3]+a[0][1]*b[1][3]+a[0][2]*b[2][3]+a[0][3]*b[3][3];\ + \ + c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]+a[1][2]*b[2][0]+a[1][3]*b[3][0];\ + c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]+a[1][2]*b[2][1]+a[1][3]*b[3][1];\ + c[1][2] = a[1][0]*b[0][2]+a[1][1]*b[1][2]+a[1][2]*b[2][2]+a[1][3]*b[3][2];\ + c[1][3] = a[1][0]*b[0][3]+a[1][1]*b[1][3]+a[1][2]*b[2][3]+a[1][3]*b[3][3];\ + \ + c[2][0] = a[2][0]*b[0][0]+a[2][1]*b[1][0]+a[2][2]*b[2][0]+a[2][3]*b[3][0];\ + c[2][1] = a[2][0]*b[0][1]+a[2][1]*b[1][1]+a[2][2]*b[2][1]+a[2][3]*b[3][1];\ + c[2][2] = a[2][0]*b[0][2]+a[2][1]*b[1][2]+a[2][2]*b[2][2]+a[2][3]*b[3][2];\ + c[2][3] = a[2][0]*b[0][3]+a[2][1]*b[1][3]+a[2][2]*b[2][3]+a[2][3]*b[3][3];\ + \ + c[3][0] = a[3][0]*b[0][0]+a[3][1]*b[1][0]+a[3][2]*b[2][0]+a[3][3]*b[3][0];\ + c[3][1] = a[3][0]*b[0][1]+a[3][1]*b[1][1]+a[3][2]*b[2][1]+a[3][3]*b[3][1];\ + c[3][2] = a[3][0]*b[0][2]+a[3][1]*b[1][2]+a[3][2]*b[2][2]+a[3][3]*b[3][2];\ + c[3][3] = a[3][0]*b[0][3]+a[3][1]*b[1][3]+a[3][2]*b[2][3]+a[3][3]*b[3][3];\ +} + +/* ========================================================== */ +/* matrix times vector */ + +#define MAT_DOT_VEC_2X2(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1]; \ +} + +/* ========================================================== */ +/* matrix times vector */ + +#define MAT_DOT_VEC_3X3(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]*v[2]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]*v[2]; \ + p[2] = m[2][0]*v[0] + m[2][1]*v[1] + m[2][2]*v[2]; \ +} + +/* ========================================================== */ +/* matrix times vector */ + +#define MAT_DOT_VEC_4X4(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]*v[2] + m[0][3]*v[3]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]*v[2] + m[1][3]*v[3]; \ + p[2] = m[2][0]*v[0] + m[2][1]*v[1] + m[2][2]*v[2] + m[2][3]*v[3]; \ + p[3] = m[3][0]*v[0] + m[3][1]*v[1] + m[3][2]*v[2] + m[3][3]*v[3]; \ +} + +/* ========================================================== */ +/* vector transpose times matrix */ +/* p[j] = v[0]*m[0][j] + v[1]*m[1][j] + v[2]*m[2][j]; */ + +#define VEC_DOT_MAT_3X3(p,v,m) \ +{ \ + p[0] = v[0]*m[0][0] + v[1]*m[1][0] + v[2]*m[2][0]; \ + p[1] = v[0]*m[0][1] + v[1]*m[1][1] + v[2]*m[2][1]; \ + p[2] = v[0]*m[0][2] + v[1]*m[1][2] + v[2]*m[2][2]; \ +} + +/* ========================================================== */ +/* affine matrix times vector */ +/* The matrix is assumed to be an affine matrix, with last two + * entries representing a translation */ + +#define MAT_DOT_VEC_2X3(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]; \ +} + +/* ========================================================== */ +/* inverse transpose of matrix times vector + * + * This macro computes inverse transpose of matrix m, + * and multiplies vector v into it, to yeild vector p + * + * DANGER !!! Do Not use this on normal vectors!!! + * It will leave normals the wrong length !!! + * See macro below for use on normals. + */ + +#define INV_TRANSP_MAT_DOT_VEC_2X2(p,m,v) \ +{ \ + gleDouble det; \ + \ + det = m[0][0]*m[1][1] - m[0][1]*m[1][0]; \ + p[0] = m[1][1]*v[0] - m[1][0]*v[1]; \ + p[1] = - m[0][1]*v[0] + m[0][0]*v[1]; \ + \ + /* if matrix not singular, and not orthonormal, then renormalize */ \ + if ((det!=1.0) && (det != 0.0)) { \ + det = 1.0 / det; \ + p[0] *= det; \ + p[1] *= det; \ + } \ +} + +/* ========================================================== */ +/* transform normal vector by inverse transpose of matrix + * and then renormalize the vector + * + * This macro computes inverse transpose of matrix m, + * and multiplies vector v into it, to yeild vector p + * Vector p is then normalized. + */ + + +#define NORM_XFORM_2X2(p,m,v) \ +{ \ + double mlen; \ + \ + /* do nothing if off-diagonals are zero and diagonals are \ + * equal */ \ + if ((m[0][1] != 0.0) || (m[1][0] != 0.0) || (m[0][0] != m[1][1])) { \ + p[0] = m[1][1]*v[0] - m[1][0]*v[1]; \ + p[1] = - m[0][1]*v[0] + m[0][0]*v[1]; \ + \ + mlen = p[0]*p[0] + p[1]*p[1]; \ + mlen = 1.0 / sqrt (mlen); \ + p[0] *= mlen; \ + p[1] *= mlen; \ + } else { \ + VEC_COPY_2 (p, v); \ + } \ +} + +/* ========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define OUTER_PRODUCT_2X2(m,v,t) \ +{ \ + m[0][0] = v[0] * t[0]; \ + m[0][1] = v[0] * t[1]; \ + \ + m[1][0] = v[1] * t[0]; \ + m[1][1] = v[1] * t[1]; \ +} + +/* ========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define OUTER_PRODUCT_3X3(m,v,t) \ +{ \ + m[0][0] = v[0] * t[0]; \ + m[0][1] = v[0] * t[1]; \ + m[0][2] = v[0] * t[2]; \ + \ + m[1][0] = v[1] * t[0]; \ + m[1][1] = v[1] * t[1]; \ + m[1][2] = v[1] * t[2]; \ + \ + m[2][0] = v[2] * t[0]; \ + m[2][1] = v[2] * t[1]; \ + m[2][2] = v[2] * t[2]; \ +} + +/* ========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define OUTER_PRODUCT_4X4(m,v,t) \ +{ \ + m[0][0] = v[0] * t[0]; \ + m[0][1] = v[0] * t[1]; \ + m[0][2] = v[0] * t[2]; \ + m[0][3] = v[0] * t[3]; \ + \ + m[1][0] = v[1] * t[0]; \ + m[1][1] = v[1] * t[1]; \ + m[1][2] = v[1] * t[2]; \ + m[1][3] = v[1] * t[3]; \ + \ + m[2][0] = v[2] * t[0]; \ + m[2][1] = v[2] * t[1]; \ + m[2][2] = v[2] * t[2]; \ + m[2][3] = v[2] * t[3]; \ + \ + m[3][0] = v[3] * t[0]; \ + m[3][1] = v[3] * t[1]; \ + m[3][2] = v[3] * t[2]; \ + m[3][3] = v[3] * t[3]; \ +} + +/* +========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define ACCUM_OUTER_PRODUCT_2X2(m,v,t) \ +{ \ + m[0][0] += v[0] * t[0]; \ + m[0][1] += v[0] * t[1]; \ + \ + m[1][0] += v[1] * t[0]; \ + m[1][1] += v[1] * t[1]; \ +} + +/* +========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define ACCUM_OUTER_PRODUCT_3X3(m,v,t) \ +{ \ + m[0][0] += v[0] * t[0]; \ + m[0][1] += v[0] * t[1]; \ + m[0][2] += v[0] * t[2]; \ + \ + m[1][0] += v[1] * t[0]; \ + m[1][1] += v[1] * t[1]; \ + m[1][2] += v[1] * t[2]; \ + \ + m[2][0] += v[2] * t[0]; \ + m[2][1] += v[2] * t[1]; \ + m[2][2] += v[2] * t[2]; \ +} + +/* +========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define ACCUM_OUTER_PRODUCT_4X4(m,v,t) \ +{ \ + m[0][0] += v[0] * t[0]; \ + m[0][1] += v[0] * t[1]; \ + m[0][2] += v[0] * t[2]; \ + m[0][3] += v[0] * t[3]; \ + \ + m[1][0] += v[1] * t[0]; \ + m[1][1] += v[1] * t[1]; \ + m[1][2] += v[1] * t[2]; \ + m[1][3] += v[1] * t[3]; \ + \ + m[2][0] += v[2] * t[0]; \ + m[2][1] += v[2] * t[1]; \ + m[2][2] += v[2] * t[2]; \ + m[2][3] += v[2] * t[3]; \ + \ + m[3][0] += v[3] * t[0]; \ + m[3][1] += v[3] * t[1]; \ + m[3][2] += v[3] * t[2]; \ + m[3][3] += v[3] * t[3]; \ +} + +/* +========================================================== */ +/* determinant of matrix + * + * Computes determinant of matrix m, returning d + */ + +#define DETERMINANT_2X2(d,m) \ +{ \ + d = m[0][0] * m[1][1] - m[0][1] * m[1][0]; \ +} + +/* ========================================================== */ +/* determinant of matrix + * + * Computes determinant of matrix m, returning d + */ + +#define DETERMINANT_3X3(d,m) \ +{ \ + d = m[0][0] * (m[1][1]*m[2][2] - m[1][2] * m[2][1]); \ + d -= m[0][1] * (m[1][0]*m[2][2] - m[1][2] * m[2][0]); \ + d += m[0][2] * (m[1][0]*m[2][1] - m[1][1] * m[2][0]); \ +} + +/* ========================================================== */ +/* i,j,th cofactor of a 4x4 matrix + * + */ + +#define COFACTOR_4X4_IJ(fac,m,i,j) \ +{ \ + int ii[4], jj[4], k; \ + \ + /* compute which row, columnt to skip */ \ + for (k=0; k + + + + IBDocumentLocation + 4 104 410 240 0 0 1152 848 + IBEditorPositions + + 29 + 19 615 246 44 0 0 1152 848 + + IBFramework Version + 291.0 + IBGroupedObjects + + IBLastGroupID + 1 + IBOpenObjects + + 29 + + IBSystem Version + 6I32 + + diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUT.nib/objects.nib b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUT.nib/objects.nib new file mode 100644 index 0000000..8a7140e Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUT.nib/objects.nib differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/classes.nib b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/classes.nib new file mode 100644 index 0000000..7e85eb1 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/classes.nib @@ -0,0 +1,13 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + { + ACTIONS = {toggleWindow = id; }; + CLASS = GLUTClipboardController; + LANGUAGE = ObjC; + OUTLETS = {_infoText = id; _scrollView = id; }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/info.nib b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/info.nib new file mode 100644 index 0000000..867735d --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/info.nib @@ -0,0 +1,12 @@ + + + + + IBDocumentLocation + 63 221 356 240 0 0 1600 1178 + IBFramework Version + 263.2 + IBSystem Version + 5S41 + + diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/objects.nib b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/objects.nib new file mode 100644 index 0000000..29125d4 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/objects.nib differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/classes.nib b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/classes.nib new file mode 100644 index 0000000..c675963 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/classes.nib @@ -0,0 +1,73 @@ +{ + IBClasses = ( + { + ACTIONS = {save = id; saveAs = id; }; + CLASS = FirstResponder; + LANGUAGE = ObjC; + SUPERCLASS = NSObject; + }, + { + ACTIONS = { + cancel = id; + joyAssign = id; + joyDevice = id; + joyElement = id; + joyInvert = id; + launchDebugMode = id; + launchGamemodeCaptureSingle = id; + launchIconic = id; + launchUseCurrWD = id; + launchUseExtDesktop = id; + launchUseMacOSCoords = id; + mouseEanbleEmulation = id; + mouseMiddleMenu = id; + mouseRightMenu = id; + ok = id; + spaceAssign = id; + spaceDevice = id; + spaceElement = id; + spaceInvert = id; + }; + CLASS = GLUTPreferencesController; + LANGUAGE = ObjC; + OUTLETS = { + joyAssign = NSButton; + joyAssignNote = NSTextField; + joyAssignWarningIcon = NSImageView; + joyDeviceMenu = NSPopUpButton; + joyElement = NSTextField; + joyInputMenu = NSPopUpButton; + joyInverted = NSButton; + launchDebugMode = NSButton; + launchFadeTime = NSTextField; + launchGamemodeCaptureSingle = NSButton; + launchIconic = NSButton; + launchInitHeight = NSTextField; + launchInitWidth = NSTextField; + launchInitX = NSTextField; + launchInitY = NSTextField; + launchMenuIdle = NSTextField; + launchSyncToVBL = NSButton; + launchUseCurrWD = NSButton; + launchUseExtendedDesktop = NSButton; + launchUseMacOSXCoords = NSButton; + mouseAssignWarningIcon = NSImageView; + mouseAssignWarningText = NSTextField; + mouseDetected = NSTextField; + mouseEmulation = NSButton; + mouseMiddleConfigMenu = NSPopUpButton; + mouseRightConfigMenu = NSPopUpButton; + prefsTabView = NSTabView; + spaceAssign = NSButton; + spaceAssignNote = NSTextField; + spaceAssignWarningIcon = NSImageView; + spaceDeviceMenu = NSPopUpButton; + spaceElement = NSTextField; + spaceInputMenu = NSPopUpButton; + spaceInverted = NSButton; + }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/info.nib b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/info.nib new file mode 100644 index 0000000..216c8dc --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 16 329 410 240 0 0 1920 1178 + IBFramework Version + 439.0 + IBOpenObjects + + 205 + + IBSystem Version + 8G32 + + diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/objects.nib b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/objects.nib new file mode 100644 index 0000000..7598f2c Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib/objects.nib differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTUI.strings b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTUI.strings new file mode 100644 index 0000000..6db3c5c Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/GLUTUI.strings differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/InfoPlist.strings b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/InfoPlist.strings new file mode 100644 index 0000000..6f78b89 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/English.lproj/InfoPlist.strings differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/Info.plist b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/Info.plist new file mode 100644 index 0000000..e8fc9d6 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + GLUT + CFBundleGetInfoString + 3.4.0, Copyright (c) 2001-2008 Apple Inc., All Rights Reserved + CFBundleIdentifier + com.apple.glut + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + FMWK + CFBundleShortVersionString + 3.4.0 + CFBundleSignature + ???? + CFBundleVersion + GLUT-3.4.0 + + diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/blankCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/blankCursor.tiff new file mode 100644 index 0000000..a2b0cf1 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/blankCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomCursor.tiff new file mode 100644 index 0000000..c3f4795 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomleftCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomleftCursor.tiff new file mode 100644 index 0000000..274529f Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomleftCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomrightCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomrightCursor.tiff new file mode 100644 index 0000000..dec4252 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/bottomrightCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/crossCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/crossCursor.tiff new file mode 100644 index 0000000..8536c0e Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/crossCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/cycleCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/cycleCursor.tiff new file mode 100644 index 0000000..34b52f6 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/cycleCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/destroyCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/destroyCursor.tiff new file mode 100644 index 0000000..9e3a1cb Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/destroyCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/fingerCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/fingerCursor.tiff new file mode 100644 index 0000000..0087c66 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/fingerCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/helpCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/helpCursor.tiff new file mode 100644 index 0000000..fc4a88a Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/helpCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftCursor.tiff new file mode 100644 index 0000000..852b69b Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftRightCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftRightCursor.tiff new file mode 100644 index 0000000..37fe393 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/leftRightCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightArrowCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightArrowCursor.tiff new file mode 100644 index 0000000..d852616 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightArrowCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightCursor.tiff new file mode 100644 index 0000000..9781f22 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/rightCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/sprayCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/sprayCursor.tiff new file mode 100644 index 0000000..9bec966 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/sprayCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topCursor.tiff new file mode 100644 index 0000000..e4df0de Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topleftCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topleftCursor.tiff new file mode 100644 index 0000000..43cf97f Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/topleftCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/toprightCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/toprightCursor.tiff new file mode 100644 index 0000000..429b01b Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/toprightCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/upDownCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/upDownCursor.tiff new file mode 100644 index 0000000..1605063 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/upDownCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/waitCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/waitCursor.tiff new file mode 100644 index 0000000..81ba1aa Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/A/Resources/waitCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/GLUT b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/GLUT new file mode 100644 index 0000000..babc6b1 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/GLUT differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/copy.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/copy.h new file mode 100644 index 0000000..a5116e2 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/copy.h @@ -0,0 +1,18 @@ + +/* + * + * Written By Linas Vepstas November 1991 + */ + + +#define COPY_THREE_WORDS(A,B) { \ + struct three_words { int a, b, c, }; \ + *(struct three_words *) (A) = *(struct three_words *) (B); \ +} + +#define COPY_FOUR_WORDS(A,B) { \ + struct four_words { int a, b, c, d, }; \ + *(struct four_words *) (A) = *(struct four_words *) (B); \ +} + +/* ============================================================= */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/extrude.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/extrude.h new file mode 100644 index 0000000..658699e --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/extrude.h @@ -0,0 +1,96 @@ + +/* + * extrude.h + * + * FUNCTION: + * prototypes for privately used subroutines for the tubing library + * + * HISTORY: + * Linas Vepstas 1991 + */ + +#include "port.h" /* for gleDouble */ + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +/* ============================================================ */ +/* + * Provides choice of calling subroutine, vs. invoking macro. + * Basically, inlines the source, or not. + * Trades performance for executable size. + */ + +#define INLINE_INTERSECT +#ifdef INLINE_INTERSECT +#define INNERSECT(sect,p,n,v1,v2) { INTERSECT(sect,p,n,v1,v2); } +#else +#define INNERSECT(sect,p,n,v1,v2) intersect(sect,p,n,v1,v2) +#endif /* INLINE_INTERSECT */ + +/* ============================================================ */ +/* The folowing defines give a kludgy way of accessing the qmesh primitive */ + +/* +#define bgntmesh _emu_qmesh_bgnqmesh +#define endtmesh _emu_qmesh_endqmesh +#define c3f _emu_qmesh_c3f +#define n3f _emu_qmesh_n3f +#define v3f _emu_qmesh_v3f +*/ + +/* ============================================================ */ + +extern void up_sanity_check (gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3]); /* polyline */ + + +extern void draw_raw_style_end_cap (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble zval, /* where to draw cap */ + int frontwards); /* front or back cap */ + +extern void draw_round_style_cap_callback (int iloop, + double cap[][3], + float face_color[3], + gleDouble cut_vector[3], + gleDouble bisect_vector[3], + double norms[][3], + int frontwards); + +extern void draw_angle_style_front_cap (int ncp, + gleDouble bi[3], + gleDouble point_array[][3]); + +extern void extrusion_raw_join (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2],/* 2D contour normal vecs */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline */ + float color_array[][3], /* color of polyline */ + gleDouble xform_array[][2][3]); /* 2D contour xforms */ + + +extern void extrusion_round_or_cut_join (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2],/* 2D contour normal vecs */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline */ + float color_array[][3], /* color of polyline */ + gleDouble xform_array[][2][3]); /* 2D contour xforms */ + + +extern void extrusion_angle_join (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2],/* 2D contour normal vecs */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline */ + float color_array[][3], /* color of polyline */ + gleDouble xform_array[][2][3]); /* 2D contour xforms */ + +/* -------------------------- end of file -------------------------------- */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/glsmap.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/glsmap.h new file mode 100644 index 0000000..baf54a7 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/glsmap.h @@ -0,0 +1,137 @@ +#ifndef __glsmap_h__ +#define __glsmap_h__ + +/* Copyright (c) Mark J. Kilgard, 1998. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#if defined(_WIN32) + +/* Try hard to avoid including to avoid name space pollution, + but Win32's needs APIENTRY and WINGDIAPI defined properly. */ +# if 0 +# define WIN32_LEAN_AND_MEAN +# include +# else + /* XXX This is from Win32's */ +# ifndef APIENTRY +# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) +# define APIENTRY __stdcall +# else +# define APIENTRY +# endif +# endif +# ifndef CALLBACK + /* XXX This is from Win32's */ +# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) +# define CALLBACK __stdcall +# else +# define CALLBACK +# endif +# endif + /* XXX This is from Win32's and */ +# ifndef WINGDIAPI +# define WINGDIAPI __declspec(dllimport) +# endif + /* XXX This is from Win32's */ +# ifndef _WCHAR_T_DEFINED +typedef unsigned short wchar_t; +# define _WCHAR_T_DEFINED +# endif +# endif + +#pragma warning (disable:4244) /* Disable bogus conversion warnings. */ +#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ + +#endif /* _WIN32 */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum { + SMAP_CLEAR_SMAP_TEXTURE = 0x1, + SMAP_GENERATE_VIEW_MIPMAPS = 0x2, + SMAP_GENERATE_SMAP_MIPMAPS = 0x4, + SMAP_GENERATE_MIPMAPS = 0x6 /* both of above */ +} SphereMapFlags; + +/* Cube view enumerants. */ +enum { + SMAP_FRONT = 0, + SMAP_TOP = 1, + SMAP_BOTTOM = 2, + SMAP_LEFT = 3, + SMAP_RIGHT = 4, + SMAP_BACK = 5 +}; + +typedef struct _SphereMap SphereMap; + +extern SphereMap *smapCreateSphereMap(SphereMap *shareSmap); +extern void smapDestroySphereMap(SphereMap *smap); + +extern void smapConfigureSphereMapMesh(SphereMap *smap, int steps, int rings, int edgeExtend); + +extern void smapSetSphereMapTexObj(SphereMap *smap, GLuint texobj); +extern void smapSetViewTexObj(SphereMap *smap, GLuint texobj); +extern void smapSetViewTexObjs(SphereMap *smap, GLuint texobjs[6]); +extern void smapGetSphereMapTexObj(SphereMap *smap, GLuint *texobj); +extern void smapGetViewTexObj(SphereMap *smap, GLuint *texobj); +extern void smapGetViewTexObjs(SphereMap *smap, GLuint texobjs[6]); + +extern void smapSetFlags(SphereMap *smap, SphereMapFlags flags); +extern void smapGetFlags(SphereMap *smap, SphereMapFlags *flags); + +extern void smapSetViewOrigin(SphereMap *smap, GLint x, GLint y); +extern void smapSetSphereMapOrigin(SphereMap *smap, GLint x, GLint y); +extern void smapGetViewOrigin(SphereMap *smap, GLint *x, GLint *y); +extern void smapGetSphereMapOrigin(SphereMap *smap, GLint *x, GLint *y); + +extern void smapSetEye(SphereMap *smap, GLfloat eyex, GLfloat eyey, GLfloat eyez); +extern void smapSetEyeVector(SphereMap *smap, GLfloat *eye); +extern void smapSetUp(SphereMap *smap, GLfloat upx, GLfloat upy, GLfloat upz); +extern void smapSetUpVector(SphereMap *smap, GLfloat *up); +extern void smapSetObject(SphereMap *smap, GLfloat objx, GLfloat objy, GLfloat objz); +extern void smapSetObjectVector(SphereMap *smap, GLfloat *obj); +extern void smapGetEye(SphereMap *smap, GLfloat *eyex, GLfloat *eyey, GLfloat *eyez); +extern void smapGetEyeVector(SphereMap *smap, GLfloat *eye); +extern void smapGetUp(SphereMap *smap, GLfloat *upx, GLfloat *upy, GLfloat *upz); +extern void smapGetUpVector(SphereMap *smap, GLfloat *up); +extern void smapGetObject(SphereMap *smap, GLfloat *objx, GLfloat *objy, GLfloat *objz); +extern void smapGetObjectVector(SphereMap *smap, GLfloat *obj); + +extern void smapSetNearFar(SphereMap *smap, GLfloat viewNear, GLfloat viewFar); +extern void smapGetNearFar(SphereMap *smap, GLfloat *viewNear, GLfloat *viewFar); + +extern void smapSetSphereMapTexDim(SphereMap *smap, GLsizei texdim); +extern void smapSetViewTexDim(SphereMap *smap, GLsizei texdim); +extern void smapGetSphereMapTexDim(SphereMap *smap, GLsizei *texdim); +extern void smapGetViewTexDim(SphereMap *smap, GLsizei *texdim); + +extern void smapSetContextData(SphereMap *smap, void *context); +extern void smapGetContextData(SphereMap *smap, void **context); + +extern void smapSetPositionLightsFunc(SphereMap *smap, void (*positionLights)(int view, void *context)); +extern void smapSetDrawViewFunc(SphereMap *smap, void (*drawView)(int view, void *context)); +extern void smapGetPositionLightsFunc(SphereMap *smap, void (**positionLights)(int view, void *context)); +extern void smapGetDrawViewFunc(SphereMap *smap, void (**drawView)(int view, void *context)); + +extern void smapGenViewTex(SphereMap *smap, int view); +extern void smapGenViewTexs(SphereMap *smap); +extern void smapGenSphereMapFromViewTexs(SphereMap *smap); +extern void smapGenSphereMap(SphereMap *smap); +extern void smapGenSphereMapWithOneViewTex(SphereMap *smap); + +extern int smapRvecToSt(float rvec[3], float st[2]); +extern void smapStToRvec(float *st, float *rvec); + +#ifdef __cplusplus +} + +#endif +#endif /* __glsmap_h__ */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/glsmapint.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/glsmapint.h new file mode 100644 index 0000000..3620e7d --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/glsmapint.h @@ -0,0 +1,102 @@ +#ifndef __glsmapint_h__ +#define __glsmapint_h__ + +/* Copyright (c) Mark J. Kilgard, 1998. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#include "glsmap.h" + +enum { X = 0, Y = 1, Z = 2 }; + +#define INITFACE(mesh) \ + int steps = mesh->steps; \ + int sqsteps = mesh->steps * mesh->steps + +#define FACE(side,y,x) \ + mesh->face[(side)*sqsteps + (y)*steps + (x)] + +#define FACExy(side,i,j) \ + (&FACE(side,i,j).x) + +#define FACEst(side,i,j) \ + (&FACE(side,i,j).s) + +#define INITBACK(mesh) \ + int allrings = mesh->rings + mesh->edgeExtend; \ + int ringedspokes = allrings * mesh->steps + +#define BACK(edge,ring,spoke) \ + mesh->back[(edge)*ringedspokes + (ring)*mesh->steps + (spoke)] + +#define BACKxy(edge,ring,spoke) \ + (&BACK(edge,ring,spoke).x) + +#define BACKst(edge,ring,spoke) \ + (&BACK(edge,ring,spoke).s) + +typedef struct _STXY { + GLfloat s, t; + GLfloat x, y; +} STXY; + +typedef struct _SphereMapMesh { + + int refcnt; + + int steps; + int rings; + int edgeExtend; + + STXY *face; + STXY *back; + +} SphereMapMesh; + +struct _SphereMap { + + /* Shared sphere map mesh vertex data. */ + SphereMapMesh *mesh; + + /* Texture object ids. */ + GLuint smapTexObj; + GLuint viewTexObjs[6]; + GLuint viewTexObj; + + /* Flags */ + SphereMapFlags flags; + + /* Texture dimensions must be a power of two. */ + int viewTexDim; /* view texture dimension */ + int smapTexDim; /* sphere map texture dimension */ + + /* Viewport origins for view and sphere map rendering. */ + int viewOrigin[2]; + int smapOrigin[2]; + + /* Viewing vectors. */ + GLfloat eye[3]; + GLfloat up[3]; + GLfloat obj[3]; + + /* Projection parameters. */ + GLfloat viewNear; + GLfloat viewFar; + + /* Rendering callbacks. */ + void (*positionLights)(int view, void *context); + void (*drawView)(int view, void *context); + + /* Application specified callback data. */ + void *context; + +}; + +/* Library internal routines. */ +extern void __smapDrawSphereMapMeshSide(SphereMapMesh *mesh, int side); +extern void __smapDrawSphereMapMeshBack(SphereMapMesh *mesh); +extern void __smapValidateSphereMapMesh(SphereMapMesh *mesh); + +#endif /* __glsmapint_h__ */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/glut.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/glut.h new file mode 100644 index 0000000..cbc6ebe --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/glut.h @@ -0,0 +1,648 @@ +#ifndef __glut_h__ +#define __glut_h__ + +/* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998. */ + +/* This program is freely distributable without licensing fees and is + provided without guarantee or warrantee expressed or implied. This + program is -not- in the public domain. */ +//#define GLUT_OF_007_HACK + +#if defined(_WIN32) + +/* GLUT 3.7 now tries to avoid including + to avoid name space pollution, but Win32's + needs APIENTRY and WINGDIAPI defined properly. */ +# if 0 +# define WIN32_LEAN_AND_MEAN +# include +# else + /* XXX This is from Win32's */ +# ifndef APIENTRY +# define GLUT_APIENTRY_DEFINED +# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) +# define APIENTRY __stdcall +# else +# define APIENTRY +# endif +# endif + /* XXX This is from Win32's */ +# ifndef CALLBACK +# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) +# define CALLBACK __stdcall +# else +# define CALLBACK +# endif +# endif + /* XXX This is from Win32's and */ +# ifndef WINGDIAPI +# define GLUT_WINGDIAPI_DEFINED +# define WINGDIAPI __declspec(dllimport) +# endif + /* XXX This is from Win32's */ +# ifndef _WCHAR_T_DEFINED +typedef unsigned short wchar_t; +# define _WCHAR_T_DEFINED +# endif +# endif + +#pragma comment (lib, "winmm.lib") /* link with Windows MultiMedia lib */ +#pragma comment (lib, "opengl32.lib") /* link with Microsoft OpenGL lib */ +#pragma comment (lib, "glu32.lib") /* link with OpenGL Utility lib */ +#pragma comment (lib, "glut32.lib") /* link with Win32 GLUT lib */ + +#pragma warning (disable:4244) /* Disable bogus conversion warnings. */ +#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ + +#endif + +#if defined(__APPLE__) || defined(MACOSX) +#include +#include +#include +#else +#include +#include +#endif + +/* define APIENTRY and CALLBACK to null string if we aren't on Win32 */ +#if !defined(_WIN32) +#define APIENTRY +#define GLUT_APIENTRY_DEFINED +#define CALLBACK +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/** + GLUT API revision history: + + GLUT_API_VERSION is updated to reflect incompatible GLUT + API changes (interface changes, semantic changes, deletions, + or additions). + + GLUT_API_VERSION=1 First public release of GLUT. 11/29/94 + + GLUT_API_VERSION=2 Added support for OpenGL/GLX multisampling, + extension. Supports new input devices like tablet, dial and button + box, and Spaceball. Easy to query OpenGL extensions. + + GLUT_API_VERSION=3 glutMenuStatus added. + + GLUT_API_VERSION=4 glutInitDisplayString, glutWarpPointer, + glutBitmapLength, glutStrokeLength, glutWindowStatusFunc, dynamic + video resize subAPI, glutPostWindowRedisplay, glutKeyboardUpFunc, + glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat, + glutJoystickFunc, glutForceJoystickFunc (NOT FINALIZED!). + + GLUT_API_VERSION=5 glutGetProcAddress (added by BrianP) +**/ +#ifndef GLUT_API_VERSION /* allow this to be overriden */ +#define GLUT_API_VERSION 5 +#endif + +/** + GLUT implementation revision history: + + GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT + API revisions and implementation revisions (ie, bug fixes). + + GLUT_XLIB_IMPLEMENTATION=1 mjk's first public release of + GLUT Xlib-based implementation. 11/29/94 + + GLUT_XLIB_IMPLEMENTATION=2 mjk's second public release of + GLUT Xlib-based implementation providing GLUT version 2 + interfaces. + + GLUT_XLIB_IMPLEMENTATION=3 mjk's GLUT 2.2 images. 4/17/95 + + GLUT_XLIB_IMPLEMENTATION=4 mjk's GLUT 2.3 images. 6/?/95 + + GLUT_XLIB_IMPLEMENTATION=5 mjk's GLUT 3.0 images. 10/?/95 + + GLUT_XLIB_IMPLEMENTATION=7 mjk's GLUT 3.1+ with glutWarpPoitner. 7/24/96 + + GLUT_XLIB_IMPLEMENTATION=8 mjk's GLUT 3.1+ with glutWarpPoitner + and video resize. 1/3/97 + + GLUT_XLIB_IMPLEMENTATION=9 mjk's GLUT 3.4 release with early GLUT 4 routines. + + GLUT_XLIB_IMPLEMENTATION=11 Mesa 2.5's GLUT 3.6 release. + + GLUT_XLIB_IMPLEMENTATION=12 mjk's GLUT 3.6 release with early GLUT 4 routines + signal handling. + + GLUT_XLIB_IMPLEMENTATION=13 mjk's GLUT 3.7 beta with GameGLUT support. + + GLUT_XLIB_IMPLEMENTATION=14 mjk's GLUT 3.7 beta with f90gl friend interface. + + GLUT_XLIB_IMPLEMENTATION=15 mjk's GLUT 3.7 beta sync'ed with Mesa +**/ +#ifndef GLUT_XLIB_IMPLEMENTATION /* Allow this to be overriden. */ +#define GLUT_XLIB_IMPLEMENTATION 15 +#endif + +/** + MacOS X GLUT implementation revision history: + + GLUT_MACOSX_IMPLEMENTATION is updated to reflect MacOS X + specific GLUT API revisions and implementation revisions + (ie, bug fixes). + + GLUT_MACOSX_IMPLEMENTATION=1 glutSurfaceTexture. + + GLUT_MACOSX_IMPLEMENTATION=2 glutWMCloseFunc, glutCheckLoop. + +**/ +#ifndef GLUT_MACOSX_IMPLEMENTATION /* Allow this to be overriden. */ +#define GLUT_MACOSX_IMPLEMENTATION 2 +#endif + +/* Display mode bit masks. */ +#define GLUT_RGB 0 +#define GLUT_RGBA GLUT_RGB +#define GLUT_INDEX 1 +#define GLUT_SINGLE 0 +#define GLUT_DOUBLE 2 +#define GLUT_ACCUM 4 +#define GLUT_ALPHA 8 +#define GLUT_DEPTH 16 +#define GLUT_STENCIL 32 +#if (GLUT_API_VERSION >= 2) +#define GLUT_MULTISAMPLE 128 +#define GLUT_STEREO 256 +#endif +#if (GLUT_API_VERSION >= 3) +#define GLUT_LUMINANCE 512 +#endif +#define GLUT_NO_RECOVERY 1024 + +/* Mouse buttons. */ +#define GLUT_LEFT_BUTTON 0 +#define GLUT_MIDDLE_BUTTON 1 +#define GLUT_RIGHT_BUTTON 2 + +/* Mouse button state. */ +#define GLUT_DOWN 0 +#define GLUT_UP 1 + +#if (GLUT_API_VERSION >= 2) +/* function keys */ +#define GLUT_KEY_F1 1 +#define GLUT_KEY_F2 2 +#define GLUT_KEY_F3 3 +#define GLUT_KEY_F4 4 +#define GLUT_KEY_F5 5 +#define GLUT_KEY_F6 6 +#define GLUT_KEY_F7 7 +#define GLUT_KEY_F8 8 +#define GLUT_KEY_F9 9 +#define GLUT_KEY_F10 10 +#define GLUT_KEY_F11 11 +#define GLUT_KEY_F12 12 +/* directional keys */ +#define GLUT_KEY_LEFT 100 +#define GLUT_KEY_UP 101 +#define GLUT_KEY_RIGHT 102 +#define GLUT_KEY_DOWN 103 +#define GLUT_KEY_PAGE_UP 104 +#define GLUT_KEY_PAGE_DOWN 105 +#define GLUT_KEY_HOME 106 +#define GLUT_KEY_END 107 +#define GLUT_KEY_INSERT 108 +#endif + +/* Entry/exit state. */ +#define GLUT_LEFT 0 +#define GLUT_ENTERED 1 + +/* Menu usage state. */ +#define GLUT_MENU_NOT_IN_USE 0 +#define GLUT_MENU_IN_USE 1 + +/* Visibility state. */ +#define GLUT_NOT_VISIBLE 0 +#define GLUT_VISIBLE 1 + +/* Window status state. */ +#define GLUT_HIDDEN 0 +#define GLUT_FULLY_RETAINED 1 +#define GLUT_PARTIALLY_RETAINED 2 +#define GLUT_FULLY_COVERED 3 + +/* Color index component selection values. */ +#define GLUT_RED 0 +#define GLUT_GREEN 1 +#define GLUT_BLUE 2 + +/* Layers for use. */ +#define GLUT_NORMAL 0 +#define GLUT_OVERLAY 1 + +#if defined(_WIN32) +/* Stroke font constants (use these in GLUT program). */ +#define GLUT_STROKE_ROMAN ((void*)0) +#define GLUT_STROKE_MONO_ROMAN ((void*)1) + +/* Bitmap font constants (use these in GLUT program). */ +#define GLUT_BITMAP_9_BY_15 ((void*)2) +#define GLUT_BITMAP_8_BY_13 ((void*)3) +#define GLUT_BITMAP_TIMES_ROMAN_10 ((void*)4) +#define GLUT_BITMAP_TIMES_ROMAN_24 ((void*)5) +#if (GLUT_API_VERSION >= 3) +#define GLUT_BITMAP_HELVETICA_10 ((void*)6) +#define GLUT_BITMAP_HELVETICA_12 ((void*)7) +#define GLUT_BITMAP_HELVETICA_18 ((void*)8) +#endif +#else +/* Stroke font opaque addresses (use constants instead in source code). */ +extern void *glutStrokeRoman; +extern void *glutStrokeMonoRoman; + +/* Stroke font constants (use these in GLUT program). */ +#define GLUT_STROKE_ROMAN (&glutStrokeRoman) +#define GLUT_STROKE_MONO_ROMAN (&glutStrokeMonoRoman) + +/* Bitmap font opaque addresses (use constants instead in source code). */ +extern void *glutBitmap9By15; +extern void *glutBitmap8By13; +extern void *glutBitmapTimesRoman10; +extern void *glutBitmapTimesRoman24; +extern void *glutBitmapHelvetica10; +extern void *glutBitmapHelvetica12; +extern void *glutBitmapHelvetica18; + +/* Bitmap font constants (use these in GLUT program). */ +#define GLUT_BITMAP_9_BY_15 (&glutBitmap9By15) +#define GLUT_BITMAP_8_BY_13 (&glutBitmap8By13) +#define GLUT_BITMAP_TIMES_ROMAN_10 (&glutBitmapTimesRoman10) +#define GLUT_BITMAP_TIMES_ROMAN_24 (&glutBitmapTimesRoman24) +#if (GLUT_API_VERSION >= 3) +#define GLUT_BITMAP_HELVETICA_10 (&glutBitmapHelvetica10) +#define GLUT_BITMAP_HELVETICA_12 (&glutBitmapHelvetica12) +#define GLUT_BITMAP_HELVETICA_18 (&glutBitmapHelvetica18) +#endif +#endif + +/* glutGet parameters. */ +#define GLUT_WINDOW_X 100 +#define GLUT_WINDOW_Y 101 +#define GLUT_WINDOW_WIDTH 102 +#define GLUT_WINDOW_HEIGHT 103 +#define GLUT_WINDOW_BUFFER_SIZE 104 +#define GLUT_WINDOW_STENCIL_SIZE 105 +#define GLUT_WINDOW_DEPTH_SIZE 106 +#define GLUT_WINDOW_RED_SIZE 107 +#define GLUT_WINDOW_GREEN_SIZE 108 +#define GLUT_WINDOW_BLUE_SIZE 109 +#define GLUT_WINDOW_ALPHA_SIZE 110 +#define GLUT_WINDOW_ACCUM_RED_SIZE 111 +#define GLUT_WINDOW_ACCUM_GREEN_SIZE 112 +#define GLUT_WINDOW_ACCUM_BLUE_SIZE 113 +#define GLUT_WINDOW_ACCUM_ALPHA_SIZE 114 +#define GLUT_WINDOW_DOUBLEBUFFER 115 +#define GLUT_WINDOW_RGBA 116 +#define GLUT_WINDOW_PARENT 117 +#define GLUT_WINDOW_NUM_CHILDREN 118 +#define GLUT_WINDOW_COLORMAP_SIZE 119 +#if (GLUT_API_VERSION >= 2) +#define GLUT_WINDOW_NUM_SAMPLES 120 +#define GLUT_WINDOW_STEREO 121 +#endif +#if (GLUT_API_VERSION >= 3) +#define GLUT_WINDOW_CURSOR 122 +#endif +#define GLUT_SCREEN_WIDTH 200 +#define GLUT_SCREEN_HEIGHT 201 +#define GLUT_SCREEN_WIDTH_MM 202 +#define GLUT_SCREEN_HEIGHT_MM 203 +#define GLUT_MENU_NUM_ITEMS 300 +#define GLUT_DISPLAY_MODE_POSSIBLE 400 +#define GLUT_INIT_WINDOW_X 500 +#define GLUT_INIT_WINDOW_Y 501 +#define GLUT_INIT_WINDOW_WIDTH 502 +#define GLUT_INIT_WINDOW_HEIGHT 503 +#define GLUT_INIT_DISPLAY_MODE 504 +#if (GLUT_API_VERSION >= 2) +#define GLUT_ELAPSED_TIME 700 +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +#define GLUT_WINDOW_FORMAT_ID 123 +#endif + +#if (GLUT_API_VERSION >= 2) +/* glutDeviceGet parameters. */ +#define GLUT_HAS_KEYBOARD 600 +#define GLUT_HAS_MOUSE 601 +#define GLUT_HAS_SPACEBALL 602 +#define GLUT_HAS_DIAL_AND_BUTTON_BOX 603 +#define GLUT_HAS_TABLET 604 +#define GLUT_NUM_MOUSE_BUTTONS 605 +#define GLUT_NUM_SPACEBALL_BUTTONS 606 +#define GLUT_NUM_BUTTON_BOX_BUTTONS 607 +#define GLUT_NUM_DIALS 608 +#define GLUT_NUM_TABLET_BUTTONS 609 +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +#define GLUT_DEVICE_IGNORE_KEY_REPEAT 610 +#define GLUT_DEVICE_KEY_REPEAT 611 +#define GLUT_HAS_JOYSTICK 612 +#define GLUT_OWNS_JOYSTICK 613 +#define GLUT_JOYSTICK_BUTTONS 614 +#define GLUT_JOYSTICK_AXES 615 +#define GLUT_JOYSTICK_POLL_RATE 616 +#endif + +#if (GLUT_API_VERSION >= 3) +/* glutLayerGet parameters. */ +#define GLUT_OVERLAY_POSSIBLE 800 +#define GLUT_LAYER_IN_USE 801 +#define GLUT_HAS_OVERLAY 802 +#define GLUT_TRANSPARENT_INDEX 803 +#define GLUT_NORMAL_DAMAGED 804 +#define GLUT_OVERLAY_DAMAGED 805 + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +/* glutVideoResizeGet parameters. */ +#define GLUT_VIDEO_RESIZE_POSSIBLE 900 +#define GLUT_VIDEO_RESIZE_IN_USE 901 +#define GLUT_VIDEO_RESIZE_X_DELTA 902 +#define GLUT_VIDEO_RESIZE_Y_DELTA 903 +#define GLUT_VIDEO_RESIZE_WIDTH_DELTA 904 +#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA 905 +#define GLUT_VIDEO_RESIZE_X 906 +#define GLUT_VIDEO_RESIZE_Y 907 +#define GLUT_VIDEO_RESIZE_WIDTH 908 +#define GLUT_VIDEO_RESIZE_HEIGHT 909 +#endif + +/* glutUseLayer parameters. */ +#define GLUT_NORMAL 0 +#define GLUT_OVERLAY 1 + +/* glutGetModifiers return mask. */ +#define GLUT_ACTIVE_SHIFT 1 +#define GLUT_ACTIVE_CTRL 2 +#define GLUT_ACTIVE_ALT 4 + +/* glutSetCursor parameters. */ +/* Basic arrows. */ +#define GLUT_CURSOR_RIGHT_ARROW 0 +#define GLUT_CURSOR_LEFT_ARROW 1 +/* Symbolic cursor shapes. */ +#define GLUT_CURSOR_INFO 2 +#define GLUT_CURSOR_DESTROY 3 +#define GLUT_CURSOR_HELP 4 +#define GLUT_CURSOR_CYCLE 5 +#define GLUT_CURSOR_SPRAY 6 +#define GLUT_CURSOR_WAIT 7 +#define GLUT_CURSOR_TEXT 8 +#define GLUT_CURSOR_CROSSHAIR 9 +/* Directional cursors. */ +#define GLUT_CURSOR_UP_DOWN 10 +#define GLUT_CURSOR_LEFT_RIGHT 11 +/* Sizing cursors. */ +#define GLUT_CURSOR_TOP_SIDE 12 +#define GLUT_CURSOR_BOTTOM_SIDE 13 +#define GLUT_CURSOR_LEFT_SIDE 14 +#define GLUT_CURSOR_RIGHT_SIDE 15 +#define GLUT_CURSOR_TOP_LEFT_CORNER 16 +#define GLUT_CURSOR_TOP_RIGHT_CORNER 17 +#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 18 +#define GLUT_CURSOR_BOTTOM_LEFT_CORNER 19 +/* Inherit from parent window. */ +#define GLUT_CURSOR_INHERIT 100 +/* Blank cursor. */ +#define GLUT_CURSOR_NONE 101 +/* Fullscreen crosshair (if available). */ +#define GLUT_CURSOR_FULL_CROSSHAIR 102 +#endif + +/* GLUT initialization sub-API. */ +extern void APIENTRY glutInit(int *argcp, char **argv); +extern void APIENTRY glutInitDisplayMode(unsigned int mode); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern void APIENTRY glutInitDisplayString(const char *string); +#endif +extern void APIENTRY glutInitWindowPosition(int x, int y); +extern void APIENTRY glutInitWindowSize(int width, int height); +extern void APIENTRY glutMainLoop(void); + +/* GLUT window sub-API. */ +extern int APIENTRY glutCreateWindow(const char *title); +extern int APIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height); +extern void APIENTRY glutDestroyWindow(int win); +extern void APIENTRY glutPostRedisplay(void); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) +extern void APIENTRY glutPostWindowRedisplay(int win); +#endif +extern void APIENTRY glutSwapBuffers(void); +extern int APIENTRY glutGetWindow(void); +extern void APIENTRY glutSetWindow(int win); +extern void APIENTRY glutSetWindowTitle(const char *title); +extern void APIENTRY glutSetIconTitle(const char *title); +extern void APIENTRY glutPositionWindow(int x, int y); +extern void APIENTRY glutReshapeWindow(int width, int height); +extern void APIENTRY glutPopWindow(void); +extern void APIENTRY glutPushWindow(void); +extern void APIENTRY glutIconifyWindow(void); +extern void APIENTRY glutShowWindow(void); +extern void APIENTRY glutHideWindow(void); +#if (GLUT_API_VERSION >= 3) +extern void APIENTRY glutFullScreen(void); +extern void APIENTRY glutSetCursor(int cursor); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern void APIENTRY glutWarpPointer(int x, int y); +#if (GLUT_MACOSX_IMPLEMENTATION >= 1) +/* surface texturing API Mac OS X specific +* Note: +* glutSurfaceTexture has been deprecated, use GL_EXT_framebuffer_object +*/ +#ifdef MAC_OS_X_VERSION_10_5 +extern void APIENTRY glutSurfaceTexture (GLenum target, GLenum internalformat, int surfacewin); AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5 +#else +extern void APIENTRY glutSurfaceTexture (GLenum target, GLenum internalformat, int surfacewin); +#endif +#endif +#if (GLUT_MACOSX_IMPLEMENTATION >= 2) +/* Mac OS X specific API */ +extern void APIENTRY glutWMCloseFunc(void (*func)(void)); +extern void APIENTRY glutCheckLoop(void); +#endif +#endif + +/* GLUT overlay sub-API. */ +extern void APIENTRY glutEstablishOverlay(void); +extern void APIENTRY glutRemoveOverlay(void); +extern void APIENTRY glutUseLayer(GLenum layer); +extern void APIENTRY glutPostOverlayRedisplay(void); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) +extern void APIENTRY glutPostWindowOverlayRedisplay(int win); +#endif +extern void APIENTRY glutShowOverlay(void); +extern void APIENTRY glutHideOverlay(void); +#endif + +/* GLUT menu sub-API. */ +extern int APIENTRY glutCreateMenu(void (*)(int)); +extern void APIENTRY glutDestroyMenu(int menu); +extern int APIENTRY glutGetMenu(void); +extern void APIENTRY glutSetMenu(int menu); +extern void APIENTRY glutAddMenuEntry(const char *label, int value); +extern void APIENTRY glutAddSubMenu(const char *label, int submenu); +extern void APIENTRY glutChangeToMenuEntry(int item, const char *label, int value); +extern void APIENTRY glutChangeToSubMenu(int item, const char *label, int submenu); +extern void APIENTRY glutRemoveMenuItem(int item); +extern void APIENTRY glutAttachMenu(int button); +extern void APIENTRY glutDetachMenu(int button); + +/* GLUT window callback sub-API. */ +extern void APIENTRY glutDisplayFunc(void (*func)(void)); +extern void APIENTRY glutReshapeFunc(void (*func)(int width, int height)); +extern void APIENTRY glutKeyboardFunc(void (*func)(unsigned char key, int x, int y)); +extern void APIENTRY glutMouseFunc(void (*func)(int button, int state, int x, int y)); +extern void APIENTRY glutMotionFunc(void (*func)(int x, int y)); +extern void APIENTRY glutPassiveMotionFunc(void (*func)(int x, int y)); +extern void APIENTRY glutEntryFunc(void (*func)(int state)); +extern void APIENTRY glutVisibilityFunc(void (*func)(int state)); +extern void APIENTRY glutIdleFunc(void (*func)(void)); +extern void APIENTRY glutTimerFunc(unsigned int millis, void (*func)(int value), int value); +extern void APIENTRY glutMenuStateFunc(void (*func)(int state)); +#if (GLUT_API_VERSION >= 2) +extern void APIENTRY glutSpecialFunc(void (*func)(int key, int x, int y)); +extern void APIENTRY glutSpaceballMotionFunc(void (*func)(int x, int y, int z)); +extern void APIENTRY glutSpaceballRotateFunc(void (*func)(int x, int y, int z)); +extern void APIENTRY glutSpaceballButtonFunc(void (*func)(int button, int state)); +extern void APIENTRY glutButtonBoxFunc(void (*func)(int button, int state)); +extern void APIENTRY glutDialsFunc(void (*func)(int dial, int value)); +extern void APIENTRY glutTabletMotionFunc(void (*func)(int x, int y)); +extern void APIENTRY glutTabletButtonFunc(void (*func)(int button, int state, int x, int y)); +#if (GLUT_API_VERSION >= 3) +extern void APIENTRY glutMenuStatusFunc(void (*func)(int status, int x, int y)); +extern void APIENTRY glutOverlayDisplayFunc(void (*func)(void)); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern void APIENTRY glutWindowStatusFunc(void (*func)(int state)); +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +extern void APIENTRY glutKeyboardUpFunc(void (*func)(unsigned char key, int x, int y)); +extern void APIENTRY glutSpecialUpFunc(void (*func)(int key, int x, int y)); +extern void APIENTRY glutJoystickFunc(void (*func)(unsigned int buttonMask, int x, int y, int z), int pollInterval); +//#ifdef GLUT_OF_007_HACK +extern void APIENTRY glutDragEventFunc(void (*func)(char ** fileNames, int nFiles, int dragX, int dragY)); +//#endif +#endif +#endif +#endif + +/* GLUT color index sub-API. */ +extern void APIENTRY glutSetColor(int, GLfloat red, GLfloat green, GLfloat blue); +extern GLfloat APIENTRY glutGetColor(int ndx, int component); +extern void APIENTRY glutCopyColormap(int win); + +/* GLUT state retrieval sub-API. */ +extern int APIENTRY glutGet(GLenum type); +extern int APIENTRY glutDeviceGet(GLenum type); +#if (GLUT_API_VERSION >= 2) +/* GLUT extension support sub-API */ +extern int APIENTRY glutExtensionSupported(const char *name); +#endif +#if (GLUT_API_VERSION >= 3) +extern int APIENTRY glutGetModifiers(void); +extern int APIENTRY glutLayerGet(GLenum type); +#endif +#if (GLUT_API_VERSION >= 5) +extern void * APIENTRY glutGetProcAddress(const char *procName); +#endif + +/* GLUT font sub-API */ +extern void APIENTRY glutBitmapCharacter(void *font, int character); +extern int APIENTRY glutBitmapWidth(void *font, int character); +extern void APIENTRY glutStrokeCharacter(void *font, int character); +extern int APIENTRY glutStrokeWidth(void *font, int character); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern int APIENTRY glutBitmapLength(void *font, const unsigned char *string); +extern int APIENTRY glutStrokeLength(void *font, const unsigned char *string); +#endif + +/* GLUT pre-built models sub-API */ +extern void APIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks); +extern void APIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks); +extern void APIENTRY glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); +extern void APIENTRY glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks); +extern void APIENTRY glutWireCube(GLdouble size); +extern void APIENTRY glutSolidCube(GLdouble size); +extern void APIENTRY glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); +extern void APIENTRY glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings); +extern void APIENTRY glutWireDodecahedron(void); +extern void APIENTRY glutSolidDodecahedron(void); +extern void APIENTRY glutWireTeapot(GLdouble size); +extern void APIENTRY glutSolidTeapot(GLdouble size); +extern void APIENTRY glutWireOctahedron(void); +extern void APIENTRY glutSolidOctahedron(void); +extern void APIENTRY glutWireTetrahedron(void); +extern void APIENTRY glutSolidTetrahedron(void); +extern void APIENTRY glutWireIcosahedron(void); +extern void APIENTRY glutSolidIcosahedron(void); + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +/* GLUT video resize sub-API. */ +extern int APIENTRY glutVideoResizeGet(GLenum param); +extern void APIENTRY glutSetupVideoResizing(void); +extern void APIENTRY glutStopVideoResizing(void); +extern void APIENTRY glutVideoResize(int x, int y, int width, int height); +extern void APIENTRY glutVideoPan(int x, int y, int width, int height); + +/* GLUT debugging sub-API. */ +extern void APIENTRY glutReportErrors(void); +#endif + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +/* GLUT device control sub-API. */ +/* glutSetKeyRepeat modes. */ +#define GLUT_KEY_REPEAT_OFF 0 +#define GLUT_KEY_REPEAT_ON 1 +#define GLUT_KEY_REPEAT_DEFAULT 2 + +/* Joystick button masks. */ +#define GLUT_JOYSTICK_BUTTON_A 1 +#define GLUT_JOYSTICK_BUTTON_B 2 +#define GLUT_JOYSTICK_BUTTON_C 4 +#define GLUT_JOYSTICK_BUTTON_D 8 + +extern void APIENTRY glutIgnoreKeyRepeat(int ignore); +extern void APIENTRY glutSetKeyRepeat(int repeatMode); +extern void APIENTRY glutForceJoystickFunc(void); + +/* GLUT game mode sub-API. */ +/* glutGameModeGet. */ +#define GLUT_GAME_MODE_ACTIVE 0 +#define GLUT_GAME_MODE_POSSIBLE 1 +#define GLUT_GAME_MODE_WIDTH 2 +#define GLUT_GAME_MODE_HEIGHT 3 +#define GLUT_GAME_MODE_PIXEL_DEPTH 4 +#define GLUT_GAME_MODE_REFRESH_RATE 5 +#define GLUT_GAME_MODE_DISPLAY_CHANGED 6 + +extern void APIENTRY glutGameModeString(const char *string); +extern int APIENTRY glutEnterGameMode(void); +extern void APIENTRY glutLeaveGameMode(void); +extern int APIENTRY glutGameModeGet(GLenum mode); +#endif + +#ifdef __cplusplus +} + +#endif + +#ifdef GLUT_APIENTRY_DEFINED +# undef GLUT_APIENTRY_DEFINED +# undef APIENTRY +#endif + +#ifdef GLUT_WINGDIAPI_DEFINED +# undef GLUT_WINGDIAPI_DEFINED +# undef WINGDIAPI +#endif + +#endif /* __glut_h__ */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/glutbitmap.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/glutbitmap.h new file mode 100644 index 0000000..e29a016 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/glutbitmap.h @@ -0,0 +1,30 @@ +#ifndef __glutbitmap_h__ +#define __glutbitmap_h__ + +/* Copyright (c) Mark J. Kilgard, 1994. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#include "glut.h" + +typedef struct { + const GLsizei width; + const GLsizei height; + const GLfloat xorig; + const GLfloat yorig; + const GLfloat advance; + const GLubyte *bitmap; +} BitmapCharRec, *BitmapCharPtr; + +typedef struct { + const char *name; + const int num_chars; + const int first; + const BitmapCharRec * const *ch; +} BitmapFontRec, *BitmapFontPtr; + +typedef void *GLUTbitmapFont; + +#endif /* __glutbitmap_h__ */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/glutf90.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/glutf90.h new file mode 100644 index 0000000..f8a170b --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/glutf90.h @@ -0,0 +1,90 @@ +#ifndef __glutf90_h__ +#define __glutf90_h__ + +/* Copyright (c) Mark J. Kilgard & Willam F. Mitchell, 1998. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +/* This header provides the binding interface for William Mitchell's + f90gl Fortran 90 GLUT binding. Other GLUT language bindings + can and should use this interace. */ + +/* I appreciate the guidance from William Mitchell + (mitchell@cam.nist.gov) in developing this friend interface + for use by the f90gl package. See ../../README.fortran */ + +#include + +#ifndef GLUTCALLBACK + #define GLUTCALLBACK +#endif +#ifndef APIENTRY + #define APIENTRY +#endif + +/* Which callback enumerants for the __glutSetFCB/__glutGetFCB routines. */ +/* NOTE These values are part of a binary interface for the f90gl Fortran + 90 binding and so must NOT changes (additions are allowed). */ + +/* GLUTwindow callbacks. */ +#define GLUT_FCB_DISPLAY 0 /* GLUTdisplayFCB */ +#define GLUT_FCB_RESHAPE 1 /* GLUTreshapeFCB */ +#define GLUT_FCB_MOUSE 2 /* GLUTmouseFCB */ +#define GLUT_FCB_MOTION 3 /* GLUTmotionFCB */ +#define GLUT_FCB_PASSIVE 4 /* GLUTpassiveFCB */ +#define GLUT_FCB_ENTRY 5 /* GLUTentryFCB */ +#define GLUT_FCB_KEYBOARD 6 /* GLUTkeyboardFCB */ +#define GLUT_FCB_KEYBOARD_UP 7 /* GLUTkeyboardFCB */ +#define GLUT_FCB_WINDOW_STATUS 8 /* GLUTwindowStatusFCB */ +#define GLUT_FCB_VISIBILITY 9 /* GLUTvisibilityFCB */ +#define GLUT_FCB_SPECIAL 10 /* GLUTspecialFCB */ +#define GLUT_FCB_SPECIAL_UP 11 /* GLUTspecialFCB */ +#define GLUT_FCB_BUTTON_BOX 12 /* GLUTbuttonBoxFCB */ +#define GLUT_FCB_DIALS 13 /* GLUTdialsFCB */ +#define GLUT_FCB_SPACE_MOTION 14 /* GLUTspaceMotionFCB */ +#define GLUT_FCB_SPACE_ROTATE 15 /* GLUTspaceRotateFCB */ +#define GLUT_FCB_SPACE_BUTTON 16 /* GLUTspaceButtonFCB */ +#define GLUT_FCB_TABLET_MOTION 17 /* GLUTtabletMotionFCB */ +#define GLUT_FCB_TABLET_BUTTON 18 /* GLUTtabletButtonFCB */ +#define GLUT_FCB_JOYSTICK 19 /* GLUTjoystickFCB */ +#define GLUT_FCB_WMCLOSE 20 /* GLUTwmcloseFCB */ +/* Non-GLUTwindow callbacks. */ +#define GLUT_FCB_OVERLAY_DISPLAY 100 /* GLUTdisplayFCB */ +#define GLUT_FCB_SELECT 101 /* GLUTselectFCB */ +#define GLUT_FCB_TIMER 102 /* GLUTtimerFCB */ + +/* GLUT Fortran callback function types. */ +typedef void (GLUTCALLBACK *GLUTdisplayFCB) (void); +typedef void (GLUTCALLBACK *GLUTwmcloseFCB) (void); +typedef void (GLUTCALLBACK *GLUTreshapeFCB) (int *, int *); +/* NOTE the pressed key is int, not unsigned char for Fortran! */ +typedef void (GLUTCALLBACK *GLUTkeyboardFCB) (int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTmouseFCB) (int *, int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTmotionFCB) (int *, int *); +typedef void (GLUTCALLBACK *GLUTpassiveFCB) (int *, int *); +typedef void (GLUTCALLBACK *GLUTentryFCB) (int *); +typedef void (GLUTCALLBACK *GLUTwindowStatusFCB) (int *); +typedef void (GLUTCALLBACK *GLUTvisibilityFCB) (int *); +typedef void (GLUTCALLBACK *GLUTspecialFCB) (int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTbuttonBoxFCB) (int *, int *); +typedef void (GLUTCALLBACK *GLUTdialsFCB) (int *, int *); +typedef void (GLUTCALLBACK *GLUTspaceMotionFCB) (int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTspaceRotateFCB) (int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTspaceButtonFCB) (int *, int *); +typedef void (GLUTCALLBACK *GLUTtabletMotionFCB) (int *, int *); +typedef void (GLUTCALLBACK *GLUTtabletButtonFCB) (int *, int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTjoystickFCB) (unsigned int *buttonMask, int *x, int *y, int *z); + +typedef void (GLUTCALLBACK *GLUTselectFCB) (int *); +typedef void (GLUTCALLBACK *GLUTtimerFCB) (int *); +typedef void (GLUTCALLBACK *GLUTmenuStateFCB) (int *); /* DEPRICATED. */ +typedef void (GLUTCALLBACK *GLUTmenuStatusFCB) (int *, int *, int *); +typedef void (GLUTCALLBACK *GLUTidleFCB) (void); + +/* Functions that set and return Fortran callback functions. */ +extern void* APIENTRY __glutGetFCB(int which); +extern void APIENTRY __glutSetFCB(int which, void *func); + +#endif /* __glutf90_h__ */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/glutstroke.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/glutstroke.h new file mode 100644 index 0000000..cbc9e15 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/glutstroke.h @@ -0,0 +1,42 @@ +#ifndef __glutstroke_h__ +#define __glutstroke_h__ + +/* Copyright (c) Mark J. Kilgard, 1994. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#if defined(_WIN32) +#pragma warning (disable:4244) /* disable bogus conversion warnings */ +#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ +#endif + +typedef struct { + float x; + float y; +} CoordRec, *CoordPtr; + +typedef struct { + int num_coords; + const CoordRec *coord; +} StrokeRec, *StrokePtr; + +typedef struct { + int num_strokes; + const StrokeRec *stroke; + float center; + float right; +} StrokeCharRec, *StrokeCharPtr; + +typedef struct { + const char *name; + int num_chars; + const StrokeCharRec *ch; + float top; + float bottom; +} StrokeFontRec, *StrokeFontPtr; + +typedef void *GLUTstrokeFont; + +#endif /* __glutstroke_h__ */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/gutil.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/gutil.h new file mode 100644 index 0000000..f7ffcf3 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/gutil.h @@ -0,0 +1,89 @@ + +/* + * gutil.h + * + * FUNCTION: + * Provide utilities that allow rotation to occur + * around any axis. + * + * HISTORY: + * created by Linas Vepstas 1990 + * added single & double precision, June 1991, Linas Vepstas + */ + +#ifndef __GUTIL_H__ +#define __GUTIL_H__ + +#ifdef __GUTIL_DOUBLE +#define gutDouble double +#else +#define gutDouble float +#endif + + +#ifdef _NO_PROTO /* NO ANSI C PROTOTYPING */ + +/* Rotation Utilities */ +extern void rot_axis_f (); +extern void rot_about_axis_f (); +extern void rot_omega_f (); +extern void urot_axis_f (); +extern void urot_about_axis_f (); +extern void urot_omega_f (); + +/* double-precision versions */ +extern void rot_axis_d (); +extern void rot_about_axis_d (); +extern void rot_omega_d (); +extern void urot_axis_d (); +extern void urot_about_axis_d (); +extern void urot_omega_d (); + +/* viewpoint functions */ +extern void uview_direction_d (); +extern void uview_direction_f (); +extern void uviewpoint_d (); +extern void uviewpoint_f (); + +#else /* _NO_PROTO */ /* ANSI C PROTOTYPING */ + +/* Rotation Utilities */ +extern void rot_axis_f (float omega, float axis[3]); +extern void rot_about_axis_f (float angle, float axis[3]); +extern void rot_omega_f (float axis[3]); +extern void urot_axis_f (float m[4][4], float omega, float axis[3]); +extern void urot_about_axis_f (float m[4][4], float angle, float axis[3]); +extern void urot_omega_f (float m[4][4], float axis[3]); + +/* double-precision versions */ +extern void rot_axis_d (double omega, double axis[3]); +extern void rot_about_axis_d (double angle, double axis[3]); +extern void rot_omega_d (double axis[3]); +extern void urot_axis_d (double m[4][4], double omega, double axis[3]); +extern void urot_about_axis_d (double m[4][4], double angle, double axis[3]); +extern void urot_omega_d (double m[4][4], double axis[3]); + +/* viewpoint functions */ +extern void uview_direction_d (double m[4][4], /* returned */ + double v21[3], /* input */ + double up[3]); /* input */ + +extern void uview_direction_f (float m[4][4], /* returned */ + float v21[3], /* input */ + float up[3]); /* input */ + +extern void uviewpoint_d (double m[4][4], /* returned */ + double v1[3], /* input */ + double v2[3], /* input */ + double up[3]); /* input */ + +extern void uviewpoint_f (float m[4][4], /* returned */ + float v1[3], /* input */ + float v2[3], /* input */ + float up[3]); /* input */ + +#endif /* _NO_PROTO */ + +#endif /* _GUTIL_H__ */ + +/* ------------------- end of file ---------------------- */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/intersect.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/intersect.h new file mode 100644 index 0000000..f5ff7a5 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/intersect.h @@ -0,0 +1,391 @@ +/* + * FUNCTION: + * This file contains a number of utilities useful to 3D graphics in + * general, and to the generation of tubing and extrusions in particular + * + * HISTORY: + * Written by Linas Vepstas, August 1991 + * Updated to correctly handle degenerate cases, Linas, February 1993 + */ + +#include +#include "port.h" +#include "vvector.h" + +#define BACKWARDS_INTERSECT (2) + +/* ========================================================== */ +/* + * the Degenerate_Tolerance token represents the greatest amount by + * which different scales in a graphics environment can differ before + * they should be considered "degenerate". That is, when one vector is + * a million times longer than another, changces are that the second will + * be less than a pixel int, and therefore was probably meant to be + * degenerate (by the CAD package, etc.) But what should this tolerance + * be? At least 1 in onethousand (since screen sizes are 1K pixels), but + * les than 1 in 4 million (since this is the limit of single-precision + * floating point accuracy). Of course, if double precision were used, + * then the tolerance could be increased. + * + * Potentially, this naive assumption could cause problems if the CAD + * package attempts to zoom in on small details, and turns out, certain + * points should not hvae been degenerate. The problem presented here + * is that the tolerance could run out before single-precision ran + * out, and so the CAD packages would perceive this as a "bug". + * One alternative is to fiddle around & try to tighten the tolerance. + * However, the right alternative is to code the graphics pipeline in + * double-precision (and tighten the tolerance). + * + * By the way, note that Degernate Tolerance is a "dimensionless" + * quantitiy -- it has no units -- it does not measure feet, inches, + * millimeters or pixels. It is used only in the computations of ratios + * and relative lengths. + */ + +/* + * Right now, the tolerance is set to 2 parts in a million, which + * corresponds to a 19-bit distinction of mantissas. Note that + * single-precsion numbers have 24 bit mantissas. + */ + +#define DEGENERATE_TOLERANCE (0.000002) + +/* ========================================================== */ +/* + * The macro and subroutine INTERSECT are designed to compute the + * intersection of a line (defined by the points v1 and v2) and a plane + * (defined as plane which is normal to the vector n, and contains the + * point p). Both return the point sect, which is the point of + * interesection. + * + * This MACRO attemps to be fairly robust by checking for a divide by + * zero. + */ + +/* ========================================================== */ +/* + * HACK ALERT + * The intersection parameter t has the nice property that if t>1, + * then the intersection is "in front of" p1, and if t<0, then the + * intersection is "behind" p2. Unfortunately, as the intersecting plane + * and the line become parallel, t wraps through infinity -- i.e. t can + * become so large that t becomes "greater than infinity" and comes back + * as a negative number (i.e. winding number hopped by one unit). We + * have no way of detecting this situation without adding gazzillions + * of lines of code of topological algebra to detect the winding number; + * and this would be incredibly difficult, and ruin performance. + * + * Thus, we've installed a cheap hack for use by the "cut style" drawing + * routines. If t proves to be a large negative number (more negative + * than -5), then we assume that t was positive and wound through + * infinity. This makes most cuts look good, without introducing bogus + * cuts at infinity. + */ +/* ========================================================== */ + +#define INTERSECT(sect,p,n,v1,v2) \ +{ \ + gleDouble deno, numer, t, omt; \ + \ + deno = (v1[0] - v2[0]) * n[0]; \ + deno += (v1[1] - v2[1]) * n[1]; \ + deno += (v1[2] - v2[2]) * n[2]; \ + \ + if (deno == 0.0) { \ + VEC_COPY (n, v1); \ + /* printf ("Intersect: Warning: line is coplanar with plane \n"); */ \ + } else { \ + \ + numer = (p[0] - v2[0]) * n[0]; \ + numer += (p[1] - v2[1]) * n[1]; \ + numer += (p[2] - v2[2]) * n[2]; \ + \ + t = numer / deno; \ + omt = 1.0 - t; \ + \ + sect[0] = t * v1[0] + omt * v2[0]; \ + sect[1] = t * v1[1] + omt * v2[1]; \ + sect[2] = t * v1[2] + omt * v2[2]; \ + } \ +} + +/* ========================================================== */ +/* + * The macro and subroutine BISECTING_PLANE compute a normal vector that + * describes the bisecting plane between three points (v1, v2 and v3). + * This bisecting plane has the following properties: + * 1) it contains the point v2 + * 2) the angle it makes with v21 == v2 - v1 is equal to the angle it + * makes with v32 == v3 - v2 + * 3) it is perpendicular to the plane defined by v1, v2, v3. + * + * Having input v1, v2, and v3, it returns a unit vector n. + * + * In some cases, the user may specify degenerate points, and still + * expect "reasonable" or "obvious" behaviour. The "expected" + * behaviour for these degenerate cases is: + * + * 1) if v1 == v2 == v3, then return n=0 + * 2) if v1 == v2, then return v32 (normalized). + * 3) if v2 == v3, then return v21 (normalized). + * 4) if v1, v2 and v3 co-linear, then return v21 (normalized). + * + * Mathematically, these special cases "make sense" -- we just have to + * code around potential divide-by-zero's in the code below. + */ + +/* ========================================================== */ + +#define BISECTING_PLANE(valid,n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + double len21, len32; \ + double vdot; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_LENGTH (len21, v21); \ + VEC_LENGTH (len32, v32); \ + \ + if (len21 <= DEGENERATE_TOLERANCE * len32) { \ + \ + if (len32 == 0.0) { \ + /* all three points lie ontop of one-another */ \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + /* return a normalized copy of v32 as bisector */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (n, len32, v32); \ + valid = TRUE; \ + } \ + \ + } else { \ + \ + valid = TRUE; \ + \ + if (len32 <= DEGENERATE_TOLERANCE * len21) { \ + /* return a normalized copy of v21 as bisector */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (n, len21, v21); \ + \ + } else { \ + \ + /* normalize v21 to be of unit length */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (v21, len21, v21); \ + \ + /* normalize v32 to be of unit length */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (v32, len32, v32); \ + \ + VEC_DOT_PRODUCT (vdot, v32, v21); \ + \ + /* if vdot == 1 or -1, then points are colinear */ \ + if ((vdot >= (1.0-DEGENERATE_TOLERANCE)) || \ + (vdot <= (-1.0+DEGENERATE_TOLERANCE))) { \ + VEC_COPY (n, v21); \ + } else { \ + \ + /* go do the full computation */ \ + n[0] = vdot * (v32[0] + v21[0]) - v32[0] - v21[0]; \ + n[1] = vdot * (v32[1] + v21[1]) - v32[1] - v21[1]; \ + n[2] = vdot * (v32[2] + v21[2]) - v32[2] - v21[2]; \ + \ + /* if above if-test's passed, \ + * n should NEVER be of zero length */ \ + VEC_NORMALIZE (n); \ + } \ + } \ + } \ +} + +/* ========================================================== */ +/* + * The block of code below is ifdef'd out, and is here for reference + * purposes only. It performs the "mathematically right thing" for + * computing a bisecting plane, but is, unfortunately, subject ot noise + * in the presence of near degenerate points. Since computer graphics, + * due to sloppy coding, laziness, or correctness, is filled with + * degenerate points, we can't really use this version. The code above + * is far more appropriate for graphics. + */ + +#ifdef MATHEMATICALLY_EXACT_GRAPHICALLY_A_KILLER +#define BISECTING_PLANE(n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + double len21, len32; \ + double vdot; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_LENGTH (len21, v21); \ + VEC_LENGTH (len32, v32); \ + \ + if (len21 == 0.0) { \ + \ + if (len32 == 0.0) { \ + /* all three points lie ontop of one-another */ \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + /* return a normalized copy of v32 as bisector */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (n, len32, v32); \ + } \ + \ + } else { \ + \ + /* normalize v21 to be of unit length */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (v21, len21, v21); \ + \ + if (len32 == 0.0) { \ + /* return a normalized copy of v21 as bisector */ \ + VEC_COPY (n, v21); \ + } else { \ + \ + /* normalize v32 to be of unit length */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (v32, len32, v32); \ + \ + VEC_DOT_PRODUCT (vdot, v32, v21); \ + \ + /* if vdot == 1 or -1, then points are colinear */ \ + if ((vdot == 1.0) || (vdot == -1.0)) { \ + VEC_COPY (n, v21); \ + } else { \ + \ + /* go do the full computation */ \ + n[0] = vdot * (v32[0] + v21[0]) - v32[0] - v21[0]; \ + n[1] = vdot * (v32[1] + v21[1]) - v32[1] - v21[1]; \ + n[2] = vdot * (v32[2] + v21[2]) - v32[2] - v21[2]; \ + \ + /* if above if-test's passed, \ + * n should NEVER be of zero length */ \ + VEC_NORMALIZE (n); \ + } \ + } \ + } \ +} +#endif + +/* ========================================================== */ +/* + * This macro computes the plane perpendicular to the the plane + * defined by three points, and whose normal vector is givven as the + * difference between the two vectors ... + * + * (See way below for the "math" model if you want to understand this. + * The comments about relative errors above apply here.) + */ + +#define CUTTING_PLANE(valid,n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + double len21, len32; \ + double lendiff; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_LENGTH (len21, v21); \ + VEC_LENGTH (len32, v32); \ + \ + if (len21 <= DEGENERATE_TOLERANCE * len32) { \ + \ + if (len32 == 0.0) { \ + /* all three points lie ontop of one-another */ \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + /* return a normalized copy of v32 as cut-vector */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (n, len32, v32); \ + valid = TRUE; \ + } \ + \ + } else { \ + \ + valid = TRUE; \ + \ + if (len32 <= DEGENERATE_TOLERANCE * len21) { \ + /* return a normalized copy of v21 as cut vector */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (n, len21, v21); \ + } else { \ + \ + /* normalize v21 to be of unit length */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (v21, len21, v21); \ + \ + /* normalize v32 to be of unit length */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (v32, len32, v32); \ + \ + VEC_DIFF (n, v21, v32); \ + VEC_LENGTH (lendiff, n); \ + \ + /* if the perp vector is very small, then the two \ + * vectors are darn near collinear, and the cut \ + * vector is probably poorly defined. */ \ + if (lendiff < DEGENERATE_TOLERANCE) { \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + lendiff = 1.0 / lendiff; \ + VEC_SCALE (n, lendiff, n); \ + } \ + } \ + } \ +} + +/* ========================================================== */ + +#ifdef MATHEMATICALLY_EXACT_GRAPHICALLY_A_KILLER +#define CUTTING_PLANE(n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_NORMALIZE (v21); \ + VEC_NORMALIZE (v32); \ + \ + VEC_DIFF (n, v21, v32); \ + VEC_NORMALIZE (n); \ +} +#endif + + +/* ============================================================ */ +/* This macro is used in several places to cycle through a series of + * points to find the next non-degenerate point in a series */ + +#define FIND_NON_DEGENERATE_POINT(inext,npoints,len,diff,point_array) \ +{ \ + gleDouble slen; \ + gleDouble summa[3]; \ + \ + do { \ + /* get distance to next point */ \ + VEC_DIFF (diff, point_array[inext+1], point_array[inext]); \ + VEC_LENGTH (len, diff); \ + VEC_SUM (summa, point_array[inext+1], point_array[inext]); \ + VEC_LENGTH (slen, summa); \ + slen *= DEGENERATE_TOLERANCE; \ + inext ++; \ + } while ((len <= slen) && (inext < npoints-1)); \ +} + +/* ========================================================== */ + +extern int bisecting_plane (gleDouble n[3], /* returned */ + gleDouble v1[3], /* input */ + gleDouble v2[3], /* input */ + gleDouble v3[3]); /* input */ + diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/port.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/port.h new file mode 100644 index 0000000..2827bbf --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/port.h @@ -0,0 +1,298 @@ + +/* + * port.h + * + * FUNCTION: + * This file contains defines for porting the tubing toolkit from GL to + * OpenGL to some callback scheme. + * + * HISTORY: + * Created by Linas Vepstas -- February 1993 + * Added auto texture coord generation hacks, Linas April 1994 + */ + +#ifndef __GLE_PORT_H__ +#define __GLE_PORT_H__ + + +#ifndef TRUE +#define TRUE 1 +#endif + +#ifndef FALSE +#define FALSE 0 +#endif + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +/* ====================================================== */ +/* Some compilers can't handle multiply-subscripted array's */ + +#ifdef FUNKY_C +typedef gleDouble gleVector; +#define AVAL(arr,n,i,j) arr(6*n+3*i+j) +#define VVAL(arr,n,i) arr(3*n+i) + +#else /* FUNKY_C */ +typedef double gleVector[3]; +typedef double glePoint[2]; +#define AVAL(arr,n,i,j) arr[n][i][j] +#define VVAL(arr,n,i) arr[n][i]; + +#endif /* FUNKY_C */ + +/* ====================================================== */ +/* These are used to convey info about topography to the + * texture mapping routines */ + +#define FRONT 1 +#define BACK 2 +#define FRONT_CAP 3 +#define BACK_CAP 4 +#define FILLET 5 + +/* ====================================================== */ + +#define __GLE_DOUBLE + +/* ====================================================== */ + +#ifdef __GLE_DOUBLE +#ifndef gleDouble + #define gleDouble double +#endif +#define urot_axis(a,b,c) urot_axis_d(a,b,c) +#define uview_direction(a,b,c) uview_direction_d(a,b,c) +#define uviewpoint(a,b,c,d) uviewpoint_d(a,b,c,d) +#define MULTMATRIX(m) MULTMATRIX_D(m) +#define LOADMATRIX(m) LOADMATRIX_D(m) +#define V3F(x,j,id) V3F_D(x,j,id) +#define N3F(x) N3F_D(x) +#define T2F(x,y) T2F_D(x,y) +#else +#define gleDouble float +#define urot_axis(a,b,c) urot_axis_f(a,b,c) +#define uview_direction(a,b,c) uview_direction_f(a,b,c) +#define uviewpoint(a,b,c,d) uviewpoint_f(a,b,c,d) +#define MULTMATRIX(m) MULTMATRIX_F(m) +#define LOADMATRIX(m) LOADMATRIX_F(m) +#define V3F(x,j,id) V3F_F(x,j,id) +#define N3F(x) N3F_F(x) +#define T2F(x,y) T2F_F(x,y) +#endif + +/* ====================================================== */ + +#if (defined DEBUG_GL_32 || DEBUG_OPENGL_10) +#undef GL_32 +#undef OPENGL_10 + +#define BGNTMESH(i,len) printf ("bgntmesh() \n"); +#define ENDTMESH() printf ("endtmesh() \n"); +#define BGNPOLYGON() printf ("bgnpolygon() \n"); +#define ENDPOLYGON() printf ("endpolygon() \n"); +#define V3F_F(x,j,id) printf ("v3f(x) %f %f %f \n", x[0], x[1], x[2]); +#define V3F_D(x,j,id) printf ("v3d(x) %f %f %f \n", x[0], x[1], x[2]); +#define N3F_F(x) printf ("n3f(x) %f %f %f \n", x[0], x[1], x[2]); +#define N3F_D(x) printf ("n3d(x) %f %f %f \n", x[0], x[1], x[2]); +#define C3F(x) printf ("c3f(x) %f %f %f \n", x[0], x[1], x[2]); + +#define POPMATRIX() printf ("popmatrix () \n"); +#define PUSHMATRIX() printf ("pushmatrix() \n"); +#define MULTMATRIX_F(x) MULTMATRIX_D(x) +#define LOADMATRIX_F(x) LOADMATRIX_D(x) + + +#define LOADMATRIX_D(x) { \ + int i, j; \ + printf ("loadmatrix (x) \n"); \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + printf ( "%f ", x[i][j]); \ + } \ + printf (" \n"); \ + } \ +} + +#define MULTMATRIX_D(x) { \ + int i, j; \ + printf ("multmatrix (x) \n"); \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + printf ( "%f ", x[i][j]); \ + } \ + printf (" \n"); \ + } \ +} + +#define __IS_LIGHTING_ON (1) + +#endif + +/* ====================================================== */ + +#ifdef GL_32 + +#include + +#define BGNTMESH(i,len) bgntmesh() +#define ENDTMESH() endtmesh() +#define BGNPOLYGON() bgnpolygon() +#define ENDPOLYGON() endpolygon() +#define V3F_F(x,j,id) v3f(x) +#define V3F_D(x,j,id) v3d(x) +#define N3F_F(x) n3f(x) +#define T2F_F(x,y) +#define T2F_D(x,y) +#define C3F(x) c3f(x) + +#define POPMATRIX() popmatrix () +#define PUSHMATRIX() pushmatrix() +#define MULTMATRIX_F(x) multmatrix (x) +#define LOADMATRIX_F(x) loadmatrix (x) + +#define N3F_D(x) { \ + float nnn[3]; \ + nnn[0] = (float) x[0]; \ + nnn[1] = (float) x[1]; \ + nnn[2] = (float) x[2]; \ + n3f (nnn); \ +} + +#define LOADMATRIX_D(x) { \ + int i, j; \ + float mmm[4][4]; \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + mmm[i][j] = (float) x[i][j]; \ + } \ + } \ + loadmatrix(mmm); \ +} + +#define MULTMATRIX_D(x) { \ + int i, j; \ + float mmm[4][4]; \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + mmm[i][j] = (float) x[i][j]; \ + } \ + } \ + multmatrix(mmm); \ +} + +/* #define __IS_LIGHTING_ON (MSINGLE == getmmode()) */ +#define __IS_LIGHTING_ON (extrusion_join_style & TUBE_LIGHTING_ON) + +#endif /* GL_32 */ + +/* ====================================================== */ +#ifdef OPENGL_10 + +#if defined(_WIN32) +#include +#pragma warning (disable:4244) /* disable bogus conversion warnings */ +#endif +#include +#include + +/* +#define N3F_F(x) { \ + float nnn[3]; \ + nnn[0] = - (float) x[0]; \ + nnn[1] = - (float) x[1]; \ + nnn[2] = - (float) x[2]; \ + glNormal3fv (nnn); \ +} +#define N3F_D(x) { \ + float nnn[3]; \ + nnn[0] = - (float) x[0]; \ + nnn[1] = - (float) x[1]; \ + nnn[2] = - (float) x[2]; \ + glNormal3fv (nnn); \ +} +*/ + +#define C3F(x) glColor3fv(x) +#define T2F_F(x,y) glTexCoord2f(x,y) +#define T2F_D(x,y) glTexCoord2d(x,y) + +#define POPMATRIX() glPopMatrix() +#define PUSHMATRIX() glPushMatrix() + +#define MULTMATRIX_F(x) glMultMatrixf ((const GLfloat *)x) +#define LOADMATRIX_F(x) glLoadMatrixf ((const GLfloat *)x) + +#define MULTMATRIX_D(x) glMultMatrixd ((const GLdouble *)x) +#define LOADMATRIX_D(x) glLoadMatrixd ((const GLdouble *)x) + +#define __IS_LIGHTING_ON (glIsEnabled(GL_LIGHTING)) + +/* ====================================================== */ +#ifdef AUTO_TEXTURE + +#define BGNTMESH(i,len) { \ + if(_gle_gc -> bgn_gen_texture) (*(_gle_gc -> bgn_gen_texture))(i,len);\ + glBegin (GL_TRIANGLE_STRIP); \ +} + +#define BGNPOLYGON() { \ + if(_gle_gc -> bgn_gen_texture) (*(_gle_gc -> bgn_gen_texture))();\ + glBegin (GL_POLYGON); \ +} + +#define N3F_F(x) { \ + if(_gle_gc -> n3f_gen_texture) (*(_gle_gc -> n3f_gen_texture))(x); \ + glNormal3fv(x); \ +} + +#define N3F_D(x) { \ + if(_gle_gc -> n3d_gen_texture) (*(_gle_gc -> n3d_gen_texture))(x); \ + glNormal3dv(x); \ +} + +#define V3F_F(x,j,id) { \ + if(_gle_gc -> v3f_gen_texture) (*(_gle_gc -> v3f_gen_texture))(x,j,id);\ + glVertex3fv(x); \ +} + +#define V3F_D(x,j,id) { \ + if(_gle_gc -> v3d_gen_texture) (*(_gle_gc -> v3d_gen_texture))(x,j,id); \ + glVertex3dv(x); \ +} + +#define ENDTMESH() { \ + if(_gle_gc -> end_gen_texture) (*(_gle_gc -> end_gen_texture))(); \ + glEnd (); \ +} + +#define ENDPOLYGON() { \ + if(_gle_gc -> end_gen_texture) (*(_gle_gc -> end_gen_texture))(); \ + glEnd (); \ +} + +/* ====================================================== */ +#else /* AUTO_TEXTURE */ + +#define BGNTMESH(i,len) glBegin (GL_TRIANGLE_STRIP); +#define BGNPOLYGON() glBegin (GL_POLYGON); + +#define N3F_F(x) glNormal3fv(x) +#define N3F_D(x) glNormal3dv(x) +#define V3F_F(x,j,id) glVertex3fv(x); +#define V3F_D(x,j,id) glVertex3dv(x); + +#define ENDTMESH() glEnd () +#define ENDPOLYGON() glEnd() + +#endif /* AUTO_TEXTURE */ + +#endif /* OPENGL_10 */ + +/* ====================================================== */ + + +#endif /* __GLE_PORT_H__ */ +/* ================== END OF FILE ======================= */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/rot.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/rot.h new file mode 100644 index 0000000..91083e9 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/rot.h @@ -0,0 +1,98 @@ + +/* + * rot.h + * + * FUNCTION: + * rotation matrix utilities + * + * HISTORY: + * Linas Vepstas Aug 1990 + */ + +/* ========================================================== */ +/* + * The MACROS below generate and return more traditional rotation + * matrices -- matrices for rotations about principal axes. + */ +/* ========================================================== */ + +#define ROTX_CS(m,cosine,sine) \ +{ \ + /* rotation about the x-axis */ \ + \ + m[0][0] = 1.0; \ + m[0][1] = 0.0; \ + m[0][2] = 0.0; \ + m[0][3] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = (cosine); \ + m[1][2] = (sine); \ + m[1][3] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = -(sine); \ + m[2][2] = (cosine); \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ + +#define ROTY_CS(m,cosine,sine) \ +{ \ + /* rotation about the y-axis */ \ + \ + m[0][0] = (cosine); \ + m[0][1] = 0.0; \ + m[0][2] = -(sine); \ + m[0][3] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = 1.0; \ + m[1][2] = 0.0; \ + m[1][3] = 0.0; \ + \ + m[2][0] = (sine); \ + m[2][1] = 0.0; \ + m[2][2] = (cosine); \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ + +#define ROTZ_CS(m,cosine,sine) \ +{ \ + /* rotation about the z-axis */ \ + \ + m[0][0] = (cosine); \ + m[0][1] = (sine); \ + m[0][2] = 0.0; \ + m[0][3] = 0.0; \ + \ + m[1][0] = -(sine); \ + m[1][1] = (cosine); \ + m[1][2] = 0.0; \ + m[1][3] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = 0.0; \ + m[2][2] = 1.0; \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/segment.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/segment.h new file mode 100644 index 0000000..8d1cf04 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/segment.h @@ -0,0 +1,98 @@ + +/* + * MODULE: segment.h + * + * FUNCTION: + * Contains function prototypes for segment drawing subroutines. + * These are used only internally, and are not to be exported to + * the user. + * + * HISTORY: + * Create by Linas Vepstas + * Added tube.h include to define gleDouble, tad February 2002 + */ + +/* ============================================================ */ + +#include "tube.h" + +extern void draw_segment_plain (int ncp, /* number of contour points */ + gleDouble front_contour[][3], + gleDouble back_contour[][3], + int inext, double len); + +extern void draw_segment_color (int ncp, /* number of contour points */ + gleDouble front_contour[][3], + gleDouble back_contour[][3], + float color_last[3], + float color_next[3], + int inext, double len); + +extern void draw_segment_edge_n (int ncp, /* number of contour points */ + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + int inext, double len); + +extern void draw_segment_c_and_edge_n (int ncp, + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + float color_last[3], + float color_next[3], + int inext, double len); + +extern void draw_segment_facet_n (int ncp, + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + int inext, double len); + +extern void draw_segment_c_and_facet_n (int ncp, + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + float color_last[3], + float color_next[3], + int inext, double len); + +/* ============================================================ */ + +extern void draw_binorm_segment_edge_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + int inext, double len); + +extern void draw_binorm_segment_c_and_edge_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + float color_last[3], + float color_next[3], + int inext, double len); + +extern void draw_binorm_segment_facet_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + int inext, double len); + +extern void draw_binorm_segment_c_and_facet_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + float color_last[3], + float color_next[3], + int inext, double len); + +extern void draw_angle_style_back_cap (int ncp, /* number of contour points */ + gleDouble bi[3], /* biscetor */ + gleDouble point_array[][3]); /* polyline */ + +/* -------------------------- end of file -------------------------------- */ + diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/tube.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/tube.h new file mode 100644 index 0000000..c303e19 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/tube.h @@ -0,0 +1,203 @@ +/* + * tube.h + * + * FUNCTION: + * Tubing and Extrusion header file. + * This file provides protypes and defines for the extrusion + * and tubing primitives. + * + * HISTORY: + * Linas Vepstas 1990, 1991 + */ + +#ifndef __TUBE_H__ +#define __TUBE_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + GLE API revision history: + + GLE_API_VERSION is updated to reflect GLE API changes (interface + changes, semantic changes, deletions, or additions). + + GLE_API_VERSION=228 GLUT 3.7 release of GLE. +**/ +#ifndef GLE_API_VERSION /* allow this to be overriden */ +#define GLE_API_VERSION 228 +#endif + +/* some types */ +#ifndef gleDouble + #define gleDouble double +#endif +typedef gleDouble gleAffine[2][3]; + +/* ====================================================== */ + +/* defines for tubing join styles */ +#define TUBE_JN_RAW 0x1 +#define TUBE_JN_ANGLE 0x2 +#define TUBE_JN_CUT 0x3 +#define TUBE_JN_ROUND 0x4 +#define TUBE_JN_MASK 0xf /* mask bits */ +#define TUBE_JN_CAP 0x10 + +/* determine how normal vectors are to be handled */ +#define TUBE_NORM_FACET 0x100 +#define TUBE_NORM_EDGE 0x200 +#define TUBE_NORM_PATH_EDGE 0x400 /* for spiral, lathe, helix primitives */ +#define TUBE_NORM_MASK 0xf00 /* mask bits */ + +/* closed or open countours */ +#define TUBE_CONTOUR_CLOSED 0x1000 + +#define GLE_TEXTURE_ENABLE 0x10000 +#define GLE_TEXTURE_STYLE_MASK 0xff +#define GLE_TEXTURE_VERTEX_FLAT 1 +#define GLE_TEXTURE_NORMAL_FLAT 2 +#define GLE_TEXTURE_VERTEX_CYL 3 +#define GLE_TEXTURE_NORMAL_CYL 4 +#define GLE_TEXTURE_VERTEX_SPH 5 +#define GLE_TEXTURE_NORMAL_SPH 6 +#define GLE_TEXTURE_VERTEX_MODEL_FLAT 7 +#define GLE_TEXTURE_NORMAL_MODEL_FLAT 8 +#define GLE_TEXTURE_VERTEX_MODEL_CYL 9 +#define GLE_TEXTURE_NORMAL_MODEL_CYL 10 +#define GLE_TEXTURE_VERTEX_MODEL_SPH 11 +#define GLE_TEXTURE_NORMAL_MODEL_SPH 12 + +#ifdef GL_32 +/* HACK for GL 3.2 -- needed because no way to tell if lighting is on. */ +#define TUBE_LIGHTING_ON 0x80000000 + +#define gleExtrusion extrusion +#define gleSetJoinStyle setjoinstyle +#define gleGetJoinStyle getjoinstyle +#define glePolyCone polycone +#define glePolyCylinder polycylinder +#define gleSuperExtrusion super_extrusion +#define gleTwistExtrusion twist_extrusion +#define gleSpiral spiral +#define gleLathe lathe +#define gleHelicoid helicoid +#define gleToroid toroid +#define gleScrew screw + +#endif /* GL_32 */ + +extern int gleGetJoinStyle (void); +extern void gleSetJoinStyle (int style); /* bitwise OR of flags */ +extern int gleGetNumSlices(void); +extern void gleSetNumSlices(int slices); + +/* draw polyclinder, specified as a polyline */ +extern void glePolyCylinder (int npoints, /* num points in polyline */ + gleDouble point_array[][3], /* polyline vertces */ + float color_array[][3], /* colors at polyline verts */ + gleDouble radius); /* radius of polycylinder */ + +/* draw polycone, specified as a polyline with radii */ +extern void glePolyCone (int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3], /* colors at polyline verts */ + gleDouble radius_array[]); /* cone radii at polyline verts */ + +/* extrude arbitrary 2D contour along arbitrary 3D path */ +extern void gleExtrusion (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3]); /* colors at polyline verts */ + +/* extrude 2D contour, specifying local rotations (twists) */ +extern void gleTwistExtrusion (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3], /* color at polyline verts */ + gleDouble twist_array[]); /* countour twists (in degrees) */ + +/* extrude 2D contour, specifying local affine tranformations */ +extern void gleSuperExtrusion (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3], /* color at polyline verts */ + gleDouble xform_array[][2][3]); /* 2D contour xforms */ + +/* spiral moves contour along helical path by parallel transport */ +extern void gleSpiral (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta); /* degrees to spiral around */ + +/* lathe moves contour along helical path by helically shearing 3D space */ +extern void gleLathe (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta); /* degrees to spiral around */ + +/* similar to spiral, except contour is a circle */ +extern void gleHelicoid (gleDouble rToroid, /* circle contour (torus) radius */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta); /* degrees to spiral around */ + +/* similar to lathe, except contour is a circle */ +extern void gleToroid (gleDouble rToroid, /* circle contour (torus) radius */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta); /* degrees to spiral around */ + +/* draws a screw shape */ +extern void gleScrew (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + gleDouble startz, /* start of segment */ + gleDouble endz, /* end of segment */ + gleDouble twist); /* number of rotations */ + +extern void gleTextureMode (int mode); + +#ifdef __cplusplus +} + +#endif +#endif /* __TUBE_H__ */ +/* ================== END OF FILE ======================= */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/tube_gc.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/tube_gc.h new file mode 100644 index 0000000..ccd2853 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/tube_gc.h @@ -0,0 +1,78 @@ + +/* + * tube_gc.h + * + * FUNCTION: + * This file allows for easy changes to changes in the way the extrusion + * library handles state info (i.e. context). + * + * HISTORY: + * Linas Vepstas --- February 1993 + * Added auto texture coord generation hacks, Linas April 1994 + * Added tube.h include to define gleDouble, tad February 2002 + */ + +#include "tube.h" +#include "port.h" /* for gleVector */ + +typedef float gleColor[3]; +typedef double gleTwoVec[2]; + +typedef struct { + + /* public methods */ + void (*bgn_gen_texture) (int, double); + void (*n3f_gen_texture) (float *); + void (*n3d_gen_texture) (double *); + void (*v3f_gen_texture) (float *, int, int); + void (*v3d_gen_texture) (double *, int, int); + void (*end_gen_texture) (void); + + /* protected members -- "general knowledge" stuff */ + int join_style; + + /* arguments passed into extrusion code */ + int ncp; /* number of contour points */ + gleTwoVec *contour; /* 2D contour */ + gleTwoVec *cont_normal; /* 2D contour normals */ + gleDouble *up; /* up vector */ + int npoints; /* number of points in polyline */ + gleVector *point_array; /* path */ + gleColor *color_array; /* path colors */ + gleAffine *xform_array; /* contour xforms */ + + /* private members, used by texturing code */ + int num_vert; + int segment_number; + double segment_length; + double accum_seg_len; + double prev_x; + double prev_y; + + void (*save_bgn_gen_texture) (int, double); + void (*save_n3f_gen_texture) (float *); + void (*save_n3d_gen_texture) (double *); + void (*save_v3f_gen_texture) (float *, int, int); + void (*save_v3d_gen_texture) (double *, int, int); + void (*save_end_gen_texture) (void); + +} gleGC; + +extern gleGC *_gle_gc; +extern gleGC * gleCreateGC (void); + +#define INIT_GC() {if (!_gle_gc) _gle_gc = gleCreateGC(); } +#define extrusion_join_style (_gle_gc->join_style) + +#define __TUBE_CLOSE_CONTOUR (extrusion_join_style & TUBE_CONTOUR_CLOSED) +#define __TUBE_DRAW_CAP (extrusion_join_style & TUBE_JN_CAP) +#define __TUBE_DRAW_FACET_NORMALS (extrusion_join_style & TUBE_NORM_FACET) +#define __TUBE_DRAW_PATH_EDGE_NORMALS (extrusion_join_style & TUBE_NORM_PATH_EDGE) + +#define __TUBE_STYLE (extrusion_join_style & TUBE_JN_MASK) +#define __TUBE_RAW_JOIN (extrusion_join_style & TUBE_JN_RAW) +#define __TUBE_CUT_JOIN (extrusion_join_style & TUBE_JN_CUT) +#define __TUBE_ANGLE_JOIN (extrusion_join_style & TUBE_JN_ANGLE) +#define __TUBE_ROUND_JOIN (extrusion_join_style & TUBE_JN_ROUND) + +/* ======================= END OF FILE ========================== */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/vvector.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/vvector.h new file mode 100644 index 0000000..b58dcd6 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Headers/vvector.h @@ -0,0 +1,1339 @@ + +/* + * vvector.h + * + * FUNCTION: + * This file contains a number of utilities useful for handling + * 3D vectors + * + * HISTORY: + * Written by Linas Vepstas, August 1991 + * Added 2D code, March 1993 + * Added Outer products, C++ proofed, Linas Vepstas October 1993 + */ + +#ifndef __GUTIL_VECTOR_H__ +#define __GUTIL_VECTOR_H__ + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + + +#include +#include "port.h" + +/* ========================================================== */ +/* Zero out a 2D vector */ + +#define VEC_ZERO_2(a) \ +{ \ + (a)[0] = (a)[1] = 0.0; \ +} + +/* ========================================================== */ +/* Zero out a 3D vector */ + +#define VEC_ZERO(a) \ +{ \ + (a)[0] = (a)[1] = (a)[2] = 0.0; \ +} + +/* ========================================================== */ +/* Zero out a 4D vector */ + +#define VEC_ZERO_4(a) \ +{ \ + (a)[0] = (a)[1] = (a)[2] = (a)[3] = 0.0; \ +} + +/* ========================================================== */ +/* Vector copy */ + +#define VEC_COPY_2(b,a) \ +{ \ + (b)[0] = (a)[0]; \ + (b)[1] = (a)[1]; \ +} + +/* ========================================================== */ +/* Copy 3D vector */ + +#define VEC_COPY(b,a) \ +{ \ + (b)[0] = (a)[0]; \ + (b)[1] = (a)[1]; \ + (b)[2] = (a)[2]; \ +} + +/* ========================================================== */ +/* Copy 4D vector */ + +#define VEC_COPY_4(b,a) \ +{ \ + (b)[0] = (a)[0]; \ + (b)[1] = (a)[1]; \ + (b)[2] = (a)[2]; \ + (b)[3] = (a)[3]; \ +} + +/* ========================================================== */ +/* Vector difference */ + +#define VEC_DIFF_2(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] - (v1)[0]; \ + (v21)[1] = (v2)[1] - (v1)[1]; \ +} + +/* ========================================================== */ +/* Vector difference */ + +#define VEC_DIFF(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] - (v1)[0]; \ + (v21)[1] = (v2)[1] - (v1)[1]; \ + (v21)[2] = (v2)[2] - (v1)[2]; \ +} + +/* ========================================================== */ +/* Vector difference */ + +#define VEC_DIFF_4(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] - (v1)[0]; \ + (v21)[1] = (v2)[1] - (v1)[1]; \ + (v21)[2] = (v2)[2] - (v1)[2]; \ + (v21)[3] = (v2)[3] - (v1)[3]; \ +} + +/* ========================================================== */ +/* Vector sum */ + +#define VEC_SUM_2(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] + (v1)[0]; \ + (v21)[1] = (v2)[1] + (v1)[1]; \ +} + +/* ========================================================== */ +/* Vector sum */ + +#define VEC_SUM(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] + (v1)[0]; \ + (v21)[1] = (v2)[1] + (v1)[1]; \ + (v21)[2] = (v2)[2] + (v1)[2]; \ +} + +/* ========================================================== */ +/* Vector sum */ + +#define VEC_SUM_4(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] + (v1)[0]; \ + (v21)[1] = (v2)[1] + (v1)[1]; \ + (v21)[2] = (v2)[2] + (v1)[2]; \ + (v21)[3] = (v2)[3] + (v1)[3]; \ +} + +/* ========================================================== */ +/* scalar times vector */ + +#define VEC_SCALE_2(c,a,b) \ +{ \ + (c)[0] = (a)*(b)[0]; \ + (c)[1] = (a)*(b)[1]; \ +} + +/* ========================================================== */ +/* scalar times vector */ + +#define VEC_SCALE(c,a,b) \ +{ \ + (c)[0] = (a)*(b)[0]; \ + (c)[1] = (a)*(b)[1]; \ + (c)[2] = (a)*(b)[2]; \ +} + +/* ========================================================== */ +/* scalar times vector */ + +#define VEC_SCALE_4(c,a,b) \ +{ \ + (c)[0] = (a)*(b)[0]; \ + (c)[1] = (a)*(b)[1]; \ + (c)[2] = (a)*(b)[2]; \ + (c)[3] = (a)*(b)[3]; \ +} + +/* ========================================================== */ +/* accumulate scaled vector */ + +#define VEC_ACCUM_2(c,a,b) \ +{ \ + (c)[0] += (a)*(b)[0]; \ + (c)[1] += (a)*(b)[1]; \ +} + +/* ========================================================== */ +/* accumulate scaled vector */ + +#define VEC_ACCUM(c,a,b) \ +{ \ + (c)[0] += (a)*(b)[0]; \ + (c)[1] += (a)*(b)[1]; \ + (c)[2] += (a)*(b)[2]; \ +} + +/* ========================================================== */ +/* accumulate scaled vector */ + +#define VEC_ACCUM_4(c,a,b) \ +{ \ + (c)[0] += (a)*(b)[0]; \ + (c)[1] += (a)*(b)[1]; \ + (c)[2] += (a)*(b)[2]; \ + (c)[3] += (a)*(b)[3]; \ +} + +/* ========================================================== */ +/* Vector dot product */ + +#define VEC_DOT_PRODUCT_2(c,a,b) \ +{ \ + c = (a)[0]*(b)[0] + (a)[1]*(b)[1]; \ +} + +/* ========================================================== */ +/* Vector dot product */ + +#define VEC_DOT_PRODUCT(c,a,b) \ +{ \ + c = (a)[0]*(b)[0] + (a)[1]*(b)[1] + (a)[2]*(b)[2]; \ +} + +/* ========================================================== */ +/* Vector dot product */ + +#define VEC_DOT_PRODUCT_4(c,a,b) \ +{ \ + c = (a)[0]*(b)[0] + (a)[1]*(b)[1] + (a)[2]*(b)[2] + (a)[3]*(b)[3] ; \ +} + +/* ========================================================== */ +/* vector impact parameter (squared) */ + +#define VEC_IMPACT_SQ(bsq,direction,position) \ +{ \ + gleDouble vlen, llel; \ + VEC_DOT_PRODUCT (vlen, position, position); \ + VEC_DOT_PRODUCT (llel, direction, position); \ + bsq = vlen - llel*llel; \ +} + +/* ========================================================== */ +/* vector impact parameter */ + +#define VEC_IMPACT(bsq,direction,position) \ +{ \ + VEC_IMPACT_SQ(bsq,direction,position); \ + bsq = sqrt (bsq); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_LENGTH_2(vlen,a) \ +{ \ + vlen = a[0]*a[0] + a[1]*a[1]; \ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_LENGTH(vlen,a) \ +{ \ + vlen = (a)[0]*(a)[0] + (a)[1]*(a)[1]; \ + vlen += (a)[2]*(a)[2]; \ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_LENGTH_4(vlen,a) \ +{ \ + vlen = (a)[0]*(a)[0] + (a)[1]*(a)[1]; \ + vlen += (a)[2]*(a)[2]; \ + vlen += (a)[3] * (a)[3]; \ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* distance between two points */ + +#define VEC_DISTANCE(vlen,va,vb) \ +{ \ + gleDouble tmp[4]; \ + VEC_DIFF (tmp, vb, va); \ + VEC_LENGTH (vlen, tmp); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_CONJUGATE_LENGTH(vlen,a) \ +{ \ + vlen = 1.0 - a[0]*a[0] - a[1]*a[1] - a[2]*a[2];\ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_NORMALIZE(a) \ +{ \ + double vlen; \ + VEC_LENGTH (vlen,a); \ + if (vlen != 0.0) { \ + vlen = 1.0 / vlen; \ + a[0] *= vlen; \ + a[1] *= vlen; \ + a[2] *= vlen; \ + } \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_RENORMALIZE(a,newlen) \ +{ \ + double vlen; \ + VEC_LENGTH (vlen,a); \ + if (vlen != 0.0) { \ + vlen = newlen / vlen; \ + a[0] *= vlen; \ + a[1] *= vlen; \ + a[2] *= vlen; \ + } \ +} + +/* ========================================================== */ +/* 3D Vector cross product yeilding vector */ + +#define VEC_CROSS_PRODUCT(c,a,b) \ +{ \ + c[0] = (a)[1] * (b)[2] - (a)[2] * (b)[1]; \ + c[1] = (a)[2] * (b)[0] - (a)[0] * (b)[2]; \ + c[2] = (a)[0] * (b)[1] - (a)[1] * (b)[0]; \ +} + +/* ========================================================== */ +/* Vector perp -- assumes that n is of unit length + * accepts vector v, subtracts out any component parallel to n */ + +#define VEC_PERP(vp,v,n) \ +{ \ + double vdot; \ + \ + VEC_DOT_PRODUCT (vdot, v, n); \ + vp[0] = (v)[0] - (vdot) * (n)[0]; \ + vp[1] = (v)[1] - (vdot) * (n)[1]; \ + vp[2] = (v)[2] - (vdot) * (n)[2]; \ +} + +/* ========================================================== */ +/* Vector parallel -- assumes that n is of unit length + * accepts vector v, subtracts out any component perpendicular to n */ + +#define VEC_PARALLEL(vp,v,n) \ +{ \ + double vdot; \ + \ + VEC_DOT_PRODUCT (vdot, v, n); \ + vp[0] = (vdot) * (n)[0]; \ + vp[1] = (vdot) * (n)[1]; \ + vp[2] = (vdot) * (n)[2]; \ +} + +/* ========================================================== */ +/* Vector reflection -- assumes n is of unit length */ +/* Takes vector v, reflects it against reflector n, and returns vr */ + +#define VEC_REFLECT(vr,v,n) \ +{ \ + double vdot; \ + \ + VEC_DOT_PRODUCT (vdot, v, n); \ + vr[0] = (v)[0] - 2.0 * (vdot) * (n)[0]; \ + vr[1] = (v)[1] - 2.0 * (vdot) * (n)[1]; \ + vr[2] = (v)[2] - 2.0 * (vdot) * (n)[2]; \ +} + +/* ========================================================== */ +/* Vector blending */ +/* Takes two vectors a, b, blends them together */ + +#define VEC_BLEND(vr,sa,a,sb,b) \ +{ \ + \ + vr[0] = (sa) * (a)[0] + (sb) * (b)[0]; \ + vr[1] = (sa) * (a)[1] + (sb) * (b)[1]; \ + vr[2] = (sa) * (a)[2] + (sb) * (b)[2]; \ +} + +/* ========================================================== */ +/* Vector print */ + +#define VEC_PRINT_2(a) \ +{ \ + double vlen; \ + VEC_LENGTH_2 (vlen, a); \ + printf (" a is %f %f length of a is %f \n", a[0], a[1], vlen); \ +} + +/* ========================================================== */ +/* Vector print */ + +#define VEC_PRINT(a) \ +{ \ + double vlen; \ + VEC_LENGTH (vlen, (a)); \ + printf (" a is %f %f %f length of a is %f \n", (a)[0], (a)[1], (a)[2], vlen); \ +} + +/* ========================================================== */ +/* Vector print */ + +#define VEC_PRINT_4(a) \ +{ \ + double vlen; \ + VEC_LENGTH_4 (vlen, (a)); \ + printf (" a is %f %f %f %f length of a is %f \n", \ + (a)[0], (a)[1], (a)[2], (a)[3], vlen); \ +} + +/* ========================================================== */ +/* print matrix */ + +#define MAT_PRINT_4X4(mmm) { \ + int i,j; \ + printf ("matrix mmm is \n"); \ + if (mmm == NULL) { \ + printf (" Null \n"); \ + } else { \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + printf ("%f ", mmm[i][j]); \ + } \ + printf (" \n"); \ + } \ + } \ +} + +/* ========================================================== */ +/* print matrix */ + +#define MAT_PRINT_3X3(mmm) { \ + int i,j; \ + printf ("matrix mmm is \n"); \ + if (mmm == NULL) { \ + printf (" Null \n"); \ + } else { \ + for (i=0; i<3; i++) { \ + for (j=0; j<3; j++) { \ + printf ("%f ", mmm[i][j]); \ + } \ + printf (" \n"); \ + } \ + } \ +} + +/* ========================================================== */ +/* print matrix */ + +#define MAT_PRINT_2X3(mmm) { \ + int i,j; \ + printf ("matrix mmm is \n"); \ + if (mmm == NULL) { \ + printf (" Null \n"); \ + } else { \ + for (i=0; i<2; i++) { \ + for (j=0; j<3; j++) { \ + printf ("%f ", mmm[i][j]); \ + } \ + printf (" \n"); \ + } \ + } \ +} + +/* ========================================================== */ +/* initialize matrix */ + +#define IDENTIFY_MATRIX_3X3(m) \ +{ \ + m[0][0] = 1.0; \ + m[0][1] = 0.0; \ + m[0][2] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = 1.0; \ + m[1][2] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = 0.0; \ + m[2][2] = 1.0; \ +} + +/* ========================================================== */ +/* initialize matrix */ + +#define IDENTIFY_MATRIX_4X4(m) \ +{ \ + m[0][0] = 1.0; \ + m[0][1] = 0.0; \ + m[0][2] = 0.0; \ + m[0][3] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = 1.0; \ + m[1][2] = 0.0; \ + m[1][3] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = 0.0; \ + m[2][2] = 1.0; \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_2X2(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_2X3(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + b[0][2] = a[0][2]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[1][2]; \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_3X3(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + b[0][2] = a[0][2]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[1][2]; \ + \ + b[2][0] = a[2][0]; \ + b[2][1] = a[2][1]; \ + b[2][2] = a[2][2]; \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_4X4(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + b[0][2] = a[0][2]; \ + b[0][3] = a[0][3]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[1][2]; \ + b[1][3] = a[1][3]; \ + \ + b[2][0] = a[2][0]; \ + b[2][1] = a[2][1]; \ + b[2][2] = a[2][2]; \ + b[2][3] = a[2][3]; \ + \ + b[3][0] = a[3][0]; \ + b[3][1] = a[3][1]; \ + b[3][2] = a[3][2]; \ + b[3][3] = a[3][3]; \ +} + +/* ========================================================== */ +/* matrix transpose */ + +#define TRANSPOSE_MATRIX_2X2(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[1][0]; \ + \ + b[1][0] = a[0][1]; \ + b[1][1] = a[1][1]; \ +} + +/* ========================================================== */ +/* matrix transpose */ + +#define TRANSPOSE_MATRIX_3X3(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[1][0]; \ + b[0][2] = a[2][0]; \ + \ + b[1][0] = a[0][1]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[2][1]; \ + \ + b[2][0] = a[0][2]; \ + b[2][1] = a[1][2]; \ + b[2][2] = a[2][2]; \ +} + +/* ========================================================== */ +/* matrix transpose */ + +#define TRANSPOSE_MATRIX_4X4(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[1][0]; \ + b[0][2] = a[2][0]; \ + b[0][3] = a[3][0]; \ + \ + b[1][0] = a[0][1]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[2][1]; \ + b[1][3] = a[3][1]; \ + \ + b[2][0] = a[0][2]; \ + b[2][1] = a[1][2]; \ + b[2][2] = a[2][2]; \ + b[2][3] = a[3][2]; \ + \ + b[3][0] = a[0][3]; \ + b[3][1] = a[1][3]; \ + b[3][2] = a[2][3]; \ + b[3][3] = a[3][3]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define SCALE_MATRIX_2X2(b,s,a) \ +{ \ + b[0][0] = (s) * a[0][0]; \ + b[0][1] = (s) * a[0][1]; \ + \ + b[1][0] = (s) * a[1][0]; \ + b[1][1] = (s) * a[1][1]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define SCALE_MATRIX_3X3(b,s,a) \ +{ \ + b[0][0] = (s) * a[0][0]; \ + b[0][1] = (s) * a[0][1]; \ + b[0][2] = (s) * a[0][2]; \ + \ + b[1][0] = (s) * a[1][0]; \ + b[1][1] = (s) * a[1][1]; \ + b[1][2] = (s) * a[1][2]; \ + \ + b[2][0] = (s) * a[2][0]; \ + b[2][1] = (s) * a[2][1]; \ + b[2][2] = (s) * a[2][2]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define SCALE_MATRIX_4X4(b,s,a) \ +{ \ + b[0][0] = (s) * a[0][0]; \ + b[0][1] = (s) * a[0][1]; \ + b[0][2] = (s) * a[0][2]; \ + b[0][3] = (s) * a[0][3]; \ + \ + b[1][0] = (s) * a[1][0]; \ + b[1][1] = (s) * a[1][1]; \ + b[1][2] = (s) * a[1][2]; \ + b[1][3] = (s) * a[1][3]; \ + \ + b[2][0] = (s) * a[2][0]; \ + b[2][1] = (s) * a[2][1]; \ + b[2][2] = (s) * a[2][2]; \ + b[2][3] = (s) * a[2][3]; \ + \ + b[3][0] = s * a[3][0]; \ + b[3][1] = s * a[3][1]; \ + b[3][2] = s * a[3][2]; \ + b[3][3] = s * a[3][3]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define ACCUM_SCALE_MATRIX_2X2(b,s,a) \ +{ \ + b[0][0] += (s) * a[0][0]; \ + b[0][1] += (s) * a[0][1]; \ + \ + b[1][0] += (s) * a[1][0]; \ + b[1][1] += (s) * a[1][1]; \ +} + +/* +========================================================== */ +/* multiply matrix by scalar */ + +#define ACCUM_SCALE_MATRIX_3X3(b,s,a) \ +{ \ + b[0][0] += (s) * a[0][0]; \ + b[0][1] += (s) * a[0][1]; \ + b[0][2] += (s) * a[0][2]; \ + \ + b[1][0] += (s) * a[1][0]; \ + b[1][1] += (s) * a[1][1]; \ + b[1][2] += (s) * a[1][2]; \ + \ + b[2][0] += (s) * a[2][0]; \ + b[2][1] += (s) * a[2][1]; \ + b[2][2] += (s) * a[2][2]; \ +} + +/* +========================================================== */ +/* multiply matrix by scalar */ + +#define ACCUM_SCALE_MATRIX_4X4(b,s,a) \ +{ \ + b[0][0] += (s) * a[0][0]; \ + b[0][1] += (s) * a[0][1]; \ + b[0][2] += (s) * a[0][2]; \ + b[0][3] += (s) * a[0][3]; \ + \ + b[1][0] += (s) * a[1][0]; \ + b[1][1] += (s) * a[1][1]; \ + b[1][2] += (s) * a[1][2]; \ + b[1][3] += (s) * a[1][3]; \ + \ + b[2][0] += (s) * a[2][0]; \ + b[2][1] += (s) * a[2][1]; \ + b[2][2] += (s) * a[2][2]; \ + b[2][3] += (s) * a[2][3]; \ + \ + b[3][0] += (s) * a[3][0]; \ + b[3][1] += (s) * a[3][1]; \ + b[3][2] += (s) * a[3][2]; \ + b[3][3] += (s) * a[3][3]; \ +} + +/* +========================================================== */ +/* matrix product */ +/* c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/ + +#define MATRIX_PRODUCT_2X2(c,a,b) \ +{ \ + c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]; \ + c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]; \ + \ + c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]; \ + c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]; \ + \ +} + +/* ========================================================== */ +/* matrix product */ +/* c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/ + +#define MATRIX_PRODUCT_3X3(c,a,b) \ +{ \ + c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]+a[0][2]*b[2][0]; \ + c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]+a[0][2]*b[2][1]; \ + c[0][2] = a[0][0]*b[0][2]+a[0][1]*b[1][2]+a[0][2]*b[2][2]; \ + \ + c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]+a[1][2]*b[2][0]; \ + c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]+a[1][2]*b[2][1]; \ + c[1][2] = a[1][0]*b[0][2]+a[1][1]*b[1][2]+a[1][2]*b[2][2]; \ + \ + c[2][0] = a[2][0]*b[0][0]+a[2][1]*b[1][0]+a[2][2]*b[2][0]; \ + c[2][1] = a[2][0]*b[0][1]+a[2][1]*b[1][1]+a[2][2]*b[2][1]; \ + c[2][2] = a[2][0]*b[0][2]+a[2][1]*b[1][2]+a[2][2]*b[2][2]; \ +} + +/* ========================================================== */ +/* matrix product */ +/* c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/ + +#define MATRIX_PRODUCT_4X4(c,a,b) \ +{ \ + c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]+a[0][2]*b[2][0]+a[0][3]*b[3][0];\ + c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]+a[0][2]*b[2][1]+a[0][3]*b[3][1];\ + c[0][2] = a[0][0]*b[0][2]+a[0][1]*b[1][2]+a[0][2]*b[2][2]+a[0][3]*b[3][2];\ + c[0][3] = a[0][0]*b[0][3]+a[0][1]*b[1][3]+a[0][2]*b[2][3]+a[0][3]*b[3][3];\ + \ + c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]+a[1][2]*b[2][0]+a[1][3]*b[3][0];\ + c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]+a[1][2]*b[2][1]+a[1][3]*b[3][1];\ + c[1][2] = a[1][0]*b[0][2]+a[1][1]*b[1][2]+a[1][2]*b[2][2]+a[1][3]*b[3][2];\ + c[1][3] = a[1][0]*b[0][3]+a[1][1]*b[1][3]+a[1][2]*b[2][3]+a[1][3]*b[3][3];\ + \ + c[2][0] = a[2][0]*b[0][0]+a[2][1]*b[1][0]+a[2][2]*b[2][0]+a[2][3]*b[3][0];\ + c[2][1] = a[2][0]*b[0][1]+a[2][1]*b[1][1]+a[2][2]*b[2][1]+a[2][3]*b[3][1];\ + c[2][2] = a[2][0]*b[0][2]+a[2][1]*b[1][2]+a[2][2]*b[2][2]+a[2][3]*b[3][2];\ + c[2][3] = a[2][0]*b[0][3]+a[2][1]*b[1][3]+a[2][2]*b[2][3]+a[2][3]*b[3][3];\ + \ + c[3][0] = a[3][0]*b[0][0]+a[3][1]*b[1][0]+a[3][2]*b[2][0]+a[3][3]*b[3][0];\ + c[3][1] = a[3][0]*b[0][1]+a[3][1]*b[1][1]+a[3][2]*b[2][1]+a[3][3]*b[3][1];\ + c[3][2] = a[3][0]*b[0][2]+a[3][1]*b[1][2]+a[3][2]*b[2][2]+a[3][3]*b[3][2];\ + c[3][3] = a[3][0]*b[0][3]+a[3][1]*b[1][3]+a[3][2]*b[2][3]+a[3][3]*b[3][3];\ +} + +/* ========================================================== */ +/* matrix times vector */ + +#define MAT_DOT_VEC_2X2(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1]; \ +} + +/* ========================================================== */ +/* matrix times vector */ + +#define MAT_DOT_VEC_3X3(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]*v[2]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]*v[2]; \ + p[2] = m[2][0]*v[0] + m[2][1]*v[1] + m[2][2]*v[2]; \ +} + +/* ========================================================== */ +/* matrix times vector */ + +#define MAT_DOT_VEC_4X4(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]*v[2] + m[0][3]*v[3]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]*v[2] + m[1][3]*v[3]; \ + p[2] = m[2][0]*v[0] + m[2][1]*v[1] + m[2][2]*v[2] + m[2][3]*v[3]; \ + p[3] = m[3][0]*v[0] + m[3][1]*v[1] + m[3][2]*v[2] + m[3][3]*v[3]; \ +} + +/* ========================================================== */ +/* vector transpose times matrix */ +/* p[j] = v[0]*m[0][j] + v[1]*m[1][j] + v[2]*m[2][j]; */ + +#define VEC_DOT_MAT_3X3(p,v,m) \ +{ \ + p[0] = v[0]*m[0][0] + v[1]*m[1][0] + v[2]*m[2][0]; \ + p[1] = v[0]*m[0][1] + v[1]*m[1][1] + v[2]*m[2][1]; \ + p[2] = v[0]*m[0][2] + v[1]*m[1][2] + v[2]*m[2][2]; \ +} + +/* ========================================================== */ +/* affine matrix times vector */ +/* The matrix is assumed to be an affine matrix, with last two + * entries representing a translation */ + +#define MAT_DOT_VEC_2X3(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]; \ +} + +/* ========================================================== */ +/* inverse transpose of matrix times vector + * + * This macro computes inverse transpose of matrix m, + * and multiplies vector v into it, to yeild vector p + * + * DANGER !!! Do Not use this on normal vectors!!! + * It will leave normals the wrong length !!! + * See macro below for use on normals. + */ + +#define INV_TRANSP_MAT_DOT_VEC_2X2(p,m,v) \ +{ \ + gleDouble det; \ + \ + det = m[0][0]*m[1][1] - m[0][1]*m[1][0]; \ + p[0] = m[1][1]*v[0] - m[1][0]*v[1]; \ + p[1] = - m[0][1]*v[0] + m[0][0]*v[1]; \ + \ + /* if matrix not singular, and not orthonormal, then renormalize */ \ + if ((det!=1.0) && (det != 0.0)) { \ + det = 1.0 / det; \ + p[0] *= det; \ + p[1] *= det; \ + } \ +} + +/* ========================================================== */ +/* transform normal vector by inverse transpose of matrix + * and then renormalize the vector + * + * This macro computes inverse transpose of matrix m, + * and multiplies vector v into it, to yeild vector p + * Vector p is then normalized. + */ + + +#define NORM_XFORM_2X2(p,m,v) \ +{ \ + double mlen; \ + \ + /* do nothing if off-diagonals are zero and diagonals are \ + * equal */ \ + if ((m[0][1] != 0.0) || (m[1][0] != 0.0) || (m[0][0] != m[1][1])) { \ + p[0] = m[1][1]*v[0] - m[1][0]*v[1]; \ + p[1] = - m[0][1]*v[0] + m[0][0]*v[1]; \ + \ + mlen = p[0]*p[0] + p[1]*p[1]; \ + mlen = 1.0 / sqrt (mlen); \ + p[0] *= mlen; \ + p[1] *= mlen; \ + } else { \ + VEC_COPY_2 (p, v); \ + } \ +} + +/* ========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define OUTER_PRODUCT_2X2(m,v,t) \ +{ \ + m[0][0] = v[0] * t[0]; \ + m[0][1] = v[0] * t[1]; \ + \ + m[1][0] = v[1] * t[0]; \ + m[1][1] = v[1] * t[1]; \ +} + +/* ========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define OUTER_PRODUCT_3X3(m,v,t) \ +{ \ + m[0][0] = v[0] * t[0]; \ + m[0][1] = v[0] * t[1]; \ + m[0][2] = v[0] * t[2]; \ + \ + m[1][0] = v[1] * t[0]; \ + m[1][1] = v[1] * t[1]; \ + m[1][2] = v[1] * t[2]; \ + \ + m[2][0] = v[2] * t[0]; \ + m[2][1] = v[2] * t[1]; \ + m[2][2] = v[2] * t[2]; \ +} + +/* ========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define OUTER_PRODUCT_4X4(m,v,t) \ +{ \ + m[0][0] = v[0] * t[0]; \ + m[0][1] = v[0] * t[1]; \ + m[0][2] = v[0] * t[2]; \ + m[0][3] = v[0] * t[3]; \ + \ + m[1][0] = v[1] * t[0]; \ + m[1][1] = v[1] * t[1]; \ + m[1][2] = v[1] * t[2]; \ + m[1][3] = v[1] * t[3]; \ + \ + m[2][0] = v[2] * t[0]; \ + m[2][1] = v[2] * t[1]; \ + m[2][2] = v[2] * t[2]; \ + m[2][3] = v[2] * t[3]; \ + \ + m[3][0] = v[3] * t[0]; \ + m[3][1] = v[3] * t[1]; \ + m[3][2] = v[3] * t[2]; \ + m[3][3] = v[3] * t[3]; \ +} + +/* +========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define ACCUM_OUTER_PRODUCT_2X2(m,v,t) \ +{ \ + m[0][0] += v[0] * t[0]; \ + m[0][1] += v[0] * t[1]; \ + \ + m[1][0] += v[1] * t[0]; \ + m[1][1] += v[1] * t[1]; \ +} + +/* +========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define ACCUM_OUTER_PRODUCT_3X3(m,v,t) \ +{ \ + m[0][0] += v[0] * t[0]; \ + m[0][1] += v[0] * t[1]; \ + m[0][2] += v[0] * t[2]; \ + \ + m[1][0] += v[1] * t[0]; \ + m[1][1] += v[1] * t[1]; \ + m[1][2] += v[1] * t[2]; \ + \ + m[2][0] += v[2] * t[0]; \ + m[2][1] += v[2] * t[1]; \ + m[2][2] += v[2] * t[2]; \ +} + +/* +========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define ACCUM_OUTER_PRODUCT_4X4(m,v,t) \ +{ \ + m[0][0] += v[0] * t[0]; \ + m[0][1] += v[0] * t[1]; \ + m[0][2] += v[0] * t[2]; \ + m[0][3] += v[0] * t[3]; \ + \ + m[1][0] += v[1] * t[0]; \ + m[1][1] += v[1] * t[1]; \ + m[1][2] += v[1] * t[2]; \ + m[1][3] += v[1] * t[3]; \ + \ + m[2][0] += v[2] * t[0]; \ + m[2][1] += v[2] * t[1]; \ + m[2][2] += v[2] * t[2]; \ + m[2][3] += v[2] * t[3]; \ + \ + m[3][0] += v[3] * t[0]; \ + m[3][1] += v[3] * t[1]; \ + m[3][2] += v[3] * t[2]; \ + m[3][3] += v[3] * t[3]; \ +} + +/* +========================================================== */ +/* determinant of matrix + * + * Computes determinant of matrix m, returning d + */ + +#define DETERMINANT_2X2(d,m) \ +{ \ + d = m[0][0] * m[1][1] - m[0][1] * m[1][0]; \ +} + +/* ========================================================== */ +/* determinant of matrix + * + * Computes determinant of matrix m, returning d + */ + +#define DETERMINANT_3X3(d,m) \ +{ \ + d = m[0][0] * (m[1][1]*m[2][2] - m[1][2] * m[2][1]); \ + d -= m[0][1] * (m[1][0]*m[2][2] - m[1][2] * m[2][0]); \ + d += m[0][2] * (m[1][0]*m[2][1] - m[1][1] * m[2][0]); \ +} + +/* ========================================================== */ +/* i,j,th cofactor of a 4x4 matrix + * + */ + +#define COFACTOR_4X4_IJ(fac,m,i,j) \ +{ \ + int ii[4], jj[4], k; \ + \ + /* compute which row, columnt to skip */ \ + for (k=0; k + + + + IBDocumentLocation + 4 104 410 240 0 0 1152 848 + IBEditorPositions + + 29 + 19 615 246 44 0 0 1152 848 + + IBFramework Version + 291.0 + IBGroupedObjects + + IBLastGroupID + 1 + IBOpenObjects + + 29 + + IBSystem Version + 6I32 + + diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUT.nib/objects.nib b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUT.nib/objects.nib new file mode 100644 index 0000000..8a7140e Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUT.nib/objects.nib differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTClipboard.nib/classes.nib b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTClipboard.nib/classes.nib new file mode 100644 index 0000000..7e85eb1 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTClipboard.nib/classes.nib @@ -0,0 +1,13 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + { + ACTIONS = {toggleWindow = id; }; + CLASS = GLUTClipboardController; + LANGUAGE = ObjC; + OUTLETS = {_infoText = id; _scrollView = id; }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTClipboard.nib/info.nib b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTClipboard.nib/info.nib new file mode 100644 index 0000000..867735d --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTClipboard.nib/info.nib @@ -0,0 +1,12 @@ + + + + + IBDocumentLocation + 63 221 356 240 0 0 1600 1178 + IBFramework Version + 263.2 + IBSystem Version + 5S41 + + diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTClipboard.nib/objects.nib b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTClipboard.nib/objects.nib new file mode 100644 index 0000000..29125d4 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTClipboard.nib/objects.nib differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTPreferences.nib/classes.nib b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTPreferences.nib/classes.nib new file mode 100644 index 0000000..c675963 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTPreferences.nib/classes.nib @@ -0,0 +1,73 @@ +{ + IBClasses = ( + { + ACTIONS = {save = id; saveAs = id; }; + CLASS = FirstResponder; + LANGUAGE = ObjC; + SUPERCLASS = NSObject; + }, + { + ACTIONS = { + cancel = id; + joyAssign = id; + joyDevice = id; + joyElement = id; + joyInvert = id; + launchDebugMode = id; + launchGamemodeCaptureSingle = id; + launchIconic = id; + launchUseCurrWD = id; + launchUseExtDesktop = id; + launchUseMacOSCoords = id; + mouseEanbleEmulation = id; + mouseMiddleMenu = id; + mouseRightMenu = id; + ok = id; + spaceAssign = id; + spaceDevice = id; + spaceElement = id; + spaceInvert = id; + }; + CLASS = GLUTPreferencesController; + LANGUAGE = ObjC; + OUTLETS = { + joyAssign = NSButton; + joyAssignNote = NSTextField; + joyAssignWarningIcon = NSImageView; + joyDeviceMenu = NSPopUpButton; + joyElement = NSTextField; + joyInputMenu = NSPopUpButton; + joyInverted = NSButton; + launchDebugMode = NSButton; + launchFadeTime = NSTextField; + launchGamemodeCaptureSingle = NSButton; + launchIconic = NSButton; + launchInitHeight = NSTextField; + launchInitWidth = NSTextField; + launchInitX = NSTextField; + launchInitY = NSTextField; + launchMenuIdle = NSTextField; + launchSyncToVBL = NSButton; + launchUseCurrWD = NSButton; + launchUseExtendedDesktop = NSButton; + launchUseMacOSXCoords = NSButton; + mouseAssignWarningIcon = NSImageView; + mouseAssignWarningText = NSTextField; + mouseDetected = NSTextField; + mouseEmulation = NSButton; + mouseMiddleConfigMenu = NSPopUpButton; + mouseRightConfigMenu = NSPopUpButton; + prefsTabView = NSTabView; + spaceAssign = NSButton; + spaceAssignNote = NSTextField; + spaceAssignWarningIcon = NSImageView; + spaceDeviceMenu = NSPopUpButton; + spaceElement = NSTextField; + spaceInputMenu = NSPopUpButton; + spaceInverted = NSButton; + }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTPreferences.nib/info.nib b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTPreferences.nib/info.nib new file mode 100644 index 0000000..216c8dc --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTPreferences.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 16 329 410 240 0 0 1920 1178 + IBFramework Version + 439.0 + IBOpenObjects + + 205 + + IBSystem Version + 8G32 + + diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTPreferences.nib/objects.nib b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTPreferences.nib/objects.nib new file mode 100644 index 0000000..7598f2c Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTPreferences.nib/objects.nib differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTUI.strings b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTUI.strings new file mode 100644 index 0000000..6db3c5c Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTUI.strings differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/InfoPlist.strings b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/InfoPlist.strings new file mode 100644 index 0000000..6f78b89 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/English.lproj/InfoPlist.strings differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/Info.plist b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/Info.plist new file mode 100644 index 0000000..e8fc9d6 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + GLUT + CFBundleGetInfoString + 3.4.0, Copyright (c) 2001-2008 Apple Inc., All Rights Reserved + CFBundleIdentifier + com.apple.glut + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + FMWK + CFBundleShortVersionString + 3.4.0 + CFBundleSignature + ???? + CFBundleVersion + GLUT-3.4.0 + + diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/blankCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/blankCursor.tiff new file mode 100644 index 0000000..a2b0cf1 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/blankCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/bottomCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/bottomCursor.tiff new file mode 100644 index 0000000..c3f4795 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/bottomCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/bottomleftCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/bottomleftCursor.tiff new file mode 100644 index 0000000..274529f Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/bottomleftCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/bottomrightCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/bottomrightCursor.tiff new file mode 100644 index 0000000..dec4252 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/bottomrightCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/crossCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/crossCursor.tiff new file mode 100644 index 0000000..8536c0e Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/crossCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/cycleCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/cycleCursor.tiff new file mode 100644 index 0000000..34b52f6 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/cycleCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/destroyCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/destroyCursor.tiff new file mode 100644 index 0000000..9e3a1cb Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/destroyCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/fingerCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/fingerCursor.tiff new file mode 100644 index 0000000..0087c66 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/fingerCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/helpCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/helpCursor.tiff new file mode 100644 index 0000000..fc4a88a Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/helpCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/leftCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/leftCursor.tiff new file mode 100644 index 0000000..852b69b Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/leftCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/leftRightCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/leftRightCursor.tiff new file mode 100644 index 0000000..37fe393 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/leftRightCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/rightArrowCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/rightArrowCursor.tiff new file mode 100644 index 0000000..d852616 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/rightArrowCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/rightCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/rightCursor.tiff new file mode 100644 index 0000000..9781f22 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/rightCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/sprayCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/sprayCursor.tiff new file mode 100644 index 0000000..9bec966 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/sprayCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/topCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/topCursor.tiff new file mode 100644 index 0000000..e4df0de Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/topCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/topleftCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/topleftCursor.tiff new file mode 100644 index 0000000..43cf97f Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/topleftCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/toprightCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/toprightCursor.tiff new file mode 100644 index 0000000..429b01b Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/toprightCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/upDownCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/upDownCursor.tiff new file mode 100644 index 0000000..1605063 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/upDownCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/waitCursor.tiff b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/waitCursor.tiff new file mode 100644 index 0000000..81ba1aa Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Frameworks/GLUT.framework/Versions/Current/Resources/waitCursor.tiff differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Info.plist b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Info.plist new file mode 100644 index 0000000..30812c8 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Info.plist @@ -0,0 +1,38 @@ + + + + + BuildMachineOSBuild + 14C109 + CFBundleDevelopmentRegion + English + CFBundleExecutable + DataWeek2Debug + CFBundleIconFile + icon-debug.icns + CFBundleIdentifier + cc.openFrameworks.ofapp + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleVersion + 1.0 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 6A2008a + DTPlatformVersion + GM + DTSDKBuild + 14A382 + DTSDKName + macosx10.10 + DTXcode + 0611 + DTXcodeBuild + 6A2008a + + diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/MacOS/DataWeek2Debug b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/MacOS/DataWeek2Debug new file mode 100755 index 0000000..230dfc3 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/MacOS/DataWeek2Debug differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/MacOS/libfmodex.dylib b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/MacOS/libfmodex.dylib new file mode 100644 index 0000000..bea90a1 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/MacOS/libfmodex.dylib differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/PkgInfo b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/PkgInfo new file mode 100644 index 0000000..bd04210 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/PkgInfo @@ -0,0 +1 @@ +APPL???? \ No newline at end of file diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Resources/icon-debug.icns b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Resources/icon-debug.icns new file mode 100644 index 0000000..9b2d976 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/DataWeek2Debug.app/Contents/Resources/icon-debug.icns differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/data/.DS_Store b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/data/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/data/.DS_Store differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/data/.gitkeep b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/data/file.csv b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/data/file.csv new file mode 100644 index 0000000..1f835e4 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/data/file.csv @@ -0,0 +1,5 @@ +# This is our example csv file. +# This comment is test. to check if a comment will be ignored. +var1, var2, var3, var4, var5, var6 +wng1, wng2, wng3, wng4, wng5, wng6 +ccc1, ccc2, ccc3, ccc4, ccc5, ccc6 \ No newline at end of file diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/data/gnp.csv b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/data/gnp.csv new file mode 100644 index 0000000..27c6872 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/data/gnp.csv @@ -0,0 +1,250 @@ +#”Data Source","World Development Indicators", +"Country Name","Country Code","Indicator Name","Indicator Code","1960","1961","1962","1963","1964","1965","1966","1967","1968","1969","1970","1971","1972","1973","1974","1975","1976","1977","1978","1979","1980","1981","1982","1983","1984","1985","1986","1987","1988","1989","1990","1991","1992","1993","1994","1995","1996","1997","1998","1999","2000","2001","2002","2003","2004","2005","2006","2007","2008","2009","2010","2011","2012","2013","2014", +"Aruba","ABW","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1330167597.76536","1320670391.06145","1379888268.15642","1531843575.41899","1665363128.49162","1722798882.68156","1873452513.96648","1920262569.8324","1941094972.06704","2021301675.97765","2228279329.60894","2331005586.59218","2421474860.3352","2623726256.98324","2791960893.85475","2498932960.89385","2467703910.61453","2584463687.15084","","","", +"Andorra","AND","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","78617570.3229253","89406659.5140116","113414331.870944","150841699.110766","186557164.008677","220112850.775998","227284165.925171","253998069.145235","308020384.39595","411548246.761169","446377494.880496","388983013.897495","375914742.918141","327849949.00321","330073024.937292","346742901.743383","481996232.885864","611300198.45912","721426027.475386","795489397.964069","1028989439.40715","1106890942.98847","1209992604.28817","1007090896.43735","1017544619.09316","1178745261.82826","1224023469.69136","1180646037.01274","1211953953.56155","1239840265.63345","1133644294.5425","1264760246.44075","1456198796.29382","1917948475.27513","2322163502.26295","2539759285.92747","2823503852.62328","3245411583.7197","3712034266.50674","","","","","","", +"Afghanistan","AFG","GDP (current US$)","NY.GDP.MKTP.CD","537777811.911111","548888894.577778","546666678.044444","751111190.755556","800000045.511111","1006666638.22222","1399999965.86667","1673333418.66667","1373333367.46667","1408888923.02222","1748886596.26667","1831108972.08889","1595555475.91111","1733333265.06667","2155555498.66667","2366666615.46667","2555555566.93333","2953333418.66667","3300000108.08889","3697940345.14177","3641723447.18433","3478787909.81818","","","","","","","","","","","","","","","","","","","","2461666314.78366","4128818042.25508","4583648921.64112","5285461999.33739","6275076016.47174","7057597614.45076","9843851009.41462","10190534636.6444","12486950468.1773","15936784437.224","17870159081.787","20506795254.4884","20309671014.6236","", +"Angola","AGO","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","6804278062.62664","6355849179.35458","7383121653.67413","7975234067.37627","9283054576.2006","10260193360.6806","12193746624.6789","5779394291.7582","5285600050.3455","4059352153.05368","5039552482.42778","7526446605.51712","7648377412.83277","6445041824.66621","6152922942.98032","9129594818.60749","8936079252.77131","12497346042.1583","14188949239.8883","19640862549.9734","28233699333.6996","41789493191.7536","60448887582.7354","84178084135.3609","75492416522.9248","82470894868.3337","104115867663.458","115341559475.426","124178241815.737","", +"Albania","ALB","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","1924242453.00793","1965384586.2409","2173750012.5","2156624900","2126000000","2335124987.5","2101624962.5","1139166676.01094","709452572.338241","1228071037.84446","1985673026.02143","2424498953.26963","3013217853.03299","2196223713.70143","2727745453.16221","3434402453.29471","3686649386.83962","4091020249.1995","4449373455.28143","5652325081.83146","7464446950.18143","8376483393.94155","9132558096.86514","10701011524.0982","12881353507.8539","12044208085.864","11926957254.6288","12890866742.6533","12344529628.0617","12923240278.3416","", +"Arab World","ARB","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","25666374894.5347","28316305837.7371","30910527984.0771","35894922053.1445","42761504413.2394","54346011192.5619","104171520703.736","115559945569.576","143926191647.393","165859385885.794","183388384329.938","247383069789.163","336533958393.457","346360975893.775","322732035756.294","302612254606.121","306654358904.292","302696147466.659","288018424180.42","311557517029.581","306163221808.292","320902061178.807","443859896964.664","436805584500.833","467834483649.374","473299323399.973","484261108054.452","520049266412.833","574468177972.353","609294244548.589","587494764658.919","634118560164.927","726012626496.09","713007194293.451","724009906451.922","815538537451.947","959405027973.279","1176100113380.11","1399822842753.85","1638668684413.22","2079570726698.25","1791752937021.76","2097884309178.57","2487905323871.43","2744380705807.86","2853079422136.26","", +"United Arab Emirates","ARE","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","14720672892.0843","19213022856.0617","24871774865.6257","23775831263.3068","31225462774.4732","43598747466.6017","49333424083.8485","46622718556.8369","42803323300.6587","41807954192.4585","40603650189.3515","33943612059.5247","36384908706.4022","36275674165.5187","41464995870.8318","50701443695.6113","51552165568.876","54239171831.4067","55625170195.5344","59305093918.2154","65743666507.5477","73571233919.7352","78839008362.6404","75674338444.807","84445475523.1266","104337375342.526","103311643522.892","109816204634.494","124346361618.639","147824374542.517","180617023539.137","222105928740.596","257916140791.417","315474644818.136","253547454485.551","286049293398.983","347454060299.355","372313965706.545","402340106795.685","", +"Argentina","ARG","GDP (current US$)","NY.GDP.MKTP.CD","","","24450604877.6081","18272123664.4715","25605249381.7597","28344705967.5816","28630474726.3365","24256667554.62","26436857248.0056","31256284544.7361","31584210364.5523","33293199094.6727","34733000536.4685","52544000117.2532","72436777341.9953","52438647921.8723","51169499890.7757","56781000100.9442","58082870156.265","69252328953.3803","76961923741.9469","78676842366.4213","84307486836.724","103979106777.911","79092001998.032","88416668900.2596","110934442762.694","111106191358.197","126206817196.091","76636898036.4712","141352368714.691","189719989668.103","228779382768.151","236753563469.871","311852387500","312569210000","329671180000","354757527500","362133800000","343448277500","344272910000","325488360000","123607470068.633","156988741752.415","183295704305.31","222907566120.932","264489701813.206","329761480066.765","406003733832.97","378496221140.697","462703793707.187","557727273772.913","603153016502.593","609888971036.196","", +"Armenia","ARM","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","2256838858.42714","2068526521.90299","1272577521.7683","1201313196.45626","1315158670.47971","1468317350.02343","1596968913.19202","1639492424.38103","1893726437.35976","1845482181.48539","1911563665.39006","2118467913.37873","2376335048.39976","2807061008.69084","3576615240.41616","4900436758.50466","6384457744.44765","9206301700.39619","11662040713.8753","8647936747.98704","9260287416.06014","10142342769.9464","9958217880.33776","10432169571.25","", +"American Samoa","ASM","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","", +"Antigua and Barbuda","ATG","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","66144443.2762914","74855554.2335588","92240739.1117105","110066664.722819","124462960.764868","137951849.415534","153270367.663518","173511108.046794","201862959.397935","245896291.953611","286474069.01476","338696290.314704","373403697.109157","391570363.454988","410388881.64116","423762955.479039","456537028.974302","500088880.057001","494185176.45756","541074064.518361","579851841.611299","620037026.086788","651851840.339733","783837838.008776","773765171.519999","802529319.160154","839996355.5355","898356132.282607","997374093.496849","1135143572.54523","1289254310.56428","1347349851.85185","1206410370.37037","1135539037.03704","1129918370.37037","1204713111.11111","1200587518.51852","", +"Australia","AUS","GDP (current US$)","NY.GDP.MKTP.CD","18574308433.1952","19651696718.5575","19886885429.4994","21500727965.0577","23758539590.0997","25930115354.463","27255011759.4355","30383021614.9625","32647552917.46","36612162616.1944","41252099899.2048","45127113898.5329","51936915887.8505","63700192184.4971","88789977892.4097","97098183804.4517","104832976175.47","110115852259.693","118238213399.504","134607520163.581","149679108635.098","176557529316.15","193684210526.316","176929340196.537","193232204310.813","180215540385.058","182032736429.771","189113287453.679","235787252619.325","299474798469.18","310944978838.015","325641629385.449","325313389217.873","312028527262.507","322874437910.758","368022720522.721","401409711684.37","435636249804.351","399325103438.92","388692192004.011","414987125541.669","378488247289.9","394250732524.069","466451368666.278","612871674491.393","693338595699.895","747205750224.618","853441155688.153","1055031652298.47","926283274398.266","1141267760188.09","1388066356092.35","1534425905762.81","1560372473125.21","", +"Austria","AUT","GDP (current US$)","NY.GDP.MKTP.CD","6592693841.18495","7311749633.36229","7756110210.11966","8374175257.73075","9169983885.71185","9994070615.85997","10887682273.1014","11579431668.9165","12440625312.8685","13582798556.2404","15335972267.7957","17815464919.0439","22006470861.3608","29444365310.2818","35104529078.3274","39962704274.3146","42856485617.8569","51421585629.8393","61902774945.5131","73759181883.685","81861232822.8037","70863106877.484","71103585383.5605","71947277233.032","67821568599.1335","69219621907.4222","98797587381.7035","123869321397.475","133018182770.534","132785154342.174","166062376739.683","173375508073.07","194608183696.469","189921096652.076","203044926876.28","240457622492.152","236720496490.772","212323463750.141","217683626056.025","216725261027.062","196421706283.398","196953628635.347","212970685111.989","260721478555.305","299870270001.8","314641160523.305","334292246560.363","386439116524.953","427627368047.362","397570327085.094","389656071767.183","429099514393.36","407575161127.056","428321897648.215","", +"Azerbaijan","AZE","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","8858006035.91566","8792365810.5094","4991350457.5425","3973027396.65195","3313739673.54738","3052467522.36104","3176749593.11788","3962710163.11167","4446396217.63265","4581222442.45783","5272617196.04517","5707618246.56848","6236024951.20423","7275766111.24309","8680511918.49357","13245421880.834","20982270733.2484","33050343782.7759","48852482960.0779","44291490420.5026","52902703376.1056","65951627200.2026","68730906313.6456","73560484384.9586","", +"Burundi","BDI","GDP (current US$)","NY.GDP.MKTP.CD","195999989.76","202999992.32","213500006.4","232749998.08","260750008.32","158994962.962963","165444571.428571","178297142.857143","183200000","190205714.285714","242732571.428571","252842285.714286","246804571.428571","304339839.552146","345263492.063492","420986666.666667","448412753.623188","547535555.555556","610225555.555556","782496666.666667","919726666.666667","969046666.666667","1013222222.22222","1082926304.46477","987143931.166987","1149979285.77347","1201725497.06578","1131466494.01101","1082403219.48787","1113924130.41149","1132101252.51817","1167398478.3459","1083037670.62404","938632612.059308","925030590.280334","1000428393.94934","869033856.317093","972896267.915425","893770806.077641","808077223.365746","870486065.858218","876794723.02267","825394484.361648","784654423.603171","915257323.428255","1117254387.10035","1273180655.19805","1356078300.12373","1611634286.34081","1739781535.88738","2026864414.46871","2355652063.58605","2472384864.14914","2714507030.9757","", +"Belgium","BEL","GDP (current US$)","NY.GDP.MKTP.CD","11658722590.99","12400145221.595","13264015675.3193","14260017387.0492","15960106680.6732","17371457607.9374","18651883472.4808","19992040788.4593","21376353113.475","23710735894.7022","26807913271.4804","29935244716.7174","37351139125.653","47925645622.0244","56246494096.9345","65928340353.1864","71384738035.5277","83155421722.0034","101632148072.243","116758473170.061","127312375086.219","105128908518.036","92446696803.8142","87516301459.5661","83666987224.239","86596838575.9902","120475908524.472","149963409292.274","162917260010.971","164846533579.034","206113804563.013","211312782752.51","235675876286.073","225577704407.649","245816831926.694","289122605363.985","280791270358.306","254099345963.013","259822627250.5","259666631152.781","237336281555.187","237397315436.242","258390080933.559","318573363431.151","370461343614.386","386944983335.821","410678121494.634","472284546030.008","520109349524.799","485803883922.954","484404271608.088","528237749142.039","498853259612.046","524805525215.191","", +"Benin","BEN","GDP (current US$)","NY.GDP.MKTP.CD","226195578.067006","235668220.872225","236434954.341059","253927697.573028","269819005.7911","289908680.180677","302925235.69743","306221953.364724","326323105.58513","330748244.092696","333627713.462036","335073027.92408","410331856.237969","504376074.065261","554654861.53714","676870139.263848","698408261.141673","750049780.163916","928843468.468714","1186231018.35731","1405251843.78221","1291120190.56764","1267778671.52033","1095348199.36832","1051134009.29975","1045712789.8201","1336102026.99646","1562412225.8134","1620246084.77733","1502294413.87362","1959965330.47596","1986437797.87672","1695315185.76863","2274558078.74486","1598075944.85876","2169627138.34967","2361116448.13525","2268301645.09367","2455092688.14767","2488892429.46861","2359122302.69574","2499269391.07586","2807657386.39431","3557229701.84629","4050869967.87842","4358015992.82041","4705087452.182","5511880905.94973","6633463906.71573","6584477484.57378","6561782312.61826","7289779658.41287","7543183758.87361","8307222087.28038","", +"Burkina Faso","BFA","GDP (current US$)","NY.GDP.MKTP.CD","330442815.349582","350247234.99743","379567099.620738","394040667.595114","410321645.028445","422916789.34088","433889767.085803","450753923.930489","460442689.71532","478298644.747585","458404268.558262","482411179.628881","578595521.118458","674773569.554893","751133431.612732","939972701.817126","976547187.063795","1131224879.98896","1475583643.33537","1748480618.19811","1928719884.32648","1775842336.50916","1754450097.81998","1600278605.2562","1459880132.91342","1552493197.36986","2036303360.21989","2369834946.42015","2616040480.59295","2615587730.03535","3101300779.23055","3135045586.3077","2240264677.01086","2332018010.60489","1895290638.2992","2379517975.81514","2586550594.09477","2447669100.4972","2804902369.27178","3014665572.20835","2610959139.40963","2812845486.44196","3205592273.18693","4205691121.78985","4838551014.48553","5462709054.77989","5844669738.11104","6755823932.79857","8350710389.31231","8348156389.07694","9209288383.08711","10395757480.2301","10726305449.6118","11582556068.3345","", +"Bangladesh","BGD","GDP (current US$)","NY.GDP.MKTP.CD","4274893913.46431","4817580183.56657","5081413339.74945","5319458351.12372","5386054619.31076","5906636556.95802","6439687598.27648","7253575399.26882","7483685473.4584","8471006100.89247","8992721809.32801","8751842839.73302","6288245866.66667","8067027097.60727","12459282562.5","19395903921.2304","10083163546.7397","9632469658.06452","13299358551.4369","15585961412.6833","18114645161.2903","19762945710.3026","18087000000","17155798869.2788","19670160943.9185","21613230769.2308","21160234383.6785","23781404932.2913","25638749373.0508","26825240347.4086","30128776344.9379","30957444766.9844","31708863729.6566","33166530060.9539","33768661427.1044","37939752959.0613","40666015641.7747","42318798536.6116","44091754147.5771","45694072379.3677","47124925462.1348","46987842846.553","47571130071.3913","51913661485.3195","56560744012.2303","60277560975.6098","71819088743.2996","79611888213.148","91631278239.3237","102477791472.39","115279077465.226","128637938711.386","133355744562.539","149990454541.474","", +"Bulgaria","BGR","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","20039627960.2947","20056236991.8554","19804095111.9229","16959385509.1278","17411159923.2394","17562123350.1716","20261212466.5553","28429027975.8141","23002458744.8485","21746812560.0739","20726301369.863","10943548723.7608","10371900499.4574","10831999516.8061","9704877673.48824","13069094969.2947","10110256626.4722","11195830236.5819","14631307232.6115","13659823835.2119","13353530517.1247","14303810794.543","16343311506.9812","21101364344.6644","25919754936.1945","29300588272.6637","33649638299.2368","43634648380.0994","53316401914.5913","50161405416.9332","48669060511.7098","55765057234.2695","52588115104.1324","54479873099.8914","", +"Bahrain","BHR","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","3072698345.80565","3467819352.78404","3645744805.68489","3735106510.87238","3905585155.0076","3651861912.27732","3052393636.4318","3392021222.52906","3702393658.68843","3863564047.18578","4229787378.87456","4616223477.21288","4751063992.46825","5200266050.40256","5567553552.34054","5849468115.18505","6101861655.74214","6349202600.38155","6183941092.316","6621186419.4161","9063147900.87911","8976446419.94569","9632411109.08315","11075116593.9503","13150516509.0487","15969151305.8362","18505545360.2489","21730577940.9027","25711151182.4594","22938462111.2991","25713544824.9449","29044378131.6823","30756789965.8507","32890110533.0908","", +"Bahamas, The","BHS","GDP (current US$)","NY.GDP.MKTP.CD","169802257.755072","190096176.551435","212252822.19384","237742768.508112","266664053.749305","300392162.479928","340000006.35783","390196085.727844","444901969.103758","528137264.777864","538423167.528913","573400000","590900000","670900000","632400000","596200000","642100000","713000000","832400000","1139800100","1335300000","1426500000","1578300000","1732800000","2041100000","2320699900","2472500000","2713999900","2817900000","3062000000","3166000000","3111160000","3109000000","3092000000","3259000000","3429000000","3609000000","4961119000","5353524000","6019972000","6327552000","6516651000","6957996000","6949317000","7094413000","7706222000","7965588000","8318996000","8246650000","7820420000","7910000000","7931000000","8219000000","8420000000","", +"Bosnia and Herzegovina","BIH","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1255802465.43943","1866572973.11395","2786045391.91109","3671816537.75935","4116699576.17583","4685729738.56209","5505984455.95855","5748990554.79945","6651226179.01829","8370020196.19158","10022840634.9206","10903779487.5056","12550175101.0198","15441062281.3156","18711890353.5051","17264893103.2034","16847493058.8474","18318439121.4727","16906005781.1063","17851326454.4159","", +"Belarus","BLR","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","17369598958.1159","17813389815.004","17022180272.211","16280372553.0518","14931599418.4226","13972637603.2102","14756861538.4615","14128412417.193","15222014828.3039","12138485328.6267","12736856485.1068","12354820143.8849","14594925392.9691","17825436034.5366","23141587717.7633","30210091836.8294","36961918858.7385","45275711995.825","60763483146.0674","49208656976.0389","55220932613.958","59734593904.6402","63615445566.8483","71709513654.3393","", +"Belize","BLZ","GDP (current US$)","NY.GDP.MKTP.CD","28072504.9840856","29965035.3920036","31857562.9999186","33750090.6078336","36194610.8013962","40069931.5396865","44405596.034382","47379308.7867437","44910180.7948118","47305390.4372017","53233534.3021169","59207317.5896141","66062499.015592","78343558.5113933","103216371.966438","118066302.075032","96905828.767564","117650000","136300000","151800000","194750000","192900000","179250000","189000000","210900000","209150000","227850000","276550016","314900000","363150016","413049984","444720726.46485","518143678.4859","559759653.31005","580760211.26315","620031771.8577","641271333.3631","654198121.10575","688872472.7248","732607993.76895","831750000","871840755.39675","932676403.18105","990350000","1057850000","1114202700","1217442150","1290542550","1368625150","1336957250","1397113450","1487005600","1573867300","1624294250","", +"Bermuda","BMU","GDP (current US$)","NY.GDP.MKTP.CD","84466654.0801544","89249986.7007156","94149985.9705588","96366652.3069165","107566650.637987","114339048.962736","134173373.782802","155102984.621576","150000000","164900000","186300000","211100000","235400000","269500000","312600000","345000000","386300000","447000000","475800000","517200000","613299968","739100032","785500032","889400000","985699968","1039500032","1173500032","1296499968","1415100032","1501500032","1592400000","1634899968","1679900032","1820359936","1867160064","2030749952","2695390000","2932827000","3130748000","3324433000","3480219000","3680483000","3937228000","4186525000","4484703000","4868136000","5414299000","5895048000","6109928000","5806378000","5744414000","5550771000","5473536000","","", +"Bolivia","BOL","GDP (current US$)","NY.GDP.MKTP.CD","563110051.920733","612518906.826491","669722541.277818","721142957.311474","812543072.505384","908874537.037037","994044553.872054","1084059814.81481","908874537.037037","964615698.653199","1017171717.17172","1095454545.45455","1257615644.97932","1263018490.75462","2100249875.06247","2404697651.17441","2732083958.02099","3227436281.85907","3758220889.55522","4421343606.18135","4537487842.57749","5891606676.18271","5594118400.16731","5422656261.71049","6169481549.37482","5377277406.71638","3959379487.6064","4347956298.51327","4597615562.66594","4715978868.21613","4867582620.20708","5343259388.76337","5643864407.82255","5734703452.22129","5981218996.99601","6715164550.84431","7396952081.04662","7925733785.53783","8497499333.04659","8285061618.15839","8397858184.79382","8141513292.12402","7905485216.17852","8082396525.99433","8773451738.91129","9549196255.88892","11451845341.2441","13120183156.7149","16674324634.2373","17339992165.2422","19649631308.1648","23948541156.1194","27035110130.246","30601157742.4023","", +"Brazil","BRA","GDP (current US$)","NY.GDP.MKTP.CD","15165569912.5199","15236854859.469","19926293839.0163","23021477292.2093","21211892259.9904","21790035102.382","27062716510.5085","30591834045.3823","33875881906.0553","37458898265.2258","42327600115.9852","49204456711.657","58539008795.7658","79279057736.1044","105136007544.771","123709376566.885","152678020453.114","176171284305.289","200800891871.957","224969488839.356","235024598984.118","263561088975.615","281682304160.256","203304515490.695","209023912696.764","222942790435.318","268137224729.724","294084112392.657","330397381998.489","425595310000","461951782000","407337832905.405","390566551483.761","438299504406.263","546233380259.659","768951297894.977","839682618644.911","871200342859.687","843827363149.355","586862640399.442","644701831101.394","553582178386.192","504221228974.035","552469288267.793","663760341880.342","882185702547.247","1088916819852.94","1366823994658.72","1653508561457.08","1620188056416.93","2143067871759.89","2476694763271.16","2248780912395.68","2245673032353.76","", +"Barbados","BRB","GDP (current US$)","NY.GDP.MKTP.CD","87383113.7082563","93216432.3803695","96949756.330522","109083059.168518","108383060.927864","114683045.097089","123608022.665682","137103729.870016","137300000","154400000","181500000","204010328.888222","233383639.978896","284759098.097978","340492903.658634","402158285.756234","435871861.918538","495116619.265309","552876225.283913","670312672.251523","860438453.32038","946949724.873939","989409791.650169","1050464828.03944","1144931025.91334","1198180245.50696","1315567052.9401","1448665027.59519","1540893882.55387","1703922714.56329","2023318164.38209","2007109742.66963","1950900000","2046188943.48556","2151295089.19152","2261969772.41831","2411872813.71606","2549296364.67692","2874459180.62627","3012031888.84215","3119500000","3112350000","3168600000","3271200000","3509700000","3891500000","4314050000","4513250000","4541550000","4592650000","4433700000","4368900000","4224850000","","", +"Brunei Darussalam","BRN","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","114040245.655299","132758395.400497","139030445.576898","160819286.554292","161211289.690318","179080099.307461","197523179.241883","270818555.823521","433092003.579273","1073577085.64159","1168304305.65513","1423061356.64562","1732721160.94122","1941600703.60598","2803780005.51826","4928824957.9675","4366213849.57637","4264252336.4486","3844723142.45149","3782523088.4628","3523612563.06532","2358592817.12134","2754463437.79677","2690717551.18267","2985467989.54007","3520551724.13793","3701667052.55846","4183548189.07305","4105706151.75145","4087337959.93191","4734020036.68689","5115602836.87943","5197332974.13793","4051147227.53346","4600000000","6001153317.86543","5601090584.36122","5843329101.97699","6557333067.38606","7872333197.25476","9531402829.84859","11470703002.0769","12247694247.2298","14393099068.5859","10732366286.2643","12369708858.9029","16691360399.1059","16953952625.403","16111135788.9616","", +"Bhutan","BTN","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","135653295.165394","146391639.722864","148934334.038055","165585940.594059","169264991.197183","172217502.021019","201375725.614592","253182453.703704","283855833.333333","275949889.09427","299787275.842376","250045839.929639","250794359.567901","235239570.350935","270801565.189672","303053462.843047","316420860.852385","365964500.137703","376955087.251575","419035810.496981","439158233.199822","476360697.181606","537050133.717342","622026107.771576","702682018.976169","818869145.124717","897672085.632311","1196091805.02316","1258193518.73133","1264758197.96593","1585396256.12316","1820207625.80217","1823692109.61652","1781261412.5445","", +"Botswana","BWA","GDP (current US$)","NY.GDP.MKTP.CD","30411449.5204893","32902654.4010581","35644985.2182477","38091777.0677901","41616418.5070928","45788670.6930146","51465624.4090769","58642385.2376744","66248426.9941409","77361532.9935123","96243298.1393835","126954476.930714","165253183.617311","244124115.653176","306044205.922122","355168715.375176","372025093.434102","451624959.61005","590407375.160033","819870595.111537","1060889705.11871","1073812403.80662","1014945860.82549","1172230575.57996","1240821849.27576","1114783538.17406","1392602040.14794","1965227085.13155","2644554881.84186","3083822367.10683","3790636664.02546","3942877353.59054","4146464586.61674","4160129177.1556","4259258810.89328","4730599690.73974","4847757703.86629","5020265168.28901","4790481509.17679","5484263050.39562","5788311645.24919","5489646902.56223","5438856515.10063","7511538764.70587","8957491784.92086","9931223489.2589","10126990496.0181","10939028150.7716","11113042239.547","10106837292.66","13746712711.2118","15365212952.7072","14537486274.1538","14784707345.2381","", +"Central African Republic","CAF","GDP (current US$)","NY.GDP.MKTP.CD","112155598.424137","123134583.702686","124482774.155572","129379123.792932","142025078.771562","150574795.28224","157930018.375448","163820513.701425","191767441.663587","188039209.876317","189106529.232059","201450800.155415","230317882.787365","271183082.197963","281398705.922214","378660015.774664","451152460.825277","507298148.292476","610578631.218134","700764746.929727","797048197.065069","694803623.872112","748312391.344694","658679332.649258","637820670.572429","864849836.841362","1122265014.86379","1200991976.20365","1264899288.27967","1233930279.03002","1440711459.411","1377374987.52052","1411917554.45482","1278781259.30117","851174357.309582","1115389673.9125","1007791126.56226","937741512.447574","967338390.360019","999477458.730474","914500331.983723","931833293.75345","991387865.044932","1139754771.91102","1270080228.23241","1350300947.46755","1473721520.69935","1698125679.65188","1985370254.96172","1981728179.49882","1986014759.19785","2195599491.16978","2169706411.47799","1538175744.07775","", +"Canada","CAN","GDP (current US$)","NY.GDP.MKTP.CD","41093453544.9096","40767969453.696","41978852041.4426","44657169109.224","48882938810.2204","53909570342.169","60358632035.1532","64768831262.1761","70759031841.7237","77887510241.7083","87762259546.3681","99120804119.6276","112910634407.516","131121900809.919","160164449897.751","173569339952.812","206261020283.976","211289943864.598","218299964232.489","242701986341.13","273436840403.695","305748602885.979","313453027478.317","340318889970.789","353887730677.168","362960087879.897","375653832313.782","429021116138.763","506017713496.384","563639358108.108","592014912581.419","608258706467.662","590148092992.471","574833733819.084","575998828353.837","602021276595.745","626950495049.505","651001011122.346","631432423323.222","674325233896.48","739455928893.677","732716942148.76","752531702032.754","887751766469.203","1018385574395.47","1164179473989.7","1310795189078.17","1457872837625.94","1542560728744.94","1370839154047.03","1614072093764.07","1778632046932.59","1821445449562.2","1826768562832.01","", +"Central Europe and the Baltics","CEB","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","264565361607.414","250655375439.626","262984554053.889","274765529437.172","309960006640.776","380559534817.781","407476284177.163","406274819942.124","445862330980.544","431622998586.173","427129902047.764","468271204324.88","526447616721.946","632905170790.819","759226352467.1","881333483848.335","996747379796.894","1255130342817.75","1510801664710.79","1270154042033.38","1303578139231.81","1434867853222.98","1340631523589.04","1417536159600.65","", +"Switzerland","CHE","GDP (current US$)","NY.GDP.MKTP.CD","9522746719.21614","10712712465.0522","11879982758.5619","13063643795.7884","14480556571.5476","15346741669.7575","16480058704.8531","17740013179.26","18942729779.1","20524886616.4789","","","","","","","","","","","118710309542.281","108721034568.781","111431738019.012","111035571006.622","106019113631.527","107496240242.562","154095512368.67","192981619165.773","208774024533.588","201572650956.66","257420293190.325","260459896582.985","271133679206.372","263691005481.862","291913801125.978","341759012938.689","329619351051.78","286604024805.347","294977518761.208","289884127679.404","271659728209.379","278628772872.719","301127808995.252","351982634291.23","393541693928.428","407543292839.302","429180758069.191","477421391034.262","551552055046.21","539507555858.517","581208562423.374","696278717728.137","666100606813.394","685434185074.108","", +"Channel Islands","CHI","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","5945677376.61477","6262740656.85164","6439703434.71024","6232906290.4851","6663669064.7482","7332244897.95918","8553643354.08275","8827272727.27273","9676172953.08188","11514605842.3369","","","","","","","", +"Chile","CHL","GDP (current US$)","NY.GDP.MKTP.CD","4211762521.8548","4705377499.81869","5502763243.33889","5482749434.20374","5794301526.88849","6053790468.24208","7013580346.15593","6913560997.04789","7074820185.61307","8179771225.72187","8981111663.54259","10694569522.0727","11532517864.1275","16387454416.5288","15535549705.8948","7226476865.17312","9857547848.58237","13359145454.4104","15399431309.6652","20729772210.6846","27572307600.4103","32644872979.6923","24339421605.1856","19770402077.0148","19232737055.4021","16486012247.3704","17722536671.3316","20902096531.6075","24640912615.8116","28385038396.7035","31558927517.2188","36424168146.1543","44467946384.2462","47693992626.8649","55154226759.96","71349202308.6423","75769008174.2547","82808986191.6005","79373597080.1017","72995286764.4168","79328640263.7897","72336972322.3931","70984568428.5785","77840186384.8224","100630707851.859","124404150138.162","154671012210.645","173006275030.338","179857806671.501","172323378550.078","217501911333.709","251162316597.843","266259263033.373","277198774856.807","", +"China","CHN","GDP (current US$)","NY.GDP.MKTP.CD","59184116488.9977","49557050182.9631","46685178504.3274","50097303271.0232","59062254890.1871","69709153115.3147","75879434776.1831","72057028559.6741","69993497892.3132","78718820477.9257","91506211306.3745","98562023844.1813","112159813640.376","136769878359.668","142254742077.706","161162492226.686","151627687364.405","172349014326.931","148179569816.016","176633881531.548","189400991348.881","194109567421.566","203181343416.893","228454092247.428","257430422884.014","306667904949.769","297831277506.753","270372534122.446","309523098698.397","343974067007.621","356937329023.319","379468645984.927","422660548425.379","440501207081.725","559224201926.097","728007549739.406","856084628929.78","952653115236.503","1019461964545.94","1083278591739.61","1198474937919.3","1324806909018.3","1453827558024.4","1640958734587.31","1931644329934.27","2256902590825.33","2712950885444.1","3494055942162.34","4521827271025.62","4990233518751.65","5930502270312.98","7321891954608.06","8229490030099.96","9240270452046.99","", +"Cote d'Ivoire","CIV","GDP (current US$)","NY.GDP.MKTP.CD","546203558.456965","618245635.134801","645284474.559229","761047198.973677","921063326.292797","919771228.036522","1024102881.90257","1082922725.79069","1281281277.98148","1361360291.5873","1455482795.26555","1584128511.27902","1849400398.25228","2508421425.57669","3070152313.83854","3893839184.06847","4662053819.62908","6265068200.43055","7900526290.12877","9142933955.51749","10175617589.1232","8432589956.34896","7567110855.85391","6838184772.07869","6841639250.21886","6977650648.47401","9158302111.36131","10087654451.3411","10255169812.0186","9757410629.74456","10795850584.5874","10492628587.8592","11152971284.4479","11045760268.6156","8313557515.30312","11000146268.6884","12139234220.4139","11722213506.6176","12782570245.73","12556457526.9353","10417060604.9044","10545285036.7953","11486664265.3548","13737482343.4215","15481092596.5472","17084927539.8488","17800887469.3146","20343636058.733","24224905503.6554","24277494337.4004","24884503950.6814","25381617035.7012","27098590232.3209","31062026533.1508","", +"Cameroon","CMR","GDP (current US$)","NY.GDP.MKTP.CD","618740961.944997","657597316.816256","699373631.084707","723624330.858598","782384403.970361","814140009.386173","853268764.381481","934078958.314689","1053076992.00054","1152418382.23076","1160002328.88071","1233991070.532","1430951432.46712","1758727646.78718","2255496517.15439","2752770608.49462","3076592633.82981","3366368801.2738","4409920570.99328","5811443663.30692","6740757493.21907","7636346056.38029","7322913599.92741","7381853864.7487","7801858400.9944","8148223552.07028","10621157923.4974","12302473328.8425","12493286837.0158","11140057045.8904","11151578702.7205","12434368416.0445","11396311478.4471","13532134752.5833","9220471470.99796","8733230556.17332","9732328760.63403","9840553566.22716","9629649715.21001","10486451906.6665","9287367568.79443","9633109256.73606","10879778327.8194","13621738512.2581","15775356736.7645","16587857509.4422","17953066391.1137","20431781120.1785","23322256428.0125","23381142604.4364","23622482954.804","26587310733.5738","26472054176.1664","29567504655.4935","", +"Congo, Rep.","COG","GDP (current US$)","NY.GDP.MKTP.CD","131731862.568997","151675739.160627","166521239.863281","172233430.871502","185693724.845331","198318063.860835","220613582.369827","237397428.336429","251247458.012189","265040036.059116","274960699.85855","322128019.323561","410669262.897929","541973362.480998","585364635.354748","767102679.018622","754549600.548182","765224030.636552","878771771.29105","1198749665.95066","1705796849.54655","1993512325.92286","2160640566.5396","2097274289.61512","2193581366.40722","2160872541.41887","1849268214.68184","2297753649.2798","2212536313.33492","2389593021.94866","2798746050.58236","2724853507.64996","2933222705.7974","1918970177.74925","1769365438.88526","2116003868.17373","2540697537.70424","2322719101.28455","1949481380.64925","2353909441.70059","3219910666.0298","2794259756.13093","3019993723.12586","3495868724.65945","4648628839.49057","6087002681.74095","7731261168.83097","8394688589.05419","11859015180.9402","9593536719.07311","12007880067.4395","14425606793.3651","13677929161.7142","14085852120.4761","", +"Colombia","COL","GDP (current US$)","NY.GDP.MKTP.CD","4040948304.74373","4552914129.61186","4968598030.68741","4838841455.55556","5992169466.66667","5790247619.04762","5452762962.96296","5727208180.14705","5918467519.18157","6405440200.13469","7198373469.47995","7820367892.9766","8671371951.2195","10315774588.1355","12370045405.1288","13098633901.8673","15341403660.4698","19470978268.2589","23263511958.0509","27940389361.1188","33400712095.04","36388389129.3376","38968019453.0773","38729822781.5997","38253120737.9671","34894419525.2204","34942483688.1685","36373312082.6578","39212545681.4333","39540083645.5519","40274204595.2296","41239551378.2482","49279585355.0948","55802540100.9795","81703496603.9934","92507277798.1985","97160111573.337","106659507963.528","98443743190.8491","86186156584.3817","99886577575.5444","98203544965.2678","97933392356.4253","94684582573.3167","117074865515.279","146520136085.39","162773603929.706","207520150283.04","244056732297.388","233821670544.258","287018184637.529","335415156702.186","370328075210.144","378415326790.081","", +"Comoros","COM","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","123505661.348515","114271876.277722","107089562.695541","111519674.004581","107489831.795505","114490708.868824","162487778.450173","196433673.798862","207476558.379624","198733188.223655","250030778.38846","246823412.937961","266191082.845245","263568133.064641","185761813.213562","231896233.742985","230495756.548375","212099640.768249","215394048.572942","222580461.640908","201899883.626713","220093828.34815","246737670.812348","317562300.765468","368143110.95941","380372884.760887","406111892.704545","462453621.984987","517477659.539394","514788085.204949","516962949.496508","566024675.855027","550476499.209079","598925862.953067","", +"Cabo Verde","CPV","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","142246875.536716","139468114.599741","140630758.594899","138476239.366792","132019065.033419","137728155.212661","190651207.999511","235253171.841062","264308140.285149","267448513.108168","306891107.262039","319827058.592875","357160985.327413","490417389.682569","406580652.330537","487148993.533109","501979075.352537","490608657.924976","521910560.524868","592416703.058878","539227052.849166","563024256.736127","620974807.125451","813963933.830773","924318505.851547","971976952.231872","1107890815.24702","1513934037.24782","1789332788.19169","1711816593.14273","1664310632.50516","1864823990.9938","1757304418.79445","1879402553.60154","", +"Costa Rica","CRI","GDP (current US$)","NY.GDP.MKTP.CD","507516617.287777","490324267.102377","479181227.220072","511902566.699118","542578822.460723","592981156.226415","647305631.396226","699456618.264151","773841499.773585","853630203.169811","984830159.698113","1077152887.35042","1238251657.6619","1528916175.15355","1666544794.71392","1960863535.87025","2412555508.08092","3072427124.57764","3523208933.86208","4035519471.59193","4831447173.21361","2623807083.30709","2606621244.69654","3976453954.94436","4593908761.79189","4796628461.62238","5477895475.74339","5841132961.39946","6063759371.10467","6866402028.35824","7403457319.25185","7162546761.41469","8573611050.18873","9638291586.86293","10557530654.1743","11722357067.305","11843228539.7911","12828975924.3336","14101753567.4015","15796567138.0566","15946443103.2804","16403602943.4123","16844378578.178","17517536016.1874","18596365926.8535","19964893807.3935","22526464409.0829","26321999607.4464","29831167681.3826","29382692643.1392","36298327669.8974","41237296806.8532","45374788701.1671","49621089476.1317","", +"Caribbean small states","CSS","GDP (current US$)","NY.GDP.MKTP.CD","1859229152.92043","2010807399.46187","2120345718.96577","2258228730.69028","2429886840.13217","2614400289.32153","2834716244.131","3047396311.67175","3031236429.77278","3303911432.41008","3646983517.4801","3971866811.03348","4595320675.59937","5050458052.88186","6535038879.63684","7650579937.72352","7874820023.28473","9115305692.48254","9329515055.14562","10715529707.686","13198346283.3724","14416121409.0952","16021593669.1953","16406832294.5352","15572528824.2627","15339714648.2596","13910360613.8868","14931366027.1655","15805757937.3929","16151256723.8155","17581092349.0917","17457961916.1899","17177932558.3986","17881237288.7717","18982650115.7715","20821836870.6359","22680636430.5023","25356787997.571","27847248293.4","29613300907.4007","32283550905.1253","33156568952.8547","34952635480.1792","37422356830.3295","40770535976.8498","46587144814.1829","52490948176.4208","58438689570.0527","66698700872.5015","56145294968.5054","59375034444.9625","64008052113.8963","65360347413.8184","67033118185.1864","", +"Cuba","CUB","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","5693005244","6914658389","8135150888.7723","9987709686.36912","11405957363.4146","13027415252.439","13789579892.8136","14206158657.8313","17844705319.4805","19584443219.1781","19912889808.3333","20150254124.0964","20953510265.8824","22205716020.35","24039383641.4343","22921491786.9543","24226283927.4787","25213614325.1389","27458999535.6201","27025200369.1125","28645436550.5319","24317883624.0548","22085858204.0541","22367254851.3514","28448326795.9459","30428638304.4183","25017300000","25366200000","25736600000","28365300000","30565200000","31683300000","33590400000","35901500000","38202800000","42644200000","52742100000","58603500000","60806200000","62078610000","64328220000","68233900000","","","", +"Curacao","CUW","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","", +"Cayman Islands","CYM","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1012444041.02053","","","","","","","","","","","","","","","","","","", +"Cyprus","CYP","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","489912509.318058","576090037.834172","734876187.342747","964024738.781719","1288699020.84441","2154311327.61791","2087496321.68131","2159242370.64266","2160364085.74805","2278248930.25623","2430411867.33042","3090734455.16825","3704813856.98831","4278792561.50314","4563482552.74272","5591130222.43931","5770197317.23346","6912150472.55033","6590291095.49423","7425703907.18095","9250142747.79301","9346693021.63312","8905554119.33888","9553478738.04774","9776223013.13322","9314937556.47908","9679304970.56184","10557366161.9634","13319544758.4518","15816972050.6976","16997801392.3755","18435765910.0111","21841815680.8803","25321517504.0281","23542650736.3156","23132450331.1258","24851264943.0081","22766912960","21911444503.4519","", +"Czech Republic","CZE","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","40315847383.7197","29557058893.2806","34451992668.1687","40452245948.5479","47364869446.8406","59537113790.5049","66775128782.9017","61621397381.0607","66372663111.1019","64719367646.1017","61474265134.5364","67375682473.4678","81696693249.3007","99300329682.0164","118976254632.827","135990121361.165","155213120558.221","188818465531.118","235205271893","205729790694.015","207016402026.364","227307241312.732","206751372749.33","208796024645.834","", +"Germany","DEU","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","215021806498.156","249039217364.635","298667219346.133","396866742553.97","443618642959.716","488780155338.262","517787921003.573","598226205424.071","737668356280.428","878010536975.776","946695355820.96","797443405711.813","773638200773.757","767768378016.086","722367608343.069","729763282952.432","1042300769791.95","1293264353318.82","1395931548502.06","1393674332154.37","1764967948916.6","1861873895109.02","2123130870381.97","2068555542410.98","2205966011811.5","2590500887129.79","2501572654016.12","2215937288517.93","2239913304434.81","2196686554442.79","1947208402432.28","1947928411633.11","2076303406738.19","2502313769751.69","2815592929913.77","2857558573347.26","2998466393955.9","3435506663701.22","3747055453913.22","3412770245920.79","3412008772736.86","3752109943533.54","3533242461467.05","3730260571356.51","", +"Djibouti","DJI","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","340989541.520743","","373371753.01694","395794554.216675","409220103.326882","452328104.992109","462422016.630202","478058323.587723","466048487.476264","491689239.995148","497723980.076454","494004667.075295","502675561.681628","514267889.435014","536080169.085534","551230861.856505","572417440.820162","591122039.601398","622044665.515049","666072101.777505","708633194.726566","768873684.032838","847918929.107984","999105339.267729","1198997304.76421","1128611700.3618","1239144501.77525","1353632941.5207","1456344495.0231","", +"Dominica","DMA","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","36370369.7280465","45170369.5726329","44296295.5139955","59099998.9562564","66218517.3490573","72051850.5793703","79925924.5143832","89848146.5613727","98585183.4441081","112074072.094775","126348145.916759","143766664.127656","153374071.36539","166322219.284866","180437033.850404","191759255.872669","200418514.979","215459255.454112","224037033.0804","236444440.268685","245781477.140824","258440736.176513","267740736.012269","335845808.883564","343119364.310664","337695734.776819","350091216.039388","374771474.862779","370370370.37037","397777777.777778","428888888.888889","468888888.888889","498888888.888889","492962962.962963","508518518.518519","514814814.814815","516666666.666667","", +"Denmark","DNK","GDP (current US$)","NY.GDP.MKTP.CD","6248946880.2777","6933842098.84548","7812968114.40012","8316692385.77386","9506678762.77765","10678897387.0006","11721248101.0874","12788479692.1939","13196541952","15009384584.5333","16866156733.3333","18823150290.1849","22966364108.6153","30459579436.3171","33900564767.2644","40251071473.3215","44401699735.3185","49666416194.6962","60281337504.0801","70309794677.8179","70867465285.0476","61376989330.9375","59916301293.7449","60188398261.345","58673426983.7591","62220601827.0356","87800282647.386","109150052132.216","115111916809.032","111886844190.309","138094873105.387","138964910325.96","152690732178.062","142962900445.719","156144903578.279","185006961302.299","187632400365.599","173537588008.176","176992000955.11","177965224620.854","164158800460.219","164791416350.267","178635160297.415","218095997085.477","251244521002.961","264559081260.182","282962119265.137","319500290932.593","352589421253.574","319764341586.559","319812413596.903","341497953096.868","322276544469.312","335877548363.831","", +"Dominican Republic","DOM","GDP (current US$)","NY.GDP.MKTP.CD","672399700","654100200","824100000","940799900","1025599900","888100000","983900000","1034800000","1079100000","1230500000","1485400100","1666400000","1987300000","2344699900","2925600000","3599300100","3951399900","4587100200","4774400000","5498800100","6631000100","7266999800","7964000300","8622000100","10330399700","5044579947.10545","6122128247.69061","5827050857.29713","5374300243.25495","6686592728.70663","7073674721.12418","9724379019.62036","11277694536.9488","12976408000","14511134920.6349","16358496124.031","18131813000.6281","19593449903.2551","21171235997.8508","21709041189.3244","23996656675.8335","24894907435.1447","26570402718.796","21268012747.2709","22163928096.993","33969724872.4638","35965041793.3794","44078280922.1207","48143840499.8707","47889008135.3266","53042943731.136","58145330250.3688","60331668442.6699","61163676804.5466","", +"Algeria","DZA","GDP (current US$)","NY.GDP.MKTP.CD","2723637620.4039","2434766866.27334","2001460838.78378","2703004009.92404","2909340114.7226","3136284385.14828","3039859268.24911","3370870461.13558","3852147112.84503","4257253358.44365","4863487557.2335","5077222330.06931","6761786483.71017","8715106128.63411","13209713770.0892","15557934472.8677","17728348385.244","20971901062.9845","26364491674.6159","33243421339.3774","42345276287.5934","44348670724.0831","45207090667.8674","48801372227.5528","53698280322.5824","57937867717.4636","63696299985.0409","66742269089.6987","59089065516.8692","55631488293.8976","62045098370.0829","45715368143.9784","48003297248.8691","49946456681.2384","42542573602.1669","41764054034.6543","46941496308.2845","48177861890.8881","48187780126.1819","48640613515.0702","54790058957.3718","54744716706.3542","56760288961.5829","67863832648.2897","85324997369.5015","103198650297.779","117026655313.743","134977867931.582","171000162581.484","137211795394.166","161207304960.455","199070864637.558","204331017992.08","210183410526.104","", +"East Asia & Pacific (developing only)","EAP","GDP (current US$)","NY.GDP.MKTP.CD","80646626859.0849","70824710927.4666","64899406895.3451","69794823061.1169","80982597857.6159","94503201521.4492","103400148579.838","100275936081.718","101275587452.293","113723269241.517","126747460846.303","136030134195.472","154231468029.583","194568857875.734","220078000821.448","247300150483.021","251477732337.719","290931942370.916","282677165351.632","327852267607.558","379738930948.526","406420523239.453","423607544012.289","443602583986.267","479714157801.914","524530790153.018","520907034049.275","514161134070.873","574864557185.487","622738914510.07","668370320671.718","728306578099.379","814379356563.464","878264081714.316","1058779399611.33","1308355709775.03","1502844868439.38","1557643223717","1423625013186.75","1563730084678.37","1723380122030.82","1834852649064.81","2028425265890.77","2291383749773.66","2657177720392.02","3072049410957.81","3693463640569.7","4663836405174.6","5895846365886.16","6360249316603.31","7628835929012.15","9293588723128.9","10331076593923.3","11413581061319.8","", +"East Asia & Pacific (all income levels)","EAS","GDP (current US$)","NY.GDP.MKTP.CD","153587924815.528","154224871549.299","157741013165.443","175430450854.178","201676539905.851","224506305028.826","250955048935.367","272046217881.188","299828612413.547","345370402829.841","404730841990.049","448924739649.146","556982667413.148","734602443170.924","846160623583.349","926547322648.781","1018805481545.06","1214905594475.83","1532961372079.76","1666117903343.38","1801855043822.83","1991006301940.42","1947621692508.92","2065359055521.45","2213306191267.83","2344703234962.89","3054449792353.17","3571535836446.61","4300840432972.08","4503696643996.22","4715708278488.22","5309456580752.59","5793896015739.35","6486514680461.95","7239466391840.06","8175568112000.84","7860255830396","7550445762592.13","6726849730714.33","7509697979291.88","8107479659612.31","7539249366343.71","7664826634091.67","8427289876584.18","9451130209964.22","10059242351774.1","10675204609803.8","11955560393178.8","13785461196880.5","14162019832885.7","16439333902167.9","18992715041363.5","20293482500884.4","20498590153853.7","", +"Europe & Central Asia (developing only)","ECA","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","339503426304.787","357550059607.696","394718200464.013","452847398012.632","421023164815.888","411215091473.913","424270451549.113","357973780247.821","408154949249.82","418285533737.471","437094326131.567","517737738168.847","473826190944.184","479205528495.087","436252848983.083","509499460939.713","647766987254.324","824926783295.352","1009066504151.65","1164178343612.57","1475119837966.11","1756557055197.15","1463062396744.02","1652860016198.11","1847859023386.64","1873978729250.51","2001154446704.21","", +"Europe & Central Asia (all income levels)","ECS","GDP (current US$)","NY.GDP.MKTP.CD","433636383076.753","461590499911.139","504649394250.825","556483198408.527","616261233371.679","670608762802.759","728542046267.56","783847837615.146","817513630555.554","897547225140.739","1008903731894.7","1137435950249.91","1363299024080.68","1730716795418.65","1957670998707.1","2292777894706.92","2382153943965.11","2699252470818.07","3292033754459.92","4025040618592.71","4557395546707.6","4051757001583.07","3905078154513.46","3786962455228.31","3638967515301.2","3765310064596.61","5139106455620.9","6343749645997.99","7055684801018.46","7203580778665.91","8818821285171.99","9094487093517.21","9763454826365.04","8973823003205.85","9393043627600.1","10740662229964.1","10957713596444.2","10379887001061.7","10639574527698.8","10517921871831","9911801372127","10016822082012.8","10961731236956.3","13370340038917.2","15588234403719.2","16594802827151.1","17966894068897.6","21003677460886.4","23065273652028.2","20300592389315.2","20811125669564.4","22913591071548.6","22002547300462.3","22920192854590.2","", +"Ecuador","ECU","GDP (current US$)","NY.GDP.MKTP.CD","1010325138.03016","979108806.848646","958598195.033967","1038389642.31418","1156150890.06133","2387048255.45173","2429309513.80854","2553596091.82258","2582180794.1855","3112166848.3004","2862504169.99893","2754220263.02528","3185987234.84089","3891755551.94138","6599259420.99605","7731677256.80982","9091924304.83477","11026346589.5011","11922502170.6405","14175166007.5774","17881514682.8784","21810767209.3695","19929853574.6095","17152483214.3536","16912515183.2783","17149094589.9827","15314143988.0621","13945431882.2271","13051886552.3377","13890828707.6493","15239278100.3502","16988184456.1009","18093864474.8747","18938326276.0837","22708204404.8635","24432379905.6316","25225872274.1333","28161471482.9701","27981319125.1358","19644866963.4276","18327386415.9524","24468324000","28548945000","32432859000","36591661000","41507085000","46802044000","51007777000","61762635000","62519686000","69555367000","79276664000","87623411000","94472679000","", +"Egypt","EGY","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","5111621003.42708","5339520731.69733","5579168564.81056","6109112105.29243","6861743547.38569","7682492054.30836","8266003436.8211","8763960904.15995","9616725500.74052","9015166907.68881","11437965494.4087","13360477266.8614","14636028524.497","14849909052.6011","18150000880.5212","22912499645.0946","23405404428.0928","25592366130.5002","28137368609.1202","30642873672.663","34689560468.3365","35880262483.3408","40507934110.5555","35044633274.6022","39648442471.6039","43130415141.8989","36970555125.6168","41855483504.0259","46578631212.6125","51897983715.5584","60159244485.2081","67629717779.7354","78436575743.8573","84828807269.5429","90710703939.4609","99838540997.3209","97632008050.9425","87850680579.2814","82923680612.804","78845185715.9104","89685724897.157","107484034644.765","130477817194.412","162818181818.182","188984088127.295","218887812549.851","236000735704.439","262831912586.538","271972822883.38","", +"Euro area","EMU","GDP (current US$)","NY.GDP.MKTP.CD","245301596018.556","270011951912.666","299642122993.007","336151277729.918","373876177298.472","407972791728.676","444880769624.538","483268119444.947","518077802262.785","572327119521.379","641081750139.222","726607673740.104","877833587944.77","1139513368080.02","1292094696449.44","1498336899930.15","1563501479781.22","1778292216059.9","2177611084532.58","2638078936051.84","2954870299678.33","2568239743796.22","2486471000848.28","2425730967216.88","2326881302653.02","2390646538760.55","3355235312357.11","4150270216861.7","4565193017259.65","4664207800958.27","5867715888812.83","6099448751910.52","6726651010141.21","6161002151391.04","6507723495913.47","7508880085892.9","7597591914702.26","6942501518917.85","7133705551781.53","7101828051471.57","6471760059887.36","6575324709121.73","7151851435977.1","8823945370126.34","10116968412395.2","10494662127966.1","11138042706617.9","12820776033166.6","14052955718797.8","12857708782004.2","12595554290167.6","13577024737331.4","12620258555028.4","13148056314733.8","", +"Eritrea","ERI","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","477101651.648376","467876293.706829","531688311.688312","578015625","693535954.190067","686494476.137988","745526149.49945","688921325.712043","706370812.289101","752368494.461824","729321364.095048","870247701.706937","1109054002.42096","1098425899.89884","1211161879.50862","1317974493.40894","1380188800.03147","1856695550.46865","2117039510.70194","2607739837.39837","3091967479.6748","3444097560.97561","", +"Spain","ESP","GDP (current US$)","NY.GDP.MKTP.CD","12072126075.397","13834300571.4849","16138545209.246","19074913947.7196","21343844643.7341","24756958694.9238","28721062242.1634","31647119228.1982","31475548481.4095","36038711599.541","40881655098.6451","46492797365.2695","58971806626.9739","78425934894.3461","97009800115.3735","114465300289.855","118185307386.222","132089531434.83","160163483072.917","214019077342.588","232134606637.271","202257045774.013","195464408602.151","170486866357.309","171635463361.623","180302412230.92","250638463466.793","317882187036.787","375138723325.239","413630538018.271","535101248775.71","575598537069.656","629202392003.901","523649481762.322","529121577319.588","612939685081.398","640998292394.588","588692045454.545","617041986858.225","633194118900.49","595402616546.895","625975838926.175","705145868624.13","906853273137.698","1069601981710.16","1157247674476.45","1264486722860.56","1479265709739.78","1635049580162.05","1498984446173.62","1431587612302.26","1494598106576.36","1355732589969.33","1393040177013.68","", +"Estonia","EST","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","4362191345.39733","4739181428.01405","5059146979.2606","5608007342.30726","5715278960.81772","5685561595.87211","6233506400.5013","7308608834.88744","9822143179.76513","12057639751.5528","14003096552.7533","16958044845.6933","22228670168.1751","24185794095.1301","19640620154.0994","19479012423.353","22803433932.9544","22660754203.7911","24880264958.1187","", +"Ethiopia","ETH","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","7324903191.9444","7707678023.04719","8567890825.39512","8096302368.77946","9480840483.09179","9848600869.56522","10527338647.343","10908935748.7923","11476584879.2271","12175166763.285","13463868357.4879","10492993077.6093","8830781623.09793","6927910634.00577","7663994781.33166","8547962278.78354","8589233419.59411","7818205971.60231","7700876202.56451","8242349955.0511","8231251885.98532","7850789592.74778","8623669993.37989","10131098642.3023","12401031522.1633","15280701943.6817","19707616772.7996","27066912635.2228","32437389116.038","29933790334.3418","31952763089.33","43310721414.0829","47525186490.0517","", +"European Union","EUU","GDP (current US$)","NY.GDP.MKTP.CD","359355614095.971","391242400063.955","427402905066.132","470842086531.221","521801660761.678","568248255356.914","615996914739.999","661933154773.005","688010099334.174","755671110314.762","855685016281.375","967588661029.218","1158798566822.49","1470665554186.39","1654832409672.5","1934237911824.16","2002499297498.56","2267393394605.95","2776390337544.88","3388592464061.49","3866161706246.1","3416842619039.34","3289232871798.16","3187120358389","3059514640418.05","3161536776866.01","4335260058022.83","5357876059289.56","5970801585420.24","6088384091637.46","7556613853278.11","7841605945692.06","8546981900888.27","7794525724822.01","8285475308327.8","9517460790161.38","9725686942875.29","9165927129125.2","9488328476907.72","9474479254463.19","8808544629037.12","8911276745504.12","9719946209088.83","11852251677218.9","13689653026260.7","14312647594144.6","15273668674696.5","17661350374599.5","19008890167151.8","17001813534975.2","16934782699535.5","18308288302106.8","17251951436183","17958073311154.8","", +"Fragile and conflict affected situations","FCS","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","147933515244.464","151030460148.237","144793907290.455","143352621067.46","126553068385","134140317590.795","143275635679.553","154066029839.476","150023038537.154","155682535036.26","186048093294.222","170602064373.569","169730062071.972","191127966147.815","226905364965.076","276220952912.408","332785150872.863","419260244820.68","535480387458.158","472585502383.865","556081831305.52","589816840595.439","680552533848.101","713498884107.841","", +"Finland","FIN","GDP (current US$)","NY.GDP.MKTP.CD","5224102195.52771","5921659485.03284","6340580854.39073","6885920328.66187","7766655085.78588","8589340019.02985","9208524504.87684","9368954010.3132","8823033880.32993","10070766720.5011","11365953567.3839","12536710287.0134","14754136507.0261","19486826979.9284","24867278714.3532","29494515597.22","31873171718.726","33524682307.8058","36283091407.9422","44498283620.8213","53685049410.2646","52485533204.7396","52832120389.7866","51014090520.9223","52926394934.7052","55914236377.5902","73586676049.7302","91642093872.5822","109103056147.832","119064708327.56","141517648888.198","127866490222.026","112625431377.754","89255751014.885","103321570859.419","134199346405.229","132099404607.818","126833123353.568","133936359590.565","135225868314.511","125539893126.958","129250111856.823","139552983248.635","171071106094.808","196776616813.495","204430930706.86","216541409976.698","255371507758.635","283753003898.712","251483878456.439","247799815768.477","273674236772.815","255776225885.226","267328613728.338","", +"Fiji","FJI","GDP (current US$)","NY.GDP.MKTP.CD","112334368.396772","116993977.848207","122912941.205436","129461581.515562","140040154.324227","147084750.031482","150603925.515853","162625885.863484","166952937.135005","182182067.703568","219878482.173564","247749327.721267","316650508.967523","425963359.355326","558589870.903674","684268280.812751","694552411.718837","719533137.126662","829239489.844119","1019743927.24662","1202567359.4132","1235899836.18067","1194015444.01544","1123107276.30285","1177997413.63384","1141210124.82663","1290228616.82408","1177908191.97685","1109976927.91722","1182686577.22645","1337024782.22702","1383843860.1247","1531803060.54558","1635426125.30808","1825285158.11762","1970347720.96992","2129266728.42585","2093994597.21549","1656784779.545","1942170999.18765","1684109743.49338","1660102345.60309","1842691481.09196","2315935752.71653","2727507212.92556","3006725014.78415","3103099942.22992","3405050611.68726","3523185919.55826","2870624635.68032","3140508835.9485","3646423265.67031","3849824012.51467","3855017106.54936","", +"France","FRA","GDP (current US$)","NY.GDP.MKTP.CD","62651474946.6007","68346741504.4257","76313782251.6964","85551113767.3727","94906593388.3107","102160571409.274","110597467198.645","119466139619.589","129847107787.883","140725497222.277","148948860281.091","166564460755.298","204283485045.514","265381555686.506","286526186579.378","362000917852.226","373410270417.919","411464295266.114","508183139534.884","615834104224.484","703525302701.025","617589619794.81","586837009681.605","561852138738.274","532648802822.187","555197109067.017","774556302680.178","938368438284.405","1023504019381.13","1030122352457.33","1275300566196.84","1275563306592.26","1408724907063.2","1330094973361.13","1401636342155.01","1609892232882.11","1614245416078.98","1460709148123.17","1510758283299.98","1500275942893.67","1368438363736.87","1382218344519.02","1500337850555.24","1848124153498.87","2124204553215","2203623837238.22","2324892820068.39","2662975825905.46","2923573946917.03","2693665189295.46","2646837111794.78","2862680142625.14","2686722589269.73","2806427978233.99","", +"Faeroe Islands","FRO","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1105688872.97039","1125684470.05533","1062339943.83343","1154899793.33878","1268445919.41429","1486861878.95624","1683997930.26322","1730894295.38595","1970135198.76236","2278229880.41222","2412859692.82674","2198138372.28824","","","","","", +"Micronesia, Fed. Sts.","FSM","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","106500000","","","112210000","116700000","124700000","135200000","147200000","166200000","178100000","198400000","202500000","222103600","218845700","206900300","219646200","220660500","233226300","240051900","241543400","244991000","239563300","249845600","252991200","255890800","261339600","277510900","294117200","310287500","326161000","316245700","", +"Gabon","GAB","GDP (current US$)","NY.GDP.MKTP.CD","141468977.521066","167637907.544815","182796536.614163","154480244.361122","215679855.207217","226474285.587109","245849781.7159","271543680.279285","294468564.534369","318124701.048949","323802475.480977","381687073.058558","430508357.723916","722780701.123251","1544216003.9841","2157592936.60712","3009409970.90514","2809349074.17738","2389479269.18878","3030251116.35999","4279637933.85126","3862269126.92642","3618007844.44919","3391275731.31834","3561451562.23569","3339914759.37269","3403638193.57912","3281797038.70584","3834503378.28811","4186411457.4569","5952293765.84484","5402919788.23153","5592390832.66829","4378645081.01769","4190819346.82143","4958845649.02823","5694039999.86528","5326817111.31062","4483417313.11823","4662991794.05396","5067865502.79988","4712849279.64923","4931503836.34766","6054883172.03912","7178135606.41428","8665736617.5506","9545982814.08494","11570860872.2274","15685389826.8882","12031268402.3877","14569527124.6199","18796191833.0851","17843815459.3005","19343506598.656","", +"United Kingdom","GBR","GDP (current US$)","NY.GDP.MKTP.CD","72328047042.1588","76694360635.9159","80601939635.2483","85443766670.4279","93387598813.9269","100595782309.165","107090721447.057","111185383409.521","104702736248.084","112676874821.987","130596349412.047","147735304940.375","169739454295.704","191551239833.415","206919332865.825","247414986504.425","237713758670.261","268474780219.78","340235585618.408","442115137653.537","567100215198.699","538970579581.994","513778819182.39","487323139608.913","459229224394.786","485849332520.534","596948154646.731","733111416081.059","890702327641.409","899362902159.686","1066688571555.4","1116031344620.81","1157648104247.1","1043142283593.28","1130232675696.36","1235567303140.29","1304507020280.81","1438736083824.49","1529138787678.04","1558317424364.99","1548663943107.88","1529094573197.06","1674416966426.86","1943714285714.29","2298126991101.83","2412116400352.73","2582815892447.53","2963265224452.5","2791855193222.01","2308925879444.72","2407933767804.59","2591846114476.31","2614946487602.81","2678454886796.67","", +"Georgia","GEO","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","7753501867.76095","6353861165.29271","3690615907.04546","2701180603.9004","2513870619.64754","2693731857.8214","3094915500.59723","3510540809.24855","3613500125.91588","2800024318.56163","3057453475.85664","3219487818.31957","3395778679.6066","3991374548.50512","5125273871.83724","6411147328.44781","7761900166.04593","10172260744.6426","12799337247.5341","10766836276.5639","11638536834.4274","14434619982.2117","15846474595.773","16140047012.1438","", +"Ghana","GHA","GDP (current US$)","NY.GDP.MKTP.CD","1217230094.97205","1302674324.88378","1382515654.47343","1540797588.57221","1731296199.52296","2053462968.0426","2126300672.22965","1747187644.9031","1666909517.65205","1962050555.7775","2215028588.45646","2417108577.52739","2112293279.98507","2465493032.25878","2894409912.1709","2810106390.10618","2765254360.20623","3189428571.42857","3662478172.79996","4020227931.15097","4445228057.45354","4222441673.17049","4035994383.38367","4057275077.68156","4412279865.40315","4504342152.98679","5727602648.75537","5074829931.97279","5197840972.6857","5251764269.91812","5889174833.90034","6603130039.87292","6416079341.97329","5968905678.89099","5446370114.57708","6464389656.21299","6932984635.632","6891433840.90915","7482072380.2381","7718110780.94815","4982849054.0291","5314871683.5223","6166197191.76694","7632720680.28119","8881419348.21705","10731883141.4457","20410331625.6634","24757553101.6266","28528014620.7354","25978508375.9228","32174839712.7933","39564771637.3979","41740926505.1183","48137027487.1795","", +"Guinea","GIN","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","1922600899.3841","2041538057.02893","2384295763.72549","2432029380.43694","2666616176.91609","3014890569.04099","3284625277.16186","3279063317.63475","3383218922.79336","3693753379.05992","3869032270.91633","3783788551.0819","3588375984.48374","3461282189.69643","2995360969.17427","2833442750.41891","2949637039.06356","3446442218.89829","3666349049.40435","2937072009.0343","2821346683.51402","4134173271.02084","4515824643.35047","4609923720.17795","4735956475.83382","5067360041.10404","5651088170.28606","6144131903.01383","", +"Gambia, The","GMB","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","44212088.4188291","46695008.7660868","41160065.8347022","45168072.2454283","52296083.64654","55728655.7957709","59160575.5095456","75187768.3495329","95796033.6554112","115179737.736179","112190822.646033","138093106.277641","171833061.578461","207112649.702942","241083112.728768","218767720.450751","216050534.814986","213448615.748728","177340913.050244","225726370.227358","185646984.458794","220626480.938017","266672202.480435","284120331.64738","317083688.199874","690311093.172052","714254263.103249","755040935.022498","746493955.008434","785999879.720691","848239405.565637","803633368.735802","840285264.631545","814724055.898334","782913865.987568","687410630.457292","578235309.327198","487038679.355229","578785599.995561","624173995.611616","655068112.439639","798869803.525315","965771304.075503","900641059.324369","951827284.917949","904256027.71351","912427787.395989","903497025.655483","", +"Guinea-Bissau","GNB","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","78733538.8063883","78540000","87702857.1428572","89374185.136897","98775303.6437247","108985752.23376","112386559.139785","114971282.179455","122666792.285524","118537824.773414","110653830.726033","154731969.69697","165523634.49692","163577538.330494","138478900.626886","143856253.125","130225018.751674","173836362.010107","164458120.314078","213143016.443434","243961995.509711","257150573.214575","226313492.707039","236880813.824506","235619994.764252","253966919.93609","270419779.418107","268551010.939623","206457553.398034","224446652.144832","370173851.945686","392278164.416457","415843479.843865","476388249.275291","531109346.810712","586791836.059541","591829897.548303","695606313.878293","864107768.265095","825796952.67436","847491366.886774","1103652041.22031","958857944.221004","960778479.475346","", +"Equatorial Guinea","GNQ","GDP (current US$)","NY.GDP.MKTP.CD","","","9122751.67862188","10840095.2882258","12712471.4162862","64748333.3333333","69110000","72317446.9327193","67514285.7142857","67225714.2857143","66331428.5714286","64946954.756798","65429198.238708","81203226.9138345","94159862.7073691","104295643.388437","103653049.93797","103987520.075827","","","50642880.7737503","36731422.8456914","44294647.733479","44442456.94764","50320914.4065688","62118570.0053235","76407395.9710488","93345859.4050323","100534656.942699","88265974.7260518","112119411.508746","110906028.612022","134707183.973556","136047906.00517","100807002.602709","141853360.895902","232463022.679122","442337870.426546","370687634.697573","621117853.413296","1045998534.00361","1461139007.93716","1806742732.9109","2484745875.82124","4410764260.97786","8217368425.25252","8081982438.42333","10201201021.9118","15439740345.2575","9364826470.14287","11582917790.3046","15725711943.066","16496531232.9983","15580563835.9242","", +"Greece","GRC","GDP (current US$)","NY.GDP.MKTP.CD","4446528164.67559","5016048786.22753","5327573509.09843","5949478034.88751","6680298250.57961","7600579093.1158","8455611129.27936","9136711287.82434","9915140546.35072","11266091570.5718","13188347727.2727","14645597727.2727","16947813636.3636","22430307249.7123","25444850000","28631130712.0085","31267791977.6119","36309721554.1166","44433557513.9147","54682910763.5695","57039361310.9512","52539662976.6298","54819528061.2245","49611261996.904","48197215840.3869","47997306686.4051","56587630963.9727","65895005787.6195","76542677876.5313","79461172471.6744","98252302880.4815","105531204337.259","116653534858.777","109210557372.176","117032055337.079","137383438740.991","146558607021.518","143310869836.516","144918713248.011","142998082250.16","130580431177.446","136006263982.103","152714097496.706","201547404063.205","239659036585.896","247665771277.919","273265389114.638","318668286256.865","354628633541.01","329837035755.546","299598056253.272","288803062127.739","249525371463.234","242230333768.932","", +"Grenada","GRD","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","53322221.2805178","67548146.9552048","78314813.4317253","83614813.3381239","87888887.3367152","95229627.9478137","101211109.323658","110099998.055564","128211108.846821","144011108.567783","167229626.676248","184533330.074357","213066662.903774","221070366.466127","241570366.104084","250914810.383499","250259254.839521","261777773.154616","276296291.416728","294651846.648113","304940735.355293","340814808.795808","379629400.70291","520044361.186056","520444175.99381","540336916.383232","591018396.969646","599118582.011777","695370284.015614","698700654.327168","758683579.193757","825977874.301594","771278097.489849","771015875.272257","778648652.915236","799882134.02172","835581688.946799","", +"Greenland","GRL","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","69520029.2730826","88570999.351486","106101302.474152","140153753.721821","169918944.063056","211192463.686328","240779415.675002","282269773.042773","355987428.402836","420645794.968404","476051769.013942","435749013.870185","402403057.151259","416184086.23097","379371913.715958","412876395.826869","603016317.536303","787390447.323345","898607670.624413","929799902.191124","1018977225.44427","1016500016.28505","1037916105.23293","927214127.934317","1005887592.03539","1208953358.99709","1197515637.92052","1072154406.78905","1149858126.95747","1131555107.04907","1068024993.98697","1086170638.72901","1169136691.35372","1426452030.10471","1644951892.18151","1702543476.55709","1738432116.43728","2121759848.4242","1739579593.56673","1267711816.12426","","","","","", +"Guatemala","GTM","GDP (current US$)","NY.GDP.MKTP.CD","1043599936","1076699904","1143600000","1262800000","1299099904","1331399936","1390700032","1453500032","1610499968","1715399936","1904000000","1984800000","2101299968","2569200128","3161499904","3645900032","4365300224","5480500224","6070600192","6902600192","7878700032","8607500288","8716999680","9050000384","9470000128","9721652291.98458","7231963339.80992","7084399820.8","7841603176.10698","8410724409.21075","7650125576.4628","9406097461.10554","10440842291.647","11399942820.3849","12983235118.703","14656917900.1721","15781579950.4132","17788657193.8986","19393672243.9406","18317089473.0904","19290566570.0483","18702820735.0173","20776536919.9593","21917565499.915","23965280312.0871","27211243473.2261","30231117389.6402","34113093453.9246","39136507936.5079","37733655165.6538","41337958251.632","47654841112.8523","50388454861.1111","53796709474.5953","", +"Guam","GUM","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","", +"Guyana","GUY","GDP (current US$)","NY.GDP.MKTP.CD","170216238.857225","185849532.898944","194949510.027706","175757891.595894","194774510.467537","213235288.136558","228705875.937914","250176463.570974","229750000","249300000","267800000","282050000","285380965.340976","307047632.991592","433954536.048833","494791647.005413","454440000","449880000","507080000","530440000","603200000","570357116.855982","482000000","489333333.333333","437631610.754711","453488351.977666","504651117.150102","354591840.037446","413799990","379779379.053357","396582263.291139","336708410.308116","368281383.388912","442273443.546171","540874922.265948","621626785.915493","705406032.09015","749138004.427072","717530696.5536","694754983.970153","712667925.33978","696281468.774584","722460911.811326","741929342.788749","785918769.587635","824880550.343965","1458449057.88559","1740334781.83731","1922598121.23066","2025565089.48272","2259288396.24467","2576602497.33479","2851154075.95385","2990128820.97983","", +"High income","HIC","GDP (current US$)","NY.GDP.MKTP.CD","1092285481954.92","1156110761063.19","1248209395602.71","1343241373084.48","1466842558870.47","1592786705375.59","1746793794155.69","1873242602714.54","2029049956701.98","2227040089865.25","2445963582256.42","2714694390462.1","3149284604947.31","3808768149300.92","4298117055050.19","4800117178728.07","5228014739988.54","5918773585131.8","7085329421612.75","8192600677874.76","9150557598539.2","9287540481031.01","9200466669744.84","9497346218607.66","9904677721205.46","10409625734875.3","12631133074877.2","14619402344317.3","16458344978225.2","17238587675059.4","19337020250232.7","20405556118667.7","21864599021687.5","22028825208114.8","23543722890817","25972775910637.7","26183710719606.5","25793213735885.6","25722857002787.1","26932900636833.8","27542294680081.9","27333039728802.4","28518880261954.6","32034382450230.7","35764624740362.1","37940430967008.3","40251927703614.1","44234121418366.3","47263244673120.4","43978496311634.2","46366497466187.6","50265968061268.8","50442681355620.1","51091047558548","", +"Hong Kong SAR, China","HKG","GDP (current US$)","NY.GDP.MKTP.CD","1320799754.74012","1530754830.57744","1724850872.90526","1975045361.74003","2274710604.16573","2435078534.03141","2489845016.64894","2692474989.12571","2716964388.42418","3189740055.13982","3800766535.62088","4476001946.01486","5710107420.14394","8030117555.62033","9388663645.7588","10048022369.9141","12876366008.8077","15719433719.4337","18315007365.9713","22526035940.5921","28861759209.0191","31055409443.043","32291306281.8168","29907091339.5364","33511383985.6741","35699543050.7778","41075570591.9291","50622571586.1149","59707404560.5944","68790369107.2962","76928290841.8701","88959620135.8864","104272278634.731","120353947980.764","135812069768.646","144652912433.103","159717233621.659","177352785419.977","168886163221.567","165768095391.557","171668164082.555","169403241524.337","166349228737.386","161384522525.299","169099768875.193","181570082162.19","193536265094.364","211597405593.868","219279678430.164","214046415026.187","228637697575.04","248514003083.248","262630086122.428","274012815223.557","", +"Honduras","HND","GDP (current US$)","NY.GDP.MKTP.CD","335649984","356200000","387750016","410200000","457000000","508650000","549950016","598099984","646800016","668000032","723000000","731000000","802999968","912499968","1034500000","1124000000","1347999936","1669499968","1929499968","2251499968","2566000032","2819500000","2903500032","3076999968","3319000000","3639499936","3808500032","4152499968","3970386396.10149","3563448320","3048896180.84277","3068462060.1236","3419474978.86812","3481990761.34498","3432356578.82219","3911053180.39625","4034037162.16216","4663193916.34981","5202215657.31167","5372543554.00697","7105529646.90207","7566517571.88498","7776459963.87718","8140294079.50891","8772197584.64208","9672006169.12994","10841723354.4201","12275491272.9738","13789720387.3904","14587485644.4263","15839344591.9842","17710325578.4449","18564264544.5129","18550026034.7589","", +"Heavily indebted poor countries (HIPC)","HPC","GDP (current US$)","NY.GDP.MKTP.CD","17536957226.6714","17998848068.2874","19618885273.3681","23763192066.8035","21155983114.8964","24753078626.7256","27004854798.1192","26428127093.879","27640157136.1217","30832319461.0439","32291339279.0347","34805101120.5781","37751010364.767","45757017303.1394","55630838422.7071","63175972319.0576","67287787749.8516","79004639991.8014","91924148165.6426","101625317976.945","107546717018.967","106960492872.717","107085641461.435","101426493278.961","101374638038.969","105873500003.737","121371793665.263","133965274614.174","133065119146.056","128126517578.944","130291271874.043","133441266228.778","122228553676.499","124274791345.948","110488281444.838","126428601765.923","132696129693.846","138901368465.201","143025325702.543","142110986429.92","153864090055.924","145792830831.924","157551860014.142","179173334761.13","206564084336.292","237060004799.58","283321386507.653","338985165731.811","407490091878.697","407174789546.598","450893476309.814","502249294965.972","538152345026.873","583955229557.655","", +"Croatia","HRV","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","22387561845.2244","23678012697.3612","23822087053.2091","25432144406.2043","23386945596.6928","21774273832.1031","23289671102.3197","26878499206.0165","34658113497.39","41574530815.5047","45416358501.9835","50436294494.5014","60065225493.8502","70461454280.1556","62636688809.4021","59643818181.8182","62241414803.0317","56479515971.9018","57868674297.5337","", +"Haiti","HTI","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","3476346281.35777","2111405825.68328","1806285587.04556","2124933516.02791","2695499730.33928","2970865202.66312","3242667331.21432","3757500381.22703","4088703119.65814","3664503845.56892","3507981945.53618","3214632478.63248","2826481071.96147","3660483885.68707","4154289832.39201","4879738635.95586","5885325589.97642","6548530572.35291","6584649419.28348","6622541528.56888","7516834160.25277","7890216507.68913","8459326659.75657","", +"Hungary","HUN","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","34559392150.9333","38514171469.6263","39900742711.9043","42925508500.6261","46166297229.219","46448783683.4519","47070176268.2524","48548470549.8246","48965869805.8509","47110416254.4482","53533393254.505","67366285758.6061","84738408726.1486","103156817854.868","111890070522.215","114238447644.85","138580119899.615","156578897625.596","129359841851.653","129585601615.851","139439620999.229","126824840351.689","133423898611.949","", +"Indonesia","IDN","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","5980840376.48039","7467363478.72631","8798957442.33129","9656740013.9726","9849117952.69347","11605084559.759","17171181163.3735","27227710999.5181","32147953007.7108","39328674729.6386","48396143465.5422","54298158339.598","55122620334.4408","78013206037.493","92473878831.7316","94715163814.3197","85369201879.1285","87612439197.2643","87338874330.1103","80060657611.9213","75929617715.0289","88787623309.6831","101455197785.758","114426498045.009","128167999846.499","139116270052.461","158006849878.896","176892148243.48","202132032844.145","227369671349.342","215748854646.718","95445548017.3581","140001352527.222","165021012261.509","160446947638.313","195660611033.849","234772458818.096","256836883304.553","285868603863.929","364570525997.053","432216737774.861","510244548959.97","539579955780.062","709190823319.754","845931645338.695","876719347689.155","868345652474.898","", +"Isle of Man","IMN","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","914727080.643268","1023086918.62768","1180919719.40764","1382548249.78303","1567465656.8505","1563667799.61578","1614595290.9182","1897606791.43353","2264911806.90354","2758117365.04863","2915710378.28299","3437450711.55028","4075664785.25458","","","","","","","", +"India","IND","GDP (current US$)","NY.GDP.MKTP.CD","37679274491.2745","39920452403.4524","42900864969.865","49271095508.0955","57470781032.781","60599264111.7178","46669801600","51014155360","54016411986.6667","59472993626.6667","63517182000","68532271313.2286","72716595884.3123","87014945186.3156","101271489826.241","100199514365.231","104518118776.804","123617837582.482","139708688961.553","155674337010.019","189594121351.874","196883474523.345","204234366470.486","222090283347.207","215878233650.679","236589100981.279","253352444883.275","283926977522.458","301790951204.236","301233728792.842","326608014285.316","274842348144.095","293262352360.098","284193716756.826","333014463393.078","366599645609.605","399786888514.355","423160419439.337","428741030147.44","466867079642.314","476609148165.173","493954333981.336","523968561883.923","618356467437.027","721585608183.523","834215013605.932","949116769619.554","1238700195645.05","1224097069459.66","1365372433341.29","1708458876829.92","1880100141185.06","1858744737180.48","1876797199132.6","", +"Not classified","INX","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","", +"Ireland","IRL","GDP (current US$)","NY.GDP.MKTP.CD","1939329775.43739","2088012282.35667","2260349684.08625","2430843768.44553","2766608945.87402","2945704142.99765","3104034393.23162","3343636773.36759","3278584478.33023","3787077343.72783","4391605367.60537","5093158873.13147","6311752163.65067","7473702681.84449","7888974406.18671","9474337979.09408","9444316303.42485","11237107981.8656","14633369072.7877","18301041747.2598","21726139828.4512","20649549626.0616","21453309970.9367","20745312126.8474","20086571282.2264","21248773965.187","28685898579.9067","33886647354.8689","37735178884.2232","39199211072.6644","49256398072.1636","49737787045.2529","55862700254.5893","52365135829.7476","57040641342.7562","69070783964.6465","75695885206.6532","82654657115.5683","89810328137.2659","98541501704.6665","99317573705.5464","108455236062.64","127215402503.294","163476060045.147","193043112998.454","210357750335.771","230522874774.324","269283397854.613","273732372421.715","233542426994.212","218435251789.115","237771734260.43","221966026813.525","232077419239.968","", +"Iran","IRN","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","6154739684.9637","6706096864.73927","7425389720.07921","8447898397.57096","9482344576.42244","10588052395.5116","13203457892.5413","16346614631.9208","25789290844.8751","44331002245.915","48942018416.6432","63626810882.7626","74816947678.8832","73033383215.7233","86168280190.0583","90041228621.614","97085719579.1484","121526715239.237","147222717993.254","153067404656.379","170673002206.268","198775373326.423","127851925591.666","116305831422.606","114003085003.894","116035029649.097","","","60088309490.6234","67128216022.6715","90829495171.4392","110573439131.013","105298720965.1","102661888397.335","104656040167.701","101286514977.457","115438386681.929","116420833373.676","135409681532.108","163226579221.096","192014940324.054","222880533511.287","286057933325.518","355988367221.614","362661111280.071","422567967404.512","528426099488.522","502729273637.903","368904351626.505","", +"Iraq","IRQ","GDP (current US$)","NY.GDP.MKTP.CD","1683918697.26662","1831479752.18122","1954399417.96451","1978199407.46694","2340239247.78045","","","","2896947553.25527","3008120890.9684","3281713714.50928","3865346440.80188","4113848154.43137","5134367501.71543","11516762346.4974","13458516449.6705","17754825188.2401","19838130253.242","23762275099.3478","37816456960.1592","53405687887.8843","38424990640.5572","42595309678.6162","40595050175.2672","46808830635.2117","48291501125.6809","47134059506.087","56617488896.2006","62511498166.4062","65650230207.0893","179910699665.121","","","","","","","","","","","","","","36627901762.063","49954890353.2609","65141035027.9406","88837727881.3965","131611819294.275","111660855042.735","138516722649.573","185749664444.444","216044306775.3","229327284734.134","", +"Iceland","ISL","GDP (current US$)","NY.GDP.MKTP.CD","248434096.968726","253885656.329253","284916516.159537","340061650.119898","434267936.914583","523694949.370689","628893310.399926","621225962.154708","474399471.622359","414709311.35296","532726022.727273","677913409.090909","849251076.365284","1167637523.57706","1532511555.77789","1422958230.3188","1688573694.90037","2233756574.64675","2540540850.57726","2886055048.21327","3420074912.45623","3532928255.0317","3243284167.91483","2797570137.02159","2897187131.82746","3018165480.13983","4035231346.18847","5583425615.09106","6176445715.34849","5737417173.02049","6542685705.11875","6988721004.53757","7161930160.09829","6289671159.05756","6462503422.71862","7205069433.94593","7526269560.90226","7620750786.62366","8489958186.70966","8951369524.97605","8947860486.41498","8147162010.41626","9184959475.98615","11324394790.7025","13736980298.2404","16798507502.1832","17101040182.3881","21446741081.8828","17599245765.7231","12823849535.0662","13261035516.5574","14665793477.194","14182614909.3138","15330057867.1487","", +"Israel","ISR","GDP (current US$)","NY.GDP.MKTP.CD","2887081900.67668","3486954461.02714","2596553912.33168","2992170981.49163","3405458501.95569","3663345598.02916","3980013324.88337","3921085397.89797","3959154191.74836","4568013077.69883","5372301094.56913","5573108412.71613","7173788440.84276","9242160982.44742","12567588803.6609","12336986759.6702","12475947718.1135","13776267565.5439","13618844018.5392","17511335262.5036","21780968646.1188","23196333205.4933","24572712048.9694","27435501836.7464","26042767126.6861","24122660958.9885","29701444276.4432","35476344266.205","43892480101.5341","44599772801.9003","52490325648.231","59170288069.8688","65771216221.0223","65925582472.9925","74669718186.6171","99319560110.8064","109160636024.31","113365224642.365","114992763348.333","116276785141.875","131451205454.59","129596737760.658","119876313900.967","125467161458.905","134020972780.009","141212566844.92","152231249158.4","176674375015.214","213920568561.873","206478651171.07","232907996790.586","258417551704.863","257206359086.076","290550599943.225","", +"Italy","ITA","GDP (current US$)","NY.GDP.MKTP.CD","40385288344.1911","44842760293.1924","50383891898.9911","57710743059.8341","63175417019.0094","67978153850.5191","73654870011.2757","81133120065.4202","87942231678.3505","97085082807.3751","113062419454.771","124306364544.32","144833597609.562","174976862504.151","198978626079.19","227027400355.872","224057573156.548","256840083607.637","314133402235.911","392521436961.081","475855686864.119","429438430761.369","426018294631.353","441741727944.926","436602175556.535","450889910455.329","638506360566.307","803347784881.984","888991448080.928","925935047840.813","1177754920168.07","1242561608709.22","1316286027808.33","1061831662975.27","1095989702209.41","1171213598003.09","1309407704856.32","1239510004547.52","1266790453886.47","1249057106328.57","1142213930348.26","1162784787472.04","1267043101825.71","1570330699774.27","1799204087587.62","1853465900611.85","1943430740490.23","2203972558211.15","2391963512218.39","2186107544936.82","2126620402889.09","2278230390029.84","2091760740477.18","2149484516711.75","", +"Jamaica","JAM","GDP (current US$)","NY.GDP.MKTP.CD","699064357.298637","748043414.097894","777727657.006549","826706669.005825","897948941.586558","972159571.205328","1096759516.24749","1148014336.12037","1083839095.57418","1191239555.57681","1404720459.05833","1539862371.26661","1875146657.0086","1905861156.9452","2375122420.81841","2860442774.67605","2966042882.30784","3249733206.65621","2644527877.44645","2425064186.17771","2679379400.8362","2979027961.12141","3293496303.44113","3619262288.38127","2373564500.56453","2100239026.53449","2754549678.11457","3287007232.35171","3828342820.48217","4404938028.3972","4592208211.53699","4106205952.23973","3535452385.984","4891215396.78684","4938132517.80945","5813471981.63996","6527302707.85419","7472532258.01629","8742153397.25675","8830909008.27052","9008629729.41031","9104515930.20984","9718989516.70522","9430236065.12236","10173234921.1116","11075778481.0127","11903020643.5944","12820055024.6163","13676837630.2798","12125023181.3057","13230844040.0431","14433926128.591","14794802080.8803","14362262584.9078","", +"Jordan","JOR","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","599759760.096096","657999736.800105","631679747.328101","561119775.55209","698879720.448112","639519744.192102","678159728.736109","788479684.608126","943783839.718052","1197483948.68547","1363073497.77355","1708822439.70324","2096778602.16785","2602535813.49693","3271368780.65347","3909708819.33373","4384247336.07116","4680673603.93995","4920692190.95569","4967162160.40472","4993512828.63478","6402001908.75685","6756417468.58556","6277331602.0647","4221121313.80357","4159928734.14975","4344467193.25095","5311188449.62534","5606237931.06786","6237650242.52737","6727446669.01127","6928359294.57772","7244402974.93625","7910621093.43159","8147494328.76276","8457923945.43998","8972965061.21158","9580161951.38568","10193023726.215","11407566660.2844","12588665455.6409","15056937135.733","17110609939.1559","21971835282.5137","23818322957.7465","26425379436.6197","28840263380.2817","31015239545.2","33678500148","", +"Japan","JPN","GDP (current US$)","NY.GDP.MKTP.CD","44307342950.4","53508617739.3778","60723018683.7333","69498131797.3333","81749006381.5111","90950278257.7778","105628070343.111","123781880217.6","146601072685.511","172204199480.889","209070551156.667","236154755295.247","312738030290.016","424891148590.163","471643172433.473","512861437158.573","576405865272.759","709404712455.402","996741758196.688","1037452649454.69","1086988088501.05","1201465862932","1116840773461.75","1218106450431.71","1294608503864.69","1384532251034.44","2051061226984.6","2485236197212.34","3015393553892.77","3017052046398.2","3103698099973.41","3536800942895.19","3852794371594.29","4414962786901.36","4850348016491.89","5333925511058.95","4706187126019.61","4324278106865.89","3914574887342.22","4432599282922.53","4731198760271.14","4159859918093.56","3980819536159.76","4302939184963.79","4655803055650.55","4571866957195.37","4356749775546.81","4356346715298.37","4849184924937.25","5035142154900.72","5495387182996.1","5905630870455.11","5954476603961.52","4919563108372.5","", +"Kazakhstan","KAZ","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","26932728898.8146","24881135586.399","24906939560.1098","23409027475.6879","21250839258.0901","20374307047.115","21035357832.8019","22165932062.966","22135245413.2312","16870817134.7767","18291990619.137","22152689129.5583","24636598581.0204","30833692831.3955","43151647002.6096","57123671733.8952","81003864915.5437","104849886825.584","133441612246.798","115308661142.927","148047348240.643","188048960311.225","203517198088.691","231876282133.87","", +"Kenya","KEN","GDP (current US$)","NY.GDP.MKTP.CD","791265458.813328","792959472.134266","868111400.008864","926589348.567393","998759333.637333","997919319.974061","1164519673.19064","1232559505.9162","1353295457.51798","1458379415.39403","1603447357.24209","1778391289.20054","2107279157.38336","2502142444.14182","2973309272.02986","3259344935.75357","3474542392.04597","4494378855.32203","5303734882.5116","6234390975.29871","7265315331.62273","6854491453.91471","6431579357.30273","5979198463.82274","6191437070.43467","6135034338.30431","7239126716.93219","7970820530.76691","8355380879.12955","8283114648.38116","8572359162.86876","8151488881.9683","8209120678.11342","5751786609.50323","7148148564.04239","9046320196.77295","12045865466.4343","13115764432.7232","14093998843.7334","12896010520.4958","12705350153.4012","12985991722.969","13147736954.17","14904504019.398","16095321630.6659","18737895400.78","25825512277.8911","31958177083.2193","35895143045.1871","37021506163.0611","40000112728.296","41954956602.8397","50334698277.8124","55243056200.6503","", +"Kyrgyz Republic","KGZ","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","2674000000","2570833333.33333","2316562400","2028295454.54545","1681006993.00699","1661018518.51852","1827570586.16784","1767864035.71943","1645963749.83146","1249062025.13805","1369691955.02213","1525113501.11034","1605640633.42189","1919012780.97086","2211535311.62834","2459876151.9333","2834168889.42019","3802566170.81543","5139957784.91084","4690062255.12247","4794357795.07139","6197766118.59856","6605139933.41063","7226303261.27573","", +"Cambodia","KHM","GDP (current US$)","NY.GDP.MKTP.CD","637142865.714286","642857134.285714","660000008.571429","728571437.142857","782857128.571429","868571428.571429","914285714.285714","962857134.285714","1065714248.57143","978873267.456386","718401145.881961","969911437.917436","505549460.316938","702899173.500026","588443893.689773","","","","","","","","","","","","","","","","","","","2533727592.04165","2791435218.71663","3441205624.35628","3506695722.70464","3443413331.62426","3120425502.58253","3517242477.2285","3654031716.26881","3979813387.84404","4284028138.34567","4658246906.65996","5337833255.95698","6293046162.12584","7274424518.55823","8639164917.04058","10351829065.611","10401935531.8291","11242266333.9323","12829541141.0127","14054443213.4639","15238689686.4362","", +"Kiribati","KIR","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","14295279.5446937","15278632.4786325","18936526.9461078","31710657.7257811","85637174.3722131","55081816.9917528","41109627.2760601","38748059.4366822","45210026.3248255","42620165.4370668","27935549.9886131","29307055.8492301","29659194.6444873","29432432.4324324","28646774.9012725","21294783.1552483","20572860.9625668","23924520.3752976","30842253.3010391","29558753.7561284","28413863.0864101","47797290.4756971","49724297.1196387","48613286.3533932","56200272.8308963","57610627.7065975","67866425.4590344","69152456.2398694","67097398.6133308","70596128.7050323","67512714.5176252","63101272.3699183","72259045.9632728","90148518.0621311","102220914.840418","106147384.4979","104668674.698795","123005089.649373","135044455.62825","127125253.470597","150431113.557145","172253739.040743","174984468.834127","168951535.045376","", +"St. Kitts and Nevis","KNA","GDP (current US$)","NY.GDP.MKTP.CD","12366635.5848801","12483301.9583223","12541635.1450435","12833301.0786491","13416632.9458604","13593932.4279455","14469078.2924055","16742338.5872698","14600000","15850000","16300000","19624746.4218323","22944848.5121012","24196018.4827341","31514856.7177484","33364054.126509","30095602.1846983","29888888.3610321","34259258.6542189","39888888.1844257","47999999.1522894","56555554.5567484","59925924.8675959","59666665.6129153","70037035.8001384","77999998.6224703","94148146.4854319","108185183.274566","126666664.429653","143259256.72921","159200367.55879","164574441.537955","181815552.344577","198341107.608281","221740736.824658","230740736.665712","245555551.218888","275089909.076895","287324365.949587","305008717.247388","420086426.407158","460467993.79873","480825573.923214","463418870.6482","501150880.038245","543169953.370236","636070988.766581","684148691.621202","734660333.333333","708891296.296296","692457407.407407","728050629.62963","731919888.888889","765870666.666667","", +“Korea”,”KOR","GDP (current US$)","NY.GDP.MKTP.CD","3891849048.17437","2357059044.85007","2745939978.39235","3863726949.11865","3358134142.57618","3017614366.36637","3806043708.63124","4702747059.36715","5955336766.31122","7475692343.83676","9409775888.71716","10418262998.7037","11367558349.6653","14538310905.8044","20426484040.8436","22797520661.157","31354545454.5455","40255785123.9669","54273760330.5785","69731818181.8182","67802380521.2123","76240987915.3635","81639218690.157","90524009023.5256","99983374277.2773","103729914254.845","119773895286.176","150986906889.383","202308365346.494","248768504452.983","284757121057.986","332324538078.68","356117978607.571","391963073243.051","458704213081.088","559329547369.922","603413139412.021","560485235837.652","376481975682.155","486315001429.989","561633037419.537","533051998853.593","609020054512.465","680520807982.478","764880644710.649","898134300667.891","1011797986991.9","1122675892645.76","1002216051903.27","901934953364.711","1094499350178.46","1202463655509.6","1222807167488.95","1304553972501.69","", +"Kosovo","","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1849196082.05507","2535333631.88536","2702427046.9355","3355083116.58939","3639935347.50715","3743116980.19185","3918184455.04771","4694507127.19298","5687488208.58357","5653860933.59266","5830320264.90066","6692502502.08507","6499938584.09354","7071959240.57355","", +"Kuwait","KWT","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","2097199074.97924","2391198945.30343","2441598923.07329","2662798825.50768","2769198778.57739","2873638822.11157","3880392337.53093","4450537865.64354","5408804503.27452","13006948809.4631","12022811523.624","13132252303.2244","14137407256.5959","15503557923.1265","24749064362.7287","28638869293.5251","25058021180.4633","21577153432.8715","20871081551.9337","21700083143.3902","21445970692.8754","17903989900.4776","22368703292.5767","20690321183.022","24313856915.3884","18427778571.0531","11009955543.0012","19858555904.6717","23941392354.5306","24848484744.5284","27191687674.0736","31492937200.8802","30350433059.9669","25946185993.5521","30120888963.6806","37718011468.5749","34890773740.2178","38138801497.2459","47875837662.1539","59440511981.7576","80797945205.4795","101561153806.389","114721830985.916","147402413798.235","105911338608.398","115428557470.181","154032229427.959","174044699037.43","175830502497.796","", +"Latin America & Caribbean (developing only)","LAC","GDP (current US$)","NY.GDP.MKTP.CD","73099079136.4443","76800622704.4659","88557486219.9635","88705555562.9295","98826742067.2547","107117902658.914","117398841427.928","120363145521.159","130028305964.77","145091847491.277","157555277852.58","174822370775.719","198015360416.238","258430533251.604","343911700976.143","370468436892.141","410817313898.23","449271916676.03","509043680935.096","601850329590.076","709160862913.667","817393170705.29","768544920059.235","683936841545.27","672303774634.166","694550812518.379","706194490545.948","738783666704.208","845610309672.183","924180647516.647","1079827219552.9","1143989829197.13","1235189242634.8","1444208983221.77","1703561671332.36","1795363430219.58","1940423940648.94","2122326755970.63","2127387749362.51","1914802903304.06","2119423478924.69","2063922940251.9","1812553786070.51","1862722706953.27","2133995622649.41","2592085918899.8","3042934561730.74","3609725171671.22","4213480213177.24","3949935827717.51","4897062786884.22","5488246013460.57","5472452378257.49","5657371727400.43","", +"Lao PDR","LAO","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","1757142805.71429","2366666615.55556","1776842041.05263","1087273076.41145","598961279.369589","714046803.153143","865559856.1639","1028087947.28541","1127806917.69908","1327748654.65969","1543606381.87467","1763536299.18912","1873671510.61307","1747011884.41192","1280177847.20938","1454430642.01185","1731198022.45494","1768619058.34647","1758176653.07746","2023324407.30316","2366398119.8821","2735550176.99339","3452895836.27792","4222945529.64637","5443930124.55113","5832882921.50163","7181441151.89497","8254088066.90414","9359185244.24597","11242526454.037","", +"Lebanon","LBN","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","3313539979.09333","2717998713.0456","2838485397.88652","4451497337.41987","5545921820.95553","7535259914.42769","9599127189.45126","11718795352.0579","13690217120.5605","15751867489.4446","17247179483.2157","17391056436.8069","17260364842.4544","17649751243.7811","19152238805.9702","20082918739.6352","20955223880.597","21287562189.0547","21796351575.4561","24577114427.8607","28829850746.2687","35139635157.5456","38009950248.7562","40078938640.1327","43205095854.063","44352418120.4377","", +"Liberia","LBR","GDP (current US$)","NY.GDP.MKTP.CD","190495648","183920944","191861808","200229616","218929096","229260776","244459452","261024284","276820652","306961824","323099728","341543056","368098032","386968288","486955024","577549312","596675728","673010608","717240448","814067872","854711504","846514496","863933152","823374944","848478336","851296080","840964416","972800000","1038300000","786300000","384400000","348000000","223500000","160400000","132200000","134800000","159400000","295900000","359599999.036319","441800019.378319","529064646.66383","514999999.999999","536000000.000001","409000000","466999999.999999","541999999.999999","604028581.80619","739026892.226679","850040458.839631","1155146229.786","1292696475.95873","1537753884.57502","1733828404.74142","1950960137.7301","", +"Libya","LBY","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","28904898117.7385","31992732972.3568","33887047909.2746","30660051910.5037","28610549763.4685","25541379186.6458","27884615384.6154","30700897874.8704","27251534529.5892","30484399895.6472","33896600870.7706","28420321951.542","19842519685.0394","24062500000","33384615384.6154","44000000000","56484375000","71803278688.5246","93167701863.354","62360446570.9729","74755288916.9561","34699395523.6073","81873662518.8238","74199528672.4273","", +"St. Lucia","LCA","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","103444442.61755","133414812.458624","152244441.755711","143588886.353018","154503700.97507","197088885.408174","189166663.325863","225777773.790398","242385180.904509","273977772.939156","311511105.609627","397192585.577919","431470362.750329","477996287.854577","492029620.940073","517566657.52611","560811101.20683","566370360.367909","604411100.436826","657529580.980201","692507395.177286","780895356.579261","738755098.064226","741966023.933445","805836689.472114","885242280.662354","935463205.701346","1066944388.56449","1143476979.80547","1171371518.51852","1176607814.81481","1244297407.40741","1289531851.85185","1302666703.7037","1335764111.11111","", +"Latin America & Caribbean (all income levels)","LCN","GDP (current US$)","NY.GDP.MKTP.CD","81143000827.6952","86168729870.0405","99183541815.2288","99489366415.8075","110702403801.999","119567505238.939","131111390507.174","134267738843.373","144625611494.945","161958530954.09","176071957725.362","196580454002.325","221039601528.332","289390774544.864","375890572989.052","394560760868.234","438758688947.526","483046221534.61","547773333466.364","651679722380.439","773057083195.259","890036300214.385","832995917304.881","740088370349.272","729985620256.152","750542019266.554","764088007577.211","803933649438.808","918016872888.624","1003333881792.56","1167269198034.02","1240478992156.41","1344300551767.28","1561039289711.01","1834993769702.44","1948842456747.99","2103680847041.12","2301334169191.86","2311522006521.03","2095799607649.06","2312403052866.58","2256679272354.05","1999353928923.38","2060751560916.43","2364388613696.42","2859771903092.66","3351637844140.74","3949352728622.94","4579901661224.36","4300977053207.47","5308616842812.9","5949147408566.04","5952173474355.69","6158278891980.05","", +"Least developed countries: UN classification","LDC","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","115502825819.803","116012604054.434","115985376947.365","108462450964.488","109118974916.699","118343880350.48","128436638296.914","141601688591.18","144745541351.817","146547855546.43","152393986626.035","156930735043.508","138447299311.329","140152333979.957","130607633947.937","148933168639.931","158775684919.465","168095443600.216","168786906930.063","170262467346.706","194071272365.368","186106406988.951","201016817757.836","225333928763.592","262896410443.207","309152685348.422","370797172033.254","455652881050.186","560179036486.991","554362411404.269","621227159816.543","699703265371.794","742272432383.881","804442152795.78","", +"Low income","LIC","GDP (current US$)","NY.GDP.MKTP.CD","22012739236.33","22798329834.7722","24739733631.4358","29482855231.8999","25452794300.492","29531193208.029","32528409339.5414","32953202868.991","34333489139.0821","38415476161.0364","40062167611.577","42760770976.4307","41703762954.5563","50844621674.7195","64070229619.3433","80520060395.6683","66984230885.5954","74843899233.6111","89699283623.3059","99902425553.4505","108690790191.575","108015250564.278","108902209477.955","102071100365.968","99915536406.3612","104474687456.622","113137356808.834","120016884387.709","129619128915.483","130221663038.113","139193667116.879","141044314069.569","129696274633.301","128098696324.959","118919833808.832","136471205438.639","152564941434.528","158664688751.136","162435989522.855","161860714710.077","178870576576.96","168499942982.016","176500560829.205","193556276053.321","216795847306.216","242141171806.759","280350393086.522","331185048063.432","390783010521.847","417888203091.802","455387207380.686","506290794645.147","561066931052.184","612710062255.673","", +"Liechtenstein","LIE","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","90099360.773871","104889797.836543","124940284.905398","165928854.016146","193980461.926317","246389070.12372","272489354.107335","303493105.419053","436912093.134986","503173087.228041","534699256.772624","511647837.146855","522096760.52682","524023708.331749","502620920.656533","529073612.453579","779357946.9847","1052849231.31947","1161757671.01756","1119983791.43298","1421508901.19317","1484160640.17108","1631176617.19198","1673085622.79346","1948128895.93238","2428524749.69396","2504013003.9401","2298390584.38482","2479698578.66241","2664105901.18863","2483890593.70545","2491800558.77674","2688617884.8748","3070803431.476","3454374260.73671","3658356377.80983","3988775843.87205","4602346923.40322","4929414914.73469","4826167676.3641","","","","","", +"Sri Lanka","LKA","GDP (current US$)","NY.GDP.MKTP.CD","1419629929.41176","1454342131.09244","1458609619.75309","1241387713.61345","1321840726.05042","1698319327.73109","1751470588.23529","1859465020.57613","1801176470.58824","1965546218.48739","2296470588.23529","2369308600.33727","2553936348.40871","2875625000","3574586466.16541","3791298145.50642","3591319857.31272","4104509582.86359","2733183856.50224","3364611432.24149","4024621899.57653","4415844155.84416","4768765016.81884","5167913302.16745","6043474842.76729","5978460972.01767","6405210563.88294","6682167119.56522","6978371581.26375","6987267683.77254","8032551173.24014","9000362581.58086","9703011635.86585","10338679635.7616","11717604208.8223","13029697560.9756","13897738375.2488","15091930835.7349","15794972847.1683","15656342015.855","16330810303.9159","15746224409.8","17102623876.2283","18881765437.2151","20662525941.2986","24405791044.7761","28267410542.5164","32351184234.3157","40715240468.9375","42067974595.4411","49567521669.9098","59178013927.8285","59393056426.3323","67182015335.7602","", +"Lower middle income","LMC","GDP (current US$)","NY.GDP.MKTP.CD","86820786531.8087","92286578307.1332","94674837407.9086","105685820361.561","120357956880.92","129167573664.06","114863451741.923","122092372354.345","131138805712.892","146299179949.598","161685054852.893","168405784269.555","182504367205.083","217001436434.755","276105720620.919","299610631673.227","337910570060.222","388699789769.096","433539021902.555","492073437945.721","614511375501.053","650379029593.322","656560485718.486","642817519840.978","634929605870.52","663894109785.584","691178250675.271","760939037626.766","797231044775.882","808754863676.534","866492781326.925","833015778889.613","872400398023.269","874287872049.29","951140753769.656","1067001821113.61","1163990177436.83","1200850277961.38","1075348485062.93","1172279261369.94","1241008160914.98","1253774651238.33","1346973255507.07","1543093930767.11","1769079393193.26","2041723857853.28","2429261931331.04","2999723860194.35","3337126800192.31","3416049506086.96","4307477463057.33","4870886754484.12","5043300972763.38","5234088255000.32","", +"Low & middle income","LMY","GDP (current US$)","NY.GDP.MKTP.CD","277039786155.547","266641306920.091","278757803261.037","299673055373.254","333439668211.338","368383153309.192","380916599187.249","391143607437.433","413809887619.629","462538102361.65","506176287520.047","545511526401.424","609611032963.42","770915525072.709","985036138258.259","1088617305757.73","1177595401982.28","1324748496383.09","1441811609547.83","1714462528741.2","2003260823678.17","2154934193110.72","2139891392207.15","2095909320192.92","2126159861703.04","2238855493298.52","2338495506857.63","2410624938852.77","2611509219297.53","2772500157454.59","3172292422015.48","3220933175385.55","3427521420929.02","3703183656534.53","4135944228287.85","4660384300480.14","5112080493409.06","5418590986125.61","5365100978995.16","5304194861215.03","5740094167132","5752445973566.07","5813310967446.55","6522940141704.65","7646327920435.36","9025169176010.5","10631509555461.6","13100527046295.9","15608920780211.1","15577595306604.4","18876177877623.2","21906392553199.5","23110477174191.3","24547721876578.7","", +"Lesotho","LSO","GDP (current US$)","NY.GDP.MKTP.CD","34579986.1818375","35699985.7342857","41859983.2727507","47039981.2028235","51939979.2447843","54879978.0699607","56699977.342689","59261976.3189142","61445975.4461882","65967973.6391977","68739972.531507","76480285.1113442","80915356.8286738","121188698.642069","150851315.734636","149558945.403731","147659999.8716","193314999.8319","266569999.7682","290134729.683747","431542682.236011","434174015.356422","326943105.06776","355443856.107047","302993843.582478","247680796.95087","290586782.563617","369345623.025164","429740033.671033","451447042.192568","544578771.154847","608767923.978249","720543405.435398","721599288.030197","755041471.894349","859092080.83075","815937450.997912","859816180.473144","819422421.755032","801540664.712419","771258553.725854","706393604.942706","656750018.232672","969160943.411659","1234197711.42357","1368346467.60844","1428842600.12112","1597484735.65523","1630667593.27628","1708772781.6479","2175685680.83096","2487352967.54638","2328196274.79655","2334989648.03313","", +"Lithuania","LTU","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","10506695073.8054","10287023246.234","8562311026.88874","7424597884.34971","6958636949.80629","7904895790.98773","8426600000","10128700000","11254050000","10971375000","11434200000","12159225000","14163949141.8999","18608709856.5781","22659294573.2621","26085307221.8514","30246361656.8291","39325985930.8432","47438363056.4474","37050081723.0274","36709511568.1234","43083067994.0349","42343559195.8302","45931968473.664","", +"Luxembourg","LUX","GDP (current US$)","NY.GDP.MKTP.CD","703925705.942958","704145671.350213","741509480.796284","791140595.772755","903158753.943622","921600736.304026","968440149.470951","974721762.535327","1066447130.82052","1234878980.502","1519040258.16862","1582609657.44944","1981628448.35487","2719572345.27013","3317449357.91218","3254610946.58331","3567483490.07315","3948591333.7085","4916865633.40592","5748868602.09136","6272826044.97172","5266077683.61582","4795757990.46442","4714376725.83826","4624988690.30997","4769597866.7029","6966599241.4665","8670639762.29065","9814025891.38782","10459570434.0704","13315901255.4322","14415689072.6521","16170973400.2509","16594891557.8358","18445827827.3451","21729575807.3344","21630543713.355","19460337843.9332","20340193376.3058","22267745365.4379","21303021927.4","20998210290.8277","23285902503.2938","29095033860.0451","34209333656.1683","37023578570.3626","41779066643.3891","49207986176.4555","54963951911.8142","50141325205.458","52143650382.9908","58956127431.0826","56292381076.328","60130847623.6353","", +"Latvia","LVA","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","5715853652.87783","6827011058.96701","7690315589.14665","7447002856.7553","6756418263.69451","4848056772.31365","4467987271.30202","5060854731.05477","5235719778.6716","5585292782.56922","6133234179.75373","6616957681.24198","7288524472.50101","7833068425.39159","8313047743.57121","9314784080.02692","11186452600.7262","13761569544.9926","16041840426.2666","19935046397.2163","28765687041.6504","33669367720.4659","25875781250","24009680459.9868","28480338367.6157","28372577696.5265","30956691627.5877","", +"Macao SAR, China","MAC","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","1021654718.38063","1016585687.26284","1182693473.21523","1222072820.96053","1376075267.86671","1786734514.03852","2087122775.99803","2478807840.95695","2990180515.91709","3464946372.23975","4581185870.73434","5280218134.80932","5868546010.7157","6560672250.97816","6628525682.86805","6674552884.69073","6186475687.55405","5916957024.96919","6101794938.88536","6514271488.1434","7008026414.60895","7926373572.23623","10258324479.1391","11792570015.7933","14568709574.0036","18054684854.2242","20731022857.2408","21313263933.1019","28359706123.0951","36634742798.942","42981497743.9852","51753094764.2472","", +"St. Martin (French part)","MAF","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","", +"Morocco","MAR","GDP (current US$)","NY.GDP.MKTP.CD","2037154689.04441","2025693486.96828","2379611062.83602","2657252509.32124","2798345225.92842","2948325264.30195","2876395613.08171","3046339294.53611","3271415867.99723","3651615453.01848","3956328426.04486","4356633663.36634","5074117544.77482","6242177798.33938","7675408485.51421","8984824182.60333","9584323309.12136","11049896742.3889","13236854105.1672","15912133569.2852","21079357821.4703","17108443052.4138","17091648680.0598","15642990733.0587","14171045911.1288","14294246248.6336","18722705505.0305","20656951246.6474","24633853687.6534","25271642768.7004","28839382990.7526","31014466120.3347","32042164441.3212","30137111517.3675","34085406932.522","37183957845.4333","41383907571.2204","37263566705.1538","40021694630.8991","39734023742.7921","37020609824.9576","37724674865.0801","40416114690.137","49822651701.729","56948015336.0397","59523857868.0203","65637107776.2619","75226318359.375","88882967741.9355","90908402631.2523","90770671431.6696","99211339029.2806","95903690325.5715","103835702813.634","", +"Monaco","MCO","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","293073868.023221","327651487.962757","402460333.237637","523552815.119127","563939670.704419","711922994.225545","735339911.935065","811250927.388998","1000535735.38751","1209898293.46372","1378130995.65913","1205166025.51592","1143229071.77943","1092551781.01486","1037314956.25083","1082851076.52158","1515209588.2378","1839095595.25655","2000674667.08261","2010116851.20284","2481316053.85316","2480497547.84881","2737066955.91266","2574439973.17387","2720297738.93904","3130270918.79061","3137848783.08404","2840182191.77105","2934578788.86478","2906009307.6651","2647883820.18625","2671401082.76436","2905973022.1746","3588988600.70294","4110348444.49411","4280072625.97622","4663488363.0977","5974371695.95045","6919241412.09365","5557579883.30092","5350993377.48344","6074506533.22213","","","", +"Moldova","MDA","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","3592856080.02915","3094567110.11286","2319243406.66602","2371812882.20448","1702314342.68173","1752995321.34191","1695130491.66527","1930071454.73575","1639497206.70391","1170785047.79461","1288420222.94787","1480656884.38462","1661818168.4226","1980901553.51226","2598231467.43671","2988172424.46608","3408454197.89191","4402495921.29332","6054806100.84681","5439422031.39627","5811604051.96737","7016162818.43742","7284686576.2835","7969618965.90078","", +"Madagascar","MDG","GDP (current US$)","NY.GDP.MKTP.CD","673081724.075966","699161943.856733","739286906.851163","759345862.970929","802482182.923768","833563472.161911","900264583.687729","956436931.141842","1031669636.36062","1056391054.53794","1111859569.77066","1199507629.99222","1341590681.586","1653062347.36378","1917508190.04689","2283049233.28581","2181844193.92388","2358930406.42896","2669755115.50372","3463565881.42215","4042139901.36379","3594868208.41664","3526198070.09789","3511573991.89606","2939485471.50097","2857889712.4808","3258288890.58647","2565634382.28729","2442507588.38468","2498059014.77295","3081479800.28735","2653141958.52585","3024459293.88938","3370842210.90955","2977040884.23097","3159901108.51109","3995028428.83824","3545776813.20358","3738704582.03298","3717515282.53319","3877673634.58854","4529575232.98509","4397254714.88337","5474030227.59457","4363934416.53802","5039292946.96233","5515884434.37392","7342923619.71527","9413002737.30578","8550363829.09605","8729936135.74488","9892702357.56691","9919780221.93198","10613494031.3832","", +"Maldives","MDV","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","42463576.1589404","44781456.9536424","47935843.7935844","57829787.2340426","109503546.099291","127154929.577465","141902097.902098","141268980.477223","168610478.359909","189535398.230089","215089005.235602","244468292.682927","284853358.561968","322326642.335766","355884383.08887","398988954.970263","450382327.952421","508223603.228547","540096400.169924","589239757.009346","624337143.585387","802442810.457516","828240882.492352","949867661.833266","1075605492.18297","992473987.301945","1303375806.06689","1541978558.62324","1891633531.16451","1984639640.86858","2134104883.7014","2162990126.20789","2113179303.61211","2299843167.3684","", +"Middle East & North Africa (all income levels)","MEA","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","32016783582.1187","35661909839.5456","39387154650.8188","46077269313.3103","55990801409.3004","75379717319.0676","138120803938.625","151260385440.081","188283945301.116","217604314693.583","232348757781.698","305571939375.595","396836100459.014","410937777262.661","407934989316.454","410689617072.871","416627694135.509","422746092797.331","431403405856.366","401724524935.996","398225377601.923","411241203697.931","538047365643.405","538928236017.794","586135479947.87","590098173754.612","613531294639.433","698161920516.074","787489276168.452","818114917299.499","796317218970.734","846525477858.309","948161355351.317","946913333767.694","947456748476.099","1061036189376","1237176685343.82","1484342423639.98","1739775780098.63","2056646726744.86","2595218073923.77","2310150688528.33","2689019519330.81","3209069139883.35","3440297408791.16","3442350270405.94","", +"Mexico","MEX","GDP (current US$)","NY.GDP.MKTP.CD","13056164925.448","14153954349.0897","15221053213.1887","16936337667.6289","20070134740.9317","21829715343.8799","24337233447.211","26556372081.1913","29363632833.6558","32515754313.9575","35541711470.3873","39200879415.8614","45178119326.7936","55271303176.3935","71976542927.466","88003982688.6386","89023916066.8009","81825780563.8082","102517450025.753","134540322292.806","194356825709.199","250083027275.13","173720847690.773","148866911934.175","175632163244.416","184473097296.041","129440191340.197","140263673924.031","183144276294.09","222977042346.502","262709785592.711","314453895611.752","363609268789.416","503962814551.767","527318769550.83","343792780638.899","397404138184.313","480554647428.728","502010268264.169","579459682094.357","683647980782.407","724703571306.821","741559499084.745","713284260879.765","770267585947.191","866346483685.297","966735935557.751","1043394940067.71","1099073123654.95","895313142212.023","1051627949327","1170085556895.86","1186460890129.93","1260914660977.14","", +"Marshall Islands","MHL","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","31020000","34918000","41749000","45144000","43879000","55989000","62983000","70688000","72798000","78476000","82507000","91063000","99461000","108071000","120230000","110858000","106289109.336","108702067.9925","107978893.1392","110937729.4126","115152142.7373","124735071.9054","126887585.4517","131106365.5396","137744500","143615000","150041700","152785100","152116100","163917000","172956700","184358700","190914600","", +"Middle income","MIC","GDP (current US$)","NY.GDP.MKTP.CD","258383986970.596","247280485489.18","257727819761.097","274821001151.7","311502663675.131","343040835404.563","353220564059.857","363040411089.426","384472845522.317","429717594852.716","471722207869.441","508683661569.542","572909000179.89","725888976734.428","928159932797.052","1018742607916","1116544420610.5","1256437303677","1361513691261.29","1623860061392.95","1903200395908.26","2053957739247.11","2038333104326.24","2000039463587.01","2031751502262.56","2140019698163.49","2232152061375.05","2298316010495.7","2490143237081.56","2649520544475.57","3039367836310.31","3086212778542.9","3301902022488.64","3577970729976.77","4017322551154.5","4524550734444.06","4960564787452.03","5260666543912.15","5204070872654.34","5143884028909.13","5563368351893.1","5584733816714.29","5638302369257.71","6330555506476.32","7429775757561.55","8781716772487.09","10349046106866.5","12765078434452.2","15212624914812","15157395646184.3","18412156955934.1","21387542530546.9","22539166769274.2","23925991489633.2","", +"Macedonia, FYR","MKD","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","4471828621.90813","4694744806.58659","2316618514.75247","2550194959.23946","3381270267.42967","4449375524.65113","4422159848.42906","3735312199.79553","3571043202.36226","3673288165.11436","3586883988.95646","3436961384.81241","3791306757.66238","4756221628.61111","5514253043.38147","5985809059.97008","6560546900.04109","8159825620.389","9834034351.06299","9313573964.98007","9338674078.31276","10395222333.7584","9576482628.00609","10195404131.453","", +"Mali","MLI","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","275494477.836101","343771973.18594","339913866.756618","359772314.994898","430096741.954649","486617279.362262","563683703.008579","538747340.567246","830710613.969321","939228016.013939","1049838549.91245","1222702571.75657","1595422953.90213","1787338105.26429","1493651106.01184","1327378899.51094","1294458069.91867","1311342831.35984","1313685007.54614","1678328288.56336","1931545340.21897","1947794155.27683","2007784672.59999","2421172496.58602","2422840268.74081","2852581755.30527","2677966905.01596","1762703059.26754","2466160215.33319","2619086427.60676","2475185559.41167","2596828335.69789","2570429654.9005","2422482317.56719","2629739067.46746","3342824259.82493","4362439886.7199","4874178417.19164","5305317554.72495","6122644014.78684","7145394015.23154","8737687352.70079","8964480570.32521","9422267259.9894","10647545670.1763","10340794110.1366","10942727309.5296","", +"Malta","MLT","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","250728829.112117","264578308.927222","295106775.012466","345616069.513506","376081181.817504","474618292.692559","527936892.800231","625563347.403691","793673674.476254","1001288245.08798","1250199056.41834","1243509858.29479","1234474742.04426","1165730172.87418","1101807300.90927","1117797224.84509","1435038037.42227","1751293215.65363","2019503791.23407","2118655299.63572","2547330284.04418","2750215016.02264","3021944632.33295","2709194765.69239","2998504391.77827","3599683395.46889","3671827860.9798","3633464750.30678","3809619583.8411","3907947937.46914","3957418082.79925","3917620727.92241","4296164768.28161","5119621569.32049","5643525281.93441","5980795755.74103","6390123590.13841","7513834699.60697","8554293727.08674","8099400960.97627","8163841059.60265","9302057269.94718","8863076923.07692","9642326075.41158","", +"Myanmar","MMR","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","", +"Middle East & North Africa (developing only)","MNA","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","286125078719.029","292420415463.626","333105245616.986","383068658882.856","394976136014.386","402243474541.425","418299884864.374","436296223452.308","447345841901.742","438152182740.275","487798585750.398","561856996619.386","655692914174.696","763983639769.555","940383832348.337","1188252330480.1","1141554097726.04","1313802058807.8","1503541928112.86","1596371915049.16","1495674086801.22","", +"Montenegro","MNE","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","984279596.4","1159891560","1284504508.58333","1707662607.75","2073255525.20487","2257174480.78597","2696020574.58286","3673382211.86789","4538345344.90366","4158135025.80555","4114881346.94419","4501753897.55011","4045813953.48837","4416083089.99204","", +"Mongolia","MNG","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","2310099114.66667","2552401920","2725736618.66667","2098734592","2186505472","2896178858.66667","3020611584","3204461568","3576966794.66667","2560785662.91532","2379018323.22625","1317611862.77556","768401665.820307","925817089.527828","1452165052.54713","1345719435.14958","1180934217.40119","1124440238.12551","1057408608.43579","1136896162.14218","1267997923.03269","1396555772.03794","1595297301.45651","1992066758.84423","2523359940.71209","3414053250.94549","4234894168.15659","5623236707.52471","4583834427.36474","6200357070.1148","8761426370.55877","10321968594.7799","11516409581.2988","", +"Northern Mariana Islands","MNP","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","", +"Mozambique","MOZ","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","3526259828.24207","3532146140.68091","3615064966.01116","3237772708.41975","3372771556.9797","4458235938.92328","5243440029.51682","2353864264.67743","2093393433.26975","2314103709.61371","2512109516.61781","2748955274.34396","1968901449.82406","2027650517.82227","2162771442.38775","2246791389.00157","3241719358.05202","3810025425.38063","4324474009.61438","4536278939.24475","4310090791.18029","4075049537.3821","4201332885.28416","4666197195.03197","5697991242.10618","6578515330.9933","7095910826.88243","9192939073.87628","11026247458.2388","10726631099.5579","10165353591.1673","13244880034.8481","14952946846.3451","15630302813.9535","", +"Mauritania","MRT","GDP (current US$)","NY.GDP.MKTP.CD","92609222.6912849","107726181.218304","111148585.592024","113797356.813964","151897168.106199","172767213.286516","180340653.822049","191221777.800889","210695183.760251","199643444.567995","209348253.60877","227051054.984972","265009395.148159","333731874.379051","414772351.88069","475916514.745785","524407931.940588","540635389.589072","544424605.052283","644070364.889076","709041452.217718","747994681.876653","750214410.723584","788371855.945127","726937320.846135","683193885.003343","802890746.890756","909820553.400741","957377507.476686","981529400.534373","1019600770.6038","1443688856.19663","1464392408.9575","1249945001.94662","1315932677.4502","1415296645.53903","1442598429.7263","1401946882.50834","1222431516.67472","1194629187.8281","1081207526.6822","1121563745.39942","1149655598.90459","1285178265.97727","1496460378.86792","1857835409.90604","2699181754.65376","2837532538.54284","3585284289.89239","3027020111.61261","3526946756.63675","4136083147.66617","3958702640.07821","4158182904.24541","", +"Mauritius","MUS","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","706988627.655376","827093630.324683","1019634978.35642","1216227805.46353","1136544231.36451","1147187567.65208","1082934402.19357","1094857359.69514","1044926097.46651","1080643202.28309","1469050658.08639","1888752207.107","2143480497.18502","2191101651.23305","2653485952.13319","2856889162.09058","3224265824.18732","3263363787.82618","3558143642.14256","4040342059.56741","4421952121.4867","4187375887.65947","4169672974.23128","4291171395.71086","4582562397.94313","4536544699.05727","4767303153.04439","5609836353.56371","6385691315.22535","6283796154.76327","6731536244.19443","7792063566.51501","9641077098.19803","8834661042.93519","9718233910.68203","11252405860.1091","11442096505.8236","11929250814.3322","", +"Malawi","MWI","GDP (current US$)","NY.GDP.MKTP.CD","162960130.465802","174580139.768776","183120146.605902","190820152.770523","194740155.908875","229460183.705713","260400208.476282","269812781.79847","245160098.113071","265800106.373203","290520116.266151","365389567.21636","406084197.385471","444302221.260027","548618789.94423","613196872.560739","670309252.98248","806265763.845459","948983346.706692","1058297637.16218","1237662106.19397","1237686924.81183","1180094061.48178","1223225049.97144","1208026105.22578","1131349973.61292","1183671770.92928","1183071377.49194","1379923808.24718","1590201669.18874","1880784193.28064","2203536041.0229","1799529368.75373","2070647130.01298","1181801915.08979","1397454123.06868","2281039098.71225","2663238981.09817","1750585204.64653","1775920039.08836","1743506286.64581","1716502069.29157","2665158942.8967","2424656666.0654","2625127097.7198","2754995876.60249","3116789657.89251","3647817218.57435","4276769712.29181","5030639934.35772","5398616984.59149","5627898036.56304","4240492848.82334","3705386789.60511","", +"Malaysia","MYS","GDP (current US$)","NY.GDP.MKTP.CD","2441020461.96574","2422724545.02623","2543810830.68455","2708474919.40261","2899751387.78472","3187851274.02843","3392767687.16149","3515850936.49868","3667209741.97392","4050763016.35468","4276665285.75357","4514334715.05719","5364357955.45827","8150688760.48274","10100863610.7616","9890359225.08049","11753574870.1705","13975278668.2126","16658322458.6295","21602645098.2363","24937045114.1549","25463038428.6775","27287163523.1103","30682563370.1165","34565849168.8384","31772244236.5624","28243103019.7412","32181695658.7954","35271881995.8247","38848565930.1651","44023808215.1766","49133851511.5406","59151684123.1795","66894448089.1039","74481194898.7163","88832454351.7055","100851389334.173","100168846973.444","72175568305.8018","79148158887.9154","93789473684.2105","92783947368.4211","100845526315.789","110202368421.053","124749736842.105","143533152129.483","162691922355.145","193552511883.591","230988518916.093","202251384991.501","247533525517.698","289548374436.865","305263811733.188","313159097400.743","", +"North America","NAC","GDP (current US$)","NY.GDP.MKTP.CD","584477920198.99","604157219440.397","647173002027.413","683353535761.531","734790505460.858","797723909391.132","875492805408.936","926623934246.798","1013409031841.72","1097952410241.71","1163848559546.37","1267131904119.63","1395546034407.52","1559891400809.92","1709277049897.75","1862814339952.81","2084247320283.98","2297736943864.6","2575375764232.49","2875319186341.13","3136550140371.7","3517487702917.98","3659238527510.32","3979308289970.79","4395573430645.17","4710699587911.9","4967027332345.78","5300517616106.76","5760032813528.38","6222840858140.11","6573207312581.42","6783893606435.66","7131127993024.47","7455354093755.09","7886665988417.84","8268152026547.75","8729845885049.51","9262433838122.35","9723763171323.22","10338249666896.5","11027736147893.7","11358197425148.8","11733968930032.8","12402638291469.2","13297770277395.5","14262747609989.7","15172109488078.2","15941367885625.9","16267270656744.9","15795345532047","16584216507764.1","17302082817932.6","17990118985562.2","18600527817154.2","", +"Namibia","NAM","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","2434779477.62283","2259233333.20725","2128058580.0987","2308102953.57421","1960596972.76624","1615794945.85013","1816728871.20638","2310417134.62452","2506590439.49386","2547362838.16825","2804357081.08613","3012725712.20596","3448309729.64428","3218434944.07287","3636647702.23035","3942494510.05422","3945295658.12189","4102682849.28585","3826538589.95731","3818964345.18953","3908645559.67643","3546791604.35028","3361236316.59236","4931280096.42091","6606866456.87856","7261301442.47414","7978676469.77384","8740923997.55016","8486515516.06361","8875960840.05464","11281996426.0438","12412389467.3036","13037393422.6553","13113069776.5948","", +"New Caledonia","NCL","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","159594493.548808","164206537.561675","180036768.87301","215507164.034258","263108834.536684","358815681.903215","413634335.270097","505892512.861927","542294864.81243","637400199.110489","816647865.83143","798310509.647434","837616756.533737","846007597.720396","1047225130.24333","1182457142.60648","972563810.230325","904619629.797268","823832940.450511","796018978.4713","854823821.723177","1201262517.87644","1488113532.28584","2072735787.31779","2185072798.33184","2529310103.83608","2653781596.46008","2923764926.39718","3070161471.04451","3038727617.03901","3628440274.67","3606968433.92682","3291489840.57141","3158806480.26107","3056999988.09146","2682347064.3642","","","","","","","","","","","","","","", +"Niger","NER","GDP (current US$)","NY.GDP.MKTP.CD","449526872.565561","485785231.729353","531736599.930736","586294879.4719","582816396.216401","673383510.242124","702296079.857695","665586872.839162","641214226.839012","625867984.42818","649916621.179857","693573704.422866","742779659.455166","946385104.967731","1026137112.43707","1048690931.5406","1064517600.10051","1291458043.7403","1774365587.86851","2109277663.09748","2508524715.79516","2170893417.98129","2017612217.82752","1803099561.08393","1461243326.83775","1440581653.32328","1904097000.74963","2233006101.94476","2280356194.14559","2179567111.0004","2480673304.74309","2327986143.17193","2344987607.6248","1606581743.78497","1563207236.88226","1880803264.08886","1987770780.91155","1845599695.86304","2076737446.20658","2018193598.25387","1798374532.94855","1945327545.88815","2170481497.62212","2731416281.32537","3052898685.69525","3405134555.29166","3646727993.03698","4291363546.82479","5403364453.52777","5397121962.02425","5718589550.16349","6409169698.10695","6611341028.98716","7407418427.65768","", +"Nigeria","NGA","GDP (current US$)","NY.GDP.MKTP.CD","4196174379.57502","4467287731.99387","4909399024.98991","5165590041.59062","5552931029.14443","5874422511.54977","6366792664.14672","5203135937.28125","5200895982.08036","6634187316.25367","12545849083.0183","9181769911.50443","12274416017.7976","15162871287.1287","24846641318.1242","27778934624.6973","36308883248.731","36035407725.3219","36527862208.7133","47259911894.2731","64201788076.6283","61076493506.4935","51397461685.8238","35451565749.2355","28500815241.471","28873977228.1115","20721499308.4371","24093203444.564","23272161396.8853","24231168858.7187","30757075595.3681","27392886872.5547","29300921687.0255","15789003752.7594","18086400535.5777","28546958641.2735","34987951375","35822342617.6978","32004613750","35870792987.9432","46385996027.4279","44138014092.2627","59116868249.8401","67655840108.1547","87845403978.2742","112248324602.677","145429802541.747","166451202370.171","208064724514.151","169481270114.984","369062403181.945","411743801711.642","462979245902.413","521803314653.784","", +"Nicaragua","NIC","GDP (current US$)","NY.GDP.MKTP.CD","227223322.141537","244144236.65331","269283803.686825","297324163.095513","347119918.158577","564290020.387905","607140010.483016","657140010.7518","692859984.592478","750000002.903011","778569938.850714","828569953.494756","878570045.437846","1092900014.80582","1521400011.51419","1581599958.61092","1836899998.90966","2226999873.71582","2127699978.79397","1567599981.70113","2144300006.19137","2474700227.03085","2454499872.05091","2753100057.78253","3117599872.09613","2683699935.3204","2885799993.92179","3851200117.73784","2630900095.59203","1013184755.57026","1009455476.10732","1488804123.71134","1792800000","1756454281.21082","3863185119.04762","4140470000","4308351902.78601","4389965590.96538","4635267224.84195","4855717874.68247","5107329007.0922","5323146565.70315","5224213017.54386","5322437645.00332","5795568204.64532","6322582498.50568","6786294615.82242","7458103363.41708","8491388728.00293","8380731881.31468","8938209651.43938","9898576240.9529","10644947614.7401","11255608410.0506","", +"Netherlands","NLD","GDP (current US$)","NY.GDP.MKTP.CD","12276734172.0828","13493833739.9949","14647057370.1418","15891241386.291","18699380731.3465","21000586933.2041","22867203317.4022","25087562181.3218","27817605743.2503","31503868835.1853","37530195896.9988","43837956704.2607","53797014075.8034","70646493615.0087","85792917288.3023","98582789299.4075","107353697532.922","124905224746.341","153268395396.211","176682248050.093","191907522611.394","161405345668.109","155844670875.629","150894304300.826","141519993269.231","141454263402.335","197522592192.84","240972207027.85","257556022633.515","254041637431.155","313037995643.229","322055355964.168","356928304385.965","347672096820.123","372826896234.411","444781773263.794","442598692810.458","409785407725.322","431174183514.774","439937140421.905","413396904367.054","426091275167.785","464478637304.724","570917607223.476","646069794441.03","672357359598.07","719376019921.198","833147764794.443","931327892379.771","858033892517.88","836389937229.197","893757287201.688","823139235420.959","853539351964.458","", +"High income: nonOECD","NOC","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1059546636271.18","1139080089708.25","1183792450740.12","1215918495177.53","1231014631379.4","1257463045077.08","1337051863449.03","1409501400157.36","1479519918562.75","1278308438226.81","1260837866727.72","1439783492804.19","1446620700517.58","1518544017006.07","1700664441038.85","2046540891507.77","2451779810946.99","2893985009727.17","3446998769568.84","4156422333809.67","3404017269100.08","4024583886541.33","4863924678084.93","5161197132709.94","5368742595386.1","", +"Norway","NOR","GDP (current US$)","NY.GDP.MKTP.CD","5163271598.15702","5632460936.54576","6066976682.67364","6510239502.76489","7159202706.48027","8058681060.159","8696460205.3397","9514496703.39762","10159934136.7838","11063065083.4888","12729703621.7783","14476253915.1632","17219726177.1045","22341912657.3936","26875823600.556","32565956876.9251","35575735361.4955","41069784915.9388","46015298628.4646","52547737998.8547","63714366699.0606","62867322937.5381","61850635264.952","60779973685.6532","61098572566.3175","64257200018.6107","77202861508.9185","92447792207.7922","100057081479.208","100770511984.937","117623688036.168","119657406407.626","128298978196.154","118168337068.832","124519241668.556","148919844677.358","160158299482.154","158223061045.607","151139149911.863","159045286696.071","168288531891.204","170922851073.768","191927027230.141","224880794327.844","260029106207.989","304060069848.661","340041735966.736","393479385840.205","453885460992.908","378849191624.702","420945705225.424","490806911071.277","500029909755.049","512580425531.915","", +"Nepal","NPL","GDP (current US$)","NY.GDP.MKTP.CD","508334416.764741","531959564.552029","574091104.356191","496948970.352531","496098775.308642","735267086.34375","906811948.818919","841974030.099834","772230299.767872","788641965.432099","865975308.641975","882765471.604938","1024098804.93827","972103599.693013","1217953570.83404","1575789285.33688","1452789370.88004","1382400000","1604162508.40427","1851250008.33333","1945916583.33333","2275583316.66667","2395425209.59809","2447174838.56563","2581215829.60192","2619913975.74955","2850780936.93948","2957252078.56053","3487009700.10652","3525228045.68948","3627559252.20577","3921476084.89072","3401211581.29176","3660041666.66667","4066775510.20408","4401104417.67068","4521580381.47139","4918691916.53516","4856255044.39064","5033642384.10596","5494252207.90502","6007061224.4898","6050875806.66403","6330476434.54937","7273933992.74548","8130258976.02985","9043715355.8881","10325618017.379","12545438605.3959","12899651883.5748","15994094606.9709","18850351852.8989","19206800719.3069","19294348174.0026","", +"New Zealand","NZL","GDP (current US$)","NY.GDP.MKTP.CD","5485854791.97096","5670064168.21773","6077496267.76294","6638937283.13963","7274144350.81809","5654463586.00366","5863733230.97616","5961418093.53003","5180597620.64135","5761588761.69421","","7878822850.54818","9524793388.42975","12739668846.5285","13861003861.0039","12778405240.5692","13515198752.9228","15319443072.9732","18382107023.4114","20550936592.2068","23039953676.8964","24181167263.3419","23885651857.2469","24041798107.2555","21445089702.3748","24431202046.0358","30320025348.5425","39997523986.3819","45112399355.8776","43803041960.1113","45097711109.7831","42344699527.3464","41234049340.7061","46265693269.1776","54667562122.2297","63437167906.4825","69563618704.0377","65475004727.9834","55641349544.7129","58176345425.2945","52011592675.5368","53305709023.9411","66020996599.1424","87440454378.8934","102986218487.395","113791466880.794","110205483337.405","135294592082.535","130459339598.565","118952901992.338","143466743661.01","163841244615.035","171461397175.936","185787824483.114","", +"High income: OECD","OEC","GDP (current US$)","NY.GDP.MKTP.CD","1042143562492.79","1102387414799.33","1189949055245.55","1280485233366.73","1397790725722.86","1517961403597.09","1665058439798.33","1785479821957.46","1933684738104.08","2121585872334.12","2329433339010.49","2582084310766.1","2994210864267.28","3613856336304.88","4035255980167.78","4515065363010.03","4896695615258.18","5537852828818.57","6647370308363.4","7646910438854.84","8471223934336.77","8565727333058.78","8516133192150.21","8832741648229.79","9221269707328.88","9722005247103.89","11881513238453.2","13753860630999.3","15493584573060.7","16182961784083.3","18200753450404.9","19224202156233.3","20649765907693","20799077551382.4","22285826535116.2","24633759251709.1","24773043453670.5","24313749849865.5","24441995681266.1","25668791119204.5","26100224095547.6","25884350096591.4","26998281037510.7","30331352197874.2","33717112456480.1","35490791599942.4","37363521126658","40796265459931.1","43124079100060.4","40582578378374.1","42358994825139.1","45430380278064","45315912059937.7","45760460257039.8","", +"OECD members","OED","GDP (current US$)","NY.GDP.MKTP.CD","1071382184755.84","1126127273117.45","1215806169272.91","1309772811415.22","1431384631494.55","1554271987024.41","1706458482024.76","1830971189193.93","1984221783799.24","2177664008018.71","2385976928074.34","2641805601635.6","3064794544390.71","3700897858865.66","4149980379190.99","4655985264625.79","5045899775455.5","5687999749107.35","6826588465576.99","7884855586071.91","8750240394277.62","8903402294107.79","8770114018225.3","9059249377179.33","9473701434581.96","9991465916658.96","12107438290873.9","14005232671078.9","15794707935665.9","16541818104990.4","18646844368094.5","19724321337452.8","21211078321241.1","21523620023958","22986959425999.5","25193204270625.2","25398371930820.8","25031209322673.7","25261841520807.3","26546968140876","27097550025310","26858592350847.8","28039741382795.7","31432380170562","34982703135876.9","36952007993239","38975395604505.4","42625395651834.9","45110068617076.7","42221805284244.3","44271376427985.1","47514659611242.7","47418061092089.7","47976933999788.8","", +"Oman","OMN","GDP (current US$)","NY.GDP.MKTP.CD","44234654.0484101","45634493.2717119","56273199.1375344","59912759.280758","61872522.4348015","63279972.0888262","67759970.1128138","107151836.815318","188879842.386377","239999799.728561","256319786.110103","301014924.480931","366883549.257472","483066990.449516","1645917657.25951","2096699074.4138","2560220086.03516","2741169984.67581","2740301333.85024","3733352666.9706","5981760088.6734","7259120021.71803","7554719229.45066","7932541574.24548","8821443172.07307","10005645467.1275","7324167383.94242","7811183251.52226","8386215932.36044","9372171727.04422","11685045607.8469","11341482538.7575","12452275788.2838","12493108040.8886","12918855771.2386","13802600904.5003","15277763467.7569","15837451381.2413","14085373242.7094","15710148340.0807","19507412380.9157","19452015761.4835","20142782997.2208","21633810317.4324","24763589276.3415","31081924827.9236","37215865059.4237","42085305930.9258","60905332090.4357","48388296879.0032","58641352878.4278","69521977153.3923","77497269805.4572","79655917417.1363","", +"Other small states","OSS","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","11816440775.7683","11250796537.7525","10564980101.2283","10773535842.634","10471760356.4185","9679948200.56675","10990176627.3118","12993707970.1782","15153156283.4423","16208432142.4608","20461221697.1921","20999146126.1773","22711907078.5761","21570260128.6953","22223770144.9374","25109712853.0257","26516894484.0399","26722845345.6887","25132512466.9468","26595098778.3355","28241940117.7146","27827422544.1405","28515454054.8615","36672037945.6213","45607392898.7251","53183515631.9972","56886637285.5164","66347823553.7425","79679948753.5035","68488479129.1011","82018617197.4127","96778769948.8102","95816021084.4222","98229548568.3187","", +"Pakistan","PAK","GDP (current US$)","NY.GDP.MKTP.CD","3707055833.87054","4054599105.36005","4233095505.40624","4540529028.7576","5130407637.42946","5884712000.44842","6466610634.46042","7403821779.6402","8090088418.53273","8632927108.67199","10027088676.7101","10602058000.4704","9309109504.48076","6324884160.17501","8773030763.9036","11340000682.6128","13338485498.2049","15126060232.1348","17820101315.3363","19707980059.5957","23689697675.6467","28100606600.3566","30725972227.8188","28691890864.9248","31151825048.1397","31144920866.5131","31899072715.3606","33351526336.2521","38472741071.3218","40171021119.7757","40010425587.1428","45451961233.9905","48635242274.1567","51478354558.3299","51894795657.7709","60636071684.1918","63320170084.4076","62433340468.0228","62191955814.3478","62973855718.8874","73952374969.7995","72309738921.3329","72306820396.2325","83244801092.7096","97977766197.6724","109502102510.883","137264061106.043","152385716311.916","170077814106.305","167874973609.977","177165635077.065","213587413183.996","224383620829.57","232286781110.56","", +"Panama","PAN","GDP (current US$)","NY.GDP.MKTP.CD","415800032","463700032","504800032","559500032","600800000","659900032","719000000","800700032","861400000","945400000","1016300032","1146700032","1260000000","1441200000","1647100032","1844800000","1959299968","2077400064","2463000064","2819099904","3810300000","4312700000","4764700000","4891900000","5106300000","5402000000","5613700000","5638300000","4874500000","4887500000","5313200000","5842300000","6641400000","7252700000","7733900000","7906100000","9322100000","10084000000","10932500000","11456300000","11620500000","11807500000","12272400000","12933200000","14179300000","15464700000","17137000000","21121900000","24884000000","25925100000","28814100000","33270500000","37956200000","42648100000","", +"Peru","PER","GDP (current US$)","NY.GDP.MKTP.CD","2503708500.5641","2822764382.43284","3199617471.26866","3505470788.30224","4241381118.54851","5026099956.24545","5947054338.81438","6029751896.56619","5583979280.16697","6250645606.84668","7235141852.32276","8069766829.1457","8945736419.97765","10702842298.3989","13490954944.4947","16413418808.9469","15519319139.348","14230997983.1178","12162093074.503","15542640785.3234","17655611231.3512","21074067087.3081","21216509116.106","16885668785.5996","17132968269.2441","16110000406.9728","14840000374.8899","20153333842.4493","15029999286.1133","21902935995.6267","25710059622.0643","33988660232.1262","35310819275.5173","34239590086.5022","43719805475.4496","52047686602.5547","53997715379.773","56919424253.5965","54523307699.719","49308109291.7563","50936239280.8577","51592179795.66","54452491886.5129","59034091562.2053","66730306799.5311","74963815412.6214","87985689388.3792","102172270670.773","121571548180.023","121200381042.497","148522810971.502","170564249004.954","192628494178.354","202349846974.371","", +"Philippines","PHL","GDP (current US$)","NY.GDP.MKTP.CD","6684685516.84327","7257047668.12783","4399815072.88926","4875248019.51617","5271360642.23318","5784398850.00539","6371486692.83872","6809047599.74237","7591602924.47986","8408265263.7862","6687223655.87752","7408296134.04833","8017418383.19013","10082910550.6949","13781190369.8478","14893969268.8422","17097658629.6548","19648040090.5671","22706283655.4269","27502354651.4559","32450398739.9681","35646642135.5476","37140164100.3261","33212130822.7708","31408478618.4519","30734266462.1757","29868363901.1303","33195974365.3779","37885485202.8788","42575217414.9429","44311595229.859","45417505303.2898","52976363147.6418","54368183871.6747","64084543195.2152","74119868201.9048","82848194394.7603","82344374413.9339","72207022471.2602","82995145599.6662","81026294682.2965","76261998623.045","81357657790.1449","83908205719.0885","91371236938.632","103065972408.034","122210719245.902","149359920005.894","173602533344.875","168333540385.906","199589447424.074","224142872191.204","250240023744.459","272066554885.95","", +"Palau","PLW","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","76888000","83855000","82451000","75907000","83527000","95237000","108203000","113213000","117320000","113485000","159855700","167035100","168681200","173898900","191243000","206232600","208666100","211558600","213354500","198202400","197558700","217377500","232478600","247043400","", +"Papua New Guinea","PNG","GDP (current US$)","NY.GDP.MKTP.CD","230496032.972722","244832035.023504","261184037.362676","275968039.477545","305312043.675238","344159480.344943","390973233.284802","441706905.588532","485160819.80065","551237325.568373","645537157.576436","717716139.555958","858802050.299401","1299105286.18094","1467346105.92795","1356591218.74591","1511856629.667","1640763164.01314","1947947479.19312","2293621893.79039","2545982960.20271","2498068350.66865","2368584969.53284","2562492486.54467","2552526258.62453","2423373084.07478","2648033798.64114","3143848335.71979","3655979665.55184","3546460176.99115","3219730365","3787352286.66667","4377984100","4974662910","5502648500","4636113480.00002","5155485419.7","4936605079.99998","3789428160.00001","3477060138.33333","3521348154.79666","3081029665.98233","2999542369.42117","3536459119.8821","3927114456.84311","4901584516.12903","5598700444.44444","6329292929.29293","8010370370.37037","7914594202.89855","9480047958.80839","12393604089.4569","15653921367.2759","15289374025.3954","", +"Poland","POL","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","64712371654.1385","83861124789.2438","92527771036.3659","94201159958.9319","108678548947.395","139412439030.425","157079211268.128","157550131674.844","173337544225.125","168224897393.821","171708027298.226","190901056474.267","198679176378.605","217514167875.179","253525770715.543","304412019236.713","343338920225.625","428948928326.165","530185123692.512","436476394987.34","476687891752.065","524362764952.072","496205742361.431","525865974814.909","", +"Puerto Rico","PRI","GDP (current US$)","NY.GDP.MKTP.CD","1691900000","1865100000","2094400000","2333600000","2570500000","2881500000","3170500000","3532700000","3941700000","4460700000","5034700000","5646800000","6328900000","7002400000","7684800000","8198300000","8968600000","9910900000","11165000000","12750000000","14436100000","15955700000","16764200000","17276600000","19162600000","20289200000","21969400000","23878000000","26178400000","28266800000","30603919000","32287031000","34630430000","36922456000","39690630000","42647331000","45340835000","48187039000","54086409000","57840954000","61701810000","69668635000","72546194000","75833996000","80322313000","83914521340.5431","87276164364.6388","89524131617.1909","93639316000","96385638000","98381268000","100351670000","101080738000","103134778000","", +"Korea, Dem. Rep.","PRK","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","", +"Portugal","PRT","GDP (current US$)","NY.GDP.MKTP.CD","3193200404.37297","3417516639.37596","3668222357.65702","3905734459.72693","4235608177.67102","4687464054.83455","5135387845.97108","5740241165.63433","6354262628.33537","6969025825.62869","8109032775.45328","9202512367.49117","11240223128.2431","15092052330.3352","17514112075.7695","19349512941.1765","20334835543.7666","21441635411.2101","23489924726.2774","26625439344.2623","32899759311.1734","31980423452.7687","30530759334.0061","27242331885.6316","25220451794.029","27118476173.6675","38749715721.7531","48187667852.5687","56352797353.7604","60600056659.0272","78721607509.4923","89242382961.0101","107602689040.689","95019103603.042","99698453260.8696","118133634071.912","122629812841.175","117046198970.84","123981736420.303","127465545493.288","118358489957.619","121545880984.34","134228697534.35","164964195259.594","189195659111.086","197299605780.232","208556265151.808","240157009460.916","262017296166.035","243731066786.88","238303443425.21","244895101712.451","218000200299.73","227323728006.703","", +"Paraguay","PRY","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","400129691.088052","421700441.806492","451524124.539071","477012512.686865","512728946.180694","548758098.326795","609047285.312098","697291727.53861","889357059.74323","1199618980.13301","1351889402.98354","1540820245.62378","1912353339.95933","2350329156.78278","3135123879.50964","4094810488.15744","5219516810.12299","5067450002.41505","5237432542.35107","4067222420.08814","2966234024.08756","3439716399.31115","3778316380.24662","4082625952.75857","4599970618.48388","5695201563.44217","6984367762.88406","7157424031.03799","7249533620.31044","7870982170.98217","9062131307.88275","9788391732.82899","9965225496.58839","9024567484.2013","8392549702.31511","8195993230.74275","7662595075.90241","6325151760.0669","6588103836.34739","8033877360.41697","8734651405.96572","10662013273.2006","13794909537.4393","18504128632.4505","15929903100.3616","20030529733.4432","25071193102.1055","24611040342.6795","29009411737.9175","", +"Pacific island small states","PSS","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","429695843.234009","516310173.91627","703997089.050465","1000201351.50484","1117135906.47541","1120202501.12059","1168729839.15107","1355437122.01894","1660645960.81981","1887691125.72375","1945081333.95413","1900991570.51272","1822779931.37374","1994615513.64929","1889499874.90104","2051550373.03815","2017071716.97241","2111237486.08287","2205782153.9079","2377069917.2618","2540592059.35811","2787173924.08232","2938054822.71951","3385361679.26779","3657203584.95581","3927207897.80516","3923691020.89573","3373958391.2777","3672292815.17462","3434142911.08534","3357161727.55779","3539505609.41714","4164226696.1539","4814395694.00354","5264864691.39632","5534256408.71956","6067244010.49696","6523272046.81118","5741401929.65296","6373020822.25938","7379428011.10668","7852675901.2355","8009303950.85642","", +"French Polynesia","PYF","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","176534589.603389","215659455.017302","220984369.12915","259590076.293001","242943776.862299","254035999.217197","296613496.873269","325843254.667123","431254103.046477","555337985.682991","690319754.911192","732286143.34291","793193187.41557","1005573294.20763","1215031775.26795","1362151523.68993","1279972866.38172","1286462642.63697","1335895286.3918","1378991403.37881","1507230778.89921","2301514717.29807","2543199148.3893","2687472829.62988","2636461517.1052","3181206304.81549","3267367609.89528","3558215110.24809","3694600399.89225","3522272321.40766","3982374845.92709","3954696873.74892","3567062511.87293","3775160797.38928","3797016068.69688","3447543137.9415","","","","","","","","","","","","","","", +"Qatar","QAT","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","301791311.79926","387700072.409347","510259928.908807","793884362.593803","2401403163.72314","2512783990.61795","3284301434.84055","3617580063.60212","4052000452.82943","5633000409.28126","7829094485.17484","8661263504.23004","7596703007.43796","6467582125.69331","6704395622.16509","6153296279.80592","5053021814.81235","5446428537.54037","6038186867.73874","6487911900.93159","7360439207.65364","6883516285.13474","7646153766.45236","7156593446.49547","7374450336.92017","8137911853.37888","9059340398.25204","11297801872.2015","10255494209.9329","12393131510.964","17759889598.0532","17538461033.0061","19363735705.6768","23533790530.5514","31734065019.4957","44530493222.1334","60882141102.5301","79711810889.5326","115269776897.725","97798348829.8202","125122249141.251","169804665435.929","190289829680.715","203235158977.963","", +"Romania","ROU","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","38067565160.5839","40424526825.7903","41450779108.6724","38299106119.9263","28846858763.0854","25090303816.8056","26361161947.6427","30072623842.2824","35477055618.9246","35333677695.2593","35285888482.0479","42115494069.2734","35592337082.8604","37305099928.1587","40585886768.9713","45988510813.5033","59466017705.5346","75794733525.1394","99172613715.9198","122695850811.978","170616958884.446","204338605783.705","164344371295.287","164792252745.524","182610666615.642","169396055590.796","189638162013.271","", +"Russia","RUS","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","506500146307.614","516814258695.568","509381638906.293","460205414725.771","435060123490.732","395086555837.015","395528488655.671","391721392325.09","404926534140.017","270953116950.026","195905767668.562","259708496267.33","306602673980.117","345110438693.573","430347770733.155","591016690742.937","764000901159.625","989930542278.695","1299705247685.76","1660844408499.61","1222643696991.85","1524916112078.87","1904793021649.09","2017470930421.08","2096777030571.25","", +"Rwanda","RWA","GDP (current US$)","NY.GDP.MKTP.CD","119000023.159","122000015.482","125000007.805","128000000.128","129999995.01","148799979.6688","124525702.707383","159560018.07956","172200018.0922","188700037.3087","219900006.6199","222952504.04479","246457838.951694","290746157.206389","308458403.980205","571863502.965144","637753855.846958","746650611.645744","905709080.930258","1109346136.46684","1254765643.33997","1407062526.01096","1407243132.91752","1479687582.63555","1587413091.06568","1715626336.7703","1944710688.26155","2157432667.99326","2395492695.29464","2405022587.95017","2550185692.53721","1911600232.44433","2029026956.60567","1971525717.85556","753636370.618182","1293535192.04879","1382334879.44723","1851558199.19854","1989343548.28636","1817655191.84317","1734938190.27765","1674685125.62865","1677447003.07548","1845979351.35205","2089188920.75355","2581465675.18193","3110327822.99407","3775447705.93559","4796573942.74333","5308990208.79641","5698548923.48065","6406727020.12819","7219656633.86281","7521261790.62935","", +"South Asia","SAS","GDP (current US$)","NY.GDP.MKTP.CD","47689556542.9452","50861320923.4055","54296730194.7341","61060482428.7384","69963476013.5675","75141664419.7712","63056030780.2825","69409697456.763","72868573563.3239","80006185130.9586","86653536487.3272","92124387913.9423","92637864976.2184","106015541007.639","128275353804.795","137408855417.376","134307560179.5","155391356904.56","176843482279.432","198065419089.395","238820260474.44","252603136359.599","261415871519.32","276843405646.118","276669939024.348","299398855294.338","317233610088.19","352452096972.536","378278137947.003","380675057486.765","410504248055.603","366078941081.174","388744514444.561","384878173518.826","436772265770.227","485178146027.572","524982429565.121","550920565839.614","558746375971.592","599543853870.636","622975897561.898","638745671205.934","672494121092.904","784882714578.067","911124327837.966","1044617146262.13","1204769690873.45","1525956523794.87","1552407202566.17","1706429173209.69","2086121491226.14","2322207215694.97","2319527626385.94","2369941573888.93","", +"Saudi Arabia","SAU","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","4187777706.66667","4485777635.55556","5014444259.55556","6797048699.92487","9230601615.91796","14441807078.9067","44990986123.1937","46528882433.2214","63838242167.2597","74028820450.0737","80087657403.8483","111720129709.86","164308171946.835","183939395923.512","152907357293.156","128859626986.747","119293133794.195","103897847413.546","86961925508.1822","85695864946.0918","88256073925.7961","95344461902.0849","116778111979.758","131335915472.951","136304139411.154","132151405582.785","134327104601.473","142457681255.805","157743126866.827","164993858632.323","145772799590.4","160957062621.867","188441864874.667","183012268441.6","188551196398.933","214572800000","258742133333.333","328459608764.111","376900133511.348","415909018143.01","519796800000","429097866666.667","526811466666.667","669506666666.667","733955733333.333","748449600000","", +"Sudan","SDN","GDP (current US$)","NY.GDP.MKTP.CD","1126364161.7644","1222860428.55503","1328259624.72217","1351234926.33899","1388282600.1961","1446869619.31898","1484491675.71652","1607409539.36648","1677771400.56798","1847501441.26221","2100229759.04718","2288340041.03486","2483055722.23738","3077254460.30228","3958931659.84759","4823090191.91008","6013210815.66114","7499005639.37649","8128719315.0792","8418407786.60599","7617256737.16195","9538009463.3331","9254395995.69006","8465226937.27815","10044297796.1919","12459385571.0104","15966649370.3837","20631219762.3208","15510324099.0826","15295635624.4201","12408647780.4484","11379221927.0559","7031933491.84899","8881010081.24942","12793798418.3843","13830369852.313","9018303128.0189","11681179570.9007","11250220602.974","10682027634.7462","12257299147.2936","13182872559.0993","14803423344.843","17646271378.9113","21457886198.4064","26524992244.986","35821858723.6658","45898948553.9203","54527549913.137","53149439400.9886","65632081240.302","67320779804.4854","63152209705.4893","66565889416.8701","", +"Senegal","SEN","GDP (current US$)","NY.GDP.MKTP.CD","792824702.823778","836493103.623096","857426088.816364","886387334.490159","939145912.1767","955834759.862078","984942841.506666","984605218.072404","1034293671.33984","983621121.157075","1024832777.75711","1058120593.6019","1280328105.48844","1471913585.51327","1658273944.23688","2235746641.18269","2266860710.04572","2320786617.60052","2591178824.66591","3226677956.91441","3503282842.23796","3176771658.1875","3109677903.28702","2774198930.79025","2705535967.89287","2962200081.81328","4189860373.17635","5040708745.70087","4985152887.5532","4913065118.41844","5716644524.96413","5617235857.46673","6004885304.31566","5678828409.95202","3877196945.27751","4878718880.06611","5065830114.26508","4672504141.52065","5030344290.89813","5144045092.84698","4679604921.61551","4877602012.4664","5333862343.63202","6858952716.48403","8031344239.63806","8707015063.83319","9358710763.41854","11284603480.5523","13386346542.9706","12812994669.8104","12932427724.317","14440676498.0708","14045680426.6265","14791699008.5823","", +"Singapore","SGP","GDP (current US$)","NY.GDP.MKTP.CD","704457699.396959","764303120.46328","825879877.401062","917216011.299226","893728643.533568","974186761.484632","1095902939.91974","1237415147.37569","1425020089.06995","1659044432.14808","1919496147.30189","2270330157.67395","2950257778.82676","4227574234.01324","5260730995.15113","5789229538.77907","6071574802.60248","6702713784.13833","8062400372.34359","9719674880.23226","12078880698.5429","14363051877.5379","15873552885.2363","18001987656.7057","19550103530.8122","18555053067.3749","18762738720.8667","21606296346.125","26515373243.7234","31392969307.485","38899863910.5488","45473126682.2957","52157482248.4601","60644916395.4288","73775659012.0859","87891560102.3018","96400967111.4728","100163601638.149","85707550880.7849","86285332761.7027","95835970989.329","89285087394.9509","91941791943.6165","97002305536.1569","114186643421.944","127417879442.861","147794117647.059","179981089530.567","192231202951.056","192406441416.028","236420337242.775","274065043105.538","286908399901.813","297941261088.468","", +"Solomon Islands","SLB","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","25203524.0325638","28084252.7582748","28606411.398041","","50056882.8213879","40606712.050639","55272108.8435374","84539332.282562","74617096.4785967","83099107.9066357","93147039.2548237","111022089.96223","151270207.852194","168715353.097132","187313261.319237","188446092.06055","180219397.527425","252806783.386983","232306861.156132","210737869.652598","238606299.605651","310684273.709484","332286760.858189","302515026.890225","320355090.61441","378778047.197842","410923236.189102","464756638.512487","519334096.714525","565163750.56079","567919502.811483","471177008.057148","482214092.308964","435101217.233417","400464593.025503","341663053.747461","332736306.539249","375109694.525921","413909879.281265","456735444.86792","516209150.326797","608292551.761226","597765363.128492","681587104.773714","868574141.232093","989911515.876036","1096396926.91144","", +"Sierra Leone","SLE","GDP (current US$)","NY.GDP.MKTP.CD","322009478.106707","327834752.427556","342721625.556128","348546926.009245","371848127.82171","359379856.248057","375479849.80806","348795303.000385","329860135.024054","408690163.296065","434410366.360027","419549387.020847","465381103.603727","575230251.323587","648590625.925671","679335916.411326","594895649.185867","691777759.267335","960728331.295844","1109374711.0164","1100685875.40484","1114830499.52549","1295361911.75877","995104288.373919","1087471849.24002","856890497.055359","490181456.62441","701307601.909934","1055083946.11552","932974412.385267","649644826.800447","779981538.149204","679997997.597117","768812334.801762","911915970.683484","870758739.40678","941742152.709895","850218033.622007","672375927.347148","669384768.87263","635874002.198748","1079478387.83576","1239004287.75607","1371442565.69701","1431208677.30352","1627853086.42403","1887429109.51298","2158653216.17331","2505620416.4953","2453972925.49437","2578159495.5593","2925391429.79832","3529350504.38382","4136280752.03693","", +"El Salvador","SLV","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","877719961.6","929520025.6","976199987.2","1009760051.2","1049400012.8","1132920012.8","1186119987.2","1263720038.4","1442319974.4","1665879961.6","1884120064","2328280064","2941640089.6","3127959961.6","3463639859.2","3573959884.8","3437200179.2","3399189149.5462","3506347772.359","3661683395.9653","3800368586.6311","3771663198.3157","3958045811.3194","4189880000.1155","4372215335.3846","4800900000","5311000000","5954700000","6938000000","8085600000","9500500000","10315500000","11134700000","12008400000","12464700000","13134100000","13812700000","14306700000","15046700000","15798300000","17093800000","18550700000","20104900000","21431000000","20661000000","21418300000","23139000000","23813600000","24259100000","", +"San Marino","SMR","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","853373879.731819","773907642.414748","815205233.062791","879957209.923907","1122981525.35502","1317357834.61634","1375416604.48689","1469075398.31891","1687653983.02765","1899809579.61037","","","","","","", +"Somalia","SOM","GDP (current US$)","NY.GDP.MKTP.CD","180460950.352325","191660990.858439","203533070.710314","216147149.952901","229531201.852126","243725900.221596","257375899.364358","271781889.251523","286719887.890669","300230021.488119","316147885.344131","331104597.011628","416940946.569946","507028439.326556","467577426.580885","710850217.91365","807275798.953096","498550866.152822","564986077.529704","590419863.985326","603592653.942155","699112246.542284","774419565.926071","733901342.023081","788307226.827367","876404614.97334","930318731.62226","1009792742.91164","1038291312.30908","1092393020.47939","917044253.990258","","","","","","","","","","","","","","","","","","","","","","","","", +"Serbia","SRB","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","24147996549.5662","18284194680.3844","18409364146.9794","6540247190.33529","12267175481.2542","16116843146.4806","21188704081.2428","24861483280.6339","26252007830.4639","30607991862.4843","40289556656.1455","49259526052.7426","42616653299.9115","39368633038.1209","46462547041.1781","40791444602.9009","45519650911.4138","", +"Sub-Saharan Africa (developing only)","SSA","GDP (current US$)","NY.GDP.MKTP.CD","29724158981.0986","30858661198.2734","33468032417.7622","38404447998.4661","37404206874.6436","41623638924.6928","44938348558.2699","44355504326.7221","47456906314.8114","54417193391.9299","64064974812.4179","65117159247.0423","73479219574.4873","94070797972.4902","122647135189.976","135102056657.808","146980909282.543","161466065678.458","180388149139.086","215748723927.055","271537895301.099","272966111528.754","255378374186.426","237861236359.099","226566695776.333","211240336024.309","233420911054.091","276041700579.407","290350247338.703","301495013787.295","303107534140.571","311565429142.592","306528514746.528","290674321787.365","283321886995.285","328270253131.895","340178193090.856","351724925247.216","331666256244.952","333040208366.096","356678541132.547","330738167960.729","352248103887.975","448521843968.355","556616204195.014","650336026839.965","761249935967.974","885146981635.25","1007623870584.32","964296031125.565","1301851786494.92","1459503855876.21","1527274612555","1612862847736.08","", +"South Sudan","SSD","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","15550136278.8696","12231362022.6859","15728045817.4245","18831595688.2841","10368813559.322","11804406779.661","", +"Sub-Saharan Africa (all income levels)","SSF","GDP (current US$)","NY.GDP.MKTP.CD","29716076333.099","30850270054.3435","33458931728.8093","38394428765.7346","37396904709.4593","41673193294.6207","44990943468.8498","44412089709.2228","47506300609.653","54462310401.0018","64103604139.241","65153629858.338","73511501501.323","94109234248.1048","122684025217.497","135143340713.504","147014744044.627","161492139309.186","180417278318.45","215783563151.842","271581743392.529","272994660984.181","255415650047.033","237899345534.655","226611495808.71","211298280830.281","233492930083.375","276129916997.818","290445434041.836","301577691027.693","303214086401.595","311670589886.487","306657703857.672","290805167588.278","283417506493.163","328406188168.8","340404837506.25","352161990063.33","332031800761.21","333657077422.879","357721390162.108","332198087495.568","354054415536.361","451006678780.816","561031674628.87","658569503675.392","769345452285.61","895366702770.707","1023097945833.2","973756547590.646","1313576200669.9","1475356381434.55","1543903374326","1628604422995.17","", +"Small states","SST","GDP (current US$)","NY.GDP.MKTP.CD","2901686780.64845","3154446383.46148","3341909440.27838","3516350398.98985","3863843947.26148","4212150467.90451","4553175891.60628","4891993901.00453","4915894995.89577","5372231641.5559","5915377942.2413","6521139468.50228","7531466789.41","8939768529.45251","12333501600.6969","14753382248.1709","16115595417.3493","17757271121.3098","18281450947.204","21683605470.9855","26892270585.7527","27673150818.9599","28654412299.3703","29182238033.1449","28185375862.5289","27082676125.8436","27003704904.1302","29944695916.0709","33035678009.6194","34510276298.9707","40284114155.5019","40847806367.9211","42476853597.0956","42241908300.6008","44460642685.5557","49422447657.2969","52966411825.0195","55900121724.8447","56340830695.1741","59872709320.4171","63959633933.9252","64341153224.553","67007595144.4578","78258621472.1047","91192324569.5785","105035525137.576","114911841870.657","130853757134.292","152901921672.816","130375176027.259","147766672464.635","168166250073.813","169029044399.476","173269710559.452","", +"Sao Tome and Principe","STP","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","76709304.533641","76553443.3856326","84617970.6711633","101315399.609525","110723361.793262","123258507.091215","135181861.925909","144259256.646072","183464986.350986","196473838.854983","201037916.581571","248286778.21572","263328450.308679","310684635.73614","", +"Suriname","SUR","GDP (current US$)","NY.GDP.MKTP.CD","93850000","98400000","103500000","110000000","120850000","138650000","171100000","198450000","220600000","233450000","247150000","270650000","287600000","305300000","368600000","465000000","505500000","641000000","735500000","783000000","794900000","889050000","915150000","883600000","864150000","873250000","891000000","979850000","1160900000","542520000","388300000","448300000","404600000","428794117.647059","605492537.313433","693970588.235294","860630922.693267","929607500","945000000","885444186.046512","892164393.939394","763465550.458716","1078402127.65957","1271196078.43137","1484092538.40527","1793557833.08931","2626093294.46064","2936612021.85792","3532969034.60838","3875409836.06557","4368398047.64333","4423194614.44308","5013030303.0303","5298787878.78788","", +"Slovak Republic","SVK","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","12694544692.7374","14213045493.8806","15431288006.2104","16452201100.9604","20079363625.5784","25733043137.2549","27821913814.9556","27658295003.9651","29821795502.8527","30409021947.5815","29110067256.311","30699979418.3445","35144769433.4651","46810992099.3228","57329422647.1319","62676556398.4579","70450243382.2607","86030964960.3066","99832535520.7265","88634272020.0056","89011919205.298","97525386433.1387","92746685082.8729","97707323420.0744","", +"Slovenia","SVN","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","21274122281.8765","21478225398.0496","20749932683.1486","22123896860.0012","22689556844.7347","20341391805.5921","20875944894.3895","23563028318.6541","29698471223.4945","34470563470.0842","36344911638.3462","39585411480.4822","48114688201.4782","55589849128.4605","50244793831.6199","47972988741.7219","51248860578.2597","46262305280.7401","47987303637.812","", +"Sweden","SWE","GDP (current US$)","NY.GDP.MKTP.CD","14842870293.4207","16147160122.7882","17511477311.4463","18954132365.5148","21137242560.8543","23260320646.2745","25302033132.3312","27463409201.8822","29143383490.5896","31649203885.888","37555366021.0315","40980345656.3725","48263914958.8443","58567384058.8006","65082581294.7696","81716751697.8951","88102107647.0993","93136775102.6419","102969762221.976","121646718574.328","140088635568.375","127858412114.39","112767844570.719","103533702638.547","107661673734.858","112514448261.835","148376104539.839","180429286795.786","204068257817.6","214875344909.957","258154283908.9","270362531376.602","280312318915.485","209950792712.696","226079963711.768","264051981551.316","288103936773.039","264477727278.681","266800462898.904","270847937645.236","259802012617.057","239917320966.977","263926220332.543","331108912605.271","381705944707.296","389042905733.083","420029322674.677","487818493601.646","513965715632.408","429655957162.127","488377689564.921","563109663291.177","543880647757.404","579679985303.385","", +"Swaziland","SWZ","GDP (current US$)","NY.GDP.MKTP.CD","35076845.9832923","43026042.8067933","45927961.6471865","54129438.3698764","64980554.0337706","70279971.9161232","76859969.2867562","74759970.1259159","79799968.1119327","105419957.874185","112139955.188874","136462080.92993","146740389.875794","221915096.205453","264320939.570152","288299883.906649","272549999.763","304059999.7356","340629999.7038","412094078.145402","542007473.131396","571514416.274442","537568142.050848","555336145.8925","494483241.372298","361012319.111126","449140383.953373","584125996.62743","692026606.934121","696921409.513751","1114694112.47478","1156135717.94598","1284759852.46684","1357189724.73828","1419294121.1812","1698989463.99106","1602741771.57434","1716714194.30934","1576908808.80611","1547888453.75789","1524490159.09856","1349326983.00661","1224220675.06919","1854020495.72254","2420610578.59952","2584077930.66197","2947922182.75015","3053823329.23844","3019770679.64511","3144680749.14822","3891563478.22481","4145772236.53295","4049589165.57952","3791304347.82609","", +"Sint Maarten (Dutch part)","SXM","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","", +"Seychelles","SYC","GDP (current US$)","NY.GDP.MKTP.CD","12012025.2477875","11592024.3649978","12642026.5719722","13923029.264481","15393032.3542452","15603032.7956401","16443034.5612196","16632032.8138977","16074027.3495878","16452027.9927472","18432031.3616773","21965951.7214804","30645121.0127585","36896278.223337","43134498.6932177","47803145.9560303","49278979.547035","64526398.6582547","85552369.9145942","127261099.24396","147357222.779802","154902869.02139","147912069.766502","146712850.50997","151313241.983564","168887539.130029","207850623.638216","249267034.781198","283828775.161448","304832867.395046","368584758.942457","374358966.27946","433660138.162626","473913770.698507","486445591.994766","508213503.850818","503060037.089327","562954169.782197","608358684.515165","622975776.387828","614877971.233472","622257630.832047","697514005.389262","705702638.230111","916940120.733087","916940120.733087","1019679309.97015","1018943341.96802","962313214.137932","847424851.518855","973355737.97626","1059593023.12596","1032199340.94769","1443345214.37698","", +"Syrian Arab Republic","SYR","GDP (current US$)","NY.GDP.MKTP.CD","857704420.513312","945244981.038121","1110565862.45336","1200447417.83731","1339494289.3772","1472036544.33834","1342287560.10485","1580229793.04638","1753746376.72452","2245011583.18698","2140383710.00885","2589851697.78909","3059682165.01818","3239488091.65962","5159557171.37959","6826980767.77202","7633528922.27344","7696011370.78768","9275203108.85105","9929682189.10886","13062421027.934","15518199245.3643","16298905403.3054","17589184545.6568","17503082976.9152","16403544516.9197","13293209274.2119","11356215714.3513","10577042354.0589","9853396224.91122","12308624283.9787","12981833333.3333","13253565901.0698","13695962017.1806","10122020000","11396706586.8263","13789560878.2435","14505233969.8054","15200846139.0769","15873875968.9922","19325894913.1254","21099833783.503","21582248881.6592","21828144686.0394","25086930693.0693","28858965517.2414","33332844574.7801","40405006007.2086","","","","","","","", +"Turks and Caicos Islands","TCA","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","", +"Chad","TCD","GDP (current US$)","NY.GDP.MKTP.CD","313582727.638108","333975336.626596","357635713.876856","371767002.656036","392247517.601949","416926302.963497","432794922.459759","449826322.995107","453980096.654412","471635620.924368","469266736.605101","501866730.722503","585427545.723598","647199482.827982","652532796.06664","864602103.303074","866044961.048354","935360466.351488","1113920122.61232","1004316495.11176","1033002401.82543","876937559.724954","834369860.427317","832415805.956265","919103735.322906","1033069709.99506","1067828247.23579","1163426850.65024","1482597298.88729","1433686309.83641","1738605558.05436","1877137983.02923","1881847671.47122","1463251161.33494","1179837963.95379","1445919894.86249","1607345354.92671","1544689575.99186","1744794532.49364","1534673503.55173","1385058211.50899","1709347776.84243","1987622268.81513","2736666450.54794","4414929142.23367","6646663021.43571","7422102519.56848","8638711756.62818","10351933631.7188","9253484289.67434","10657705072.2884","12156380062.0471","12887072081.6363","13513552424.9049","", +"Togo","TGO","GDP (current US$)","NY.GDP.MKTP.CD","121128072.357969","126396468.675871","132237468.099102","143255813.500949","166104078.39022","187300310.187736","216136231.83222","231706440.015125","241956916.824365","267732472.640112","253976592.086153","286537570.238145","335677600.252527","406479936.867839","560437818.027599","617321668.333349","619375148.839786","777435062.822101","824263986.688215","891775721.054594","1136409054.21599","962347169.080723","821652037.081977","765746518.152411","718149015.811654","762359786.038849","1060911724.49848","1249099286.39736","1378847400.42394","1352949664.93612","1628427587.61103","1602299812.77888","1692959105.53066","1233496935.56517","982624332.129785","1309382817.43319","1465448203.65068","1498950970.09524","1587346019.44505","1576094484.70894","1294250279.68129","1332328986.28277","1474630199.41874","1673690389.7013","1937074537.93089","2115154090.31071","2202809210.74095","2523462648.98387","3163416556.05377","3163000590.66298","3172945506.35697","3756023047.79099","3915754216.20669","4338575823.81993","", +"Thailand","THA","GDP (current US$)","NY.GDP.MKTP.CD","2760750921.40101","3034037871.75596","3308912929.93057","3540403469.52046","3889130441.59129","4388937644.86053","5279230812.28227","5638461436.94031","6081009422.09596","6695336560.93425","7086538430.75416","7375000024.39303","8177872957.58962","10838593717.241","13702998648.216","14882770239.3149","16985208712.1054","19779312335.7205","24006567108.4563","27371650353.059","32353514502","34846038517.9287","36589772336.849","40042798315.2734","41797647303.3483","38900711298.1934","43096774496.6248","50535445679.8106","61667254410.673","72250747142.1734","85343189320.7519","98234713407.7323","111452745855.989","125010690988.189","144308067330.632","168018557309.059","181947631898.202","150891449496.447","111859654863.119","122629741698.033","122725247705.559","115536405150.354","126876918690.024","142640079033.312","161339790594.627","176351948403.908","207088828467.346","246976870172.836","272577799257.354","263711244888.554","318907930075.712","345672232115.625","365965815820.015","387252164290.829","", +"Tajikistan","TJK","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","2629395066.27017","2535545389.35646","1909246640.80838","1646693875.00394","1346074460.78303","1231523105.36089","1043893062.60575","921843115.774498","1320126664.94978","1086567367.91081","860550294.273467","1080774005.56446","1221113794.72523","1554125542.56223","2076148710.31813","2312319579.02843","2830236053.84429","3719497371.09659","5161336170.46084","4979481980.35098","5642178579.58438","6522732202.50748","7633049792.09321","8508103455.51497","", +"Turkmenistan","TKM","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","2368660560.8757","2988678840.80541","3049945191.0726","3232066836.53467","3197224007.42472","3200539816.0601","3179225948.58114","2561118608.35516","2482228439.71407","2379281767.9558","2450084970.24741","2605688065.08338","2450686659.778","2904662604.82053","3534771968.51189","4462028988.72949","5977440582.80171","6838351088.46688","8104355716.8784","10277598152.4249","12664165103.1895","19271523178.8079","20214385964.9123","22148070175.4386","29233333333.3333","35164210526.3158","41850877192.9825","", +"Timor-Leste","TLS","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","368000000","452000000","444000000","453000000","466000000","491000000","463000000","559000000","694000000","818000000","934000000","1123000000","1270000000","","", +"Tonga","TON","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","32506767.9015578","30036429.1824514","34139376.8019516","41567471.6721987","44667002.0120724","53260077.4311091","62242013.3302689","62068161.0711025","60863963.963964","64248354.5414656","60058663.3144773","68195855.6149733","81667133.4546982","106657267.367342","106344854.986095","113563821.577404","132201141.446861","137066290.550071","138489884.393064","193775943.038933","202547013.927138","219583570.094975","212155124.65374","188686997.319035","194669501.594647","188623258.458914","167042880.0712","181801946.956496","208098551.915313","240794581.220937","264812953.795399","295998379.120618","301064027.077313","346850175.914552","318522296.093228","369212477.462857","423038016.923803","471575497.307216","466259084.092744","", +"Trinidad and Tobago","TTO","GDP (current US$)","NY.GDP.MKTP.CD","535673245.327852","584964613.107648","619322801.753209","678239320.341552","711897510.746459","736573148.749205","723739847.670182","761981451.279267","758899950","779200000","821850000","896763407.324495","1083392306.87854","1308786063.96939","2042002018.07129","2442667524.52124","2500420785.49351","3138666541.94727","3562333316.77893","4602416442.11641","6235874752.2086","6849166227.83859","7989791265.84756","7799749648.39913","7756166525.13097","7375999733.99383","4794361293.67387","4797750182.65253","4496806452.03252","4323035505.88235","5068070423.52941","5362823411.76471","5532117364.70588","4584646137.59936","4947205982.92661","5329214154.85282","5759537843.67805","5737751320.9812","6043710219.04829","6808976096.21717","8154315701.99886","8824873155.62584","9008273516.35786","11235960527.5348","12884712295.9948","16088526685.8421","18460889362.9894","21830397704.6306","28165793617.6367","19332270662.3097","20758191857.9814","23676348287.279","23436342519.9322","24640839007.5918","", +"Tunisia","TUN","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","991047619.047619","1040952380.95238","1085714285.71429","1214666666.66667","1289904761.90476","1439238095.2381","1685152604.60491","2237570218.83122","2730787476.28084","3545852328.69808","4328933303.50262","4508139372.17221","5109919571.04558","5968474421.51044","7188899276.68159","8743054698.11088","8428513568.24625","8133538742.82619","8350545840.2699","8254573072.61563","8410185739.96405","9017795297.4069","9696739314.07332","10096292842.1543","10101862385.7077","12290568181.8182","13074782608.6957","15497286295.7938","14608946896.483","15632463424.2784","18030876599.3444","19587322786.1105","20746360430.4187","21803372266.6198","22943685719.103","21473188881.5933","22066101341.4888","23141757277.9136","27453084982.5378","31183139301.4853","32282960678.4888","34378437265.2141","38920218579.235","44856586316.0458","43454935940.1614","44426016487.355","45950845290.5242","45238619629.9379","46993598818.2434","", +"Turkey","TUR","GDP (current US$)","NY.GDP.MKTP.CD","13995124517.0571","8017479300","8919043233.33333","10351885922.2222","11172953077.7778","11945722166.6667","14119135233.3333","15664673411.1111","17500000000","19466666666.6667","17086956521.7391","16256619963.7997","20431095406.3604","25724381625.4417","35599913836.4328","44633707242.7642","51280134554.2889","58676813687.3681","65147022485.7919","89394085658.2038","68789289565.7434","71040020140.4436","64546332580.7583","61678280115.4987","59989909457.8379","67234948264.5987","75728009962.7878","87172789528.3316","90852814004.9917","107143348667.094","150676291094.21","151041248184.246","159095003188.105","180422294772.264","130690172297.297","169485941048.035","181475555282.555","189834649111.257","269287100727.18","249751469771.285","266567532725.557","196005289695.051","232534560441.697","303005303081.914","392166275594.77","482979839089.015","530900094644.732","647155131936.449","730337495735.69","614553921806.452","731168051903.114","774754155283.582","788863301670.379","822135183159.996","", +"Tuvalu","TUV","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","8824746.23813152","9365488.11527636","9742603.63358628","9631024.91567838","10887216.9090252","11025679.5147634","12335200.1648586","12701093.9749737","12757405.7922913","13686699.5709539","13741844.5911473","13196254.8666433","15451309.0427519","18230911.0375253","21535683.8836479","21839543.6333183","22903319.50355","27030996.0274377","30290770.2566871","27101312.7916078","31824701.2783331","39313508.6934276","39875708.119439","38322359.5288666","", +"Tanzania","TZA","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","5100405344.39923","4420167588.57625","4258742898.93795","4956587901.61865","4601413521.13102","4257702021.44302","4510847189.15431","5255221043.83861","6496195823.96993","7683852496.84499","9345174101.90716","9697847589.16835","10185786170.7327","10383560997.7807","10805600068.704","11659129814.7433","12825801916.6063","14141916592.3846","14331231238.9296","16825547176.0564","20715086118.9359","21368165683.2543","22915004589.3115","23874165023.8927","28248632095.6877","33225037489.6903","", +"Uganda","UGA","GDP (current US$)","NY.GDP.MKTP.CD","423145688.927809","441667041.01569","449158317.275995","516315650.872311","589247477.588738","884502338.650021","925381522.392631","967240686.567426","1037379286.07101","1168556666.77932","1259554849.768","1417191702.14533","1490970306.72707","1701817912.2561","2098945009.99877","2359555555.55556","2447300000","2936470588.23529","2420260869.56522","2139025000","1244610000","1337300000","2177500000","2240333333.33333","3615647464.044","3519695202.59337","3923244143.11762","6269521859.21993","6508931651.38918","5276480932.64278","4304399516.07681","3321729207.85836","2857457785.70851","3220439178.15143","3990430537.18124","5755818793.1142","6044585326.938","6269333313.17108","6584815846.52754","5998563257.94659","6193246632.3273","5840503702.93999","6178563467.08765","6336696288.99935","7940362663.20133","9013834490.37669","9942597753.14256","12292813800.4964","14239026767.7073","14824492062.1218","16030996179.091","15493320081.9136","20040545044.9395","21493615478.373","", +"Ukraine","UKR","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","64087694038.2333","74703517902.6642","82707004265.9254","81456431291.9234","77464043753.2963","73942294099.2892","65648559194.6496","52549555009.5044","48213868185.1625","44558077827.135","50150399813.1328","41883241479.9014","31580639053.2013","31261527363.144","38009344576.6088","42392896031.2394","50132953288.203","64883060725.7003","86142018069.3504","107753069306.931","142719009900.99","179992405832.321","117227769791.56","136419300367.962","163421733018.726","176603428857.465","177430609756.098","", +"Upper middle income","UMC","GDP (current US$)","NY.GDP.MKTP.CD","173320696605.094","157252635526.375","165312395529.701","172539154712.253","195121953433.995","217577957944.779","238939312708.847","242265657915.214","254963247934.943","285201987694.467","312144328147.344","341638402395.982","390840925690.931","507262410088.914","649767594559.999","716095717961.319","776765463408.254","866934993070.62","929002835516.377","1129165156404.62","1291425927283.94","1404382187103.59","1384399260062.17","1359568007120.86","1396236590462.23","1474717310713.54","1539316021871.09","1542832868802.84","1696491460550.61","1841122291815.31","2167930977581.27","2250440630531.31","2427148720763.63","2703382180385.49","3066100912464.23","3457504450474.43","3796590184405.48","4060202736465.05","4129664242915.19","3971992167028.19","4322912731390.18","4331461021486.68","4291300017204.47","4787225988933.5","5660696776149.11","6739997663063.9","7919787769694.54","9765358718577.14","11872320857583.6","11738974642494.1","14103176264778.5","16513752162805.4","17492391500006.2","18687365790575.7","", +"Uruguay","URY","GDP (current US$)","NY.GDP.MKTP.CD","1243993170.19614","1549623550.06488","1709221317.6221","1538971680.97818","1974511146.05715","1889185074.97641","1808775748.3991","1598149806.59667","1593701208.51915","2004342741.93548","2137241935.48387","2807342741.93548","2189502774.9206","3964295672.52444","4090252474.21085","3538292267.30118","3667161241.48372","4114664910.57037","4910255622.72032","7181180174.85868","10163020115.7344","11048335541.4933","9178802451.40147","5102281488.72172","4850241442.17643","4732017873.38369","5880112946.89436","7367494222.29317","8213515458.51139","8438951476.06644","9298839655.23138","11206193313.0458","12878157305.7481","15002144584.3663","17474578502.4346","19297663096.5506","20515465834.0682","23969746851.4993","25385928196.3986","23983945190.6167","22823255805.9664","20898788420.0932","13606494599.021","12045627411.0182","13686333821.7864","17362872704.1985","19579479148.4953","23410536926.5382","30366148181.398","30461322497.5401","38881102099.8793","47236710628.2914","50004354647.2594","55707944621.9719","", +"US”,”USA","GDP (current US$)","NY.GDP.MKTP.CD","543300000000","563300000000","605100000000","638600000000","685800000000","743700000000","815000000000","861700000000","942500000000","1019900000000","1075900000000","1167800000000","1282400000000","1428500000000","1548800000000","1688900000000","1877600000000","2086000000000","2356600000000","2632100000000","2862500000000","3211000000000","3345000000000","3638100000000","4040700000000","4346700000000","4590200000000","4870200000000","5252600000000","5657700000000","5979600000000","6174000000000","6539300000000","6878700000000","7308800000000","7664100000000","8100200000000","8608500000000","9089200000000","9660600000000","10284800000000","10621800000000","10977500000000","11510700000000","12274900000000","13093700000000","13855900000000","14477600000000","14718600000000","14418700000000","14964400000000","15517900000000","16163200000000","16768100000000","", +"Uzbekistan","UZB","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","13360607990.6751","13800157749.2873","12953800571.0314","13099928531.8591","12899074347.3288","13350461532.662","13948892215.5689","14744603773.5849","14988971210.8383","17078465982.0282","13760374487.51","11401351420.1718","9687951055.22541","10128112401.4248","12030023547.8807","14307509838.8053","17030896203.1963","22311393927.8817","27934030937.2157","32816828372.9753","39332770928.9426","45324319955.3884","51183443224.9939","56795656324.5823","", +"St. Vincent and the Grenadines","VCT","GDP (current US$)","NY.GDP.MKTP.CD","13066633.8255337","13999964.8130718","14524963.493562","13708298.8794661","14758296.2404465","15108295.3612136","16099959.5355017","15835088.4020619","15350000","16650000","18450000","20051648.1111283","27585488.2223049","30165373.2430518","32924215.7541822","33237164.0553397","32792479.982624","36537036.3917697","46599999.1770143","54511110.1484102","60307406.3423402","74799998.6789844","85448146.6390795","94044442.7835597","103499998.172124","112881479.487923","127974071.81397","142329627.115998","164574071.167591","177296293.165131","198207403.906938","212492588.839838","233188884.770625","238774069.857172","243255551.259508","266481476.775249","281518513.546722","293070365.194561","317851809.201349","331866660.80569","396261363.372142","430039288.701529","461883436.287289","481806287.78729","521975101.892698","550728656.940448","610778285.509563","684049037.037037","695428851.851852","674922481.481481","681225962.962963","676406962.962963","693304481.481481","709358185.185185","", +"Venezuela, RB","VEN","GDP (current US$)","NY.GDP.MKTP.CD","8607600068.65332","8923366627.53039","9873397859.35133","10663375513.5473","9113580696.48012","9602944667.73034","10096574669.5506","10472776743.7753","11470909285.1461","11927570676.9213","12993115056.382","14471557937.6802","15922867181.2727","19445932860.3322","29087099933.3256","31413164178.7398","36272315695.3908","42337056974.7001","46507640231.1473","55750554788.6546","67135122863.8789","75498829319.371","76693647866.3483","78586503425.9925","55952339079.6385","57935742246.6933","58915108093.8796","45343793675.9793","58428404473.5586","42142303738.5494","47027508385.03","51734363023.7838","58470358475.8681","58107555298.4641","56529904239.4612","74888742183.6849","68258588862.7845","85837385778.751","91338542541.7674","97974136436.6528","117147614565.563","122909734601.322","92889586976.1833","83622191418.9774","112451400422.982","145513489651.872","183477522123.894","230364229156.963","315600372612.948","329419189566.837","393801556872.313","316482176578.929","381286223859.371","438283564814.815","", +"Virgin Islands (U.S.)","VIR","GDP (current US$)","NY.GDP.MKTP.CD","24200000","25700000","36900000","41400000","53800000","66500000","84100000","115400000","173800000","211300000","219000000","257000000","307100000","351600000","395400000","399800000","440000000","461800000","512900000","606700032","727800000","821800000","832600000","916899968","985400000","990400000","1035600000","1147800064","1204600064","1343900032","1564700032","1671200000","1770899968","1996000000","","","","","","","","","","","","","","","","","","","","","", +"Vietnam","VNM","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","14094688429.5982","26336617862.4431","36658108169.2072","25423812494.3469","6293304847.12842","6471740486.31946","9613369553.85111","9866990096.31621","13180954014.0721","16286434094.0188","20736163915.2435","24657470331.5922","26843701136.726","27209601995.8245","28683658004.771","33640085727.518","35291349277.3143","37947904054.452","42717072777.5838","49424107709.8946","57633255739.4104","66371664817.0436","77414425532.2452","99130304099.1274","106014600963.957","115931749904.86","135539487317.008","155820001920.492","171390003299.399","", +"Vanuatu","VUT","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","119258829.724745","113423181.643068","98746409.4413175","98144643.7097661","110123776.769005","135553759.396907","123698508.817134","118691400.756626","130834146.216785","148545377.858713","144482170.476684","158397406.344715","188869985.157248","196142587.970973","188080372.417814","219260343.349957","233902114.74096","245177629.284461","255890215.734673","262301249.00278","267999225.256634","272014693.050806","257926881.72043","262603781.799059","314463144.04219","364996869.129618","394962552.336108","437072933.899158","526425740.447881","607983815.257081","610075806.66568","700804286.224354","792149700.679116","781702874.106058","828237181.13311","", +"West Bank and Gaza","PSE","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","2842261249.08593","3281382696.70953","3407783959.14353","3760126839.91275","4067692861.12389","4271509595.80352","4316456402.62911","4007793546.37782","3557451046.5733","3959278954.90714","4327268305.38559","4834276370.98668","4914728157.12703","5508346521.41084","6673500000","7268200000","8913100000","10465400000","11262141134.3655","","", +"World","WLD","GDP (current US$)","NY.GDP.MKTP.CD","1368724087042.22","1424111590471.01","1529120013230.52","1645228204043.56","1802868086107.01","1963996197707.53","2129949355143.15","2266138639355.72","2444239853755.12","2691569053065.74","2954200298961.33","3262563527662.51","3761789122564.32","4582953575789.2","5286058322171.63","5892063053532.24","6409316270805.75","7247798087944.4","8533619533279.92","9914107353603.27","11160862487687.3","11448494304350.1","11346285912171.9","11600153941270.5","12038443031721.7","12656451151265.6","14978315943133.8","17039086362684.5","19075794154720.5","20018962922655.4","22519258903708.7","23641409950598.5","25308691489792.7","25742585494456.3","27689225748209.1","30642825528679.9","31301153604663.6","31213034941087","31089451464499.1","32240887780829.2","33284011609137.6","33086733375159.4","34334649308100.4","38560126406382.6","43411853649215.8","46964572241579.5","50880052935765","57327852313280.9","62857999144162.3","59539280829015.1","65216843712977.1","72139587333087.1","73514223629331.8","75592940968183.3","", +"Samoa","WSM","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","121218640.633866","111860659.949563","109200344.91064","95573449.3758911","100949655.898907","111716548.604677","133016065.660133","122888610.417818","125766270.897892","125597203.42392","132303037.064632","133122893.142375","221098106.508876","224865731.381903","249907893.815192","285475620.929503","269485284.955621","258831775.411535","269019710.327456","273088357.1637","288075318.910738","338836026.389264","420318071.937836","462644663.06818","508505414.399597","550967295.280901","644145158.435121","562357861.823036","643059403.014481","737053938.86719","801803524.477956","801916057.595518","", +"Yemen, Rep.","YEM","GDP (current US$)","NY.GDP.MKTP.CD","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","5647251908.39695","5930370370.37037","6463649985.01648","5368270614.8468","4167356037.1517","4258788725.44991","5785685310.86668","6839039029.748","6325219772.93811","7641101221.43876","9636342274.82408","9854042164.67463","10693278291.8149","11777768086.8693","13873500887.5612","16753787028.2859","19081726103.2145","25633674563.5493","30397203368.9725","27838718233.1099","31743751169.3171","29207296703.2967","31992801302.9316","35954502303.5041","", +"South Africa","ZAF","GDP (current US$)","NY.GDP.MKTP.CD","7363240497.64909","7742786645.98245","8269859555.36412","9175047813.65089","10071641615.372","11002595323.3629","11995195206.72","13382594792.3151","14475993795.3929","16315592920.2891","17907392984.2058","19764631600.9891","20753098389.9353","28445480945.9102","35728950461.0733","36947551400.6626","35475199969.152","39400150195.739","45328400535.584","55936738624.0768","80543504085.2199","86830012450.7341","80086547266.0365","86013096914.1144","85171208711.5863","67066232229.9946","79501624628.4844","104022118651.667","114631068114.854","124908313666.606","112013934439.905","120225332350.71","130513031860.232","130405965475.799","135777918777.89","151113087810.184","143731991365.36","148814165959.858","134295554247.468","133183581576.24","132877640152.963","118478986833.533","111100858130.227","168219325183.617","219092936699.386","247051562311.219","261007039378.852","286171830700.042","273141750192.768","284183101099.752","365208432989.369","403894316554.738","382337636447.523","350630133297.428","", +"Congo","COD","GDP (current US$)","NY.GDP.MKTP.CD","3359404132.31797","3086746936.39789","3779841409.55267","6213185773.92265","2881545277.14307","4043901724.13762","4532660145.32842","3384063359.82333","3909780525.37375","5032434970.84174","4877684933.12505","5594770351.56981","6173712809.28569","7870239463.58461","9596960174.34365","10237343153.4311","9648583220.47256","12344424775.9239","15372607995.4061","15068422242.0571","14394927492.9647","12537821039.8252","13651667370.5466","11006712649.2175","7857729192.85629","7195042615.84176","8095367168.16178","7661625472.51189","8861299976.68858","9021862775.25443","9349764580.35198","9087965281.52807","8206227134.00857","10707792340.0276","5820382248.28202","5643439376.10491","5771454939.62404","6090840548.18784","6215591269.89747","4711259427.27273","19088046305.7971","7438044091.33333","8728038480.28516","8937556125.21679","10297481446.2161","11964484457.5233","14296505933.1906","16364027646.7724","19206015304.7822","18262675199.101","21561941369.3628","25835398967.342","29306222815.6328","32690896872.7644","", +"Zambia","ZMB","GDP (current US$)","NY.GDP.MKTP.CD","698739720.783607","682359727.329053","679279728.55982","704339718.545848","822639671.273187","1061199575.94465","1238999504.8958","1340639464.28047","1573739371.13375","1926399230.21087","1788779285.2038","1653259341.29113","1872416680.07912","2434255236.99935","2910981262.10018","2442672140.947","2742859262.9794","2515296939.60686","2811032472.93922","3353445378.15126","3884530853.76162","4008126497.36464","3871117092.86676","3321048451.15171","2719518932.99541","2252454500.14896","1664413508.09853","2265250972.34879","3728878148.80792","3994673161.02649","3288381797.32415","3376791492.28079","3182810895.29572","3273507753.87841","3656808232.64295","3806982678.89363","3597220962.00017","4303290116.56546","3537741625.24395","3404284652.93585","3600631918.50658","4094441301.21423","4193850445.42632","4901869715.90457","6221109716.39571","8331863989.52213","12756957883.9326","14056878376.0998","17911046608.5571","15328314220.1859","20265396325.5947","23731894786.498","24939543374.1362","26820870558.9406","", +"Zimbabwe","ZWE","GDP (current US$)","NY.GDP.MKTP.CD","1052990400","1096646600","1117601600","1159511700","1217138000","1311435800","1281749500","1397002000","1479599900","1747998800","1884206300","2178716300","2677729400","3309353600","3982161400","4371300700","4318372000","4364382100","4351600500","5177459400","6678868200","8011373800","8539700700","7764067000","6352125900","5637259300","6217523700","6741215100","7814784100","8286322700","8783816700","8641481700","6751472200","6563813300","6890675000","7111270700","8553146600","8529571600","6401968200","6858013100","6689957600","6777384700","6342116400","5727591800","5805598400","5755215200","5443896500","5291950100","4415702800","8157077400","9456808200","10956226600","12472416700","13490000000","", diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/data/hitandgdp.jpg b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/data/hitandgdp.jpg new file mode 100644 index 0000000..523a14b Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/data/hitandgdp.jpg differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/data/hng.jpg b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/data/hng.jpg new file mode 100644 index 0000000..7414f98 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/data/hng.jpg differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/data/snapshot_rect.png b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/data/snapshot_rect.png new file mode 100644 index 0000000..c908c96 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/data/snapshot_rect.png differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/data/snapshot_spi.png b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/data/snapshot_spi.png new file mode 100644 index 0000000..37b7ff0 Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/data/snapshot_spi.png differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/data/snapshot_tri.png b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/data/snapshot_tri.png new file mode 100644 index 0000000..0f448db Binary files /dev/null and b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/bin/data/snapshot_tri.png differ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/config.make b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/config.make new file mode 100644 index 0000000..df10f64 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/config.make @@ -0,0 +1,142 @@ +################################################################################ +# CONFIGURE PROJECT MAKEFILE (optional) +# This file is where we make project specific configurations. +################################################################################ + +################################################################################ +# OF ROOT +# The location of your root openFrameworks installation +# (default) OF_ROOT = ../../.. +################################################################################ +# OF_ROOT = ../../.. + +################################################################################ +# PROJECT ROOT +# The location of the project - a starting place for searching for files +# (default) PROJECT_ROOT = . (this directory) +# +################################################################################ +# PROJECT_ROOT = . + +################################################################################ +# PROJECT SPECIFIC CHECKS +# This is a project defined section to create internal makefile flags to +# conditionally enable or disable the addition of various features within +# this makefile. For instance, if you want to make changes based on whether +# GTK is installed, one might test that here and create a variable to check. +################################################################################ +# None + +################################################################################ +# PROJECT EXTERNAL SOURCE PATHS +# These are fully qualified paths that are not within the PROJECT_ROOT folder. +# Like source folders in the PROJECT_ROOT, these paths are subject to +# exlclusion via the PROJECT_EXLCUSIONS list. +# +# (default) PROJECT_EXTERNAL_SOURCE_PATHS = (blank) +# +# Note: Leave a leading space when adding list items with the += operator +################################################################################ +# PROJECT_EXTERNAL_SOURCE_PATHS = + +################################################################################ +# PROJECT EXCLUSIONS +# These makefiles assume that all folders in your current project directory +# and any listed in the PROJECT_EXTERNAL_SOURCH_PATHS are are valid locations +# to look for source code. The any folders or files that match any of the +# items in the PROJECT_EXCLUSIONS list below will be ignored. +# +# Each item in the PROJECT_EXCLUSIONS list will be treated as a complete +# string unless teh user adds a wildcard (%) operator to match subdirectories. +# GNU make only allows one wildcard for matching. The second wildcard (%) is +# treated literally. +# +# (default) PROJECT_EXCLUSIONS = (blank) +# +# Will automatically exclude the following: +# +# $(PROJECT_ROOT)/bin% +# $(PROJECT_ROOT)/obj% +# $(PROJECT_ROOT)/%.xcodeproj +# +# Note: Leave a leading space when adding list items with the += operator +################################################################################ +# PROJECT_EXCLUSIONS = + +################################################################################ +# PROJECT LINKER FLAGS +# These flags will be sent to the linker when compiling the executable. +# +# (default) PROJECT_LDFLAGS = -Wl,-rpath=./libs +# +# Note: Leave a leading space when adding list items with the += operator +################################################################################ + +# Currently, shared libraries that are needed are copied to the +# $(PROJECT_ROOT)/bin/libs directory. The following LDFLAGS tell the linker to +# add a runtime path to search for those shared libraries, since they aren't +# incorporated directly into the final executable application binary. +# TODO: should this be a default setting? +# PROJECT_LDFLAGS=-Wl,-rpath=./libs + +################################################################################ +# PROJECT DEFINES +# Create a space-delimited list of DEFINES. The list will be converted into +# CFLAGS with the "-D" flag later in the makefile. +# +# (default) PROJECT_DEFINES = (blank) +# +# Note: Leave a leading space when adding list items with the += operator +################################################################################ +# PROJECT_DEFINES = + +################################################################################ +# PROJECT CFLAGS +# This is a list of fully qualified CFLAGS required when compiling for this +# project. These CFLAGS will be used IN ADDITION TO the PLATFORM_CFLAGS +# defined in your platform specific core configuration files. These flags are +# presented to the compiler BEFORE the PROJECT_OPTIMIZATION_CFLAGS below. +# +# (default) PROJECT_CFLAGS = (blank) +# +# Note: Before adding PROJECT_CFLAGS, note that the PLATFORM_CFLAGS defined in +# your platform specific configuration file will be applied by default and +# further flags here may not be needed. +# +# Note: Leave a leading space when adding list items with the += operator +################################################################################ +# PROJECT_CFLAGS = + +################################################################################ +# PROJECT OPTIMIZATION CFLAGS +# These are lists of CFLAGS that are target-specific. While any flags could +# be conditionally added, they are usually limited to optimization flags. +# These flags are added BEFORE the PROJECT_CFLAGS. +# +# PROJECT_OPTIMIZATION_CFLAGS_RELEASE flags are only applied to RELEASE targets. +# +# (default) PROJECT_OPTIMIZATION_CFLAGS_RELEASE = (blank) +# +# PROJECT_OPTIMIZATION_CFLAGS_DEBUG flags are only applied to DEBUG targets. +# +# (default) PROJECT_OPTIMIZATION_CFLAGS_DEBUG = (blank) +# +# Note: Before adding PROJECT_OPTIMIZATION_CFLAGS, please note that the +# PLATFORM_OPTIMIZATION_CFLAGS defined in your platform specific configuration +# file will be applied by default and further optimization flags here may not +# be needed. +# +# Note: Leave a leading space when adding list items with the += operator +################################################################################ +# PROJECT_OPTIMIZATION_CFLAGS_RELEASE = +# PROJECT_OPTIMIZATION_CFLAGS_DEBUG = + +################################################################################ +# PROJECT COMPILERS +# Custom compilers can be set for CC and CXX +# (default) PROJECT_CXX = (blank) +# (default) PROJECT_CC = (blank) +# Note: Leave a leading space when adding list items with the += operator +################################################################################ +# PROJECT_CXX = +# PROJECT_CC = diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/openFrameworks-Info.plist b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/openFrameworks-Info.plist new file mode 100644 index 0000000..8d64d2b --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/openFrameworks-Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + cc.openFrameworks.ofapp + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleVersion + 1.0 + CFBundleIconFile + ${ICON} + + diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/src/Country.cpp b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/src/Country.cpp new file mode 100644 index 0000000..1153b6d --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/src/Country.cpp @@ -0,0 +1,37 @@ +// +// Country.cpp +// DataofCountry +// +// Created by Minju Viviana Kim on 3/1/15. +// +// + +#include "Country.h" + +Country::Country() +{ + name = "name"; + hit = 0; + gnp = 0; + color = ofColor(255,255,255); + +} + +Country::Country(string _name, float _gnp, int _hit) +{ + name = _name; + gnp = _gnp; + hit = _hit; + +} + +void Country::update() +{ + cout << "Called" << endl; +} + +void Country::draw() +{ + cout << "Called" << endl; +} + diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/src/Country.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/src/Country.h new file mode 100644 index 0000000..505cdd0 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/src/Country.h @@ -0,0 +1,37 @@ +// +// Country.h +// DataofCountry +// +// Created by Minju Viviana Kim on 3/1/15. +// +// + +#ifndef __DataofCountry__Country__ +#define __DataofCountry__Country__ + +#include "ofMain.h" +#include +#include +#include + +using namespace std; + +class Country { +public: + void update(); + void draw(); + void setData(); + + Country(); + Country(string _name, float _gnp, int _hit); + + string name; + ofColor color; + float gnp; + int hit; + float hitPerc; + float finan; + +}; + +#endif /* defined(__DataofCountry__Country__) */ diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/src/main.cpp b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/src/main.cpp new file mode 100644 index 0000000..cbbf550 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/src/main.cpp @@ -0,0 +1,13 @@ +#include "ofMain.h" +#include "ofApp.h" + +//======================================================================== +int main( ){ + ofSetupOpenGL(600,600,OF_WINDOW); // <-------- setup the GL context + + // this kicks off the running of my app + // can be OF_WINDOW or OF_FULLSCREEN + // pass in width and height too: + ofRunApp(new ofApp()); + +} diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/src/ofApp.cpp b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/src/ofApp.cpp new file mode 100644 index 0000000..dba2575 --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/src/ofApp.cpp @@ -0,0 +1,413 @@ +#include "ofApp.h" +#include + + + +//-------------------------------------------------------------- +void ofApp::setup(){ + + + ofBackground(0); + ofSetBackgroundAuto(false); + + frameCount = 610; + setupCountries(); + + myfont.loadFont(OF_TTF_MONO, 11); + +// ofApp::setDataforSpiral(); + ofApp::setDataforTriangle(); +// ofApp::setDataforRectangle(); + + snapCounter = 0; + bSnapshot = false; + +} + +//-------------------------------------------------------------- +void ofApp::update(){ + + if(ofGetFrameNum() 122); +} +bool isquo2(const char &c) +{ + return '"'==c; +} + +bool iscomm(const char &c) +{ + return ','==c; +} + +float to(std::string s) +{ + s.erase(std::remove_if(s.begin(), s.end(), &iscomm ),s.end()); + + std::stringstream ss(s); + float v = 0; + ss >> v; + return v; +} + +void ofApp::setupCountries() { + + string countries[]= { + "Korea", "China", "India", "US", "Indonesia", "Brazil", "Pakistan", "Nigeria", "Bangladesh", "Russia", "Japan" + , "Mexico", "Philippines", "Ethiopia", "Egypt", "Germany", "Iran", "Turkey", "Congo", "Thailand" + }; + + csv.loadFile(ofToDataPath("gnp.csv")); +// cout << csv.numRows<< endl; +// cout << csv.data[1].size() << endl; +// cout << csv.data[117][0] << endl; +// cout << csv.data[117][57] << endl; + string name = csv.getString(117, 0); + cout << name.length() << endl; + name.erase(std::remove_if(name.begin(), name.end(), &isquo ),name.end()); + cout << name << name.length() << endl; + const char* c = name.c_str(); + if( std::strcmp(c,"Korea") == 0 ) { + cout << "Yes" << endl; + cout << csv.getString(117,57) << endl; + } else { + cout << "No"<< name << endl; + } + + + Countries.resize(sizeof(countries)/sizeof(string)); + for(int i=0; i gnp/Countries.size()*2.0) { + Countries[i].color = ofColor(255,226,59); + } else if (Countries[i].gnp < gnp/Countries.size()*2.0 && Countries[i].gnp > gnp/Countries.size()*1.5 ){ + Countries[i].color = ofColor(170,150,40); + } else if (Countries[i].gnp < gnp/Countries.size()*1.5 && Countries[i].gnp > gnp/Countries.size()*0.8 ){ + Countries[i].color = ofColor(117,104,27); + } else if (Countries[i].gnp < gnp/Countries.size()*0.8 && Countries[i].gnp > gnp/Countries.size()*0.3 ){ + Countries[i].color = ofColor(96,97,78); + } else { + Countries[i].color = ofColor(46,47,38); + } + + + cout << Countries[i].name.length() << endl; + nCheck = nCheck + Countries[i].name.length()*int(Countries[i].hitPerc+1); + + } + + cout << nCheck << endl; + int f = 0; + + for(int i = 0; i < Countries.size(); i++) { + for(int j=0; j< Countries[i].hitPerc+1; j++) { + for(int r = 0; r < Countries[i].name.length(); r++) { + Couns.push_back(Countries[i].name[r]); + Colors.push_back(Countries[i].color); + cout<< Countries[i].name[r] << endl; + cout<< Countries[i].color << endl; + cout<< Couns[f] << endl; + cout<< Colors[f] << endl; + f++; + } + } + } + +} + +void ofApp::setDataforSpiral(){ + + theta = 5; + +} + +void ofApp::setDataforTriangle(){ + + x = 0; + y = 0; + space = 45; + height = 3; + baseline = 45; + baseFlag = true; + margine = 5; + + count = 0; +} + +void ofApp::setDataforRectangle(){ + + space = 30; + margine = 10; + x = space; + y = -1 * space; + count = 0; + + xPlusFlag = false; + xMinFlag = false; + yPlusFlag = true; + yMinFlag = false; + xCheck = -1; + yCheck = 1; + + preXStand = x; + preYStand = y; + xStand = preXStand + (xCheck)*(count+2)*space; + yStand = preYStand + (yCheck)*(count+2)*space; + + +} + +void ofApp::drawSpiral(){ + + ofPushMatrix(); + ofTranslate(ofGetWidth()/2,ofGetHeight()/2); + ofPushMatrix(); + ofTranslate(x*radian, y*radian); + ofRotate(theta*180/PI+90); + + ofSetColor(Colors[ofGetFrameNum()]); + ofFill(); + //ofCircle(0,0,10); + myfont.drawString(ofToString(Couns[ofGetFrameNum()]), 0, 0); + + ofPopMatrix(); + ofPopMatrix(); + +} + +void ofApp::drawTriangle(){ + + ofPushMatrix(); + ofTranslate(ofGetWidth()/2,ofGetHeight()/2+50); + ofPushMatrix(); + ofTranslate(x, y); + + // myfont.drawString("S", 0, 0); + + ofSetColor(Colors[ofGetFrameNum()]); + if(!baseFlag) { + if(x<0) { + ofRotate(300); + myfont.drawString(ofToString(Couns[ofGetFrameNum()]), 0, 11); + + } else { + ofRotate(60); + myfont.drawString(ofToString(Couns[ofGetFrameNum()]), 0, 0); + + } + } else { + ofRotate(180); + myfont.drawString(ofToString(Couns[ofGetFrameNum()]), -11, 11); + } + + // myfont.drawString("K", 0, 0); + ofPopMatrix(); + ofPopMatrix(); +} + +void ofApp::drawRectangle(){ + + ofPushMatrix(); + ofTranslate(ofGetWidth()/2, ofGetHeight()/2); + ofPushMatrix(); + ofTranslate(x,y); + if(yPlusFlag){ + ofRotate(90); + } else if(xMinFlag) { + ofRotate(180); + } else if(yMinFlag) { + ofRotate(270); + } else if(xPlusFlag) { + //NONE + } + ofSetColor(Colors[ofGetFrameNum()]); + myfont.drawString(ofToString(Couns[ofGetFrameNum()]), 0, 0); + ofPopMatrix(); + ofPopMatrix(); +} + +void ofApp::updateSpiral(){ + + theta = theta + TWO_PI/144*(50/theta); + + x = cos(theta); + y = sin(theta); + radian = theta*4.5; + +} + +void ofApp::updateTriangle(){ + + if(baseFlag) { + if(x > -1*(((1+1/sqrt(height))*space*count + sqrt(height)*baseline)/sqrt(height))) { + x = x - 2*margine; + } else { + count++; + baseFlag = false; + } + } else { + if(x < ((1+1/sqrt(height))*space*count + sqrt(height)*baseline -space)/sqrt(height)){ + x = x + margine; + y = x/abs(x) * sqrt(height) * x - (baseline*sqrt(height)+(count -1)*space); + }else { + baseFlag = true; + } + } + +} + +void ofApp::updateRectangle(){ + + if(yPlusFlag) { + if(y<=yStand) { + y = y + (yCheck)*margine; + } else { + count++; + yPlusFlag = false; + xMinFlag = true; + yCheck = yCheck * -1; + preYStand = yStand; + yStand = preYStand + (yCheck)*(count+2)*space; + } + }else if(xMinFlag) { + if(x >= xStand) { + x = x + (xCheck)*margine; + } else { + xMinFlag = false; + yMinFlag = true; + xCheck = xCheck * -1; + preXStand = xStand; + xStand = preXStand + (xCheck)*(count+2)*space; + } + } else if(yMinFlag) { + if(y >=yStand){ + y = y + (yCheck)*margine; + } else { + count++; + yMinFlag = false; + xPlusFlag = true; + yCheck = yCheck * -1; + preYStand = yStand; + yStand = preYStand + (yCheck)*(count+2)*space; + } + }else if(xPlusFlag) { + if(x <= xStand) { + x = x + (xCheck)*margine; + } else { + xPlusFlag = false; + yPlusFlag = true; + xCheck = xCheck * -1; + preXStand = xStand; + xStand = preXStand + (xCheck)*(count+2)*space; + } + } + +} \ No newline at end of file diff --git a/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/src/ofApp.h b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/src/ofApp.h new file mode 100644 index 0000000..ec452fe --- /dev/null +++ b/1_Data_and_Aesthetic/Assignments/MinjuKim/DataWeek2/src/ofApp.h @@ -0,0 +1,75 @@ +#pragma once + +#include "ofMain.h" +#include "ofxJSON.h" +#include "ofxCsv.h" +#include +#include "Country.h" + +using namespace wng; + +class ofApp : public ofBaseApp{ +public: + void setup(); + void update(); + void draw(); + void setupCountries(); + void setVector(); + void setDataforSpiral(); + void setDataforTriangle(); + void setDataforRectangle(); + void drawSpiral(); + void drawTriangle(); + void drawRectangle(); + void updateSpiral(); + void updateTriangle(); + void updateRectangle(); + + void keyPressed(int key); + void keyReleased(int key); + + ofTrueTypeFont myfont; + ofxJSONElement json; + ofxCsv csv; + ofxCsv csvRecorder; + vector Countries; + vector Couns; + vector Colors; + + float x; + float y; + float space; + float margine; + float count; + int frameCount; + + + + //for Spiral + float theta; + float radian; + + //for Triangle + float baseline; + float height; + bool baseFlag; + + //for Rectangle + bool xPlusFlag; + bool xMinFlag; + bool yPlusFlag; + bool yMinFlag; + int xCheck; + int yCheck; + float xStand; + float preXStand; + float yStand; + float preYStand; + + ofImage grapImg; + bool bSnapshot; + int snapCounter; + + + +};