tools/celhpf.h
00001 /* 00002 Crystal Space Entity Layer 00003 Copyright (C) 2010 by Leonardo Rodrigo Domingues 00004 00005 This library is free software; you can redistribute it and/or 00006 modify it under the terms of the GNU Library General Public 00007 License as published by the Free Software Foundation; either 00008 version 2 of the License, or (at your option) any later version. 00009 00010 This library is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 Library General Public License for more details. 00014 00015 You should have received a copy of the GNU Library General Public 00016 License along with this library; if not, write to the Free 00017 Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00018 */ 00019 00020 #ifndef __CEL_HPFAPI__ 00021 #define __CEL_HPFAPI__ 00022 00023 #include <csutil/scf.h> 00024 #include <csutil/list.h> 00025 #include <tools/celnavmesh.h> 00026 00027 class csBox3; 00028 class csOBB; 00029 class csString; 00030 class csVector3; 00031 struct csSimpleRenderMesh; 00032 struct iCelNavMeshParams; 00033 struct iCelPath; 00034 struct iSector; 00035 struct iSectorList; 00036 struct iMapNode; 00037 00038 00039 00043 struct iCelHPath : public virtual iBase 00044 { 00045 SCF_INTERFACE (iCelHPath, 1, 0, 0); 00046 00048 virtual bool HasNext () const = 0; 00049 00051 virtual bool HasPrevious () const = 0; 00052 00054 virtual iMapNode* Next () = 0; 00055 00057 virtual iMapNode* Previous () = 0; 00058 00060 virtual iMapNode* Current () = 0; 00061 00063 virtual iMapNode* GetFirst () = 0; 00064 00066 virtual iMapNode* GetLast () = 0; 00067 00069 virtual void Invert () = 0; 00070 00072 virtual void Restart () = 0; 00073 00075 virtual float GetDistance () const = 0; 00076 00081 virtual csList<csSimpleRenderMesh>* GetDebugMeshes () = 0; 00082 }; 00083 00084 00085 00089 struct iCelHNavStruct : public virtual iBase 00090 { 00091 SCF_INTERFACE (iCelHNavStruct, 1, 0, 0); 00092 00103 virtual iCelHPath* ShortestPath (const csVector3& from, iSector* fromSector, const csVector3& goal, 00104 iSector* goalSector) = 0; 00105 00114 virtual iCelHPath* ShortestPath (iMapNode* from, iMapNode* goal) = 0; 00115 00123 virtual bool Update (const csBox3& boundingBox, iSector* sector = 0) = 0; 00124 00132 virtual bool Update (const csOBB& boundingBox, iSector* sector = 0) = 0; 00133 00141 virtual bool SaveToFile (iVFS* vfs, const char* directory) = 0; 00142 00147 virtual const iCelNavMeshParams* GetNavMeshParams () const = 0; 00148 00153 virtual csList<csSimpleRenderMesh>* GetDebugMeshes () const = 0; 00154 00159 virtual csList<csSimpleRenderMesh>* GetAgentDebugMeshes (const csVector3& pos, int red, int green, 00160 int blue, int alpha) const = 0; 00161 }; 00162 00163 00164 00168 struct iCelHNavStructBuilder : public virtual iBase 00169 { 00170 SCF_INTERFACE (iCelHNavStructBuilder, 1, 0, 0); 00171 00179 virtual bool SetSectors(csList<iSector*> sectorList) = 0; 00180 00185 virtual iCelHNavStruct* BuildHNavStruct () = 0; 00186 00194 virtual iCelHNavStruct* LoadHNavStruct (iVFS* vfs, const char* directory) = 0; 00195 00200 virtual const iCelNavMeshParams* GetNavMeshParams () const = 0; 00201 00206 virtual void SetNavMeshParams (const iCelNavMeshParams* parameters) = 0; 00207 }; 00208 00209 #endif // __CEL_HPFAPI__
Generated for CEL: Crystal Entity Layer 2.0 by doxygen 1.6.1
