BVB Source Codes

CRYENGINE Show EntityCoverSampler.h Source code

Return Download CRYENGINE: download EntityCoverSampler.h Source code - Download CRYENGINE Source code - Type:.h
  1. // Copyright 2001-2016 Crytek GmbH / Crytek Group. All rights reserved.
  2.  
  3. #ifndef __EntityCoverSampler_h__
  4. #define __EntityCoverSampler_h__
  5.  
  6. #pragma once
  7.  
  8. #include "Cover.h"
  9.  
  10. class EntityCoverSampler
  11. {
  12. public:
  13.         enum ESide
  14.         {
  15.                 Left     = 0,
  16.                 Right    = 1,
  17.                 Front    = 2,
  18.                 Back     = 3,
  19.                 LastSide = Back,
  20.         };
  21.  
  22.         typedef Functor3<EntityId, EntityCoverSampler::ESide, const ICoverSystem::SurfaceInfo&> Callback;
  23.  
  24.         EntityCoverSampler();
  25.         ~EntityCoverSampler();
  26.  
  27.         void Clear();
  28.         void Queue(EntityId entityID, const Callback& callback);
  29.         void Cancel(EntityId entityID);
  30.         void Update();
  31.         void DebugDraw();
  32.  
  33. private:
  34.         struct QueuedEntity
  35.         {
  36.                 enum EState
  37.                 {
  38.                         Queued = 0,
  39.                         SamplingLeft,
  40.                         SamplingRight,
  41.                         SamplingFront,
  42.                         SamplingBack,
  43.                 };
  44.  
  45.                 QueuedEntity()
  46.                         : distanceSq(FLT_MAX)
  47.                         , state(Queued)
  48.                 {
  49.                 }
  50.  
  51.                 QueuedEntity(EntityId _entityID, Callback _callback)
  52.                         : entityID(_entityID)
  53.                         , callback(_callback)
  54.                         , distanceSq(FLT_MAX)
  55.                         , state(Queued)
  56.                 {
  57.                 }
  58.  
  59.                 EntityId entityID;
  60.                 Callback callback;
  61.                 float    distanceSq;
  62.                 EState   state;
  63.         };
  64.  
  65.         struct QueuedEntitySorter
  66.         {
  67.                 bool operator()(const QueuedEntity& lhs, const QueuedEntity& rhs) const
  68.                 {
  69.                         return lhs.distanceSq < rhs.distanceSq;
  70.                 }
  71.         };
  72.  
  73.         typedef std::deque<QueuedEntity> QueuedEntities;
  74.         QueuedEntities        m_queue;
  75.  
  76.         ICoverSampler*        m_sampler;
  77.         ICoverSampler::Params m_params;
  78.         uint32                m_currentSide;
  79.  
  80.         CTimeValue            m_lastSort;
  81.         OBB                   m_obb;
  82. };
  83.  
  84. #endif // __EntityCoverSampler_h__
  85.  
downloadEntityCoverSampler.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