- Cal3D 0.9 API Reference - |
00001 //****************************************************************************// 00002 // loader.h // 00003 // Copyright (C) 2001, 2002 Bruno 'Beosil' Heidelberger // 00004 //****************************************************************************// 00005 // This library is free software; you can redistribute it and/or modify it // 00006 // under the terms of the GNU Lesser General Public License as published by // 00007 // the Free Software Foundation; either version 2.1 of the License, or (at // 00008 // your option) any later version. // 00009 //****************************************************************************// 00010 00011 #ifndef CAL_LOADER_H 00012 #define CAL_LOADER_H 00013 00014 //****************************************************************************// 00015 // Includes // 00016 //****************************************************************************// 00017 00018 00019 #include <string> 00020 #include <istream> 00021 #include "cal3d/global.h" 00022 #include "cal3d/datasource.h" 00023 00024 //****************************************************************************// 00025 // Forward declarations // 00026 //****************************************************************************// 00027 00028 class CalCoreModel; 00029 class CalCoreSkeleton; 00030 class CalCoreBone; 00031 class CalCoreAnimation; 00032 class CalCoreTrack; 00033 class CalCoreKeyframe; 00034 class CalCoreMesh; 00035 class CalCoreSubmesh; 00036 class CalCoreMaterial; 00037 00038 //****************************************************************************// 00039 // Class declaration // 00040 //****************************************************************************// 00041 00042 /*****************************************************************************/ 00046 class CAL3D_API CalLoader 00047 { 00048 // member functions 00049 public: 00050 static CalCoreAnimation *loadCoreAnimation(const std::string& strFilename); 00051 static CalCoreMaterial *loadCoreMaterial(const std::string& strFilename); 00052 static CalCoreMesh *loadCoreMesh(const std::string& strFilename); 00053 static CalCoreSkeleton *loadCoreSkeleton(const std::string& strFilename); 00054 00055 static CalCoreAnimation *loadCoreAnimation(std::istream& inputStream); 00056 static CalCoreMaterial *loadCoreMaterial(std::istream& inputStream); 00057 static CalCoreMesh *loadCoreMesh(std::istream& inputStream); 00058 static CalCoreSkeleton *loadCoreSkeleton(std::istream& inputStream); 00059 00060 static CalCoreAnimation *loadCoreAnimation(void* inputBuffer); 00061 static CalCoreMaterial *loadCoreMaterial(void* inputBuffer); 00062 static CalCoreMesh *loadCoreMesh(void* inputBuffer); 00063 static CalCoreSkeleton *loadCoreSkeleton(void* inputBuffer); 00064 00065 static CalCoreAnimation *loadCoreAnimation(CalDataSource& inputSrc); 00066 static CalCoreMaterial *loadCoreMaterial(CalDataSource& inputSrc); 00067 static CalCoreMesh *loadCoreMesh(CalDataSource& inputSrc); 00068 static CalCoreSkeleton *loadCoreSkeleton(CalDataSource& inputSrc); 00069 00070 private: 00071 static CalCoreBone *loadCoreBones(CalDataSource& dataSrc); 00072 static CalCoreKeyframe *loadCoreKeyframe(CalDataSource& dataSrc); 00073 static CalCoreSubmesh *loadCoreSubmesh(CalDataSource& dataSrc); 00074 static CalCoreTrack *loadCoreTrack(CalDataSource& dataSrc); 00075 00076 static CalCoreAnimation *loadXmlCoreAnimation(const std::string& strFilename); 00077 static CalCoreSkeleton *loadXmlCoreSkeleton(const std::string& strFilename); 00078 static CalCoreMesh *loadXmlCoreMesh(const std::string& strFilename); 00079 static CalCoreMaterial *loadXmlCoreMaterial(const std::string& strFilename); 00080 }; 00081 00082 #endif 00083 00084 //****************************************************************************//