VR-Engage  2.2
Loading...
Searching...
No Matches
vreRadarObjectSensorPSR.h
Go to the documentation of this file.
1/*******************************************************************************
2** Copyright (c) 2025 MAK Technologies
3** All rights reserved.
4*******************************************************************************/
5
6//! \file vreRadarObjectSensorPSR.h
7//! \ingroup vreVrfobjcore
8//! \brief Radar object sensor process state repository for VREngage
9//!
10//! This file defines the DtVreRadarObjectSensorPSR class, which extends the basic
11//! radar object sensor PSR to provide VREngage-specific radar functionality. It adds
12//! support for additional radar state information and creates extended contact info
13//! objects for radar detections.
14
15#pragma once
16
18#include <vrfobjcore/radarObjectSensorPSR.h>
20
21namespace makVre
22{
23//! \brief Type identifier string for the VREngage radar object sensor PSR
24const char DtVreRadarObjectSensorPSRType[] = "vre-radar-object-sensor-psr";
25
26//! \brief Extended radar object sensor process state repository for VREngage
27//!
28//! This class extends the basic radar object sensor PSR to provide VREngage-specific
29//! radar functionality. It adds support for additional radar state information
30//! and creates extended contact info objects for radar detections. The extended
31//! functionality is used to provide more detailed radar information for VREngage
32//! displays and interfaces.
33class VREVRFOBJCORE_DLL DtVreRadarObjectSensorPSR : public DtRadarObjectSensorPSR
34{
35public:
36 //! \brief Constructor with VRF object and optional name
37 //! \param vrfObject Pointer to the local object this PSR is associated with
38 //! \param rwName Optional reader/writer name
39 //! \param parentRegistry Optional parent registry for reader/writer functionality
40 //!
41 //! Creates a new radar object sensor PSR for the specified VRF object.
42 DtVreRadarObjectSensorPSR(DtLocalObject* vrfObject, const DtString& rwName = DtString::nullString(),
43 DtReaderWriterRegistry* parentRegistry = 0);
44
45 //! \brief Copy constructor
46 //! \param orig The source PSR to copy from
47 //! \param rwName Optional reader/writer name
48 //! \param parentRegistry Optional parent registry for reader/writer functionality
49 //!
50 //! Creates a new radar object sensor PSR as a copy of the provided original.
51 DtVreRadarObjectSensorPSR(const DtVreRadarObjectSensorPSR& orig, const DtString& rwName = DtString::nullString(),
52 DtReaderWriterRegistry* parentRegistry = 0);
53
54 //! \brief Virtual destructor
55 //!
56 //! Cleans up resources used by the PSR.
57 virtual ~DtVreRadarObjectSensorPSR() override;
58
59 //! \brief Assignment operator (not implemented)
60 //! \param orig The source PSR to copy from
61 //! \return Reference to this PSR after assignment
62 //!
63 //! Assignment operator is declared but not implemented to prevent assignment.
65
66 //! \brief Creates a clone of this PSR
67 //! \param rwName Optional reader/writer name for the clone
68 //! \param parentRegistry Optional parent registry for reader/writer functionality
69 //! \return Pointer to a new PSR that is a clone of this one
70 //!
71 //! Creates a new radar object sensor PSR as a deep copy of this one.
72 virtual DtVrfProcessStateRepository* clone(const DtString& rwName = DtString::nullString(),
73 DtReaderWriterRegistry* parentRegistry = 0) const override;
74
75 //! \brief Gets the type identifier for this PSR
76 //! \return String identifying this PSR type
77 //!
78 //! Returns a unique type identifier string for this PSR type.
79 //! Will return DtVreRadarObjectSensorPSRType.
80 virtual DtString type() const override;
81
82 //! \brief Creates a sensor contact info list with extended functionality
83 //! \param name The name to assign to the new list
84 //! \return Pointer to the newly created sensor contact info list
85 //!
86 //! Overridden to create extended contact info objects that contain VREngage-specific
87 //! radar contact information. The extended information is used to provide more
88 //! detailed radar displays and interfaces in VREngage applications.
89 virtual DtSensorContactInfoList* createSensorContactInfoList(const DtString& name) override;
90
91 //! \brief Gets the radar state information (const version)
92 //! \return Const reference to the radar state information
93 //!
94 //! Returns a constant reference to the radar state information, containing
95 //! details about the current radar operating parameters and mode.
96 virtual const DtRwRadarStateInfo& radarStateInfo() const;
97
98 //! \brief Gets the radar state information (non-const version)
99 //! \return Reference to the radar state information
100 //!
101 //! Returns a reference to the radar state information, allowing modification
102 //! of the current radar operating parameters and mode.
104
105 //! \brief Factory function to create a new instance of this PSR
106 //! \param rwName The reader/writer name for the new instance
107 //! \param vrfObject Pointer to the local object this PSR will be associated with
108 //! \param parentRegistry Parent registry for reader/writer functionality
109 //! \return Pointer to a newly created PSR instance
110 //!
111 //! Static factory function used by the PSR creation system to instantiate
112 //! new instances of this PSR type.
113 static DtVrfProcessStateRepository* creator(
114 const DtString& rwName, DtLocalObject* vrfObject, DtReaderWriterRegistry* parentRegistry);
115
116protected:
117 //! \brief Radar state information
118 //!
119 //! Stores the current radar state information, including operating parameters
120 //! and mode. This is used to provide detailed radar status information to VREngage
121 //! displays and interfaces.
123};
124
125} // namespace makVre
Radar state information class for radar system configurations.
Definition rwRadarStateInfo.h:32
virtual const DtRwRadarStateInfo & radarStateInfo() const
Gets the radar state information (const version)
virtual DtRwRadarStateInfo & radarStateInfo()
Gets the radar state information (non-const version)
virtual DtString type() const override
Gets the type identifier for this PSR.
virtual DtSensorContactInfoList * createSensorContactInfoList(const DtString &name) override
Creates a sensor contact info list with extended functionality.
DtVreRadarObjectSensorPSR(DtLocalObject *vrfObject, const DtString &rwName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0)
Constructor with VRF object and optional name.
virtual ~DtVreRadarObjectSensorPSR() override
Virtual destructor.
static DtVrfProcessStateRepository * creator(const DtString &rwName, DtLocalObject *vrfObject, DtReaderWriterRegistry *parentRegistry)
Factory function to create a new instance of this PSR.
DtVreRadarObjectSensorPSR(const DtVreRadarObjectSensorPSR &orig, const DtString &rwName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0)
Copy constructor.
DtRwRadarStateInfo myRadarStateInfo
Radar state information.
Definition vreRadarObjectSensorPSR.h:122
virtual DtVrfProcessStateRepository * clone(const DtString &rwName=DtString::nullString(), DtReaderWriterRegistry *parentRegistry=0) const override
Creates a clone of this PSR.
DtVreRadarObjectSensorPSR & operator=(const DtVreRadarObjectSensorPSR &orig)
Assignment operator (not implemented)
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
const char DtVreRadarObjectSensorPSRType[]
Type identifier string for the VREngage radar object sensor PSR.
Definition vreRadarObjectSensorPSR.h:24
Defines radar state information structure.