Panda3D
|
00001 // Filename: loaderFileTypeAssimp.cxx 00002 // Created by: rdb (29Mar11) 00003 // 00004 //////////////////////////////////////////////////////////////////// 00005 // 00006 // PANDA 3D SOFTWARE 00007 // Copyright (c) Carnegie Mellon University. All rights reserved. 00008 // 00009 // All use of this software is subject to the terms of the revised BSD 00010 // license. You should have received a copy of this license along 00011 // with this source code in a file named "LICENSE." 00012 // 00013 //////////////////////////////////////////////////////////////////// 00014 00015 #include "loaderFileTypeAssimp.h" 00016 #include "config_assimp.h" 00017 #include "assimpLoader.h" 00018 00019 TypeHandle LoaderFileTypeAssimp::_type_handle; 00020 00021 //////////////////////////////////////////////////////////////////// 00022 // Function: LoaderFileTypeAssimp::Constructor 00023 // Access: Public 00024 // Description: 00025 //////////////////////////////////////////////////////////////////// 00026 LoaderFileTypeAssimp:: 00027 LoaderFileTypeAssimp() : _loader(new AssimpLoader) { 00028 } 00029 00030 //////////////////////////////////////////////////////////////////// 00031 // Function: LoaderFileTypeAssimp::Destructor 00032 // Access: Public, Virtual 00033 // Description: 00034 //////////////////////////////////////////////////////////////////// 00035 LoaderFileTypeAssimp:: 00036 ~LoaderFileTypeAssimp() { 00037 if (_loader != NULL) { 00038 delete _loader; 00039 } 00040 } 00041 00042 //////////////////////////////////////////////////////////////////// 00043 // Function: LoaderFileTypeAssimp::get_name 00044 // Access: Public, Virtual 00045 // Description: 00046 //////////////////////////////////////////////////////////////////// 00047 string LoaderFileTypeAssimp:: 00048 get_name() const { 00049 return "Assimp Importer"; 00050 } 00051 00052 //////////////////////////////////////////////////////////////////// 00053 // Function: LoaderFileTypeAssimp::get_extension 00054 // Access: Public, Virtual 00055 // Description: 00056 //////////////////////////////////////////////////////////////////// 00057 string LoaderFileTypeAssimp:: 00058 get_extension() const { 00059 return ""; 00060 } 00061 00062 //////////////////////////////////////////////////////////////////// 00063 // Function: LoaderFileTypeAssimp::get_additional_extensions 00064 // Access: Public, Virtual 00065 // Description: Returns a space-separated list of extension, in 00066 // addition to the one returned by get_extension(), that 00067 // are recognized by this converter. 00068 //////////////////////////////////////////////////////////////////// 00069 string LoaderFileTypeAssimp:: 00070 get_additional_extensions() const { 00071 string exts; 00072 _loader->get_extensions(exts); 00073 return exts; 00074 } 00075 00076 //////////////////////////////////////////////////////////////////// 00077 // Function: LoaderFileTypeAssimp::supports_compressed 00078 // Access: Published, Virtual 00079 // Description: Returns true if this file type can transparently load 00080 // compressed files (with a .pz extension), false 00081 // otherwise. 00082 //////////////////////////////////////////////////////////////////// 00083 bool LoaderFileTypeAssimp:: 00084 supports_compressed() const { 00085 return true; 00086 } 00087 00088 //////////////////////////////////////////////////////////////////// 00089 // Function: LoaderFileTypeAssimp::load_file 00090 // Access: Public, Virtual 00091 // Description: 00092 //////////////////////////////////////////////////////////////////// 00093 PT(PandaNode) LoaderFileTypeAssimp:: 00094 load_file(const Filename &path, const LoaderOptions &options, 00095 BamCacheRecord *record) const { 00096 00097 assimp_cat.info() 00098 << "Reading " << path << "\n"; 00099 00100 if (!_loader->read(path)) { 00101 return NULL; 00102 } 00103 00104 _loader->build_graph(); 00105 return DCAST(PandaNode, _loader->_root); 00106 }