CEL

Public API Reference

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.7.6.1