From 665f73861e9565ac47a8d46cfea284c9da6f70dd Mon Sep 17 00:00:00 2001 From: aramis_acg Date: Mon, 1 Aug 2011 20:58:31 +0000 Subject: [PATCH] - 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 --- code/3DSLoader.h | 6 +- code/ACLoader.h | 8 +- code/ASELoader.h | 8 +- code/Assimp.cpp | 1 + code/AssimpCExport.cpp | 12 +- code/AssimpPCH.cpp | 62 + code/AssimpPCH.h | 1 + code/BVHLoader.h | 7 +- code/BaseImporter.cpp | 2 + code/BaseImporter.h | 146 +- code/BaseProcess.cpp | 2 + code/BlenderLoader.h | 9 +- code/CMakeLists.txt | 4 + code/COBLoader.h | 9 +- code/CSMLoader.h | 7 +- code/CalcTangentsProcess.h | 6 +- code/ColladaLoader.h | 8 +- code/ComputeUVMappingProcess.h | 9 +- code/ConvertToLHProcess.h | 5 +- code/DXFLoader.h | 8 +- code/DeboneProcess.h | 7 +- code/Exporter.cpp | 47 +- code/FindDegenerates.h | 7 +- code/FindInstancesProcess.h | 9 +- code/FindInvalidDataProcess.h | 8 +- code/FixNormalsStep.h | 10 +- code/GenFaceNormalsProcess.h | 6 +- code/GenVertexNormalsProcess.h | 7 +- code/HMPLoader.h | 8 +- code/IFCLoader.h | 9 +- code/IRRLoader.cpp | 2 +- code/IRRLoader.h | 8 +- code/IRRMeshLoader.h | 8 +- code/Importer.cpp | 415 +--- code/Importer.h | 204 ++ code/ImporterRegistry.cpp | 284 +++ code/ImproveCacheLocality.h | 6 +- code/JoinVerticesProcess.h | 7 +- code/LWOLoader.h | 9 +- code/LWSLoader.cpp | 1 + code/LWSLoader.h | 8 +- code/LimitBoneWeightsProcess.h | 7 +- code/MD2Loader.h | 8 +- code/MD3Loader.cpp | 1 + code/MD3Loader.h | 8 +- code/MD5Loader.h | 8 +- code/MDCLoader.h | 8 +- code/MDLLoader.h | 8 +- code/MS3DLoader.h | 3 +- code/NDOLoader.h | 7 +- code/NFFLoader.h | 8 +- code/OFFLoader.h | 8 +- code/ObjFileImporter.h | 7 +- code/OptimizeGraph.h | 7 +- code/OptimizeMeshes.h | 7 +- code/PlyLoader.h | 8 +- code/PolyTools.h | 150 +- code/PostStepRegistry.cpp | 229 ++ code/PretransformVertices.h | 7 +- code/Q3BSPFileImporter.h | 5 +- code/Q3DLoader.h | 8 +- code/RawLoader.h | 8 +- code/RemoveRedundantMaterials.h | 7 +- code/RemoveVCProcess.h | 7 +- code/SMDLoader.h | 8 +- code/STLLoader.h | 8 +- code/SceneCombiner.cpp | 9 +- code/SceneCombiner.h | 4 +- code/ScenePrivate.h | 70 + code/SortByPTypeProcess.h | 7 +- code/SplitByBoneCountProcess.h | 6 +- code/SplitLargeMeshes.h | 15 +- code/TerragenLoader.h | 8 +- code/TextureTransform.h | 2 + code/TriangulateProcess.h | 7 +- code/UnrealLoader.h | 8 +- code/ValidateDataStructure.h | 6 +- code/XFileImporter.h | 8 +- code/makefile | 3479 ++++++++++++++++++++++++++++++- include/aiScene.h | 63 +- include/export.h | 33 +- include/export.hpp | 35 +- workspaces/vc9/assimp.vcproj | 2140 +++++++++---------- 83 files changed, 5621 insertions(+), 2209 deletions(-) create mode 100644 code/Importer.h create mode 100644 code/ImporterRegistry.cpp create mode 100644 code/PostStepRegistry.cpp create mode 100644 code/ScenePrivate.h diff --git a/code/3DSLoader.h b/code/3DSLoader.h index 2621583be..186ecbae2 100644 --- a/code/3DSLoader.h +++ b/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: diff --git a/code/ACLoader.h b/code/ACLoader.h index 69fd6681e..d5f38f850 100644 --- a/code/ACLoader.h +++ b/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 { diff --git a/code/ASELoader.h b/code/ASELoader.h index 55f4ecb6d..17b0721f6 100644 --- a/code/ASELoader.h +++ b/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: // ------------------------------------------------------------------- diff --git a/code/Assimp.cpp b/code/Assimp.cpp index 38d3b1a0e..c88e3460e 100644 --- a/code/Assimp.cpp +++ b/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 diff --git a/code/AssimpCExport.cpp b/code/AssimpCExport.cpp index f2b8d64ec..26df1861b 100644 --- a/code/AssimpCExport.cpp +++ b/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(); diff --git a/code/AssimpPCH.cpp b/code/AssimpPCH.cpp index a4e214da3..7d502a6e7 100644 --- a/code/AssimpPCH.cpp +++ b/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( mPrivate ); +} + diff --git a/code/AssimpPCH.h b/code/AssimpPCH.h index 91c8af59a..9dca078fe 100644 --- a/code/AssimpPCH.h +++ b/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 diff --git a/code/BVHLoader.h b/code/BVHLoader.h index ef3418480..3b1c48020 100644 --- a/code/BVHLoader.h +++ b/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: diff --git a/code/BaseImporter.cpp b/code/BaseImporter.cpp index 4d37c4ac5..4f16a7270 100644 --- a/code/BaseImporter.cpp +++ b/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; // ------------------------------------------------------------------------------------------------ diff --git a/code/BaseImporter.h b/code/BaseImporter.h index 54c679252..d4b3f4432 100644 --- a/code/BaseImporter.h +++ b/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 IntPropertyMap; - typedef std::map FloatPropertyMap; - typedef std::map 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 mImporter; - - /** Post processing steps we can apply at the imported data. */ - std::vector 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 diff --git a/code/BaseProcess.cpp b/code/BaseProcess.cpp index da25a0be6..cf27a1954 100644 --- a/code/BaseProcess.cpp +++ b/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; // ------------------------------------------------------------------------------------------------ diff --git a/code/BlenderLoader.h b/code/BlenderLoader.h index 001e4200f..74b5610dd 100644 --- a/code/BlenderLoader.h +++ b/code/BlenderLoader.h @@ -120,16 +120,11 @@ struct aiLoaderDesc // ------------------------------------------------------------------------------------------- class BlenderImporter : public BaseImporter, public LogFunctions { - friend class Importer; - -protected: - - /** Constructor to be privately used by Importer */ +public: BlenderImporter(); - - /** Destructor, private as well */ ~BlenderImporter(); + public: // -------------------- diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt index b05b9904b..57449dcfa 100644 --- a/code/CMakeLists.txt +++ b/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 diff --git a/code/COBLoader.h b/code/COBLoader.h index d6551fc5a..d64da5dfd 100644 --- a/code/COBLoader.h +++ b/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: // -------------------- diff --git a/code/CSMLoader.h b/code/CSMLoader.h index c84d50287..bb0440e6d 100644 --- a/code/CSMLoader.h +++ b/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, diff --git a/code/CalcTangentsProcess.h b/code/CalcTangentsProcess.h index d8459ae51..06fef282a 100644 --- a/code/CalcTangentsProcess.h +++ b/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: diff --git a/code/ColladaLoader.h b/code/ColladaLoader.h index f33a6c167..0bdd4a759 100644 --- a/code/ColladaLoader.h +++ b/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. */ diff --git a/code/ComputeUVMappingProcess.h b/code/ComputeUVMappingProcess.h index 3a5181af9..1026e30d4 100644 --- a/code/ComputeUVMappingProcess.h +++ b/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 diff --git a/code/ConvertToLHProcess.h b/code/ConvertToLHProcess.h index 0b75ef427..0753aa7e5 100644 --- a/code/ConvertToLHProcess.h +++ b/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(); // ------------------------------------------------------------------- diff --git a/code/DXFLoader.h b/code/DXFLoader.h index 4a2a5c7aa..e7c46939c 100644 --- a/code/DXFLoader.h +++ b/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: // ------------------------------------------------------------------- diff --git a/code/DeboneProcess.h b/code/DeboneProcess.h index f637f8e0c..1d0c34154 100644 --- a/code/DeboneProcess.h +++ b/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: diff --git a/code/Exporter.cpp b/code/Exporter.cpp index e805b952c..809d1a7aa 100644 --- a/code/Exporter.cpp +++ b/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 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 diff --git a/code/FindDegenerates.h b/code/FindDegenerates.h index 11bbd8bd8..9d57dd89d 100644 --- a/code/FindDegenerates.h +++ b/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: diff --git a/code/FindInstancesProcess.h b/code/FindInstancesProcess.h index 506b48b18..eaad91ce7 100644 --- a/code/FindInstancesProcess.h +++ b/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: diff --git a/code/FindInvalidDataProcess.h b/code/FindInvalidDataProcess.h index 13ab280e0..afa6f30f7 100644 --- a/code/FindInvalidDataProcess.h +++ b/code/FindInvalidDataProcess.h @@ -59,15 +59,9 @@ namespace Assimp { class ASSIMP_API FindInvalidDataProcess : public BaseProcess { - friend class Importer; - friend class ::FindInvalidDataProcessTest; +public: -protected: - - /** Constructor to be privately used by Importer */ FindInvalidDataProcess(); - - /** Destructor, private as well */ ~FindInvalidDataProcess(); public: diff --git a/code/FixNormalsStep.h b/code/FixNormalsStep.h index 2435a777c..1018a6304 100644 --- a/code/FixNormalsStep.h +++ b/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: diff --git a/code/GenFaceNormalsProcess.h b/code/GenFaceNormalsProcess.h index 8d3c74503..596a34b7a 100644 --- a/code/GenFaceNormalsProcess.h +++ b/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: diff --git a/code/GenVertexNormalsProcess.h b/code/GenVertexNormalsProcess.h index e490bf713..19ecd75ba 100644 --- a/code/GenVertexNormalsProcess.h +++ b/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: diff --git a/code/HMPLoader.h b/code/HMPLoader.h index 2d7142438..e6a94a183 100644 --- a/code/HMPLoader.h +++ b/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: // ------------------------------------------------------------------- diff --git a/code/IFCLoader.h b/code/IFCLoader.h index 8ed9dacf8..914ea4ec0 100644 --- a/code/IFCLoader.h +++ b/code/IFCLoader.h @@ -69,16 +69,11 @@ namespace Assimp { // ------------------------------------------------------------------------------------------- class IFCImporter : public BaseImporter, public LogFunctions { - friend class Importer; - -protected: - - /** Constructor to be privately used by Importer */ +public: IFCImporter(); - - /** Destructor, private as well */ ~IFCImporter(); + public: // -------------------- diff --git a/code/IRRLoader.cpp b/code/IRRLoader.cpp index 5decba167..8ee81c24d 100644 --- a/code/IRRLoader.cpp +++ b/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 diff --git a/code/IRRLoader.h b/code/IRRLoader.h index abb186957..5adf95ed7 100644 --- a/code/IRRLoader.h +++ b/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: // ------------------------------------------------------------------- diff --git a/code/IRRMeshLoader.h b/code/IRRMeshLoader.h index a717e9b5e..ebe608aa9 100644 --- a/code/IRRMeshLoader.h +++ b/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: // ------------------------------------------------------------------- diff --git a/code/Importer.cpp b/code/Importer.cpp index 629d704c7..24449aa33 100644 --- a/code/Importer.cpp +++ b/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"); diff --git a/code/Importer.h b/code/Importer.h new file mode 100644 index 000000000..1a885dd78 --- /dev/null +++ b/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 IntPropertyMap; + typedef std::map FloatPropertyMap; + typedef std::map 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 diff --git a/code/ImporterRegistry.cpp b/code/ImporterRegistry.cpp new file mode 100644 index 000000000..2d0b6ad3e --- /dev/null +++ b/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 +} + +} diff --git a/code/ImproveCacheLocality.h b/code/ImproveCacheLocality.h index 7b2b357bf..4e73dd1fa 100644 --- a/code/ImproveCacheLocality.h +++ b/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: diff --git a/code/JoinVerticesProcess.h b/code/JoinVerticesProcess.h index 70fe80a27..3f264e563 100644 --- a/code/JoinVerticesProcess.h +++ b/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: diff --git a/code/LWOLoader.h b/code/LWOLoader.h index 60260e11e..f48f20521 100644 --- a/code/LWOLoader.h +++ b/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: // ------------------------------------------------------------------- diff --git a/code/LWSLoader.cpp b/code/LWSLoader.cpp index bc5d9e10e..5c5336fdd 100644 --- a/code/LWSLoader.cpp +++ b/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; diff --git a/code/LWSLoader.h b/code/LWSLoader.h index 22695dae6..1c1b0730d 100644 --- a/code/LWSLoader.h +++ b/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: // ------------------------------------------------------------------- diff --git a/code/LimitBoneWeightsProcess.h b/code/LimitBoneWeightsProcess.h index aec8445e7..c8aa9084e 100644 --- a/code/LimitBoneWeightsProcess.h +++ b/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: diff --git a/code/MD2Loader.h b/code/MD2Loader.h index 0338f1257..28bc83bd8 100644 --- a/code/MD2Loader.h +++ b/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: // ------------------------------------------------------------------- diff --git a/code/MD3Loader.cpp b/code/MD3Loader.cpp index ef80ee4f7..f7768ec8d 100644 --- a/code/MD3Loader.cpp +++ b/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; diff --git a/code/MD3Loader.h b/code/MD3Loader.h index 32fc280f4..82c4b2b4d 100644 --- a/code/MD3Loader.h +++ b/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: // ------------------------------------------------------------------- diff --git a/code/MD5Loader.h b/code/MD5Loader.h index 314280cb7..2b0e3de07 100644 --- a/code/MD5Loader.h +++ b/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: // ------------------------------------------------------------------- diff --git a/code/MDCLoader.h b/code/MDCLoader.h index 5cd928ff8..67dbc2f9b 100644 --- a/code/MDCLoader.h +++ b/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: // ------------------------------------------------------------------- diff --git a/code/MDLLoader.h b/code/MDLLoader.h index 42a8c19a9..11a38175e 100644 --- a/code/MDLLoader.h +++ b/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: // ------------------------------------------------------------------- diff --git a/code/MS3DLoader.h b/code/MS3DLoader.h index 3f2c9ad1b..504baa1da 100644 --- a/code/MS3DLoader.h +++ b/code/MS3DLoader.h @@ -53,9 +53,8 @@ namespace Assimp { class MS3DImporter : public BaseImporter { - friend class Importer; -protected: +public: MS3DImporter(); ~MS3DImporter(); diff --git a/code/NDOLoader.h b/code/NDOLoader.h index c14edadce..a86751885 100644 --- a/code/NDOLoader.h +++ b/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 diff --git a/code/NFFLoader.h b/code/NFFLoader.h index e6ceb3818..34d521b34 100644 --- a/code/NFFLoader.h +++ b/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: // ------------------------------------------------------------------- diff --git a/code/OFFLoader.h b/code/OFFLoader.h index 0057ef910..43353dd17 100644 --- a/code/OFFLoader.h +++ b/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: // ------------------------------------------------------------------- diff --git a/code/ObjFileImporter.h b/code/ObjFileImporter.h index 4fe32f398..3035d89fa 100644 --- a/code/ObjFileImporter.h +++ b/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(); diff --git a/code/OptimizeGraph.h b/code/OptimizeGraph.h index 7cc39cd23..18ce238cf 100644 --- a/code/OptimizeGraph.h +++ b/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: diff --git a/code/OptimizeMeshes.h b/code/OptimizeMeshes.h index 177944e03..437fcf348 100644 --- a/code/OptimizeMeshes.h +++ b/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(); diff --git a/code/PlyLoader.h b/code/PlyLoader.h index 83bdf4081..fa75d390d 100644 --- a/code/PlyLoader.h +++ b/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: // ------------------------------------------------------------------- diff --git a/code/PolyTools.h b/code/PolyTools.h index ba0c9c8f5..792d5d4cc 100644 --- a/code/PolyTools.h +++ b/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 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 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 -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 +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 -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. * diff --git a/code/PostStepRegistry.cpp b/code/PostStepRegistry.cpp new file mode 100644 index 000000000..1fbab1c40 --- /dev/null +++ b/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 +} + +} diff --git a/code/PretransformVertices.h b/code/PretransformVertices.h index 2dfb4e251..9948f433b 100644 --- a/code/PretransformVertices.h +++ b/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: diff --git a/code/Q3BSPFileImporter.h b/code/Q3BSPFileImporter.h index e2bec6424..872a281cc 100644 --- a/code/Q3BSPFileImporter.h +++ b/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(); diff --git a/code/Q3DLoader.h b/code/Q3DLoader.h index 3c2b9ac03..6dc9508b7 100644 --- a/code/Q3DLoader.h +++ b/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: // ------------------------------------------------------------------- diff --git a/code/RawLoader.h b/code/RawLoader.h index 756773b8c..242fd05da 100644 --- a/code/RawLoader.h +++ b/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: // ------------------------------------------------------------------- diff --git a/code/RemoveRedundantMaterials.h b/code/RemoveRedundantMaterials.h index 959ccf5ea..15b3d5fa5 100644 --- a/code/RemoveRedundantMaterials.h +++ b/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: diff --git a/code/RemoveVCProcess.h b/code/RemoveVCProcess.h index fe6f6c252..5531ce7be 100644 --- a/code/RemoveVCProcess.h +++ b/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: diff --git a/code/SMDLoader.h b/code/SMDLoader.h index fe0e436ca..36b71bf05 100644 --- a/code/SMDLoader.h +++ b/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: // ------------------------------------------------------------------- diff --git a/code/STLLoader.h b/code/STLLoader.h index 8b27b09a4..f6337d61e 100644 --- a/code/STLLoader.h +++ b/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: // ------------------------------------------------------------------- diff --git a/code/SceneCombiner.cpp b/code/SceneCombiner.cpp index 90624a847..f402be1bf 100644 --- a/code/SceneCombiner.cpp +++ b/code/SceneCombiner.cpp @@ -882,7 +882,7 @@ void SceneCombiner::MergeMeshes(aiMesh** _out,unsigned int /*flags*/, // ------------------------------------------------------------------------------------------------ template -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); diff --git a/code/SceneCombiner.h b/code/SceneCombiner.h index 9dee65603..1fb5f9eef 100644 --- a/code/SceneCombiner.h +++ b/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); // ------------------------------------------------------------------- diff --git a/code/ScenePrivate.h b/code/ScenePrivate.h new file mode 100644 index 000000000..4a8c68502 --- /dev/null +++ b/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(in->mPrivate); +} + +inline const ScenePrivateData* ScenePriv(const aiScene* in) { + return static_cast(in->mPrivate); +} + +} + +#endif diff --git a/code/SortByPTypeProcess.h b/code/SortByPTypeProcess.h index 9cfea377b..5297a59d5 100644 --- a/code/SortByPTypeProcess.h +++ b/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: diff --git a/code/SplitByBoneCountProcess.h b/code/SplitByBoneCountProcess.h index 59802c66d..3be117fa3 100644 --- a/code/SplitByBoneCountProcess.h +++ b/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: diff --git a/code/SplitLargeMeshes.h b/code/SplitLargeMeshes.h index a565f5e0b..25f2e31dd 100644 --- a/code/SplitLargeMeshes.h +++ b/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 */ +public: + SplitLargeMeshesProcess_Triangle(); - - /** Destructor, private as well */ ~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: diff --git a/code/TerragenLoader.h b/code/TerragenLoader.h index 3b6229bfd..193aa7b9e 100644 --- a/code/TerragenLoader.h +++ b/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: // ------------------------------------------------------------------- diff --git a/code/TextureTransform.h b/code/TextureTransform.h index 0ce73193f..1d70f2cd0 100644 --- a/code/TextureTransform.h +++ b/code/TextureTransform.h @@ -195,6 +195,8 @@ public: TextureTransformStep(); ~TextureTransformStep(); +public: + // ------------------------------------------------------------------- bool IsActive( unsigned int pFlags) const; diff --git a/code/TriangulateProcess.h b/code/TriangulateProcess.h index ed77d3877..f6fcd6dfb 100644 --- a/code/TriangulateProcess.h +++ b/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: diff --git a/code/UnrealLoader.h b/code/UnrealLoader.h index 5fe6391ac..1d1ff745d 100644 --- a/code/UnrealLoader.h +++ b/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: // ------------------------------------------------------------------- diff --git a/code/ValidateDataStructure.h b/code/ValidateDataStructure.h index 039024209..cd6d56424 100644 --- a/code/ValidateDataStructure.h +++ b/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: diff --git a/code/XFileImporter.h b/code/XFileImporter.h index 585827133..9b0cca444 100644 --- a/code/XFileImporter.h +++ b/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. diff --git a/code/makefile b/code/makefile index 00b641c7a..1ea29fc6e 100644 --- a/code/makefile +++ b/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) -# aramis_acg@users.sourceforge.net - -# -# Usage: make - -# 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 + diff --git a/include/aiScene.h b/include/aiScene.h index 31900200a..567bc02e6 100644 --- a/include/aiScene.h +++ b/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 diff --git a/include/export.h b/include/export.h index 8dbf4cce1..9df385d62 100644 --- a/include/export.h +++ b/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 ); diff --git a/include/export.hpp b/include/export.hpp index fc12427d4..22592e9a5 100644 --- a/include/export.hpp +++ b/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 diff --git a/workspaces/vc9/assimp.vcproj b/workspaces/vc9/assimp.vcproj index 0850076b6..56bc74cdf 100644 --- a/workspaces/vc9/assimp.vcproj +++ b/workspaces/vc9/assimp.vcproj @@ -1,7 +1,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + @@ -2214,7 +2222,7 @@ - - - @@ -2272,14 +2272,6 @@ PrecompiledHeaderThrough="AssimpPCH.h" /> - - - @@ -2307,6 +2299,22 @@ PrecompiledHeaderThrough="AssimpPCH.h" /> + + + + + + @@ -2320,6 +2328,70 @@ RelativePath="..\..\code\AssimpPCH.h" > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - @@ -2429,11 +2477,15 @@ > + + - - - @@ -2487,14 +2531,6 @@ UsePrecompiledHeader="0" /> - - - @@ -2519,6 +2555,22 @@ UsePrecompiledHeader="0" /> + + + + + + @@ -2532,28 +2584,12 @@ RelativePath="..\..\code\MakeVerboseFormat.h" > - - - - - - - - - - - - - - @@ -2644,14 +2668,6 @@ RelativePath="..\..\code\TargetAnimation.h" > - - - - @@ -2702,14 +2718,6 @@ UsePrecompiledHeader="0" /> - - - @@ -2718,14 +2726,6 @@ UsePrecompiledHeader="0" /> - - - @@ -2734,14 +2734,6 @@ UsePrecompiledHeader="0" /> - - - @@ -2750,14 +2742,6 @@ UsePrecompiledHeader="0" /> - - - @@ -2766,14 +2750,6 @@ UsePrecompiledHeader="0" /> - - - @@ -2782,14 +2758,6 @@ UsePrecompiledHeader="0" /> - - - @@ -2799,7 +2767,7 @@ /> + + + + + + + + + + + + + + + + + + - - - @@ -2862,14 +2870,6 @@ UsePrecompiledHeader="0" /> - - - @@ -2878,14 +2878,6 @@ UsePrecompiledHeader="0" /> - - - @@ -2894,14 +2886,6 @@ UsePrecompiledHeader="0" /> - - - @@ -2910,14 +2894,6 @@ UsePrecompiledHeader="0" /> - - - @@ -2926,14 +2902,6 @@ UsePrecompiledHeader="0" /> - - - @@ -2943,7 +2911,7 @@ /> + + + + + + + + + + + + + + + + + + - - - @@ -2994,14 +3002,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3010,14 +3010,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3026,14 +3018,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3042,14 +3026,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3058,14 +3034,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3075,7 +3043,7 @@ /> + + + + + + + + + + + + + + + + + + - - - @@ -3134,14 +3142,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3150,14 +3150,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3166,14 +3158,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3182,14 +3166,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3198,14 +3174,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3215,7 +3183,7 @@ /> + + + + + + + + + + + + + + + + + + - - - @@ -3274,14 +3282,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3290,14 +3290,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3306,14 +3298,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3322,14 +3306,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3338,14 +3314,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3355,7 +3323,7 @@ /> + + + + + + + + + + + + + + + + + + - - - @@ -3410,14 +3418,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3426,14 +3426,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3442,14 +3434,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3458,14 +3442,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3474,14 +3450,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3491,7 +3459,7 @@ /> + + + + + + + + + + + + + + + + + + - - - @@ -3546,14 +3554,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3562,14 +3562,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3578,14 +3570,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3594,14 +3578,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3610,14 +3586,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3627,7 +3595,7 @@ /> + + + + + + + + + + + + + + + + + + - - - @@ -3682,14 +3690,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3698,14 +3698,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3714,14 +3706,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3730,14 +3714,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3746,14 +3722,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3763,7 +3731,7 @@ /> + + + + + + + + + + + + + + + + + + - - - @@ -3830,14 +3838,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3846,14 +3846,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3862,14 +3854,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3878,14 +3862,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3894,14 +3870,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3911,7 +3879,7 @@ /> + + + + + + + + + + + + + + + + + + - - - @@ -3970,14 +3978,6 @@ UsePrecompiledHeader="0" /> - - - @@ -3986,14 +3986,6 @@ UsePrecompiledHeader="0" /> - - - @@ -4002,14 +3994,6 @@ UsePrecompiledHeader="0" /> - - - @@ -4018,14 +4002,6 @@ UsePrecompiledHeader="0" /> - - - @@ -4034,14 +4010,6 @@ UsePrecompiledHeader="0" /> - - - @@ -4051,7 +4019,7 @@ /> + + + + + + + + + + + + + + + + + +