CrystalSpace

Public API Reference

ivaria/collada.h
00001 /*
00002     Copyright (C) 2007 by Scott Johnson
00003 
00004     This application is free software; you can redistribute it and/or
00005     modify it under the terms of the GNU Library General Public
00006     License as published by the Free Software Foundation; either
00007     version 2 of the License, or (at your option) any later version.
00008 
00009     This application is distributed in the hope that it will be useful,
00010     but WITHOUT ANY WARRANTY; without even the implied warranty of
00011     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012     Library General Public License for more details.
00013 
00014     You should have received a copy of the GNU Library General Public
00015     License along with this application; if not, write to the Free
00016     Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
00017 */
00018 
00019 #ifndef _CS_IVARIA_COLLADA_H
00020 #define _CS_IVARIA_COLLADA_H
00021 
00022 #include <csutil/scf.h>
00023 #include <csutil/scf_implementation.h>
00024 
00025 // Forward Declarations
00026 struct iString;
00027 struct iFile;
00028 struct iDataBuffer;
00029 struct iDocumentNode;
00030 
00035 enum csColladaFileType {
00036 
00038   CS_LIBRARY_FILE = 1,
00039 
00041   CS_MAP_FILE,
00042 
00044   CS_NO_FILE
00045 };
00046 
00047 enum csColladaNumericType {
00048 
00050   CS_COLLADA_INTEGER = 1,
00051 
00053   CS_COLLADA_FLOAT
00054 };
00055 
00056 enum csColladaEffectProfileType {
00058   CS_COLLADA_PROFILE_COMMON = 1,
00059 
00061   CS_COLLADA_PROFILE_CG,
00062 
00064   CS_COLLADA_PROFILE_GLSL
00065 
00066 };
00067 
00079 struct iColladaConvertor : public virtual iBase
00080 {
00081   SCF_INTERFACE(iColladaConvertor, 1, 0, 0);
00082     
00093   virtual const char* Load(const char *str) = 0;
00094    
00105   virtual const char* Load(iString *str) = 0;
00106    
00118   virtual const char* Load(iFile *file) = 0;
00119 
00128   virtual const char* Load(iDataBuffer *db) = 0;
00129 
00142   virtual const char* SetOutputFiletype(csColladaFileType filetype) = 0;
00143 
00158   virtual const char* Write(const char* filepath) = 0;
00159 
00163   virtual csRef<iDocument> GetCrystalDocument() = 0;
00164 
00168   virtual csRef<iDocument> GetColladaDocument() = 0;
00169 
00197   virtual const char* Convert() = 0;
00198   
00209   virtual bool ConvertGeometry(iDocumentNode *geometrySection) = 0;
00210   
00222   virtual bool ConvertEffects() = 0;
00223 
00248   virtual bool ConvertScene(iDocumentNode *camerasSection, iDocumentNode *lightsSection, iDocumentNode *visualScenesSection) = 0;
00249 
00253   virtual bool ConvertRiggingAnimation(iDocumentNode *riggingSection) = 0;
00254   
00258   virtual bool ConvertPhysics(iDocumentNode *physicsSection) = 0;
00259 
00273   virtual void SetWarnings(bool toggle=false) = 0;
00274 
00281   virtual void SetSectorScene(bool toggle) = 0;
00282 };
00283 
00284 #endif
00285 

Generated for Crystal Space 2.0 by doxygen 1.7.6.1