VR-Engage  2.2
Loading...
Searching...
No Matches
radarContactInfoList.h
Go to the documentation of this file.
1/*******************************************************************************
2** Copyright (c) 2025 MAK Technologies
3** All rights reserved.
4*******************************************************************************/
5
6//! \file radarContactInfoList.h
7//! \ingroup vreVrfMessages
8//! \brief A specialized list for radar contact information
9//!
10//! This file defines the DtRadarContactInfoList class, which is a specialized
11//! container for managing and persisting radar contact information in the VREngage
12//! simulation system.
13
14//! \brief A specialized list for radar contact information
15#pragma once
16
18#include <vrfutil/sensorContactInfoList.h>
19
20class DtReaderWriterRegistry;
21class DtString;
22
23//! \brief A reader-writer list of radar contact information elements
24//!
25//! This class provides a specialized container for managing radar contact information.
26//! It extends the base DtSensorContactInfoList with radar-specific functionality.
27//! Use the DtRwList::add() and remove() methods for adding and removing elements.
28//! The list can be iterated through using DtList iteration methods.
29//!
30//! \note The list will delete all of its contents when destroyed, so use caution
31//! if holding pointers to any of the list elements.
32//!
33//! If you need to monitor the change state of the list, use a DtRadarContactInfoListChangeMonitor.
34class VRFMESSAGES_DLL DtRadarContactInfoList : public DtSensorContactInfoList
35{
36public:
37 //! \brief Default constructor
38 //!
39 //! Initializes an empty radar contact information list.
41
42 //! \brief Constructor with name for reader/writer functionality
43 //! \param name The name to identify this list
44 //! \param parentRegistry Optional reader-writer registry for serialization
45 DtRadarContactInfoList(const DtString& name, DtReaderWriterRegistry* parentRegistry = NULL);
46
47 //! \brief Constructor with symbol name for reader/writer functionality
48 //! \param name The symbol name to identify this list
49 //! \param parentRegistry Optional reader-writer registry for serialization
50 DtRadarContactInfoList(const DtSymbolString& name, DtReaderWriterRegistry* parentRegistry = NULL);
51
52 //! \brief Virtual destructor
53 //!
54 //! Destroys the list and all contained radar contact information objects.
55 virtual ~DtRadarContactInfoList() override;
56
57 //! \brief Copy constructor with name
58 //! \param name The name to identify this list
59 //! \param orig The radar contact list to copy from
60 //! \param parentRegistry Optional reader-writer registry for serialization
61 //!
62 //! Creates a deep copy, cloning all list items onto the new list.
64 const DtString& name, const DtRadarContactInfoList& orig, DtReaderWriterRegistry* parentRegistry = NULL);
65
66 //! \brief Copy constructor with symbol name
67 //! \param name The symbol name to identify this list
68 //! \param orig The radar contact list to copy from
69 //! \param parentRegistry Optional reader-writer registry for serialization
70 //!
71 //! Creates a deep copy, cloning all list items onto the new list.
73 const DtSymbolString& name, const DtRadarContactInfoList& orig, DtReaderWriterRegistry* parentRegistry = NULL);
74
75 //! \brief Assignment operator
76 //! \param orig The radar contact list to copy from
77 //! \return Reference to this object after assignment
78 //!
79 //! Performs a deep copy. All items on the target list are deleted, and new
80 //! items are cloned onto the list from the source.
82
83 //! \brief Creates a complete clone of the list and all items
84 //! \param name The name to identify the cloned list
85 //! \param parentRegistry Optional reader-writer registry for serialization
86 //! \return Pointer to a new dynamically allocated copy
87 //!
88 //! Creates a deep copy of the entire list and all contained items.
89 virtual DtRadarContactInfoList* clone(const DtString& name, DtReaderWriterRegistry* parentRegistry = NULL);
90
91 //! \brief Creates a complete clone of the list and all items
92 //! \param name The symbol name to identify the cloned list
93 //! \param parentRegistry Optional reader-writer registry for serialization
94 //! \return Pointer to a new dynamically allocated copy
95 //!
96 //! Creates a deep copy of the entire list and all contained items.
97 virtual DtRadarContactInfoList* clone(const DtSymbolString& name, DtReaderWriterRegistry* parentRegistry = NULL);
98
99 //! \brief Factory method for creating sensor contact information objects
100 //! \return Pointer to a new DtRwSensorContactInfo or derived class
101 //!
102 //! This factory method creates a DtRwSensorContactInfo or derivative.
103 //! The base implementation creates a standard DtRwSensorContactInfo object.
104 //! The getData() method uses this when adding new items to the list that are
105 //! read from an input file.
106 //!
107 //! All items on the list should be of the type created by this method.
108 //! If you need custom data in your sensor contact information, create
109 //! a derived version of DtRwSensorContactInfo, override this class, and return
110 //! your specialized contact info from this method.
111 virtual DtRwSensorContactInfo* createSensorContactInfo() override;
112
113 //! \brief Equality comparison operator
114 //! \param other The radar contact list to compare with
115 //! \return True if the lists are equal, false otherwise
116 //!
117 //! Compares this list with another radar contact list for equality.
118 //! Lists are equal if they contain the same number of elements and each
119 //! corresponding element is equal.
120 bool operator==(const DtRadarContactInfoList& other) const;
121};
DtRadarContactInfoList()
Default constructor.
DtRadarContactInfoList(const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=NULL)
Constructor with symbol name for reader/writer functionality.
bool operator==(const DtRadarContactInfoList &other) const
Equality comparison operator.
DtRadarContactInfoList(const DtString &name, DtReaderWriterRegistry *parentRegistry=NULL)
Constructor with name for reader/writer functionality.
virtual DtRwSensorContactInfo * createSensorContactInfo() override
Factory method for creating sensor contact information objects.
DtRadarContactInfoList(const DtSymbolString &name, const DtRadarContactInfoList &orig, DtReaderWriterRegistry *parentRegistry=NULL)
Copy constructor with symbol name.
virtual DtRadarContactInfoList * clone(const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=NULL)
Creates a complete clone of the list and all items.
DtRadarContactInfoList(const DtString &name, const DtRadarContactInfoList &orig, DtReaderWriterRegistry *parentRegistry=NULL)
Copy constructor with name.
DtRadarContactInfoList & operator=(const DtRadarContactInfoList &orig)
Assignment operator.
virtual DtRadarContactInfoList * clone(const DtString &name, DtReaderWriterRegistry *parentRegistry=NULL)
Creates a complete clone of the list and all items.
virtual ~DtRadarContactInfoList() override
Virtual destructor.
Export/import macros for the VRF Messages library.
#define VRFMESSAGES_DLL
Definition export.h:23