BVB Source Codes

CRYENGINE Show DelayedPlaneBreak.h Source code

Return Download CRYENGINE: download DelayedPlaneBreak.h Source code - Download CRYENGINE Source code - Type:.h
  1. // Copyright 2001-2016 Crytek GmbH / Crytek Group. All rights reserved.
  2.  
  3. #pragma once
  4.  
  5. #include <Cry3DEngine/IIndexedMesh.h>
  6. #include <CryPhysics/IPhysics.h>
  7. #include <CryPhysics/IDeferredCollisionEvent.h>
  8. #include <CryEntitySystem/IEntitySystem.h>
  9. #include <CryEntitySystem/IBreakableManager.h>
  10.  
  11. class CDelayedPlaneBreak : public IDeferredPhysicsEvent
  12. {
  13. public:
  14.         enum EStatus
  15.         {
  16.                 eStatus_NONE,
  17.                 eStatus_STARTED,
  18.                 eStatus_DONE,
  19.         };
  20.  
  21.         CDelayedPlaneBreak()
  22.                 : m_status(eStatus_NONE)
  23.                 , m_count(0)
  24.                 , m_iBreakEvent(0)
  25.                 , m_idx(0)
  26.                 , m_bMeshPrepOnly(false)
  27.                 , m_jobState()
  28.         {
  29.         }
  30.  
  31.         CDelayedPlaneBreak(const CDelayedPlaneBreak& src)
  32.                 : m_status(src.m_status)
  33.                 , m_islandIn(src.m_islandIn)
  34.                 , m_islandOut(src.m_islandOut)
  35.                 , m_iBreakEvent(src.m_iBreakEvent)
  36.                 , m_idx(src.m_idx)
  37.                 , m_count(src.m_count)
  38.                 , m_bMeshPrepOnly(src.m_bMeshPrepOnly)
  39.                 , m_epc(src.m_epc)
  40.         {
  41.         }
  42.  
  43.         CDelayedPlaneBreak& operator=(const CDelayedPlaneBreak& src)
  44.         {
  45.                 m_status = src.m_status;
  46.                 m_islandIn = src.m_islandIn;
  47.                 m_islandOut = src.m_islandOut;
  48.                 m_iBreakEvent = src.m_iBreakEvent;
  49.                 m_idx = src.m_idx;
  50.                 m_count = src.m_count;
  51.                 m_bMeshPrepOnly = src.m_bMeshPrepOnly;
  52.                 m_epc = src.m_epc;
  53.                 return *this;
  54.         }
  55.  
  56.         virtual void              Start()            {}
  57.         virtual void              ExecuteAsJob();
  58.         virtual int               Result(EventPhys*) { return 0; }
  59.         virtual void              Sync()             { gEnv->GetJobManager()->WaitForJob(m_jobState); }
  60.         virtual bool              HasFinished()      { return true; }
  61.         virtual DeferredEventType GetType() const    { return PhysCallBack_OnCollision; }
  62.         virtual EventPhys*        PhysicsEvent()     { return &m_epc; }
  63.  
  64.         virtual void              Execute();
  65.  
  66.         volatile int          m_status;
  67.         SExtractMeshIslandIn  m_islandIn;
  68.         SExtractMeshIslandOut m_islandOut;
  69.         int                   m_iBreakEvent;
  70.         int                   m_idx;
  71.         int                   m_count;
  72.  
  73.         bool                  m_bMeshPrepOnly;
  74.  
  75.         EventPhysCollision    m_epc;
  76.         JobManager::SJobState m_jobState;
  77. };
  78.  
downloadDelayedPlaneBreak.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