BVB Source Codes

CRYENGINE Show PersistantDebug.h Source code

Return Download CRYENGINE: download PersistantDebug.h Source code - Download CRYENGINE Source code - Type:.h
  1. // Copyright 2001-2016 Crytek GmbH / Crytek Group. All rights reserved.
  2.  
  3. #ifndef __PERSISTANTDEBUG_H__
  4. #define __PERSISTANTDEBUG_H__
  5.  
  6. #pragma once
  7.  
  8. #include <list>
  9. #include <map>
  10.  
  11. #include <CryGame/IGameFramework.h>
  12.  
  13. class CPersistantDebug : public IPersistantDebug, public ILogCallback
  14. {
  15. public:
  16.         void Begin(const char* name, bool clear);
  17.         void AddSphere(const Vec3& pos, float radius, ColorF clr, float timeout);
  18.         void AddDirection(const Vec3& pos, float radius, const Vec3& dir, ColorF clr, float timeout);
  19.         void AddLine(const Vec3& pos1, const Vec3& pos2, ColorF clr, float timeout);
  20.         void AddPlanarDisc(const Vec3& pos, float innerRadius, float outerRadius, ColorF clr, float timeout);
  21.         void AddCone(const Vec3& pos, const Vec3& dir, float baseRadius, float height, ColorF clr, float timeout);
  22.         void AddCylinder(const Vec3& pos, const Vec3& dir, float radius, float height, ColorF clr, float timeout);
  23.         void Add2DText(const char* text, float size, ColorF clr, float timeout);
  24.         void Add2DLine(float x1, float y1, float x2, float y2, ColorF clr, float timeout);
  25.         void AddText(float x, float y, float size, ColorF clr, float timeout, const char* fmt, ...);
  26.         void AddText3D(const Vec3& pos, float size, ColorF clr, float timeout, const char* fmt, ...);
  27.         void AddQuat(const Vec3& pos, const Quat& q, float r, ColorF clr, float timeout);
  28.         void AddAABB(const Vec3& min, const Vec3& max, ColorF clr, float timeout);
  29.  
  30.         void AddEntityTag(const SEntityTagParams& params, const char* tagContext = "");
  31.         void ClearEntityTags(EntityId entityId);
  32.         void ClearStaticTag(EntityId entityId, const char* staticId);
  33.         void ClearTagContext(const char* tagContext);
  34.         void ClearTagContext(const char* tagContext, EntityId entityId);
  35.  
  36.         bool Init();
  37.         void Update(float frameTime);
  38.         void PostUpdate(float frameTime);
  39.         void Reset();
  40.  
  41.         CPersistantDebug();
  42.  
  43.         //ILogCallback
  44.         virtual void OnWriteToConsole(const char* sText, bool bNewLine);
  45.         virtual void OnWriteToFile(const char* sText, bool bNewLine) {}
  46.         //~ILogCallback
  47.  
  48. private:
  49.  
  50.         IFFont* m_pDefaultFont;
  51.  
  52.         enum EObjType
  53.         {
  54.                 eOT_Sphere,
  55.                 eOT_Arrow,
  56.                 eOT_Line,
  57.                 eOT_Disc,
  58.                 eOT_Text2D,
  59.                 eOT_Text3D,
  60.                 eOT_Line2D,
  61.                 eOT_Quat,
  62.                 eOT_EntityTag,
  63.                 eOT_Cone,
  64.                 eOT_Cylinder,
  65.                 eOT_AABB
  66.         };
  67.  
  68.         struct SEntityTag
  69.         {
  70.                 SEntityTagParams params;
  71.                 Vec3             vScreenPos;
  72.                 float            totalTime;
  73.                 float            totalFadeTime;
  74.         };
  75.         typedef std::list<SEntityTag> TListTag;
  76.  
  77.         struct SColumn
  78.         {
  79.                 float width;
  80.                 float height;
  81.         };
  82.         typedef std::vector<SColumn> TColumns;
  83.  
  84.         struct SObj
  85.         {
  86.                 EObjType obj;
  87.                 ColorF   clr;
  88.                 float    timeRemaining;
  89.                 float    totalTime;
  90.                 float    radius;
  91.                 float    radius2;
  92.                 Vec3     pos;
  93.                 Vec3     dir;
  94.                 Quat     q;
  95.                 string   text;
  96.  
  97.                 EntityId entityId;
  98.                 float    entityHeight;
  99.                 TColumns columns;
  100.                 TListTag tags;
  101.         };
  102.  
  103.         struct STextObj2D
  104.         {
  105.                 string text;
  106.                 ColorF clr;
  107.                 float  size;
  108.                 float  timeRemaining;
  109.                 float  totalTime;
  110.         };
  111.  
  112.         struct SObjFinder
  113.         {
  114.                 SObjFinder(EntityId entityId) : entityId(entityId) {}
  115.                 bool operator()(const SObj& obj) { return obj.obj == eOT_EntityTag && obj.entityId == entityId; }
  116.                 EntityId entityId;
  117.         };
  118.  
  119.         void  UpdateTags(float frameTime, SObj& obj, bool doFirstPass = false);
  120.         void  PostUpdateTags(float frameTime, SObj& obj);
  121.         void  AddToTagList(TListTag& tagList, SEntityTag& tag);
  122.         SObj* FindObj(EntityId entityId);
  123.         bool  GetEntityParams(EntityId entityId, Vec3& baseCenterPos, float& height);
  124.  
  125.         typedef std::list<SObj>           ListObj;
  126.         typedef std::map<string, ListObj> MapListObj;
  127.         typedef std::list<STextObj2D>     ListObjText2D; // 2D objects need a separate pass, so we put it into another list
  128.  
  129.         static const char*   entityTagsContext;
  130.         static const float   kUnlimitedTime;
  131.  
  132.         MapListObj           m_objects;
  133.         MapListObj::iterator m_current;
  134.         ListObjText2D        m_2DTexts;
  135.  
  136.         // Pointers to Entity Tag console variables
  137.         ICVar* m_pETLog;
  138.         ICVar* m_pETHideAll;
  139.         ICVar* m_pETHideBehaviour;
  140.         ICVar* m_pETHideReadability;
  141.         ICVar* m_pETHideAIDebug;
  142.         ICVar* m_pETHideFlowgraph;
  143.         ICVar* m_pETHideScriptBind;
  144.         ICVar* m_pETFontSizeMultiplier;
  145.         ICVar* m_pETMaxDisplayDistance;
  146.         ICVar* m_pETColorOverrideEnable;
  147.         ICVar* m_pETColorOverrideR;
  148.         ICVar* m_pETColorOverrideG;
  149.         ICVar* m_pETColorOverrideB;
  150. };
  151.  
  152. #endif
  153.  
downloadPersistantDebug.h Source code - Download CRYENGINE Source code
Related Source Codes/Software:
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top