Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages
gmeshskel.h
00001 /* 00002 Copyright (C) 2004 by Hristo Hristov 00003 00004 This library 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 library 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 library; if not, write to the Free 00016 Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00017 */ 00018 00019 #ifndef __CS_IMESH_GMESHSKEL_H__ 00020 #define __CS_IMESH_GMESHSKEL_H__ 00021 00022 #include "csutil/scf.h" 00023 00024 #include "imesh/genmesh.h" 00025 00026 struct iRigidBody; 00027 struct iGenMeshSkeletonBone; 00028 struct iGenMeshSkeletonScript; 00029 struct iGenMeshSkeletonBoneUpdateCallback; 00030 struct iGenMeshSkeletonControlFactory; 00031 00032 class csReversibleTransform; 00033 class csVector2; 00034 class csVector3; 00035 00036 enum csBoneTransformMode 00037 { 00038 BM_SCRIPT = 0, 00039 BM_PHYSICS, 00040 BM_NONE 00041 }; 00042 00043 enum csAULevel 00044 { 00045 AUL_BONES = 0, 00046 AUL_VERTICES 00047 }; 00048 00049 SCF_VERSION (iGenMeshSkeletonControlState, 0, 0, 1); 00050 00057 struct iGenMeshSkeletonControlState : public iBase 00058 { 00062 virtual int GetBonesCount () = 0; 00063 00067 virtual iGenMeshSkeletonBone *GetBone (int i) = 0; 00068 00072 virtual iGenMeshSkeletonBone *FindBone (const char *name) = 0; 00073 00079 virtual iGenMeshSkeletonScript* Execute (const char *scriptname) = 0; 00080 00084 virtual size_t GetScriptsCount () = 0; 00085 00089 virtual iGenMeshSkeletonScript* GetScript (size_t i) = 0; 00090 00094 virtual iGenMeshSkeletonScript* FindScript (const char *scriptname) = 0; 00095 00099 virtual void StopAll () = 0; 00100 00104 virtual void Stop (const char* scriptname) = 0; 00105 00109 virtual void Stop (iGenMeshSkeletonScript *script) = 0; 00110 00114 virtual iGenMeshSkeletonControlFactory *GetFactory() = 0; 00115 00119 virtual csVector3 *GetAnimatedVertices() = 0; 00120 00124 virtual int GetAnimatedVerticesCount() = 0; 00125 }; 00126 00127 SCF_VERSION (iGenMeshSkeletonControlFactory, 0, 0, 1); 00128 00129 struct iGenMeshSkeletonControlFactory: public iGenMeshAnimationControlFactory 00130 { 00134 virtual const char* LoadScriptFile(const char *filename) =0; 00135 00139 virtual void DeleteScript(const char *script_name) = 0; 00140 00144 virtual void DeleteAllScripts() = 0; 00145 }; 00146 00147 SCF_VERSION (iGenMeshSkeletonBone, 0, 0, 1); 00148 00149 struct iGenMeshSkeletonBone : public iBase 00150 { 00154 virtual const char *GetName () const = 0; 00155 00159 virtual void SetName (const char *name) = 0; 00160 00164 virtual csReversibleTransform &GetTransform () = 0; 00165 00169 virtual void SetTransform (const csReversibleTransform &transform) = 0; 00170 00174 virtual csReversibleTransform &GetFullTransform () = 0; 00175 00179 virtual iGenMeshSkeletonBone *GetParent () = 0; 00180 00185 virtual void GetSkinBox (csBox3 &box, csVector3 ¢er) = 0; 00186 00194 virtual void SetMode (csBoneTransformMode mode) = 0; 00195 00199 virtual csBoneTransformMode GetMode () = 0; 00200 00204 virtual void SetRigidBody (iRigidBody *r_body, csReversibleTransform & offset_transform) = 0; 00205 00209 virtual iRigidBody *GetRigidBody () = 0; 00210 00214 virtual int GetChildrenCount () = 0; 00215 00219 virtual iGenMeshSkeletonBone *GetChild (int i) = 0; 00220 00224 virtual iGenMeshSkeletonBone *FindChild (const char *name) = 0; 00225 00229 virtual void SetUpdateCallback (iGenMeshSkeletonBoneUpdateCallback *callback) = 0; 00230 00234 virtual iGenMeshSkeletonBoneUpdateCallback *GetUpdateCallback () = 0; 00235 }; 00236 00237 SCF_VERSION (iGenMeshSkeletonBoneUpdateCallback, 0, 0, 1); 00238 00239 struct iGenMeshSkeletonBoneUpdateCallback : public iBase 00240 { 00241 virtual void UpdateTransform(iGenMeshSkeletonBone *bone, const csReversibleTransform & transform) = 0; 00242 }; 00243 00244 SCF_VERSION (iGenMeshSkeletonScript, 0, 0, 1); 00245 00246 struct iGenMeshSkeletonScript : public iBase 00247 { 00251 virtual const char *GetName () = 0; 00252 00256 virtual size_t GetTime () = 0; 00257 00261 virtual void SetTime (size_t time) = 0; 00262 00297 virtual void SetFactor (float factor) = 0; 00298 00302 virtual float GetFactor () = 0; 00303 }; 00304 00305 #endif // __CS_IMESH_GMESHSKEL_H__
Generated for Crystal Space by doxygen 1.4.4