Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #ifndef __SP_MESHSAVER_OBJ_H__
00009 #define __SP_MESHSAVER_OBJ_H__
00010
00011
00012 #include "Base/spStandard.hpp"
00013
00014 #ifdef SP_COMPILE_WITH_MESHSAVER_OBJ
00015
00016
00017 #include "FileFormats/Mesh/spMeshSaver.hpp"
00018
00019
00020 namespace sp
00021 {
00022 namespace scene
00023 {
00024
00025
00026 class SP_EXPORT MeshSaverOBJ : public MeshSaver
00027 {
00028
00029 public:
00030
00031 MeshSaverOBJ();
00032 ~MeshSaverOBJ();
00033
00034 bool saveMesh(Mesh* Model, const io::stringc &Filename);
00035
00036 private:
00037
00038
00039
00040 void saveModelData();
00041
00042
00043
00044 template <typename T> void writeValueList(const c8* TypeName, const T* Values, const s32 Count)
00045 {
00046 File_->writeBuffer(TypeName, sizeof(c8), strlen(TypeName));
00047
00048 for (s32 i = 0; i < Count; ++i)
00049 {
00050 File_->writeValue<c8>(' ');
00051 File_->writeString(Values[i]);
00052 }
00053
00054 File_->writeStringN("");
00055 }
00056
00057 template <typename T> void writeValueListFace(const T* Values)
00058 {
00059 File_->writeValue<c8>('f');
00060
00061 for (s32 i = 0; i < 3; ++i)
00062 {
00063 File_->writeValue<c8>(' ');
00064 File_->writeString(Values[i]);
00065
00066 File_->writeValue<c8>('/');
00067 File_->writeString(Values[i]);
00068
00069 File_->writeValue<c8>('/');
00070 File_->writeString(Values[i]);
00071 }
00072
00073 File_->writeStringN("");
00074 }
00075
00076 };
00077
00078
00079 }
00080
00081 }
00082
00083
00084 #endif
00085
00086 #endif
00087
00088
00089
00090