WSF
WsfBMAuxDataZoneAttachment.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI//REL TO USA ONLY
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// The use, dissemination or disclosure of data in this file is subject to
7// limitation or restriction. See accompanying README and LICENSE for details.
8// ****************************************************************************
9/*******************************************************************************
10*
11* File: WsfBMAuxDataZoneAttachment.hpp
12*
13* Classification: UNCLASSIFIED
14*
15* Details:
16*
17* Contract Number:
18* Contractor Name: Radiance Technologies
19* Address: 350 Wynn Drive
20* Huntsville, AL 35805
21*
22* Abstract: A container class for providing zone attachments to weapons or
23* platforms within aux data. This is to get around the fact that container
24* classes aren't supported within AUX data for the AFSIM core currently.
25*
26*******************************************************************************/
27
28#ifndef WSF_BM_AUX_DATA_ZONE_ATTACHMENT_HPP
29#define WSF_BM_AUX_DATA_ZONE_ATTACHMENT_HPP
30
31#include <WsfBMCommon.hpp>
32#include <iadsLib/enum.hpp>
33#include <vector>
34#include <WsfObject.hpp>
35
36#define WSF_BM_AUX_DATA_ZONE_ATTACH_SCRIPT_TYPE_NAME "WsfBMAuxDataZoneAttachment"
37
38class WSF_IADS_C2_LIB_EXPORT WsfBMAuxDataZoneAttachment : public WsfObject
39{
40 public:
42
44 WsfBMAuxDataZoneAttachment* Clone() const override;
45 inline const char* GetScriptClassName() const override { return WSF_BM_AUX_DATA_ZONE_ATTACH_SCRIPT_TYPE_NAME; }
46
47 virtual void AddZoneAttachment(const eAttachmentType attach_type, const double priority, const std::string& zone_name, const il::eZoneType zone_type);
48 virtual std::size_t GetZoneAttachmentCount() const;
49 virtual void GetNthZoneAttachment(const std::size_t nth_zone, eAttachmentType& attach_type, double& priority, std::string& zone_name, il::eZoneType& zone_type) const;
50
51 protected:
53 {
54 public:
55 tAttachment(const double priority, const eAttachmentType attachment, const std::string& zone_name, const il::eZoneType zone_type)
56 : m_priority(priority), m_attachment(attachment), m_zone_name(zone_name), m_zone_type(zone_type) { }
57 double m_priority;
59 std::string m_zone_name;
60 il::eZoneType m_zone_type;
61 };
62
63 std::vector <tAttachment> m_zones;
64};
65
66#endif
#define WSF_BM_AUX_DATA_ZONE_ATTACH_SCRIPT_TYPE_NAME
Definition WsfBMAuxDataZoneAttachment.hpp:36
tAttachment(const double priority, const eAttachmentType attachment, const std::string &zone_name, const il::eZoneType zone_type)
Definition WsfBMAuxDataZoneAttachment.hpp:55
eAttachmentType m_attachment
Definition WsfBMAuxDataZoneAttachment.hpp:58
il::eZoneType m_zone_type
Definition WsfBMAuxDataZoneAttachment.hpp:60
double m_priority
Definition WsfBMAuxDataZoneAttachment.hpp:57
std::string m_zone_name
Definition WsfBMAuxDataZoneAttachment.hpp:59
Definition WsfBMAuxDataZoneAttachment.hpp:39
const char * GetScriptClassName() const override
Definition WsfBMAuxDataZoneAttachment.hpp:45
WsfBMAuxDataZoneAttachment()
Definition WsfBMAuxDataZoneAttachment.cpp:30
eAttachmentType
Definition WsfBMAuxDataZoneAttachment.hpp:41
@ E_GLOBAL
Definition WsfBMAuxDataZoneAttachment.hpp:41
@ E_PLATFORM
Definition WsfBMAuxDataZoneAttachment.hpp:41
std::vector< tAttachment > m_zones
Definition WsfBMAuxDataZoneAttachment.hpp:63
WsfObject()
This is the constructor for the WsfObject class.
Definition WsfObject.cpp:88
virtual WsfObject * Clone() const =0
Copyrights Multiple, All Rights Reserved