Browse Source

- move importer and postprocessing step construction chain to separate files to make them available to the exporter part.
+ introduce aiScene::mPrivate. This is a potentially breaking API change. The new member is added at the end of the structure though, so serious regressions are not to be expected.
+ add a mPreprocessing parameter to all Export API calls. Allow exporters to specify further PP steps to be executed prior to handing control to them. The entire export API now operates on a copy of the scene that the user passed in.
- mass refactoring: all constructors of BaseProcess/BaseImporter inherited classes are public now and Importer will perhaps feel a bit sad after having loft all of its friends.
# fix const correctness in SceneCombiner


git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1060 67173fc5-114c-0410-ac8e-9d2fd5bffc1f

aramis_acg 14 years ago
parent
commit
665f73861e
83 changed files with 4814 additions and 1366 deletions
  1. 1 5
      code/3DSLoader.h
  2. 2 6
      code/ACLoader.h
  3. 2 6
      code/ASELoader.h
  4. 1 0
      code/Assimp.cpp
  5. 6 6
      code/AssimpCExport.cpp
  6. 62 0
      code/AssimpPCH.cpp
  7. 1 0
      code/AssimpPCH.h
  8. 2 5
      code/BVHLoader.h
  9. 2 0
      code/BaseImporter.cpp
  10. 1 145
      code/BaseImporter.h
  11. 2 0
      code/BaseProcess.cpp
  12. 2 7
      code/BlenderLoader.h
  13. 4 0
      code/CMakeLists.txt
  14. 2 7
      code/COBLoader.h
  15. 2 5
      code/CSMLoader.h
  16. 1 5
      code/CalcTangentsProcess.h
  17. 2 6
      code/ColladaLoader.h
  18. 2 7
      code/ComputeUVMappingProcess.h
  19. 1 4
      code/ConvertToLHProcess.h
  20. 2 6
      code/DXFLoader.h
  21. 1 6
      code/DeboneProcess.h
  22. 42 5
      code/Exporter.cpp
  23. 1 6
      code/FindDegenerates.h
  24. 2 7
      code/FindInstancesProcess.h
  25. 1 7
      code/FindInvalidDataProcess.h
  26. 3 7
      code/FixNormalsStep.h
  27. 1 5
      code/GenFaceNormalsProcess.h
  28. 1 6
      code/GenVertexNormalsProcess.h
  29. 2 6
      code/HMPLoader.h
  30. 2 7
      code/IFCLoader.h
  31. 1 1
      code/IRRLoader.cpp
  32. 2 6
      code/IRRLoader.h
  33. 2 6
      code/IRRMeshLoader.h
  34. 17 398
      code/Importer.cpp
  35. 204 0
      code/Importer.h
  36. 284 0
      code/ImporterRegistry.cpp
  37. 1 5
      code/ImproveCacheLocality.h
  38. 1 6
      code/JoinVerticesProcess.h
  39. 2 7
      code/LWOLoader.h
  40. 1 0
      code/LWSLoader.cpp
  41. 2 6
      code/LWSLoader.h
  42. 1 6
      code/LimitBoneWeightsProcess.h
  43. 2 6
      code/MD2Loader.h
  44. 1 0
      code/MD3Loader.cpp
  45. 2 6
      code/MD3Loader.h
  46. 2 6
      code/MD5Loader.h
  47. 2 6
      code/MDCLoader.h
  48. 2 6
      code/MDLLoader.h
  49. 1 2
      code/MS3DLoader.h
  50. 2 5
      code/NDOLoader.h
  51. 2 6
      code/NFFLoader.h
  52. 2 6
      code/OFFLoader.h
  53. 2 5
      code/ObjFileImporter.h
  54. 1 6
      code/OptimizeGraph.h
  55. 1 6
      code/OptimizeMeshes.h
  56. 2 6
      code/PlyLoader.h
  57. 75 75
      code/PolyTools.h
  58. 229 0
      code/PostStepRegistry.cpp
  59. 1 6
      code/PretransformVertices.h
  60. 2 3
      code/Q3BSPFileImporter.h
  61. 2 6
      code/Q3DLoader.h
  62. 2 6
      code/RawLoader.h
  63. 1 6
      code/RemoveRedundantMaterials.h
  64. 1 6
      code/RemoveVCProcess.h
  65. 2 6
      code/SMDLoader.h
  66. 2 6
      code/STLLoader.h
  67. 5 4
      code/SceneCombiner.cpp
  68. 2 2
      code/SceneCombiner.h
  69. 70 0
      code/ScenePrivate.h
  70. 1 6
      code/SortByPTypeProcess.h
  71. 1 5
      code/SplitByBoneCountProcess.h
  72. 3 12
      code/SplitLargeMeshes.h
  73. 2 6
      code/TerragenLoader.h
  74. 2 0
      code/TextureTransform.h
  75. 1 6
      code/TriangulateProcess.h
  76. 2 6
      code/UnrealLoader.h
  77. 1 5
      code/ValidateDataStructure.h
  78. 2 6
      code/XFileImporter.h
  79. 3368 111
      code/makefile
  80. 12 51
      include/aiScene.h
  81. 29 4
      include/export.h
  82. 27 8
      include/export.hpp
  83. 271 219
      workspaces/vc9/assimp.vcproj

+ 1 - 5
code/3DSLoader.h

@@ -61,13 +61,9 @@ using namespace D3DS;
  */
 class Discreet3DSImporter : public BaseImporter
 {
-	friend class Importer;
+public:
 
-protected:
-	/** Constructor to be privately used by Importer */
 	Discreet3DSImporter();
-
-	/** Destructor, private as well */
 	~Discreet3DSImporter();
 
 public:

+ 2 - 6
code/ACLoader.h

@@ -56,16 +56,12 @@ namespace Assimp	{
 */
 class AC3DImporter : public BaseImporter
 {
-	friend class Importer;
-
-protected:
-	/** Constructor to be privately used by Importer */
+public:
 	AC3DImporter();
-
-	/** Destructor, private as well */
 	~AC3DImporter();
 
 
+
 	// Represents an AC3D material
 	struct Material
 	{

+ 2 - 6
code/ASELoader.h

@@ -58,15 +58,11 @@ class MaterialHelper;
  *
  */
 class ASEImporter : public BaseImporter	{
-	friend class Importer;
-
-protected:
-	/** Constructor to be privately used by Importer */
+public:
 	ASEImporter();
-
-	/** Destructor, private as well */
 	~ASEImporter();
 
+
 public:
 
 	// -------------------------------------------------------------------

+ 1 - 0
code/Assimp.cpp

@@ -47,6 +47,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 #include "GenericProperty.h"
 #include "CInterfaceIOWrapper.h"
+#include "Importer.h"
 
 // ------------------------------------------------------------------------------------------------
 #ifdef AI_C_THREADSAFE

+ 6 - 6
code/AssimpCExport.cpp

@@ -65,29 +65,29 @@ ASSIMP_API const aiExportFormatDesc* aiGetExportFormatDescription( size_t pIndex
 
 
 // ------------------------------------------------------------------------------------------------
-ASSIMP_API aiReturn aiExportScene( const aiScene* pScene, const char* pFormatId, const char* pFileName )
+ASSIMP_API aiReturn aiExportScene( const aiScene* pScene, const char* pFormatId, const char* pFileName, unsigned int pPreprocessing )
 {
-	return ::aiExportSceneEx(pScene,pFormatId,pFileName,NULL);
+	return ::aiExportSceneEx(pScene,pFormatId,pFileName,NULL,pPreprocessing);
 }
 
 
 // ------------------------------------------------------------------------------------------------
-ASSIMP_API aiReturn aiExportSceneEx( const aiScene* pScene, const char* pFormatId, const char* pFileName, aiFileIO* pIO)
+ASSIMP_API aiReturn aiExportSceneEx( const aiScene* pScene, const char* pFormatId, const char* pFileName, aiFileIO* pIO, unsigned int pPreprocessing )
 {
 	Exporter exp;
 
 	if (pIO) {
 		exp.SetIOHandler(new CIOSystemWrapper(pIO));
 	}
-	return exp.Export(pScene,pFormatId,pFileName);
+	return exp.Export(pScene,pFormatId,pFileName,pPreprocessing);
 }
 
 
 // ------------------------------------------------------------------------------------------------
-ASSIMP_API const C_STRUCT aiExportDataBlob* aiExportSceneToBlob( const aiScene* pScene, const char* pFormatId )
+ASSIMP_API const C_STRUCT aiExportDataBlob* aiExportSceneToBlob( const aiScene* pScene, const char* pFormatId, unsigned int pPreprocessing  )
 {
 	Exporter exp;
-	if (!exp.ExportToBlob(pScene,pFormatId)) {
+	if (!exp.ExportToBlob(pScene,pFormatId,pPreprocessing)) {
 		return NULL;
 	}
 	const aiExportDataBlob* blob = exp.GetOrphanedBlob();

+ 62 - 0
code/AssimpPCH.cpp

@@ -68,3 +68,65 @@ ASSIMP_API unsigned int aiGetVersionRevision ()
 	return SVNRevision;
 }
 
+// ------------------------------------------------------------------------------------------------
+aiScene::aiScene()
+	: mFlags()
+	, mRootNode()
+	, mNumMeshes()
+	, mMeshes()
+	, mNumMaterials()
+	, mMaterials()
+	, mNumAnimations()
+	, mAnimations()
+	, mNumTextures()
+	, mTextures()
+	, mNumLights()
+	, mLights()
+	, mNumCameras()
+	, mCameras()
+	, mPrivate(new Assimp::ScenePrivateData())
+	{
+	}
+
+// ------------------------------------------------------------------------------------------------
+aiScene::~aiScene()
+{
+	// delete all sub-objects recursively
+	delete mRootNode;
+
+	// To make sure we won't crash if the data is invalid it's
+	// much better to check whether both mNumXXX and mXXX are
+	// valid instead of relying on just one of them.
+	if (mNumMeshes && mMeshes) 
+		for( unsigned int a = 0; a < mNumMeshes; a++)
+			delete mMeshes[a];
+	delete [] mMeshes;
+
+	if (mNumMaterials && mMaterials) 
+		for( unsigned int a = 0; a < mNumMaterials; a++)
+			delete mMaterials[a];
+	delete [] mMaterials;
+
+	if (mNumAnimations && mAnimations) 
+		for( unsigned int a = 0; a < mNumAnimations; a++)
+			delete mAnimations[a];
+	delete [] mAnimations;
+
+	if (mNumTextures && mTextures) 
+		for( unsigned int a = 0; a < mNumTextures; a++)
+			delete mTextures[a];
+	delete [] mTextures;
+
+	if (mNumLights && mLights) 
+		for( unsigned int a = 0; a < mNumLights; a++)
+			delete mLights[a];
+	delete [] mLights;
+
+	if (mNumCameras && mCameras) 
+		for( unsigned int a = 0; a < mNumCameras; a++)
+			delete mCameras[a];
+	delete [] mCameras;
+
+	delete static_cast<Assimp::ScenePrivateData*>( mPrivate );
+}
+

+ 1 - 0
code/AssimpPCH.h

@@ -145,6 +145,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #include "StringComparison.h"
 #include "StreamReader.h"
 #include "qnan.h"
+#include "ScenePrivate.h" 
 
 
 // We need those constants, workaround for any platforms where nobody defined them yet

+ 2 - 5
code/BVHLoader.h

@@ -61,7 +61,6 @@ namespace Assimp
 */
 class BVHLoader : public BaseImporter
 {
-	friend class Importer;
 
 	/** Possible animation channels for which the motion data holds the values */
 	enum ChannelType
@@ -85,11 +84,9 @@ class BVHLoader : public BaseImporter
 		Node( const aiNode* pNode) : mNode( pNode) { }
 	};
 
-protected:
-	/** Constructor to be privately used by Importer */
-	BVHLoader();
+public:
 
-	/** Destructor, private as well */
+	BVHLoader();
 	~BVHLoader();
 
 public:

+ 2 - 0
code/BaseImporter.cpp

@@ -47,6 +47,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #include "BaseImporter.h"
 #include "FileSystemFilter.h"
 
+#include "Importer.h"
+
 using namespace Assimp;
 
 // ------------------------------------------------------------------------------------------------

+ 1 - 145
code/BaseImporter.h

@@ -94,66 +94,7 @@ private:
 	bool mdismiss;
 };
 
-//! @cond never
-// ---------------------------------------------------------------------------
-/** @brief Internal PIMPL implementation for Assimp::Importer
- *
- *  Using this idiom here allows us to drop the dependency from
- *  std::vector and std::map in the public headers. Furthermore we are dropping
- *  any STL interface problems caused by mismatching STL settings. All
- *  size calculation are now done by us, not the app heap. */
-class ASSIMP_API ImporterPimpl 
-{
-public:
-
-	// Data type to store the key hash
-	typedef unsigned int KeyType;
-	
-	// typedefs for our three configuration maps.
-	// We don't need more, so there is no need for a generic solution
-	typedef std::map<KeyType, int> IntPropertyMap;
-	typedef std::map<KeyType, float> FloatPropertyMap;
-	typedef std::map<KeyType, std::string> StringPropertyMap;
-
-public:
-
-	/** IO handler to use for all file accesses. */
-	IOSystem* mIOHandler;
-	bool mIsDefaultHandler;
-
-	/** Progress handler for feedback. */
-	ProgressHandler* mProgressHandler;
-	bool mIsDefaultProgressHandler;
-
-	/** Format-specific importer worker objects - one for each format we can read.*/
-	std::vector<BaseImporter*> mImporter;
-
-	/** Post processing steps we can apply at the imported data. */
-	std::vector<BaseProcess*> mPostProcessingSteps;
-
-	/** The imported data, if ReadFile() was successful, NULL otherwise. */
-	aiScene* mScene;
-
-	/** The error description, if there was one. */
-	std::string mErrorString;
 
-	/** List of integer properties */
-	IntPropertyMap mIntProperties;
-
-	/** List of floating-point properties */
-	FloatPropertyMap mFloatProperties;
-
-	/** List of string properties */
-	StringPropertyMap mStringProperties;
-
-	/** Used for testing - extra verbose mode causes the ValidateDataStructure-Step
-	 *  to be executed before and after every single postprocess step */
-	bool bExtraVerbose;
-
-	/** Used by post-process steps to share data */
-	SharedPostProcessInfo* mPPShared;
-};
-//! @endcond
 
 // ---------------------------------------------------------------------------
 /** FOR IMPORTER PLUGINS ONLY: The BaseImporter defines a common interface 
@@ -169,7 +110,7 @@ class ASSIMP_API BaseImporter
 {
 	friend class Importer;
 
-protected:
+public:
 
 	/** Constructor to be privately used by #Importer */
 	BaseImporter();
@@ -407,92 +348,7 @@ protected:
 	ProgressHandler* progress;
 };
 
-struct BatchData;
 
-// ---------------------------------------------------------------------------
-/** FOR IMPORTER PLUGINS ONLY: A helper class for the pleasure of importers 
- *  which need to load many extern meshes recursively.
- *
- *  The class uses several threads to load these meshes (or at least it
- *  could, this has not yet been implemented at the moment).
- *
- *  @note The class may not be used by more than one thread*/
-class ASSIMP_API BatchLoader 
-{
-	// friend of Importer
-
-public:
-
-	//! @cond never
-	// -------------------------------------------------------------------
-	/** Wraps a full list of configuration properties for an importer.
-	 *  Properties can be set using SetGenericProperty */
-	struct PropertyMap
-	{
-		ImporterPimpl::IntPropertyMap     ints;
-		ImporterPimpl::FloatPropertyMap   floats;
-		ImporterPimpl::StringPropertyMap  strings;
-
-		bool operator == (const PropertyMap& prop) const {
-			// fixme: really isocpp? gcc complains
-			return ints == prop.ints && floats == prop.floats && strings == prop.strings; 
-		}
-
-		bool empty () const {
-			return ints.empty() && floats.empty() && strings.empty();
-		}
-	};
-	//! @endcond
-
-public:
-	
-
-	// -------------------------------------------------------------------
-	/** Construct a batch loader from a given IO system to be used 
-	 *  to acess external files */
-	BatchLoader(IOSystem* pIO);
-	~BatchLoader();
-
-
-	// -------------------------------------------------------------------
-	/** Add a new file to the list of files to be loaded.
-	 *  @param file File to be loaded
-	 *  @param steps Post-processing steps to be executed on the file
-	 *  @param map Optional configuration properties
-	 *  @return 'Load request channel' - an unique ID that can later
-	 *    be used to access the imported file data.
-	 *  @see GetImport */
-	unsigned int AddLoadRequest	(
-		const std::string& file,
-		unsigned int steps = 0, 
-		const PropertyMap* map = NULL
-		);
-
-
-	// -------------------------------------------------------------------
-	/** Get an imported scene.
-	 *  This polls the import from the internal request list.
-	 *  If an import is requested several times, this function
-	 *  can be called several times, too.
-	 *
-	 *  @param which LRWC returned by AddLoadRequest().
-	 *  @return NULL if there is no scene with this file name
-	 *  in the queue of the scene hasn't been loaded yet. */
-	aiScene* GetImport(
-		unsigned int which
-		);
-
-
-	// -------------------------------------------------------------------
-	/** Waits until all scenes have been loaded. This returns
-	 *  immediately if no scenes are queued.*/
-	void LoadAll();
-
-private:
-
-	// No need to have that in the public API ...
-	BatchData* data;
-};
 
 } // end of namespace Assimp
 

+ 2 - 0
code/BaseProcess.cpp

@@ -45,6 +45,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #include "BaseImporter.h"
 #include "BaseProcess.h"
 
+#include "Importer.h"
+
 using namespace Assimp;
 
 // ------------------------------------------------------------------------------------------------

+ 2 - 7
code/BlenderLoader.h

@@ -120,16 +120,11 @@ struct aiLoaderDesc
 // -------------------------------------------------------------------------------------------
 class BlenderImporter : public BaseImporter, public LogFunctions<BlenderImporter>
 {
-	friend class Importer;
-
-protected:
-
-	/** Constructor to be privately used by Importer */
+public:
 	BlenderImporter();
-
-	/** Destructor, private as well */
 	~BlenderImporter();
 
+
 public:
 
 	// --------------------

+ 4 - 0
code/CMakeLists.txt

@@ -95,6 +95,10 @@ SET( Common_SRCS
 	BaseImporter.h
 	BaseProcess.cpp
 	BaseProcess.h
+	Importer.h
+	ScenePrivate.h
+	PostStepRegistry.cpp
+	ImporterRegistry.cpp
 	ByteSwap.h
 	DefaultProgressHandler.h
 	DefaultIOStream.cpp

+ 2 - 7
code/COBLoader.h

@@ -68,16 +68,11 @@ namespace Assimp	{
 // -------------------------------------------------------------------------------------------
 class COBImporter : public BaseImporter
 {
-	friend class Importer;
-
-protected:
-
-	/** Constructor to be privately used by Importer */
+public:
 	COBImporter();
-
-	/** Destructor, private as well */
 	~COBImporter();
 
+
 public:
 
 	// --------------------

+ 2 - 5
code/CSMLoader.h

@@ -56,14 +56,11 @@ namespace Assimp	{
 */
 class CSMImporter : public BaseImporter
 {
-	friend class Importer;
-protected:
-	/** Constructor to be privately used by Importer */
+public:
 	CSMImporter();
-
-	/** Destructor, private as well */
 	~CSMImporter();
 
+
 public:
 	// -------------------------------------------------------------------
 	bool CanRead( const std::string& pFile, IOSystem* pIOHandler, 

+ 1 - 5
code/CalcTangentsProcess.h

@@ -59,13 +59,9 @@ namespace Assimp
  */
 class ASSIMP_API CalcTangentsProcess : public BaseProcess
 {
-	friend class Importer;
+public:
 
-protected:
-	/** Constructor to be privately used by Importer */
 	CalcTangentsProcess();
-
-	/** Destructor, private as well */
 	~CalcTangentsProcess();
 
 public:

+ 2 - 6
code/ColladaLoader.h

@@ -78,15 +78,11 @@ struct ColladaMeshIndex
 */
 class ColladaLoader : public BaseImporter
 {
-	friend class Importer;
-
-protected:
-	/** Constructor to be privately used by Importer */
+public:
 	ColladaLoader();
-
-	/** Destructor, private as well */
 	~ColladaLoader();
 
+
 public:
 	/** Returns whether the class can handle the format of the given file. 
 	 * See BaseImporter::CanRead() for details.	*/

+ 2 - 7
code/ComputeUVMappingProcess.h

@@ -56,17 +56,12 @@ namespace Assimp
 */
 class ASSIMP_API ComputeUVMappingProcess : public BaseProcess
 {
-	friend class Importer;
-	friend class ::ComputeUVMappingTest; // grant the unit test full access to us
-
-protected:
-	/** Constructor to be privately used by Importer */
+public:
 	ComputeUVMappingProcess();
-
-	/** Destructor, private as well */
 	~ComputeUVMappingProcess();
 
 public:
+
 	// -------------------------------------------------------------------
 	/** Returns whether the processing step is present in the given flag field.
 	* @param pFlags The processing flags the importer was called with. A bitwise

+ 1 - 4
code/ConvertToLHProcess.h

@@ -69,13 +69,10 @@ namespace Assimp	{
  */
 class ASSIMP_API MakeLeftHandedProcess : public BaseProcess
 {
-	friend class Importer;
+	
 
 public:
-	/** Constructor to be privately used by Importer */
 	MakeLeftHandedProcess();
-
-	/** Destructor, private as well */
 	~MakeLeftHandedProcess();
 
 	// -------------------------------------------------------------------

+ 2 - 6
code/DXFLoader.h

@@ -65,16 +65,12 @@ namespace Assimp	{
 */
 class DXFImporter : public BaseImporter
 {
-	friend class Importer;
-
-protected:
-	/** Constructor to be privately used by Importer */
+public:
 	DXFImporter();
-
-	/** Destructor, private as well */
 	~DXFImporter();
 
 
+
 public:
 
 	// -------------------------------------------------------------------

+ 1 - 6
code/DeboneProcess.h

@@ -66,14 +66,9 @@ namespace Assimp
 */
 class ASSIMP_API DeboneProcess : public BaseProcess
 {
-	friend class Importer;
-	friend class ::DeboneTest;
+public:
 
-protected:
-	/** Constructor to be privately used by Importer */
 	DeboneProcess();
-
-	/** Destructor, private as well */
 	~DeboneProcess();
 
 public:

+ 42 - 5
code/Exporter.cpp

@@ -56,9 +56,15 @@ Here we implement only the C++ interface (Assimp::Exporter).
 
 #include "DefaultIOSystem.h"
 #include "BlobIOSystem.h" 
+#include "SceneCombiner.h" 
+#include "BaseProcess.h" 
+#include "Importer.h" // need this for GetPostProcessingStepInstanceList()
 
 namespace Assimp {
 
+// PostStepRegistry.cpp
+void GetPostProcessingStepInstanceList(std::vector< BaseProcess* >& out);
+
 // ------------------------------------------------------------------------------------------------
 // Exporter worker function prototypes. Should not be necessary to #ifndef them, it's just a prototype
 void ExportSceneCollada(const char*,IOSystem*, const aiScene*);
@@ -78,13 +84,17 @@ struct ExportFormatEntry
 	// Worker function to do the actual exporting
 	fpExportFunc mExportFunction;
 
+	// Postprocessing steps to be executed PRIOR to calling mExportFunction
+	unsigned int mEnforcePP;
+
 	// Constructor to fill all entries
-	ExportFormatEntry( const char* pId, const char* pDesc, const char* pExtension, fpExportFunc pFunction)
+	ExportFormatEntry( const char* pId, const char* pDesc, const char* pExtension, fpExportFunc pFunction, unsigned int pEnforcePP = 0u)
 	{
 		mDescription.id = pId;
 		mDescription.description = pDesc;
 		mDescription.fileExtension = pExtension;
 		mExportFunction = pFunction;
+		mEnforcePP = pEnforcePP;
 	}
 };
 
@@ -114,12 +124,17 @@ public:
 		, mIOSystem(new Assimp::DefaultIOSystem())
 		, mIsDefaultIOHandler(true)
 	{
-		
+		GetPostProcessingStepInstanceList(mPostProcessingSteps);
 	}
 
 	~ExporterPimpl() 
 	{
 		delete blob;
+
+		// Delete all post-processing plug-ins
+		for( unsigned int a = 0; a < mPostProcessingSteps.size(); a++) {
+			delete mPostProcessingSteps[a];
+		}
 	}
 
 public:
@@ -127,6 +142,9 @@ public:
 	aiExportDataBlob* blob;
 	boost::shared_ptr< Assimp::IOSystem > mIOSystem;
 	bool mIsDefaultIOHandler;
+
+	/** Post processing steps we can apply at the imported data. */
+	std::vector< BaseProcess* > mPostProcessingSteps;
 };
 
 #define ASSIMP_NUM_EXPORTERS (sizeof(gExporters)/sizeof(gExporters[0]))
@@ -177,7 +195,7 @@ bool Exporter :: IsDefaultIOHandler() const
 
 
 // ------------------------------------------------------------------------------------------------
-const aiExportDataBlob* Exporter :: ExportToBlob(  const aiScene* pScene, const char* pFormatId )
+const aiExportDataBlob* Exporter :: ExportToBlob(  const aiScene* pScene, const char* pFormatId, unsigned int pPreprocessing )
 {
 	if (pimpl->blob) {
 		delete pimpl->blob;
@@ -203,14 +221,33 @@ const aiExportDataBlob* Exporter :: ExportToBlob(  const aiScene* pScene, const
 
 
 // ------------------------------------------------------------------------------------------------
-aiReturn Exporter :: Export( const aiScene* pScene, const char* pFormatId, const char* pPath )
+aiReturn Exporter :: Export( const aiScene* pScene, const char* pFormatId, const char* pPath, unsigned int pPreprocessing )
 {
 	ASSIMP_BEGIN_EXCEPTION_REGION();
 	for (size_t i = 0; i < ASSIMP_NUM_EXPORTERS; ++i) {
 		if (!strcmp(gExporters[i].mDescription.id,pFormatId)) {
 
 			try {
-				gExporters[i].mExportFunction(pPath,pimpl->mIOSystem.get(),pScene);
+
+				// Always create a full copy of the scene. We might optimize this one day, 
+				// but for now it is the most pragmatic way.
+				aiScene* scenecopy_tmp;
+				SceneCombiner::CopyScene(&scenecopy_tmp,pScene);
+
+				std::auto_ptr<aiScene> scenecopy(scenecopy_tmp);
+
+				const unsigned int pp = (gExporters[i].mEnforcePP | pPreprocessing);
+				if (pp) {
+					for( unsigned int a = 0; a < pimpl->mPostProcessingSteps.size(); a++) {
+						BaseProcess* const p = pimpl->mPostProcessingSteps[a];
+
+						if (p->IsActive(pp)) {
+							p->Execute(scenecopy.get());
+						}
+					}
+				}
+
+				gExporters[i].mExportFunction(pPath,pimpl->mIOSystem.get(),scenecopy.get());
 			}
 			catch (DeadlyExportError& err) {
 				// XXX what to do with the error message? Maybe introduce extra member to hold it, similar to Assimp.Importer

+ 1 - 6
code/FindDegenerates.h

@@ -55,14 +55,9 @@ namespace Assimp	{
 */
 class ASSIMP_API FindDegeneratesProcess : public BaseProcess
 {
-	friend class Importer;
-	friend class ::FindDegeneratesProcessTest; // grant the unit test full access to us
+public:
 
-protected:
-	/** Constructor to be privately used by Importer */
 	FindDegeneratesProcess();
-
-	/** Destructor, private as well */
 	~FindDegeneratesProcess();
 
 public:

+ 2 - 7
code/FindInstancesProcess.h

@@ -54,7 +54,7 @@ namespace Assimp	{
 /** @brief Get a pseudo(!)-hash representing a mesh.
  *
  *  The hash is built from number of vertices, faces, primitive types,
- *  .... but *not* from the real mesh data. It isn't absolutely unique.
+ *  .... but *not* from the real mesh data. The funcction is not a perfect hash.
  *  @param in Input mesh
  *  @return Hash. 
  */
@@ -107,14 +107,9 @@ inline bool CompareArrays(const aiColor4D* first, const aiColor4D* second,
 */
 class ASSIMP_API FindInstancesProcess : public BaseProcess
 {
-	friend class Importer;
-	friend class ::FindInstancesProcessTest; 
+public:
 
-protected:
-	/** Constructor to be privately used by Importer */
 	FindInstancesProcess();
-
-	/** Destructor, private as well */
 	~FindInstancesProcess();
 
 public:

+ 1 - 7
code/FindInvalidDataProcess.h

@@ -59,15 +59,9 @@ namespace Assimp	{
 class ASSIMP_API FindInvalidDataProcess 
 	: public BaseProcess
 {
-	friend class Importer;
-	friend class ::FindInvalidDataProcessTest;
-
-protected:
+public:
 
-	/** Constructor to be privately used by Importer */
 	FindInvalidDataProcess();
-
-	/** Destructor, private as well */
 	~FindInvalidDataProcess();
 
 public:

+ 3 - 7
code/FixNormalsStep.h

@@ -55,15 +55,11 @@ namespace Assimp
  * vectors of an object are facing inwards. In this case they will be
  * flipped.
  */
-	class ASSIMP_API FixInfacingNormalsProcess : public BaseProcess
+class ASSIMP_API FixInfacingNormalsProcess : public BaseProcess
 {
-	friend class Importer;
-
-protected:
-	/** Constructor to be privately used by Importer */
+public:
+	
 	FixInfacingNormalsProcess();
-
-	/** Destructor, private as well */
 	~FixInfacingNormalsProcess();
 
 public:

+ 1 - 5
code/GenFaceNormalsProcess.h

@@ -53,13 +53,9 @@ namespace Assimp
 */
 class ASSIMP_API GenFaceNormalsProcess : public BaseProcess
 {
-	friend class Importer;
+public:
 
-protected:
-	/** Constructor to be privately used by Importer */
 	GenFaceNormalsProcess();
-
-	/** Destructor, private as well */
 	~GenFaceNormalsProcess();
 
 public:

+ 1 - 6
code/GenVertexNormalsProcess.h

@@ -55,14 +55,9 @@ namespace Assimp {
 */
 class ASSIMP_API GenVertexNormalsProcess : public BaseProcess
 {
-	friend class Importer;
-	friend class ::GenNormalsTest;
+public:
 
-protected:
-	/** Constructor to be privately used by Importer */
 	GenVertexNormalsProcess();
-
-	/** Destructor, private as well */
 	~GenVertexNormalsProcess();
 
 public:

+ 2 - 6
code/HMPLoader.h

@@ -62,15 +62,11 @@ using namespace HMP;
 */
 class HMPImporter : public MDLImporter
 {
-	friend class Importer;
-
-protected:
-	/** Constructor to be privately used by Importer */
+public:
 	HMPImporter();
-
-	/** Destructor, private as well */
 	~HMPImporter();
 
+
 public:
 
 	// -------------------------------------------------------------------

+ 2 - 7
code/IFCLoader.h

@@ -69,16 +69,11 @@ namespace Assimp	{
 // -------------------------------------------------------------------------------------------
 class IFCImporter : public BaseImporter, public LogFunctions<IFCImporter>
 {
-	friend class Importer;
-
-protected:
-
-	/** Constructor to be privately used by Importer */
+public:
 	IFCImporter();
-
-	/** Destructor, private as well */
 	~IFCImporter();
 
+
 public:
 
 	// --------------------

+ 1 - 1
code/IRRLoader.cpp

@@ -52,7 +52,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 #include "SceneCombiner.h"
 #include "StandardShapes.h"
-
+#include "Importer.h"
 
 // We need boost::common_factor to compute the lcm/gcd of a number
 #include <boost/math/common_factor_rt.hpp>

+ 2 - 6
code/IRRLoader.h

@@ -61,15 +61,11 @@ namespace Assimp	{
  */
 class IRRImporter : public BaseImporter, public IrrlichtBase
 {
-	friend class Importer;
-
-protected:
-	/** Constructor to be privately used by Importer */
+public:
 	IRRImporter();
-
-	/** Destructor, private as well */
 	~IRRImporter();
 
+
 public:
 
 	// -------------------------------------------------------------------

+ 2 - 6
code/IRRMeshLoader.h

@@ -59,15 +59,11 @@ namespace Assimp	{
  */
 class IRRMeshImporter : public BaseImporter, public IrrlichtBase
 {
-	friend class Importer;
-
-protected:
-	/** Constructor to be privately used by Importer */
+public:
 	IRRMeshImporter();
-
-	/** Destructor, private as well */
 	~IRRMeshImporter();
 
+
 public:
 
 	// -------------------------------------------------------------------

+ 17 - 398
code/Importer.cpp

@@ -61,8 +61,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 // ------------------------------------------------------------------------------------------------
 // Internal headers
 // ------------------------------------------------------------------------------------------------
-#include "BaseImporter.h"
+#include "Importer.h"
 #include "BaseProcess.h"
+
 #include "DefaultIOStream.h"
 #include "DefaultIOSystem.h"
 #include "DefaultProgressHandler.h"
@@ -73,197 +74,19 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #include "Profiler.h"
 #include "TinyFormatter.h"
 
-using namespace Assimp::Profiling;
-using namespace Assimp::Formatter;
-
-// ------------------------------------------------------------------------------------------------
-// Importers
-// (include_new_importers_here)
-// ------------------------------------------------------------------------------------------------
-#ifndef ASSIMP_BUILD_NO_X_IMPORTER
-#	include "XFileImporter.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_3DS_IMPORTER
-#	include "3DSLoader.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_MD3_IMPORTER
-#	include "MD3Loader.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_MDL_IMPORTER
-#	include "MDLLoader.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_MD2_IMPORTER
-#	include "MD2Loader.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_PLY_IMPORTER
-#	include "PlyLoader.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_ASE_IMPORTER
-#	include "ASELoader.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_OBJ_IMPORTER
-#	include "ObjFileImporter.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_HMP_IMPORTER
-#	include "HMPLoader.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_SMD_IMPORTER
-#	include "SMDLoader.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_MDC_IMPORTER
-#	include "MDCLoader.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_MD5_IMPORTER
-#	include "MD5Loader.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_STL_IMPORTER
-#	include "STLLoader.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_LWO_IMPORTER
-#	include "LWOLoader.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_DXF_IMPORTER
-#	include "DXFLoader.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_NFF_IMPORTER
-#	include "NFFLoader.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_RAW_IMPORTER
-#	include "RawLoader.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_OFF_IMPORTER
-#	include "OFFLoader.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_AC_IMPORTER
-#	include "ACLoader.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_BVH_IMPORTER
-#	include "BVHLoader.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_IRRMESH_IMPORTER
-#	include "IRRMeshLoader.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_IRR_IMPORTER
-#	include "IRRLoader.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_Q3D_IMPORTER
-#	include "Q3DLoader.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_B3D_IMPORTER
-#	include "B3DImporter.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_COLLADA_IMPORTER
-#	include "ColladaLoader.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_TERRAGEN_IMPORTER
-#	include "TerragenLoader.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_CSM_IMPORTER
-#	include "CSMLoader.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_3D_IMPORTER
-#	include "UnrealLoader.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_LWS_IMPORTER
-#	include "LWSLoader.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_OGRE_IMPORTER
-#	include "OgreImporter.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_MS3D_IMPORTER
-#	include "MS3DLoader.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_COB_IMPORTER
-#	include "COBLoader.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_BLEND_IMPORTER
-#	include "BlenderLoader.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_Q3BSP_IMPORTER
-#	include "Q3BSPFileImporter.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_NDO_IMPORTER
-#	include "NDOLoader.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_IFC_IMPORTER
-#	include "IFCLoader.h"
-#endif
-
-// ------------------------------------------------------------------------------------------------
-// Post processing-Steps
-// ------------------------------------------------------------------------------------------------
-#ifndef ASSIMP_BUILD_NO_CALCTANGENTS_PROCESS
-#	include "CalcTangentsProcess.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_JOINVERTICES_PROCESS
-#	include "JoinVerticesProcess.h"
-#endif
-#if !(defined ASSIMP_BUILD_NO_MAKELEFTHANDED_PROCESS && defined ASSIMP_BUILD_NO_FLIPUVS_PROCESS && defined ASSIMP_BUILD_NO_FLIPWINDINGORDER_PROCESS)
-#	include "ConvertToLHProcess.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_TRIANGULATE_PROCESS
-#	include "TriangulateProcess.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_GENFACENORMALS_PROCESS
-#	include "GenFaceNormalsProcess.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_GENVERTEXNORMALS_PROCESS
-#	include "GenVertexNormalsProcess.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_REMOVEVC_PROCESS
-#	include "RemoveVCProcess.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_SPLITLARGEMESHES_PROCESS
-#	include "SplitLargeMeshes.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_PRETRANSFORMVERTICES_PROCESS
-#	include "PretransformVertices.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_LIMITBONEWEIGHTS_PROCESS
-#	include "LimitBoneWeightsProcess.h"
-#endif
 #ifndef ASSIMP_BUILD_NO_VALIDATEDS_PROCESS
 #	include "ValidateDataStructure.h"
 #endif
-#ifndef ASSIMP_BUILD_NO_IMPROVECACHELOCALITY_PROCESS
-#	include "ImproveCacheLocality.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_FIXINFACINGNORMALS_PROCESS
-#	include "FixNormalsStep.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_REMOVE_REDUNDANTMATERIALS_PROCESS
-#	include "RemoveRedundantMaterials.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_FINDINVALIDDATA_PROCESS
-#	include "FindInvalidDataProcess.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_FINDDEGENERATES_PROCESS
-#	include "FindDegenerates.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_SORTBYPTYPE_PROCESS
-#	include "SortByPTypeProcess.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_GENUVCOORDS_PROCESS
-#	include "ComputeUVMappingProcess.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_TRANSFORMTEXCOORDS_PROCESS
-#	include "TextureTransform.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_FINDINSTANCES_PROCESS
-#	include "FindInstancesProcess.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_OPTIMIZEMESHES_PROCESS
-#	include "OptimizeMeshes.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_OPTIMIZEGRAPH_PROCESS
-#	include "OptimizeGraph.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_SPLITBYBONECOUNT_PROCESS
-#	include "SplitByBoneCountProcess.h"
-#endif
-#ifndef ASSIMP_BUILD_NO_DEBONE_PROCESS
-#	include "DeboneProcess.h"
-#endif
+
+using namespace Assimp::Profiling;
+using namespace Assimp::Formatter;
+
+namespace Assimp {
+	// ImporterRegistry.cpp
+	void GetImporterInstanceList(std::vector< BaseImporter* >& out);
+	// PostStepRegistry.cpp
+	void GetPostProcessingStepInstanceList(std::vector< BaseProcess* >& out);
+}
 
 using namespace Assimp;
 using namespace Assimp::Intern;
@@ -326,215 +149,8 @@ Importer::Importer()
 	pimpl->mProgressHandler = new DefaultProgressHandler();
 	pimpl->mIsDefaultProgressHandler = true;
 
-	// ----------------------------------------------------------------------------
-	// Add an instance of each worker class here
-	// (register_new_importers_here)
-	// ----------------------------------------------------------------------------
-	pimpl->mImporter.reserve(64);
-#if (!defined ASSIMP_BUILD_NO_X_IMPORTER)
-	pimpl->mImporter.push_back( new XFileImporter());
-#endif
-#if (!defined ASSIMP_BUILD_NO_OBJ_IMPORTER)
-	pimpl->mImporter.push_back( new ObjFileImporter());
-#endif
-#if (!defined ASSIMP_BUILD_NO_3DS_IMPORTER)
-	pimpl->mImporter.push_back( new Discreet3DSImporter());
-#endif
-#if (!defined ASSIMP_BUILD_NO_MD3_IMPORTER)
-	pimpl->mImporter.push_back( new MD3Importer());
-#endif
-#if (!defined ASSIMP_BUILD_NO_MD2_IMPORTER)
-	pimpl->mImporter.push_back( new MD2Importer());
-#endif
-#if (!defined ASSIMP_BUILD_NO_PLY_IMPORTER)
-	pimpl->mImporter.push_back( new PLYImporter());
-#endif
-#if (!defined ASSIMP_BUILD_NO_MDL_IMPORTER)
-	pimpl->mImporter.push_back( new MDLImporter());
-#endif
-#if (!defined ASSIMP_BUILD_NO_ASE_IMPORTER)
-	pimpl->mImporter.push_back( new ASEImporter());
-#endif
-#if (!defined ASSIMP_BUILD_NO_HMP_IMPORTER)
-	pimpl->mImporter.push_back( new HMPImporter());
-#endif
-#if (!defined ASSIMP_BUILD_NO_SMD_IMPORTER)
-	pimpl->mImporter.push_back( new SMDImporter());
-#endif
-#if (!defined ASSIMP_BUILD_NO_MDC_IMPORTER)
-	pimpl->mImporter.push_back( new MDCImporter());
-#endif
-#if (!defined ASSIMP_BUILD_NO_MD5_IMPORTER)
-	pimpl->mImporter.push_back( new MD5Importer());
-#endif
-#if (!defined ASSIMP_BUILD_NO_STL_IMPORTER)
-	pimpl->mImporter.push_back( new STLImporter());
-#endif
-#if (!defined ASSIMP_BUILD_NO_LWO_IMPORTER)
-	pimpl->mImporter.push_back( new LWOImporter());
-#endif
-#if (!defined ASSIMP_BUILD_NO_DXF_IMPORTER)
-	pimpl->mImporter.push_back( new DXFImporter());
-#endif
-#if (!defined ASSIMP_BUILD_NO_NFF_IMPORTER)
-	pimpl->mImporter.push_back( new NFFImporter());
-#endif
-#if (!defined ASSIMP_BUILD_NO_RAW_IMPORTER)
-	pimpl->mImporter.push_back( new RAWImporter());
-#endif
-#if (!defined ASSIMP_BUILD_NO_OFF_IMPORTER)
-	pimpl->mImporter.push_back( new OFFImporter());
-#endif
-#if (!defined ASSIMP_BUILD_NO_AC_IMPORTER)
-	pimpl->mImporter.push_back( new AC3DImporter());
-#endif
-#if (!defined ASSIMP_BUILD_NO_BVH_IMPORTER)
-	pimpl->mImporter.push_back( new BVHLoader());
-#endif
-#if (!defined ASSIMP_BUILD_NO_IRRMESH_IMPORTER)
-	pimpl->mImporter.push_back( new IRRMeshImporter());
-#endif
-#if (!defined ASSIMP_BUILD_NO_IRR_IMPORTER)
-	pimpl->mImporter.push_back( new IRRImporter());
-#endif
-#if (!defined ASSIMP_BUILD_NO_Q3D_IMPORTER)
-	pimpl->mImporter.push_back( new Q3DImporter());
-#endif
-#if (!defined ASSIMP_BUILD_NO_B3D_IMPORTER)
-	pimpl->mImporter.push_back( new B3DImporter());
-#endif
-#if (!defined ASSIMP_BUILD_NO_COLLADA_IMPORTER)
-	pimpl->mImporter.push_back( new ColladaLoader());
-#endif
-#if (!defined ASSIMP_BUILD_NO_TERRAGEN_IMPORTER)
-	pimpl->mImporter.push_back( new TerragenImporter());
-#endif
-#if (!defined ASSIMP_BUILD_NO_CSM_IMPORTER)
-	pimpl->mImporter.push_back( new CSMImporter());
-#endif
-#if (!defined ASSIMP_BUILD_NO_3D_IMPORTER)
-	pimpl->mImporter.push_back( new UnrealImporter());
-#endif
-#if (!defined ASSIMP_BUILD_NO_LWS_IMPORTER)
-	pimpl->mImporter.push_back( new LWSImporter());
-#endif
-#if (!defined ASSIMP_BUILD_NO_OGRE_IMPORTER)
-	pimpl->mImporter.push_back( new Ogre::OgreImporter());
-#endif
-#if (!defined ASSIMP_BUILD_NO_MS3D_IMPORTER)
-	pimpl->mImporter.push_back( new MS3DImporter());
-#endif
-#if (!defined ASSIMP_BUILD_NO_COB_IMPORTER)
-	pimpl->mImporter.push_back( new COBImporter());
-#endif
-#if (!defined ASSIMP_BUILD_NO_BLEND_IMPORTER)
-	pimpl->mImporter.push_back( new BlenderImporter());
-#endif
-#if (!defined ASSIMP_BUILD_NO_Q3BSP_IMPORTER)
-	pimpl->mImporter.push_back( new Q3BSPFileImporter() );
-#endif
-#if (!defined ASSIMP_BUILD_NO_NDO_IMPORTER)
-	pimpl->mImporter.push_back( new NDOImporter() );
-#endif
-#if (!defined ASSIMP_BUILD_NO_IFC_IMPORTER)
-	pimpl->mImporter.push_back( new IFCImporter() );
-#endif
-
-	// ----------------------------------------------------------------------------
-	// Add an instance of each post processing step here in the order 
-	// of sequence it is executed. Steps that are added here are not
-	// validated - as RegisterPPStep() does - all dependencies must be given.
-	// ----------------------------------------------------------------------------
-	pimpl->mPostProcessingSteps.reserve(25);
-#if (!defined ASSIMP_BUILD_NO_REMOVEVC_PROCESS)
-	pimpl->mPostProcessingSteps.push_back( new RemoveVCProcess());
-#endif
-#if (!defined ASSIMP_BUILD_NO_REMOVE_REDUNDANTMATERIALS_PROCESS)
-	pimpl->mPostProcessingSteps.push_back( new RemoveRedundantMatsProcess());
-#endif
-#if (!defined ASSIMP_BUILD_NO_FINDINSTANCES_PROCESS)
-	pimpl->mPostProcessingSteps.push_back( new FindInstancesProcess());
-#endif
-#if (!defined ASSIMP_BUILD_NO_OPTIMIZEGRAPH_PROCESS)
-	pimpl->mPostProcessingSteps.push_back( new OptimizeGraphProcess());
-#endif
-#if (!defined ASSIMP_BUILD_NO_OPTIMIZEMESHES_PROCESS)
-	pimpl->mPostProcessingSteps.push_back( new OptimizeMeshesProcess());
-#endif
-#if (!defined ASSIMP_BUILD_NO_FINDDEGENERATES_PROCESS)
-	pimpl->mPostProcessingSteps.push_back( new FindDegeneratesProcess());
-#endif
-#ifndef ASSIMP_BUILD_NO_GENUVCOORDS_PROCESS
-	pimpl->mPostProcessingSteps.push_back( new ComputeUVMappingProcess());
-#endif
-#ifndef ASSIMP_BUILD_NO_TRANSFORMTEXCOORDS_PROCESS
-	pimpl->mPostProcessingSteps.push_back( new TextureTransformStep());
-#endif
-#if (!defined ASSIMP_BUILD_NO_PRETRANSFORMVERTICES_PROCESS)
-	pimpl->mPostProcessingSteps.push_back( new PretransformVertices());
-#endif
-#if (!defined ASSIMP_BUILD_NO_TRIANGULATE_PROCESS)
-	pimpl->mPostProcessingSteps.push_back( new TriangulateProcess());
-#endif
-#if (!defined ASSIMP_BUILD_NO_SORTBYPTYPE_PROCESS)
-	pimpl->mPostProcessingSteps.push_back( new SortByPTypeProcess());
-#endif
-#if (!defined ASSIMP_BUILD_NO_FINDINVALIDDATA_PROCESS)
-	pimpl->mPostProcessingSteps.push_back( new FindInvalidDataProcess());
-#endif
-#if (!defined ASSIMP_BUILD_NO_FIXINFACINGNORMALS_PROCESS)
-	pimpl->mPostProcessingSteps.push_back( new FixInfacingNormalsProcess());
-#endif
-#if (!defined ASSIMP_BUILD_NO_SPLITBYBONECOUNT_PROCESS)
-	pimpl->mPostProcessingSteps.push_back( new SplitByBoneCountProcess());
-#endif
-#if (!defined ASSIMP_BUILD_NO_SPLITLARGEMESHES_PROCESS)
-	pimpl->mPostProcessingSteps.push_back( new SplitLargeMeshesProcess_Triangle());
-#endif
-#if (!defined ASSIMP_BUILD_NO_GENFACENORMALS_PROCESS)
-	pimpl->mPostProcessingSteps.push_back( new GenFaceNormalsProcess());
-#endif
-
-	// .........................................................................
-	// DON'T change the order of these five!
-	pimpl->mPostProcessingSteps.push_back( new ComputeSpatialSortProcess());
-	// .........................................................................
-
-#if (!defined ASSIMP_BUILD_NO_GENVERTEXNORMALS_PROCESS)
-	pimpl->mPostProcessingSteps.push_back( new GenVertexNormalsProcess());
-#endif
-#if (!defined ASSIMP_BUILD_NO_CALCTANGENTS_PROCESS)
-	pimpl->mPostProcessingSteps.push_back( new CalcTangentsProcess());
-#endif
-#if (!defined ASSIMP_BUILD_NO_JOINVERTICES_PROCESS)
-	pimpl->mPostProcessingSteps.push_back( new JoinVerticesProcess());
-#endif
-
-	// .........................................................................
-	pimpl->mPostProcessingSteps.push_back( new DestroySpatialSortProcess());
-	// .........................................................................
-
-#if (!defined ASSIMP_BUILD_NO_SPLITLARGEMESHES_PROCESS)
-	pimpl->mPostProcessingSteps.push_back( new SplitLargeMeshesProcess_Vertex());
-#endif
-#if (!defined ASSIMP_BUILD_NO_MAKELEFTHANDED_PROCESS)
-	pimpl->mPostProcessingSteps.push_back( new MakeLeftHandedProcess());
-#endif
-#if (!defined ASSIMP_BUILD_NO_FLIPUVS_PROCESS)
-	pimpl->mPostProcessingSteps.push_back( new FlipUVsProcess());
-#endif
-#if (!defined ASSIMP_BUILD_NO_FLIPWINDINGORDER_PROCESS)
-	pimpl->mPostProcessingSteps.push_back( new FlipWindingOrderProcess());
-#endif
-#if (!defined ASSIMP_BUILD_DEBONE_PROCESS)
-	pimpl->mPostProcessingSteps.push_back( new DeboneProcess());
-#endif
-#if (!defined ASSIMP_BUILD_NO_LIMITBONEWEIGHTS_PROCESS)
-	pimpl->mPostProcessingSteps.push_back( new LimitBoneWeightsProcess());
-#endif
-#if (!defined ASSIMP_BUILD_NO_IMPROVECACHELOCALITY_PROCESS)
-	pimpl->mPostProcessingSteps.push_back( new ImproveCacheLocalityProcess());
-#endif
+	GetImporterInstanceList(pimpl->mImporter);
+	GetPostProcessingStepInstanceList(pimpl->mPostProcessingSteps);
 
 	// Allocate a SharedPostProcessInfo object and store pointers to it in all post-process steps in the list.
 	pimpl->mPPShared = new SharedPostProcessInfo();
@@ -1179,6 +795,9 @@ const aiScene* Importer::ApplyPostProcessing(unsigned int pFlags)
 #endif // ! DEBUG
 	}
 
+	// update private scene flags
+	ScenePriv(pimpl->mScene)->mPPStepsApplied |= pFlags;
+
 	// clear any data allocated by post-process steps
 	pimpl->mPPShared->Clean();
 	DefaultLogger::get()->info("Leaving post processing pipeline");

+ 204 - 0
code/Importer.h

@@ -0,0 +1,204 @@
+/*
+Open Asset Import Library (ASSIMP)
+----------------------------------------------------------------------
+
+Copyright (c) 2006-2010, ASSIMP Development Team
+All rights reserved.
+
+Redistribution and use of this software in source and binary forms, 
+with or without modification, are permitted provided that the 
+following conditions are met:
+
+* Redistributions of source code must retain the above
+  copyright notice, this list of conditions and the
+  following disclaimer.
+
+* Redistributions in binary form must reproduce the above
+  copyright notice, this list of conditions and the
+  following disclaimer in the documentation and/or other
+  materials provided with the distribution.
+
+* Neither the name of the ASSIMP team, nor the names of its
+  contributors may be used to endorse or promote products
+  derived from this software without specific prior
+  written permission of the ASSIMP Development Team.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+----------------------------------------------------------------------
+*/
+
+/** @file Importer.h mostly internal stuff for use by #Assimp::Importer */
+#ifndef INCLUDED_AI_IMPORTER_H
+#define INCLUDED_AI_IMPORTER_H
+
+namespace Assimp	{
+
+	class BaseImporter;
+	class BaseProcess;
+
+	
+//! @cond never
+// ---------------------------------------------------------------------------
+/** @brief Internal PIMPL implementation for Assimp::Importer
+ *
+ *  Using this idiom here allows us to drop the dependency from
+ *  std::vector and std::map in the public headers. Furthermore we are dropping
+ *  any STL interface problems caused by mismatching STL settings. All
+ *  size calculation are now done by us, not the app heap. */
+class ASSIMP_API ImporterPimpl 
+{
+public:
+
+	// Data type to store the key hash
+	typedef unsigned int KeyType;
+	
+	// typedefs for our three configuration maps.
+	// We don't need more, so there is no need for a generic solution
+	typedef std::map<KeyType, int> IntPropertyMap;
+	typedef std::map<KeyType, float> FloatPropertyMap;
+	typedef std::map<KeyType, std::string> StringPropertyMap;
+
+public:
+
+	/** IO handler to use for all file accesses. */
+	IOSystem* mIOHandler;
+	bool mIsDefaultHandler;
+
+	/** Progress handler for feedback. */
+	ProgressHandler* mProgressHandler;
+	bool mIsDefaultProgressHandler;
+
+	/** Format-specific importer worker objects - one for each format we can read.*/
+	std::vector< BaseImporter* > mImporter;
+
+	/** Post processing steps we can apply at the imported data. */
+	std::vector< BaseProcess* > mPostProcessingSteps;
+
+	/** The imported data, if ReadFile() was successful, NULL otherwise. */
+	aiScene* mScene;
+
+	/** The error description, if there was one. */
+	std::string mErrorString;
+
+	/** List of integer properties */
+	IntPropertyMap mIntProperties;
+
+	/** List of floating-point properties */
+	FloatPropertyMap mFloatProperties;
+
+	/** List of string properties */
+	StringPropertyMap mStringProperties;
+
+	/** Used for testing - extra verbose mode causes the ValidateDataStructure-Step
+	 *  to be executed before and after every single postprocess step */
+	bool bExtraVerbose;
+
+	/** Used by post-process steps to share data */
+	SharedPostProcessInfo* mPPShared;
+};
+//! @endcond
+
+
+struct BatchData;
+
+// ---------------------------------------------------------------------------
+/** FOR IMPORTER PLUGINS ONLY: A helper class to the pleasure of importers 
+ *  that need to load many external meshes recursively.
+ *
+ *  The class uses several threads to load these meshes (or at least it
+ *  could, this has not yet been implemented at the moment).
+ *
+ *  @note The class may not be used by more than one thread*/
+class ASSIMP_API BatchLoader 
+{
+	// friend of Importer
+
+public:
+
+	//! @cond never
+	// -------------------------------------------------------------------
+	/** Wraps a full list of configuration properties for an importer.
+	 *  Properties can be set using SetGenericProperty */
+	struct PropertyMap
+	{
+		ImporterPimpl::IntPropertyMap     ints;
+		ImporterPimpl::FloatPropertyMap   floats;
+		ImporterPimpl::StringPropertyMap  strings;
+
+		bool operator == (const PropertyMap& prop) const {
+			// fixme: really isocpp? gcc complains
+			return ints == prop.ints && floats == prop.floats && strings == prop.strings; 
+		}
+
+		bool empty () const {
+			return ints.empty() && floats.empty() && strings.empty();
+		}
+	};
+	//! @endcond
+
+public:
+	
+
+	// -------------------------------------------------------------------
+	/** Construct a batch loader from a given IO system to be used 
+	 *  to acess external files */
+	BatchLoader(IOSystem* pIO);
+	~BatchLoader();
+
+
+	// -------------------------------------------------------------------
+	/** Add a new file to the list of files to be loaded.
+	 *  @param file File to be loaded
+	 *  @param steps Post-processing steps to be executed on the file
+	 *  @param map Optional configuration properties
+	 *  @return 'Load request channel' - an unique ID that can later
+	 *    be used to access the imported file data.
+	 *  @see GetImport */
+	unsigned int AddLoadRequest	(
+		const std::string& file,
+		unsigned int steps = 0, 
+		const PropertyMap* map = NULL
+		);
+
+
+	// -------------------------------------------------------------------
+	/** Get an imported scene.
+	 *  This polls the import from the internal request list.
+	 *  If an import is requested several times, this function
+	 *  can be called several times, too.
+	 *
+	 *  @param which LRWC returned by AddLoadRequest().
+	 *  @return NULL if there is no scene with this file name
+	 *  in the queue of the scene hasn't been loaded yet. */
+	aiScene* GetImport(
+		unsigned int which
+		);
+
+
+	// -------------------------------------------------------------------
+	/** Waits until all scenes have been loaded. This returns
+	 *  immediately if no scenes are queued.*/
+	void LoadAll();
+
+private:
+
+	// No need to have that in the public API ...
+	BatchData* data;
+};
+
+}
+
+
+
+#endif

+ 284 - 0
code/ImporterRegistry.cpp

@@ -0,0 +1,284 @@
+/*
+---------------------------------------------------------------------------
+Open Asset Import Library (ASSIMP)
+---------------------------------------------------------------------------
+
+Copyright (c) 2006-2010, ASSIMP Development Team
+
+All rights reserved.
+
+Redistribution and use of this software in source and binary forms, 
+with or without modification, are permitted provided that the following 
+conditions are met:
+
+* Redistributions of source code must retain the above
+  copyright notice, this list of conditions and the
+  following disclaimer.
+
+* Redistributions in binary form must reproduce the above
+  copyright notice, this list of conditions and the
+  following disclaimer in the documentation and/or other
+  materials provided with the distribution.
+
+* Neither the name of the ASSIMP team, nor the names of its
+  contributors may be used to endorse or promote products
+  derived from this software without specific prior
+  written permission of the ASSIMP Development Team.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+---------------------------------------------------------------------------
+*/
+
+/** @file ImporterRegistry.cpp
+
+Central registry for all importers available. Do not edit this file
+directly (unless you are adding new loaders), instead use the
+corresponding preprocessor flag to selectively disable formats.
+*/
+
+#include "AssimpPCH.h"
+
+// ------------------------------------------------------------------------------------------------
+// Importers
+// (include_new_importers_here)
+// ------------------------------------------------------------------------------------------------
+#ifndef ASSIMP_BUILD_NO_X_IMPORTER
+#	include "XFileImporter.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_3DS_IMPORTER
+#	include "3DSLoader.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_MD3_IMPORTER
+#	include "MD3Loader.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_MDL_IMPORTER
+#	include "MDLLoader.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_MD2_IMPORTER
+#	include "MD2Loader.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_PLY_IMPORTER
+#	include "PlyLoader.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_ASE_IMPORTER
+#	include "ASELoader.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_OBJ_IMPORTER
+#	include "ObjFileImporter.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_HMP_IMPORTER
+#	include "HMPLoader.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_SMD_IMPORTER
+#	include "SMDLoader.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_MDC_IMPORTER
+#	include "MDCLoader.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_MD5_IMPORTER
+#	include "MD5Loader.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_STL_IMPORTER
+#	include "STLLoader.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_LWO_IMPORTER
+#	include "LWOLoader.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_DXF_IMPORTER
+#	include "DXFLoader.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_NFF_IMPORTER
+#	include "NFFLoader.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_RAW_IMPORTER
+#	include "RawLoader.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_OFF_IMPORTER
+#	include "OFFLoader.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_AC_IMPORTER
+#	include "ACLoader.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_BVH_IMPORTER
+#	include "BVHLoader.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_IRRMESH_IMPORTER
+#	include "IRRMeshLoader.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_IRR_IMPORTER
+#	include "IRRLoader.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_Q3D_IMPORTER
+#	include "Q3DLoader.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_B3D_IMPORTER
+#	include "B3DImporter.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_COLLADA_IMPORTER
+#	include "ColladaLoader.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_TERRAGEN_IMPORTER
+#	include "TerragenLoader.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_CSM_IMPORTER
+#	include "CSMLoader.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_3D_IMPORTER
+#	include "UnrealLoader.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_LWS_IMPORTER
+#	include "LWSLoader.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_OGRE_IMPORTER
+#	include "OgreImporter.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_MS3D_IMPORTER
+#	include "MS3DLoader.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_COB_IMPORTER
+#	include "COBLoader.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_BLEND_IMPORTER
+#	include "BlenderLoader.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_Q3BSP_IMPORTER
+#	include "Q3BSPFileImporter.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_NDO_IMPORTER
+#	include "NDOLoader.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_IFC_IMPORTER
+#	include "IFCLoader.h"
+#endif
+
+namespace Assimp {
+
+// ------------------------------------------------------------------------------------------------
+void GetImporterInstanceList(std::vector< BaseImporter* >& out)
+{
+	// ----------------------------------------------------------------------------
+	// Add an instance of each worker class here
+	// (register_new_importers_here)
+	// ----------------------------------------------------------------------------
+	out.reserve(64);
+#if (!defined ASSIMP_BUILD_NO_X_IMPORTER)
+	out.push_back( new XFileImporter());
+#endif
+#if (!defined ASSIMP_BUILD_NO_OBJ_IMPORTER)
+	out.push_back( new ObjFileImporter());
+#endif
+#if (!defined ASSIMP_BUILD_NO_3DS_IMPORTER)
+	out.push_back( new Discreet3DSImporter());
+#endif
+#if (!defined ASSIMP_BUILD_NO_MD3_IMPORTER)
+	out.push_back( new MD3Importer());
+#endif
+#if (!defined ASSIMP_BUILD_NO_MD2_IMPORTER)
+	out.push_back( new MD2Importer());
+#endif
+#if (!defined ASSIMP_BUILD_NO_PLY_IMPORTER)
+	out.push_back( new PLYImporter());
+#endif
+#if (!defined ASSIMP_BUILD_NO_MDL_IMPORTER)
+	out.push_back( new MDLImporter());
+#endif
+#if (!defined ASSIMP_BUILD_NO_ASE_IMPORTER)
+	out.push_back( new ASEImporter());
+#endif
+#if (!defined ASSIMP_BUILD_NO_HMP_IMPORTER)
+	out.push_back( new HMPImporter());
+#endif
+#if (!defined ASSIMP_BUILD_NO_SMD_IMPORTER)
+	out.push_back( new SMDImporter());
+#endif
+#if (!defined ASSIMP_BUILD_NO_MDC_IMPORTER)
+	out.push_back( new MDCImporter());
+#endif
+#if (!defined ASSIMP_BUILD_NO_MD5_IMPORTER)
+	out.push_back( new MD5Importer());
+#endif
+#if (!defined ASSIMP_BUILD_NO_STL_IMPORTER)
+	out.push_back( new STLImporter());
+#endif
+#if (!defined ASSIMP_BUILD_NO_LWO_IMPORTER)
+	out.push_back( new LWOImporter());
+#endif
+#if (!defined ASSIMP_BUILD_NO_DXF_IMPORTER)
+	out.push_back( new DXFImporter());
+#endif
+#if (!defined ASSIMP_BUILD_NO_NFF_IMPORTER)
+	out.push_back( new NFFImporter());
+#endif
+#if (!defined ASSIMP_BUILD_NO_RAW_IMPORTER)
+	out.push_back( new RAWImporter());
+#endif
+#if (!defined ASSIMP_BUILD_NO_OFF_IMPORTER)
+	out.push_back( new OFFImporter());
+#endif
+#if (!defined ASSIMP_BUILD_NO_AC_IMPORTER)
+	out.push_back( new AC3DImporter());
+#endif
+#if (!defined ASSIMP_BUILD_NO_BVH_IMPORTER)
+	out.push_back( new BVHLoader());
+#endif
+#if (!defined ASSIMP_BUILD_NO_IRRMESH_IMPORTER)
+	out.push_back( new IRRMeshImporter());
+#endif
+#if (!defined ASSIMP_BUILD_NO_IRR_IMPORTER)
+	out.push_back( new IRRImporter());
+#endif
+#if (!defined ASSIMP_BUILD_NO_Q3D_IMPORTER)
+	out.push_back( new Q3DImporter());
+#endif
+#if (!defined ASSIMP_BUILD_NO_B3D_IMPORTER)
+	out.push_back( new B3DImporter());
+#endif
+#if (!defined ASSIMP_BUILD_NO_COLLADA_IMPORTER)
+	out.push_back( new ColladaLoader());
+#endif
+#if (!defined ASSIMP_BUILD_NO_TERRAGEN_IMPORTER)
+	out.push_back( new TerragenImporter());
+#endif
+#if (!defined ASSIMP_BUILD_NO_CSM_IMPORTER)
+	out.push_back( new CSMImporter());
+#endif
+#if (!defined ASSIMP_BUILD_NO_3D_IMPORTER)
+	out.push_back( new UnrealImporter());
+#endif
+#if (!defined ASSIMP_BUILD_NO_LWS_IMPORTER)
+	out.push_back( new LWSImporter());
+#endif
+#if (!defined ASSIMP_BUILD_NO_OGRE_IMPORTER)
+	out.push_back( new Ogre::OgreImporter());
+#endif
+#if (!defined ASSIMP_BUILD_NO_MS3D_IMPORTER)
+	out.push_back( new MS3DImporter());
+#endif
+#if (!defined ASSIMP_BUILD_NO_COB_IMPORTER)
+	out.push_back( new COBImporter());
+#endif
+#if (!defined ASSIMP_BUILD_NO_BLEND_IMPORTER)
+	out.push_back( new BlenderImporter());
+#endif
+#if (!defined ASSIMP_BUILD_NO_Q3BSP_IMPORTER)
+	out.push_back( new Q3BSPFileImporter() );
+#endif
+#if (!defined ASSIMP_BUILD_NO_NDO_IMPORTER)
+	out.push_back( new NDOImporter() );
+#endif
+#if (!defined ASSIMP_BUILD_NO_IFC_IMPORTER)
+	out.push_back( new IFCImporter() );
+#endif
+}
+
+}

+ 1 - 5
code/ImproveCacheLocality.h

@@ -60,13 +60,9 @@ namespace Assimp
  */
 class ASSIMP_API ImproveCacheLocalityProcess : public BaseProcess
 {
-	friend class Importer;
+public:
 
-protected:
-	/** Constructor to be privately used by Importer */
 	ImproveCacheLocalityProcess();
-
-	/** Destructor, private as well */
 	~ImproveCacheLocalityProcess();
 
 public:

+ 1 - 6
code/JoinVerticesProcess.h

@@ -63,14 +63,9 @@ class JoinVerticesTest;
  */
 class ASSIMP_API JoinVerticesProcess : public BaseProcess
 {
-	friend class Importer;
-	friend class JoinVerticesTest;
+public:
 
-protected:
-	/** Constructor to be privately used by Importer */
 	JoinVerticesProcess();
-
-	/** Destructor, private as well */
 	~JoinVerticesProcess();
 
 public:

+ 2 - 7
code/LWOLoader.h

@@ -67,16 +67,11 @@ using namespace LWO;
 // ---------------------------------------------------------------------------
 class LWOImporter : public BaseImporter
 {
-	friend class Importer;
-
-
-protected:
-	/** Constructor to be privately used by Importer */
+public:
 	LWOImporter();
-
-	/** Destructor, private as well */
 	~LWOImporter();
 
+
 public:
 
 	// -------------------------------------------------------------------

+ 1 - 0
code/LWSLoader.cpp

@@ -53,6 +53,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #include "GenericProperty.h"
 #include "SkeletonMeshBuilder.h"
 #include "ConvertToLHProcess.h"
+#include "Importer.h"
 
 using namespace Assimp;
 

+ 2 - 6
code/LWSLoader.h

@@ -166,15 +166,11 @@ struct NodeDesc
 */
 class LWSImporter : public BaseImporter
 {
-	friend class Importer;
-
-protected:
-	/** Constructor to be privately used by Importer */
+public:
 	LWSImporter();
-
-	/** Destructor, private as well */
 	~LWSImporter();
 
+
 public:
 
 	// -------------------------------------------------------------------

+ 1 - 6
code/LimitBoneWeightsProcess.h

@@ -71,14 +71,9 @@ namespace Assimp
 */
 class ASSIMP_API LimitBoneWeightsProcess : public BaseProcess
 {
-	friend class Importer;
-	friend class ::LimitBoneWeightsTest;
+public:
 
-protected:
-	/** Constructor to be privately used by Importer */
 	LimitBoneWeightsProcess();
-
-	/** Destructor, private as well */
 	~LimitBoneWeightsProcess();
 
 public:

+ 2 - 6
code/MD2Loader.h

@@ -60,15 +60,11 @@ using namespace MD2;
 */
 class MD2Importer : public BaseImporter
 {
-	friend class Importer;
-
-protected:
-	/** Constructor to be privately used by Importer */
+public:
 	MD2Importer();
-
-	/** Destructor, private as well */
 	~MD2Importer();
 
+
 public:
 
 	// -------------------------------------------------------------------

+ 1 - 0
code/MD3Loader.cpp

@@ -57,6 +57,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #include "GenericProperty.h"
 #include "RemoveComments.h"
 #include "ParsingUtils.h"
+#include "Importer.h"
 
 using namespace Assimp;
 

+ 2 - 6
code/MD3Loader.h

@@ -211,15 +211,11 @@ bool LoadSkin(SkinData& fill, const std::string& file,IOSystem* io);
 */
 class MD3Importer : public BaseImporter
 {
-	friend class Importer;
-
-protected:
-	/** Constructor to be privately used by Importer */
+public:
 	MD3Importer();
-
-	/** Destructor, private as well */
 	~MD3Importer();
 
+
 public:
 
 	// -------------------------------------------------------------------

+ 2 - 6
code/MD5Loader.h

@@ -61,15 +61,11 @@ using namespace Assimp::MD5;
 */
 class MD5Importer : public BaseImporter
 {
-	friend class Importer;
-
-protected:
-	/** Constructor to be privately used by Importer */
+public:
 	MD5Importer();
-
-	/** Destructor, private as well */
 	~MD5Importer();
 
+
 public:
 
 	// -------------------------------------------------------------------

+ 2 - 6
code/MDCLoader.h

@@ -58,15 +58,11 @@ using namespace MDC;
 */
 class MDCImporter : public BaseImporter
 {
-	friend class Importer;
-
-protected:
-	/** Constructor to be privately used by Importer */
+public:
 	MDCImporter();
-
-	/** Destructor, private as well */
 	~MDCImporter();
 
+
 public:
 
 	// -------------------------------------------------------------------

+ 2 - 6
code/MDLLoader.h

@@ -82,15 +82,11 @@ using namespace MDL;
 */
 class MDLImporter : public BaseImporter
 {
-	friend class Importer;
-
-protected:
-	/** Constructor to be privately used by Importer */
+public:
 	MDLImporter();
-
-	/** Destructor, private as well */
 	~MDLImporter();
 
+
 public:
 
 	// -------------------------------------------------------------------

+ 1 - 2
code/MS3DLoader.h

@@ -53,9 +53,8 @@ namespace Assimp	{
 class MS3DImporter 
 	: public BaseImporter
 {
-	friend class Importer;
 
-protected:
+public:
 
 	MS3DImporter();
 	~MS3DImporter();

+ 2 - 5
code/NDOLoader.h

@@ -53,14 +53,11 @@ namespace Assimp	{
 */
 class NDOImporter : public BaseImporter
 {
-	friend class Importer;
-protected:
-	/** Constructor to be privately used by Importer */
+public:
 	NDOImporter();
-
-	/** Destructor, private as well */
 	~NDOImporter();
 
+
 public:
 
 	//! Represents a single edge

+ 2 - 6
code/NFFLoader.h

@@ -60,15 +60,11 @@ namespace Assimp	{
 */
 class NFFImporter : public BaseImporter
 {
-	friend class Importer;
-
-protected:
-	/** Constructor to be privately used by Importer */
+public:
 	NFFImporter();
-
-	/** Destructor, private as well */
 	~NFFImporter();
 
+
 public:
 
 	// -------------------------------------------------------------------

+ 2 - 6
code/OFFLoader.h

@@ -55,15 +55,11 @@ namespace Assimp	{
 */
 class OFFImporter : public BaseImporter
 {
-	friend class Importer;
-
-protected:
-	/** Constructor to be privately used by Importer */
+public:
 	OFFImporter();
-
-	/** Destructor, private as well */
 	~OFFImporter();
 
+
 public:
 
 	// -------------------------------------------------------------------

+ 2 - 5
code/ObjFileImporter.h

@@ -61,12 +61,9 @@ struct Model;
 ///	\class	ObjFileImporter
 ///	\brief	Imports a waveform obj file
 // ------------------------------------------------------------------------------------------------
-class ObjFileImporter :
-	BaseImporter
+class ObjFileImporter : public BaseImporter
 {	
-	friend class Importer;
-
-protected:
+public:
 	///	\brief	Default constructor
 	ObjFileImporter();
 

+ 1 - 6
code/OptimizeGraph.h

@@ -63,14 +63,9 @@ namespace Assimp	{
  */
 class ASSIMP_API OptimizeGraphProcess : public BaseProcess
 {
-	friend class Importer;
-	friend class ::OptimizeGraphProcessTest;
+public:
 
-protected:
-	/** Constructor to be privately used by Importer */
 	OptimizeGraphProcess();
-
-	/** Destructor, private as well */
 	~OptimizeGraphProcess();
 
 public:

+ 1 - 6
code/OptimizeMeshes.h

@@ -61,14 +61,9 @@ namespace Assimp	{
  */
 class ASSIMP_API OptimizeMeshesProcess : public BaseProcess
 {
-	friend class Importer;
-	friend class ::OptimizeMeshesProcessTest;
+public:
 
-protected:
-	/** Constructor to be privately used by Importer */
 	OptimizeMeshesProcess();
-
-	/** Destructor, private as well */
 	~OptimizeMeshesProcess();
 
 

+ 2 - 6
code/PlyLoader.h

@@ -61,15 +61,11 @@ using namespace PLY;
 */
 class PLYImporter : public BaseImporter
 {
-	friend class Importer;
-
-protected:
-	/** Constructor to be privately used by Importer */
+public:
 	PLYImporter();
-
-	/** Destructor, private as well */
 	~PLYImporter();
 
+
 public:
 
 	// -------------------------------------------------------------------

+ 75 - 75
code/PolyTools.h

@@ -47,7 +47,7 @@ namespace Assimp {
 
 // -------------------------------------------------------------------------------
 /** Test if a given point p2 is on the left side of the line formed by p0-p1.
- *  The function accepts an unconstrained template parameter for use with
+ *  The function accepts an unconstrained template parameter for use with
  *  both aiVector3D and aiVector2D, but generally ignores the third coordinate.*/
 template <typename T>
 inline bool OnLeftSideOfLine2D(const T& p0, const T& p1,const T& p2)
@@ -57,7 +57,7 @@ inline bool OnLeftSideOfLine2D(const T& p0, const T& p1,const T& p2)
 
 // -------------------------------------------------------------------------------
 /** Test if a given point is inside a given triangle in R2.
- * The function accepts an unconstrained template parameter for use with
+ * The function accepts an unconstrained template parameter for use with
  *  both aiVector3D and aiVector2D, but generally ignores the third coordinate.*/
 template <typename T>
 inline bool PointInTriangle2D(const T& p0, const T& p1,const T& p2, const T& pp)
@@ -80,15 +80,15 @@ inline bool PointInTriangle2D(const T& p0, const T& p1,const T& p2, const T& pp)
 	return (dot11 > 0) && (dot00 > 0) && (dot11 + dot00 < 1);
 }
 
-
-// -------------------------------------------------------------------------------
-/** Compute the signed area of a triangle.
- *  The function accepts an unconstrained template parameter for use with
- *  both aiVector3D and aiVector2D, but generally ignores the third coordinate.*/
-template <typename T>
-inline double GetArea2D(const T& v1, const T& v2, const T& v3) 
-{
-	return 0.5 * (v1.x * ((double)v3.y - v2.y) + v2.x * ((double)v1.y - v3.y) + v3.x * ((double)v2.y - v1.y));
+
+// -------------------------------------------------------------------------------
+/** Compute the signed area of a triangle.
+ *  The function accepts an unconstrained template parameter for use with
+ *  both aiVector3D and aiVector2D, but generally ignores the third coordinate.*/
+template <typename T>
+inline double GetArea2D(const T& v1, const T& v2, const T& v3) 
+{
+	return 0.5 * (v1.x * ((double)v3.y - v2.y) + v2.x * ((double)v1.y - v3.y) + v3.x * ((double)v2.y - v1.y));
 }
 
 
@@ -100,70 +100,70 @@ inline double GetArea2D(const T& v1, const T& v2, const T& v3)
  * @note Code taken from http://cgm.cs.mcgill.ca/~godfried/teaching/cg-projects/97/Ian/applet1.html and translated to C++
  */
 template <typename T>
-inline bool IsCCW(T* in, size_t npoints) {
-	double aa, bb, cc, b, c, theta;
-	double convex_turn;
-	double convex_sum = 0;
-
-	for (int i = 0; i < npoints - 2; i++) {
-		aa = ((in[i+2].x - in[i].x) * (in[i+2].x - in[i].x)) +
-			((-in[i+2].y + in[i].y) * (-in[i+2].y + in[i].y));
-
-		bb = ((in[i+1].x - in[i].x) * (in[i+1].x - in[i].x)) +
-			((-in[i+1].y + in[i].y) * (-in[i+1].y + in[i].y));
-
-		cc = ((in[i+2].x - in[i+1].x) * 
-			(in[i+2].x - in[i+1].x)) +
-			((-in[i+2].y + in[i+1].y) *
-			(-in[i+2].y + in[i+1].y));
-
-		b = sqrt(bb);
-		c = sqrt(cc);
-		theta = acos((bb + cc - aa) / (2 * b * c));
-
-		if (OnLeftSideOfLine2D(in[i],in[i+2],in[i+1])) {
-			//	if (convex(in[i].x, in[i].y,
-			//		in[i+1].x, in[i+1].y,
-			//		in[i+2].x, in[i+2].y)) {
-			convex_turn = AI_MATH_PI_F - theta;
-			convex_sum += convex_turn;
-		}
-		else {
-			convex_sum -= AI_MATH_PI_F - theta;
-		}
-	}
-	aa = ((in[1].x - in[npoints-2].x) * 
-		(in[1].x - in[npoints-2].x)) +
-		((-in[1].y + in[npoints-2].y) * 
-		(-in[1].y + in[npoints-2].y));
-
-	bb = ((in[0].x - in[npoints-2].x) * 
-		(in[0].x - in[npoints-2].x)) +
-		((-in[0].y + in[npoints-2].y) * 
-		(-in[0].y + in[npoints-2].y));
-
-	cc = ((in[1].x - in[0].x) * (in[1].x - in[0].x)) +
-		((-in[1].y + in[0].y) * (-in[1].y + in[0].y));
-
-	b = sqrt(bb);
-	c = sqrt(cc);
-	theta = acos((bb + cc - aa) / (2 * b * c));
-
-	//if (convex(in[npoints-2].x, in[npoints-2].y,
-	//	in[0].x, in[0].y,
-	//	in[1].x, in[1].y)) {
-	if (OnLeftSideOfLine2D(in[npoints-2],in[1],in[0])) {
-		convex_turn = AI_MATH_PI_F - theta;
-		convex_sum += convex_turn;
-	}
-	else { 
-		convex_sum -= AI_MATH_PI_F - theta;
-	}
-
-	return convex_sum >= (2 * AI_MATH_PI_F);
-}
-
-
+inline bool IsCCW(T* in, size_t npoints) {
+	double aa, bb, cc, b, c, theta;
+	double convex_turn;
+	double convex_sum = 0;
+
+	for (int i = 0; i < npoints - 2; i++) {
+		aa = ((in[i+2].x - in[i].x) * (in[i+2].x - in[i].x)) +
+			((-in[i+2].y + in[i].y) * (-in[i+2].y + in[i].y));
+
+		bb = ((in[i+1].x - in[i].x) * (in[i+1].x - in[i].x)) +
+			((-in[i+1].y + in[i].y) * (-in[i+1].y + in[i].y));
+
+		cc = ((in[i+2].x - in[i+1].x) * 
+			(in[i+2].x - in[i+1].x)) +
+			((-in[i+2].y + in[i+1].y) *
+			(-in[i+2].y + in[i+1].y));
+
+		b = sqrt(bb);
+		c = sqrt(cc);
+		theta = acos((bb + cc - aa) / (2 * b * c));
+
+		if (OnLeftSideOfLine2D(in[i],in[i+2],in[i+1])) {
+			//	if (convex(in[i].x, in[i].y,
+			//		in[i+1].x, in[i+1].y,
+			//		in[i+2].x, in[i+2].y)) {
+			convex_turn = AI_MATH_PI_F - theta;
+			convex_sum += convex_turn;
+		}
+		else {
+			convex_sum -= AI_MATH_PI_F - theta;
+		}
+	}
+	aa = ((in[1].x - in[npoints-2].x) * 
+		(in[1].x - in[npoints-2].x)) +
+		((-in[1].y + in[npoints-2].y) * 
+		(-in[1].y + in[npoints-2].y));
+
+	bb = ((in[0].x - in[npoints-2].x) * 
+		(in[0].x - in[npoints-2].x)) +
+		((-in[0].y + in[npoints-2].y) * 
+		(-in[0].y + in[npoints-2].y));
+
+	cc = ((in[1].x - in[0].x) * (in[1].x - in[0].x)) +
+		((-in[1].y + in[0].y) * (-in[1].y + in[0].y));
+
+	b = sqrt(bb);
+	c = sqrt(cc);
+	theta = acos((bb + cc - aa) / (2 * b * c));
+
+	//if (convex(in[npoints-2].x, in[npoints-2].y,
+	//	in[0].x, in[0].y,
+	//	in[1].x, in[1].y)) {
+	if (OnLeftSideOfLine2D(in[npoints-2],in[1],in[0])) {
+		convex_turn = AI_MATH_PI_F - theta;
+		convex_sum += convex_turn;
+	}
+	else { 
+		convex_sum -= AI_MATH_PI_F - theta;
+	}
+
+	return convex_sum >= (2 * AI_MATH_PI_F);
+}
+
+
 // -------------------------------------------------------------------------------
 /** Compute the normal of an arbitrary polygon in R3.
  *

+ 229 - 0
code/PostStepRegistry.cpp

@@ -0,0 +1,229 @@
+/*
+---------------------------------------------------------------------------
+Open Asset Import Library (ASSIMP)
+---------------------------------------------------------------------------
+
+Copyright (c) 2006-2010, ASSIMP Development Team
+
+All rights reserved.
+
+Redistribution and use of this software in source and binary forms, 
+with or without modification, are permitted provided that the following 
+conditions are met:
+
+* Redistributions of source code must retain the above
+  copyright notice, this list of conditions and the
+  following disclaimer.
+
+* Redistributions in binary form must reproduce the above
+  copyright notice, this list of conditions and the
+  following disclaimer in the documentation and/or other
+  materials provided with the distribution.
+
+* Neither the name of the ASSIMP team, nor the names of its
+  contributors may be used to endorse or promote products
+  derived from this software without specific prior
+  written permission of the ASSIMP Development Team.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+---------------------------------------------------------------------------
+*/
+
+/** @file ImporterRegistry.cpp
+
+Central registry for all postprocessing steps available. Do not edit this file
+directly (unless you are adding new steps), instead use the
+corresponding preprocessor flag to selectively disable steps.
+*/
+
+#include "AssimpPCH.h"
+
+#ifndef ASSIMP_BUILD_NO_CALCTANGENTS_PROCESS
+#	include "CalcTangentsProcess.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_JOINVERTICES_PROCESS
+#	include "JoinVerticesProcess.h"
+#endif
+#if !(defined ASSIMP_BUILD_NO_MAKELEFTHANDED_PROCESS && defined ASSIMP_BUILD_NO_FLIPUVS_PROCESS && defined ASSIMP_BUILD_NO_FLIPWINDINGORDER_PROCESS)
+#	include "ConvertToLHProcess.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_TRIANGULATE_PROCESS
+#	include "TriangulateProcess.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_GENFACENORMALS_PROCESS
+#	include "GenFaceNormalsProcess.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_GENVERTEXNORMALS_PROCESS
+#	include "GenVertexNormalsProcess.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_REMOVEVC_PROCESS
+#	include "RemoveVCProcess.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_SPLITLARGEMESHES_PROCESS
+#	include "SplitLargeMeshes.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_PRETRANSFORMVERTICES_PROCESS
+#	include "PretransformVertices.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_LIMITBONEWEIGHTS_PROCESS
+#	include "LimitBoneWeightsProcess.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_VALIDATEDS_PROCESS
+#	include "ValidateDataStructure.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_IMPROVECACHELOCALITY_PROCESS
+#	include "ImproveCacheLocality.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_FIXINFACINGNORMALS_PROCESS
+#	include "FixNormalsStep.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_REMOVE_REDUNDANTMATERIALS_PROCESS
+#	include "RemoveRedundantMaterials.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_FINDINVALIDDATA_PROCESS
+#	include "FindInvalidDataProcess.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_FINDDEGENERATES_PROCESS
+#	include "FindDegenerates.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_SORTBYPTYPE_PROCESS
+#	include "SortByPTypeProcess.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_GENUVCOORDS_PROCESS
+#	include "ComputeUVMappingProcess.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_TRANSFORMTEXCOORDS_PROCESS
+#	include "TextureTransform.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_FINDINSTANCES_PROCESS
+#	include "FindInstancesProcess.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_OPTIMIZEMESHES_PROCESS
+#	include "OptimizeMeshes.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_OPTIMIZEGRAPH_PROCESS
+#	include "OptimizeGraph.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_SPLITBYBONECOUNT_PROCESS
+#	include "SplitByBoneCountProcess.h"
+#endif
+#ifndef ASSIMP_BUILD_NO_DEBONE_PROCESS
+#	include "DeboneProcess.h"
+#endif
+
+namespace Assimp {
+
+// ------------------------------------------------------------------------------------------------
+void GetPostProcessingStepInstanceList(std::vector< BaseProcess* >& out)
+{
+	// ----------------------------------------------------------------------------
+	// Add an instance of each post processing step here in the order 
+	// of sequence it is executed. Steps that are added here are not
+	// validated - as RegisterPPStep() does - all dependencies must be given.
+	// ----------------------------------------------------------------------------
+	out.reserve(25);
+#if (!defined ASSIMP_BUILD_NO_REMOVEVC_PROCESS)
+	out.push_back( new RemoveVCProcess());
+#endif
+#if (!defined ASSIMP_BUILD_NO_REMOVE_REDUNDANTMATERIALS_PROCESS)
+	out.push_back( new RemoveRedundantMatsProcess());
+#endif
+#if (!defined ASSIMP_BUILD_NO_FINDINSTANCES_PROCESS)
+	out.push_back( new FindInstancesProcess());
+#endif
+#if (!defined ASSIMP_BUILD_NO_OPTIMIZEGRAPH_PROCESS)
+	out.push_back( new OptimizeGraphProcess());
+#endif
+#if (!defined ASSIMP_BUILD_NO_OPTIMIZEMESHES_PROCESS)
+	out.push_back( new OptimizeMeshesProcess());
+#endif
+#if (!defined ASSIMP_BUILD_NO_FINDDEGENERATES_PROCESS)
+	out.push_back( new FindDegeneratesProcess());
+#endif
+#ifndef ASSIMP_BUILD_NO_GENUVCOORDS_PROCESS
+	out.push_back( new ComputeUVMappingProcess());
+#endif
+#ifndef ASSIMP_BUILD_NO_TRANSFORMTEXCOORDS_PROCESS
+	out.push_back( new TextureTransformStep());
+#endif
+#if (!defined ASSIMP_BUILD_NO_PRETRANSFORMVERTICES_PROCESS)
+	out.push_back( new PretransformVertices());
+#endif
+#if (!defined ASSIMP_BUILD_NO_TRIANGULATE_PROCESS)
+	out.push_back( new TriangulateProcess());
+#endif
+#if (!defined ASSIMP_BUILD_NO_SORTBYPTYPE_PROCESS)
+	out.push_back( new SortByPTypeProcess());
+#endif
+#if (!defined ASSIMP_BUILD_NO_FINDINVALIDDATA_PROCESS)
+	out.push_back( new FindInvalidDataProcess());
+#endif
+#if (!defined ASSIMP_BUILD_NO_FIXINFACINGNORMALS_PROCESS)
+	out.push_back( new FixInfacingNormalsProcess());
+#endif
+#if (!defined ASSIMP_BUILD_NO_SPLITBYBONECOUNT_PROCESS)
+	out.push_back( new SplitByBoneCountProcess());
+#endif
+#if (!defined ASSIMP_BUILD_NO_SPLITLARGEMESHES_PROCESS)
+	out.push_back( new SplitLargeMeshesProcess_Triangle());
+#endif
+#if (!defined ASSIMP_BUILD_NO_GENFACENORMALS_PROCESS)
+	out.push_back( new GenFaceNormalsProcess());
+#endif
+
+	// .........................................................................
+	// DON'T change the order of these five ..
+	// XXX this is actually a design weakness that dates back to the time
+	// when Importer would maintain the postprocessing step list exclusively.
+	// Now that others access it too, we need a better solution.
+	out.push_back( new ComputeSpatialSortProcess());
+	// .........................................................................
+
+#if (!defined ASSIMP_BUILD_NO_GENVERTEXNORMALS_PROCESS)
+	out.push_back( new GenVertexNormalsProcess());
+#endif
+#if (!defined ASSIMP_BUILD_NO_CALCTANGENTS_PROCESS)
+	out.push_back( new CalcTangentsProcess());
+#endif
+#if (!defined ASSIMP_BUILD_NO_JOINVERTICES_PROCESS)
+	out.push_back( new JoinVerticesProcess());
+#endif
+
+	// .........................................................................
+	out.push_back( new DestroySpatialSortProcess());
+	// .........................................................................
+
+#if (!defined ASSIMP_BUILD_NO_SPLITLARGEMESHES_PROCESS)
+	out.push_back( new SplitLargeMeshesProcess_Vertex());
+#endif
+#if (!defined ASSIMP_BUILD_NO_MAKELEFTHANDED_PROCESS)
+	out.push_back( new MakeLeftHandedProcess());
+#endif
+#if (!defined ASSIMP_BUILD_NO_FLIPUVS_PROCESS)
+	out.push_back( new FlipUVsProcess());
+#endif
+#if (!defined ASSIMP_BUILD_NO_FLIPWINDINGORDER_PROCESS)
+	out.push_back( new FlipWindingOrderProcess());
+#endif
+#if (!defined ASSIMP_BUILD_DEBONE_PROCESS)
+	out.push_back( new DeboneProcess());
+#endif
+#if (!defined ASSIMP_BUILD_NO_LIMITBONEWEIGHTS_PROCESS)
+	out.push_back( new LimitBoneWeightsProcess());
+#endif
+#if (!defined ASSIMP_BUILD_NO_IMPROVECACHELOCALITY_PROCESS)
+	out.push_back( new ImproveCacheLocalityProcess());
+#endif
+}
+
+}

+ 1 - 6
code/PretransformVertices.h

@@ -58,14 +58,9 @@ namespace Assimp	{
 */
 class ASSIMP_API PretransformVertices : public BaseProcess
 {
-	friend class Importer;
-	friend class ::PretransformVerticesTest;
+public:
 
-protected:
-	/** Constructor to be privately used by Importer */
 	PretransformVertices ();
-
-	/** Destructor, private as well */
 	~PretransformVertices ();
 
 public:

+ 2 - 3
code/Q3BSPFileImporter.h

@@ -58,11 +58,10 @@ struct sQ3BSPFace;
 /**	Loader to import BSP-levels from a PK3 archive or from a unpacked BSP-level.
  */
 // ------------------------------------------------------------------------------------------------
-class Q3BSPFileImporter : BaseImporter
+class Q3BSPFileImporter : public BaseImporter
 {
-	friend class Importer;
+public:
 
-protected:
 	///	@brief	Default constructor.
 	Q3BSPFileImporter();
 

+ 2 - 6
code/Q3DLoader.h

@@ -55,15 +55,11 @@ namespace Assimp	{
 */
 class Q3DImporter : public BaseImporter
 {
-	friend class Importer;
-
-protected:
-	/** Constructor to be privately used by Importer */
+public:
 	Q3DImporter();
-
-	/** Destructor, private as well */
 	~Q3DImporter();
 
+
 public:
 
 	// -------------------------------------------------------------------

+ 2 - 6
code/RawLoader.h

@@ -55,15 +55,11 @@ namespace Assimp	{
 */
 class RAWImporter : public BaseImporter
 {
-	friend class Importer;
-
-protected:
-	/** Constructor to be privately used by Importer */
+public:
 	RAWImporter();
-
-	/** Destructor, private as well */
 	~RAWImporter();
 
+
 public:
 
 	// -------------------------------------------------------------------

+ 1 - 6
code/RemoveRedundantMaterials.h

@@ -56,14 +56,9 @@ namespace Assimp	{
  */
 class ASSIMP_API RemoveRedundantMatsProcess : public BaseProcess
 {
-	friend class Importer;
-	friend class ::RemoveRedundantMatsTest; // grant the unit test full access to us
+public:
 
-protected:
-	/** Constructor to be privately used by Importer */
 	RemoveRedundantMatsProcess();
-
-	/** Destructor, private as well */
 	~RemoveRedundantMatsProcess();
 
 public:

+ 1 - 6
code/RemoveVCProcess.h

@@ -54,14 +54,9 @@ namespace Assimp	{
 */
 class ASSIMP_API RemoveVCProcess : public BaseProcess
 {
-	friend class Importer;
-	friend class ::RemoveVCProcessTest;
+public:
 
-protected:
-	/** Constructor to be privately used by Importer */
 	RemoveVCProcess();
-
-	/** Destructor, private as well */
 	~RemoveVCProcess();
 
 public:

+ 2 - 6
code/SMDLoader.h

@@ -172,15 +172,11 @@ struct Bone
 */
 class SMDImporter : public BaseImporter
 {
-	friend class Importer;
-
-protected:
-	/** Constructor to be privately used by Importer */
+public:
 	SMDImporter();
-
-	/** Destructor, private as well */
 	~SMDImporter();
 
+
 public:
 
 	// -------------------------------------------------------------------

+ 2 - 6
code/STLLoader.h

@@ -54,15 +54,11 @@ namespace Assimp	{
 */
 class STLImporter : public BaseImporter
 {
-	friend class Importer;
-
-protected:
-	/** Constructor to be privately used by Importer */
+public:
 	STLImporter();
-
-	/** Destructor, private as well */
 	~STLImporter();
 
+
 public:
 
 	// -------------------------------------------------------------------

+ 5 - 4
code/SceneCombiner.cpp

@@ -882,7 +882,7 @@ void SceneCombiner::MergeMeshes(aiMesh** _out,unsigned int /*flags*/,
 
 // ------------------------------------------------------------------------------------------------
 template <typename Type>
-inline void CopyPtrArray (Type**& dest, Type** src, unsigned int num)
+inline void CopyPtrArray (Type**& dest, const Type* const * src, unsigned int num)
 {
 	if (!num)
 	{
@@ -890,8 +890,9 @@ inline void CopyPtrArray (Type**& dest, Type** src, unsigned int num)
 		return;
 	}
 	dest = new Type*[num];
-	for (unsigned int i = 0; i < num;++i)
+	for (unsigned int i = 0; i < num;++i) {
 		SceneCombiner::Copy(&dest[i],src[i]);
+	}
 }
 
 // ------------------------------------------------------------------------------------------------
@@ -906,7 +907,7 @@ inline void GetArrayCopy (Type*& dest, unsigned int num )
 }
 
 // ------------------------------------------------------------------------------------------------
-void SceneCombiner::CopySceneFlat(aiScene** _dest,aiScene* src)
+void SceneCombiner::CopySceneFlat(aiScene** _dest,const aiScene* src)
 {
 	// reuse the old scene or allocate a new?
 	if (*_dest)(*_dest)->~aiScene();
@@ -916,7 +917,7 @@ void SceneCombiner::CopySceneFlat(aiScene** _dest,aiScene* src)
 }
 
 // ------------------------------------------------------------------------------------------------
-void SceneCombiner::CopyScene(aiScene** _dest,aiScene* src)
+void SceneCombiner::CopyScene(aiScene** _dest,const aiScene* src)
 {
 	ai_assert(NULL != _dest && NULL != src);
 

+ 2 - 2
code/SceneCombiner.h

@@ -303,7 +303,7 @@ public:
 	 *  @param dest Receives a pointer to the destination scene
 	 *  @param src Source scene - remains unmodified.
 	 */
-	static void CopyScene(aiScene** dest,aiScene* source);
+	static void CopyScene(aiScene** dest,const aiScene* source);
 
 
 	// -------------------------------------------------------------------
@@ -316,7 +316,7 @@ public:
 	 *  @param dest Receives a pointer to the destination scene
 	 *  @param src Source scene - remains unmodified.
 	 */
-	static void CopySceneFlat(aiScene** dest,aiScene* source);
+	static void CopySceneFlat(aiScene** dest,const aiScene* source);
 
 
 	// -------------------------------------------------------------------

+ 70 - 0
code/ScenePrivate.h

@@ -0,0 +1,70 @@
+/*
+Open Asset Import Library (ASSIMP)
+----------------------------------------------------------------------
+
+Copyright (c) 2006-2010, ASSIMP Development Team
+All rights reserved.
+
+Redistribution and use of this software in source and binary forms, 
+with or without modification, are permitted provided that the 
+following conditions are met:
+
+* Redistributions of source code must retain the above
+  copyright notice, this list of conditions and the
+  following disclaimer.
+
+* Redistributions in binary form must reproduce the above
+  copyright notice, this list of conditions and the
+  following disclaimer in the documentation and/or other
+  materials provided with the distribution.
+
+* Neither the name of the ASSIMP team, nor the names of its
+  contributors may be used to endorse or promote products
+  derived from this software without specific prior
+  written permission of the ASSIMP Development Team.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+----------------------------------------------------------------------
+*/
+
+/** @file Stuff to deal with aiScene::mPrivate
+ */
+#ifndef AI_SCENEPRIVATE_H_INCLUDED
+#define AI_SCENEPRIVATE_H_INCLUDED
+
+
+namespace Assimp	{
+
+struct ScenePrivateData {
+	
+	ScenePrivateData()
+		: mPPStepsApplied()
+	{}
+
+	// List of postprocessing steps already applied to the scene.
+	unsigned int mPPStepsApplied;
+};
+
+// Access private data stored in the scene
+inline ScenePrivateData* ScenePriv(aiScene* in) {
+	return static_cast<ScenePrivateData*>(in->mPrivate);
+}
+
+inline const ScenePrivateData* ScenePriv(const aiScene* in) {
+	return static_cast<const ScenePrivateData*>(in->mPrivate);
+}
+
+}
+
+#endif

+ 1 - 6
code/SortByPTypeProcess.h

@@ -57,14 +57,9 @@ namespace Assimp	{
 */
 class ASSIMP_API SortByPTypeProcess : public BaseProcess
 {
-	friend class Importer;
-	friend class ::SortByPTypeProcessTest; // grant the unit test full access to us
+public:
 
-protected:
-	/** Constructor to be privately used by Importer */
 	SortByPTypeProcess();
-
-	/** Destructor, private as well */
 	~SortByPTypeProcess();
 
 public:

+ 1 - 5
code/SplitByBoneCountProcess.h

@@ -61,13 +61,9 @@ namespace Assimp
 */
 class ASSIMP_API SplitByBoneCountProcess : public BaseProcess
 {
-	friend class Importer;
+public:
 
-protected:
-	/** Constructor to be privately used by Importer */
 	SplitByBoneCountProcess();
-
-	/** Destructor, private as well */
 	~SplitByBoneCountProcess();
 
 public:

+ 3 - 12
code/SplitLargeMeshes.h

@@ -83,15 +83,11 @@ class SplitLargeMeshesProcess_Vertex;
 */
 class ASSIMP_API SplitLargeMeshesProcess_Triangle : public BaseProcess
 {
-	friend class Importer;
 	friend class SplitLargeMeshesProcess_Vertex;
-	friend class ::SplitLargeMeshesTest;
 
-protected:
-	/** Constructor to be privately used by Importer */
-	SplitLargeMeshesProcess_Triangle();
+public:
 
-	/** Destructor, private as well */
+	SplitLargeMeshesProcess_Triangle();
 	~SplitLargeMeshesProcess_Triangle();
 
 public:
@@ -155,14 +151,9 @@ public:
 */
 class ASSIMP_API SplitLargeMeshesProcess_Vertex : public BaseProcess
 {
-	friend class Importer;
-	friend class ::SplitLargeMeshesTest;
+public:
 
-protected:
-	/** Constructor to be privately used by Importer */
 	SplitLargeMeshesProcess_Vertex();
-
-	/** Destructor, private as well */
 	~SplitLargeMeshesProcess_Vertex();
 
 public:

+ 2 - 6
code/TerragenLoader.h

@@ -69,15 +69,11 @@ namespace Assimp	{
 */
 class TerragenImporter : public BaseImporter
 {
-	friend class Importer;
-
-protected:
-	/** Constructor to be privately used by Importer */
+public:
 	TerragenImporter();
-
-	/** Destructor, private as well */
 	~TerragenImporter();
 
+
 public:
 
 	// -------------------------------------------------------------------

+ 2 - 0
code/TextureTransform.h

@@ -195,6 +195,8 @@ public:
 	TextureTransformStep();
 	~TextureTransformStep();
 
+public:
+
 	// -------------------------------------------------------------------
 	bool IsActive( unsigned int pFlags) const;
 

+ 1 - 6
code/TriangulateProcess.h

@@ -59,14 +59,9 @@ namespace Assimp
  */
 class ASSIMP_API TriangulateProcess : public BaseProcess
 {
-	friend class Importer;
-	friend class ::TriangulateProcessTest; // grant the unit test full access to us
+public:
 
-protected:
-	/** Constructor to be privately used by Importer */
 	TriangulateProcess();
-
-	/** Destructor, private as well */
 	~TriangulateProcess();
 
 public:

+ 2 - 6
code/UnrealLoader.h

@@ -145,15 +145,11 @@ inline void DecompressVertex(aiVector3D& v, int32_t in)
 */
 class UnrealImporter : public BaseImporter
 {
-	friend class Importer;
-
-protected:
-	/** Constructor to be privately used by Importer */
+public:
 	UnrealImporter();
-
-	/** Destructor, private as well */
 	~UnrealImporter();
 
+
 public:
 
 	// -------------------------------------------------------------------

+ 1 - 5
code/ValidateDataStructure.h

@@ -64,13 +64,9 @@ namespace Assimp	{
 // --------------------------------------------------------------------------------------
 class ASSIMP_API ValidateDSProcess : public BaseProcess
 {
-	friend class Importer;
+public:
 
-protected:
-	/** Constructor to be privately used by Importer */
 	ValidateDSProcess();
-
-	/** Destructor, private as well */
 	~ValidateDSProcess();
 
 public:

+ 2 - 6
code/XFileImporter.h

@@ -66,15 +66,11 @@ struct Node;
  */
 class XFileImporter : public BaseImporter
 {
-	friend class Importer;
-
-protected:
-	/** Constructor to be privately used by Importer */
+public:
 	XFileImporter();
-
-	/** Destructor, private as well */
 	~XFileImporter();
 
+
 public:
 	// -------------------------------------------------------------------
 	/** Returns whether the class can handle the format of the given file. 

+ 3368 - 111
code/makefile

@@ -1,111 +1,3368 @@
-### USE OF THIS MAKEFILE IS NOT RECOMMENDED.
-### It is no longer maintained. Use CMAKE instead.
-
-# Makefile for Open Asset Import Library (GNU-make)
-# [email protected]
-
-#
-# Usage: make <target> <macros>
-
-# TARGETS:
-#   all                  Build a shared so from the whole library
-#   clean                Cleanup object files, prepare for rebuild
-#   static               Build a static library (*.a)
-#   install              SDK will be installed to /usr/bin/assimp
-
-# MACROS: (make clean before you change one)
-#   NOBOOST=1            Build against boost workaround
-#   SINGLETHREADED=1     Build single-threaded library
-#   DEBUG=1              Build debug build of library
-
-# C++ object files
-OBJECTS   := $(patsubst %.cpp,%.o,  $(wildcard *.cpp)) 
-OBJECTS   += $(patsubst %.cpp,%.o,  $(wildcard extra/*.cpp)) 
-OBJECTS   += $(patsubst %.cpp,%.o,  $(wildcard ./../contrib/irrXML/*.cpp)) 
-
-# C object files
-OBJECTSC  := $(patsubst %.c,%.oc,   $(wildcard ./../contrib/zlib/*.c))
-OBJECTSC  += $(patsubst %.c,%.oc,   $(wildcard ./../contrib/ConvertUTF/*.c))
-OBJECTSC  += $(patsubst %.c,%.oc,   $(wildcard ./../contrib/unzip/*.c))
-
-# Directory for install
-INSTALLDIR = /usr/bin/assimp
-
-# Include flags for gcc
-INCLUDEFLAGS =
-
-# Preprocessor defines for gcc
-DEFINEFLAGS = 
-
-# Suffix for the output binary, represents build type
-NAMESUFFIX = 
-
-# Output path for binaries
-BINPATH = ../bin/gcc
-INCPATH = ../include
-
-# GCC compiler flags 
-CPPFLAGS=-Wall 
-
-# Setup environment for noboost build
-ifeq ($(NOBOOST),1)
-	SINGLETHREADED = 1
-	INCLUDEFLAGS  += -IBoostWorkaround/
-	DEFINEFLAGS   += -DASSIMP_BUILD_BOOST_WORKAROUND 
-#	NAMESUFFIX    += -noboost
-# else
-#	INCLUDEFLAGS  += -I"C:/Program Files/boost/boost_1_35_0"
-endif
-
-# Setup environment for st build
-ifeq ($(SINGLETHREADED),1)
-	DEFINEFLAGS   += -DASSIMP_BUILD_SINGLETHREADED
-#	NAMESUFFIX    += -st
-endif
-
-# Setup environment for debug build
-ifeq ($(DEBUG),1)
-	DEFINEFLAGS   += -D_DEBUG -DDEBUG
-#	NAMESUFFIX    += -debug
-else
-	CPPFLAGS      += -O3
-	DEFINEFLAGS   += -DNDEBUG -D_NDEBUG
-endif
-
-OUTPUT_NAME = dummy
-
-# Output name of shared library
-SHARED_TARGET = $(BINPATH)/libassimp$(NAMESUFFIX).so
-
-# Output name of static library
-STATIC = $(BINPATH)/libassimp$(NAMESUFFIX).a
-
-# target: all
-# usage : build a shared library (*.so)
-all:	$(SHARED_TARGET) 
-
-$(SHARED_TARGET):  $(OBJECTS)  $(OBJECTSC)
-	gcc -o $@ $(OBJECTS) $(OBJECTSC) -shared -lstdc++ 
-%.o:%.cpp
-	$(CXX) -g -c  $(CPPFLAGS) $? -o $@ $(INCLUDEFLAGS) $(DEFINEFLAGS) -fPIC
-%.oc:%.c
-	$(CXX) -x c -g -c -ansi $(CPPFLAGS) $? -o $@ -fPIC
-
-# target: clean
-# usage : cleanup all object files, prepare for a rebuild
-.PHONY: clean
-clean:
-	-rm -f $(OBJECTS) $(OBJECTSC) $(TARGET)
-
-# target: static
-# usage : build a static library (*.a)
-static:    $(STATIC)
-$(STATIC):    $(OBJECTS) $(OBJECTSC)
-	ar rcs $@ $(OBJECTS) $(OBJECTSC)
-
-install:
-	mkdir -p $(INSTALLDIR)
-	mkdir -p $(INSTALLDIR)/include
-	mkdir -p $(INSTALLDIR)/lib
-	cp $(BINPATH)/libassimp$(NAMESUFFIX).* $(INSTALLDIR)/lib
-	cp $(INCPATH)/* $(INSTALLDIR)/include
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 2.8
+
+# Default target executed when no arguments are given to make.
+default_target: all
+.PHONY : default_target
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canoncical targets will work.
+.SUFFIXES:
+
+# Remove some rules from gmake that .SUFFIXES does not remove.
+SUFFIXES =
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+# Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+# A target that is always out of date.
+cmake_force:
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E remove -f
+
+# The program to use to edit the cache.
+CMAKE_EDIT_COMMAND = /usr/bin/cmake-gui
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /mnt/hgfs/dev/assimp4.svnc
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /mnt/hgfs/dev/assimp4.svnc
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
+	/usr/bin/cmake-gui -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+.PHONY : edit_cache/fast
+
+# Special rule for the target install
+install: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install
+
+# Special rule for the target install
+install/fast: preinstall/fast
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/bin/cmake -P cmake_install.cmake
+.PHONY : install/fast
+
+# Special rule for the target install/local
+install/local: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
+.PHONY : install/local
+
+# Special rule for the target install/local
+install/local/fast: install/local
+.PHONY : install/local/fast
+
+# Special rule for the target install/strip
+install/strip: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
+	/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
+.PHONY : install/strip
+
+# Special rule for the target install/strip
+install/strip/fast: install/strip
+.PHONY : install/strip/fast
+
+# Special rule for the target list_install_components
+list_install_components:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"assimp-bin\" \"assimp-dev\" \"libassimp2\""
+.PHONY : list_install_components
+
+# Special rule for the target list_install_components
+list_install_components/fast: list_install_components
+.PHONY : list_install_components/fast
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+.PHONY : rebuild_cache/fast
+
+# The main all target
+all: cmake_check_build_system
+	cd /mnt/hgfs/dev/assimp4.svnc && $(CMAKE_COMMAND) -E cmake_progress_start /mnt/hgfs/dev/assimp4.svnc/CMakeFiles /mnt/hgfs/dev/assimp4.svnc/code/CMakeFiles/progress.marks
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f CMakeFiles/Makefile2 code/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /mnt/hgfs/dev/assimp4.svnc/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f CMakeFiles/Makefile2 code/clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f CMakeFiles/Makefile2 code/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f CMakeFiles/Makefile2 code/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+# Convenience name for target.
+code/CMakeFiles/assimp.dir/rule:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f CMakeFiles/Makefile2 code/CMakeFiles/assimp.dir/rule
+.PHONY : code/CMakeFiles/assimp.dir/rule
+
+# Convenience name for target.
+assimp: code/CMakeFiles/assimp.dir/rule
+.PHONY : assimp
+
+# fast build rule for target.
+assimp/fast:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/build
+.PHONY : assimp/fast
+
+3DSConverter.o: 3DSConverter.cpp.o
+.PHONY : 3DSConverter.o
+
+# target to build an object file
+3DSConverter.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/3DSConverter.cpp.o
+.PHONY : 3DSConverter.cpp.o
+
+3DSConverter.i: 3DSConverter.cpp.i
+.PHONY : 3DSConverter.i
+
+# target to preprocess a source file
+3DSConverter.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/3DSConverter.cpp.i
+.PHONY : 3DSConverter.cpp.i
+
+3DSConverter.s: 3DSConverter.cpp.s
+.PHONY : 3DSConverter.s
+
+# target to generate assembly for a file
+3DSConverter.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/3DSConverter.cpp.s
+.PHONY : 3DSConverter.cpp.s
+
+3DSLoader.o: 3DSLoader.cpp.o
+.PHONY : 3DSLoader.o
+
+# target to build an object file
+3DSLoader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/3DSLoader.cpp.o
+.PHONY : 3DSLoader.cpp.o
+
+3DSLoader.i: 3DSLoader.cpp.i
+.PHONY : 3DSLoader.i
+
+# target to preprocess a source file
+3DSLoader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/3DSLoader.cpp.i
+.PHONY : 3DSLoader.cpp.i
+
+3DSLoader.s: 3DSLoader.cpp.s
+.PHONY : 3DSLoader.s
+
+# target to generate assembly for a file
+3DSLoader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/3DSLoader.cpp.s
+.PHONY : 3DSLoader.cpp.s
+
+ACLoader.o: ACLoader.cpp.o
+.PHONY : ACLoader.o
+
+# target to build an object file
+ACLoader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ACLoader.cpp.o
+.PHONY : ACLoader.cpp.o
+
+ACLoader.i: ACLoader.cpp.i
+.PHONY : ACLoader.i
+
+# target to preprocess a source file
+ACLoader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ACLoader.cpp.i
+.PHONY : ACLoader.cpp.i
+
+ACLoader.s: ACLoader.cpp.s
+.PHONY : ACLoader.s
+
+# target to generate assembly for a file
+ACLoader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ACLoader.cpp.s
+.PHONY : ACLoader.cpp.s
+
+ASELoader.o: ASELoader.cpp.o
+.PHONY : ASELoader.o
+
+# target to build an object file
+ASELoader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ASELoader.cpp.o
+.PHONY : ASELoader.cpp.o
+
+ASELoader.i: ASELoader.cpp.i
+.PHONY : ASELoader.i
+
+# target to preprocess a source file
+ASELoader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ASELoader.cpp.i
+.PHONY : ASELoader.cpp.i
+
+ASELoader.s: ASELoader.cpp.s
+.PHONY : ASELoader.s
+
+# target to generate assembly for a file
+ASELoader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ASELoader.cpp.s
+.PHONY : ASELoader.cpp.s
+
+ASEParser.o: ASEParser.cpp.o
+.PHONY : ASEParser.o
+
+# target to build an object file
+ASEParser.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ASEParser.cpp.o
+.PHONY : ASEParser.cpp.o
+
+ASEParser.i: ASEParser.cpp.i
+.PHONY : ASEParser.i
+
+# target to preprocess a source file
+ASEParser.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ASEParser.cpp.i
+.PHONY : ASEParser.cpp.i
+
+ASEParser.s: ASEParser.cpp.s
+.PHONY : ASEParser.s
+
+# target to generate assembly for a file
+ASEParser.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ASEParser.cpp.s
+.PHONY : ASEParser.cpp.s
+
+Assimp.o: Assimp.cpp.o
+.PHONY : Assimp.o
+
+# target to build an object file
+Assimp.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Assimp.cpp.o
+.PHONY : Assimp.cpp.o
+
+Assimp.i: Assimp.cpp.i
+.PHONY : Assimp.i
+
+# target to preprocess a source file
+Assimp.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Assimp.cpp.i
+.PHONY : Assimp.cpp.i
+
+Assimp.s: Assimp.cpp.s
+.PHONY : Assimp.s
+
+# target to generate assembly for a file
+Assimp.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Assimp.cpp.s
+.PHONY : Assimp.cpp.s
+
+AssimpCExport.o: AssimpCExport.cpp.o
+.PHONY : AssimpCExport.o
+
+# target to build an object file
+AssimpCExport.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/AssimpCExport.cpp.o
+.PHONY : AssimpCExport.cpp.o
+
+AssimpCExport.i: AssimpCExport.cpp.i
+.PHONY : AssimpCExport.i
+
+# target to preprocess a source file
+AssimpCExport.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/AssimpCExport.cpp.i
+.PHONY : AssimpCExport.cpp.i
+
+AssimpCExport.s: AssimpCExport.cpp.s
+.PHONY : AssimpCExport.s
+
+# target to generate assembly for a file
+AssimpCExport.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/AssimpCExport.cpp.s
+.PHONY : AssimpCExport.cpp.s
+
+AssimpPCH.o: AssimpPCH.cpp.o
+.PHONY : AssimpPCH.o
+
+# target to build an object file
+AssimpPCH.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/AssimpPCH.cpp.o
+.PHONY : AssimpPCH.cpp.o
+
+AssimpPCH.i: AssimpPCH.cpp.i
+.PHONY : AssimpPCH.i
+
+# target to preprocess a source file
+AssimpPCH.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/AssimpPCH.cpp.i
+.PHONY : AssimpPCH.cpp.i
+
+AssimpPCH.s: AssimpPCH.cpp.s
+.PHONY : AssimpPCH.s
+
+# target to generate assembly for a file
+AssimpPCH.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/AssimpPCH.cpp.s
+.PHONY : AssimpPCH.cpp.s
+
+B3DImporter.o: B3DImporter.cpp.o
+.PHONY : B3DImporter.o
+
+# target to build an object file
+B3DImporter.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/B3DImporter.cpp.o
+.PHONY : B3DImporter.cpp.o
+
+B3DImporter.i: B3DImporter.cpp.i
+.PHONY : B3DImporter.i
+
+# target to preprocess a source file
+B3DImporter.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/B3DImporter.cpp.i
+.PHONY : B3DImporter.cpp.i
+
+B3DImporter.s: B3DImporter.cpp.s
+.PHONY : B3DImporter.s
+
+# target to generate assembly for a file
+B3DImporter.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/B3DImporter.cpp.s
+.PHONY : B3DImporter.cpp.s
+
+BVHLoader.o: BVHLoader.cpp.o
+.PHONY : BVHLoader.o
+
+# target to build an object file
+BVHLoader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/BVHLoader.cpp.o
+.PHONY : BVHLoader.cpp.o
+
+BVHLoader.i: BVHLoader.cpp.i
+.PHONY : BVHLoader.i
+
+# target to preprocess a source file
+BVHLoader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/BVHLoader.cpp.i
+.PHONY : BVHLoader.cpp.i
+
+BVHLoader.s: BVHLoader.cpp.s
+.PHONY : BVHLoader.s
+
+# target to generate assembly for a file
+BVHLoader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/BVHLoader.cpp.s
+.PHONY : BVHLoader.cpp.s
+
+BaseImporter.o: BaseImporter.cpp.o
+.PHONY : BaseImporter.o
+
+# target to build an object file
+BaseImporter.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/BaseImporter.cpp.o
+.PHONY : BaseImporter.cpp.o
+
+BaseImporter.i: BaseImporter.cpp.i
+.PHONY : BaseImporter.i
+
+# target to preprocess a source file
+BaseImporter.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/BaseImporter.cpp.i
+.PHONY : BaseImporter.cpp.i
+
+BaseImporter.s: BaseImporter.cpp.s
+.PHONY : BaseImporter.s
+
+# target to generate assembly for a file
+BaseImporter.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/BaseImporter.cpp.s
+.PHONY : BaseImporter.cpp.s
+
+BaseProcess.o: BaseProcess.cpp.o
+.PHONY : BaseProcess.o
+
+# target to build an object file
+BaseProcess.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/BaseProcess.cpp.o
+.PHONY : BaseProcess.cpp.o
+
+BaseProcess.i: BaseProcess.cpp.i
+.PHONY : BaseProcess.i
+
+# target to preprocess a source file
+BaseProcess.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/BaseProcess.cpp.i
+.PHONY : BaseProcess.cpp.i
+
+BaseProcess.s: BaseProcess.cpp.s
+.PHONY : BaseProcess.s
+
+# target to generate assembly for a file
+BaseProcess.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/BaseProcess.cpp.s
+.PHONY : BaseProcess.cpp.s
+
+BlenderDNA.o: BlenderDNA.cpp.o
+.PHONY : BlenderDNA.o
+
+# target to build an object file
+BlenderDNA.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/BlenderDNA.cpp.o
+.PHONY : BlenderDNA.cpp.o
+
+BlenderDNA.i: BlenderDNA.cpp.i
+.PHONY : BlenderDNA.i
+
+# target to preprocess a source file
+BlenderDNA.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/BlenderDNA.cpp.i
+.PHONY : BlenderDNA.cpp.i
+
+BlenderDNA.s: BlenderDNA.cpp.s
+.PHONY : BlenderDNA.s
+
+# target to generate assembly for a file
+BlenderDNA.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/BlenderDNA.cpp.s
+.PHONY : BlenderDNA.cpp.s
+
+BlenderLoader.o: BlenderLoader.cpp.o
+.PHONY : BlenderLoader.o
+
+# target to build an object file
+BlenderLoader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/BlenderLoader.cpp.o
+.PHONY : BlenderLoader.cpp.o
+
+BlenderLoader.i: BlenderLoader.cpp.i
+.PHONY : BlenderLoader.i
+
+# target to preprocess a source file
+BlenderLoader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/BlenderLoader.cpp.i
+.PHONY : BlenderLoader.cpp.i
+
+BlenderLoader.s: BlenderLoader.cpp.s
+.PHONY : BlenderLoader.s
+
+# target to generate assembly for a file
+BlenderLoader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/BlenderLoader.cpp.s
+.PHONY : BlenderLoader.cpp.s
+
+BlenderModifier.o: BlenderModifier.cpp.o
+.PHONY : BlenderModifier.o
+
+# target to build an object file
+BlenderModifier.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/BlenderModifier.cpp.o
+.PHONY : BlenderModifier.cpp.o
+
+BlenderModifier.i: BlenderModifier.cpp.i
+.PHONY : BlenderModifier.i
+
+# target to preprocess a source file
+BlenderModifier.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/BlenderModifier.cpp.i
+.PHONY : BlenderModifier.cpp.i
+
+BlenderModifier.s: BlenderModifier.cpp.s
+.PHONY : BlenderModifier.s
+
+# target to generate assembly for a file
+BlenderModifier.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/BlenderModifier.cpp.s
+.PHONY : BlenderModifier.cpp.s
+
+BlenderScene.o: BlenderScene.cpp.o
+.PHONY : BlenderScene.o
+
+# target to build an object file
+BlenderScene.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/BlenderScene.cpp.o
+.PHONY : BlenderScene.cpp.o
+
+BlenderScene.i: BlenderScene.cpp.i
+.PHONY : BlenderScene.i
+
+# target to preprocess a source file
+BlenderScene.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/BlenderScene.cpp.i
+.PHONY : BlenderScene.cpp.i
+
+BlenderScene.s: BlenderScene.cpp.s
+.PHONY : BlenderScene.s
+
+# target to generate assembly for a file
+BlenderScene.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/BlenderScene.cpp.s
+.PHONY : BlenderScene.cpp.s
+
+COBLoader.o: COBLoader.cpp.o
+.PHONY : COBLoader.o
+
+# target to build an object file
+COBLoader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/COBLoader.cpp.o
+.PHONY : COBLoader.cpp.o
+
+COBLoader.i: COBLoader.cpp.i
+.PHONY : COBLoader.i
+
+# target to preprocess a source file
+COBLoader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/COBLoader.cpp.i
+.PHONY : COBLoader.cpp.i
+
+COBLoader.s: COBLoader.cpp.s
+.PHONY : COBLoader.s
+
+# target to generate assembly for a file
+COBLoader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/COBLoader.cpp.s
+.PHONY : COBLoader.cpp.s
+
+CSMLoader.o: CSMLoader.cpp.o
+.PHONY : CSMLoader.o
+
+# target to build an object file
+CSMLoader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/CSMLoader.cpp.o
+.PHONY : CSMLoader.cpp.o
+
+CSMLoader.i: CSMLoader.cpp.i
+.PHONY : CSMLoader.i
+
+# target to preprocess a source file
+CSMLoader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/CSMLoader.cpp.i
+.PHONY : CSMLoader.cpp.i
+
+CSMLoader.s: CSMLoader.cpp.s
+.PHONY : CSMLoader.s
+
+# target to generate assembly for a file
+CSMLoader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/CSMLoader.cpp.s
+.PHONY : CSMLoader.cpp.s
+
+CalcTangentsProcess.o: CalcTangentsProcess.cpp.o
+.PHONY : CalcTangentsProcess.o
+
+# target to build an object file
+CalcTangentsProcess.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/CalcTangentsProcess.cpp.o
+.PHONY : CalcTangentsProcess.cpp.o
+
+CalcTangentsProcess.i: CalcTangentsProcess.cpp.i
+.PHONY : CalcTangentsProcess.i
+
+# target to preprocess a source file
+CalcTangentsProcess.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/CalcTangentsProcess.cpp.i
+.PHONY : CalcTangentsProcess.cpp.i
+
+CalcTangentsProcess.s: CalcTangentsProcess.cpp.s
+.PHONY : CalcTangentsProcess.s
+
+# target to generate assembly for a file
+CalcTangentsProcess.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/CalcTangentsProcess.cpp.s
+.PHONY : CalcTangentsProcess.cpp.s
+
+ColladaExporter.o: ColladaExporter.cpp.o
+.PHONY : ColladaExporter.o
+
+# target to build an object file
+ColladaExporter.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ColladaExporter.cpp.o
+.PHONY : ColladaExporter.cpp.o
+
+ColladaExporter.i: ColladaExporter.cpp.i
+.PHONY : ColladaExporter.i
+
+# target to preprocess a source file
+ColladaExporter.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ColladaExporter.cpp.i
+.PHONY : ColladaExporter.cpp.i
+
+ColladaExporter.s: ColladaExporter.cpp.s
+.PHONY : ColladaExporter.s
+
+# target to generate assembly for a file
+ColladaExporter.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ColladaExporter.cpp.s
+.PHONY : ColladaExporter.cpp.s
+
+ColladaLoader.o: ColladaLoader.cpp.o
+.PHONY : ColladaLoader.o
+
+# target to build an object file
+ColladaLoader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ColladaLoader.cpp.o
+.PHONY : ColladaLoader.cpp.o
+
+ColladaLoader.i: ColladaLoader.cpp.i
+.PHONY : ColladaLoader.i
+
+# target to preprocess a source file
+ColladaLoader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ColladaLoader.cpp.i
+.PHONY : ColladaLoader.cpp.i
+
+ColladaLoader.s: ColladaLoader.cpp.s
+.PHONY : ColladaLoader.s
+
+# target to generate assembly for a file
+ColladaLoader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ColladaLoader.cpp.s
+.PHONY : ColladaLoader.cpp.s
+
+ColladaParser.o: ColladaParser.cpp.o
+.PHONY : ColladaParser.o
+
+# target to build an object file
+ColladaParser.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ColladaParser.cpp.o
+.PHONY : ColladaParser.cpp.o
+
+ColladaParser.i: ColladaParser.cpp.i
+.PHONY : ColladaParser.i
+
+# target to preprocess a source file
+ColladaParser.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ColladaParser.cpp.i
+.PHONY : ColladaParser.cpp.i
+
+ColladaParser.s: ColladaParser.cpp.s
+.PHONY : ColladaParser.s
+
+# target to generate assembly for a file
+ColladaParser.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ColladaParser.cpp.s
+.PHONY : ColladaParser.cpp.s
+
+ComputeUVMappingProcess.o: ComputeUVMappingProcess.cpp.o
+.PHONY : ComputeUVMappingProcess.o
+
+# target to build an object file
+ComputeUVMappingProcess.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ComputeUVMappingProcess.cpp.o
+.PHONY : ComputeUVMappingProcess.cpp.o
+
+ComputeUVMappingProcess.i: ComputeUVMappingProcess.cpp.i
+.PHONY : ComputeUVMappingProcess.i
+
+# target to preprocess a source file
+ComputeUVMappingProcess.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ComputeUVMappingProcess.cpp.i
+.PHONY : ComputeUVMappingProcess.cpp.i
+
+ComputeUVMappingProcess.s: ComputeUVMappingProcess.cpp.s
+.PHONY : ComputeUVMappingProcess.s
+
+# target to generate assembly for a file
+ComputeUVMappingProcess.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ComputeUVMappingProcess.cpp.s
+.PHONY : ComputeUVMappingProcess.cpp.s
+
+ConvertToLHProcess.o: ConvertToLHProcess.cpp.o
+.PHONY : ConvertToLHProcess.o
+
+# target to build an object file
+ConvertToLHProcess.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ConvertToLHProcess.cpp.o
+.PHONY : ConvertToLHProcess.cpp.o
+
+ConvertToLHProcess.i: ConvertToLHProcess.cpp.i
+.PHONY : ConvertToLHProcess.i
+
+# target to preprocess a source file
+ConvertToLHProcess.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ConvertToLHProcess.cpp.i
+.PHONY : ConvertToLHProcess.cpp.i
+
+ConvertToLHProcess.s: ConvertToLHProcess.cpp.s
+.PHONY : ConvertToLHProcess.s
+
+# target to generate assembly for a file
+ConvertToLHProcess.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ConvertToLHProcess.cpp.s
+.PHONY : ConvertToLHProcess.cpp.s
+
+DXFLoader.o: DXFLoader.cpp.o
+.PHONY : DXFLoader.o
+
+# target to build an object file
+DXFLoader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/DXFLoader.cpp.o
+.PHONY : DXFLoader.cpp.o
+
+DXFLoader.i: DXFLoader.cpp.i
+.PHONY : DXFLoader.i
+
+# target to preprocess a source file
+DXFLoader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/DXFLoader.cpp.i
+.PHONY : DXFLoader.cpp.i
+
+DXFLoader.s: DXFLoader.cpp.s
+.PHONY : DXFLoader.s
+
+# target to generate assembly for a file
+DXFLoader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/DXFLoader.cpp.s
+.PHONY : DXFLoader.cpp.s
+
+DeboneProcess.o: DeboneProcess.cpp.o
+.PHONY : DeboneProcess.o
+
+# target to build an object file
+DeboneProcess.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/DeboneProcess.cpp.o
+.PHONY : DeboneProcess.cpp.o
+
+DeboneProcess.i: DeboneProcess.cpp.i
+.PHONY : DeboneProcess.i
+
+# target to preprocess a source file
+DeboneProcess.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/DeboneProcess.cpp.i
+.PHONY : DeboneProcess.cpp.i
+
+DeboneProcess.s: DeboneProcess.cpp.s
+.PHONY : DeboneProcess.s
+
+# target to generate assembly for a file
+DeboneProcess.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/DeboneProcess.cpp.s
+.PHONY : DeboneProcess.cpp.s
+
+DefaultIOStream.o: DefaultIOStream.cpp.o
+.PHONY : DefaultIOStream.o
+
+# target to build an object file
+DefaultIOStream.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/DefaultIOStream.cpp.o
+.PHONY : DefaultIOStream.cpp.o
+
+DefaultIOStream.i: DefaultIOStream.cpp.i
+.PHONY : DefaultIOStream.i
+
+# target to preprocess a source file
+DefaultIOStream.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/DefaultIOStream.cpp.i
+.PHONY : DefaultIOStream.cpp.i
+
+DefaultIOStream.s: DefaultIOStream.cpp.s
+.PHONY : DefaultIOStream.s
+
+# target to generate assembly for a file
+DefaultIOStream.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/DefaultIOStream.cpp.s
+.PHONY : DefaultIOStream.cpp.s
+
+DefaultIOSystem.o: DefaultIOSystem.cpp.o
+.PHONY : DefaultIOSystem.o
+
+# target to build an object file
+DefaultIOSystem.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/DefaultIOSystem.cpp.o
+.PHONY : DefaultIOSystem.cpp.o
+
+DefaultIOSystem.i: DefaultIOSystem.cpp.i
+.PHONY : DefaultIOSystem.i
+
+# target to preprocess a source file
+DefaultIOSystem.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/DefaultIOSystem.cpp.i
+.PHONY : DefaultIOSystem.cpp.i
+
+DefaultIOSystem.s: DefaultIOSystem.cpp.s
+.PHONY : DefaultIOSystem.s
+
+# target to generate assembly for a file
+DefaultIOSystem.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/DefaultIOSystem.cpp.s
+.PHONY : DefaultIOSystem.cpp.s
+
+DefaultLogger.o: DefaultLogger.cpp.o
+.PHONY : DefaultLogger.o
+
+# target to build an object file
+DefaultLogger.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/DefaultLogger.cpp.o
+.PHONY : DefaultLogger.cpp.o
+
+DefaultLogger.i: DefaultLogger.cpp.i
+.PHONY : DefaultLogger.i
+
+# target to preprocess a source file
+DefaultLogger.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/DefaultLogger.cpp.i
+.PHONY : DefaultLogger.cpp.i
+
+DefaultLogger.s: DefaultLogger.cpp.s
+.PHONY : DefaultLogger.s
+
+# target to generate assembly for a file
+DefaultLogger.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/DefaultLogger.cpp.s
+.PHONY : DefaultLogger.cpp.s
+
+Exporter.o: Exporter.cpp.o
+.PHONY : Exporter.o
+
+# target to build an object file
+Exporter.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Exporter.cpp.o
+.PHONY : Exporter.cpp.o
+
+Exporter.i: Exporter.cpp.i
+.PHONY : Exporter.i
+
+# target to preprocess a source file
+Exporter.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Exporter.cpp.i
+.PHONY : Exporter.cpp.i
+
+Exporter.s: Exporter.cpp.s
+.PHONY : Exporter.s
+
+# target to generate assembly for a file
+Exporter.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Exporter.cpp.s
+.PHONY : Exporter.cpp.s
+
+FindDegenerates.o: FindDegenerates.cpp.o
+.PHONY : FindDegenerates.o
+
+# target to build an object file
+FindDegenerates.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FindDegenerates.cpp.o
+.PHONY : FindDegenerates.cpp.o
+
+FindDegenerates.i: FindDegenerates.cpp.i
+.PHONY : FindDegenerates.i
+
+# target to preprocess a source file
+FindDegenerates.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FindDegenerates.cpp.i
+.PHONY : FindDegenerates.cpp.i
+
+FindDegenerates.s: FindDegenerates.cpp.s
+.PHONY : FindDegenerates.s
+
+# target to generate assembly for a file
+FindDegenerates.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FindDegenerates.cpp.s
+.PHONY : FindDegenerates.cpp.s
+
+FindInstancesProcess.o: FindInstancesProcess.cpp.o
+.PHONY : FindInstancesProcess.o
+
+# target to build an object file
+FindInstancesProcess.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FindInstancesProcess.cpp.o
+.PHONY : FindInstancesProcess.cpp.o
+
+FindInstancesProcess.i: FindInstancesProcess.cpp.i
+.PHONY : FindInstancesProcess.i
+
+# target to preprocess a source file
+FindInstancesProcess.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FindInstancesProcess.cpp.i
+.PHONY : FindInstancesProcess.cpp.i
+
+FindInstancesProcess.s: FindInstancesProcess.cpp.s
+.PHONY : FindInstancesProcess.s
+
+# target to generate assembly for a file
+FindInstancesProcess.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FindInstancesProcess.cpp.s
+.PHONY : FindInstancesProcess.cpp.s
+
+FindInvalidDataProcess.o: FindInvalidDataProcess.cpp.o
+.PHONY : FindInvalidDataProcess.o
+
+# target to build an object file
+FindInvalidDataProcess.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FindInvalidDataProcess.cpp.o
+.PHONY : FindInvalidDataProcess.cpp.o
+
+FindInvalidDataProcess.i: FindInvalidDataProcess.cpp.i
+.PHONY : FindInvalidDataProcess.i
+
+# target to preprocess a source file
+FindInvalidDataProcess.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FindInvalidDataProcess.cpp.i
+.PHONY : FindInvalidDataProcess.cpp.i
+
+FindInvalidDataProcess.s: FindInvalidDataProcess.cpp.s
+.PHONY : FindInvalidDataProcess.s
+
+# target to generate assembly for a file
+FindInvalidDataProcess.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FindInvalidDataProcess.cpp.s
+.PHONY : FindInvalidDataProcess.cpp.s
+
+FixNormalsStep.o: FixNormalsStep.cpp.o
+.PHONY : FixNormalsStep.o
+
+# target to build an object file
+FixNormalsStep.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FixNormalsStep.cpp.o
+.PHONY : FixNormalsStep.cpp.o
+
+FixNormalsStep.i: FixNormalsStep.cpp.i
+.PHONY : FixNormalsStep.i
+
+# target to preprocess a source file
+FixNormalsStep.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FixNormalsStep.cpp.i
+.PHONY : FixNormalsStep.cpp.i
+
+FixNormalsStep.s: FixNormalsStep.cpp.s
+.PHONY : FixNormalsStep.s
+
+# target to generate assembly for a file
+FixNormalsStep.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FixNormalsStep.cpp.s
+.PHONY : FixNormalsStep.cpp.s
+
+GenFaceNormalsProcess.o: GenFaceNormalsProcess.cpp.o
+.PHONY : GenFaceNormalsProcess.o
+
+# target to build an object file
+GenFaceNormalsProcess.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/GenFaceNormalsProcess.cpp.o
+.PHONY : GenFaceNormalsProcess.cpp.o
+
+GenFaceNormalsProcess.i: GenFaceNormalsProcess.cpp.i
+.PHONY : GenFaceNormalsProcess.i
+
+# target to preprocess a source file
+GenFaceNormalsProcess.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/GenFaceNormalsProcess.cpp.i
+.PHONY : GenFaceNormalsProcess.cpp.i
+
+GenFaceNormalsProcess.s: GenFaceNormalsProcess.cpp.s
+.PHONY : GenFaceNormalsProcess.s
+
+# target to generate assembly for a file
+GenFaceNormalsProcess.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/GenFaceNormalsProcess.cpp.s
+.PHONY : GenFaceNormalsProcess.cpp.s
+
+GenVertexNormalsProcess.o: GenVertexNormalsProcess.cpp.o
+.PHONY : GenVertexNormalsProcess.o
+
+# target to build an object file
+GenVertexNormalsProcess.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/GenVertexNormalsProcess.cpp.o
+.PHONY : GenVertexNormalsProcess.cpp.o
+
+GenVertexNormalsProcess.i: GenVertexNormalsProcess.cpp.i
+.PHONY : GenVertexNormalsProcess.i
+
+# target to preprocess a source file
+GenVertexNormalsProcess.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/GenVertexNormalsProcess.cpp.i
+.PHONY : GenVertexNormalsProcess.cpp.i
+
+GenVertexNormalsProcess.s: GenVertexNormalsProcess.cpp.s
+.PHONY : GenVertexNormalsProcess.s
+
+# target to generate assembly for a file
+GenVertexNormalsProcess.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/GenVertexNormalsProcess.cpp.s
+.PHONY : GenVertexNormalsProcess.cpp.s
+
+HMPLoader.o: HMPLoader.cpp.o
+.PHONY : HMPLoader.o
+
+# target to build an object file
+HMPLoader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/HMPLoader.cpp.o
+.PHONY : HMPLoader.cpp.o
+
+HMPLoader.i: HMPLoader.cpp.i
+.PHONY : HMPLoader.i
+
+# target to preprocess a source file
+HMPLoader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/HMPLoader.cpp.i
+.PHONY : HMPLoader.cpp.i
+
+HMPLoader.s: HMPLoader.cpp.s
+.PHONY : HMPLoader.s
+
+# target to generate assembly for a file
+HMPLoader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/HMPLoader.cpp.s
+.PHONY : HMPLoader.cpp.s
+
+IFCCurve.o: IFCCurve.cpp.o
+.PHONY : IFCCurve.o
+
+# target to build an object file
+IFCCurve.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCCurve.cpp.o
+.PHONY : IFCCurve.cpp.o
+
+IFCCurve.i: IFCCurve.cpp.i
+.PHONY : IFCCurve.i
+
+# target to preprocess a source file
+IFCCurve.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCCurve.cpp.i
+.PHONY : IFCCurve.cpp.i
+
+IFCCurve.s: IFCCurve.cpp.s
+.PHONY : IFCCurve.s
+
+# target to generate assembly for a file
+IFCCurve.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCCurve.cpp.s
+.PHONY : IFCCurve.cpp.s
+
+IFCGeometry.o: IFCGeometry.cpp.o
+.PHONY : IFCGeometry.o
+
+# target to build an object file
+IFCGeometry.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCGeometry.cpp.o
+.PHONY : IFCGeometry.cpp.o
+
+IFCGeometry.i: IFCGeometry.cpp.i
+.PHONY : IFCGeometry.i
+
+# target to preprocess a source file
+IFCGeometry.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCGeometry.cpp.i
+.PHONY : IFCGeometry.cpp.i
+
+IFCGeometry.s: IFCGeometry.cpp.s
+.PHONY : IFCGeometry.s
+
+# target to generate assembly for a file
+IFCGeometry.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCGeometry.cpp.s
+.PHONY : IFCGeometry.cpp.s
+
+IFCLoader.o: IFCLoader.cpp.o
+.PHONY : IFCLoader.o
+
+# target to build an object file
+IFCLoader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCLoader.cpp.o
+.PHONY : IFCLoader.cpp.o
+
+IFCLoader.i: IFCLoader.cpp.i
+.PHONY : IFCLoader.i
+
+# target to preprocess a source file
+IFCLoader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCLoader.cpp.i
+.PHONY : IFCLoader.cpp.i
+
+IFCLoader.s: IFCLoader.cpp.s
+.PHONY : IFCLoader.s
+
+# target to generate assembly for a file
+IFCLoader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCLoader.cpp.s
+.PHONY : IFCLoader.cpp.s
+
+IFCMaterial.o: IFCMaterial.cpp.o
+.PHONY : IFCMaterial.o
+
+# target to build an object file
+IFCMaterial.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCMaterial.cpp.o
+.PHONY : IFCMaterial.cpp.o
+
+IFCMaterial.i: IFCMaterial.cpp.i
+.PHONY : IFCMaterial.i
+
+# target to preprocess a source file
+IFCMaterial.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCMaterial.cpp.i
+.PHONY : IFCMaterial.cpp.i
+
+IFCMaterial.s: IFCMaterial.cpp.s
+.PHONY : IFCMaterial.s
+
+# target to generate assembly for a file
+IFCMaterial.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCMaterial.cpp.s
+.PHONY : IFCMaterial.cpp.s
+
+IFCProfile.o: IFCProfile.cpp.o
+.PHONY : IFCProfile.o
+
+# target to build an object file
+IFCProfile.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCProfile.cpp.o
+.PHONY : IFCProfile.cpp.o
+
+IFCProfile.i: IFCProfile.cpp.i
+.PHONY : IFCProfile.i
+
+# target to preprocess a source file
+IFCProfile.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCProfile.cpp.i
+.PHONY : IFCProfile.cpp.i
+
+IFCProfile.s: IFCProfile.cpp.s
+.PHONY : IFCProfile.s
+
+# target to generate assembly for a file
+IFCProfile.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCProfile.cpp.s
+.PHONY : IFCProfile.cpp.s
+
+IFCReaderGen.o: IFCReaderGen.cpp.o
+.PHONY : IFCReaderGen.o
+
+# target to build an object file
+IFCReaderGen.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCReaderGen.cpp.o
+.PHONY : IFCReaderGen.cpp.o
+
+IFCReaderGen.i: IFCReaderGen.cpp.i
+.PHONY : IFCReaderGen.i
+
+# target to preprocess a source file
+IFCReaderGen.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCReaderGen.cpp.i
+.PHONY : IFCReaderGen.cpp.i
+
+IFCReaderGen.s: IFCReaderGen.cpp.s
+.PHONY : IFCReaderGen.s
+
+# target to generate assembly for a file
+IFCReaderGen.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCReaderGen.cpp.s
+.PHONY : IFCReaderGen.cpp.s
+
+IFCUtil.o: IFCUtil.cpp.o
+.PHONY : IFCUtil.o
+
+# target to build an object file
+IFCUtil.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCUtil.cpp.o
+.PHONY : IFCUtil.cpp.o
+
+IFCUtil.i: IFCUtil.cpp.i
+.PHONY : IFCUtil.i
+
+# target to preprocess a source file
+IFCUtil.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCUtil.cpp.i
+.PHONY : IFCUtil.cpp.i
+
+IFCUtil.s: IFCUtil.cpp.s
+.PHONY : IFCUtil.s
+
+# target to generate assembly for a file
+IFCUtil.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCUtil.cpp.s
+.PHONY : IFCUtil.cpp.s
+
+IRRLoader.o: IRRLoader.cpp.o
+.PHONY : IRRLoader.o
+
+# target to build an object file
+IRRLoader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IRRLoader.cpp.o
+.PHONY : IRRLoader.cpp.o
+
+IRRLoader.i: IRRLoader.cpp.i
+.PHONY : IRRLoader.i
+
+# target to preprocess a source file
+IRRLoader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IRRLoader.cpp.i
+.PHONY : IRRLoader.cpp.i
+
+IRRLoader.s: IRRLoader.cpp.s
+.PHONY : IRRLoader.s
+
+# target to generate assembly for a file
+IRRLoader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IRRLoader.cpp.s
+.PHONY : IRRLoader.cpp.s
+
+IRRMeshLoader.o: IRRMeshLoader.cpp.o
+.PHONY : IRRMeshLoader.o
+
+# target to build an object file
+IRRMeshLoader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IRRMeshLoader.cpp.o
+.PHONY : IRRMeshLoader.cpp.o
+
+IRRMeshLoader.i: IRRMeshLoader.cpp.i
+.PHONY : IRRMeshLoader.i
+
+# target to preprocess a source file
+IRRMeshLoader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IRRMeshLoader.cpp.i
+.PHONY : IRRMeshLoader.cpp.i
+
+IRRMeshLoader.s: IRRMeshLoader.cpp.s
+.PHONY : IRRMeshLoader.s
+
+# target to generate assembly for a file
+IRRMeshLoader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IRRMeshLoader.cpp.s
+.PHONY : IRRMeshLoader.cpp.s
+
+IRRShared.o: IRRShared.cpp.o
+.PHONY : IRRShared.o
+
+# target to build an object file
+IRRShared.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IRRShared.cpp.o
+.PHONY : IRRShared.cpp.o
+
+IRRShared.i: IRRShared.cpp.i
+.PHONY : IRRShared.i
+
+# target to preprocess a source file
+IRRShared.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IRRShared.cpp.i
+.PHONY : IRRShared.cpp.i
+
+IRRShared.s: IRRShared.cpp.s
+.PHONY : IRRShared.s
+
+# target to generate assembly for a file
+IRRShared.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IRRShared.cpp.s
+.PHONY : IRRShared.cpp.s
+
+Importer.o: Importer.cpp.o
+.PHONY : Importer.o
+
+# target to build an object file
+Importer.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Importer.cpp.o
+.PHONY : Importer.cpp.o
+
+Importer.i: Importer.cpp.i
+.PHONY : Importer.i
+
+# target to preprocess a source file
+Importer.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Importer.cpp.i
+.PHONY : Importer.cpp.i
+
+Importer.s: Importer.cpp.s
+.PHONY : Importer.s
+
+# target to generate assembly for a file
+Importer.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Importer.cpp.s
+.PHONY : Importer.cpp.s
+
+ImporterRegistry.o: ImporterRegistry.cpp.o
+.PHONY : ImporterRegistry.o
+
+# target to build an object file
+ImporterRegistry.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ImporterRegistry.cpp.o
+.PHONY : ImporterRegistry.cpp.o
+
+ImporterRegistry.i: ImporterRegistry.cpp.i
+.PHONY : ImporterRegistry.i
+
+# target to preprocess a source file
+ImporterRegistry.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ImporterRegistry.cpp.i
+.PHONY : ImporterRegistry.cpp.i
+
+ImporterRegistry.s: ImporterRegistry.cpp.s
+.PHONY : ImporterRegistry.s
+
+# target to generate assembly for a file
+ImporterRegistry.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ImporterRegistry.cpp.s
+.PHONY : ImporterRegistry.cpp.s
+
+ImproveCacheLocality.o: ImproveCacheLocality.cpp.o
+.PHONY : ImproveCacheLocality.o
+
+# target to build an object file
+ImproveCacheLocality.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ImproveCacheLocality.cpp.o
+.PHONY : ImproveCacheLocality.cpp.o
+
+ImproveCacheLocality.i: ImproveCacheLocality.cpp.i
+.PHONY : ImproveCacheLocality.i
+
+# target to preprocess a source file
+ImproveCacheLocality.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ImproveCacheLocality.cpp.i
+.PHONY : ImproveCacheLocality.cpp.i
+
+ImproveCacheLocality.s: ImproveCacheLocality.cpp.s
+.PHONY : ImproveCacheLocality.s
+
+# target to generate assembly for a file
+ImproveCacheLocality.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ImproveCacheLocality.cpp.s
+.PHONY : ImproveCacheLocality.cpp.s
+
+JoinVerticesProcess.o: JoinVerticesProcess.cpp.o
+.PHONY : JoinVerticesProcess.o
+
+# target to build an object file
+JoinVerticesProcess.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/JoinVerticesProcess.cpp.o
+.PHONY : JoinVerticesProcess.cpp.o
+
+JoinVerticesProcess.i: JoinVerticesProcess.cpp.i
+.PHONY : JoinVerticesProcess.i
+
+# target to preprocess a source file
+JoinVerticesProcess.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/JoinVerticesProcess.cpp.i
+.PHONY : JoinVerticesProcess.cpp.i
+
+JoinVerticesProcess.s: JoinVerticesProcess.cpp.s
+.PHONY : JoinVerticesProcess.s
+
+# target to generate assembly for a file
+JoinVerticesProcess.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/JoinVerticesProcess.cpp.s
+.PHONY : JoinVerticesProcess.cpp.s
+
+LWOAnimation.o: LWOAnimation.cpp.o
+.PHONY : LWOAnimation.o
+
+# target to build an object file
+LWOAnimation.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/LWOAnimation.cpp.o
+.PHONY : LWOAnimation.cpp.o
+
+LWOAnimation.i: LWOAnimation.cpp.i
+.PHONY : LWOAnimation.i
+
+# target to preprocess a source file
+LWOAnimation.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/LWOAnimation.cpp.i
+.PHONY : LWOAnimation.cpp.i
+
+LWOAnimation.s: LWOAnimation.cpp.s
+.PHONY : LWOAnimation.s
+
+# target to generate assembly for a file
+LWOAnimation.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/LWOAnimation.cpp.s
+.PHONY : LWOAnimation.cpp.s
+
+LWOBLoader.o: LWOBLoader.cpp.o
+.PHONY : LWOBLoader.o
+
+# target to build an object file
+LWOBLoader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/LWOBLoader.cpp.o
+.PHONY : LWOBLoader.cpp.o
+
+LWOBLoader.i: LWOBLoader.cpp.i
+.PHONY : LWOBLoader.i
+
+# target to preprocess a source file
+LWOBLoader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/LWOBLoader.cpp.i
+.PHONY : LWOBLoader.cpp.i
+
+LWOBLoader.s: LWOBLoader.cpp.s
+.PHONY : LWOBLoader.s
+
+# target to generate assembly for a file
+LWOBLoader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/LWOBLoader.cpp.s
+.PHONY : LWOBLoader.cpp.s
+
+LWOLoader.o: LWOLoader.cpp.o
+.PHONY : LWOLoader.o
+
+# target to build an object file
+LWOLoader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/LWOLoader.cpp.o
+.PHONY : LWOLoader.cpp.o
+
+LWOLoader.i: LWOLoader.cpp.i
+.PHONY : LWOLoader.i
+
+# target to preprocess a source file
+LWOLoader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/LWOLoader.cpp.i
+.PHONY : LWOLoader.cpp.i
+
+LWOLoader.s: LWOLoader.cpp.s
+.PHONY : LWOLoader.s
+
+# target to generate assembly for a file
+LWOLoader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/LWOLoader.cpp.s
+.PHONY : LWOLoader.cpp.s
+
+LWOMaterial.o: LWOMaterial.cpp.o
+.PHONY : LWOMaterial.o
+
+# target to build an object file
+LWOMaterial.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/LWOMaterial.cpp.o
+.PHONY : LWOMaterial.cpp.o
+
+LWOMaterial.i: LWOMaterial.cpp.i
+.PHONY : LWOMaterial.i
+
+# target to preprocess a source file
+LWOMaterial.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/LWOMaterial.cpp.i
+.PHONY : LWOMaterial.cpp.i
+
+LWOMaterial.s: LWOMaterial.cpp.s
+.PHONY : LWOMaterial.s
+
+# target to generate assembly for a file
+LWOMaterial.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/LWOMaterial.cpp.s
+.PHONY : LWOMaterial.cpp.s
+
+LWSLoader.o: LWSLoader.cpp.o
+.PHONY : LWSLoader.o
+
+# target to build an object file
+LWSLoader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/LWSLoader.cpp.o
+.PHONY : LWSLoader.cpp.o
+
+LWSLoader.i: LWSLoader.cpp.i
+.PHONY : LWSLoader.i
+
+# target to preprocess a source file
+LWSLoader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/LWSLoader.cpp.i
+.PHONY : LWSLoader.cpp.i
+
+LWSLoader.s: LWSLoader.cpp.s
+.PHONY : LWSLoader.s
+
+# target to generate assembly for a file
+LWSLoader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/LWSLoader.cpp.s
+.PHONY : LWSLoader.cpp.s
+
+LimitBoneWeightsProcess.o: LimitBoneWeightsProcess.cpp.o
+.PHONY : LimitBoneWeightsProcess.o
+
+# target to build an object file
+LimitBoneWeightsProcess.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/LimitBoneWeightsProcess.cpp.o
+.PHONY : LimitBoneWeightsProcess.cpp.o
+
+LimitBoneWeightsProcess.i: LimitBoneWeightsProcess.cpp.i
+.PHONY : LimitBoneWeightsProcess.i
+
+# target to preprocess a source file
+LimitBoneWeightsProcess.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/LimitBoneWeightsProcess.cpp.i
+.PHONY : LimitBoneWeightsProcess.cpp.i
+
+LimitBoneWeightsProcess.s: LimitBoneWeightsProcess.cpp.s
+.PHONY : LimitBoneWeightsProcess.s
+
+# target to generate assembly for a file
+LimitBoneWeightsProcess.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/LimitBoneWeightsProcess.cpp.s
+.PHONY : LimitBoneWeightsProcess.cpp.s
+
+M3Importer.o: M3Importer.cpp.o
+.PHONY : M3Importer.o
+
+# target to build an object file
+M3Importer.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/M3Importer.cpp.o
+.PHONY : M3Importer.cpp.o
+
+M3Importer.i: M3Importer.cpp.i
+.PHONY : M3Importer.i
+
+# target to preprocess a source file
+M3Importer.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/M3Importer.cpp.i
+.PHONY : M3Importer.cpp.i
+
+M3Importer.s: M3Importer.cpp.s
+.PHONY : M3Importer.s
+
+# target to generate assembly for a file
+M3Importer.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/M3Importer.cpp.s
+.PHONY : M3Importer.cpp.s
+
+MD2Loader.o: MD2Loader.cpp.o
+.PHONY : MD2Loader.o
+
+# target to build an object file
+MD2Loader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/MD2Loader.cpp.o
+.PHONY : MD2Loader.cpp.o
+
+MD2Loader.i: MD2Loader.cpp.i
+.PHONY : MD2Loader.i
+
+# target to preprocess a source file
+MD2Loader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/MD2Loader.cpp.i
+.PHONY : MD2Loader.cpp.i
+
+MD2Loader.s: MD2Loader.cpp.s
+.PHONY : MD2Loader.s
+
+# target to generate assembly for a file
+MD2Loader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/MD2Loader.cpp.s
+.PHONY : MD2Loader.cpp.s
+
+MD3Loader.o: MD3Loader.cpp.o
+.PHONY : MD3Loader.o
+
+# target to build an object file
+MD3Loader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/MD3Loader.cpp.o
+.PHONY : MD3Loader.cpp.o
+
+MD3Loader.i: MD3Loader.cpp.i
+.PHONY : MD3Loader.i
+
+# target to preprocess a source file
+MD3Loader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/MD3Loader.cpp.i
+.PHONY : MD3Loader.cpp.i
+
+MD3Loader.s: MD3Loader.cpp.s
+.PHONY : MD3Loader.s
+
+# target to generate assembly for a file
+MD3Loader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/MD3Loader.cpp.s
+.PHONY : MD3Loader.cpp.s
+
+MD5Loader.o: MD5Loader.cpp.o
+.PHONY : MD5Loader.o
+
+# target to build an object file
+MD5Loader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/MD5Loader.cpp.o
+.PHONY : MD5Loader.cpp.o
+
+MD5Loader.i: MD5Loader.cpp.i
+.PHONY : MD5Loader.i
+
+# target to preprocess a source file
+MD5Loader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/MD5Loader.cpp.i
+.PHONY : MD5Loader.cpp.i
+
+MD5Loader.s: MD5Loader.cpp.s
+.PHONY : MD5Loader.s
+
+# target to generate assembly for a file
+MD5Loader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/MD5Loader.cpp.s
+.PHONY : MD5Loader.cpp.s
+
+MD5Parser.o: MD5Parser.cpp.o
+.PHONY : MD5Parser.o
+
+# target to build an object file
+MD5Parser.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/MD5Parser.cpp.o
+.PHONY : MD5Parser.cpp.o
+
+MD5Parser.i: MD5Parser.cpp.i
+.PHONY : MD5Parser.i
+
+# target to preprocess a source file
+MD5Parser.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/MD5Parser.cpp.i
+.PHONY : MD5Parser.cpp.i
+
+MD5Parser.s: MD5Parser.cpp.s
+.PHONY : MD5Parser.s
+
+# target to generate assembly for a file
+MD5Parser.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/MD5Parser.cpp.s
+.PHONY : MD5Parser.cpp.s
+
+MDCLoader.o: MDCLoader.cpp.o
+.PHONY : MDCLoader.o
+
+# target to build an object file
+MDCLoader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/MDCLoader.cpp.o
+.PHONY : MDCLoader.cpp.o
+
+MDCLoader.i: MDCLoader.cpp.i
+.PHONY : MDCLoader.i
+
+# target to preprocess a source file
+MDCLoader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/MDCLoader.cpp.i
+.PHONY : MDCLoader.cpp.i
+
+MDCLoader.s: MDCLoader.cpp.s
+.PHONY : MDCLoader.s
+
+# target to generate assembly for a file
+MDCLoader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/MDCLoader.cpp.s
+.PHONY : MDCLoader.cpp.s
+
+MDLLoader.o: MDLLoader.cpp.o
+.PHONY : MDLLoader.o
+
+# target to build an object file
+MDLLoader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/MDLLoader.cpp.o
+.PHONY : MDLLoader.cpp.o
+
+MDLLoader.i: MDLLoader.cpp.i
+.PHONY : MDLLoader.i
+
+# target to preprocess a source file
+MDLLoader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/MDLLoader.cpp.i
+.PHONY : MDLLoader.cpp.i
+
+MDLLoader.s: MDLLoader.cpp.s
+.PHONY : MDLLoader.s
+
+# target to generate assembly for a file
+MDLLoader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/MDLLoader.cpp.s
+.PHONY : MDLLoader.cpp.s
+
+MDLMaterialLoader.o: MDLMaterialLoader.cpp.o
+.PHONY : MDLMaterialLoader.o
+
+# target to build an object file
+MDLMaterialLoader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/MDLMaterialLoader.cpp.o
+.PHONY : MDLMaterialLoader.cpp.o
+
+MDLMaterialLoader.i: MDLMaterialLoader.cpp.i
+.PHONY : MDLMaterialLoader.i
+
+# target to preprocess a source file
+MDLMaterialLoader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/MDLMaterialLoader.cpp.i
+.PHONY : MDLMaterialLoader.cpp.i
+
+MDLMaterialLoader.s: MDLMaterialLoader.cpp.s
+.PHONY : MDLMaterialLoader.s
+
+# target to generate assembly for a file
+MDLMaterialLoader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/MDLMaterialLoader.cpp.s
+.PHONY : MDLMaterialLoader.cpp.s
+
+MS3DLoader.o: MS3DLoader.cpp.o
+.PHONY : MS3DLoader.o
+
+# target to build an object file
+MS3DLoader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/MS3DLoader.cpp.o
+.PHONY : MS3DLoader.cpp.o
+
+MS3DLoader.i: MS3DLoader.cpp.i
+.PHONY : MS3DLoader.i
+
+# target to preprocess a source file
+MS3DLoader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/MS3DLoader.cpp.i
+.PHONY : MS3DLoader.cpp.i
+
+MS3DLoader.s: MS3DLoader.cpp.s
+.PHONY : MS3DLoader.s
+
+# target to generate assembly for a file
+MS3DLoader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/MS3DLoader.cpp.s
+.PHONY : MS3DLoader.cpp.s
+
+MakeVerboseFormat.o: MakeVerboseFormat.cpp.o
+.PHONY : MakeVerboseFormat.o
+
+# target to build an object file
+MakeVerboseFormat.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/MakeVerboseFormat.cpp.o
+.PHONY : MakeVerboseFormat.cpp.o
+
+MakeVerboseFormat.i: MakeVerboseFormat.cpp.i
+.PHONY : MakeVerboseFormat.i
+
+# target to preprocess a source file
+MakeVerboseFormat.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/MakeVerboseFormat.cpp.i
+.PHONY : MakeVerboseFormat.cpp.i
+
+MakeVerboseFormat.s: MakeVerboseFormat.cpp.s
+.PHONY : MakeVerboseFormat.s
+
+# target to generate assembly for a file
+MakeVerboseFormat.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/MakeVerboseFormat.cpp.s
+.PHONY : MakeVerboseFormat.cpp.s
+
+MaterialSystem.o: MaterialSystem.cpp.o
+.PHONY : MaterialSystem.o
+
+# target to build an object file
+MaterialSystem.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/MaterialSystem.cpp.o
+.PHONY : MaterialSystem.cpp.o
+
+MaterialSystem.i: MaterialSystem.cpp.i
+.PHONY : MaterialSystem.i
+
+# target to preprocess a source file
+MaterialSystem.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/MaterialSystem.cpp.i
+.PHONY : MaterialSystem.cpp.i
+
+MaterialSystem.s: MaterialSystem.cpp.s
+.PHONY : MaterialSystem.s
+
+# target to generate assembly for a file
+MaterialSystem.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/MaterialSystem.cpp.s
+.PHONY : MaterialSystem.cpp.s
+
+NDOLoader.o: NDOLoader.cpp.o
+.PHONY : NDOLoader.o
+
+# target to build an object file
+NDOLoader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/NDOLoader.cpp.o
+.PHONY : NDOLoader.cpp.o
+
+NDOLoader.i: NDOLoader.cpp.i
+.PHONY : NDOLoader.i
+
+# target to preprocess a source file
+NDOLoader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/NDOLoader.cpp.i
+.PHONY : NDOLoader.cpp.i
+
+NDOLoader.s: NDOLoader.cpp.s
+.PHONY : NDOLoader.s
+
+# target to generate assembly for a file
+NDOLoader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/NDOLoader.cpp.s
+.PHONY : NDOLoader.cpp.s
+
+NFFLoader.o: NFFLoader.cpp.o
+.PHONY : NFFLoader.o
+
+# target to build an object file
+NFFLoader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/NFFLoader.cpp.o
+.PHONY : NFFLoader.cpp.o
+
+NFFLoader.i: NFFLoader.cpp.i
+.PHONY : NFFLoader.i
+
+# target to preprocess a source file
+NFFLoader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/NFFLoader.cpp.i
+.PHONY : NFFLoader.cpp.i
+
+NFFLoader.s: NFFLoader.cpp.s
+.PHONY : NFFLoader.s
+
+# target to generate assembly for a file
+NFFLoader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/NFFLoader.cpp.s
+.PHONY : NFFLoader.cpp.s
+
+OFFLoader.o: OFFLoader.cpp.o
+.PHONY : OFFLoader.o
+
+# target to build an object file
+OFFLoader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OFFLoader.cpp.o
+.PHONY : OFFLoader.cpp.o
+
+OFFLoader.i: OFFLoader.cpp.i
+.PHONY : OFFLoader.i
+
+# target to preprocess a source file
+OFFLoader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OFFLoader.cpp.i
+.PHONY : OFFLoader.cpp.i
+
+OFFLoader.s: OFFLoader.cpp.s
+.PHONY : OFFLoader.s
+
+# target to generate assembly for a file
+OFFLoader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OFFLoader.cpp.s
+.PHONY : OFFLoader.cpp.s
+
+ObjExporter.o: ObjExporter.cpp.o
+.PHONY : ObjExporter.o
+
+# target to build an object file
+ObjExporter.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ObjExporter.cpp.o
+.PHONY : ObjExporter.cpp.o
+
+ObjExporter.i: ObjExporter.cpp.i
+.PHONY : ObjExporter.i
+
+# target to preprocess a source file
+ObjExporter.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ObjExporter.cpp.i
+.PHONY : ObjExporter.cpp.i
+
+ObjExporter.s: ObjExporter.cpp.s
+.PHONY : ObjExporter.s
+
+# target to generate assembly for a file
+ObjExporter.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ObjExporter.cpp.s
+.PHONY : ObjExporter.cpp.s
+
+ObjFileImporter.o: ObjFileImporter.cpp.o
+.PHONY : ObjFileImporter.o
+
+# target to build an object file
+ObjFileImporter.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ObjFileImporter.cpp.o
+.PHONY : ObjFileImporter.cpp.o
+
+ObjFileImporter.i: ObjFileImporter.cpp.i
+.PHONY : ObjFileImporter.i
+
+# target to preprocess a source file
+ObjFileImporter.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ObjFileImporter.cpp.i
+.PHONY : ObjFileImporter.cpp.i
+
+ObjFileImporter.s: ObjFileImporter.cpp.s
+.PHONY : ObjFileImporter.s
+
+# target to generate assembly for a file
+ObjFileImporter.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ObjFileImporter.cpp.s
+.PHONY : ObjFileImporter.cpp.s
+
+ObjFileMtlImporter.o: ObjFileMtlImporter.cpp.o
+.PHONY : ObjFileMtlImporter.o
+
+# target to build an object file
+ObjFileMtlImporter.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ObjFileMtlImporter.cpp.o
+.PHONY : ObjFileMtlImporter.cpp.o
+
+ObjFileMtlImporter.i: ObjFileMtlImporter.cpp.i
+.PHONY : ObjFileMtlImporter.i
+
+# target to preprocess a source file
+ObjFileMtlImporter.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ObjFileMtlImporter.cpp.i
+.PHONY : ObjFileMtlImporter.cpp.i
+
+ObjFileMtlImporter.s: ObjFileMtlImporter.cpp.s
+.PHONY : ObjFileMtlImporter.s
+
+# target to generate assembly for a file
+ObjFileMtlImporter.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ObjFileMtlImporter.cpp.s
+.PHONY : ObjFileMtlImporter.cpp.s
+
+ObjFileParser.o: ObjFileParser.cpp.o
+.PHONY : ObjFileParser.o
+
+# target to build an object file
+ObjFileParser.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ObjFileParser.cpp.o
+.PHONY : ObjFileParser.cpp.o
+
+ObjFileParser.i: ObjFileParser.cpp.i
+.PHONY : ObjFileParser.i
+
+# target to preprocess a source file
+ObjFileParser.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ObjFileParser.cpp.i
+.PHONY : ObjFileParser.cpp.i
+
+ObjFileParser.s: ObjFileParser.cpp.s
+.PHONY : ObjFileParser.s
+
+# target to generate assembly for a file
+ObjFileParser.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ObjFileParser.cpp.s
+.PHONY : ObjFileParser.cpp.s
+
+OgreImporter.o: OgreImporter.cpp.o
+.PHONY : OgreImporter.o
+
+# target to build an object file
+OgreImporter.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OgreImporter.cpp.o
+.PHONY : OgreImporter.cpp.o
+
+OgreImporter.i: OgreImporter.cpp.i
+.PHONY : OgreImporter.i
+
+# target to preprocess a source file
+OgreImporter.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OgreImporter.cpp.i
+.PHONY : OgreImporter.cpp.i
+
+OgreImporter.s: OgreImporter.cpp.s
+.PHONY : OgreImporter.s
+
+# target to generate assembly for a file
+OgreImporter.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OgreImporter.cpp.s
+.PHONY : OgreImporter.cpp.s
+
+OgreImporterMaterial.o: OgreImporterMaterial.cpp.o
+.PHONY : OgreImporterMaterial.o
+
+# target to build an object file
+OgreImporterMaterial.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OgreImporterMaterial.cpp.o
+.PHONY : OgreImporterMaterial.cpp.o
+
+OgreImporterMaterial.i: OgreImporterMaterial.cpp.i
+.PHONY : OgreImporterMaterial.i
+
+# target to preprocess a source file
+OgreImporterMaterial.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OgreImporterMaterial.cpp.i
+.PHONY : OgreImporterMaterial.cpp.i
+
+OgreImporterMaterial.s: OgreImporterMaterial.cpp.s
+.PHONY : OgreImporterMaterial.s
+
+# target to generate assembly for a file
+OgreImporterMaterial.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OgreImporterMaterial.cpp.s
+.PHONY : OgreImporterMaterial.cpp.s
+
+OptimizeGraph.o: OptimizeGraph.cpp.o
+.PHONY : OptimizeGraph.o
+
+# target to build an object file
+OptimizeGraph.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OptimizeGraph.cpp.o
+.PHONY : OptimizeGraph.cpp.o
+
+OptimizeGraph.i: OptimizeGraph.cpp.i
+.PHONY : OptimizeGraph.i
+
+# target to preprocess a source file
+OptimizeGraph.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OptimizeGraph.cpp.i
+.PHONY : OptimizeGraph.cpp.i
+
+OptimizeGraph.s: OptimizeGraph.cpp.s
+.PHONY : OptimizeGraph.s
+
+# target to generate assembly for a file
+OptimizeGraph.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OptimizeGraph.cpp.s
+.PHONY : OptimizeGraph.cpp.s
+
+OptimizeMeshes.o: OptimizeMeshes.cpp.o
+.PHONY : OptimizeMeshes.o
+
+# target to build an object file
+OptimizeMeshes.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OptimizeMeshes.cpp.o
+.PHONY : OptimizeMeshes.cpp.o
+
+OptimizeMeshes.i: OptimizeMeshes.cpp.i
+.PHONY : OptimizeMeshes.i
+
+# target to preprocess a source file
+OptimizeMeshes.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OptimizeMeshes.cpp.i
+.PHONY : OptimizeMeshes.cpp.i
+
+OptimizeMeshes.s: OptimizeMeshes.cpp.s
+.PHONY : OptimizeMeshes.s
+
+# target to generate assembly for a file
+OptimizeMeshes.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OptimizeMeshes.cpp.s
+.PHONY : OptimizeMeshes.cpp.s
+
+PlyLoader.o: PlyLoader.cpp.o
+.PHONY : PlyLoader.o
+
+# target to build an object file
+PlyLoader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/PlyLoader.cpp.o
+.PHONY : PlyLoader.cpp.o
+
+PlyLoader.i: PlyLoader.cpp.i
+.PHONY : PlyLoader.i
+
+# target to preprocess a source file
+PlyLoader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/PlyLoader.cpp.i
+.PHONY : PlyLoader.cpp.i
+
+PlyLoader.s: PlyLoader.cpp.s
+.PHONY : PlyLoader.s
+
+# target to generate assembly for a file
+PlyLoader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/PlyLoader.cpp.s
+.PHONY : PlyLoader.cpp.s
+
+PlyParser.o: PlyParser.cpp.o
+.PHONY : PlyParser.o
+
+# target to build an object file
+PlyParser.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/PlyParser.cpp.o
+.PHONY : PlyParser.cpp.o
+
+PlyParser.i: PlyParser.cpp.i
+.PHONY : PlyParser.i
+
+# target to preprocess a source file
+PlyParser.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/PlyParser.cpp.i
+.PHONY : PlyParser.cpp.i
+
+PlyParser.s: PlyParser.cpp.s
+.PHONY : PlyParser.s
+
+# target to generate assembly for a file
+PlyParser.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/PlyParser.cpp.s
+.PHONY : PlyParser.cpp.s
+
+PostStepRegistry.o: PostStepRegistry.cpp.o
+.PHONY : PostStepRegistry.o
+
+# target to build an object file
+PostStepRegistry.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/PostStepRegistry.cpp.o
+.PHONY : PostStepRegistry.cpp.o
+
+PostStepRegistry.i: PostStepRegistry.cpp.i
+.PHONY : PostStepRegistry.i
+
+# target to preprocess a source file
+PostStepRegistry.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/PostStepRegistry.cpp.i
+.PHONY : PostStepRegistry.cpp.i
+
+PostStepRegistry.s: PostStepRegistry.cpp.s
+.PHONY : PostStepRegistry.s
+
+# target to generate assembly for a file
+PostStepRegistry.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/PostStepRegistry.cpp.s
+.PHONY : PostStepRegistry.cpp.s
+
+PretransformVertices.o: PretransformVertices.cpp.o
+.PHONY : PretransformVertices.o
+
+# target to build an object file
+PretransformVertices.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/PretransformVertices.cpp.o
+.PHONY : PretransformVertices.cpp.o
+
+PretransformVertices.i: PretransformVertices.cpp.i
+.PHONY : PretransformVertices.i
+
+# target to preprocess a source file
+PretransformVertices.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/PretransformVertices.cpp.i
+.PHONY : PretransformVertices.cpp.i
+
+PretransformVertices.s: PretransformVertices.cpp.s
+.PHONY : PretransformVertices.s
+
+# target to generate assembly for a file
+PretransformVertices.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/PretransformVertices.cpp.s
+.PHONY : PretransformVertices.cpp.s
+
+ProcessHelper.o: ProcessHelper.cpp.o
+.PHONY : ProcessHelper.o
+
+# target to build an object file
+ProcessHelper.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ProcessHelper.cpp.o
+.PHONY : ProcessHelper.cpp.o
+
+ProcessHelper.i: ProcessHelper.cpp.i
+.PHONY : ProcessHelper.i
+
+# target to preprocess a source file
+ProcessHelper.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ProcessHelper.cpp.i
+.PHONY : ProcessHelper.cpp.i
+
+ProcessHelper.s: ProcessHelper.cpp.s
+.PHONY : ProcessHelper.s
+
+# target to generate assembly for a file
+ProcessHelper.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ProcessHelper.cpp.s
+.PHONY : ProcessHelper.cpp.s
+
+Q3BSPFileImporter.o: Q3BSPFileImporter.cpp.o
+.PHONY : Q3BSPFileImporter.o
+
+# target to build an object file
+Q3BSPFileImporter.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Q3BSPFileImporter.cpp.o
+.PHONY : Q3BSPFileImporter.cpp.o
+
+Q3BSPFileImporter.i: Q3BSPFileImporter.cpp.i
+.PHONY : Q3BSPFileImporter.i
+
+# target to preprocess a source file
+Q3BSPFileImporter.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Q3BSPFileImporter.cpp.i
+.PHONY : Q3BSPFileImporter.cpp.i
+
+Q3BSPFileImporter.s: Q3BSPFileImporter.cpp.s
+.PHONY : Q3BSPFileImporter.s
+
+# target to generate assembly for a file
+Q3BSPFileImporter.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Q3BSPFileImporter.cpp.s
+.PHONY : Q3BSPFileImporter.cpp.s
+
+Q3BSPFileParser.o: Q3BSPFileParser.cpp.o
+.PHONY : Q3BSPFileParser.o
+
+# target to build an object file
+Q3BSPFileParser.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Q3BSPFileParser.cpp.o
+.PHONY : Q3BSPFileParser.cpp.o
+
+Q3BSPFileParser.i: Q3BSPFileParser.cpp.i
+.PHONY : Q3BSPFileParser.i
+
+# target to preprocess a source file
+Q3BSPFileParser.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Q3BSPFileParser.cpp.i
+.PHONY : Q3BSPFileParser.cpp.i
+
+Q3BSPFileParser.s: Q3BSPFileParser.cpp.s
+.PHONY : Q3BSPFileParser.s
+
+# target to generate assembly for a file
+Q3BSPFileParser.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Q3BSPFileParser.cpp.s
+.PHONY : Q3BSPFileParser.cpp.s
+
+Q3BSPZipArchive.o: Q3BSPZipArchive.cpp.o
+.PHONY : Q3BSPZipArchive.o
+
+# target to build an object file
+Q3BSPZipArchive.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Q3BSPZipArchive.cpp.o
+.PHONY : Q3BSPZipArchive.cpp.o
+
+Q3BSPZipArchive.i: Q3BSPZipArchive.cpp.i
+.PHONY : Q3BSPZipArchive.i
+
+# target to preprocess a source file
+Q3BSPZipArchive.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Q3BSPZipArchive.cpp.i
+.PHONY : Q3BSPZipArchive.cpp.i
+
+Q3BSPZipArchive.s: Q3BSPZipArchive.cpp.s
+.PHONY : Q3BSPZipArchive.s
+
+# target to generate assembly for a file
+Q3BSPZipArchive.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Q3BSPZipArchive.cpp.s
+.PHONY : Q3BSPZipArchive.cpp.s
+
+Q3DLoader.o: Q3DLoader.cpp.o
+.PHONY : Q3DLoader.o
+
+# target to build an object file
+Q3DLoader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Q3DLoader.cpp.o
+.PHONY : Q3DLoader.cpp.o
+
+Q3DLoader.i: Q3DLoader.cpp.i
+.PHONY : Q3DLoader.i
+
+# target to preprocess a source file
+Q3DLoader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Q3DLoader.cpp.i
+.PHONY : Q3DLoader.cpp.i
+
+Q3DLoader.s: Q3DLoader.cpp.s
+.PHONY : Q3DLoader.s
+
+# target to generate assembly for a file
+Q3DLoader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Q3DLoader.cpp.s
+.PHONY : Q3DLoader.cpp.s
+
+RawLoader.o: RawLoader.cpp.o
+.PHONY : RawLoader.o
+
+# target to build an object file
+RawLoader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/RawLoader.cpp.o
+.PHONY : RawLoader.cpp.o
+
+RawLoader.i: RawLoader.cpp.i
+.PHONY : RawLoader.i
+
+# target to preprocess a source file
+RawLoader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/RawLoader.cpp.i
+.PHONY : RawLoader.cpp.i
+
+RawLoader.s: RawLoader.cpp.s
+.PHONY : RawLoader.s
+
+# target to generate assembly for a file
+RawLoader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/RawLoader.cpp.s
+.PHONY : RawLoader.cpp.s
+
+RemoveComments.o: RemoveComments.cpp.o
+.PHONY : RemoveComments.o
+
+# target to build an object file
+RemoveComments.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/RemoveComments.cpp.o
+.PHONY : RemoveComments.cpp.o
+
+RemoveComments.i: RemoveComments.cpp.i
+.PHONY : RemoveComments.i
+
+# target to preprocess a source file
+RemoveComments.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/RemoveComments.cpp.i
+.PHONY : RemoveComments.cpp.i
+
+RemoveComments.s: RemoveComments.cpp.s
+.PHONY : RemoveComments.s
+
+# target to generate assembly for a file
+RemoveComments.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/RemoveComments.cpp.s
+.PHONY : RemoveComments.cpp.s
+
+RemoveRedundantMaterials.o: RemoveRedundantMaterials.cpp.o
+.PHONY : RemoveRedundantMaterials.o
+
+# target to build an object file
+RemoveRedundantMaterials.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/RemoveRedundantMaterials.cpp.o
+.PHONY : RemoveRedundantMaterials.cpp.o
+
+RemoveRedundantMaterials.i: RemoveRedundantMaterials.cpp.i
+.PHONY : RemoveRedundantMaterials.i
+
+# target to preprocess a source file
+RemoveRedundantMaterials.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/RemoveRedundantMaterials.cpp.i
+.PHONY : RemoveRedundantMaterials.cpp.i
+
+RemoveRedundantMaterials.s: RemoveRedundantMaterials.cpp.s
+.PHONY : RemoveRedundantMaterials.s
+
+# target to generate assembly for a file
+RemoveRedundantMaterials.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/RemoveRedundantMaterials.cpp.s
+.PHONY : RemoveRedundantMaterials.cpp.s
+
+RemoveVCProcess.o: RemoveVCProcess.cpp.o
+.PHONY : RemoveVCProcess.o
+
+# target to build an object file
+RemoveVCProcess.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/RemoveVCProcess.cpp.o
+.PHONY : RemoveVCProcess.cpp.o
+
+RemoveVCProcess.i: RemoveVCProcess.cpp.i
+.PHONY : RemoveVCProcess.i
+
+# target to preprocess a source file
+RemoveVCProcess.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/RemoveVCProcess.cpp.i
+.PHONY : RemoveVCProcess.cpp.i
+
+RemoveVCProcess.s: RemoveVCProcess.cpp.s
+.PHONY : RemoveVCProcess.s
+
+# target to generate assembly for a file
+RemoveVCProcess.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/RemoveVCProcess.cpp.s
+.PHONY : RemoveVCProcess.cpp.s
+
+SGSpatialSort.o: SGSpatialSort.cpp.o
+.PHONY : SGSpatialSort.o
+
+# target to build an object file
+SGSpatialSort.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/SGSpatialSort.cpp.o
+.PHONY : SGSpatialSort.cpp.o
+
+SGSpatialSort.i: SGSpatialSort.cpp.i
+.PHONY : SGSpatialSort.i
+
+# target to preprocess a source file
+SGSpatialSort.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/SGSpatialSort.cpp.i
+.PHONY : SGSpatialSort.cpp.i
+
+SGSpatialSort.s: SGSpatialSort.cpp.s
+.PHONY : SGSpatialSort.s
+
+# target to generate assembly for a file
+SGSpatialSort.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/SGSpatialSort.cpp.s
+.PHONY : SGSpatialSort.cpp.s
+
+SMDLoader.o: SMDLoader.cpp.o
+.PHONY : SMDLoader.o
+
+# target to build an object file
+SMDLoader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/SMDLoader.cpp.o
+.PHONY : SMDLoader.cpp.o
+
+SMDLoader.i: SMDLoader.cpp.i
+.PHONY : SMDLoader.i
+
+# target to preprocess a source file
+SMDLoader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/SMDLoader.cpp.i
+.PHONY : SMDLoader.cpp.i
+
+SMDLoader.s: SMDLoader.cpp.s
+.PHONY : SMDLoader.s
+
+# target to generate assembly for a file
+SMDLoader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/SMDLoader.cpp.s
+.PHONY : SMDLoader.cpp.s
+
+STEPFileReader.o: STEPFileReader.cpp.o
+.PHONY : STEPFileReader.o
+
+# target to build an object file
+STEPFileReader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/STEPFileReader.cpp.o
+.PHONY : STEPFileReader.cpp.o
+
+STEPFileReader.i: STEPFileReader.cpp.i
+.PHONY : STEPFileReader.i
+
+# target to preprocess a source file
+STEPFileReader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/STEPFileReader.cpp.i
+.PHONY : STEPFileReader.cpp.i
+
+STEPFileReader.s: STEPFileReader.cpp.s
+.PHONY : STEPFileReader.s
+
+# target to generate assembly for a file
+STEPFileReader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/STEPFileReader.cpp.s
+.PHONY : STEPFileReader.cpp.s
+
+STLLoader.o: STLLoader.cpp.o
+.PHONY : STLLoader.o
+
+# target to build an object file
+STLLoader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/STLLoader.cpp.o
+.PHONY : STLLoader.cpp.o
+
+STLLoader.i: STLLoader.cpp.i
+.PHONY : STLLoader.i
+
+# target to preprocess a source file
+STLLoader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/STLLoader.cpp.i
+.PHONY : STLLoader.cpp.i
+
+STLLoader.s: STLLoader.cpp.s
+.PHONY : STLLoader.s
+
+# target to generate assembly for a file
+STLLoader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/STLLoader.cpp.s
+.PHONY : STLLoader.cpp.s
+
+SceneCombiner.o: SceneCombiner.cpp.o
+.PHONY : SceneCombiner.o
+
+# target to build an object file
+SceneCombiner.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/SceneCombiner.cpp.o
+.PHONY : SceneCombiner.cpp.o
+
+SceneCombiner.i: SceneCombiner.cpp.i
+.PHONY : SceneCombiner.i
+
+# target to preprocess a source file
+SceneCombiner.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/SceneCombiner.cpp.i
+.PHONY : SceneCombiner.cpp.i
+
+SceneCombiner.s: SceneCombiner.cpp.s
+.PHONY : SceneCombiner.s
+
+# target to generate assembly for a file
+SceneCombiner.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/SceneCombiner.cpp.s
+.PHONY : SceneCombiner.cpp.s
+
+ScenePreprocessor.o: ScenePreprocessor.cpp.o
+.PHONY : ScenePreprocessor.o
+
+# target to build an object file
+ScenePreprocessor.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ScenePreprocessor.cpp.o
+.PHONY : ScenePreprocessor.cpp.o
+
+ScenePreprocessor.i: ScenePreprocessor.cpp.i
+.PHONY : ScenePreprocessor.i
+
+# target to preprocess a source file
+ScenePreprocessor.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ScenePreprocessor.cpp.i
+.PHONY : ScenePreprocessor.cpp.i
+
+ScenePreprocessor.s: ScenePreprocessor.cpp.s
+.PHONY : ScenePreprocessor.s
+
+# target to generate assembly for a file
+ScenePreprocessor.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ScenePreprocessor.cpp.s
+.PHONY : ScenePreprocessor.cpp.s
+
+SkeletonMeshBuilder.o: SkeletonMeshBuilder.cpp.o
+.PHONY : SkeletonMeshBuilder.o
+
+# target to build an object file
+SkeletonMeshBuilder.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/SkeletonMeshBuilder.cpp.o
+.PHONY : SkeletonMeshBuilder.cpp.o
+
+SkeletonMeshBuilder.i: SkeletonMeshBuilder.cpp.i
+.PHONY : SkeletonMeshBuilder.i
+
+# target to preprocess a source file
+SkeletonMeshBuilder.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/SkeletonMeshBuilder.cpp.i
+.PHONY : SkeletonMeshBuilder.cpp.i
+
+SkeletonMeshBuilder.s: SkeletonMeshBuilder.cpp.s
+.PHONY : SkeletonMeshBuilder.s
+
+# target to generate assembly for a file
+SkeletonMeshBuilder.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/SkeletonMeshBuilder.cpp.s
+.PHONY : SkeletonMeshBuilder.cpp.s
+
+SortByPTypeProcess.o: SortByPTypeProcess.cpp.o
+.PHONY : SortByPTypeProcess.o
+
+# target to build an object file
+SortByPTypeProcess.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/SortByPTypeProcess.cpp.o
+.PHONY : SortByPTypeProcess.cpp.o
+
+SortByPTypeProcess.i: SortByPTypeProcess.cpp.i
+.PHONY : SortByPTypeProcess.i
+
+# target to preprocess a source file
+SortByPTypeProcess.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/SortByPTypeProcess.cpp.i
+.PHONY : SortByPTypeProcess.cpp.i
+
+SortByPTypeProcess.s: SortByPTypeProcess.cpp.s
+.PHONY : SortByPTypeProcess.s
+
+# target to generate assembly for a file
+SortByPTypeProcess.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/SortByPTypeProcess.cpp.s
+.PHONY : SortByPTypeProcess.cpp.s
+
+SpatialSort.o: SpatialSort.cpp.o
+.PHONY : SpatialSort.o
+
+# target to build an object file
+SpatialSort.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/SpatialSort.cpp.o
+.PHONY : SpatialSort.cpp.o
+
+SpatialSort.i: SpatialSort.cpp.i
+.PHONY : SpatialSort.i
+
+# target to preprocess a source file
+SpatialSort.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/SpatialSort.cpp.i
+.PHONY : SpatialSort.cpp.i
+
+SpatialSort.s: SpatialSort.cpp.s
+.PHONY : SpatialSort.s
+
+# target to generate assembly for a file
+SpatialSort.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/SpatialSort.cpp.s
+.PHONY : SpatialSort.cpp.s
+
+SplitByBoneCountProcess.o: SplitByBoneCountProcess.cpp.o
+.PHONY : SplitByBoneCountProcess.o
+
+# target to build an object file
+SplitByBoneCountProcess.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/SplitByBoneCountProcess.cpp.o
+.PHONY : SplitByBoneCountProcess.cpp.o
+
+SplitByBoneCountProcess.i: SplitByBoneCountProcess.cpp.i
+.PHONY : SplitByBoneCountProcess.i
+
+# target to preprocess a source file
+SplitByBoneCountProcess.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/SplitByBoneCountProcess.cpp.i
+.PHONY : SplitByBoneCountProcess.cpp.i
+
+SplitByBoneCountProcess.s: SplitByBoneCountProcess.cpp.s
+.PHONY : SplitByBoneCountProcess.s
+
+# target to generate assembly for a file
+SplitByBoneCountProcess.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/SplitByBoneCountProcess.cpp.s
+.PHONY : SplitByBoneCountProcess.cpp.s
+
+SplitLargeMeshes.o: SplitLargeMeshes.cpp.o
+.PHONY : SplitLargeMeshes.o
+
+# target to build an object file
+SplitLargeMeshes.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/SplitLargeMeshes.cpp.o
+.PHONY : SplitLargeMeshes.cpp.o
+
+SplitLargeMeshes.i: SplitLargeMeshes.cpp.i
+.PHONY : SplitLargeMeshes.i
+
+# target to preprocess a source file
+SplitLargeMeshes.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/SplitLargeMeshes.cpp.i
+.PHONY : SplitLargeMeshes.cpp.i
+
+SplitLargeMeshes.s: SplitLargeMeshes.cpp.s
+.PHONY : SplitLargeMeshes.s
+
+# target to generate assembly for a file
+SplitLargeMeshes.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/SplitLargeMeshes.cpp.s
+.PHONY : SplitLargeMeshes.cpp.s
+
+StandardShapes.o: StandardShapes.cpp.o
+.PHONY : StandardShapes.o
+
+# target to build an object file
+StandardShapes.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/StandardShapes.cpp.o
+.PHONY : StandardShapes.cpp.o
+
+StandardShapes.i: StandardShapes.cpp.i
+.PHONY : StandardShapes.i
+
+# target to preprocess a source file
+StandardShapes.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/StandardShapes.cpp.i
+.PHONY : StandardShapes.cpp.i
+
+StandardShapes.s: StandardShapes.cpp.s
+.PHONY : StandardShapes.s
+
+# target to generate assembly for a file
+StandardShapes.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/StandardShapes.cpp.s
+.PHONY : StandardShapes.cpp.s
+
+Subdivision.o: Subdivision.cpp.o
+.PHONY : Subdivision.o
+
+# target to build an object file
+Subdivision.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Subdivision.cpp.o
+.PHONY : Subdivision.cpp.o
+
+Subdivision.i: Subdivision.cpp.i
+.PHONY : Subdivision.i
+
+# target to preprocess a source file
+Subdivision.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Subdivision.cpp.i
+.PHONY : Subdivision.cpp.i
+
+Subdivision.s: Subdivision.cpp.s
+.PHONY : Subdivision.s
+
+# target to generate assembly for a file
+Subdivision.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Subdivision.cpp.s
+.PHONY : Subdivision.cpp.s
+
+TargetAnimation.o: TargetAnimation.cpp.o
+.PHONY : TargetAnimation.o
+
+# target to build an object file
+TargetAnimation.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/TargetAnimation.cpp.o
+.PHONY : TargetAnimation.cpp.o
+
+TargetAnimation.i: TargetAnimation.cpp.i
+.PHONY : TargetAnimation.i
+
+# target to preprocess a source file
+TargetAnimation.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/TargetAnimation.cpp.i
+.PHONY : TargetAnimation.cpp.i
+
+TargetAnimation.s: TargetAnimation.cpp.s
+.PHONY : TargetAnimation.s
+
+# target to generate assembly for a file
+TargetAnimation.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/TargetAnimation.cpp.s
+.PHONY : TargetAnimation.cpp.s
+
+TerragenLoader.o: TerragenLoader.cpp.o
+.PHONY : TerragenLoader.o
+
+# target to build an object file
+TerragenLoader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/TerragenLoader.cpp.o
+.PHONY : TerragenLoader.cpp.o
+
+TerragenLoader.i: TerragenLoader.cpp.i
+.PHONY : TerragenLoader.i
+
+# target to preprocess a source file
+TerragenLoader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/TerragenLoader.cpp.i
+.PHONY : TerragenLoader.cpp.i
+
+TerragenLoader.s: TerragenLoader.cpp.s
+.PHONY : TerragenLoader.s
+
+# target to generate assembly for a file
+TerragenLoader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/TerragenLoader.cpp.s
+.PHONY : TerragenLoader.cpp.s
+
+TextureTransform.o: TextureTransform.cpp.o
+.PHONY : TextureTransform.o
+
+# target to build an object file
+TextureTransform.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/TextureTransform.cpp.o
+.PHONY : TextureTransform.cpp.o
+
+TextureTransform.i: TextureTransform.cpp.i
+.PHONY : TextureTransform.i
+
+# target to preprocess a source file
+TextureTransform.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/TextureTransform.cpp.i
+.PHONY : TextureTransform.cpp.i
+
+TextureTransform.s: TextureTransform.cpp.s
+.PHONY : TextureTransform.s
+
+# target to generate assembly for a file
+TextureTransform.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/TextureTransform.cpp.s
+.PHONY : TextureTransform.cpp.s
+
+TriangulateProcess.o: TriangulateProcess.cpp.o
+.PHONY : TriangulateProcess.o
+
+# target to build an object file
+TriangulateProcess.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/TriangulateProcess.cpp.o
+.PHONY : TriangulateProcess.cpp.o
+
+TriangulateProcess.i: TriangulateProcess.cpp.i
+.PHONY : TriangulateProcess.i
+
+# target to preprocess a source file
+TriangulateProcess.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/TriangulateProcess.cpp.i
+.PHONY : TriangulateProcess.cpp.i
+
+TriangulateProcess.s: TriangulateProcess.cpp.s
+.PHONY : TriangulateProcess.s
+
+# target to generate assembly for a file
+TriangulateProcess.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/TriangulateProcess.cpp.s
+.PHONY : TriangulateProcess.cpp.s
+
+UnrealLoader.o: UnrealLoader.cpp.o
+.PHONY : UnrealLoader.o
+
+# target to build an object file
+UnrealLoader.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/UnrealLoader.cpp.o
+.PHONY : UnrealLoader.cpp.o
+
+UnrealLoader.i: UnrealLoader.cpp.i
+.PHONY : UnrealLoader.i
+
+# target to preprocess a source file
+UnrealLoader.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/UnrealLoader.cpp.i
+.PHONY : UnrealLoader.cpp.i
+
+UnrealLoader.s: UnrealLoader.cpp.s
+.PHONY : UnrealLoader.s
+
+# target to generate assembly for a file
+UnrealLoader.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/UnrealLoader.cpp.s
+.PHONY : UnrealLoader.cpp.s
+
+ValidateDataStructure.o: ValidateDataStructure.cpp.o
+.PHONY : ValidateDataStructure.o
+
+# target to build an object file
+ValidateDataStructure.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ValidateDataStructure.cpp.o
+.PHONY : ValidateDataStructure.cpp.o
+
+ValidateDataStructure.i: ValidateDataStructure.cpp.i
+.PHONY : ValidateDataStructure.i
+
+# target to preprocess a source file
+ValidateDataStructure.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ValidateDataStructure.cpp.i
+.PHONY : ValidateDataStructure.cpp.i
+
+ValidateDataStructure.s: ValidateDataStructure.cpp.s
+.PHONY : ValidateDataStructure.s
+
+# target to generate assembly for a file
+ValidateDataStructure.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ValidateDataStructure.cpp.s
+.PHONY : ValidateDataStructure.cpp.s
+
+VertexTriangleAdjacency.o: VertexTriangleAdjacency.cpp.o
+.PHONY : VertexTriangleAdjacency.o
+
+# target to build an object file
+VertexTriangleAdjacency.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/VertexTriangleAdjacency.cpp.o
+.PHONY : VertexTriangleAdjacency.cpp.o
+
+VertexTriangleAdjacency.i: VertexTriangleAdjacency.cpp.i
+.PHONY : VertexTriangleAdjacency.i
+
+# target to preprocess a source file
+VertexTriangleAdjacency.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/VertexTriangleAdjacency.cpp.i
+.PHONY : VertexTriangleAdjacency.cpp.i
+
+VertexTriangleAdjacency.s: VertexTriangleAdjacency.cpp.s
+.PHONY : VertexTriangleAdjacency.s
+
+# target to generate assembly for a file
+VertexTriangleAdjacency.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/VertexTriangleAdjacency.cpp.s
+.PHONY : VertexTriangleAdjacency.cpp.s
+
+XFileImporter.o: XFileImporter.cpp.o
+.PHONY : XFileImporter.o
+
+# target to build an object file
+XFileImporter.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/XFileImporter.cpp.o
+.PHONY : XFileImporter.cpp.o
+
+XFileImporter.i: XFileImporter.cpp.i
+.PHONY : XFileImporter.i
+
+# target to preprocess a source file
+XFileImporter.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/XFileImporter.cpp.i
+.PHONY : XFileImporter.cpp.i
+
+XFileImporter.s: XFileImporter.cpp.s
+.PHONY : XFileImporter.s
+
+# target to generate assembly for a file
+XFileImporter.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/XFileImporter.cpp.s
+.PHONY : XFileImporter.cpp.s
+
+XFileParser.o: XFileParser.cpp.o
+.PHONY : XFileParser.o
+
+# target to build an object file
+XFileParser.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/XFileParser.cpp.o
+.PHONY : XFileParser.cpp.o
+
+XFileParser.i: XFileParser.cpp.i
+.PHONY : XFileParser.i
+
+# target to preprocess a source file
+XFileParser.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/XFileParser.cpp.i
+.PHONY : XFileParser.cpp.i
+
+XFileParser.s: XFileParser.cpp.s
+.PHONY : XFileParser.s
+
+# target to generate assembly for a file
+XFileParser.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/XFileParser.cpp.s
+.PHONY : XFileParser.cpp.s
+
+__/contrib/ConvertUTF/ConvertUTF.o: __/contrib/ConvertUTF/ConvertUTF.c.o
+.PHONY : __/contrib/ConvertUTF/ConvertUTF.o
+
+# target to build an object file
+__/contrib/ConvertUTF/ConvertUTF.c.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/ConvertUTF/ConvertUTF.c.o
+.PHONY : __/contrib/ConvertUTF/ConvertUTF.c.o
+
+__/contrib/ConvertUTF/ConvertUTF.i: __/contrib/ConvertUTF/ConvertUTF.c.i
+.PHONY : __/contrib/ConvertUTF/ConvertUTF.i
+
+# target to preprocess a source file
+__/contrib/ConvertUTF/ConvertUTF.c.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/ConvertUTF/ConvertUTF.c.i
+.PHONY : __/contrib/ConvertUTF/ConvertUTF.c.i
+
+__/contrib/ConvertUTF/ConvertUTF.s: __/contrib/ConvertUTF/ConvertUTF.c.s
+.PHONY : __/contrib/ConvertUTF/ConvertUTF.s
+
+# target to generate assembly for a file
+__/contrib/ConvertUTF/ConvertUTF.c.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/ConvertUTF/ConvertUTF.c.s
+.PHONY : __/contrib/ConvertUTF/ConvertUTF.c.s
+
+__/contrib/irrXML/irrXML.o: __/contrib/irrXML/irrXML.cpp.o
+.PHONY : __/contrib/irrXML/irrXML.o
+
+# target to build an object file
+__/contrib/irrXML/irrXML.cpp.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/irrXML/irrXML.cpp.o
+.PHONY : __/contrib/irrXML/irrXML.cpp.o
+
+__/contrib/irrXML/irrXML.i: __/contrib/irrXML/irrXML.cpp.i
+.PHONY : __/contrib/irrXML/irrXML.i
+
+# target to preprocess a source file
+__/contrib/irrXML/irrXML.cpp.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/irrXML/irrXML.cpp.i
+.PHONY : __/contrib/irrXML/irrXML.cpp.i
+
+__/contrib/irrXML/irrXML.s: __/contrib/irrXML/irrXML.cpp.s
+.PHONY : __/contrib/irrXML/irrXML.s
+
+# target to generate assembly for a file
+__/contrib/irrXML/irrXML.cpp.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/irrXML/irrXML.cpp.s
+.PHONY : __/contrib/irrXML/irrXML.cpp.s
+
+__/contrib/unzip/ioapi.o: __/contrib/unzip/ioapi.c.o
+.PHONY : __/contrib/unzip/ioapi.o
+
+# target to build an object file
+__/contrib/unzip/ioapi.c.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/unzip/ioapi.c.o
+.PHONY : __/contrib/unzip/ioapi.c.o
+
+__/contrib/unzip/ioapi.i: __/contrib/unzip/ioapi.c.i
+.PHONY : __/contrib/unzip/ioapi.i
+
+# target to preprocess a source file
+__/contrib/unzip/ioapi.c.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/unzip/ioapi.c.i
+.PHONY : __/contrib/unzip/ioapi.c.i
+
+__/contrib/unzip/ioapi.s: __/contrib/unzip/ioapi.c.s
+.PHONY : __/contrib/unzip/ioapi.s
+
+# target to generate assembly for a file
+__/contrib/unzip/ioapi.c.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/unzip/ioapi.c.s
+.PHONY : __/contrib/unzip/ioapi.c.s
+
+__/contrib/unzip/unzip.o: __/contrib/unzip/unzip.c.o
+.PHONY : __/contrib/unzip/unzip.o
+
+# target to build an object file
+__/contrib/unzip/unzip.c.o:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/unzip/unzip.c.o
+.PHONY : __/contrib/unzip/unzip.c.o
+
+__/contrib/unzip/unzip.i: __/contrib/unzip/unzip.c.i
+.PHONY : __/contrib/unzip/unzip.i
+
+# target to preprocess a source file
+__/contrib/unzip/unzip.c.i:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/unzip/unzip.c.i
+.PHONY : __/contrib/unzip/unzip.c.i
+
+__/contrib/unzip/unzip.s: __/contrib/unzip/unzip.c.s
+.PHONY : __/contrib/unzip/unzip.s
+
+# target to generate assembly for a file
+__/contrib/unzip/unzip.c.s:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/unzip/unzip.c.s
+.PHONY : __/contrib/unzip/unzip.c.s
+
+# Help Target
+help:
+	@echo "The following are some of the valid targets for this Makefile:"
+	@echo "... all (the default if no target is provided)"
+	@echo "... clean"
+	@echo "... depend"
+	@echo "... assimp"
+	@echo "... edit_cache"
+	@echo "... install"
+	@echo "... install/local"
+	@echo "... install/strip"
+	@echo "... list_install_components"
+	@echo "... rebuild_cache"
+	@echo "... 3DSConverter.o"
+	@echo "... 3DSConverter.i"
+	@echo "... 3DSConverter.s"
+	@echo "... 3DSLoader.o"
+	@echo "... 3DSLoader.i"
+	@echo "... 3DSLoader.s"
+	@echo "... ACLoader.o"
+	@echo "... ACLoader.i"
+	@echo "... ACLoader.s"
+	@echo "... ASELoader.o"
+	@echo "... ASELoader.i"
+	@echo "... ASELoader.s"
+	@echo "... ASEParser.o"
+	@echo "... ASEParser.i"
+	@echo "... ASEParser.s"
+	@echo "... Assimp.o"
+	@echo "... Assimp.i"
+	@echo "... Assimp.s"
+	@echo "... AssimpCExport.o"
+	@echo "... AssimpCExport.i"
+	@echo "... AssimpCExport.s"
+	@echo "... AssimpPCH.o"
+	@echo "... AssimpPCH.i"
+	@echo "... AssimpPCH.s"
+	@echo "... B3DImporter.o"
+	@echo "... B3DImporter.i"
+	@echo "... B3DImporter.s"
+	@echo "... BVHLoader.o"
+	@echo "... BVHLoader.i"
+	@echo "... BVHLoader.s"
+	@echo "... BaseImporter.o"
+	@echo "... BaseImporter.i"
+	@echo "... BaseImporter.s"
+	@echo "... BaseProcess.o"
+	@echo "... BaseProcess.i"
+	@echo "... BaseProcess.s"
+	@echo "... BlenderDNA.o"
+	@echo "... BlenderDNA.i"
+	@echo "... BlenderDNA.s"
+	@echo "... BlenderLoader.o"
+	@echo "... BlenderLoader.i"
+	@echo "... BlenderLoader.s"
+	@echo "... BlenderModifier.o"
+	@echo "... BlenderModifier.i"
+	@echo "... BlenderModifier.s"
+	@echo "... BlenderScene.o"
+	@echo "... BlenderScene.i"
+	@echo "... BlenderScene.s"
+	@echo "... COBLoader.o"
+	@echo "... COBLoader.i"
+	@echo "... COBLoader.s"
+	@echo "... CSMLoader.o"
+	@echo "... CSMLoader.i"
+	@echo "... CSMLoader.s"
+	@echo "... CalcTangentsProcess.o"
+	@echo "... CalcTangentsProcess.i"
+	@echo "... CalcTangentsProcess.s"
+	@echo "... ColladaExporter.o"
+	@echo "... ColladaExporter.i"
+	@echo "... ColladaExporter.s"
+	@echo "... ColladaLoader.o"
+	@echo "... ColladaLoader.i"
+	@echo "... ColladaLoader.s"
+	@echo "... ColladaParser.o"
+	@echo "... ColladaParser.i"
+	@echo "... ColladaParser.s"
+	@echo "... ComputeUVMappingProcess.o"
+	@echo "... ComputeUVMappingProcess.i"
+	@echo "... ComputeUVMappingProcess.s"
+	@echo "... ConvertToLHProcess.o"
+	@echo "... ConvertToLHProcess.i"
+	@echo "... ConvertToLHProcess.s"
+	@echo "... DXFLoader.o"
+	@echo "... DXFLoader.i"
+	@echo "... DXFLoader.s"
+	@echo "... DeboneProcess.o"
+	@echo "... DeboneProcess.i"
+	@echo "... DeboneProcess.s"
+	@echo "... DefaultIOStream.o"
+	@echo "... DefaultIOStream.i"
+	@echo "... DefaultIOStream.s"
+	@echo "... DefaultIOSystem.o"
+	@echo "... DefaultIOSystem.i"
+	@echo "... DefaultIOSystem.s"
+	@echo "... DefaultLogger.o"
+	@echo "... DefaultLogger.i"
+	@echo "... DefaultLogger.s"
+	@echo "... Exporter.o"
+	@echo "... Exporter.i"
+	@echo "... Exporter.s"
+	@echo "... FindDegenerates.o"
+	@echo "... FindDegenerates.i"
+	@echo "... FindDegenerates.s"
+	@echo "... FindInstancesProcess.o"
+	@echo "... FindInstancesProcess.i"
+	@echo "... FindInstancesProcess.s"
+	@echo "... FindInvalidDataProcess.o"
+	@echo "... FindInvalidDataProcess.i"
+	@echo "... FindInvalidDataProcess.s"
+	@echo "... FixNormalsStep.o"
+	@echo "... FixNormalsStep.i"
+	@echo "... FixNormalsStep.s"
+	@echo "... GenFaceNormalsProcess.o"
+	@echo "... GenFaceNormalsProcess.i"
+	@echo "... GenFaceNormalsProcess.s"
+	@echo "... GenVertexNormalsProcess.o"
+	@echo "... GenVertexNormalsProcess.i"
+	@echo "... GenVertexNormalsProcess.s"
+	@echo "... HMPLoader.o"
+	@echo "... HMPLoader.i"
+	@echo "... HMPLoader.s"
+	@echo "... IFCCurve.o"
+	@echo "... IFCCurve.i"
+	@echo "... IFCCurve.s"
+	@echo "... IFCGeometry.o"
+	@echo "... IFCGeometry.i"
+	@echo "... IFCGeometry.s"
+	@echo "... IFCLoader.o"
+	@echo "... IFCLoader.i"
+	@echo "... IFCLoader.s"
+	@echo "... IFCMaterial.o"
+	@echo "... IFCMaterial.i"
+	@echo "... IFCMaterial.s"
+	@echo "... IFCProfile.o"
+	@echo "... IFCProfile.i"
+	@echo "... IFCProfile.s"
+	@echo "... IFCReaderGen.o"
+	@echo "... IFCReaderGen.i"
+	@echo "... IFCReaderGen.s"
+	@echo "... IFCUtil.o"
+	@echo "... IFCUtil.i"
+	@echo "... IFCUtil.s"
+	@echo "... IRRLoader.o"
+	@echo "... IRRLoader.i"
+	@echo "... IRRLoader.s"
+	@echo "... IRRMeshLoader.o"
+	@echo "... IRRMeshLoader.i"
+	@echo "... IRRMeshLoader.s"
+	@echo "... IRRShared.o"
+	@echo "... IRRShared.i"
+	@echo "... IRRShared.s"
+	@echo "... Importer.o"
+	@echo "... Importer.i"
+	@echo "... Importer.s"
+	@echo "... ImporterRegistry.o"
+	@echo "... ImporterRegistry.i"
+	@echo "... ImporterRegistry.s"
+	@echo "... ImproveCacheLocality.o"
+	@echo "... ImproveCacheLocality.i"
+	@echo "... ImproveCacheLocality.s"
+	@echo "... JoinVerticesProcess.o"
+	@echo "... JoinVerticesProcess.i"
+	@echo "... JoinVerticesProcess.s"
+	@echo "... LWOAnimation.o"
+	@echo "... LWOAnimation.i"
+	@echo "... LWOAnimation.s"
+	@echo "... LWOBLoader.o"
+	@echo "... LWOBLoader.i"
+	@echo "... LWOBLoader.s"
+	@echo "... LWOLoader.o"
+	@echo "... LWOLoader.i"
+	@echo "... LWOLoader.s"
+	@echo "... LWOMaterial.o"
+	@echo "... LWOMaterial.i"
+	@echo "... LWOMaterial.s"
+	@echo "... LWSLoader.o"
+	@echo "... LWSLoader.i"
+	@echo "... LWSLoader.s"
+	@echo "... LimitBoneWeightsProcess.o"
+	@echo "... LimitBoneWeightsProcess.i"
+	@echo "... LimitBoneWeightsProcess.s"
+	@echo "... M3Importer.o"
+	@echo "... M3Importer.i"
+	@echo "... M3Importer.s"
+	@echo "... MD2Loader.o"
+	@echo "... MD2Loader.i"
+	@echo "... MD2Loader.s"
+	@echo "... MD3Loader.o"
+	@echo "... MD3Loader.i"
+	@echo "... MD3Loader.s"
+	@echo "... MD5Loader.o"
+	@echo "... MD5Loader.i"
+	@echo "... MD5Loader.s"
+	@echo "... MD5Parser.o"
+	@echo "... MD5Parser.i"
+	@echo "... MD5Parser.s"
+	@echo "... MDCLoader.o"
+	@echo "... MDCLoader.i"
+	@echo "... MDCLoader.s"
+	@echo "... MDLLoader.o"
+	@echo "... MDLLoader.i"
+	@echo "... MDLLoader.s"
+	@echo "... MDLMaterialLoader.o"
+	@echo "... MDLMaterialLoader.i"
+	@echo "... MDLMaterialLoader.s"
+	@echo "... MS3DLoader.o"
+	@echo "... MS3DLoader.i"
+	@echo "... MS3DLoader.s"
+	@echo "... MakeVerboseFormat.o"
+	@echo "... MakeVerboseFormat.i"
+	@echo "... MakeVerboseFormat.s"
+	@echo "... MaterialSystem.o"
+	@echo "... MaterialSystem.i"
+	@echo "... MaterialSystem.s"
+	@echo "... NDOLoader.o"
+	@echo "... NDOLoader.i"
+	@echo "... NDOLoader.s"
+	@echo "... NFFLoader.o"
+	@echo "... NFFLoader.i"
+	@echo "... NFFLoader.s"
+	@echo "... OFFLoader.o"
+	@echo "... OFFLoader.i"
+	@echo "... OFFLoader.s"
+	@echo "... ObjExporter.o"
+	@echo "... ObjExporter.i"
+	@echo "... ObjExporter.s"
+	@echo "... ObjFileImporter.o"
+	@echo "... ObjFileImporter.i"
+	@echo "... ObjFileImporter.s"
+	@echo "... ObjFileMtlImporter.o"
+	@echo "... ObjFileMtlImporter.i"
+	@echo "... ObjFileMtlImporter.s"
+	@echo "... ObjFileParser.o"
+	@echo "... ObjFileParser.i"
+	@echo "... ObjFileParser.s"
+	@echo "... OgreImporter.o"
+	@echo "... OgreImporter.i"
+	@echo "... OgreImporter.s"
+	@echo "... OgreImporterMaterial.o"
+	@echo "... OgreImporterMaterial.i"
+	@echo "... OgreImporterMaterial.s"
+	@echo "... OptimizeGraph.o"
+	@echo "... OptimizeGraph.i"
+	@echo "... OptimizeGraph.s"
+	@echo "... OptimizeMeshes.o"
+	@echo "... OptimizeMeshes.i"
+	@echo "... OptimizeMeshes.s"
+	@echo "... PlyLoader.o"
+	@echo "... PlyLoader.i"
+	@echo "... PlyLoader.s"
+	@echo "... PlyParser.o"
+	@echo "... PlyParser.i"
+	@echo "... PlyParser.s"
+	@echo "... PostStepRegistry.o"
+	@echo "... PostStepRegistry.i"
+	@echo "... PostStepRegistry.s"
+	@echo "... PretransformVertices.o"
+	@echo "... PretransformVertices.i"
+	@echo "... PretransformVertices.s"
+	@echo "... ProcessHelper.o"
+	@echo "... ProcessHelper.i"
+	@echo "... ProcessHelper.s"
+	@echo "... Q3BSPFileImporter.o"
+	@echo "... Q3BSPFileImporter.i"
+	@echo "... Q3BSPFileImporter.s"
+	@echo "... Q3BSPFileParser.o"
+	@echo "... Q3BSPFileParser.i"
+	@echo "... Q3BSPFileParser.s"
+	@echo "... Q3BSPZipArchive.o"
+	@echo "... Q3BSPZipArchive.i"
+	@echo "... Q3BSPZipArchive.s"
+	@echo "... Q3DLoader.o"
+	@echo "... Q3DLoader.i"
+	@echo "... Q3DLoader.s"
+	@echo "... RawLoader.o"
+	@echo "... RawLoader.i"
+	@echo "... RawLoader.s"
+	@echo "... RemoveComments.o"
+	@echo "... RemoveComments.i"
+	@echo "... RemoveComments.s"
+	@echo "... RemoveRedundantMaterials.o"
+	@echo "... RemoveRedundantMaterials.i"
+	@echo "... RemoveRedundantMaterials.s"
+	@echo "... RemoveVCProcess.o"
+	@echo "... RemoveVCProcess.i"
+	@echo "... RemoveVCProcess.s"
+	@echo "... SGSpatialSort.o"
+	@echo "... SGSpatialSort.i"
+	@echo "... SGSpatialSort.s"
+	@echo "... SMDLoader.o"
+	@echo "... SMDLoader.i"
+	@echo "... SMDLoader.s"
+	@echo "... STEPFileReader.o"
+	@echo "... STEPFileReader.i"
+	@echo "... STEPFileReader.s"
+	@echo "... STLLoader.o"
+	@echo "... STLLoader.i"
+	@echo "... STLLoader.s"
+	@echo "... SceneCombiner.o"
+	@echo "... SceneCombiner.i"
+	@echo "... SceneCombiner.s"
+	@echo "... ScenePreprocessor.o"
+	@echo "... ScenePreprocessor.i"
+	@echo "... ScenePreprocessor.s"
+	@echo "... SkeletonMeshBuilder.o"
+	@echo "... SkeletonMeshBuilder.i"
+	@echo "... SkeletonMeshBuilder.s"
+	@echo "... SortByPTypeProcess.o"
+	@echo "... SortByPTypeProcess.i"
+	@echo "... SortByPTypeProcess.s"
+	@echo "... SpatialSort.o"
+	@echo "... SpatialSort.i"
+	@echo "... SpatialSort.s"
+	@echo "... SplitByBoneCountProcess.o"
+	@echo "... SplitByBoneCountProcess.i"
+	@echo "... SplitByBoneCountProcess.s"
+	@echo "... SplitLargeMeshes.o"
+	@echo "... SplitLargeMeshes.i"
+	@echo "... SplitLargeMeshes.s"
+	@echo "... StandardShapes.o"
+	@echo "... StandardShapes.i"
+	@echo "... StandardShapes.s"
+	@echo "... Subdivision.o"
+	@echo "... Subdivision.i"
+	@echo "... Subdivision.s"
+	@echo "... TargetAnimation.o"
+	@echo "... TargetAnimation.i"
+	@echo "... TargetAnimation.s"
+	@echo "... TerragenLoader.o"
+	@echo "... TerragenLoader.i"
+	@echo "... TerragenLoader.s"
+	@echo "... TextureTransform.o"
+	@echo "... TextureTransform.i"
+	@echo "... TextureTransform.s"
+	@echo "... TriangulateProcess.o"
+	@echo "... TriangulateProcess.i"
+	@echo "... TriangulateProcess.s"
+	@echo "... UnrealLoader.o"
+	@echo "... UnrealLoader.i"
+	@echo "... UnrealLoader.s"
+	@echo "... ValidateDataStructure.o"
+	@echo "... ValidateDataStructure.i"
+	@echo "... ValidateDataStructure.s"
+	@echo "... VertexTriangleAdjacency.o"
+	@echo "... VertexTriangleAdjacency.i"
+	@echo "... VertexTriangleAdjacency.s"
+	@echo "... XFileImporter.o"
+	@echo "... XFileImporter.i"
+	@echo "... XFileImporter.s"
+	@echo "... XFileParser.o"
+	@echo "... XFileParser.i"
+	@echo "... XFileParser.s"
+	@echo "... __/contrib/ConvertUTF/ConvertUTF.o"
+	@echo "... __/contrib/ConvertUTF/ConvertUTF.i"
+	@echo "... __/contrib/ConvertUTF/ConvertUTF.s"
+	@echo "... __/contrib/irrXML/irrXML.o"
+	@echo "... __/contrib/irrXML/irrXML.i"
+	@echo "... __/contrib/irrXML/irrXML.s"
+	@echo "... __/contrib/unzip/ioapi.o"
+	@echo "... __/contrib/unzip/ioapi.i"
+	@echo "... __/contrib/unzip/ioapi.s"
+	@echo "... __/contrib/unzip/unzip.o"
+	@echo "... __/contrib/unzip/unzip.i"
+	@echo "... __/contrib/unzip/unzip.s"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	cd /mnt/hgfs/dev/assimp4.svnc && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+

+ 12 - 51
include/aiScene.h

@@ -327,59 +327,11 @@ struct aiScene
 
 #ifdef __cplusplus
 
-	//! Default constructor
-	aiScene()
-	{
-		// set all members to zero by default
-		mRootNode = NULL;
-		mNumMeshes = 0; mMeshes = NULL;
-		mNumMaterials = 0; mMaterials = NULL;
-		mNumAnimations = 0; mAnimations = NULL;
-		mNumTextures = 0; mTextures = NULL;
-		mNumCameras = 0; mCameras = NULL;
-		mNumLights = 0; mLights = NULL;
-		mFlags = 0;
-	}
+	//! Default constructor - set everything to 0/NULL
+	aiScene();
 
 	//! Destructor
-	~aiScene()
-	{
-		// delete all sub-objects recursively
-		delete mRootNode;
-
-		// To make sure we won't crash if the data is invalid it's
-		// much better to check whether both mNumXXX and mXXX are
-		// valid instead of relying on just one of them.
-		if (mNumMeshes && mMeshes) 
-			for( unsigned int a = 0; a < mNumMeshes; a++)
-				delete mMeshes[a];
-		delete [] mMeshes;
-
-		if (mNumMaterials && mMaterials) 
-			for( unsigned int a = 0; a < mNumMaterials; a++)
-				delete mMaterials[a];
-		delete [] mMaterials;
-
-		if (mNumAnimations && mAnimations) 
-			for( unsigned int a = 0; a < mNumAnimations; a++)
-				delete mAnimations[a];
-		delete [] mAnimations;
-
-		if (mNumTextures && mTextures) 
-			for( unsigned int a = 0; a < mNumTextures; a++)
-				delete mTextures[a];
-		delete [] mTextures;
-
-		if (mNumLights && mLights) 
-			for( unsigned int a = 0; a < mNumLights; a++)
-				delete mLights[a];
-		delete [] mLights;
-
-		if (mNumCameras && mCameras) 
-			for( unsigned int a = 0; a < mNumCameras; a++)
-				delete mCameras[a];
-		delete [] mCameras;
-	}
+	~aiScene();
 
 	//! Check whether the scene contains meshes
 	//! Unless no special scene flags are set this will always be true.
@@ -408,6 +360,15 @@ struct aiScene
 		{ return mAnimations != NULL && mNumAnimations > 0; }
 
 #endif // __cplusplus
+
+
+	// internal scene data, do not touch
+#ifdef __cplusplus
+	void* mPrivate;
+#else
+	char* mPrivate;
+#endif
+
 };
 
 #ifdef __cplusplus

+ 29 - 4
include/export.h

@@ -136,15 +136,38 @@ struct aiExportDataBlob
 // --------------------------------------------------------------------------------
 /** Exports the given scene to a chosen file format and writes the result file(s) to disk.
 * @param pScene The scene to export. Stays in possession of the caller, is not changed by the function.
+*   The scene is expected to conform to Assimp's Importer output format as specified
+*   in the @link data Data Structures Page @endlink. In short, this means the model data
+*   should use a right-handed coordinate systems, face winding should be counter-clockwise
+*   and the UV coordinate origin is assumed to be in the upper left. If your input data
+*   uses different conventions, have a look at the last parameter.
 * @param pFormatId ID string to specify to which format you want to export to. Use 
 * aiGetExportFormatCount() / aiGetExportFormatDescription() to learn which export formats are available.
 * @param pFileName Output file to write
 * @param pIO custom IO implementation to be used. Use this if you use your own storage methods.
 *   If none is supplied, a default implementation using standard file IO is used. Note that
-*   #aiExportSceneToBlob is provided as convienience function to export to memory buffers.
+*   #aiExportSceneToBlob is provided as convenience function to export to memory buffers.
+* @param pPreprocessing Accepts any choice of the #aiPostProcessing enumerated
+*   flags, but in reality only a subset of them makes sense here. Specifying
+*   'preprocessing' flags is useful if the input scene does not conform to 
+*   Assimp's default conventions as specified in the @link data Data Structures Page @endlink. 
+*   In short, this means the geometry data should use a right-handed coordinate systems, face 
+*   winding should be counter-clockwise and the UV coordinate origin is assumed to be in
+*   the upper left. The #aiProcess_MakeLeftHanded, #aiProcess_FlipUVs and 
+*   #aiProcess_FlipWindingOrder flags are used in the import side to allow users
+*   to have those defaults automatically adapted to their conventions. Specifying those flags
+*   for exporting has the opposite effect, respectively. Some other of the
+*   #aiPostProcessSteps enumerated values may be useful as well, but you'll need
+*   to try out what their effect on the exported file is. Many formats impose
+*   their own restrictions on the structure of the geometry stored therein,
+*   so some preprocessing may have little or no effect at all, or may be
+*   redundant as exporters would apply them anyhow. A good example 
+*   is triangulation - whilst you can enforce it by specifying
+*   the #aiProcess_Triangulate flag, most export formats support only
+*  triangulate data so they would run the step even if it wasn't requested.
 * @return a status code indicating the result of the export
 */
-ASSIMP_API aiReturn aiExportScene( const C_STRUCT aiScene* pScene, const char* pFormatId, const char* pFileName);
+ASSIMP_API aiReturn aiExportScene( const C_STRUCT aiScene* pScene, const char* pFormatId, const char* pFileName,  unsigned int pPreprocessing);
 
 
 // --------------------------------------------------------------------------------
@@ -156,9 +179,10 @@ ASSIMP_API aiReturn aiExportScene( const C_STRUCT aiScene* pScene, const char* p
 * @param pIO custom IO implementation to be used. Use this if you use your own storage methods.
 *   If none is supplied, a default implementation using standard file IO is used. Note that
 *   #aiExportSceneToBlob is provided as convienience function to export to memory buffers.
+* @param pPreprocessing Please see the documentation for #aiExportScene
 * @return a status code indicating the result of the export
 */
-ASSIMP_API aiReturn aiExportSceneEx( const C_STRUCT aiScene* pScene, const char* pFormatId, const char* pFileName, C_STRUCT aiFileIO* pIO );
+ASSIMP_API aiReturn aiExportSceneEx( const C_STRUCT aiScene* pScene, const char* pFormatId, const char* pFileName, C_STRUCT aiFileIO* pIO,  unsigned int pPreprocessing );
 
 // --------------------------------------------------------------------------------
 /** Exports the given scene to a chosen file format. Returns the exported data as a binary blob which
@@ -167,9 +191,10 @@ ASSIMP_API aiReturn aiExportSceneEx( const C_STRUCT aiScene* pScene, const char*
 * @param pScene The scene to export. Stays in possession of the caller, is not changed by the function.
 * @param pFormatId ID string to specify to which format you want to export to. Use 
 * aiGetExportFormatCount() / aiGetExportFormatDescription() to learn which export formats are available.
+* @param pPreprocessing Please see the documentation for #aiExportScene
 * @return the exported data or NULL in case of error
 */
-ASSIMP_API const C_STRUCT aiExportDataBlob* aiExportSceneToBlob( const C_STRUCT aiScene* pScene, const char* pFormatId );
+ASSIMP_API const C_STRUCT aiExportDataBlob* aiExportSceneToBlob( const C_STRUCT aiScene* pScene, const char* pFormatId,  unsigned int pPreprocessing );
 
 
 

+ 27 - 8
include/export.hpp

@@ -134,12 +134,13 @@ public:
 	*   export to. Use 
 	* #GetExportFormatCount / #GetExportFormatDescription to learn which 
 	*   export formats are available.
+	* @param pPreprocessing See the documentation for #Export
 	* @return the exported data or NULL in case of error.
 	* @note If the Exporter instance did already hold a blob from
 	*   a previous call to #ExportToBlob, it will be disposed. 
 	*   Any IO handlers set via #SetIOHandler are ignored here.*/
-	const aiExportDataBlob* ExportToBlob(  const aiScene* pScene, const char* pFormatId );
-	inline const aiExportDataBlob* ExportToBlob(  const aiScene* pScene, const std::string& pFormatId );
+	const aiExportDataBlob* ExportToBlob(  const aiScene* pScene, const char* pFormatId, unsigned int pPreprocessing = 0u );
+	inline const aiExportDataBlob* ExportToBlob(  const aiScene* pScene, const std::string& pFormatId, unsigned int pPreprocessing = 0u );
 
 
 	// -------------------------------------------------------------------
@@ -148,9 +149,27 @@ public:
 	 *  about the output data flow of the export process.
 	 * @param pBlob A data blob obtained from a previous call to #aiExportScene. Must not be NULL.
 	 * @param pPath Full target file name. Target must be accessible.
+	 * @param pPreprocessing Accepts any choice of the #aiPostProcessing enumerated
+	 *   flags, but in reality only a subset of them makes sense here. Specifying
+	 *   'preprocessing' flags is useful if the input scene does not conform to 
+	 *   Assimp's default conventions as specified in the @link data Data Structures Page @endlink. 
+	 *   In short, this means the geometry data should use a right-handed coordinate systems, face 
+	 *   winding should be counter-clockwise and the UV coordinate origin is assumed to be in
+	 *   the upper left. The #aiProcess_MakeLeftHanded, #aiProcess_FlipUVs and 
+	 *   #aiProcess_FlipWindingOrder flags are used in the import side to allow users
+	 *   to have those defaults automatically adapted to their conventions. Specifying those flags
+	 *   for exporting has the opposite effect, respectively. Some other of the
+	 *   #aiPostProcessSteps enumerated values may be useful as well, but you'll need
+	 *   to try out what their effect on the exported file is. Many formats impose
+	 *   their own restrictions on the structure of the geometry stored therein,
+	 *   so some preprocessing may have little or no effect at all, or may be
+	 *   redundant as exporters would apply them anyhow. A good example 
+	 *   is triangulation - whilst you can enforce it by specifying
+	 *   the #aiProcess_Triangulate flag, most export formats support only
+	 *  triangulate data so they would run the step even if it wasn't requested.
 	 * @return AI_SUCCESS if everything was fine. */
-	aiReturn Export( const aiScene* pScene, const char* pFormatId, const char* pPath );
-	inline aiReturn Export( const aiScene* pScene, const std::string& pFormatId, const std::string& pPath );
+	aiReturn Export( const aiScene* pScene, const char* pFormatId, const char* pPath, unsigned int pPreprocessing = 0u);
+	inline aiReturn Export( const aiScene* pScene, const std::string& pFormatId, const std::string& pPath,  unsigned int pPreprocessing = 0u);
 
 
 
@@ -192,15 +211,15 @@ protected:
 
 
 // ----------------------------------------------------------------------------------
-inline const aiExportDataBlob* Exporter :: ExportToBlob(  const aiScene* pScene, const std::string& pFormatId ) 
+inline const aiExportDataBlob* Exporter :: ExportToBlob(  const aiScene* pScene, const std::string& pFormatId,unsigned int pPreprocessing ) 
 {
-	return ExportToBlob(pScene,pFormatId.c_str());
+	return ExportToBlob(pScene,pFormatId.c_str(),pPreprocessing);
 }
 
 // ----------------------------------------------------------------------------------
-inline aiReturn Exporter :: Export( const aiScene* pScene, const std::string& pFormatId, const std::string& pPath )
+inline aiReturn Exporter :: Export( const aiScene* pScene, const std::string& pFormatId, const std::string& pPath, unsigned int pPreprocessing )
 {
-	return Export(pScene,pFormatId.c_str(),pPath.c_str());
+	return Export(pScene,pFormatId.c_str(),pPath.c_str(),pPreprocessing);
 }
 
 } // namespace Assimp

File diff suppressed because it is too large
+ 271 - 219
workspaces/vc9/assimp.vcproj


Some files were not shown because too many files changed in this diff