VR-Engage  2.2
Loading...
Searching...
No Matches
vreSimpleRadarObjectSensorPSR.h
Go to the documentation of this file.
1/*******************************************************************************
2** Copyright (c) 2025 MAK Technologies
3** All rights reserved.
4*******************************************************************************/
5
6//! \file vreSimpleRadarObjectSensorPSR.h
7//! \ingroup vreVrfobjcore
8//! \brief Simple radar object sensor process state repository for VREngage
9//!
10//! This file defines the DtVreSimpleRadarObjectSensorPSR class, which provides a simplified
11//! version of the radar object sensor PSR for VREngage. It adds support for track IDs and
12//! designated targets, used to implement simple radar displays and interfaces.
13
14#pragma once
15
18
19#include <vrfutil/rwTemplatedList.h>
20#include <vrfutil/rwTemplatedMap.h>
21
22namespace makVre
23{
24//! \brief Type identifier string for the VREngage simple radar object sensor PSR
25const char DtVreSimpleRadarObjectSensorPSRType[] = "vre-simple-radar-object-sensor-psr";
26
27//! \brief Map of track IDs to entity UUIDs
28//!
29//! Maps radar track IDs (integers) to the UUIDs of the tracked entities.
30//! This allows rapid lookup of entity information by track ID.
31using DtTrackIdObjectRefMap = DtRwTemplatedMapPtr<DtRwInt, DtRwUUID>;
32
33//! \brief List of designated target track IDs
34//!
35//! Contains a list of track IDs that have been designated as special targets
36//! by the radar operator. Designated targets often receive special treatment
37//! in the radar display and targeting systems.
38using DtDesignatedTargetList = DtRwTemplatedListPtr<DtRwInt, true>;
39
40//! \brief Simplified radar object sensor process state repository for VREngage
41//!
42//! This class extends the VREngage radar object sensor PSR to provide a simplified
43//! version for basic radar functionality. It adds support for track IDs and designated
44//! targets, which are used to implement simpler radar displays and interfaces.
45//! This PSR is typically used for simplified radar systems that don't require
46//! the full complexity of the regular radar object sensor.
48{
49public:
50 //! \brief Constructor with VRF object and optional name
51 //! \param vrfObject Pointer to the local object this PSR is associated with
52 //! \param rwName Optional reader/writer name
53 //! \param parentRegistry Optional parent registry for reader/writer functionality
54 //!
55 //! Creates a new simple radar object sensor PSR for the specified VRF object.
56 DtVreSimpleRadarObjectSensorPSR(DtLocalObject* vrfObject, const DtString& rwName = DtString::nullString(),
57 DtReaderWriterRegistry* parentRegistry = 0);
58
59 //! \brief Copy constructor
60 //! \param orig The source PSR to copy from
61 //! \param rwName Optional reader/writer name
62 //! \param parentRegistry Optional parent registry for reader/writer functionality
63 //!
64 //! Creates a new simple radar object sensor PSR as a copy of the provided original.
66 const DtString& rwName = DtString::nullString(), DtReaderWriterRegistry* parentRegistry = 0);
67
68 //! \brief Virtual destructor
69 //!
70 //! Cleans up resources used by the PSR.
72
73 //! \brief Assignment operator (not implemented)
74 //! \param orig The source PSR to copy from
75 //! \return Reference to this PSR after assignment
76 //!
77 //! Assignment operator is declared but not implemented to prevent assignment.
79
80 //! \brief Creates a clone of this PSR
81 //! \param rwName Optional reader/writer name for the clone
82 //! \param parentRegistry Optional parent registry for reader/writer functionality
83 //! \return Pointer to a new PSR that is a clone of this one
84 //!
85 //! Creates a new simple radar object sensor PSR as a deep copy of this one.
86 virtual DtVrfProcessStateRepository* clone(const DtString& rwName = DtString::nullString(),
87 DtReaderWriterRegistry* parentRegistry = 0) const override;
88
89 //! \brief Gets the type identifier for this PSR
90 //! \return String identifying this PSR type
91 //!
92 //! Returns a unique type identifier string for this PSR type.
93 //! Will return DtVreSimpleRadarObjectSensorPSRType.
94 virtual DtString type() const override;
95
96 //! \brief Gets the track ID to entity UUID map (const version)
97 //! \return Const reference to the track ID map
98 //!
99 //! Returns a constant reference to the map of track IDs to entity UUIDs.
100 virtual const DtTrackIdObjectRefMap& trackIds() const;
101
102 //! \brief Gets the track ID to entity UUID map (non-const version)
103 //! \return Reference to the track ID map
104 //!
105 //! Returns a reference to the map of track IDs to entity UUIDs,
106 //! allowing modification of the track ID assignments.
108
109 //! \brief Gets the designated targets list (const version)
110 //! \return Const reference to the designated targets list
111 //!
112 //! Returns a constant reference to the list of designated target track IDs.
114
115 //! \brief Gets the designated targets list (non-const version)
116 //! \return Reference to the designated targets list
117 //!
118 //! Returns a reference to the list of designated target track IDs,
119 //! allowing modification of the designated targets.
121
122 //! \brief Factory function to create a new instance of this PSR
123 //! \param rwName The reader/writer name for the new instance
124 //! \param vrfObject Pointer to the local object this PSR will be associated with
125 //! \param parentRegistry Parent registry for reader/writer functionality
126 //! \return Pointer to a newly created PSR instance
127 //!
128 //! Static factory function used by the PSR creation system to instantiate
129 //! new instances of this PSR type.
130 static DtVrfProcessStateRepository* creator(
131 const DtString& rwName, DtLocalObject* vrfObject, DtReaderWriterRegistry* parentRegistry);
132
133protected:
134 //! \brief Map of track IDs to entity UUIDs
135 //!
136 //! Stores the mapping between radar track IDs (integers) and the UUIDs of
137 //! the tracked entities. This allows rapid lookup of entity information by track ID.
139
140 //! \brief List of designated target track IDs
141 //!
142 //! Stores the list of track IDs that have been designated as special targets
143 //! by the radar operator. Designated targets often receive special treatment
144 //! in the radar display and targeting systems.
146};
147
148} // namespace makVre
DtVreRadarObjectSensorPSR(DtLocalObject *vrfObject, const DtString &rwName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0)
Constructor with VRF object and optional name.
DtTrackIdObjectRefMap myTrackIdMap
Map of track IDs to entity UUIDs.
Definition vreSimpleRadarObjectSensorPSR.h:138
virtual ~DtVreSimpleRadarObjectSensorPSR() override
Virtual destructor.
virtual DtString type() const override
Gets the type identifier for this PSR.
virtual const DtDesignatedTargetList & designatedTargets() const
Gets the designated targets list (const version)
DtVreSimpleRadarObjectSensorPSR(const DtVreSimpleRadarObjectSensorPSR &orig, const DtString &rwName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0)
Copy constructor.
virtual const DtTrackIdObjectRefMap & trackIds() const
Gets the track ID to entity UUID map (const version)
virtual DtVrfProcessStateRepository * clone(const DtString &rwName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0) const override
Creates a clone of this PSR.
DtDesignatedTargetList myDesignatedTargets
List of designated target track IDs.
Definition vreSimpleRadarObjectSensorPSR.h:145
virtual DtTrackIdObjectRefMap & trackIds()
Gets the track ID to entity UUID map (non-const version)
static DtVrfProcessStateRepository * creator(const DtString &rwName, DtLocalObject *vrfObject, DtReaderWriterRegistry *parentRegistry)
Factory function to create a new instance of this PSR.
DtVreSimpleRadarObjectSensorPSR(DtLocalObject *vrfObject, const DtString &rwName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0)
Constructor with VRF object and optional name.
DtVreSimpleRadarObjectSensorPSR & operator=(const DtVreSimpleRadarObjectSensorPSR &orig)
Assignment operator (not implemented)
virtual DtDesignatedTargetList & designatedTargets()
Gets the designated targets list (non-const version)
Export macros for the VREngage Object Core library.
#define VREVRFOBJCORE_DLL
Platform-specific DLL export/import declaration.
Definition export.h:27
Include export definitions for this library.
Definition glsVreMessageUtil.h:49
DtRwTemplatedListPtr< DtRwInt, true > DtDesignatedTargetList
List of designated target track IDs.
Definition vreSimpleRadarObjectSensorPSR.h:38
DtRwTemplatedMapPtr< DtRwInt, DtRwUUID > DtTrackIdObjectRefMap
Map of track IDs to entity UUIDs.
Definition vreSimpleRadarObjectSensorPSR.h:31
const char DtVreSimpleRadarObjectSensorPSRType[]
Type identifier string for the VREngage simple radar object sensor PSR.
Definition vreSimpleRadarObjectSensorPSR.h:25
Radar object sensor process state repository for VREngage.