VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
detonationServiceInterface.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2021 MAK Technologies, Inc.
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include "vrfcore/vrfcoreDefines.h"
13 #include "vlpi/disEnums.h"
14 #include "geometry/surface.h"
15 
16 class DtDetonationParams;
19 class DtSimMunition;
20 class DtEntityType;
21 class DtUUID;
22 
23 namespace makVrfEvents
24 {
25  class DtDetonationEvent;
26 }
27 
35 {
36 private:
39 
40 public:
41  typedef bool(*DtDamageAdjudicationFunction)(const DtDetonationContext& detonationContext, void* usr);
42 
44 
46  virtual DtDetonationResult detonationResult(const DtSimMunition& munition, DtDetonatorFuze fuze,
47  const DtEntityType& targetEntityType, const DtVector& localPosition) const = 0;
48 
51  virtual DtDetonationResult detonationResult(const DtSimMunition& munition, DtDetonatorFuze fuze,
52  const DtSurface& terrainSurface, const DtVector& localPosition) const = 0;
53 
56  virtual DtDetonationResult detonationResultMidAir(const DtSimMunition& munition, const DtVector& localPosition) const = 0;
58 
60  virtual void sendDetonationInteraction(const makVrfEvents::DtDetonationEvent& detonation) = 0;
61 
65  virtual bool registerDirectDetonation(
66  const DtUUID& entityId, void* callbackObject, DtDamageAdjudicationFunction func) = 0;
67 
68 
74  virtual bool registerCollateralDetonation(
75  const DtUUID& entityId, DtSimMunition munition, double maxDamageRadius, void* callbackObject,
76  DtDamageAdjudicationFunction func) = 0;
77 
83  virtual bool registerCollateralDetonationByPower(
84  const DtUUID& entityId, const DtString& powerType, double minDamagePower, void* callbackObject,
85  DtDamageAdjudicationFunction func) = 0;
86 
94  virtual bool unRegisterDirectDetonationTarget(const DtUUID& entity) = 0;
95  virtual bool unRegisterCollateralDetonationTarget(const DtUUID& entity) = 0;
96 
99  virtual bool unRegisterCollateralDetonationCallback(const DtUUID& entity, void* callbackObject,
100  DtDamageAdjudicationFunction func) = 0;
101 
104  virtual const DtDetonationParams* parameters() const = 0;
105  virtual const DtTerrainDeformationParams * terrainDeformationParameters() const = 0;
107 
114  virtual bool reinitialize() = 0;
115 
117  virtual void tick() = 0;
118 };
UUID is a unique ID wrapper class.
Definition: uuid.h:59
Readable-writable class holding all parameters to configure the DtDetonationManager.
Definition: detonationParams.h:22
Definition: surface.h:181
Definition: detonationEvent.h:20
Definition: detonationDeformationParams.h:9
The DtDetonationContext contains all the information necessary for processing a Detonation Interactio...
Definition: detonationContext.h:23
DtSimMunition class.
Definition: simMunition.h:31
Abstract interface class to the detonation service. This service provides information about detonatio...
Definition: detonationServiceInterface.h:34
#define DT_DLL_vrfcore
This file is used to determine how to build.
Definition: vrfcoreDefines.h:25

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)