Quellcode durchsuchen

Merge branch 'master' into new_obj_stream_handling

Kim Kulling vor 9 Jahren
Ursprung
Commit
bf06ee3ed4

+ 6 - 0
.gitignore

@@ -29,6 +29,12 @@ cmake_uninstall.cmake
 assimp-config.cmake
 assimp-config-version.cmake
 
+# MakeFile
+Makefile
+test/Makefile
+test/headercheck/Makefile
+tools/assimp_cmd/Makefile
+
 # Tests
 test/results
 

+ 2 - 0
code/CMakeLists.txt

@@ -611,6 +611,8 @@ ADD_ASSIMP_IMPORTER( X
 )
 
 ADD_ASSIMP_IMPORTER(X3D
+  X3DExporter.cpp
+  X3DExporter.hpp
   X3DImporter.cpp
   X3DImporter.hpp
   X3DImporter_Geometry2D.cpp

+ 5 - 0
code/Exporter.cpp

@@ -91,6 +91,7 @@ void ExportSceneGLTF(const char*, IOSystem*, const aiScene*, const ExportPropert
 void ExportSceneGLB(const char*, IOSystem*, const aiScene*, const ExportProperties*);
 void ExportSceneAssbin(const char*, IOSystem*, const aiScene*, const ExportProperties*);
 void ExportSceneAssxml(const char*, IOSystem*, const aiScene*, const ExportProperties*);
+void ExportSceneX3D(const char*, IOSystem*, const aiScene*, const ExportProperties*);
 
 // ------------------------------------------------------------------------------------------------
 // global array of all export formats which Assimp supports in its current build
@@ -151,6 +152,10 @@ Exporter::ExportFormatEntry gExporters[] =
 #ifndef ASSIMP_BUILD_NO_ASSXML_EXPORTER
     Exporter::ExportFormatEntry( "assxml", "Assxml Document", "assxml" , &ExportSceneAssxml, 0),
 #endif
+
+#ifndef ASSIMP_BUILD_NO_X3D_EXPORTER
+	Exporter::ExportFormatEntry( "x3d", "Extensible 3D", "x3d" , &ExportSceneX3D, 0),
+#endif
 };
 
 #define ASSIMP_NUM_EXPORTERS (sizeof(gExporters)/sizeof(gExporters[0]))

+ 5658 - 0
code/Makefile

@@ -0,0 +1,5658 @@
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.6
+
+# Default target executed when no arguments are given to make.
+default_target: all
+
+.PHONY : default_target
+
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
+
+
+#=============================================================================
+# Special targets provided by cmake.
+
+# Disable implicit rules so canonical 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/local/Cellar/cmake/3.6.2/bin/cmake
+
+# The command to remove a file.
+RM = /usr/local/Cellar/cmake/3.6.2/bin/cmake -E remove -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /Users/angelo/coding/assimp
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /Users/angelo/coding/assimp
+
+#=============================================================================
+# 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/local/Cellar/cmake/3.6.2/bin/ccmake -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 rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/local/Cellar/cmake/3.6.2/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
+
+# Special rule for the target list_install_components
+list_install_components:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\" \"assimp-bin\" \"assimp-dev\" \"libassimp3.3.1-dev\""
+.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 install
+install: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
+	/usr/local/Cellar/cmake/3.6.2/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/local/Cellar/cmake/3.6.2/bin/cmake -P cmake_install.cmake
+.PHONY : install/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/local/Cellar/cmake/3.6.2/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 install/local
+install/local: preinstall
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
+	/usr/local/Cellar/cmake/3.6.2/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
+
+# The main all target
+all: cmake_check_build_system
+	cd /Users/angelo/coding/assimp && $(CMAKE_COMMAND) -E cmake_progress_start /Users/angelo/coding/assimp/CMakeFiles /Users/angelo/coding/assimp/code/CMakeFiles/progress.marks
+	cd /Users/angelo/coding/assimp && $(MAKE) -f CMakeFiles/Makefile2 code/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /Users/angelo/coding/assimp/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	cd /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(MAKE) -f CMakeFiles/Makefile2 code/preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f CMakeFiles/Makefile2 code/preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	cd /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/3DSConverter.cpp.s
+.PHONY : 3DSConverter.cpp.s
+
+3DSExporter.o: 3DSExporter.cpp.o
+
+.PHONY : 3DSExporter.o
+
+# target to build an object file
+3DSExporter.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/3DSExporter.cpp.o
+.PHONY : 3DSExporter.cpp.o
+
+3DSExporter.i: 3DSExporter.cpp.i
+
+.PHONY : 3DSExporter.i
+
+# target to preprocess a source file
+3DSExporter.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/3DSExporter.cpp.i
+.PHONY : 3DSExporter.cpp.i
+
+3DSExporter.s: 3DSExporter.cpp.s
+
+.PHONY : 3DSExporter.s
+
+# target to generate assembly for a file
+3DSExporter.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/3DSExporter.cpp.s
+.PHONY : 3DSExporter.cpp.s
+
+3DSLoader.o: 3DSLoader.cpp.o
+
+.PHONY : 3DSLoader.o
+
+# target to build an object file
+3DSLoader.cpp.o:
+	cd /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ACLoader.cpp.s
+.PHONY : ACLoader.cpp.s
+
+AMFImporter.o: AMFImporter.cpp.o
+
+.PHONY : AMFImporter.o
+
+# target to build an object file
+AMFImporter.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/AMFImporter.cpp.o
+.PHONY : AMFImporter.cpp.o
+
+AMFImporter.i: AMFImporter.cpp.i
+
+.PHONY : AMFImporter.i
+
+# target to preprocess a source file
+AMFImporter.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/AMFImporter.cpp.i
+.PHONY : AMFImporter.cpp.i
+
+AMFImporter.s: AMFImporter.cpp.s
+
+.PHONY : AMFImporter.s
+
+# target to generate assembly for a file
+AMFImporter.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/AMFImporter.cpp.s
+.PHONY : AMFImporter.cpp.s
+
+AMFImporter_Geometry.o: AMFImporter_Geometry.cpp.o
+
+.PHONY : AMFImporter_Geometry.o
+
+# target to build an object file
+AMFImporter_Geometry.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/AMFImporter_Geometry.cpp.o
+.PHONY : AMFImporter_Geometry.cpp.o
+
+AMFImporter_Geometry.i: AMFImporter_Geometry.cpp.i
+
+.PHONY : AMFImporter_Geometry.i
+
+# target to preprocess a source file
+AMFImporter_Geometry.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/AMFImporter_Geometry.cpp.i
+.PHONY : AMFImporter_Geometry.cpp.i
+
+AMFImporter_Geometry.s: AMFImporter_Geometry.cpp.s
+
+.PHONY : AMFImporter_Geometry.s
+
+# target to generate assembly for a file
+AMFImporter_Geometry.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/AMFImporter_Geometry.cpp.s
+.PHONY : AMFImporter_Geometry.cpp.s
+
+AMFImporter_Material.o: AMFImporter_Material.cpp.o
+
+.PHONY : AMFImporter_Material.o
+
+# target to build an object file
+AMFImporter_Material.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/AMFImporter_Material.cpp.o
+.PHONY : AMFImporter_Material.cpp.o
+
+AMFImporter_Material.i: AMFImporter_Material.cpp.i
+
+.PHONY : AMFImporter_Material.i
+
+# target to preprocess a source file
+AMFImporter_Material.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/AMFImporter_Material.cpp.i
+.PHONY : AMFImporter_Material.cpp.i
+
+AMFImporter_Material.s: AMFImporter_Material.cpp.s
+
+.PHONY : AMFImporter_Material.s
+
+# target to generate assembly for a file
+AMFImporter_Material.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/AMFImporter_Material.cpp.s
+.PHONY : AMFImporter_Material.cpp.s
+
+AMFImporter_Postprocess.o: AMFImporter_Postprocess.cpp.o
+
+.PHONY : AMFImporter_Postprocess.o
+
+# target to build an object file
+AMFImporter_Postprocess.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/AMFImporter_Postprocess.cpp.o
+.PHONY : AMFImporter_Postprocess.cpp.o
+
+AMFImporter_Postprocess.i: AMFImporter_Postprocess.cpp.i
+
+.PHONY : AMFImporter_Postprocess.i
+
+# target to preprocess a source file
+AMFImporter_Postprocess.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/AMFImporter_Postprocess.cpp.i
+.PHONY : AMFImporter_Postprocess.cpp.i
+
+AMFImporter_Postprocess.s: AMFImporter_Postprocess.cpp.s
+
+.PHONY : AMFImporter_Postprocess.s
+
+# target to generate assembly for a file
+AMFImporter_Postprocess.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/AMFImporter_Postprocess.cpp.s
+.PHONY : AMFImporter_Postprocess.cpp.s
+
+ASELoader.o: ASELoader.cpp.o
+
+.PHONY : ASELoader.o
+
+# target to build an object file
+ASELoader.cpp.o:
+	cd /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ASEParser.cpp.s
+.PHONY : ASEParser.cpp.s
+
+AssbinExporter.o: AssbinExporter.cpp.o
+
+.PHONY : AssbinExporter.o
+
+# target to build an object file
+AssbinExporter.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/AssbinExporter.cpp.o
+.PHONY : AssbinExporter.cpp.o
+
+AssbinExporter.i: AssbinExporter.cpp.i
+
+.PHONY : AssbinExporter.i
+
+# target to preprocess a source file
+AssbinExporter.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/AssbinExporter.cpp.i
+.PHONY : AssbinExporter.cpp.i
+
+AssbinExporter.s: AssbinExporter.cpp.s
+
+.PHONY : AssbinExporter.s
+
+# target to generate assembly for a file
+AssbinExporter.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/AssbinExporter.cpp.s
+.PHONY : AssbinExporter.cpp.s
+
+AssbinLoader.o: AssbinLoader.cpp.o
+
+.PHONY : AssbinLoader.o
+
+# target to build an object file
+AssbinLoader.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/AssbinLoader.cpp.o
+.PHONY : AssbinLoader.cpp.o
+
+AssbinLoader.i: AssbinLoader.cpp.i
+
+.PHONY : AssbinLoader.i
+
+# target to preprocess a source file
+AssbinLoader.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/AssbinLoader.cpp.i
+.PHONY : AssbinLoader.cpp.i
+
+AssbinLoader.s: AssbinLoader.cpp.s
+
+.PHONY : AssbinLoader.s
+
+# target to generate assembly for a file
+AssbinLoader.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/AssbinLoader.cpp.s
+.PHONY : AssbinLoader.cpp.s
+
+Assimp.o: Assimp.cpp.o
+
+.PHONY : Assimp.o
+
+# target to build an object file
+Assimp.cpp.o:
+	cd /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/AssimpCExport.cpp.s
+.PHONY : AssimpCExport.cpp.s
+
+AssxmlExporter.o: AssxmlExporter.cpp.o
+
+.PHONY : AssxmlExporter.o
+
+# target to build an object file
+AssxmlExporter.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/AssxmlExporter.cpp.o
+.PHONY : AssxmlExporter.cpp.o
+
+AssxmlExporter.i: AssxmlExporter.cpp.i
+
+.PHONY : AssxmlExporter.i
+
+# target to preprocess a source file
+AssxmlExporter.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/AssxmlExporter.cpp.i
+.PHONY : AssxmlExporter.cpp.i
+
+AssxmlExporter.s: AssxmlExporter.cpp.s
+
+.PHONY : AssxmlExporter.s
+
+# target to generate assembly for a file
+AssxmlExporter.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/AssxmlExporter.cpp.s
+.PHONY : AssxmlExporter.cpp.s
+
+B3DImporter.o: B3DImporter.cpp.o
+
+.PHONY : B3DImporter.o
+
+# target to build an object file
+B3DImporter.cpp.o:
+	cd /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/BaseProcess.cpp.s
+.PHONY : BaseProcess.cpp.s
+
+Bitmap.o: Bitmap.cpp.o
+
+.PHONY : Bitmap.o
+
+# target to build an object file
+Bitmap.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Bitmap.cpp.o
+.PHONY : Bitmap.cpp.o
+
+Bitmap.i: Bitmap.cpp.i
+
+.PHONY : Bitmap.i
+
+# target to preprocess a source file
+Bitmap.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Bitmap.cpp.i
+.PHONY : Bitmap.cpp.i
+
+Bitmap.s: Bitmap.cpp.s
+
+.PHONY : Bitmap.s
+
+# target to generate assembly for a file
+Bitmap.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Bitmap.cpp.s
+.PHONY : Bitmap.cpp.s
+
+BlenderBMesh.o: BlenderBMesh.cpp.o
+
+.PHONY : BlenderBMesh.o
+
+# target to build an object file
+BlenderBMesh.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/BlenderBMesh.cpp.o
+.PHONY : BlenderBMesh.cpp.o
+
+BlenderBMesh.i: BlenderBMesh.cpp.i
+
+.PHONY : BlenderBMesh.i
+
+# target to preprocess a source file
+BlenderBMesh.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/BlenderBMesh.cpp.i
+.PHONY : BlenderBMesh.cpp.i
+
+BlenderBMesh.s: BlenderBMesh.cpp.s
+
+.PHONY : BlenderBMesh.s
+
+# target to generate assembly for a file
+BlenderBMesh.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/BlenderBMesh.cpp.s
+.PHONY : BlenderBMesh.cpp.s
+
+BlenderDNA.o: BlenderDNA.cpp.o
+
+.PHONY : BlenderDNA.o
+
+# target to build an object file
+BlenderDNA.cpp.o:
+	cd /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/BlenderScene.cpp.s
+.PHONY : BlenderScene.cpp.s
+
+BlenderTessellator.o: BlenderTessellator.cpp.o
+
+.PHONY : BlenderTessellator.o
+
+# target to build an object file
+BlenderTessellator.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/BlenderTessellator.cpp.o
+.PHONY : BlenderTessellator.cpp.o
+
+BlenderTessellator.i: BlenderTessellator.cpp.i
+
+.PHONY : BlenderTessellator.i
+
+# target to preprocess a source file
+BlenderTessellator.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/BlenderTessellator.cpp.i
+.PHONY : BlenderTessellator.cpp.i
+
+BlenderTessellator.s: BlenderTessellator.cpp.s
+
+.PHONY : BlenderTessellator.s
+
+# target to generate assembly for a file
+BlenderTessellator.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/BlenderTessellator.cpp.s
+.PHONY : BlenderTessellator.cpp.s
+
+COBLoader.o: COBLoader.cpp.o
+
+.PHONY : COBLoader.o
+
+# target to build an object file
+COBLoader.cpp.o:
+	cd /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ConvertToLHProcess.cpp.s
+.PHONY : ConvertToLHProcess.cpp.s
+
+D3MFImporter.o: D3MFImporter.cpp.o
+
+.PHONY : D3MFImporter.o
+
+# target to build an object file
+D3MFImporter.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/D3MFImporter.cpp.o
+.PHONY : D3MFImporter.cpp.o
+
+D3MFImporter.i: D3MFImporter.cpp.i
+
+.PHONY : D3MFImporter.i
+
+# target to preprocess a source file
+D3MFImporter.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/D3MFImporter.cpp.i
+.PHONY : D3MFImporter.cpp.i
+
+D3MFImporter.s: D3MFImporter.cpp.s
+
+.PHONY : D3MFImporter.s
+
+# target to generate assembly for a file
+D3MFImporter.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/D3MFImporter.cpp.s
+.PHONY : D3MFImporter.cpp.s
+
+D3MFOpcPackage.o: D3MFOpcPackage.cpp.o
+
+.PHONY : D3MFOpcPackage.o
+
+# target to build an object file
+D3MFOpcPackage.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/D3MFOpcPackage.cpp.o
+.PHONY : D3MFOpcPackage.cpp.o
+
+D3MFOpcPackage.i: D3MFOpcPackage.cpp.i
+
+.PHONY : D3MFOpcPackage.i
+
+# target to preprocess a source file
+D3MFOpcPackage.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/D3MFOpcPackage.cpp.i
+.PHONY : D3MFOpcPackage.cpp.i
+
+D3MFOpcPackage.s: D3MFOpcPackage.cpp.s
+
+.PHONY : D3MFOpcPackage.s
+
+# target to generate assembly for a file
+D3MFOpcPackage.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/D3MFOpcPackage.cpp.s
+.PHONY : D3MFOpcPackage.cpp.s
+
+DXFLoader.o: DXFLoader.cpp.o
+
+.PHONY : DXFLoader.o
+
+# target to build an object file
+DXFLoader.cpp.o:
+	cd /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Exporter.cpp.s
+.PHONY : Exporter.cpp.s
+
+FBXAnimation.o: FBXAnimation.cpp.o
+
+.PHONY : FBXAnimation.o
+
+# target to build an object file
+FBXAnimation.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXAnimation.cpp.o
+.PHONY : FBXAnimation.cpp.o
+
+FBXAnimation.i: FBXAnimation.cpp.i
+
+.PHONY : FBXAnimation.i
+
+# target to preprocess a source file
+FBXAnimation.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXAnimation.cpp.i
+.PHONY : FBXAnimation.cpp.i
+
+FBXAnimation.s: FBXAnimation.cpp.s
+
+.PHONY : FBXAnimation.s
+
+# target to generate assembly for a file
+FBXAnimation.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXAnimation.cpp.s
+.PHONY : FBXAnimation.cpp.s
+
+FBXBinaryTokenizer.o: FBXBinaryTokenizer.cpp.o
+
+.PHONY : FBXBinaryTokenizer.o
+
+# target to build an object file
+FBXBinaryTokenizer.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXBinaryTokenizer.cpp.o
+.PHONY : FBXBinaryTokenizer.cpp.o
+
+FBXBinaryTokenizer.i: FBXBinaryTokenizer.cpp.i
+
+.PHONY : FBXBinaryTokenizer.i
+
+# target to preprocess a source file
+FBXBinaryTokenizer.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXBinaryTokenizer.cpp.i
+.PHONY : FBXBinaryTokenizer.cpp.i
+
+FBXBinaryTokenizer.s: FBXBinaryTokenizer.cpp.s
+
+.PHONY : FBXBinaryTokenizer.s
+
+# target to generate assembly for a file
+FBXBinaryTokenizer.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXBinaryTokenizer.cpp.s
+.PHONY : FBXBinaryTokenizer.cpp.s
+
+FBXConverter.o: FBXConverter.cpp.o
+
+.PHONY : FBXConverter.o
+
+# target to build an object file
+FBXConverter.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXConverter.cpp.o
+.PHONY : FBXConverter.cpp.o
+
+FBXConverter.i: FBXConverter.cpp.i
+
+.PHONY : FBXConverter.i
+
+# target to preprocess a source file
+FBXConverter.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXConverter.cpp.i
+.PHONY : FBXConverter.cpp.i
+
+FBXConverter.s: FBXConverter.cpp.s
+
+.PHONY : FBXConverter.s
+
+# target to generate assembly for a file
+FBXConverter.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXConverter.cpp.s
+.PHONY : FBXConverter.cpp.s
+
+FBXDeformer.o: FBXDeformer.cpp.o
+
+.PHONY : FBXDeformer.o
+
+# target to build an object file
+FBXDeformer.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXDeformer.cpp.o
+.PHONY : FBXDeformer.cpp.o
+
+FBXDeformer.i: FBXDeformer.cpp.i
+
+.PHONY : FBXDeformer.i
+
+# target to preprocess a source file
+FBXDeformer.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXDeformer.cpp.i
+.PHONY : FBXDeformer.cpp.i
+
+FBXDeformer.s: FBXDeformer.cpp.s
+
+.PHONY : FBXDeformer.s
+
+# target to generate assembly for a file
+FBXDeformer.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXDeformer.cpp.s
+.PHONY : FBXDeformer.cpp.s
+
+FBXDocument.o: FBXDocument.cpp.o
+
+.PHONY : FBXDocument.o
+
+# target to build an object file
+FBXDocument.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXDocument.cpp.o
+.PHONY : FBXDocument.cpp.o
+
+FBXDocument.i: FBXDocument.cpp.i
+
+.PHONY : FBXDocument.i
+
+# target to preprocess a source file
+FBXDocument.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXDocument.cpp.i
+.PHONY : FBXDocument.cpp.i
+
+FBXDocument.s: FBXDocument.cpp.s
+
+.PHONY : FBXDocument.s
+
+# target to generate assembly for a file
+FBXDocument.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXDocument.cpp.s
+.PHONY : FBXDocument.cpp.s
+
+FBXDocumentUtil.o: FBXDocumentUtil.cpp.o
+
+.PHONY : FBXDocumentUtil.o
+
+# target to build an object file
+FBXDocumentUtil.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXDocumentUtil.cpp.o
+.PHONY : FBXDocumentUtil.cpp.o
+
+FBXDocumentUtil.i: FBXDocumentUtil.cpp.i
+
+.PHONY : FBXDocumentUtil.i
+
+# target to preprocess a source file
+FBXDocumentUtil.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXDocumentUtil.cpp.i
+.PHONY : FBXDocumentUtil.cpp.i
+
+FBXDocumentUtil.s: FBXDocumentUtil.cpp.s
+
+.PHONY : FBXDocumentUtil.s
+
+# target to generate assembly for a file
+FBXDocumentUtil.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXDocumentUtil.cpp.s
+.PHONY : FBXDocumentUtil.cpp.s
+
+FBXImporter.o: FBXImporter.cpp.o
+
+.PHONY : FBXImporter.o
+
+# target to build an object file
+FBXImporter.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXImporter.cpp.o
+.PHONY : FBXImporter.cpp.o
+
+FBXImporter.i: FBXImporter.cpp.i
+
+.PHONY : FBXImporter.i
+
+# target to preprocess a source file
+FBXImporter.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXImporter.cpp.i
+.PHONY : FBXImporter.cpp.i
+
+FBXImporter.s: FBXImporter.cpp.s
+
+.PHONY : FBXImporter.s
+
+# target to generate assembly for a file
+FBXImporter.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXImporter.cpp.s
+.PHONY : FBXImporter.cpp.s
+
+FBXMaterial.o: FBXMaterial.cpp.o
+
+.PHONY : FBXMaterial.o
+
+# target to build an object file
+FBXMaterial.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXMaterial.cpp.o
+.PHONY : FBXMaterial.cpp.o
+
+FBXMaterial.i: FBXMaterial.cpp.i
+
+.PHONY : FBXMaterial.i
+
+# target to preprocess a source file
+FBXMaterial.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXMaterial.cpp.i
+.PHONY : FBXMaterial.cpp.i
+
+FBXMaterial.s: FBXMaterial.cpp.s
+
+.PHONY : FBXMaterial.s
+
+# target to generate assembly for a file
+FBXMaterial.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXMaterial.cpp.s
+.PHONY : FBXMaterial.cpp.s
+
+FBXMeshGeometry.o: FBXMeshGeometry.cpp.o
+
+.PHONY : FBXMeshGeometry.o
+
+# target to build an object file
+FBXMeshGeometry.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXMeshGeometry.cpp.o
+.PHONY : FBXMeshGeometry.cpp.o
+
+FBXMeshGeometry.i: FBXMeshGeometry.cpp.i
+
+.PHONY : FBXMeshGeometry.i
+
+# target to preprocess a source file
+FBXMeshGeometry.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXMeshGeometry.cpp.i
+.PHONY : FBXMeshGeometry.cpp.i
+
+FBXMeshGeometry.s: FBXMeshGeometry.cpp.s
+
+.PHONY : FBXMeshGeometry.s
+
+# target to generate assembly for a file
+FBXMeshGeometry.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXMeshGeometry.cpp.s
+.PHONY : FBXMeshGeometry.cpp.s
+
+FBXModel.o: FBXModel.cpp.o
+
+.PHONY : FBXModel.o
+
+# target to build an object file
+FBXModel.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXModel.cpp.o
+.PHONY : FBXModel.cpp.o
+
+FBXModel.i: FBXModel.cpp.i
+
+.PHONY : FBXModel.i
+
+# target to preprocess a source file
+FBXModel.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXModel.cpp.i
+.PHONY : FBXModel.cpp.i
+
+FBXModel.s: FBXModel.cpp.s
+
+.PHONY : FBXModel.s
+
+# target to generate assembly for a file
+FBXModel.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXModel.cpp.s
+.PHONY : FBXModel.cpp.s
+
+FBXNodeAttribute.o: FBXNodeAttribute.cpp.o
+
+.PHONY : FBXNodeAttribute.o
+
+# target to build an object file
+FBXNodeAttribute.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXNodeAttribute.cpp.o
+.PHONY : FBXNodeAttribute.cpp.o
+
+FBXNodeAttribute.i: FBXNodeAttribute.cpp.i
+
+.PHONY : FBXNodeAttribute.i
+
+# target to preprocess a source file
+FBXNodeAttribute.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXNodeAttribute.cpp.i
+.PHONY : FBXNodeAttribute.cpp.i
+
+FBXNodeAttribute.s: FBXNodeAttribute.cpp.s
+
+.PHONY : FBXNodeAttribute.s
+
+# target to generate assembly for a file
+FBXNodeAttribute.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXNodeAttribute.cpp.s
+.PHONY : FBXNodeAttribute.cpp.s
+
+FBXParser.o: FBXParser.cpp.o
+
+.PHONY : FBXParser.o
+
+# target to build an object file
+FBXParser.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXParser.cpp.o
+.PHONY : FBXParser.cpp.o
+
+FBXParser.i: FBXParser.cpp.i
+
+.PHONY : FBXParser.i
+
+# target to preprocess a source file
+FBXParser.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXParser.cpp.i
+.PHONY : FBXParser.cpp.i
+
+FBXParser.s: FBXParser.cpp.s
+
+.PHONY : FBXParser.s
+
+# target to generate assembly for a file
+FBXParser.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXParser.cpp.s
+.PHONY : FBXParser.cpp.s
+
+FBXProperties.o: FBXProperties.cpp.o
+
+.PHONY : FBXProperties.o
+
+# target to build an object file
+FBXProperties.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXProperties.cpp.o
+.PHONY : FBXProperties.cpp.o
+
+FBXProperties.i: FBXProperties.cpp.i
+
+.PHONY : FBXProperties.i
+
+# target to preprocess a source file
+FBXProperties.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXProperties.cpp.i
+.PHONY : FBXProperties.cpp.i
+
+FBXProperties.s: FBXProperties.cpp.s
+
+.PHONY : FBXProperties.s
+
+# target to generate assembly for a file
+FBXProperties.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXProperties.cpp.s
+.PHONY : FBXProperties.cpp.s
+
+FBXTokenizer.o: FBXTokenizer.cpp.o
+
+.PHONY : FBXTokenizer.o
+
+# target to build an object file
+FBXTokenizer.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXTokenizer.cpp.o
+.PHONY : FBXTokenizer.cpp.o
+
+FBXTokenizer.i: FBXTokenizer.cpp.i
+
+.PHONY : FBXTokenizer.i
+
+# target to preprocess a source file
+FBXTokenizer.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXTokenizer.cpp.i
+.PHONY : FBXTokenizer.cpp.i
+
+FBXTokenizer.s: FBXTokenizer.cpp.s
+
+.PHONY : FBXTokenizer.s
+
+# target to generate assembly for a file
+FBXTokenizer.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXTokenizer.cpp.s
+.PHONY : FBXTokenizer.cpp.s
+
+FBXUtil.o: FBXUtil.cpp.o
+
+.PHONY : FBXUtil.o
+
+# target to build an object file
+FBXUtil.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXUtil.cpp.o
+.PHONY : FBXUtil.cpp.o
+
+FBXUtil.i: FBXUtil.cpp.i
+
+.PHONY : FBXUtil.i
+
+# target to preprocess a source file
+FBXUtil.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXUtil.cpp.i
+.PHONY : FBXUtil.cpp.i
+
+FBXUtil.s: FBXUtil.cpp.s
+
+.PHONY : FBXUtil.s
+
+# target to generate assembly for a file
+FBXUtil.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/FBXUtil.cpp.s
+.PHONY : FBXUtil.cpp.s
+
+FindDegenerates.o: FindDegenerates.cpp.o
+
+.PHONY : FindDegenerates.o
+
+# target to build an object file
+FindDegenerates.cpp.o:
+	cd /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/HMPLoader.cpp.s
+.PHONY : HMPLoader.cpp.s
+
+IFCBoolean.o: IFCBoolean.cpp.o
+
+.PHONY : IFCBoolean.o
+
+# target to build an object file
+IFCBoolean.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCBoolean.cpp.o
+.PHONY : IFCBoolean.cpp.o
+
+IFCBoolean.i: IFCBoolean.cpp.i
+
+.PHONY : IFCBoolean.i
+
+# target to preprocess a source file
+IFCBoolean.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCBoolean.cpp.i
+.PHONY : IFCBoolean.cpp.i
+
+IFCBoolean.s: IFCBoolean.cpp.s
+
+.PHONY : IFCBoolean.s
+
+# target to generate assembly for a file
+IFCBoolean.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCBoolean.cpp.s
+.PHONY : IFCBoolean.cpp.s
+
+IFCCurve.o: IFCCurve.cpp.o
+
+.PHONY : IFCCurve.o
+
+# target to build an object file
+IFCCurve.cpp.o:
+	cd /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCMaterial.cpp.s
+.PHONY : IFCMaterial.cpp.s
+
+IFCOpenings.o: IFCOpenings.cpp.o
+
+.PHONY : IFCOpenings.o
+
+# target to build an object file
+IFCOpenings.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCOpenings.cpp.o
+.PHONY : IFCOpenings.cpp.o
+
+IFCOpenings.i: IFCOpenings.cpp.i
+
+.PHONY : IFCOpenings.i
+
+# target to preprocess a source file
+IFCOpenings.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCOpenings.cpp.i
+.PHONY : IFCOpenings.cpp.i
+
+IFCOpenings.s: IFCOpenings.cpp.s
+
+.PHONY : IFCOpenings.s
+
+# target to generate assembly for a file
+IFCOpenings.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCOpenings.cpp.s
+.PHONY : IFCOpenings.cpp.s
+
+IFCProfile.o: IFCProfile.cpp.o
+
+.PHONY : IFCProfile.o
+
+# target to build an object file
+IFCProfile.cpp.o:
+	cd /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCProfile.cpp.s
+.PHONY : IFCProfile.cpp.s
+
+IFCReaderGen1.o: IFCReaderGen1.cpp.o
+
+.PHONY : IFCReaderGen1.o
+
+# target to build an object file
+IFCReaderGen1.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCReaderGen1.cpp.o
+.PHONY : IFCReaderGen1.cpp.o
+
+IFCReaderGen1.i: IFCReaderGen1.cpp.i
+
+.PHONY : IFCReaderGen1.i
+
+# target to preprocess a source file
+IFCReaderGen1.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCReaderGen1.cpp.i
+.PHONY : IFCReaderGen1.cpp.i
+
+IFCReaderGen1.s: IFCReaderGen1.cpp.s
+
+.PHONY : IFCReaderGen1.s
+
+# target to generate assembly for a file
+IFCReaderGen1.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCReaderGen1.cpp.s
+.PHONY : IFCReaderGen1.cpp.s
+
+IFCReaderGen2.o: IFCReaderGen2.cpp.o
+
+.PHONY : IFCReaderGen2.o
+
+# target to build an object file
+IFCReaderGen2.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCReaderGen2.cpp.o
+.PHONY : IFCReaderGen2.cpp.o
+
+IFCReaderGen2.i: IFCReaderGen2.cpp.i
+
+.PHONY : IFCReaderGen2.i
+
+# target to preprocess a source file
+IFCReaderGen2.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCReaderGen2.cpp.i
+.PHONY : IFCReaderGen2.cpp.i
+
+IFCReaderGen2.s: IFCReaderGen2.cpp.s
+
+.PHONY : IFCReaderGen2.s
+
+# target to generate assembly for a file
+IFCReaderGen2.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/IFCReaderGen2.cpp.s
+.PHONY : IFCReaderGen2.cpp.s
+
+IFCUtil.o: IFCUtil.cpp.o
+
+.PHONY : IFCUtil.o
+
+# target to build an object file
+IFCUtil.cpp.o:
+	cd /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/LimitBoneWeightsProcess.cpp.s
+.PHONY : LimitBoneWeightsProcess.cpp.s
+
+MD2Loader.o: MD2Loader.cpp.o
+
+.PHONY : MD2Loader.o
+
+# target to build an object file
+MD2Loader.cpp.o:
+	cd /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ObjFileParser.cpp.s
+.PHONY : ObjFileParser.cpp.s
+
+OgreBinarySerializer.o: OgreBinarySerializer.cpp.o
+
+.PHONY : OgreBinarySerializer.o
+
+# target to build an object file
+OgreBinarySerializer.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OgreBinarySerializer.cpp.o
+.PHONY : OgreBinarySerializer.cpp.o
+
+OgreBinarySerializer.i: OgreBinarySerializer.cpp.i
+
+.PHONY : OgreBinarySerializer.i
+
+# target to preprocess a source file
+OgreBinarySerializer.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OgreBinarySerializer.cpp.i
+.PHONY : OgreBinarySerializer.cpp.i
+
+OgreBinarySerializer.s: OgreBinarySerializer.cpp.s
+
+.PHONY : OgreBinarySerializer.s
+
+# target to generate assembly for a file
+OgreBinarySerializer.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OgreBinarySerializer.cpp.s
+.PHONY : OgreBinarySerializer.cpp.s
+
+OgreImporter.o: OgreImporter.cpp.o
+
+.PHONY : OgreImporter.o
+
+# target to build an object file
+OgreImporter.cpp.o:
+	cd /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OgreImporter.cpp.s
+.PHONY : OgreImporter.cpp.s
+
+OgreMaterial.o: OgreMaterial.cpp.o
+
+.PHONY : OgreMaterial.o
+
+# target to build an object file
+OgreMaterial.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OgreMaterial.cpp.o
+.PHONY : OgreMaterial.cpp.o
+
+OgreMaterial.i: OgreMaterial.cpp.i
+
+.PHONY : OgreMaterial.i
+
+# target to preprocess a source file
+OgreMaterial.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OgreMaterial.cpp.i
+.PHONY : OgreMaterial.cpp.i
+
+OgreMaterial.s: OgreMaterial.cpp.s
+
+.PHONY : OgreMaterial.s
+
+# target to generate assembly for a file
+OgreMaterial.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OgreMaterial.cpp.s
+.PHONY : OgreMaterial.cpp.s
+
+OgreStructs.o: OgreStructs.cpp.o
+
+.PHONY : OgreStructs.o
+
+# target to build an object file
+OgreStructs.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OgreStructs.cpp.o
+.PHONY : OgreStructs.cpp.o
+
+OgreStructs.i: OgreStructs.cpp.i
+
+.PHONY : OgreStructs.i
+
+# target to preprocess a source file
+OgreStructs.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OgreStructs.cpp.i
+.PHONY : OgreStructs.cpp.i
+
+OgreStructs.s: OgreStructs.cpp.s
+
+.PHONY : OgreStructs.s
+
+# target to generate assembly for a file
+OgreStructs.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OgreStructs.cpp.s
+.PHONY : OgreStructs.cpp.s
+
+OgreXmlSerializer.o: OgreXmlSerializer.cpp.o
+
+.PHONY : OgreXmlSerializer.o
+
+# target to build an object file
+OgreXmlSerializer.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OgreXmlSerializer.cpp.o
+.PHONY : OgreXmlSerializer.cpp.o
+
+OgreXmlSerializer.i: OgreXmlSerializer.cpp.i
+
+.PHONY : OgreXmlSerializer.i
+
+# target to preprocess a source file
+OgreXmlSerializer.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OgreXmlSerializer.cpp.i
+.PHONY : OgreXmlSerializer.cpp.i
+
+OgreXmlSerializer.s: OgreXmlSerializer.cpp.s
+
+.PHONY : OgreXmlSerializer.s
+
+# target to generate assembly for a file
+OgreXmlSerializer.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OgreXmlSerializer.cpp.s
+.PHONY : OgreXmlSerializer.cpp.s
+
+OpenGEXExporter.o: OpenGEXExporter.cpp.o
+
+.PHONY : OpenGEXExporter.o
+
+# target to build an object file
+OpenGEXExporter.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OpenGEXExporter.cpp.o
+.PHONY : OpenGEXExporter.cpp.o
+
+OpenGEXExporter.i: OpenGEXExporter.cpp.i
+
+.PHONY : OpenGEXExporter.i
+
+# target to preprocess a source file
+OpenGEXExporter.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OpenGEXExporter.cpp.i
+.PHONY : OpenGEXExporter.cpp.i
+
+OpenGEXExporter.s: OpenGEXExporter.cpp.s
+
+.PHONY : OpenGEXExporter.s
+
+# target to generate assembly for a file
+OpenGEXExporter.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OpenGEXExporter.cpp.s
+.PHONY : OpenGEXExporter.cpp.s
+
+OpenGEXImporter.o: OpenGEXImporter.cpp.o
+
+.PHONY : OpenGEXImporter.o
+
+# target to build an object file
+OpenGEXImporter.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OpenGEXImporter.cpp.o
+.PHONY : OpenGEXImporter.cpp.o
+
+OpenGEXImporter.i: OpenGEXImporter.cpp.i
+
+.PHONY : OpenGEXImporter.i
+
+# target to preprocess a source file
+OpenGEXImporter.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OpenGEXImporter.cpp.i
+.PHONY : OpenGEXImporter.cpp.i
+
+OpenGEXImporter.s: OpenGEXImporter.cpp.s
+
+.PHONY : OpenGEXImporter.s
+
+# target to generate assembly for a file
+OpenGEXImporter.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OpenGEXImporter.cpp.s
+.PHONY : OpenGEXImporter.cpp.s
+
+OptimizeGraph.o: OptimizeGraph.cpp.o
+
+.PHONY : OptimizeGraph.o
+
+# target to build an object file
+OptimizeGraph.cpp.o:
+	cd /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/OptimizeMeshes.cpp.s
+.PHONY : OptimizeMeshes.cpp.s
+
+PlyExporter.o: PlyExporter.cpp.o
+
+.PHONY : PlyExporter.o
+
+# target to build an object file
+PlyExporter.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/PlyExporter.cpp.o
+.PHONY : PlyExporter.cpp.o
+
+PlyExporter.i: PlyExporter.cpp.i
+
+.PHONY : PlyExporter.i
+
+# target to preprocess a source file
+PlyExporter.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/PlyExporter.cpp.i
+.PHONY : PlyExporter.cpp.i
+
+PlyExporter.s: PlyExporter.cpp.s
+
+.PHONY : PlyExporter.s
+
+# target to generate assembly for a file
+PlyExporter.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/PlyExporter.cpp.s
+.PHONY : PlyExporter.cpp.s
+
+PlyLoader.o: PlyLoader.cpp.o
+
+.PHONY : PlyLoader.o
+
+# target to build an object file
+PlyLoader.cpp.o:
+	cd /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/SGSpatialSort.cpp.s
+.PHONY : SGSpatialSort.cpp.s
+
+SIBImporter.o: SIBImporter.cpp.o
+
+.PHONY : SIBImporter.o
+
+# target to build an object file
+SIBImporter.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/SIBImporter.cpp.o
+.PHONY : SIBImporter.cpp.o
+
+SIBImporter.i: SIBImporter.cpp.i
+
+.PHONY : SIBImporter.i
+
+# target to preprocess a source file
+SIBImporter.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/SIBImporter.cpp.i
+.PHONY : SIBImporter.cpp.i
+
+SIBImporter.s: SIBImporter.cpp.s
+
+.PHONY : SIBImporter.s
+
+# target to generate assembly for a file
+SIBImporter.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/SIBImporter.cpp.s
+.PHONY : SIBImporter.cpp.s
+
+SMDLoader.o: SMDLoader.cpp.o
+
+.PHONY : SMDLoader.o
+
+# target to build an object file
+SMDLoader.cpp.o:
+	cd /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/SMDLoader.cpp.s
+.PHONY : SMDLoader.cpp.s
+
+STEPFileEncoding.o: STEPFileEncoding.cpp.o
+
+.PHONY : STEPFileEncoding.o
+
+# target to build an object file
+STEPFileEncoding.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/STEPFileEncoding.cpp.o
+.PHONY : STEPFileEncoding.cpp.o
+
+STEPFileEncoding.i: STEPFileEncoding.cpp.i
+
+.PHONY : STEPFileEncoding.i
+
+# target to preprocess a source file
+STEPFileEncoding.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/STEPFileEncoding.cpp.i
+.PHONY : STEPFileEncoding.cpp.i
+
+STEPFileEncoding.s: STEPFileEncoding.cpp.s
+
+.PHONY : STEPFileEncoding.s
+
+# target to generate assembly for a file
+STEPFileEncoding.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/STEPFileEncoding.cpp.s
+.PHONY : STEPFileEncoding.cpp.s
+
+STEPFileReader.o: STEPFileReader.cpp.o
+
+.PHONY : STEPFileReader.o
+
+# target to build an object file
+STEPFileReader.cpp.o:
+	cd /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/STEPFileReader.cpp.s
+.PHONY : STEPFileReader.cpp.s
+
+STLExporter.o: STLExporter.cpp.o
+
+.PHONY : STLExporter.o
+
+# target to build an object file
+STLExporter.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/STLExporter.cpp.o
+.PHONY : STLExporter.cpp.o
+
+STLExporter.i: STLExporter.cpp.i
+
+.PHONY : STLExporter.i
+
+# target to preprocess a source file
+STLExporter.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/STLExporter.cpp.i
+.PHONY : STLExporter.cpp.i
+
+STLExporter.s: STLExporter.cpp.s
+
+.PHONY : STLExporter.s
+
+# target to generate assembly for a file
+STLExporter.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/STLExporter.cpp.s
+.PHONY : STLExporter.cpp.s
+
+STLLoader.o: STLLoader.cpp.o
+
+.PHONY : STLLoader.o
+
+# target to build an object file
+STLLoader.cpp.o:
+	cd /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/StandardShapes.cpp.s
+.PHONY : StandardShapes.cpp.s
+
+StepExporter.o: StepExporter.cpp.o
+
+.PHONY : StepExporter.o
+
+# target to build an object file
+StepExporter.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/StepExporter.cpp.o
+.PHONY : StepExporter.cpp.o
+
+StepExporter.i: StepExporter.cpp.i
+
+.PHONY : StepExporter.i
+
+# target to preprocess a source file
+StepExporter.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/StepExporter.cpp.i
+.PHONY : StepExporter.cpp.i
+
+StepExporter.s: StepExporter.cpp.s
+
+.PHONY : StepExporter.s
+
+# target to generate assembly for a file
+StepExporter.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/StepExporter.cpp.s
+.PHONY : StepExporter.cpp.s
+
+Subdivision.o: Subdivision.cpp.o
+
+.PHONY : Subdivision.o
+
+# target to build an object file
+Subdivision.cpp.o:
+	cd /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/ValidateDataStructure.cpp.s
+.PHONY : ValidateDataStructure.cpp.s
+
+Version.o: Version.cpp.o
+
+.PHONY : Version.o
+
+# target to build an object file
+Version.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Version.cpp.o
+.PHONY : Version.cpp.o
+
+Version.i: Version.cpp.i
+
+.PHONY : Version.i
+
+# target to preprocess a source file
+Version.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Version.cpp.i
+.PHONY : Version.cpp.i
+
+Version.s: Version.cpp.s
+
+.PHONY : Version.s
+
+# target to generate assembly for a file
+Version.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/Version.cpp.s
+.PHONY : Version.cpp.s
+
+VertexTriangleAdjacency.o: VertexTriangleAdjacency.cpp.o
+
+.PHONY : VertexTriangleAdjacency.o
+
+# target to build an object file
+VertexTriangleAdjacency.cpp.o:
+	cd /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/VertexTriangleAdjacency.cpp.s
+.PHONY : VertexTriangleAdjacency.cpp.s
+
+X3DImporter.o: X3DImporter.cpp.o
+
+.PHONY : X3DImporter.o
+
+# target to build an object file
+X3DImporter.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter.cpp.o
+.PHONY : X3DImporter.cpp.o
+
+X3DImporter.i: X3DImporter.cpp.i
+
+.PHONY : X3DImporter.i
+
+# target to preprocess a source file
+X3DImporter.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter.cpp.i
+.PHONY : X3DImporter.cpp.i
+
+X3DImporter.s: X3DImporter.cpp.s
+
+.PHONY : X3DImporter.s
+
+# target to generate assembly for a file
+X3DImporter.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter.cpp.s
+.PHONY : X3DImporter.cpp.s
+
+X3DImporter_Geometry2D.o: X3DImporter_Geometry2D.cpp.o
+
+.PHONY : X3DImporter_Geometry2D.o
+
+# target to build an object file
+X3DImporter_Geometry2D.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter_Geometry2D.cpp.o
+.PHONY : X3DImporter_Geometry2D.cpp.o
+
+X3DImporter_Geometry2D.i: X3DImporter_Geometry2D.cpp.i
+
+.PHONY : X3DImporter_Geometry2D.i
+
+# target to preprocess a source file
+X3DImporter_Geometry2D.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter_Geometry2D.cpp.i
+.PHONY : X3DImporter_Geometry2D.cpp.i
+
+X3DImporter_Geometry2D.s: X3DImporter_Geometry2D.cpp.s
+
+.PHONY : X3DImporter_Geometry2D.s
+
+# target to generate assembly for a file
+X3DImporter_Geometry2D.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter_Geometry2D.cpp.s
+.PHONY : X3DImporter_Geometry2D.cpp.s
+
+X3DImporter_Geometry3D.o: X3DImporter_Geometry3D.cpp.o
+
+.PHONY : X3DImporter_Geometry3D.o
+
+# target to build an object file
+X3DImporter_Geometry3D.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter_Geometry3D.cpp.o
+.PHONY : X3DImporter_Geometry3D.cpp.o
+
+X3DImporter_Geometry3D.i: X3DImporter_Geometry3D.cpp.i
+
+.PHONY : X3DImporter_Geometry3D.i
+
+# target to preprocess a source file
+X3DImporter_Geometry3D.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter_Geometry3D.cpp.i
+.PHONY : X3DImporter_Geometry3D.cpp.i
+
+X3DImporter_Geometry3D.s: X3DImporter_Geometry3D.cpp.s
+
+.PHONY : X3DImporter_Geometry3D.s
+
+# target to generate assembly for a file
+X3DImporter_Geometry3D.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter_Geometry3D.cpp.s
+.PHONY : X3DImporter_Geometry3D.cpp.s
+
+X3DImporter_Group.o: X3DImporter_Group.cpp.o
+
+.PHONY : X3DImporter_Group.o
+
+# target to build an object file
+X3DImporter_Group.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter_Group.cpp.o
+.PHONY : X3DImporter_Group.cpp.o
+
+X3DImporter_Group.i: X3DImporter_Group.cpp.i
+
+.PHONY : X3DImporter_Group.i
+
+# target to preprocess a source file
+X3DImporter_Group.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter_Group.cpp.i
+.PHONY : X3DImporter_Group.cpp.i
+
+X3DImporter_Group.s: X3DImporter_Group.cpp.s
+
+.PHONY : X3DImporter_Group.s
+
+# target to generate assembly for a file
+X3DImporter_Group.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter_Group.cpp.s
+.PHONY : X3DImporter_Group.cpp.s
+
+X3DImporter_Light.o: X3DImporter_Light.cpp.o
+
+.PHONY : X3DImporter_Light.o
+
+# target to build an object file
+X3DImporter_Light.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter_Light.cpp.o
+.PHONY : X3DImporter_Light.cpp.o
+
+X3DImporter_Light.i: X3DImporter_Light.cpp.i
+
+.PHONY : X3DImporter_Light.i
+
+# target to preprocess a source file
+X3DImporter_Light.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter_Light.cpp.i
+.PHONY : X3DImporter_Light.cpp.i
+
+X3DImporter_Light.s: X3DImporter_Light.cpp.s
+
+.PHONY : X3DImporter_Light.s
+
+# target to generate assembly for a file
+X3DImporter_Light.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter_Light.cpp.s
+.PHONY : X3DImporter_Light.cpp.s
+
+X3DImporter_Metadata.o: X3DImporter_Metadata.cpp.o
+
+.PHONY : X3DImporter_Metadata.o
+
+# target to build an object file
+X3DImporter_Metadata.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter_Metadata.cpp.o
+.PHONY : X3DImporter_Metadata.cpp.o
+
+X3DImporter_Metadata.i: X3DImporter_Metadata.cpp.i
+
+.PHONY : X3DImporter_Metadata.i
+
+# target to preprocess a source file
+X3DImporter_Metadata.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter_Metadata.cpp.i
+.PHONY : X3DImporter_Metadata.cpp.i
+
+X3DImporter_Metadata.s: X3DImporter_Metadata.cpp.s
+
+.PHONY : X3DImporter_Metadata.s
+
+# target to generate assembly for a file
+X3DImporter_Metadata.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter_Metadata.cpp.s
+.PHONY : X3DImporter_Metadata.cpp.s
+
+X3DImporter_Networking.o: X3DImporter_Networking.cpp.o
+
+.PHONY : X3DImporter_Networking.o
+
+# target to build an object file
+X3DImporter_Networking.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter_Networking.cpp.o
+.PHONY : X3DImporter_Networking.cpp.o
+
+X3DImporter_Networking.i: X3DImporter_Networking.cpp.i
+
+.PHONY : X3DImporter_Networking.i
+
+# target to preprocess a source file
+X3DImporter_Networking.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter_Networking.cpp.i
+.PHONY : X3DImporter_Networking.cpp.i
+
+X3DImporter_Networking.s: X3DImporter_Networking.cpp.s
+
+.PHONY : X3DImporter_Networking.s
+
+# target to generate assembly for a file
+X3DImporter_Networking.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter_Networking.cpp.s
+.PHONY : X3DImporter_Networking.cpp.s
+
+X3DImporter_Postprocess.o: X3DImporter_Postprocess.cpp.o
+
+.PHONY : X3DImporter_Postprocess.o
+
+# target to build an object file
+X3DImporter_Postprocess.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter_Postprocess.cpp.o
+.PHONY : X3DImporter_Postprocess.cpp.o
+
+X3DImporter_Postprocess.i: X3DImporter_Postprocess.cpp.i
+
+.PHONY : X3DImporter_Postprocess.i
+
+# target to preprocess a source file
+X3DImporter_Postprocess.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter_Postprocess.cpp.i
+.PHONY : X3DImporter_Postprocess.cpp.i
+
+X3DImporter_Postprocess.s: X3DImporter_Postprocess.cpp.s
+
+.PHONY : X3DImporter_Postprocess.s
+
+# target to generate assembly for a file
+X3DImporter_Postprocess.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter_Postprocess.cpp.s
+.PHONY : X3DImporter_Postprocess.cpp.s
+
+X3DImporter_Rendering.o: X3DImporter_Rendering.cpp.o
+
+.PHONY : X3DImporter_Rendering.o
+
+# target to build an object file
+X3DImporter_Rendering.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter_Rendering.cpp.o
+.PHONY : X3DImporter_Rendering.cpp.o
+
+X3DImporter_Rendering.i: X3DImporter_Rendering.cpp.i
+
+.PHONY : X3DImporter_Rendering.i
+
+# target to preprocess a source file
+X3DImporter_Rendering.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter_Rendering.cpp.i
+.PHONY : X3DImporter_Rendering.cpp.i
+
+X3DImporter_Rendering.s: X3DImporter_Rendering.cpp.s
+
+.PHONY : X3DImporter_Rendering.s
+
+# target to generate assembly for a file
+X3DImporter_Rendering.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter_Rendering.cpp.s
+.PHONY : X3DImporter_Rendering.cpp.s
+
+X3DImporter_Shape.o: X3DImporter_Shape.cpp.o
+
+.PHONY : X3DImporter_Shape.o
+
+# target to build an object file
+X3DImporter_Shape.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter_Shape.cpp.o
+.PHONY : X3DImporter_Shape.cpp.o
+
+X3DImporter_Shape.i: X3DImporter_Shape.cpp.i
+
+.PHONY : X3DImporter_Shape.i
+
+# target to preprocess a source file
+X3DImporter_Shape.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter_Shape.cpp.i
+.PHONY : X3DImporter_Shape.cpp.i
+
+X3DImporter_Shape.s: X3DImporter_Shape.cpp.s
+
+.PHONY : X3DImporter_Shape.s
+
+# target to generate assembly for a file
+X3DImporter_Shape.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter_Shape.cpp.s
+.PHONY : X3DImporter_Shape.cpp.s
+
+X3DImporter_Texturing.o: X3DImporter_Texturing.cpp.o
+
+.PHONY : X3DImporter_Texturing.o
+
+# target to build an object file
+X3DImporter_Texturing.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter_Texturing.cpp.o
+.PHONY : X3DImporter_Texturing.cpp.o
+
+X3DImporter_Texturing.i: X3DImporter_Texturing.cpp.i
+
+.PHONY : X3DImporter_Texturing.i
+
+# target to preprocess a source file
+X3DImporter_Texturing.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter_Texturing.cpp.i
+.PHONY : X3DImporter_Texturing.cpp.i
+
+X3DImporter_Texturing.s: X3DImporter_Texturing.cpp.s
+
+.PHONY : X3DImporter_Texturing.s
+
+# target to generate assembly for a file
+X3DImporter_Texturing.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/X3DImporter_Texturing.cpp.s
+.PHONY : X3DImporter_Texturing.cpp.s
+
+XFileExporter.o: XFileExporter.cpp.o
+
+.PHONY : XFileExporter.o
+
+# target to build an object file
+XFileExporter.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/XFileExporter.cpp.o
+.PHONY : XFileExporter.cpp.o
+
+XFileExporter.i: XFileExporter.cpp.i
+
+.PHONY : XFileExporter.i
+
+# target to preprocess a source file
+XFileExporter.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/XFileExporter.cpp.i
+.PHONY : XFileExporter.cpp.i
+
+XFileExporter.s: XFileExporter.cpp.s
+
+.PHONY : XFileExporter.s
+
+# target to generate assembly for a file
+XFileExporter.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/XFileExporter.cpp.s
+.PHONY : XFileExporter.cpp.s
+
+XFileImporter.o: XFileImporter.cpp.o
+
+.PHONY : XFileImporter.o
+
+# target to build an object file
+XFileImporter.cpp.o:
+	cd /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/XFileParser.cpp.s
+.PHONY : XFileParser.cpp.s
+
+XGLLoader.o: XGLLoader.cpp.o
+
+.PHONY : XGLLoader.o
+
+# target to build an object file
+XGLLoader.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/XGLLoader.cpp.o
+.PHONY : XGLLoader.cpp.o
+
+XGLLoader.i: XGLLoader.cpp.i
+
+.PHONY : XGLLoader.i
+
+# target to preprocess a source file
+XGLLoader.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/XGLLoader.cpp.i
+.PHONY : XGLLoader.cpp.i
+
+XGLLoader.s: XGLLoader.cpp.s
+
+.PHONY : XGLLoader.s
+
+# target to generate assembly for a file
+XGLLoader.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/XGLLoader.cpp.s
+.PHONY : XGLLoader.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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/ConvertUTF/ConvertUTF.c.s
+.PHONY : __/contrib/ConvertUTF/ConvertUTF.c.s
+
+__/contrib/clipper/clipper.o: __/contrib/clipper/clipper.cpp.o
+
+.PHONY : __/contrib/clipper/clipper.o
+
+# target to build an object file
+__/contrib/clipper/clipper.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/clipper/clipper.cpp.o
+.PHONY : __/contrib/clipper/clipper.cpp.o
+
+__/contrib/clipper/clipper.i: __/contrib/clipper/clipper.cpp.i
+
+.PHONY : __/contrib/clipper/clipper.i
+
+# target to preprocess a source file
+__/contrib/clipper/clipper.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/clipper/clipper.cpp.i
+.PHONY : __/contrib/clipper/clipper.cpp.i
+
+__/contrib/clipper/clipper.s: __/contrib/clipper/clipper.cpp.s
+
+.PHONY : __/contrib/clipper/clipper.s
+
+# target to generate assembly for a file
+__/contrib/clipper/clipper.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/clipper/clipper.cpp.s
+.PHONY : __/contrib/clipper/clipper.cpp.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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(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 /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/irrXML/irrXML.cpp.s
+.PHONY : __/contrib/irrXML/irrXML.cpp.s
+
+__/contrib/openddlparser/code/DDLNode.o: __/contrib/openddlparser/code/DDLNode.cpp.o
+
+.PHONY : __/contrib/openddlparser/code/DDLNode.o
+
+# target to build an object file
+__/contrib/openddlparser/code/DDLNode.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/openddlparser/code/DDLNode.cpp.o
+.PHONY : __/contrib/openddlparser/code/DDLNode.cpp.o
+
+__/contrib/openddlparser/code/DDLNode.i: __/contrib/openddlparser/code/DDLNode.cpp.i
+
+.PHONY : __/contrib/openddlparser/code/DDLNode.i
+
+# target to preprocess a source file
+__/contrib/openddlparser/code/DDLNode.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/openddlparser/code/DDLNode.cpp.i
+.PHONY : __/contrib/openddlparser/code/DDLNode.cpp.i
+
+__/contrib/openddlparser/code/DDLNode.s: __/contrib/openddlparser/code/DDLNode.cpp.s
+
+.PHONY : __/contrib/openddlparser/code/DDLNode.s
+
+# target to generate assembly for a file
+__/contrib/openddlparser/code/DDLNode.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/openddlparser/code/DDLNode.cpp.s
+.PHONY : __/contrib/openddlparser/code/DDLNode.cpp.s
+
+__/contrib/openddlparser/code/OpenDDLCommon.o: __/contrib/openddlparser/code/OpenDDLCommon.cpp.o
+
+.PHONY : __/contrib/openddlparser/code/OpenDDLCommon.o
+
+# target to build an object file
+__/contrib/openddlparser/code/OpenDDLCommon.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/openddlparser/code/OpenDDLCommon.cpp.o
+.PHONY : __/contrib/openddlparser/code/OpenDDLCommon.cpp.o
+
+__/contrib/openddlparser/code/OpenDDLCommon.i: __/contrib/openddlparser/code/OpenDDLCommon.cpp.i
+
+.PHONY : __/contrib/openddlparser/code/OpenDDLCommon.i
+
+# target to preprocess a source file
+__/contrib/openddlparser/code/OpenDDLCommon.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/openddlparser/code/OpenDDLCommon.cpp.i
+.PHONY : __/contrib/openddlparser/code/OpenDDLCommon.cpp.i
+
+__/contrib/openddlparser/code/OpenDDLCommon.s: __/contrib/openddlparser/code/OpenDDLCommon.cpp.s
+
+.PHONY : __/contrib/openddlparser/code/OpenDDLCommon.s
+
+# target to generate assembly for a file
+__/contrib/openddlparser/code/OpenDDLCommon.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/openddlparser/code/OpenDDLCommon.cpp.s
+.PHONY : __/contrib/openddlparser/code/OpenDDLCommon.cpp.s
+
+__/contrib/openddlparser/code/OpenDDLExport.o: __/contrib/openddlparser/code/OpenDDLExport.cpp.o
+
+.PHONY : __/contrib/openddlparser/code/OpenDDLExport.o
+
+# target to build an object file
+__/contrib/openddlparser/code/OpenDDLExport.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/openddlparser/code/OpenDDLExport.cpp.o
+.PHONY : __/contrib/openddlparser/code/OpenDDLExport.cpp.o
+
+__/contrib/openddlparser/code/OpenDDLExport.i: __/contrib/openddlparser/code/OpenDDLExport.cpp.i
+
+.PHONY : __/contrib/openddlparser/code/OpenDDLExport.i
+
+# target to preprocess a source file
+__/contrib/openddlparser/code/OpenDDLExport.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/openddlparser/code/OpenDDLExport.cpp.i
+.PHONY : __/contrib/openddlparser/code/OpenDDLExport.cpp.i
+
+__/contrib/openddlparser/code/OpenDDLExport.s: __/contrib/openddlparser/code/OpenDDLExport.cpp.s
+
+.PHONY : __/contrib/openddlparser/code/OpenDDLExport.s
+
+# target to generate assembly for a file
+__/contrib/openddlparser/code/OpenDDLExport.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/openddlparser/code/OpenDDLExport.cpp.s
+.PHONY : __/contrib/openddlparser/code/OpenDDLExport.cpp.s
+
+__/contrib/openddlparser/code/OpenDDLParser.o: __/contrib/openddlparser/code/OpenDDLParser.cpp.o
+
+.PHONY : __/contrib/openddlparser/code/OpenDDLParser.o
+
+# target to build an object file
+__/contrib/openddlparser/code/OpenDDLParser.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/openddlparser/code/OpenDDLParser.cpp.o
+.PHONY : __/contrib/openddlparser/code/OpenDDLParser.cpp.o
+
+__/contrib/openddlparser/code/OpenDDLParser.i: __/contrib/openddlparser/code/OpenDDLParser.cpp.i
+
+.PHONY : __/contrib/openddlparser/code/OpenDDLParser.i
+
+# target to preprocess a source file
+__/contrib/openddlparser/code/OpenDDLParser.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/openddlparser/code/OpenDDLParser.cpp.i
+.PHONY : __/contrib/openddlparser/code/OpenDDLParser.cpp.i
+
+__/contrib/openddlparser/code/OpenDDLParser.s: __/contrib/openddlparser/code/OpenDDLParser.cpp.s
+
+.PHONY : __/contrib/openddlparser/code/OpenDDLParser.s
+
+# target to generate assembly for a file
+__/contrib/openddlparser/code/OpenDDLParser.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/openddlparser/code/OpenDDLParser.cpp.s
+.PHONY : __/contrib/openddlparser/code/OpenDDLParser.cpp.s
+
+__/contrib/openddlparser/code/Value.o: __/contrib/openddlparser/code/Value.cpp.o
+
+.PHONY : __/contrib/openddlparser/code/Value.o
+
+# target to build an object file
+__/contrib/openddlparser/code/Value.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/openddlparser/code/Value.cpp.o
+.PHONY : __/contrib/openddlparser/code/Value.cpp.o
+
+__/contrib/openddlparser/code/Value.i: __/contrib/openddlparser/code/Value.cpp.i
+
+.PHONY : __/contrib/openddlparser/code/Value.i
+
+# target to preprocess a source file
+__/contrib/openddlparser/code/Value.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/openddlparser/code/Value.cpp.i
+.PHONY : __/contrib/openddlparser/code/Value.cpp.i
+
+__/contrib/openddlparser/code/Value.s: __/contrib/openddlparser/code/Value.cpp.s
+
+.PHONY : __/contrib/openddlparser/code/Value.s
+
+# target to generate assembly for a file
+__/contrib/openddlparser/code/Value.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/openddlparser/code/Value.cpp.s
+.PHONY : __/contrib/openddlparser/code/Value.cpp.s
+
+__/contrib/poly2tri/poly2tri/common/shapes.o: __/contrib/poly2tri/poly2tri/common/shapes.cc.o
+
+.PHONY : __/contrib/poly2tri/poly2tri/common/shapes.o
+
+# target to build an object file
+__/contrib/poly2tri/poly2tri/common/shapes.cc.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/poly2tri/poly2tri/common/shapes.cc.o
+.PHONY : __/contrib/poly2tri/poly2tri/common/shapes.cc.o
+
+__/contrib/poly2tri/poly2tri/common/shapes.i: __/contrib/poly2tri/poly2tri/common/shapes.cc.i
+
+.PHONY : __/contrib/poly2tri/poly2tri/common/shapes.i
+
+# target to preprocess a source file
+__/contrib/poly2tri/poly2tri/common/shapes.cc.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/poly2tri/poly2tri/common/shapes.cc.i
+.PHONY : __/contrib/poly2tri/poly2tri/common/shapes.cc.i
+
+__/contrib/poly2tri/poly2tri/common/shapes.s: __/contrib/poly2tri/poly2tri/common/shapes.cc.s
+
+.PHONY : __/contrib/poly2tri/poly2tri/common/shapes.s
+
+# target to generate assembly for a file
+__/contrib/poly2tri/poly2tri/common/shapes.cc.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/poly2tri/poly2tri/common/shapes.cc.s
+.PHONY : __/contrib/poly2tri/poly2tri/common/shapes.cc.s
+
+__/contrib/poly2tri/poly2tri/sweep/advancing_front.o: __/contrib/poly2tri/poly2tri/sweep/advancing_front.cc.o
+
+.PHONY : __/contrib/poly2tri/poly2tri/sweep/advancing_front.o
+
+# target to build an object file
+__/contrib/poly2tri/poly2tri/sweep/advancing_front.cc.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/poly2tri/poly2tri/sweep/advancing_front.cc.o
+.PHONY : __/contrib/poly2tri/poly2tri/sweep/advancing_front.cc.o
+
+__/contrib/poly2tri/poly2tri/sweep/advancing_front.i: __/contrib/poly2tri/poly2tri/sweep/advancing_front.cc.i
+
+.PHONY : __/contrib/poly2tri/poly2tri/sweep/advancing_front.i
+
+# target to preprocess a source file
+__/contrib/poly2tri/poly2tri/sweep/advancing_front.cc.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/poly2tri/poly2tri/sweep/advancing_front.cc.i
+.PHONY : __/contrib/poly2tri/poly2tri/sweep/advancing_front.cc.i
+
+__/contrib/poly2tri/poly2tri/sweep/advancing_front.s: __/contrib/poly2tri/poly2tri/sweep/advancing_front.cc.s
+
+.PHONY : __/contrib/poly2tri/poly2tri/sweep/advancing_front.s
+
+# target to generate assembly for a file
+__/contrib/poly2tri/poly2tri/sweep/advancing_front.cc.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/poly2tri/poly2tri/sweep/advancing_front.cc.s
+.PHONY : __/contrib/poly2tri/poly2tri/sweep/advancing_front.cc.s
+
+__/contrib/poly2tri/poly2tri/sweep/cdt.o: __/contrib/poly2tri/poly2tri/sweep/cdt.cc.o
+
+.PHONY : __/contrib/poly2tri/poly2tri/sweep/cdt.o
+
+# target to build an object file
+__/contrib/poly2tri/poly2tri/sweep/cdt.cc.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/poly2tri/poly2tri/sweep/cdt.cc.o
+.PHONY : __/contrib/poly2tri/poly2tri/sweep/cdt.cc.o
+
+__/contrib/poly2tri/poly2tri/sweep/cdt.i: __/contrib/poly2tri/poly2tri/sweep/cdt.cc.i
+
+.PHONY : __/contrib/poly2tri/poly2tri/sweep/cdt.i
+
+# target to preprocess a source file
+__/contrib/poly2tri/poly2tri/sweep/cdt.cc.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/poly2tri/poly2tri/sweep/cdt.cc.i
+.PHONY : __/contrib/poly2tri/poly2tri/sweep/cdt.cc.i
+
+__/contrib/poly2tri/poly2tri/sweep/cdt.s: __/contrib/poly2tri/poly2tri/sweep/cdt.cc.s
+
+.PHONY : __/contrib/poly2tri/poly2tri/sweep/cdt.s
+
+# target to generate assembly for a file
+__/contrib/poly2tri/poly2tri/sweep/cdt.cc.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/poly2tri/poly2tri/sweep/cdt.cc.s
+.PHONY : __/contrib/poly2tri/poly2tri/sweep/cdt.cc.s
+
+__/contrib/poly2tri/poly2tri/sweep/sweep.o: __/contrib/poly2tri/poly2tri/sweep/sweep.cc.o
+
+.PHONY : __/contrib/poly2tri/poly2tri/sweep/sweep.o
+
+# target to build an object file
+__/contrib/poly2tri/poly2tri/sweep/sweep.cc.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/poly2tri/poly2tri/sweep/sweep.cc.o
+.PHONY : __/contrib/poly2tri/poly2tri/sweep/sweep.cc.o
+
+__/contrib/poly2tri/poly2tri/sweep/sweep.i: __/contrib/poly2tri/poly2tri/sweep/sweep.cc.i
+
+.PHONY : __/contrib/poly2tri/poly2tri/sweep/sweep.i
+
+# target to preprocess a source file
+__/contrib/poly2tri/poly2tri/sweep/sweep.cc.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/poly2tri/poly2tri/sweep/sweep.cc.i
+.PHONY : __/contrib/poly2tri/poly2tri/sweep/sweep.cc.i
+
+__/contrib/poly2tri/poly2tri/sweep/sweep.s: __/contrib/poly2tri/poly2tri/sweep/sweep.cc.s
+
+.PHONY : __/contrib/poly2tri/poly2tri/sweep/sweep.s
+
+# target to generate assembly for a file
+__/contrib/poly2tri/poly2tri/sweep/sweep.cc.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/poly2tri/poly2tri/sweep/sweep.cc.s
+.PHONY : __/contrib/poly2tri/poly2tri/sweep/sweep.cc.s
+
+__/contrib/poly2tri/poly2tri/sweep/sweep_context.o: __/contrib/poly2tri/poly2tri/sweep/sweep_context.cc.o
+
+.PHONY : __/contrib/poly2tri/poly2tri/sweep/sweep_context.o
+
+# target to build an object file
+__/contrib/poly2tri/poly2tri/sweep/sweep_context.cc.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/poly2tri/poly2tri/sweep/sweep_context.cc.o
+.PHONY : __/contrib/poly2tri/poly2tri/sweep/sweep_context.cc.o
+
+__/contrib/poly2tri/poly2tri/sweep/sweep_context.i: __/contrib/poly2tri/poly2tri/sweep/sweep_context.cc.i
+
+.PHONY : __/contrib/poly2tri/poly2tri/sweep/sweep_context.i
+
+# target to preprocess a source file
+__/contrib/poly2tri/poly2tri/sweep/sweep_context.cc.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/poly2tri/poly2tri/sweep/sweep_context.cc.i
+.PHONY : __/contrib/poly2tri/poly2tri/sweep/sweep_context.cc.i
+
+__/contrib/poly2tri/poly2tri/sweep/sweep_context.s: __/contrib/poly2tri/poly2tri/sweep/sweep_context.cc.s
+
+.PHONY : __/contrib/poly2tri/poly2tri/sweep/sweep_context.s
+
+# target to generate assembly for a file
+__/contrib/poly2tri/poly2tri/sweep/sweep_context.cc.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/__/contrib/poly2tri/poly2tri/sweep/sweep_context.cc.s
+.PHONY : __/contrib/poly2tri/poly2tri/sweep/sweep_context.cc.s
+
+glTFExporter.o: glTFExporter.cpp.o
+
+.PHONY : glTFExporter.o
+
+# target to build an object file
+glTFExporter.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/glTFExporter.cpp.o
+.PHONY : glTFExporter.cpp.o
+
+glTFExporter.i: glTFExporter.cpp.i
+
+.PHONY : glTFExporter.i
+
+# target to preprocess a source file
+glTFExporter.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/glTFExporter.cpp.i
+.PHONY : glTFExporter.cpp.i
+
+glTFExporter.s: glTFExporter.cpp.s
+
+.PHONY : glTFExporter.s
+
+# target to generate assembly for a file
+glTFExporter.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/glTFExporter.cpp.s
+.PHONY : glTFExporter.cpp.s
+
+glTFImporter.o: glTFImporter.cpp.o
+
+.PHONY : glTFImporter.o
+
+# target to build an object file
+glTFImporter.cpp.o:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/glTFImporter.cpp.o
+.PHONY : glTFImporter.cpp.o
+
+glTFImporter.i: glTFImporter.cpp.i
+
+.PHONY : glTFImporter.i
+
+# target to preprocess a source file
+glTFImporter.cpp.i:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/glTFImporter.cpp.i
+.PHONY : glTFImporter.cpp.i
+
+glTFImporter.s: glTFImporter.cpp.s
+
+.PHONY : glTFImporter.s
+
+# target to generate assembly for a file
+glTFImporter.cpp.s:
+	cd /Users/angelo/coding/assimp && $(MAKE) -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/glTFImporter.cpp.s
+.PHONY : glTFImporter.cpp.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 "... edit_cache"
+	@echo "... rebuild_cache"
+	@echo "... assimp"
+	@echo "... list_install_components"
+	@echo "... install"
+	@echo "... install/strip"
+	@echo "... install/local"
+	@echo "... 3DSConverter.o"
+	@echo "... 3DSConverter.i"
+	@echo "... 3DSConverter.s"
+	@echo "... 3DSExporter.o"
+	@echo "... 3DSExporter.i"
+	@echo "... 3DSExporter.s"
+	@echo "... 3DSLoader.o"
+	@echo "... 3DSLoader.i"
+	@echo "... 3DSLoader.s"
+	@echo "... ACLoader.o"
+	@echo "... ACLoader.i"
+	@echo "... ACLoader.s"
+	@echo "... AMFImporter.o"
+	@echo "... AMFImporter.i"
+	@echo "... AMFImporter.s"
+	@echo "... AMFImporter_Geometry.o"
+	@echo "... AMFImporter_Geometry.i"
+	@echo "... AMFImporter_Geometry.s"
+	@echo "... AMFImporter_Material.o"
+	@echo "... AMFImporter_Material.i"
+	@echo "... AMFImporter_Material.s"
+	@echo "... AMFImporter_Postprocess.o"
+	@echo "... AMFImporter_Postprocess.i"
+	@echo "... AMFImporter_Postprocess.s"
+	@echo "... ASELoader.o"
+	@echo "... ASELoader.i"
+	@echo "... ASELoader.s"
+	@echo "... ASEParser.o"
+	@echo "... ASEParser.i"
+	@echo "... ASEParser.s"
+	@echo "... AssbinExporter.o"
+	@echo "... AssbinExporter.i"
+	@echo "... AssbinExporter.s"
+	@echo "... AssbinLoader.o"
+	@echo "... AssbinLoader.i"
+	@echo "... AssbinLoader.s"
+	@echo "... Assimp.o"
+	@echo "... Assimp.i"
+	@echo "... Assimp.s"
+	@echo "... AssimpCExport.o"
+	@echo "... AssimpCExport.i"
+	@echo "... AssimpCExport.s"
+	@echo "... AssxmlExporter.o"
+	@echo "... AssxmlExporter.i"
+	@echo "... AssxmlExporter.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 "... Bitmap.o"
+	@echo "... Bitmap.i"
+	@echo "... Bitmap.s"
+	@echo "... BlenderBMesh.o"
+	@echo "... BlenderBMesh.i"
+	@echo "... BlenderBMesh.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 "... BlenderTessellator.o"
+	@echo "... BlenderTessellator.i"
+	@echo "... BlenderTessellator.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 "... D3MFImporter.o"
+	@echo "... D3MFImporter.i"
+	@echo "... D3MFImporter.s"
+	@echo "... D3MFOpcPackage.o"
+	@echo "... D3MFOpcPackage.i"
+	@echo "... D3MFOpcPackage.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 "... FBXAnimation.o"
+	@echo "... FBXAnimation.i"
+	@echo "... FBXAnimation.s"
+	@echo "... FBXBinaryTokenizer.o"
+	@echo "... FBXBinaryTokenizer.i"
+	@echo "... FBXBinaryTokenizer.s"
+	@echo "... FBXConverter.o"
+	@echo "... FBXConverter.i"
+	@echo "... FBXConverter.s"
+	@echo "... FBXDeformer.o"
+	@echo "... FBXDeformer.i"
+	@echo "... FBXDeformer.s"
+	@echo "... FBXDocument.o"
+	@echo "... FBXDocument.i"
+	@echo "... FBXDocument.s"
+	@echo "... FBXDocumentUtil.o"
+	@echo "... FBXDocumentUtil.i"
+	@echo "... FBXDocumentUtil.s"
+	@echo "... FBXImporter.o"
+	@echo "... FBXImporter.i"
+	@echo "... FBXImporter.s"
+	@echo "... FBXMaterial.o"
+	@echo "... FBXMaterial.i"
+	@echo "... FBXMaterial.s"
+	@echo "... FBXMeshGeometry.o"
+	@echo "... FBXMeshGeometry.i"
+	@echo "... FBXMeshGeometry.s"
+	@echo "... FBXModel.o"
+	@echo "... FBXModel.i"
+	@echo "... FBXModel.s"
+	@echo "... FBXNodeAttribute.o"
+	@echo "... FBXNodeAttribute.i"
+	@echo "... FBXNodeAttribute.s"
+	@echo "... FBXParser.o"
+	@echo "... FBXParser.i"
+	@echo "... FBXParser.s"
+	@echo "... FBXProperties.o"
+	@echo "... FBXProperties.i"
+	@echo "... FBXProperties.s"
+	@echo "... FBXTokenizer.o"
+	@echo "... FBXTokenizer.i"
+	@echo "... FBXTokenizer.s"
+	@echo "... FBXUtil.o"
+	@echo "... FBXUtil.i"
+	@echo "... FBXUtil.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 "... IFCBoolean.o"
+	@echo "... IFCBoolean.i"
+	@echo "... IFCBoolean.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 "... IFCOpenings.o"
+	@echo "... IFCOpenings.i"
+	@echo "... IFCOpenings.s"
+	@echo "... IFCProfile.o"
+	@echo "... IFCProfile.i"
+	@echo "... IFCProfile.s"
+	@echo "... IFCReaderGen1.o"
+	@echo "... IFCReaderGen1.i"
+	@echo "... IFCReaderGen1.s"
+	@echo "... IFCReaderGen2.o"
+	@echo "... IFCReaderGen2.i"
+	@echo "... IFCReaderGen2.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 "... 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 "... OgreBinarySerializer.o"
+	@echo "... OgreBinarySerializer.i"
+	@echo "... OgreBinarySerializer.s"
+	@echo "... OgreImporter.o"
+	@echo "... OgreImporter.i"
+	@echo "... OgreImporter.s"
+	@echo "... OgreMaterial.o"
+	@echo "... OgreMaterial.i"
+	@echo "... OgreMaterial.s"
+	@echo "... OgreStructs.o"
+	@echo "... OgreStructs.i"
+	@echo "... OgreStructs.s"
+	@echo "... OgreXmlSerializer.o"
+	@echo "... OgreXmlSerializer.i"
+	@echo "... OgreXmlSerializer.s"
+	@echo "... OpenGEXExporter.o"
+	@echo "... OpenGEXExporter.i"
+	@echo "... OpenGEXExporter.s"
+	@echo "... OpenGEXImporter.o"
+	@echo "... OpenGEXImporter.i"
+	@echo "... OpenGEXImporter.s"
+	@echo "... OptimizeGraph.o"
+	@echo "... OptimizeGraph.i"
+	@echo "... OptimizeGraph.s"
+	@echo "... OptimizeMeshes.o"
+	@echo "... OptimizeMeshes.i"
+	@echo "... OptimizeMeshes.s"
+	@echo "... PlyExporter.o"
+	@echo "... PlyExporter.i"
+	@echo "... PlyExporter.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 "... SIBImporter.o"
+	@echo "... SIBImporter.i"
+	@echo "... SIBImporter.s"
+	@echo "... SMDLoader.o"
+	@echo "... SMDLoader.i"
+	@echo "... SMDLoader.s"
+	@echo "... STEPFileEncoding.o"
+	@echo "... STEPFileEncoding.i"
+	@echo "... STEPFileEncoding.s"
+	@echo "... STEPFileReader.o"
+	@echo "... STEPFileReader.i"
+	@echo "... STEPFileReader.s"
+	@echo "... STLExporter.o"
+	@echo "... STLExporter.i"
+	@echo "... STLExporter.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 "... StepExporter.o"
+	@echo "... StepExporter.i"
+	@echo "... StepExporter.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 "... Version.o"
+	@echo "... Version.i"
+	@echo "... Version.s"
+	@echo "... VertexTriangleAdjacency.o"
+	@echo "... VertexTriangleAdjacency.i"
+	@echo "... VertexTriangleAdjacency.s"
+	@echo "... X3DImporter.o"
+	@echo "... X3DImporter.i"
+	@echo "... X3DImporter.s"
+	@echo "... X3DImporter_Geometry2D.o"
+	@echo "... X3DImporter_Geometry2D.i"
+	@echo "... X3DImporter_Geometry2D.s"
+	@echo "... X3DImporter_Geometry3D.o"
+	@echo "... X3DImporter_Geometry3D.i"
+	@echo "... X3DImporter_Geometry3D.s"
+	@echo "... X3DImporter_Group.o"
+	@echo "... X3DImporter_Group.i"
+	@echo "... X3DImporter_Group.s"
+	@echo "... X3DImporter_Light.o"
+	@echo "... X3DImporter_Light.i"
+	@echo "... X3DImporter_Light.s"
+	@echo "... X3DImporter_Metadata.o"
+	@echo "... X3DImporter_Metadata.i"
+	@echo "... X3DImporter_Metadata.s"
+	@echo "... X3DImporter_Networking.o"
+	@echo "... X3DImporter_Networking.i"
+	@echo "... X3DImporter_Networking.s"
+	@echo "... X3DImporter_Postprocess.o"
+	@echo "... X3DImporter_Postprocess.i"
+	@echo "... X3DImporter_Postprocess.s"
+	@echo "... X3DImporter_Rendering.o"
+	@echo "... X3DImporter_Rendering.i"
+	@echo "... X3DImporter_Rendering.s"
+	@echo "... X3DImporter_Shape.o"
+	@echo "... X3DImporter_Shape.i"
+	@echo "... X3DImporter_Shape.s"
+	@echo "... X3DImporter_Texturing.o"
+	@echo "... X3DImporter_Texturing.i"
+	@echo "... X3DImporter_Texturing.s"
+	@echo "... XFileExporter.o"
+	@echo "... XFileExporter.i"
+	@echo "... XFileExporter.s"
+	@echo "... XFileImporter.o"
+	@echo "... XFileImporter.i"
+	@echo "... XFileImporter.s"
+	@echo "... XFileParser.o"
+	@echo "... XFileParser.i"
+	@echo "... XFileParser.s"
+	@echo "... XGLLoader.o"
+	@echo "... XGLLoader.i"
+	@echo "... XGLLoader.s"
+	@echo "... __/contrib/ConvertUTF/ConvertUTF.o"
+	@echo "... __/contrib/ConvertUTF/ConvertUTF.i"
+	@echo "... __/contrib/ConvertUTF/ConvertUTF.s"
+	@echo "... __/contrib/clipper/clipper.o"
+	@echo "... __/contrib/clipper/clipper.i"
+	@echo "... __/contrib/clipper/clipper.s"
+	@echo "... __/contrib/irrXML/irrXML.o"
+	@echo "... __/contrib/irrXML/irrXML.i"
+	@echo "... __/contrib/irrXML/irrXML.s"
+	@echo "... __/contrib/openddlparser/code/DDLNode.o"
+	@echo "... __/contrib/openddlparser/code/DDLNode.i"
+	@echo "... __/contrib/openddlparser/code/DDLNode.s"
+	@echo "... __/contrib/openddlparser/code/OpenDDLCommon.o"
+	@echo "... __/contrib/openddlparser/code/OpenDDLCommon.i"
+	@echo "... __/contrib/openddlparser/code/OpenDDLCommon.s"
+	@echo "... __/contrib/openddlparser/code/OpenDDLExport.o"
+	@echo "... __/contrib/openddlparser/code/OpenDDLExport.i"
+	@echo "... __/contrib/openddlparser/code/OpenDDLExport.s"
+	@echo "... __/contrib/openddlparser/code/OpenDDLParser.o"
+	@echo "... __/contrib/openddlparser/code/OpenDDLParser.i"
+	@echo "... __/contrib/openddlparser/code/OpenDDLParser.s"
+	@echo "... __/contrib/openddlparser/code/Value.o"
+	@echo "... __/contrib/openddlparser/code/Value.i"
+	@echo "... __/contrib/openddlparser/code/Value.s"
+	@echo "... __/contrib/poly2tri/poly2tri/common/shapes.o"
+	@echo "... __/contrib/poly2tri/poly2tri/common/shapes.i"
+	@echo "... __/contrib/poly2tri/poly2tri/common/shapes.s"
+	@echo "... __/contrib/poly2tri/poly2tri/sweep/advancing_front.o"
+	@echo "... __/contrib/poly2tri/poly2tri/sweep/advancing_front.i"
+	@echo "... __/contrib/poly2tri/poly2tri/sweep/advancing_front.s"
+	@echo "... __/contrib/poly2tri/poly2tri/sweep/cdt.o"
+	@echo "... __/contrib/poly2tri/poly2tri/sweep/cdt.i"
+	@echo "... __/contrib/poly2tri/poly2tri/sweep/cdt.s"
+	@echo "... __/contrib/poly2tri/poly2tri/sweep/sweep.o"
+	@echo "... __/contrib/poly2tri/poly2tri/sweep/sweep.i"
+	@echo "... __/contrib/poly2tri/poly2tri/sweep/sweep.s"
+	@echo "... __/contrib/poly2tri/poly2tri/sweep/sweep_context.o"
+	@echo "... __/contrib/poly2tri/poly2tri/sweep/sweep_context.i"
+	@echo "... __/contrib/poly2tri/poly2tri/sweep/sweep_context.s"
+	@echo "... glTFExporter.o"
+	@echo "... glTFExporter.i"
+	@echo "... glTFExporter.s"
+	@echo "... glTFImporter.o"
+	@echo "... glTFImporter.i"
+	@echo "... glTFImporter.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 /Users/angelo/coding/assimp && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+

+ 13 - 2
code/ObjFileParser.cpp

@@ -182,10 +182,15 @@ void ObjFileParser::parseFile()
 
         case 'm': // Parse a material library or merging group ('mg')
             {
-                if (*(m_DataIt + 1) == 'g')
+				std::string name;
+
+				getName(m_DataIt, m_DataItEnd, name);
+                if (name == "mg")
                     getGroupNumberAndResolution();
-                else
+                else if(name == "mtllib")
                     getMaterialLib();
+				else
+					goto pf_skip_line;
             }
             break;
 
@@ -209,6 +214,8 @@ void ObjFileParser::parseFile()
 
         default:
             {
+pf_skip_line:
+
                 m_DataIt = skipLine<DataArrayIt>( m_DataIt, m_DataItEnd, m_uiLine );
             }
             break;
@@ -625,6 +632,10 @@ void ObjFileParser::getMaterialLib()
     // Check for existence
     const std::string strMatName(pStart, &(*m_DataIt));
     std::string absName;
+
+	// Check if directive is valid.
+	if(!strMatName.length()) throw DeadlyImportError("File name of the material is absent.");
+
     if ( m_pIO->StackSize() > 0 ) {
         std::string path = m_pIO->CurrentDirectory();
         if ( '/' != *path.rbegin() ) {

+ 2 - 2
code/SceneCombiner.cpp

@@ -1237,8 +1237,8 @@ void SceneCombiner::Copy (aiMetadata** _dest, const aiMetadata* src)
         case AI_BOOL:
             out.mData = new bool(*static_cast<bool*>(in.mData));
             break;
-        case AI_INT:
-            out.mData = new int(*static_cast<int*>(in.mData));
+        case AI_INT32:
+            out.mData = new int32_t(*static_cast<int32_t*>(in.mData));
             break;
         case AI_UINT64:
             out.mData = new uint64_t(*static_cast<uint64_t*>(in.mData));

+ 730 - 0
code/X3DExporter.cpp

@@ -0,0 +1,730 @@
+/// \file   X3DExporter.cpp
+/// \brief  X3D-format files exporter for Assimp. Implementation.
+/// \date   2016
+/// \author [email protected]
+
+#ifndef ASSIMP_BUILD_NO_EXPORT
+#ifndef ASSIMP_BUILD_NO_X3D_EXPORTER
+
+#include "X3DExporter.hpp"
+
+// Header files, Assimp.
+#include "Exceptional.h"
+#include <assimp/Exporter.hpp>
+#include <assimp/IOSystem.hpp>
+
+using namespace std;
+
+namespace Assimp
+{
+
+void ExportSceneX3D(const char* pFile, IOSystem* pIOSystem, const aiScene* pScene, const ExportProperties* pProperties)
+{
+	X3DExporter exporter(pFile, pIOSystem, pScene, pProperties);
+}
+
+}// namespace Assimp
+
+namespace Assimp
+{
+
+void X3DExporter::IndentationStringSet(const size_t pNewLevel)
+{
+	if(pNewLevel > mIndentationString.size())
+	{
+		if(pNewLevel > mIndentationString.capacity()) mIndentationString.reserve(pNewLevel + 1);
+
+		for(size_t i = 0, i_e = pNewLevel - mIndentationString.size(); i < i_e; i++) mIndentationString.push_back('\t');
+	}
+	else if(pNewLevel < mIndentationString.size())
+	{
+		mIndentationString.resize(pNewLevel);
+	}
+}
+
+void X3DExporter::XML_Write(const string& pData)
+{
+	if(pData.size() == 0) return;
+	if(mOutFile->Write((void*)pData.data(), pData.length(), 1) != 1) throw DeadlyExportError("Failed to write scene data!");
+}
+
+aiMatrix4x4 X3DExporter::Matrix_GlobalToCurrent(const aiNode& pNode) const
+{
+aiNode* cur_node;
+std::list<aiMatrix4x4> matr;
+aiMatrix4x4 out_matr;
+
+	// starting walk from current element to root
+	matr.push_back(pNode.mTransformation);
+	cur_node = pNode.mParent;
+	if(cur_node != nullptr)
+	{
+		do
+		{
+			matr.push_back(cur_node->mTransformation);
+			cur_node = cur_node->mParent;
+		} while(cur_node != nullptr);
+	}
+
+	// multiplicate all matrices in reverse order
+	for(std::list<aiMatrix4x4>::reverse_iterator rit = matr.rbegin(); rit != matr.rend(); rit++) out_matr = out_matr * (*rit);
+
+	return out_matr;
+}
+
+void X3DExporter::AttrHelper_FloatToString(const float pValue, std::string& pTargetString)
+{
+	pTargetString = to_string(pValue);
+	AttrHelper_CommaToPoint(pTargetString);
+}
+
+void X3DExporter::AttrHelper_Vec3DArrToString(const aiVector3D* pArray, const size_t pArray_Size, string& pTargetString)
+{
+	pTargetString.clear();
+	pTargetString.reserve(pArray_Size * 6);// (Number + space) * 3.
+	for(size_t idx = 0; idx < pArray_Size; idx++)
+		pTargetString.append(to_string(pArray[idx].x) + " " + to_string(pArray[idx].y) + " " + to_string(pArray[idx].z) + " ");
+
+	// remove last space symbol.
+	pTargetString.resize(pTargetString.length() - 1);
+	AttrHelper_CommaToPoint(pTargetString);
+}
+
+void X3DExporter::AttrHelper_Vec2DArrToString(const aiVector2D* pArray, const size_t pArray_Size, std::string& pTargetString)
+{
+	pTargetString.clear();
+	pTargetString.reserve(pArray_Size * 4);// (Number + space) * 2.
+	for(size_t idx = 0; idx < pArray_Size; idx++)
+		pTargetString.append(to_string(pArray[idx].x) + " " + to_string(pArray[idx].y) + " ");
+
+	// remove last space symbol.
+	pTargetString.resize(pTargetString.length() - 1);
+	AttrHelper_CommaToPoint(pTargetString);
+}
+
+void X3DExporter::AttrHelper_Vec3DAsVec2fArrToString(const aiVector3D* pArray, const size_t pArray_Size, string& pTargetString)
+{
+	pTargetString.clear();
+	pTargetString.reserve(pArray_Size * 4);// (Number + space) * 2.
+	for(size_t idx = 0; idx < pArray_Size; idx++)
+		pTargetString.append(to_string(pArray[idx].x) + " " + to_string(pArray[idx].y) + " ");
+
+	// remove last space symbol.
+	pTargetString.resize(pTargetString.length() - 1);
+	AttrHelper_CommaToPoint(pTargetString);
+}
+
+void X3DExporter::AttrHelper_Col4DArrToString(const aiColor4D* pArray, const size_t pArray_Size, string& pTargetString)
+{
+	pTargetString.clear();
+	pTargetString.reserve(pArray_Size * 8);// (Number + space) * 4.
+	for(size_t idx = 0; idx < pArray_Size; idx++)
+		pTargetString.append(to_string(pArray[idx].r) + " " + to_string(pArray[idx].g) + " " + to_string(pArray[idx].b) + " " +
+								to_string(pArray[idx].a) + " ");
+
+	// remove last space symbol.
+	pTargetString.resize(pTargetString.length() - 1);
+	AttrHelper_CommaToPoint(pTargetString);
+}
+
+void X3DExporter::AttrHelper_Col3DArrToString(const aiColor3D* pArray, const size_t pArray_Size, std::string& pTargetString)
+{
+	pTargetString.clear();
+	pTargetString.reserve(pArray_Size * 6);// (Number + space) * 3.
+	for(size_t idx = 0; idx < pArray_Size; idx++)
+		pTargetString.append(to_string(pArray[idx].r) + " " + to_string(pArray[idx].g) + " " + to_string(pArray[idx].b) + " ");
+
+	// remove last space symbol.
+	pTargetString.resize(pTargetString.length() - 1);
+	AttrHelper_CommaToPoint(pTargetString);
+}
+
+void X3DExporter::AttrHelper_Color3ToAttrList(std::list<SAttribute> pList, const std::string& pName, const aiColor3D& pValue, const aiColor3D& pDefaultValue)
+{
+string tstr;
+
+	if(pValue == pDefaultValue) return;
+
+	AttrHelper_Col3DArrToString(&pValue, 1, tstr);
+	pList.push_back({pName, tstr});
+}
+
+void X3DExporter::AttrHelper_FloatToAttrList(std::list<SAttribute> pList, const string& pName, const float pValue, const float pDefaultValue)
+{
+string tstr;
+
+	if(pValue == pDefaultValue) return;
+
+	AttrHelper_FloatToString(pValue, tstr);
+	pList.push_back({pName, tstr});
+};
+
+void X3DExporter::NodeHelper_OpenNode(const string& pNodeName, const size_t pTabLevel, const bool pEmptyElement, const list<SAttribute>& pAttrList)
+{
+	// Write indentation.
+	IndentationStringSet(pTabLevel);
+	XML_Write(mIndentationString);
+	// Begin of the element
+	XML_Write("<" + pNodeName);
+	// Write attributes
+	for(const SAttribute& attr: pAttrList) { XML_Write(" " + attr.Name + "='" + attr.Value + "'"); }
+
+	// End of the element
+	if(pEmptyElement)
+	{
+		XML_Write("/>\n");
+	}
+	else
+	{
+		XML_Write(">\n");
+	}
+}
+
+void X3DExporter::NodeHelper_OpenNode(const string& pNodeName, const size_t pTabLevel, const bool pEmptyElement)
+{
+const list<SAttribute> attr_list;
+
+	NodeHelper_OpenNode(pNodeName, pTabLevel, pEmptyElement, attr_list);
+}
+
+void X3DExporter::NodeHelper_CloseNode(const string& pNodeName, const size_t pTabLevel)
+{
+	// Write indentation.
+	IndentationStringSet(pTabLevel);
+	XML_Write(mIndentationString);
+	// Write element
+	XML_Write("</" + pNodeName + ">\n");
+}
+
+void X3DExporter::Export_Node(const aiNode *pNode, const size_t pTabLevel)
+{
+bool transform = false;
+list<SAttribute> attr_list;
+
+	// In Assimp lights is stored in next way: light source store in mScene->mLights and in node tree must present aiNode with name same as
+	// light source has. Considering it we must compare every aiNode name with light sources names. Why not to look where ligths is present
+	// and save them to fili? Because corresponding aiNode can be already written to file and we can only add information to file not to edit.
+	if(CheckAndExport_Light(*pNode, pTabLevel)) return;
+
+	// Check if need DEF.
+	if(pNode->mName.length) attr_list.push_back({"DEF", pNode->mName.C_Str()});
+
+	// Check if need <Transformation> node against <Group>.
+	if(!pNode->mTransformation.IsIdentity())
+	{
+		auto Vector2String = [this](const aiVector3D pVector) -> string
+		{
+			string tstr = to_string(pVector.x) + " " + to_string(pVector.y) + " " + to_string(pVector.z);
+
+			AttrHelper_CommaToPoint(tstr);
+
+			return tstr;
+		};
+
+		auto Rotation2String = [this](const aiVector3D pAxis, const ai_real pAngle) -> string
+		{
+			string tstr = to_string(pAxis.x) + " " + to_string(pAxis.y) + " " + to_string(pAxis.z) + " " + to_string(pAngle);
+
+			AttrHelper_CommaToPoint(tstr);
+
+			return tstr;
+		};
+
+		aiVector3D scale, translate, rotate_axis;
+		ai_real rotate_angle;
+
+		transform = true;
+		pNode->mTransformation.Decompose(scale, rotate_axis, rotate_angle, translate);
+		// Check if values different from default
+		if((rotate_angle != 0) && (rotate_axis.Length() > 0))
+			attr_list.push_back({"rotation", Rotation2String(rotate_axis, rotate_angle)});
+
+		if(!scale.Equal({1, 1, 1})) attr_list.push_back({"scale", Vector2String(scale)});
+		if(translate.Length() > 0) attr_list.push_back({"translation", Vector2String(translate)});
+	}
+
+	// Begin node if need.
+	if(transform)
+		NodeHelper_OpenNode("Transform", pTabLevel, false, attr_list);
+	else
+		NodeHelper_OpenNode("Group", pTabLevel);
+
+	// Export metadata
+	if(pNode->mMetaData != nullptr)
+	{
+		for(size_t idx_prop = 0; idx_prop < pNode->mMetaData->mNumProperties; idx_prop++)
+		{
+			const aiString* key;
+			const aiMetadataEntry* entry;
+
+			if(pNode->mMetaData->Get(idx_prop, key, entry))
+			{
+				switch(entry->mType)
+				{
+					case AI_BOOL:
+						Export_MetadataBoolean(*key, *static_cast<bool*>(entry->mData), pTabLevel + 1);
+						break;
+					case AI_DOUBLE:
+						Export_MetadataDouble(*key, *static_cast<double*>(entry->mData), pTabLevel + 1);
+						break;
+					case AI_FLOAT:
+						Export_MetadataFloat(*key, *static_cast<float*>(entry->mData), pTabLevel + 1);
+						break;
+					case AI_INT32:
+						Export_MetadataInteger(*key, *static_cast<int32_t*>(entry->mData), pTabLevel + 1);
+						break;
+					case AI_AISTRING:
+						Export_MetadataString(*key, *static_cast<aiString*>(entry->mData), pTabLevel + 1);
+						break;
+					default:
+						LogError("Unsupported metadata type: " + to_string(entry->mType));
+						break;
+				}// switch(entry->mType)
+			}
+		}
+	}// if(pNode->mMetaData != nullptr)
+
+	// Export meshes.
+	for(size_t idx_mesh = 0; idx_mesh < pNode->mNumMeshes; idx_mesh++) Export_Mesh(pNode->mMeshes[idx_mesh], pTabLevel + 1);
+	// Export children.
+	for(size_t idx_node = 0; idx_node < pNode->mNumChildren; idx_node++) Export_Node(pNode->mChildren[idx_node], pTabLevel + 1);
+
+	// End node if need.
+	if(transform)
+		NodeHelper_CloseNode("Transform", pTabLevel);
+	else
+		NodeHelper_CloseNode("Group", pTabLevel);
+}
+
+void X3DExporter::Export_Mesh(const size_t pIdxMesh, const size_t pTabLevel)
+{
+const char* NodeName_IFS = "IndexedFaceSet";
+const char* NodeName_Shape = "Shape";
+
+list<SAttribute> attr_list;
+aiMesh& mesh = *mScene->mMeshes[pIdxMesh];// create alias for conveniance.
+
+	// Check if mesh already defined early.
+	if(mDEF_Map_Mesh.find(pIdxMesh) != mDEF_Map_Mesh.end())
+	{
+		// Mesh already defined, just refer to it
+		attr_list.push_back({"USE", mDEF_Map_Mesh.at(pIdxMesh)});
+		NodeHelper_OpenNode(NodeName_Shape, pTabLevel, true, attr_list);
+
+		return;
+	}
+
+	string mesh_name(mesh.mName.C_Str() + string("_IDX_") + to_string(pIdxMesh));// Create mesh name
+
+	// Define mesh name.
+	attr_list.push_back({"DEF", mesh_name});
+	mDEF_Map_Mesh[pIdxMesh] = mesh_name;
+
+	//
+	// "Shape" node.
+	//
+	NodeHelper_OpenNode(NodeName_Shape, pTabLevel, false, attr_list);
+	attr_list.clear();
+
+	//
+	// "Appearance" node.
+	//
+	Export_Material(mesh.mMaterialIndex, pTabLevel + 1);
+
+	//
+	// "IndexedFaceSet" node.
+	//
+	// Fill attributes which differ from default. In Assimp for colors, vertices and normals used one indices set. So, only "coordIndex" must be set.
+	string coordIndex;
+
+	// fill coordinates index.
+	coordIndex.reserve(mesh.mNumVertices * 4);// Index + space + Face delimiter
+	for(size_t idx_face = 0; idx_face < mesh.mNumFaces; idx_face++)
+	{
+		const aiFace& face_cur = mesh.mFaces[idx_face];
+
+		for(size_t idx_vert = 0; idx_vert < face_cur.mNumIndices; idx_vert++)
+		{
+			coordIndex.append(to_string(face_cur.mIndices[idx_vert]) + " ");
+		}
+
+		coordIndex.append("-1 ");// face delimiter.
+	}
+
+	// remove last space symbol.
+	coordIndex.resize(coordIndex.length() - 1);
+	attr_list.push_back({"coordIndex", coordIndex});
+	// create node
+	NodeHelper_OpenNode(NodeName_IFS, pTabLevel + 1, false, attr_list);
+	attr_list.clear();
+	// Child nodes for "IndexedFaceSet" needed when used colors, textures or normals.
+	string attr_value;
+
+	// Export <Coordinate>
+	AttrHelper_Vec3DArrToString(mesh.mVertices, mesh.mNumVertices, attr_value);
+	attr_list.push_back({"point", attr_value});
+	NodeHelper_OpenNode("Coordinate", pTabLevel + 2, true, attr_list);
+	attr_list.clear();
+
+	// Export <ColorRGBA>
+	if(mesh.HasVertexColors(0))
+	{
+		AttrHelper_Col4DArrToString(mesh.mColors[0], mesh.mNumVertices, attr_value);
+		attr_list.push_back({"color", attr_value});
+		NodeHelper_OpenNode("ColorRGBA", pTabLevel + 2, true, attr_list);
+		attr_list.clear();
+	}
+
+	// Export <TextureCoordinate>
+	if(mesh.HasTextureCoords(0))
+	{
+		AttrHelper_Vec3DAsVec2fArrToString(mesh.mTextureCoords[0], mesh.mNumVertices, attr_value);
+		attr_list.push_back({"point", attr_value});
+		NodeHelper_OpenNode("TextureCoordinate", pTabLevel + 2, true, attr_list);
+		attr_list.clear();
+	}
+
+	// Export <Normal>
+	if(mesh.HasNormals())
+	{
+		AttrHelper_Vec3DArrToString(mesh.mNormals, mesh.mNumVertices, attr_value);
+		attr_list.push_back({"vector", attr_value});
+		NodeHelper_OpenNode("Normal", pTabLevel + 2, true, attr_list);
+		attr_list.clear();
+	}
+
+	//
+	// Close opened nodes.
+	//
+	NodeHelper_CloseNode(NodeName_IFS, pTabLevel + 1);
+	NodeHelper_CloseNode(NodeName_Shape, pTabLevel);
+}
+
+void X3DExporter::Export_Material(const size_t pIdxMaterial, const size_t pTabLevel)
+{
+const char* NodeName_A = "Appearance";
+
+list<SAttribute> attr_list;
+aiMaterial& material = *mScene->mMaterials[pIdxMaterial];// create alias for conveniance.
+
+	// Check if material already defined early.
+	if(mDEF_Map_Material.find(pIdxMaterial) != mDEF_Map_Material.end())
+	{
+		// Material already defined, just refer to it
+		attr_list.push_back({"USE", mDEF_Map_Material.at(pIdxMaterial)});
+		NodeHelper_OpenNode(NodeName_A, pTabLevel, true, attr_list);
+
+		return;
+	}
+
+	string material_name(string("_IDX_") + to_string(pIdxMaterial));// Create material name
+	aiString ai_mat_name;
+
+	if(material.Get(AI_MATKEY_NAME, ai_mat_name) == AI_SUCCESS) material_name.insert(0, ai_mat_name.C_Str());
+
+	// Define material name.
+	attr_list.push_back({"DEF", material_name});
+	mDEF_Map_Material[pIdxMaterial] = material_name;
+
+	//
+	// "Appearance" node.
+	//
+	NodeHelper_OpenNode(NodeName_A, pTabLevel, false, attr_list);
+	attr_list.clear();
+
+	//
+	// "Material" node.
+	//
+	{
+		auto Color4ToAttrList = [&](const string& pAttrName, const aiColor4D& pAttrValue, const aiColor3D& pAttrDefaultValue)
+		{
+			string tstr;
+
+			if(aiColor3D(pAttrValue.r, pAttrValue.g, pAttrValue.b) != pAttrDefaultValue)
+			{
+				AttrHelper_Col4DArrToString(&pAttrValue, 1, tstr);
+				attr_list.push_back({pAttrName, tstr});
+			}
+		};
+
+		float tvalf;
+		aiColor3D color3;
+		aiColor4D color4;
+
+		// ambientIntensity="0.2"     SFFloat [inputOutput]
+		if(material.Get(AI_MATKEY_COLOR_AMBIENT, color3) == AI_SUCCESS)
+			AttrHelper_FloatToAttrList(attr_list, "ambientIntensity", (color3.r + color3.g + color3.b) / 3.0f, 0.2f);
+		else if(material.Get(AI_MATKEY_COLOR_AMBIENT, color4) == AI_SUCCESS)
+			AttrHelper_FloatToAttrList(attr_list, "ambientIntensity", (color4.r + color4.g + color4.b) / 3.0f, 0.2f);
+
+		// diffuseColor="0.8 0.8 0.8" SFColor [inputOutput]
+		if(material.Get(AI_MATKEY_COLOR_DIFFUSE, color3) == AI_SUCCESS)
+			AttrHelper_Color3ToAttrList(attr_list, "diffuseColor", color3, aiColor3D(0.8f, 0.8f, 0.8f));
+		else if(material.Get(AI_MATKEY_COLOR_DIFFUSE, color4) == AI_SUCCESS)
+			Color4ToAttrList("diffuseColor", color4, aiColor3D(0.8f, 0.8f, 0.8f));
+
+		// emissiveColor="0 0 0"      SFColor [inputOutput]
+		if(material.Get(AI_MATKEY_COLOR_EMISSIVE, color3) == AI_SUCCESS)
+			AttrHelper_Color3ToAttrList(attr_list, "emissiveColor", color3, aiColor3D(0, 0, 0));
+		else if(material.Get(AI_MATKEY_COLOR_EMISSIVE, color4) == AI_SUCCESS)
+			Color4ToAttrList("emissiveColor", color4, aiColor3D(0, 0, 0));
+
+		// shininess="0.2"            SFFloat [inputOutput]
+		if(material.Get(AI_MATKEY_SHININESS, tvalf) == AI_SUCCESS) AttrHelper_FloatToAttrList(attr_list, "shininess", tvalf, 0.2f);
+
+		// specularColor="0 0 0"      SFColor [inputOutput]
+		if(material.Get(AI_MATKEY_COLOR_SPECULAR, color3) == AI_SUCCESS)
+			AttrHelper_Color3ToAttrList(attr_list, "specularColor", color3, aiColor3D(0, 0, 0));
+		else if(material.Get(AI_MATKEY_COLOR_SPECULAR, color4) == AI_SUCCESS)
+			Color4ToAttrList("specularColor", color4, aiColor3D(0, 0, 0));
+
+		// transparency="0"           SFFloat [inputOutput]
+		if(material.Get(AI_MATKEY_OPACITY, tvalf) == AI_SUCCESS)
+		{
+			if(tvalf > 1) tvalf = 1;
+
+			tvalf = 1.0f - tvalf;
+			AttrHelper_FloatToAttrList(attr_list, "transparency", tvalf, 0);
+		}
+
+		NodeHelper_OpenNode("Material", pTabLevel + 1, true, attr_list);
+		attr_list.clear();
+	}// "Material" node. END.
+
+	//
+	// "ImageTexture" node.
+	//
+	{
+		auto RepeatToAttrList = [&](const string& pAttrName, const bool pAttrValue)
+		{
+			if(!pAttrValue) attr_list.push_back({pAttrName, "false"});
+		};
+
+		bool tvalb;
+		aiString tstring;
+
+		// url=""         MFString
+		if(material.Get(AI_MATKEY_TEXTURE_DIFFUSE(0), tstring) == AI_SUCCESS)
+		{
+			if(strncmp(tstring.C_Str(), AI_EMBEDDED_TEXNAME_PREFIX, strlen(AI_EMBEDDED_TEXNAME_PREFIX)) == 0)
+				LogError("Embedded texture is not supported");
+			else
+				attr_list.push_back({"url", string("\"") + tstring.C_Str() + "\""});
+		}
+
+		// repeatS="true" SFBool
+		if(material.Get(AI_MATKEY_MAPPINGMODE_U_DIFFUSE(0), tvalb) == AI_SUCCESS) RepeatToAttrList("repeatS", tvalb);
+
+		// repeatT="true" SFBool
+		if(material.Get(AI_MATKEY_MAPPINGMODE_V_DIFFUSE(0), tvalb) == AI_SUCCESS) RepeatToAttrList("repeatT", tvalb);
+
+		NodeHelper_OpenNode("ImageTexture", pTabLevel + 1, true, attr_list);
+		attr_list.clear();
+	}// "ImageTexture" node. END.
+
+	//
+	// "TextureTransform" node.
+	//
+	{
+		auto Vec2ToAttrList = [&](const string& pAttrName, const aiVector2D& pAttrValue, const aiVector2D& pAttrDefaultValue)
+		{
+			string tstr;
+
+			if(pAttrValue != pAttrDefaultValue)
+			{
+				AttrHelper_Vec2DArrToString(&pAttrValue, 1, tstr);
+				attr_list.push_back({pAttrName, tstr});
+			}
+		};
+
+		aiUVTransform transform;
+
+		if(material.Get(AI_MATKEY_UVTRANSFORM_DIFFUSE(0), transform) == AI_SUCCESS)
+		{
+			Vec2ToAttrList("translation", transform.mTranslation, aiVector2D(0, 0));
+			AttrHelper_FloatToAttrList(attr_list, "rotation", transform.mRotation, 0);
+			Vec2ToAttrList("scale", transform.mScaling, aiVector2D(1, 1));
+
+			NodeHelper_OpenNode("TextureTransform", pTabLevel + 1, true, attr_list);
+			attr_list.clear();
+		}
+	}// "TextureTransform" node. END.
+
+	//
+	// Close opened nodes.
+	//
+	NodeHelper_CloseNode(NodeName_A, pTabLevel);
+
+}
+
+void X3DExporter::Export_MetadataBoolean(const aiString& pKey, const bool pValue, const size_t pTabLevel)
+{
+list<SAttribute> attr_list;
+
+	attr_list.push_back({"name", pKey.C_Str()});
+	attr_list.push_back({"value", pValue ? "true" : "false"});
+	NodeHelper_OpenNode("MetadataBoolean", pTabLevel, true, attr_list);
+}
+
+void X3DExporter::Export_MetadataDouble(const aiString& pKey, const double pValue, const size_t pTabLevel)
+{
+list<SAttribute> attr_list;
+
+	attr_list.push_back({"name", pKey.C_Str()});
+	attr_list.push_back({"value", to_string(pValue)});
+	NodeHelper_OpenNode("MetadataDouble", pTabLevel, true, attr_list);
+}
+
+void X3DExporter::Export_MetadataFloat(const aiString& pKey, const float pValue, const size_t pTabLevel)
+{
+list<SAttribute> attr_list;
+
+	attr_list.push_back({"name", pKey.C_Str()});
+	attr_list.push_back({"value", to_string(pValue)});
+	NodeHelper_OpenNode("MetadataFloat", pTabLevel, true, attr_list);
+}
+
+void X3DExporter::Export_MetadataInteger(const aiString& pKey, const int32_t pValue, const size_t pTabLevel)
+{
+list<SAttribute> attr_list;
+
+	attr_list.push_back({"name", pKey.C_Str()});
+	attr_list.push_back({"value", to_string(pValue)});
+	NodeHelper_OpenNode("MetadataInteger", pTabLevel, true, attr_list);
+}
+
+void X3DExporter::Export_MetadataString(const aiString& pKey, const aiString& pValue, const size_t pTabLevel)
+{
+list<SAttribute> attr_list;
+
+	attr_list.push_back({"name", pKey.C_Str()});
+	attr_list.push_back({"value", pValue.C_Str()});
+	NodeHelper_OpenNode("MetadataString", pTabLevel, true, attr_list);
+}
+
+bool X3DExporter::CheckAndExport_Light(const aiNode& pNode, const size_t pTabLevel)
+{
+list<SAttribute> attr_list;
+
+auto Vec3ToAttrList = [&](const string& pAttrName, const aiVector3D& pAttrValue, const aiVector3D& pAttrDefaultValue)
+{
+	string tstr;
+
+	if(pAttrValue != pAttrDefaultValue)
+	{
+		AttrHelper_Vec3DArrToString(&pAttrValue, 1, tstr);
+		attr_list.push_back({pAttrName, tstr});
+	}
+};
+
+size_t idx_light;
+bool found = false;
+
+	// Name of the light source can not be empty.
+	if(pNode.mName.length == 0) return false;
+
+	// search for light with name like node has.
+	for(idx_light = 0; mScene->mNumLights; idx_light++)
+	{
+		if(pNode.mName == mScene->mLights[idx_light]->mName)
+		{
+			found = true;
+			break;
+		}
+	}
+
+	if(!found) return false;
+
+	// Light source is found.
+	const aiLight& light = *mScene->mLights[idx_light];// Alias for conveniance.
+
+	aiMatrix4x4 trafo_mat = Matrix_GlobalToCurrent(pNode).Inverse();
+
+	attr_list.push_back({"DEF", light.mName.C_Str()});
+	attr_list.push_back({"global", "true"});// "false" is not supported.
+	// ambientIntensity="0" SFFloat [inputOutput]
+	AttrHelper_FloatToAttrList(attr_list, "ambientIntensity", aiVector3D(light.mColorAmbient.r, light.mColorAmbient.g, light.mColorAmbient.b).Length(), 0);
+	// color="1 1 1"        SFColor [inputOutput]
+	AttrHelper_Color3ToAttrList(attr_list, "color", light.mColorDiffuse, aiColor3D(1, 1, 1));
+
+	switch(light.mType)
+	{
+		case aiLightSource_DIRECTIONAL:
+			{
+				aiVector3D direction = trafo_mat * light.mDirection;
+
+				Vec3ToAttrList("direction", direction, aiVector3D(0, 0, -1));
+				NodeHelper_OpenNode("DirectionalLight", pTabLevel, true, attr_list);
+			}
+
+			break;
+		case aiLightSource_POINT:
+			{
+				aiVector3D attenuation(light.mAttenuationConstant, light.mAttenuationLinear, light.mAttenuationQuadratic);
+				aiVector3D location = trafo_mat * light.mPosition;
+
+				Vec3ToAttrList("attenuation", attenuation, aiVector3D(1, 0, 0));
+				Vec3ToAttrList("location", location, aiVector3D(0, 0, 0));
+				NodeHelper_OpenNode("PointLight", pTabLevel, true, attr_list);
+			}
+
+			break;
+		case aiLightSource_SPOT:
+			{
+				aiVector3D attenuation(light.mAttenuationConstant, light.mAttenuationLinear, light.mAttenuationQuadratic);
+				aiVector3D location = trafo_mat * light.mPosition;
+				aiVector3D direction = trafo_mat * light.mDirection;
+
+				Vec3ToAttrList("attenuation", attenuation, aiVector3D(1, 0, 0));
+				Vec3ToAttrList("location", location, aiVector3D(0, 0, 0));
+				Vec3ToAttrList("direction", direction, aiVector3D(0, 0, -1));
+				AttrHelper_FloatToAttrList(attr_list, "beamWidth", light.mAngleInnerCone, 0.7854f);
+				AttrHelper_FloatToAttrList(attr_list, "cutOffAngle", light.mAngleOuterCone, 1.570796f);
+				NodeHelper_OpenNode("SpotLight", pTabLevel, true, attr_list);
+			}
+
+			break;
+		default:
+			throw DeadlyExportError("Unknown light type: " + to_string(light.mType));
+	}// switch(light.mType)
+
+	return true;
+}
+
+X3DExporter::X3DExporter(const char* pFileName, IOSystem* pIOSystem, const aiScene* pScene, const ExportProperties* pProperties)
+	: mScene(pScene)
+{
+list<SAttribute> attr_list;
+
+	mOutFile = pIOSystem->Open(pFileName, "wt");
+	if(mOutFile == nullptr) throw DeadlyExportError("Could not open output .x3d file: " + string(pFileName));
+
+	// Begin document
+	XML_Write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
+	XML_Write("<!DOCTYPE X3D PUBLIC \"ISO//Web3D//DTD X3D 3.3//EN\" \"http://www.web3d.org/specifications/x3d-3.3.dtd\">\n");
+	// Root node
+	attr_list.push_back({"profile", "Interchange"});
+	attr_list.push_back({"version", "3.3"});
+	attr_list.push_back({"xmlns:xsd", "http://www.w3.org/2001/XMLSchema-instance"});
+	attr_list.push_back({"xsd:noNamespaceSchemaLocation", "http://www.web3d.org/specifications/x3d-3.3.xsd"});
+	NodeHelper_OpenNode("X3D", 0, false, attr_list);
+	attr_list.clear();
+	// <head>: meta data.
+	NodeHelper_OpenNode("head", 1);
+	XML_Write(mIndentationString + "<!-- All \"meta\" from this section tou will found in <Scene> node as MetadataString nodes. -->\n");
+	NodeHelper_CloseNode("head", 1);
+	// Scene node.
+	NodeHelper_OpenNode("Scene", 1);
+	Export_Node(mScene->mRootNode, 2);
+	NodeHelper_CloseNode("Scene", 1);
+	// Close Root node.
+	NodeHelper_CloseNode("X3D", 0);
+	// Cleanup
+	pIOSystem->Close(mOutFile);
+	mOutFile = nullptr;
+}
+
+}// namespace Assimp
+
+#endif // ASSIMP_BUILD_NO_X3D_EXPORTER
+#endif // ASSIMP_BUILD_NO_EXPORT

+ 235 - 0
code/X3DExporter.hpp

@@ -0,0 +1,235 @@
+/// \file   X3DExporter.hpp
+/// \brief  X3D-format files exporter for Assimp.
+/// \date   2016
+/// \author [email protected]
+// Thanks to acorn89 for support.
+
+#ifndef INCLUDED_AI_X3D_EXPORTER_H
+#define INCLUDED_AI_X3D_EXPORTER_H
+
+// Header files, Assimp.
+#include <assimp/DefaultLogger.hpp>
+#include <assimp/Exporter.hpp>
+#include <assimp/material.h>
+#include <assimp/scene.h>
+
+// Header files, stdlib.
+#include <list>
+#include <string>
+
+namespace Assimp
+{
+
+/// \class X3DExporter
+/// Class which export aiScene to X3D file.
+///
+/// Limitations.
+///
+/// Pay attention that X3D is format for interactive graphic and simulations for web browsers. aiScene can not contain all features of the X3D format.
+/// Also, aiScene contain rasterized-like data. For example, X3D can describe circle all cylinder with one tag, but aiScene contain result of tesselation:
+/// vertices, faces etc. Yes, you can use algorithm for detecting figures or shapes, but thats not good idea at all.
+///
+/// Supported nodes:
+///		Core component:
+///			"MetadataBoolean", "MetadataDouble", "MetadataFloat", "MetadataInteger", "MetadataSet", "MetadataString"
+///		Geometry3D component:
+///			"IndexedFaceSet"
+///		Grouping component:
+///			"Group", "Transform"
+///		Lighting component:
+///			"DirectionalLight", "PointLight", "SpotLight"
+///		Rendering component:
+///			"ColorRGBA", "Coordinate", "Normal"
+///		Shape component:
+///			"Shape", "Appearance", "Material"
+///		Texturing component:
+///			"ImageTexture", "TextureCoordinate", "TextureTransform"
+///
+class X3DExporter
+{
+	/***********************************************/
+	/******************** Types ********************/
+	/***********************************************/
+
+	struct SAttribute
+	{
+		const std::string Name;
+		const std::string Value;
+	};
+
+	/***********************************************/
+	/****************** Constants ******************/
+	/***********************************************/
+
+	const aiScene* const mScene;
+
+	/***********************************************/
+	/****************** Variables ******************/
+	/***********************************************/
+
+	IOStream* mOutFile;
+	std::map<size_t, std::string> mDEF_Map_Mesh;
+	std::map<size_t, std::string> mDEF_Map_Material;
+
+private:
+
+	std::string mIndentationString;
+
+	/***********************************************/
+	/****************** Functions ******************/
+	/***********************************************/
+
+	/// \fn void IndentationStringSet(const size_t pNewLevel)
+	/// Set value of the indentation string.
+	/// \param [in] pNewLevel - new level of the indentation.
+	void IndentationStringSet(const size_t pNewLevel);
+
+	/// \fn void XML_Write(const std::string& pData)
+	/// Write data to XML-file.
+	/// \param [in] pData - reference to string which must be written.
+	void XML_Write(const std::string& pData);
+
+	/// \fn aiMatrix4x4 Matrix_GlobalToCurrent(const aiNode& pNode) const
+	/// Calculate transformation matrix for transformation from global coordinate system to pointed aiNode.
+	/// \param [in] pNode - reference to local node.
+	/// \return calculated matrix.
+	aiMatrix4x4 Matrix_GlobalToCurrent(const aiNode& pNode) const;
+
+	/// \fn void AttrHelper_CommaToPoint(std::string& pStringWithComma)
+	/// Convert commas in string to points. Thats need because "std::to_string" result depend on locale (regional settings).
+	/// \param [in, out] pStringWithComma - reference to string, which must be modified.
+	void AttrHelper_CommaToPoint(std::string& pStringWithComma) { for(char& c: pStringWithComma) { if(c == ',') c = '.'; } }
+
+	/// \fn void AttrHelper_FloatToString(const float pValue, std::string& pTargetString)
+	/// Converts float to string.
+	/// \param [in] pValue - value for converting.
+	/// \param [out] pTargetString - reference to string where result will be placed. Will be cleared before using.
+	void AttrHelper_FloatToString(const float pValue, std::string& pTargetString);
+
+	/// \fn void AttrHelper_Vec3DArrToString(const aiVector3D* pArray, const size_t pArray_Size, std::string& pTargetString)
+	/// Converts array of vectors to string.
+	/// \param [in] pArray - pointer to array of vectors.
+	/// \param [in] pArray_Size - count of elements in array.
+	/// \param [out] pTargetString - reference to string where result will be placed. Will be cleared before using.
+	void AttrHelper_Vec3DArrToString(const aiVector3D* pArray, const size_t pArray_Size, std::string& pTargetString);
+
+	/// \fn void AttrHelper_Vec2DArrToString(const aiVector2D* pArray, const size_t pArray_Size, std::string& pTargetString)
+	/// \overload void AttrHelper_Vec3DArrToString(const aiVector3D* pArray, const size_t pArray_Size, std::string& pTargetString)
+	void AttrHelper_Vec2DArrToString(const aiVector2D* pArray, const size_t pArray_Size, std::string& pTargetString);
+
+	/// \fn void AttrHelper_Vec3DAsVec2fArrToString(const aiVector3D* pArray, const size_t pArray_Size, std::string& pTargetString)
+	/// \overload void AttrHelper_Vec3DArrToString(const aiVector3D* pArray, const size_t pArray_Size, std::string& pTargetString)
+	/// Only x, y is used from aiVector3D.
+	void AttrHelper_Vec3DAsVec2fArrToString(const aiVector3D* pArray, const size_t pArray_Size, std::string& pTargetString);
+
+	/// \fn void AttrHelper_Col4DArrToString(const aiColor4D* pArray, const size_t pArray_Size, std::string& pTargetString)
+	/// \overload void AttrHelper_Vec3DArrToString(const aiVector3D* pArray, const size_t pArray_Size, std::string& pTargetString)
+	/// Converts array of colors to string.
+	void AttrHelper_Col4DArrToString(const aiColor4D* pArray, const size_t pArray_Size, std::string& pTargetString);
+
+	/// \fn void AttrHelper_Col3DArrToString(const aiColor3D* pArray, const size_t pArray_Size, std::string& pTargetString)
+	/// \overload void AttrHelper_Col4DArrToString(const aiColor4D* pArray, const size_t pArray_Size, std::string& pTargetString)
+	/// Converts array of colors to string.
+	void AttrHelper_Col3DArrToString(const aiColor3D* pArray, const size_t pArray_Size, std::string& pTargetString);
+
+	/// \fn void AttrHelper_FloatToAttrList(std::list<SAttribute> pList, const std::string& pName, const float pValue, const float pDefaultValue)
+	/// \overload void AttrHelper_Col3DArrToString(const aiColor3D* pArray, const size_t pArray_Size, std::string& pTargetString)
+	void AttrHelper_FloatToAttrList(std::list<SAttribute> pList, const std::string& pName, const float pValue, const float pDefaultValue);
+
+	/// \fn void AttrHelper_Color3ToAttrList(std::list<SAttribute> pList, const std::string& pName, const aiColor3D& pValue, const aiColor3D& pDefaultValue)
+	/// Add attribute to list if value not equal to default.
+	/// \param [in] pList - target list of the attributes.
+	/// \param [in] pName - name of new attribute.
+	/// \param [in] pValue - value of the new attribute.
+	/// \param [in] pDefaultValue - default value for checking: if pValue is equal to pDefaultValue then attribute will not be added.
+	void AttrHelper_Color3ToAttrList(std::list<SAttribute> pList, const std::string& pName, const aiColor3D& pValue, const aiColor3D& pDefaultValue);
+
+	/// \fn void NodeHelper_OpenNode(const std::string& pNodeName, const size_t pTabLevel, const bool pEmptyElement, const std::list<SAttribute>& pAttrList)
+	/// Begin new XML-node element.
+	/// \param [in] pNodeName - name of the element.
+	/// \param [in] pTabLevel - indentation level.
+	/// \param [in] pEmtyElement - if true then empty element will be created.
+	/// \param [in] pAttrList - list of the attributes for element.
+	void NodeHelper_OpenNode(const std::string& pNodeName, const size_t pTabLevel, const bool pEmptyElement, const std::list<SAttribute>& pAttrList);
+
+	/// \fn void NodeHelper_OpenNode(const std::string& pNodeName, const size_t pTabLevel, const bool pEmptyElement = false)
+	/// \overload void NodeHelper_OpenNode(const std::string& pNodeName, const size_t pTabLevel, const bool pEmptyElement, const std::list<SAttribute>& pAttrList)
+	void NodeHelper_OpenNode(const std::string& pNodeName, const size_t pTabLevel, const bool pEmptyElement = false);
+
+	/// \fn void NodeHelper_CloseNode(const std::string& pNodeName, const size_t pTabLevel)
+	/// End XML-node element.
+	/// \param [in] pNodeName - name of the element.
+	/// \param [in] pTabLevel - indentation level.
+	void NodeHelper_CloseNode(const std::string& pNodeName, const size_t pTabLevel);
+
+	/// \fn void Export_Node(const aiNode* pNode, const size_t pTabLevel)
+	/// Export data from scene to XML-file: aiNode.
+	/// \param [in] pNode - source aiNode.
+	/// \param [in] pTabLevel - indentation level.
+	void Export_Node(const aiNode* pNode, const size_t pTabLevel);
+
+	/// \fn void Export_Mesh(const size_t pIdxMesh, const size_t pTabLevel)
+	/// Export data from scene to XML-file: aiMesh.
+	/// \param [in] pMesh - index of the source aiMesh.
+	/// \param [in] pTabLevel - indentation level.
+	void Export_Mesh(const size_t pIdxMesh, const size_t pTabLevel);
+
+	/// \fn void Export_Material(const size_t pIdxMaterial, const size_t pTabLevel)
+	/// Export data from scene to XML-file: aiMaterial.
+	/// \param [in] pIdxMaterial - index of the source aiMaterial.
+	/// \param [in] pTabLevel - indentation level.
+	void Export_Material(const size_t pIdxMaterial, const size_t pTabLevel);
+
+	/// \fn void Export_MetadataBoolean(const aiString& pKey, const bool pValue, const size_t pTabLevel)
+	/// Export data from scene to XML-file: aiMetadata.
+	/// \param [in] pKey - source data: value of the metadata key.
+	/// \param [in] pValue - source data: value of the metadata value.
+	/// \param [in] pTabLevel - indentation level.
+	void Export_MetadataBoolean(const aiString& pKey, const bool pValue, const size_t pTabLevel);
+
+	/// \fn void Export_MetadataDouble(const aiString& pKey, const double pValue, const size_t pTabLevel)
+	/// \overload void Export_MetadataBoolean(const aiString& pKey, const bool pValue, const size_t pTabLevel)
+	void Export_MetadataDouble(const aiString& pKey, const double pValue, const size_t pTabLevel);
+
+	/// \fn void Export_MetadataFloat(const aiString& pKey, const float pValue, const size_t pTabLevel)
+	/// \overload void Export_MetadataBoolean(const aiString& pKey, const bool pValue, const size_t pTabLevel)
+	void Export_MetadataFloat(const aiString& pKey, const float pValue, const size_t pTabLevel);
+
+	/// \fn void Export_MetadataInteger(const aiString& pKey, const int32_t pValue, const size_t pTabLevel)
+	/// \overload void Export_MetadataBoolean(const aiString& pKey, const bool pValue, const size_t pTabLevel)
+	void Export_MetadataInteger(const aiString& pKey, const int32_t pValue, const size_t pTabLevel);
+
+	/// \fn void Export_MetadataString(const aiString& pKey, const aiString& pValue, const size_t pTabLevel)
+	/// \overload void Export_MetadataBoolean(const aiString& pKey, const bool pValue, const size_t pTabLevel)
+	void Export_MetadataString(const aiString& pKey, const aiString& pValue, const size_t pTabLevel);
+
+	/// \fn bool CheckAndExport_Light(const aiNode& pNode, const size_t pTabLevel)
+	/// Check if node point to light source. If yes then export light source.
+	/// \param [in] pNode - reference to node for checking.
+	/// \param [in] pTabLevel - indentation level.
+	/// \return true - if node assigned with light and it was exported, else - return false.
+	bool CheckAndExport_Light(const aiNode& pNode, const size_t pTabLevel);
+
+	/***********************************************/
+	/************** Functions: LOG set *************/
+	/***********************************************/
+
+	/// \fn void LogError(const std::string& pMessage)
+	/// Short variant for calling \ref DefaultLogger::get()->error()
+	void LogError(const std::string& pMessage) { DefaultLogger::get()->error(pMessage); }
+
+public:
+
+	/// \fn X3DExporter()
+	/// Default constructor.
+	X3DExporter(const char* pFileName, IOSystem* pIOSystem, const aiScene* pScene, const ExportProperties* pProperties);
+
+	/// \fn ~X3DExporter()
+	/// Default destructor.
+	~X3DExporter() {}
+
+};// class X3DExporter
+
+}// namespace Assimp
+
+#endif // INCLUDED_AI_X3D_EXPORTER_H

+ 0 - 4
code/X3DImporter.cpp

@@ -1418,7 +1418,6 @@ void X3DImporter::ParseFile(const std::string& pFile, IOSystem* pIOHandler)
 
 void X3DImporter::ParseNode_Root()
 {
-    LogInfo("ParseNode_Root b");
 	// search for root tag <X3D>
     if ( !XML_SearchNode( "X3D" ) )
     {
@@ -1427,7 +1426,6 @@ void X3DImporter::ParseNode_Root()
 
 	ParseHelper_Group_Begin();// create root node element.
 	// parse other contents
-    LogInfo("ParseNode_Root. read loop");
 	while(mReader->read())
 	{
         if ( mReader->getNodeType() != irr::io::EXN_ELEMENT )
@@ -1442,11 +1440,9 @@ void X3DImporter::ParseNode_Root()
 		else
 			XML_CheckNode_SkipUnsupported("Root");
 	}
-    LogInfo("ParseNode_Root. end loop");
 
 	// exit from root node element.
 	ParseHelper_Node_Exit();
-    LogInfo("ParseNode_Root e");
 }
 
 void X3DImporter::ParseNode_Head()

+ 0 - 6
code/X3DImporter.hpp

@@ -397,12 +397,6 @@ private:
 	/// Short variant for calling \ref DefaultLogger::get()->info()
 	void LogInfo(const std::string& pMessage) { DefaultLogger::get()->info(pMessage); }
 
-	/// Short variant for calling \ref DefaultLogger::get()->warn()
-	void LogWarning(const std::string& pMessage) { DefaultLogger::get()->warn(pMessage); }
-
-	/// Short variant for calling \ref DefaultLogger::get()->error()
-	void LogError(const std::string& pMessage) { DefaultLogger::get()->error(pMessage); }
-
 	/***********************************************/
 	/************** Functions: XML set *************/
 	/***********************************************/

+ 9 - 6
code/X3DImporter_Postprocess.cpp

@@ -780,24 +780,27 @@ void X3DImporter::Postprocess_CollectMetadata(const CX3DImporter_NodeElement& pN
 			}
 			else if((*it)->Type == CX3DImporter_NodeElement::ENET_MetaDouble)
 			{
-				// at this case also converting double to float.
-				if(((CX3DImporter_NodeElement_MetaBoolean*)cur_meta)->Value.size() > 0)
+				if(((CX3DImporter_NodeElement_MetaDouble*)cur_meta)->Value.size() > 0)
 					pSceneNode.mMetaData->Set(meta_idx, cur_meta->Name, (float)*(((CX3DImporter_NodeElement_MetaDouble*)cur_meta)->Value.begin()));
 			}
 			else if((*it)->Type == CX3DImporter_NodeElement::ENET_MetaFloat)
 			{
-				if(((CX3DImporter_NodeElement_MetaBoolean*)cur_meta)->Value.size() > 0)
+				if(((CX3DImporter_NodeElement_MetaFloat*)cur_meta)->Value.size() > 0)
 					pSceneNode.mMetaData->Set(meta_idx, cur_meta->Name, *(((CX3DImporter_NodeElement_MetaFloat*)cur_meta)->Value.begin()));
 			}
 			else if((*it)->Type == CX3DImporter_NodeElement::ENET_MetaInteger)
 			{
-				if(((CX3DImporter_NodeElement_MetaBoolean*)cur_meta)->Value.size() > 0)
+				if(((CX3DImporter_NodeElement_MetaInteger*)cur_meta)->Value.size() > 0)
 					pSceneNode.mMetaData->Set(meta_idx, cur_meta->Name, *(((CX3DImporter_NodeElement_MetaInteger*)cur_meta)->Value.begin()));
 			}
 			else if((*it)->Type == CX3DImporter_NodeElement::ENET_MetaString)
 			{
-				if(((CX3DImporter_NodeElement_MetaBoolean*)cur_meta)->Value.size() > 0)
-					pSceneNode.mMetaData->Set(meta_idx, cur_meta->Name, ((CX3DImporter_NodeElement_MetaString*)cur_meta)->Value.begin()->data());
+				if(((CX3DImporter_NodeElement_MetaString*)cur_meta)->Value.size() > 0)
+				{
+					aiString tstr(((CX3DImporter_NodeElement_MetaString*)cur_meta)->Value.begin()->data());
+
+					pSceneNode.mMetaData->Set(meta_idx, cur_meta->Name, tstr);
+				}
 			}
 			else
 			{

+ 0 - 2
code/X3DImporter_Rendering.cpp

@@ -941,7 +941,6 @@ void X3DImporter::ParseNode_Rendering_Normal()
 std::string use, def;
 std::list<aiVector3D> vector;
 CX3DImporter_NodeElement* ne;
-LogInfo("TRACE: scene rendering Normal b");
 
 	MACRO_ATTRREAD_LOOPBEG;
 		MACRO_ATTRREAD_CHECKUSEDEF_RET(def, use);
@@ -968,7 +967,6 @@ LogInfo("TRACE: scene rendering Normal b");
 
 		NodeElement_List.push_back(ne);// add element to node element list because its a new object in graph
 	}// if(!use.empty()) else
-LogInfo("TRACE: scene rendering Normal e");
 }
 
 }// namespace Assimp

+ 52 - 23
code/glTFAsset.h

@@ -128,6 +128,7 @@ namespace glTF
     struct BufferView; // here due to cross-reference
     struct Texture;
     struct Light;
+    struct Skin;
 
 
     // Vec/matrix types, as raw float arrays
@@ -455,25 +456,6 @@ namespace glTF
         void Read(Value& obj, Asset& r);
     };
 
-
-    struct Animation : public Object
-    {
-        struct Channel
-        {
-
-        };
-
-        struct Target
-        {
-
-        };
-
-        struct Sampler
-        {
-
-        };
-    };
-
     //! A buffer points to binary geometry, animation, or skins.
     struct Buffer : public Object
 	{
@@ -825,6 +807,10 @@ namespace glTF
         Ref<Camera> camera;
         Ref<Light>  light;
 
+        std::vector< Ref<Node> > skeletons;       //!< The ID of skeleton nodes. Each of which is the root of a node hierarchy.
+        Ref<Skin>  skin;                          //!< The ID of the skin referenced by this node.
+        std::string jointName;                    //!< Name used when this node is a joint in a skin.
+
         Node() {}
         void Read(Value& obj, Asset& r);
     };
@@ -864,6 +850,11 @@ namespace glTF
 
     struct Skin : public Object
     {
+        Nullable<mat4> bindShapeMatrix;       //!< Floating-point 4x4 transformation matrix stored in column-major order.
+        Ref<Accessor> inverseBindMatrices;    //!< The ID of the accessor containing the floating-point 4x4 inverse-bind matrices.
+        std::vector<std::string/*Ref<Node>*/> jointNames;    //!< Joint names of the joints (nodes with a jointName property) in this skin.
+        std::string name;                     //!< The user-defined name of this object.
+
         Skin() {}
         void Read(Value& obj, Asset& r);
     };
@@ -934,6 +925,44 @@ namespace glTF
         void SetDefaults();
     };
 
+    struct Animation : public Object
+    {
+        struct AnimSampler {
+            std::string id;               //!< The ID of this sampler.
+            std::string input;            //!< The ID of a parameter in this animation to use as key-frame input.
+            std::string interpolation;    //!< Type of interpolation algorithm to use between key-frames.
+            std::string output;           //!< The ID of a parameter in this animation to use as key-frame output.
+        };
+
+        struct AnimChannel {
+            std::string sampler;         //!< The ID of one sampler present in the containing animation's samplers property.
+
+            struct AnimTarget {
+                Ref<Node> id;            //!< The ID of the node to animate.
+                std::string path;        //!< The name of property of the node to animate ("translation", "rotation", or "scale").
+            } target;
+        };
+
+        struct AnimParameters {
+            Ref<Accessor> TIME;           //!< Accessor reference to a buffer storing a array of floating point scalar values.
+            Ref<Accessor> rotation;       //!< Accessor reference to a buffer storing a array of four-component floating-point vectors.
+            Ref<Accessor> scale;          //!< Accessor reference to a buffer storing a array of three-component floating-point vectors.
+            Ref<Accessor> translation;    //!< Accessor reference to a buffer storing a array of three-component floating-point vectors.
+        };
+
+        // AnimChannel Channels[3];            //!< Connect the output values of the key-frame animation to a specific node in the hierarchy.
+        // AnimParameters Parameters;          //!< The samplers that interpolate between the key-frames.
+        // AnimSampler Samplers[3];            //!< The parameterized inputs representing the key-frame data.
+
+        std::vector<AnimChannel> Channels;            //!< Connect the output values of the key-frame animation to a specific node in the hierarchy.
+        AnimParameters Parameters;                    //!< The samplers that interpolate between the key-frames.
+        std::vector<AnimSampler> Samplers;         //!< The parameterized inputs representing the key-frame data.
+
+        Animation() {}
+        void Read(Value& obj, Asset& r);
+    };
+
+
     //! Base class for LazyDict that acts as an interface
     class LazyDictBase
     {
@@ -966,7 +995,7 @@ namespace glTF
         typedef typename std::gltf_unordered_map< std::string, unsigned int > Dict;
 
         std::vector<T*>  mObjs;      //! The read objects
-        Dict             mObjsById;  //! The read objects accesible by id
+        Dict             mObjsById;  //! The read objects accessible by id
         const char*      mDictId;    //! ID of the dictionary object
         const char*      mExtId;     //! ID of the extension defining the dictionary
         Value*           mDict;      //! JSON dictionary object
@@ -986,7 +1015,7 @@ namespace glTF
 
         Ref<T> Get(const char* id);
         Ref<T> Get(unsigned int i);
-		Ref<T> Get(const std::string& pID) { return Get(pID.c_str()); }
+        Ref<T> Get(const std::string& pID) { return Get(pID.c_str()); }
 
         Ref<T> Create(const char* id);
         Ref<T> Create(const std::string& id)
@@ -1084,7 +1113,7 @@ namespace glTF
         LazyDict<Sampler>     samplers;
         LazyDict<Scene>       scenes;
         //LazyDict<Shader>    shaders;
-        //LazyDict<Skin>      skins;
+        LazyDict<Skin>      skins;
         //LazyDict<Technique> techniques;
         LazyDict<Texture>     textures;
 
@@ -1109,7 +1138,7 @@ namespace glTF
             , samplers      (*this, "samplers")
             , scenes        (*this, "scenes")
             //, shaders     (*this, "shaders")
-            //, skins       (*this, "skins")
+            , skins       (*this, "skins")
             //, techniques  (*this, "techniques")
             , textures      (*this, "textures")
             , lights        (*this, "lights", "KHR_materials_common")

+ 86 - 0
code/glTFAssetWriter.inl

@@ -102,7 +102,65 @@ namespace glTF {
 
     inline void Write(Value& obj, Animation& a, AssetWriter& w)
     {
+        /****************** Channels *******************/
+        Value channels;
+        channels.SetArray();
+        channels.Reserve(unsigned(a.Channels.size()), w.mAl);
+
+        for (size_t i = 0; i < unsigned(a.Channels.size()); ++i) {
+            Animation::AnimChannel& c = a.Channels[i];
+            Value valChannel;
+            valChannel.SetObject();
+            {
+                valChannel.AddMember("sampler", c.sampler, w.mAl);
+
+                Value valTarget;
+                valTarget.SetObject();
+                {
+                    valTarget.AddMember("id", StringRef(c.target.id->id), w.mAl);
+                    valTarget.AddMember("path", c.target.path, w.mAl);
+                }
+                valChannel.AddMember("target", valTarget, w.mAl);
+            }
+            channels.PushBack(valChannel, w.mAl);
+        }
+        obj.AddMember("channels", channels, w.mAl);
 
+        /****************** Parameters *******************/
+        Value valParameters;
+        valParameters.SetObject();
+        {
+            if (a.Parameters.TIME) {
+                valParameters.AddMember("TIME", StringRef(a.Parameters.TIME->id), w.mAl);
+            }
+            if (a.Parameters.rotation) {
+                valParameters.AddMember("rotation", StringRef(a.Parameters.rotation->id), w.mAl);
+            }
+            if (a.Parameters.scale) {
+                valParameters.AddMember("scale", StringRef(a.Parameters.scale->id), w.mAl);
+            }
+            if (a.Parameters.translation) {
+                valParameters.AddMember("translation", StringRef(a.Parameters.translation->id), w.mAl);
+            }
+        }
+        obj.AddMember("parameters", valParameters, w.mAl);
+
+        /****************** Samplers *******************/
+        Value valSamplers;
+        valSamplers.SetObject();
+
+        for (size_t i = 0; i < unsigned(a.Samplers.size()); ++i) {
+            Animation::AnimSampler& s = a.Samplers[i];
+            Value valSampler;
+            valSampler.SetObject();
+            {
+                valSampler.AddMember("input", s.input, w.mAl);
+                valSampler.AddMember("interpolation", s.interpolation, w.mAl);
+                valSampler.AddMember("output", s.output, w.mAl);
+            }
+            valSamplers.AddMember(StringRef(s.id), valSampler, w.mAl);
+        }
+        obj.AddMember("samplers", valSamplers, w.mAl);
     }
 
     inline void Write(Value& obj, Buffer& b, AssetWriter& w)
@@ -327,6 +385,16 @@ namespace glTF {
         AddRefsVector(obj, "children", n.children, w.mAl);
 
         AddRefsVector(obj, "meshes", n.meshes, w.mAl);
+
+        AddRefsVector(obj, "skeletons", n.skeletons, w.mAl);
+
+        if (n.skin) {
+            obj.AddMember("skin", Value(n.skin->id, w.mAl).Move(), w.mAl);
+        }
+
+        if (!n.jointName.empty()) {
+          obj.AddMember("jointName", n.jointName, w.mAl);
+        }
     }
 
     inline void Write(Value& obj, Program& b, AssetWriter& w)
@@ -362,6 +430,24 @@ namespace glTF {
 
     inline void Write(Value& obj, Skin& b, AssetWriter& w)
     {
+        /****************** jointNames *******************/
+        Value vJointNames;
+        vJointNames.SetArray();
+        vJointNames.Reserve(unsigned(b.jointNames.size()), w.mAl);
+
+        for (size_t i = 0; i < unsigned(b.jointNames.size()); ++i) {
+            vJointNames.PushBack(StringRef(b.jointNames[i]), w.mAl);
+        }
+        obj.AddMember("jointNames", vJointNames, w.mAl);
+
+        if (b.bindShapeMatrix.isPresent) {
+            Value val;
+            obj.AddMember("bindShapeMatrix", MakeValue(val, b.bindShapeMatrix.value, w.mAl).Move(), w.mAl);
+        }
+
+        if (b.inverseBindMatrices) {
+            obj.AddMember("inverseBindMatrices", Value(b.inverseBindMatrices->id, w.mAl).Move(), w.mAl);
+        }
 
     }
 

+ 218 - 11
code/glTFExporter.cpp

@@ -80,7 +80,6 @@ namespace Assimp {
     // Worker function for exporting a scene to GLTF. Prototyped and registered in Exporter.cpp
     void ExportSceneGLTF(const char* pFile, IOSystem* pIOSystem, const aiScene* pScene, const ExportProperties* pProperties)
     {
-
         // invoke the exporter
         glTFExporter exporter(pFile, pIOSystem, pScene, pProperties, false);
     }
@@ -126,26 +125,24 @@ glTFExporter::glTFExporter(const char* filename, IOSystem* pIOSystem, const aiSc
 
     ExportMetadata();
 
-    //for (unsigned int i = 0; i < pScene->mNumAnimations; ++i) {}
-
     //for (unsigned int i = 0; i < pScene->mNumCameras; ++i) {}
 
     //for (unsigned int i = 0; i < pScene->mNumLights; ++i) {}
 
-
     ExportMaterials();
 
-    ExportMeshes();
-
-    //for (unsigned int i = 0; i < pScene->mNumTextures; ++i) {}
-
-
     if (mScene->mRootNode) {
         ExportNode(mScene->mRootNode);
     }
 
+    ExportMeshes();
+
+    //for (unsigned int i = 0; i < pScene->mNumTextures; ++i) {}
+
     ExportScene();
 
+    ExportAnimations();
+
     glTF::AssetWriter writer(*mAsset);
 
     if (isBinary) {
@@ -164,6 +161,14 @@ static void CopyValue(const aiMatrix4x4& v, glTF::mat4& o)
     o[12] = v.a4; o[13] = v.b4; o[14] = v.c4; o[15] = v.d4;
 }
 
+static void IdentityMatrix4(glTF::mat4& o)
+{
+    o[ 0] = 1; o[ 1] = 0; o[ 2] = 0; o[ 3] = 0;
+    o[ 4] = 0; o[ 5] = 1; o[ 6] = 0; o[ 7] = 0;
+    o[ 8] = 0; o[ 9] = 0; o[10] = 1; o[11] = 0;
+    o[12] = 0; o[13] = 0; o[14] = 0; o[15] = 1;
+}
+
 inline Ref<Accessor> ExportData(Asset& a, std::string& meshName, Ref<Buffer>& buffer,
     unsigned int count, void* data, AttribType::Value typeIn, AttribType::Value typeOut, ComponentType compType, bool isIndices = false)
 {
@@ -359,6 +364,78 @@ void glTFExporter::ExportMaterials()
     }
 }
 
+void ExportSkin(Asset& mAsset, const aiMesh* aim, Ref<Mesh>& meshRef, Ref<Buffer>& bufferRef)
+{
+    std::string skinName = aim->mName.C_Str();
+    skinName = mAsset.FindUniqueID(skinName, "skin");
+    Ref<Skin> skinRef = mAsset.skins.Create(skinName);
+    skinRef->name = skinName;
+
+    mat4* inverseBindMatricesData = new mat4[aim->mNumBones];
+
+    //-------------------------------------------------------
+    // Store the vertex joint and weight data.
+    vec4* vertexJointData = new vec4[aim->mNumVertices];
+    vec4* vertexWeightData = new vec4[aim->mNumVertices];
+    unsigned int* jointsPerVertex = new unsigned int[aim->mNumVertices];
+    for (size_t i = 0; i < aim->mNumVertices; ++i) {
+        jointsPerVertex[i] = 0;
+        for (size_t j = 0; j < 4; ++j) {
+            vertexJointData[i][j] = 0;
+            vertexWeightData[i][j] = 0;
+        }
+    }
+
+    for (unsigned int idx_bone = 0; idx_bone < aim->mNumBones; ++idx_bone) {
+        const aiBone* aib = aim->mBones[idx_bone];
+
+        // aib->mName   =====>  skinRef->jointNames
+        // Find the node with id = mName.
+        Ref<Node> nodeRef = mAsset.nodes.Get(aib->mName.C_Str());
+        nodeRef->jointName = "joint_" + std::to_string(idx_bone);
+        skinRef->jointNames.push_back("joint_" + std::to_string(idx_bone));
+
+        // Identity Matrix   =====>  skinRef->bindShapeMatrix
+        // Temporary. Hard-coded identity matrix here
+        skinRef->bindShapeMatrix.isPresent = true;
+        IdentityMatrix4(skinRef->bindShapeMatrix.value);
+
+        // aib->mOffsetMatrix   =====>  skinRef->inverseBindMatrices
+        CopyValue(aib->mOffsetMatrix, inverseBindMatricesData[idx_bone]);
+
+        // aib->mWeights   =====>  vertexWeightData
+        for (unsigned int idx_weights = 0; idx_weights < aib->mNumWeights; ++idx_weights) {
+            aiVertexWeight tmpVertWeight = aib->mWeights[idx_weights];
+            vertexJointData[tmpVertWeight.mVertexId][jointsPerVertex[tmpVertWeight.mVertexId]] = idx_bone;
+            vertexWeightData[tmpVertWeight.mVertexId][jointsPerVertex[tmpVertWeight.mVertexId]] = tmpVertWeight.mWeight;
+
+            jointsPerVertex[tmpVertWeight.mVertexId] += 1;
+        }
+
+    } // End: for-loop mNumMeshes
+
+    // Create the Accessor for skinRef->inverseBindMatrices
+    Ref<Accessor> invBindMatrixAccessor = ExportData(mAsset, skinName, bufferRef, aim->mNumBones, inverseBindMatricesData, AttribType::MAT4, AttribType::MAT4, ComponentType_FLOAT);
+    if (invBindMatrixAccessor) skinRef->inverseBindMatrices = invBindMatrixAccessor;
+
+
+    Mesh::Primitive& p = meshRef->primitives.back();
+    Ref<Accessor> vertexJointAccessor = ExportData(mAsset, skinName, bufferRef, aim->mNumVertices, vertexJointData, AttribType::VEC4, AttribType::VEC4, ComponentType_FLOAT);
+    if (vertexJointAccessor) p.attributes.joint.push_back(vertexJointAccessor);
+
+    Ref<Accessor> vertexWeightAccessor = ExportData(mAsset, skinName, bufferRef, aim->mNumVertices, vertexWeightData, AttribType::VEC4, AttribType::VEC4, ComponentType_FLOAT);
+    if (vertexWeightAccessor) p.attributes.weight.push_back(vertexWeightAccessor);
+
+
+    // Create the skinned mesh instance node.
+    Ref<Node> node = mAsset.nodes.Create(mAsset.FindUniqueID(skinName, "node"));
+    // Ref<Node> node = mAsset.nodes.Get(aim->mBones[0]->mName.C_Str());
+    node->meshes.push_back(meshRef);
+    node->name = node->id;
+    node->skeletons.push_back(mAsset.nodes.Get(aim->mBones[0]->mName.C_Str()));
+    node->skin = skinRef;
+}
+
 void glTFExporter::ExportMeshes()
 {
     // Not for
@@ -369,7 +446,7 @@ void glTFExporter::ExportMeshes()
     typedef unsigned short IndicesType;
 
     // Variables needed for compression. BEGIN.
-    // Indices, not pointers - because pointer to buffer is changin while writing to it.
+    // Indices, not pointers - because pointer to buffer is changing while writing to it.
     size_t idx_srcdata_begin;// Index of buffer before writing mesh data. Also, index of begin of coordinates array in buffer.
     size_t idx_srcdata_normal = SIZE_MAX;// Index of begin of normals array in buffer. SIZE_MAX - mean that mesh has no normals.
     std::vector<size_t> idx_srcdata_tc;// Array of indices. Every index point to begin of texture coordinates array in buffer.
@@ -480,6 +557,12 @@ void glTFExporter::ExportMeshes()
                 p.mode = PrimitiveMode_TRIANGLES;
         }
 
+    /*************** Skins ****************/
+    ///TODO: Fix skinning animation
+    // if(aim->HasBones()) {
+    //     ExportSkin(*mAsset, aim, m, b);
+    // }
+
 		/****************** Compression ******************/
 		///TODO: animation: weights, joints.
 		if(comp_allow)
@@ -571,7 +654,7 @@ void glTFExporter::ExportMeshes()
 			m->Extension.push_back(ext);
 #endif
 		}// if(comp_allow)
-	}// for (unsigned int i = 0; i < mScene->mNumMeshes; ++i) {
+	}// for (unsigned int i = 0; i < mScene->mNumMeshes; ++i)
 }
 
 unsigned int glTFExporter::ExportNode(const aiNode* n)
@@ -622,10 +705,134 @@ void glTFExporter::ExportMetadata()
     asset.generator = buffer;
 }
 
+inline void ExtractAnimationData(Asset& mAsset, std::string& animId, Ref<Animation>& animRef, Ref<Buffer>& buffer, const aiNodeAnim* nodeChannel)
+{
+    // Loop over the data and check to see if it exactly matches an existing buffer.
+    //    If yes, then reference the existing corresponding accessor.
+    //    Otherwise, add to the buffer and create a new accessor.
+
+    //-------------------------------------------------------
+    // Extract TIME parameter data.
+    // Check if the timeStamps are the same for mPositionKeys, mRotationKeys, and mScalingKeys.
+    if(nodeChannel->mNumPositionKeys > 0) {
+        typedef float TimeType;
+        std::vector<TimeType> timeData;
+        timeData.resize(nodeChannel->mNumPositionKeys);
+        for (size_t i = 0; i < nodeChannel->mNumPositionKeys; ++i) {
+            timeData[i] = nodeChannel->mPositionKeys[i].mTime;  // Check if we have to cast type here. e.g. uint16_t()
+        }
+
+        Ref<Accessor> timeAccessor = ExportData(mAsset, animId, buffer, nodeChannel->mNumPositionKeys, &timeData[0], AttribType::SCALAR, AttribType::SCALAR, ComponentType_FLOAT);
+        if (timeAccessor) animRef->Parameters.TIME = timeAccessor;
+    }
+
+    //-------------------------------------------------------
+    // Extract translation parameter data
+    if(nodeChannel->mNumPositionKeys > 0) {
+        C_STRUCT aiVector3D* translationData = new aiVector3D[nodeChannel->mNumPositionKeys];
+        for (size_t i = 0; i < nodeChannel->mNumPositionKeys; ++i) {
+            translationData[i] = nodeChannel->mPositionKeys[i].mValue;
+        }
+
+        Ref<Accessor> tranAccessor = ExportData(mAsset, animId, buffer, nodeChannel->mNumPositionKeys, translationData, AttribType::VEC3, AttribType::VEC3, ComponentType_FLOAT);
+        if (tranAccessor) animRef->Parameters.translation = tranAccessor;
+    }
+
+    //-------------------------------------------------------
+    // Extract scale parameter data
+    if(nodeChannel->mNumScalingKeys > 0) {
+        C_STRUCT aiVector3D* scaleData = new aiVector3D[nodeChannel->mNumScalingKeys];
+        for (size_t i = 0; i < nodeChannel->mNumScalingKeys; ++i) {
+            scaleData[i] = nodeChannel->mScalingKeys[i].mValue;
+        }
+
+        Ref<Accessor> scaleAccessor = ExportData(mAsset, animId, buffer, nodeChannel->mNumScalingKeys, scaleData, AttribType::VEC3, AttribType::VEC3, ComponentType_FLOAT);
+        if (scaleAccessor) animRef->Parameters.scale = scaleAccessor;
+    }
+
+    //-------------------------------------------------------
+    // Extract rotation parameter data
+    if(nodeChannel->mNumRotationKeys > 0) {
+        C_STRUCT aiQuaternion* rotationData = new aiQuaternion[nodeChannel->mNumRotationKeys];
+        for (size_t i = 0; i < nodeChannel->mNumRotationKeys; ++i) {
+            rotationData[i] = nodeChannel->mRotationKeys[i].mValue;
+        }
+
+        Ref<Accessor> rotAccessor = ExportData(mAsset, animId, buffer, nodeChannel->mNumRotationKeys, rotationData, AttribType::VEC4, AttribType::VEC4, ComponentType_FLOAT);
+        if (rotAccessor) animRef->Parameters.rotation = rotAccessor;
+    }
+}
+
+void glTFExporter::ExportAnimations()
+{
+    Ref<Buffer> bufferRef = mAsset->buffers.Get(unsigned (0));
+
+    for (unsigned int i = 0; i < mScene->mNumAnimations; ++i) {
+        const aiAnimation* anim = mScene->mAnimations[i];
+
+        std::string nameAnim = "anim";
+        if (anim->mName.length > 0) {
+            nameAnim = anim->mName.C_Str();
+        }
+
+        for (unsigned int channelIndex = 0; channelIndex < anim->mNumChannels; ++channelIndex) {
+            const aiNodeAnim* nodeChannel = anim->mChannels[channelIndex];
+
+            // It appears that assimp stores this type of animation as multiple animations.
+            // where each aiNodeAnim in mChannels animates a specific node.
+            std::string name = nameAnim + "_" + std::to_string(channelIndex);
+            name = mAsset->FindUniqueID(name, "animation");
+            Ref<Animation> animRef = mAsset->animations.Create(name);
+
+            /******************* Parameters ********************/
+            ExtractAnimationData(*mAsset, name, animRef, bufferRef, nodeChannel);
+
+            for (unsigned int j = 0; j < 3; ++j) {
+                std::string channelType;
+                int channelSize;
+                switch (j) {
+                    case 0:
+                        channelType = "rotation";
+                        channelSize = nodeChannel->mNumRotationKeys;
+                        break;
+                    case 1:
+                        channelType = "scale";
+                        channelSize = nodeChannel->mNumScalingKeys;
+                        break;
+                    case 2:
+                        channelType = "translation";
+                        channelSize = nodeChannel->mNumPositionKeys;
+                        break;
+                }
 
+                if (channelSize < 1) { continue; }
 
+                Animation::AnimChannel tmpAnimChannel;
+                Animation::AnimSampler tmpAnimSampler;
 
+                tmpAnimChannel.sampler = name + "_" + channelType;
+                tmpAnimChannel.target.path = channelType;
+                tmpAnimSampler.output = channelType;
+                tmpAnimSampler.id = name + "_" + channelType;
 
+                tmpAnimChannel.target.id = mAsset->nodes.Get(nodeChannel->mNodeName.C_Str());
+
+                tmpAnimSampler.input = "TIME";
+                tmpAnimSampler.interpolation = "LINEAR";
+
+                animRef->Channels.push_back(tmpAnimChannel);
+                animRef->Samplers.push_back(tmpAnimSampler);
+            }
+
+        }
+
+        // Assimp documentation staes this is not used (not implemented)
+        // for (unsigned int channelIndex = 0; channelIndex < anim->mNumMeshChannels; ++channelIndex) {
+        //     const aiMeshAnim* meshChannel = anim->mMeshChannels[channelIndex];
+        // }
+
+    } // End: for-loop mNumAnimations
+}
 
 
 #endif // ASSIMP_BUILD_NO_GLTF_EXPORTER

+ 1 - 1
code/glTFExporter.h

@@ -59,7 +59,6 @@ struct aiMaterial;
 namespace glTF
 {
     class Asset;
-
     struct TexProperty;
 }
 
@@ -101,6 +100,7 @@ namespace Assimp
         void ExportMeshes();
         unsigned int ExportNode(const aiNode* node);
         void ExportScene();
+        void ExportAnimations();
     };
 
 }

+ 29 - 0
include/assimp/matrix4x4.h

@@ -93,7 +93,15 @@ public:
 public:
 
     // array access operators
+	/** @fn TReal* operator[] (unsigned int p_iIndex)
+	 *  @param [in] p_iIndex - index of the row.
+	 *  @return pointer to pointed row.
+	 */
     TReal* operator[]       (unsigned int p_iIndex);
+
+	/** @fn const TReal* operator[] (unsigned int p_iIndex) const
+	 *  @overload TReal* operator[] (unsigned int p_iIndex)
+	 */
     const TReal* operator[] (unsigned int p_iIndex) const;
 
     // comparison operators
@@ -140,6 +148,27 @@ public:
     void Decompose (aiVector3t<TReal>& scaling, aiQuaterniont<TReal>& rotation,
         aiVector3t<TReal>& position) const;
 
+	// -------------------------------------------------------------------
+	/** @fn void Decompose(aiVector3t<TReal>& pScaling, aiVector3t<TReal>& pRotation, aiVector3t<TReal>& pPosition) const
+     *  @brief Decompose a trafo matrix into its original components.
+     * Thx to good FAQ at http://www.gamedev.ru/code/articles/faq_matrix_quat
+     *  @param [out] pScaling - Receives the output scaling for the x,y,z axes.
+     *  @param [out] pRotation - Receives the output rotation as a Euler angles.
+     *  @param [out] pPosition - Receives the output position for the x,y,z axes.
+     */
+    void Decompose(aiVector3t<TReal>& pScaling, aiVector3t<TReal>& pRotation, aiVector3t<TReal>& pPosition) const;
+
+	// -------------------------------------------------------------------
+	/** @fn void Decompose(aiVector3t<TReal>& pScaling, aiVector3t<TReal>& pRotationAxis, TReal& pRotationAngle, aiVector3t<TReal>& pPosition) const
+     *  @brief Decompose a trafo matrix into its original components
+	 * Thx to good FAQ at http://www.gamedev.ru/code/articles/faq_matrix_quat
+     *  @param [out] pScaling - Receives the output scaling for the x,y,z axes.
+     *  @param [out] pRotationAxis - Receives the output rotation axis.
+	 *  @param [out] pRotationAngle - Receives the output rotation angle for @ref pRotationAxis.
+     *  @param [out] pPosition - Receives the output position for the x,y,z axes.
+     */
+    void Decompose(aiVector3t<TReal>& pScaling, aiVector3t<TReal>& pRotationAxis, TReal& pRotationAngle, aiVector3t<TReal>& pPosition) const;
+
     // -------------------------------------------------------------------
     /** @brief Decompose a trafo matrix with no scaling into its
      *    original components

+ 113 - 44
include/assimp/matrix4x4.inl

@@ -299,57 +299,126 @@ inline bool aiMatrix4x4t<TReal>::Equal(const aiMatrix4x4t<TReal>& m, TReal epsil
 }
 
 // ----------------------------------------------------------------------------------------
-template <typename TReal>
-inline void aiMatrix4x4t<TReal>::Decompose (aiVector3t<TReal>& scaling, aiQuaterniont<TReal>& rotation,
-    aiVector3t<TReal>& position) const
-{
-    const aiMatrix4x4t<TReal>& _this = *this;
 
-    // extract translation
-    position.x = _this[0][3];
-    position.y = _this[1][3];
-    position.z = _this[2][3];
+#define ASSIMP_MATRIX4_4_DECOMPOSE_PART		\
+	const aiMatrix4x4t<TReal>& _this = *this;/* Create alias for conveniance. */ \
+	\
+	/* extract translation */ \
+	pPosition.x = _this[0][3]; \
+	pPosition.y = _this[1][3]; \
+	pPosition.z = _this[2][3]; \
+	\
+	/* extract the columns of the matrix. */ \
+	aiVector3t<TReal> vCols[3] = { \
+		aiVector3t<TReal>(_this[0][0],_this[1][0],_this[2][0]), \
+		aiVector3t<TReal>(_this[0][1],_this[1][1],_this[2][1]), \
+		aiVector3t<TReal>(_this[0][2],_this[1][2],_this[2][2]) \
+	}; \
+	\
+	/* extract the scaling factors */ \
+	pScaling.x = vCols[0].Length(); \
+	pScaling.y = vCols[1].Length(); \
+	pScaling.z = vCols[2].Length(); \
+	\
+	/* and the sign of the scaling */ \
+	if (Determinant() < 0) pScaling = -pScaling; \
+	\
+	/* and remove all scaling from the matrix */ \
+	if(pScaling.x) vCols[0] /= pScaling.x; \
+	if(pScaling.y) vCols[1] /= pScaling.y; \
+	if(pScaling.z) vCols[2] /= pScaling.z; \
+	\
+	do {} while(false)
 
-    // extract the rows of the matrix
-    aiVector3t<TReal> vRows[3] = {
-        aiVector3t<TReal>(_this[0][0],_this[1][0],_this[2][0]),
-        aiVector3t<TReal>(_this[0][1],_this[1][1],_this[2][1]),
-        aiVector3t<TReal>(_this[0][2],_this[1][2],_this[2][2])
-    };
-
-    // extract the scaling factors
-    scaling.x = vRows[0].Length();
-    scaling.y = vRows[1].Length();
-    scaling.z = vRows[2].Length();
-
-    // and the sign of the scaling
-    if (Determinant() < 0) {
-        scaling.x = -scaling.x;
-        scaling.y = -scaling.y;
-        scaling.z = -scaling.z;
-    }
 
-    // and remove all scaling from the matrix
-    if(scaling.x)
-    {
-        vRows[0] /= scaling.x;
-    }
-    if(scaling.y)
-    {
-        vRows[1] /= scaling.y;
-    }
-    if(scaling.z)
-    {
-        vRows[2] /= scaling.z;
-    }
+
+
+template <typename TReal>
+inline void aiMatrix4x4t<TReal>::Decompose (aiVector3t<TReal>& pScaling, aiQuaterniont<TReal>& pRotation,
+    aiVector3t<TReal>& pPosition) const
+{
+	ASSIMP_MATRIX4_4_DECOMPOSE_PART;
 
     // build a 3x3 rotation matrix
-    aiMatrix3x3t<TReal> m(vRows[0].x,vRows[1].x,vRows[2].x,
-        vRows[0].y,vRows[1].y,vRows[2].y,
-        vRows[0].z,vRows[1].z,vRows[2].z);
+    aiMatrix3x3t<TReal> m(vCols[0].x,vCols[1].x,vCols[2].x,
+        vCols[0].y,vCols[1].y,vCols[2].y,
+        vCols[0].z,vCols[1].z,vCols[2].z);
 
     // and generate the rotation quaternion from it
-    rotation = aiQuaterniont<TReal>(m);
+    pRotation = aiQuaterniont<TReal>(m);
+}
+
+template <typename TReal>
+inline void aiMatrix4x4t<TReal>::Decompose(aiVector3t<TReal>& pScaling, aiVector3t<TReal>& pRotation, aiVector3t<TReal>& pPosition) const
+{
+	ASSIMP_MATRIX4_4_DECOMPOSE_PART;
+
+	/*
+	    |  CE     -CF      D   0 |
+	M = |  BDE+AF -BDF+AE -BC  0 |
+	    | -ADE+BF -ADF+BE  AC  0 |
+	    |  0       0       0   1 |
+
+	A = cos(angle_x), B = sin(angle_x);
+	C = cos(angle_y), D = sin(angle_y);
+	E = cos(angle_z), F = sin(angle_z);
+	*/
+
+	// Use a small epsilon to solve floating-point inaccuracies
+    const TReal epsilon = 10e-3f;
+
+	pRotation.y  = asin(vCols[2].x);// D. Angle around oY.
+
+	TReal C = cos(pRotation.y);
+
+	if(fabs(C) > epsilon)
+	{
+		// Finding angle around oX.
+		TReal tan_x =  vCols[2].z / C;// A
+		TReal tan_y = -vCols[2].y / C;// B
+
+		pRotation.x = atan2(tan_y, tan_x);
+		// Finding angle around oZ.
+		tan_x =  vCols[0].x / C;// E
+		tan_y = -vCols[1].x / C;// F
+		pRotation.z = atan2(tan_y, tan_x);
+	}
+	else
+	{// oY is fixed.
+		pRotation.x = 0;// Set angle around oX to 0. => A == 1, B == 0, C == 0, D == 1.
+
+		// And finding angle around oZ.
+		TReal tan_x = vCols[1].y;// -BDF+AE => E
+		TReal tan_y = vCols[0].y;//  BDE+AF => F
+
+		pRotation.z = atan2(tan_y, tan_x);
+	}
+}
+
+#undef ASSIMP_MATRIX4_4_DECOMPOSE_PART
+
+template <typename TReal>
+inline void aiMatrix4x4t<TReal>::Decompose(aiVector3t<TReal>& pScaling, aiVector3t<TReal>& pRotationAxis, TReal& pRotationAngle,
+											aiVector3t<TReal>& pPosition) const
+{
+aiQuaterniont<TReal> pRotation;
+
+	Decompose(pScaling, pRotation, pPosition);
+	pRotation.Normalize();
+
+	TReal angle_cos = pRotation.w;
+	TReal angle_sin = sqrt(1.0f - angle_cos * angle_cos);
+
+	pRotationAngle = acos(angle_cos) * 2;
+
+	// Use a small epsilon to solve floating-point inaccuracies
+    const TReal epsilon = 10e-3f;
+
+	if(fabs(angle_sin) < epsilon) angle_sin = 1;
+
+	pRotationAxis.x = pRotation.x / angle_sin;
+	pRotationAxis.y = pRotation.y / angle_sin;
+	pRotationAxis.z = pRotation.z / angle_sin;
 }
 
 // ----------------------------------------------------------------------------------------

+ 25 - 9
include/assimp/metadata.h

@@ -64,12 +64,12 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  // -------------------------------------------------------------------------------
 typedef enum aiMetadataType
 {
-    AI_BOOL = 0,
-    AI_INT = 1,
-    AI_UINT64 = 2,
-    AI_FLOAT = 3,
-    AI_DOUBLE = 4,
-    AI_AISTRING = 5,
+    AI_BOOL       = 0,
+    AI_INT32      = 1,
+    AI_UINT64     = 2,
+    AI_FLOAT      = 3,
+    AI_DOUBLE     = 4,
+    AI_AISTRING   = 5,
     AI_AIVECTOR3D = 6,
 
 #ifndef SWIG
@@ -106,7 +106,7 @@ struct aiMetadataEntry
   */
  // -------------------------------------------------------------------------------
 inline aiMetadataType GetAiType( bool ) { return AI_BOOL; }
-inline aiMetadataType GetAiType( int ) { return AI_INT; }
+inline aiMetadataType GetAiType( int32_t ) { return AI_INT32; }
 inline aiMetadataType GetAiType( uint64_t ) { return AI_UINT64; }
 inline aiMetadataType GetAiType( float ) { return AI_FLOAT; }
 inline aiMetadataType GetAiType( double ) { return AI_DOUBLE; }
@@ -165,8 +165,8 @@ struct aiMetadata
                 case AI_BOOL:
                     delete static_cast<bool*>(data);
                     break;
-                case AI_INT:
-                    delete static_cast<int*>(data);
+                case AI_INT32:
+                    delete static_cast<int32_t*>(data);
                     break;
                 case AI_UINT64:
                     delete static_cast<uint64_t*>(data);
@@ -248,6 +248,22 @@ struct aiMetadata
         return Get(aiString(key), value);
     }
 
+	/// \fn inline bool Get(size_t pIndex, const aiString*& pKey, const aiMetadataEntry*& pEntry)
+	/// Return metadata entry for analyzing it by user.
+	/// \param [in] pIndex - index of the entry.
+	/// \param [out] pKey - pointer to the key value.
+	/// \param [out] pEntry - pointer to the entry: type and value.
+	/// \return false - if pIndex is out of range, else - true.
+	inline bool Get(size_t pIndex, const aiString*& pKey, const aiMetadataEntry*& pEntry)
+	{
+		if(pIndex >= mNumProperties) return false;
+
+		pKey = &mKeys[pIndex];
+		pEntry = &mValues[pIndex];
+
+		return true;
+	}
+
 #endif // __cplusplus
 
 };

+ 2 - 2
include/assimp/texture.h

@@ -155,8 +155,8 @@ struct aiTexture
      * absent color channel and just use 0 for bitness. For example:
      * 1. Image contain RGBA and 8 bit per channel, achFormatHint == "rgba8888";
      * 2. Image contain ARGB and 8 bit per channel, achFormatHint == "argb8888";
-     * 2. Image contain RGB and 5 bit for R and B channels and 6 bit for G channel, achFormatHint == "rgba5650";
-     * 3. One color image with B channel and 1 bit for it, achFormatHint == "rgba0010";
+     * 3. Image contain RGB and 5 bit for R and B channels and 6 bit for G channel, achFormatHint == "rgba5650";
+     * 4. One color image with B channel and 1 bit for it, achFormatHint == "rgba0010";
      * If mHeight == 0 then achFormatHint is set set to '\\0\\0\\0\\0' if the loader has no additional
      * information about the texture file format used OR the
      * file extension of the format without a trailing dot. If there

+ 6 - 6
packaging/windows-innosetup/script.iss

@@ -2,7 +2,7 @@
 
 [Setup]
 AppName=Open Asset Import Library - SDK
-AppVerName=Open Asset Import Library - SDK (v2.0)
+AppVerName=Open Asset Import Library - SDK (v3.3.1)
 DefaultDirName={pf}\Assimp
 DefaultGroupName=Assimp
 UninstallDisplayIcon={app}\bin\x86\assimp.exe
@@ -12,9 +12,9 @@ SetupIconFile=..\..\tools\shared\assimp_tools_icon.ico
 WizardImageFile=compiler:WizModernImage-IS.BMP
 WizardSmallImageFile=compiler:WizModernSmallImage-IS.BMP
 LicenseFile=License.rtf
-OutputBaseFileName=assimp-sdk-2.0-setup
-VersionInfoVersion=2.0.0.0
-VersionInfoTextVersion=2.0
+OutputBaseFileName=assimp-sdk-3.3.1-setup
+VersionInfoVersion=3.3.1.0
+VersionInfoTextVersion=3.3.1
 VersionInfoCompany=Assimp Development Team
 ArchitecturesInstallIn64BitMode=x64
 
@@ -38,8 +38,8 @@ Name: "assimp_net"; Description: "C#/.NET Bindings"; Types: full
 ;Name: "vc9"; Description: "VC9 project files"; Types: full
 
 [Run]
-Filename: "{app}\stub\vcredist_x86.exe"; Parameters: "/qb"; StatusMsg: "Installing VS2008 SP1 redistributable package (32 Bit)"; Check: not IsWin64
-Filename: "{app}\stub\vcredist_x64.exe"; Parameters: "/qb"; StatusMsg: "Installing VS2008 SP1 redistributable package (64 Bit)"; Check: IsWin64
+Filename: "{app}\stub\vcredist_x86.exe"; Parameters: "/qb"; StatusMsg: "Installing VS2012 SP1 redistributable package (32 Bit)"; Check: not IsWin64
+Filename: "{app}\stub\vcredist_x64.exe"; Parameters: "/qb"; StatusMsg: "Installing VS2012 SP1 redistributable package (64 Bit)"; Check: IsWin64
 
 [Files]
 

BIN
test/models-nonbsd/AMF/3_bananas.amf.7z


BIN
test/models-nonbsd/AMF/screenshot_3_bananas.jpeg


Datei-Diff unterdrückt, da er zu groß ist
+ 302 - 0
test/models-nonbsd/X3D/Chevy/ChevyTahoe.x3d


BIN
test/models-nonbsd/X3D/Chevy/textures/ChevyTahoeTexture.jpg


BIN
test/models-nonbsd/X3D/Chevy/textures/ChevyTahoeTires.jpg


+ 1 - 0
test/models/AMF/README

@@ -0,0 +1 @@
+Simple models for testing importer. No desription because models are simple and created by hands.

+ 59 - 0
test/models/AMF/test1.amf

@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<amf>
+	<object id="1">
+		<mesh>
+			<vertices>
+				<vertex>
+					<coordinates>
+						<x>-0.5</x>
+						<y>-0.5</y>
+						<z>0</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<coordinates>
+						<x>-0.5</x>
+						<y>0.5</y>
+						<z>0</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<coordinates>
+						<x>1</x>
+						<y>0</y>
+						<z>0</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<coordinates>
+						<x>0</x>
+						<y>0</y>
+						<z>4</z>
+					</coordinates>
+				</vertex>
+			</vertices>
+			<volume>
+				<triangle>
+					<v1>0</v1>
+					<v2>1</v2>
+					<v3>2</v3>
+				</triangle>
+				<triangle>
+					<v1>0</v1>
+					<v2>3</v2>
+					<v3>1</v3>
+				</triangle>
+				<triangle>
+					<v1>1</v1>
+					<v2>3</v2>
+					<v3>2</v3>
+				</triangle>
+				<triangle>
+					<v1>0</v1>
+					<v2>2</v2>
+					<v3>3</v3>
+				</triangle>
+			</volume>
+		</mesh>
+	</object>
+</amf>

+ 65 - 0
test/models/AMF/test2.amf

@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>
+<amf>
+	<object id="1">
+		<color>
+			<r>0.1</r>
+			<g>0.6</g>
+			<b>0.1</b>
+			<a>1</a>
+		</color>
+		<mesh>
+			<vertices>
+				<vertex>
+					<coordinates>
+						<x>-0.5</x>
+						<y>-0.5</y>
+						<z>0</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<coordinates>
+						<x>-0.5</x>
+						<y>0.5</y>
+						<z>0</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<coordinates>
+						<x>1</x>
+						<y>0</y>
+						<z>0</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<coordinates>
+						<x>0</x>
+						<y>0</y>
+						<z>4</z>
+					</coordinates>
+				</vertex>
+			</vertices>
+			<volume>
+				<triangle>
+					<v1>0</v1>
+					<v2>1</v2>
+					<v3>2</v3>
+				</triangle>
+				<triangle>
+					<v1>0</v1>
+					<v2>3</v2>
+					<v3>1</v3>
+				</triangle>
+				<triangle>
+					<v1>1</v1>
+					<v2>3</v2>
+					<v3>2</v3>
+				</triangle>
+				<triangle>
+					<v1>0</v1>
+					<v2>2</v2>
+					<v3>3</v3>
+				</triangle>
+			</volume>
+		</mesh>
+	</object>
+</amf>

+ 71 - 0
test/models/AMF/test3.amf

@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<amf>
+	<object id="1">
+		<color>
+			<r>0.1</r>
+			<g>0.6</g>
+			<b>0.1</b>
+			<a>1</a>
+		</color>
+		<mesh>
+			<vertices>
+				<vertex>
+					<coordinates>
+						<x>-0.5</x>
+						<y>-0.5</y>
+						<z>0</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<coordinates>
+						<x>-0.5</x>
+						<y>0.5</y>
+						<z>0</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<coordinates>
+						<x>1</x>
+						<y>0</y>
+						<z>0</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<coordinates>
+						<x>0</x>
+						<y>0</y>
+						<z>4</z>
+					</coordinates>
+				</vertex>
+			</vertices>
+			<volume>
+				<color>
+					<r>0.6</r>
+					<g>0.1</g>
+					<b>0.1</b>
+					<a>1</a>
+				</color>
+				<triangle>
+					<v1>0</v1>
+					<v2>1</v2>
+					<v3>2</v3>
+				</triangle>
+				<triangle>
+					<v1>0</v1>
+					<v2>3</v2>
+					<v3>1</v3>
+				</triangle>
+				<triangle>
+					<v1>1</v1>
+					<v2>3</v2>
+					<v3>2</v3>
+				</triangle>
+				<triangle>
+					<v1>0</v1>
+					<v2>2</v2>
+					<v3>3</v3>
+				</triangle>
+			</volume>
+		</mesh>
+	</object>
+</amf>

+ 77 - 0
test/models/AMF/test4.amf

@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8"?>
+<amf>
+	<object id="1">
+		<color>
+			<r>0.1</r>
+			<g>0.6</g>
+			<b>0.1</b>
+			<a>1</a>
+		</color>
+		<mesh>
+			<vertices>
+				<vertex>
+					<coordinates>
+						<x>-0.5</x>
+						<y>-0.5</y>
+						<z>0</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<coordinates>
+						<x>-0.5</x>
+						<y>0.5</y>
+						<z>0</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<coordinates>
+						<x>1</x>
+						<y>0</y>
+						<z>0</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<coordinates>
+						<x>0</x>
+						<y>0</y>
+						<z>4</z>
+					</coordinates>
+				</vertex>
+			</vertices>
+			<volume>
+				<color>
+					<r>0.6</r>
+					<g>0.1</g>
+					<b>0.1</b>
+					<a>1</a>
+				</color>
+				<triangle>
+					<color>
+						<r>0.0</r>
+						<g>0.0</g>
+						<b>1</b>
+						<a>1</a>
+					</color>
+					<v1>0</v1>
+					<v2>1</v2>
+					<v3>2</v3>
+				</triangle>
+				<triangle>
+					<v1>0</v1>
+					<v2>3</v2>
+					<v3>1</v3>
+				</triangle>
+				<triangle>
+					<v1>1</v1>
+					<v2>3</v2>
+					<v3>2</v3>
+				</triangle>
+				<triangle>
+					<v1>0</v1>
+					<v2>2</v2>
+					<v3>3</v3>
+				</triangle>
+			</volume>
+		</mesh>
+	</object>
+</amf>

+ 95 - 0
test/models/AMF/test5.amf

@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="utf-8"?>
+<amf>
+	<object id="1">
+		<color>
+			<r>0.1</r>
+			<g>0.6</g>
+			<b>0.1</b>
+			<a>1</a>
+		</color>
+		<mesh>
+			<vertices>
+				<vertex>
+					<color>
+						<r>0.5</r>
+						<g>0.5</g>
+						<b>0</b>
+						<a>1</a>
+					</color>
+					<coordinates>
+						<x>-0.5</x>
+						<y>-0.5</y>
+						<z>0</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<color>
+						<r>0.5</r>
+						<g>0.5</g>
+						<b>0.2</b>
+						<a>1</a>
+					</color>
+					<coordinates>
+						<x>-0.5</x>
+						<y>0.5</y>
+						<z>0</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<color>
+						<r>0.5</r>
+						<g>0.5</g>
+						<b>0.4</b>
+						<a>1</a>
+					</color>
+					<coordinates>
+						<x>1</x>
+						<y>0</y>
+						<z>0</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<color>
+						<r>0.5</r>
+						<g>0.5</g>
+						<b>0.8</b>
+						<a>1</a>
+					</color>
+					<coordinates>
+						<x>0</x>
+						<y>0</y>
+						<z>4</z>
+					</coordinates>
+				</vertex>
+			</vertices>
+			<volume>
+				<color>
+					<r>0.6</r>
+					<g>0.1</g>
+					<b>0.1</b>
+					<a>1</a>
+				</color>
+				<triangle>
+					<v1>0</v1>
+					<v2>1</v2>
+					<v3>2</v3>
+				</triangle>
+				<triangle>
+					<v1>0</v1>
+					<v2>3</v2>
+					<v3>1</v3>
+				</triangle>
+				<triangle>
+					<v1>1</v1>
+					<v2>3</v2>
+					<v3>2</v3>
+				</triangle>
+				<triangle>
+					<v1>0</v1>
+					<v2>2</v2>
+					<v3>3</v3>
+				</triangle>
+			</volume>
+		</mesh>
+	</object>
+</amf>

+ 77 - 0
test/models/AMF/test5a.amf

@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8"?>
+<amf>
+	<object id="1">
+		<color>
+			<r>0.1</r>
+			<g>0.6</g>
+			<b>0.1</b>
+			<a>1</a>
+		</color>
+		<mesh>
+			<vertices>
+				<vertex>
+					<color>
+						<r>0.5</r>
+						<g>0.5</g>
+						<b>0</b>
+						<a>1</a>
+					</color>
+					<coordinates>
+						<x>-0.5</x>
+						<y>-0.5</y>
+						<z>0</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<coordinates>
+						<x>-0.5</x>
+						<y>0.5</y>
+						<z>0</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<coordinates>
+						<x>1</x>
+						<y>0</y>
+						<z>0</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<coordinates>
+						<x>0</x>
+						<y>0</y>
+						<z>4</z>
+					</coordinates>
+				</vertex>
+			</vertices>
+			<volume>
+				<color>
+					<r>0.6</r>
+					<g>0.1</g>
+					<b>0.1</b>
+					<a>1</a>
+				</color>
+				<triangle>
+					<v1>0</v1>
+					<v2>1</v2>
+					<v3>2</v3>
+				</triangle>
+				<triangle>
+					<v1>0</v1>
+					<v2>3</v2>
+					<v3>1</v3>
+				</triangle>
+				<triangle>
+					<v1>1</v1>
+					<v2>3</v2>
+					<v3>2</v3>
+				</triangle>
+				<triangle>
+					<v1>0</v1>
+					<v2>2</v2>
+					<v3>3</v3>
+				</triangle>
+			</volume>
+		</mesh>
+	</object>
+</amf>

+ 83 - 0
test/models/AMF/test6.amf

@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="utf-8"?>
+<amf>
+	<object id="1">
+		<color>
+			<r>0.1</r>
+			<g>0.6</g>
+			<b>0.1</b>
+			<a>1</a>
+		</color>
+		<mesh>
+			<vertices>
+				<vertex>
+					<color>
+						<r>0.5</r>
+						<g>0.5</g>
+						<b>0</b>
+						<a>1</a>
+					</color>
+					<coordinates>
+						<x>-0.5</x>
+						<y>-0.5</y>
+						<z>0</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<coordinates>
+						<x>-0.5</x>
+						<y>0.5</y>
+						<z>0</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<coordinates>
+						<x>1</x>
+						<y>0</y>
+						<z>0</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<coordinates>
+						<x>0</x>
+						<y>0</y>
+						<z>4</z>
+					</coordinates>
+				</vertex>
+			</vertices>
+			<volume>
+				<color>
+					<r>0.6</r>
+					<g>0.1</g>
+					<b>0.1</b>
+					<a>1</a>
+				</color>
+				<triangle>
+					<color>
+						<r>0.0</r>
+						<g>0.0</g>
+						<b>1</b>
+						<a>1</a>
+					</color>
+					<v1>0</v1>
+					<v2>1</v2>
+					<v3>2</v3>
+				</triangle>
+				<triangle>
+					<v1>0</v1>
+					<v2>3</v2>
+					<v3>1</v3>
+				</triangle>
+				<triangle>
+					<v1>1</v1>
+					<v2>3</v2>
+					<v3>2</v3>
+				</triangle>
+				<triangle>
+					<v1>0</v1>
+					<v2>2</v2>
+					<v3>3</v3>
+				</triangle>
+			</volume>
+		</mesh>
+	</object>
+</amf>

+ 112 - 0
test/models/AMF/test7.amf

@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="utf-8"?>
+<amf>
+	<object id="1">
+		<color>
+			<r>0.1</r>
+			<g>0.6</g>
+			<b>0.1</b>
+			<a>1</a>
+		</color>
+		<mesh>
+			<vertices>
+				<vertex>
+					<color>
+						<r>0.5</r>
+						<g>0.5</g>
+						<b>0</b>
+						<a>1</a>
+					</color>
+					<coordinates>
+						<x>-0.5</x>
+						<y>-0.5</y>
+						<z>0</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<coordinates>
+						<x>-0.5</x>
+						<y>0.5</y>
+						<z>0</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<coordinates>
+						<x>1</x>
+						<y>0</y>
+						<z>0</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<coordinates>
+						<x>0</x>
+						<y>0</y>
+						<z>4</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<coordinates>
+						<x>0</x>
+						<y>0</y>
+						<z>-4</z>
+					</coordinates>
+				</vertex>
+			</vertices>
+			<volume>
+				<color>
+					<r>0.6</r>
+					<g>0.1</g>
+					<b>0.1</b>
+					<a>1</a>
+				</color>
+				<triangle>
+					<color>
+						<r>0.0</r>
+						<g>0.0</g>
+						<b>1</b>
+						<a>1</a>
+					</color>
+					<v1>0</v1>
+					<v2>1</v2>
+					<v3>2</v3>
+				</triangle>
+				<triangle>
+					<v1>0</v1>
+					<v2>3</v2>
+					<v3>1</v3>
+				</triangle>
+				<triangle>
+					<v1>1</v1>
+					<v2>3</v2>
+					<v3>2</v3>
+				</triangle>
+				<triangle>
+					<v1>0</v1>
+					<v2>2</v2>
+					<v3>3</v3>
+				</triangle>
+			</volume>
+			<volume>
+				<triangle>
+					<v1>0</v1>
+					<v2>2</v2>
+					<v3>1</v3>
+				</triangle>
+				<triangle>
+					<v1>0</v1>
+					<v2>4</v2>
+					<v3>2</v3>
+				</triangle>
+				<triangle>
+					<v1>1</v1>
+					<v2>2</v2>
+					<v3>4</v3>
+				</triangle>
+				<triangle>
+					<v1>0</v1>
+					<v2>1</v2>
+					<v3>4</v3>
+				</triangle>
+			</volume>
+		</mesh>
+	</object>
+</amf>

+ 130 - 0
test/models/AMF/test8.amf

@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="utf-8"?>
+<amf>
+	<object id="1">
+		<color>
+			<r>0.1</r>
+			<g>0.6</g>
+			<b>0.1</b>
+			<a>1</a>
+		</color>
+		<mesh>
+			<vertices>
+				<vertex>
+					<color>
+						<r>0.5</r>
+						<g>0.5</g>
+						<b>0</b>
+						<a>1</a>
+					</color>
+					<coordinates>
+						<x>-0.5</x>
+						<y>-0.5</y>
+						<z>0</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<coordinates>
+						<x>-0.5</x>
+						<y>0.5</y>
+						<z>0</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<coordinates>
+						<x>1</x>
+						<y>0</y>
+						<z>0</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<coordinates>
+						<x>0</x>
+						<y>0</y>
+						<z>4</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<coordinates>
+						<x>0</x>
+						<y>0</y>
+						<z>-4</z>
+					</coordinates>
+				</vertex>
+			</vertices>
+			<volume>
+				<color>
+					<r>0.6</r>
+					<g>0.1</g>
+					<b>0.1</b>
+					<a>1</a>
+				</color>
+				<triangle>
+					<color>
+						<r>0.0</r>
+						<g>0.0</g>
+						<b>1</b>
+						<a>1</a>
+					</color>
+					<v1>0</v1>
+					<v2>1</v2>
+					<v3>2</v3>
+				</triangle>
+				<triangle>
+					<v1>0</v1>
+					<v2>3</v2>
+					<v3>1</v3>
+				</triangle>
+				<triangle>
+					<v1>1</v1>
+					<v2>3</v2>
+					<v3>2</v3>
+				</triangle>
+				<triangle>
+					<v1>0</v1>
+					<v2>2</v2>
+					<v3>3</v3>
+				</triangle>
+			</volume>
+			<volume>
+				<triangle>
+					<v1>0</v1>
+					<v2>2</v2>
+					<v3>1</v3>
+				</triangle>
+				<triangle>
+					<v1>0</v1>
+					<v2>4</v2>
+					<v3>2</v3>
+				</triangle>
+				<triangle>
+					<v1>1</v1>
+					<v2>2</v2>
+					<v3>4</v3>
+				</triangle>
+				<triangle>
+					<v1>0</v1>
+					<v2>1</v2>
+					<v3>4</v3>
+				</triangle>
+			</volume>
+		</mesh>
+	</object>
+	<constellation id="2">
+		<instance objectid="1">
+			<deltax>-5</deltax>
+			<deltay>0</deltay>
+			<deltaz>0</deltaz>
+			<rx>-45</rx>
+			<ry>0</ry>
+			<rz>0</rz>
+		</instance>
+		<instance objectid="1">
+			<deltax>5</deltax>
+			<deltay>0</deltay>
+			<deltaz>0</deltaz>
+			<rx>45</rx>
+			<ry>0</ry>
+			<rz>0</rz>
+		</instance>
+	</constellation>
+</amf>

+ 180 - 0
test/models/AMF/test9.amf

@@ -0,0 +1,180 @@
+<?xml version="1.0" encoding="utf-8"?>
+<amf>
+	<object id="1">
+		<color>
+			<r>0.1</r>
+			<g>0.6</g>
+			<b>0.1</b>
+			<a>1</a>
+		</color>
+		<mesh>
+			<vertices>
+				<vertex>
+					<color>
+						<r>0.5</r>
+						<g>0.5</g>
+						<b>0</b>
+						<a>1</a>
+					</color>
+					<coordinates>
+						<x>-0.5</x>
+						<y>-0.5</y>
+						<z>0</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<coordinates>
+						<x>-0.5</x>
+						<y>0.5</y>
+						<z>0</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<coordinates>
+						<x>1</x>
+						<y>0</y>
+						<z>0</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<coordinates>
+						<x>0</x>
+						<y>0</y>
+						<z>4</z>
+					</coordinates>
+				</vertex>
+				<vertex>
+					<coordinates>
+						<x>0</x>
+						<y>0</y>
+						<z>-4</z>
+					</coordinates>
+				</vertex>
+			</vertices>
+			<volume>
+				<color>
+					<r>0.6</r>
+					<g>0.1</g>
+					<b>0.1</b>
+					<a>1</a>
+				</color>
+				<triangle>
+					<color>
+						<r>0.0</r>
+						<g>0.0</g>
+						<b>1</b>
+						<a>1</a>
+					</color>
+					<v1>0</v1>
+					<v2>1</v2>
+					<v3>2</v3>
+				</triangle>
+				<triangle>
+					<v1>0</v1>
+					<v2>3</v2>
+					<v3>1</v3>
+				</triangle>
+				<triangle>
+					<v1>1</v1>
+					<v2>3</v2>
+					<v3>2</v3>
+				</triangle>
+				<triangle>
+					<v1>0</v1>
+					<v2>2</v2>
+					<v3>3</v3>
+				</triangle>
+			</volume>
+			<volume>
+				<triangle>
+					<v1>0</v1>
+					<v2>2</v2>
+					<v3>1</v3>
+				</triangle>
+				<triangle>
+					<v1>0</v1>
+					<v2>4</v2>
+					<v3>2</v3>
+				</triangle>
+				<triangle>
+					<v1>1</v1>
+					<v2>2</v2>
+					<v3>4</v3>
+				</triangle>
+				<triangle>
+					<v1>0</v1>
+					<v2>1</v2>
+					<v3>4</v3>
+				</triangle>
+			</volume>
+		</mesh>
+	</object>
+	<constellation id="2">
+		<instance objectid="1">
+			<deltax>-5</deltax>
+			<deltay>0</deltay>
+			<deltaz>0</deltaz>
+			<rx>-45</rx>
+			<ry>0</ry>
+			<rz>0</rz>
+		</instance>
+		<instance objectid="1">
+			<deltax>5</deltax>
+			<deltay>0</deltay>
+			<deltaz>0</deltaz>
+			<rx>45</rx>
+			<ry>0</ry>
+			<rz>0</rz>
+		</instance>
+		<instance objectid="1">
+			<deltax>0</deltax>
+			<deltay>-5</deltay>
+			<deltaz>0</deltaz>
+			<rx>0</rx>
+			<ry>-45</ry>
+			<rz>0</rz>
+		</instance>
+		<instance objectid="1">
+			<deltax>0</deltax>
+			<deltay>5</deltay>
+			<deltaz>0</deltaz>
+			<rx>0</rx>
+			<ry>45</ry>
+			<rz>0</rz>
+		</instance>
+		<instance objectid="1">
+			<deltax>0</deltax>
+			<deltay>0</deltay>
+			<deltaz>-5</deltaz>
+			<rx>0</rx>
+			<ry>0</ry>
+			<rz>-45</rz>
+		</instance>
+		<instance objectid="1">
+			<deltax>0</deltax>
+			<deltay>0</deltay>
+			<deltaz>5</deltaz>
+			<rx>0</rx>
+			<ry>0</ry>
+			<rz>45</rz>
+		</instance>
+	</constellation>
+	<constellation id="3">
+		<instance objectid="2">
+			<deltax>-20</deltax>
+			<deltay>0</deltay>
+			<deltaz>0</deltaz>
+			<rx>-20</rx>
+			<ry>0</ry>
+			<rz>0</rz>
+		</instance>
+		<instance objectid="2">
+			<deltax>20</deltax>
+			<deltay>0</deltay>
+			<deltaz>0</deltaz>
+			<rx>20</rx>
+			<ry>0</ry>
+			<rz>0</rz>
+		</instance>
+	</constellation>
+</amf>

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.