diff --git a/CHANGES b/CHANGES index fbe685a87..2b0f46be2 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,48 @@ CHANGELOG ---------------------------------------------------------------------- + + +2.0 (2010-11-21) + +FEATURES: + - Add support for static Blender (*.blend) scenes + - Add support for Q3BSP scenes + - Add a windows-based OpenGL sample featuring texturing & basic materials + - Add an experimental progress feedback interface. + - Vastly improved performance (up to 500%, depending on mesh size and + spatial structure) in some expensive postprocessing steps + - AssimpView now uses a reworked layout which leaves more space + to the scene hierarchy window + + - Add C# bindings ('Assimp.NET') + +FIXES: + - Many Collada bugfixes, improve faul tolerance + - Fix possible crashes in the Obj loader + - Improve the Ogre XML loader + - OpenGL-sample now works with MinGW + - Fix Importer::FindLoader failing on uppercase file extensions + - Fix flawed path handling when locating external files + - Limit the maximum number of vertices, faces, face indices and + weights that Assimp is able to handle. This is to avoid + crashes due to overflowing counters. + + - Updated XCode project files + - Further CMAKE build improvements + + +API CHANGES: + - Add data structures for vertex-based animations (These are not + currently used, however ...) + - Some Assimp::Importer methods are const now. + + + + + + + 1.1 (2010-04-17) This is the list of relevant changes from the 1.0 (r412) release to 1.1 (r700). diff --git a/code/AssimpPCH.cpp b/code/AssimpPCH.cpp index 3b8232c65..a4e214da3 100644 --- a/code/AssimpPCH.cpp +++ b/code/AssimpPCH.cpp @@ -11,9 +11,9 @@ static const char* LEGAL_INFORMATION = "Open Asset Import Library (Assimp).\n" "A free C/C++ library to import various 3D file formats into applications\n\n" -"(c) ASSIMP Development Team, 2008-2010\n" -"License: 3-clause BSD license\n" -"Website: http://assimp.sourceforge.net\n" +"(c) 2008-2010, ASSIMP Development Team\n" +"License under the terms and conditions of the 3-clause BSD license\n" +"http://assimp.sourceforge.net\n" ; // ------------------------------------------------------------------------------------------------ @@ -25,13 +25,13 @@ ASSIMP_API const char* aiGetLegalString () { // ------------------------------------------------------------------------------------------------ // Get Assimp minor version ASSIMP_API unsigned int aiGetVersionMinor () { - return 1; + return 0; } // ------------------------------------------------------------------------------------------------ // Get Assimp major version ASSIMP_API unsigned int aiGetVersionMajor () { - return 1; + return 2; } // ------------------------------------------------------------------------------------------------ diff --git a/code/BlenderLoader.cpp b/code/BlenderLoader.cpp index f0097ef73..4ab5ba68a 100644 --- a/code/BlenderLoader.cpp +++ b/code/BlenderLoader.cpp @@ -68,9 +68,10 @@ using namespace Assimp; using namespace Assimp::Blender; using namespace Assimp::Formatter; + static const aiLoaderDesc blenderDesc = { "Blender 3D Importer \nhttp://www.blender3d.org", - "Alexander Gessler ", + "Assimp Team", "", "", aiLoaderFlags_SupportBinaryFlavour | aiLoaderFlags_Experimental, @@ -80,6 +81,7 @@ static const aiLoaderDesc blenderDesc = { 50 }; + // ------------------------------------------------------------------------------------------------ // Constructor to be privately used by Importer BlenderImporter::BlenderImporter() diff --git a/include/aiMesh.h b/include/aiMesh.h index 7c6f0879e..58b4ffbce 100644 --- a/include/aiMesh.h +++ b/include/aiMesh.h @@ -323,8 +323,9 @@ enum aiPrimitiveType ((n) > 3 ? aiPrimitiveType_POLYGON : (aiPrimitiveType)(1u << ((n)-1))) + // --------------------------------------------------------------------------- -/** @brief An AnimMesh is an attachment to an #aiMesh stores per-vertex +/** @brief NOT CURRENTLY IN USE. An AnimMesh is an attachment to an #aiMesh stores per-vertex * animations for a particular frame. * * You may think of an #aiAnimMesh as a `patch` for the host mesh, which @@ -436,6 +437,7 @@ struct aiAnimMesh #endif }; + // --------------------------------------------------------------------------- /** @brief A mesh represents a geometry or model with a single material. * @@ -589,14 +591,16 @@ struct aiMesh **/ C_STRUCT aiString mName; - /** The number of attachment meshes */ + + /** NOT CURRENTLY IN USE. The number of attachment meshes */ unsigned int mNumAnimMeshes; - /** Attachment meshes for this mesh, for vertex-based animation. + /** NOT CURRENTLY IN USE. Attachment meshes for this mesh, for vertex-based animation. * Attachment meshes carry replacement data for some of the * mesh'es vertex components (usually positions, normals). */ C_STRUCT aiAnimMesh** mAnimMeshes; + #ifdef __cplusplus //! Default constructor. Initializes all members to 0 @@ -604,12 +608,15 @@ struct aiMesh { mNumVertices = 0; mNumFaces = 0; + mNumAnimMeshes = 0; + mPrimitiveTypes = 0; mVertices = NULL; mFaces = NULL; mNormals = NULL; mTangents = NULL; mBitangents = NULL; mAnimMeshes = NULL; + for( unsigned int a = 0; a < AI_MAX_NUMBER_OF_TEXTURECOORDS; a++) { mNumUVComponents[a] = 0; @@ -642,11 +649,12 @@ struct aiMesh } delete [] mBones; } + if (mNumAnimMeshes && mAnimMeshes) { for( unsigned int a = 0; a < mNumAnimMeshes; a++) { delete mAnimMeshes[a]; } - delete [] mBones; + delete [] mAnimMeshes; } delete [] mFaces; diff --git a/samples/README b/samples/README index 3eab594ab..d86138c1d 100644 --- a/samples/README +++ b/samples/README @@ -51,3 +51,9 @@ SimpleTexturedOpenGL See http://sourceforge.net/projects/assimp/forums/forum/817654/topic/3736373 +SimpleAssimpViewX + + A Mac OSX-based viewer app. This sample was kindly provided by drparallax. + See http://sourceforge.net/projects/assimp/forums/forum/817654/topic/3917829 + + diff --git a/samples/SimpleAssimpViewX/English.lproj/Credits.rtf b/samples/SimpleAssimpViewX/English.lproj/Credits.rtf new file mode 100644 index 000000000..46576ef21 --- /dev/null +++ b/samples/SimpleAssimpViewX/English.lproj/Credits.rtf @@ -0,0 +1,29 @@ +{\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;} +{\colortbl;\red255\green255\blue255;} +\paperw9840\paperh8400 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural + +\f0\b\fs24 \cf0 Engineering: +\b0 \ + Some people\ +\ + +\b Human Interface Design: +\b0 \ + Some other people\ +\ + +\b Testing: +\b0 \ + Hopefully not nobody\ +\ + +\b Documentation: +\b0 \ + Whoever\ +\ + +\b With special thanks to: +\b0 \ + Mom\ +} diff --git a/samples/SimpleAssimpViewX/English.lproj/InfoPlist.strings b/samples/SimpleAssimpViewX/English.lproj/InfoPlist.strings new file mode 100644 index 000000000..74d318740 Binary files /dev/null and b/samples/SimpleAssimpViewX/English.lproj/InfoPlist.strings differ diff --git a/samples/SimpleAssimpViewX/English.lproj/MainMenu.xib b/samples/SimpleAssimpViewX/English.lproj/MainMenu.xib new file mode 100644 index 000000000..9138d6cf0 --- /dev/null +++ b/samples/SimpleAssimpViewX/English.lproj/MainMenu.xib @@ -0,0 +1,3199 @@ + + + + 1060 + 10F569 + 788 + 1038.29 + 461.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 788 + + + YES + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + YES + + + YES + + + + YES + + + NSApplication + + + + FirstResponder + + + NSApplication + + + MainMenu + + YES + + + SimpleAssimpViewX + + 1048576 + 2147483647 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + submenuAction: + + SimpleAssimpViewX + + YES + + + About SimpleAssimpViewX + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Preferences… + , + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Services + + 1048576 + 2147483647 + + + submenuAction: + + + Services + + + YES + + _NSServicesMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Hide SimpleAssimpViewX + h + 1048576 + 2147483647 + + + + + + Hide Others + h + 1572864 + 2147483647 + + + + + + Show All + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Quit SimpleAssimpViewX + q + 1048576 + 2147483647 + + + + + _NSAppleMenu + + + + + File + + 1048576 + 2147483647 + + + submenuAction: + + + File + + + YES + + + New + n + 1048576 + 2147483647 + + + + + + Open… + o + 1048576 + 2147483647 + + + + + + Open Recent + + 1048576 + 2147483647 + + + submenuAction: + + + Open Recent + + + YES + + + Clear Menu + + 1048576 + 2147483647 + + + + + _NSRecentDocumentsMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Close + w + 1048576 + 2147483647 + + + + + + Save + s + 1048576 + 2147483647 + + + + + + Save As… + S + 1048576 + 2147483647 + + + + + + Revert to Saved + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Page Setup… + P + 1048576 + 2147483647 + + + + + + Print… + p + 1048576 + 2147483647 + + + + + + + + + Edit + + 2147483647 + + + submenuAction: + + Edit + + YES + + + Undo + z + 1048576 + 2147483647 + + + + + + Redo + Z + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Cut + x + 1048576 + 2147483647 + + + + + + Copy + c + 1048576 + 2147483647 + + + + + + Paste + v + 1048576 + 2147483647 + + + + + + Paste and Match Style + V + 1572864 + 2147483647 + + + + + + Delete + + 2147483647 + + + + + + Select All + a + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Find + + 2147483647 + + + submenuAction: + + Find + + YES + + + Find… + f + 1048576 + 2147483647 + + + 1 + + + + Find Next + g + 1048576 + 2147483647 + + + 2 + + + + Find Previous + G + 1048576 + 2147483647 + + + 3 + + + + Use Selection for Find + e + 1048576 + 2147483647 + + + 7 + + + + Jump to Selection + j + 1048576 + 2147483647 + + + + + + + + + Spelling and Grammar + + 2147483647 + + + submenuAction: + + Spelling + + YES + + + Show Spelling and Grammar + : + 1048576 + 2147483647 + + + + + + Check Document Now + ; + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Check Spelling While Typing + + 2147483647 + + + + + + Check Grammar With Spelling + + 2147483647 + + + + + + Correct Spelling Automatically + + 2147483647 + + + + + + + + + Substitutions + + 2147483647 + + + submenuAction: + + Substitutions + + YES + + + Show Substitutions + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Smart Copy/Paste + + 2147483647 + + + + + + Smart Quotes + + 2147483647 + + + + + + Smart Dashes + + 2147483647 + + + + + + Smart Links + + 2147483647 + + + + + + Text Replacement + + 2147483647 + + + + + + + + + Transformations + + 2147483647 + + + submenuAction: + + Transformations + + YES + + + Make Upper Case + + 2147483647 + + + + + + Make Lower Case + + 2147483647 + + + + + + Capitalize + + 2147483647 + + + + + + + + + Speech + + 2147483647 + + + submenuAction: + + Speech + + YES + + + Start Speaking + + 2147483647 + + + + + + Stop Speaking + + 2147483647 + + + + + + + + + + + + Format + + 2147483647 + + + submenuAction: + + Format + + YES + + + Font + + 2147483647 + + + submenuAction: + + Font + + YES + + + Show Fonts + t + 1048576 + 2147483647 + + + + + + Bold + b + 1048576 + 2147483647 + + + 2 + + + + Italic + i + 1048576 + 2147483647 + + + 1 + + + + Underline + u + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Bigger + + + 1048576 + 2147483647 + + + 3 + + + + Smaller + - + 1048576 + 2147483647 + + + 4 + + + + YES + YES + + + 2147483647 + + + + + + Kern + + 2147483647 + + + submenuAction: + + Kern + + YES + + + Use Default + + 2147483647 + + + + + + Use None + + 2147483647 + + + + + + Tighten + + 2147483647 + + + + + + Loosen + + 2147483647 + + + + + + + + + Ligature + + 2147483647 + + + submenuAction: + + Ligature + + YES + + + Use Default + + 2147483647 + + + + + + Use None + + 2147483647 + + + + + + Use All + + 2147483647 + + + + + + + + + Baseline + + 2147483647 + + + submenuAction: + + Baseline + + YES + + + Use Default + + 2147483647 + + + + + + Superscript + + 2147483647 + + + + + + Subscript + + 2147483647 + + + + + + Raise + + 2147483647 + + + + + + Lower + + 2147483647 + + + + + + + + + YES + YES + + + 2147483647 + + + + + + Show Colors + C + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Copy Style + c + 1572864 + 2147483647 + + + + + + Paste Style + v + 1572864 + 2147483647 + + + + + _NSFontMenu + + + + + Text + + 2147483647 + + + submenuAction: + + Text + + YES + + + Align Left + { + 1048576 + 2147483647 + + + + + + Center + | + 1048576 + 2147483647 + + + + + + Justify + + 2147483647 + + + + + + Align Right + } + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Show Ruler + + 2147483647 + + + + + + Copy Ruler + c + 1310720 + 2147483647 + + + + + + Paste Ruler + v + 1310720 + 2147483647 + + + + + + + + + + + + View + + 1048576 + 2147483647 + + + submenuAction: + + View + + YES + + + Show Toolbar + t + 1572864 + 2147483647 + + + + + + Customize Toolbar… + + 1048576 + 2147483647 + + + + + + + + + Window + + 1048576 + 2147483647 + + + submenuAction: + + Window + + YES + + + Minimize + m + 1048576 + 2147483647 + + + + + + Zoom + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Bring All to Front + + 1048576 + 2147483647 + + + + + _NSWindowsMenu + + + + + Help + + 2147483647 + + + submenuAction: + + Help + + YES + + + SimpleAssimpViewX Help + ? + 1048576 + 2147483647 + + + + + _NSHelpMenu + + + + _NSMainMenu + + + NSFontManager + + + + + YES + + + runPageLayout: + + + + 87 + + + + clearRecentDocuments: + + + + 127 + + + + terminate: + + + + 139 + + + + orderFrontStandardAboutPanel: + + + + 142 + + + + hideOtherApplications: + + + + 146 + + + + hide: + + + + 152 + + + + unhideAllApplications: + + + + 153 + + + + performClose: + + + + 193 + + + + newDocument: + + + + 194 + + + + openDocument: + + + + 195 + + + + saveDocument: + + + + 196 + + + + saveDocumentAs: + + + + 197 + + + + revertDocumentToSaved: + + + + 198 + + + + printDocument: + + + + 200 + + + + performZoom: + + + + 245 + + + + performMiniaturize: + + + + 246 + + + + arrangeInFront: + + + + 247 + + + + runToolbarCustomizationPalette: + + + + 336 + + + + toggleToolbarShown: + + + + 337 + + + + addFontTrait: + + + + 386 + + + + addFontTrait: + + + + 387 + + + + modifyFont: + + + + 388 + + + + orderFrontFontPanel: + + + + 389 + + + + modifyFont: + + + + 390 + + + + raiseBaseline: + + + + 391 + + + + lowerBaseline: + + + + 392 + + + + copyFont: + + + + 393 + + + + subscript: + + + + 394 + + + + superscript: + + + + 395 + + + + tightenKerning: + + + + 396 + + + + underline: + + + + 397 + + + + orderFrontColorPanel: + + + + 398 + + + + useAllLigatures: + + + + 399 + + + + loosenKerning: + + + + 400 + + + + pasteFont: + + + + 401 + + + + unscript: + + + + 402 + + + + useStandardKerning: + + + + 403 + + + + useStandardLigatures: + + + + 404 + + + + turnOffLigatures: + + + + 405 + + + + turnOffKerning: + + + + 406 + + + + alignLeft: + + + + 407 + + + + alignJustified: + + + + 408 + + + + copyRuler: + + + + 409 + + + + alignCenter: + + + + 410 + + + + toggleRuler: + + + + 411 + + + + alignRight: + + + + 412 + + + + pasteRuler: + + + + 413 + + + + capitalizeWord: + + + + 482 + + + + cut: + + + + 483 + + + + paste: + + + + 484 + + + + toggleSmartInsertDelete: + + + + 485 + + + + toggleAutomaticQuoteSubstitution: + + + + 486 + + + + redo: + + + + 487 + + + + toggleAutomaticDashSubstitution: + + + + 488 + + + + toggleContinuousSpellChecking: + + + + 489 + + + + undo: + + + + 490 + + + + toggleGrammarChecking: + + + + 491 + + + + startSpeaking: + + + + 492 + + + + showGuessPanel: + + + + 493 + + + + checkSpelling: + + + + 494 + + + + pasteAsPlainText: + + + + 495 + + + + copy: + + + + 496 + + + + delete: + + + + 497 + + + + lowercaseWord: + + + + 498 + + + + selectAll: + + + + 499 + + + + stopSpeaking: + + + + 500 + + + + orderFrontSubstitutionsPanel: + + + + 501 + + + + toggleAutomaticTextReplacement: + + + + 502 + + + + toggleAutomaticLinkDetection: + + + + 503 + + + + toggleAutomaticSpellingCorrection: + + + + 504 + + + + uppercaseWord: + + + + 505 + + + + performFindPanelAction: + + + + 506 + + + + performFindPanelAction: + + + + 507 + + + + performFindPanelAction: + + + + 508 + + + + centerSelectionInVisibleArea: + + + + 509 + + + + performFindPanelAction: + + + + 510 + + + + showHelp: + + + + 514 + + + + + YES + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + 29 + + + YES + + + + + + + + + + MainMenu + + + 56 + + + YES + + + + + + 57 + + + YES + + + + + + + + + + + + + + + + 58 + + + + + 129 + + + + + 131 + + + YES + + + + + + 130 + + + + + 134 + + + + + 136 + + + + + 143 + + + + + 144 + + + + + 145 + + + + + 149 + + + + + 150 + + + + + 202 + + + + + 83 + + + YES + + + + + + 81 + + + YES + + + + + + + + + + + + + + + + 72 + + + + + 73 + + + + + 74 + + + + + 75 + + + + + 77 + + + + + 78 + + + + + 79 + + + + + 80 + + + + + 82 + + + + + 112 + + + + + 124 + + + YES + + + + + + 125 + + + YES + + + + + + 126 + + + + + 239 + + + YES + + + + + + 240 + + + YES + + + + + + + + + 241 + + + + + 242 + + + + + 243 + + + + + 244 + + + + + 330 + + + YES + + + + + + 331 + + + YES + + + + + + + 334 + + + + + 335 + + + + + -3 + + + Application + + + 340 + + + YES + + + + + + 341 + + + YES + + + + + + + 342 + + + YES + + + + + + 343 + + + YES + + + + + + 344 + + + YES + + + + + + + + + + + + + 345 + + + + + 346 + + + + + 347 + + + + + 348 + + + + + 349 + + + + + 350 + + + + + 351 + + + + + 352 + + + + + 353 + + + YES + + + + + + + + + + + + + + + + + + + + + 354 + + + + + 355 + + + + + 356 + + + + + 357 + + + + + 358 + + + + + 359 + + + + + 360 + + + + + 361 + + + + + 362 + + + YES + + + + + + 363 + + + YES + + + + + + 364 + + + YES + + + + + + 365 + + + + + 366 + + + + + 367 + + + + + 368 + + + + + 369 + + + + + 370 + + + YES + + + + + + + + + + 371 + + + + + 372 + + + + + 373 + + + + + 374 + + + + + 375 + + + + + 376 + + + YES + + + + + + + + 377 + + + + + 378 + + + + + 379 + + + + + 380 + + + YES + + + + + + + + + 381 + + + + + 382 + + + + + 383 + + + + + 384 + + + + + 385 + + + + + 437 + + + YES + + + + + + 438 + + + YES + + + + + + + + + + + + + + + + + + + + 439 + + + + + 440 + + + + + 441 + + + + + 442 + + + + + 443 + + + + + 444 + + + + + 445 + + + + + 446 + + + + + 447 + + + + + 448 + + + + + 449 + + + YES + + + + + + 450 + + + YES + + + + + + 451 + + + YES + + + + + + 452 + + + YES + + + + + + 453 + + + YES + + + + + + 454 + + + YES + + + + + + + 455 + + + + + 456 + + + + + 457 + + + YES + + + + + + + + 458 + + + + + 459 + + + + + 460 + + + + + 461 + + + YES + + + + + + + + + + + + 462 + + + + + 463 + + + + + 464 + + + + + 465 + + + + + 466 + + + + + 467 + + + + + 468 + + + + + 469 + + + YES + + + + + + + + + + + 470 + + + + + 471 + + + + + 472 + + + + + 473 + + + + + 474 + + + + + 475 + + + + + 476 + + + YES + + + + + + + + + + 477 + + + + + 478 + + + + + 479 + + + + + 480 + + + + + 481 + + + + + 511 + + + YES + + + + + + 512 + + + YES + + + + + + 513 + + + + + + + YES + + YES + -3.IBPluginDependency + 112.IBPluginDependency + 112.ImportedFromIB2 + 124.IBPluginDependency + 124.ImportedFromIB2 + 125.IBPluginDependency + 125.ImportedFromIB2 + 126.IBPluginDependency + 126.ImportedFromIB2 + 129.IBPluginDependency + 129.ImportedFromIB2 + 130.IBEditorWindowLastContentRect + 130.IBPluginDependency + 130.ImportedFromIB2 + 131.IBPluginDependency + 131.ImportedFromIB2 + 134.IBPluginDependency + 134.ImportedFromIB2 + 136.IBPluginDependency + 136.ImportedFromIB2 + 143.IBPluginDependency + 143.ImportedFromIB2 + 144.IBPluginDependency + 144.ImportedFromIB2 + 145.IBPluginDependency + 145.ImportedFromIB2 + 149.IBPluginDependency + 149.ImportedFromIB2 + 150.IBPluginDependency + 150.ImportedFromIB2 + 202.IBPluginDependency + 202.ImportedFromIB2 + 239.IBPluginDependency + 239.ImportedFromIB2 + 240.IBEditorWindowLastContentRect + 240.IBPluginDependency + 240.ImportedFromIB2 + 241.IBPluginDependency + 241.ImportedFromIB2 + 242.IBPluginDependency + 242.ImportedFromIB2 + 243.IBPluginDependency + 243.ImportedFromIB2 + 244.IBPluginDependency + 244.ImportedFromIB2 + 29.IBEditorWindowLastContentRect + 29.IBPluginDependency + 29.ImportedFromIB2 + 330.IBPluginDependency + 330.ImportedFromIB2 + 331.IBEditorWindowLastContentRect + 331.IBPluginDependency + 331.ImportedFromIB2 + 334.IBPluginDependency + 334.ImportedFromIB2 + 335.IBPluginDependency + 335.ImportedFromIB2 + 340.IBPluginDependency + 341.IBPluginDependency + 342.IBPluginDependency + 343.IBPluginDependency + 344.IBPluginDependency + 345.IBPluginDependency + 346.IBPluginDependency + 347.IBPluginDependency + 348.IBPluginDependency + 349.IBPluginDependency + 350.IBPluginDependency + 351.IBPluginDependency + 352.IBPluginDependency + 353.IBPluginDependency + 354.IBPluginDependency + 355.IBPluginDependency + 356.IBPluginDependency + 357.IBPluginDependency + 358.IBPluginDependency + 359.IBPluginDependency + 360.IBPluginDependency + 361.IBPluginDependency + 362.IBPluginDependency + 363.IBPluginDependency + 364.IBPluginDependency + 365.IBPluginDependency + 366.IBPluginDependency + 367.IBPluginDependency + 368.IBPluginDependency + 369.IBPluginDependency + 370.IBPluginDependency + 371.IBPluginDependency + 372.IBPluginDependency + 373.IBPluginDependency + 374.IBPluginDependency + 375.IBPluginDependency + 376.IBPluginDependency + 377.IBPluginDependency + 378.IBPluginDependency + 379.IBPluginDependency + 380.IBPluginDependency + 381.IBPluginDependency + 382.IBPluginDependency + 383.IBPluginDependency + 384.IBPluginDependency + 437.IBPluginDependency + 438.IBPluginDependency + 439.IBPluginDependency + 440.IBPluginDependency + 441.IBPluginDependency + 442.IBPluginDependency + 443.IBPluginDependency + 444.IBPluginDependency + 445.IBPluginDependency + 446.IBPluginDependency + 447.IBPluginDependency + 448.IBPluginDependency + 449.IBPluginDependency + 450.IBPluginDependency + 451.IBPluginDependency + 452.IBPluginDependency + 453.IBPluginDependency + 454.IBPluginDependency + 455.IBPluginDependency + 456.IBPluginDependency + 457.IBPluginDependency + 458.IBPluginDependency + 459.IBPluginDependency + 460.IBPluginDependency + 461.IBPluginDependency + 462.IBPluginDependency + 463.IBPluginDependency + 464.IBPluginDependency + 465.IBPluginDependency + 466.IBPluginDependency + 467.IBPluginDependency + 468.IBPluginDependency + 469.IBPluginDependency + 470.IBPluginDependency + 471.IBPluginDependency + 472.IBPluginDependency + 473.IBPluginDependency + 474.IBPluginDependency + 475.IBPluginDependency + 476.IBPluginDependency + 477.IBPluginDependency + 478.IBPluginDependency + 479.IBPluginDependency + 480.IBPluginDependency + 481.IBPluginDependency + 511.IBPluginDependency + 512.IBEditorWindowLastContentRect + 512.IBPluginDependency + 513.IBPluginDependency + 56.IBPluginDependency + 56.ImportedFromIB2 + 57.IBEditorWindowLastContentRect + 57.IBPluginDependency + 57.ImportedFromIB2 + 58.IBPluginDependency + 58.ImportedFromIB2 + 72.IBPluginDependency + 72.ImportedFromIB2 + 73.IBPluginDependency + 73.ImportedFromIB2 + 74.IBPluginDependency + 74.ImportedFromIB2 + 75.IBPluginDependency + 75.ImportedFromIB2 + 77.IBPluginDependency + 77.ImportedFromIB2 + 78.IBPluginDependency + 78.ImportedFromIB2 + 79.IBPluginDependency + 79.ImportedFromIB2 + 80.IBPluginDependency + 80.ImportedFromIB2 + 81.IBEditorWindowLastContentRect + 81.IBPluginDependency + 81.ImportedFromIB2 + 82.IBPluginDependency + 82.ImportedFromIB2 + 83.IBPluginDependency + 83.ImportedFromIB2 + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{320, 909}, {64, 6}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{411, 902}, {197, 73}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{128, 752}, {517, 20}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{400, 932}, {234, 43}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{584, 729}, {250, 23}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + {{75, 792}, {245, 183}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{209, 772}, {199, 203}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + YES + + + YES + + + + + YES + + + YES + + + + 514 + + + + YES + + FirstResponder + NSObject + + IBUserSource + + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + + 3 + + YES + + YES + NSMenuCheckmark + NSMenuMixedState + + + YES + {9, 8} + {7, 2} + + + + diff --git a/samples/SimpleAssimpViewX/English.lproj/MyDocument.xib b/samples/SimpleAssimpViewX/English.lproj/MyDocument.xib new file mode 100644 index 000000000..f78c99854 --- /dev/null +++ b/samples/SimpleAssimpViewX/English.lproj/MyDocument.xib @@ -0,0 +1,923 @@ + + + + 1060 + 10F569 + 788 + 1038.29 + 461.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 788 + + + YES + + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + YES + + + YES + + + + YES + + MyDocument + + + FirstResponder + + + NSApplication + + + 15 + 2 + {{78, 334}, {466, 466}} + 1081606144 + Window + NSWindow + View + {1.79769e+308, 1.79769e+308} + {131.131, 86} + + + 256 + + YES + + + 256 + {{98, 222}, {269, 22}} + + YES + + 67239424 + 138412032 + Your document contents here + + LucidaGrande + 18 + 16 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + + + + 274 + {466, 466} + + NSView + + + {466, 466} + + + {{0, 0}, {1280, 832}} + {131.131, 108} + {1.79769e+308, 1.79769e+308} + + + + + YES + + + delegate + + + + 17 + + + + window + + + + 18 + + + + _view + + + + 100022 + + + + + YES + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + 5 + + + YES + + + + Window + + + 6 + + + YES + + + + + + + 20 + + + YES + + + + + + 100020 + + + + + -3 + + + Application + + + 100021 + + + + + + + YES + + YES + -3.IBPluginDependency + 100020.IBPluginDependency + 100021.IBPluginDependency + 20.IBPluginDependency + 20.ImportedFromIB2 + 5.IBEditorWindowLastContentRect + 5.IBPluginDependency + 5.IBWindowTemplateEditedContentRect + 5.ImportedFromIB2 + 5.windowTemplate.hasMinSize + 5.windowTemplate.minSize + 6.IBPluginDependency + 6.ImportedFromIB2 + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + {{424, 525}, {466, 466}} + com.apple.InterfaceBuilder.CocoaPlugin + {{424, 525}, {466, 466}} + + + {131.131, 86} + com.apple.InterfaceBuilder.CocoaPlugin + + + + + YES + + + YES + + + + + YES + + + YES + + + + 100022 + + + + YES + + FirstResponder + NSObject + + IBUserSource + + + + + MyDocument + NSPersistentDocument + + _view + NSView + + + _view + + _view + NSView + + + + IBProjectSource + MyDocument.h + + + + MyDocument + NSPersistentDocument + + IBUserSource + + + + + NSPersistentDocument + NSDocument + + IBUserSource + + + + + + YES + + NSActionCell + NSCell + + IBFrameworkSource + AppKit.framework/Headers/NSActionCell.h + + + + NSApplication + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSApplication.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSApplicationScripting.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSColorPanel.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSHelpManager.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSPageLayout.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSUserInterfaceItemSearching.h + + + + NSCell + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSCell.h + + + + NSControl + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSControl.h + + + + NSDocument + NSObject + + YES + + YES + printDocument: + revertDocumentToSaved: + runPageLayout: + saveDocument: + saveDocumentAs: + saveDocumentTo: + + + YES + id + id + id + id + id + id + + + + YES + + YES + printDocument: + revertDocumentToSaved: + runPageLayout: + saveDocument: + saveDocumentAs: + saveDocumentTo: + + + YES + + printDocument: + id + + + revertDocumentToSaved: + id + + + runPageLayout: + id + + + saveDocument: + id + + + saveDocumentAs: + id + + + saveDocumentTo: + id + + + + + IBFrameworkSource + AppKit.framework/Headers/NSDocument.h + + + + NSDocument + + IBFrameworkSource + AppKit.framework/Headers/NSDocumentScripting.h + + + + NSFormatter + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFormatter.h + + + + NSMenu + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSMenu.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSAccessibility.h + + + + NSObject + + + + NSObject + + + + NSObject + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSDictionaryController.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSDragging.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSFontManager.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSFontPanel.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSKeyValueBinding.h + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSNibLoading.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSOutlineView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSPasteboard.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSSavePanel.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSTableView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSToolbarItem.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSView.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSClassDescription.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSError.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFileManager.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueObserving.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyedArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObject.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObjectScripting.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSPortCoder.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSRunLoop.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptClassDescription.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptObjectSpecifiers.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptWhoseTests.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSThread.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURL.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLConnection.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLDownload.h + + + + NSObject + + IBFrameworkSource + ImageKit.framework/Headers/IKImageBrowserView.h + + + + NSObject + + IBFrameworkSource + ImageKit.framework/Headers/IKSaveOptions.h + + + + NSObject + + IBFrameworkSource + ImageKit.framework/Headers/ImageKitDeprecated.h + + + + NSObject + + IBFrameworkSource + PDFKit.framework/Headers/PDFDocument.h + + + + NSObject + + IBFrameworkSource + PDFKit.framework/Headers/PDFView.h + + + + NSObject + + IBFrameworkSource + QTKit.framework/Headers/QTCaptureDecompressedAudioOutput.h + + + + NSObject + + IBFrameworkSource + QTKit.framework/Headers/QTCaptureDecompressedVideoOutput.h + + + + NSObject + + IBFrameworkSource + QTKit.framework/Headers/QTCaptureFileOutput.h + + + + NSObject + + IBFrameworkSource + QTKit.framework/Headers/QTCaptureVideoPreviewOutput.h + + + + NSObject + + IBFrameworkSource + QTKit.framework/Headers/QTCaptureView.h + + + + NSObject + + IBFrameworkSource + QTKit.framework/Headers/QTMovie.h + + + + NSObject + + IBFrameworkSource + QTKit.framework/Headers/QTMovieView.h + + + + NSObject + + IBFrameworkSource + QuartzComposer.framework/Headers/QCCompositionParameterView.h + + + + NSObject + + IBFrameworkSource + QuartzComposer.framework/Headers/QCCompositionPickerView.h + + + + NSObject + + IBFrameworkSource + QuartzFilters.framework/Headers/QuartzFilterManager.h + + + + NSObject + + IBFrameworkSource + QuickLookUI.framework/Headers/QLPreviewPanel.h + + + + NSPersistentDocument + NSDocument + + IBFrameworkSource + AppKit.framework/Headers/NSPersistentDocument.h + + + + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSInterfaceStyle.h + + + + NSResponder + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSResponder.h + + + + NSTextField + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSTextField.h + + + + NSTextFieldCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSTextFieldCell.h + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSClipView.h + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSMenuItem.h + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSRulerView.h + + + + NSView + NSResponder + + + + NSWindow + + IBFrameworkSource + AppKit.framework/Headers/NSDrawer.h + + + + NSWindow + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSWindow.h + + + + NSWindow + + IBFrameworkSource + AppKit.framework/Headers/NSWindowScripting.h + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + ../SimpleAssimpViewX.xcodeproj + 3 + + diff --git a/samples/SimpleAssimpViewX/ModelLoaderHelperClasses.h b/samples/SimpleAssimpViewX/ModelLoaderHelperClasses.h new file mode 100644 index 000000000..6e6729bc7 --- /dev/null +++ b/samples/SimpleAssimpViewX/ModelLoaderHelperClasses.h @@ -0,0 +1,98 @@ +// +// v002MeshHelper.h +// v002 Model Importer +// +// Created by vade on 9/26/10. +// Copyright 2010 __MyCompanyName__. All rights reserved. +// + +#import +#import +#import "aiColor4D.h" +#import "aiVector3D.h" +#import "aiVector2D.h" +#import "aiMatrix4x4.h" + +/* workflow: + + 1) create a new scene wrapper + 2) populate an array of of meshHelpers for each mesh in the original scene + 3) (eventually) create an animator instance + 4) scale the asset (needed?) + 5) create the asset data (GL resources, textures etc) + 5a) for each mesh create a material instance + 5b) create a static vertex buffer + 5c) create index buffer + 5d) populate the index buffer + 5e) (eventually) gather weights +*/ + +#define BUFFER_OFFSET(i) ((char *)NULL + (i)) + +struct Vertex +{ + aiVector3D vPosition; + aiVector3D vNormal; + + aiColor4D dColorDiffuse; + aiVector3D vTangent; + aiVector3D vBitangent; + aiVector3D vTextureUV; + aiVector3D vTextureUV2; + unsigned char mBoneIndices[4]; + unsigned char mBoneWeights[4]; // last Weight not used, calculated inside the vertex shader +}; + + +// Helper Class to store GPU related resources from a given aiMesh +// Modeled after AssimpView asset helper +@interface MeshHelper : NSObject +{ + // Display list ID, this one shots *all drawing* of the mesh. Only ever use this to draw. Booya. + GLuint displayList; + + // VAO that encapsulates all VBO drawing state + GLuint vao; + + // VBOs + GLuint vertexBuffer; + GLuint indexBuffer; + GLuint normalBuffer; + GLuint numIndices; + + // texture + GLuint textureID; + + // Material + aiColor4D diffuseColor; + aiColor4D specularColor; + aiColor4D ambientColor; + aiColor4D emissiveColor; + + GLfloat opacity; + GLfloat shininess; + GLfloat specularStrength; + + BOOL twoSided; +} + +@property (readwrite, assign) GLuint vao; +@property (readwrite, assign) GLuint displayList; + +@property (readwrite, assign) GLuint vertexBuffer; +@property (readwrite, assign) GLuint indexBuffer; +@property (readwrite, assign) GLuint normalBuffer; +@property (readwrite, assign) GLuint numIndices; + +@property (readwrite, assign) GLuint textureID; + +@property (readwrite, assign) aiColor4D* diffuseColor; +@property (readwrite, assign) aiColor4D* specularColor; +@property (readwrite, assign) aiColor4D* ambientColor; +@property (readwrite, assign) aiColor4D* emissiveColor; + +@property (readwrite, assign) GLfloat opacity; +@property (readwrite, assign) GLfloat shininess; +@property (readwrite, assign) GLfloat specularStrength; +@property (readwrite, assign) BOOL twoSided; +@end diff --git a/samples/SimpleAssimpViewX/ModelLoaderHelperClasses.mm b/samples/SimpleAssimpViewX/ModelLoaderHelperClasses.mm new file mode 100644 index 000000000..9dab7f87f --- /dev/null +++ b/samples/SimpleAssimpViewX/ModelLoaderHelperClasses.mm @@ -0,0 +1,99 @@ +// +// v002MeshHelper.m +// v002 Model Importer +// +// Created by vade on 9/26/10. +// Copyright 2010 __MyCompanyName__. All rights reserved. +// + +#import "ModelLoaderHelperClasses.h" + + +@implementation MeshHelper + +@synthesize vao; +@synthesize displayList; + +@synthesize vertexBuffer; +@synthesize indexBuffer; +@synthesize normalBuffer; +@synthesize numIndices; + +@synthesize textureID; + +@dynamic diffuseColor; +@dynamic specularColor; +@dynamic ambientColor; +@dynamic emissiveColor; + +@synthesize opacity; +@synthesize shininess; +@synthesize specularStrength; +@synthesize twoSided; + +- (id) init +{ + if((self = [super init])) + { + diffuseColor = aiColor4D(0.8, 0.8, 0.8, 1.0); + specularColor = aiColor4D(0.0f, 0.0f, 0.0f, 1.0f); + ambientColor = aiColor4D(0.2f, 0.2f, 0.2f, 1.0f); + emissiveColor = aiColor4D(0.0f, 0.0f, 0.0f, 1.0f); + } + return self; +} + +- (void) setDiffuseColor:(aiColor4D*) color; +{ + diffuseColor.r = color->r; + diffuseColor.g = color->g; + diffuseColor.b = color->b; + diffuseColor.a = color->a; +} + +- (aiColor4D*) diffuseColor +{ + return &diffuseColor; +} + +- (void) setSpecularColor:(aiColor4D*) color; +{ + specularColor.r = color->r; + specularColor.g = color->g; + specularColor.b = color->b; + specularColor.a = color->a; +} + +- (aiColor4D*) specularColor +{ + return &specularColor; +} + +- (void) setAmbientColor:(aiColor4D*) color; +{ + ambientColor.r = color->r; + ambientColor.g = color->g; + ambientColor.b = color->b; + ambientColor.a = color->a; +} + +- (aiColor4D*) ambientColor +{ + return &ambientColor; +} + +- (void) setEmissiveColor:(aiColor4D*) color; +{ + emissiveColor.r = color->r; + emissiveColor.g = color->g; + emissiveColor.b = color->b; + emissiveColor.a = color->a; +} + +- (aiColor4D*) emissiveColor +{ + return &emissiveColor; +} + + +@end diff --git a/samples/SimpleAssimpViewX/MyDocument.h b/samples/SimpleAssimpViewX/MyDocument.h new file mode 100644 index 000000000..11e836321 --- /dev/null +++ b/samples/SimpleAssimpViewX/MyDocument.h @@ -0,0 +1,59 @@ +// +// MyDocument.h +// DisplayLinkAsyncMoviePlayer +// +// Created by vade on 10/26/10. +// Copyright __MyCompanyName__ 2010 . All rights reserved. +// + + +#import "ModelLoaderHelperClasses.h" + +// assimp include files. These three are usually needed. +#import "assimp.h" +#import "aiPostProcess.h" +#import "aiScene.h" + +#import +#import +#import + + +@interface MyDocument : NSPersistentDocument +{ + CVDisplayLinkRef _displayLink; + NSOpenGLContext* _glContext; + NSOpenGLPixelFormat* _glPixelFormat; + + NSView* _view; + + // Assimp Stuff + aiScene* _scene; + struct aiVector3D scene_min, scene_max, scene_center; + double normalizedScale; + + // Our array of textures. + GLuint *textureIds; + + // only used if we use + NSMutableArray* modelMeshes; + BOOL builtBuffers; + + NSMutableDictionary* textureDictionary; // Array of Dicionaries that map image filenames to textureIds +} + +@property (retain) IBOutlet NSView* _view; + + +- (CVReturn)displayLinkRenderCallback:(const CVTimeStamp *)timeStamp; +- (void) render; + +- (void) drawMeshesInContext:(CGLContextObj)cgl_ctx; +- (void) createGLResourcesInContext:(CGLContextObj)cgl_ctx; +- (void) deleteGLResourcesInContext:(CGLContextObj)cgl_ctx; + +- (void) loadTexturesInContext:(CGLContextObj)cgl_ctx withModelPath:(NSString*) modelPath; +- (void) getBoundingBoxWithMinVector:(struct aiVector3D*) min maxVectr:(struct aiVector3D*) max; +- (void) getBoundingBoxForNode:(const struct aiNode*)nd minVector:(struct aiVector3D*) min maxVector:(struct aiVector3D*) max matrix:(struct aiMatrix4x4*) trafo; + +@end diff --git a/samples/SimpleAssimpViewX/MyDocument.mm b/samples/SimpleAssimpViewX/MyDocument.mm new file mode 100644 index 000000000..7ff025d07 --- /dev/null +++ b/samples/SimpleAssimpViewX/MyDocument.mm @@ -0,0 +1,804 @@ +// +// MyDocument.m +// DisplayLinkAsyncMoviePlayer +// +// Created by vade on 10/26/10. +// Copyright __MyCompanyName__ 2010 . All rights reserved. +// + +#import "aiConfig.h" +#import "MyDocument.h" +#import + +#pragma mark - +#pragma mark Helper Functions + +#define aisgl_min(x,y) (xx?y:x) + +static void color4_to_float4(const struct aiColor4D *c, float f[4]) +{ + f[0] = c->r; + f[1] = c->g; + f[2] = c->b; + f[3] = c->a; +} + +static void set_float4(float f[4], float a, float b, float c, float d) +{ + f[0] = a; + f[1] = b; + f[2] = c; + f[3] = d; +} + +#pragma mark - +#pragma mark CVDisplayLink Callback +static CVReturn MyDisplayLinkCallback(CVDisplayLinkRef displayLink,const CVTimeStamp *inNow,const CVTimeStamp *inOutputTime,CVOptionFlags flagsIn,CVOptionFlags *flagsOut,void *displayLinkContext) +{ + CVReturn error = [(MyDocument*) displayLinkContext displayLinkRenderCallback:inOutputTime]; + return error; +} + +#pragma mark - + +@implementation MyDocument +@synthesize _view; + +- (id)init +{ + self = [super init]; + if (self != nil) + { + // initialization code + } + return self; +} + +- (NSString *)windowNibName +{ + return @"MyDocument"; +} + +- (void)windowControllerDidLoadNib:(NSWindowController *)windowController +{ + [super windowControllerDidLoadNib:windowController]; + + NSOpenGLPixelFormatAttribute attributes[] = + { + NSOpenGLPFADoubleBuffer, + NSOpenGLPFAAccelerated, + NSOpenGLPFADepthSize, 24, + NSOpenGLPFAMultisample, + NSOpenGLPFASampleBuffers, 2, + (NSOpenGLPixelFormatAttribute) 0 + }; + + _glPixelFormat = [[NSOpenGLPixelFormat alloc] initWithAttributes:attributes]; + + if(!_glPixelFormat) + NSLog(@"Error creating PF"); + + _glContext = [[NSOpenGLContext alloc] initWithFormat:_glPixelFormat shareContext:nil]; + + const GLint one = 1; + + [_glContext setValues:&one forParameter:NSOpenGLCPSwapInterval]; + [_glContext setView:_view]; + + // Set up initial GL state. + CGLContextObj cgl_ctx = (CGLContextObj)[_glContext CGLContextObj]; + + glEnable(GL_MULTISAMPLE); + + glClearColor(0.3, 0.3, 0.3, 0.3); + + // enable color tracking + //glEnable(GL_COLOR_MATERIAL); + + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + + glEnable(GL_DEPTH_TEST); + glDepthFunc(GL_LEQUAL); + glDepthMask(GL_TRUE); + + glEnable(GL_NORMALIZE); + glEnable(GL_TEXTURE_2D); + + glShadeModel(GL_SMOOTH); + + glEnable(GL_LIGHTING); + + GLfloat global_ambient[] = { 0.5f, 0.5f, 0.5f, 1.0f }; + glLightModelfv(GL_LIGHT_MODEL_AMBIENT, global_ambient); + + GLfloat specular[] = {1.0f, 1.0f, 1.0f, 1.0f}; + glLightfv(GL_LIGHT0, GL_SPECULAR, specular); + + GLfloat diffuse[] = {1.0f, 1.0f, 1.0f, 1.0f}; + glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse); + + GLfloat ambient[] = {0.2, 0.2f, 0.2f, 0.2f}; + glLightfv(GL_LIGHT0, GL_AMBIENT, ambient); + + GLfloat position[] = { 1.0f, 1.0f, 1.0f, 1.0f}; + glLightfv(GL_LIGHT0, GL_POSITION, position); + + glEnable(GL_LIGHT0); + + // This is the only client state that always has to be set. + glEnableClientState(GL_VERTEX_ARRAY); + + // end GL State setup. + + // Display Link setup. + CVReturn error = kCVReturnSuccess; + + error = CVDisplayLinkCreateWithActiveCGDisplays(&_displayLink); + if(error == kCVReturnError) + NSLog(@"Error Creating DisplayLink"); + + error = CVDisplayLinkSetOutputCallback(_displayLink,MyDisplayLinkCallback, self); + if(error == kCVReturnError) + NSLog(@"Error Setting DisplayLink Callback"); + + error = CVDisplayLinkStart(_displayLink); + if(error == kCVReturnError) + NSLog(@"Error Starting DisplayLink"); + + NSOpenPanel* openPanel = [NSOpenPanel openPanel]; + + [openPanel beginSheetModalForWindow:[_view window] completionHandler:^(NSInteger result) + { + if (result == NSOKButton) + { + [openPanel orderOut:self]; // close panel before we might present an error + + if([[NSFileManager defaultManager] fileExistsAtPath:[openPanel filename]]) + { + // Load our new path. + + // only ever give us triangles. + aiSetImportPropertyInteger(AI_CONFIG_PP_SBP_REMOVE, aiPrimitiveType_LINE | aiPrimitiveType_POINT ); + + NSUInteger aiPostProccesFlags; + + switch (2) + { + case 0: + aiPostProccesFlags = aiProcessPreset_TargetRealtime_Fast; + break; + case 1: + aiPostProccesFlags = aiProcessPreset_TargetRealtime_Quality; + break; + case 2: + aiPostProccesFlags = aiProcessPreset_TargetRealtime_MaxQuality; + break; + default: + aiPostProccesFlags = aiProcessPreset_TargetRealtime_MaxQuality; + break; + } + + // aiProcess_FlipUVs is needed for VAO / VBOs, not sure why. + _scene = (aiScene*) aiImportFile([[openPanel filename] cStringUsingEncoding:[NSString defaultCStringEncoding]], aiPostProccesFlags | aiProcess_Triangulate | aiProcess_FlipUVs | aiProcess_PreTransformVertices | 0 ); + + if (_scene) + { + textureDictionary = [[NSMutableDictionary alloc] initWithCapacity:5]; + + // Why do I need to cast this !? + CGLContextObj cgl_ctx = (CGLContextObj)[_glContext CGLContextObj]; + CGLLockContext(cgl_ctx); + + [self loadTexturesInContext:cgl_ctx withModelPath:[[openPanel filename] stringByStandardizingPath]]; + + //NSDictionary* userInfo = [NSDictionary dictionaryWithObjectsAndKeys:[NSValue valueWithPointer:cgl_ctx], @"context", [self.inputModelPath stringByStandardizingPath], @"path", nil ]; + //[self performSelectorInBackground:@selector(loadTexturesInBackground:) withObject:userInfo]; + + [self getBoundingBoxWithMinVector:&scene_min maxVectr:&scene_max]; + scene_center.x = (scene_min.x + scene_max.x) / 2.0f; + scene_center.y = (scene_min.y + scene_max.y) / 2.0f; + scene_center.z = (scene_min.z + scene_max.z) / 2.0f; + + // optional normalized scaling + normalizedScale = scene_max.x-scene_min.x; + normalizedScale = aisgl_max(scene_max.y - scene_min.y,normalizedScale); + normalizedScale = aisgl_max(scene_max.z - scene_min.z,normalizedScale); + normalizedScale = 1.f / normalizedScale; + + if(_scene->HasAnimations()) + NSLog(@"scene has animations"); + + [self createGLResourcesInContext:cgl_ctx]; + CGLUnlockContext(cgl_ctx); + } + } + } + }]; // end block handler +} + +- (void) close +{ + CVDisplayLinkStop(_displayLink); + CVDisplayLinkRelease(_displayLink); + + if(_scene) + { + aiReleaseImport(_scene); + _scene = NULL; + + CGLContextObj cgl_ctx = (CGLContextObj)[_glContext CGLContextObj]; + glDeleteTextures([textureDictionary count], textureIds); + + [textureDictionary release]; + textureDictionary = nil; + + free(textureIds); + textureIds = NULL; + + [self deleteGLResourcesInContext:cgl_ctx]; + } + + [_glContext release]; + _glContext = nil; + + [_glPixelFormat release]; + _glPixelFormat = nil; + + [super close]; +} + +- (CVReturn)displayLinkRenderCallback:(const CVTimeStamp *)timeStamp +{ + CVReturn rv = kCVReturnError; + NSAutoreleasePool *pool; + + pool = [[NSAutoreleasePool alloc] init]; + { + [self render]; + rv = kCVReturnSuccess; + } + [pool release]; + return rv; +} + +- (void) render +{ + CGLContextObj cgl_ctx = (CGLContextObj)[_glContext CGLContextObj]; + CGLLockContext(cgl_ctx); + + [_glContext update]; + + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + + glViewport(0, 0, _view.frame.size.width, _view.frame.size.height); + + GLfloat aspect = _view.frame.size.height/_view.frame.size.width; + glOrtho(-1, 1, - (aspect), aspect, -10, 10); + + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + glTranslated(0.0, 0.0, 1.0); + + // Draw our GL model. + if(_scene) + { + glScaled(normalizedScale , normalizedScale, normalizedScale); + // center the model + glTranslated( -scene_center.x, -scene_center.y, -scene_center.z); + + glScaled(2.0, 2.0, 2.0); + + static float i = 0; + i+=0.5; + glRotated(i, 0, 1, 0); + + [self drawMeshesInContext:cgl_ctx]; + } + + CGLUnlockContext(cgl_ctx); + + CGLFlushDrawable(cgl_ctx); +} + +#pragma mark - +#pragma mark Loading + +// Inspired by LoadAsset() & CreateAssetData() from AssimpView D3D project +- (void) createGLResourcesInContext:(CGLContextObj)cgl_ctx +{ + // create new mesh helpers for each mesh, will populate their data later. + modelMeshes = [[NSMutableArray alloc] initWithCapacity:_scene->mNumMeshes]; + + // create OpenGL buffers and populate them based on each meshes pertinant info. + for (unsigned int i = 0; i < _scene->mNumMeshes; ++i) + { + NSLog(@"%u", i); + + // current mesh we are introspecting + const aiMesh* mesh = _scene->mMeshes[i]; + + // the current meshHelper we will be populating data into. + MeshHelper* meshHelper = [[MeshHelper alloc] init]; + + // Handle material info + + aiMaterial* mtl = _scene->mMaterials[mesh->mMaterialIndex]; + + // Textures + int texIndex = 0; + aiString texPath; + + if(AI_SUCCESS == mtl->GetTexture(aiTextureType_DIFFUSE, texIndex, &texPath)) + { + NSString* textureKey = [NSString stringWithCString:texPath.data encoding:[NSString defaultCStringEncoding]]; + //bind texture + NSNumber* textureNumber = (NSNumber*)[textureDictionary valueForKey:textureKey]; + + //NSLog(@"applyMaterialInContext: have texture %i", [textureNumber unsignedIntValue]); + meshHelper.textureID = [textureNumber unsignedIntValue]; + } + else + meshHelper.textureID = 0; + + // Colors + + aiColor4D dcolor = aiColor4D(0.8f, 0.8f, 0.8f, 1.0f); + if(AI_SUCCESS == aiGetMaterialColor(mtl, AI_MATKEY_COLOR_DIFFUSE, &dcolor)) + [meshHelper setDiffuseColor:&dcolor]; + + aiColor4D scolor = aiColor4D(0.0f, 0.0f, 0.0f, 1.0f); + if(AI_SUCCESS == aiGetMaterialColor(mtl, AI_MATKEY_COLOR_SPECULAR, &scolor)) + [meshHelper setSpecularColor:&scolor]; + + aiColor4D acolor = aiColor4D(0.2f, 0.2f, 0.2f, 1.0f); + if(AI_SUCCESS == aiGetMaterialColor(mtl, AI_MATKEY_COLOR_AMBIENT, &acolor)) + [meshHelper setAmbientColor:&acolor]; + + aiColor4D ecolor = aiColor4D(0.0f, 0.0f, 0.0f, 1.0f); + if(AI_SUCCESS == aiGetMaterialColor(mtl, AI_MATKEY_COLOR_EMISSIVE, &ecolor)) + [meshHelper setEmissiveColor:&ecolor]; + + // Culling + unsigned int max = 1; + int two_sided; + if((AI_SUCCESS == aiGetMaterialIntegerArray(mtl, AI_MATKEY_TWOSIDED, &two_sided, &max)) && two_sided) + [meshHelper setTwoSided:YES]; + else + [meshHelper setTwoSided:NO]; + + // Create a VBO for our vertices + + GLuint vhandle; + glGenBuffers(1, &vhandle); + + glBindBuffer(GL_ARRAY_BUFFER, vhandle); + glBufferData(GL_ARRAY_BUFFER, sizeof(Vertex) * mesh->mNumVertices, NULL, GL_STATIC_DRAW); + + // populate vertices + Vertex* verts = (Vertex*)glMapBuffer(GL_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); + + for (unsigned int x = 0; x < mesh->mNumVertices; ++x) + { + verts->vPosition = mesh->mVertices[x]; + + if (NULL == mesh->mNormals) + verts->vNormal = aiVector3D(0.0f,0.0f,0.0f); + else + verts->vNormal = mesh->mNormals[x]; + + if (NULL == mesh->mTangents) + { + verts->vTangent = aiVector3D(0.0f,0.0f,0.0f); + verts->vBitangent = aiVector3D(0.0f,0.0f,0.0f); + } + else + { + verts->vTangent = mesh->mTangents[x]; + verts->vBitangent = mesh->mBitangents[x]; + } + + if (mesh->HasVertexColors(0)) + { + verts->dColorDiffuse = mesh->mColors[0][x]; + } + else + verts->dColorDiffuse = aiColor4D(1.0, 1.0, 1.0, 1.0); + + // This varies slightly form Assimp View, we support the 3rd texture component. + if (mesh->HasTextureCoords(0)) + verts->vTextureUV = mesh->mTextureCoords[0][x]; + else + verts->vTextureUV = aiVector3D(0.5f,0.5f, 0.0f); + + if (mesh->HasTextureCoords(1)) + verts->vTextureUV2 = mesh->mTextureCoords[1][x]; + else + verts->vTextureUV2 = aiVector3D(0.5f,0.5f, 0.0f); + + // TODO: handle Bone indices and weights + /* if( mesh->HasBones()) + { + unsigned char boneIndices[4] = { 0, 0, 0, 0 }; + unsigned char boneWeights[4] = { 0, 0, 0, 0 }; + ai_assert( weightsPerVertex[x].size() <= 4); + + for( unsigned int a = 0; a < weightsPerVertex[x].size(); a++) + { + boneIndices[a] = weightsPerVertex[x][a].mVertexId; + boneWeights[a] = (unsigned char) (weightsPerVertex[x][a].mWeight * 255.0f); + } + + memcpy( verts->mBoneIndices, boneIndices, sizeof( boneIndices)); + memcpy( verts->mBoneWeights, boneWeights, sizeof( boneWeights)); + } + else + */ + { + memset( verts->mBoneIndices, 0, sizeof( verts->mBoneIndices)); + memset( verts->mBoneWeights, 0, sizeof( verts->mBoneWeights)); + } + + ++verts; + } + + glUnmapBufferARB(GL_ARRAY_BUFFER_ARB); //invalidates verts + glBindBuffer(GL_ARRAY_BUFFER, 0); + + // set the mesh vertex buffer handle to our new vertex buffer. + meshHelper.vertexBuffer = vhandle; + + // Create Index Buffer + + // populate the index buffer. + NSUInteger nidx; + switch (mesh->mPrimitiveTypes) + { + case aiPrimitiveType_POINT: + nidx = 1;break; + case aiPrimitiveType_LINE: + nidx = 2;break; + case aiPrimitiveType_TRIANGLE: + nidx = 3;break; + default: assert(false); + } + + // create the index buffer + GLuint ihandle; + glGenBuffers(1, &ihandle); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ihandle); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(GLuint) * mesh->mNumFaces * nidx, NULL, GL_STATIC_DRAW); + + unsigned int* indices = (unsigned int*)glMapBuffer(GL_ELEMENT_ARRAY_BUFFER, GL_WRITE_ONLY_ARB); + + // now fill the index buffer + for (unsigned int x = 0; x < mesh->mNumFaces; ++x) + { + for (unsigned int a = 0; a < nidx; ++a) + { + // if(mesh->mFaces[x].mNumIndices != 3) + // NSLog(@"whoa dont have 3 indices..."); + + *indices++ = mesh->mFaces[x].mIndices[a]; + } + } + + glUnmapBuffer(GL_ELEMENT_ARRAY_BUFFER); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); + + // set the mesh index buffer handle to our new index buffer. + meshHelper.indexBuffer = ihandle; + meshHelper.numIndices = mesh->mNumFaces * nidx; + + // create the normal buffer. Assimp View creates a second normal buffer. Unsure why. Using only the interleaved normals for now. + // This is here for reference. + + /* GLuint nhandle; + glGenBuffers(1, &nhandle); + glBindBuffer(GL_ARRAY_BUFFER, nhandle); + glBufferData(GL_ARRAY_BUFFER, sizeof(aiVector3D)* mesh->mNumVertices, NULL, GL_STATIC_DRAW); + + // populate normals + aiVector3D* normals = (aiVector3D*)glMapBuffer(GL_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); + + for (unsigned int x = 0; x < mesh->mNumVertices; ++x) + { + aiVector3D vNormal = mesh->mNormals[x]; + *normals = vNormal; + ++normals; + } + + glUnmapBufferARB(GL_ARRAY_BUFFER_ARB); //invalidates verts + glBindBuffer(GL_ARRAY_BUFFER, 0); + + meshHelper.normalBuffer = nhandle; + */ + + // Create VAO and populate it + + GLuint vaoHandle; + glGenVertexArraysAPPLE(1, &vaoHandle); + + glBindVertexArrayAPPLE(vaoHandle); + + + glBindBuffer(GL_ARRAY_BUFFER, meshHelper.vertexBuffer); + + glEnableClientState(GL_NORMAL_ARRAY); + glNormalPointer(GL_FLOAT, sizeof(Vertex), BUFFER_OFFSET(12)); + + glEnableClientState(GL_COLOR_ARRAY); + glColorPointer(4, GL_FLOAT, sizeof(Vertex), BUFFER_OFFSET(24)); + + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + glTexCoordPointer(3, GL_FLOAT, sizeof(Vertex), BUFFER_OFFSET(64)); + //TODO: handle second texture + + // VertexPointer ought to come last, apparently this is some optimization, since if its set once, first, it gets fiddled with every time something else is update. + glEnableClientState(GL_VERTEX_ARRAY); + glVertexPointer(3, GL_FLOAT, sizeof(Vertex), 0); + + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, meshHelper.indexBuffer); + + glBindVertexArrayAPPLE(0); + + // save the VAO handle into our mesh helper + meshHelper.vao = vaoHandle; + + // Create the display list + + GLuint list = glGenLists(1); + + glNewList(list, GL_COMPILE); + + float dc[4]; + float sc[4]; + float ac[4]; + float emc[4]; + + // Material colors and properties + color4_to_float4([meshHelper diffuseColor], dc); + glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, dc); + + color4_to_float4([meshHelper specularColor], sc); + glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, sc); + + color4_to_float4([meshHelper ambientColor], ac); + glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, ac); + + color4_to_float4(meshHelper.emissiveColor, emc); + glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, emc); + + glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE); + + // Culling + if(meshHelper.twoSided) + glEnable(GL_CULL_FACE); + else + glDisable(GL_CULL_FACE); + + + // Texture Binding + glBindTexture(GL_TEXTURE_2D, meshHelper.textureID); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); + + // This binds the whole VAO, inheriting all the buffer and client state. Weeee + glBindVertexArrayAPPLE(meshHelper.vao); + glDrawElements(GL_TRIANGLES, meshHelper.numIndices, GL_UNSIGNED_INT, 0); + + glEndList(); + + meshHelper.displayList = list; + + // Whew, done. Save all of this shit. + [modelMeshes addObject:meshHelper]; + + [meshHelper release]; + } +} + +- (void) deleteGLResourcesInContext:(CGLContextObj)cgl_ctx +{ + for(MeshHelper* helper in modelMeshes) + { + const GLuint indexBuffer = helper.indexBuffer; + const GLuint vertexBuffer = helper.vertexBuffer; + const GLuint normalBuffer = helper.normalBuffer; + const GLuint vaoHandle = helper.vao; + const GLuint dlist = helper.displayList; + + glDeleteBuffers(1, &vertexBuffer); + glDeleteBuffers(1, &indexBuffer); + glDeleteBuffers(1, &normalBuffer); + glDeleteVertexArraysAPPLE(1, &vaoHandle); + + glDeleteLists(1, dlist); + + helper.indexBuffer = 0; + helper.vertexBuffer = 0; + helper.normalBuffer = 0; + helper.vao = 0; + helper.displayList = 0; + } + + [modelMeshes release]; + modelMeshes = nil; +} + +- (void) drawMeshesInContext:(CGLContextObj)cgl_ctx +{ + for(MeshHelper* helper in modelMeshes) + { + // Set up meterial state. + glCallList(helper.displayList); + } +} + + +- (void) loadTexturesInContext:(CGLContextObj)cgl_ctx withModelPath:(NSString*) modelPath +{ + if (_scene->HasTextures()) + { + NSLog(@"Support for meshes with embedded textures is not implemented"); + return; + } + + /* getTexture Filenames and Numb of Textures */ + for (unsigned int m = 0; m < _scene->mNumMaterials; m++) + { + int texIndex = 0; + aiReturn texFound = AI_SUCCESS; + + aiString path; // filename + + // TODO: handle other aiTextureTypes + while (texFound == AI_SUCCESS) + { + texFound = _scene->mMaterials[m]->GetTexture(aiTextureType_DIFFUSE, texIndex, &path); + + NSString* texturePath = [NSString stringWithCString:path.data encoding:[NSString defaultCStringEncoding]]; + + // add our path to the texture and the index to our texture dictionary. + [textureDictionary setValue:[NSNumber numberWithUnsignedInt:texIndex] forKey:texturePath]; + + texIndex++; + } + } + + textureIds = (GLuint*) malloc(sizeof(GLuint) * [textureDictionary count]); //new GLuint[ [textureDictionary count] ]; + glGenTextures([textureDictionary count], textureIds); + + NSLog(@"textureDictionary: %@", textureDictionary); + + // create our textures, populate them, and alter our textureID value for the specific textureID we create. + + // so we can modify while we enumerate... + NSDictionary *textureCopy = [textureDictionary copy]; + + // GCD attempt. + //dispatch_sync(_queue, ^{ + + int i = 0; + + for(NSString* texturePath in textureCopy) + { + NSString* fullTexturePath = [[[modelPath stringByDeletingLastPathComponent] stringByAppendingPathComponent:[texturePath stringByStandardizingPath]] stringByStandardizingPath]; + NSLog(@"texturePath: %@", fullTexturePath); + + NSImage* textureImage = [[NSImage alloc] initWithContentsOfFile:fullTexturePath]; + + if(textureImage) + { + //NSLog(@"Have Texture Image"); + NSBitmapImageRep* bitmap = [NSBitmapImageRep alloc]; + + [textureImage lockFocus]; + [bitmap initWithFocusedViewRect:NSMakeRect(0, 0, textureImage.size.width, textureImage.size.height)]; + [textureImage unlockFocus]; + + glActiveTexture(GL_TEXTURE0); + glEnable(GL_TEXTURE_2D); + glBindTexture(GL_TEXTURE_2D, textureIds[i]); + //glPixelStorei(GL_UNPACK_ROW_LENGTH, [bitmap pixelsWide]); + //glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + + // generate mip maps + glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_TRUE); + + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + + // draw into our bitmap + int samplesPerPixel = [bitmap samplesPerPixel]; + + if(![bitmap isPlanar] && (samplesPerPixel == 3 || samplesPerPixel == 4)) + { + glTexImage2D(GL_TEXTURE_2D, + 0, + //samplesPerPixel == 4 ? GL_COMPRESSED_RGBA_S3TC_DXT3_EXT : GL_COMPRESSED_RGB_S3TC_DXT1_EXT, + samplesPerPixel == 4 ? GL_RGBA8 : GL_RGB8, + [bitmap pixelsWide], + [bitmap pixelsHigh], + 0, + samplesPerPixel == 4 ? GL_RGBA : GL_RGB, + GL_UNSIGNED_BYTE, + [bitmap bitmapData]); + + } + + + // update our dictionary to contain the proper textureID value (from out array of generated IDs) + [textureDictionary setValue:[NSNumber numberWithUnsignedInt:textureIds[i]] forKey:texturePath]; + + [bitmap release]; + } + else + { + [textureDictionary removeObjectForKey:texturePath]; + NSLog(@"Could not Load Texture: %@, removing reference to it.", fullTexturePath); + } + + [textureImage release]; + i++; + } + //}); + + [textureCopy release]; + +} + +- (void) getBoundingBoxWithMinVector:(struct aiVector3D*) min maxVectr:(struct aiVector3D*) max +{ + struct aiMatrix4x4 trafo; + aiIdentityMatrix4(&trafo); + + min->x = min->y = min->z = 1e10f; + max->x = max->y = max->z = -1e10f; + + [self getBoundingBoxForNode:_scene->mRootNode minVector:min maxVector:max matrix:&trafo]; +} + +- (void) getBoundingBoxForNode:(const struct aiNode*)nd minVector:(struct aiVector3D*) min maxVector:(struct aiVector3D*) max matrix:(struct aiMatrix4x4*) trafo +{ + struct aiMatrix4x4 prev; + unsigned int n = 0, t; + + prev = *trafo; + aiMultiplyMatrix4(trafo,&nd->mTransformation); + + for (; n < nd->mNumMeshes; ++n) + { + const struct aiMesh* mesh = _scene->mMeshes[nd->mMeshes[n]]; + for (t = 0; t < mesh->mNumVertices; ++t) + { + struct aiVector3D tmp = mesh->mVertices[t]; + aiTransformVecByMatrix4(&tmp,trafo); + + min->x = aisgl_min(min->x,tmp.x); + min->y = aisgl_min(min->y,tmp.y); + min->z = aisgl_min(min->z,tmp.z); + + max->x = aisgl_max(max->x,tmp.x); + max->y = aisgl_max(max->y,tmp.y); + max->z = aisgl_max(max->z,tmp.z); + } + } + + for (n = 0; n < nd->mNumChildren; ++n) + { + [self getBoundingBoxForNode:nd->mChildren[n] minVector:min maxVector:max matrix:trafo]; + } + + *trafo = prev; +} + + +@end diff --git a/samples/SimpleAssimpViewX/MyDocument.xcdatamodel/elements b/samples/SimpleAssimpViewX/MyDocument.xcdatamodel/elements new file mode 100644 index 000000000..220906294 Binary files /dev/null and b/samples/SimpleAssimpViewX/MyDocument.xcdatamodel/elements differ diff --git a/samples/SimpleAssimpViewX/MyDocument.xcdatamodel/layout b/samples/SimpleAssimpViewX/MyDocument.xcdatamodel/layout new file mode 100644 index 000000000..85196a859 Binary files /dev/null and b/samples/SimpleAssimpViewX/MyDocument.xcdatamodel/layout differ diff --git a/samples/SimpleAssimpViewX/README b/samples/SimpleAssimpViewX/README new file mode 100644 index 000000000..b0dd8a9ab --- /dev/null +++ b/samples/SimpleAssimpViewX/README @@ -0,0 +1,22 @@ +Mac OSX Assimp Sample, using OpenGL with VBOs +============================================= + +Written & donated by drparallax. +See http://sourceforge.net/projects/assimp/forums/forum/817654/topic/3917829 + + +How to build: +------------- + + - compile Assimp as static library, copy the generated libassimp.a right here. + - copy the Assimp headers from ./../../include to ./include + - open the XCode project file and build it + + +Troubleshooting: +---------------- + + - OSX workspaces are not updated too frequently, so same files may be missing. + +If you have any problems which you can't solve on your own, +please report them on the thread above. \ No newline at end of file diff --git a/samples/SimpleAssimpViewX/SimpleAssimpViewX-Info.plist b/samples/SimpleAssimpViewX/SimpleAssimpViewX-Info.plist new file mode 100644 index 000000000..a53a1d9cf --- /dev/null +++ b/samples/SimpleAssimpViewX/SimpleAssimpViewX-Info.plist @@ -0,0 +1,101 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleDocumentTypes + + + CFBundleTypeExtensions + + binary + + CFBundleTypeMIMETypes + + application/octet-stream + + CFBundleTypeName + Binary + CFBundleTypeRole + Editor + LSTypeIsPackage + + NSDocumentClass + MyDocument + NSPersistentStoreTypeKey + Binary + + + CFBundleTypeExtensions + + sqlite + + CFBundleTypeMIMETypes + + application/octet-stream + + CFBundleTypeName + SQLite + CFBundleTypeRole + Editor + LSTypeIsPackage + + NSDocumentClass + MyDocument + NSPersistentStoreTypeKey + SQLite + + + CFBundleTypeExtensions + + xml + + CFBundleTypeIconFile + + CFBundleTypeMIMETypes + + text/xml + + CFBundleTypeName + XML + CFBundleTypeOSTypes + + ???? + + CFBundleTypeRole + Editor + LSTypeIsPackage + + NSDocumentClass + MyDocument + NSPersistentStoreTypeKey + XML + + + CFBundleName + ${PRODUCT_NAME} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + com.yourcompany.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSMinimumSystemVersion + ${MACOSX_DEPLOYMENT_TARGET} + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + diff --git a/samples/SimpleAssimpViewX/SimpleAssimpViewX.xcodeproj/project.pbxproj b/samples/SimpleAssimpViewX/SimpleAssimpViewX.xcodeproj/project.pbxproj new file mode 100644 index 000000000..71e73044f --- /dev/null +++ b/samples/SimpleAssimpViewX/SimpleAssimpViewX.xcodeproj/project.pbxproj @@ -0,0 +1,456 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 1B0E9A901279ED43003108E7 /* libassimp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B0E9A8F1279ED43003108E7 /* libassimp.a */; }; + 1B0E9A951279EDCD003108E7 /* ModelLoaderHelperClasses.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1B0E9A941279EDCD003108E7 /* ModelLoaderHelperClasses.mm */; }; + 1B0E9AF51279EFCC003108E7 /* aiColor4D.inl in Resources */ = {isa = PBXBuildFile; fileRef = 1B0E9AD71279EFCC003108E7 /* aiColor4D.inl */; }; + 1B0E9AF61279EFCC003108E7 /* aiMaterial.inl in Resources */ = {isa = PBXBuildFile; fileRef = 1B0E9ADD1279EFCC003108E7 /* aiMaterial.inl */; }; + 1B0E9AF71279EFCC003108E7 /* aiMatrix3x3.inl in Resources */ = {isa = PBXBuildFile; fileRef = 1B0E9ADF1279EFCC003108E7 /* aiMatrix3x3.inl */; }; + 1B0E9AF81279EFCC003108E7 /* aiMatrix4x4.inl in Resources */ = {isa = PBXBuildFile; fileRef = 1B0E9AE11279EFCC003108E7 /* aiMatrix4x4.inl */; }; + 1B0E9AF91279EFCC003108E7 /* aiVector3D.inl in Resources */ = {isa = PBXBuildFile; fileRef = 1B0E9AEA1279EFCC003108E7 /* aiVector3D.inl */; }; + 1B0E9B1A1279F107003108E7 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B0E9B191279F107003108E7 /* libz.dylib */; }; + 1BDF446B127772AF00D3E723 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1BDF446A127772AF00D3E723 /* OpenGL.framework */; }; + 1BDF446F127772AF00D3E723 /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1BDF446E127772AF00D3E723 /* Quartz.framework */; }; + 2F7446AB0DB6BCF400F9684A /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2F7446A70DB6BCF400F9684A /* MainMenu.xib */; }; + 2F7446AC0DB6BCF400F9684A /* MyDocument.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2F7446A90DB6BCF400F9684A /* MyDocument.xib */; }; + 775BDEF1067A8BF0009058FE /* MyDocument.xcdatamodel in Sources */ = {isa = PBXBuildFile; fileRef = 775BDEF0067A8BF0009058FE /* MyDocument.xcdatamodel */; }; + 775DFF38067A968500C5B868 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A7FEA54F5311CA2CBB /* Cocoa.framework */; }; + 8D15AC2C0486D014006FF6A4 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 2A37F4B9FDCFA73011CA2CEA /* Credits.rtf */; }; + 8D15AC2F0486D014006FF6A4 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165FFE840EACC02AAC07 /* InfoPlist.strings */; }; + 8D15AC310486D014006FF6A4 /* MyDocument.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; settings = {ATTRIBUTES = (); }; }; + 8D15AC320486D014006FF6A4 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A37F4B0FDCFA73011CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 089C1660FE840EACC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; + 1058C7A7FEA54F5311CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; + 1B0E9A8F1279ED43003108E7 /* libassimp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libassimp.a; sourceTree = ""; }; + 1B0E9A931279EDCD003108E7 /* ModelLoaderHelperClasses.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ModelLoaderHelperClasses.h; sourceTree = ""; }; + 1B0E9A941279EDCD003108E7 /* ModelLoaderHelperClasses.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ModelLoaderHelperClasses.mm; sourceTree = ""; }; + 1B0E9AD31279EFCC003108E7 /* aiAnim.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiAnim.h; sourceTree = ""; }; + 1B0E9AD41279EFCC003108E7 /* aiAssert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiAssert.h; sourceTree = ""; }; + 1B0E9AD51279EFCC003108E7 /* aiCamera.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiCamera.h; sourceTree = ""; }; + 1B0E9AD61279EFCC003108E7 /* aiColor4D.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiColor4D.h; sourceTree = ""; }; + 1B0E9AD71279EFCC003108E7 /* aiColor4D.inl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = aiColor4D.inl; sourceTree = ""; }; + 1B0E9AD81279EFCC003108E7 /* aiConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiConfig.h; sourceTree = ""; }; + 1B0E9AD91279EFCC003108E7 /* aiDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiDefines.h; sourceTree = ""; }; + 1B0E9ADA1279EFCC003108E7 /* aiFileIO.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiFileIO.h; sourceTree = ""; }; + 1B0E9ADB1279EFCC003108E7 /* aiLight.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiLight.h; sourceTree = ""; }; + 1B0E9ADC1279EFCC003108E7 /* aiMaterial.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiMaterial.h; sourceTree = ""; }; + 1B0E9ADD1279EFCC003108E7 /* aiMaterial.inl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = aiMaterial.inl; sourceTree = ""; }; + 1B0E9ADE1279EFCC003108E7 /* aiMatrix3x3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiMatrix3x3.h; sourceTree = ""; }; + 1B0E9ADF1279EFCC003108E7 /* aiMatrix3x3.inl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = aiMatrix3x3.inl; sourceTree = ""; }; + 1B0E9AE01279EFCC003108E7 /* aiMatrix4x4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiMatrix4x4.h; sourceTree = ""; }; + 1B0E9AE11279EFCC003108E7 /* aiMatrix4x4.inl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = aiMatrix4x4.inl; sourceTree = ""; }; + 1B0E9AE21279EFCC003108E7 /* aiMesh.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiMesh.h; sourceTree = ""; }; + 1B0E9AE31279EFCC003108E7 /* aiPostProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiPostProcess.h; sourceTree = ""; }; + 1B0E9AE41279EFCC003108E7 /* aiQuaternion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiQuaternion.h; sourceTree = ""; }; + 1B0E9AE51279EFCC003108E7 /* aiScene.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiScene.h; sourceTree = ""; }; + 1B0E9AE61279EFCC003108E7 /* aiTexture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiTexture.h; sourceTree = ""; }; + 1B0E9AE71279EFCC003108E7 /* aiTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiTypes.h; sourceTree = ""; }; + 1B0E9AE81279EFCC003108E7 /* aiVector2D.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiVector2D.h; sourceTree = ""; }; + 1B0E9AE91279EFCC003108E7 /* aiVector3D.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiVector3D.h; sourceTree = ""; }; + 1B0E9AEA1279EFCC003108E7 /* aiVector3D.inl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = aiVector3D.inl; sourceTree = ""; }; + 1B0E9AEB1279EFCC003108E7 /* aiVersion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aiVersion.h; sourceTree = ""; }; + 1B0E9AEC1279EFCC003108E7 /* assimp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = assimp.h; sourceTree = ""; }; + 1B0E9AED1279EFCC003108E7 /* assimp.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = assimp.hpp; sourceTree = ""; }; + 1B0E9AEE1279EFCC003108E7 /* DefaultLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DefaultLogger.h; sourceTree = ""; }; + 1B0E9AEF1279EFCC003108E7 /* IOStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IOStream.h; sourceTree = ""; }; + 1B0E9AF01279EFCC003108E7 /* IOSystem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IOSystem.h; sourceTree = ""; }; + 1B0E9AF11279EFCC003108E7 /* Logger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Logger.h; sourceTree = ""; }; + 1B0E9AF21279EFCC003108E7 /* LogStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LogStream.h; sourceTree = ""; }; + 1B0E9AF31279EFCC003108E7 /* NullLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NullLogger.h; sourceTree = ""; }; + 1B0E9AF41279EFCC003108E7 /* ProgressHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProgressHandler.h; sourceTree = ""; }; + 1B0E9AFD1279F006003108E7 /* poppack1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = poppack1.h; path = "/Users/vade/Asset Import/include/Compiler/poppack1.h"; sourceTree = ""; }; + 1B0E9AFE1279F006003108E7 /* pushpack1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pushpack1.h; path = "/Users/vade/Asset Import/include/Compiler/pushpack1.h"; sourceTree = ""; }; + 1B0E9B191279F107003108E7 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; + 1BDF446A127772AF00D3E723 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; + 1BDF446E127772AF00D3E723 /* Quartz.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quartz.framework; path = System/Library/Frameworks/Quartz.framework; sourceTree = SDKROOT; }; + 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MyDocument.mm; sourceTree = ""; }; + 2A37F4AEFDCFA73011CA2CEA /* MyDocument.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MyDocument.h; sourceTree = ""; }; + 2A37F4B0FDCFA73011CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 2A37F4BAFDCFA73011CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = English; path = English.lproj/Credits.rtf; sourceTree = ""; }; + 2A37F4C4FDCFA73011CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; + 2A37F4C5FDCFA73011CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; + 2F7446A80DB6BCF400F9684A /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = ""; }; + 2F7446AA0DB6BCF400F9684A /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MyDocument.xib; sourceTree = ""; }; + 32DBCF750370BD2300C91783 /* SimpleAssimpViewX_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SimpleAssimpViewX_Prefix.pch; sourceTree = ""; }; + 775BDEF0067A8BF0009058FE /* MyDocument.xcdatamodel */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = wrapper.xcdatamodel; path = MyDocument.xcdatamodel; sourceTree = ""; }; + 7788DA0506752A1600599AAD /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = ""; }; + 8D15AC360486D014006FF6A4 /* SimpleAssimpViewX-Info.plist */ = {isa = PBXFileReference; explicitFileType = text.plist.xml; fileEncoding = 4; path = "SimpleAssimpViewX-Info.plist"; sourceTree = ""; }; + 8D15AC370486D014006FF6A4 /* SimpleAssimpViewX.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SimpleAssimpViewX.app; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 8D15AC330486D014006FF6A4 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 775DFF38067A968500C5B868 /* Cocoa.framework in Frameworks */, + 1BDF446B127772AF00D3E723 /* OpenGL.framework in Frameworks */, + 1BDF446F127772AF00D3E723 /* Quartz.framework in Frameworks */, + 1B0E9A901279ED43003108E7 /* libassimp.a in Frameworks */, + 1B0E9B1A1279F107003108E7 /* libz.dylib in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 1058C7A6FEA54F5311CA2CBB /* Linked Frameworks */ = { + isa = PBXGroup; + children = ( + 1058C7A7FEA54F5311CA2CBB /* Cocoa.framework */, + 1BDF446A127772AF00D3E723 /* OpenGL.framework */, + 1BDF446E127772AF00D3E723 /* Quartz.framework */, + ); + name = "Linked Frameworks"; + sourceTree = ""; + }; + 1058C7A8FEA54F5311CA2CBB /* Other Frameworks */ = { + isa = PBXGroup; + children = ( + 2A37F4C5FDCFA73011CA2CEA /* Foundation.framework */, + 7788DA0506752A1600599AAD /* CoreData.framework */, + 2A37F4C4FDCFA73011CA2CEA /* AppKit.framework */, + ); + name = "Other Frameworks"; + sourceTree = ""; + }; + 19C28FB0FE9D524F11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 8D15AC370486D014006FF6A4 /* SimpleAssimpViewX.app */, + ); + name = Products; + sourceTree = ""; + }; + 1B0E9AD21279EFCC003108E7 /* include */ = { + isa = PBXGroup; + children = ( + 1B0E9AD31279EFCC003108E7 /* aiAnim.h */, + 1B0E9AD41279EFCC003108E7 /* aiAssert.h */, + 1B0E9AD51279EFCC003108E7 /* aiCamera.h */, + 1B0E9AD61279EFCC003108E7 /* aiColor4D.h */, + 1B0E9AD71279EFCC003108E7 /* aiColor4D.inl */, + 1B0E9AD81279EFCC003108E7 /* aiConfig.h */, + 1B0E9AD91279EFCC003108E7 /* aiDefines.h */, + 1B0E9ADA1279EFCC003108E7 /* aiFileIO.h */, + 1B0E9ADB1279EFCC003108E7 /* aiLight.h */, + 1B0E9ADC1279EFCC003108E7 /* aiMaterial.h */, + 1B0E9ADD1279EFCC003108E7 /* aiMaterial.inl */, + 1B0E9ADE1279EFCC003108E7 /* aiMatrix3x3.h */, + 1B0E9ADF1279EFCC003108E7 /* aiMatrix3x3.inl */, + 1B0E9AE01279EFCC003108E7 /* aiMatrix4x4.h */, + 1B0E9AE11279EFCC003108E7 /* aiMatrix4x4.inl */, + 1B0E9AE21279EFCC003108E7 /* aiMesh.h */, + 1B0E9AE31279EFCC003108E7 /* aiPostProcess.h */, + 1B0E9AE41279EFCC003108E7 /* aiQuaternion.h */, + 1B0E9AE51279EFCC003108E7 /* aiScene.h */, + 1B0E9AE61279EFCC003108E7 /* aiTexture.h */, + 1B0E9AE71279EFCC003108E7 /* aiTypes.h */, + 1B0E9AE81279EFCC003108E7 /* aiVector2D.h */, + 1B0E9AE91279EFCC003108E7 /* aiVector3D.h */, + 1B0E9AEA1279EFCC003108E7 /* aiVector3D.inl */, + 1B0E9AEB1279EFCC003108E7 /* aiVersion.h */, + 1B0E9AEC1279EFCC003108E7 /* assimp.h */, + 1B0E9AED1279EFCC003108E7 /* assimp.hpp */, + 1B0E9AEE1279EFCC003108E7 /* DefaultLogger.h */, + 1B0E9AEF1279EFCC003108E7 /* IOStream.h */, + 1B0E9AF01279EFCC003108E7 /* IOSystem.h */, + 1B0E9AF11279EFCC003108E7 /* Logger.h */, + 1B0E9AF21279EFCC003108E7 /* LogStream.h */, + 1B0E9AF31279EFCC003108E7 /* NullLogger.h */, + 1B0E9AF41279EFCC003108E7 /* ProgressHandler.h */, + 1B0E9AFC1279F006003108E7 /* Compiler */, + ); + path = include; + sourceTree = ""; + }; + 1B0E9AFC1279F006003108E7 /* Compiler */ = { + isa = PBXGroup; + children = ( + 1B0E9AFD1279F006003108E7 /* poppack1.h */, + 1B0E9AFE1279F006003108E7 /* pushpack1.h */, + ); + name = Compiler; + path = "/Users/vade/Asset Import/include/Compiler"; + sourceTree = ""; + }; + 2A37F4AAFDCFA73011CA2CEA /* DisplayLinkAsyncMoviePlayer */ = { + isa = PBXGroup; + children = ( + E1B74B1A0667B4A90069E3BA /* Models */, + 2A37F4ABFDCFA73011CA2CEA /* Classes */, + 1B0E9A8F1279ED43003108E7 /* libassimp.a */, + 1B0E9AD21279EFCC003108E7 /* include */, + 2A37F4AFFDCFA73011CA2CEA /* Other Sources */, + 2A37F4B8FDCFA73011CA2CEA /* Resources */, + 2A37F4C3FDCFA73011CA2CEA /* Frameworks */, + 19C28FB0FE9D524F11CA2CBB /* Products */, + 1B0E9B191279F107003108E7 /* libz.dylib */, + ); + name = DisplayLinkAsyncMoviePlayer; + sourceTree = ""; + }; + 2A37F4ABFDCFA73011CA2CEA /* Classes */ = { + isa = PBXGroup; + children = ( + 2A37F4AEFDCFA73011CA2CEA /* MyDocument.h */, + 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */, + 1B0E9A931279EDCD003108E7 /* ModelLoaderHelperClasses.h */, + 1B0E9A941279EDCD003108E7 /* ModelLoaderHelperClasses.mm */, + ); + name = Classes; + sourceTree = ""; + }; + 2A37F4AFFDCFA73011CA2CEA /* Other Sources */ = { + isa = PBXGroup; + children = ( + 32DBCF750370BD2300C91783 /* SimpleAssimpViewX_Prefix.pch */, + 2A37F4B0FDCFA73011CA2CEA /* main.m */, + ); + name = "Other Sources"; + sourceTree = ""; + }; + 2A37F4B8FDCFA73011CA2CEA /* Resources */ = { + isa = PBXGroup; + children = ( + 2F7446A70DB6BCF400F9684A /* MainMenu.xib */, + 2F7446A90DB6BCF400F9684A /* MyDocument.xib */, + 2A37F4B9FDCFA73011CA2CEA /* Credits.rtf */, + 8D15AC360486D014006FF6A4 /* SimpleAssimpViewX-Info.plist */, + 089C165FFE840EACC02AAC07 /* InfoPlist.strings */, + ); + name = Resources; + sourceTree = ""; + }; + 2A37F4C3FDCFA73011CA2CEA /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1058C7A6FEA54F5311CA2CBB /* Linked Frameworks */, + 1058C7A8FEA54F5311CA2CBB /* Other Frameworks */, + ); + name = Frameworks; + sourceTree = ""; + }; + E1B74B1A0667B4A90069E3BA /* Models */ = { + isa = PBXGroup; + children = ( + 775BDEF0067A8BF0009058FE /* MyDocument.xcdatamodel */, + ); + name = Models; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 8D15AC270486D014006FF6A4 /* SimpleAssimpViewX */ = { + isa = PBXNativeTarget; + buildConfigurationList = 26FC0AA50875C8B900E6366F /* Build configuration list for PBXNativeTarget "SimpleAssimpViewX" */; + buildPhases = ( + 8D15AC2B0486D014006FF6A4 /* Resources */, + 8D15AC300486D014006FF6A4 /* Sources */, + 8D15AC330486D014006FF6A4 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = SimpleAssimpViewX; + productInstallPath = "$(HOME)/Applications"; + productName = DisplayLinkAsyncMoviePlayer; + productReference = 8D15AC370486D014006FF6A4 /* SimpleAssimpViewX.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 2A37F4A9FDCFA73011CA2CEA /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 26FC0AA90875C8B900E6366F /* Build configuration list for PBXProject "SimpleAssimpViewX" */; + compatibilityVersion = "Xcode 3.1"; + hasScannedForEncodings = 1; + mainGroup = 2A37F4AAFDCFA73011CA2CEA /* DisplayLinkAsyncMoviePlayer */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 8D15AC270486D014006FF6A4 /* SimpleAssimpViewX */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 8D15AC2B0486D014006FF6A4 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 8D15AC2C0486D014006FF6A4 /* Credits.rtf in Resources */, + 8D15AC2F0486D014006FF6A4 /* InfoPlist.strings in Resources */, + 2F7446AB0DB6BCF400F9684A /* MainMenu.xib in Resources */, + 2F7446AC0DB6BCF400F9684A /* MyDocument.xib in Resources */, + 1B0E9AF51279EFCC003108E7 /* aiColor4D.inl in Resources */, + 1B0E9AF61279EFCC003108E7 /* aiMaterial.inl in Resources */, + 1B0E9AF71279EFCC003108E7 /* aiMatrix3x3.inl in Resources */, + 1B0E9AF81279EFCC003108E7 /* aiMatrix4x4.inl in Resources */, + 1B0E9AF91279EFCC003108E7 /* aiVector3D.inl in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 8D15AC300486D014006FF6A4 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 8D15AC310486D014006FF6A4 /* MyDocument.mm in Sources */, + 8D15AC320486D014006FF6A4 /* main.m in Sources */, + 775BDEF1067A8BF0009058FE /* MyDocument.xcdatamodel in Sources */, + 1B0E9A951279EDCD003108E7 /* ModelLoaderHelperClasses.mm in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 089C165FFE840EACC02AAC07 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 089C1660FE840EACC02AAC07 /* English */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + 2A37F4B9FDCFA73011CA2CEA /* Credits.rtf */ = { + isa = PBXVariantGroup; + children = ( + 2A37F4BAFDCFA73011CA2CEA /* English */, + ); + name = Credits.rtf; + sourceTree = ""; + }; + 2F7446A70DB6BCF400F9684A /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + 2F7446A80DB6BCF400F9684A /* English */, + ); + name = MainMenu.xib; + sourceTree = ""; + }; + 2F7446A90DB6BCF400F9684A /* MyDocument.xib */ = { + isa = PBXVariantGroup; + children = ( + 2F7446AA0DB6BCF400F9684A /* English */, + ); + name = MyDocument.xib; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 26FC0AA60875C8B900E6366F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = SimpleAssimpViewX_Prefix.pch; + HEADER_SEARCH_PATHS = "\"$(SRCROOT)\"/**"; + INFOPLIST_FILE = "SimpleAssimpViewX-Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)\"", + ); + ONLY_ACTIVE_ARCH = NO; + PRODUCT_NAME = SimpleAssimpViewX; + VALID_ARCHS = "x86_64 i386"; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + 26FC0AA70875C8B900E6366F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)\""; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_MODEL_TUNING = G5; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = SimpleAssimpViewX_Prefix.pch; + HEADER_SEARCH_PATHS = "\"$(SRCROOT)\"/**"; + INFOPLIST_FILE = "SimpleAssimpViewX-Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)\"", + ); + ONLY_ACTIVE_ARCH = NO; + PRODUCT_NAME = SimpleAssimpViewX; + VALID_ARCHS = "x86_64 i386"; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; + 26FC0AAA0875C8B900E6366F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + ONLY_ACTIVE_ARCH = YES; + PREBINDING = NO; + SDKROOT = macosx10.6; + }; + name = Debug; + }; + 26FC0AAB0875C8B900E6366F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PREBINDING = NO; + SDKROOT = macosx10.6; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 26FC0AA50875C8B900E6366F /* Build configuration list for PBXNativeTarget "SimpleAssimpViewX" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 26FC0AA60875C8B900E6366F /* Debug */, + 26FC0AA70875C8B900E6366F /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 26FC0AA90875C8B900E6366F /* Build configuration list for PBXProject "SimpleAssimpViewX" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 26FC0AAA0875C8B900E6366F /* Debug */, + 26FC0AAB0875C8B900E6366F /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 2A37F4A9FDCFA73011CA2CEA /* Project object */; +} diff --git a/samples/SimpleAssimpViewX/SimpleAssimpViewX.xcodeproj/vade.mode1v3 b/samples/SimpleAssimpViewX/SimpleAssimpViewX.xcodeproj/vade.mode1v3 new file mode 100644 index 000000000..38f26696a --- /dev/null +++ b/samples/SimpleAssimpViewX/SimpleAssimpViewX.xcodeproj/vade.mode1v3 @@ -0,0 +1,1418 @@ + + + + + ActivePerspectiveName + Project + AllowedModules + + + BundleLoadPath + + MaxInstances + n + Module + PBXSmartGroupTreeModule + Name + Groups and Files Outline View + + + BundleLoadPath + + MaxInstances + n + Module + PBXNavigatorGroup + Name + Editor + + + BundleLoadPath + + MaxInstances + n + Module + XCTaskListModule + Name + Task List + + + BundleLoadPath + + MaxInstances + n + Module + XCDetailModule + Name + File and Smart Group Detail Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXBuildResultsModule + Name + Detailed Build Results Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXProjectFindModule + Name + Project Batch Find Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCProjectFormatConflictsModule + Name + Project Format Conflicts List + + + BundleLoadPath + + MaxInstances + n + Module + PBXBookmarksModule + Name + Bookmarks Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXClassBrowserModule + Name + Class Browser + + + BundleLoadPath + + MaxInstances + n + Module + PBXCVSModule + Name + Source Code Control Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXDebugBreakpointsModule + Name + Debug Breakpoints Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCDockableInspector + Name + Inspector + + + BundleLoadPath + + MaxInstances + n + Module + PBXOpenQuicklyModule + Name + Open Quickly Tool + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugSessionModule + Name + Debugger + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugCLIModule + Name + Debug Console + + + BundleLoadPath + + MaxInstances + n + Module + XCSnapshotModule + Name + Snapshots Tool + + + BundlePath + /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources + Description + DefaultDescriptionKey + DockingSystemVisible + + Extension + mode1v3 + FavBarConfig + + PBXProjectModuleGUID + 1BDF44A71277739F00D3E723 + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.mode1v3 + MajorVersion + 33 + MinorVersion + 0 + Name + Default + Notifications + + OpenEditors + + PerspectiveWidths + + -1 + -1 + + Perspectives + + + ChosenToolbarItems + + active-combo-popup + action + NSToolbarFlexibleSpaceItem + debugger-enable-breakpoints + build-and-go + com.apple.ide.PBXToolbarStopButton + get-info + NSToolbarFlexibleSpaceItem + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProjectWithEditor + Identifier + perspective.project + IsVertical + + Layout + + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 275 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 2A37F4AAFDCFA73011CA2CEA + E1B74B1A0667B4A90069E3BA + 2A37F4ABFDCFA73011CA2CEA + 1B0E9AD21279EFCC003108E7 + 1B0E9AFC1279F006003108E7 + 2A37F4AFFDCFA73011CA2CEA + 2A37F4B8FDCFA73011CA2CEA + 2A37F4C3FDCFA73011CA2CEA + 1058C7A6FEA54F5311CA2CBB + 1C37FBAC04509CD000000102 + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 5 + 3 + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {275, 910}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {292, 928}} + GroupTreeTableConfiguration + + MainColumn + 275 + + RubberWindowFrame + 138 59 1346 969 0 0 1680 1028 + + Module + PBXSmartGroupTreeModule + Proportion + 292pt + + + Dock + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20306471E060097A5F4 + PBXProjectModuleLabel + MyDocument.mm + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CE0B20406471E060097A5F4 + PBXProjectModuleLabel + MyDocument.mm + _historyCapacity + 0 + bookmark + 1BA5B2CD127A06090089D2EA + history + + 1BDF44A01277739F00D3E723 + 1BDF44A11277739F00D3E723 + 1BDF44B91277745D00D3E723 + 1BDF44BB1277745D00D3E723 + 1BDF450D127776C900D3E723 + 1B0E9B201279F118003108E7 + 1B0E9B211279F118003108E7 + 1BA5B23E1279FF900089D2EA + 1BA5B28D127A03AF0089D2EA + 1BA5B28E127A03AF0089D2EA + + + SplitCount + 1 + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {1049, 880}} + RubberWindowFrame + 138 59 1346 969 0 0 1680 1028 + + Module + PBXNavigatorGroup + Proportion + 880pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20506471E060097A5F4 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{0, 885}, {1049, 43}} + RubberWindowFrame + 138 59 1346 969 0 0 1680 1028 + + Module + XCDetailModule + Proportion + 43pt + + + Proportion + 1049pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDetailModule + + TableOfContents + + 1BA5B255127A00700089D2EA + 1CE0B1FE06471DED0097A5F4 + 1BA5B256127A00700089D2EA + 1CE0B20306471E060097A5F4 + 1CE0B20506471E060097A5F4 + + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarConfiguration + xcode.toolbar.config.defaultV3 + + + ControllerClassBaseName + + IconName + WindowOfProject + Identifier + perspective.morph + IsVertical + 0 + Layout + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C08E77C0454961000C914BD + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 11E0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 29B97314FDCFA39411CA2CEA + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 337}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 1 + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 355}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 373 269 690 397 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 100% + + + Name + Morph + PreferredWidth + 300 + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + + TableOfContents + + 11E0B1FE06471DED0097A5F4 + + ToolbarConfiguration + xcode.toolbar.config.default.shortV3 + + + PerspectivesBarVisible + + ShelfIsVisible + + SourceDescription + file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec' + StatusbarIsVisible + + TimeStamp + 0.0 + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 1 + Type + Perspectives + UpdateMessage + The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'? + WindowJustification + 5 + WindowOrderList + + 1BA5B2CE127A06090089D2EA + 1BA5B260127A00700089D2EA + 1BA5B261127A00700089D2EA + 1CD10A99069EF8BA00B06720 + 1BDF44A81277739F00D3E723 + 1C78EAAD065D492600B07095 + /SimpleAssimpViewX/SimpleAssimpViewX.xcodeproj + + WindowString + 138 59 1346 969 0 0 1680 1028 + WindowToolsV3 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.build + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {1429, 686}} + RubberWindowFrame + 115 60 1429 968 0 0 1680 1028 + + Module + PBXNavigatorGroup + Proportion + 686pt + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + XCBuildResultsTrigger_Collapse + 1021 + XCBuildResultsTrigger_Open + 1011 + + GeometryConfiguration + + Frame + {{0, 691}, {1429, 236}} + RubberWindowFrame + 115 60 1429 968 0 0 1680 1028 + + Module + PBXBuildResultsModule + Proportion + 236pt + + + Proportion + 927pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + + TableOfContents + + 1BDF44A81277739F00D3E723 + 1BA5B257127A00700089D2EA + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.buildV3 + WindowContentMinSize + 486 300 + WindowString + 115 60 1429 968 0 0 1680 1028 + WindowToolGUID + 1BDF44A81277739F00D3E723 + WindowToolIsVisible + + + + FirstTimeWindowDisplayed + + Identifier + windowTool.debugger + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {533, 396}} + {{533, 0}, {706, 396}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {1239, 396}} + {{0, 396}, {1239, 400}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {1239, 796}} + PBXDebugSessionStackFrameViewKey + + DebugVariablesTableConfiguration + + Name + 120 + Value + 85 + Summary + 476 + + Frame + {{533, 0}, {706, 396}} + RubberWindowFrame + 441 177 1239 837 0 0 1680 1028 + + RubberWindowFrame + 441 177 1239 837 0 0 1680 1028 + + Module + PBXDebugSessionModule + Proportion + 796pt + + + Proportion + 796pt + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + + TableOfContents + + 1CD10A99069EF8BA00B06720 + 1BA5B258127A00700089D2EA + 1C162984064C10D400B95A72 + 1BA5B259127A00700089D2EA + 1BA5B25A127A00700089D2EA + 1BA5B25B127A00700089D2EA + 1BA5B25C127A00700089D2EA + 1BA5B25D127A00700089D2EA + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + WindowString + 441 177 1239 837 0 0 1680 1028 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + + + + Identifier + windowTool.find + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD0528D0623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {781, 167}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 781pt + + + Proportion + 50% + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{8, 0}, {773, 254}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXProjectFindModule + Proportion + 50% + + + Proportion + 428pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D57069F1CE1000CFCEE + 1C530D58069F1CE1000CFCEE + 1C530D59069F1CE1000CFCEE + 1CDD528C0622207200134675 + 1C530D5A069F1CE1000CFCEE + 1CE0B1FE06471DED0097A5F4 + 1CD0528E0623707200166675 + + WindowString + 62 385 781 470 0 0 1440 878 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + MENUSEPARATOR + + + FirstTimeWindowDisplayed + + Identifier + windowTool.debuggerConsole + IsVertical + + Layout + + + Dock + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {728, 246}} + RubberWindowFrame + 420 718 728 287 0 0 1680 1028 + + Module + PBXDebugCLIModule + Proportion + 246pt + + + Proportion + 246pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + + TableOfContents + + 1C78EAAD065D492600B07095 + 1BA5B25E127A00700089D2EA + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 420 718 728 287 0 0 1680 1028 + WindowToolGUID + 1C78EAAD065D492600B07095 + WindowToolIsVisible + + + + Identifier + windowTool.snapshots + Layout + + + Dock + + + Module + XCSnapshotModule + Proportion + 100% + + + Proportion + 100% + + + Name + Snapshots + ServiceClasses + + XCSnapshotModule + + StatusbarIsVisible + Yes + ToolbarConfiguration + xcode.toolbar.config.snapshots + WindowString + 315 824 300 550 0 0 1440 878 + WindowToolIsVisible + Yes + + + Identifier + windowTool.scm + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAB2065D492600B07095 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1C78EAB3065D492600B07095 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {452, 0}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD052920623707200166675 + PBXProjectModuleLabel + SCM + + GeometryConfiguration + + ConsoleFrame + {{0, 259}, {452, 0}} + Frame + {{0, 7}, {452, 259}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + TableConfiguration + + Status + 30 + FileName + 199 + Path + 197.0950012207031 + + TableFrame + {{0, 0}, {452, 250}} + + Module + PBXCVSModule + Proportion + 262pt + + + Proportion + 266pt + + + Name + SCM + ServiceClasses + + PBXCVSModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAB4065D492600B07095 + 1C78EAB5065D492600B07095 + 1C78EAB2065D492600B07095 + 1CD052920623707200166675 + + ToolbarConfiguration + xcode.toolbar.config.scm + WindowString + 743 379 452 308 0 0 1280 1002 + + + Identifier + windowTool.breakpoints + IsVertical + 0 + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + no + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 168 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {168, 350}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 0 + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 3 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CDDB66807F98D9800BB5817 + 1CDDB66907F98D9800BB5817 + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpointsV3 + WindowString + 315 424 744 409 0 0 1440 878 + WindowToolGUID + 1CDDB66807F98D9800BB5817 + WindowToolIsVisible + 1 + + + Identifier + windowTool.debugAnimator + Layout + + + Dock + + + Module + PBXNavigatorGroup + Proportion + 100% + + + Proportion + 100% + + + Name + Debug Visualizer + ServiceClasses + + PBXNavigatorGroup + + StatusbarIsVisible + 1 + ToolbarConfiguration + xcode.toolbar.config.debugAnimatorV3 + WindowString + 100 100 700 500 0 0 1280 1002 + + + Identifier + windowTool.bookmarks + Layout + + + Dock + + + Module + PBXBookmarksModule + Proportion + 100% + + + Proportion + 100% + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + 0 + WindowString + 538 42 401 187 0 0 1280 1002 + + + Identifier + windowTool.projectFormatConflicts + Layout + + + Dock + + + Module + XCProjectFormatConflictsModule + Proportion + 100% + + + Proportion + 100% + + + Name + Project Format Conflicts + ServiceClasses + + XCProjectFormatConflictsModule + + StatusbarIsVisible + 0 + WindowContentMinSize + 450 300 + WindowString + 50 850 472 307 0 0 1440 877 + + + Identifier + windowTool.classBrowser + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + OptionsSetName + Hierarchy, all classes + PBXProjectModuleGUID + 1CA6456E063B45B4001379D8 + PBXProjectModuleLabel + Class Browser - NSObject + + GeometryConfiguration + + ClassesFrame + {{0, 0}, {374, 96}} + ClassesTreeTableConfiguration + + PBXClassNameColumnIdentifier + 208 + PBXClassBookColumnIdentifier + 22 + + Frame + {{0, 0}, {630, 331}} + MembersFrame + {{0, 105}, {374, 395}} + MembersTreeTableConfiguration + + PBXMemberTypeIconColumnIdentifier + 22 + PBXMemberNameColumnIdentifier + 216 + PBXMemberTypeColumnIdentifier + 97 + PBXMemberBookColumnIdentifier + 22 + + PBXModuleWindowStatusBarHidden2 + 1 + RubberWindowFrame + 385 179 630 352 0 0 1440 878 + + Module + PBXClassBrowserModule + Proportion + 332pt + + + Proportion + 332pt + + + Name + Class Browser + ServiceClasses + + PBXClassBrowserModule + + StatusbarIsVisible + 0 + TableOfContents + + 1C0AD2AF069F1E9B00FABCE6 + 1C0AD2B0069F1E9B00FABCE6 + 1CA6456E063B45B4001379D8 + + ToolbarConfiguration + xcode.toolbar.config.classbrowser + WindowString + 385 179 630 352 0 0 1440 878 + WindowToolGUID + 1C0AD2AF069F1E9B00FABCE6 + WindowToolIsVisible + 0 + + + Identifier + windowTool.refactoring + IncludeInToolsMenu + 0 + Layout + + + Dock + + + BecomeActive + 1 + GeometryConfiguration + + Frame + {0, 0}, {500, 335} + RubberWindowFrame + {0, 0}, {500, 335} + + Module + XCRefactoringModule + Proportion + 100% + + + Proportion + 100% + + + Name + Refactoring + ServiceClasses + + XCRefactoringModule + + WindowString + 200 200 500 356 0 0 1920 1200 + + + + diff --git a/samples/SimpleAssimpViewX/SimpleAssimpViewX.xcodeproj/vade.pbxuser b/samples/SimpleAssimpViewX/SimpleAssimpViewX.xcodeproj/vade.pbxuser new file mode 100644 index 000000000..c6861473e --- /dev/null +++ b/samples/SimpleAssimpViewX/SimpleAssimpViewX.xcodeproj/vade.pbxuser @@ -0,0 +1,1914 @@ +// !$*UTF8*$! +{ + 1B0E99FF1279E80B003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.m: 15"; + rLen = 0; + rLoc = 1021; + rType = 0; + vrLen = 1096; + vrLoc = 88; + }; + 1B0E9A231279EA16003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4AEFDCFA73011CA2CEA /* MyDocument.h */; + name = "MyDocument.h: 19"; + rLen = 0; + rLoc = 554; + rType = 0; + vrLen = 462; + vrLoc = 0; + }; + 1B0E9A241279EA16003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.m: 34"; + rLen = 0; + rLoc = 1327; + rType = 0; + vrLen = 1080; + vrLoc = 148; + }; + 1B0E9A251279EA16003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.m: 34"; + rLen = 0; + rLoc = 1327; + rType = 0; + vrLen = 1080; + vrLoc = 148; + }; + 1B0E9A2B1279EA26003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.m: 34"; + rLen = 0; + rLoc = 1327; + rType = 0; + vrLen = 1077; + vrLoc = 148; + }; + 1B0E9A2F1279EA37003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.m: 56"; + rLen = 0; + rLoc = 7323; + rType = 0; + vrLen = 1110; + vrLoc = 152; + }; + 1B0E9A331279EA40003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.m: 34"; + rLen = 0; + rLoc = 1327; + rType = 0; + vrLen = 1112; + vrLoc = 152; + }; + 1B0E9A371279EA45003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.m: 34"; + rLen = 0; + rLoc = 1327; + rType = 0; + vrLen = 1110; + vrLoc = 152; + }; + 1B0E9A3A1279EA54003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.m: 34"; + rLen = 0; + rLoc = 1327; + rType = 0; + vrLen = 1160; + vrLoc = 152; + }; + 1B0E9A3D1279EA64003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.m: 35"; + rLen = 0; + rLoc = 1327; + rType = 0; + vrLen = 1162; + vrLoc = 152; + }; + 1B0E9A4D1279EB1F003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.m: 17"; + rLen = 0; + rLoc = 866; + rType = 0; + vrLen = 1563; + vrLoc = 152; + }; + 1B0E9A501279EB8D003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.m: 49"; + rLen = 0; + rLoc = 1539; + rType = 0; + vrLen = 1521; + vrLoc = 742; + }; + 1B0E9A511279EBA9003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.m: 61"; + rLen = 0; + rLoc = 3197; + rType = 0; + vrLen = 1521; + vrLoc = 742; + }; + 1B0E9A541279EC57003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.m: 88"; + rLen = 0; + rLoc = 8000; + rType = 0; + vrLen = 1457; + vrLoc = 1016; + }; + 1B0E9A561279EC72003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4AEFDCFA73011CA2CEA /* MyDocument.h */; + name = "MyDocument.h: 25"; + rLen = 0; + rLoc = 1112; + rType = 0; + vrLen = 481; + vrLoc = 0; + }; + 1B0E9A571279EC72003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.m: 105"; + rLen = 16; + rLoc = 8283; + rType = 0; + vrLen = 1569; + vrLoc = 1260; + }; + 1B0E9A581279EC72003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.m: 105"; + rLen = 16; + rLoc = 8283; + rType = 0; + vrLen = 1334; + vrLoc = 1653; + }; + 1B0E9A921279ED56003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.m: 102"; + rLen = 0; + rLoc = 8279; + rType = 0; + vrLen = 1575; + vrLoc = 1297; + }; + 1B0E9A931279EDCD003108E7 /* ModelLoaderHelperClasses.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {806, 1326}}"; + sepNavSelRange = "{217, 0}"; + sepNavVisRange = "{48, 363}"; + }; + }; + 1B0E9A941279EDCD003108E7 /* ModelLoaderHelperClasses.mm */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {779, 1261}}"; + sepNavSelRange = "{585, 0}"; + sepNavVisRange = "{0, 1258}"; + }; + }; + 1B0E9A9C1279EE7D003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 1B0E9A941279EDCD003108E7 /* ModelLoaderHelperClasses.mm */; + name = "ModelLoaderHelperClasses.mm: 9"; + rLen = 26; + rLoc = 155; + rType = 0; + vrLen = 1258; + vrLoc = 0; + }; + 1B0E9A9D1279EE7D003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4AEFDCFA73011CA2CEA /* MyDocument.h */; + name = "MyDocument.h: 42"; + rLen = 0; + rLoc = 977; + rType = 0; + vrLen = 1050; + vrLoc = 0; + }; + 1B0E9A9E1279EE7D003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 14"; + rLen = 0; + rLoc = 336; + rType = 0; + vrLen = 1483; + vrLoc = 0; + }; + 1B0E9A9F1279EE7D003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "AiColor4D.h: No such file or directory"; + fRef = 1B0E9A931279EDCD003108E7 /* ModelLoaderHelperClasses.h */; + rLen = 1; + rLoc = 10; + rType = 1; + }; + 1B0E9AA01279EE7D003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 1B0E9A931279EDCD003108E7 /* ModelLoaderHelperClasses.h */; + name = "ModelLoaderHelperClasses.h: 31"; + rLen = 0; + rLoc = 780; + rType = 0; + vrLen = 1613; + vrLoc = 0; + }; + 1B0E9AD61279EFCC003108E7 /* aiColor4D.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {806, 1144}}"; + sepNavSelRange = "{2077, 35}"; + sepNavVisRange = "{1794, 611}"; + }; + }; + 1B0E9AE91279EFCC003108E7 /* aiVector3D.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {988, 1534}}"; + sepNavSelRange = "{838, 0}"; + sepNavVisRange = "{0, 2586}"; + }; + }; + 1B0E9B0C1279F08F003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 1B0E9A931279EDCD003108E7 /* ModelLoaderHelperClasses.h */; + name = "ModelLoaderHelperClasses.h: 11"; + rLen = 0; + rLoc = 217; + rType = 0; + vrLen = 363; + vrLoc = 48; + }; + 1B0E9B0D1279F08F003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 1B0E9AD61279EFCC003108E7 /* aiColor4D.h */; + name = "aiColor4D.h: 51"; + rLen = 35; + rLoc = 2077; + rType = 0; + vrLen = 611; + vrLoc = 1794; + }; + 1B0E9B0E1279F08F003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4AEFDCFA73011CA2CEA /* MyDocument.h */; + name = "MyDocument.h: 30"; + rLen = 0; + rLoc = 612; + rType = 0; + vrLen = 813; + vrLoc = 229; + }; + 1B0E9B0F1279F08F003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "Invalid conversion from 'objc_object*' to 'CVReturn'"; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + rLen = 1; + rLoc = 38; + rType = 1; + }; + 1B0E9B101279F08F003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 36"; + rLen = 93; + rLoc = 836; + rType = 0; + vrLen = 820; + vrLoc = 258; + }; + 1B0E9B1D1279F110003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4AEFDCFA73011CA2CEA /* MyDocument.h */; + name = "MyDocument.h: 20"; + rLen = 0; + rLoc = 390; + rType = 0; + vrLen = 770; + vrLoc = 3; + }; + 1B0E9B1E1279F110003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "Invalid conversion from 'void*' to '_CGLContextObject*'"; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + rLen = 1; + rLoc = 267; + rType = 1; + }; + 1B0E9B1F1279F110003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 122"; + rLen = 0; + rLoc = 8282; + rType = 0; + vrLen = 822; + vrLoc = 2503; + }; + 1B0E9B201279F118003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 1B0E9A931279EDCD003108E7 /* ModelLoaderHelperClasses.h */; + name = "ModelLoaderHelperClasses.h: 31"; + rLen = 0; + rLoc = 780; + rType = 0; + vrLen = 1613; + vrLoc = 0; + }; + 1B0E9B211279F118003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 1B0E9A941279EDCD003108E7 /* ModelLoaderHelperClasses.mm */; + name = "ModelLoaderHelperClasses.mm: 34"; + rLen = 0; + rLoc = 585; + rType = 0; + vrLen = 1258; + vrLoc = 0; + }; + 1B0E9B221279F118003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4AEFDCFA73011CA2CEA /* MyDocument.h */; + name = "MyDocument.h: 47"; + rLen = 0; + rLoc = 1094; + rType = 0; + vrLen = 1117; + vrLoc = 0; + }; + 1B0E9B231279F118003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "Invalid conversion from 'void*' to '_CGLContextObject*'"; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + rLen = 1; + rLoc = 267; + rType = 1; + }; + 1B0E9B241279F118003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 100"; + rLen = 0; + rLoc = 7398; + rType = 0; + vrLen = 1510; + vrLoc = 55; + }; + 1B0E9BA81279F2A2003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "Request for member 'inputModelPath' in 'self', which is of non-class type 'MyDocument* const'"; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + rLen = 1; + rLoc = 193; + rType = 1; + }; + 1B0E9BA91279F2A2003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 140"; + rLen = 0; + rLoc = 5889; + rType = 0; + vrLen = 2547; + vrLoc = 3352; + }; + 1B0E9BB41279F317003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 222"; + rLen = 59; + rLoc = 9457; + rType = 0; + vrLen = 2522; + vrLoc = 7077; + }; + 1B0E9BB51279F317003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4AEFDCFA73011CA2CEA /* MyDocument.h */; + name = "MyDocument.h: 52"; + rLen = 0; + rLoc = 1285; + rType = 0; + vrLen = 1584; + vrLoc = 0; + }; + 1B0E9BB61279F317003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4AEFDCFA73011CA2CEA /* MyDocument.h */; + name = "MyDocument.h: 52"; + rLen = 0; + rLoc = 1225; + rType = 0; + vrLen = 1644; + vrLoc = 0; + }; + 1B0E9BBC1279F38A003108E7 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4AEFDCFA73011CA2CEA /* MyDocument.h */; + name = "MyDocument.h: 52"; + rLen = 0; + rLoc = 1225; + rType = 0; + vrLen = 1644; + vrLoc = 0; + }; + 1BA5B1841279F5FE0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "'cgl_ctx' was not declared in this scope"; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + rLen = 1; + rLoc = 231; + rType = 1; + }; + 1BA5B1851279F5FE0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 182"; + rLen = 65; + rLoc = 7587; + rType = 0; + vrLen = 1227; + vrLoc = 5670; + }; + 1BA5B1941279F61A0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4AEFDCFA73011CA2CEA /* MyDocument.h */; + name = "MyDocument.h: 52"; + rLen = 0; + rLoc = 1225; + rType = 0; + vrLen = 1644; + vrLoc = 0; + }; + 1BA5B1951279F61A0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 11"; + rLen = 0; + rLoc = 196; + rType = 0; + vrLen = 1352; + vrLoc = 0; + }; + 1BA5B19E1279F6480089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 11"; + rLen = 0; + rLoc = 196; + rType = 0; + vrLen = 1352; + vrLoc = 0; + }; + 1BA5B1A21279F6640089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 11"; + rLen = 0; + rLoc = 196; + rType = 0; + vrLen = 1350; + vrLoc = 0; + }; + 1BA5B1A61279F6910089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 11"; + rLen = 0; + rLoc = 196; + rType = 0; + vrLen = 1350; + vrLoc = 0; + }; + 1BA5B1AE1279F6D30089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 11"; + rLen = 0; + rLoc = 196; + rType = 0; + vrLen = 1350; + vrLoc = 0; + }; + 1BA5B1B21279F7010089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 11"; + rLen = 0; + rLoc = 196; + rType = 0; + vrLen = 1350; + vrLoc = 0; + }; + 1BA5B1B41279F72F0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 11"; + rLen = 0; + rLoc = 196; + rType = 0; + vrLen = 1380; + vrLoc = 0; + }; + 1BA5B1B91279F7520089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 11"; + rLen = 0; + rLoc = 196; + rType = 0; + vrLen = 1350; + vrLoc = 0; + }; + 1BA5B1BD1279F79D0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 11"; + rLen = 0; + rLoc = 196; + rType = 0; + vrLen = 1350; + vrLoc = 0; + }; + 1BA5B1C11279F7BB0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 11"; + rLen = 0; + rLoc = 196; + rType = 0; + vrLen = 1350; + vrLoc = 0; + }; + 1BA5B1C51279F7CC0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 11"; + rLen = 0; + rLoc = 196; + rType = 0; + vrLen = 1350; + vrLoc = 0; + }; + 1BA5B1C91279F7F70089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 11"; + rLen = 0; + rLoc = 196; + rType = 0; + vrLen = 1350; + vrLoc = 0; + }; + 1BA5B1CB1279F81B0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 234"; + rLen = 0; + rLoc = 8816; + rType = 0; + vrLen = 1240; + vrLoc = 7025; + }; + 1BA5B1D01279F8BF0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 605"; + rLen = 0; + rLoc = 21605; + rType = 0; + vrLen = 1943; + vrLoc = 18792; + }; + 1BA5B1D21279F8CF0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + comments = "'helper' was not declared in this scope"; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + rLen = 1; + rLoc = 564; + rType = 1; + }; + 1BA5B1D31279F8CF0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 536"; + rLen = 0; + rLoc = 19329; + rType = 0; + vrLen = 1740; + vrLoc = 17973; + }; + 1BA5B1D41279F9280089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 243"; + rLen = 0; + rLoc = 8860; + rType = 0; + vrLen = 1611; + vrLoc = 6880; + }; + 1BA5B1D91279F97C0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 261"; + rLen = 0; + rLoc = 8912; + rType = 0; + vrLen = 706; + vrLoc = 7780; + }; + 1BA5B1DA1279F97C0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 85"; + rLen = 0; + rLoc = 2039; + rType = 0; + vrLen = 779; + vrLoc = 1600; + }; + 1BA5B1DE1279F9AC0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 263"; + rLen = 0; + rLoc = 8912; + rType = 0; + vrLen = 706; + vrLoc = 7806; + }; + 1BA5B1DF1279F9AC0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 101"; + rLen = 0; + rLoc = 3062; + rType = 0; + vrLen = 739; + vrLoc = 1600; + }; + 1BA5B1E31279F9DA0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 268"; + rLen = 0; + rLoc = 9182; + rType = 0; + vrLen = 741; + vrLoc = 7806; + }; + 1BA5B1E41279F9DA0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 101"; + rLen = 0; + rLoc = 3062; + rType = 0; + vrLen = 739; + vrLoc = 1600; + }; + 1BA5B1E61279FA750089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 541"; + rLen = 0; + rLoc = 19329; + rType = 0; + vrLen = 1874; + vrLoc = 16918; + }; + 1BA5B1E71279FA760089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 254"; + rLen = 0; + rLoc = 8702; + rType = 0; + vrLen = 774; + vrLoc = 7806; + }; + 1BA5B1E81279FA760089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 101"; + rLen = 0; + rLoc = 3062; + rType = 0; + vrLen = 805; + vrLoc = 1600; + }; + 1BA5B1ED1279FB2B0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 254"; + rLen = 0; + rLoc = 8702; + rType = 0; + vrLen = 841; + vrLoc = 7703; + }; + 1BA5B1EE1279FB2B0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 100"; + rLen = 0; + rLoc = 3058; + rType = 0; + vrLen = 850; + vrLoc = 1518; + }; + 1BA5B1EF1279FB7E0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 257"; + rLen = 0; + rLoc = 8702; + rType = 0; + vrLen = 794; + vrLoc = 8007; + }; + 1BA5B1F01279FB7E0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 104"; + rLen = 0; + rLoc = 3062; + rType = 0; + vrLen = 848; + vrLoc = 1625; + }; + 1BA5B1F31279FBBC0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 264"; + rLen = 0; + rLoc = 8702; + rType = 0; + vrLen = 770; + vrLoc = 8073; + }; + 1BA5B1F41279FBBC0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 105"; + rLen = 0; + rLoc = 2826; + rType = 0; + vrLen = 758; + vrLoc = 1904; + }; + 1BA5B1F81279FBCD0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 264"; + rLen = 0; + rLoc = 8702; + rType = 0; + vrLen = 770; + vrLoc = 8071; + }; + 1BA5B1F91279FBCD0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 99"; + rLen = 0; + rLoc = 2499; + rType = 0; + vrLen = 756; + vrLoc = 1904; + }; + 1BA5B1FF1279FBFE0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 266"; + rLen = 0; + rLoc = 8702; + rType = 0; + vrLen = 836; + vrLoc = 8034; + }; + 1BA5B2001279FBFE0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 101"; + rLen = 0; + rLoc = 2513; + rType = 0; + vrLen = 758; + vrLoc = 1904; + }; + 1BA5B2021279FC0D0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 268"; + rLen = 0; + rLoc = 8702; + rType = 0; + vrLen = 841; + vrLoc = 8063; + }; + 1BA5B2031279FC0D0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 99"; + rLen = 0; + rLoc = 2469; + rType = 0; + vrLen = 840; + vrLoc = 1828; + }; + 1BA5B2041279FC280089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 555"; + rLen = 0; + rLoc = 19329; + rType = 0; + vrLen = 1734; + vrLoc = 15640; + }; + 1BA5B2071279FC580089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 273"; + rLen = 0; + rLoc = 8702; + rType = 0; + vrLen = 763; + vrLoc = 8201; + }; + 1BA5B2081279FC580089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 117"; + rLen = 0; + rLoc = 2992; + rType = 0; + vrLen = 850; + vrLoc = 2115; + }; + 1BA5B20C1279FC910089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 273"; + rLen = 0; + rLoc = 8702; + rType = 0; + vrLen = 763; + vrLoc = 8212; + }; + 1BA5B20D1279FC910089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 113"; + rLen = 0; + rLoc = 2876; + rType = 0; + vrLen = 861; + vrLoc = 2115; + }; + 1BA5B2111279FCA60089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 273"; + rLen = 0; + rLoc = 8702; + rType = 0; + vrLen = 763; + vrLoc = 8212; + }; + 1BA5B2121279FCA60089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 113"; + rLen = 0; + rLoc = 2858; + rType = 0; + vrLen = 861; + vrLoc = 2115; + }; + 1BA5B2161279FCBC0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 274"; + rLen = 0; + rLoc = 8702; + rType = 0; + vrLen = 760; + vrLoc = 8208; + }; + 1BA5B2171279FCBC0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 120"; + rLen = 0; + rLoc = 3058; + rType = 0; + vrLen = 843; + vrLoc = 2115; + }; + 1BA5B2191279FCF40089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 278"; + rLen = 0; + rLoc = 8702; + rType = 0; + vrLen = 620; + vrLoc = 7900; + }; + 1BA5B21A1279FCF40089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 123"; + rLen = 0; + rLoc = 3057; + rType = 0; + vrLen = 906; + vrLoc = 2115; + }; + 1BA5B21D1279FD420089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 564"; + rLen = 0; + rLoc = 19329; + rType = 0; + vrLen = 1837; + vrLoc = 15804; + }; + 1BA5B21E1279FD650089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 571"; + rLen = 0; + rLoc = 19580; + rType = 0; + vrLen = 2085; + vrLoc = 18311; + }; + 1BA5B21F1279FD650089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 122"; + rLen = 0; + rLoc = 3057; + rType = 0; + vrLen = 92; + vrLoc = 2115; + }; + 1BA5B2221279FD7E0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 571"; + rLen = 0; + rLoc = 19580; + rType = 0; + vrLen = 2030; + vrLoc = 18311; + }; + 1BA5B2231279FD7E0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 122"; + rLen = 0; + rLoc = 3057; + rType = 0; + vrLen = 58; + vrLoc = 2115; + }; + 1BA5B2271279FD990089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 570"; + rLen = 0; + rLoc = 19529; + rType = 0; + vrLen = 984; + vrLoc = 18313; + }; + 1BA5B2281279FD990089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 121"; + rLen = 0; + rLoc = 3054; + rType = 0; + vrLen = 812; + vrLoc = 2115; + }; + 1BA5B22C1279FDAA0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 570"; + rLen = 0; + rLoc = 19529; + rType = 0; + vrLen = 984; + vrLoc = 18311; + }; + 1BA5B22D1279FDAA0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 92"; + rLen = 0; + rLoc = 2215; + rType = 0; + vrLen = 719; + vrLoc = 1758; + }; + 1BA5B2311279FDCF0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 570"; + rLen = 0; + rLoc = 19529; + rType = 0; + vrLen = 984; + vrLoc = 18310; + }; + 1BA5B2321279FDCF0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 118"; + rLen = 0; + rLoc = 2958; + rType = 0; + vrLen = 821; + vrLoc = 2005; + }; + 1BA5B2361279FDE30089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 570"; + rLen = 0; + rLoc = 19529; + rType = 0; + vrLen = 1291; + vrLoc = 18982; + }; + 1BA5B2371279FDE30089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 90"; + rLen = 0; + rLoc = 2181; + rType = 0; + vrLen = 953; + vrLoc = 2627; + }; + 1BA5B23E1279FF900089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4AEFDCFA73011CA2CEA /* MyDocument.h */; + name = "MyDocument.h: 10"; + rLen = 0; + rLoc = 178; + rType = 0; + vrLen = 1644; + vrLoc = 0; + }; + 1BA5B23F1279FF900089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 156"; + rLen = 0; + rLoc = 4176; + rType = 0; + vrLen = 2878; + vrLoc = 2827; + }; + 1BA5B2401279FF900089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 270"; + rLen = 0; + rLoc = 8687; + rType = 0; + vrLen = 1626; + vrLoc = 7772; + }; + 1BA5B244127A001E0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 271"; + rLen = 0; + rLoc = 8682; + rType = 0; + vrLen = 1741; + vrLoc = 7798; + }; + 1BA5B248127A00350089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 270"; + rLen = 0; + rLoc = 8642; + rType = 0; + vrLen = 1741; + vrLoc = 7798; + }; + 1BA5B254127A00700089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 254"; + rLen = 0; + rLoc = 8244; + rType = 0; + vrLen = 1683; + vrLoc = 7798; + }; + 1BA5B269127A012B0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 89"; + rLen = 0; + rLoc = 2101; + rType = 0; + vrLen = 1434; + vrLoc = 963; + }; + 1BA5B26D127A01450089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 73"; + rLen = 0; + rLoc = 1537; + rType = 0; + vrLen = 1440; + vrLoc = 963; + }; + 1BA5B26F127A017A0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 162"; + rLen = 0; + rLoc = 4341; + rType = 0; + vrLen = 3021; + vrLoc = 3030; + }; + 1BA5B275127A021A0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 152"; + rLen = 0; + rLoc = 3914; + rType = 0; + vrLen = 2775; + vrLoc = 3073; + }; + 1BA5B287127A02E00089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 148"; + rLen = 0; + rLoc = 3740; + rType = 0; + vrLen = 2408; + vrLoc = 5640; + }; + 1BA5B28D127A03AF0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 1B0E9AE91279EFCC003108E7 /* aiVector3D.h */; + name = "aiVector3D.h: 23"; + rLen = 0; + rLoc = 838; + rType = 0; + vrLen = 2586; + vrLoc = 0; + }; + 1BA5B28E127A03AF0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 148"; + rLen = 0; + rLoc = 3740; + rType = 0; + vrLen = 2453; + vrLoc = 5640; + }; + 1BA5B28F127A03AF0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 91"; + rLen = 0; + rLoc = 2142; + rType = 0; + vrLen = 1746; + vrLoc = 1327; + }; + 1BA5B293127A03EE0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 284"; + rLen = 0; + rLoc = 8856; + rType = 0; + vrLen = 1724; + vrLoc = 8099; + }; + 1BA5B297127A04000089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 284"; + rLen = 0; + rLoc = 8856; + rType = 0; + vrLen = 1724; + vrLoc = 8099; + }; + 1BA5B29B127A04200089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 292"; + rLen = 0; + rLoc = 9088; + rType = 0; + vrLen = 1680; + vrLoc = 8099; + }; + 1BA5B29F127A042C0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 292"; + rLen = 0; + rLoc = 9088; + rType = 0; + vrLen = 1681; + vrLoc = 8099; + }; + 1BA5B2A3127A04370089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 292"; + rLen = 0; + rLoc = 9088; + rType = 0; + vrLen = 1682; + vrLoc = 8099; + }; + 1BA5B2A7127A04480089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 285"; + rLen = 0; + rLoc = 8856; + rType = 0; + vrLen = 1726; + vrLoc = 8099; + }; + 1BA5B2AB127A04520089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 284"; + rLen = 0; + rLoc = 8851; + rType = 0; + vrLen = 1725; + vrLoc = 8099; + }; + 1BA5B2AF127A04620089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 284"; + rLen = 0; + rLoc = 8851; + rType = 0; + vrLen = 1724; + vrLoc = 8099; + }; + 1BA5B2B3127A04930089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 293"; + rLen = 0; + rLoc = 9129; + rType = 0; + vrLen = 1672; + vrLoc = 8099; + }; + 1BA5B2B7127A04BA0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 122"; + rLen = 0; + rLoc = 2961; + rType = 0; + vrLen = 1860; + vrLoc = 1587; + }; + 1BA5B2BB127A04D30089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 122"; + rLen = 0; + rLoc = 2954; + rType = 0; + vrLen = 1858; + vrLoc = 1587; + }; + 1BA5B2C1127A05680089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 86"; + rLen = 0; + rLoc = 1889; + rType = 0; + vrLen = 1497; + vrLoc = 1010; + }; + 1BA5B2C5127A05A20089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 279"; + rLen = 0; + rLoc = 8691; + rType = 0; + vrLen = 1403; + vrLoc = 7978; + }; + 1BA5B2C9127A05CB0089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 122"; + rLen = 0; + rLoc = 2876; + rType = 0; + vrLen = 1860; + vrLoc = 1862; + }; + 1BA5B2CD127A06090089D2EA /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.mm: 279"; + rLen = 0; + rLoc = 8691; + rType = 0; + vrLen = 1428; + vrLoc = 7916; + }; + 1BDF445B1277729000D3E723 /* SimpleAssimpViewX */ = { + isa = PBXExecutable; + activeArgIndices = ( + ); + argumentStrings = ( + ); + autoAttachOnCrash = 1; + breakpointsEnabled = 0; + configStateDict = { + }; + customDataFormattersEnabled = 1; + dataTipCustomDataFormattersEnabled = 1; + dataTipShowTypeColumn = 1; + dataTipSortType = 0; + debuggerPlugin = GDBDebugging; + disassemblyDisplayState = 0; + dylibVariantSuffix = ""; + enableDebugStr = 1; + environmentEntries = ( + ); + executableSystemSymbolLevel = 0; + executableUserSymbolLevel = 0; + libgmallocEnabled = 0; + name = SimpleAssimpViewX; + savedGlobals = { + }; + showTypeColumn = 0; + sourceDirectories = ( + ); + variableFormatDictionary = { + }; + }; + 1BDF4468127772AF00D3E723 /* Source Control */ = { + isa = PBXSourceControlManager; + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; + scmConfiguration = { + repositoryNamesForRoots = { + "" = ""; + }; + }; + }; + 1BDF4469127772AF00D3E723 /* Code sense */ = { + isa = PBXCodeSenseManager; + indexTemplatePath = ""; + }; + 1BDF44A01277739F00D3E723 /* XDModelBookmark */ = { + isa = XDModelBookmark; + fRef = 775BDEF0067A8BF0009058FE /* MyDocument.xcdatamodel */; + fallbackIsa = PBXBookmark; + }; + 1BDF44A11277739F00D3E723 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 32DBCF750370BD2300C91783 /* SimpleAssimpViewX_Prefix.pch */; + name = "DisplayLinkAsyncMoviePlayer_Prefix.pch: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 257; + vrLoc = 0; + }; + 1BDF44AF127773D100D3E723 /* ImageCompression.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = ImageCompression.h; + path = /System/Library/Frameworks/QuickTime.framework/Versions/A/Headers/ImageCompression.h; + sourceTree = ""; + }; + 1BDF44B91277745D00D3E723 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 1BDF44AF127773D100D3E723 /* ImageCompression.h */; + name = "ImageCompression.h: 12564"; + rLen = 0; + rLoc = 439465; + rType = 0; + vrLen = 1641; + vrLoc = 433255; + }; + 1BDF44BB1277745D00D3E723 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 1BDF44BC1277745D00D3E723 /* ImageCompression.h */; + name = "ImageCompression.h: 12286"; + rLen = 2; + rLoc = 430618; + rType = 0; + vrLen = 1615; + vrLoc = 429944; + }; + 1BDF44BC1277745D00D3E723 /* ImageCompression.h */ = { + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = ImageCompression.h; + path = /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/QuickTime.framework/Headers/ImageCompression.h; + sourceTree = ""; + }; + 1BDF450D127776C900D3E723 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4B0FDCFA73011CA2CEA /* main.m */; + name = "main.m: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 266; + vrLoc = 0; + }; + 1BDF45101277771B00D3E723 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4AEFDCFA73011CA2CEA /* MyDocument.h */; + name = "MyDocument.h: 28"; + rLen = 0; + rLoc = 1014; + rType = 0; + vrLen = 622; + vrLoc = 0; + }; + 1BDF45111277771B00D3E723 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.m: 42"; + rLen = 0; + rLoc = 1604; + rType = 0; + vrLen = 1099; + vrLoc = 20; + }; + 1BDF45121277771B00D3E723 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */; + name = "MyDocument.m: 31"; + rLen = 26; + rLoc = 1281; + rType = 0; + vrLen = 1032; + vrLoc = 152; + }; + 2A37F4A9FDCFA73011CA2CEA /* Project object */ = { + activeArchitecturePreference = x86_64; + activeBuildConfigurationName = Debug; + activeExecutable = 1BDF445B1277729000D3E723 /* SimpleAssimpViewX */; + activeTarget = 8D15AC270486D014006FF6A4 /* SimpleAssimpViewX */; + addToTargets = ( + 8D15AC270486D014006FF6A4 /* SimpleAssimpViewX */, + ); + codeSenseManager = 1BDF4469127772AF00D3E723 /* Code sense */; + executables = ( + 1BDF445B1277729000D3E723 /* SimpleAssimpViewX */, + ); + perUserDictionary = { + PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 810, + 20, + 48, + 43, + 43, + 20, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXFileDataSource_FiletypeID, + PBXFileDataSource_Filename_ColumnID, + PBXFileDataSource_Built_ColumnID, + PBXFileDataSource_ObjectSize_ColumnID, + PBXFileDataSource_Errors_ColumnID, + PBXFileDataSource_Warnings_ColumnID, + PBXFileDataSource_Target_ColumnID, + ); + }; + PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 770, + 60, + 20, + 48, + 43, + 43, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXFileDataSource_FiletypeID, + PBXFileDataSource_Filename_ColumnID, + PBXTargetDataSource_PrimaryAttribute, + PBXFileDataSource_Built_ColumnID, + PBXFileDataSource_ObjectSize_ColumnID, + PBXFileDataSource_Errors_ColumnID, + PBXFileDataSource_Warnings_ColumnID, + ); + }; + PBXPerProjectTemplateStateSaveDate = 309985383; + PBXWorkspaceStateSaveDate = 309985383; + }; + perUserProjectItems = { + 1B0E99FF1279E80B003108E7 = 1B0E99FF1279E80B003108E7 /* PBXTextBookmark */; + 1B0E9A231279EA16003108E7 = 1B0E9A231279EA16003108E7 /* PBXTextBookmark */; + 1B0E9A241279EA16003108E7 = 1B0E9A241279EA16003108E7 /* PBXTextBookmark */; + 1B0E9A251279EA16003108E7 = 1B0E9A251279EA16003108E7 /* PBXTextBookmark */; + 1B0E9A2B1279EA26003108E7 = 1B0E9A2B1279EA26003108E7 /* PBXTextBookmark */; + 1B0E9A2F1279EA37003108E7 = 1B0E9A2F1279EA37003108E7 /* PBXTextBookmark */; + 1B0E9A331279EA40003108E7 = 1B0E9A331279EA40003108E7 /* PBXTextBookmark */; + 1B0E9A371279EA45003108E7 = 1B0E9A371279EA45003108E7 /* PBXTextBookmark */; + 1B0E9A3A1279EA54003108E7 = 1B0E9A3A1279EA54003108E7 /* PBXTextBookmark */; + 1B0E9A3D1279EA64003108E7 = 1B0E9A3D1279EA64003108E7 /* PBXTextBookmark */; + 1B0E9A4D1279EB1F003108E7 = 1B0E9A4D1279EB1F003108E7 /* PBXTextBookmark */; + 1B0E9A501279EB8D003108E7 = 1B0E9A501279EB8D003108E7 /* PBXTextBookmark */; + 1B0E9A511279EBA9003108E7 = 1B0E9A511279EBA9003108E7 /* PBXTextBookmark */; + 1B0E9A541279EC57003108E7 = 1B0E9A541279EC57003108E7 /* PBXTextBookmark */; + 1B0E9A561279EC72003108E7 = 1B0E9A561279EC72003108E7 /* PBXTextBookmark */; + 1B0E9A571279EC72003108E7 = 1B0E9A571279EC72003108E7 /* PBXTextBookmark */; + 1B0E9A581279EC72003108E7 = 1B0E9A581279EC72003108E7 /* PBXTextBookmark */; + 1B0E9A921279ED56003108E7 = 1B0E9A921279ED56003108E7 /* PBXTextBookmark */; + 1B0E9A9C1279EE7D003108E7 = 1B0E9A9C1279EE7D003108E7 /* PBXTextBookmark */; + 1B0E9A9D1279EE7D003108E7 = 1B0E9A9D1279EE7D003108E7 /* PBXTextBookmark */; + 1B0E9A9E1279EE7D003108E7 = 1B0E9A9E1279EE7D003108E7 /* PBXTextBookmark */; + 1B0E9A9F1279EE7D003108E7 = 1B0E9A9F1279EE7D003108E7 /* PBXTextBookmark */; + 1B0E9AA01279EE7D003108E7 = 1B0E9AA01279EE7D003108E7 /* PBXTextBookmark */; + 1B0E9B0C1279F08F003108E7 = 1B0E9B0C1279F08F003108E7 /* PBXTextBookmark */; + 1B0E9B0D1279F08F003108E7 = 1B0E9B0D1279F08F003108E7 /* PBXTextBookmark */; + 1B0E9B0E1279F08F003108E7 = 1B0E9B0E1279F08F003108E7 /* PBXTextBookmark */; + 1B0E9B0F1279F08F003108E7 = 1B0E9B0F1279F08F003108E7 /* PBXTextBookmark */; + 1B0E9B101279F08F003108E7 = 1B0E9B101279F08F003108E7 /* PBXTextBookmark */; + 1B0E9B1D1279F110003108E7 = 1B0E9B1D1279F110003108E7 /* PBXTextBookmark */; + 1B0E9B1E1279F110003108E7 = 1B0E9B1E1279F110003108E7 /* PBXTextBookmark */; + 1B0E9B1F1279F110003108E7 = 1B0E9B1F1279F110003108E7 /* PBXTextBookmark */; + 1B0E9B201279F118003108E7 = 1B0E9B201279F118003108E7 /* PBXTextBookmark */; + 1B0E9B211279F118003108E7 = 1B0E9B211279F118003108E7 /* PBXTextBookmark */; + 1B0E9B221279F118003108E7 = 1B0E9B221279F118003108E7 /* PBXTextBookmark */; + 1B0E9B231279F118003108E7 = 1B0E9B231279F118003108E7 /* PBXTextBookmark */; + 1B0E9B241279F118003108E7 = 1B0E9B241279F118003108E7 /* PBXTextBookmark */; + 1B0E9BA81279F2A2003108E7 = 1B0E9BA81279F2A2003108E7 /* PBXTextBookmark */; + 1B0E9BA91279F2A2003108E7 = 1B0E9BA91279F2A2003108E7 /* PBXTextBookmark */; + 1B0E9BB41279F317003108E7 = 1B0E9BB41279F317003108E7 /* PBXTextBookmark */; + 1B0E9BB51279F317003108E7 = 1B0E9BB51279F317003108E7 /* PBXTextBookmark */; + 1B0E9BB61279F317003108E7 = 1B0E9BB61279F317003108E7 /* PBXTextBookmark */; + 1B0E9BBC1279F38A003108E7 = 1B0E9BBC1279F38A003108E7 /* PBXTextBookmark */; + 1BA5B1841279F5FE0089D2EA = 1BA5B1841279F5FE0089D2EA /* PBXTextBookmark */; + 1BA5B1851279F5FE0089D2EA = 1BA5B1851279F5FE0089D2EA /* PBXTextBookmark */; + 1BA5B1941279F61A0089D2EA = 1BA5B1941279F61A0089D2EA /* PBXTextBookmark */; + 1BA5B1951279F61A0089D2EA = 1BA5B1951279F61A0089D2EA /* PBXTextBookmark */; + 1BA5B19E1279F6480089D2EA = 1BA5B19E1279F6480089D2EA /* PBXTextBookmark */; + 1BA5B1A21279F6640089D2EA = 1BA5B1A21279F6640089D2EA /* PBXTextBookmark */; + 1BA5B1A61279F6910089D2EA = 1BA5B1A61279F6910089D2EA /* PBXTextBookmark */; + 1BA5B1AE1279F6D30089D2EA = 1BA5B1AE1279F6D30089D2EA /* PBXTextBookmark */; + 1BA5B1B21279F7010089D2EA = 1BA5B1B21279F7010089D2EA /* PBXTextBookmark */; + 1BA5B1B41279F72F0089D2EA = 1BA5B1B41279F72F0089D2EA /* PBXTextBookmark */; + 1BA5B1B91279F7520089D2EA = 1BA5B1B91279F7520089D2EA /* PBXTextBookmark */; + 1BA5B1BD1279F79D0089D2EA = 1BA5B1BD1279F79D0089D2EA /* PBXTextBookmark */; + 1BA5B1C11279F7BB0089D2EA = 1BA5B1C11279F7BB0089D2EA /* PBXTextBookmark */; + 1BA5B1C51279F7CC0089D2EA = 1BA5B1C51279F7CC0089D2EA /* PBXTextBookmark */; + 1BA5B1C91279F7F70089D2EA = 1BA5B1C91279F7F70089D2EA /* PBXTextBookmark */; + 1BA5B1CB1279F81B0089D2EA = 1BA5B1CB1279F81B0089D2EA /* PBXTextBookmark */; + 1BA5B1D01279F8BF0089D2EA = 1BA5B1D01279F8BF0089D2EA /* PBXTextBookmark */; + 1BA5B1D21279F8CF0089D2EA = 1BA5B1D21279F8CF0089D2EA /* PBXTextBookmark */; + 1BA5B1D31279F8CF0089D2EA = 1BA5B1D31279F8CF0089D2EA /* PBXTextBookmark */; + 1BA5B1D41279F9280089D2EA = 1BA5B1D41279F9280089D2EA /* PBXTextBookmark */; + 1BA5B1D91279F97C0089D2EA = 1BA5B1D91279F97C0089D2EA /* PBXTextBookmark */; + 1BA5B1DA1279F97C0089D2EA = 1BA5B1DA1279F97C0089D2EA /* PBXTextBookmark */; + 1BA5B1DE1279F9AC0089D2EA = 1BA5B1DE1279F9AC0089D2EA /* PBXTextBookmark */; + 1BA5B1DF1279F9AC0089D2EA = 1BA5B1DF1279F9AC0089D2EA /* PBXTextBookmark */; + 1BA5B1E31279F9DA0089D2EA = 1BA5B1E31279F9DA0089D2EA /* PBXTextBookmark */; + 1BA5B1E41279F9DA0089D2EA = 1BA5B1E41279F9DA0089D2EA /* PBXTextBookmark */; + 1BA5B1E61279FA750089D2EA = 1BA5B1E61279FA750089D2EA /* PBXTextBookmark */; + 1BA5B1E71279FA760089D2EA = 1BA5B1E71279FA760089D2EA /* PBXTextBookmark */; + 1BA5B1E81279FA760089D2EA = 1BA5B1E81279FA760089D2EA /* PBXTextBookmark */; + 1BA5B1ED1279FB2B0089D2EA = 1BA5B1ED1279FB2B0089D2EA /* PBXTextBookmark */; + 1BA5B1EE1279FB2B0089D2EA = 1BA5B1EE1279FB2B0089D2EA /* PBXTextBookmark */; + 1BA5B1EF1279FB7E0089D2EA = 1BA5B1EF1279FB7E0089D2EA /* PBXTextBookmark */; + 1BA5B1F01279FB7E0089D2EA = 1BA5B1F01279FB7E0089D2EA /* PBXTextBookmark */; + 1BA5B1F31279FBBC0089D2EA = 1BA5B1F31279FBBC0089D2EA /* PBXTextBookmark */; + 1BA5B1F41279FBBC0089D2EA = 1BA5B1F41279FBBC0089D2EA /* PBXTextBookmark */; + 1BA5B1F81279FBCD0089D2EA = 1BA5B1F81279FBCD0089D2EA /* PBXTextBookmark */; + 1BA5B1F91279FBCD0089D2EA = 1BA5B1F91279FBCD0089D2EA /* PBXTextBookmark */; + 1BA5B1FF1279FBFE0089D2EA = 1BA5B1FF1279FBFE0089D2EA /* PBXTextBookmark */; + 1BA5B2001279FBFE0089D2EA = 1BA5B2001279FBFE0089D2EA /* PBXTextBookmark */; + 1BA5B2021279FC0D0089D2EA = 1BA5B2021279FC0D0089D2EA /* PBXTextBookmark */; + 1BA5B2031279FC0D0089D2EA = 1BA5B2031279FC0D0089D2EA /* PBXTextBookmark */; + 1BA5B2041279FC280089D2EA = 1BA5B2041279FC280089D2EA /* PBXTextBookmark */; + 1BA5B2071279FC580089D2EA = 1BA5B2071279FC580089D2EA /* PBXTextBookmark */; + 1BA5B2081279FC580089D2EA = 1BA5B2081279FC580089D2EA /* PBXTextBookmark */; + 1BA5B20C1279FC910089D2EA = 1BA5B20C1279FC910089D2EA /* PBXTextBookmark */; + 1BA5B20D1279FC910089D2EA = 1BA5B20D1279FC910089D2EA /* PBXTextBookmark */; + 1BA5B2111279FCA60089D2EA = 1BA5B2111279FCA60089D2EA /* PBXTextBookmark */; + 1BA5B2121279FCA60089D2EA = 1BA5B2121279FCA60089D2EA /* PBXTextBookmark */; + 1BA5B2161279FCBC0089D2EA = 1BA5B2161279FCBC0089D2EA /* PBXTextBookmark */; + 1BA5B2171279FCBC0089D2EA = 1BA5B2171279FCBC0089D2EA /* PBXTextBookmark */; + 1BA5B2191279FCF40089D2EA = 1BA5B2191279FCF40089D2EA /* PBXTextBookmark */; + 1BA5B21A1279FCF40089D2EA = 1BA5B21A1279FCF40089D2EA /* PBXTextBookmark */; + 1BA5B21D1279FD420089D2EA = 1BA5B21D1279FD420089D2EA /* PBXTextBookmark */; + 1BA5B21E1279FD650089D2EA = 1BA5B21E1279FD650089D2EA /* PBXTextBookmark */; + 1BA5B21F1279FD650089D2EA = 1BA5B21F1279FD650089D2EA /* PBXTextBookmark */; + 1BA5B2221279FD7E0089D2EA = 1BA5B2221279FD7E0089D2EA /* PBXTextBookmark */; + 1BA5B2231279FD7E0089D2EA = 1BA5B2231279FD7E0089D2EA /* PBXTextBookmark */; + 1BA5B2271279FD990089D2EA = 1BA5B2271279FD990089D2EA /* PBXTextBookmark */; + 1BA5B2281279FD990089D2EA = 1BA5B2281279FD990089D2EA /* PBXTextBookmark */; + 1BA5B22C1279FDAA0089D2EA = 1BA5B22C1279FDAA0089D2EA /* PBXTextBookmark */; + 1BA5B22D1279FDAA0089D2EA = 1BA5B22D1279FDAA0089D2EA /* PBXTextBookmark */; + 1BA5B2311279FDCF0089D2EA = 1BA5B2311279FDCF0089D2EA /* PBXTextBookmark */; + 1BA5B2321279FDCF0089D2EA = 1BA5B2321279FDCF0089D2EA /* PBXTextBookmark */; + 1BA5B2361279FDE30089D2EA = 1BA5B2361279FDE30089D2EA /* PBXTextBookmark */; + 1BA5B2371279FDE30089D2EA = 1BA5B2371279FDE30089D2EA /* PBXTextBookmark */; + 1BA5B23E1279FF900089D2EA = 1BA5B23E1279FF900089D2EA /* PBXTextBookmark */; + 1BA5B23F1279FF900089D2EA = 1BA5B23F1279FF900089D2EA /* PBXTextBookmark */; + 1BA5B2401279FF900089D2EA = 1BA5B2401279FF900089D2EA /* PBXTextBookmark */; + 1BA5B244127A001E0089D2EA = 1BA5B244127A001E0089D2EA /* PBXTextBookmark */; + 1BA5B248127A00350089D2EA = 1BA5B248127A00350089D2EA /* PBXTextBookmark */; + 1BA5B254127A00700089D2EA /* PBXTextBookmark */ = 1BA5B254127A00700089D2EA /* PBXTextBookmark */; + 1BA5B269127A012B0089D2EA /* PBXTextBookmark */ = 1BA5B269127A012B0089D2EA /* PBXTextBookmark */; + 1BA5B26D127A01450089D2EA /* PBXTextBookmark */ = 1BA5B26D127A01450089D2EA /* PBXTextBookmark */; + 1BA5B26F127A017A0089D2EA /* PBXTextBookmark */ = 1BA5B26F127A017A0089D2EA /* PBXTextBookmark */; + 1BA5B275127A021A0089D2EA /* PBXTextBookmark */ = 1BA5B275127A021A0089D2EA /* PBXTextBookmark */; + 1BA5B287127A02E00089D2EA /* PBXTextBookmark */ = 1BA5B287127A02E00089D2EA /* PBXTextBookmark */; + 1BA5B28D127A03AF0089D2EA /* PBXTextBookmark */ = 1BA5B28D127A03AF0089D2EA /* PBXTextBookmark */; + 1BA5B28E127A03AF0089D2EA /* PBXTextBookmark */ = 1BA5B28E127A03AF0089D2EA /* PBXTextBookmark */; + 1BA5B28F127A03AF0089D2EA /* PBXTextBookmark */ = 1BA5B28F127A03AF0089D2EA /* PBXTextBookmark */; + 1BA5B293127A03EE0089D2EA /* PBXTextBookmark */ = 1BA5B293127A03EE0089D2EA /* PBXTextBookmark */; + 1BA5B297127A04000089D2EA /* PBXTextBookmark */ = 1BA5B297127A04000089D2EA /* PBXTextBookmark */; + 1BA5B29B127A04200089D2EA /* PBXTextBookmark */ = 1BA5B29B127A04200089D2EA /* PBXTextBookmark */; + 1BA5B29F127A042C0089D2EA /* PBXTextBookmark */ = 1BA5B29F127A042C0089D2EA /* PBXTextBookmark */; + 1BA5B2A3127A04370089D2EA /* PBXTextBookmark */ = 1BA5B2A3127A04370089D2EA /* PBXTextBookmark */; + 1BA5B2A7127A04480089D2EA /* PBXTextBookmark */ = 1BA5B2A7127A04480089D2EA /* PBXTextBookmark */; + 1BA5B2AB127A04520089D2EA /* PBXTextBookmark */ = 1BA5B2AB127A04520089D2EA /* PBXTextBookmark */; + 1BA5B2AF127A04620089D2EA /* PBXTextBookmark */ = 1BA5B2AF127A04620089D2EA /* PBXTextBookmark */; + 1BA5B2B3127A04930089D2EA /* PBXTextBookmark */ = 1BA5B2B3127A04930089D2EA /* PBXTextBookmark */; + 1BA5B2B7127A04BA0089D2EA /* PBXTextBookmark */ = 1BA5B2B7127A04BA0089D2EA /* PBXTextBookmark */; + 1BA5B2BB127A04D30089D2EA /* PBXTextBookmark */ = 1BA5B2BB127A04D30089D2EA /* PBXTextBookmark */; + 1BA5B2C1127A05680089D2EA /* PBXTextBookmark */ = 1BA5B2C1127A05680089D2EA /* PBXTextBookmark */; + 1BA5B2C5127A05A20089D2EA /* PBXTextBookmark */ = 1BA5B2C5127A05A20089D2EA /* PBXTextBookmark */; + 1BA5B2C9127A05CB0089D2EA /* PBXTextBookmark */ = 1BA5B2C9127A05CB0089D2EA /* PBXTextBookmark */; + 1BA5B2CD127A06090089D2EA /* PBXTextBookmark */ = 1BA5B2CD127A06090089D2EA /* PBXTextBookmark */; + 1BDF44A01277739F00D3E723 = 1BDF44A01277739F00D3E723 /* XDModelBookmark */; + 1BDF44A11277739F00D3E723 = 1BDF44A11277739F00D3E723 /* PBXTextBookmark */; + 1BDF44B91277745D00D3E723 = 1BDF44B91277745D00D3E723 /* PBXTextBookmark */; + 1BDF44BB1277745D00D3E723 = 1BDF44BB1277745D00D3E723 /* PBXTextBookmark */; + 1BDF450D127776C900D3E723 = 1BDF450D127776C900D3E723 /* PBXTextBookmark */; + 1BDF45101277771B00D3E723 = 1BDF45101277771B00D3E723 /* PBXTextBookmark */; + 1BDF45111277771B00D3E723 = 1BDF45111277771B00D3E723 /* PBXTextBookmark */; + 1BDF45121277771B00D3E723 = 1BDF45121277771B00D3E723 /* PBXTextBookmark */; + }; + sourceControlManager = 1BDF4468127772AF00D3E723 /* Source Control */; + userBuildSettings = { + }; + }; + 2A37F4ACFDCFA73011CA2CEA /* MyDocument.mm */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1622, 10283}}"; + sepNavSelRange = "{8691, 0}"; + sepNavVisRange = "{7916, 1428}"; + }; + }; + 2A37F4AEFDCFA73011CA2CEA /* MyDocument.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1146, 849}}"; + sepNavSelRange = "{178, 0}"; + sepNavVisRange = "{0, 1644}"; + }; + }; + 2A37F4B0FDCFA73011CA2CEA /* main.m */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {779, 650}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 266}"; + }; + }; + 32DBCF750370BD2300C91783 /* SimpleAssimpViewX_Prefix.pch */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {894, 673}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 257}"; + }; + }; + 775BDEF0067A8BF0009058FE /* MyDocument.xcdatamodel */ = { + uiCtxt = { + "Xdesign Model Editor Bookmark Key" = { + UIContextForDetailArea = { + _indexOfSelectedPane = 0; + _indexOfSelectedView = 1; + }; + UIContextForEntityArea = { + _indexOfSelectedView = 0; + chosenTableColumnns = ( + "ET Entity", + "ET Abstract", + "ET Class", + ); + chosenTableColumnns_sortDirections = ( + YES, + ); + chosenTableColumnns_sortKeys = ( + name, + ); + chosenTableColumnns_sortSelectors = ( + "_xdcaseInsensitiveNumericCompare:", + ); + chosenTableWidths = ( + 103.000000, + 22.000000, + 49.080078, + ); + }; + UIContextForLayoutManager = { + detailSplitGeometry = { + _collapsingFrameDimension = 0; + _indexOfCollapsedView = 0; + _percentageOfCollapsedView = 0; + isCollapsed = yes; + sizes = ( + "{{0, 0}, {604, 218}}", + "{{609, 0}, {318, 218}}", + ); + }; + diagramSplitGeometry = { + _collapsingFrameDimension = 0; + _indexOfCollapsedView = 0; + _percentageOfCollapsedView = 0; + isCollapsed = yes; + sizes = ( + "{{0, 0}, {927, 220}}", + "{{0, 225}, {927, 463}}", + ); + }; + tableSplitGeometry = { + _collapsingFrameDimension = 0; + _indexOfCollapsedView = 0; + _percentageOfCollapsedView = 0; + isCollapsed = yes; + sizes = ( + "{{0, 0}, {199, 218}}", + "{{204, 0}, {400, 218}}", + ); + }; + }; + UIContextForPropertyArea = { + _indexOfSelectedView = 0; + chosenTableColumnnFRTs = ( + "FT Fetch Request", + "FT Predicate", + ); + chosenTableColumnnFRTs_sortDirections = ( + YES, + ); + chosenTableColumnnFRTs_sortKeys = ( + name, + ); + chosenTableColumnnFRTs_sortSelectors = ( + "_xdcaseInsensitiveNumericCompare:", + ); + chosenTableColumnnsAT = ( + "AT Attribute", + "AT Type", + ); + chosenTableColumnnsAT_sortDirections = ( + YES, + ); + chosenTableColumnnsAT_sortKeys = ( + name, + ); + chosenTableColumnnsAT_sortSelectors = ( + "_xdcaseInsensitiveNumericCompare:", + ); + chosenTableColumnnsFPT = ( + "FP FetchedProperty", + "FP Destination", + "FP Predicate", + ); + chosenTableColumnnsFPT_sortDirections = ( + YES, + ); + chosenTableColumnnsFPT_sortKeys = ( + name, + ); + chosenTableColumnnsFPT_sortSelectors = ( + "_xdcaseInsensitiveNumericCompare:", + ); + chosenTableColumnnsPT = ( + "PT Property", + "PT Kind", + "PT SharedKeyOne", + ); + chosenTableColumnnsPT_sortDirections = ( + YES, + ); + chosenTableColumnnsPT_sortKeys = ( + name, + ); + chosenTableColumnnsPT_sortSelectors = ( + "_xdcaseInsensitiveNumericCompare:", + ); + chosenTableColumnnsRT = ( + "RT Relationship", + "RT Destination", + ); + chosenTableColumnnsRT_sortDirections = ( + YES, + ); + chosenTableColumnnsRT_sortKeys = ( + name, + ); + chosenTableColumnnsRT_sortSelectors = ( + "_xdcaseInsensitiveNumericCompare:", + ); + chosenTableWidthsAT = ( + 128.000000, + 64.000000, + ); + chosenTableWidthsFPT = ( + 128.000000, + 64.000000, + 144.764160, + ); + chosenTableWidthsFRT = ( + 128.000000, + 249.764160, + ); + chosenTableWidthsPT = ( + 128.000000, + 108.110840, + 137.570801, + ); + chosenTableWidthsRT = ( + 128.000000, + 64.000000, + ); + }; + "xdesign model browser state key - shown/hidden" = 1; + "xdesign model diagram view visible rect key" = "{{-96, 0}, {912, 448}}"; + }; + }; + }; + 8D15AC270486D014006FF6A4 /* SimpleAssimpViewX */ = { + activeExec = 0; + executables = ( + 1BDF445B1277729000D3E723 /* SimpleAssimpViewX */, + ); + }; +} diff --git a/samples/SimpleAssimpViewX/SimpleAssimpViewX_Prefix.pch b/samples/SimpleAssimpViewX/SimpleAssimpViewX_Prefix.pch new file mode 100644 index 000000000..2d3896ddb --- /dev/null +++ b/samples/SimpleAssimpViewX/SimpleAssimpViewX_Prefix.pch @@ -0,0 +1,9 @@ +// +// Prefix header for all source files of the 'DisplayLinkAsyncMoviePlayer' target in the 'DisplayLinkAsyncMoviePlayer' project +// + +#ifdef __OBJC__ + #import + #import + #import +#endif diff --git a/samples/SimpleAssimpViewX/include/copy_assimp_headers_here.txt b/samples/SimpleAssimpViewX/include/copy_assimp_headers_here.txt new file mode 100644 index 000000000..e69de29bb diff --git a/samples/SimpleAssimpViewX/main.m b/samples/SimpleAssimpViewX/main.m new file mode 100644 index 000000000..2783cdb81 --- /dev/null +++ b/samples/SimpleAssimpViewX/main.m @@ -0,0 +1,14 @@ +// +// main.m +// DisplayLinkAsyncMoviePlayer +// +// Created by vade on 10/26/10. +// Copyright __MyCompanyName__ 2010 . All rights reserved. +// + +#import + +int main(int argc, char *argv[]) +{ + return NSApplicationMain(argc, (const char **) argv); +} diff --git a/workspaces/vc9/assimp.vcproj b/workspaces/vc9/assimp.vcproj index cd1525e9d..2c545d3ad 100644 --- a/workspaces/vc9/assimp.vcproj +++ b/workspaces/vc9/assimp.vcproj @@ -1,7 +1,7 @@